1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package redshift
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/query"
14)
15
16const opAcceptReservedNodeExchange = "AcceptReservedNodeExchange"
17
18// AcceptReservedNodeExchangeRequest generates a "aws/request.Request" representing the
19// client's request for the AcceptReservedNodeExchange 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 AcceptReservedNodeExchange for more information on using the AcceptReservedNodeExchange
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 AcceptReservedNodeExchangeRequest method.
34//    req, resp := client.AcceptReservedNodeExchangeRequest(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/redshift-2012-12-01/AcceptReservedNodeExchange
42func (c *Redshift) AcceptReservedNodeExchangeRequest(input *AcceptReservedNodeExchangeInput) (req *request.Request, output *AcceptReservedNodeExchangeOutput) {
43	op := &request.Operation{
44		Name:       opAcceptReservedNodeExchange,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AcceptReservedNodeExchangeInput{}
51	}
52
53	output = &AcceptReservedNodeExchangeOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AcceptReservedNodeExchange API operation for Amazon Redshift.
59//
60// Exchanges a DC1 Reserved Node for a DC2 Reserved Node with no changes to
61// the configuration (term, payment type, or number of nodes) and no additional
62// costs.
63//
64// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
65// with awserr.Error's Code and Message methods to get detailed information about
66// the error.
67//
68// See the AWS API reference guide for Amazon Redshift's
69// API operation AcceptReservedNodeExchange for usage and error information.
70//
71// Returned Error Codes:
72//   * ErrCodeReservedNodeNotFoundFault "ReservedNodeNotFound"
73//   The specified reserved compute node not found.
74//
75//   * ErrCodeInvalidReservedNodeStateFault "InvalidReservedNodeState"
76//   Indicates that the Reserved Node being exchanged is not in an active state.
77//
78//   * ErrCodeReservedNodeAlreadyMigratedFault "ReservedNodeAlreadyMigrated"
79//   Indicates that the reserved node has already been exchanged.
80//
81//   * ErrCodeReservedNodeOfferingNotFoundFault "ReservedNodeOfferingNotFound"
82//   Specified offering does not exist.
83//
84//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
85//   The requested operation isn't supported.
86//
87//   * ErrCodeDependentServiceUnavailableFault "DependentServiceUnavailableFault"
88//   Your request cannot be completed because a dependent internal service is
89//   temporarily unavailable. Wait 30 to 60 seconds and try again.
90//
91//   * ErrCodeReservedNodeAlreadyExistsFault "ReservedNodeAlreadyExists"
92//   User already has a reservation with the given identifier.
93//
94// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AcceptReservedNodeExchange
95func (c *Redshift) AcceptReservedNodeExchange(input *AcceptReservedNodeExchangeInput) (*AcceptReservedNodeExchangeOutput, error) {
96	req, out := c.AcceptReservedNodeExchangeRequest(input)
97	return out, req.Send()
98}
99
100// AcceptReservedNodeExchangeWithContext is the same as AcceptReservedNodeExchange with the addition of
101// the ability to pass a context and additional request options.
102//
103// See AcceptReservedNodeExchange for details on how to use this API operation.
104//
105// The context must be non-nil and will be used for request cancellation. If
106// the context is nil a panic will occur. In the future the SDK may create
107// sub-contexts for http.Requests. See https://golang.org/pkg/context/
108// for more information on using Contexts.
109func (c *Redshift) AcceptReservedNodeExchangeWithContext(ctx aws.Context, input *AcceptReservedNodeExchangeInput, opts ...request.Option) (*AcceptReservedNodeExchangeOutput, error) {
110	req, out := c.AcceptReservedNodeExchangeRequest(input)
111	req.SetContext(ctx)
112	req.ApplyOptions(opts...)
113	return out, req.Send()
114}
115
116const opAuthorizeClusterSecurityGroupIngress = "AuthorizeClusterSecurityGroupIngress"
117
118// AuthorizeClusterSecurityGroupIngressRequest generates a "aws/request.Request" representing the
119// client's request for the AuthorizeClusterSecurityGroupIngress operation. The "output" return
120// value will be populated with the request's response once the request completes
121// successfully.
122//
123// Use "Send" method on the returned Request to send the API call to the service.
124// the "output" return value is not valid until after Send returns without error.
125//
126// See AuthorizeClusterSecurityGroupIngress for more information on using the AuthorizeClusterSecurityGroupIngress
127// API call, and error handling.
128//
129// This method is useful when you want to inject custom logic or configuration
130// into the SDK's request lifecycle. Such as custom headers, or retry logic.
131//
132//
133//    // Example sending a request using the AuthorizeClusterSecurityGroupIngressRequest method.
134//    req, resp := client.AuthorizeClusterSecurityGroupIngressRequest(params)
135//
136//    err := req.Send()
137//    if err == nil { // resp is now filled
138//        fmt.Println(resp)
139//    }
140//
141// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeClusterSecurityGroupIngress
142func (c *Redshift) AuthorizeClusterSecurityGroupIngressRequest(input *AuthorizeClusterSecurityGroupIngressInput) (req *request.Request, output *AuthorizeClusterSecurityGroupIngressOutput) {
143	op := &request.Operation{
144		Name:       opAuthorizeClusterSecurityGroupIngress,
145		HTTPMethod: "POST",
146		HTTPPath:   "/",
147	}
148
149	if input == nil {
150		input = &AuthorizeClusterSecurityGroupIngressInput{}
151	}
152
153	output = &AuthorizeClusterSecurityGroupIngressOutput{}
154	req = c.newRequest(op, input, output)
155	return
156}
157
158// AuthorizeClusterSecurityGroupIngress API operation for Amazon Redshift.
159//
160// Adds an inbound (ingress) rule to an Amazon Redshift security group. Depending
161// on whether the application accessing your cluster is running on the Internet
162// or an Amazon EC2 instance, you can authorize inbound access to either a Classless
163// Interdomain Routing (CIDR)/Internet Protocol (IP) range or to an Amazon EC2
164// security group. You can add as many as 20 ingress rules to an Amazon Redshift
165// security group.
166//
167// If you authorize access to an Amazon EC2 security group, specify EC2SecurityGroupName
168// and EC2SecurityGroupOwnerId. The Amazon EC2 security group and Amazon Redshift
169// cluster must be in the same AWS Region.
170//
171// If you authorize access to a CIDR/IP address range, specify CIDRIP. For an
172// overview of CIDR blocks, see the Wikipedia article on Classless Inter-Domain
173// Routing (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
174//
175// You must also associate the security group with a cluster so that clients
176// running on these IP addresses or the EC2 instance are authorized to connect
177// to the cluster. For information about managing security groups, go to Working
178// with Security Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
179// in the Amazon Redshift Cluster Management Guide.
180//
181// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
182// with awserr.Error's Code and Message methods to get detailed information about
183// the error.
184//
185// See the AWS API reference guide for Amazon Redshift's
186// API operation AuthorizeClusterSecurityGroupIngress for usage and error information.
187//
188// Returned Error Codes:
189//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
190//   The cluster security group name does not refer to an existing cluster security
191//   group.
192//
193//   * ErrCodeInvalidClusterSecurityGroupStateFault "InvalidClusterSecurityGroupState"
194//   The state of the cluster security group is not available.
195//
196//   * ErrCodeAuthorizationAlreadyExistsFault "AuthorizationAlreadyExists"
197//   The specified CIDR block or EC2 security group is already authorized for
198//   the specified cluster security group.
199//
200//   * ErrCodeAuthorizationQuotaExceededFault "AuthorizationQuotaExceeded"
201//   The authorization quota for the cluster security group has been reached.
202//
203// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeClusterSecurityGroupIngress
204func (c *Redshift) AuthorizeClusterSecurityGroupIngress(input *AuthorizeClusterSecurityGroupIngressInput) (*AuthorizeClusterSecurityGroupIngressOutput, error) {
205	req, out := c.AuthorizeClusterSecurityGroupIngressRequest(input)
206	return out, req.Send()
207}
208
209// AuthorizeClusterSecurityGroupIngressWithContext is the same as AuthorizeClusterSecurityGroupIngress with the addition of
210// the ability to pass a context and additional request options.
211//
212// See AuthorizeClusterSecurityGroupIngress for details on how to use this API operation.
213//
214// The context must be non-nil and will be used for request cancellation. If
215// the context is nil a panic will occur. In the future the SDK may create
216// sub-contexts for http.Requests. See https://golang.org/pkg/context/
217// for more information on using Contexts.
218func (c *Redshift) AuthorizeClusterSecurityGroupIngressWithContext(ctx aws.Context, input *AuthorizeClusterSecurityGroupIngressInput, opts ...request.Option) (*AuthorizeClusterSecurityGroupIngressOutput, error) {
219	req, out := c.AuthorizeClusterSecurityGroupIngressRequest(input)
220	req.SetContext(ctx)
221	req.ApplyOptions(opts...)
222	return out, req.Send()
223}
224
225const opAuthorizeSnapshotAccess = "AuthorizeSnapshotAccess"
226
227// AuthorizeSnapshotAccessRequest generates a "aws/request.Request" representing the
228// client's request for the AuthorizeSnapshotAccess operation. The "output" return
229// value will be populated with the request's response once the request completes
230// successfully.
231//
232// Use "Send" method on the returned Request to send the API call to the service.
233// the "output" return value is not valid until after Send returns without error.
234//
235// See AuthorizeSnapshotAccess for more information on using the AuthorizeSnapshotAccess
236// API call, and error handling.
237//
238// This method is useful when you want to inject custom logic or configuration
239// into the SDK's request lifecycle. Such as custom headers, or retry logic.
240//
241//
242//    // Example sending a request using the AuthorizeSnapshotAccessRequest method.
243//    req, resp := client.AuthorizeSnapshotAccessRequest(params)
244//
245//    err := req.Send()
246//    if err == nil { // resp is now filled
247//        fmt.Println(resp)
248//    }
249//
250// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeSnapshotAccess
251func (c *Redshift) AuthorizeSnapshotAccessRequest(input *AuthorizeSnapshotAccessInput) (req *request.Request, output *AuthorizeSnapshotAccessOutput) {
252	op := &request.Operation{
253		Name:       opAuthorizeSnapshotAccess,
254		HTTPMethod: "POST",
255		HTTPPath:   "/",
256	}
257
258	if input == nil {
259		input = &AuthorizeSnapshotAccessInput{}
260	}
261
262	output = &AuthorizeSnapshotAccessOutput{}
263	req = c.newRequest(op, input, output)
264	return
265}
266
267// AuthorizeSnapshotAccess API operation for Amazon Redshift.
268//
269// Authorizes the specified AWS customer account to restore the specified snapshot.
270//
271// For more information about working with snapshots, go to Amazon Redshift
272// Snapshots (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
273// in the Amazon Redshift Cluster Management Guide.
274//
275// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
276// with awserr.Error's Code and Message methods to get detailed information about
277// the error.
278//
279// See the AWS API reference guide for Amazon Redshift's
280// API operation AuthorizeSnapshotAccess for usage and error information.
281//
282// Returned Error Codes:
283//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
284//   The snapshot identifier does not refer to an existing cluster snapshot.
285//
286//   * ErrCodeAuthorizationAlreadyExistsFault "AuthorizationAlreadyExists"
287//   The specified CIDR block or EC2 security group is already authorized for
288//   the specified cluster security group.
289//
290//   * ErrCodeAuthorizationQuotaExceededFault "AuthorizationQuotaExceeded"
291//   The authorization quota for the cluster security group has been reached.
292//
293//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
294//   The request cannot be completed because a dependent service is throttling
295//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
296//
297//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
298//   The specified cluster snapshot is not in the available state, or other accounts
299//   are authorized to access the snapshot.
300//
301//   * ErrCodeLimitExceededFault "LimitExceededFault"
302//   The encryption key has exceeded its grant limit in AWS KMS.
303//
304// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeSnapshotAccess
305func (c *Redshift) AuthorizeSnapshotAccess(input *AuthorizeSnapshotAccessInput) (*AuthorizeSnapshotAccessOutput, error) {
306	req, out := c.AuthorizeSnapshotAccessRequest(input)
307	return out, req.Send()
308}
309
310// AuthorizeSnapshotAccessWithContext is the same as AuthorizeSnapshotAccess with the addition of
311// the ability to pass a context and additional request options.
312//
313// See AuthorizeSnapshotAccess for details on how to use this API operation.
314//
315// The context must be non-nil and will be used for request cancellation. If
316// the context is nil a panic will occur. In the future the SDK may create
317// sub-contexts for http.Requests. See https://golang.org/pkg/context/
318// for more information on using Contexts.
319func (c *Redshift) AuthorizeSnapshotAccessWithContext(ctx aws.Context, input *AuthorizeSnapshotAccessInput, opts ...request.Option) (*AuthorizeSnapshotAccessOutput, error) {
320	req, out := c.AuthorizeSnapshotAccessRequest(input)
321	req.SetContext(ctx)
322	req.ApplyOptions(opts...)
323	return out, req.Send()
324}
325
326const opBatchDeleteClusterSnapshots = "BatchDeleteClusterSnapshots"
327
328// BatchDeleteClusterSnapshotsRequest generates a "aws/request.Request" representing the
329// client's request for the BatchDeleteClusterSnapshots operation. The "output" return
330// value will be populated with the request's response once the request completes
331// successfully.
332//
333// Use "Send" method on the returned Request to send the API call to the service.
334// the "output" return value is not valid until after Send returns without error.
335//
336// See BatchDeleteClusterSnapshots for more information on using the BatchDeleteClusterSnapshots
337// API call, and error handling.
338//
339// This method is useful when you want to inject custom logic or configuration
340// into the SDK's request lifecycle. Such as custom headers, or retry logic.
341//
342//
343//    // Example sending a request using the BatchDeleteClusterSnapshotsRequest method.
344//    req, resp := client.BatchDeleteClusterSnapshotsRequest(params)
345//
346//    err := req.Send()
347//    if err == nil { // resp is now filled
348//        fmt.Println(resp)
349//    }
350//
351// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/BatchDeleteClusterSnapshots
352func (c *Redshift) BatchDeleteClusterSnapshotsRequest(input *BatchDeleteClusterSnapshotsInput) (req *request.Request, output *BatchDeleteClusterSnapshotsOutput) {
353	op := &request.Operation{
354		Name:       opBatchDeleteClusterSnapshots,
355		HTTPMethod: "POST",
356		HTTPPath:   "/",
357	}
358
359	if input == nil {
360		input = &BatchDeleteClusterSnapshotsInput{}
361	}
362
363	output = &BatchDeleteClusterSnapshotsOutput{}
364	req = c.newRequest(op, input, output)
365	return
366}
367
368// BatchDeleteClusterSnapshots API operation for Amazon Redshift.
369//
370// Deletes a set of cluster snapshots.
371//
372// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
373// with awserr.Error's Code and Message methods to get detailed information about
374// the error.
375//
376// See the AWS API reference guide for Amazon Redshift's
377// API operation BatchDeleteClusterSnapshots for usage and error information.
378//
379// Returned Error Codes:
380//   * ErrCodeBatchDeleteRequestSizeExceededFault "BatchDeleteRequestSizeExceeded"
381//   The maximum number for a batch delete of snapshots has been reached. The
382//   limit is 100.
383//
384// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/BatchDeleteClusterSnapshots
385func (c *Redshift) BatchDeleteClusterSnapshots(input *BatchDeleteClusterSnapshotsInput) (*BatchDeleteClusterSnapshotsOutput, error) {
386	req, out := c.BatchDeleteClusterSnapshotsRequest(input)
387	return out, req.Send()
388}
389
390// BatchDeleteClusterSnapshotsWithContext is the same as BatchDeleteClusterSnapshots with the addition of
391// the ability to pass a context and additional request options.
392//
393// See BatchDeleteClusterSnapshots for details on how to use this API operation.
394//
395// The context must be non-nil and will be used for request cancellation. If
396// the context is nil a panic will occur. In the future the SDK may create
397// sub-contexts for http.Requests. See https://golang.org/pkg/context/
398// for more information on using Contexts.
399func (c *Redshift) BatchDeleteClusterSnapshotsWithContext(ctx aws.Context, input *BatchDeleteClusterSnapshotsInput, opts ...request.Option) (*BatchDeleteClusterSnapshotsOutput, error) {
400	req, out := c.BatchDeleteClusterSnapshotsRequest(input)
401	req.SetContext(ctx)
402	req.ApplyOptions(opts...)
403	return out, req.Send()
404}
405
406const opBatchModifyClusterSnapshots = "BatchModifyClusterSnapshots"
407
408// BatchModifyClusterSnapshotsRequest generates a "aws/request.Request" representing the
409// client's request for the BatchModifyClusterSnapshots operation. The "output" return
410// value will be populated with the request's response once the request completes
411// successfully.
412//
413// Use "Send" method on the returned Request to send the API call to the service.
414// the "output" return value is not valid until after Send returns without error.
415//
416// See BatchModifyClusterSnapshots for more information on using the BatchModifyClusterSnapshots
417// API call, and error handling.
418//
419// This method is useful when you want to inject custom logic or configuration
420// into the SDK's request lifecycle. Such as custom headers, or retry logic.
421//
422//
423//    // Example sending a request using the BatchModifyClusterSnapshotsRequest method.
424//    req, resp := client.BatchModifyClusterSnapshotsRequest(params)
425//
426//    err := req.Send()
427//    if err == nil { // resp is now filled
428//        fmt.Println(resp)
429//    }
430//
431// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/BatchModifyClusterSnapshots
432func (c *Redshift) BatchModifyClusterSnapshotsRequest(input *BatchModifyClusterSnapshotsInput) (req *request.Request, output *BatchModifyClusterSnapshotsOutput) {
433	op := &request.Operation{
434		Name:       opBatchModifyClusterSnapshots,
435		HTTPMethod: "POST",
436		HTTPPath:   "/",
437	}
438
439	if input == nil {
440		input = &BatchModifyClusterSnapshotsInput{}
441	}
442
443	output = &BatchModifyClusterSnapshotsOutput{}
444	req = c.newRequest(op, input, output)
445	return
446}
447
448// BatchModifyClusterSnapshots API operation for Amazon Redshift.
449//
450// Modifies the settings for a set of cluster snapshots.
451//
452// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
453// with awserr.Error's Code and Message methods to get detailed information about
454// the error.
455//
456// See the AWS API reference guide for Amazon Redshift's
457// API operation BatchModifyClusterSnapshots for usage and error information.
458//
459// Returned Error Codes:
460//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
461//   The retention period specified is either in the past or is not a valid value.
462//
463//   The value must be either -1 or an integer between 1 and 3,653.
464//
465//   * ErrCodeBatchModifyClusterSnapshotsLimitExceededFault "BatchModifyClusterSnapshotsLimitExceededFault"
466//   The maximum number for snapshot identifiers has been reached. The limit is
467//   100.
468//
469// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/BatchModifyClusterSnapshots
470func (c *Redshift) BatchModifyClusterSnapshots(input *BatchModifyClusterSnapshotsInput) (*BatchModifyClusterSnapshotsOutput, error) {
471	req, out := c.BatchModifyClusterSnapshotsRequest(input)
472	return out, req.Send()
473}
474
475// BatchModifyClusterSnapshotsWithContext is the same as BatchModifyClusterSnapshots with the addition of
476// the ability to pass a context and additional request options.
477//
478// See BatchModifyClusterSnapshots for details on how to use this API operation.
479//
480// The context must be non-nil and will be used for request cancellation. If
481// the context is nil a panic will occur. In the future the SDK may create
482// sub-contexts for http.Requests. See https://golang.org/pkg/context/
483// for more information on using Contexts.
484func (c *Redshift) BatchModifyClusterSnapshotsWithContext(ctx aws.Context, input *BatchModifyClusterSnapshotsInput, opts ...request.Option) (*BatchModifyClusterSnapshotsOutput, error) {
485	req, out := c.BatchModifyClusterSnapshotsRequest(input)
486	req.SetContext(ctx)
487	req.ApplyOptions(opts...)
488	return out, req.Send()
489}
490
491const opCancelResize = "CancelResize"
492
493// CancelResizeRequest generates a "aws/request.Request" representing the
494// client's request for the CancelResize operation. The "output" return
495// value will be populated with the request's response once the request completes
496// successfully.
497//
498// Use "Send" method on the returned Request to send the API call to the service.
499// the "output" return value is not valid until after Send returns without error.
500//
501// See CancelResize for more information on using the CancelResize
502// API call, and error handling.
503//
504// This method is useful when you want to inject custom logic or configuration
505// into the SDK's request lifecycle. Such as custom headers, or retry logic.
506//
507//
508//    // Example sending a request using the CancelResizeRequest method.
509//    req, resp := client.CancelResizeRequest(params)
510//
511//    err := req.Send()
512//    if err == nil { // resp is now filled
513//        fmt.Println(resp)
514//    }
515//
516// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CancelResize
517func (c *Redshift) CancelResizeRequest(input *CancelResizeInput) (req *request.Request, output *CancelResizeOutput) {
518	op := &request.Operation{
519		Name:       opCancelResize,
520		HTTPMethod: "POST",
521		HTTPPath:   "/",
522	}
523
524	if input == nil {
525		input = &CancelResizeInput{}
526	}
527
528	output = &CancelResizeOutput{}
529	req = c.newRequest(op, input, output)
530	return
531}
532
533// CancelResize API operation for Amazon Redshift.
534//
535// Cancels a resize operation for a cluster.
536//
537// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
538// with awserr.Error's Code and Message methods to get detailed information about
539// the error.
540//
541// See the AWS API reference guide for Amazon Redshift's
542// API operation CancelResize for usage and error information.
543//
544// Returned Error Codes:
545//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
546//   The ClusterIdentifier parameter does not refer to an existing cluster.
547//
548//   * ErrCodeResizeNotFoundFault "ResizeNotFound"
549//   A resize operation for the specified cluster is not found.
550//
551//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
552//   The specified cluster is not in the available state.
553//
554//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
555//   The requested operation isn't supported.
556//
557// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CancelResize
558func (c *Redshift) CancelResize(input *CancelResizeInput) (*CancelResizeOutput, error) {
559	req, out := c.CancelResizeRequest(input)
560	return out, req.Send()
561}
562
563// CancelResizeWithContext is the same as CancelResize with the addition of
564// the ability to pass a context and additional request options.
565//
566// See CancelResize for details on how to use this API operation.
567//
568// The context must be non-nil and will be used for request cancellation. If
569// the context is nil a panic will occur. In the future the SDK may create
570// sub-contexts for http.Requests. See https://golang.org/pkg/context/
571// for more information on using Contexts.
572func (c *Redshift) CancelResizeWithContext(ctx aws.Context, input *CancelResizeInput, opts ...request.Option) (*CancelResizeOutput, error) {
573	req, out := c.CancelResizeRequest(input)
574	req.SetContext(ctx)
575	req.ApplyOptions(opts...)
576	return out, req.Send()
577}
578
579const opCopyClusterSnapshot = "CopyClusterSnapshot"
580
581// CopyClusterSnapshotRequest generates a "aws/request.Request" representing the
582// client's request for the CopyClusterSnapshot operation. The "output" return
583// value will be populated with the request's response once the request completes
584// successfully.
585//
586// Use "Send" method on the returned Request to send the API call to the service.
587// the "output" return value is not valid until after Send returns without error.
588//
589// See CopyClusterSnapshot for more information on using the CopyClusterSnapshot
590// API call, and error handling.
591//
592// This method is useful when you want to inject custom logic or configuration
593// into the SDK's request lifecycle. Such as custom headers, or retry logic.
594//
595//
596//    // Example sending a request using the CopyClusterSnapshotRequest method.
597//    req, resp := client.CopyClusterSnapshotRequest(params)
598//
599//    err := req.Send()
600//    if err == nil { // resp is now filled
601//        fmt.Println(resp)
602//    }
603//
604// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CopyClusterSnapshot
605func (c *Redshift) CopyClusterSnapshotRequest(input *CopyClusterSnapshotInput) (req *request.Request, output *CopyClusterSnapshotOutput) {
606	op := &request.Operation{
607		Name:       opCopyClusterSnapshot,
608		HTTPMethod: "POST",
609		HTTPPath:   "/",
610	}
611
612	if input == nil {
613		input = &CopyClusterSnapshotInput{}
614	}
615
616	output = &CopyClusterSnapshotOutput{}
617	req = c.newRequest(op, input, output)
618	return
619}
620
621// CopyClusterSnapshot API operation for Amazon Redshift.
622//
623// Copies the specified automated cluster snapshot to a new manual cluster snapshot.
624// The source must be an automated snapshot and it must be in the available
625// state.
626//
627// When you delete a cluster, Amazon Redshift deletes any automated snapshots
628// of the cluster. Also, when the retention period of the snapshot expires,
629// Amazon Redshift automatically deletes it. If you want to keep an automated
630// snapshot for a longer period, you can make a manual copy of the snapshot.
631// Manual snapshots are retained until you delete them.
632//
633// For more information about working with snapshots, go to Amazon Redshift
634// Snapshots (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
635// in the Amazon Redshift Cluster Management Guide.
636//
637// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
638// with awserr.Error's Code and Message methods to get detailed information about
639// the error.
640//
641// See the AWS API reference guide for Amazon Redshift's
642// API operation CopyClusterSnapshot for usage and error information.
643//
644// Returned Error Codes:
645//   * ErrCodeClusterSnapshotAlreadyExistsFault "ClusterSnapshotAlreadyExists"
646//   The value specified as a snapshot identifier is already used by an existing
647//   snapshot.
648//
649//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
650//   The snapshot identifier does not refer to an existing cluster snapshot.
651//
652//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
653//   The specified cluster snapshot is not in the available state, or other accounts
654//   are authorized to access the snapshot.
655//
656//   * ErrCodeClusterSnapshotQuotaExceededFault "ClusterSnapshotQuotaExceeded"
657//   The request would result in the user exceeding the allowed number of cluster
658//   snapshots.
659//
660//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
661//   The retention period specified is either in the past or is not a valid value.
662//
663//   The value must be either -1 or an integer between 1 and 3,653.
664//
665// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CopyClusterSnapshot
666func (c *Redshift) CopyClusterSnapshot(input *CopyClusterSnapshotInput) (*CopyClusterSnapshotOutput, error) {
667	req, out := c.CopyClusterSnapshotRequest(input)
668	return out, req.Send()
669}
670
671// CopyClusterSnapshotWithContext is the same as CopyClusterSnapshot with the addition of
672// the ability to pass a context and additional request options.
673//
674// See CopyClusterSnapshot for details on how to use this API operation.
675//
676// The context must be non-nil and will be used for request cancellation. If
677// the context is nil a panic will occur. In the future the SDK may create
678// sub-contexts for http.Requests. See https://golang.org/pkg/context/
679// for more information on using Contexts.
680func (c *Redshift) CopyClusterSnapshotWithContext(ctx aws.Context, input *CopyClusterSnapshotInput, opts ...request.Option) (*CopyClusterSnapshotOutput, error) {
681	req, out := c.CopyClusterSnapshotRequest(input)
682	req.SetContext(ctx)
683	req.ApplyOptions(opts...)
684	return out, req.Send()
685}
686
687const opCreateCluster = "CreateCluster"
688
689// CreateClusterRequest generates a "aws/request.Request" representing the
690// client's request for the CreateCluster operation. The "output" return
691// value will be populated with the request's response once the request completes
692// successfully.
693//
694// Use "Send" method on the returned Request to send the API call to the service.
695// the "output" return value is not valid until after Send returns without error.
696//
697// See CreateCluster for more information on using the CreateCluster
698// API call, and error handling.
699//
700// This method is useful when you want to inject custom logic or configuration
701// into the SDK's request lifecycle. Such as custom headers, or retry logic.
702//
703//
704//    // Example sending a request using the CreateClusterRequest method.
705//    req, resp := client.CreateClusterRequest(params)
706//
707//    err := req.Send()
708//    if err == nil { // resp is now filled
709//        fmt.Println(resp)
710//    }
711//
712// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateCluster
713func (c *Redshift) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
714	op := &request.Operation{
715		Name:       opCreateCluster,
716		HTTPMethod: "POST",
717		HTTPPath:   "/",
718	}
719
720	if input == nil {
721		input = &CreateClusterInput{}
722	}
723
724	output = &CreateClusterOutput{}
725	req = c.newRequest(op, input, output)
726	return
727}
728
729// CreateCluster API operation for Amazon Redshift.
730//
731// Creates a new cluster with the specified parameters.
732//
733// To create a cluster in Virtual Private Cloud (VPC), you must provide a cluster
734// subnet group name. The cluster subnet group identifies the subnets of your
735// VPC that Amazon Redshift uses when creating the cluster. For more information
736// about managing clusters, go to Amazon Redshift Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
737// in the Amazon Redshift Cluster Management Guide.
738//
739// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
740// with awserr.Error's Code and Message methods to get detailed information about
741// the error.
742//
743// See the AWS API reference guide for Amazon Redshift's
744// API operation CreateCluster for usage and error information.
745//
746// Returned Error Codes:
747//   * ErrCodeClusterAlreadyExistsFault "ClusterAlreadyExists"
748//   The account already has a cluster with the given identifier.
749//
750//   * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacity"
751//   The number of nodes specified exceeds the allotted capacity of the cluster.
752//
753//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
754//   The parameter group name does not refer to an existing parameter group.
755//
756//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
757//   The cluster security group name does not refer to an existing cluster security
758//   group.
759//
760//   * ErrCodeClusterQuotaExceededFault "ClusterQuotaExceeded"
761//   The request would exceed the allowed number of cluster instances for this
762//   account. For information about increasing your quota, go to Limits in Amazon
763//   Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
764//   in the Amazon Redshift Cluster Management Guide.
765//
766//   * ErrCodeNumberOfNodesQuotaExceededFault "NumberOfNodesQuotaExceeded"
767//   The operation would exceed the number of nodes allotted to the account. For
768//   information about increasing your quota, go to Limits in Amazon Redshift
769//   (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
770//   in the Amazon Redshift Cluster Management Guide.
771//
772//   * ErrCodeNumberOfNodesPerClusterLimitExceededFault "NumberOfNodesPerClusterLimitExceeded"
773//   The operation would exceed the number of nodes allowed for a cluster.
774//
775//   * ErrCodeClusterSubnetGroupNotFoundFault "ClusterSubnetGroupNotFoundFault"
776//   The cluster subnet group name does not refer to an existing cluster subnet
777//   group.
778//
779//   * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault"
780//   The cluster subnet group does not cover all Availability Zones.
781//
782//   * ErrCodeInvalidClusterSubnetGroupStateFault "InvalidClusterSubnetGroupStateFault"
783//   The cluster subnet group cannot be deleted because it is in use.
784//
785//   * ErrCodeInvalidSubnet "InvalidSubnet"
786//   The requested subnet is not valid, or not all of the subnets are in the same
787//   VPC.
788//
789//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
790//   Your account is not authorized to perform the requested operation.
791//
792//   * ErrCodeHsmClientCertificateNotFoundFault "HsmClientCertificateNotFoundFault"
793//   There is no Amazon Redshift HSM client certificate with the specified identifier.
794//
795//   * ErrCodeHsmConfigurationNotFoundFault "HsmConfigurationNotFoundFault"
796//   There is no Amazon Redshift HSM configuration with the specified identifier.
797//
798//   * ErrCodeInvalidElasticIpFault "InvalidElasticIpFault"
799//   The Elastic IP (EIP) is invalid or cannot be found.
800//
801//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
802//   You have exceeded the number of tags allowed.
803//
804//   * ErrCodeInvalidTagFault "InvalidTagFault"
805//   The tag is invalid.
806//
807//   * ErrCodeLimitExceededFault "LimitExceededFault"
808//   The encryption key has exceeded its grant limit in AWS KMS.
809//
810//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
811//   The request cannot be completed because a dependent service is throttling
812//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
813//
814//   * ErrCodeInvalidClusterTrackFault "InvalidClusterTrack"
815//   The provided cluster track name is not valid.
816//
817//   * ErrCodeSnapshotScheduleNotFoundFault "SnapshotScheduleNotFound"
818//   We could not find the specified snapshot schedule.
819//
820//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
821//   The retention period specified is either in the past or is not a valid value.
822//
823//   The value must be either -1 or an integer between 1 and 3,653.
824//
825// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateCluster
826func (c *Redshift) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
827	req, out := c.CreateClusterRequest(input)
828	return out, req.Send()
829}
830
831// CreateClusterWithContext is the same as CreateCluster with the addition of
832// the ability to pass a context and additional request options.
833//
834// See CreateCluster for details on how to use this API operation.
835//
836// The context must be non-nil and will be used for request cancellation. If
837// the context is nil a panic will occur. In the future the SDK may create
838// sub-contexts for http.Requests. See https://golang.org/pkg/context/
839// for more information on using Contexts.
840func (c *Redshift) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
841	req, out := c.CreateClusterRequest(input)
842	req.SetContext(ctx)
843	req.ApplyOptions(opts...)
844	return out, req.Send()
845}
846
847const opCreateClusterParameterGroup = "CreateClusterParameterGroup"
848
849// CreateClusterParameterGroupRequest generates a "aws/request.Request" representing the
850// client's request for the CreateClusterParameterGroup operation. The "output" return
851// value will be populated with the request's response once the request completes
852// successfully.
853//
854// Use "Send" method on the returned Request to send the API call to the service.
855// the "output" return value is not valid until after Send returns without error.
856//
857// See CreateClusterParameterGroup for more information on using the CreateClusterParameterGroup
858// API call, and error handling.
859//
860// This method is useful when you want to inject custom logic or configuration
861// into the SDK's request lifecycle. Such as custom headers, or retry logic.
862//
863//
864//    // Example sending a request using the CreateClusterParameterGroupRequest method.
865//    req, resp := client.CreateClusterParameterGroupRequest(params)
866//
867//    err := req.Send()
868//    if err == nil { // resp is now filled
869//        fmt.Println(resp)
870//    }
871//
872// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterParameterGroup
873func (c *Redshift) CreateClusterParameterGroupRequest(input *CreateClusterParameterGroupInput) (req *request.Request, output *CreateClusterParameterGroupOutput) {
874	op := &request.Operation{
875		Name:       opCreateClusterParameterGroup,
876		HTTPMethod: "POST",
877		HTTPPath:   "/",
878	}
879
880	if input == nil {
881		input = &CreateClusterParameterGroupInput{}
882	}
883
884	output = &CreateClusterParameterGroupOutput{}
885	req = c.newRequest(op, input, output)
886	return
887}
888
889// CreateClusterParameterGroup API operation for Amazon Redshift.
890//
891// Creates an Amazon Redshift parameter group.
892//
893// Creating parameter groups is independent of creating clusters. You can associate
894// a cluster with a parameter group when you create the cluster. You can also
895// associate an existing cluster with a parameter group after the cluster is
896// created by using ModifyCluster.
897//
898// Parameters in the parameter group define specific behavior that applies to
899// the databases you create on the cluster. For more information about parameters
900// and parameter groups, go to Amazon Redshift Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
901// in the Amazon Redshift Cluster Management Guide.
902//
903// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
904// with awserr.Error's Code and Message methods to get detailed information about
905// the error.
906//
907// See the AWS API reference guide for Amazon Redshift's
908// API operation CreateClusterParameterGroup for usage and error information.
909//
910// Returned Error Codes:
911//   * ErrCodeClusterParameterGroupQuotaExceededFault "ClusterParameterGroupQuotaExceeded"
912//   The request would result in the user exceeding the allowed number of cluster
913//   parameter groups. For information about increasing your quota, go to Limits
914//   in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
915//   in the Amazon Redshift Cluster Management Guide.
916//
917//   * ErrCodeClusterParameterGroupAlreadyExistsFault "ClusterParameterGroupAlreadyExists"
918//   A cluster parameter group with the same name already exists.
919//
920//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
921//   You have exceeded the number of tags allowed.
922//
923//   * ErrCodeInvalidTagFault "InvalidTagFault"
924//   The tag is invalid.
925//
926// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterParameterGroup
927func (c *Redshift) CreateClusterParameterGroup(input *CreateClusterParameterGroupInput) (*CreateClusterParameterGroupOutput, error) {
928	req, out := c.CreateClusterParameterGroupRequest(input)
929	return out, req.Send()
930}
931
932// CreateClusterParameterGroupWithContext is the same as CreateClusterParameterGroup with the addition of
933// the ability to pass a context and additional request options.
934//
935// See CreateClusterParameterGroup for details on how to use this API operation.
936//
937// The context must be non-nil and will be used for request cancellation. If
938// the context is nil a panic will occur. In the future the SDK may create
939// sub-contexts for http.Requests. See https://golang.org/pkg/context/
940// for more information on using Contexts.
941func (c *Redshift) CreateClusterParameterGroupWithContext(ctx aws.Context, input *CreateClusterParameterGroupInput, opts ...request.Option) (*CreateClusterParameterGroupOutput, error) {
942	req, out := c.CreateClusterParameterGroupRequest(input)
943	req.SetContext(ctx)
944	req.ApplyOptions(opts...)
945	return out, req.Send()
946}
947
948const opCreateClusterSecurityGroup = "CreateClusterSecurityGroup"
949
950// CreateClusterSecurityGroupRequest generates a "aws/request.Request" representing the
951// client's request for the CreateClusterSecurityGroup operation. The "output" return
952// value will be populated with the request's response once the request completes
953// successfully.
954//
955// Use "Send" method on the returned Request to send the API call to the service.
956// the "output" return value is not valid until after Send returns without error.
957//
958// See CreateClusterSecurityGroup for more information on using the CreateClusterSecurityGroup
959// API call, and error handling.
960//
961// This method is useful when you want to inject custom logic or configuration
962// into the SDK's request lifecycle. Such as custom headers, or retry logic.
963//
964//
965//    // Example sending a request using the CreateClusterSecurityGroupRequest method.
966//    req, resp := client.CreateClusterSecurityGroupRequest(params)
967//
968//    err := req.Send()
969//    if err == nil { // resp is now filled
970//        fmt.Println(resp)
971//    }
972//
973// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSecurityGroup
974func (c *Redshift) CreateClusterSecurityGroupRequest(input *CreateClusterSecurityGroupInput) (req *request.Request, output *CreateClusterSecurityGroupOutput) {
975	op := &request.Operation{
976		Name:       opCreateClusterSecurityGroup,
977		HTTPMethod: "POST",
978		HTTPPath:   "/",
979	}
980
981	if input == nil {
982		input = &CreateClusterSecurityGroupInput{}
983	}
984
985	output = &CreateClusterSecurityGroupOutput{}
986	req = c.newRequest(op, input, output)
987	return
988}
989
990// CreateClusterSecurityGroup API operation for Amazon Redshift.
991//
992// Creates a new Amazon Redshift security group. You use security groups to
993// control access to non-VPC clusters.
994//
995// For information about managing security groups, go to Amazon Redshift Cluster
996// Security Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
997// in the Amazon Redshift Cluster Management Guide.
998//
999// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1000// with awserr.Error's Code and Message methods to get detailed information about
1001// the error.
1002//
1003// See the AWS API reference guide for Amazon Redshift's
1004// API operation CreateClusterSecurityGroup for usage and error information.
1005//
1006// Returned Error Codes:
1007//   * ErrCodeClusterSecurityGroupAlreadyExistsFault "ClusterSecurityGroupAlreadyExists"
1008//   A cluster security group with the same name already exists.
1009//
1010//   * ErrCodeClusterSecurityGroupQuotaExceededFault "QuotaExceeded.ClusterSecurityGroup"
1011//   The request would result in the user exceeding the allowed number of cluster
1012//   security groups. For information about increasing your quota, go to Limits
1013//   in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1014//   in the Amazon Redshift Cluster Management Guide.
1015//
1016//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1017//   You have exceeded the number of tags allowed.
1018//
1019//   * ErrCodeInvalidTagFault "InvalidTagFault"
1020//   The tag is invalid.
1021//
1022// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSecurityGroup
1023func (c *Redshift) CreateClusterSecurityGroup(input *CreateClusterSecurityGroupInput) (*CreateClusterSecurityGroupOutput, error) {
1024	req, out := c.CreateClusterSecurityGroupRequest(input)
1025	return out, req.Send()
1026}
1027
1028// CreateClusterSecurityGroupWithContext is the same as CreateClusterSecurityGroup with the addition of
1029// the ability to pass a context and additional request options.
1030//
1031// See CreateClusterSecurityGroup for details on how to use this API operation.
1032//
1033// The context must be non-nil and will be used for request cancellation. If
1034// the context is nil a panic will occur. In the future the SDK may create
1035// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1036// for more information on using Contexts.
1037func (c *Redshift) CreateClusterSecurityGroupWithContext(ctx aws.Context, input *CreateClusterSecurityGroupInput, opts ...request.Option) (*CreateClusterSecurityGroupOutput, error) {
1038	req, out := c.CreateClusterSecurityGroupRequest(input)
1039	req.SetContext(ctx)
1040	req.ApplyOptions(opts...)
1041	return out, req.Send()
1042}
1043
1044const opCreateClusterSnapshot = "CreateClusterSnapshot"
1045
1046// CreateClusterSnapshotRequest generates a "aws/request.Request" representing the
1047// client's request for the CreateClusterSnapshot operation. The "output" return
1048// value will be populated with the request's response once the request completes
1049// successfully.
1050//
1051// Use "Send" method on the returned Request to send the API call to the service.
1052// the "output" return value is not valid until after Send returns without error.
1053//
1054// See CreateClusterSnapshot for more information on using the CreateClusterSnapshot
1055// API call, and error handling.
1056//
1057// This method is useful when you want to inject custom logic or configuration
1058// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1059//
1060//
1061//    // Example sending a request using the CreateClusterSnapshotRequest method.
1062//    req, resp := client.CreateClusterSnapshotRequest(params)
1063//
1064//    err := req.Send()
1065//    if err == nil { // resp is now filled
1066//        fmt.Println(resp)
1067//    }
1068//
1069// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSnapshot
1070func (c *Redshift) CreateClusterSnapshotRequest(input *CreateClusterSnapshotInput) (req *request.Request, output *CreateClusterSnapshotOutput) {
1071	op := &request.Operation{
1072		Name:       opCreateClusterSnapshot,
1073		HTTPMethod: "POST",
1074		HTTPPath:   "/",
1075	}
1076
1077	if input == nil {
1078		input = &CreateClusterSnapshotInput{}
1079	}
1080
1081	output = &CreateClusterSnapshotOutput{}
1082	req = c.newRequest(op, input, output)
1083	return
1084}
1085
1086// CreateClusterSnapshot API operation for Amazon Redshift.
1087//
1088// Creates a manual snapshot of the specified cluster. The cluster must be in
1089// the available state.
1090//
1091// For more information about working with snapshots, go to Amazon Redshift
1092// Snapshots (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
1093// in the Amazon Redshift Cluster Management Guide.
1094//
1095// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1096// with awserr.Error's Code and Message methods to get detailed information about
1097// the error.
1098//
1099// See the AWS API reference guide for Amazon Redshift's
1100// API operation CreateClusterSnapshot for usage and error information.
1101//
1102// Returned Error Codes:
1103//   * ErrCodeClusterSnapshotAlreadyExistsFault "ClusterSnapshotAlreadyExists"
1104//   The value specified as a snapshot identifier is already used by an existing
1105//   snapshot.
1106//
1107//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
1108//   The specified cluster is not in the available state.
1109//
1110//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
1111//   The ClusterIdentifier parameter does not refer to an existing cluster.
1112//
1113//   * ErrCodeClusterSnapshotQuotaExceededFault "ClusterSnapshotQuotaExceeded"
1114//   The request would result in the user exceeding the allowed number of cluster
1115//   snapshots.
1116//
1117//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1118//   You have exceeded the number of tags allowed.
1119//
1120//   * ErrCodeInvalidTagFault "InvalidTagFault"
1121//   The tag is invalid.
1122//
1123//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
1124//   The retention period specified is either in the past or is not a valid value.
1125//
1126//   The value must be either -1 or an integer between 1 and 3,653.
1127//
1128// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSnapshot
1129func (c *Redshift) CreateClusterSnapshot(input *CreateClusterSnapshotInput) (*CreateClusterSnapshotOutput, error) {
1130	req, out := c.CreateClusterSnapshotRequest(input)
1131	return out, req.Send()
1132}
1133
1134// CreateClusterSnapshotWithContext is the same as CreateClusterSnapshot with the addition of
1135// the ability to pass a context and additional request options.
1136//
1137// See CreateClusterSnapshot 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 *Redshift) CreateClusterSnapshotWithContext(ctx aws.Context, input *CreateClusterSnapshotInput, opts ...request.Option) (*CreateClusterSnapshotOutput, error) {
1144	req, out := c.CreateClusterSnapshotRequest(input)
1145	req.SetContext(ctx)
1146	req.ApplyOptions(opts...)
1147	return out, req.Send()
1148}
1149
1150const opCreateClusterSubnetGroup = "CreateClusterSubnetGroup"
1151
1152// CreateClusterSubnetGroupRequest generates a "aws/request.Request" representing the
1153// client's request for the CreateClusterSubnetGroup 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 CreateClusterSubnetGroup for more information on using the CreateClusterSubnetGroup
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 CreateClusterSubnetGroupRequest method.
1168//    req, resp := client.CreateClusterSubnetGroupRequest(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/redshift-2012-12-01/CreateClusterSubnetGroup
1176func (c *Redshift) CreateClusterSubnetGroupRequest(input *CreateClusterSubnetGroupInput) (req *request.Request, output *CreateClusterSubnetGroupOutput) {
1177	op := &request.Operation{
1178		Name:       opCreateClusterSubnetGroup,
1179		HTTPMethod: "POST",
1180		HTTPPath:   "/",
1181	}
1182
1183	if input == nil {
1184		input = &CreateClusterSubnetGroupInput{}
1185	}
1186
1187	output = &CreateClusterSubnetGroupOutput{}
1188	req = c.newRequest(op, input, output)
1189	return
1190}
1191
1192// CreateClusterSubnetGroup API operation for Amazon Redshift.
1193//
1194// Creates a new Amazon Redshift subnet group. You must provide a list of one
1195// or more subnets in your existing Amazon Virtual Private Cloud (Amazon VPC)
1196// when creating Amazon Redshift subnet group.
1197//
1198// For information about subnet groups, go to Amazon Redshift Cluster Subnet
1199// Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-cluster-subnet-groups.html)
1200// in the Amazon Redshift Cluster Management Guide.
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 Redshift's
1207// API operation CreateClusterSubnetGroup for usage and error information.
1208//
1209// Returned Error Codes:
1210//   * ErrCodeClusterSubnetGroupAlreadyExistsFault "ClusterSubnetGroupAlreadyExists"
1211//   A ClusterSubnetGroupName is already used by an existing cluster subnet group.
1212//
1213//   * ErrCodeClusterSubnetGroupQuotaExceededFault "ClusterSubnetGroupQuotaExceeded"
1214//   The request would result in user exceeding the allowed number of cluster
1215//   subnet groups. For information about increasing your quota, go to Limits
1216//   in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1217//   in the Amazon Redshift Cluster Management Guide.
1218//
1219//   * ErrCodeClusterSubnetQuotaExceededFault "ClusterSubnetQuotaExceededFault"
1220//   The request would result in user exceeding the allowed number of subnets
1221//   in a cluster subnet groups. For information about increasing your quota,
1222//   go to Limits in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1223//   in the Amazon Redshift Cluster Management Guide.
1224//
1225//   * ErrCodeInvalidSubnet "InvalidSubnet"
1226//   The requested subnet is not valid, or not all of the subnets are in the same
1227//   VPC.
1228//
1229//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
1230//   Your account is not authorized to perform the requested operation.
1231//
1232//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1233//   You have exceeded the number of tags allowed.
1234//
1235//   * ErrCodeInvalidTagFault "InvalidTagFault"
1236//   The tag is invalid.
1237//
1238//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
1239//   The request cannot be completed because a dependent service is throttling
1240//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
1241//
1242// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSubnetGroup
1243func (c *Redshift) CreateClusterSubnetGroup(input *CreateClusterSubnetGroupInput) (*CreateClusterSubnetGroupOutput, error) {
1244	req, out := c.CreateClusterSubnetGroupRequest(input)
1245	return out, req.Send()
1246}
1247
1248// CreateClusterSubnetGroupWithContext is the same as CreateClusterSubnetGroup with the addition of
1249// the ability to pass a context and additional request options.
1250//
1251// See CreateClusterSubnetGroup for details on how to use this API operation.
1252//
1253// The context must be non-nil and will be used for request cancellation. If
1254// the context is nil a panic will occur. In the future the SDK may create
1255// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1256// for more information on using Contexts.
1257func (c *Redshift) CreateClusterSubnetGroupWithContext(ctx aws.Context, input *CreateClusterSubnetGroupInput, opts ...request.Option) (*CreateClusterSubnetGroupOutput, error) {
1258	req, out := c.CreateClusterSubnetGroupRequest(input)
1259	req.SetContext(ctx)
1260	req.ApplyOptions(opts...)
1261	return out, req.Send()
1262}
1263
1264const opCreateEventSubscription = "CreateEventSubscription"
1265
1266// CreateEventSubscriptionRequest generates a "aws/request.Request" representing the
1267// client's request for the CreateEventSubscription operation. The "output" return
1268// value will be populated with the request's response once the request completes
1269// successfully.
1270//
1271// Use "Send" method on the returned Request to send the API call to the service.
1272// the "output" return value is not valid until after Send returns without error.
1273//
1274// See CreateEventSubscription for more information on using the CreateEventSubscription
1275// API call, and error handling.
1276//
1277// This method is useful when you want to inject custom logic or configuration
1278// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1279//
1280//
1281//    // Example sending a request using the CreateEventSubscriptionRequest method.
1282//    req, resp := client.CreateEventSubscriptionRequest(params)
1283//
1284//    err := req.Send()
1285//    if err == nil { // resp is now filled
1286//        fmt.Println(resp)
1287//    }
1288//
1289// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateEventSubscription
1290func (c *Redshift) CreateEventSubscriptionRequest(input *CreateEventSubscriptionInput) (req *request.Request, output *CreateEventSubscriptionOutput) {
1291	op := &request.Operation{
1292		Name:       opCreateEventSubscription,
1293		HTTPMethod: "POST",
1294		HTTPPath:   "/",
1295	}
1296
1297	if input == nil {
1298		input = &CreateEventSubscriptionInput{}
1299	}
1300
1301	output = &CreateEventSubscriptionOutput{}
1302	req = c.newRequest(op, input, output)
1303	return
1304}
1305
1306// CreateEventSubscription API operation for Amazon Redshift.
1307//
1308// Creates an Amazon Redshift event notification subscription. This action requires
1309// an ARN (Amazon Resource Name) of an Amazon SNS topic created by either the
1310// Amazon Redshift console, the Amazon SNS console, or the Amazon SNS API. To
1311// obtain an ARN with Amazon SNS, you must create a topic in Amazon SNS and
1312// subscribe to the topic. The ARN is displayed in the SNS console.
1313//
1314// You can specify the source type, and lists of Amazon Redshift source IDs,
1315// event categories, and event severities. Notifications will be sent for all
1316// events you want that match those criteria. For example, you can specify source
1317// type = cluster, source ID = my-cluster-1 and mycluster2, event categories
1318// = Availability, Backup, and severity = ERROR. The subscription will only
1319// send notifications for those ERROR events in the Availability and Backup
1320// categories for the specified clusters.
1321//
1322// If you specify both the source type and source IDs, such as source type =
1323// cluster and source identifier = my-cluster-1, notifications will be sent
1324// for all the cluster events for my-cluster-1. If you specify a source type
1325// but do not specify a source identifier, you will receive notice of the events
1326// for the objects of that type in your AWS account. If you do not specify either
1327// the SourceType nor the SourceIdentifier, you will be notified of events generated
1328// from all Amazon Redshift sources belonging to your AWS account. You must
1329// specify a source type if you specify a source ID.
1330//
1331// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1332// with awserr.Error's Code and Message methods to get detailed information about
1333// the error.
1334//
1335// See the AWS API reference guide for Amazon Redshift's
1336// API operation CreateEventSubscription for usage and error information.
1337//
1338// Returned Error Codes:
1339//   * ErrCodeEventSubscriptionQuotaExceededFault "EventSubscriptionQuotaExceeded"
1340//   The request would exceed the allowed number of event subscriptions for this
1341//   account. For information about increasing your quota, go to Limits in Amazon
1342//   Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1343//   in the Amazon Redshift Cluster Management Guide.
1344//
1345//   * ErrCodeSubscriptionAlreadyExistFault "SubscriptionAlreadyExist"
1346//   There is already an existing event notification subscription with the specified
1347//   name.
1348//
1349//   * ErrCodeSNSInvalidTopicFault "SNSInvalidTopic"
1350//   Amazon SNS has responded that there is a problem with the specified Amazon
1351//   SNS topic.
1352//
1353//   * ErrCodeSNSNoAuthorizationFault "SNSNoAuthorization"
1354//   You do not have permission to publish to the specified Amazon SNS topic.
1355//
1356//   * ErrCodeSNSTopicArnNotFoundFault "SNSTopicArnNotFound"
1357//   An Amazon SNS topic with the specified Amazon Resource Name (ARN) does not
1358//   exist.
1359//
1360//   * ErrCodeSubscriptionEventIdNotFoundFault "SubscriptionEventIdNotFound"
1361//   An Amazon Redshift event with the specified event ID does not exist.
1362//
1363//   * ErrCodeSubscriptionCategoryNotFoundFault "SubscriptionCategoryNotFound"
1364//   The value specified for the event category was not one of the allowed values,
1365//   or it specified a category that does not apply to the specified source type.
1366//   The allowed values are Configuration, Management, Monitoring, and Security.
1367//
1368//   * ErrCodeSubscriptionSeverityNotFoundFault "SubscriptionSeverityNotFound"
1369//   The value specified for the event severity was not one of the allowed values,
1370//   or it specified a severity that does not apply to the specified source type.
1371//   The allowed values are ERROR and INFO.
1372//
1373//   * ErrCodeSourceNotFoundFault "SourceNotFound"
1374//   The specified Amazon Redshift event source could not be found.
1375//
1376//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1377//   You have exceeded the number of tags allowed.
1378//
1379//   * ErrCodeInvalidTagFault "InvalidTagFault"
1380//   The tag is invalid.
1381//
1382// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateEventSubscription
1383func (c *Redshift) CreateEventSubscription(input *CreateEventSubscriptionInput) (*CreateEventSubscriptionOutput, error) {
1384	req, out := c.CreateEventSubscriptionRequest(input)
1385	return out, req.Send()
1386}
1387
1388// CreateEventSubscriptionWithContext is the same as CreateEventSubscription with the addition of
1389// the ability to pass a context and additional request options.
1390//
1391// See CreateEventSubscription for details on how to use this API operation.
1392//
1393// The context must be non-nil and will be used for request cancellation. If
1394// the context is nil a panic will occur. In the future the SDK may create
1395// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1396// for more information on using Contexts.
1397func (c *Redshift) CreateEventSubscriptionWithContext(ctx aws.Context, input *CreateEventSubscriptionInput, opts ...request.Option) (*CreateEventSubscriptionOutput, error) {
1398	req, out := c.CreateEventSubscriptionRequest(input)
1399	req.SetContext(ctx)
1400	req.ApplyOptions(opts...)
1401	return out, req.Send()
1402}
1403
1404const opCreateHsmClientCertificate = "CreateHsmClientCertificate"
1405
1406// CreateHsmClientCertificateRequest generates a "aws/request.Request" representing the
1407// client's request for the CreateHsmClientCertificate operation. The "output" return
1408// value will be populated with the request's response once the request completes
1409// successfully.
1410//
1411// Use "Send" method on the returned Request to send the API call to the service.
1412// the "output" return value is not valid until after Send returns without error.
1413//
1414// See CreateHsmClientCertificate for more information on using the CreateHsmClientCertificate
1415// API call, and error handling.
1416//
1417// This method is useful when you want to inject custom logic or configuration
1418// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1419//
1420//
1421//    // Example sending a request using the CreateHsmClientCertificateRequest method.
1422//    req, resp := client.CreateHsmClientCertificateRequest(params)
1423//
1424//    err := req.Send()
1425//    if err == nil { // resp is now filled
1426//        fmt.Println(resp)
1427//    }
1428//
1429// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateHsmClientCertificate
1430func (c *Redshift) CreateHsmClientCertificateRequest(input *CreateHsmClientCertificateInput) (req *request.Request, output *CreateHsmClientCertificateOutput) {
1431	op := &request.Operation{
1432		Name:       opCreateHsmClientCertificate,
1433		HTTPMethod: "POST",
1434		HTTPPath:   "/",
1435	}
1436
1437	if input == nil {
1438		input = &CreateHsmClientCertificateInput{}
1439	}
1440
1441	output = &CreateHsmClientCertificateOutput{}
1442	req = c.newRequest(op, input, output)
1443	return
1444}
1445
1446// CreateHsmClientCertificate API operation for Amazon Redshift.
1447//
1448// Creates an HSM client certificate that an Amazon Redshift cluster will use
1449// to connect to the client's HSM in order to store and retrieve the keys used
1450// to encrypt the cluster databases.
1451//
1452// The command returns a public key, which you must store in the HSM. In addition
1453// to creating the HSM certificate, you must create an Amazon Redshift HSM configuration
1454// that provides a cluster the information needed to store and use encryption
1455// keys in the HSM. For more information, go to Hardware Security Modules (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-HSM.html)
1456// in the Amazon Redshift Cluster Management Guide.
1457//
1458// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1459// with awserr.Error's Code and Message methods to get detailed information about
1460// the error.
1461//
1462// See the AWS API reference guide for Amazon Redshift's
1463// API operation CreateHsmClientCertificate for usage and error information.
1464//
1465// Returned Error Codes:
1466//   * ErrCodeHsmClientCertificateAlreadyExistsFault "HsmClientCertificateAlreadyExistsFault"
1467//   There is already an existing Amazon Redshift HSM client certificate with
1468//   the specified identifier.
1469//
1470//   * ErrCodeHsmClientCertificateQuotaExceededFault "HsmClientCertificateQuotaExceededFault"
1471//   The quota for HSM client certificates has been reached. For information about
1472//   increasing your quota, go to Limits in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1473//   in the Amazon Redshift Cluster Management Guide.
1474//
1475//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1476//   You have exceeded the number of tags allowed.
1477//
1478//   * ErrCodeInvalidTagFault "InvalidTagFault"
1479//   The tag is invalid.
1480//
1481// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateHsmClientCertificate
1482func (c *Redshift) CreateHsmClientCertificate(input *CreateHsmClientCertificateInput) (*CreateHsmClientCertificateOutput, error) {
1483	req, out := c.CreateHsmClientCertificateRequest(input)
1484	return out, req.Send()
1485}
1486
1487// CreateHsmClientCertificateWithContext is the same as CreateHsmClientCertificate with the addition of
1488// the ability to pass a context and additional request options.
1489//
1490// See CreateHsmClientCertificate for details on how to use this API operation.
1491//
1492// The context must be non-nil and will be used for request cancellation. If
1493// the context is nil a panic will occur. In the future the SDK may create
1494// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1495// for more information on using Contexts.
1496func (c *Redshift) CreateHsmClientCertificateWithContext(ctx aws.Context, input *CreateHsmClientCertificateInput, opts ...request.Option) (*CreateHsmClientCertificateOutput, error) {
1497	req, out := c.CreateHsmClientCertificateRequest(input)
1498	req.SetContext(ctx)
1499	req.ApplyOptions(opts...)
1500	return out, req.Send()
1501}
1502
1503const opCreateHsmConfiguration = "CreateHsmConfiguration"
1504
1505// CreateHsmConfigurationRequest generates a "aws/request.Request" representing the
1506// client's request for the CreateHsmConfiguration operation. The "output" return
1507// value will be populated with the request's response once the request completes
1508// successfully.
1509//
1510// Use "Send" method on the returned Request to send the API call to the service.
1511// the "output" return value is not valid until after Send returns without error.
1512//
1513// See CreateHsmConfiguration for more information on using the CreateHsmConfiguration
1514// API call, and error handling.
1515//
1516// This method is useful when you want to inject custom logic or configuration
1517// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1518//
1519//
1520//    // Example sending a request using the CreateHsmConfigurationRequest method.
1521//    req, resp := client.CreateHsmConfigurationRequest(params)
1522//
1523//    err := req.Send()
1524//    if err == nil { // resp is now filled
1525//        fmt.Println(resp)
1526//    }
1527//
1528// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateHsmConfiguration
1529func (c *Redshift) CreateHsmConfigurationRequest(input *CreateHsmConfigurationInput) (req *request.Request, output *CreateHsmConfigurationOutput) {
1530	op := &request.Operation{
1531		Name:       opCreateHsmConfiguration,
1532		HTTPMethod: "POST",
1533		HTTPPath:   "/",
1534	}
1535
1536	if input == nil {
1537		input = &CreateHsmConfigurationInput{}
1538	}
1539
1540	output = &CreateHsmConfigurationOutput{}
1541	req = c.newRequest(op, input, output)
1542	return
1543}
1544
1545// CreateHsmConfiguration API operation for Amazon Redshift.
1546//
1547// Creates an HSM configuration that contains the information required by an
1548// Amazon Redshift cluster to store and use database encryption keys in a Hardware
1549// Security Module (HSM). After creating the HSM configuration, you can specify
1550// it as a parameter when creating a cluster. The cluster will then store its
1551// encryption keys in the HSM.
1552//
1553// In addition to creating an HSM configuration, you must also create an HSM
1554// client certificate. For more information, go to Hardware Security Modules
1555// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-HSM.html)
1556// in the Amazon Redshift Cluster Management Guide.
1557//
1558// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1559// with awserr.Error's Code and Message methods to get detailed information about
1560// the error.
1561//
1562// See the AWS API reference guide for Amazon Redshift's
1563// API operation CreateHsmConfiguration for usage and error information.
1564//
1565// Returned Error Codes:
1566//   * ErrCodeHsmConfigurationAlreadyExistsFault "HsmConfigurationAlreadyExistsFault"
1567//   There is already an existing Amazon Redshift HSM configuration with the specified
1568//   identifier.
1569//
1570//   * ErrCodeHsmConfigurationQuotaExceededFault "HsmConfigurationQuotaExceededFault"
1571//   The quota for HSM configurations has been reached. For information about
1572//   increasing your quota, go to Limits in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1573//   in the Amazon Redshift Cluster Management Guide.
1574//
1575//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1576//   You have exceeded the number of tags allowed.
1577//
1578//   * ErrCodeInvalidTagFault "InvalidTagFault"
1579//   The tag is invalid.
1580//
1581// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateHsmConfiguration
1582func (c *Redshift) CreateHsmConfiguration(input *CreateHsmConfigurationInput) (*CreateHsmConfigurationOutput, error) {
1583	req, out := c.CreateHsmConfigurationRequest(input)
1584	return out, req.Send()
1585}
1586
1587// CreateHsmConfigurationWithContext is the same as CreateHsmConfiguration with the addition of
1588// the ability to pass a context and additional request options.
1589//
1590// See CreateHsmConfiguration for details on how to use this API operation.
1591//
1592// The context must be non-nil and will be used for request cancellation. If
1593// the context is nil a panic will occur. In the future the SDK may create
1594// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1595// for more information on using Contexts.
1596func (c *Redshift) CreateHsmConfigurationWithContext(ctx aws.Context, input *CreateHsmConfigurationInput, opts ...request.Option) (*CreateHsmConfigurationOutput, error) {
1597	req, out := c.CreateHsmConfigurationRequest(input)
1598	req.SetContext(ctx)
1599	req.ApplyOptions(opts...)
1600	return out, req.Send()
1601}
1602
1603const opCreateScheduledAction = "CreateScheduledAction"
1604
1605// CreateScheduledActionRequest generates a "aws/request.Request" representing the
1606// client's request for the CreateScheduledAction operation. The "output" return
1607// value will be populated with the request's response once the request completes
1608// successfully.
1609//
1610// Use "Send" method on the returned Request to send the API call to the service.
1611// the "output" return value is not valid until after Send returns without error.
1612//
1613// See CreateScheduledAction for more information on using the CreateScheduledAction
1614// API call, and error handling.
1615//
1616// This method is useful when you want to inject custom logic or configuration
1617// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1618//
1619//
1620//    // Example sending a request using the CreateScheduledActionRequest method.
1621//    req, resp := client.CreateScheduledActionRequest(params)
1622//
1623//    err := req.Send()
1624//    if err == nil { // resp is now filled
1625//        fmt.Println(resp)
1626//    }
1627//
1628// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateScheduledAction
1629func (c *Redshift) CreateScheduledActionRequest(input *CreateScheduledActionInput) (req *request.Request, output *CreateScheduledActionOutput) {
1630	op := &request.Operation{
1631		Name:       opCreateScheduledAction,
1632		HTTPMethod: "POST",
1633		HTTPPath:   "/",
1634	}
1635
1636	if input == nil {
1637		input = &CreateScheduledActionInput{}
1638	}
1639
1640	output = &CreateScheduledActionOutput{}
1641	req = c.newRequest(op, input, output)
1642	return
1643}
1644
1645// CreateScheduledAction API operation for Amazon Redshift.
1646//
1647// Creates a scheduled action. A scheduled action contains a schedule and an
1648// Amazon Redshift API action. For example, you can create a schedule of when
1649// to run the ResizeCluster API operation.
1650//
1651// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1652// with awserr.Error's Code and Message methods to get detailed information about
1653// the error.
1654//
1655// See the AWS API reference guide for Amazon Redshift's
1656// API operation CreateScheduledAction for usage and error information.
1657//
1658// Returned Error Codes:
1659//   * ErrCodeScheduledActionAlreadyExistsFault "ScheduledActionAlreadyExists"
1660//   The scheduled action already exists.
1661//
1662//   * ErrCodeScheduledActionQuotaExceededFault "ScheduledActionQuotaExceeded"
1663//   The quota for scheduled actions exceeded.
1664//
1665//   * ErrCodeScheduledActionTypeUnsupportedFault "ScheduledActionTypeUnsupported"
1666//   The action type specified for a scheduled action is not supported.
1667//
1668//   * ErrCodeInvalidScheduleFault "InvalidSchedule"
1669//   The schedule you submitted isn't valid.
1670//
1671//   * ErrCodeInvalidScheduledActionFault "InvalidScheduledAction"
1672//   The scheduled action is not valid.
1673//
1674//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
1675//   Your account is not authorized to perform the requested operation.
1676//
1677// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateScheduledAction
1678func (c *Redshift) CreateScheduledAction(input *CreateScheduledActionInput) (*CreateScheduledActionOutput, error) {
1679	req, out := c.CreateScheduledActionRequest(input)
1680	return out, req.Send()
1681}
1682
1683// CreateScheduledActionWithContext is the same as CreateScheduledAction with the addition of
1684// the ability to pass a context and additional request options.
1685//
1686// See CreateScheduledAction for details on how to use this API operation.
1687//
1688// The context must be non-nil and will be used for request cancellation. If
1689// the context is nil a panic will occur. In the future the SDK may create
1690// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1691// for more information on using Contexts.
1692func (c *Redshift) CreateScheduledActionWithContext(ctx aws.Context, input *CreateScheduledActionInput, opts ...request.Option) (*CreateScheduledActionOutput, error) {
1693	req, out := c.CreateScheduledActionRequest(input)
1694	req.SetContext(ctx)
1695	req.ApplyOptions(opts...)
1696	return out, req.Send()
1697}
1698
1699const opCreateSnapshotCopyGrant = "CreateSnapshotCopyGrant"
1700
1701// CreateSnapshotCopyGrantRequest generates a "aws/request.Request" representing the
1702// client's request for the CreateSnapshotCopyGrant operation. The "output" return
1703// value will be populated with the request's response once the request completes
1704// successfully.
1705//
1706// Use "Send" method on the returned Request to send the API call to the service.
1707// the "output" return value is not valid until after Send returns without error.
1708//
1709// See CreateSnapshotCopyGrant for more information on using the CreateSnapshotCopyGrant
1710// API call, and error handling.
1711//
1712// This method is useful when you want to inject custom logic or configuration
1713// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1714//
1715//
1716//    // Example sending a request using the CreateSnapshotCopyGrantRequest method.
1717//    req, resp := client.CreateSnapshotCopyGrantRequest(params)
1718//
1719//    err := req.Send()
1720//    if err == nil { // resp is now filled
1721//        fmt.Println(resp)
1722//    }
1723//
1724// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotCopyGrant
1725func (c *Redshift) CreateSnapshotCopyGrantRequest(input *CreateSnapshotCopyGrantInput) (req *request.Request, output *CreateSnapshotCopyGrantOutput) {
1726	op := &request.Operation{
1727		Name:       opCreateSnapshotCopyGrant,
1728		HTTPMethod: "POST",
1729		HTTPPath:   "/",
1730	}
1731
1732	if input == nil {
1733		input = &CreateSnapshotCopyGrantInput{}
1734	}
1735
1736	output = &CreateSnapshotCopyGrantOutput{}
1737	req = c.newRequest(op, input, output)
1738	return
1739}
1740
1741// CreateSnapshotCopyGrant API operation for Amazon Redshift.
1742//
1743// Creates a snapshot copy grant that permits Amazon Redshift to use a customer
1744// master key (CMK) from AWS Key Management Service (AWS KMS) to encrypt copied
1745// snapshots in a destination region.
1746//
1747// For more information about managing snapshot copy grants, go to Amazon Redshift
1748// Database Encryption (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
1749// in the Amazon Redshift Cluster Management Guide.
1750//
1751// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1752// with awserr.Error's Code and Message methods to get detailed information about
1753// the error.
1754//
1755// See the AWS API reference guide for Amazon Redshift's
1756// API operation CreateSnapshotCopyGrant for usage and error information.
1757//
1758// Returned Error Codes:
1759//   * ErrCodeSnapshotCopyGrantAlreadyExistsFault "SnapshotCopyGrantAlreadyExistsFault"
1760//   The snapshot copy grant can't be created because a grant with the same name
1761//   already exists.
1762//
1763//   * ErrCodeSnapshotCopyGrantQuotaExceededFault "SnapshotCopyGrantQuotaExceededFault"
1764//   The AWS account has exceeded the maximum number of snapshot copy grants in
1765//   this region.
1766//
1767//   * ErrCodeLimitExceededFault "LimitExceededFault"
1768//   The encryption key has exceeded its grant limit in AWS KMS.
1769//
1770//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1771//   You have exceeded the number of tags allowed.
1772//
1773//   * ErrCodeInvalidTagFault "InvalidTagFault"
1774//   The tag is invalid.
1775//
1776//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
1777//   The request cannot be completed because a dependent service is throttling
1778//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
1779//
1780// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotCopyGrant
1781func (c *Redshift) CreateSnapshotCopyGrant(input *CreateSnapshotCopyGrantInput) (*CreateSnapshotCopyGrantOutput, error) {
1782	req, out := c.CreateSnapshotCopyGrantRequest(input)
1783	return out, req.Send()
1784}
1785
1786// CreateSnapshotCopyGrantWithContext is the same as CreateSnapshotCopyGrant with the addition of
1787// the ability to pass a context and additional request options.
1788//
1789// See CreateSnapshotCopyGrant for details on how to use this API operation.
1790//
1791// The context must be non-nil and will be used for request cancellation. If
1792// the context is nil a panic will occur. In the future the SDK may create
1793// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1794// for more information on using Contexts.
1795func (c *Redshift) CreateSnapshotCopyGrantWithContext(ctx aws.Context, input *CreateSnapshotCopyGrantInput, opts ...request.Option) (*CreateSnapshotCopyGrantOutput, error) {
1796	req, out := c.CreateSnapshotCopyGrantRequest(input)
1797	req.SetContext(ctx)
1798	req.ApplyOptions(opts...)
1799	return out, req.Send()
1800}
1801
1802const opCreateSnapshotSchedule = "CreateSnapshotSchedule"
1803
1804// CreateSnapshotScheduleRequest generates a "aws/request.Request" representing the
1805// client's request for the CreateSnapshotSchedule operation. The "output" return
1806// value will be populated with the request's response once the request completes
1807// successfully.
1808//
1809// Use "Send" method on the returned Request to send the API call to the service.
1810// the "output" return value is not valid until after Send returns without error.
1811//
1812// See CreateSnapshotSchedule for more information on using the CreateSnapshotSchedule
1813// API call, and error handling.
1814//
1815// This method is useful when you want to inject custom logic or configuration
1816// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1817//
1818//
1819//    // Example sending a request using the CreateSnapshotScheduleRequest method.
1820//    req, resp := client.CreateSnapshotScheduleRequest(params)
1821//
1822//    err := req.Send()
1823//    if err == nil { // resp is now filled
1824//        fmt.Println(resp)
1825//    }
1826//
1827// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotSchedule
1828func (c *Redshift) CreateSnapshotScheduleRequest(input *CreateSnapshotScheduleInput) (req *request.Request, output *CreateSnapshotScheduleOutput) {
1829	op := &request.Operation{
1830		Name:       opCreateSnapshotSchedule,
1831		HTTPMethod: "POST",
1832		HTTPPath:   "/",
1833	}
1834
1835	if input == nil {
1836		input = &CreateSnapshotScheduleInput{}
1837	}
1838
1839	output = &CreateSnapshotScheduleOutput{}
1840	req = c.newRequest(op, input, output)
1841	return
1842}
1843
1844// CreateSnapshotSchedule API operation for Amazon Redshift.
1845//
1846// Create a snapshot schedule that can be associated to a cluster and which
1847// overrides the default system backup schedule.
1848//
1849// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1850// with awserr.Error's Code and Message methods to get detailed information about
1851// the error.
1852//
1853// See the AWS API reference guide for Amazon Redshift's
1854// API operation CreateSnapshotSchedule for usage and error information.
1855//
1856// Returned Error Codes:
1857//   * ErrCodeSnapshotScheduleAlreadyExistsFault "SnapshotScheduleAlreadyExists"
1858//   The specified snapshot schedule already exists.
1859//
1860//   * ErrCodeInvalidScheduleFault "InvalidSchedule"
1861//   The schedule you submitted isn't valid.
1862//
1863//   * ErrCodeSnapshotScheduleQuotaExceededFault "SnapshotScheduleQuotaExceeded"
1864//   You have exceeded the quota of snapshot schedules.
1865//
1866//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1867//   You have exceeded the number of tags allowed.
1868//
1869//   * ErrCodeScheduleDefinitionTypeUnsupportedFault "ScheduleDefinitionTypeUnsupported"
1870//   The definition you submitted is not supported.
1871//
1872// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotSchedule
1873func (c *Redshift) CreateSnapshotSchedule(input *CreateSnapshotScheduleInput) (*CreateSnapshotScheduleOutput, error) {
1874	req, out := c.CreateSnapshotScheduleRequest(input)
1875	return out, req.Send()
1876}
1877
1878// CreateSnapshotScheduleWithContext is the same as CreateSnapshotSchedule with the addition of
1879// the ability to pass a context and additional request options.
1880//
1881// See CreateSnapshotSchedule for details on how to use this API operation.
1882//
1883// The context must be non-nil and will be used for request cancellation. If
1884// the context is nil a panic will occur. In the future the SDK may create
1885// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1886// for more information on using Contexts.
1887func (c *Redshift) CreateSnapshotScheduleWithContext(ctx aws.Context, input *CreateSnapshotScheduleInput, opts ...request.Option) (*CreateSnapshotScheduleOutput, error) {
1888	req, out := c.CreateSnapshotScheduleRequest(input)
1889	req.SetContext(ctx)
1890	req.ApplyOptions(opts...)
1891	return out, req.Send()
1892}
1893
1894const opCreateTags = "CreateTags"
1895
1896// CreateTagsRequest generates a "aws/request.Request" representing the
1897// client's request for the CreateTags operation. The "output" return
1898// value will be populated with the request's response once the request completes
1899// successfully.
1900//
1901// Use "Send" method on the returned Request to send the API call to the service.
1902// the "output" return value is not valid until after Send returns without error.
1903//
1904// See CreateTags for more information on using the CreateTags
1905// API call, and error handling.
1906//
1907// This method is useful when you want to inject custom logic or configuration
1908// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1909//
1910//
1911//    // Example sending a request using the CreateTagsRequest method.
1912//    req, resp := client.CreateTagsRequest(params)
1913//
1914//    err := req.Send()
1915//    if err == nil { // resp is now filled
1916//        fmt.Println(resp)
1917//    }
1918//
1919// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateTags
1920func (c *Redshift) CreateTagsRequest(input *CreateTagsInput) (req *request.Request, output *CreateTagsOutput) {
1921	op := &request.Operation{
1922		Name:       opCreateTags,
1923		HTTPMethod: "POST",
1924		HTTPPath:   "/",
1925	}
1926
1927	if input == nil {
1928		input = &CreateTagsInput{}
1929	}
1930
1931	output = &CreateTagsOutput{}
1932	req = c.newRequest(op, input, output)
1933	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1934	return
1935}
1936
1937// CreateTags API operation for Amazon Redshift.
1938//
1939// Adds tags to a cluster.
1940//
1941// A resource can have up to 50 tags. If you try to create more than 50 tags
1942// for a resource, you will receive an error and the attempt will fail.
1943//
1944// If you specify a key that already exists for the resource, the value for
1945// that key will be updated with the new value.
1946//
1947// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1948// with awserr.Error's Code and Message methods to get detailed information about
1949// the error.
1950//
1951// See the AWS API reference guide for Amazon Redshift's
1952// API operation CreateTags for usage and error information.
1953//
1954// Returned Error Codes:
1955//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1956//   You have exceeded the number of tags allowed.
1957//
1958//   * ErrCodeResourceNotFoundFault "ResourceNotFoundFault"
1959//   The resource could not be found.
1960//
1961//   * ErrCodeInvalidTagFault "InvalidTagFault"
1962//   The tag is invalid.
1963//
1964// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateTags
1965func (c *Redshift) CreateTags(input *CreateTagsInput) (*CreateTagsOutput, error) {
1966	req, out := c.CreateTagsRequest(input)
1967	return out, req.Send()
1968}
1969
1970// CreateTagsWithContext is the same as CreateTags with the addition of
1971// the ability to pass a context and additional request options.
1972//
1973// See CreateTags for details on how to use this API operation.
1974//
1975// The context must be non-nil and will be used for request cancellation. If
1976// the context is nil a panic will occur. In the future the SDK may create
1977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1978// for more information on using Contexts.
1979func (c *Redshift) CreateTagsWithContext(ctx aws.Context, input *CreateTagsInput, opts ...request.Option) (*CreateTagsOutput, error) {
1980	req, out := c.CreateTagsRequest(input)
1981	req.SetContext(ctx)
1982	req.ApplyOptions(opts...)
1983	return out, req.Send()
1984}
1985
1986const opCreateUsageLimit = "CreateUsageLimit"
1987
1988// CreateUsageLimitRequest generates a "aws/request.Request" representing the
1989// client's request for the CreateUsageLimit operation. The "output" return
1990// value will be populated with the request's response once the request completes
1991// successfully.
1992//
1993// Use "Send" method on the returned Request to send the API call to the service.
1994// the "output" return value is not valid until after Send returns without error.
1995//
1996// See CreateUsageLimit for more information on using the CreateUsageLimit
1997// API call, and error handling.
1998//
1999// This method is useful when you want to inject custom logic or configuration
2000// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2001//
2002//
2003//    // Example sending a request using the CreateUsageLimitRequest method.
2004//    req, resp := client.CreateUsageLimitRequest(params)
2005//
2006//    err := req.Send()
2007//    if err == nil { // resp is now filled
2008//        fmt.Println(resp)
2009//    }
2010//
2011// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateUsageLimit
2012func (c *Redshift) CreateUsageLimitRequest(input *CreateUsageLimitInput) (req *request.Request, output *CreateUsageLimitOutput) {
2013	op := &request.Operation{
2014		Name:       opCreateUsageLimit,
2015		HTTPMethod: "POST",
2016		HTTPPath:   "/",
2017	}
2018
2019	if input == nil {
2020		input = &CreateUsageLimitInput{}
2021	}
2022
2023	output = &CreateUsageLimitOutput{}
2024	req = c.newRequest(op, input, output)
2025	return
2026}
2027
2028// CreateUsageLimit API operation for Amazon Redshift.
2029//
2030// Creates a usage limit for a specified Amazon Redshift feature on a cluster.
2031// The usage limit is identified by the returned usage limit identifier.
2032//
2033// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2034// with awserr.Error's Code and Message methods to get detailed information about
2035// the error.
2036//
2037// See the AWS API reference guide for Amazon Redshift's
2038// API operation CreateUsageLimit for usage and error information.
2039//
2040// Returned Error Codes:
2041//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
2042//   The ClusterIdentifier parameter does not refer to an existing cluster.
2043//
2044//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
2045//   The specified cluster is not in the available state.
2046//
2047//   * ErrCodeLimitExceededFault "LimitExceededFault"
2048//   The encryption key has exceeded its grant limit in AWS KMS.
2049//
2050//   * ErrCodeUsageLimitAlreadyExistsFault "UsageLimitAlreadyExists"
2051//   The usage limit already exists.
2052//
2053//   * ErrCodeInvalidUsageLimitFault "InvalidUsageLimit"
2054//   The usage limit is not valid.
2055//
2056//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
2057//   You have exceeded the number of tags allowed.
2058//
2059//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
2060//   The requested operation isn't supported.
2061//
2062// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateUsageLimit
2063func (c *Redshift) CreateUsageLimit(input *CreateUsageLimitInput) (*CreateUsageLimitOutput, error) {
2064	req, out := c.CreateUsageLimitRequest(input)
2065	return out, req.Send()
2066}
2067
2068// CreateUsageLimitWithContext is the same as CreateUsageLimit with the addition of
2069// the ability to pass a context and additional request options.
2070//
2071// See CreateUsageLimit for details on how to use this API operation.
2072//
2073// The context must be non-nil and will be used for request cancellation. If
2074// the context is nil a panic will occur. In the future the SDK may create
2075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2076// for more information on using Contexts.
2077func (c *Redshift) CreateUsageLimitWithContext(ctx aws.Context, input *CreateUsageLimitInput, opts ...request.Option) (*CreateUsageLimitOutput, error) {
2078	req, out := c.CreateUsageLimitRequest(input)
2079	req.SetContext(ctx)
2080	req.ApplyOptions(opts...)
2081	return out, req.Send()
2082}
2083
2084const opDeleteCluster = "DeleteCluster"
2085
2086// DeleteClusterRequest generates a "aws/request.Request" representing the
2087// client's request for the DeleteCluster operation. The "output" return
2088// value will be populated with the request's response once the request completes
2089// successfully.
2090//
2091// Use "Send" method on the returned Request to send the API call to the service.
2092// the "output" return value is not valid until after Send returns without error.
2093//
2094// See DeleteCluster for more information on using the DeleteCluster
2095// API call, and error handling.
2096//
2097// This method is useful when you want to inject custom logic or configuration
2098// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2099//
2100//
2101//    // Example sending a request using the DeleteClusterRequest method.
2102//    req, resp := client.DeleteClusterRequest(params)
2103//
2104//    err := req.Send()
2105//    if err == nil { // resp is now filled
2106//        fmt.Println(resp)
2107//    }
2108//
2109// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteCluster
2110func (c *Redshift) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
2111	op := &request.Operation{
2112		Name:       opDeleteCluster,
2113		HTTPMethod: "POST",
2114		HTTPPath:   "/",
2115	}
2116
2117	if input == nil {
2118		input = &DeleteClusterInput{}
2119	}
2120
2121	output = &DeleteClusterOutput{}
2122	req = c.newRequest(op, input, output)
2123	return
2124}
2125
2126// DeleteCluster API operation for Amazon Redshift.
2127//
2128// Deletes a previously provisioned cluster without its final snapshot being
2129// created. A successful response from the web service indicates that the request
2130// was received correctly. Use DescribeClusters to monitor the status of the
2131// deletion. The delete operation cannot be canceled or reverted once submitted.
2132// For more information about managing clusters, go to Amazon Redshift Clusters
2133// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
2134// in the Amazon Redshift Cluster Management Guide.
2135//
2136// If you want to shut down the cluster and retain it for future use, set SkipFinalClusterSnapshot
2137// to false and specify a name for FinalClusterSnapshotIdentifier. You can later
2138// restore this snapshot to resume using the cluster. If a final cluster snapshot
2139// is requested, the status of the cluster will be "final-snapshot" while the
2140// snapshot is being taken, then it's "deleting" once Amazon Redshift begins
2141// deleting the cluster.
2142//
2143// For more information about managing clusters, go to Amazon Redshift Clusters
2144// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
2145// in the Amazon Redshift Cluster Management Guide.
2146//
2147// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2148// with awserr.Error's Code and Message methods to get detailed information about
2149// the error.
2150//
2151// See the AWS API reference guide for Amazon Redshift's
2152// API operation DeleteCluster for usage and error information.
2153//
2154// Returned Error Codes:
2155//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
2156//   The ClusterIdentifier parameter does not refer to an existing cluster.
2157//
2158//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
2159//   The specified cluster is not in the available state.
2160//
2161//   * ErrCodeClusterSnapshotAlreadyExistsFault "ClusterSnapshotAlreadyExists"
2162//   The value specified as a snapshot identifier is already used by an existing
2163//   snapshot.
2164//
2165//   * ErrCodeClusterSnapshotQuotaExceededFault "ClusterSnapshotQuotaExceeded"
2166//   The request would result in the user exceeding the allowed number of cluster
2167//   snapshots.
2168//
2169//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
2170//   The retention period specified is either in the past or is not a valid value.
2171//
2172//   The value must be either -1 or an integer between 1 and 3,653.
2173//
2174// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteCluster
2175func (c *Redshift) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
2176	req, out := c.DeleteClusterRequest(input)
2177	return out, req.Send()
2178}
2179
2180// DeleteClusterWithContext is the same as DeleteCluster with the addition of
2181// the ability to pass a context and additional request options.
2182//
2183// See DeleteCluster for details on how to use this API operation.
2184//
2185// The context must be non-nil and will be used for request cancellation. If
2186// the context is nil a panic will occur. In the future the SDK may create
2187// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2188// for more information on using Contexts.
2189func (c *Redshift) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
2190	req, out := c.DeleteClusterRequest(input)
2191	req.SetContext(ctx)
2192	req.ApplyOptions(opts...)
2193	return out, req.Send()
2194}
2195
2196const opDeleteClusterParameterGroup = "DeleteClusterParameterGroup"
2197
2198// DeleteClusterParameterGroupRequest generates a "aws/request.Request" representing the
2199// client's request for the DeleteClusterParameterGroup operation. The "output" return
2200// value will be populated with the request's response once the request completes
2201// successfully.
2202//
2203// Use "Send" method on the returned Request to send the API call to the service.
2204// the "output" return value is not valid until after Send returns without error.
2205//
2206// See DeleteClusterParameterGroup for more information on using the DeleteClusterParameterGroup
2207// API call, and error handling.
2208//
2209// This method is useful when you want to inject custom logic or configuration
2210// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2211//
2212//
2213//    // Example sending a request using the DeleteClusterParameterGroupRequest method.
2214//    req, resp := client.DeleteClusterParameterGroupRequest(params)
2215//
2216//    err := req.Send()
2217//    if err == nil { // resp is now filled
2218//        fmt.Println(resp)
2219//    }
2220//
2221// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterParameterGroup
2222func (c *Redshift) DeleteClusterParameterGroupRequest(input *DeleteClusterParameterGroupInput) (req *request.Request, output *DeleteClusterParameterGroupOutput) {
2223	op := &request.Operation{
2224		Name:       opDeleteClusterParameterGroup,
2225		HTTPMethod: "POST",
2226		HTTPPath:   "/",
2227	}
2228
2229	if input == nil {
2230		input = &DeleteClusterParameterGroupInput{}
2231	}
2232
2233	output = &DeleteClusterParameterGroupOutput{}
2234	req = c.newRequest(op, input, output)
2235	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2236	return
2237}
2238
2239// DeleteClusterParameterGroup API operation for Amazon Redshift.
2240//
2241// Deletes a specified Amazon Redshift parameter group.
2242//
2243// You cannot delete a parameter group if it is associated with a cluster.
2244//
2245// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2246// with awserr.Error's Code and Message methods to get detailed information about
2247// the error.
2248//
2249// See the AWS API reference guide for Amazon Redshift's
2250// API operation DeleteClusterParameterGroup for usage and error information.
2251//
2252// Returned Error Codes:
2253//   * ErrCodeInvalidClusterParameterGroupStateFault "InvalidClusterParameterGroupState"
2254//   The cluster parameter group action can not be completed because another task
2255//   is in progress that involves the parameter group. Wait a few moments and
2256//   try the operation again.
2257//
2258//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
2259//   The parameter group name does not refer to an existing parameter group.
2260//
2261// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterParameterGroup
2262func (c *Redshift) DeleteClusterParameterGroup(input *DeleteClusterParameterGroupInput) (*DeleteClusterParameterGroupOutput, error) {
2263	req, out := c.DeleteClusterParameterGroupRequest(input)
2264	return out, req.Send()
2265}
2266
2267// DeleteClusterParameterGroupWithContext is the same as DeleteClusterParameterGroup with the addition of
2268// the ability to pass a context and additional request options.
2269//
2270// See DeleteClusterParameterGroup for details on how to use this API operation.
2271//
2272// The context must be non-nil and will be used for request cancellation. If
2273// the context is nil a panic will occur. In the future the SDK may create
2274// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2275// for more information on using Contexts.
2276func (c *Redshift) DeleteClusterParameterGroupWithContext(ctx aws.Context, input *DeleteClusterParameterGroupInput, opts ...request.Option) (*DeleteClusterParameterGroupOutput, error) {
2277	req, out := c.DeleteClusterParameterGroupRequest(input)
2278	req.SetContext(ctx)
2279	req.ApplyOptions(opts...)
2280	return out, req.Send()
2281}
2282
2283const opDeleteClusterSecurityGroup = "DeleteClusterSecurityGroup"
2284
2285// DeleteClusterSecurityGroupRequest generates a "aws/request.Request" representing the
2286// client's request for the DeleteClusterSecurityGroup operation. The "output" return
2287// value will be populated with the request's response once the request completes
2288// successfully.
2289//
2290// Use "Send" method on the returned Request to send the API call to the service.
2291// the "output" return value is not valid until after Send returns without error.
2292//
2293// See DeleteClusterSecurityGroup for more information on using the DeleteClusterSecurityGroup
2294// API call, and error handling.
2295//
2296// This method is useful when you want to inject custom logic or configuration
2297// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2298//
2299//
2300//    // Example sending a request using the DeleteClusterSecurityGroupRequest method.
2301//    req, resp := client.DeleteClusterSecurityGroupRequest(params)
2302//
2303//    err := req.Send()
2304//    if err == nil { // resp is now filled
2305//        fmt.Println(resp)
2306//    }
2307//
2308// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSecurityGroup
2309func (c *Redshift) DeleteClusterSecurityGroupRequest(input *DeleteClusterSecurityGroupInput) (req *request.Request, output *DeleteClusterSecurityGroupOutput) {
2310	op := &request.Operation{
2311		Name:       opDeleteClusterSecurityGroup,
2312		HTTPMethod: "POST",
2313		HTTPPath:   "/",
2314	}
2315
2316	if input == nil {
2317		input = &DeleteClusterSecurityGroupInput{}
2318	}
2319
2320	output = &DeleteClusterSecurityGroupOutput{}
2321	req = c.newRequest(op, input, output)
2322	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2323	return
2324}
2325
2326// DeleteClusterSecurityGroup API operation for Amazon Redshift.
2327//
2328// Deletes an Amazon Redshift security group.
2329//
2330// You cannot delete a security group that is associated with any clusters.
2331// You cannot delete the default security group.
2332//
2333// For information about managing security groups, go to Amazon Redshift Cluster
2334// Security Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
2335// in the Amazon Redshift Cluster Management Guide.
2336//
2337// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2338// with awserr.Error's Code and Message methods to get detailed information about
2339// the error.
2340//
2341// See the AWS API reference guide for Amazon Redshift's
2342// API operation DeleteClusterSecurityGroup for usage and error information.
2343//
2344// Returned Error Codes:
2345//   * ErrCodeInvalidClusterSecurityGroupStateFault "InvalidClusterSecurityGroupState"
2346//   The state of the cluster security group is not available.
2347//
2348//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
2349//   The cluster security group name does not refer to an existing cluster security
2350//   group.
2351//
2352// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSecurityGroup
2353func (c *Redshift) DeleteClusterSecurityGroup(input *DeleteClusterSecurityGroupInput) (*DeleteClusterSecurityGroupOutput, error) {
2354	req, out := c.DeleteClusterSecurityGroupRequest(input)
2355	return out, req.Send()
2356}
2357
2358// DeleteClusterSecurityGroupWithContext is the same as DeleteClusterSecurityGroup with the addition of
2359// the ability to pass a context and additional request options.
2360//
2361// See DeleteClusterSecurityGroup for details on how to use this API operation.
2362//
2363// The context must be non-nil and will be used for request cancellation. If
2364// the context is nil a panic will occur. In the future the SDK may create
2365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2366// for more information on using Contexts.
2367func (c *Redshift) DeleteClusterSecurityGroupWithContext(ctx aws.Context, input *DeleteClusterSecurityGroupInput, opts ...request.Option) (*DeleteClusterSecurityGroupOutput, error) {
2368	req, out := c.DeleteClusterSecurityGroupRequest(input)
2369	req.SetContext(ctx)
2370	req.ApplyOptions(opts...)
2371	return out, req.Send()
2372}
2373
2374const opDeleteClusterSnapshot = "DeleteClusterSnapshot"
2375
2376// DeleteClusterSnapshotRequest generates a "aws/request.Request" representing the
2377// client's request for the DeleteClusterSnapshot operation. The "output" return
2378// value will be populated with the request's response once the request completes
2379// successfully.
2380//
2381// Use "Send" method on the returned Request to send the API call to the service.
2382// the "output" return value is not valid until after Send returns without error.
2383//
2384// See DeleteClusterSnapshot for more information on using the DeleteClusterSnapshot
2385// API call, and error handling.
2386//
2387// This method is useful when you want to inject custom logic or configuration
2388// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2389//
2390//
2391//    // Example sending a request using the DeleteClusterSnapshotRequest method.
2392//    req, resp := client.DeleteClusterSnapshotRequest(params)
2393//
2394//    err := req.Send()
2395//    if err == nil { // resp is now filled
2396//        fmt.Println(resp)
2397//    }
2398//
2399// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSnapshot
2400func (c *Redshift) DeleteClusterSnapshotRequest(input *DeleteClusterSnapshotInput) (req *request.Request, output *DeleteClusterSnapshotOutput) {
2401	op := &request.Operation{
2402		Name:       opDeleteClusterSnapshot,
2403		HTTPMethod: "POST",
2404		HTTPPath:   "/",
2405	}
2406
2407	if input == nil {
2408		input = &DeleteClusterSnapshotInput{}
2409	}
2410
2411	output = &DeleteClusterSnapshotOutput{}
2412	req = c.newRequest(op, input, output)
2413	return
2414}
2415
2416// DeleteClusterSnapshot API operation for Amazon Redshift.
2417//
2418// Deletes the specified manual snapshot. The snapshot must be in the available
2419// state, with no other users authorized to access the snapshot.
2420//
2421// Unlike automated snapshots, manual snapshots are retained even after you
2422// delete your cluster. Amazon Redshift does not delete your manual snapshots.
2423// You must delete manual snapshot explicitly to avoid getting charged. If other
2424// accounts are authorized to access the snapshot, you must revoke all of the
2425// authorizations before you can delete the snapshot.
2426//
2427// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2428// with awserr.Error's Code and Message methods to get detailed information about
2429// the error.
2430//
2431// See the AWS API reference guide for Amazon Redshift's
2432// API operation DeleteClusterSnapshot for usage and error information.
2433//
2434// Returned Error Codes:
2435//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
2436//   The specified cluster snapshot is not in the available state, or other accounts
2437//   are authorized to access the snapshot.
2438//
2439//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
2440//   The snapshot identifier does not refer to an existing cluster snapshot.
2441//
2442// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSnapshot
2443func (c *Redshift) DeleteClusterSnapshot(input *DeleteClusterSnapshotInput) (*DeleteClusterSnapshotOutput, error) {
2444	req, out := c.DeleteClusterSnapshotRequest(input)
2445	return out, req.Send()
2446}
2447
2448// DeleteClusterSnapshotWithContext is the same as DeleteClusterSnapshot with the addition of
2449// the ability to pass a context and additional request options.
2450//
2451// See DeleteClusterSnapshot for details on how to use this API operation.
2452//
2453// The context must be non-nil and will be used for request cancellation. If
2454// the context is nil a panic will occur. In the future the SDK may create
2455// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2456// for more information on using Contexts.
2457func (c *Redshift) DeleteClusterSnapshotWithContext(ctx aws.Context, input *DeleteClusterSnapshotInput, opts ...request.Option) (*DeleteClusterSnapshotOutput, error) {
2458	req, out := c.DeleteClusterSnapshotRequest(input)
2459	req.SetContext(ctx)
2460	req.ApplyOptions(opts...)
2461	return out, req.Send()
2462}
2463
2464const opDeleteClusterSubnetGroup = "DeleteClusterSubnetGroup"
2465
2466// DeleteClusterSubnetGroupRequest generates a "aws/request.Request" representing the
2467// client's request for the DeleteClusterSubnetGroup operation. The "output" return
2468// value will be populated with the request's response once the request completes
2469// successfully.
2470//
2471// Use "Send" method on the returned Request to send the API call to the service.
2472// the "output" return value is not valid until after Send returns without error.
2473//
2474// See DeleteClusterSubnetGroup for more information on using the DeleteClusterSubnetGroup
2475// API call, and error handling.
2476//
2477// This method is useful when you want to inject custom logic or configuration
2478// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2479//
2480//
2481//    // Example sending a request using the DeleteClusterSubnetGroupRequest method.
2482//    req, resp := client.DeleteClusterSubnetGroupRequest(params)
2483//
2484//    err := req.Send()
2485//    if err == nil { // resp is now filled
2486//        fmt.Println(resp)
2487//    }
2488//
2489// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSubnetGroup
2490func (c *Redshift) DeleteClusterSubnetGroupRequest(input *DeleteClusterSubnetGroupInput) (req *request.Request, output *DeleteClusterSubnetGroupOutput) {
2491	op := &request.Operation{
2492		Name:       opDeleteClusterSubnetGroup,
2493		HTTPMethod: "POST",
2494		HTTPPath:   "/",
2495	}
2496
2497	if input == nil {
2498		input = &DeleteClusterSubnetGroupInput{}
2499	}
2500
2501	output = &DeleteClusterSubnetGroupOutput{}
2502	req = c.newRequest(op, input, output)
2503	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2504	return
2505}
2506
2507// DeleteClusterSubnetGroup API operation for Amazon Redshift.
2508//
2509// Deletes the specified cluster subnet group.
2510//
2511// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2512// with awserr.Error's Code and Message methods to get detailed information about
2513// the error.
2514//
2515// See the AWS API reference guide for Amazon Redshift's
2516// API operation DeleteClusterSubnetGroup for usage and error information.
2517//
2518// Returned Error Codes:
2519//   * ErrCodeInvalidClusterSubnetGroupStateFault "InvalidClusterSubnetGroupStateFault"
2520//   The cluster subnet group cannot be deleted because it is in use.
2521//
2522//   * ErrCodeInvalidClusterSubnetStateFault "InvalidClusterSubnetStateFault"
2523//   The state of the subnet is invalid.
2524//
2525//   * ErrCodeClusterSubnetGroupNotFoundFault "ClusterSubnetGroupNotFoundFault"
2526//   The cluster subnet group name does not refer to an existing cluster subnet
2527//   group.
2528//
2529// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSubnetGroup
2530func (c *Redshift) DeleteClusterSubnetGroup(input *DeleteClusterSubnetGroupInput) (*DeleteClusterSubnetGroupOutput, error) {
2531	req, out := c.DeleteClusterSubnetGroupRequest(input)
2532	return out, req.Send()
2533}
2534
2535// DeleteClusterSubnetGroupWithContext is the same as DeleteClusterSubnetGroup with the addition of
2536// the ability to pass a context and additional request options.
2537//
2538// See DeleteClusterSubnetGroup for details on how to use this API operation.
2539//
2540// The context must be non-nil and will be used for request cancellation. If
2541// the context is nil a panic will occur. In the future the SDK may create
2542// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2543// for more information on using Contexts.
2544func (c *Redshift) DeleteClusterSubnetGroupWithContext(ctx aws.Context, input *DeleteClusterSubnetGroupInput, opts ...request.Option) (*DeleteClusterSubnetGroupOutput, error) {
2545	req, out := c.DeleteClusterSubnetGroupRequest(input)
2546	req.SetContext(ctx)
2547	req.ApplyOptions(opts...)
2548	return out, req.Send()
2549}
2550
2551const opDeleteEventSubscription = "DeleteEventSubscription"
2552
2553// DeleteEventSubscriptionRequest generates a "aws/request.Request" representing the
2554// client's request for the DeleteEventSubscription operation. The "output" return
2555// value will be populated with the request's response once the request completes
2556// successfully.
2557//
2558// Use "Send" method on the returned Request to send the API call to the service.
2559// the "output" return value is not valid until after Send returns without error.
2560//
2561// See DeleteEventSubscription for more information on using the DeleteEventSubscription
2562// API call, and error handling.
2563//
2564// This method is useful when you want to inject custom logic or configuration
2565// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2566//
2567//
2568//    // Example sending a request using the DeleteEventSubscriptionRequest method.
2569//    req, resp := client.DeleteEventSubscriptionRequest(params)
2570//
2571//    err := req.Send()
2572//    if err == nil { // resp is now filled
2573//        fmt.Println(resp)
2574//    }
2575//
2576// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteEventSubscription
2577func (c *Redshift) DeleteEventSubscriptionRequest(input *DeleteEventSubscriptionInput) (req *request.Request, output *DeleteEventSubscriptionOutput) {
2578	op := &request.Operation{
2579		Name:       opDeleteEventSubscription,
2580		HTTPMethod: "POST",
2581		HTTPPath:   "/",
2582	}
2583
2584	if input == nil {
2585		input = &DeleteEventSubscriptionInput{}
2586	}
2587
2588	output = &DeleteEventSubscriptionOutput{}
2589	req = c.newRequest(op, input, output)
2590	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2591	return
2592}
2593
2594// DeleteEventSubscription API operation for Amazon Redshift.
2595//
2596// Deletes an Amazon Redshift event notification subscription.
2597//
2598// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2599// with awserr.Error's Code and Message methods to get detailed information about
2600// the error.
2601//
2602// See the AWS API reference guide for Amazon Redshift's
2603// API operation DeleteEventSubscription for usage and error information.
2604//
2605// Returned Error Codes:
2606//   * ErrCodeSubscriptionNotFoundFault "SubscriptionNotFound"
2607//   An Amazon Redshift event notification subscription with the specified name
2608//   does not exist.
2609//
2610//   * ErrCodeInvalidSubscriptionStateFault "InvalidSubscriptionStateFault"
2611//   The subscription request is invalid because it is a duplicate request. This
2612//   subscription request is already in progress.
2613//
2614// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteEventSubscription
2615func (c *Redshift) DeleteEventSubscription(input *DeleteEventSubscriptionInput) (*DeleteEventSubscriptionOutput, error) {
2616	req, out := c.DeleteEventSubscriptionRequest(input)
2617	return out, req.Send()
2618}
2619
2620// DeleteEventSubscriptionWithContext is the same as DeleteEventSubscription with the addition of
2621// the ability to pass a context and additional request options.
2622//
2623// See DeleteEventSubscription for details on how to use this API operation.
2624//
2625// The context must be non-nil and will be used for request cancellation. If
2626// the context is nil a panic will occur. In the future the SDK may create
2627// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2628// for more information on using Contexts.
2629func (c *Redshift) DeleteEventSubscriptionWithContext(ctx aws.Context, input *DeleteEventSubscriptionInput, opts ...request.Option) (*DeleteEventSubscriptionOutput, error) {
2630	req, out := c.DeleteEventSubscriptionRequest(input)
2631	req.SetContext(ctx)
2632	req.ApplyOptions(opts...)
2633	return out, req.Send()
2634}
2635
2636const opDeleteHsmClientCertificate = "DeleteHsmClientCertificate"
2637
2638// DeleteHsmClientCertificateRequest generates a "aws/request.Request" representing the
2639// client's request for the DeleteHsmClientCertificate operation. The "output" return
2640// value will be populated with the request's response once the request completes
2641// successfully.
2642//
2643// Use "Send" method on the returned Request to send the API call to the service.
2644// the "output" return value is not valid until after Send returns without error.
2645//
2646// See DeleteHsmClientCertificate for more information on using the DeleteHsmClientCertificate
2647// API call, and error handling.
2648//
2649// This method is useful when you want to inject custom logic or configuration
2650// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2651//
2652//
2653//    // Example sending a request using the DeleteHsmClientCertificateRequest method.
2654//    req, resp := client.DeleteHsmClientCertificateRequest(params)
2655//
2656//    err := req.Send()
2657//    if err == nil { // resp is now filled
2658//        fmt.Println(resp)
2659//    }
2660//
2661// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteHsmClientCertificate
2662func (c *Redshift) DeleteHsmClientCertificateRequest(input *DeleteHsmClientCertificateInput) (req *request.Request, output *DeleteHsmClientCertificateOutput) {
2663	op := &request.Operation{
2664		Name:       opDeleteHsmClientCertificate,
2665		HTTPMethod: "POST",
2666		HTTPPath:   "/",
2667	}
2668
2669	if input == nil {
2670		input = &DeleteHsmClientCertificateInput{}
2671	}
2672
2673	output = &DeleteHsmClientCertificateOutput{}
2674	req = c.newRequest(op, input, output)
2675	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2676	return
2677}
2678
2679// DeleteHsmClientCertificate API operation for Amazon Redshift.
2680//
2681// Deletes the specified HSM client certificate.
2682//
2683// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2684// with awserr.Error's Code and Message methods to get detailed information about
2685// the error.
2686//
2687// See the AWS API reference guide for Amazon Redshift's
2688// API operation DeleteHsmClientCertificate for usage and error information.
2689//
2690// Returned Error Codes:
2691//   * ErrCodeInvalidHsmClientCertificateStateFault "InvalidHsmClientCertificateStateFault"
2692//   The specified HSM client certificate is not in the available state, or it
2693//   is still in use by one or more Amazon Redshift clusters.
2694//
2695//   * ErrCodeHsmClientCertificateNotFoundFault "HsmClientCertificateNotFoundFault"
2696//   There is no Amazon Redshift HSM client certificate with the specified identifier.
2697//
2698// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteHsmClientCertificate
2699func (c *Redshift) DeleteHsmClientCertificate(input *DeleteHsmClientCertificateInput) (*DeleteHsmClientCertificateOutput, error) {
2700	req, out := c.DeleteHsmClientCertificateRequest(input)
2701	return out, req.Send()
2702}
2703
2704// DeleteHsmClientCertificateWithContext is the same as DeleteHsmClientCertificate with the addition of
2705// the ability to pass a context and additional request options.
2706//
2707// See DeleteHsmClientCertificate for details on how to use this API operation.
2708//
2709// The context must be non-nil and will be used for request cancellation. If
2710// the context is nil a panic will occur. In the future the SDK may create
2711// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2712// for more information on using Contexts.
2713func (c *Redshift) DeleteHsmClientCertificateWithContext(ctx aws.Context, input *DeleteHsmClientCertificateInput, opts ...request.Option) (*DeleteHsmClientCertificateOutput, error) {
2714	req, out := c.DeleteHsmClientCertificateRequest(input)
2715	req.SetContext(ctx)
2716	req.ApplyOptions(opts...)
2717	return out, req.Send()
2718}
2719
2720const opDeleteHsmConfiguration = "DeleteHsmConfiguration"
2721
2722// DeleteHsmConfigurationRequest generates a "aws/request.Request" representing the
2723// client's request for the DeleteHsmConfiguration operation. The "output" return
2724// value will be populated with the request's response once the request completes
2725// successfully.
2726//
2727// Use "Send" method on the returned Request to send the API call to the service.
2728// the "output" return value is not valid until after Send returns without error.
2729//
2730// See DeleteHsmConfiguration for more information on using the DeleteHsmConfiguration
2731// API call, and error handling.
2732//
2733// This method is useful when you want to inject custom logic or configuration
2734// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2735//
2736//
2737//    // Example sending a request using the DeleteHsmConfigurationRequest method.
2738//    req, resp := client.DeleteHsmConfigurationRequest(params)
2739//
2740//    err := req.Send()
2741//    if err == nil { // resp is now filled
2742//        fmt.Println(resp)
2743//    }
2744//
2745// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteHsmConfiguration
2746func (c *Redshift) DeleteHsmConfigurationRequest(input *DeleteHsmConfigurationInput) (req *request.Request, output *DeleteHsmConfigurationOutput) {
2747	op := &request.Operation{
2748		Name:       opDeleteHsmConfiguration,
2749		HTTPMethod: "POST",
2750		HTTPPath:   "/",
2751	}
2752
2753	if input == nil {
2754		input = &DeleteHsmConfigurationInput{}
2755	}
2756
2757	output = &DeleteHsmConfigurationOutput{}
2758	req = c.newRequest(op, input, output)
2759	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2760	return
2761}
2762
2763// DeleteHsmConfiguration API operation for Amazon Redshift.
2764//
2765// Deletes the specified Amazon Redshift HSM configuration.
2766//
2767// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2768// with awserr.Error's Code and Message methods to get detailed information about
2769// the error.
2770//
2771// See the AWS API reference guide for Amazon Redshift's
2772// API operation DeleteHsmConfiguration for usage and error information.
2773//
2774// Returned Error Codes:
2775//   * ErrCodeInvalidHsmConfigurationStateFault "InvalidHsmConfigurationStateFault"
2776//   The specified HSM configuration is not in the available state, or it is still
2777//   in use by one or more Amazon Redshift clusters.
2778//
2779//   * ErrCodeHsmConfigurationNotFoundFault "HsmConfigurationNotFoundFault"
2780//   There is no Amazon Redshift HSM configuration with the specified identifier.
2781//
2782// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteHsmConfiguration
2783func (c *Redshift) DeleteHsmConfiguration(input *DeleteHsmConfigurationInput) (*DeleteHsmConfigurationOutput, error) {
2784	req, out := c.DeleteHsmConfigurationRequest(input)
2785	return out, req.Send()
2786}
2787
2788// DeleteHsmConfigurationWithContext is the same as DeleteHsmConfiguration with the addition of
2789// the ability to pass a context and additional request options.
2790//
2791// See DeleteHsmConfiguration for details on how to use this API operation.
2792//
2793// The context must be non-nil and will be used for request cancellation. If
2794// the context is nil a panic will occur. In the future the SDK may create
2795// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2796// for more information on using Contexts.
2797func (c *Redshift) DeleteHsmConfigurationWithContext(ctx aws.Context, input *DeleteHsmConfigurationInput, opts ...request.Option) (*DeleteHsmConfigurationOutput, error) {
2798	req, out := c.DeleteHsmConfigurationRequest(input)
2799	req.SetContext(ctx)
2800	req.ApplyOptions(opts...)
2801	return out, req.Send()
2802}
2803
2804const opDeleteScheduledAction = "DeleteScheduledAction"
2805
2806// DeleteScheduledActionRequest generates a "aws/request.Request" representing the
2807// client's request for the DeleteScheduledAction operation. The "output" return
2808// value will be populated with the request's response once the request completes
2809// successfully.
2810//
2811// Use "Send" method on the returned Request to send the API call to the service.
2812// the "output" return value is not valid until after Send returns without error.
2813//
2814// See DeleteScheduledAction for more information on using the DeleteScheduledAction
2815// API call, and error handling.
2816//
2817// This method is useful when you want to inject custom logic or configuration
2818// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2819//
2820//
2821//    // Example sending a request using the DeleteScheduledActionRequest method.
2822//    req, resp := client.DeleteScheduledActionRequest(params)
2823//
2824//    err := req.Send()
2825//    if err == nil { // resp is now filled
2826//        fmt.Println(resp)
2827//    }
2828//
2829// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteScheduledAction
2830func (c *Redshift) DeleteScheduledActionRequest(input *DeleteScheduledActionInput) (req *request.Request, output *DeleteScheduledActionOutput) {
2831	op := &request.Operation{
2832		Name:       opDeleteScheduledAction,
2833		HTTPMethod: "POST",
2834		HTTPPath:   "/",
2835	}
2836
2837	if input == nil {
2838		input = &DeleteScheduledActionInput{}
2839	}
2840
2841	output = &DeleteScheduledActionOutput{}
2842	req = c.newRequest(op, input, output)
2843	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2844	return
2845}
2846
2847// DeleteScheduledAction API operation for Amazon Redshift.
2848//
2849// Deletes a scheduled action.
2850//
2851// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2852// with awserr.Error's Code and Message methods to get detailed information about
2853// the error.
2854//
2855// See the AWS API reference guide for Amazon Redshift's
2856// API operation DeleteScheduledAction for usage and error information.
2857//
2858// Returned Error Codes:
2859//   * ErrCodeScheduledActionNotFoundFault "ScheduledActionNotFound"
2860//   The scheduled action cannot be found.
2861//
2862//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
2863//   Your account is not authorized to perform the requested operation.
2864//
2865// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteScheduledAction
2866func (c *Redshift) DeleteScheduledAction(input *DeleteScheduledActionInput) (*DeleteScheduledActionOutput, error) {
2867	req, out := c.DeleteScheduledActionRequest(input)
2868	return out, req.Send()
2869}
2870
2871// DeleteScheduledActionWithContext is the same as DeleteScheduledAction with the addition of
2872// the ability to pass a context and additional request options.
2873//
2874// See DeleteScheduledAction for details on how to use this API operation.
2875//
2876// The context must be non-nil and will be used for request cancellation. If
2877// the context is nil a panic will occur. In the future the SDK may create
2878// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2879// for more information on using Contexts.
2880func (c *Redshift) DeleteScheduledActionWithContext(ctx aws.Context, input *DeleteScheduledActionInput, opts ...request.Option) (*DeleteScheduledActionOutput, error) {
2881	req, out := c.DeleteScheduledActionRequest(input)
2882	req.SetContext(ctx)
2883	req.ApplyOptions(opts...)
2884	return out, req.Send()
2885}
2886
2887const opDeleteSnapshotCopyGrant = "DeleteSnapshotCopyGrant"
2888
2889// DeleteSnapshotCopyGrantRequest generates a "aws/request.Request" representing the
2890// client's request for the DeleteSnapshotCopyGrant operation. The "output" return
2891// value will be populated with the request's response once the request completes
2892// successfully.
2893//
2894// Use "Send" method on the returned Request to send the API call to the service.
2895// the "output" return value is not valid until after Send returns without error.
2896//
2897// See DeleteSnapshotCopyGrant for more information on using the DeleteSnapshotCopyGrant
2898// API call, and error handling.
2899//
2900// This method is useful when you want to inject custom logic or configuration
2901// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2902//
2903//
2904//    // Example sending a request using the DeleteSnapshotCopyGrantRequest method.
2905//    req, resp := client.DeleteSnapshotCopyGrantRequest(params)
2906//
2907//    err := req.Send()
2908//    if err == nil { // resp is now filled
2909//        fmt.Println(resp)
2910//    }
2911//
2912// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteSnapshotCopyGrant
2913func (c *Redshift) DeleteSnapshotCopyGrantRequest(input *DeleteSnapshotCopyGrantInput) (req *request.Request, output *DeleteSnapshotCopyGrantOutput) {
2914	op := &request.Operation{
2915		Name:       opDeleteSnapshotCopyGrant,
2916		HTTPMethod: "POST",
2917		HTTPPath:   "/",
2918	}
2919
2920	if input == nil {
2921		input = &DeleteSnapshotCopyGrantInput{}
2922	}
2923
2924	output = &DeleteSnapshotCopyGrantOutput{}
2925	req = c.newRequest(op, input, output)
2926	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2927	return
2928}
2929
2930// DeleteSnapshotCopyGrant API operation for Amazon Redshift.
2931//
2932// Deletes the specified snapshot copy grant.
2933//
2934// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2935// with awserr.Error's Code and Message methods to get detailed information about
2936// the error.
2937//
2938// See the AWS API reference guide for Amazon Redshift's
2939// API operation DeleteSnapshotCopyGrant for usage and error information.
2940//
2941// Returned Error Codes:
2942//   * ErrCodeInvalidSnapshotCopyGrantStateFault "InvalidSnapshotCopyGrantStateFault"
2943//   The snapshot copy grant can't be deleted because it is used by one or more
2944//   clusters.
2945//
2946//   * ErrCodeSnapshotCopyGrantNotFoundFault "SnapshotCopyGrantNotFoundFault"
2947//   The specified snapshot copy grant can't be found. Make sure that the name
2948//   is typed correctly and that the grant exists in the destination region.
2949//
2950// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteSnapshotCopyGrant
2951func (c *Redshift) DeleteSnapshotCopyGrant(input *DeleteSnapshotCopyGrantInput) (*DeleteSnapshotCopyGrantOutput, error) {
2952	req, out := c.DeleteSnapshotCopyGrantRequest(input)
2953	return out, req.Send()
2954}
2955
2956// DeleteSnapshotCopyGrantWithContext is the same as DeleteSnapshotCopyGrant with the addition of
2957// the ability to pass a context and additional request options.
2958//
2959// See DeleteSnapshotCopyGrant for details on how to use this API operation.
2960//
2961// The context must be non-nil and will be used for request cancellation. If
2962// the context is nil a panic will occur. In the future the SDK may create
2963// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2964// for more information on using Contexts.
2965func (c *Redshift) DeleteSnapshotCopyGrantWithContext(ctx aws.Context, input *DeleteSnapshotCopyGrantInput, opts ...request.Option) (*DeleteSnapshotCopyGrantOutput, error) {
2966	req, out := c.DeleteSnapshotCopyGrantRequest(input)
2967	req.SetContext(ctx)
2968	req.ApplyOptions(opts...)
2969	return out, req.Send()
2970}
2971
2972const opDeleteSnapshotSchedule = "DeleteSnapshotSchedule"
2973
2974// DeleteSnapshotScheduleRequest generates a "aws/request.Request" representing the
2975// client's request for the DeleteSnapshotSchedule operation. The "output" return
2976// value will be populated with the request's response once the request completes
2977// successfully.
2978//
2979// Use "Send" method on the returned Request to send the API call to the service.
2980// the "output" return value is not valid until after Send returns without error.
2981//
2982// See DeleteSnapshotSchedule for more information on using the DeleteSnapshotSchedule
2983// API call, and error handling.
2984//
2985// This method is useful when you want to inject custom logic or configuration
2986// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2987//
2988//
2989//    // Example sending a request using the DeleteSnapshotScheduleRequest method.
2990//    req, resp := client.DeleteSnapshotScheduleRequest(params)
2991//
2992//    err := req.Send()
2993//    if err == nil { // resp is now filled
2994//        fmt.Println(resp)
2995//    }
2996//
2997// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteSnapshotSchedule
2998func (c *Redshift) DeleteSnapshotScheduleRequest(input *DeleteSnapshotScheduleInput) (req *request.Request, output *DeleteSnapshotScheduleOutput) {
2999	op := &request.Operation{
3000		Name:       opDeleteSnapshotSchedule,
3001		HTTPMethod: "POST",
3002		HTTPPath:   "/",
3003	}
3004
3005	if input == nil {
3006		input = &DeleteSnapshotScheduleInput{}
3007	}
3008
3009	output = &DeleteSnapshotScheduleOutput{}
3010	req = c.newRequest(op, input, output)
3011	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3012	return
3013}
3014
3015// DeleteSnapshotSchedule API operation for Amazon Redshift.
3016//
3017// Deletes a snapshot schedule.
3018//
3019// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3020// with awserr.Error's Code and Message methods to get detailed information about
3021// the error.
3022//
3023// See the AWS API reference guide for Amazon Redshift's
3024// API operation DeleteSnapshotSchedule for usage and error information.
3025//
3026// Returned Error Codes:
3027//   * ErrCodeInvalidClusterSnapshotScheduleStateFault "InvalidClusterSnapshotScheduleState"
3028//   The cluster snapshot schedule state is not valid.
3029//
3030//   * ErrCodeSnapshotScheduleNotFoundFault "SnapshotScheduleNotFound"
3031//   We could not find the specified snapshot schedule.
3032//
3033// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteSnapshotSchedule
3034func (c *Redshift) DeleteSnapshotSchedule(input *DeleteSnapshotScheduleInput) (*DeleteSnapshotScheduleOutput, error) {
3035	req, out := c.DeleteSnapshotScheduleRequest(input)
3036	return out, req.Send()
3037}
3038
3039// DeleteSnapshotScheduleWithContext is the same as DeleteSnapshotSchedule with the addition of
3040// the ability to pass a context and additional request options.
3041//
3042// See DeleteSnapshotSchedule for details on how to use this API operation.
3043//
3044// The context must be non-nil and will be used for request cancellation. If
3045// the context is nil a panic will occur. In the future the SDK may create
3046// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3047// for more information on using Contexts.
3048func (c *Redshift) DeleteSnapshotScheduleWithContext(ctx aws.Context, input *DeleteSnapshotScheduleInput, opts ...request.Option) (*DeleteSnapshotScheduleOutput, error) {
3049	req, out := c.DeleteSnapshotScheduleRequest(input)
3050	req.SetContext(ctx)
3051	req.ApplyOptions(opts...)
3052	return out, req.Send()
3053}
3054
3055const opDeleteTags = "DeleteTags"
3056
3057// DeleteTagsRequest generates a "aws/request.Request" representing the
3058// client's request for the DeleteTags operation. The "output" return
3059// value will be populated with the request's response once the request completes
3060// successfully.
3061//
3062// Use "Send" method on the returned Request to send the API call to the service.
3063// the "output" return value is not valid until after Send returns without error.
3064//
3065// See DeleteTags for more information on using the DeleteTags
3066// API call, and error handling.
3067//
3068// This method is useful when you want to inject custom logic or configuration
3069// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3070//
3071//
3072//    // Example sending a request using the DeleteTagsRequest method.
3073//    req, resp := client.DeleteTagsRequest(params)
3074//
3075//    err := req.Send()
3076//    if err == nil { // resp is now filled
3077//        fmt.Println(resp)
3078//    }
3079//
3080// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteTags
3081func (c *Redshift) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, output *DeleteTagsOutput) {
3082	op := &request.Operation{
3083		Name:       opDeleteTags,
3084		HTTPMethod: "POST",
3085		HTTPPath:   "/",
3086	}
3087
3088	if input == nil {
3089		input = &DeleteTagsInput{}
3090	}
3091
3092	output = &DeleteTagsOutput{}
3093	req = c.newRequest(op, input, output)
3094	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3095	return
3096}
3097
3098// DeleteTags API operation for Amazon Redshift.
3099//
3100// Deletes tags from a resource. You must provide the ARN of the resource from
3101// which you want to delete the tag or tags.
3102//
3103// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3104// with awserr.Error's Code and Message methods to get detailed information about
3105// the error.
3106//
3107// See the AWS API reference guide for Amazon Redshift's
3108// API operation DeleteTags for usage and error information.
3109//
3110// Returned Error Codes:
3111//   * ErrCodeResourceNotFoundFault "ResourceNotFoundFault"
3112//   The resource could not be found.
3113//
3114//   * ErrCodeInvalidTagFault "InvalidTagFault"
3115//   The tag is invalid.
3116//
3117// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteTags
3118func (c *Redshift) DeleteTags(input *DeleteTagsInput) (*DeleteTagsOutput, error) {
3119	req, out := c.DeleteTagsRequest(input)
3120	return out, req.Send()
3121}
3122
3123// DeleteTagsWithContext is the same as DeleteTags with the addition of
3124// the ability to pass a context and additional request options.
3125//
3126// See DeleteTags for details on how to use this API operation.
3127//
3128// The context must be non-nil and will be used for request cancellation. If
3129// the context is nil a panic will occur. In the future the SDK may create
3130// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3131// for more information on using Contexts.
3132func (c *Redshift) DeleteTagsWithContext(ctx aws.Context, input *DeleteTagsInput, opts ...request.Option) (*DeleteTagsOutput, error) {
3133	req, out := c.DeleteTagsRequest(input)
3134	req.SetContext(ctx)
3135	req.ApplyOptions(opts...)
3136	return out, req.Send()
3137}
3138
3139const opDeleteUsageLimit = "DeleteUsageLimit"
3140
3141// DeleteUsageLimitRequest generates a "aws/request.Request" representing the
3142// client's request for the DeleteUsageLimit operation. The "output" return
3143// value will be populated with the request's response once the request completes
3144// successfully.
3145//
3146// Use "Send" method on the returned Request to send the API call to the service.
3147// the "output" return value is not valid until after Send returns without error.
3148//
3149// See DeleteUsageLimit for more information on using the DeleteUsageLimit
3150// API call, and error handling.
3151//
3152// This method is useful when you want to inject custom logic or configuration
3153// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3154//
3155//
3156//    // Example sending a request using the DeleteUsageLimitRequest method.
3157//    req, resp := client.DeleteUsageLimitRequest(params)
3158//
3159//    err := req.Send()
3160//    if err == nil { // resp is now filled
3161//        fmt.Println(resp)
3162//    }
3163//
3164// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteUsageLimit
3165func (c *Redshift) DeleteUsageLimitRequest(input *DeleteUsageLimitInput) (req *request.Request, output *DeleteUsageLimitOutput) {
3166	op := &request.Operation{
3167		Name:       opDeleteUsageLimit,
3168		HTTPMethod: "POST",
3169		HTTPPath:   "/",
3170	}
3171
3172	if input == nil {
3173		input = &DeleteUsageLimitInput{}
3174	}
3175
3176	output = &DeleteUsageLimitOutput{}
3177	req = c.newRequest(op, input, output)
3178	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3179	return
3180}
3181
3182// DeleteUsageLimit API operation for Amazon Redshift.
3183//
3184// Deletes a usage limit from a cluster.
3185//
3186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3187// with awserr.Error's Code and Message methods to get detailed information about
3188// the error.
3189//
3190// See the AWS API reference guide for Amazon Redshift's
3191// API operation DeleteUsageLimit for usage and error information.
3192//
3193// Returned Error Codes:
3194//   * ErrCodeUsageLimitNotFoundFault "UsageLimitNotFound"
3195//   The usage limit identifier can't be found.
3196//
3197//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
3198//   The requested operation isn't supported.
3199//
3200// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteUsageLimit
3201func (c *Redshift) DeleteUsageLimit(input *DeleteUsageLimitInput) (*DeleteUsageLimitOutput, error) {
3202	req, out := c.DeleteUsageLimitRequest(input)
3203	return out, req.Send()
3204}
3205
3206// DeleteUsageLimitWithContext is the same as DeleteUsageLimit with the addition of
3207// the ability to pass a context and additional request options.
3208//
3209// See DeleteUsageLimit for details on how to use this API operation.
3210//
3211// The context must be non-nil and will be used for request cancellation. If
3212// the context is nil a panic will occur. In the future the SDK may create
3213// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3214// for more information on using Contexts.
3215func (c *Redshift) DeleteUsageLimitWithContext(ctx aws.Context, input *DeleteUsageLimitInput, opts ...request.Option) (*DeleteUsageLimitOutput, error) {
3216	req, out := c.DeleteUsageLimitRequest(input)
3217	req.SetContext(ctx)
3218	req.ApplyOptions(opts...)
3219	return out, req.Send()
3220}
3221
3222const opDescribeAccountAttributes = "DescribeAccountAttributes"
3223
3224// DescribeAccountAttributesRequest generates a "aws/request.Request" representing the
3225// client's request for the DescribeAccountAttributes operation. The "output" return
3226// value will be populated with the request's response once the request completes
3227// successfully.
3228//
3229// Use "Send" method on the returned Request to send the API call to the service.
3230// the "output" return value is not valid until after Send returns without error.
3231//
3232// See DescribeAccountAttributes for more information on using the DescribeAccountAttributes
3233// API call, and error handling.
3234//
3235// This method is useful when you want to inject custom logic or configuration
3236// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3237//
3238//
3239//    // Example sending a request using the DescribeAccountAttributesRequest method.
3240//    req, resp := client.DescribeAccountAttributesRequest(params)
3241//
3242//    err := req.Send()
3243//    if err == nil { // resp is now filled
3244//        fmt.Println(resp)
3245//    }
3246//
3247// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeAccountAttributes
3248func (c *Redshift) DescribeAccountAttributesRequest(input *DescribeAccountAttributesInput) (req *request.Request, output *DescribeAccountAttributesOutput) {
3249	op := &request.Operation{
3250		Name:       opDescribeAccountAttributes,
3251		HTTPMethod: "POST",
3252		HTTPPath:   "/",
3253	}
3254
3255	if input == nil {
3256		input = &DescribeAccountAttributesInput{}
3257	}
3258
3259	output = &DescribeAccountAttributesOutput{}
3260	req = c.newRequest(op, input, output)
3261	return
3262}
3263
3264// DescribeAccountAttributes API operation for Amazon Redshift.
3265//
3266// Returns a list of attributes attached to an account
3267//
3268// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3269// with awserr.Error's Code and Message methods to get detailed information about
3270// the error.
3271//
3272// See the AWS API reference guide for Amazon Redshift's
3273// API operation DescribeAccountAttributes for usage and error information.
3274// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeAccountAttributes
3275func (c *Redshift) DescribeAccountAttributes(input *DescribeAccountAttributesInput) (*DescribeAccountAttributesOutput, error) {
3276	req, out := c.DescribeAccountAttributesRequest(input)
3277	return out, req.Send()
3278}
3279
3280// DescribeAccountAttributesWithContext is the same as DescribeAccountAttributes with the addition of
3281// the ability to pass a context and additional request options.
3282//
3283// See DescribeAccountAttributes for details on how to use this API operation.
3284//
3285// The context must be non-nil and will be used for request cancellation. If
3286// the context is nil a panic will occur. In the future the SDK may create
3287// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3288// for more information on using Contexts.
3289func (c *Redshift) DescribeAccountAttributesWithContext(ctx aws.Context, input *DescribeAccountAttributesInput, opts ...request.Option) (*DescribeAccountAttributesOutput, error) {
3290	req, out := c.DescribeAccountAttributesRequest(input)
3291	req.SetContext(ctx)
3292	req.ApplyOptions(opts...)
3293	return out, req.Send()
3294}
3295
3296const opDescribeClusterDbRevisions = "DescribeClusterDbRevisions"
3297
3298// DescribeClusterDbRevisionsRequest generates a "aws/request.Request" representing the
3299// client's request for the DescribeClusterDbRevisions operation. The "output" return
3300// value will be populated with the request's response once the request completes
3301// successfully.
3302//
3303// Use "Send" method on the returned Request to send the API call to the service.
3304// the "output" return value is not valid until after Send returns without error.
3305//
3306// See DescribeClusterDbRevisions for more information on using the DescribeClusterDbRevisions
3307// API call, and error handling.
3308//
3309// This method is useful when you want to inject custom logic or configuration
3310// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3311//
3312//
3313//    // Example sending a request using the DescribeClusterDbRevisionsRequest method.
3314//    req, resp := client.DescribeClusterDbRevisionsRequest(params)
3315//
3316//    err := req.Send()
3317//    if err == nil { // resp is now filled
3318//        fmt.Println(resp)
3319//    }
3320//
3321// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterDbRevisions
3322func (c *Redshift) DescribeClusterDbRevisionsRequest(input *DescribeClusterDbRevisionsInput) (req *request.Request, output *DescribeClusterDbRevisionsOutput) {
3323	op := &request.Operation{
3324		Name:       opDescribeClusterDbRevisions,
3325		HTTPMethod: "POST",
3326		HTTPPath:   "/",
3327	}
3328
3329	if input == nil {
3330		input = &DescribeClusterDbRevisionsInput{}
3331	}
3332
3333	output = &DescribeClusterDbRevisionsOutput{}
3334	req = c.newRequest(op, input, output)
3335	return
3336}
3337
3338// DescribeClusterDbRevisions API operation for Amazon Redshift.
3339//
3340// Returns an array of ClusterDbRevision objects.
3341//
3342// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3343// with awserr.Error's Code and Message methods to get detailed information about
3344// the error.
3345//
3346// See the AWS API reference guide for Amazon Redshift's
3347// API operation DescribeClusterDbRevisions for usage and error information.
3348//
3349// Returned Error Codes:
3350//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
3351//   The ClusterIdentifier parameter does not refer to an existing cluster.
3352//
3353//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
3354//   The specified cluster is not in the available state.
3355//
3356// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterDbRevisions
3357func (c *Redshift) DescribeClusterDbRevisions(input *DescribeClusterDbRevisionsInput) (*DescribeClusterDbRevisionsOutput, error) {
3358	req, out := c.DescribeClusterDbRevisionsRequest(input)
3359	return out, req.Send()
3360}
3361
3362// DescribeClusterDbRevisionsWithContext is the same as DescribeClusterDbRevisions with the addition of
3363// the ability to pass a context and additional request options.
3364//
3365// See DescribeClusterDbRevisions for details on how to use this API operation.
3366//
3367// The context must be non-nil and will be used for request cancellation. If
3368// the context is nil a panic will occur. In the future the SDK may create
3369// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3370// for more information on using Contexts.
3371func (c *Redshift) DescribeClusterDbRevisionsWithContext(ctx aws.Context, input *DescribeClusterDbRevisionsInput, opts ...request.Option) (*DescribeClusterDbRevisionsOutput, error) {
3372	req, out := c.DescribeClusterDbRevisionsRequest(input)
3373	req.SetContext(ctx)
3374	req.ApplyOptions(opts...)
3375	return out, req.Send()
3376}
3377
3378const opDescribeClusterParameterGroups = "DescribeClusterParameterGroups"
3379
3380// DescribeClusterParameterGroupsRequest generates a "aws/request.Request" representing the
3381// client's request for the DescribeClusterParameterGroups operation. The "output" return
3382// value will be populated with the request's response once the request completes
3383// successfully.
3384//
3385// Use "Send" method on the returned Request to send the API call to the service.
3386// the "output" return value is not valid until after Send returns without error.
3387//
3388// See DescribeClusterParameterGroups for more information on using the DescribeClusterParameterGroups
3389// API call, and error handling.
3390//
3391// This method is useful when you want to inject custom logic or configuration
3392// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3393//
3394//
3395//    // Example sending a request using the DescribeClusterParameterGroupsRequest method.
3396//    req, resp := client.DescribeClusterParameterGroupsRequest(params)
3397//
3398//    err := req.Send()
3399//    if err == nil { // resp is now filled
3400//        fmt.Println(resp)
3401//    }
3402//
3403// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterParameterGroups
3404func (c *Redshift) DescribeClusterParameterGroupsRequest(input *DescribeClusterParameterGroupsInput) (req *request.Request, output *DescribeClusterParameterGroupsOutput) {
3405	op := &request.Operation{
3406		Name:       opDescribeClusterParameterGroups,
3407		HTTPMethod: "POST",
3408		HTTPPath:   "/",
3409		Paginator: &request.Paginator{
3410			InputTokens:     []string{"Marker"},
3411			OutputTokens:    []string{"Marker"},
3412			LimitToken:      "MaxRecords",
3413			TruncationToken: "",
3414		},
3415	}
3416
3417	if input == nil {
3418		input = &DescribeClusterParameterGroupsInput{}
3419	}
3420
3421	output = &DescribeClusterParameterGroupsOutput{}
3422	req = c.newRequest(op, input, output)
3423	return
3424}
3425
3426// DescribeClusterParameterGroups API operation for Amazon Redshift.
3427//
3428// Returns a list of Amazon Redshift parameter groups, including parameter groups
3429// you created and the default parameter group. For each parameter group, the
3430// response includes the parameter group name, description, and parameter group
3431// family name. You can optionally specify a name to retrieve the description
3432// of a specific parameter group.
3433//
3434// For more information about parameters and parameter groups, go to Amazon
3435// Redshift Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
3436// in the Amazon Redshift Cluster Management Guide.
3437//
3438// If you specify both tag keys and tag values in the same request, Amazon Redshift
3439// returns all parameter groups that match any combination of the specified
3440// keys and values. For example, if you have owner and environment for tag keys,
3441// and admin and test for tag values, all parameter groups that have any combination
3442// of those values are returned.
3443//
3444// If both tag keys and values are omitted from the request, parameter groups
3445// are returned regardless of whether they have tag keys or values associated
3446// with them.
3447//
3448// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3449// with awserr.Error's Code and Message methods to get detailed information about
3450// the error.
3451//
3452// See the AWS API reference guide for Amazon Redshift's
3453// API operation DescribeClusterParameterGroups for usage and error information.
3454//
3455// Returned Error Codes:
3456//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
3457//   The parameter group name does not refer to an existing parameter group.
3458//
3459//   * ErrCodeInvalidTagFault "InvalidTagFault"
3460//   The tag is invalid.
3461//
3462// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterParameterGroups
3463func (c *Redshift) DescribeClusterParameterGroups(input *DescribeClusterParameterGroupsInput) (*DescribeClusterParameterGroupsOutput, error) {
3464	req, out := c.DescribeClusterParameterGroupsRequest(input)
3465	return out, req.Send()
3466}
3467
3468// DescribeClusterParameterGroupsWithContext is the same as DescribeClusterParameterGroups with the addition of
3469// the ability to pass a context and additional request options.
3470//
3471// See DescribeClusterParameterGroups for details on how to use this API operation.
3472//
3473// The context must be non-nil and will be used for request cancellation. If
3474// the context is nil a panic will occur. In the future the SDK may create
3475// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3476// for more information on using Contexts.
3477func (c *Redshift) DescribeClusterParameterGroupsWithContext(ctx aws.Context, input *DescribeClusterParameterGroupsInput, opts ...request.Option) (*DescribeClusterParameterGroupsOutput, error) {
3478	req, out := c.DescribeClusterParameterGroupsRequest(input)
3479	req.SetContext(ctx)
3480	req.ApplyOptions(opts...)
3481	return out, req.Send()
3482}
3483
3484// DescribeClusterParameterGroupsPages iterates over the pages of a DescribeClusterParameterGroups operation,
3485// calling the "fn" function with the response data for each page. To stop
3486// iterating, return false from the fn function.
3487//
3488// See DescribeClusterParameterGroups method for more information on how to use this operation.
3489//
3490// Note: This operation can generate multiple requests to a service.
3491//
3492//    // Example iterating over at most 3 pages of a DescribeClusterParameterGroups operation.
3493//    pageNum := 0
3494//    err := client.DescribeClusterParameterGroupsPages(params,
3495//        func(page *redshift.DescribeClusterParameterGroupsOutput, lastPage bool) bool {
3496//            pageNum++
3497//            fmt.Println(page)
3498//            return pageNum <= 3
3499//        })
3500//
3501func (c *Redshift) DescribeClusterParameterGroupsPages(input *DescribeClusterParameterGroupsInput, fn func(*DescribeClusterParameterGroupsOutput, bool) bool) error {
3502	return c.DescribeClusterParameterGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
3503}
3504
3505// DescribeClusterParameterGroupsPagesWithContext same as DescribeClusterParameterGroupsPages except
3506// it takes a Context and allows setting request options on the pages.
3507//
3508// The context must be non-nil and will be used for request cancellation. If
3509// the context is nil a panic will occur. In the future the SDK may create
3510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3511// for more information on using Contexts.
3512func (c *Redshift) DescribeClusterParameterGroupsPagesWithContext(ctx aws.Context, input *DescribeClusterParameterGroupsInput, fn func(*DescribeClusterParameterGroupsOutput, bool) bool, opts ...request.Option) error {
3513	p := request.Pagination{
3514		NewRequest: func() (*request.Request, error) {
3515			var inCpy *DescribeClusterParameterGroupsInput
3516			if input != nil {
3517				tmp := *input
3518				inCpy = &tmp
3519			}
3520			req, _ := c.DescribeClusterParameterGroupsRequest(inCpy)
3521			req.SetContext(ctx)
3522			req.ApplyOptions(opts...)
3523			return req, nil
3524		},
3525	}
3526
3527	for p.Next() {
3528		if !fn(p.Page().(*DescribeClusterParameterGroupsOutput), !p.HasNextPage()) {
3529			break
3530		}
3531	}
3532
3533	return p.Err()
3534}
3535
3536const opDescribeClusterParameters = "DescribeClusterParameters"
3537
3538// DescribeClusterParametersRequest generates a "aws/request.Request" representing the
3539// client's request for the DescribeClusterParameters operation. The "output" return
3540// value will be populated with the request's response once the request completes
3541// successfully.
3542//
3543// Use "Send" method on the returned Request to send the API call to the service.
3544// the "output" return value is not valid until after Send returns without error.
3545//
3546// See DescribeClusterParameters for more information on using the DescribeClusterParameters
3547// API call, and error handling.
3548//
3549// This method is useful when you want to inject custom logic or configuration
3550// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3551//
3552//
3553//    // Example sending a request using the DescribeClusterParametersRequest method.
3554//    req, resp := client.DescribeClusterParametersRequest(params)
3555//
3556//    err := req.Send()
3557//    if err == nil { // resp is now filled
3558//        fmt.Println(resp)
3559//    }
3560//
3561// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterParameters
3562func (c *Redshift) DescribeClusterParametersRequest(input *DescribeClusterParametersInput) (req *request.Request, output *DescribeClusterParametersOutput) {
3563	op := &request.Operation{
3564		Name:       opDescribeClusterParameters,
3565		HTTPMethod: "POST",
3566		HTTPPath:   "/",
3567		Paginator: &request.Paginator{
3568			InputTokens:     []string{"Marker"},
3569			OutputTokens:    []string{"Marker"},
3570			LimitToken:      "MaxRecords",
3571			TruncationToken: "",
3572		},
3573	}
3574
3575	if input == nil {
3576		input = &DescribeClusterParametersInput{}
3577	}
3578
3579	output = &DescribeClusterParametersOutput{}
3580	req = c.newRequest(op, input, output)
3581	return
3582}
3583
3584// DescribeClusterParameters API operation for Amazon Redshift.
3585//
3586// Returns a detailed list of parameters contained within the specified Amazon
3587// Redshift parameter group. For each parameter the response includes information
3588// such as parameter name, description, data type, value, whether the parameter
3589// value is modifiable, and so on.
3590//
3591// You can specify source filter to retrieve parameters of only specific type.
3592// For example, to retrieve parameters that were modified by a user action such
3593// as from ModifyClusterParameterGroup, you can specify source equal to user.
3594//
3595// For more information about parameters and parameter groups, go to Amazon
3596// Redshift Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
3597// in the Amazon Redshift Cluster Management Guide.
3598//
3599// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3600// with awserr.Error's Code and Message methods to get detailed information about
3601// the error.
3602//
3603// See the AWS API reference guide for Amazon Redshift's
3604// API operation DescribeClusterParameters for usage and error information.
3605//
3606// Returned Error Codes:
3607//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
3608//   The parameter group name does not refer to an existing parameter group.
3609//
3610// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterParameters
3611func (c *Redshift) DescribeClusterParameters(input *DescribeClusterParametersInput) (*DescribeClusterParametersOutput, error) {
3612	req, out := c.DescribeClusterParametersRequest(input)
3613	return out, req.Send()
3614}
3615
3616// DescribeClusterParametersWithContext is the same as DescribeClusterParameters with the addition of
3617// the ability to pass a context and additional request options.
3618//
3619// See DescribeClusterParameters for details on how to use this API operation.
3620//
3621// The context must be non-nil and will be used for request cancellation. If
3622// the context is nil a panic will occur. In the future the SDK may create
3623// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3624// for more information on using Contexts.
3625func (c *Redshift) DescribeClusterParametersWithContext(ctx aws.Context, input *DescribeClusterParametersInput, opts ...request.Option) (*DescribeClusterParametersOutput, error) {
3626	req, out := c.DescribeClusterParametersRequest(input)
3627	req.SetContext(ctx)
3628	req.ApplyOptions(opts...)
3629	return out, req.Send()
3630}
3631
3632// DescribeClusterParametersPages iterates over the pages of a DescribeClusterParameters operation,
3633// calling the "fn" function with the response data for each page. To stop
3634// iterating, return false from the fn function.
3635//
3636// See DescribeClusterParameters method for more information on how to use this operation.
3637//
3638// Note: This operation can generate multiple requests to a service.
3639//
3640//    // Example iterating over at most 3 pages of a DescribeClusterParameters operation.
3641//    pageNum := 0
3642//    err := client.DescribeClusterParametersPages(params,
3643//        func(page *redshift.DescribeClusterParametersOutput, lastPage bool) bool {
3644//            pageNum++
3645//            fmt.Println(page)
3646//            return pageNum <= 3
3647//        })
3648//
3649func (c *Redshift) DescribeClusterParametersPages(input *DescribeClusterParametersInput, fn func(*DescribeClusterParametersOutput, bool) bool) error {
3650	return c.DescribeClusterParametersPagesWithContext(aws.BackgroundContext(), input, fn)
3651}
3652
3653// DescribeClusterParametersPagesWithContext same as DescribeClusterParametersPages except
3654// it takes a Context and allows setting request options on the pages.
3655//
3656// The context must be non-nil and will be used for request cancellation. If
3657// the context is nil a panic will occur. In the future the SDK may create
3658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3659// for more information on using Contexts.
3660func (c *Redshift) DescribeClusterParametersPagesWithContext(ctx aws.Context, input *DescribeClusterParametersInput, fn func(*DescribeClusterParametersOutput, bool) bool, opts ...request.Option) error {
3661	p := request.Pagination{
3662		NewRequest: func() (*request.Request, error) {
3663			var inCpy *DescribeClusterParametersInput
3664			if input != nil {
3665				tmp := *input
3666				inCpy = &tmp
3667			}
3668			req, _ := c.DescribeClusterParametersRequest(inCpy)
3669			req.SetContext(ctx)
3670			req.ApplyOptions(opts...)
3671			return req, nil
3672		},
3673	}
3674
3675	for p.Next() {
3676		if !fn(p.Page().(*DescribeClusterParametersOutput), !p.HasNextPage()) {
3677			break
3678		}
3679	}
3680
3681	return p.Err()
3682}
3683
3684const opDescribeClusterSecurityGroups = "DescribeClusterSecurityGroups"
3685
3686// DescribeClusterSecurityGroupsRequest generates a "aws/request.Request" representing the
3687// client's request for the DescribeClusterSecurityGroups operation. The "output" return
3688// value will be populated with the request's response once the request completes
3689// successfully.
3690//
3691// Use "Send" method on the returned Request to send the API call to the service.
3692// the "output" return value is not valid until after Send returns without error.
3693//
3694// See DescribeClusterSecurityGroups for more information on using the DescribeClusterSecurityGroups
3695// API call, and error handling.
3696//
3697// This method is useful when you want to inject custom logic or configuration
3698// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3699//
3700//
3701//    // Example sending a request using the DescribeClusterSecurityGroupsRequest method.
3702//    req, resp := client.DescribeClusterSecurityGroupsRequest(params)
3703//
3704//    err := req.Send()
3705//    if err == nil { // resp is now filled
3706//        fmt.Println(resp)
3707//    }
3708//
3709// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSecurityGroups
3710func (c *Redshift) DescribeClusterSecurityGroupsRequest(input *DescribeClusterSecurityGroupsInput) (req *request.Request, output *DescribeClusterSecurityGroupsOutput) {
3711	op := &request.Operation{
3712		Name:       opDescribeClusterSecurityGroups,
3713		HTTPMethod: "POST",
3714		HTTPPath:   "/",
3715		Paginator: &request.Paginator{
3716			InputTokens:     []string{"Marker"},
3717			OutputTokens:    []string{"Marker"},
3718			LimitToken:      "MaxRecords",
3719			TruncationToken: "",
3720		},
3721	}
3722
3723	if input == nil {
3724		input = &DescribeClusterSecurityGroupsInput{}
3725	}
3726
3727	output = &DescribeClusterSecurityGroupsOutput{}
3728	req = c.newRequest(op, input, output)
3729	return
3730}
3731
3732// DescribeClusterSecurityGroups API operation for Amazon Redshift.
3733//
3734// Returns information about Amazon Redshift security groups. If the name of
3735// a security group is specified, the response will contain only information
3736// about only that security group.
3737//
3738// For information about managing security groups, go to Amazon Redshift Cluster
3739// Security Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
3740// in the Amazon Redshift Cluster Management Guide.
3741//
3742// If you specify both tag keys and tag values in the same request, Amazon Redshift
3743// returns all security groups that match any combination of the specified keys
3744// and values. For example, if you have owner and environment for tag keys,
3745// and admin and test for tag values, all security groups that have any combination
3746// of those values are returned.
3747//
3748// If both tag keys and values are omitted from the request, security groups
3749// are returned regardless of whether they have tag keys or values associated
3750// with them.
3751//
3752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3753// with awserr.Error's Code and Message methods to get detailed information about
3754// the error.
3755//
3756// See the AWS API reference guide for Amazon Redshift's
3757// API operation DescribeClusterSecurityGroups for usage and error information.
3758//
3759// Returned Error Codes:
3760//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
3761//   The cluster security group name does not refer to an existing cluster security
3762//   group.
3763//
3764//   * ErrCodeInvalidTagFault "InvalidTagFault"
3765//   The tag is invalid.
3766//
3767// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSecurityGroups
3768func (c *Redshift) DescribeClusterSecurityGroups(input *DescribeClusterSecurityGroupsInput) (*DescribeClusterSecurityGroupsOutput, error) {
3769	req, out := c.DescribeClusterSecurityGroupsRequest(input)
3770	return out, req.Send()
3771}
3772
3773// DescribeClusterSecurityGroupsWithContext is the same as DescribeClusterSecurityGroups with the addition of
3774// the ability to pass a context and additional request options.
3775//
3776// See DescribeClusterSecurityGroups for details on how to use this API operation.
3777//
3778// The context must be non-nil and will be used for request cancellation. If
3779// the context is nil a panic will occur. In the future the SDK may create
3780// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3781// for more information on using Contexts.
3782func (c *Redshift) DescribeClusterSecurityGroupsWithContext(ctx aws.Context, input *DescribeClusterSecurityGroupsInput, opts ...request.Option) (*DescribeClusterSecurityGroupsOutput, error) {
3783	req, out := c.DescribeClusterSecurityGroupsRequest(input)
3784	req.SetContext(ctx)
3785	req.ApplyOptions(opts...)
3786	return out, req.Send()
3787}
3788
3789// DescribeClusterSecurityGroupsPages iterates over the pages of a DescribeClusterSecurityGroups operation,
3790// calling the "fn" function with the response data for each page. To stop
3791// iterating, return false from the fn function.
3792//
3793// See DescribeClusterSecurityGroups method for more information on how to use this operation.
3794//
3795// Note: This operation can generate multiple requests to a service.
3796//
3797//    // Example iterating over at most 3 pages of a DescribeClusterSecurityGroups operation.
3798//    pageNum := 0
3799//    err := client.DescribeClusterSecurityGroupsPages(params,
3800//        func(page *redshift.DescribeClusterSecurityGroupsOutput, lastPage bool) bool {
3801//            pageNum++
3802//            fmt.Println(page)
3803//            return pageNum <= 3
3804//        })
3805//
3806func (c *Redshift) DescribeClusterSecurityGroupsPages(input *DescribeClusterSecurityGroupsInput, fn func(*DescribeClusterSecurityGroupsOutput, bool) bool) error {
3807	return c.DescribeClusterSecurityGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
3808}
3809
3810// DescribeClusterSecurityGroupsPagesWithContext same as DescribeClusterSecurityGroupsPages except
3811// it takes a Context and allows setting request options on the pages.
3812//
3813// The context must be non-nil and will be used for request cancellation. If
3814// the context is nil a panic will occur. In the future the SDK may create
3815// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3816// for more information on using Contexts.
3817func (c *Redshift) DescribeClusterSecurityGroupsPagesWithContext(ctx aws.Context, input *DescribeClusterSecurityGroupsInput, fn func(*DescribeClusterSecurityGroupsOutput, bool) bool, opts ...request.Option) error {
3818	p := request.Pagination{
3819		NewRequest: func() (*request.Request, error) {
3820			var inCpy *DescribeClusterSecurityGroupsInput
3821			if input != nil {
3822				tmp := *input
3823				inCpy = &tmp
3824			}
3825			req, _ := c.DescribeClusterSecurityGroupsRequest(inCpy)
3826			req.SetContext(ctx)
3827			req.ApplyOptions(opts...)
3828			return req, nil
3829		},
3830	}
3831
3832	for p.Next() {
3833		if !fn(p.Page().(*DescribeClusterSecurityGroupsOutput), !p.HasNextPage()) {
3834			break
3835		}
3836	}
3837
3838	return p.Err()
3839}
3840
3841const opDescribeClusterSnapshots = "DescribeClusterSnapshots"
3842
3843// DescribeClusterSnapshotsRequest generates a "aws/request.Request" representing the
3844// client's request for the DescribeClusterSnapshots operation. The "output" return
3845// value will be populated with the request's response once the request completes
3846// successfully.
3847//
3848// Use "Send" method on the returned Request to send the API call to the service.
3849// the "output" return value is not valid until after Send returns without error.
3850//
3851// See DescribeClusterSnapshots for more information on using the DescribeClusterSnapshots
3852// API call, and error handling.
3853//
3854// This method is useful when you want to inject custom logic or configuration
3855// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3856//
3857//
3858//    // Example sending a request using the DescribeClusterSnapshotsRequest method.
3859//    req, resp := client.DescribeClusterSnapshotsRequest(params)
3860//
3861//    err := req.Send()
3862//    if err == nil { // resp is now filled
3863//        fmt.Println(resp)
3864//    }
3865//
3866// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSnapshots
3867func (c *Redshift) DescribeClusterSnapshotsRequest(input *DescribeClusterSnapshotsInput) (req *request.Request, output *DescribeClusterSnapshotsOutput) {
3868	op := &request.Operation{
3869		Name:       opDescribeClusterSnapshots,
3870		HTTPMethod: "POST",
3871		HTTPPath:   "/",
3872		Paginator: &request.Paginator{
3873			InputTokens:     []string{"Marker"},
3874			OutputTokens:    []string{"Marker"},
3875			LimitToken:      "MaxRecords",
3876			TruncationToken: "",
3877		},
3878	}
3879
3880	if input == nil {
3881		input = &DescribeClusterSnapshotsInput{}
3882	}
3883
3884	output = &DescribeClusterSnapshotsOutput{}
3885	req = c.newRequest(op, input, output)
3886	return
3887}
3888
3889// DescribeClusterSnapshots API operation for Amazon Redshift.
3890//
3891// Returns one or more snapshot objects, which contain metadata about your cluster
3892// snapshots. By default, this operation returns information about all snapshots
3893// of all clusters that are owned by you AWS customer account. No information
3894// is returned for snapshots owned by inactive AWS customer accounts.
3895//
3896// If you specify both tag keys and tag values in the same request, Amazon Redshift
3897// returns all snapshots that match any combination of the specified keys and
3898// values. For example, if you have owner and environment for tag keys, and
3899// admin and test for tag values, all snapshots that have any combination of
3900// those values are returned. Only snapshots that you own are returned in the
3901// response; shared snapshots are not returned with the tag key and tag value
3902// request parameters.
3903//
3904// If both tag keys and values are omitted from the request, snapshots are returned
3905// regardless of whether they have tag keys or values associated with them.
3906//
3907// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3908// with awserr.Error's Code and Message methods to get detailed information about
3909// the error.
3910//
3911// See the AWS API reference guide for Amazon Redshift's
3912// API operation DescribeClusterSnapshots for usage and error information.
3913//
3914// Returned Error Codes:
3915//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
3916//   The ClusterIdentifier parameter does not refer to an existing cluster.
3917//
3918//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
3919//   The snapshot identifier does not refer to an existing cluster snapshot.
3920//
3921//   * ErrCodeInvalidTagFault "InvalidTagFault"
3922//   The tag is invalid.
3923//
3924// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSnapshots
3925func (c *Redshift) DescribeClusterSnapshots(input *DescribeClusterSnapshotsInput) (*DescribeClusterSnapshotsOutput, error) {
3926	req, out := c.DescribeClusterSnapshotsRequest(input)
3927	return out, req.Send()
3928}
3929
3930// DescribeClusterSnapshotsWithContext is the same as DescribeClusterSnapshots with the addition of
3931// the ability to pass a context and additional request options.
3932//
3933// See DescribeClusterSnapshots for details on how to use this API operation.
3934//
3935// The context must be non-nil and will be used for request cancellation. If
3936// the context is nil a panic will occur. In the future the SDK may create
3937// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3938// for more information on using Contexts.
3939func (c *Redshift) DescribeClusterSnapshotsWithContext(ctx aws.Context, input *DescribeClusterSnapshotsInput, opts ...request.Option) (*DescribeClusterSnapshotsOutput, error) {
3940	req, out := c.DescribeClusterSnapshotsRequest(input)
3941	req.SetContext(ctx)
3942	req.ApplyOptions(opts...)
3943	return out, req.Send()
3944}
3945
3946// DescribeClusterSnapshotsPages iterates over the pages of a DescribeClusterSnapshots operation,
3947// calling the "fn" function with the response data for each page. To stop
3948// iterating, return false from the fn function.
3949//
3950// See DescribeClusterSnapshots method for more information on how to use this operation.
3951//
3952// Note: This operation can generate multiple requests to a service.
3953//
3954//    // Example iterating over at most 3 pages of a DescribeClusterSnapshots operation.
3955//    pageNum := 0
3956//    err := client.DescribeClusterSnapshotsPages(params,
3957//        func(page *redshift.DescribeClusterSnapshotsOutput, lastPage bool) bool {
3958//            pageNum++
3959//            fmt.Println(page)
3960//            return pageNum <= 3
3961//        })
3962//
3963func (c *Redshift) DescribeClusterSnapshotsPages(input *DescribeClusterSnapshotsInput, fn func(*DescribeClusterSnapshotsOutput, bool) bool) error {
3964	return c.DescribeClusterSnapshotsPagesWithContext(aws.BackgroundContext(), input, fn)
3965}
3966
3967// DescribeClusterSnapshotsPagesWithContext same as DescribeClusterSnapshotsPages except
3968// it takes a Context and allows setting request options on the pages.
3969//
3970// The context must be non-nil and will be used for request cancellation. If
3971// the context is nil a panic will occur. In the future the SDK may create
3972// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3973// for more information on using Contexts.
3974func (c *Redshift) DescribeClusterSnapshotsPagesWithContext(ctx aws.Context, input *DescribeClusterSnapshotsInput, fn func(*DescribeClusterSnapshotsOutput, bool) bool, opts ...request.Option) error {
3975	p := request.Pagination{
3976		NewRequest: func() (*request.Request, error) {
3977			var inCpy *DescribeClusterSnapshotsInput
3978			if input != nil {
3979				tmp := *input
3980				inCpy = &tmp
3981			}
3982			req, _ := c.DescribeClusterSnapshotsRequest(inCpy)
3983			req.SetContext(ctx)
3984			req.ApplyOptions(opts...)
3985			return req, nil
3986		},
3987	}
3988
3989	for p.Next() {
3990		if !fn(p.Page().(*DescribeClusterSnapshotsOutput), !p.HasNextPage()) {
3991			break
3992		}
3993	}
3994
3995	return p.Err()
3996}
3997
3998const opDescribeClusterSubnetGroups = "DescribeClusterSubnetGroups"
3999
4000// DescribeClusterSubnetGroupsRequest generates a "aws/request.Request" representing the
4001// client's request for the DescribeClusterSubnetGroups operation. The "output" return
4002// value will be populated with the request's response once the request completes
4003// successfully.
4004//
4005// Use "Send" method on the returned Request to send the API call to the service.
4006// the "output" return value is not valid until after Send returns without error.
4007//
4008// See DescribeClusterSubnetGroups for more information on using the DescribeClusterSubnetGroups
4009// API call, and error handling.
4010//
4011// This method is useful when you want to inject custom logic or configuration
4012// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4013//
4014//
4015//    // Example sending a request using the DescribeClusterSubnetGroupsRequest method.
4016//    req, resp := client.DescribeClusterSubnetGroupsRequest(params)
4017//
4018//    err := req.Send()
4019//    if err == nil { // resp is now filled
4020//        fmt.Println(resp)
4021//    }
4022//
4023// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSubnetGroups
4024func (c *Redshift) DescribeClusterSubnetGroupsRequest(input *DescribeClusterSubnetGroupsInput) (req *request.Request, output *DescribeClusterSubnetGroupsOutput) {
4025	op := &request.Operation{
4026		Name:       opDescribeClusterSubnetGroups,
4027		HTTPMethod: "POST",
4028		HTTPPath:   "/",
4029		Paginator: &request.Paginator{
4030			InputTokens:     []string{"Marker"},
4031			OutputTokens:    []string{"Marker"},
4032			LimitToken:      "MaxRecords",
4033			TruncationToken: "",
4034		},
4035	}
4036
4037	if input == nil {
4038		input = &DescribeClusterSubnetGroupsInput{}
4039	}
4040
4041	output = &DescribeClusterSubnetGroupsOutput{}
4042	req = c.newRequest(op, input, output)
4043	return
4044}
4045
4046// DescribeClusterSubnetGroups API operation for Amazon Redshift.
4047//
4048// Returns one or more cluster subnet group objects, which contain metadata
4049// about your cluster subnet groups. By default, this operation returns information
4050// about all cluster subnet groups that are defined in you AWS account.
4051//
4052// If you specify both tag keys and tag values in the same request, Amazon Redshift
4053// returns all subnet groups that match any combination of the specified keys
4054// and values. For example, if you have owner and environment for tag keys,
4055// and admin and test for tag values, all subnet groups that have any combination
4056// of those values are returned.
4057//
4058// If both tag keys and values are omitted from the request, subnet groups are
4059// returned regardless of whether they have tag keys or values associated with
4060// them.
4061//
4062// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4063// with awserr.Error's Code and Message methods to get detailed information about
4064// the error.
4065//
4066// See the AWS API reference guide for Amazon Redshift's
4067// API operation DescribeClusterSubnetGroups for usage and error information.
4068//
4069// Returned Error Codes:
4070//   * ErrCodeClusterSubnetGroupNotFoundFault "ClusterSubnetGroupNotFoundFault"
4071//   The cluster subnet group name does not refer to an existing cluster subnet
4072//   group.
4073//
4074//   * ErrCodeInvalidTagFault "InvalidTagFault"
4075//   The tag is invalid.
4076//
4077// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSubnetGroups
4078func (c *Redshift) DescribeClusterSubnetGroups(input *DescribeClusterSubnetGroupsInput) (*DescribeClusterSubnetGroupsOutput, error) {
4079	req, out := c.DescribeClusterSubnetGroupsRequest(input)
4080	return out, req.Send()
4081}
4082
4083// DescribeClusterSubnetGroupsWithContext is the same as DescribeClusterSubnetGroups with the addition of
4084// the ability to pass a context and additional request options.
4085//
4086// See DescribeClusterSubnetGroups for details on how to use this API operation.
4087//
4088// The context must be non-nil and will be used for request cancellation. If
4089// the context is nil a panic will occur. In the future the SDK may create
4090// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4091// for more information on using Contexts.
4092func (c *Redshift) DescribeClusterSubnetGroupsWithContext(ctx aws.Context, input *DescribeClusterSubnetGroupsInput, opts ...request.Option) (*DescribeClusterSubnetGroupsOutput, error) {
4093	req, out := c.DescribeClusterSubnetGroupsRequest(input)
4094	req.SetContext(ctx)
4095	req.ApplyOptions(opts...)
4096	return out, req.Send()
4097}
4098
4099// DescribeClusterSubnetGroupsPages iterates over the pages of a DescribeClusterSubnetGroups operation,
4100// calling the "fn" function with the response data for each page. To stop
4101// iterating, return false from the fn function.
4102//
4103// See DescribeClusterSubnetGroups method for more information on how to use this operation.
4104//
4105// Note: This operation can generate multiple requests to a service.
4106//
4107//    // Example iterating over at most 3 pages of a DescribeClusterSubnetGroups operation.
4108//    pageNum := 0
4109//    err := client.DescribeClusterSubnetGroupsPages(params,
4110//        func(page *redshift.DescribeClusterSubnetGroupsOutput, lastPage bool) bool {
4111//            pageNum++
4112//            fmt.Println(page)
4113//            return pageNum <= 3
4114//        })
4115//
4116func (c *Redshift) DescribeClusterSubnetGroupsPages(input *DescribeClusterSubnetGroupsInput, fn func(*DescribeClusterSubnetGroupsOutput, bool) bool) error {
4117	return c.DescribeClusterSubnetGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
4118}
4119
4120// DescribeClusterSubnetGroupsPagesWithContext same as DescribeClusterSubnetGroupsPages except
4121// it takes a Context and allows setting request options on the pages.
4122//
4123// The context must be non-nil and will be used for request cancellation. If
4124// the context is nil a panic will occur. In the future the SDK may create
4125// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4126// for more information on using Contexts.
4127func (c *Redshift) DescribeClusterSubnetGroupsPagesWithContext(ctx aws.Context, input *DescribeClusterSubnetGroupsInput, fn func(*DescribeClusterSubnetGroupsOutput, bool) bool, opts ...request.Option) error {
4128	p := request.Pagination{
4129		NewRequest: func() (*request.Request, error) {
4130			var inCpy *DescribeClusterSubnetGroupsInput
4131			if input != nil {
4132				tmp := *input
4133				inCpy = &tmp
4134			}
4135			req, _ := c.DescribeClusterSubnetGroupsRequest(inCpy)
4136			req.SetContext(ctx)
4137			req.ApplyOptions(opts...)
4138			return req, nil
4139		},
4140	}
4141
4142	for p.Next() {
4143		if !fn(p.Page().(*DescribeClusterSubnetGroupsOutput), !p.HasNextPage()) {
4144			break
4145		}
4146	}
4147
4148	return p.Err()
4149}
4150
4151const opDescribeClusterTracks = "DescribeClusterTracks"
4152
4153// DescribeClusterTracksRequest generates a "aws/request.Request" representing the
4154// client's request for the DescribeClusterTracks operation. The "output" return
4155// value will be populated with the request's response once the request completes
4156// successfully.
4157//
4158// Use "Send" method on the returned Request to send the API call to the service.
4159// the "output" return value is not valid until after Send returns without error.
4160//
4161// See DescribeClusterTracks for more information on using the DescribeClusterTracks
4162// API call, and error handling.
4163//
4164// This method is useful when you want to inject custom logic or configuration
4165// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4166//
4167//
4168//    // Example sending a request using the DescribeClusterTracksRequest method.
4169//    req, resp := client.DescribeClusterTracksRequest(params)
4170//
4171//    err := req.Send()
4172//    if err == nil { // resp is now filled
4173//        fmt.Println(resp)
4174//    }
4175//
4176// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterTracks
4177func (c *Redshift) DescribeClusterTracksRequest(input *DescribeClusterTracksInput) (req *request.Request, output *DescribeClusterTracksOutput) {
4178	op := &request.Operation{
4179		Name:       opDescribeClusterTracks,
4180		HTTPMethod: "POST",
4181		HTTPPath:   "/",
4182	}
4183
4184	if input == nil {
4185		input = &DescribeClusterTracksInput{}
4186	}
4187
4188	output = &DescribeClusterTracksOutput{}
4189	req = c.newRequest(op, input, output)
4190	return
4191}
4192
4193// DescribeClusterTracks API operation for Amazon Redshift.
4194//
4195// Returns a list of all the available maintenance tracks.
4196//
4197// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4198// with awserr.Error's Code and Message methods to get detailed information about
4199// the error.
4200//
4201// See the AWS API reference guide for Amazon Redshift's
4202// API operation DescribeClusterTracks for usage and error information.
4203//
4204// Returned Error Codes:
4205//   * ErrCodeInvalidClusterTrackFault "InvalidClusterTrack"
4206//   The provided cluster track name is not valid.
4207//
4208//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
4209//   Your account is not authorized to perform the requested operation.
4210//
4211// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterTracks
4212func (c *Redshift) DescribeClusterTracks(input *DescribeClusterTracksInput) (*DescribeClusterTracksOutput, error) {
4213	req, out := c.DescribeClusterTracksRequest(input)
4214	return out, req.Send()
4215}
4216
4217// DescribeClusterTracksWithContext is the same as DescribeClusterTracks with the addition of
4218// the ability to pass a context and additional request options.
4219//
4220// See DescribeClusterTracks for details on how to use this API operation.
4221//
4222// The context must be non-nil and will be used for request cancellation. If
4223// the context is nil a panic will occur. In the future the SDK may create
4224// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4225// for more information on using Contexts.
4226func (c *Redshift) DescribeClusterTracksWithContext(ctx aws.Context, input *DescribeClusterTracksInput, opts ...request.Option) (*DescribeClusterTracksOutput, error) {
4227	req, out := c.DescribeClusterTracksRequest(input)
4228	req.SetContext(ctx)
4229	req.ApplyOptions(opts...)
4230	return out, req.Send()
4231}
4232
4233const opDescribeClusterVersions = "DescribeClusterVersions"
4234
4235// DescribeClusterVersionsRequest generates a "aws/request.Request" representing the
4236// client's request for the DescribeClusterVersions operation. The "output" return
4237// value will be populated with the request's response once the request completes
4238// successfully.
4239//
4240// Use "Send" method on the returned Request to send the API call to the service.
4241// the "output" return value is not valid until after Send returns without error.
4242//
4243// See DescribeClusterVersions for more information on using the DescribeClusterVersions
4244// API call, and error handling.
4245//
4246// This method is useful when you want to inject custom logic or configuration
4247// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4248//
4249//
4250//    // Example sending a request using the DescribeClusterVersionsRequest method.
4251//    req, resp := client.DescribeClusterVersionsRequest(params)
4252//
4253//    err := req.Send()
4254//    if err == nil { // resp is now filled
4255//        fmt.Println(resp)
4256//    }
4257//
4258// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterVersions
4259func (c *Redshift) DescribeClusterVersionsRequest(input *DescribeClusterVersionsInput) (req *request.Request, output *DescribeClusterVersionsOutput) {
4260	op := &request.Operation{
4261		Name:       opDescribeClusterVersions,
4262		HTTPMethod: "POST",
4263		HTTPPath:   "/",
4264		Paginator: &request.Paginator{
4265			InputTokens:     []string{"Marker"},
4266			OutputTokens:    []string{"Marker"},
4267			LimitToken:      "MaxRecords",
4268			TruncationToken: "",
4269		},
4270	}
4271
4272	if input == nil {
4273		input = &DescribeClusterVersionsInput{}
4274	}
4275
4276	output = &DescribeClusterVersionsOutput{}
4277	req = c.newRequest(op, input, output)
4278	return
4279}
4280
4281// DescribeClusterVersions API operation for Amazon Redshift.
4282//
4283// Returns descriptions of the available Amazon Redshift cluster versions. You
4284// can call this operation even before creating any clusters to learn more about
4285// the Amazon Redshift versions. For more information about managing clusters,
4286// go to Amazon Redshift Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
4287// in the Amazon Redshift Cluster Management Guide.
4288//
4289// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4290// with awserr.Error's Code and Message methods to get detailed information about
4291// the error.
4292//
4293// See the AWS API reference guide for Amazon Redshift's
4294// API operation DescribeClusterVersions for usage and error information.
4295// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterVersions
4296func (c *Redshift) DescribeClusterVersions(input *DescribeClusterVersionsInput) (*DescribeClusterVersionsOutput, error) {
4297	req, out := c.DescribeClusterVersionsRequest(input)
4298	return out, req.Send()
4299}
4300
4301// DescribeClusterVersionsWithContext is the same as DescribeClusterVersions with the addition of
4302// the ability to pass a context and additional request options.
4303//
4304// See DescribeClusterVersions for details on how to use this API operation.
4305//
4306// The context must be non-nil and will be used for request cancellation. If
4307// the context is nil a panic will occur. In the future the SDK may create
4308// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4309// for more information on using Contexts.
4310func (c *Redshift) DescribeClusterVersionsWithContext(ctx aws.Context, input *DescribeClusterVersionsInput, opts ...request.Option) (*DescribeClusterVersionsOutput, error) {
4311	req, out := c.DescribeClusterVersionsRequest(input)
4312	req.SetContext(ctx)
4313	req.ApplyOptions(opts...)
4314	return out, req.Send()
4315}
4316
4317// DescribeClusterVersionsPages iterates over the pages of a DescribeClusterVersions operation,
4318// calling the "fn" function with the response data for each page. To stop
4319// iterating, return false from the fn function.
4320//
4321// See DescribeClusterVersions method for more information on how to use this operation.
4322//
4323// Note: This operation can generate multiple requests to a service.
4324//
4325//    // Example iterating over at most 3 pages of a DescribeClusterVersions operation.
4326//    pageNum := 0
4327//    err := client.DescribeClusterVersionsPages(params,
4328//        func(page *redshift.DescribeClusterVersionsOutput, lastPage bool) bool {
4329//            pageNum++
4330//            fmt.Println(page)
4331//            return pageNum <= 3
4332//        })
4333//
4334func (c *Redshift) DescribeClusterVersionsPages(input *DescribeClusterVersionsInput, fn func(*DescribeClusterVersionsOutput, bool) bool) error {
4335	return c.DescribeClusterVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
4336}
4337
4338// DescribeClusterVersionsPagesWithContext same as DescribeClusterVersionsPages except
4339// it takes a Context and allows setting request options on the pages.
4340//
4341// The context must be non-nil and will be used for request cancellation. If
4342// the context is nil a panic will occur. In the future the SDK may create
4343// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4344// for more information on using Contexts.
4345func (c *Redshift) DescribeClusterVersionsPagesWithContext(ctx aws.Context, input *DescribeClusterVersionsInput, fn func(*DescribeClusterVersionsOutput, bool) bool, opts ...request.Option) error {
4346	p := request.Pagination{
4347		NewRequest: func() (*request.Request, error) {
4348			var inCpy *DescribeClusterVersionsInput
4349			if input != nil {
4350				tmp := *input
4351				inCpy = &tmp
4352			}
4353			req, _ := c.DescribeClusterVersionsRequest(inCpy)
4354			req.SetContext(ctx)
4355			req.ApplyOptions(opts...)
4356			return req, nil
4357		},
4358	}
4359
4360	for p.Next() {
4361		if !fn(p.Page().(*DescribeClusterVersionsOutput), !p.HasNextPage()) {
4362			break
4363		}
4364	}
4365
4366	return p.Err()
4367}
4368
4369const opDescribeClusters = "DescribeClusters"
4370
4371// DescribeClustersRequest generates a "aws/request.Request" representing the
4372// client's request for the DescribeClusters operation. The "output" return
4373// value will be populated with the request's response once the request completes
4374// successfully.
4375//
4376// Use "Send" method on the returned Request to send the API call to the service.
4377// the "output" return value is not valid until after Send returns without error.
4378//
4379// See DescribeClusters for more information on using the DescribeClusters
4380// API call, and error handling.
4381//
4382// This method is useful when you want to inject custom logic or configuration
4383// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4384//
4385//
4386//    // Example sending a request using the DescribeClustersRequest method.
4387//    req, resp := client.DescribeClustersRequest(params)
4388//
4389//    err := req.Send()
4390//    if err == nil { // resp is now filled
4391//        fmt.Println(resp)
4392//    }
4393//
4394// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusters
4395func (c *Redshift) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
4396	op := &request.Operation{
4397		Name:       opDescribeClusters,
4398		HTTPMethod: "POST",
4399		HTTPPath:   "/",
4400		Paginator: &request.Paginator{
4401			InputTokens:     []string{"Marker"},
4402			OutputTokens:    []string{"Marker"},
4403			LimitToken:      "MaxRecords",
4404			TruncationToken: "",
4405		},
4406	}
4407
4408	if input == nil {
4409		input = &DescribeClustersInput{}
4410	}
4411
4412	output = &DescribeClustersOutput{}
4413	req = c.newRequest(op, input, output)
4414	return
4415}
4416
4417// DescribeClusters API operation for Amazon Redshift.
4418//
4419// Returns properties of provisioned clusters including general cluster properties,
4420// cluster database properties, maintenance and backup properties, and security
4421// and access properties. This operation supports pagination. For more information
4422// about managing clusters, go to Amazon Redshift Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
4423// in the Amazon Redshift Cluster Management Guide.
4424//
4425// If you specify both tag keys and tag values in the same request, Amazon Redshift
4426// returns all clusters that match any combination of the specified keys and
4427// values. For example, if you have owner and environment for tag keys, and
4428// admin and test for tag values, all clusters that have any combination of
4429// those values are returned.
4430//
4431// If both tag keys and values are omitted from the request, clusters are returned
4432// regardless of whether they have tag keys or values associated with them.
4433//
4434// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4435// with awserr.Error's Code and Message methods to get detailed information about
4436// the error.
4437//
4438// See the AWS API reference guide for Amazon Redshift's
4439// API operation DescribeClusters for usage and error information.
4440//
4441// Returned Error Codes:
4442//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
4443//   The ClusterIdentifier parameter does not refer to an existing cluster.
4444//
4445//   * ErrCodeInvalidTagFault "InvalidTagFault"
4446//   The tag is invalid.
4447//
4448// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusters
4449func (c *Redshift) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
4450	req, out := c.DescribeClustersRequest(input)
4451	return out, req.Send()
4452}
4453
4454// DescribeClustersWithContext is the same as DescribeClusters with the addition of
4455// the ability to pass a context and additional request options.
4456//
4457// See DescribeClusters for details on how to use this API operation.
4458//
4459// The context must be non-nil and will be used for request cancellation. If
4460// the context is nil a panic will occur. In the future the SDK may create
4461// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4462// for more information on using Contexts.
4463func (c *Redshift) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
4464	req, out := c.DescribeClustersRequest(input)
4465	req.SetContext(ctx)
4466	req.ApplyOptions(opts...)
4467	return out, req.Send()
4468}
4469
4470// DescribeClustersPages iterates over the pages of a DescribeClusters operation,
4471// calling the "fn" function with the response data for each page. To stop
4472// iterating, return false from the fn function.
4473//
4474// See DescribeClusters method for more information on how to use this operation.
4475//
4476// Note: This operation can generate multiple requests to a service.
4477//
4478//    // Example iterating over at most 3 pages of a DescribeClusters operation.
4479//    pageNum := 0
4480//    err := client.DescribeClustersPages(params,
4481//        func(page *redshift.DescribeClustersOutput, lastPage bool) bool {
4482//            pageNum++
4483//            fmt.Println(page)
4484//            return pageNum <= 3
4485//        })
4486//
4487func (c *Redshift) DescribeClustersPages(input *DescribeClustersInput, fn func(*DescribeClustersOutput, bool) bool) error {
4488	return c.DescribeClustersPagesWithContext(aws.BackgroundContext(), input, fn)
4489}
4490
4491// DescribeClustersPagesWithContext same as DescribeClustersPages except
4492// it takes a Context and allows setting request options on the pages.
4493//
4494// The context must be non-nil and will be used for request cancellation. If
4495// the context is nil a panic will occur. In the future the SDK may create
4496// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4497// for more information on using Contexts.
4498func (c *Redshift) DescribeClustersPagesWithContext(ctx aws.Context, input *DescribeClustersInput, fn func(*DescribeClustersOutput, bool) bool, opts ...request.Option) error {
4499	p := request.Pagination{
4500		NewRequest: func() (*request.Request, error) {
4501			var inCpy *DescribeClustersInput
4502			if input != nil {
4503				tmp := *input
4504				inCpy = &tmp
4505			}
4506			req, _ := c.DescribeClustersRequest(inCpy)
4507			req.SetContext(ctx)
4508			req.ApplyOptions(opts...)
4509			return req, nil
4510		},
4511	}
4512
4513	for p.Next() {
4514		if !fn(p.Page().(*DescribeClustersOutput), !p.HasNextPage()) {
4515			break
4516		}
4517	}
4518
4519	return p.Err()
4520}
4521
4522const opDescribeDefaultClusterParameters = "DescribeDefaultClusterParameters"
4523
4524// DescribeDefaultClusterParametersRequest generates a "aws/request.Request" representing the
4525// client's request for the DescribeDefaultClusterParameters operation. The "output" return
4526// value will be populated with the request's response once the request completes
4527// successfully.
4528//
4529// Use "Send" method on the returned Request to send the API call to the service.
4530// the "output" return value is not valid until after Send returns without error.
4531//
4532// See DescribeDefaultClusterParameters for more information on using the DescribeDefaultClusterParameters
4533// API call, and error handling.
4534//
4535// This method is useful when you want to inject custom logic or configuration
4536// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4537//
4538//
4539//    // Example sending a request using the DescribeDefaultClusterParametersRequest method.
4540//    req, resp := client.DescribeDefaultClusterParametersRequest(params)
4541//
4542//    err := req.Send()
4543//    if err == nil { // resp is now filled
4544//        fmt.Println(resp)
4545//    }
4546//
4547// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeDefaultClusterParameters
4548func (c *Redshift) DescribeDefaultClusterParametersRequest(input *DescribeDefaultClusterParametersInput) (req *request.Request, output *DescribeDefaultClusterParametersOutput) {
4549	op := &request.Operation{
4550		Name:       opDescribeDefaultClusterParameters,
4551		HTTPMethod: "POST",
4552		HTTPPath:   "/",
4553		Paginator: &request.Paginator{
4554			InputTokens:     []string{"Marker"},
4555			OutputTokens:    []string{"DefaultClusterParameters.Marker"},
4556			LimitToken:      "MaxRecords",
4557			TruncationToken: "",
4558		},
4559	}
4560
4561	if input == nil {
4562		input = &DescribeDefaultClusterParametersInput{}
4563	}
4564
4565	output = &DescribeDefaultClusterParametersOutput{}
4566	req = c.newRequest(op, input, output)
4567	return
4568}
4569
4570// DescribeDefaultClusterParameters API operation for Amazon Redshift.
4571//
4572// Returns a list of parameter settings for the specified parameter group family.
4573//
4574// For more information about parameters and parameter groups, go to Amazon
4575// Redshift Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
4576// in the Amazon Redshift Cluster Management Guide.
4577//
4578// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4579// with awserr.Error's Code and Message methods to get detailed information about
4580// the error.
4581//
4582// See the AWS API reference guide for Amazon Redshift's
4583// API operation DescribeDefaultClusterParameters for usage and error information.
4584// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeDefaultClusterParameters
4585func (c *Redshift) DescribeDefaultClusterParameters(input *DescribeDefaultClusterParametersInput) (*DescribeDefaultClusterParametersOutput, error) {
4586	req, out := c.DescribeDefaultClusterParametersRequest(input)
4587	return out, req.Send()
4588}
4589
4590// DescribeDefaultClusterParametersWithContext is the same as DescribeDefaultClusterParameters with the addition of
4591// the ability to pass a context and additional request options.
4592//
4593// See DescribeDefaultClusterParameters for details on how to use this API operation.
4594//
4595// The context must be non-nil and will be used for request cancellation. If
4596// the context is nil a panic will occur. In the future the SDK may create
4597// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4598// for more information on using Contexts.
4599func (c *Redshift) DescribeDefaultClusterParametersWithContext(ctx aws.Context, input *DescribeDefaultClusterParametersInput, opts ...request.Option) (*DescribeDefaultClusterParametersOutput, error) {
4600	req, out := c.DescribeDefaultClusterParametersRequest(input)
4601	req.SetContext(ctx)
4602	req.ApplyOptions(opts...)
4603	return out, req.Send()
4604}
4605
4606// DescribeDefaultClusterParametersPages iterates over the pages of a DescribeDefaultClusterParameters operation,
4607// calling the "fn" function with the response data for each page. To stop
4608// iterating, return false from the fn function.
4609//
4610// See DescribeDefaultClusterParameters method for more information on how to use this operation.
4611//
4612// Note: This operation can generate multiple requests to a service.
4613//
4614//    // Example iterating over at most 3 pages of a DescribeDefaultClusterParameters operation.
4615//    pageNum := 0
4616//    err := client.DescribeDefaultClusterParametersPages(params,
4617//        func(page *redshift.DescribeDefaultClusterParametersOutput, lastPage bool) bool {
4618//            pageNum++
4619//            fmt.Println(page)
4620//            return pageNum <= 3
4621//        })
4622//
4623func (c *Redshift) DescribeDefaultClusterParametersPages(input *DescribeDefaultClusterParametersInput, fn func(*DescribeDefaultClusterParametersOutput, bool) bool) error {
4624	return c.DescribeDefaultClusterParametersPagesWithContext(aws.BackgroundContext(), input, fn)
4625}
4626
4627// DescribeDefaultClusterParametersPagesWithContext same as DescribeDefaultClusterParametersPages except
4628// it takes a Context and allows setting request options on the pages.
4629//
4630// The context must be non-nil and will be used for request cancellation. If
4631// the context is nil a panic will occur. In the future the SDK may create
4632// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4633// for more information on using Contexts.
4634func (c *Redshift) DescribeDefaultClusterParametersPagesWithContext(ctx aws.Context, input *DescribeDefaultClusterParametersInput, fn func(*DescribeDefaultClusterParametersOutput, bool) bool, opts ...request.Option) error {
4635	p := request.Pagination{
4636		NewRequest: func() (*request.Request, error) {
4637			var inCpy *DescribeDefaultClusterParametersInput
4638			if input != nil {
4639				tmp := *input
4640				inCpy = &tmp
4641			}
4642			req, _ := c.DescribeDefaultClusterParametersRequest(inCpy)
4643			req.SetContext(ctx)
4644			req.ApplyOptions(opts...)
4645			return req, nil
4646		},
4647	}
4648
4649	for p.Next() {
4650		if !fn(p.Page().(*DescribeDefaultClusterParametersOutput), !p.HasNextPage()) {
4651			break
4652		}
4653	}
4654
4655	return p.Err()
4656}
4657
4658const opDescribeEventCategories = "DescribeEventCategories"
4659
4660// DescribeEventCategoriesRequest generates a "aws/request.Request" representing the
4661// client's request for the DescribeEventCategories operation. The "output" return
4662// value will be populated with the request's response once the request completes
4663// successfully.
4664//
4665// Use "Send" method on the returned Request to send the API call to the service.
4666// the "output" return value is not valid until after Send returns without error.
4667//
4668// See DescribeEventCategories for more information on using the DescribeEventCategories
4669// API call, and error handling.
4670//
4671// This method is useful when you want to inject custom logic or configuration
4672// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4673//
4674//
4675//    // Example sending a request using the DescribeEventCategoriesRequest method.
4676//    req, resp := client.DescribeEventCategoriesRequest(params)
4677//
4678//    err := req.Send()
4679//    if err == nil { // resp is now filled
4680//        fmt.Println(resp)
4681//    }
4682//
4683// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEventCategories
4684func (c *Redshift) DescribeEventCategoriesRequest(input *DescribeEventCategoriesInput) (req *request.Request, output *DescribeEventCategoriesOutput) {
4685	op := &request.Operation{
4686		Name:       opDescribeEventCategories,
4687		HTTPMethod: "POST",
4688		HTTPPath:   "/",
4689	}
4690
4691	if input == nil {
4692		input = &DescribeEventCategoriesInput{}
4693	}
4694
4695	output = &DescribeEventCategoriesOutput{}
4696	req = c.newRequest(op, input, output)
4697	return
4698}
4699
4700// DescribeEventCategories API operation for Amazon Redshift.
4701//
4702// Displays a list of event categories for all event source types, or for a
4703// specified source type. For a list of the event categories and source types,
4704// go to Amazon Redshift Event Notifications (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-event-notifications.html).
4705//
4706// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4707// with awserr.Error's Code and Message methods to get detailed information about
4708// the error.
4709//
4710// See the AWS API reference guide for Amazon Redshift's
4711// API operation DescribeEventCategories for usage and error information.
4712// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEventCategories
4713func (c *Redshift) DescribeEventCategories(input *DescribeEventCategoriesInput) (*DescribeEventCategoriesOutput, error) {
4714	req, out := c.DescribeEventCategoriesRequest(input)
4715	return out, req.Send()
4716}
4717
4718// DescribeEventCategoriesWithContext is the same as DescribeEventCategories with the addition of
4719// the ability to pass a context and additional request options.
4720//
4721// See DescribeEventCategories for details on how to use this API operation.
4722//
4723// The context must be non-nil and will be used for request cancellation. If
4724// the context is nil a panic will occur. In the future the SDK may create
4725// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4726// for more information on using Contexts.
4727func (c *Redshift) DescribeEventCategoriesWithContext(ctx aws.Context, input *DescribeEventCategoriesInput, opts ...request.Option) (*DescribeEventCategoriesOutput, error) {
4728	req, out := c.DescribeEventCategoriesRequest(input)
4729	req.SetContext(ctx)
4730	req.ApplyOptions(opts...)
4731	return out, req.Send()
4732}
4733
4734const opDescribeEventSubscriptions = "DescribeEventSubscriptions"
4735
4736// DescribeEventSubscriptionsRequest generates a "aws/request.Request" representing the
4737// client's request for the DescribeEventSubscriptions operation. The "output" return
4738// value will be populated with the request's response once the request completes
4739// successfully.
4740//
4741// Use "Send" method on the returned Request to send the API call to the service.
4742// the "output" return value is not valid until after Send returns without error.
4743//
4744// See DescribeEventSubscriptions for more information on using the DescribeEventSubscriptions
4745// API call, and error handling.
4746//
4747// This method is useful when you want to inject custom logic or configuration
4748// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4749//
4750//
4751//    // Example sending a request using the DescribeEventSubscriptionsRequest method.
4752//    req, resp := client.DescribeEventSubscriptionsRequest(params)
4753//
4754//    err := req.Send()
4755//    if err == nil { // resp is now filled
4756//        fmt.Println(resp)
4757//    }
4758//
4759// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEventSubscriptions
4760func (c *Redshift) DescribeEventSubscriptionsRequest(input *DescribeEventSubscriptionsInput) (req *request.Request, output *DescribeEventSubscriptionsOutput) {
4761	op := &request.Operation{
4762		Name:       opDescribeEventSubscriptions,
4763		HTTPMethod: "POST",
4764		HTTPPath:   "/",
4765		Paginator: &request.Paginator{
4766			InputTokens:     []string{"Marker"},
4767			OutputTokens:    []string{"Marker"},
4768			LimitToken:      "MaxRecords",
4769			TruncationToken: "",
4770		},
4771	}
4772
4773	if input == nil {
4774		input = &DescribeEventSubscriptionsInput{}
4775	}
4776
4777	output = &DescribeEventSubscriptionsOutput{}
4778	req = c.newRequest(op, input, output)
4779	return
4780}
4781
4782// DescribeEventSubscriptions API operation for Amazon Redshift.
4783//
4784// Lists descriptions of all the Amazon Redshift event notification subscriptions
4785// for a customer account. If you specify a subscription name, lists the description
4786// for that subscription.
4787//
4788// If you specify both tag keys and tag values in the same request, Amazon Redshift
4789// returns all event notification subscriptions that match any combination of
4790// the specified keys and values. For example, if you have owner and environment
4791// for tag keys, and admin and test for tag values, all subscriptions that have
4792// any combination of those values are returned.
4793//
4794// If both tag keys and values are omitted from the request, subscriptions are
4795// returned regardless of whether they have tag keys or values associated with
4796// them.
4797//
4798// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4799// with awserr.Error's Code and Message methods to get detailed information about
4800// the error.
4801//
4802// See the AWS API reference guide for Amazon Redshift's
4803// API operation DescribeEventSubscriptions for usage and error information.
4804//
4805// Returned Error Codes:
4806//   * ErrCodeSubscriptionNotFoundFault "SubscriptionNotFound"
4807//   An Amazon Redshift event notification subscription with the specified name
4808//   does not exist.
4809//
4810//   * ErrCodeInvalidTagFault "InvalidTagFault"
4811//   The tag is invalid.
4812//
4813// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEventSubscriptions
4814func (c *Redshift) DescribeEventSubscriptions(input *DescribeEventSubscriptionsInput) (*DescribeEventSubscriptionsOutput, error) {
4815	req, out := c.DescribeEventSubscriptionsRequest(input)
4816	return out, req.Send()
4817}
4818
4819// DescribeEventSubscriptionsWithContext is the same as DescribeEventSubscriptions with the addition of
4820// the ability to pass a context and additional request options.
4821//
4822// See DescribeEventSubscriptions for details on how to use this API operation.
4823//
4824// The context must be non-nil and will be used for request cancellation. If
4825// the context is nil a panic will occur. In the future the SDK may create
4826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4827// for more information on using Contexts.
4828func (c *Redshift) DescribeEventSubscriptionsWithContext(ctx aws.Context, input *DescribeEventSubscriptionsInput, opts ...request.Option) (*DescribeEventSubscriptionsOutput, error) {
4829	req, out := c.DescribeEventSubscriptionsRequest(input)
4830	req.SetContext(ctx)
4831	req.ApplyOptions(opts...)
4832	return out, req.Send()
4833}
4834
4835// DescribeEventSubscriptionsPages iterates over the pages of a DescribeEventSubscriptions operation,
4836// calling the "fn" function with the response data for each page. To stop
4837// iterating, return false from the fn function.
4838//
4839// See DescribeEventSubscriptions method for more information on how to use this operation.
4840//
4841// Note: This operation can generate multiple requests to a service.
4842//
4843//    // Example iterating over at most 3 pages of a DescribeEventSubscriptions operation.
4844//    pageNum := 0
4845//    err := client.DescribeEventSubscriptionsPages(params,
4846//        func(page *redshift.DescribeEventSubscriptionsOutput, lastPage bool) bool {
4847//            pageNum++
4848//            fmt.Println(page)
4849//            return pageNum <= 3
4850//        })
4851//
4852func (c *Redshift) DescribeEventSubscriptionsPages(input *DescribeEventSubscriptionsInput, fn func(*DescribeEventSubscriptionsOutput, bool) bool) error {
4853	return c.DescribeEventSubscriptionsPagesWithContext(aws.BackgroundContext(), input, fn)
4854}
4855
4856// DescribeEventSubscriptionsPagesWithContext same as DescribeEventSubscriptionsPages except
4857// it takes a Context and allows setting request options on the pages.
4858//
4859// The context must be non-nil and will be used for request cancellation. If
4860// the context is nil a panic will occur. In the future the SDK may create
4861// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4862// for more information on using Contexts.
4863func (c *Redshift) DescribeEventSubscriptionsPagesWithContext(ctx aws.Context, input *DescribeEventSubscriptionsInput, fn func(*DescribeEventSubscriptionsOutput, bool) bool, opts ...request.Option) error {
4864	p := request.Pagination{
4865		NewRequest: func() (*request.Request, error) {
4866			var inCpy *DescribeEventSubscriptionsInput
4867			if input != nil {
4868				tmp := *input
4869				inCpy = &tmp
4870			}
4871			req, _ := c.DescribeEventSubscriptionsRequest(inCpy)
4872			req.SetContext(ctx)
4873			req.ApplyOptions(opts...)
4874			return req, nil
4875		},
4876	}
4877
4878	for p.Next() {
4879		if !fn(p.Page().(*DescribeEventSubscriptionsOutput), !p.HasNextPage()) {
4880			break
4881		}
4882	}
4883
4884	return p.Err()
4885}
4886
4887const opDescribeEvents = "DescribeEvents"
4888
4889// DescribeEventsRequest generates a "aws/request.Request" representing the
4890// client's request for the DescribeEvents operation. The "output" return
4891// value will be populated with the request's response once the request completes
4892// successfully.
4893//
4894// Use "Send" method on the returned Request to send the API call to the service.
4895// the "output" return value is not valid until after Send returns without error.
4896//
4897// See DescribeEvents for more information on using the DescribeEvents
4898// API call, and error handling.
4899//
4900// This method is useful when you want to inject custom logic or configuration
4901// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4902//
4903//
4904//    // Example sending a request using the DescribeEventsRequest method.
4905//    req, resp := client.DescribeEventsRequest(params)
4906//
4907//    err := req.Send()
4908//    if err == nil { // resp is now filled
4909//        fmt.Println(resp)
4910//    }
4911//
4912// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEvents
4913func (c *Redshift) DescribeEventsRequest(input *DescribeEventsInput) (req *request.Request, output *DescribeEventsOutput) {
4914	op := &request.Operation{
4915		Name:       opDescribeEvents,
4916		HTTPMethod: "POST",
4917		HTTPPath:   "/",
4918		Paginator: &request.Paginator{
4919			InputTokens:     []string{"Marker"},
4920			OutputTokens:    []string{"Marker"},
4921			LimitToken:      "MaxRecords",
4922			TruncationToken: "",
4923		},
4924	}
4925
4926	if input == nil {
4927		input = &DescribeEventsInput{}
4928	}
4929
4930	output = &DescribeEventsOutput{}
4931	req = c.newRequest(op, input, output)
4932	return
4933}
4934
4935// DescribeEvents API operation for Amazon Redshift.
4936//
4937// Returns events related to clusters, security groups, snapshots, and parameter
4938// groups for the past 14 days. Events specific to a particular cluster, security
4939// group, snapshot or parameter group can be obtained by providing the name
4940// as a parameter. By default, the past hour of events are returned.
4941//
4942// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4943// with awserr.Error's Code and Message methods to get detailed information about
4944// the error.
4945//
4946// See the AWS API reference guide for Amazon Redshift's
4947// API operation DescribeEvents for usage and error information.
4948// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEvents
4949func (c *Redshift) DescribeEvents(input *DescribeEventsInput) (*DescribeEventsOutput, error) {
4950	req, out := c.DescribeEventsRequest(input)
4951	return out, req.Send()
4952}
4953
4954// DescribeEventsWithContext is the same as DescribeEvents with the addition of
4955// the ability to pass a context and additional request options.
4956//
4957// See DescribeEvents for details on how to use this API operation.
4958//
4959// The context must be non-nil and will be used for request cancellation. If
4960// the context is nil a panic will occur. In the future the SDK may create
4961// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4962// for more information on using Contexts.
4963func (c *Redshift) DescribeEventsWithContext(ctx aws.Context, input *DescribeEventsInput, opts ...request.Option) (*DescribeEventsOutput, error) {
4964	req, out := c.DescribeEventsRequest(input)
4965	req.SetContext(ctx)
4966	req.ApplyOptions(opts...)
4967	return out, req.Send()
4968}
4969
4970// DescribeEventsPages iterates over the pages of a DescribeEvents operation,
4971// calling the "fn" function with the response data for each page. To stop
4972// iterating, return false from the fn function.
4973//
4974// See DescribeEvents method for more information on how to use this operation.
4975//
4976// Note: This operation can generate multiple requests to a service.
4977//
4978//    // Example iterating over at most 3 pages of a DescribeEvents operation.
4979//    pageNum := 0
4980//    err := client.DescribeEventsPages(params,
4981//        func(page *redshift.DescribeEventsOutput, lastPage bool) bool {
4982//            pageNum++
4983//            fmt.Println(page)
4984//            return pageNum <= 3
4985//        })
4986//
4987func (c *Redshift) DescribeEventsPages(input *DescribeEventsInput, fn func(*DescribeEventsOutput, bool) bool) error {
4988	return c.DescribeEventsPagesWithContext(aws.BackgroundContext(), input, fn)
4989}
4990
4991// DescribeEventsPagesWithContext same as DescribeEventsPages except
4992// it takes a Context and allows setting request options on the pages.
4993//
4994// The context must be non-nil and will be used for request cancellation. If
4995// the context is nil a panic will occur. In the future the SDK may create
4996// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4997// for more information on using Contexts.
4998func (c *Redshift) DescribeEventsPagesWithContext(ctx aws.Context, input *DescribeEventsInput, fn func(*DescribeEventsOutput, bool) bool, opts ...request.Option) error {
4999	p := request.Pagination{
5000		NewRequest: func() (*request.Request, error) {
5001			var inCpy *DescribeEventsInput
5002			if input != nil {
5003				tmp := *input
5004				inCpy = &tmp
5005			}
5006			req, _ := c.DescribeEventsRequest(inCpy)
5007			req.SetContext(ctx)
5008			req.ApplyOptions(opts...)
5009			return req, nil
5010		},
5011	}
5012
5013	for p.Next() {
5014		if !fn(p.Page().(*DescribeEventsOutput), !p.HasNextPage()) {
5015			break
5016		}
5017	}
5018
5019	return p.Err()
5020}
5021
5022const opDescribeHsmClientCertificates = "DescribeHsmClientCertificates"
5023
5024// DescribeHsmClientCertificatesRequest generates a "aws/request.Request" representing the
5025// client's request for the DescribeHsmClientCertificates operation. The "output" return
5026// value will be populated with the request's response once the request completes
5027// successfully.
5028//
5029// Use "Send" method on the returned Request to send the API call to the service.
5030// the "output" return value is not valid until after Send returns without error.
5031//
5032// See DescribeHsmClientCertificates for more information on using the DescribeHsmClientCertificates
5033// API call, and error handling.
5034//
5035// This method is useful when you want to inject custom logic or configuration
5036// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5037//
5038//
5039//    // Example sending a request using the DescribeHsmClientCertificatesRequest method.
5040//    req, resp := client.DescribeHsmClientCertificatesRequest(params)
5041//
5042//    err := req.Send()
5043//    if err == nil { // resp is now filled
5044//        fmt.Println(resp)
5045//    }
5046//
5047// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeHsmClientCertificates
5048func (c *Redshift) DescribeHsmClientCertificatesRequest(input *DescribeHsmClientCertificatesInput) (req *request.Request, output *DescribeHsmClientCertificatesOutput) {
5049	op := &request.Operation{
5050		Name:       opDescribeHsmClientCertificates,
5051		HTTPMethod: "POST",
5052		HTTPPath:   "/",
5053		Paginator: &request.Paginator{
5054			InputTokens:     []string{"Marker"},
5055			OutputTokens:    []string{"Marker"},
5056			LimitToken:      "MaxRecords",
5057			TruncationToken: "",
5058		},
5059	}
5060
5061	if input == nil {
5062		input = &DescribeHsmClientCertificatesInput{}
5063	}
5064
5065	output = &DescribeHsmClientCertificatesOutput{}
5066	req = c.newRequest(op, input, output)
5067	return
5068}
5069
5070// DescribeHsmClientCertificates API operation for Amazon Redshift.
5071//
5072// Returns information about the specified HSM client certificate. If no certificate
5073// ID is specified, returns information about all the HSM certificates owned
5074// by your AWS customer account.
5075//
5076// If you specify both tag keys and tag values in the same request, Amazon Redshift
5077// returns all HSM client certificates that match any combination of the specified
5078// keys and values. For example, if you have owner and environment for tag keys,
5079// and admin and test for tag values, all HSM client certificates that have
5080// any combination of those values are returned.
5081//
5082// If both tag keys and values are omitted from the request, HSM client certificates
5083// are returned regardless of whether they have tag keys or values associated
5084// with them.
5085//
5086// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5087// with awserr.Error's Code and Message methods to get detailed information about
5088// the error.
5089//
5090// See the AWS API reference guide for Amazon Redshift's
5091// API operation DescribeHsmClientCertificates for usage and error information.
5092//
5093// Returned Error Codes:
5094//   * ErrCodeHsmClientCertificateNotFoundFault "HsmClientCertificateNotFoundFault"
5095//   There is no Amazon Redshift HSM client certificate with the specified identifier.
5096//
5097//   * ErrCodeInvalidTagFault "InvalidTagFault"
5098//   The tag is invalid.
5099//
5100// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeHsmClientCertificates
5101func (c *Redshift) DescribeHsmClientCertificates(input *DescribeHsmClientCertificatesInput) (*DescribeHsmClientCertificatesOutput, error) {
5102	req, out := c.DescribeHsmClientCertificatesRequest(input)
5103	return out, req.Send()
5104}
5105
5106// DescribeHsmClientCertificatesWithContext is the same as DescribeHsmClientCertificates with the addition of
5107// the ability to pass a context and additional request options.
5108//
5109// See DescribeHsmClientCertificates for details on how to use this API operation.
5110//
5111// The context must be non-nil and will be used for request cancellation. If
5112// the context is nil a panic will occur. In the future the SDK may create
5113// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5114// for more information on using Contexts.
5115func (c *Redshift) DescribeHsmClientCertificatesWithContext(ctx aws.Context, input *DescribeHsmClientCertificatesInput, opts ...request.Option) (*DescribeHsmClientCertificatesOutput, error) {
5116	req, out := c.DescribeHsmClientCertificatesRequest(input)
5117	req.SetContext(ctx)
5118	req.ApplyOptions(opts...)
5119	return out, req.Send()
5120}
5121
5122// DescribeHsmClientCertificatesPages iterates over the pages of a DescribeHsmClientCertificates operation,
5123// calling the "fn" function with the response data for each page. To stop
5124// iterating, return false from the fn function.
5125//
5126// See DescribeHsmClientCertificates method for more information on how to use this operation.
5127//
5128// Note: This operation can generate multiple requests to a service.
5129//
5130//    // Example iterating over at most 3 pages of a DescribeHsmClientCertificates operation.
5131//    pageNum := 0
5132//    err := client.DescribeHsmClientCertificatesPages(params,
5133//        func(page *redshift.DescribeHsmClientCertificatesOutput, lastPage bool) bool {
5134//            pageNum++
5135//            fmt.Println(page)
5136//            return pageNum <= 3
5137//        })
5138//
5139func (c *Redshift) DescribeHsmClientCertificatesPages(input *DescribeHsmClientCertificatesInput, fn func(*DescribeHsmClientCertificatesOutput, bool) bool) error {
5140	return c.DescribeHsmClientCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
5141}
5142
5143// DescribeHsmClientCertificatesPagesWithContext same as DescribeHsmClientCertificatesPages except
5144// it takes a Context and allows setting request options on the pages.
5145//
5146// The context must be non-nil and will be used for request cancellation. If
5147// the context is nil a panic will occur. In the future the SDK may create
5148// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5149// for more information on using Contexts.
5150func (c *Redshift) DescribeHsmClientCertificatesPagesWithContext(ctx aws.Context, input *DescribeHsmClientCertificatesInput, fn func(*DescribeHsmClientCertificatesOutput, bool) bool, opts ...request.Option) error {
5151	p := request.Pagination{
5152		NewRequest: func() (*request.Request, error) {
5153			var inCpy *DescribeHsmClientCertificatesInput
5154			if input != nil {
5155				tmp := *input
5156				inCpy = &tmp
5157			}
5158			req, _ := c.DescribeHsmClientCertificatesRequest(inCpy)
5159			req.SetContext(ctx)
5160			req.ApplyOptions(opts...)
5161			return req, nil
5162		},
5163	}
5164
5165	for p.Next() {
5166		if !fn(p.Page().(*DescribeHsmClientCertificatesOutput), !p.HasNextPage()) {
5167			break
5168		}
5169	}
5170
5171	return p.Err()
5172}
5173
5174const opDescribeHsmConfigurations = "DescribeHsmConfigurations"
5175
5176// DescribeHsmConfigurationsRequest generates a "aws/request.Request" representing the
5177// client's request for the DescribeHsmConfigurations operation. The "output" return
5178// value will be populated with the request's response once the request completes
5179// successfully.
5180//
5181// Use "Send" method on the returned Request to send the API call to the service.
5182// the "output" return value is not valid until after Send returns without error.
5183//
5184// See DescribeHsmConfigurations for more information on using the DescribeHsmConfigurations
5185// API call, and error handling.
5186//
5187// This method is useful when you want to inject custom logic or configuration
5188// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5189//
5190//
5191//    // Example sending a request using the DescribeHsmConfigurationsRequest method.
5192//    req, resp := client.DescribeHsmConfigurationsRequest(params)
5193//
5194//    err := req.Send()
5195//    if err == nil { // resp is now filled
5196//        fmt.Println(resp)
5197//    }
5198//
5199// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeHsmConfigurations
5200func (c *Redshift) DescribeHsmConfigurationsRequest(input *DescribeHsmConfigurationsInput) (req *request.Request, output *DescribeHsmConfigurationsOutput) {
5201	op := &request.Operation{
5202		Name:       opDescribeHsmConfigurations,
5203		HTTPMethod: "POST",
5204		HTTPPath:   "/",
5205		Paginator: &request.Paginator{
5206			InputTokens:     []string{"Marker"},
5207			OutputTokens:    []string{"Marker"},
5208			LimitToken:      "MaxRecords",
5209			TruncationToken: "",
5210		},
5211	}
5212
5213	if input == nil {
5214		input = &DescribeHsmConfigurationsInput{}
5215	}
5216
5217	output = &DescribeHsmConfigurationsOutput{}
5218	req = c.newRequest(op, input, output)
5219	return
5220}
5221
5222// DescribeHsmConfigurations API operation for Amazon Redshift.
5223//
5224// Returns information about the specified Amazon Redshift HSM configuration.
5225// If no configuration ID is specified, returns information about all the HSM
5226// configurations owned by your AWS customer account.
5227//
5228// If you specify both tag keys and tag values in the same request, Amazon Redshift
5229// returns all HSM connections that match any combination of the specified keys
5230// and values. For example, if you have owner and environment for tag keys,
5231// and admin and test for tag values, all HSM connections that have any combination
5232// of those values are returned.
5233//
5234// If both tag keys and values are omitted from the request, HSM connections
5235// are returned regardless of whether they have tag keys or values associated
5236// with them.
5237//
5238// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5239// with awserr.Error's Code and Message methods to get detailed information about
5240// the error.
5241//
5242// See the AWS API reference guide for Amazon Redshift's
5243// API operation DescribeHsmConfigurations for usage and error information.
5244//
5245// Returned Error Codes:
5246//   * ErrCodeHsmConfigurationNotFoundFault "HsmConfigurationNotFoundFault"
5247//   There is no Amazon Redshift HSM configuration with the specified identifier.
5248//
5249//   * ErrCodeInvalidTagFault "InvalidTagFault"
5250//   The tag is invalid.
5251//
5252// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeHsmConfigurations
5253func (c *Redshift) DescribeHsmConfigurations(input *DescribeHsmConfigurationsInput) (*DescribeHsmConfigurationsOutput, error) {
5254	req, out := c.DescribeHsmConfigurationsRequest(input)
5255	return out, req.Send()
5256}
5257
5258// DescribeHsmConfigurationsWithContext is the same as DescribeHsmConfigurations with the addition of
5259// the ability to pass a context and additional request options.
5260//
5261// See DescribeHsmConfigurations for details on how to use this API operation.
5262//
5263// The context must be non-nil and will be used for request cancellation. If
5264// the context is nil a panic will occur. In the future the SDK may create
5265// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5266// for more information on using Contexts.
5267func (c *Redshift) DescribeHsmConfigurationsWithContext(ctx aws.Context, input *DescribeHsmConfigurationsInput, opts ...request.Option) (*DescribeHsmConfigurationsOutput, error) {
5268	req, out := c.DescribeHsmConfigurationsRequest(input)
5269	req.SetContext(ctx)
5270	req.ApplyOptions(opts...)
5271	return out, req.Send()
5272}
5273
5274// DescribeHsmConfigurationsPages iterates over the pages of a DescribeHsmConfigurations operation,
5275// calling the "fn" function with the response data for each page. To stop
5276// iterating, return false from the fn function.
5277//
5278// See DescribeHsmConfigurations method for more information on how to use this operation.
5279//
5280// Note: This operation can generate multiple requests to a service.
5281//
5282//    // Example iterating over at most 3 pages of a DescribeHsmConfigurations operation.
5283//    pageNum := 0
5284//    err := client.DescribeHsmConfigurationsPages(params,
5285//        func(page *redshift.DescribeHsmConfigurationsOutput, lastPage bool) bool {
5286//            pageNum++
5287//            fmt.Println(page)
5288//            return pageNum <= 3
5289//        })
5290//
5291func (c *Redshift) DescribeHsmConfigurationsPages(input *DescribeHsmConfigurationsInput, fn func(*DescribeHsmConfigurationsOutput, bool) bool) error {
5292	return c.DescribeHsmConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
5293}
5294
5295// DescribeHsmConfigurationsPagesWithContext same as DescribeHsmConfigurationsPages except
5296// it takes a Context and allows setting request options on the pages.
5297//
5298// The context must be non-nil and will be used for request cancellation. If
5299// the context is nil a panic will occur. In the future the SDK may create
5300// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5301// for more information on using Contexts.
5302func (c *Redshift) DescribeHsmConfigurationsPagesWithContext(ctx aws.Context, input *DescribeHsmConfigurationsInput, fn func(*DescribeHsmConfigurationsOutput, bool) bool, opts ...request.Option) error {
5303	p := request.Pagination{
5304		NewRequest: func() (*request.Request, error) {
5305			var inCpy *DescribeHsmConfigurationsInput
5306			if input != nil {
5307				tmp := *input
5308				inCpy = &tmp
5309			}
5310			req, _ := c.DescribeHsmConfigurationsRequest(inCpy)
5311			req.SetContext(ctx)
5312			req.ApplyOptions(opts...)
5313			return req, nil
5314		},
5315	}
5316
5317	for p.Next() {
5318		if !fn(p.Page().(*DescribeHsmConfigurationsOutput), !p.HasNextPage()) {
5319			break
5320		}
5321	}
5322
5323	return p.Err()
5324}
5325
5326const opDescribeLoggingStatus = "DescribeLoggingStatus"
5327
5328// DescribeLoggingStatusRequest generates a "aws/request.Request" representing the
5329// client's request for the DescribeLoggingStatus operation. The "output" return
5330// value will be populated with the request's response once the request completes
5331// successfully.
5332//
5333// Use "Send" method on the returned Request to send the API call to the service.
5334// the "output" return value is not valid until after Send returns without error.
5335//
5336// See DescribeLoggingStatus for more information on using the DescribeLoggingStatus
5337// API call, and error handling.
5338//
5339// This method is useful when you want to inject custom logic or configuration
5340// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5341//
5342//
5343//    // Example sending a request using the DescribeLoggingStatusRequest method.
5344//    req, resp := client.DescribeLoggingStatusRequest(params)
5345//
5346//    err := req.Send()
5347//    if err == nil { // resp is now filled
5348//        fmt.Println(resp)
5349//    }
5350//
5351// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeLoggingStatus
5352func (c *Redshift) DescribeLoggingStatusRequest(input *DescribeLoggingStatusInput) (req *request.Request, output *LoggingStatus) {
5353	op := &request.Operation{
5354		Name:       opDescribeLoggingStatus,
5355		HTTPMethod: "POST",
5356		HTTPPath:   "/",
5357	}
5358
5359	if input == nil {
5360		input = &DescribeLoggingStatusInput{}
5361	}
5362
5363	output = &LoggingStatus{}
5364	req = c.newRequest(op, input, output)
5365	return
5366}
5367
5368// DescribeLoggingStatus API operation for Amazon Redshift.
5369//
5370// Describes whether information, such as queries and connection attempts, is
5371// being logged for the specified Amazon Redshift cluster.
5372//
5373// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5374// with awserr.Error's Code and Message methods to get detailed information about
5375// the error.
5376//
5377// See the AWS API reference guide for Amazon Redshift's
5378// API operation DescribeLoggingStatus for usage and error information.
5379//
5380// Returned Error Codes:
5381//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
5382//   The ClusterIdentifier parameter does not refer to an existing cluster.
5383//
5384// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeLoggingStatus
5385func (c *Redshift) DescribeLoggingStatus(input *DescribeLoggingStatusInput) (*LoggingStatus, error) {
5386	req, out := c.DescribeLoggingStatusRequest(input)
5387	return out, req.Send()
5388}
5389
5390// DescribeLoggingStatusWithContext is the same as DescribeLoggingStatus with the addition of
5391// the ability to pass a context and additional request options.
5392//
5393// See DescribeLoggingStatus for details on how to use this API operation.
5394//
5395// The context must be non-nil and will be used for request cancellation. If
5396// the context is nil a panic will occur. In the future the SDK may create
5397// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5398// for more information on using Contexts.
5399func (c *Redshift) DescribeLoggingStatusWithContext(ctx aws.Context, input *DescribeLoggingStatusInput, opts ...request.Option) (*LoggingStatus, error) {
5400	req, out := c.DescribeLoggingStatusRequest(input)
5401	req.SetContext(ctx)
5402	req.ApplyOptions(opts...)
5403	return out, req.Send()
5404}
5405
5406const opDescribeNodeConfigurationOptions = "DescribeNodeConfigurationOptions"
5407
5408// DescribeNodeConfigurationOptionsRequest generates a "aws/request.Request" representing the
5409// client's request for the DescribeNodeConfigurationOptions operation. The "output" return
5410// value will be populated with the request's response once the request completes
5411// successfully.
5412//
5413// Use "Send" method on the returned Request to send the API call to the service.
5414// the "output" return value is not valid until after Send returns without error.
5415//
5416// See DescribeNodeConfigurationOptions for more information on using the DescribeNodeConfigurationOptions
5417// API call, and error handling.
5418//
5419// This method is useful when you want to inject custom logic or configuration
5420// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5421//
5422//
5423//    // Example sending a request using the DescribeNodeConfigurationOptionsRequest method.
5424//    req, resp := client.DescribeNodeConfigurationOptionsRequest(params)
5425//
5426//    err := req.Send()
5427//    if err == nil { // resp is now filled
5428//        fmt.Println(resp)
5429//    }
5430//
5431// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeNodeConfigurationOptions
5432func (c *Redshift) DescribeNodeConfigurationOptionsRequest(input *DescribeNodeConfigurationOptionsInput) (req *request.Request, output *DescribeNodeConfigurationOptionsOutput) {
5433	op := &request.Operation{
5434		Name:       opDescribeNodeConfigurationOptions,
5435		HTTPMethod: "POST",
5436		HTTPPath:   "/",
5437		Paginator: &request.Paginator{
5438			InputTokens:     []string{"Marker"},
5439			OutputTokens:    []string{"Marker"},
5440			LimitToken:      "MaxRecords",
5441			TruncationToken: "",
5442		},
5443	}
5444
5445	if input == nil {
5446		input = &DescribeNodeConfigurationOptionsInput{}
5447	}
5448
5449	output = &DescribeNodeConfigurationOptionsOutput{}
5450	req = c.newRequest(op, input, output)
5451	return
5452}
5453
5454// DescribeNodeConfigurationOptions API operation for Amazon Redshift.
5455//
5456// Returns properties of possible node configurations such as node type, number
5457// of nodes, and disk usage for the specified action type.
5458//
5459// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5460// with awserr.Error's Code and Message methods to get detailed information about
5461// the error.
5462//
5463// See the AWS API reference guide for Amazon Redshift's
5464// API operation DescribeNodeConfigurationOptions for usage and error information.
5465//
5466// Returned Error Codes:
5467//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
5468//   The snapshot identifier does not refer to an existing cluster snapshot.
5469//
5470//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
5471//   The specified cluster snapshot is not in the available state, or other accounts
5472//   are authorized to access the snapshot.
5473//
5474//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
5475//   The ClusterIdentifier parameter does not refer to an existing cluster.
5476//
5477//   * ErrCodeAccessToSnapshotDeniedFault "AccessToSnapshotDenied"
5478//   The owner of the specified snapshot has not authorized your account to access
5479//   the snapshot.
5480//
5481// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeNodeConfigurationOptions
5482func (c *Redshift) DescribeNodeConfigurationOptions(input *DescribeNodeConfigurationOptionsInput) (*DescribeNodeConfigurationOptionsOutput, error) {
5483	req, out := c.DescribeNodeConfigurationOptionsRequest(input)
5484	return out, req.Send()
5485}
5486
5487// DescribeNodeConfigurationOptionsWithContext is the same as DescribeNodeConfigurationOptions with the addition of
5488// the ability to pass a context and additional request options.
5489//
5490// See DescribeNodeConfigurationOptions for details on how to use this API operation.
5491//
5492// The context must be non-nil and will be used for request cancellation. If
5493// the context is nil a panic will occur. In the future the SDK may create
5494// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5495// for more information on using Contexts.
5496func (c *Redshift) DescribeNodeConfigurationOptionsWithContext(ctx aws.Context, input *DescribeNodeConfigurationOptionsInput, opts ...request.Option) (*DescribeNodeConfigurationOptionsOutput, error) {
5497	req, out := c.DescribeNodeConfigurationOptionsRequest(input)
5498	req.SetContext(ctx)
5499	req.ApplyOptions(opts...)
5500	return out, req.Send()
5501}
5502
5503// DescribeNodeConfigurationOptionsPages iterates over the pages of a DescribeNodeConfigurationOptions operation,
5504// calling the "fn" function with the response data for each page. To stop
5505// iterating, return false from the fn function.
5506//
5507// See DescribeNodeConfigurationOptions method for more information on how to use this operation.
5508//
5509// Note: This operation can generate multiple requests to a service.
5510//
5511//    // Example iterating over at most 3 pages of a DescribeNodeConfigurationOptions operation.
5512//    pageNum := 0
5513//    err := client.DescribeNodeConfigurationOptionsPages(params,
5514//        func(page *redshift.DescribeNodeConfigurationOptionsOutput, lastPage bool) bool {
5515//            pageNum++
5516//            fmt.Println(page)
5517//            return pageNum <= 3
5518//        })
5519//
5520func (c *Redshift) DescribeNodeConfigurationOptionsPages(input *DescribeNodeConfigurationOptionsInput, fn func(*DescribeNodeConfigurationOptionsOutput, bool) bool) error {
5521	return c.DescribeNodeConfigurationOptionsPagesWithContext(aws.BackgroundContext(), input, fn)
5522}
5523
5524// DescribeNodeConfigurationOptionsPagesWithContext same as DescribeNodeConfigurationOptionsPages except
5525// it takes a Context and allows setting request options on the pages.
5526//
5527// The context must be non-nil and will be used for request cancellation. If
5528// the context is nil a panic will occur. In the future the SDK may create
5529// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5530// for more information on using Contexts.
5531func (c *Redshift) DescribeNodeConfigurationOptionsPagesWithContext(ctx aws.Context, input *DescribeNodeConfigurationOptionsInput, fn func(*DescribeNodeConfigurationOptionsOutput, bool) bool, opts ...request.Option) error {
5532	p := request.Pagination{
5533		NewRequest: func() (*request.Request, error) {
5534			var inCpy *DescribeNodeConfigurationOptionsInput
5535			if input != nil {
5536				tmp := *input
5537				inCpy = &tmp
5538			}
5539			req, _ := c.DescribeNodeConfigurationOptionsRequest(inCpy)
5540			req.SetContext(ctx)
5541			req.ApplyOptions(opts...)
5542			return req, nil
5543		},
5544	}
5545
5546	for p.Next() {
5547		if !fn(p.Page().(*DescribeNodeConfigurationOptionsOutput), !p.HasNextPage()) {
5548			break
5549		}
5550	}
5551
5552	return p.Err()
5553}
5554
5555const opDescribeOrderableClusterOptions = "DescribeOrderableClusterOptions"
5556
5557// DescribeOrderableClusterOptionsRequest generates a "aws/request.Request" representing the
5558// client's request for the DescribeOrderableClusterOptions operation. The "output" return
5559// value will be populated with the request's response once the request completes
5560// successfully.
5561//
5562// Use "Send" method on the returned Request to send the API call to the service.
5563// the "output" return value is not valid until after Send returns without error.
5564//
5565// See DescribeOrderableClusterOptions for more information on using the DescribeOrderableClusterOptions
5566// API call, and error handling.
5567//
5568// This method is useful when you want to inject custom logic or configuration
5569// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5570//
5571//
5572//    // Example sending a request using the DescribeOrderableClusterOptionsRequest method.
5573//    req, resp := client.DescribeOrderableClusterOptionsRequest(params)
5574//
5575//    err := req.Send()
5576//    if err == nil { // resp is now filled
5577//        fmt.Println(resp)
5578//    }
5579//
5580// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeOrderableClusterOptions
5581func (c *Redshift) DescribeOrderableClusterOptionsRequest(input *DescribeOrderableClusterOptionsInput) (req *request.Request, output *DescribeOrderableClusterOptionsOutput) {
5582	op := &request.Operation{
5583		Name:       opDescribeOrderableClusterOptions,
5584		HTTPMethod: "POST",
5585		HTTPPath:   "/",
5586		Paginator: &request.Paginator{
5587			InputTokens:     []string{"Marker"},
5588			OutputTokens:    []string{"Marker"},
5589			LimitToken:      "MaxRecords",
5590			TruncationToken: "",
5591		},
5592	}
5593
5594	if input == nil {
5595		input = &DescribeOrderableClusterOptionsInput{}
5596	}
5597
5598	output = &DescribeOrderableClusterOptionsOutput{}
5599	req = c.newRequest(op, input, output)
5600	return
5601}
5602
5603// DescribeOrderableClusterOptions API operation for Amazon Redshift.
5604//
5605// Returns a list of orderable cluster options. Before you create a new cluster
5606// you can use this operation to find what options are available, such as the
5607// EC2 Availability Zones (AZ) in the specific AWS Region that you can specify,
5608// and the node types you can request. The node types differ by available storage,
5609// memory, CPU and price. With the cost involved you might want to obtain a
5610// list of cluster options in the specific region and specify values when creating
5611// a cluster. For more information about managing clusters, go to Amazon Redshift
5612// Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
5613// in the Amazon Redshift Cluster Management Guide.
5614//
5615// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5616// with awserr.Error's Code and Message methods to get detailed information about
5617// the error.
5618//
5619// See the AWS API reference guide for Amazon Redshift's
5620// API operation DescribeOrderableClusterOptions for usage and error information.
5621// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeOrderableClusterOptions
5622func (c *Redshift) DescribeOrderableClusterOptions(input *DescribeOrderableClusterOptionsInput) (*DescribeOrderableClusterOptionsOutput, error) {
5623	req, out := c.DescribeOrderableClusterOptionsRequest(input)
5624	return out, req.Send()
5625}
5626
5627// DescribeOrderableClusterOptionsWithContext is the same as DescribeOrderableClusterOptions with the addition of
5628// the ability to pass a context and additional request options.
5629//
5630// See DescribeOrderableClusterOptions for details on how to use this API operation.
5631//
5632// The context must be non-nil and will be used for request cancellation. If
5633// the context is nil a panic will occur. In the future the SDK may create
5634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5635// for more information on using Contexts.
5636func (c *Redshift) DescribeOrderableClusterOptionsWithContext(ctx aws.Context, input *DescribeOrderableClusterOptionsInput, opts ...request.Option) (*DescribeOrderableClusterOptionsOutput, error) {
5637	req, out := c.DescribeOrderableClusterOptionsRequest(input)
5638	req.SetContext(ctx)
5639	req.ApplyOptions(opts...)
5640	return out, req.Send()
5641}
5642
5643// DescribeOrderableClusterOptionsPages iterates over the pages of a DescribeOrderableClusterOptions operation,
5644// calling the "fn" function with the response data for each page. To stop
5645// iterating, return false from the fn function.
5646//
5647// See DescribeOrderableClusterOptions method for more information on how to use this operation.
5648//
5649// Note: This operation can generate multiple requests to a service.
5650//
5651//    // Example iterating over at most 3 pages of a DescribeOrderableClusterOptions operation.
5652//    pageNum := 0
5653//    err := client.DescribeOrderableClusterOptionsPages(params,
5654//        func(page *redshift.DescribeOrderableClusterOptionsOutput, lastPage bool) bool {
5655//            pageNum++
5656//            fmt.Println(page)
5657//            return pageNum <= 3
5658//        })
5659//
5660func (c *Redshift) DescribeOrderableClusterOptionsPages(input *DescribeOrderableClusterOptionsInput, fn func(*DescribeOrderableClusterOptionsOutput, bool) bool) error {
5661	return c.DescribeOrderableClusterOptionsPagesWithContext(aws.BackgroundContext(), input, fn)
5662}
5663
5664// DescribeOrderableClusterOptionsPagesWithContext same as DescribeOrderableClusterOptionsPages except
5665// it takes a Context and allows setting request options on the pages.
5666//
5667// The context must be non-nil and will be used for request cancellation. If
5668// the context is nil a panic will occur. In the future the SDK may create
5669// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5670// for more information on using Contexts.
5671func (c *Redshift) DescribeOrderableClusterOptionsPagesWithContext(ctx aws.Context, input *DescribeOrderableClusterOptionsInput, fn func(*DescribeOrderableClusterOptionsOutput, bool) bool, opts ...request.Option) error {
5672	p := request.Pagination{
5673		NewRequest: func() (*request.Request, error) {
5674			var inCpy *DescribeOrderableClusterOptionsInput
5675			if input != nil {
5676				tmp := *input
5677				inCpy = &tmp
5678			}
5679			req, _ := c.DescribeOrderableClusterOptionsRequest(inCpy)
5680			req.SetContext(ctx)
5681			req.ApplyOptions(opts...)
5682			return req, nil
5683		},
5684	}
5685
5686	for p.Next() {
5687		if !fn(p.Page().(*DescribeOrderableClusterOptionsOutput), !p.HasNextPage()) {
5688			break
5689		}
5690	}
5691
5692	return p.Err()
5693}
5694
5695const opDescribeReservedNodeOfferings = "DescribeReservedNodeOfferings"
5696
5697// DescribeReservedNodeOfferingsRequest generates a "aws/request.Request" representing the
5698// client's request for the DescribeReservedNodeOfferings operation. The "output" return
5699// value will be populated with the request's response once the request completes
5700// successfully.
5701//
5702// Use "Send" method on the returned Request to send the API call to the service.
5703// the "output" return value is not valid until after Send returns without error.
5704//
5705// See DescribeReservedNodeOfferings for more information on using the DescribeReservedNodeOfferings
5706// API call, and error handling.
5707//
5708// This method is useful when you want to inject custom logic or configuration
5709// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5710//
5711//
5712//    // Example sending a request using the DescribeReservedNodeOfferingsRequest method.
5713//    req, resp := client.DescribeReservedNodeOfferingsRequest(params)
5714//
5715//    err := req.Send()
5716//    if err == nil { // resp is now filled
5717//        fmt.Println(resp)
5718//    }
5719//
5720// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeReservedNodeOfferings
5721func (c *Redshift) DescribeReservedNodeOfferingsRequest(input *DescribeReservedNodeOfferingsInput) (req *request.Request, output *DescribeReservedNodeOfferingsOutput) {
5722	op := &request.Operation{
5723		Name:       opDescribeReservedNodeOfferings,
5724		HTTPMethod: "POST",
5725		HTTPPath:   "/",
5726		Paginator: &request.Paginator{
5727			InputTokens:     []string{"Marker"},
5728			OutputTokens:    []string{"Marker"},
5729			LimitToken:      "MaxRecords",
5730			TruncationToken: "",
5731		},
5732	}
5733
5734	if input == nil {
5735		input = &DescribeReservedNodeOfferingsInput{}
5736	}
5737
5738	output = &DescribeReservedNodeOfferingsOutput{}
5739	req = c.newRequest(op, input, output)
5740	return
5741}
5742
5743// DescribeReservedNodeOfferings API operation for Amazon Redshift.
5744//
5745// Returns a list of the available reserved node offerings by Amazon Redshift
5746// with their descriptions including the node type, the fixed and recurring
5747// costs of reserving the node and duration the node will be reserved for you.
5748// These descriptions help you determine which reserve node offering you want
5749// to purchase. You then use the unique offering ID in you call to PurchaseReservedNodeOffering
5750// to reserve one or more nodes for your Amazon Redshift cluster.
5751//
5752// For more information about reserved node offerings, go to Purchasing Reserved
5753// Nodes (https://docs.aws.amazon.com/redshift/latest/mgmt/purchase-reserved-node-instance.html)
5754// in the Amazon Redshift Cluster Management Guide.
5755//
5756// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5757// with awserr.Error's Code and Message methods to get detailed information about
5758// the error.
5759//
5760// See the AWS API reference guide for Amazon Redshift's
5761// API operation DescribeReservedNodeOfferings for usage and error information.
5762//
5763// Returned Error Codes:
5764//   * ErrCodeReservedNodeOfferingNotFoundFault "ReservedNodeOfferingNotFound"
5765//   Specified offering does not exist.
5766//
5767//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
5768//   The requested operation isn't supported.
5769//
5770//   * ErrCodeDependentServiceUnavailableFault "DependentServiceUnavailableFault"
5771//   Your request cannot be completed because a dependent internal service is
5772//   temporarily unavailable. Wait 30 to 60 seconds and try again.
5773//
5774// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeReservedNodeOfferings
5775func (c *Redshift) DescribeReservedNodeOfferings(input *DescribeReservedNodeOfferingsInput) (*DescribeReservedNodeOfferingsOutput, error) {
5776	req, out := c.DescribeReservedNodeOfferingsRequest(input)
5777	return out, req.Send()
5778}
5779
5780// DescribeReservedNodeOfferingsWithContext is the same as DescribeReservedNodeOfferings with the addition of
5781// the ability to pass a context and additional request options.
5782//
5783// See DescribeReservedNodeOfferings for details on how to use this API operation.
5784//
5785// The context must be non-nil and will be used for request cancellation. If
5786// the context is nil a panic will occur. In the future the SDK may create
5787// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5788// for more information on using Contexts.
5789func (c *Redshift) DescribeReservedNodeOfferingsWithContext(ctx aws.Context, input *DescribeReservedNodeOfferingsInput, opts ...request.Option) (*DescribeReservedNodeOfferingsOutput, error) {
5790	req, out := c.DescribeReservedNodeOfferingsRequest(input)
5791	req.SetContext(ctx)
5792	req.ApplyOptions(opts...)
5793	return out, req.Send()
5794}
5795
5796// DescribeReservedNodeOfferingsPages iterates over the pages of a DescribeReservedNodeOfferings operation,
5797// calling the "fn" function with the response data for each page. To stop
5798// iterating, return false from the fn function.
5799//
5800// See DescribeReservedNodeOfferings method for more information on how to use this operation.
5801//
5802// Note: This operation can generate multiple requests to a service.
5803//
5804//    // Example iterating over at most 3 pages of a DescribeReservedNodeOfferings operation.
5805//    pageNum := 0
5806//    err := client.DescribeReservedNodeOfferingsPages(params,
5807//        func(page *redshift.DescribeReservedNodeOfferingsOutput, lastPage bool) bool {
5808//            pageNum++
5809//            fmt.Println(page)
5810//            return pageNum <= 3
5811//        })
5812//
5813func (c *Redshift) DescribeReservedNodeOfferingsPages(input *DescribeReservedNodeOfferingsInput, fn func(*DescribeReservedNodeOfferingsOutput, bool) bool) error {
5814	return c.DescribeReservedNodeOfferingsPagesWithContext(aws.BackgroundContext(), input, fn)
5815}
5816
5817// DescribeReservedNodeOfferingsPagesWithContext same as DescribeReservedNodeOfferingsPages except
5818// it takes a Context and allows setting request options on the pages.
5819//
5820// The context must be non-nil and will be used for request cancellation. If
5821// the context is nil a panic will occur. In the future the SDK may create
5822// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5823// for more information on using Contexts.
5824func (c *Redshift) DescribeReservedNodeOfferingsPagesWithContext(ctx aws.Context, input *DescribeReservedNodeOfferingsInput, fn func(*DescribeReservedNodeOfferingsOutput, bool) bool, opts ...request.Option) error {
5825	p := request.Pagination{
5826		NewRequest: func() (*request.Request, error) {
5827			var inCpy *DescribeReservedNodeOfferingsInput
5828			if input != nil {
5829				tmp := *input
5830				inCpy = &tmp
5831			}
5832			req, _ := c.DescribeReservedNodeOfferingsRequest(inCpy)
5833			req.SetContext(ctx)
5834			req.ApplyOptions(opts...)
5835			return req, nil
5836		},
5837	}
5838
5839	for p.Next() {
5840		if !fn(p.Page().(*DescribeReservedNodeOfferingsOutput), !p.HasNextPage()) {
5841			break
5842		}
5843	}
5844
5845	return p.Err()
5846}
5847
5848const opDescribeReservedNodes = "DescribeReservedNodes"
5849
5850// DescribeReservedNodesRequest generates a "aws/request.Request" representing the
5851// client's request for the DescribeReservedNodes operation. The "output" return
5852// value will be populated with the request's response once the request completes
5853// successfully.
5854//
5855// Use "Send" method on the returned Request to send the API call to the service.
5856// the "output" return value is not valid until after Send returns without error.
5857//
5858// See DescribeReservedNodes for more information on using the DescribeReservedNodes
5859// API call, and error handling.
5860//
5861// This method is useful when you want to inject custom logic or configuration
5862// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5863//
5864//
5865//    // Example sending a request using the DescribeReservedNodesRequest method.
5866//    req, resp := client.DescribeReservedNodesRequest(params)
5867//
5868//    err := req.Send()
5869//    if err == nil { // resp is now filled
5870//        fmt.Println(resp)
5871//    }
5872//
5873// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeReservedNodes
5874func (c *Redshift) DescribeReservedNodesRequest(input *DescribeReservedNodesInput) (req *request.Request, output *DescribeReservedNodesOutput) {
5875	op := &request.Operation{
5876		Name:       opDescribeReservedNodes,
5877		HTTPMethod: "POST",
5878		HTTPPath:   "/",
5879		Paginator: &request.Paginator{
5880			InputTokens:     []string{"Marker"},
5881			OutputTokens:    []string{"Marker"},
5882			LimitToken:      "MaxRecords",
5883			TruncationToken: "",
5884		},
5885	}
5886
5887	if input == nil {
5888		input = &DescribeReservedNodesInput{}
5889	}
5890
5891	output = &DescribeReservedNodesOutput{}
5892	req = c.newRequest(op, input, output)
5893	return
5894}
5895
5896// DescribeReservedNodes API operation for Amazon Redshift.
5897//
5898// Returns the descriptions of the reserved nodes.
5899//
5900// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5901// with awserr.Error's Code and Message methods to get detailed information about
5902// the error.
5903//
5904// See the AWS API reference guide for Amazon Redshift's
5905// API operation DescribeReservedNodes for usage and error information.
5906//
5907// Returned Error Codes:
5908//   * ErrCodeReservedNodeNotFoundFault "ReservedNodeNotFound"
5909//   The specified reserved compute node not found.
5910//
5911//   * ErrCodeDependentServiceUnavailableFault "DependentServiceUnavailableFault"
5912//   Your request cannot be completed because a dependent internal service is
5913//   temporarily unavailable. Wait 30 to 60 seconds and try again.
5914//
5915// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeReservedNodes
5916func (c *Redshift) DescribeReservedNodes(input *DescribeReservedNodesInput) (*DescribeReservedNodesOutput, error) {
5917	req, out := c.DescribeReservedNodesRequest(input)
5918	return out, req.Send()
5919}
5920
5921// DescribeReservedNodesWithContext is the same as DescribeReservedNodes with the addition of
5922// the ability to pass a context and additional request options.
5923//
5924// See DescribeReservedNodes for details on how to use this API operation.
5925//
5926// The context must be non-nil and will be used for request cancellation. If
5927// the context is nil a panic will occur. In the future the SDK may create
5928// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5929// for more information on using Contexts.
5930func (c *Redshift) DescribeReservedNodesWithContext(ctx aws.Context, input *DescribeReservedNodesInput, opts ...request.Option) (*DescribeReservedNodesOutput, error) {
5931	req, out := c.DescribeReservedNodesRequest(input)
5932	req.SetContext(ctx)
5933	req.ApplyOptions(opts...)
5934	return out, req.Send()
5935}
5936
5937// DescribeReservedNodesPages iterates over the pages of a DescribeReservedNodes operation,
5938// calling the "fn" function with the response data for each page. To stop
5939// iterating, return false from the fn function.
5940//
5941// See DescribeReservedNodes method for more information on how to use this operation.
5942//
5943// Note: This operation can generate multiple requests to a service.
5944//
5945//    // Example iterating over at most 3 pages of a DescribeReservedNodes operation.
5946//    pageNum := 0
5947//    err := client.DescribeReservedNodesPages(params,
5948//        func(page *redshift.DescribeReservedNodesOutput, lastPage bool) bool {
5949//            pageNum++
5950//            fmt.Println(page)
5951//            return pageNum <= 3
5952//        })
5953//
5954func (c *Redshift) DescribeReservedNodesPages(input *DescribeReservedNodesInput, fn func(*DescribeReservedNodesOutput, bool) bool) error {
5955	return c.DescribeReservedNodesPagesWithContext(aws.BackgroundContext(), input, fn)
5956}
5957
5958// DescribeReservedNodesPagesWithContext same as DescribeReservedNodesPages except
5959// it takes a Context and allows setting request options on the pages.
5960//
5961// The context must be non-nil and will be used for request cancellation. If
5962// the context is nil a panic will occur. In the future the SDK may create
5963// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5964// for more information on using Contexts.
5965func (c *Redshift) DescribeReservedNodesPagesWithContext(ctx aws.Context, input *DescribeReservedNodesInput, fn func(*DescribeReservedNodesOutput, bool) bool, opts ...request.Option) error {
5966	p := request.Pagination{
5967		NewRequest: func() (*request.Request, error) {
5968			var inCpy *DescribeReservedNodesInput
5969			if input != nil {
5970				tmp := *input
5971				inCpy = &tmp
5972			}
5973			req, _ := c.DescribeReservedNodesRequest(inCpy)
5974			req.SetContext(ctx)
5975			req.ApplyOptions(opts...)
5976			return req, nil
5977		},
5978	}
5979
5980	for p.Next() {
5981		if !fn(p.Page().(*DescribeReservedNodesOutput), !p.HasNextPage()) {
5982			break
5983		}
5984	}
5985
5986	return p.Err()
5987}
5988
5989const opDescribeResize = "DescribeResize"
5990
5991// DescribeResizeRequest generates a "aws/request.Request" representing the
5992// client's request for the DescribeResize operation. The "output" return
5993// value will be populated with the request's response once the request completes
5994// successfully.
5995//
5996// Use "Send" method on the returned Request to send the API call to the service.
5997// the "output" return value is not valid until after Send returns without error.
5998//
5999// See DescribeResize for more information on using the DescribeResize
6000// API call, and error handling.
6001//
6002// This method is useful when you want to inject custom logic or configuration
6003// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6004//
6005//
6006//    // Example sending a request using the DescribeResizeRequest method.
6007//    req, resp := client.DescribeResizeRequest(params)
6008//
6009//    err := req.Send()
6010//    if err == nil { // resp is now filled
6011//        fmt.Println(resp)
6012//    }
6013//
6014// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeResize
6015func (c *Redshift) DescribeResizeRequest(input *DescribeResizeInput) (req *request.Request, output *DescribeResizeOutput) {
6016	op := &request.Operation{
6017		Name:       opDescribeResize,
6018		HTTPMethod: "POST",
6019		HTTPPath:   "/",
6020	}
6021
6022	if input == nil {
6023		input = &DescribeResizeInput{}
6024	}
6025
6026	output = &DescribeResizeOutput{}
6027	req = c.newRequest(op, input, output)
6028	return
6029}
6030
6031// DescribeResize API operation for Amazon Redshift.
6032//
6033// Returns information about the last resize operation for the specified cluster.
6034// If no resize operation has ever been initiated for the specified cluster,
6035// a HTTP 404 error is returned. If a resize operation was initiated and completed,
6036// the status of the resize remains as SUCCEEDED until the next resize.
6037//
6038// A resize operation can be requested using ModifyCluster and specifying a
6039// different number or type of nodes for the cluster.
6040//
6041// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6042// with awserr.Error's Code and Message methods to get detailed information about
6043// the error.
6044//
6045// See the AWS API reference guide for Amazon Redshift's
6046// API operation DescribeResize for usage and error information.
6047//
6048// Returned Error Codes:
6049//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
6050//   The ClusterIdentifier parameter does not refer to an existing cluster.
6051//
6052//   * ErrCodeResizeNotFoundFault "ResizeNotFound"
6053//   A resize operation for the specified cluster is not found.
6054//
6055// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeResize
6056func (c *Redshift) DescribeResize(input *DescribeResizeInput) (*DescribeResizeOutput, error) {
6057	req, out := c.DescribeResizeRequest(input)
6058	return out, req.Send()
6059}
6060
6061// DescribeResizeWithContext is the same as DescribeResize with the addition of
6062// the ability to pass a context and additional request options.
6063//
6064// See DescribeResize for details on how to use this API operation.
6065//
6066// The context must be non-nil and will be used for request cancellation. If
6067// the context is nil a panic will occur. In the future the SDK may create
6068// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6069// for more information on using Contexts.
6070func (c *Redshift) DescribeResizeWithContext(ctx aws.Context, input *DescribeResizeInput, opts ...request.Option) (*DescribeResizeOutput, error) {
6071	req, out := c.DescribeResizeRequest(input)
6072	req.SetContext(ctx)
6073	req.ApplyOptions(opts...)
6074	return out, req.Send()
6075}
6076
6077const opDescribeScheduledActions = "DescribeScheduledActions"
6078
6079// DescribeScheduledActionsRequest generates a "aws/request.Request" representing the
6080// client's request for the DescribeScheduledActions operation. The "output" return
6081// value will be populated with the request's response once the request completes
6082// successfully.
6083//
6084// Use "Send" method on the returned Request to send the API call to the service.
6085// the "output" return value is not valid until after Send returns without error.
6086//
6087// See DescribeScheduledActions for more information on using the DescribeScheduledActions
6088// API call, and error handling.
6089//
6090// This method is useful when you want to inject custom logic or configuration
6091// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6092//
6093//
6094//    // Example sending a request using the DescribeScheduledActionsRequest method.
6095//    req, resp := client.DescribeScheduledActionsRequest(params)
6096//
6097//    err := req.Send()
6098//    if err == nil { // resp is now filled
6099//        fmt.Println(resp)
6100//    }
6101//
6102// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeScheduledActions
6103func (c *Redshift) DescribeScheduledActionsRequest(input *DescribeScheduledActionsInput) (req *request.Request, output *DescribeScheduledActionsOutput) {
6104	op := &request.Operation{
6105		Name:       opDescribeScheduledActions,
6106		HTTPMethod: "POST",
6107		HTTPPath:   "/",
6108		Paginator: &request.Paginator{
6109			InputTokens:     []string{"Marker"},
6110			OutputTokens:    []string{"Marker"},
6111			LimitToken:      "MaxRecords",
6112			TruncationToken: "",
6113		},
6114	}
6115
6116	if input == nil {
6117		input = &DescribeScheduledActionsInput{}
6118	}
6119
6120	output = &DescribeScheduledActionsOutput{}
6121	req = c.newRequest(op, input, output)
6122	return
6123}
6124
6125// DescribeScheduledActions API operation for Amazon Redshift.
6126//
6127// Describes properties of scheduled actions.
6128//
6129// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6130// with awserr.Error's Code and Message methods to get detailed information about
6131// the error.
6132//
6133// See the AWS API reference guide for Amazon Redshift's
6134// API operation DescribeScheduledActions for usage and error information.
6135//
6136// Returned Error Codes:
6137//   * ErrCodeScheduledActionNotFoundFault "ScheduledActionNotFound"
6138//   The scheduled action cannot be found.
6139//
6140//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
6141//   Your account is not authorized to perform the requested operation.
6142//
6143// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeScheduledActions
6144func (c *Redshift) DescribeScheduledActions(input *DescribeScheduledActionsInput) (*DescribeScheduledActionsOutput, error) {
6145	req, out := c.DescribeScheduledActionsRequest(input)
6146	return out, req.Send()
6147}
6148
6149// DescribeScheduledActionsWithContext is the same as DescribeScheduledActions with the addition of
6150// the ability to pass a context and additional request options.
6151//
6152// See DescribeScheduledActions for details on how to use this API operation.
6153//
6154// The context must be non-nil and will be used for request cancellation. If
6155// the context is nil a panic will occur. In the future the SDK may create
6156// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6157// for more information on using Contexts.
6158func (c *Redshift) DescribeScheduledActionsWithContext(ctx aws.Context, input *DescribeScheduledActionsInput, opts ...request.Option) (*DescribeScheduledActionsOutput, error) {
6159	req, out := c.DescribeScheduledActionsRequest(input)
6160	req.SetContext(ctx)
6161	req.ApplyOptions(opts...)
6162	return out, req.Send()
6163}
6164
6165// DescribeScheduledActionsPages iterates over the pages of a DescribeScheduledActions operation,
6166// calling the "fn" function with the response data for each page. To stop
6167// iterating, return false from the fn function.
6168//
6169// See DescribeScheduledActions method for more information on how to use this operation.
6170//
6171// Note: This operation can generate multiple requests to a service.
6172//
6173//    // Example iterating over at most 3 pages of a DescribeScheduledActions operation.
6174//    pageNum := 0
6175//    err := client.DescribeScheduledActionsPages(params,
6176//        func(page *redshift.DescribeScheduledActionsOutput, lastPage bool) bool {
6177//            pageNum++
6178//            fmt.Println(page)
6179//            return pageNum <= 3
6180//        })
6181//
6182func (c *Redshift) DescribeScheduledActionsPages(input *DescribeScheduledActionsInput, fn func(*DescribeScheduledActionsOutput, bool) bool) error {
6183	return c.DescribeScheduledActionsPagesWithContext(aws.BackgroundContext(), input, fn)
6184}
6185
6186// DescribeScheduledActionsPagesWithContext same as DescribeScheduledActionsPages except
6187// it takes a Context and allows setting request options on the pages.
6188//
6189// The context must be non-nil and will be used for request cancellation. If
6190// the context is nil a panic will occur. In the future the SDK may create
6191// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6192// for more information on using Contexts.
6193func (c *Redshift) DescribeScheduledActionsPagesWithContext(ctx aws.Context, input *DescribeScheduledActionsInput, fn func(*DescribeScheduledActionsOutput, bool) bool, opts ...request.Option) error {
6194	p := request.Pagination{
6195		NewRequest: func() (*request.Request, error) {
6196			var inCpy *DescribeScheduledActionsInput
6197			if input != nil {
6198				tmp := *input
6199				inCpy = &tmp
6200			}
6201			req, _ := c.DescribeScheduledActionsRequest(inCpy)
6202			req.SetContext(ctx)
6203			req.ApplyOptions(opts...)
6204			return req, nil
6205		},
6206	}
6207
6208	for p.Next() {
6209		if !fn(p.Page().(*DescribeScheduledActionsOutput), !p.HasNextPage()) {
6210			break
6211		}
6212	}
6213
6214	return p.Err()
6215}
6216
6217const opDescribeSnapshotCopyGrants = "DescribeSnapshotCopyGrants"
6218
6219// DescribeSnapshotCopyGrantsRequest generates a "aws/request.Request" representing the
6220// client's request for the DescribeSnapshotCopyGrants operation. The "output" return
6221// value will be populated with the request's response once the request completes
6222// successfully.
6223//
6224// Use "Send" method on the returned Request to send the API call to the service.
6225// the "output" return value is not valid until after Send returns without error.
6226//
6227// See DescribeSnapshotCopyGrants for more information on using the DescribeSnapshotCopyGrants
6228// API call, and error handling.
6229//
6230// This method is useful when you want to inject custom logic or configuration
6231// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6232//
6233//
6234//    // Example sending a request using the DescribeSnapshotCopyGrantsRequest method.
6235//    req, resp := client.DescribeSnapshotCopyGrantsRequest(params)
6236//
6237//    err := req.Send()
6238//    if err == nil { // resp is now filled
6239//        fmt.Println(resp)
6240//    }
6241//
6242// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeSnapshotCopyGrants
6243func (c *Redshift) DescribeSnapshotCopyGrantsRequest(input *DescribeSnapshotCopyGrantsInput) (req *request.Request, output *DescribeSnapshotCopyGrantsOutput) {
6244	op := &request.Operation{
6245		Name:       opDescribeSnapshotCopyGrants,
6246		HTTPMethod: "POST",
6247		HTTPPath:   "/",
6248	}
6249
6250	if input == nil {
6251		input = &DescribeSnapshotCopyGrantsInput{}
6252	}
6253
6254	output = &DescribeSnapshotCopyGrantsOutput{}
6255	req = c.newRequest(op, input, output)
6256	return
6257}
6258
6259// DescribeSnapshotCopyGrants API operation for Amazon Redshift.
6260//
6261// Returns a list of snapshot copy grants owned by the AWS account in the destination
6262// region.
6263//
6264// For more information about managing snapshot copy grants, go to Amazon Redshift
6265// Database Encryption (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
6266// in the Amazon Redshift Cluster Management Guide.
6267//
6268// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6269// with awserr.Error's Code and Message methods to get detailed information about
6270// the error.
6271//
6272// See the AWS API reference guide for Amazon Redshift's
6273// API operation DescribeSnapshotCopyGrants for usage and error information.
6274//
6275// Returned Error Codes:
6276//   * ErrCodeSnapshotCopyGrantNotFoundFault "SnapshotCopyGrantNotFoundFault"
6277//   The specified snapshot copy grant can't be found. Make sure that the name
6278//   is typed correctly and that the grant exists in the destination region.
6279//
6280//   * ErrCodeInvalidTagFault "InvalidTagFault"
6281//   The tag is invalid.
6282//
6283// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeSnapshotCopyGrants
6284func (c *Redshift) DescribeSnapshotCopyGrants(input *DescribeSnapshotCopyGrantsInput) (*DescribeSnapshotCopyGrantsOutput, error) {
6285	req, out := c.DescribeSnapshotCopyGrantsRequest(input)
6286	return out, req.Send()
6287}
6288
6289// DescribeSnapshotCopyGrantsWithContext is the same as DescribeSnapshotCopyGrants with the addition of
6290// the ability to pass a context and additional request options.
6291//
6292// See DescribeSnapshotCopyGrants for details on how to use this API operation.
6293//
6294// The context must be non-nil and will be used for request cancellation. If
6295// the context is nil a panic will occur. In the future the SDK may create
6296// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6297// for more information on using Contexts.
6298func (c *Redshift) DescribeSnapshotCopyGrantsWithContext(ctx aws.Context, input *DescribeSnapshotCopyGrantsInput, opts ...request.Option) (*DescribeSnapshotCopyGrantsOutput, error) {
6299	req, out := c.DescribeSnapshotCopyGrantsRequest(input)
6300	req.SetContext(ctx)
6301	req.ApplyOptions(opts...)
6302	return out, req.Send()
6303}
6304
6305const opDescribeSnapshotSchedules = "DescribeSnapshotSchedules"
6306
6307// DescribeSnapshotSchedulesRequest generates a "aws/request.Request" representing the
6308// client's request for the DescribeSnapshotSchedules operation. The "output" return
6309// value will be populated with the request's response once the request completes
6310// successfully.
6311//
6312// Use "Send" method on the returned Request to send the API call to the service.
6313// the "output" return value is not valid until after Send returns without error.
6314//
6315// See DescribeSnapshotSchedules for more information on using the DescribeSnapshotSchedules
6316// API call, and error handling.
6317//
6318// This method is useful when you want to inject custom logic or configuration
6319// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6320//
6321//
6322//    // Example sending a request using the DescribeSnapshotSchedulesRequest method.
6323//    req, resp := client.DescribeSnapshotSchedulesRequest(params)
6324//
6325//    err := req.Send()
6326//    if err == nil { // resp is now filled
6327//        fmt.Println(resp)
6328//    }
6329//
6330// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeSnapshotSchedules
6331func (c *Redshift) DescribeSnapshotSchedulesRequest(input *DescribeSnapshotSchedulesInput) (req *request.Request, output *DescribeSnapshotSchedulesOutput) {
6332	op := &request.Operation{
6333		Name:       opDescribeSnapshotSchedules,
6334		HTTPMethod: "POST",
6335		HTTPPath:   "/",
6336	}
6337
6338	if input == nil {
6339		input = &DescribeSnapshotSchedulesInput{}
6340	}
6341
6342	output = &DescribeSnapshotSchedulesOutput{}
6343	req = c.newRequest(op, input, output)
6344	return
6345}
6346
6347// DescribeSnapshotSchedules API operation for Amazon Redshift.
6348//
6349// Returns a list of snapshot schedules.
6350//
6351// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6352// with awserr.Error's Code and Message methods to get detailed information about
6353// the error.
6354//
6355// See the AWS API reference guide for Amazon Redshift's
6356// API operation DescribeSnapshotSchedules for usage and error information.
6357// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeSnapshotSchedules
6358func (c *Redshift) DescribeSnapshotSchedules(input *DescribeSnapshotSchedulesInput) (*DescribeSnapshotSchedulesOutput, error) {
6359	req, out := c.DescribeSnapshotSchedulesRequest(input)
6360	return out, req.Send()
6361}
6362
6363// DescribeSnapshotSchedulesWithContext is the same as DescribeSnapshotSchedules with the addition of
6364// the ability to pass a context and additional request options.
6365//
6366// See DescribeSnapshotSchedules for details on how to use this API operation.
6367//
6368// The context must be non-nil and will be used for request cancellation. If
6369// the context is nil a panic will occur. In the future the SDK may create
6370// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6371// for more information on using Contexts.
6372func (c *Redshift) DescribeSnapshotSchedulesWithContext(ctx aws.Context, input *DescribeSnapshotSchedulesInput, opts ...request.Option) (*DescribeSnapshotSchedulesOutput, error) {
6373	req, out := c.DescribeSnapshotSchedulesRequest(input)
6374	req.SetContext(ctx)
6375	req.ApplyOptions(opts...)
6376	return out, req.Send()
6377}
6378
6379const opDescribeStorage = "DescribeStorage"
6380
6381// DescribeStorageRequest generates a "aws/request.Request" representing the
6382// client's request for the DescribeStorage operation. The "output" return
6383// value will be populated with the request's response once the request completes
6384// successfully.
6385//
6386// Use "Send" method on the returned Request to send the API call to the service.
6387// the "output" return value is not valid until after Send returns without error.
6388//
6389// See DescribeStorage for more information on using the DescribeStorage
6390// API call, and error handling.
6391//
6392// This method is useful when you want to inject custom logic or configuration
6393// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6394//
6395//
6396//    // Example sending a request using the DescribeStorageRequest method.
6397//    req, resp := client.DescribeStorageRequest(params)
6398//
6399//    err := req.Send()
6400//    if err == nil { // resp is now filled
6401//        fmt.Println(resp)
6402//    }
6403//
6404// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeStorage
6405func (c *Redshift) DescribeStorageRequest(input *DescribeStorageInput) (req *request.Request, output *DescribeStorageOutput) {
6406	op := &request.Operation{
6407		Name:       opDescribeStorage,
6408		HTTPMethod: "POST",
6409		HTTPPath:   "/",
6410	}
6411
6412	if input == nil {
6413		input = &DescribeStorageInput{}
6414	}
6415
6416	output = &DescribeStorageOutput{}
6417	req = c.newRequest(op, input, output)
6418	return
6419}
6420
6421// DescribeStorage API operation for Amazon Redshift.
6422//
6423// Returns account level backups storage size and provisional storage.
6424//
6425// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6426// with awserr.Error's Code and Message methods to get detailed information about
6427// the error.
6428//
6429// See the AWS API reference guide for Amazon Redshift's
6430// API operation DescribeStorage for usage and error information.
6431// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeStorage
6432func (c *Redshift) DescribeStorage(input *DescribeStorageInput) (*DescribeStorageOutput, error) {
6433	req, out := c.DescribeStorageRequest(input)
6434	return out, req.Send()
6435}
6436
6437// DescribeStorageWithContext is the same as DescribeStorage with the addition of
6438// the ability to pass a context and additional request options.
6439//
6440// See DescribeStorage for details on how to use this API operation.
6441//
6442// The context must be non-nil and will be used for request cancellation. If
6443// the context is nil a panic will occur. In the future the SDK may create
6444// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6445// for more information on using Contexts.
6446func (c *Redshift) DescribeStorageWithContext(ctx aws.Context, input *DescribeStorageInput, opts ...request.Option) (*DescribeStorageOutput, error) {
6447	req, out := c.DescribeStorageRequest(input)
6448	req.SetContext(ctx)
6449	req.ApplyOptions(opts...)
6450	return out, req.Send()
6451}
6452
6453const opDescribeTableRestoreStatus = "DescribeTableRestoreStatus"
6454
6455// DescribeTableRestoreStatusRequest generates a "aws/request.Request" representing the
6456// client's request for the DescribeTableRestoreStatus operation. The "output" return
6457// value will be populated with the request's response once the request completes
6458// successfully.
6459//
6460// Use "Send" method on the returned Request to send the API call to the service.
6461// the "output" return value is not valid until after Send returns without error.
6462//
6463// See DescribeTableRestoreStatus for more information on using the DescribeTableRestoreStatus
6464// API call, and error handling.
6465//
6466// This method is useful when you want to inject custom logic or configuration
6467// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6468//
6469//
6470//    // Example sending a request using the DescribeTableRestoreStatusRequest method.
6471//    req, resp := client.DescribeTableRestoreStatusRequest(params)
6472//
6473//    err := req.Send()
6474//    if err == nil { // resp is now filled
6475//        fmt.Println(resp)
6476//    }
6477//
6478// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeTableRestoreStatus
6479func (c *Redshift) DescribeTableRestoreStatusRequest(input *DescribeTableRestoreStatusInput) (req *request.Request, output *DescribeTableRestoreStatusOutput) {
6480	op := &request.Operation{
6481		Name:       opDescribeTableRestoreStatus,
6482		HTTPMethod: "POST",
6483		HTTPPath:   "/",
6484	}
6485
6486	if input == nil {
6487		input = &DescribeTableRestoreStatusInput{}
6488	}
6489
6490	output = &DescribeTableRestoreStatusOutput{}
6491	req = c.newRequest(op, input, output)
6492	return
6493}
6494
6495// DescribeTableRestoreStatus API operation for Amazon Redshift.
6496//
6497// Lists the status of one or more table restore requests made using the RestoreTableFromClusterSnapshot
6498// API action. If you don't specify a value for the TableRestoreRequestId parameter,
6499// then DescribeTableRestoreStatus returns the status of all table restore requests
6500// ordered by the date and time of the request in ascending order. Otherwise
6501// DescribeTableRestoreStatus returns the status of the table specified by TableRestoreRequestId.
6502//
6503// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6504// with awserr.Error's Code and Message methods to get detailed information about
6505// the error.
6506//
6507// See the AWS API reference guide for Amazon Redshift's
6508// API operation DescribeTableRestoreStatus for usage and error information.
6509//
6510// Returned Error Codes:
6511//   * ErrCodeTableRestoreNotFoundFault "TableRestoreNotFoundFault"
6512//   The specified TableRestoreRequestId value was not found.
6513//
6514//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
6515//   The ClusterIdentifier parameter does not refer to an existing cluster.
6516//
6517// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeTableRestoreStatus
6518func (c *Redshift) DescribeTableRestoreStatus(input *DescribeTableRestoreStatusInput) (*DescribeTableRestoreStatusOutput, error) {
6519	req, out := c.DescribeTableRestoreStatusRequest(input)
6520	return out, req.Send()
6521}
6522
6523// DescribeTableRestoreStatusWithContext is the same as DescribeTableRestoreStatus with the addition of
6524// the ability to pass a context and additional request options.
6525//
6526// See DescribeTableRestoreStatus for details on how to use this API operation.
6527//
6528// The context must be non-nil and will be used for request cancellation. If
6529// the context is nil a panic will occur. In the future the SDK may create
6530// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6531// for more information on using Contexts.
6532func (c *Redshift) DescribeTableRestoreStatusWithContext(ctx aws.Context, input *DescribeTableRestoreStatusInput, opts ...request.Option) (*DescribeTableRestoreStatusOutput, error) {
6533	req, out := c.DescribeTableRestoreStatusRequest(input)
6534	req.SetContext(ctx)
6535	req.ApplyOptions(opts...)
6536	return out, req.Send()
6537}
6538
6539const opDescribeTags = "DescribeTags"
6540
6541// DescribeTagsRequest generates a "aws/request.Request" representing the
6542// client's request for the DescribeTags operation. The "output" return
6543// value will be populated with the request's response once the request completes
6544// successfully.
6545//
6546// Use "Send" method on the returned Request to send the API call to the service.
6547// the "output" return value is not valid until after Send returns without error.
6548//
6549// See DescribeTags for more information on using the DescribeTags
6550// API call, and error handling.
6551//
6552// This method is useful when you want to inject custom logic or configuration
6553// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6554//
6555//
6556//    // Example sending a request using the DescribeTagsRequest method.
6557//    req, resp := client.DescribeTagsRequest(params)
6558//
6559//    err := req.Send()
6560//    if err == nil { // resp is now filled
6561//        fmt.Println(resp)
6562//    }
6563//
6564// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeTags
6565func (c *Redshift) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Request, output *DescribeTagsOutput) {
6566	op := &request.Operation{
6567		Name:       opDescribeTags,
6568		HTTPMethod: "POST",
6569		HTTPPath:   "/",
6570	}
6571
6572	if input == nil {
6573		input = &DescribeTagsInput{}
6574	}
6575
6576	output = &DescribeTagsOutput{}
6577	req = c.newRequest(op, input, output)
6578	return
6579}
6580
6581// DescribeTags API operation for Amazon Redshift.
6582//
6583// Returns a list of tags. You can return tags from a specific resource by specifying
6584// an ARN, or you can return all tags for a given type of resource, such as
6585// clusters, snapshots, and so on.
6586//
6587// The following are limitations for DescribeTags:
6588//
6589//    * You cannot specify an ARN and a resource-type value together in the
6590//    same request.
6591//
6592//    * You cannot use the MaxRecords and Marker parameters together with the
6593//    ARN parameter.
6594//
6595//    * The MaxRecords parameter can be a range from 10 to 50 results to return
6596//    in a request.
6597//
6598// If you specify both tag keys and tag values in the same request, Amazon Redshift
6599// returns all resources that match any combination of the specified keys and
6600// values. For example, if you have owner and environment for tag keys, and
6601// admin and test for tag values, all resources that have any combination of
6602// those values are returned.
6603//
6604// If both tag keys and values are omitted from the request, resources are returned
6605// regardless of whether they have tag keys or values associated with them.
6606//
6607// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6608// with awserr.Error's Code and Message methods to get detailed information about
6609// the error.
6610//
6611// See the AWS API reference guide for Amazon Redshift's
6612// API operation DescribeTags for usage and error information.
6613//
6614// Returned Error Codes:
6615//   * ErrCodeResourceNotFoundFault "ResourceNotFoundFault"
6616//   The resource could not be found.
6617//
6618//   * ErrCodeInvalidTagFault "InvalidTagFault"
6619//   The tag is invalid.
6620//
6621// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeTags
6622func (c *Redshift) DescribeTags(input *DescribeTagsInput) (*DescribeTagsOutput, error) {
6623	req, out := c.DescribeTagsRequest(input)
6624	return out, req.Send()
6625}
6626
6627// DescribeTagsWithContext is the same as DescribeTags with the addition of
6628// the ability to pass a context and additional request options.
6629//
6630// See DescribeTags for details on how to use this API operation.
6631//
6632// The context must be non-nil and will be used for request cancellation. If
6633// the context is nil a panic will occur. In the future the SDK may create
6634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6635// for more information on using Contexts.
6636func (c *Redshift) DescribeTagsWithContext(ctx aws.Context, input *DescribeTagsInput, opts ...request.Option) (*DescribeTagsOutput, error) {
6637	req, out := c.DescribeTagsRequest(input)
6638	req.SetContext(ctx)
6639	req.ApplyOptions(opts...)
6640	return out, req.Send()
6641}
6642
6643const opDescribeUsageLimits = "DescribeUsageLimits"
6644
6645// DescribeUsageLimitsRequest generates a "aws/request.Request" representing the
6646// client's request for the DescribeUsageLimits operation. The "output" return
6647// value will be populated with the request's response once the request completes
6648// successfully.
6649//
6650// Use "Send" method on the returned Request to send the API call to the service.
6651// the "output" return value is not valid until after Send returns without error.
6652//
6653// See DescribeUsageLimits for more information on using the DescribeUsageLimits
6654// API call, and error handling.
6655//
6656// This method is useful when you want to inject custom logic or configuration
6657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6658//
6659//
6660//    // Example sending a request using the DescribeUsageLimitsRequest method.
6661//    req, resp := client.DescribeUsageLimitsRequest(params)
6662//
6663//    err := req.Send()
6664//    if err == nil { // resp is now filled
6665//        fmt.Println(resp)
6666//    }
6667//
6668// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeUsageLimits
6669func (c *Redshift) DescribeUsageLimitsRequest(input *DescribeUsageLimitsInput) (req *request.Request, output *DescribeUsageLimitsOutput) {
6670	op := &request.Operation{
6671		Name:       opDescribeUsageLimits,
6672		HTTPMethod: "POST",
6673		HTTPPath:   "/",
6674		Paginator: &request.Paginator{
6675			InputTokens:     []string{"Marker"},
6676			OutputTokens:    []string{"Marker"},
6677			LimitToken:      "MaxRecords",
6678			TruncationToken: "",
6679		},
6680	}
6681
6682	if input == nil {
6683		input = &DescribeUsageLimitsInput{}
6684	}
6685
6686	output = &DescribeUsageLimitsOutput{}
6687	req = c.newRequest(op, input, output)
6688	return
6689}
6690
6691// DescribeUsageLimits API operation for Amazon Redshift.
6692//
6693// Shows usage limits on a cluster. Results are filtered based on the combination
6694// of input usage limit identifier, cluster identifier, and feature type parameters:
6695//
6696//    * If usage limit identifier, cluster identifier, and feature type are
6697//    not provided, then all usage limit objects for the current account in
6698//    the current region are returned.
6699//
6700//    * If usage limit identifier is provided, then the corresponding usage
6701//    limit object is returned.
6702//
6703//    * If cluster identifier is provided, then all usage limit objects for
6704//    the specified cluster are returned.
6705//
6706//    * If cluster identifier and feature type are provided, then all usage
6707//    limit objects for the combination of cluster and feature are returned.
6708//
6709// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6710// with awserr.Error's Code and Message methods to get detailed information about
6711// the error.
6712//
6713// See the AWS API reference guide for Amazon Redshift's
6714// API operation DescribeUsageLimits for usage and error information.
6715//
6716// Returned Error Codes:
6717//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
6718//   The ClusterIdentifier parameter does not refer to an existing cluster.
6719//
6720//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
6721//   The requested operation isn't supported.
6722//
6723// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeUsageLimits
6724func (c *Redshift) DescribeUsageLimits(input *DescribeUsageLimitsInput) (*DescribeUsageLimitsOutput, error) {
6725	req, out := c.DescribeUsageLimitsRequest(input)
6726	return out, req.Send()
6727}
6728
6729// DescribeUsageLimitsWithContext is the same as DescribeUsageLimits with the addition of
6730// the ability to pass a context and additional request options.
6731//
6732// See DescribeUsageLimits for details on how to use this API operation.
6733//
6734// The context must be non-nil and will be used for request cancellation. If
6735// the context is nil a panic will occur. In the future the SDK may create
6736// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6737// for more information on using Contexts.
6738func (c *Redshift) DescribeUsageLimitsWithContext(ctx aws.Context, input *DescribeUsageLimitsInput, opts ...request.Option) (*DescribeUsageLimitsOutput, error) {
6739	req, out := c.DescribeUsageLimitsRequest(input)
6740	req.SetContext(ctx)
6741	req.ApplyOptions(opts...)
6742	return out, req.Send()
6743}
6744
6745// DescribeUsageLimitsPages iterates over the pages of a DescribeUsageLimits operation,
6746// calling the "fn" function with the response data for each page. To stop
6747// iterating, return false from the fn function.
6748//
6749// See DescribeUsageLimits method for more information on how to use this operation.
6750//
6751// Note: This operation can generate multiple requests to a service.
6752//
6753//    // Example iterating over at most 3 pages of a DescribeUsageLimits operation.
6754//    pageNum := 0
6755//    err := client.DescribeUsageLimitsPages(params,
6756//        func(page *redshift.DescribeUsageLimitsOutput, lastPage bool) bool {
6757//            pageNum++
6758//            fmt.Println(page)
6759//            return pageNum <= 3
6760//        })
6761//
6762func (c *Redshift) DescribeUsageLimitsPages(input *DescribeUsageLimitsInput, fn func(*DescribeUsageLimitsOutput, bool) bool) error {
6763	return c.DescribeUsageLimitsPagesWithContext(aws.BackgroundContext(), input, fn)
6764}
6765
6766// DescribeUsageLimitsPagesWithContext same as DescribeUsageLimitsPages except
6767// it takes a Context and allows setting request options on the pages.
6768//
6769// The context must be non-nil and will be used for request cancellation. If
6770// the context is nil a panic will occur. In the future the SDK may create
6771// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6772// for more information on using Contexts.
6773func (c *Redshift) DescribeUsageLimitsPagesWithContext(ctx aws.Context, input *DescribeUsageLimitsInput, fn func(*DescribeUsageLimitsOutput, bool) bool, opts ...request.Option) error {
6774	p := request.Pagination{
6775		NewRequest: func() (*request.Request, error) {
6776			var inCpy *DescribeUsageLimitsInput
6777			if input != nil {
6778				tmp := *input
6779				inCpy = &tmp
6780			}
6781			req, _ := c.DescribeUsageLimitsRequest(inCpy)
6782			req.SetContext(ctx)
6783			req.ApplyOptions(opts...)
6784			return req, nil
6785		},
6786	}
6787
6788	for p.Next() {
6789		if !fn(p.Page().(*DescribeUsageLimitsOutput), !p.HasNextPage()) {
6790			break
6791		}
6792	}
6793
6794	return p.Err()
6795}
6796
6797const opDisableLogging = "DisableLogging"
6798
6799// DisableLoggingRequest generates a "aws/request.Request" representing the
6800// client's request for the DisableLogging operation. The "output" return
6801// value will be populated with the request's response once the request completes
6802// successfully.
6803//
6804// Use "Send" method on the returned Request to send the API call to the service.
6805// the "output" return value is not valid until after Send returns without error.
6806//
6807// See DisableLogging for more information on using the DisableLogging
6808// API call, and error handling.
6809//
6810// This method is useful when you want to inject custom logic or configuration
6811// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6812//
6813//
6814//    // Example sending a request using the DisableLoggingRequest method.
6815//    req, resp := client.DisableLoggingRequest(params)
6816//
6817//    err := req.Send()
6818//    if err == nil { // resp is now filled
6819//        fmt.Println(resp)
6820//    }
6821//
6822// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisableLogging
6823func (c *Redshift) DisableLoggingRequest(input *DisableLoggingInput) (req *request.Request, output *LoggingStatus) {
6824	op := &request.Operation{
6825		Name:       opDisableLogging,
6826		HTTPMethod: "POST",
6827		HTTPPath:   "/",
6828	}
6829
6830	if input == nil {
6831		input = &DisableLoggingInput{}
6832	}
6833
6834	output = &LoggingStatus{}
6835	req = c.newRequest(op, input, output)
6836	return
6837}
6838
6839// DisableLogging API operation for Amazon Redshift.
6840//
6841// Stops logging information, such as queries and connection attempts, for the
6842// specified Amazon Redshift cluster.
6843//
6844// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6845// with awserr.Error's Code and Message methods to get detailed information about
6846// the error.
6847//
6848// See the AWS API reference guide for Amazon Redshift's
6849// API operation DisableLogging for usage and error information.
6850//
6851// Returned Error Codes:
6852//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
6853//   The ClusterIdentifier parameter does not refer to an existing cluster.
6854//
6855// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisableLogging
6856func (c *Redshift) DisableLogging(input *DisableLoggingInput) (*LoggingStatus, error) {
6857	req, out := c.DisableLoggingRequest(input)
6858	return out, req.Send()
6859}
6860
6861// DisableLoggingWithContext is the same as DisableLogging with the addition of
6862// the ability to pass a context and additional request options.
6863//
6864// See DisableLogging for details on how to use this API operation.
6865//
6866// The context must be non-nil and will be used for request cancellation. If
6867// the context is nil a panic will occur. In the future the SDK may create
6868// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6869// for more information on using Contexts.
6870func (c *Redshift) DisableLoggingWithContext(ctx aws.Context, input *DisableLoggingInput, opts ...request.Option) (*LoggingStatus, error) {
6871	req, out := c.DisableLoggingRequest(input)
6872	req.SetContext(ctx)
6873	req.ApplyOptions(opts...)
6874	return out, req.Send()
6875}
6876
6877const opDisableSnapshotCopy = "DisableSnapshotCopy"
6878
6879// DisableSnapshotCopyRequest generates a "aws/request.Request" representing the
6880// client's request for the DisableSnapshotCopy operation. The "output" return
6881// value will be populated with the request's response once the request completes
6882// successfully.
6883//
6884// Use "Send" method on the returned Request to send the API call to the service.
6885// the "output" return value is not valid until after Send returns without error.
6886//
6887// See DisableSnapshotCopy for more information on using the DisableSnapshotCopy
6888// API call, and error handling.
6889//
6890// This method is useful when you want to inject custom logic or configuration
6891// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6892//
6893//
6894//    // Example sending a request using the DisableSnapshotCopyRequest method.
6895//    req, resp := client.DisableSnapshotCopyRequest(params)
6896//
6897//    err := req.Send()
6898//    if err == nil { // resp is now filled
6899//        fmt.Println(resp)
6900//    }
6901//
6902// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisableSnapshotCopy
6903func (c *Redshift) DisableSnapshotCopyRequest(input *DisableSnapshotCopyInput) (req *request.Request, output *DisableSnapshotCopyOutput) {
6904	op := &request.Operation{
6905		Name:       opDisableSnapshotCopy,
6906		HTTPMethod: "POST",
6907		HTTPPath:   "/",
6908	}
6909
6910	if input == nil {
6911		input = &DisableSnapshotCopyInput{}
6912	}
6913
6914	output = &DisableSnapshotCopyOutput{}
6915	req = c.newRequest(op, input, output)
6916	return
6917}
6918
6919// DisableSnapshotCopy API operation for Amazon Redshift.
6920//
6921// Disables the automatic copying of snapshots from one region to another region
6922// for a specified cluster.
6923//
6924// If your cluster and its snapshots are encrypted using a customer master key
6925// (CMK) from AWS KMS, use DeleteSnapshotCopyGrant to delete the grant that
6926// grants Amazon Redshift permission to the CMK in the destination region.
6927//
6928// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6929// with awserr.Error's Code and Message methods to get detailed information about
6930// the error.
6931//
6932// See the AWS API reference guide for Amazon Redshift's
6933// API operation DisableSnapshotCopy for usage and error information.
6934//
6935// Returned Error Codes:
6936//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
6937//   The ClusterIdentifier parameter does not refer to an existing cluster.
6938//
6939//   * ErrCodeSnapshotCopyAlreadyDisabledFault "SnapshotCopyAlreadyDisabledFault"
6940//   The cluster already has cross-region snapshot copy disabled.
6941//
6942//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
6943//   The specified cluster is not in the available state.
6944//
6945//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
6946//   Your account is not authorized to perform the requested operation.
6947//
6948// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisableSnapshotCopy
6949func (c *Redshift) DisableSnapshotCopy(input *DisableSnapshotCopyInput) (*DisableSnapshotCopyOutput, error) {
6950	req, out := c.DisableSnapshotCopyRequest(input)
6951	return out, req.Send()
6952}
6953
6954// DisableSnapshotCopyWithContext is the same as DisableSnapshotCopy with the addition of
6955// the ability to pass a context and additional request options.
6956//
6957// See DisableSnapshotCopy for details on how to use this API operation.
6958//
6959// The context must be non-nil and will be used for request cancellation. If
6960// the context is nil a panic will occur. In the future the SDK may create
6961// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6962// for more information on using Contexts.
6963func (c *Redshift) DisableSnapshotCopyWithContext(ctx aws.Context, input *DisableSnapshotCopyInput, opts ...request.Option) (*DisableSnapshotCopyOutput, error) {
6964	req, out := c.DisableSnapshotCopyRequest(input)
6965	req.SetContext(ctx)
6966	req.ApplyOptions(opts...)
6967	return out, req.Send()
6968}
6969
6970const opEnableLogging = "EnableLogging"
6971
6972// EnableLoggingRequest generates a "aws/request.Request" representing the
6973// client's request for the EnableLogging operation. The "output" return
6974// value will be populated with the request's response once the request completes
6975// successfully.
6976//
6977// Use "Send" method on the returned Request to send the API call to the service.
6978// the "output" return value is not valid until after Send returns without error.
6979//
6980// See EnableLogging for more information on using the EnableLogging
6981// API call, and error handling.
6982//
6983// This method is useful when you want to inject custom logic or configuration
6984// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6985//
6986//
6987//    // Example sending a request using the EnableLoggingRequest method.
6988//    req, resp := client.EnableLoggingRequest(params)
6989//
6990//    err := req.Send()
6991//    if err == nil { // resp is now filled
6992//        fmt.Println(resp)
6993//    }
6994//
6995// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EnableLogging
6996func (c *Redshift) EnableLoggingRequest(input *EnableLoggingInput) (req *request.Request, output *LoggingStatus) {
6997	op := &request.Operation{
6998		Name:       opEnableLogging,
6999		HTTPMethod: "POST",
7000		HTTPPath:   "/",
7001	}
7002
7003	if input == nil {
7004		input = &EnableLoggingInput{}
7005	}
7006
7007	output = &LoggingStatus{}
7008	req = c.newRequest(op, input, output)
7009	return
7010}
7011
7012// EnableLogging API operation for Amazon Redshift.
7013//
7014// Starts logging information, such as queries and connection attempts, for
7015// the specified Amazon Redshift cluster.
7016//
7017// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7018// with awserr.Error's Code and Message methods to get detailed information about
7019// the error.
7020//
7021// See the AWS API reference guide for Amazon Redshift's
7022// API operation EnableLogging for usage and error information.
7023//
7024// Returned Error Codes:
7025//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
7026//   The ClusterIdentifier parameter does not refer to an existing cluster.
7027//
7028//   * ErrCodeBucketNotFoundFault "BucketNotFoundFault"
7029//   Could not find the specified S3 bucket.
7030//
7031//   * ErrCodeInsufficientS3BucketPolicyFault "InsufficientS3BucketPolicyFault"
7032//   The cluster does not have read bucket or put object permissions on the S3
7033//   bucket specified when enabling logging.
7034//
7035//   * ErrCodeInvalidS3KeyPrefixFault "InvalidS3KeyPrefixFault"
7036//   The string specified for the logging S3 key prefix does not comply with the
7037//   documented constraints.
7038//
7039//   * ErrCodeInvalidS3BucketNameFault "InvalidS3BucketNameFault"
7040//   The S3 bucket name is invalid. For more information about naming rules, go
7041//   to Bucket Restrictions and Limitations (https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)
7042//   in the Amazon Simple Storage Service (S3) Developer Guide.
7043//
7044//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
7045//   The specified cluster is not in the available state.
7046//
7047// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EnableLogging
7048func (c *Redshift) EnableLogging(input *EnableLoggingInput) (*LoggingStatus, error) {
7049	req, out := c.EnableLoggingRequest(input)
7050	return out, req.Send()
7051}
7052
7053// EnableLoggingWithContext is the same as EnableLogging with the addition of
7054// the ability to pass a context and additional request options.
7055//
7056// See EnableLogging for details on how to use this API operation.
7057//
7058// The context must be non-nil and will be used for request cancellation. If
7059// the context is nil a panic will occur. In the future the SDK may create
7060// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7061// for more information on using Contexts.
7062func (c *Redshift) EnableLoggingWithContext(ctx aws.Context, input *EnableLoggingInput, opts ...request.Option) (*LoggingStatus, error) {
7063	req, out := c.EnableLoggingRequest(input)
7064	req.SetContext(ctx)
7065	req.ApplyOptions(opts...)
7066	return out, req.Send()
7067}
7068
7069const opEnableSnapshotCopy = "EnableSnapshotCopy"
7070
7071// EnableSnapshotCopyRequest generates a "aws/request.Request" representing the
7072// client's request for the EnableSnapshotCopy operation. The "output" return
7073// value will be populated with the request's response once the request completes
7074// successfully.
7075//
7076// Use "Send" method on the returned Request to send the API call to the service.
7077// the "output" return value is not valid until after Send returns without error.
7078//
7079// See EnableSnapshotCopy for more information on using the EnableSnapshotCopy
7080// API call, and error handling.
7081//
7082// This method is useful when you want to inject custom logic or configuration
7083// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7084//
7085//
7086//    // Example sending a request using the EnableSnapshotCopyRequest method.
7087//    req, resp := client.EnableSnapshotCopyRequest(params)
7088//
7089//    err := req.Send()
7090//    if err == nil { // resp is now filled
7091//        fmt.Println(resp)
7092//    }
7093//
7094// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EnableSnapshotCopy
7095func (c *Redshift) EnableSnapshotCopyRequest(input *EnableSnapshotCopyInput) (req *request.Request, output *EnableSnapshotCopyOutput) {
7096	op := &request.Operation{
7097		Name:       opEnableSnapshotCopy,
7098		HTTPMethod: "POST",
7099		HTTPPath:   "/",
7100	}
7101
7102	if input == nil {
7103		input = &EnableSnapshotCopyInput{}
7104	}
7105
7106	output = &EnableSnapshotCopyOutput{}
7107	req = c.newRequest(op, input, output)
7108	return
7109}
7110
7111// EnableSnapshotCopy API operation for Amazon Redshift.
7112//
7113// Enables the automatic copy of snapshots from one region to another region
7114// for a specified cluster.
7115//
7116// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7117// with awserr.Error's Code and Message methods to get detailed information about
7118// the error.
7119//
7120// See the AWS API reference guide for Amazon Redshift's
7121// API operation EnableSnapshotCopy for usage and error information.
7122//
7123// Returned Error Codes:
7124//   * ErrCodeIncompatibleOrderableOptions "IncompatibleOrderableOptions"
7125//   The specified options are incompatible.
7126//
7127//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
7128//   The specified cluster is not in the available state.
7129//
7130//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
7131//   The ClusterIdentifier parameter does not refer to an existing cluster.
7132//
7133//   * ErrCodeCopyToRegionDisabledFault "CopyToRegionDisabledFault"
7134//   Cross-region snapshot copy was temporarily disabled. Try your request again.
7135//
7136//   * ErrCodeSnapshotCopyAlreadyEnabledFault "SnapshotCopyAlreadyEnabledFault"
7137//   The cluster already has cross-region snapshot copy enabled.
7138//
7139//   * ErrCodeUnknownSnapshotCopyRegionFault "UnknownSnapshotCopyRegionFault"
7140//   The specified region is incorrect or does not exist.
7141//
7142//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
7143//   Your account is not authorized to perform the requested operation.
7144//
7145//   * ErrCodeSnapshotCopyGrantNotFoundFault "SnapshotCopyGrantNotFoundFault"
7146//   The specified snapshot copy grant can't be found. Make sure that the name
7147//   is typed correctly and that the grant exists in the destination region.
7148//
7149//   * ErrCodeLimitExceededFault "LimitExceededFault"
7150//   The encryption key has exceeded its grant limit in AWS KMS.
7151//
7152//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
7153//   The request cannot be completed because a dependent service is throttling
7154//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
7155//
7156//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
7157//   The retention period specified is either in the past or is not a valid value.
7158//
7159//   The value must be either -1 or an integer between 1 and 3,653.
7160//
7161// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EnableSnapshotCopy
7162func (c *Redshift) EnableSnapshotCopy(input *EnableSnapshotCopyInput) (*EnableSnapshotCopyOutput, error) {
7163	req, out := c.EnableSnapshotCopyRequest(input)
7164	return out, req.Send()
7165}
7166
7167// EnableSnapshotCopyWithContext is the same as EnableSnapshotCopy with the addition of
7168// the ability to pass a context and additional request options.
7169//
7170// See EnableSnapshotCopy for details on how to use this API operation.
7171//
7172// The context must be non-nil and will be used for request cancellation. If
7173// the context is nil a panic will occur. In the future the SDK may create
7174// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7175// for more information on using Contexts.
7176func (c *Redshift) EnableSnapshotCopyWithContext(ctx aws.Context, input *EnableSnapshotCopyInput, opts ...request.Option) (*EnableSnapshotCopyOutput, error) {
7177	req, out := c.EnableSnapshotCopyRequest(input)
7178	req.SetContext(ctx)
7179	req.ApplyOptions(opts...)
7180	return out, req.Send()
7181}
7182
7183const opGetClusterCredentials = "GetClusterCredentials"
7184
7185// GetClusterCredentialsRequest generates a "aws/request.Request" representing the
7186// client's request for the GetClusterCredentials operation. The "output" return
7187// value will be populated with the request's response once the request completes
7188// successfully.
7189//
7190// Use "Send" method on the returned Request to send the API call to the service.
7191// the "output" return value is not valid until after Send returns without error.
7192//
7193// See GetClusterCredentials for more information on using the GetClusterCredentials
7194// API call, and error handling.
7195//
7196// This method is useful when you want to inject custom logic or configuration
7197// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7198//
7199//
7200//    // Example sending a request using the GetClusterCredentialsRequest method.
7201//    req, resp := client.GetClusterCredentialsRequest(params)
7202//
7203//    err := req.Send()
7204//    if err == nil { // resp is now filled
7205//        fmt.Println(resp)
7206//    }
7207//
7208// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/GetClusterCredentials
7209func (c *Redshift) GetClusterCredentialsRequest(input *GetClusterCredentialsInput) (req *request.Request, output *GetClusterCredentialsOutput) {
7210	op := &request.Operation{
7211		Name:       opGetClusterCredentials,
7212		HTTPMethod: "POST",
7213		HTTPPath:   "/",
7214	}
7215
7216	if input == nil {
7217		input = &GetClusterCredentialsInput{}
7218	}
7219
7220	output = &GetClusterCredentialsOutput{}
7221	req = c.newRequest(op, input, output)
7222	return
7223}
7224
7225// GetClusterCredentials API operation for Amazon Redshift.
7226//
7227// Returns a database user name and temporary password with temporary authorization
7228// to log on to an Amazon Redshift database. The action returns the database
7229// user name prefixed with IAM: if AutoCreate is False or IAMA: if AutoCreate
7230// is True. You can optionally specify one or more database user groups that
7231// the user will join at log on. By default, the temporary credentials expire
7232// in 900 seconds. You can optionally specify a duration between 900 seconds
7233// (15 minutes) and 3600 seconds (60 minutes). For more information, see Using
7234// IAM Authentication to Generate Database User Credentials (https://docs.aws.amazon.com/redshift/latest/mgmt/generating-user-credentials.html)
7235// in the Amazon Redshift Cluster Management Guide.
7236//
7237// The AWS Identity and Access Management (IAM)user or role that executes GetClusterCredentials
7238// must have an IAM policy attached that allows access to all necessary actions
7239// and resources. For more information about permissions, see Resource Policies
7240// for GetClusterCredentials (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html#redshift-policy-resources.getclustercredentials-resources)
7241// in the Amazon Redshift Cluster Management Guide.
7242//
7243// If the DbGroups parameter is specified, the IAM policy must allow the redshift:JoinGroup
7244// action with access to the listed dbgroups.
7245//
7246// In addition, if the AutoCreate parameter is set to True, then the policy
7247// must include the redshift:CreateClusterUser privilege.
7248//
7249// If the DbName parameter is specified, the IAM policy must allow access to
7250// the resource dbname for the specified database name.
7251//
7252// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7253// with awserr.Error's Code and Message methods to get detailed information about
7254// the error.
7255//
7256// See the AWS API reference guide for Amazon Redshift's
7257// API operation GetClusterCredentials for usage and error information.
7258//
7259// Returned Error Codes:
7260//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
7261//   The ClusterIdentifier parameter does not refer to an existing cluster.
7262//
7263//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
7264//   The requested operation isn't supported.
7265//
7266// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/GetClusterCredentials
7267func (c *Redshift) GetClusterCredentials(input *GetClusterCredentialsInput) (*GetClusterCredentialsOutput, error) {
7268	req, out := c.GetClusterCredentialsRequest(input)
7269	return out, req.Send()
7270}
7271
7272// GetClusterCredentialsWithContext is the same as GetClusterCredentials with the addition of
7273// the ability to pass a context and additional request options.
7274//
7275// See GetClusterCredentials for details on how to use this API operation.
7276//
7277// The context must be non-nil and will be used for request cancellation. If
7278// the context is nil a panic will occur. In the future the SDK may create
7279// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7280// for more information on using Contexts.
7281func (c *Redshift) GetClusterCredentialsWithContext(ctx aws.Context, input *GetClusterCredentialsInput, opts ...request.Option) (*GetClusterCredentialsOutput, error) {
7282	req, out := c.GetClusterCredentialsRequest(input)
7283	req.SetContext(ctx)
7284	req.ApplyOptions(opts...)
7285	return out, req.Send()
7286}
7287
7288const opGetReservedNodeExchangeOfferings = "GetReservedNodeExchangeOfferings"
7289
7290// GetReservedNodeExchangeOfferingsRequest generates a "aws/request.Request" representing the
7291// client's request for the GetReservedNodeExchangeOfferings operation. The "output" return
7292// value will be populated with the request's response once the request completes
7293// successfully.
7294//
7295// Use "Send" method on the returned Request to send the API call to the service.
7296// the "output" return value is not valid until after Send returns without error.
7297//
7298// See GetReservedNodeExchangeOfferings for more information on using the GetReservedNodeExchangeOfferings
7299// API call, and error handling.
7300//
7301// This method is useful when you want to inject custom logic or configuration
7302// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7303//
7304//
7305//    // Example sending a request using the GetReservedNodeExchangeOfferingsRequest method.
7306//    req, resp := client.GetReservedNodeExchangeOfferingsRequest(params)
7307//
7308//    err := req.Send()
7309//    if err == nil { // resp is now filled
7310//        fmt.Println(resp)
7311//    }
7312//
7313// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/GetReservedNodeExchangeOfferings
7314func (c *Redshift) GetReservedNodeExchangeOfferingsRequest(input *GetReservedNodeExchangeOfferingsInput) (req *request.Request, output *GetReservedNodeExchangeOfferingsOutput) {
7315	op := &request.Operation{
7316		Name:       opGetReservedNodeExchangeOfferings,
7317		HTTPMethod: "POST",
7318		HTTPPath:   "/",
7319	}
7320
7321	if input == nil {
7322		input = &GetReservedNodeExchangeOfferingsInput{}
7323	}
7324
7325	output = &GetReservedNodeExchangeOfferingsOutput{}
7326	req = c.newRequest(op, input, output)
7327	return
7328}
7329
7330// GetReservedNodeExchangeOfferings API operation for Amazon Redshift.
7331//
7332// Returns an array of DC2 ReservedNodeOfferings that matches the payment type,
7333// term, and usage price of the given DC1 reserved node.
7334//
7335// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7336// with awserr.Error's Code and Message methods to get detailed information about
7337// the error.
7338//
7339// See the AWS API reference guide for Amazon Redshift's
7340// API operation GetReservedNodeExchangeOfferings for usage and error information.
7341//
7342// Returned Error Codes:
7343//   * ErrCodeReservedNodeNotFoundFault "ReservedNodeNotFound"
7344//   The specified reserved compute node not found.
7345//
7346//   * ErrCodeInvalidReservedNodeStateFault "InvalidReservedNodeState"
7347//   Indicates that the Reserved Node being exchanged is not in an active state.
7348//
7349//   * ErrCodeReservedNodeAlreadyMigratedFault "ReservedNodeAlreadyMigrated"
7350//   Indicates that the reserved node has already been exchanged.
7351//
7352//   * ErrCodeReservedNodeOfferingNotFoundFault "ReservedNodeOfferingNotFound"
7353//   Specified offering does not exist.
7354//
7355//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
7356//   The requested operation isn't supported.
7357//
7358//   * ErrCodeDependentServiceUnavailableFault "DependentServiceUnavailableFault"
7359//   Your request cannot be completed because a dependent internal service is
7360//   temporarily unavailable. Wait 30 to 60 seconds and try again.
7361//
7362// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/GetReservedNodeExchangeOfferings
7363func (c *Redshift) GetReservedNodeExchangeOfferings(input *GetReservedNodeExchangeOfferingsInput) (*GetReservedNodeExchangeOfferingsOutput, error) {
7364	req, out := c.GetReservedNodeExchangeOfferingsRequest(input)
7365	return out, req.Send()
7366}
7367
7368// GetReservedNodeExchangeOfferingsWithContext is the same as GetReservedNodeExchangeOfferings with the addition of
7369// the ability to pass a context and additional request options.
7370//
7371// See GetReservedNodeExchangeOfferings for details on how to use this API operation.
7372//
7373// The context must be non-nil and will be used for request cancellation. If
7374// the context is nil a panic will occur. In the future the SDK may create
7375// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7376// for more information on using Contexts.
7377func (c *Redshift) GetReservedNodeExchangeOfferingsWithContext(ctx aws.Context, input *GetReservedNodeExchangeOfferingsInput, opts ...request.Option) (*GetReservedNodeExchangeOfferingsOutput, error) {
7378	req, out := c.GetReservedNodeExchangeOfferingsRequest(input)
7379	req.SetContext(ctx)
7380	req.ApplyOptions(opts...)
7381	return out, req.Send()
7382}
7383
7384const opModifyCluster = "ModifyCluster"
7385
7386// ModifyClusterRequest generates a "aws/request.Request" representing the
7387// client's request for the ModifyCluster operation. The "output" return
7388// value will be populated with the request's response once the request completes
7389// successfully.
7390//
7391// Use "Send" method on the returned Request to send the API call to the service.
7392// the "output" return value is not valid until after Send returns without error.
7393//
7394// See ModifyCluster for more information on using the ModifyCluster
7395// API call, and error handling.
7396//
7397// This method is useful when you want to inject custom logic or configuration
7398// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7399//
7400//
7401//    // Example sending a request using the ModifyClusterRequest method.
7402//    req, resp := client.ModifyClusterRequest(params)
7403//
7404//    err := req.Send()
7405//    if err == nil { // resp is now filled
7406//        fmt.Println(resp)
7407//    }
7408//
7409// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyCluster
7410func (c *Redshift) ModifyClusterRequest(input *ModifyClusterInput) (req *request.Request, output *ModifyClusterOutput) {
7411	op := &request.Operation{
7412		Name:       opModifyCluster,
7413		HTTPMethod: "POST",
7414		HTTPPath:   "/",
7415	}
7416
7417	if input == nil {
7418		input = &ModifyClusterInput{}
7419	}
7420
7421	output = &ModifyClusterOutput{}
7422	req = c.newRequest(op, input, output)
7423	return
7424}
7425
7426// ModifyCluster API operation for Amazon Redshift.
7427//
7428// Modifies the settings for a cluster.
7429//
7430// You can also change node type and the number of nodes to scale up or down
7431// the cluster. When resizing a cluster, you must specify both the number of
7432// nodes and the node type even if one of the parameters does not change.
7433//
7434// You can add another security or parameter group, or change the master user
7435// password. Resetting a cluster password or modifying the security groups associated
7436// with a cluster do not need a reboot. However, modifying a parameter group
7437// requires a reboot for parameters to take effect. For more information about
7438// managing clusters, go to Amazon Redshift Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
7439// in the Amazon Redshift Cluster Management Guide.
7440//
7441// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7442// with awserr.Error's Code and Message methods to get detailed information about
7443// the error.
7444//
7445// See the AWS API reference guide for Amazon Redshift's
7446// API operation ModifyCluster for usage and error information.
7447//
7448// Returned Error Codes:
7449//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
7450//   The specified cluster is not in the available state.
7451//
7452//   * ErrCodeInvalidClusterSecurityGroupStateFault "InvalidClusterSecurityGroupState"
7453//   The state of the cluster security group is not available.
7454//
7455//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
7456//   The ClusterIdentifier parameter does not refer to an existing cluster.
7457//
7458//   * ErrCodeNumberOfNodesQuotaExceededFault "NumberOfNodesQuotaExceeded"
7459//   The operation would exceed the number of nodes allotted to the account. For
7460//   information about increasing your quota, go to Limits in Amazon Redshift
7461//   (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
7462//   in the Amazon Redshift Cluster Management Guide.
7463//
7464//   * ErrCodeNumberOfNodesPerClusterLimitExceededFault "NumberOfNodesPerClusterLimitExceeded"
7465//   The operation would exceed the number of nodes allowed for a cluster.
7466//
7467//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
7468//   The cluster security group name does not refer to an existing cluster security
7469//   group.
7470//
7471//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
7472//   The parameter group name does not refer to an existing parameter group.
7473//
7474//   * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacity"
7475//   The number of nodes specified exceeds the allotted capacity of the cluster.
7476//
7477//   * ErrCodeUnsupportedOptionFault "UnsupportedOptionFault"
7478//   A request option was specified that is not supported.
7479//
7480//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
7481//   Your account is not authorized to perform the requested operation.
7482//
7483//   * ErrCodeHsmClientCertificateNotFoundFault "HsmClientCertificateNotFoundFault"
7484//   There is no Amazon Redshift HSM client certificate with the specified identifier.
7485//
7486//   * ErrCodeHsmConfigurationNotFoundFault "HsmConfigurationNotFoundFault"
7487//   There is no Amazon Redshift HSM configuration with the specified identifier.
7488//
7489//   * ErrCodeClusterAlreadyExistsFault "ClusterAlreadyExists"
7490//   The account already has a cluster with the given identifier.
7491//
7492//   * ErrCodeLimitExceededFault "LimitExceededFault"
7493//   The encryption key has exceeded its grant limit in AWS KMS.
7494//
7495//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
7496//   The request cannot be completed because a dependent service is throttling
7497//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
7498//
7499//   * ErrCodeInvalidElasticIpFault "InvalidElasticIpFault"
7500//   The Elastic IP (EIP) is invalid or cannot be found.
7501//
7502//   * ErrCodeTableLimitExceededFault "TableLimitExceeded"
7503//   The number of tables in the cluster exceeds the limit for the requested new
7504//   cluster node type.
7505//
7506//   * ErrCodeInvalidClusterTrackFault "InvalidClusterTrack"
7507//   The provided cluster track name is not valid.
7508//
7509//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
7510//   The retention period specified is either in the past or is not a valid value.
7511//
7512//   The value must be either -1 or an integer between 1 and 3,653.
7513//
7514// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyCluster
7515func (c *Redshift) ModifyCluster(input *ModifyClusterInput) (*ModifyClusterOutput, error) {
7516	req, out := c.ModifyClusterRequest(input)
7517	return out, req.Send()
7518}
7519
7520// ModifyClusterWithContext is the same as ModifyCluster with the addition of
7521// the ability to pass a context and additional request options.
7522//
7523// See ModifyCluster for details on how to use this API operation.
7524//
7525// The context must be non-nil and will be used for request cancellation. If
7526// the context is nil a panic will occur. In the future the SDK may create
7527// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7528// for more information on using Contexts.
7529func (c *Redshift) ModifyClusterWithContext(ctx aws.Context, input *ModifyClusterInput, opts ...request.Option) (*ModifyClusterOutput, error) {
7530	req, out := c.ModifyClusterRequest(input)
7531	req.SetContext(ctx)
7532	req.ApplyOptions(opts...)
7533	return out, req.Send()
7534}
7535
7536const opModifyClusterDbRevision = "ModifyClusterDbRevision"
7537
7538// ModifyClusterDbRevisionRequest generates a "aws/request.Request" representing the
7539// client's request for the ModifyClusterDbRevision operation. The "output" return
7540// value will be populated with the request's response once the request completes
7541// successfully.
7542//
7543// Use "Send" method on the returned Request to send the API call to the service.
7544// the "output" return value is not valid until after Send returns without error.
7545//
7546// See ModifyClusterDbRevision for more information on using the ModifyClusterDbRevision
7547// API call, and error handling.
7548//
7549// This method is useful when you want to inject custom logic or configuration
7550// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7551//
7552//
7553//    // Example sending a request using the ModifyClusterDbRevisionRequest method.
7554//    req, resp := client.ModifyClusterDbRevisionRequest(params)
7555//
7556//    err := req.Send()
7557//    if err == nil { // resp is now filled
7558//        fmt.Println(resp)
7559//    }
7560//
7561// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterDbRevision
7562func (c *Redshift) ModifyClusterDbRevisionRequest(input *ModifyClusterDbRevisionInput) (req *request.Request, output *ModifyClusterDbRevisionOutput) {
7563	op := &request.Operation{
7564		Name:       opModifyClusterDbRevision,
7565		HTTPMethod: "POST",
7566		HTTPPath:   "/",
7567	}
7568
7569	if input == nil {
7570		input = &ModifyClusterDbRevisionInput{}
7571	}
7572
7573	output = &ModifyClusterDbRevisionOutput{}
7574	req = c.newRequest(op, input, output)
7575	return
7576}
7577
7578// ModifyClusterDbRevision API operation for Amazon Redshift.
7579//
7580// Modifies the database revision of a cluster. The database revision is a unique
7581// revision of the database running in a cluster.
7582//
7583// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7584// with awserr.Error's Code and Message methods to get detailed information about
7585// the error.
7586//
7587// See the AWS API reference guide for Amazon Redshift's
7588// API operation ModifyClusterDbRevision for usage and error information.
7589//
7590// Returned Error Codes:
7591//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
7592//   The ClusterIdentifier parameter does not refer to an existing cluster.
7593//
7594//   * ErrCodeClusterOnLatestRevisionFault "ClusterOnLatestRevision"
7595//   Cluster is already on the latest database revision.
7596//
7597//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
7598//   The specified cluster is not in the available state.
7599//
7600// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterDbRevision
7601func (c *Redshift) ModifyClusterDbRevision(input *ModifyClusterDbRevisionInput) (*ModifyClusterDbRevisionOutput, error) {
7602	req, out := c.ModifyClusterDbRevisionRequest(input)
7603	return out, req.Send()
7604}
7605
7606// ModifyClusterDbRevisionWithContext is the same as ModifyClusterDbRevision with the addition of
7607// the ability to pass a context and additional request options.
7608//
7609// See ModifyClusterDbRevision for details on how to use this API operation.
7610//
7611// The context must be non-nil and will be used for request cancellation. If
7612// the context is nil a panic will occur. In the future the SDK may create
7613// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7614// for more information on using Contexts.
7615func (c *Redshift) ModifyClusterDbRevisionWithContext(ctx aws.Context, input *ModifyClusterDbRevisionInput, opts ...request.Option) (*ModifyClusterDbRevisionOutput, error) {
7616	req, out := c.ModifyClusterDbRevisionRequest(input)
7617	req.SetContext(ctx)
7618	req.ApplyOptions(opts...)
7619	return out, req.Send()
7620}
7621
7622const opModifyClusterIamRoles = "ModifyClusterIamRoles"
7623
7624// ModifyClusterIamRolesRequest generates a "aws/request.Request" representing the
7625// client's request for the ModifyClusterIamRoles operation. The "output" return
7626// value will be populated with the request's response once the request completes
7627// successfully.
7628//
7629// Use "Send" method on the returned Request to send the API call to the service.
7630// the "output" return value is not valid until after Send returns without error.
7631//
7632// See ModifyClusterIamRoles for more information on using the ModifyClusterIamRoles
7633// API call, and error handling.
7634//
7635// This method is useful when you want to inject custom logic or configuration
7636// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7637//
7638//
7639//    // Example sending a request using the ModifyClusterIamRolesRequest method.
7640//    req, resp := client.ModifyClusterIamRolesRequest(params)
7641//
7642//    err := req.Send()
7643//    if err == nil { // resp is now filled
7644//        fmt.Println(resp)
7645//    }
7646//
7647// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterIamRoles
7648func (c *Redshift) ModifyClusterIamRolesRequest(input *ModifyClusterIamRolesInput) (req *request.Request, output *ModifyClusterIamRolesOutput) {
7649	op := &request.Operation{
7650		Name:       opModifyClusterIamRoles,
7651		HTTPMethod: "POST",
7652		HTTPPath:   "/",
7653	}
7654
7655	if input == nil {
7656		input = &ModifyClusterIamRolesInput{}
7657	}
7658
7659	output = &ModifyClusterIamRolesOutput{}
7660	req = c.newRequest(op, input, output)
7661	return
7662}
7663
7664// ModifyClusterIamRoles API operation for Amazon Redshift.
7665//
7666// Modifies the list of AWS Identity and Access Management (IAM) roles that
7667// can be used by the cluster to access other AWS services.
7668//
7669// A cluster can have up to 10 IAM roles associated at any time.
7670//
7671// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7672// with awserr.Error's Code and Message methods to get detailed information about
7673// the error.
7674//
7675// See the AWS API reference guide for Amazon Redshift's
7676// API operation ModifyClusterIamRoles for usage and error information.
7677//
7678// Returned Error Codes:
7679//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
7680//   The specified cluster is not in the available state.
7681//
7682//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
7683//   The ClusterIdentifier parameter does not refer to an existing cluster.
7684//
7685// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterIamRoles
7686func (c *Redshift) ModifyClusterIamRoles(input *ModifyClusterIamRolesInput) (*ModifyClusterIamRolesOutput, error) {
7687	req, out := c.ModifyClusterIamRolesRequest(input)
7688	return out, req.Send()
7689}
7690
7691// ModifyClusterIamRolesWithContext is the same as ModifyClusterIamRoles with the addition of
7692// the ability to pass a context and additional request options.
7693//
7694// See ModifyClusterIamRoles for details on how to use this API operation.
7695//
7696// The context must be non-nil and will be used for request cancellation. If
7697// the context is nil a panic will occur. In the future the SDK may create
7698// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7699// for more information on using Contexts.
7700func (c *Redshift) ModifyClusterIamRolesWithContext(ctx aws.Context, input *ModifyClusterIamRolesInput, opts ...request.Option) (*ModifyClusterIamRolesOutput, error) {
7701	req, out := c.ModifyClusterIamRolesRequest(input)
7702	req.SetContext(ctx)
7703	req.ApplyOptions(opts...)
7704	return out, req.Send()
7705}
7706
7707const opModifyClusterMaintenance = "ModifyClusterMaintenance"
7708
7709// ModifyClusterMaintenanceRequest generates a "aws/request.Request" representing the
7710// client's request for the ModifyClusterMaintenance operation. The "output" return
7711// value will be populated with the request's response once the request completes
7712// successfully.
7713//
7714// Use "Send" method on the returned Request to send the API call to the service.
7715// the "output" return value is not valid until after Send returns without error.
7716//
7717// See ModifyClusterMaintenance for more information on using the ModifyClusterMaintenance
7718// API call, and error handling.
7719//
7720// This method is useful when you want to inject custom logic or configuration
7721// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7722//
7723//
7724//    // Example sending a request using the ModifyClusterMaintenanceRequest method.
7725//    req, resp := client.ModifyClusterMaintenanceRequest(params)
7726//
7727//    err := req.Send()
7728//    if err == nil { // resp is now filled
7729//        fmt.Println(resp)
7730//    }
7731//
7732// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterMaintenance
7733func (c *Redshift) ModifyClusterMaintenanceRequest(input *ModifyClusterMaintenanceInput) (req *request.Request, output *ModifyClusterMaintenanceOutput) {
7734	op := &request.Operation{
7735		Name:       opModifyClusterMaintenance,
7736		HTTPMethod: "POST",
7737		HTTPPath:   "/",
7738	}
7739
7740	if input == nil {
7741		input = &ModifyClusterMaintenanceInput{}
7742	}
7743
7744	output = &ModifyClusterMaintenanceOutput{}
7745	req = c.newRequest(op, input, output)
7746	return
7747}
7748
7749// ModifyClusterMaintenance API operation for Amazon Redshift.
7750//
7751// Modifies the maintenance settings of a cluster.
7752//
7753// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7754// with awserr.Error's Code and Message methods to get detailed information about
7755// the error.
7756//
7757// See the AWS API reference guide for Amazon Redshift's
7758// API operation ModifyClusterMaintenance for usage and error information.
7759//
7760// Returned Error Codes:
7761//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
7762//   The ClusterIdentifier parameter does not refer to an existing cluster.
7763//
7764//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
7765//   The specified cluster is not in the available state.
7766//
7767// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterMaintenance
7768func (c *Redshift) ModifyClusterMaintenance(input *ModifyClusterMaintenanceInput) (*ModifyClusterMaintenanceOutput, error) {
7769	req, out := c.ModifyClusterMaintenanceRequest(input)
7770	return out, req.Send()
7771}
7772
7773// ModifyClusterMaintenanceWithContext is the same as ModifyClusterMaintenance with the addition of
7774// the ability to pass a context and additional request options.
7775//
7776// See ModifyClusterMaintenance for details on how to use this API operation.
7777//
7778// The context must be non-nil and will be used for request cancellation. If
7779// the context is nil a panic will occur. In the future the SDK may create
7780// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7781// for more information on using Contexts.
7782func (c *Redshift) ModifyClusterMaintenanceWithContext(ctx aws.Context, input *ModifyClusterMaintenanceInput, opts ...request.Option) (*ModifyClusterMaintenanceOutput, error) {
7783	req, out := c.ModifyClusterMaintenanceRequest(input)
7784	req.SetContext(ctx)
7785	req.ApplyOptions(opts...)
7786	return out, req.Send()
7787}
7788
7789const opModifyClusterParameterGroup = "ModifyClusterParameterGroup"
7790
7791// ModifyClusterParameterGroupRequest generates a "aws/request.Request" representing the
7792// client's request for the ModifyClusterParameterGroup operation. The "output" return
7793// value will be populated with the request's response once the request completes
7794// successfully.
7795//
7796// Use "Send" method on the returned Request to send the API call to the service.
7797// the "output" return value is not valid until after Send returns without error.
7798//
7799// See ModifyClusterParameterGroup for more information on using the ModifyClusterParameterGroup
7800// API call, and error handling.
7801//
7802// This method is useful when you want to inject custom logic or configuration
7803// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7804//
7805//
7806//    // Example sending a request using the ModifyClusterParameterGroupRequest method.
7807//    req, resp := client.ModifyClusterParameterGroupRequest(params)
7808//
7809//    err := req.Send()
7810//    if err == nil { // resp is now filled
7811//        fmt.Println(resp)
7812//    }
7813//
7814// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterParameterGroup
7815func (c *Redshift) ModifyClusterParameterGroupRequest(input *ModifyClusterParameterGroupInput) (req *request.Request, output *ClusterParameterGroupNameMessage) {
7816	op := &request.Operation{
7817		Name:       opModifyClusterParameterGroup,
7818		HTTPMethod: "POST",
7819		HTTPPath:   "/",
7820	}
7821
7822	if input == nil {
7823		input = &ModifyClusterParameterGroupInput{}
7824	}
7825
7826	output = &ClusterParameterGroupNameMessage{}
7827	req = c.newRequest(op, input, output)
7828	return
7829}
7830
7831// ModifyClusterParameterGroup API operation for Amazon Redshift.
7832//
7833// Modifies the parameters of a parameter group.
7834//
7835// For more information about parameters and parameter groups, go to Amazon
7836// Redshift Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
7837// in the Amazon Redshift Cluster Management Guide.
7838//
7839// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7840// with awserr.Error's Code and Message methods to get detailed information about
7841// the error.
7842//
7843// See the AWS API reference guide for Amazon Redshift's
7844// API operation ModifyClusterParameterGroup for usage and error information.
7845//
7846// Returned Error Codes:
7847//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
7848//   The parameter group name does not refer to an existing parameter group.
7849//
7850//   * ErrCodeInvalidClusterParameterGroupStateFault "InvalidClusterParameterGroupState"
7851//   The cluster parameter group action can not be completed because another task
7852//   is in progress that involves the parameter group. Wait a few moments and
7853//   try the operation again.
7854//
7855// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterParameterGroup
7856func (c *Redshift) ModifyClusterParameterGroup(input *ModifyClusterParameterGroupInput) (*ClusterParameterGroupNameMessage, error) {
7857	req, out := c.ModifyClusterParameterGroupRequest(input)
7858	return out, req.Send()
7859}
7860
7861// ModifyClusterParameterGroupWithContext is the same as ModifyClusterParameterGroup with the addition of
7862// the ability to pass a context and additional request options.
7863//
7864// See ModifyClusterParameterGroup for details on how to use this API operation.
7865//
7866// The context must be non-nil and will be used for request cancellation. If
7867// the context is nil a panic will occur. In the future the SDK may create
7868// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7869// for more information on using Contexts.
7870func (c *Redshift) ModifyClusterParameterGroupWithContext(ctx aws.Context, input *ModifyClusterParameterGroupInput, opts ...request.Option) (*ClusterParameterGroupNameMessage, error) {
7871	req, out := c.ModifyClusterParameterGroupRequest(input)
7872	req.SetContext(ctx)
7873	req.ApplyOptions(opts...)
7874	return out, req.Send()
7875}
7876
7877const opModifyClusterSnapshot = "ModifyClusterSnapshot"
7878
7879// ModifyClusterSnapshotRequest generates a "aws/request.Request" representing the
7880// client's request for the ModifyClusterSnapshot operation. The "output" return
7881// value will be populated with the request's response once the request completes
7882// successfully.
7883//
7884// Use "Send" method on the returned Request to send the API call to the service.
7885// the "output" return value is not valid until after Send returns without error.
7886//
7887// See ModifyClusterSnapshot for more information on using the ModifyClusterSnapshot
7888// API call, and error handling.
7889//
7890// This method is useful when you want to inject custom logic or configuration
7891// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7892//
7893//
7894//    // Example sending a request using the ModifyClusterSnapshotRequest method.
7895//    req, resp := client.ModifyClusterSnapshotRequest(params)
7896//
7897//    err := req.Send()
7898//    if err == nil { // resp is now filled
7899//        fmt.Println(resp)
7900//    }
7901//
7902// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSnapshot
7903func (c *Redshift) ModifyClusterSnapshotRequest(input *ModifyClusterSnapshotInput) (req *request.Request, output *ModifyClusterSnapshotOutput) {
7904	op := &request.Operation{
7905		Name:       opModifyClusterSnapshot,
7906		HTTPMethod: "POST",
7907		HTTPPath:   "/",
7908	}
7909
7910	if input == nil {
7911		input = &ModifyClusterSnapshotInput{}
7912	}
7913
7914	output = &ModifyClusterSnapshotOutput{}
7915	req = c.newRequest(op, input, output)
7916	return
7917}
7918
7919// ModifyClusterSnapshot API operation for Amazon Redshift.
7920//
7921// Modifies the settings for a snapshot.
7922//
7923// This exanmple modifies the manual retention period setting for a cluster
7924// snapshot.
7925//
7926// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7927// with awserr.Error's Code and Message methods to get detailed information about
7928// the error.
7929//
7930// See the AWS API reference guide for Amazon Redshift's
7931// API operation ModifyClusterSnapshot for usage and error information.
7932//
7933// Returned Error Codes:
7934//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
7935//   The specified cluster snapshot is not in the available state, or other accounts
7936//   are authorized to access the snapshot.
7937//
7938//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
7939//   The snapshot identifier does not refer to an existing cluster snapshot.
7940//
7941//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
7942//   The retention period specified is either in the past or is not a valid value.
7943//
7944//   The value must be either -1 or an integer between 1 and 3,653.
7945//
7946// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSnapshot
7947func (c *Redshift) ModifyClusterSnapshot(input *ModifyClusterSnapshotInput) (*ModifyClusterSnapshotOutput, error) {
7948	req, out := c.ModifyClusterSnapshotRequest(input)
7949	return out, req.Send()
7950}
7951
7952// ModifyClusterSnapshotWithContext is the same as ModifyClusterSnapshot with the addition of
7953// the ability to pass a context and additional request options.
7954//
7955// See ModifyClusterSnapshot for details on how to use this API operation.
7956//
7957// The context must be non-nil and will be used for request cancellation. If
7958// the context is nil a panic will occur. In the future the SDK may create
7959// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7960// for more information on using Contexts.
7961func (c *Redshift) ModifyClusterSnapshotWithContext(ctx aws.Context, input *ModifyClusterSnapshotInput, opts ...request.Option) (*ModifyClusterSnapshotOutput, error) {
7962	req, out := c.ModifyClusterSnapshotRequest(input)
7963	req.SetContext(ctx)
7964	req.ApplyOptions(opts...)
7965	return out, req.Send()
7966}
7967
7968const opModifyClusterSnapshotSchedule = "ModifyClusterSnapshotSchedule"
7969
7970// ModifyClusterSnapshotScheduleRequest generates a "aws/request.Request" representing the
7971// client's request for the ModifyClusterSnapshotSchedule operation. The "output" return
7972// value will be populated with the request's response once the request completes
7973// successfully.
7974//
7975// Use "Send" method on the returned Request to send the API call to the service.
7976// the "output" return value is not valid until after Send returns without error.
7977//
7978// See ModifyClusterSnapshotSchedule for more information on using the ModifyClusterSnapshotSchedule
7979// API call, and error handling.
7980//
7981// This method is useful when you want to inject custom logic or configuration
7982// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7983//
7984//
7985//    // Example sending a request using the ModifyClusterSnapshotScheduleRequest method.
7986//    req, resp := client.ModifyClusterSnapshotScheduleRequest(params)
7987//
7988//    err := req.Send()
7989//    if err == nil { // resp is now filled
7990//        fmt.Println(resp)
7991//    }
7992//
7993// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSnapshotSchedule
7994func (c *Redshift) ModifyClusterSnapshotScheduleRequest(input *ModifyClusterSnapshotScheduleInput) (req *request.Request, output *ModifyClusterSnapshotScheduleOutput) {
7995	op := &request.Operation{
7996		Name:       opModifyClusterSnapshotSchedule,
7997		HTTPMethod: "POST",
7998		HTTPPath:   "/",
7999	}
8000
8001	if input == nil {
8002		input = &ModifyClusterSnapshotScheduleInput{}
8003	}
8004
8005	output = &ModifyClusterSnapshotScheduleOutput{}
8006	req = c.newRequest(op, input, output)
8007	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
8008	return
8009}
8010
8011// ModifyClusterSnapshotSchedule API operation for Amazon Redshift.
8012//
8013// Modifies a snapshot schedule for a cluster.
8014//
8015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8016// with awserr.Error's Code and Message methods to get detailed information about
8017// the error.
8018//
8019// See the AWS API reference guide for Amazon Redshift's
8020// API operation ModifyClusterSnapshotSchedule for usage and error information.
8021//
8022// Returned Error Codes:
8023//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
8024//   The ClusterIdentifier parameter does not refer to an existing cluster.
8025//
8026//   * ErrCodeSnapshotScheduleNotFoundFault "SnapshotScheduleNotFound"
8027//   We could not find the specified snapshot schedule.
8028//
8029//   * ErrCodeInvalidClusterSnapshotScheduleStateFault "InvalidClusterSnapshotScheduleState"
8030//   The cluster snapshot schedule state is not valid.
8031//
8032// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSnapshotSchedule
8033func (c *Redshift) ModifyClusterSnapshotSchedule(input *ModifyClusterSnapshotScheduleInput) (*ModifyClusterSnapshotScheduleOutput, error) {
8034	req, out := c.ModifyClusterSnapshotScheduleRequest(input)
8035	return out, req.Send()
8036}
8037
8038// ModifyClusterSnapshotScheduleWithContext is the same as ModifyClusterSnapshotSchedule with the addition of
8039// the ability to pass a context and additional request options.
8040//
8041// See ModifyClusterSnapshotSchedule for details on how to use this API operation.
8042//
8043// The context must be non-nil and will be used for request cancellation. If
8044// the context is nil a panic will occur. In the future the SDK may create
8045// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8046// for more information on using Contexts.
8047func (c *Redshift) ModifyClusterSnapshotScheduleWithContext(ctx aws.Context, input *ModifyClusterSnapshotScheduleInput, opts ...request.Option) (*ModifyClusterSnapshotScheduleOutput, error) {
8048	req, out := c.ModifyClusterSnapshotScheduleRequest(input)
8049	req.SetContext(ctx)
8050	req.ApplyOptions(opts...)
8051	return out, req.Send()
8052}
8053
8054const opModifyClusterSubnetGroup = "ModifyClusterSubnetGroup"
8055
8056// ModifyClusterSubnetGroupRequest generates a "aws/request.Request" representing the
8057// client's request for the ModifyClusterSubnetGroup operation. The "output" return
8058// value will be populated with the request's response once the request completes
8059// successfully.
8060//
8061// Use "Send" method on the returned Request to send the API call to the service.
8062// the "output" return value is not valid until after Send returns without error.
8063//
8064// See ModifyClusterSubnetGroup for more information on using the ModifyClusterSubnetGroup
8065// API call, and error handling.
8066//
8067// This method is useful when you want to inject custom logic or configuration
8068// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8069//
8070//
8071//    // Example sending a request using the ModifyClusterSubnetGroupRequest method.
8072//    req, resp := client.ModifyClusterSubnetGroupRequest(params)
8073//
8074//    err := req.Send()
8075//    if err == nil { // resp is now filled
8076//        fmt.Println(resp)
8077//    }
8078//
8079// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSubnetGroup
8080func (c *Redshift) ModifyClusterSubnetGroupRequest(input *ModifyClusterSubnetGroupInput) (req *request.Request, output *ModifyClusterSubnetGroupOutput) {
8081	op := &request.Operation{
8082		Name:       opModifyClusterSubnetGroup,
8083		HTTPMethod: "POST",
8084		HTTPPath:   "/",
8085	}
8086
8087	if input == nil {
8088		input = &ModifyClusterSubnetGroupInput{}
8089	}
8090
8091	output = &ModifyClusterSubnetGroupOutput{}
8092	req = c.newRequest(op, input, output)
8093	return
8094}
8095
8096// ModifyClusterSubnetGroup API operation for Amazon Redshift.
8097//
8098// Modifies a cluster subnet group to include the specified list of VPC subnets.
8099// The operation replaces the existing list of subnets with the new list of
8100// subnets.
8101//
8102// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8103// with awserr.Error's Code and Message methods to get detailed information about
8104// the error.
8105//
8106// See the AWS API reference guide for Amazon Redshift's
8107// API operation ModifyClusterSubnetGroup for usage and error information.
8108//
8109// Returned Error Codes:
8110//   * ErrCodeClusterSubnetGroupNotFoundFault "ClusterSubnetGroupNotFoundFault"
8111//   The cluster subnet group name does not refer to an existing cluster subnet
8112//   group.
8113//
8114//   * ErrCodeClusterSubnetQuotaExceededFault "ClusterSubnetQuotaExceededFault"
8115//   The request would result in user exceeding the allowed number of subnets
8116//   in a cluster subnet groups. For information about increasing your quota,
8117//   go to Limits in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
8118//   in the Amazon Redshift Cluster Management Guide.
8119//
8120//   * ErrCodeSubnetAlreadyInUse "SubnetAlreadyInUse"
8121//   A specified subnet is already in use by another cluster.
8122//
8123//   * ErrCodeInvalidSubnet "InvalidSubnet"
8124//   The requested subnet is not valid, or not all of the subnets are in the same
8125//   VPC.
8126//
8127//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
8128//   Your account is not authorized to perform the requested operation.
8129//
8130//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
8131//   The request cannot be completed because a dependent service is throttling
8132//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
8133//
8134// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSubnetGroup
8135func (c *Redshift) ModifyClusterSubnetGroup(input *ModifyClusterSubnetGroupInput) (*ModifyClusterSubnetGroupOutput, error) {
8136	req, out := c.ModifyClusterSubnetGroupRequest(input)
8137	return out, req.Send()
8138}
8139
8140// ModifyClusterSubnetGroupWithContext is the same as ModifyClusterSubnetGroup with the addition of
8141// the ability to pass a context and additional request options.
8142//
8143// See ModifyClusterSubnetGroup for details on how to use this API operation.
8144//
8145// The context must be non-nil and will be used for request cancellation. If
8146// the context is nil a panic will occur. In the future the SDK may create
8147// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8148// for more information on using Contexts.
8149func (c *Redshift) ModifyClusterSubnetGroupWithContext(ctx aws.Context, input *ModifyClusterSubnetGroupInput, opts ...request.Option) (*ModifyClusterSubnetGroupOutput, error) {
8150	req, out := c.ModifyClusterSubnetGroupRequest(input)
8151	req.SetContext(ctx)
8152	req.ApplyOptions(opts...)
8153	return out, req.Send()
8154}
8155
8156const opModifyEventSubscription = "ModifyEventSubscription"
8157
8158// ModifyEventSubscriptionRequest generates a "aws/request.Request" representing the
8159// client's request for the ModifyEventSubscription operation. The "output" return
8160// value will be populated with the request's response once the request completes
8161// successfully.
8162//
8163// Use "Send" method on the returned Request to send the API call to the service.
8164// the "output" return value is not valid until after Send returns without error.
8165//
8166// See ModifyEventSubscription for more information on using the ModifyEventSubscription
8167// API call, and error handling.
8168//
8169// This method is useful when you want to inject custom logic or configuration
8170// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8171//
8172//
8173//    // Example sending a request using the ModifyEventSubscriptionRequest method.
8174//    req, resp := client.ModifyEventSubscriptionRequest(params)
8175//
8176//    err := req.Send()
8177//    if err == nil { // resp is now filled
8178//        fmt.Println(resp)
8179//    }
8180//
8181// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyEventSubscription
8182func (c *Redshift) ModifyEventSubscriptionRequest(input *ModifyEventSubscriptionInput) (req *request.Request, output *ModifyEventSubscriptionOutput) {
8183	op := &request.Operation{
8184		Name:       opModifyEventSubscription,
8185		HTTPMethod: "POST",
8186		HTTPPath:   "/",
8187	}
8188
8189	if input == nil {
8190		input = &ModifyEventSubscriptionInput{}
8191	}
8192
8193	output = &ModifyEventSubscriptionOutput{}
8194	req = c.newRequest(op, input, output)
8195	return
8196}
8197
8198// ModifyEventSubscription API operation for Amazon Redshift.
8199//
8200// Modifies an existing Amazon Redshift event notification subscription.
8201//
8202// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8203// with awserr.Error's Code and Message methods to get detailed information about
8204// the error.
8205//
8206// See the AWS API reference guide for Amazon Redshift's
8207// API operation ModifyEventSubscription for usage and error information.
8208//
8209// Returned Error Codes:
8210//   * ErrCodeSubscriptionNotFoundFault "SubscriptionNotFound"
8211//   An Amazon Redshift event notification subscription with the specified name
8212//   does not exist.
8213//
8214//   * ErrCodeSNSInvalidTopicFault "SNSInvalidTopic"
8215//   Amazon SNS has responded that there is a problem with the specified Amazon
8216//   SNS topic.
8217//
8218//   * ErrCodeSNSNoAuthorizationFault "SNSNoAuthorization"
8219//   You do not have permission to publish to the specified Amazon SNS topic.
8220//
8221//   * ErrCodeSNSTopicArnNotFoundFault "SNSTopicArnNotFound"
8222//   An Amazon SNS topic with the specified Amazon Resource Name (ARN) does not
8223//   exist.
8224//
8225//   * ErrCodeSubscriptionEventIdNotFoundFault "SubscriptionEventIdNotFound"
8226//   An Amazon Redshift event with the specified event ID does not exist.
8227//
8228//   * ErrCodeSubscriptionCategoryNotFoundFault "SubscriptionCategoryNotFound"
8229//   The value specified for the event category was not one of the allowed values,
8230//   or it specified a category that does not apply to the specified source type.
8231//   The allowed values are Configuration, Management, Monitoring, and Security.
8232//
8233//   * ErrCodeSubscriptionSeverityNotFoundFault "SubscriptionSeverityNotFound"
8234//   The value specified for the event severity was not one of the allowed values,
8235//   or it specified a severity that does not apply to the specified source type.
8236//   The allowed values are ERROR and INFO.
8237//
8238//   * ErrCodeSourceNotFoundFault "SourceNotFound"
8239//   The specified Amazon Redshift event source could not be found.
8240//
8241//   * ErrCodeInvalidSubscriptionStateFault "InvalidSubscriptionStateFault"
8242//   The subscription request is invalid because it is a duplicate request. This
8243//   subscription request is already in progress.
8244//
8245// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyEventSubscription
8246func (c *Redshift) ModifyEventSubscription(input *ModifyEventSubscriptionInput) (*ModifyEventSubscriptionOutput, error) {
8247	req, out := c.ModifyEventSubscriptionRequest(input)
8248	return out, req.Send()
8249}
8250
8251// ModifyEventSubscriptionWithContext is the same as ModifyEventSubscription with the addition of
8252// the ability to pass a context and additional request options.
8253//
8254// See ModifyEventSubscription for details on how to use this API operation.
8255//
8256// The context must be non-nil and will be used for request cancellation. If
8257// the context is nil a panic will occur. In the future the SDK may create
8258// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8259// for more information on using Contexts.
8260func (c *Redshift) ModifyEventSubscriptionWithContext(ctx aws.Context, input *ModifyEventSubscriptionInput, opts ...request.Option) (*ModifyEventSubscriptionOutput, error) {
8261	req, out := c.ModifyEventSubscriptionRequest(input)
8262	req.SetContext(ctx)
8263	req.ApplyOptions(opts...)
8264	return out, req.Send()
8265}
8266
8267const opModifyScheduledAction = "ModifyScheduledAction"
8268
8269// ModifyScheduledActionRequest generates a "aws/request.Request" representing the
8270// client's request for the ModifyScheduledAction operation. The "output" return
8271// value will be populated with the request's response once the request completes
8272// successfully.
8273//
8274// Use "Send" method on the returned Request to send the API call to the service.
8275// the "output" return value is not valid until after Send returns without error.
8276//
8277// See ModifyScheduledAction for more information on using the ModifyScheduledAction
8278// API call, and error handling.
8279//
8280// This method is useful when you want to inject custom logic or configuration
8281// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8282//
8283//
8284//    // Example sending a request using the ModifyScheduledActionRequest method.
8285//    req, resp := client.ModifyScheduledActionRequest(params)
8286//
8287//    err := req.Send()
8288//    if err == nil { // resp is now filled
8289//        fmt.Println(resp)
8290//    }
8291//
8292// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyScheduledAction
8293func (c *Redshift) ModifyScheduledActionRequest(input *ModifyScheduledActionInput) (req *request.Request, output *ModifyScheduledActionOutput) {
8294	op := &request.Operation{
8295		Name:       opModifyScheduledAction,
8296		HTTPMethod: "POST",
8297		HTTPPath:   "/",
8298	}
8299
8300	if input == nil {
8301		input = &ModifyScheduledActionInput{}
8302	}
8303
8304	output = &ModifyScheduledActionOutput{}
8305	req = c.newRequest(op, input, output)
8306	return
8307}
8308
8309// ModifyScheduledAction API operation for Amazon Redshift.
8310//
8311// Modifies a scheduled action.
8312//
8313// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8314// with awserr.Error's Code and Message methods to get detailed information about
8315// the error.
8316//
8317// See the AWS API reference guide for Amazon Redshift's
8318// API operation ModifyScheduledAction for usage and error information.
8319//
8320// Returned Error Codes:
8321//   * ErrCodeScheduledActionNotFoundFault "ScheduledActionNotFound"
8322//   The scheduled action cannot be found.
8323//
8324//   * ErrCodeScheduledActionTypeUnsupportedFault "ScheduledActionTypeUnsupported"
8325//   The action type specified for a scheduled action is not supported.
8326//
8327//   * ErrCodeInvalidScheduleFault "InvalidSchedule"
8328//   The schedule you submitted isn't valid.
8329//
8330//   * ErrCodeInvalidScheduledActionFault "InvalidScheduledAction"
8331//   The scheduled action is not valid.
8332//
8333//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
8334//   Your account is not authorized to perform the requested operation.
8335//
8336// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyScheduledAction
8337func (c *Redshift) ModifyScheduledAction(input *ModifyScheduledActionInput) (*ModifyScheduledActionOutput, error) {
8338	req, out := c.ModifyScheduledActionRequest(input)
8339	return out, req.Send()
8340}
8341
8342// ModifyScheduledActionWithContext is the same as ModifyScheduledAction with the addition of
8343// the ability to pass a context and additional request options.
8344//
8345// See ModifyScheduledAction for details on how to use this API operation.
8346//
8347// The context must be non-nil and will be used for request cancellation. If
8348// the context is nil a panic will occur. In the future the SDK may create
8349// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8350// for more information on using Contexts.
8351func (c *Redshift) ModifyScheduledActionWithContext(ctx aws.Context, input *ModifyScheduledActionInput, opts ...request.Option) (*ModifyScheduledActionOutput, error) {
8352	req, out := c.ModifyScheduledActionRequest(input)
8353	req.SetContext(ctx)
8354	req.ApplyOptions(opts...)
8355	return out, req.Send()
8356}
8357
8358const opModifySnapshotCopyRetentionPeriod = "ModifySnapshotCopyRetentionPeriod"
8359
8360// ModifySnapshotCopyRetentionPeriodRequest generates a "aws/request.Request" representing the
8361// client's request for the ModifySnapshotCopyRetentionPeriod operation. The "output" return
8362// value will be populated with the request's response once the request completes
8363// successfully.
8364//
8365// Use "Send" method on the returned Request to send the API call to the service.
8366// the "output" return value is not valid until after Send returns without error.
8367//
8368// See ModifySnapshotCopyRetentionPeriod for more information on using the ModifySnapshotCopyRetentionPeriod
8369// API call, and error handling.
8370//
8371// This method is useful when you want to inject custom logic or configuration
8372// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8373//
8374//
8375//    // Example sending a request using the ModifySnapshotCopyRetentionPeriodRequest method.
8376//    req, resp := client.ModifySnapshotCopyRetentionPeriodRequest(params)
8377//
8378//    err := req.Send()
8379//    if err == nil { // resp is now filled
8380//        fmt.Println(resp)
8381//    }
8382//
8383// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifySnapshotCopyRetentionPeriod
8384func (c *Redshift) ModifySnapshotCopyRetentionPeriodRequest(input *ModifySnapshotCopyRetentionPeriodInput) (req *request.Request, output *ModifySnapshotCopyRetentionPeriodOutput) {
8385	op := &request.Operation{
8386		Name:       opModifySnapshotCopyRetentionPeriod,
8387		HTTPMethod: "POST",
8388		HTTPPath:   "/",
8389	}
8390
8391	if input == nil {
8392		input = &ModifySnapshotCopyRetentionPeriodInput{}
8393	}
8394
8395	output = &ModifySnapshotCopyRetentionPeriodOutput{}
8396	req = c.newRequest(op, input, output)
8397	return
8398}
8399
8400// ModifySnapshotCopyRetentionPeriod API operation for Amazon Redshift.
8401//
8402// Modifies the number of days to retain snapshots in the destination AWS Region
8403// after they are copied from the source AWS Region. By default, this operation
8404// only changes the retention period of copied automated snapshots. The retention
8405// periods for both new and existing copied automated snapshots are updated
8406// with the new retention period. You can set the manual option to change only
8407// the retention periods of copied manual snapshots. If you set this option,
8408// only newly copied manual snapshots have the new retention period.
8409//
8410// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8411// with awserr.Error's Code and Message methods to get detailed information about
8412// the error.
8413//
8414// See the AWS API reference guide for Amazon Redshift's
8415// API operation ModifySnapshotCopyRetentionPeriod for usage and error information.
8416//
8417// Returned Error Codes:
8418//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
8419//   The ClusterIdentifier parameter does not refer to an existing cluster.
8420//
8421//   * ErrCodeSnapshotCopyDisabledFault "SnapshotCopyDisabledFault"
8422//   Cross-region snapshot copy was temporarily disabled. Try your request again.
8423//
8424//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
8425//   Your account is not authorized to perform the requested operation.
8426//
8427//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
8428//   The specified cluster is not in the available state.
8429//
8430//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
8431//   The retention period specified is either in the past or is not a valid value.
8432//
8433//   The value must be either -1 or an integer between 1 and 3,653.
8434//
8435// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifySnapshotCopyRetentionPeriod
8436func (c *Redshift) ModifySnapshotCopyRetentionPeriod(input *ModifySnapshotCopyRetentionPeriodInput) (*ModifySnapshotCopyRetentionPeriodOutput, error) {
8437	req, out := c.ModifySnapshotCopyRetentionPeriodRequest(input)
8438	return out, req.Send()
8439}
8440
8441// ModifySnapshotCopyRetentionPeriodWithContext is the same as ModifySnapshotCopyRetentionPeriod with the addition of
8442// the ability to pass a context and additional request options.
8443//
8444// See ModifySnapshotCopyRetentionPeriod for details on how to use this API operation.
8445//
8446// The context must be non-nil and will be used for request cancellation. If
8447// the context is nil a panic will occur. In the future the SDK may create
8448// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8449// for more information on using Contexts.
8450func (c *Redshift) ModifySnapshotCopyRetentionPeriodWithContext(ctx aws.Context, input *ModifySnapshotCopyRetentionPeriodInput, opts ...request.Option) (*ModifySnapshotCopyRetentionPeriodOutput, error) {
8451	req, out := c.ModifySnapshotCopyRetentionPeriodRequest(input)
8452	req.SetContext(ctx)
8453	req.ApplyOptions(opts...)
8454	return out, req.Send()
8455}
8456
8457const opModifySnapshotSchedule = "ModifySnapshotSchedule"
8458
8459// ModifySnapshotScheduleRequest generates a "aws/request.Request" representing the
8460// client's request for the ModifySnapshotSchedule operation. The "output" return
8461// value will be populated with the request's response once the request completes
8462// successfully.
8463//
8464// Use "Send" method on the returned Request to send the API call to the service.
8465// the "output" return value is not valid until after Send returns without error.
8466//
8467// See ModifySnapshotSchedule for more information on using the ModifySnapshotSchedule
8468// API call, and error handling.
8469//
8470// This method is useful when you want to inject custom logic or configuration
8471// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8472//
8473//
8474//    // Example sending a request using the ModifySnapshotScheduleRequest method.
8475//    req, resp := client.ModifySnapshotScheduleRequest(params)
8476//
8477//    err := req.Send()
8478//    if err == nil { // resp is now filled
8479//        fmt.Println(resp)
8480//    }
8481//
8482// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifySnapshotSchedule
8483func (c *Redshift) ModifySnapshotScheduleRequest(input *ModifySnapshotScheduleInput) (req *request.Request, output *ModifySnapshotScheduleOutput) {
8484	op := &request.Operation{
8485		Name:       opModifySnapshotSchedule,
8486		HTTPMethod: "POST",
8487		HTTPPath:   "/",
8488	}
8489
8490	if input == nil {
8491		input = &ModifySnapshotScheduleInput{}
8492	}
8493
8494	output = &ModifySnapshotScheduleOutput{}
8495	req = c.newRequest(op, input, output)
8496	return
8497}
8498
8499// ModifySnapshotSchedule API operation for Amazon Redshift.
8500//
8501// Modifies a snapshot schedule. Any schedule associated with a cluster is modified
8502// asynchronously.
8503//
8504// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8505// with awserr.Error's Code and Message methods to get detailed information about
8506// the error.
8507//
8508// See the AWS API reference guide for Amazon Redshift's
8509// API operation ModifySnapshotSchedule for usage and error information.
8510//
8511// Returned Error Codes:
8512//   * ErrCodeInvalidScheduleFault "InvalidSchedule"
8513//   The schedule you submitted isn't valid.
8514//
8515//   * ErrCodeSnapshotScheduleNotFoundFault "SnapshotScheduleNotFound"
8516//   We could not find the specified snapshot schedule.
8517//
8518//   * ErrCodeSnapshotScheduleUpdateInProgressFault "SnapshotScheduleUpdateInProgress"
8519//   The specified snapshot schedule is already being updated.
8520//
8521// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifySnapshotSchedule
8522func (c *Redshift) ModifySnapshotSchedule(input *ModifySnapshotScheduleInput) (*ModifySnapshotScheduleOutput, error) {
8523	req, out := c.ModifySnapshotScheduleRequest(input)
8524	return out, req.Send()
8525}
8526
8527// ModifySnapshotScheduleWithContext is the same as ModifySnapshotSchedule with the addition of
8528// the ability to pass a context and additional request options.
8529//
8530// See ModifySnapshotSchedule for details on how to use this API operation.
8531//
8532// The context must be non-nil and will be used for request cancellation. If
8533// the context is nil a panic will occur. In the future the SDK may create
8534// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8535// for more information on using Contexts.
8536func (c *Redshift) ModifySnapshotScheduleWithContext(ctx aws.Context, input *ModifySnapshotScheduleInput, opts ...request.Option) (*ModifySnapshotScheduleOutput, error) {
8537	req, out := c.ModifySnapshotScheduleRequest(input)
8538	req.SetContext(ctx)
8539	req.ApplyOptions(opts...)
8540	return out, req.Send()
8541}
8542
8543const opModifyUsageLimit = "ModifyUsageLimit"
8544
8545// ModifyUsageLimitRequest generates a "aws/request.Request" representing the
8546// client's request for the ModifyUsageLimit operation. The "output" return
8547// value will be populated with the request's response once the request completes
8548// successfully.
8549//
8550// Use "Send" method on the returned Request to send the API call to the service.
8551// the "output" return value is not valid until after Send returns without error.
8552//
8553// See ModifyUsageLimit for more information on using the ModifyUsageLimit
8554// API call, and error handling.
8555//
8556// This method is useful when you want to inject custom logic or configuration
8557// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8558//
8559//
8560//    // Example sending a request using the ModifyUsageLimitRequest method.
8561//    req, resp := client.ModifyUsageLimitRequest(params)
8562//
8563//    err := req.Send()
8564//    if err == nil { // resp is now filled
8565//        fmt.Println(resp)
8566//    }
8567//
8568// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyUsageLimit
8569func (c *Redshift) ModifyUsageLimitRequest(input *ModifyUsageLimitInput) (req *request.Request, output *ModifyUsageLimitOutput) {
8570	op := &request.Operation{
8571		Name:       opModifyUsageLimit,
8572		HTTPMethod: "POST",
8573		HTTPPath:   "/",
8574	}
8575
8576	if input == nil {
8577		input = &ModifyUsageLimitInput{}
8578	}
8579
8580	output = &ModifyUsageLimitOutput{}
8581	req = c.newRequest(op, input, output)
8582	return
8583}
8584
8585// ModifyUsageLimit API operation for Amazon Redshift.
8586//
8587// Modifies a usage limit in a cluster. You can't modify the feature type or
8588// period of a usage limit.
8589//
8590// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8591// with awserr.Error's Code and Message methods to get detailed information about
8592// the error.
8593//
8594// See the AWS API reference guide for Amazon Redshift's
8595// API operation ModifyUsageLimit for usage and error information.
8596//
8597// Returned Error Codes:
8598//   * ErrCodeInvalidUsageLimitFault "InvalidUsageLimit"
8599//   The usage limit is not valid.
8600//
8601//   * ErrCodeUsageLimitNotFoundFault "UsageLimitNotFound"
8602//   The usage limit identifier can't be found.
8603//
8604//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
8605//   The requested operation isn't supported.
8606//
8607// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyUsageLimit
8608func (c *Redshift) ModifyUsageLimit(input *ModifyUsageLimitInput) (*ModifyUsageLimitOutput, error) {
8609	req, out := c.ModifyUsageLimitRequest(input)
8610	return out, req.Send()
8611}
8612
8613// ModifyUsageLimitWithContext is the same as ModifyUsageLimit with the addition of
8614// the ability to pass a context and additional request options.
8615//
8616// See ModifyUsageLimit for details on how to use this API operation.
8617//
8618// The context must be non-nil and will be used for request cancellation. If
8619// the context is nil a panic will occur. In the future the SDK may create
8620// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8621// for more information on using Contexts.
8622func (c *Redshift) ModifyUsageLimitWithContext(ctx aws.Context, input *ModifyUsageLimitInput, opts ...request.Option) (*ModifyUsageLimitOutput, error) {
8623	req, out := c.ModifyUsageLimitRequest(input)
8624	req.SetContext(ctx)
8625	req.ApplyOptions(opts...)
8626	return out, req.Send()
8627}
8628
8629const opPauseCluster = "PauseCluster"
8630
8631// PauseClusterRequest generates a "aws/request.Request" representing the
8632// client's request for the PauseCluster operation. The "output" return
8633// value will be populated with the request's response once the request completes
8634// successfully.
8635//
8636// Use "Send" method on the returned Request to send the API call to the service.
8637// the "output" return value is not valid until after Send returns without error.
8638//
8639// See PauseCluster for more information on using the PauseCluster
8640// API call, and error handling.
8641//
8642// This method is useful when you want to inject custom logic or configuration
8643// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8644//
8645//
8646//    // Example sending a request using the PauseClusterRequest method.
8647//    req, resp := client.PauseClusterRequest(params)
8648//
8649//    err := req.Send()
8650//    if err == nil { // resp is now filled
8651//        fmt.Println(resp)
8652//    }
8653//
8654// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PauseCluster
8655func (c *Redshift) PauseClusterRequest(input *PauseClusterInput) (req *request.Request, output *PauseClusterOutput) {
8656	op := &request.Operation{
8657		Name:       opPauseCluster,
8658		HTTPMethod: "POST",
8659		HTTPPath:   "/",
8660	}
8661
8662	if input == nil {
8663		input = &PauseClusterInput{}
8664	}
8665
8666	output = &PauseClusterOutput{}
8667	req = c.newRequest(op, input, output)
8668	return
8669}
8670
8671// PauseCluster API operation for Amazon Redshift.
8672//
8673// Pauses a cluster.
8674//
8675// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8676// with awserr.Error's Code and Message methods to get detailed information about
8677// the error.
8678//
8679// See the AWS API reference guide for Amazon Redshift's
8680// API operation PauseCluster for usage and error information.
8681//
8682// Returned Error Codes:
8683//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
8684//   The ClusterIdentifier parameter does not refer to an existing cluster.
8685//
8686//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
8687//   The specified cluster is not in the available state.
8688//
8689// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PauseCluster
8690func (c *Redshift) PauseCluster(input *PauseClusterInput) (*PauseClusterOutput, error) {
8691	req, out := c.PauseClusterRequest(input)
8692	return out, req.Send()
8693}
8694
8695// PauseClusterWithContext is the same as PauseCluster with the addition of
8696// the ability to pass a context and additional request options.
8697//
8698// See PauseCluster for details on how to use this API operation.
8699//
8700// The context must be non-nil and will be used for request cancellation. If
8701// the context is nil a panic will occur. In the future the SDK may create
8702// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8703// for more information on using Contexts.
8704func (c *Redshift) PauseClusterWithContext(ctx aws.Context, input *PauseClusterInput, opts ...request.Option) (*PauseClusterOutput, error) {
8705	req, out := c.PauseClusterRequest(input)
8706	req.SetContext(ctx)
8707	req.ApplyOptions(opts...)
8708	return out, req.Send()
8709}
8710
8711const opPurchaseReservedNodeOffering = "PurchaseReservedNodeOffering"
8712
8713// PurchaseReservedNodeOfferingRequest generates a "aws/request.Request" representing the
8714// client's request for the PurchaseReservedNodeOffering operation. The "output" return
8715// value will be populated with the request's response once the request completes
8716// successfully.
8717//
8718// Use "Send" method on the returned Request to send the API call to the service.
8719// the "output" return value is not valid until after Send returns without error.
8720//
8721// See PurchaseReservedNodeOffering for more information on using the PurchaseReservedNodeOffering
8722// API call, and error handling.
8723//
8724// This method is useful when you want to inject custom logic or configuration
8725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8726//
8727//
8728//    // Example sending a request using the PurchaseReservedNodeOfferingRequest method.
8729//    req, resp := client.PurchaseReservedNodeOfferingRequest(params)
8730//
8731//    err := req.Send()
8732//    if err == nil { // resp is now filled
8733//        fmt.Println(resp)
8734//    }
8735//
8736// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PurchaseReservedNodeOffering
8737func (c *Redshift) PurchaseReservedNodeOfferingRequest(input *PurchaseReservedNodeOfferingInput) (req *request.Request, output *PurchaseReservedNodeOfferingOutput) {
8738	op := &request.Operation{
8739		Name:       opPurchaseReservedNodeOffering,
8740		HTTPMethod: "POST",
8741		HTTPPath:   "/",
8742	}
8743
8744	if input == nil {
8745		input = &PurchaseReservedNodeOfferingInput{}
8746	}
8747
8748	output = &PurchaseReservedNodeOfferingOutput{}
8749	req = c.newRequest(op, input, output)
8750	return
8751}
8752
8753// PurchaseReservedNodeOffering API operation for Amazon Redshift.
8754//
8755// Allows you to purchase reserved nodes. Amazon Redshift offers a predefined
8756// set of reserved node offerings. You can purchase one or more of the offerings.
8757// You can call the DescribeReservedNodeOfferings API to obtain the available
8758// reserved node offerings. You can call this API by providing a specific reserved
8759// node offering and the number of nodes you want to reserve.
8760//
8761// For more information about reserved node offerings, go to Purchasing Reserved
8762// Nodes (https://docs.aws.amazon.com/redshift/latest/mgmt/purchase-reserved-node-instance.html)
8763// in the Amazon Redshift Cluster Management Guide.
8764//
8765// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8766// with awserr.Error's Code and Message methods to get detailed information about
8767// the error.
8768//
8769// See the AWS API reference guide for Amazon Redshift's
8770// API operation PurchaseReservedNodeOffering for usage and error information.
8771//
8772// Returned Error Codes:
8773//   * ErrCodeReservedNodeOfferingNotFoundFault "ReservedNodeOfferingNotFound"
8774//   Specified offering does not exist.
8775//
8776//   * ErrCodeReservedNodeAlreadyExistsFault "ReservedNodeAlreadyExists"
8777//   User already has a reservation with the given identifier.
8778//
8779//   * ErrCodeReservedNodeQuotaExceededFault "ReservedNodeQuotaExceeded"
8780//   Request would exceed the user's compute node quota. For information about
8781//   increasing your quota, go to Limits in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
8782//   in the Amazon Redshift Cluster Management Guide.
8783//
8784//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
8785//   The requested operation isn't supported.
8786//
8787// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PurchaseReservedNodeOffering
8788func (c *Redshift) PurchaseReservedNodeOffering(input *PurchaseReservedNodeOfferingInput) (*PurchaseReservedNodeOfferingOutput, error) {
8789	req, out := c.PurchaseReservedNodeOfferingRequest(input)
8790	return out, req.Send()
8791}
8792
8793// PurchaseReservedNodeOfferingWithContext is the same as PurchaseReservedNodeOffering with the addition of
8794// the ability to pass a context and additional request options.
8795//
8796// See PurchaseReservedNodeOffering for details on how to use this API operation.
8797//
8798// The context must be non-nil and will be used for request cancellation. If
8799// the context is nil a panic will occur. In the future the SDK may create
8800// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8801// for more information on using Contexts.
8802func (c *Redshift) PurchaseReservedNodeOfferingWithContext(ctx aws.Context, input *PurchaseReservedNodeOfferingInput, opts ...request.Option) (*PurchaseReservedNodeOfferingOutput, error) {
8803	req, out := c.PurchaseReservedNodeOfferingRequest(input)
8804	req.SetContext(ctx)
8805	req.ApplyOptions(opts...)
8806	return out, req.Send()
8807}
8808
8809const opRebootCluster = "RebootCluster"
8810
8811// RebootClusterRequest generates a "aws/request.Request" representing the
8812// client's request for the RebootCluster operation. The "output" return
8813// value will be populated with the request's response once the request completes
8814// successfully.
8815//
8816// Use "Send" method on the returned Request to send the API call to the service.
8817// the "output" return value is not valid until after Send returns without error.
8818//
8819// See RebootCluster for more information on using the RebootCluster
8820// API call, and error handling.
8821//
8822// This method is useful when you want to inject custom logic or configuration
8823// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8824//
8825//
8826//    // Example sending a request using the RebootClusterRequest method.
8827//    req, resp := client.RebootClusterRequest(params)
8828//
8829//    err := req.Send()
8830//    if err == nil { // resp is now filled
8831//        fmt.Println(resp)
8832//    }
8833//
8834// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RebootCluster
8835func (c *Redshift) RebootClusterRequest(input *RebootClusterInput) (req *request.Request, output *RebootClusterOutput) {
8836	op := &request.Operation{
8837		Name:       opRebootCluster,
8838		HTTPMethod: "POST",
8839		HTTPPath:   "/",
8840	}
8841
8842	if input == nil {
8843		input = &RebootClusterInput{}
8844	}
8845
8846	output = &RebootClusterOutput{}
8847	req = c.newRequest(op, input, output)
8848	return
8849}
8850
8851// RebootCluster API operation for Amazon Redshift.
8852//
8853// Reboots a cluster. This action is taken as soon as possible. It results in
8854// a momentary outage to the cluster, during which the cluster status is set
8855// to rebooting. A cluster event is created when the reboot is completed. Any
8856// pending cluster modifications (see ModifyCluster) are applied at this reboot.
8857// For more information about managing clusters, go to Amazon Redshift Clusters
8858// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
8859// in the Amazon Redshift Cluster Management Guide.
8860//
8861// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8862// with awserr.Error's Code and Message methods to get detailed information about
8863// the error.
8864//
8865// See the AWS API reference guide for Amazon Redshift's
8866// API operation RebootCluster for usage and error information.
8867//
8868// Returned Error Codes:
8869//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
8870//   The specified cluster is not in the available state.
8871//
8872//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
8873//   The ClusterIdentifier parameter does not refer to an existing cluster.
8874//
8875// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RebootCluster
8876func (c *Redshift) RebootCluster(input *RebootClusterInput) (*RebootClusterOutput, error) {
8877	req, out := c.RebootClusterRequest(input)
8878	return out, req.Send()
8879}
8880
8881// RebootClusterWithContext is the same as RebootCluster with the addition of
8882// the ability to pass a context and additional request options.
8883//
8884// See RebootCluster for details on how to use this API operation.
8885//
8886// The context must be non-nil and will be used for request cancellation. If
8887// the context is nil a panic will occur. In the future the SDK may create
8888// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8889// for more information on using Contexts.
8890func (c *Redshift) RebootClusterWithContext(ctx aws.Context, input *RebootClusterInput, opts ...request.Option) (*RebootClusterOutput, error) {
8891	req, out := c.RebootClusterRequest(input)
8892	req.SetContext(ctx)
8893	req.ApplyOptions(opts...)
8894	return out, req.Send()
8895}
8896
8897const opResetClusterParameterGroup = "ResetClusterParameterGroup"
8898
8899// ResetClusterParameterGroupRequest generates a "aws/request.Request" representing the
8900// client's request for the ResetClusterParameterGroup operation. The "output" return
8901// value will be populated with the request's response once the request completes
8902// successfully.
8903//
8904// Use "Send" method on the returned Request to send the API call to the service.
8905// the "output" return value is not valid until after Send returns without error.
8906//
8907// See ResetClusterParameterGroup for more information on using the ResetClusterParameterGroup
8908// API call, and error handling.
8909//
8910// This method is useful when you want to inject custom logic or configuration
8911// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8912//
8913//
8914//    // Example sending a request using the ResetClusterParameterGroupRequest method.
8915//    req, resp := client.ResetClusterParameterGroupRequest(params)
8916//
8917//    err := req.Send()
8918//    if err == nil { // resp is now filled
8919//        fmt.Println(resp)
8920//    }
8921//
8922// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResetClusterParameterGroup
8923func (c *Redshift) ResetClusterParameterGroupRequest(input *ResetClusterParameterGroupInput) (req *request.Request, output *ClusterParameterGroupNameMessage) {
8924	op := &request.Operation{
8925		Name:       opResetClusterParameterGroup,
8926		HTTPMethod: "POST",
8927		HTTPPath:   "/",
8928	}
8929
8930	if input == nil {
8931		input = &ResetClusterParameterGroupInput{}
8932	}
8933
8934	output = &ClusterParameterGroupNameMessage{}
8935	req = c.newRequest(op, input, output)
8936	return
8937}
8938
8939// ResetClusterParameterGroup API operation for Amazon Redshift.
8940//
8941// Sets one or more parameters of the specified parameter group to their default
8942// values and sets the source values of the parameters to "engine-default".
8943// To reset the entire parameter group specify the ResetAllParameters parameter.
8944// For parameter changes to take effect you must reboot any associated clusters.
8945//
8946// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8947// with awserr.Error's Code and Message methods to get detailed information about
8948// the error.
8949//
8950// See the AWS API reference guide for Amazon Redshift's
8951// API operation ResetClusterParameterGroup for usage and error information.
8952//
8953// Returned Error Codes:
8954//   * ErrCodeInvalidClusterParameterGroupStateFault "InvalidClusterParameterGroupState"
8955//   The cluster parameter group action can not be completed because another task
8956//   is in progress that involves the parameter group. Wait a few moments and
8957//   try the operation again.
8958//
8959//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
8960//   The parameter group name does not refer to an existing parameter group.
8961//
8962// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResetClusterParameterGroup
8963func (c *Redshift) ResetClusterParameterGroup(input *ResetClusterParameterGroupInput) (*ClusterParameterGroupNameMessage, error) {
8964	req, out := c.ResetClusterParameterGroupRequest(input)
8965	return out, req.Send()
8966}
8967
8968// ResetClusterParameterGroupWithContext is the same as ResetClusterParameterGroup with the addition of
8969// the ability to pass a context and additional request options.
8970//
8971// See ResetClusterParameterGroup for details on how to use this API operation.
8972//
8973// The context must be non-nil and will be used for request cancellation. If
8974// the context is nil a panic will occur. In the future the SDK may create
8975// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8976// for more information on using Contexts.
8977func (c *Redshift) ResetClusterParameterGroupWithContext(ctx aws.Context, input *ResetClusterParameterGroupInput, opts ...request.Option) (*ClusterParameterGroupNameMessage, error) {
8978	req, out := c.ResetClusterParameterGroupRequest(input)
8979	req.SetContext(ctx)
8980	req.ApplyOptions(opts...)
8981	return out, req.Send()
8982}
8983
8984const opResizeCluster = "ResizeCluster"
8985
8986// ResizeClusterRequest generates a "aws/request.Request" representing the
8987// client's request for the ResizeCluster operation. The "output" return
8988// value will be populated with the request's response once the request completes
8989// successfully.
8990//
8991// Use "Send" method on the returned Request to send the API call to the service.
8992// the "output" return value is not valid until after Send returns without error.
8993//
8994// See ResizeCluster for more information on using the ResizeCluster
8995// API call, and error handling.
8996//
8997// This method is useful when you want to inject custom logic or configuration
8998// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8999//
9000//
9001//    // Example sending a request using the ResizeClusterRequest method.
9002//    req, resp := client.ResizeClusterRequest(params)
9003//
9004//    err := req.Send()
9005//    if err == nil { // resp is now filled
9006//        fmt.Println(resp)
9007//    }
9008//
9009// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResizeCluster
9010func (c *Redshift) ResizeClusterRequest(input *ResizeClusterInput) (req *request.Request, output *ResizeClusterOutput) {
9011	op := &request.Operation{
9012		Name:       opResizeCluster,
9013		HTTPMethod: "POST",
9014		HTTPPath:   "/",
9015	}
9016
9017	if input == nil {
9018		input = &ResizeClusterInput{}
9019	}
9020
9021	output = &ResizeClusterOutput{}
9022	req = c.newRequest(op, input, output)
9023	return
9024}
9025
9026// ResizeCluster API operation for Amazon Redshift.
9027//
9028// Changes the size of the cluster. You can change the cluster's type, or change
9029// the number or type of nodes. The default behavior is to use the elastic resize
9030// method. With an elastic resize, your cluster is available for read and write
9031// operations more quickly than with the classic resize method.
9032//
9033// Elastic resize operations have the following restrictions:
9034//
9035//    * You can only resize clusters of the following types: dc2.large dc2.8xlarge
9036//    ds2.xlarge ds2.8xlarge ra3.4xlarge ra3.16xlarge
9037//
9038//    * The type of nodes that you add must match the node type for the cluster.
9039//
9040// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9041// with awserr.Error's Code and Message methods to get detailed information about
9042// the error.
9043//
9044// See the AWS API reference guide for Amazon Redshift's
9045// API operation ResizeCluster for usage and error information.
9046//
9047// Returned Error Codes:
9048//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
9049//   The specified cluster is not in the available state.
9050//
9051//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
9052//   The ClusterIdentifier parameter does not refer to an existing cluster.
9053//
9054//   * ErrCodeNumberOfNodesQuotaExceededFault "NumberOfNodesQuotaExceeded"
9055//   The operation would exceed the number of nodes allotted to the account. For
9056//   information about increasing your quota, go to Limits in Amazon Redshift
9057//   (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
9058//   in the Amazon Redshift Cluster Management Guide.
9059//
9060//   * ErrCodeNumberOfNodesPerClusterLimitExceededFault "NumberOfNodesPerClusterLimitExceeded"
9061//   The operation would exceed the number of nodes allowed for a cluster.
9062//
9063//   * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacity"
9064//   The number of nodes specified exceeds the allotted capacity of the cluster.
9065//
9066//   * ErrCodeUnsupportedOptionFault "UnsupportedOptionFault"
9067//   A request option was specified that is not supported.
9068//
9069//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
9070//   The requested operation isn't supported.
9071//
9072//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
9073//   Your account is not authorized to perform the requested operation.
9074//
9075//   * ErrCodeLimitExceededFault "LimitExceededFault"
9076//   The encryption key has exceeded its grant limit in AWS KMS.
9077//
9078// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResizeCluster
9079func (c *Redshift) ResizeCluster(input *ResizeClusterInput) (*ResizeClusterOutput, error) {
9080	req, out := c.ResizeClusterRequest(input)
9081	return out, req.Send()
9082}
9083
9084// ResizeClusterWithContext is the same as ResizeCluster with the addition of
9085// the ability to pass a context and additional request options.
9086//
9087// See ResizeCluster for details on how to use this API operation.
9088//
9089// The context must be non-nil and will be used for request cancellation. If
9090// the context is nil a panic will occur. In the future the SDK may create
9091// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9092// for more information on using Contexts.
9093func (c *Redshift) ResizeClusterWithContext(ctx aws.Context, input *ResizeClusterInput, opts ...request.Option) (*ResizeClusterOutput, error) {
9094	req, out := c.ResizeClusterRequest(input)
9095	req.SetContext(ctx)
9096	req.ApplyOptions(opts...)
9097	return out, req.Send()
9098}
9099
9100const opRestoreFromClusterSnapshot = "RestoreFromClusterSnapshot"
9101
9102// RestoreFromClusterSnapshotRequest generates a "aws/request.Request" representing the
9103// client's request for the RestoreFromClusterSnapshot operation. The "output" return
9104// value will be populated with the request's response once the request completes
9105// successfully.
9106//
9107// Use "Send" method on the returned Request to send the API call to the service.
9108// the "output" return value is not valid until after Send returns without error.
9109//
9110// See RestoreFromClusterSnapshot for more information on using the RestoreFromClusterSnapshot
9111// API call, and error handling.
9112//
9113// This method is useful when you want to inject custom logic or configuration
9114// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9115//
9116//
9117//    // Example sending a request using the RestoreFromClusterSnapshotRequest method.
9118//    req, resp := client.RestoreFromClusterSnapshotRequest(params)
9119//
9120//    err := req.Send()
9121//    if err == nil { // resp is now filled
9122//        fmt.Println(resp)
9123//    }
9124//
9125// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreFromClusterSnapshot
9126func (c *Redshift) RestoreFromClusterSnapshotRequest(input *RestoreFromClusterSnapshotInput) (req *request.Request, output *RestoreFromClusterSnapshotOutput) {
9127	op := &request.Operation{
9128		Name:       opRestoreFromClusterSnapshot,
9129		HTTPMethod: "POST",
9130		HTTPPath:   "/",
9131	}
9132
9133	if input == nil {
9134		input = &RestoreFromClusterSnapshotInput{}
9135	}
9136
9137	output = &RestoreFromClusterSnapshotOutput{}
9138	req = c.newRequest(op, input, output)
9139	return
9140}
9141
9142// RestoreFromClusterSnapshot API operation for Amazon Redshift.
9143//
9144// Creates a new cluster from a snapshot. By default, Amazon Redshift creates
9145// the resulting cluster with the same configuration as the original cluster
9146// from which the snapshot was created, except that the new cluster is created
9147// with the default cluster security and parameter groups. After Amazon Redshift
9148// creates the cluster, you can use the ModifyCluster API to associate a different
9149// security group and different parameter group with the restored cluster. If
9150// you are using a DS node type, you can also choose to change to another DS
9151// node type of the same size during restore.
9152//
9153// If you restore a cluster into a VPC, you must provide a cluster subnet group
9154// where you want the cluster restored.
9155//
9156// For more information about working with snapshots, go to Amazon Redshift
9157// Snapshots (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
9158// in the Amazon Redshift Cluster Management Guide.
9159//
9160// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9161// with awserr.Error's Code and Message methods to get detailed information about
9162// the error.
9163//
9164// See the AWS API reference guide for Amazon Redshift's
9165// API operation RestoreFromClusterSnapshot for usage and error information.
9166//
9167// Returned Error Codes:
9168//   * ErrCodeAccessToSnapshotDeniedFault "AccessToSnapshotDenied"
9169//   The owner of the specified snapshot has not authorized your account to access
9170//   the snapshot.
9171//
9172//   * ErrCodeClusterAlreadyExistsFault "ClusterAlreadyExists"
9173//   The account already has a cluster with the given identifier.
9174//
9175//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
9176//   The snapshot identifier does not refer to an existing cluster snapshot.
9177//
9178//   * ErrCodeClusterQuotaExceededFault "ClusterQuotaExceeded"
9179//   The request would exceed the allowed number of cluster instances for this
9180//   account. For information about increasing your quota, go to Limits in Amazon
9181//   Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
9182//   in the Amazon Redshift Cluster Management Guide.
9183//
9184//   * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacity"
9185//   The number of nodes specified exceeds the allotted capacity of the cluster.
9186//
9187//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
9188//   The specified cluster snapshot is not in the available state, or other accounts
9189//   are authorized to access the snapshot.
9190//
9191//   * ErrCodeInvalidRestoreFault "InvalidRestore"
9192//   The restore is invalid.
9193//
9194//   * ErrCodeNumberOfNodesQuotaExceededFault "NumberOfNodesQuotaExceeded"
9195//   The operation would exceed the number of nodes allotted to the account. For
9196//   information about increasing your quota, go to Limits in Amazon Redshift
9197//   (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
9198//   in the Amazon Redshift Cluster Management Guide.
9199//
9200//   * ErrCodeNumberOfNodesPerClusterLimitExceededFault "NumberOfNodesPerClusterLimitExceeded"
9201//   The operation would exceed the number of nodes allowed for a cluster.
9202//
9203//   * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault"
9204//   The cluster subnet group does not cover all Availability Zones.
9205//
9206//   * ErrCodeInvalidClusterSubnetGroupStateFault "InvalidClusterSubnetGroupStateFault"
9207//   The cluster subnet group cannot be deleted because it is in use.
9208//
9209//   * ErrCodeInvalidSubnet "InvalidSubnet"
9210//   The requested subnet is not valid, or not all of the subnets are in the same
9211//   VPC.
9212//
9213//   * ErrCodeClusterSubnetGroupNotFoundFault "ClusterSubnetGroupNotFoundFault"
9214//   The cluster subnet group name does not refer to an existing cluster subnet
9215//   group.
9216//
9217//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
9218//   Your account is not authorized to perform the requested operation.
9219//
9220//   * ErrCodeHsmClientCertificateNotFoundFault "HsmClientCertificateNotFoundFault"
9221//   There is no Amazon Redshift HSM client certificate with the specified identifier.
9222//
9223//   * ErrCodeHsmConfigurationNotFoundFault "HsmConfigurationNotFoundFault"
9224//   There is no Amazon Redshift HSM configuration with the specified identifier.
9225//
9226//   * ErrCodeInvalidElasticIpFault "InvalidElasticIpFault"
9227//   The Elastic IP (EIP) is invalid or cannot be found.
9228//
9229//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
9230//   The parameter group name does not refer to an existing parameter group.
9231//
9232//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
9233//   The cluster security group name does not refer to an existing cluster security
9234//   group.
9235//
9236//   * ErrCodeLimitExceededFault "LimitExceededFault"
9237//   The encryption key has exceeded its grant limit in AWS KMS.
9238//
9239//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
9240//   The request cannot be completed because a dependent service is throttling
9241//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
9242//
9243//   * ErrCodeInvalidClusterTrackFault "InvalidClusterTrack"
9244//   The provided cluster track name is not valid.
9245//
9246//   * ErrCodeSnapshotScheduleNotFoundFault "SnapshotScheduleNotFound"
9247//   We could not find the specified snapshot schedule.
9248//
9249//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
9250//   You have exceeded the number of tags allowed.
9251//
9252//   * ErrCodeInvalidTagFault "InvalidTagFault"
9253//   The tag is invalid.
9254//
9255// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreFromClusterSnapshot
9256func (c *Redshift) RestoreFromClusterSnapshot(input *RestoreFromClusterSnapshotInput) (*RestoreFromClusterSnapshotOutput, error) {
9257	req, out := c.RestoreFromClusterSnapshotRequest(input)
9258	return out, req.Send()
9259}
9260
9261// RestoreFromClusterSnapshotWithContext is the same as RestoreFromClusterSnapshot with the addition of
9262// the ability to pass a context and additional request options.
9263//
9264// See RestoreFromClusterSnapshot for details on how to use this API operation.
9265//
9266// The context must be non-nil and will be used for request cancellation. If
9267// the context is nil a panic will occur. In the future the SDK may create
9268// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9269// for more information on using Contexts.
9270func (c *Redshift) RestoreFromClusterSnapshotWithContext(ctx aws.Context, input *RestoreFromClusterSnapshotInput, opts ...request.Option) (*RestoreFromClusterSnapshotOutput, error) {
9271	req, out := c.RestoreFromClusterSnapshotRequest(input)
9272	req.SetContext(ctx)
9273	req.ApplyOptions(opts...)
9274	return out, req.Send()
9275}
9276
9277const opRestoreTableFromClusterSnapshot = "RestoreTableFromClusterSnapshot"
9278
9279// RestoreTableFromClusterSnapshotRequest generates a "aws/request.Request" representing the
9280// client's request for the RestoreTableFromClusterSnapshot operation. The "output" return
9281// value will be populated with the request's response once the request completes
9282// successfully.
9283//
9284// Use "Send" method on the returned Request to send the API call to the service.
9285// the "output" return value is not valid until after Send returns without error.
9286//
9287// See RestoreTableFromClusterSnapshot for more information on using the RestoreTableFromClusterSnapshot
9288// API call, and error handling.
9289//
9290// This method is useful when you want to inject custom logic or configuration
9291// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9292//
9293//
9294//    // Example sending a request using the RestoreTableFromClusterSnapshotRequest method.
9295//    req, resp := client.RestoreTableFromClusterSnapshotRequest(params)
9296//
9297//    err := req.Send()
9298//    if err == nil { // resp is now filled
9299//        fmt.Println(resp)
9300//    }
9301//
9302// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreTableFromClusterSnapshot
9303func (c *Redshift) RestoreTableFromClusterSnapshotRequest(input *RestoreTableFromClusterSnapshotInput) (req *request.Request, output *RestoreTableFromClusterSnapshotOutput) {
9304	op := &request.Operation{
9305		Name:       opRestoreTableFromClusterSnapshot,
9306		HTTPMethod: "POST",
9307		HTTPPath:   "/",
9308	}
9309
9310	if input == nil {
9311		input = &RestoreTableFromClusterSnapshotInput{}
9312	}
9313
9314	output = &RestoreTableFromClusterSnapshotOutput{}
9315	req = c.newRequest(op, input, output)
9316	return
9317}
9318
9319// RestoreTableFromClusterSnapshot API operation for Amazon Redshift.
9320//
9321// Creates a new table from a table in an Amazon Redshift cluster snapshot.
9322// You must create the new table within the Amazon Redshift cluster that the
9323// snapshot was taken from.
9324//
9325// You cannot use RestoreTableFromClusterSnapshot to restore a table with the
9326// same name as an existing table in an Amazon Redshift cluster. That is, you
9327// cannot overwrite an existing table in a cluster with a restored table. If
9328// you want to replace your original table with a new, restored table, then
9329// rename or drop your original table before you call RestoreTableFromClusterSnapshot.
9330// When you have renamed your original table, then you can pass the original
9331// name of the table as the NewTableName parameter value in the call to RestoreTableFromClusterSnapshot.
9332// This way, you can replace the original table with the table created from
9333// the snapshot.
9334//
9335// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9336// with awserr.Error's Code and Message methods to get detailed information about
9337// the error.
9338//
9339// See the AWS API reference guide for Amazon Redshift's
9340// API operation RestoreTableFromClusterSnapshot for usage and error information.
9341//
9342// Returned Error Codes:
9343//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
9344//   The snapshot identifier does not refer to an existing cluster snapshot.
9345//
9346//   * ErrCodeInProgressTableRestoreQuotaExceededFault "InProgressTableRestoreQuotaExceededFault"
9347//   You have exceeded the allowed number of table restore requests. Wait for
9348//   your current table restore requests to complete before making a new request.
9349//
9350//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
9351//   The specified cluster snapshot is not in the available state, or other accounts
9352//   are authorized to access the snapshot.
9353//
9354//   * ErrCodeInvalidTableRestoreArgumentFault "InvalidTableRestoreArgument"
9355//   The value specified for the sourceDatabaseName, sourceSchemaName, or sourceTableName
9356//   parameter, or a combination of these, doesn't exist in the snapshot.
9357//
9358//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
9359//   The ClusterIdentifier parameter does not refer to an existing cluster.
9360//
9361//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
9362//   The specified cluster is not in the available state.
9363//
9364//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
9365//   The requested operation isn't supported.
9366//
9367// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreTableFromClusterSnapshot
9368func (c *Redshift) RestoreTableFromClusterSnapshot(input *RestoreTableFromClusterSnapshotInput) (*RestoreTableFromClusterSnapshotOutput, error) {
9369	req, out := c.RestoreTableFromClusterSnapshotRequest(input)
9370	return out, req.Send()
9371}
9372
9373// RestoreTableFromClusterSnapshotWithContext is the same as RestoreTableFromClusterSnapshot with the addition of
9374// the ability to pass a context and additional request options.
9375//
9376// See RestoreTableFromClusterSnapshot for details on how to use this API operation.
9377//
9378// The context must be non-nil and will be used for request cancellation. If
9379// the context is nil a panic will occur. In the future the SDK may create
9380// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9381// for more information on using Contexts.
9382func (c *Redshift) RestoreTableFromClusterSnapshotWithContext(ctx aws.Context, input *RestoreTableFromClusterSnapshotInput, opts ...request.Option) (*RestoreTableFromClusterSnapshotOutput, error) {
9383	req, out := c.RestoreTableFromClusterSnapshotRequest(input)
9384	req.SetContext(ctx)
9385	req.ApplyOptions(opts...)
9386	return out, req.Send()
9387}
9388
9389const opResumeCluster = "ResumeCluster"
9390
9391// ResumeClusterRequest generates a "aws/request.Request" representing the
9392// client's request for the ResumeCluster operation. The "output" return
9393// value will be populated with the request's response once the request completes
9394// successfully.
9395//
9396// Use "Send" method on the returned Request to send the API call to the service.
9397// the "output" return value is not valid until after Send returns without error.
9398//
9399// See ResumeCluster for more information on using the ResumeCluster
9400// API call, and error handling.
9401//
9402// This method is useful when you want to inject custom logic or configuration
9403// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9404//
9405//
9406//    // Example sending a request using the ResumeClusterRequest method.
9407//    req, resp := client.ResumeClusterRequest(params)
9408//
9409//    err := req.Send()
9410//    if err == nil { // resp is now filled
9411//        fmt.Println(resp)
9412//    }
9413//
9414// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResumeCluster
9415func (c *Redshift) ResumeClusterRequest(input *ResumeClusterInput) (req *request.Request, output *ResumeClusterOutput) {
9416	op := &request.Operation{
9417		Name:       opResumeCluster,
9418		HTTPMethod: "POST",
9419		HTTPPath:   "/",
9420	}
9421
9422	if input == nil {
9423		input = &ResumeClusterInput{}
9424	}
9425
9426	output = &ResumeClusterOutput{}
9427	req = c.newRequest(op, input, output)
9428	return
9429}
9430
9431// ResumeCluster API operation for Amazon Redshift.
9432//
9433// Resumes a paused cluster.
9434//
9435// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9436// with awserr.Error's Code and Message methods to get detailed information about
9437// the error.
9438//
9439// See the AWS API reference guide for Amazon Redshift's
9440// API operation ResumeCluster for usage and error information.
9441//
9442// Returned Error Codes:
9443//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
9444//   The ClusterIdentifier parameter does not refer to an existing cluster.
9445//
9446//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
9447//   The specified cluster is not in the available state.
9448//
9449// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResumeCluster
9450func (c *Redshift) ResumeCluster(input *ResumeClusterInput) (*ResumeClusterOutput, error) {
9451	req, out := c.ResumeClusterRequest(input)
9452	return out, req.Send()
9453}
9454
9455// ResumeClusterWithContext is the same as ResumeCluster with the addition of
9456// the ability to pass a context and additional request options.
9457//
9458// See ResumeCluster for details on how to use this API operation.
9459//
9460// The context must be non-nil and will be used for request cancellation. If
9461// the context is nil a panic will occur. In the future the SDK may create
9462// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9463// for more information on using Contexts.
9464func (c *Redshift) ResumeClusterWithContext(ctx aws.Context, input *ResumeClusterInput, opts ...request.Option) (*ResumeClusterOutput, error) {
9465	req, out := c.ResumeClusterRequest(input)
9466	req.SetContext(ctx)
9467	req.ApplyOptions(opts...)
9468	return out, req.Send()
9469}
9470
9471const opRevokeClusterSecurityGroupIngress = "RevokeClusterSecurityGroupIngress"
9472
9473// RevokeClusterSecurityGroupIngressRequest generates a "aws/request.Request" representing the
9474// client's request for the RevokeClusterSecurityGroupIngress operation. The "output" return
9475// value will be populated with the request's response once the request completes
9476// successfully.
9477//
9478// Use "Send" method on the returned Request to send the API call to the service.
9479// the "output" return value is not valid until after Send returns without error.
9480//
9481// See RevokeClusterSecurityGroupIngress for more information on using the RevokeClusterSecurityGroupIngress
9482// API call, and error handling.
9483//
9484// This method is useful when you want to inject custom logic or configuration
9485// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9486//
9487//
9488//    // Example sending a request using the RevokeClusterSecurityGroupIngressRequest method.
9489//    req, resp := client.RevokeClusterSecurityGroupIngressRequest(params)
9490//
9491//    err := req.Send()
9492//    if err == nil { // resp is now filled
9493//        fmt.Println(resp)
9494//    }
9495//
9496// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeClusterSecurityGroupIngress
9497func (c *Redshift) RevokeClusterSecurityGroupIngressRequest(input *RevokeClusterSecurityGroupIngressInput) (req *request.Request, output *RevokeClusterSecurityGroupIngressOutput) {
9498	op := &request.Operation{
9499		Name:       opRevokeClusterSecurityGroupIngress,
9500		HTTPMethod: "POST",
9501		HTTPPath:   "/",
9502	}
9503
9504	if input == nil {
9505		input = &RevokeClusterSecurityGroupIngressInput{}
9506	}
9507
9508	output = &RevokeClusterSecurityGroupIngressOutput{}
9509	req = c.newRequest(op, input, output)
9510	return
9511}
9512
9513// RevokeClusterSecurityGroupIngress API operation for Amazon Redshift.
9514//
9515// Revokes an ingress rule in an Amazon Redshift security group for a previously
9516// authorized IP range or Amazon EC2 security group. To add an ingress rule,
9517// see AuthorizeClusterSecurityGroupIngress. For information about managing
9518// security groups, go to Amazon Redshift Cluster Security Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
9519// in the Amazon Redshift Cluster Management Guide.
9520//
9521// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9522// with awserr.Error's Code and Message methods to get detailed information about
9523// the error.
9524//
9525// See the AWS API reference guide for Amazon Redshift's
9526// API operation RevokeClusterSecurityGroupIngress for usage and error information.
9527//
9528// Returned Error Codes:
9529//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
9530//   The cluster security group name does not refer to an existing cluster security
9531//   group.
9532//
9533//   * ErrCodeAuthorizationNotFoundFault "AuthorizationNotFound"
9534//   The specified CIDR IP range or EC2 security group is not authorized for the
9535//   specified cluster security group.
9536//
9537//   * ErrCodeInvalidClusterSecurityGroupStateFault "InvalidClusterSecurityGroupState"
9538//   The state of the cluster security group is not available.
9539//
9540// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeClusterSecurityGroupIngress
9541func (c *Redshift) RevokeClusterSecurityGroupIngress(input *RevokeClusterSecurityGroupIngressInput) (*RevokeClusterSecurityGroupIngressOutput, error) {
9542	req, out := c.RevokeClusterSecurityGroupIngressRequest(input)
9543	return out, req.Send()
9544}
9545
9546// RevokeClusterSecurityGroupIngressWithContext is the same as RevokeClusterSecurityGroupIngress with the addition of
9547// the ability to pass a context and additional request options.
9548//
9549// See RevokeClusterSecurityGroupIngress for details on how to use this API operation.
9550//
9551// The context must be non-nil and will be used for request cancellation. If
9552// the context is nil a panic will occur. In the future the SDK may create
9553// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9554// for more information on using Contexts.
9555func (c *Redshift) RevokeClusterSecurityGroupIngressWithContext(ctx aws.Context, input *RevokeClusterSecurityGroupIngressInput, opts ...request.Option) (*RevokeClusterSecurityGroupIngressOutput, error) {
9556	req, out := c.RevokeClusterSecurityGroupIngressRequest(input)
9557	req.SetContext(ctx)
9558	req.ApplyOptions(opts...)
9559	return out, req.Send()
9560}
9561
9562const opRevokeSnapshotAccess = "RevokeSnapshotAccess"
9563
9564// RevokeSnapshotAccessRequest generates a "aws/request.Request" representing the
9565// client's request for the RevokeSnapshotAccess operation. The "output" return
9566// value will be populated with the request's response once the request completes
9567// successfully.
9568//
9569// Use "Send" method on the returned Request to send the API call to the service.
9570// the "output" return value is not valid until after Send returns without error.
9571//
9572// See RevokeSnapshotAccess for more information on using the RevokeSnapshotAccess
9573// API call, and error handling.
9574//
9575// This method is useful when you want to inject custom logic or configuration
9576// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9577//
9578//
9579//    // Example sending a request using the RevokeSnapshotAccessRequest method.
9580//    req, resp := client.RevokeSnapshotAccessRequest(params)
9581//
9582//    err := req.Send()
9583//    if err == nil { // resp is now filled
9584//        fmt.Println(resp)
9585//    }
9586//
9587// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeSnapshotAccess
9588func (c *Redshift) RevokeSnapshotAccessRequest(input *RevokeSnapshotAccessInput) (req *request.Request, output *RevokeSnapshotAccessOutput) {
9589	op := &request.Operation{
9590		Name:       opRevokeSnapshotAccess,
9591		HTTPMethod: "POST",
9592		HTTPPath:   "/",
9593	}
9594
9595	if input == nil {
9596		input = &RevokeSnapshotAccessInput{}
9597	}
9598
9599	output = &RevokeSnapshotAccessOutput{}
9600	req = c.newRequest(op, input, output)
9601	return
9602}
9603
9604// RevokeSnapshotAccess API operation for Amazon Redshift.
9605//
9606// Removes the ability of the specified AWS customer account to restore the
9607// specified snapshot. If the account is currently restoring the snapshot, the
9608// restore will run to completion.
9609//
9610// For more information about working with snapshots, go to Amazon Redshift
9611// Snapshots (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
9612// in the Amazon Redshift Cluster Management Guide.
9613//
9614// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9615// with awserr.Error's Code and Message methods to get detailed information about
9616// the error.
9617//
9618// See the AWS API reference guide for Amazon Redshift's
9619// API operation RevokeSnapshotAccess for usage and error information.
9620//
9621// Returned Error Codes:
9622//   * ErrCodeAccessToSnapshotDeniedFault "AccessToSnapshotDenied"
9623//   The owner of the specified snapshot has not authorized your account to access
9624//   the snapshot.
9625//
9626//   * ErrCodeAuthorizationNotFoundFault "AuthorizationNotFound"
9627//   The specified CIDR IP range or EC2 security group is not authorized for the
9628//   specified cluster security group.
9629//
9630//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
9631//   The snapshot identifier does not refer to an existing cluster snapshot.
9632//
9633// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeSnapshotAccess
9634func (c *Redshift) RevokeSnapshotAccess(input *RevokeSnapshotAccessInput) (*RevokeSnapshotAccessOutput, error) {
9635	req, out := c.RevokeSnapshotAccessRequest(input)
9636	return out, req.Send()
9637}
9638
9639// RevokeSnapshotAccessWithContext is the same as RevokeSnapshotAccess with the addition of
9640// the ability to pass a context and additional request options.
9641//
9642// See RevokeSnapshotAccess for details on how to use this API operation.
9643//
9644// The context must be non-nil and will be used for request cancellation. If
9645// the context is nil a panic will occur. In the future the SDK may create
9646// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9647// for more information on using Contexts.
9648func (c *Redshift) RevokeSnapshotAccessWithContext(ctx aws.Context, input *RevokeSnapshotAccessInput, opts ...request.Option) (*RevokeSnapshotAccessOutput, error) {
9649	req, out := c.RevokeSnapshotAccessRequest(input)
9650	req.SetContext(ctx)
9651	req.ApplyOptions(opts...)
9652	return out, req.Send()
9653}
9654
9655const opRotateEncryptionKey = "RotateEncryptionKey"
9656
9657// RotateEncryptionKeyRequest generates a "aws/request.Request" representing the
9658// client's request for the RotateEncryptionKey operation. The "output" return
9659// value will be populated with the request's response once the request completes
9660// successfully.
9661//
9662// Use "Send" method on the returned Request to send the API call to the service.
9663// the "output" return value is not valid until after Send returns without error.
9664//
9665// See RotateEncryptionKey for more information on using the RotateEncryptionKey
9666// API call, and error handling.
9667//
9668// This method is useful when you want to inject custom logic or configuration
9669// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9670//
9671//
9672//    // Example sending a request using the RotateEncryptionKeyRequest method.
9673//    req, resp := client.RotateEncryptionKeyRequest(params)
9674//
9675//    err := req.Send()
9676//    if err == nil { // resp is now filled
9677//        fmt.Println(resp)
9678//    }
9679//
9680// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RotateEncryptionKey
9681func (c *Redshift) RotateEncryptionKeyRequest(input *RotateEncryptionKeyInput) (req *request.Request, output *RotateEncryptionKeyOutput) {
9682	op := &request.Operation{
9683		Name:       opRotateEncryptionKey,
9684		HTTPMethod: "POST",
9685		HTTPPath:   "/",
9686	}
9687
9688	if input == nil {
9689		input = &RotateEncryptionKeyInput{}
9690	}
9691
9692	output = &RotateEncryptionKeyOutput{}
9693	req = c.newRequest(op, input, output)
9694	return
9695}
9696
9697// RotateEncryptionKey API operation for Amazon Redshift.
9698//
9699// Rotates the encryption keys for a cluster.
9700//
9701// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9702// with awserr.Error's Code and Message methods to get detailed information about
9703// the error.
9704//
9705// See the AWS API reference guide for Amazon Redshift's
9706// API operation RotateEncryptionKey for usage and error information.
9707//
9708// Returned Error Codes:
9709//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
9710//   The ClusterIdentifier parameter does not refer to an existing cluster.
9711//
9712//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
9713//   The specified cluster is not in the available state.
9714//
9715//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
9716//   The request cannot be completed because a dependent service is throttling
9717//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
9718//
9719// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RotateEncryptionKey
9720func (c *Redshift) RotateEncryptionKey(input *RotateEncryptionKeyInput) (*RotateEncryptionKeyOutput, error) {
9721	req, out := c.RotateEncryptionKeyRequest(input)
9722	return out, req.Send()
9723}
9724
9725// RotateEncryptionKeyWithContext is the same as RotateEncryptionKey with the addition of
9726// the ability to pass a context and additional request options.
9727//
9728// See RotateEncryptionKey for details on how to use this API operation.
9729//
9730// The context must be non-nil and will be used for request cancellation. If
9731// the context is nil a panic will occur. In the future the SDK may create
9732// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9733// for more information on using Contexts.
9734func (c *Redshift) RotateEncryptionKeyWithContext(ctx aws.Context, input *RotateEncryptionKeyInput, opts ...request.Option) (*RotateEncryptionKeyOutput, error) {
9735	req, out := c.RotateEncryptionKeyRequest(input)
9736	req.SetContext(ctx)
9737	req.ApplyOptions(opts...)
9738	return out, req.Send()
9739}
9740
9741type AcceptReservedNodeExchangeInput struct {
9742	_ struct{} `type:"structure"`
9743
9744	// A string representing the node identifier of the DC1 Reserved Node to be
9745	// exchanged.
9746	//
9747	// ReservedNodeId is a required field
9748	ReservedNodeId *string `type:"string" required:"true"`
9749
9750	// The unique identifier of the DC2 Reserved Node offering to be used for the
9751	// exchange. You can obtain the value for the parameter by calling GetReservedNodeExchangeOfferings
9752	//
9753	// TargetReservedNodeOfferingId is a required field
9754	TargetReservedNodeOfferingId *string `type:"string" required:"true"`
9755}
9756
9757// String returns the string representation
9758func (s AcceptReservedNodeExchangeInput) String() string {
9759	return awsutil.Prettify(s)
9760}
9761
9762// GoString returns the string representation
9763func (s AcceptReservedNodeExchangeInput) GoString() string {
9764	return s.String()
9765}
9766
9767// Validate inspects the fields of the type to determine if they are valid.
9768func (s *AcceptReservedNodeExchangeInput) Validate() error {
9769	invalidParams := request.ErrInvalidParams{Context: "AcceptReservedNodeExchangeInput"}
9770	if s.ReservedNodeId == nil {
9771		invalidParams.Add(request.NewErrParamRequired("ReservedNodeId"))
9772	}
9773	if s.TargetReservedNodeOfferingId == nil {
9774		invalidParams.Add(request.NewErrParamRequired("TargetReservedNodeOfferingId"))
9775	}
9776
9777	if invalidParams.Len() > 0 {
9778		return invalidParams
9779	}
9780	return nil
9781}
9782
9783// SetReservedNodeId sets the ReservedNodeId field's value.
9784func (s *AcceptReservedNodeExchangeInput) SetReservedNodeId(v string) *AcceptReservedNodeExchangeInput {
9785	s.ReservedNodeId = &v
9786	return s
9787}
9788
9789// SetTargetReservedNodeOfferingId sets the TargetReservedNodeOfferingId field's value.
9790func (s *AcceptReservedNodeExchangeInput) SetTargetReservedNodeOfferingId(v string) *AcceptReservedNodeExchangeInput {
9791	s.TargetReservedNodeOfferingId = &v
9792	return s
9793}
9794
9795type AcceptReservedNodeExchangeOutput struct {
9796	_ struct{} `type:"structure"`
9797
9798	// Describes a reserved node. You can call the DescribeReservedNodeOfferings
9799	// API to obtain the available reserved node offerings.
9800	ExchangedReservedNode *ReservedNode `type:"structure"`
9801}
9802
9803// String returns the string representation
9804func (s AcceptReservedNodeExchangeOutput) String() string {
9805	return awsutil.Prettify(s)
9806}
9807
9808// GoString returns the string representation
9809func (s AcceptReservedNodeExchangeOutput) GoString() string {
9810	return s.String()
9811}
9812
9813// SetExchangedReservedNode sets the ExchangedReservedNode field's value.
9814func (s *AcceptReservedNodeExchangeOutput) SetExchangedReservedNode(v *ReservedNode) *AcceptReservedNodeExchangeOutput {
9815	s.ExchangedReservedNode = v
9816	return s
9817}
9818
9819// A name value pair that describes an aspect of an account.
9820type AccountAttribute struct {
9821	_ struct{} `type:"structure"`
9822
9823	// The name of the attribute.
9824	AttributeName *string `type:"string"`
9825
9826	// A list of attribute values.
9827	AttributeValues []*AttributeValueTarget `locationNameList:"AttributeValueTarget" type:"list"`
9828}
9829
9830// String returns the string representation
9831func (s AccountAttribute) String() string {
9832	return awsutil.Prettify(s)
9833}
9834
9835// GoString returns the string representation
9836func (s AccountAttribute) GoString() string {
9837	return s.String()
9838}
9839
9840// SetAttributeName sets the AttributeName field's value.
9841func (s *AccountAttribute) SetAttributeName(v string) *AccountAttribute {
9842	s.AttributeName = &v
9843	return s
9844}
9845
9846// SetAttributeValues sets the AttributeValues field's value.
9847func (s *AccountAttribute) SetAttributeValues(v []*AttributeValueTarget) *AccountAttribute {
9848	s.AttributeValues = v
9849	return s
9850}
9851
9852// Describes an AWS customer account authorized to restore a snapshot.
9853type AccountWithRestoreAccess struct {
9854	_ struct{} `type:"structure"`
9855
9856	// The identifier of an AWS support account authorized to restore a snapshot.
9857	// For AWS support, the identifier is amazon-redshift-support.
9858	AccountAlias *string `type:"string"`
9859
9860	// The identifier of an AWS customer account authorized to restore a snapshot.
9861	AccountId *string `type:"string"`
9862}
9863
9864// String returns the string representation
9865func (s AccountWithRestoreAccess) String() string {
9866	return awsutil.Prettify(s)
9867}
9868
9869// GoString returns the string representation
9870func (s AccountWithRestoreAccess) GoString() string {
9871	return s.String()
9872}
9873
9874// SetAccountAlias sets the AccountAlias field's value.
9875func (s *AccountWithRestoreAccess) SetAccountAlias(v string) *AccountWithRestoreAccess {
9876	s.AccountAlias = &v
9877	return s
9878}
9879
9880// SetAccountId sets the AccountId field's value.
9881func (s *AccountWithRestoreAccess) SetAccountId(v string) *AccountWithRestoreAccess {
9882	s.AccountId = &v
9883	return s
9884}
9885
9886// Describes an attribute value.
9887type AttributeValueTarget struct {
9888	_ struct{} `type:"structure"`
9889
9890	// The value of the attribute.
9891	AttributeValue *string `type:"string"`
9892}
9893
9894// String returns the string representation
9895func (s AttributeValueTarget) String() string {
9896	return awsutil.Prettify(s)
9897}
9898
9899// GoString returns the string representation
9900func (s AttributeValueTarget) GoString() string {
9901	return s.String()
9902}
9903
9904// SetAttributeValue sets the AttributeValue field's value.
9905func (s *AttributeValueTarget) SetAttributeValue(v string) *AttributeValueTarget {
9906	s.AttributeValue = &v
9907	return s
9908}
9909
9910type AuthorizeClusterSecurityGroupIngressInput struct {
9911	_ struct{} `type:"structure"`
9912
9913	// The IP range to be added the Amazon Redshift security group.
9914	CIDRIP *string `type:"string"`
9915
9916	// The name of the security group to which the ingress rule is added.
9917	//
9918	// ClusterSecurityGroupName is a required field
9919	ClusterSecurityGroupName *string `type:"string" required:"true"`
9920
9921	// The EC2 security group to be added the Amazon Redshift security group.
9922	EC2SecurityGroupName *string `type:"string"`
9923
9924	// The AWS account number of the owner of the security group specified by the
9925	// EC2SecurityGroupName parameter. The AWS Access Key ID is not an acceptable
9926	// value.
9927	//
9928	// Example: 111122223333
9929	EC2SecurityGroupOwnerId *string `type:"string"`
9930}
9931
9932// String returns the string representation
9933func (s AuthorizeClusterSecurityGroupIngressInput) String() string {
9934	return awsutil.Prettify(s)
9935}
9936
9937// GoString returns the string representation
9938func (s AuthorizeClusterSecurityGroupIngressInput) GoString() string {
9939	return s.String()
9940}
9941
9942// Validate inspects the fields of the type to determine if they are valid.
9943func (s *AuthorizeClusterSecurityGroupIngressInput) Validate() error {
9944	invalidParams := request.ErrInvalidParams{Context: "AuthorizeClusterSecurityGroupIngressInput"}
9945	if s.ClusterSecurityGroupName == nil {
9946		invalidParams.Add(request.NewErrParamRequired("ClusterSecurityGroupName"))
9947	}
9948
9949	if invalidParams.Len() > 0 {
9950		return invalidParams
9951	}
9952	return nil
9953}
9954
9955// SetCIDRIP sets the CIDRIP field's value.
9956func (s *AuthorizeClusterSecurityGroupIngressInput) SetCIDRIP(v string) *AuthorizeClusterSecurityGroupIngressInput {
9957	s.CIDRIP = &v
9958	return s
9959}
9960
9961// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
9962func (s *AuthorizeClusterSecurityGroupIngressInput) SetClusterSecurityGroupName(v string) *AuthorizeClusterSecurityGroupIngressInput {
9963	s.ClusterSecurityGroupName = &v
9964	return s
9965}
9966
9967// SetEC2SecurityGroupName sets the EC2SecurityGroupName field's value.
9968func (s *AuthorizeClusterSecurityGroupIngressInput) SetEC2SecurityGroupName(v string) *AuthorizeClusterSecurityGroupIngressInput {
9969	s.EC2SecurityGroupName = &v
9970	return s
9971}
9972
9973// SetEC2SecurityGroupOwnerId sets the EC2SecurityGroupOwnerId field's value.
9974func (s *AuthorizeClusterSecurityGroupIngressInput) SetEC2SecurityGroupOwnerId(v string) *AuthorizeClusterSecurityGroupIngressInput {
9975	s.EC2SecurityGroupOwnerId = &v
9976	return s
9977}
9978
9979type AuthorizeClusterSecurityGroupIngressOutput struct {
9980	_ struct{} `type:"structure"`
9981
9982	// Describes a security group.
9983	ClusterSecurityGroup *ClusterSecurityGroup `type:"structure"`
9984}
9985
9986// String returns the string representation
9987func (s AuthorizeClusterSecurityGroupIngressOutput) String() string {
9988	return awsutil.Prettify(s)
9989}
9990
9991// GoString returns the string representation
9992func (s AuthorizeClusterSecurityGroupIngressOutput) GoString() string {
9993	return s.String()
9994}
9995
9996// SetClusterSecurityGroup sets the ClusterSecurityGroup field's value.
9997func (s *AuthorizeClusterSecurityGroupIngressOutput) SetClusterSecurityGroup(v *ClusterSecurityGroup) *AuthorizeClusterSecurityGroupIngressOutput {
9998	s.ClusterSecurityGroup = v
9999	return s
10000}
10001
10002type AuthorizeSnapshotAccessInput struct {
10003	_ struct{} `type:"structure"`
10004
10005	// The identifier of the AWS customer account authorized to restore the specified
10006	// snapshot.
10007	//
10008	// To share a snapshot with AWS support, specify amazon-redshift-support.
10009	//
10010	// AccountWithRestoreAccess is a required field
10011	AccountWithRestoreAccess *string `type:"string" required:"true"`
10012
10013	// The identifier of the cluster the snapshot was created from. This parameter
10014	// is required if your IAM user has a policy containing a snapshot resource
10015	// element that specifies anything other than * for the cluster name.
10016	SnapshotClusterIdentifier *string `type:"string"`
10017
10018	// The identifier of the snapshot the account is authorized to restore.
10019	//
10020	// SnapshotIdentifier is a required field
10021	SnapshotIdentifier *string `type:"string" required:"true"`
10022}
10023
10024// String returns the string representation
10025func (s AuthorizeSnapshotAccessInput) String() string {
10026	return awsutil.Prettify(s)
10027}
10028
10029// GoString returns the string representation
10030func (s AuthorizeSnapshotAccessInput) GoString() string {
10031	return s.String()
10032}
10033
10034// Validate inspects the fields of the type to determine if they are valid.
10035func (s *AuthorizeSnapshotAccessInput) Validate() error {
10036	invalidParams := request.ErrInvalidParams{Context: "AuthorizeSnapshotAccessInput"}
10037	if s.AccountWithRestoreAccess == nil {
10038		invalidParams.Add(request.NewErrParamRequired("AccountWithRestoreAccess"))
10039	}
10040	if s.SnapshotIdentifier == nil {
10041		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
10042	}
10043
10044	if invalidParams.Len() > 0 {
10045		return invalidParams
10046	}
10047	return nil
10048}
10049
10050// SetAccountWithRestoreAccess sets the AccountWithRestoreAccess field's value.
10051func (s *AuthorizeSnapshotAccessInput) SetAccountWithRestoreAccess(v string) *AuthorizeSnapshotAccessInput {
10052	s.AccountWithRestoreAccess = &v
10053	return s
10054}
10055
10056// SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
10057func (s *AuthorizeSnapshotAccessInput) SetSnapshotClusterIdentifier(v string) *AuthorizeSnapshotAccessInput {
10058	s.SnapshotClusterIdentifier = &v
10059	return s
10060}
10061
10062// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
10063func (s *AuthorizeSnapshotAccessInput) SetSnapshotIdentifier(v string) *AuthorizeSnapshotAccessInput {
10064	s.SnapshotIdentifier = &v
10065	return s
10066}
10067
10068type AuthorizeSnapshotAccessOutput struct {
10069	_ struct{} `type:"structure"`
10070
10071	// Describes a snapshot.
10072	Snapshot *Snapshot `type:"structure"`
10073}
10074
10075// String returns the string representation
10076func (s AuthorizeSnapshotAccessOutput) String() string {
10077	return awsutil.Prettify(s)
10078}
10079
10080// GoString returns the string representation
10081func (s AuthorizeSnapshotAccessOutput) GoString() string {
10082	return s.String()
10083}
10084
10085// SetSnapshot sets the Snapshot field's value.
10086func (s *AuthorizeSnapshotAccessOutput) SetSnapshot(v *Snapshot) *AuthorizeSnapshotAccessOutput {
10087	s.Snapshot = v
10088	return s
10089}
10090
10091// Describes an availability zone.
10092type AvailabilityZone struct {
10093	_ struct{} `type:"structure"`
10094
10095	// The name of the availability zone.
10096	Name *string `type:"string"`
10097
10098	SupportedPlatforms []*SupportedPlatform `locationNameList:"SupportedPlatform" type:"list"`
10099}
10100
10101// String returns the string representation
10102func (s AvailabilityZone) String() string {
10103	return awsutil.Prettify(s)
10104}
10105
10106// GoString returns the string representation
10107func (s AvailabilityZone) GoString() string {
10108	return s.String()
10109}
10110
10111// SetName sets the Name field's value.
10112func (s *AvailabilityZone) SetName(v string) *AvailabilityZone {
10113	s.Name = &v
10114	return s
10115}
10116
10117// SetSupportedPlatforms sets the SupportedPlatforms field's value.
10118func (s *AvailabilityZone) SetSupportedPlatforms(v []*SupportedPlatform) *AvailabilityZone {
10119	s.SupportedPlatforms = v
10120	return s
10121}
10122
10123type BatchDeleteClusterSnapshotsInput struct {
10124	_ struct{} `type:"structure"`
10125
10126	// A list of identifiers for the snapshots that you want to delete.
10127	//
10128	// Identifiers is a required field
10129	Identifiers []*DeleteClusterSnapshotMessage `locationNameList:"DeleteClusterSnapshotMessage" type:"list" required:"true"`
10130}
10131
10132// String returns the string representation
10133func (s BatchDeleteClusterSnapshotsInput) String() string {
10134	return awsutil.Prettify(s)
10135}
10136
10137// GoString returns the string representation
10138func (s BatchDeleteClusterSnapshotsInput) GoString() string {
10139	return s.String()
10140}
10141
10142// Validate inspects the fields of the type to determine if they are valid.
10143func (s *BatchDeleteClusterSnapshotsInput) Validate() error {
10144	invalidParams := request.ErrInvalidParams{Context: "BatchDeleteClusterSnapshotsInput"}
10145	if s.Identifiers == nil {
10146		invalidParams.Add(request.NewErrParamRequired("Identifiers"))
10147	}
10148	if s.Identifiers != nil {
10149		for i, v := range s.Identifiers {
10150			if v == nil {
10151				continue
10152			}
10153			if err := v.Validate(); err != nil {
10154				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Identifiers", i), err.(request.ErrInvalidParams))
10155			}
10156		}
10157	}
10158
10159	if invalidParams.Len() > 0 {
10160		return invalidParams
10161	}
10162	return nil
10163}
10164
10165// SetIdentifiers sets the Identifiers field's value.
10166func (s *BatchDeleteClusterSnapshotsInput) SetIdentifiers(v []*DeleteClusterSnapshotMessage) *BatchDeleteClusterSnapshotsInput {
10167	s.Identifiers = v
10168	return s
10169}
10170
10171type BatchDeleteClusterSnapshotsOutput struct {
10172	_ struct{} `type:"structure"`
10173
10174	// A list of any errors returned.
10175	Errors []*SnapshotErrorMessage `locationNameList:"SnapshotErrorMessage" type:"list"`
10176
10177	// A list of the snapshot identifiers that were deleted.
10178	Resources []*string `locationNameList:"String" type:"list"`
10179}
10180
10181// String returns the string representation
10182func (s BatchDeleteClusterSnapshotsOutput) String() string {
10183	return awsutil.Prettify(s)
10184}
10185
10186// GoString returns the string representation
10187func (s BatchDeleteClusterSnapshotsOutput) GoString() string {
10188	return s.String()
10189}
10190
10191// SetErrors sets the Errors field's value.
10192func (s *BatchDeleteClusterSnapshotsOutput) SetErrors(v []*SnapshotErrorMessage) *BatchDeleteClusterSnapshotsOutput {
10193	s.Errors = v
10194	return s
10195}
10196
10197// SetResources sets the Resources field's value.
10198func (s *BatchDeleteClusterSnapshotsOutput) SetResources(v []*string) *BatchDeleteClusterSnapshotsOutput {
10199	s.Resources = v
10200	return s
10201}
10202
10203type BatchModifyClusterSnapshotsInput struct {
10204	_ struct{} `type:"structure"`
10205
10206	// A boolean value indicating whether to override an exception if the retention
10207	// period has passed.
10208	Force *bool `type:"boolean"`
10209
10210	// The number of days that a manual snapshot is retained. If you specify the
10211	// value -1, the manual snapshot is retained indefinitely.
10212	//
10213	// The number must be either -1 or an integer between 1 and 3,653.
10214	//
10215	// If you decrease the manual snapshot retention period from its current value,
10216	// existing manual snapshots that fall outside of the new retention period will
10217	// return an error. If you want to suppress the errors and delete the snapshots,
10218	// use the force option.
10219	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
10220
10221	// A list of snapshot identifiers you want to modify.
10222	//
10223	// SnapshotIdentifierList is a required field
10224	SnapshotIdentifierList []*string `locationNameList:"String" type:"list" required:"true"`
10225}
10226
10227// String returns the string representation
10228func (s BatchModifyClusterSnapshotsInput) String() string {
10229	return awsutil.Prettify(s)
10230}
10231
10232// GoString returns the string representation
10233func (s BatchModifyClusterSnapshotsInput) GoString() string {
10234	return s.String()
10235}
10236
10237// Validate inspects the fields of the type to determine if they are valid.
10238func (s *BatchModifyClusterSnapshotsInput) Validate() error {
10239	invalidParams := request.ErrInvalidParams{Context: "BatchModifyClusterSnapshotsInput"}
10240	if s.SnapshotIdentifierList == nil {
10241		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifierList"))
10242	}
10243
10244	if invalidParams.Len() > 0 {
10245		return invalidParams
10246	}
10247	return nil
10248}
10249
10250// SetForce sets the Force field's value.
10251func (s *BatchModifyClusterSnapshotsInput) SetForce(v bool) *BatchModifyClusterSnapshotsInput {
10252	s.Force = &v
10253	return s
10254}
10255
10256// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
10257func (s *BatchModifyClusterSnapshotsInput) SetManualSnapshotRetentionPeriod(v int64) *BatchModifyClusterSnapshotsInput {
10258	s.ManualSnapshotRetentionPeriod = &v
10259	return s
10260}
10261
10262// SetSnapshotIdentifierList sets the SnapshotIdentifierList field's value.
10263func (s *BatchModifyClusterSnapshotsInput) SetSnapshotIdentifierList(v []*string) *BatchModifyClusterSnapshotsInput {
10264	s.SnapshotIdentifierList = v
10265	return s
10266}
10267
10268type BatchModifyClusterSnapshotsOutput struct {
10269	_ struct{} `type:"structure"`
10270
10271	// A list of any errors returned.
10272	Errors []*SnapshotErrorMessage `locationNameList:"SnapshotErrorMessage" type:"list"`
10273
10274	// A list of the snapshots that were modified.
10275	Resources []*string `locationNameList:"String" type:"list"`
10276}
10277
10278// String returns the string representation
10279func (s BatchModifyClusterSnapshotsOutput) String() string {
10280	return awsutil.Prettify(s)
10281}
10282
10283// GoString returns the string representation
10284func (s BatchModifyClusterSnapshotsOutput) GoString() string {
10285	return s.String()
10286}
10287
10288// SetErrors sets the Errors field's value.
10289func (s *BatchModifyClusterSnapshotsOutput) SetErrors(v []*SnapshotErrorMessage) *BatchModifyClusterSnapshotsOutput {
10290	s.Errors = v
10291	return s
10292}
10293
10294// SetResources sets the Resources field's value.
10295func (s *BatchModifyClusterSnapshotsOutput) SetResources(v []*string) *BatchModifyClusterSnapshotsOutput {
10296	s.Resources = v
10297	return s
10298}
10299
10300type CancelResizeInput struct {
10301	_ struct{} `type:"structure"`
10302
10303	// The unique identifier for the cluster that you want to cancel a resize operation
10304	// for.
10305	//
10306	// ClusterIdentifier is a required field
10307	ClusterIdentifier *string `type:"string" required:"true"`
10308}
10309
10310// String returns the string representation
10311func (s CancelResizeInput) String() string {
10312	return awsutil.Prettify(s)
10313}
10314
10315// GoString returns the string representation
10316func (s CancelResizeInput) GoString() string {
10317	return s.String()
10318}
10319
10320// Validate inspects the fields of the type to determine if they are valid.
10321func (s *CancelResizeInput) Validate() error {
10322	invalidParams := request.ErrInvalidParams{Context: "CancelResizeInput"}
10323	if s.ClusterIdentifier == nil {
10324		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
10325	}
10326
10327	if invalidParams.Len() > 0 {
10328		return invalidParams
10329	}
10330	return nil
10331}
10332
10333// SetClusterIdentifier sets the ClusterIdentifier field's value.
10334func (s *CancelResizeInput) SetClusterIdentifier(v string) *CancelResizeInput {
10335	s.ClusterIdentifier = &v
10336	return s
10337}
10338
10339// Describes the result of a cluster resize operation.
10340type CancelResizeOutput struct {
10341	_ struct{} `type:"structure"`
10342
10343	// The average rate of the resize operation over the last few minutes, measured
10344	// in megabytes per second. After the resize operation completes, this value
10345	// shows the average rate of the entire resize operation.
10346	AvgResizeRateInMegaBytesPerSecond *float64 `type:"double"`
10347
10348	// The percent of data transferred from source cluster to target cluster.
10349	DataTransferProgressPercent *float64 `type:"double"`
10350
10351	// The amount of seconds that have elapsed since the resize operation began.
10352	// After the resize operation completes, this value shows the total actual time,
10353	// in seconds, for the resize operation.
10354	ElapsedTimeInSeconds *int64 `type:"long"`
10355
10356	// The estimated time remaining, in seconds, until the resize operation is complete.
10357	// This value is calculated based on the average resize rate and the estimated
10358	// amount of data remaining to be processed. Once the resize operation is complete,
10359	// this value will be 0.
10360	EstimatedTimeToCompletionInSeconds *int64 `type:"long"`
10361
10362	// The names of tables that have been completely imported .
10363	//
10364	// Valid Values: List of table names.
10365	ImportTablesCompleted []*string `type:"list"`
10366
10367	// The names of tables that are being currently imported.
10368	//
10369	// Valid Values: List of table names.
10370	ImportTablesInProgress []*string `type:"list"`
10371
10372	// The names of tables that have not been yet imported.
10373	//
10374	// Valid Values: List of table names
10375	ImportTablesNotStarted []*string `type:"list"`
10376
10377	// An optional string to provide additional details about the resize action.
10378	Message *string `type:"string"`
10379
10380	// While the resize operation is in progress, this value shows the current amount
10381	// of data, in megabytes, that has been processed so far. When the resize operation
10382	// is complete, this value shows the total amount of data, in megabytes, on
10383	// the cluster, which may be more or less than TotalResizeDataInMegaBytes (the
10384	// estimated total amount of data before resize).
10385	ProgressInMegaBytes *int64 `type:"long"`
10386
10387	// An enum with possible values of ClassicResize and ElasticResize. These values
10388	// describe the type of resize operation being performed.
10389	ResizeType *string `type:"string"`
10390
10391	// The status of the resize operation.
10392	//
10393	// Valid Values: NONE | IN_PROGRESS | FAILED | SUCCEEDED | CANCELLING
10394	Status *string `type:"string"`
10395
10396	// The cluster type after the resize operation is complete.
10397	//
10398	// Valid Values: multi-node | single-node
10399	TargetClusterType *string `type:"string"`
10400
10401	// The type of encryption for the cluster after the resize is complete.
10402	//
10403	// Possible values are KMS and None. In the China region possible values are:
10404	// Legacy and None.
10405	TargetEncryptionType *string `type:"string"`
10406
10407	// The node type that the cluster will have after the resize operation is complete.
10408	TargetNodeType *string `type:"string"`
10409
10410	// The number of nodes that the cluster will have after the resize operation
10411	// is complete.
10412	TargetNumberOfNodes *int64 `type:"integer"`
10413
10414	// The estimated total amount of data, in megabytes, on the cluster before the
10415	// resize operation began.
10416	TotalResizeDataInMegaBytes *int64 `type:"long"`
10417}
10418
10419// String returns the string representation
10420func (s CancelResizeOutput) String() string {
10421	return awsutil.Prettify(s)
10422}
10423
10424// GoString returns the string representation
10425func (s CancelResizeOutput) GoString() string {
10426	return s.String()
10427}
10428
10429// SetAvgResizeRateInMegaBytesPerSecond sets the AvgResizeRateInMegaBytesPerSecond field's value.
10430func (s *CancelResizeOutput) SetAvgResizeRateInMegaBytesPerSecond(v float64) *CancelResizeOutput {
10431	s.AvgResizeRateInMegaBytesPerSecond = &v
10432	return s
10433}
10434
10435// SetDataTransferProgressPercent sets the DataTransferProgressPercent field's value.
10436func (s *CancelResizeOutput) SetDataTransferProgressPercent(v float64) *CancelResizeOutput {
10437	s.DataTransferProgressPercent = &v
10438	return s
10439}
10440
10441// SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
10442func (s *CancelResizeOutput) SetElapsedTimeInSeconds(v int64) *CancelResizeOutput {
10443	s.ElapsedTimeInSeconds = &v
10444	return s
10445}
10446
10447// SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value.
10448func (s *CancelResizeOutput) SetEstimatedTimeToCompletionInSeconds(v int64) *CancelResizeOutput {
10449	s.EstimatedTimeToCompletionInSeconds = &v
10450	return s
10451}
10452
10453// SetImportTablesCompleted sets the ImportTablesCompleted field's value.
10454func (s *CancelResizeOutput) SetImportTablesCompleted(v []*string) *CancelResizeOutput {
10455	s.ImportTablesCompleted = v
10456	return s
10457}
10458
10459// SetImportTablesInProgress sets the ImportTablesInProgress field's value.
10460func (s *CancelResizeOutput) SetImportTablesInProgress(v []*string) *CancelResizeOutput {
10461	s.ImportTablesInProgress = v
10462	return s
10463}
10464
10465// SetImportTablesNotStarted sets the ImportTablesNotStarted field's value.
10466func (s *CancelResizeOutput) SetImportTablesNotStarted(v []*string) *CancelResizeOutput {
10467	s.ImportTablesNotStarted = v
10468	return s
10469}
10470
10471// SetMessage sets the Message field's value.
10472func (s *CancelResizeOutput) SetMessage(v string) *CancelResizeOutput {
10473	s.Message = &v
10474	return s
10475}
10476
10477// SetProgressInMegaBytes sets the ProgressInMegaBytes field's value.
10478func (s *CancelResizeOutput) SetProgressInMegaBytes(v int64) *CancelResizeOutput {
10479	s.ProgressInMegaBytes = &v
10480	return s
10481}
10482
10483// SetResizeType sets the ResizeType field's value.
10484func (s *CancelResizeOutput) SetResizeType(v string) *CancelResizeOutput {
10485	s.ResizeType = &v
10486	return s
10487}
10488
10489// SetStatus sets the Status field's value.
10490func (s *CancelResizeOutput) SetStatus(v string) *CancelResizeOutput {
10491	s.Status = &v
10492	return s
10493}
10494
10495// SetTargetClusterType sets the TargetClusterType field's value.
10496func (s *CancelResizeOutput) SetTargetClusterType(v string) *CancelResizeOutput {
10497	s.TargetClusterType = &v
10498	return s
10499}
10500
10501// SetTargetEncryptionType sets the TargetEncryptionType field's value.
10502func (s *CancelResizeOutput) SetTargetEncryptionType(v string) *CancelResizeOutput {
10503	s.TargetEncryptionType = &v
10504	return s
10505}
10506
10507// SetTargetNodeType sets the TargetNodeType field's value.
10508func (s *CancelResizeOutput) SetTargetNodeType(v string) *CancelResizeOutput {
10509	s.TargetNodeType = &v
10510	return s
10511}
10512
10513// SetTargetNumberOfNodes sets the TargetNumberOfNodes field's value.
10514func (s *CancelResizeOutput) SetTargetNumberOfNodes(v int64) *CancelResizeOutput {
10515	s.TargetNumberOfNodes = &v
10516	return s
10517}
10518
10519// SetTotalResizeDataInMegaBytes sets the TotalResizeDataInMegaBytes field's value.
10520func (s *CancelResizeOutput) SetTotalResizeDataInMegaBytes(v int64) *CancelResizeOutput {
10521	s.TotalResizeDataInMegaBytes = &v
10522	return s
10523}
10524
10525// Describes a cluster.
10526type Cluster struct {
10527	_ struct{} `type:"structure"`
10528
10529	// A boolean value that, if true, indicates that major version upgrades will
10530	// be applied automatically to the cluster during the maintenance window.
10531	AllowVersionUpgrade *bool `type:"boolean"`
10532
10533	// The number of days that automatic cluster snapshots are retained.
10534	AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
10535
10536	// The name of the Availability Zone in which the cluster is located.
10537	AvailabilityZone *string `type:"string"`
10538
10539	// The availability status of the cluster for queries. Possible values are the
10540	// following:
10541	//
10542	//    * Available - The cluster is available for queries.
10543	//
10544	//    * Unavailable - The cluster is not available for queries.
10545	//
10546	//    * Maintenance - The cluster is intermittently available for queries due
10547	//    to maintenance activities.
10548	//
10549	//    * Modifying - The cluster is intermittently available for queries due
10550	//    to changes that modify the cluster.
10551	//
10552	//    * Failed - The cluster failed and is not available for queries.
10553	ClusterAvailabilityStatus *string `type:"string"`
10554
10555	// The date and time that the cluster was created.
10556	ClusterCreateTime *time.Time `type:"timestamp"`
10557
10558	// The unique identifier of the cluster.
10559	ClusterIdentifier *string `type:"string"`
10560
10561	// The nodes in the cluster.
10562	ClusterNodes []*ClusterNode `type:"list"`
10563
10564	// The list of cluster parameter groups that are associated with this cluster.
10565	// Each parameter group in the list is returned with its status.
10566	ClusterParameterGroups []*ClusterParameterGroupStatus `locationNameList:"ClusterParameterGroup" type:"list"`
10567
10568	// The public key for the cluster.
10569	ClusterPublicKey *string `type:"string"`
10570
10571	// The specific revision number of the database in the cluster.
10572	ClusterRevisionNumber *string `type:"string"`
10573
10574	// A list of cluster security group that are associated with the cluster. Each
10575	// security group is represented by an element that contains ClusterSecurityGroup.Name
10576	// and ClusterSecurityGroup.Status subelements.
10577	//
10578	// Cluster security groups are used when the cluster is not created in an Amazon
10579	// Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security
10580	// groups, which are listed by the VpcSecurityGroups parameter.
10581	ClusterSecurityGroups []*ClusterSecurityGroupMembership `locationNameList:"ClusterSecurityGroup" type:"list"`
10582
10583	// A value that returns the destination region and retention period that are
10584	// configured for cross-region snapshot copy.
10585	ClusterSnapshotCopyStatus *ClusterSnapshotCopyStatus `type:"structure"`
10586
10587	// The current state of the cluster. Possible values are the following:
10588	//
10589	//    * available
10590	//
10591	//    * available, prep-for-resize
10592	//
10593	//    * available, resize-cleanup
10594	//
10595	//    * cancelling-resize
10596	//
10597	//    * creating
10598	//
10599	//    * deleting
10600	//
10601	//    * final-snapshot
10602	//
10603	//    * hardware-failure
10604	//
10605	//    * incompatible-hsm
10606	//
10607	//    * incompatible-network
10608	//
10609	//    * incompatible-parameters
10610	//
10611	//    * incompatible-restore
10612	//
10613	//    * modifying
10614	//
10615	//    * paused
10616	//
10617	//    * rebooting
10618	//
10619	//    * renaming
10620	//
10621	//    * resizing
10622	//
10623	//    * rotating-keys
10624	//
10625	//    * storage-full
10626	//
10627	//    * updating-hsm
10628	ClusterStatus *string `type:"string"`
10629
10630	// The name of the subnet group that is associated with the cluster. This parameter
10631	// is valid only when the cluster is in a VPC.
10632	ClusterSubnetGroupName *string `type:"string"`
10633
10634	// The version ID of the Amazon Redshift engine that is running on the cluster.
10635	ClusterVersion *string `type:"string"`
10636
10637	// The name of the initial database that was created when the cluster was created.
10638	// This same name is returned for the life of the cluster. If an initial database
10639	// was not specified, a database named devdev was created by default.
10640	DBName *string `type:"string"`
10641
10642	// Describes the status of a cluster while it is in the process of resizing
10643	// with an incremental resize.
10644	DataTransferProgress *DataTransferProgress `type:"structure"`
10645
10646	// Describes a group of DeferredMaintenanceWindow objects.
10647	DeferredMaintenanceWindows []*DeferredMaintenanceWindow `locationNameList:"DeferredMaintenanceWindow" type:"list"`
10648
10649	// The status of the elastic IP (EIP) address.
10650	ElasticIpStatus *ElasticIpStatus `type:"structure"`
10651
10652	// The number of nodes that you can resize the cluster to with the elastic resize
10653	// method.
10654	ElasticResizeNumberOfNodeOptions *string `type:"string"`
10655
10656	// A boolean value that, if true, indicates that data in the cluster is encrypted
10657	// at rest.
10658	Encrypted *bool `type:"boolean"`
10659
10660	// The connection endpoint.
10661	Endpoint *Endpoint `type:"structure"`
10662
10663	// An option that specifies whether to create the cluster with enhanced VPC
10664	// routing enabled. To create a cluster that uses enhanced VPC routing, the
10665	// cluster must be in a VPC. For more information, see Enhanced VPC Routing
10666	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
10667	// in the Amazon Redshift Cluster Management Guide.
10668	//
10669	// If this option is true, enhanced VPC routing is enabled.
10670	//
10671	// Default: false
10672	EnhancedVpcRouting *bool `type:"boolean"`
10673
10674	// The date and time when the next snapshot is expected to be taken for clusters
10675	// with a valid snapshot schedule and backups enabled.
10676	ExpectedNextSnapshotScheduleTime *time.Time `type:"timestamp"`
10677
10678	// The status of next expected snapshot for clusters having a valid snapshot
10679	// schedule and backups enabled. Possible values are the following:
10680	//
10681	//    * OnTrack - The next snapshot is expected to be taken on time.
10682	//
10683	//    * Pending - The next snapshot is pending to be taken.
10684	ExpectedNextSnapshotScheduleTimeStatus *string `type:"string"`
10685
10686	// A value that reports whether the Amazon Redshift cluster has finished applying
10687	// any hardware security module (HSM) settings changes specified in a modify
10688	// cluster command.
10689	//
10690	// Values: active, applying
10691	HsmStatus *HsmStatus `type:"structure"`
10692
10693	// A list of AWS Identity and Access Management (IAM) roles that can be used
10694	// by the cluster to access other AWS services.
10695	IamRoles []*ClusterIamRole `locationNameList:"ClusterIamRole" type:"list"`
10696
10697	// The AWS Key Management Service (AWS KMS) key ID of the encryption key used
10698	// to encrypt data in the cluster.
10699	KmsKeyId *string `type:"string"`
10700
10701	// The name of the maintenance track for the cluster.
10702	MaintenanceTrackName *string `type:"string"`
10703
10704	// The default number of days to retain a manual snapshot. If the value is -1,
10705	// the snapshot is retained indefinitely. This setting doesn't change the retention
10706	// period of existing snapshots.
10707	//
10708	// The value must be either -1 or an integer between 1 and 3,653.
10709	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
10710
10711	// The master user name for the cluster. This name is used to connect to the
10712	// database that is specified in the DBName parameter.
10713	MasterUsername *string `type:"string"`
10714
10715	// The status of a modify operation, if any, initiated for the cluster.
10716	ModifyStatus *string `type:"string"`
10717
10718	// The date and time in UTC when system maintenance can begin.
10719	NextMaintenanceWindowStartTime *time.Time `type:"timestamp"`
10720
10721	// The node type for the nodes in the cluster.
10722	NodeType *string `type:"string"`
10723
10724	// The number of compute nodes in the cluster.
10725	NumberOfNodes *int64 `type:"integer"`
10726
10727	// Cluster operations that are waiting to be started.
10728	PendingActions []*string `type:"list"`
10729
10730	// A value that, if present, indicates that changes to the cluster are pending.
10731	// Specific pending changes are identified by subelements.
10732	PendingModifiedValues *PendingModifiedValues `type:"structure"`
10733
10734	// The weekly time range, in Universal Coordinated Time (UTC), during which
10735	// system maintenance can occur.
10736	PreferredMaintenanceWindow *string `type:"string"`
10737
10738	// A boolean value that, if true, indicates that the cluster can be accessed
10739	// from a public network.
10740	PubliclyAccessible *bool `type:"boolean"`
10741
10742	// Returns the following:
10743	//
10744	//    * AllowCancelResize: a boolean value indicating if the resize operation
10745	//    can be cancelled.
10746	//
10747	//    * ResizeType: Returns ClassicResize
10748	ResizeInfo *ResizeInfo `type:"structure"`
10749
10750	// A value that describes the status of a cluster restore action. This parameter
10751	// returns null if the cluster was not created by restoring a snapshot.
10752	RestoreStatus *RestoreStatus `type:"structure"`
10753
10754	// A unique identifier for the cluster snapshot schedule.
10755	SnapshotScheduleIdentifier *string `type:"string"`
10756
10757	// The current state of the cluster snapshot schedule.
10758	SnapshotScheduleState *string `type:"string" enum:"ScheduleState"`
10759
10760	// The list of tags for the cluster.
10761	Tags []*Tag `locationNameList:"Tag" type:"list"`
10762
10763	// The identifier of the VPC the cluster is in, if the cluster is in a VPC.
10764	VpcId *string `type:"string"`
10765
10766	// A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that
10767	// are associated with the cluster. This parameter is returned only if the cluster
10768	// is in a VPC.
10769	VpcSecurityGroups []*VpcSecurityGroupMembership `locationNameList:"VpcSecurityGroup" type:"list"`
10770}
10771
10772// String returns the string representation
10773func (s Cluster) String() string {
10774	return awsutil.Prettify(s)
10775}
10776
10777// GoString returns the string representation
10778func (s Cluster) GoString() string {
10779	return s.String()
10780}
10781
10782// SetAllowVersionUpgrade sets the AllowVersionUpgrade field's value.
10783func (s *Cluster) SetAllowVersionUpgrade(v bool) *Cluster {
10784	s.AllowVersionUpgrade = &v
10785	return s
10786}
10787
10788// SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
10789func (s *Cluster) SetAutomatedSnapshotRetentionPeriod(v int64) *Cluster {
10790	s.AutomatedSnapshotRetentionPeriod = &v
10791	return s
10792}
10793
10794// SetAvailabilityZone sets the AvailabilityZone field's value.
10795func (s *Cluster) SetAvailabilityZone(v string) *Cluster {
10796	s.AvailabilityZone = &v
10797	return s
10798}
10799
10800// SetClusterAvailabilityStatus sets the ClusterAvailabilityStatus field's value.
10801func (s *Cluster) SetClusterAvailabilityStatus(v string) *Cluster {
10802	s.ClusterAvailabilityStatus = &v
10803	return s
10804}
10805
10806// SetClusterCreateTime sets the ClusterCreateTime field's value.
10807func (s *Cluster) SetClusterCreateTime(v time.Time) *Cluster {
10808	s.ClusterCreateTime = &v
10809	return s
10810}
10811
10812// SetClusterIdentifier sets the ClusterIdentifier field's value.
10813func (s *Cluster) SetClusterIdentifier(v string) *Cluster {
10814	s.ClusterIdentifier = &v
10815	return s
10816}
10817
10818// SetClusterNodes sets the ClusterNodes field's value.
10819func (s *Cluster) SetClusterNodes(v []*ClusterNode) *Cluster {
10820	s.ClusterNodes = v
10821	return s
10822}
10823
10824// SetClusterParameterGroups sets the ClusterParameterGroups field's value.
10825func (s *Cluster) SetClusterParameterGroups(v []*ClusterParameterGroupStatus) *Cluster {
10826	s.ClusterParameterGroups = v
10827	return s
10828}
10829
10830// SetClusterPublicKey sets the ClusterPublicKey field's value.
10831func (s *Cluster) SetClusterPublicKey(v string) *Cluster {
10832	s.ClusterPublicKey = &v
10833	return s
10834}
10835
10836// SetClusterRevisionNumber sets the ClusterRevisionNumber field's value.
10837func (s *Cluster) SetClusterRevisionNumber(v string) *Cluster {
10838	s.ClusterRevisionNumber = &v
10839	return s
10840}
10841
10842// SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
10843func (s *Cluster) SetClusterSecurityGroups(v []*ClusterSecurityGroupMembership) *Cluster {
10844	s.ClusterSecurityGroups = v
10845	return s
10846}
10847
10848// SetClusterSnapshotCopyStatus sets the ClusterSnapshotCopyStatus field's value.
10849func (s *Cluster) SetClusterSnapshotCopyStatus(v *ClusterSnapshotCopyStatus) *Cluster {
10850	s.ClusterSnapshotCopyStatus = v
10851	return s
10852}
10853
10854// SetClusterStatus sets the ClusterStatus field's value.
10855func (s *Cluster) SetClusterStatus(v string) *Cluster {
10856	s.ClusterStatus = &v
10857	return s
10858}
10859
10860// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
10861func (s *Cluster) SetClusterSubnetGroupName(v string) *Cluster {
10862	s.ClusterSubnetGroupName = &v
10863	return s
10864}
10865
10866// SetClusterVersion sets the ClusterVersion field's value.
10867func (s *Cluster) SetClusterVersion(v string) *Cluster {
10868	s.ClusterVersion = &v
10869	return s
10870}
10871
10872// SetDBName sets the DBName field's value.
10873func (s *Cluster) SetDBName(v string) *Cluster {
10874	s.DBName = &v
10875	return s
10876}
10877
10878// SetDataTransferProgress sets the DataTransferProgress field's value.
10879func (s *Cluster) SetDataTransferProgress(v *DataTransferProgress) *Cluster {
10880	s.DataTransferProgress = v
10881	return s
10882}
10883
10884// SetDeferredMaintenanceWindows sets the DeferredMaintenanceWindows field's value.
10885func (s *Cluster) SetDeferredMaintenanceWindows(v []*DeferredMaintenanceWindow) *Cluster {
10886	s.DeferredMaintenanceWindows = v
10887	return s
10888}
10889
10890// SetElasticIpStatus sets the ElasticIpStatus field's value.
10891func (s *Cluster) SetElasticIpStatus(v *ElasticIpStatus) *Cluster {
10892	s.ElasticIpStatus = v
10893	return s
10894}
10895
10896// SetElasticResizeNumberOfNodeOptions sets the ElasticResizeNumberOfNodeOptions field's value.
10897func (s *Cluster) SetElasticResizeNumberOfNodeOptions(v string) *Cluster {
10898	s.ElasticResizeNumberOfNodeOptions = &v
10899	return s
10900}
10901
10902// SetEncrypted sets the Encrypted field's value.
10903func (s *Cluster) SetEncrypted(v bool) *Cluster {
10904	s.Encrypted = &v
10905	return s
10906}
10907
10908// SetEndpoint sets the Endpoint field's value.
10909func (s *Cluster) SetEndpoint(v *Endpoint) *Cluster {
10910	s.Endpoint = v
10911	return s
10912}
10913
10914// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
10915func (s *Cluster) SetEnhancedVpcRouting(v bool) *Cluster {
10916	s.EnhancedVpcRouting = &v
10917	return s
10918}
10919
10920// SetExpectedNextSnapshotScheduleTime sets the ExpectedNextSnapshotScheduleTime field's value.
10921func (s *Cluster) SetExpectedNextSnapshotScheduleTime(v time.Time) *Cluster {
10922	s.ExpectedNextSnapshotScheduleTime = &v
10923	return s
10924}
10925
10926// SetExpectedNextSnapshotScheduleTimeStatus sets the ExpectedNextSnapshotScheduleTimeStatus field's value.
10927func (s *Cluster) SetExpectedNextSnapshotScheduleTimeStatus(v string) *Cluster {
10928	s.ExpectedNextSnapshotScheduleTimeStatus = &v
10929	return s
10930}
10931
10932// SetHsmStatus sets the HsmStatus field's value.
10933func (s *Cluster) SetHsmStatus(v *HsmStatus) *Cluster {
10934	s.HsmStatus = v
10935	return s
10936}
10937
10938// SetIamRoles sets the IamRoles field's value.
10939func (s *Cluster) SetIamRoles(v []*ClusterIamRole) *Cluster {
10940	s.IamRoles = v
10941	return s
10942}
10943
10944// SetKmsKeyId sets the KmsKeyId field's value.
10945func (s *Cluster) SetKmsKeyId(v string) *Cluster {
10946	s.KmsKeyId = &v
10947	return s
10948}
10949
10950// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
10951func (s *Cluster) SetMaintenanceTrackName(v string) *Cluster {
10952	s.MaintenanceTrackName = &v
10953	return s
10954}
10955
10956// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
10957func (s *Cluster) SetManualSnapshotRetentionPeriod(v int64) *Cluster {
10958	s.ManualSnapshotRetentionPeriod = &v
10959	return s
10960}
10961
10962// SetMasterUsername sets the MasterUsername field's value.
10963func (s *Cluster) SetMasterUsername(v string) *Cluster {
10964	s.MasterUsername = &v
10965	return s
10966}
10967
10968// SetModifyStatus sets the ModifyStatus field's value.
10969func (s *Cluster) SetModifyStatus(v string) *Cluster {
10970	s.ModifyStatus = &v
10971	return s
10972}
10973
10974// SetNextMaintenanceWindowStartTime sets the NextMaintenanceWindowStartTime field's value.
10975func (s *Cluster) SetNextMaintenanceWindowStartTime(v time.Time) *Cluster {
10976	s.NextMaintenanceWindowStartTime = &v
10977	return s
10978}
10979
10980// SetNodeType sets the NodeType field's value.
10981func (s *Cluster) SetNodeType(v string) *Cluster {
10982	s.NodeType = &v
10983	return s
10984}
10985
10986// SetNumberOfNodes sets the NumberOfNodes field's value.
10987func (s *Cluster) SetNumberOfNodes(v int64) *Cluster {
10988	s.NumberOfNodes = &v
10989	return s
10990}
10991
10992// SetPendingActions sets the PendingActions field's value.
10993func (s *Cluster) SetPendingActions(v []*string) *Cluster {
10994	s.PendingActions = v
10995	return s
10996}
10997
10998// SetPendingModifiedValues sets the PendingModifiedValues field's value.
10999func (s *Cluster) SetPendingModifiedValues(v *PendingModifiedValues) *Cluster {
11000	s.PendingModifiedValues = v
11001	return s
11002}
11003
11004// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
11005func (s *Cluster) SetPreferredMaintenanceWindow(v string) *Cluster {
11006	s.PreferredMaintenanceWindow = &v
11007	return s
11008}
11009
11010// SetPubliclyAccessible sets the PubliclyAccessible field's value.
11011func (s *Cluster) SetPubliclyAccessible(v bool) *Cluster {
11012	s.PubliclyAccessible = &v
11013	return s
11014}
11015
11016// SetResizeInfo sets the ResizeInfo field's value.
11017func (s *Cluster) SetResizeInfo(v *ResizeInfo) *Cluster {
11018	s.ResizeInfo = v
11019	return s
11020}
11021
11022// SetRestoreStatus sets the RestoreStatus field's value.
11023func (s *Cluster) SetRestoreStatus(v *RestoreStatus) *Cluster {
11024	s.RestoreStatus = v
11025	return s
11026}
11027
11028// SetSnapshotScheduleIdentifier sets the SnapshotScheduleIdentifier field's value.
11029func (s *Cluster) SetSnapshotScheduleIdentifier(v string) *Cluster {
11030	s.SnapshotScheduleIdentifier = &v
11031	return s
11032}
11033
11034// SetSnapshotScheduleState sets the SnapshotScheduleState field's value.
11035func (s *Cluster) SetSnapshotScheduleState(v string) *Cluster {
11036	s.SnapshotScheduleState = &v
11037	return s
11038}
11039
11040// SetTags sets the Tags field's value.
11041func (s *Cluster) SetTags(v []*Tag) *Cluster {
11042	s.Tags = v
11043	return s
11044}
11045
11046// SetVpcId sets the VpcId field's value.
11047func (s *Cluster) SetVpcId(v string) *Cluster {
11048	s.VpcId = &v
11049	return s
11050}
11051
11052// SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
11053func (s *Cluster) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *Cluster {
11054	s.VpcSecurityGroups = v
11055	return s
11056}
11057
11058type ClusterAssociatedToSchedule struct {
11059	_ struct{} `type:"structure"`
11060
11061	ClusterIdentifier *string `type:"string"`
11062
11063	ScheduleAssociationState *string `type:"string" enum:"ScheduleState"`
11064}
11065
11066// String returns the string representation
11067func (s ClusterAssociatedToSchedule) String() string {
11068	return awsutil.Prettify(s)
11069}
11070
11071// GoString returns the string representation
11072func (s ClusterAssociatedToSchedule) GoString() string {
11073	return s.String()
11074}
11075
11076// SetClusterIdentifier sets the ClusterIdentifier field's value.
11077func (s *ClusterAssociatedToSchedule) SetClusterIdentifier(v string) *ClusterAssociatedToSchedule {
11078	s.ClusterIdentifier = &v
11079	return s
11080}
11081
11082// SetScheduleAssociationState sets the ScheduleAssociationState field's value.
11083func (s *ClusterAssociatedToSchedule) SetScheduleAssociationState(v string) *ClusterAssociatedToSchedule {
11084	s.ScheduleAssociationState = &v
11085	return s
11086}
11087
11088// Describes a ClusterDbRevision.
11089type ClusterDbRevision struct {
11090	_ struct{} `type:"structure"`
11091
11092	// The unique identifier of the cluster.
11093	ClusterIdentifier *string `type:"string"`
11094
11095	// A string representing the current cluster version.
11096	CurrentDatabaseRevision *string `type:"string"`
11097
11098	// The date on which the database revision was released.
11099	DatabaseRevisionReleaseDate *time.Time `type:"timestamp"`
11100
11101	// A list of RevisionTarget objects, where each object describes the database
11102	// revision that a cluster can be updated to.
11103	RevisionTargets []*RevisionTarget `locationNameList:"RevisionTarget" type:"list"`
11104}
11105
11106// String returns the string representation
11107func (s ClusterDbRevision) String() string {
11108	return awsutil.Prettify(s)
11109}
11110
11111// GoString returns the string representation
11112func (s ClusterDbRevision) GoString() string {
11113	return s.String()
11114}
11115
11116// SetClusterIdentifier sets the ClusterIdentifier field's value.
11117func (s *ClusterDbRevision) SetClusterIdentifier(v string) *ClusterDbRevision {
11118	s.ClusterIdentifier = &v
11119	return s
11120}
11121
11122// SetCurrentDatabaseRevision sets the CurrentDatabaseRevision field's value.
11123func (s *ClusterDbRevision) SetCurrentDatabaseRevision(v string) *ClusterDbRevision {
11124	s.CurrentDatabaseRevision = &v
11125	return s
11126}
11127
11128// SetDatabaseRevisionReleaseDate sets the DatabaseRevisionReleaseDate field's value.
11129func (s *ClusterDbRevision) SetDatabaseRevisionReleaseDate(v time.Time) *ClusterDbRevision {
11130	s.DatabaseRevisionReleaseDate = &v
11131	return s
11132}
11133
11134// SetRevisionTargets sets the RevisionTargets field's value.
11135func (s *ClusterDbRevision) SetRevisionTargets(v []*RevisionTarget) *ClusterDbRevision {
11136	s.RevisionTargets = v
11137	return s
11138}
11139
11140// An AWS Identity and Access Management (IAM) role that can be used by the
11141// associated Amazon Redshift cluster to access other AWS services.
11142type ClusterIamRole struct {
11143	_ struct{} `type:"structure"`
11144
11145	// A value that describes the status of the IAM role's association with an Amazon
11146	// Redshift cluster.
11147	//
11148	// The following are possible statuses and descriptions.
11149	//
11150	//    * in-sync: The role is available for use by the cluster.
11151	//
11152	//    * adding: The role is in the process of being associated with the cluster.
11153	//
11154	//    * removing: The role is in the process of being disassociated with the
11155	//    cluster.
11156	ApplyStatus *string `type:"string"`
11157
11158	// The Amazon Resource Name (ARN) of the IAM role, for example, arn:aws:iam::123456789012:role/RedshiftCopyUnload.
11159	IamRoleArn *string `type:"string"`
11160}
11161
11162// String returns the string representation
11163func (s ClusterIamRole) String() string {
11164	return awsutil.Prettify(s)
11165}
11166
11167// GoString returns the string representation
11168func (s ClusterIamRole) GoString() string {
11169	return s.String()
11170}
11171
11172// SetApplyStatus sets the ApplyStatus field's value.
11173func (s *ClusterIamRole) SetApplyStatus(v string) *ClusterIamRole {
11174	s.ApplyStatus = &v
11175	return s
11176}
11177
11178// SetIamRoleArn sets the IamRoleArn field's value.
11179func (s *ClusterIamRole) SetIamRoleArn(v string) *ClusterIamRole {
11180	s.IamRoleArn = &v
11181	return s
11182}
11183
11184// The identifier of a node in a cluster.
11185type ClusterNode struct {
11186	_ struct{} `type:"structure"`
11187
11188	// Whether the node is a leader node or a compute node.
11189	NodeRole *string `type:"string"`
11190
11191	// The private IP address of a node within a cluster.
11192	PrivateIPAddress *string `type:"string"`
11193
11194	// The public IP address of a node within a cluster.
11195	PublicIPAddress *string `type:"string"`
11196}
11197
11198// String returns the string representation
11199func (s ClusterNode) String() string {
11200	return awsutil.Prettify(s)
11201}
11202
11203// GoString returns the string representation
11204func (s ClusterNode) GoString() string {
11205	return s.String()
11206}
11207
11208// SetNodeRole sets the NodeRole field's value.
11209func (s *ClusterNode) SetNodeRole(v string) *ClusterNode {
11210	s.NodeRole = &v
11211	return s
11212}
11213
11214// SetPrivateIPAddress sets the PrivateIPAddress field's value.
11215func (s *ClusterNode) SetPrivateIPAddress(v string) *ClusterNode {
11216	s.PrivateIPAddress = &v
11217	return s
11218}
11219
11220// SetPublicIPAddress sets the PublicIPAddress field's value.
11221func (s *ClusterNode) SetPublicIPAddress(v string) *ClusterNode {
11222	s.PublicIPAddress = &v
11223	return s
11224}
11225
11226// Describes a parameter group.
11227type ClusterParameterGroup struct {
11228	_ struct{} `type:"structure"`
11229
11230	// The description of the parameter group.
11231	Description *string `type:"string"`
11232
11233	// The name of the cluster parameter group family that this cluster parameter
11234	// group is compatible with.
11235	ParameterGroupFamily *string `type:"string"`
11236
11237	// The name of the cluster parameter group.
11238	ParameterGroupName *string `type:"string"`
11239
11240	// The list of tags for the cluster parameter group.
11241	Tags []*Tag `locationNameList:"Tag" type:"list"`
11242}
11243
11244// String returns the string representation
11245func (s ClusterParameterGroup) String() string {
11246	return awsutil.Prettify(s)
11247}
11248
11249// GoString returns the string representation
11250func (s ClusterParameterGroup) GoString() string {
11251	return s.String()
11252}
11253
11254// SetDescription sets the Description field's value.
11255func (s *ClusterParameterGroup) SetDescription(v string) *ClusterParameterGroup {
11256	s.Description = &v
11257	return s
11258}
11259
11260// SetParameterGroupFamily sets the ParameterGroupFamily field's value.
11261func (s *ClusterParameterGroup) SetParameterGroupFamily(v string) *ClusterParameterGroup {
11262	s.ParameterGroupFamily = &v
11263	return s
11264}
11265
11266// SetParameterGroupName sets the ParameterGroupName field's value.
11267func (s *ClusterParameterGroup) SetParameterGroupName(v string) *ClusterParameterGroup {
11268	s.ParameterGroupName = &v
11269	return s
11270}
11271
11272// SetTags sets the Tags field's value.
11273func (s *ClusterParameterGroup) SetTags(v []*Tag) *ClusterParameterGroup {
11274	s.Tags = v
11275	return s
11276}
11277
11278type ClusterParameterGroupNameMessage struct {
11279	_ struct{} `type:"structure"`
11280
11281	// The name of the cluster parameter group.
11282	ParameterGroupName *string `type:"string"`
11283
11284	// The status of the parameter group. For example, if you made a change to a
11285	// parameter group name-value pair, then the change could be pending a reboot
11286	// of an associated cluster.
11287	ParameterGroupStatus *string `type:"string"`
11288}
11289
11290// String returns the string representation
11291func (s ClusterParameterGroupNameMessage) String() string {
11292	return awsutil.Prettify(s)
11293}
11294
11295// GoString returns the string representation
11296func (s ClusterParameterGroupNameMessage) GoString() string {
11297	return s.String()
11298}
11299
11300// SetParameterGroupName sets the ParameterGroupName field's value.
11301func (s *ClusterParameterGroupNameMessage) SetParameterGroupName(v string) *ClusterParameterGroupNameMessage {
11302	s.ParameterGroupName = &v
11303	return s
11304}
11305
11306// SetParameterGroupStatus sets the ParameterGroupStatus field's value.
11307func (s *ClusterParameterGroupNameMessage) SetParameterGroupStatus(v string) *ClusterParameterGroupNameMessage {
11308	s.ParameterGroupStatus = &v
11309	return s
11310}
11311
11312// Describes the status of a parameter group.
11313type ClusterParameterGroupStatus struct {
11314	_ struct{} `type:"structure"`
11315
11316	// The list of parameter statuses.
11317	//
11318	// For more information about parameters and parameter groups, go to Amazon
11319	// Redshift Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
11320	// in the Amazon Redshift Cluster Management Guide.
11321	ClusterParameterStatusList []*ClusterParameterStatus `type:"list"`
11322
11323	// The status of parameter updates.
11324	ParameterApplyStatus *string `type:"string"`
11325
11326	// The name of the cluster parameter group.
11327	ParameterGroupName *string `type:"string"`
11328}
11329
11330// String returns the string representation
11331func (s ClusterParameterGroupStatus) String() string {
11332	return awsutil.Prettify(s)
11333}
11334
11335// GoString returns the string representation
11336func (s ClusterParameterGroupStatus) GoString() string {
11337	return s.String()
11338}
11339
11340// SetClusterParameterStatusList sets the ClusterParameterStatusList field's value.
11341func (s *ClusterParameterGroupStatus) SetClusterParameterStatusList(v []*ClusterParameterStatus) *ClusterParameterGroupStatus {
11342	s.ClusterParameterStatusList = v
11343	return s
11344}
11345
11346// SetParameterApplyStatus sets the ParameterApplyStatus field's value.
11347func (s *ClusterParameterGroupStatus) SetParameterApplyStatus(v string) *ClusterParameterGroupStatus {
11348	s.ParameterApplyStatus = &v
11349	return s
11350}
11351
11352// SetParameterGroupName sets the ParameterGroupName field's value.
11353func (s *ClusterParameterGroupStatus) SetParameterGroupName(v string) *ClusterParameterGroupStatus {
11354	s.ParameterGroupName = &v
11355	return s
11356}
11357
11358// Describes the status of a parameter group.
11359type ClusterParameterStatus struct {
11360	_ struct{} `type:"structure"`
11361
11362	// The error that prevented the parameter from being applied to the database.
11363	ParameterApplyErrorDescription *string `type:"string"`
11364
11365	// The status of the parameter that indicates whether the parameter is in sync
11366	// with the database, waiting for a cluster reboot, or encountered an error
11367	// when being applied.
11368	//
11369	// The following are possible statuses and descriptions.
11370	//
11371	//    * in-sync: The parameter value is in sync with the database.
11372	//
11373	//    * pending-reboot: The parameter value will be applied after the cluster
11374	//    reboots.
11375	//
11376	//    * applying: The parameter value is being applied to the database.
11377	//
11378	//    * invalid-parameter: Cannot apply the parameter value because it has an
11379	//    invalid value or syntax.
11380	//
11381	//    * apply-deferred: The parameter contains static property changes. The
11382	//    changes are deferred until the cluster reboots.
11383	//
11384	//    * apply-error: Cannot connect to the cluster. The parameter change will
11385	//    be applied after the cluster reboots.
11386	//
11387	//    * unknown-error: Cannot apply the parameter change right now. The change
11388	//    will be applied after the cluster reboots.
11389	ParameterApplyStatus *string `type:"string"`
11390
11391	// The name of the parameter.
11392	ParameterName *string `type:"string"`
11393}
11394
11395// String returns the string representation
11396func (s ClusterParameterStatus) String() string {
11397	return awsutil.Prettify(s)
11398}
11399
11400// GoString returns the string representation
11401func (s ClusterParameterStatus) GoString() string {
11402	return s.String()
11403}
11404
11405// SetParameterApplyErrorDescription sets the ParameterApplyErrorDescription field's value.
11406func (s *ClusterParameterStatus) SetParameterApplyErrorDescription(v string) *ClusterParameterStatus {
11407	s.ParameterApplyErrorDescription = &v
11408	return s
11409}
11410
11411// SetParameterApplyStatus sets the ParameterApplyStatus field's value.
11412func (s *ClusterParameterStatus) SetParameterApplyStatus(v string) *ClusterParameterStatus {
11413	s.ParameterApplyStatus = &v
11414	return s
11415}
11416
11417// SetParameterName sets the ParameterName field's value.
11418func (s *ClusterParameterStatus) SetParameterName(v string) *ClusterParameterStatus {
11419	s.ParameterName = &v
11420	return s
11421}
11422
11423// Describes a security group.
11424type ClusterSecurityGroup struct {
11425	_ struct{} `type:"structure"`
11426
11427	// The name of the cluster security group to which the operation was applied.
11428	ClusterSecurityGroupName *string `type:"string"`
11429
11430	// A description of the security group.
11431	Description *string `type:"string"`
11432
11433	// A list of EC2 security groups that are permitted to access clusters associated
11434	// with this cluster security group.
11435	EC2SecurityGroups []*EC2SecurityGroup `locationNameList:"EC2SecurityGroup" type:"list"`
11436
11437	// A list of IP ranges (CIDR blocks) that are permitted to access clusters associated
11438	// with this cluster security group.
11439	IPRanges []*IPRange `locationNameList:"IPRange" type:"list"`
11440
11441	// The list of tags for the cluster security group.
11442	Tags []*Tag `locationNameList:"Tag" type:"list"`
11443}
11444
11445// String returns the string representation
11446func (s ClusterSecurityGroup) String() string {
11447	return awsutil.Prettify(s)
11448}
11449
11450// GoString returns the string representation
11451func (s ClusterSecurityGroup) GoString() string {
11452	return s.String()
11453}
11454
11455// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
11456func (s *ClusterSecurityGroup) SetClusterSecurityGroupName(v string) *ClusterSecurityGroup {
11457	s.ClusterSecurityGroupName = &v
11458	return s
11459}
11460
11461// SetDescription sets the Description field's value.
11462func (s *ClusterSecurityGroup) SetDescription(v string) *ClusterSecurityGroup {
11463	s.Description = &v
11464	return s
11465}
11466
11467// SetEC2SecurityGroups sets the EC2SecurityGroups field's value.
11468func (s *ClusterSecurityGroup) SetEC2SecurityGroups(v []*EC2SecurityGroup) *ClusterSecurityGroup {
11469	s.EC2SecurityGroups = v
11470	return s
11471}
11472
11473// SetIPRanges sets the IPRanges field's value.
11474func (s *ClusterSecurityGroup) SetIPRanges(v []*IPRange) *ClusterSecurityGroup {
11475	s.IPRanges = v
11476	return s
11477}
11478
11479// SetTags sets the Tags field's value.
11480func (s *ClusterSecurityGroup) SetTags(v []*Tag) *ClusterSecurityGroup {
11481	s.Tags = v
11482	return s
11483}
11484
11485// Describes a cluster security group.
11486type ClusterSecurityGroupMembership struct {
11487	_ struct{} `type:"structure"`
11488
11489	// The name of the cluster security group.
11490	ClusterSecurityGroupName *string `type:"string"`
11491
11492	// The status of the cluster security group.
11493	Status *string `type:"string"`
11494}
11495
11496// String returns the string representation
11497func (s ClusterSecurityGroupMembership) String() string {
11498	return awsutil.Prettify(s)
11499}
11500
11501// GoString returns the string representation
11502func (s ClusterSecurityGroupMembership) GoString() string {
11503	return s.String()
11504}
11505
11506// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
11507func (s *ClusterSecurityGroupMembership) SetClusterSecurityGroupName(v string) *ClusterSecurityGroupMembership {
11508	s.ClusterSecurityGroupName = &v
11509	return s
11510}
11511
11512// SetStatus sets the Status field's value.
11513func (s *ClusterSecurityGroupMembership) SetStatus(v string) *ClusterSecurityGroupMembership {
11514	s.Status = &v
11515	return s
11516}
11517
11518// Returns the destination region and retention period that are configured for
11519// cross-region snapshot copy.
11520type ClusterSnapshotCopyStatus struct {
11521	_ struct{} `type:"structure"`
11522
11523	// The destination region that snapshots are automatically copied to when cross-region
11524	// snapshot copy is enabled.
11525	DestinationRegion *string `type:"string"`
11526
11527	// The number of days that automated snapshots are retained in the destination
11528	// region after they are copied from a source region. If the value is -1, the
11529	// manual snapshot is retained indefinitely.
11530	//
11531	// The value must be either -1 or an integer between 1 and 3,653.
11532	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
11533
11534	// The number of days that automated snapshots are retained in the destination
11535	// region after they are copied from a source region.
11536	RetentionPeriod *int64 `type:"long"`
11537
11538	// The name of the snapshot copy grant.
11539	SnapshotCopyGrantName *string `type:"string"`
11540}
11541
11542// String returns the string representation
11543func (s ClusterSnapshotCopyStatus) String() string {
11544	return awsutil.Prettify(s)
11545}
11546
11547// GoString returns the string representation
11548func (s ClusterSnapshotCopyStatus) GoString() string {
11549	return s.String()
11550}
11551
11552// SetDestinationRegion sets the DestinationRegion field's value.
11553func (s *ClusterSnapshotCopyStatus) SetDestinationRegion(v string) *ClusterSnapshotCopyStatus {
11554	s.DestinationRegion = &v
11555	return s
11556}
11557
11558// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
11559func (s *ClusterSnapshotCopyStatus) SetManualSnapshotRetentionPeriod(v int64) *ClusterSnapshotCopyStatus {
11560	s.ManualSnapshotRetentionPeriod = &v
11561	return s
11562}
11563
11564// SetRetentionPeriod sets the RetentionPeriod field's value.
11565func (s *ClusterSnapshotCopyStatus) SetRetentionPeriod(v int64) *ClusterSnapshotCopyStatus {
11566	s.RetentionPeriod = &v
11567	return s
11568}
11569
11570// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
11571func (s *ClusterSnapshotCopyStatus) SetSnapshotCopyGrantName(v string) *ClusterSnapshotCopyStatus {
11572	s.SnapshotCopyGrantName = &v
11573	return s
11574}
11575
11576// Describes a subnet group.
11577type ClusterSubnetGroup struct {
11578	_ struct{} `type:"structure"`
11579
11580	// The name of the cluster subnet group.
11581	ClusterSubnetGroupName *string `type:"string"`
11582
11583	// The description of the cluster subnet group.
11584	Description *string `type:"string"`
11585
11586	// The status of the cluster subnet group. Possible values are Complete, Incomplete
11587	// and Invalid.
11588	SubnetGroupStatus *string `type:"string"`
11589
11590	// A list of the VPC Subnet elements.
11591	Subnets []*Subnet `locationNameList:"Subnet" type:"list"`
11592
11593	// The list of tags for the cluster subnet group.
11594	Tags []*Tag `locationNameList:"Tag" type:"list"`
11595
11596	// The VPC ID of the cluster subnet group.
11597	VpcId *string `type:"string"`
11598}
11599
11600// String returns the string representation
11601func (s ClusterSubnetGroup) String() string {
11602	return awsutil.Prettify(s)
11603}
11604
11605// GoString returns the string representation
11606func (s ClusterSubnetGroup) GoString() string {
11607	return s.String()
11608}
11609
11610// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
11611func (s *ClusterSubnetGroup) SetClusterSubnetGroupName(v string) *ClusterSubnetGroup {
11612	s.ClusterSubnetGroupName = &v
11613	return s
11614}
11615
11616// SetDescription sets the Description field's value.
11617func (s *ClusterSubnetGroup) SetDescription(v string) *ClusterSubnetGroup {
11618	s.Description = &v
11619	return s
11620}
11621
11622// SetSubnetGroupStatus sets the SubnetGroupStatus field's value.
11623func (s *ClusterSubnetGroup) SetSubnetGroupStatus(v string) *ClusterSubnetGroup {
11624	s.SubnetGroupStatus = &v
11625	return s
11626}
11627
11628// SetSubnets sets the Subnets field's value.
11629func (s *ClusterSubnetGroup) SetSubnets(v []*Subnet) *ClusterSubnetGroup {
11630	s.Subnets = v
11631	return s
11632}
11633
11634// SetTags sets the Tags field's value.
11635func (s *ClusterSubnetGroup) SetTags(v []*Tag) *ClusterSubnetGroup {
11636	s.Tags = v
11637	return s
11638}
11639
11640// SetVpcId sets the VpcId field's value.
11641func (s *ClusterSubnetGroup) SetVpcId(v string) *ClusterSubnetGroup {
11642	s.VpcId = &v
11643	return s
11644}
11645
11646// Describes a cluster version, including the parameter group family and description
11647// of the version.
11648type ClusterVersion struct {
11649	_ struct{} `type:"structure"`
11650
11651	// The name of the cluster parameter group family for the cluster.
11652	ClusterParameterGroupFamily *string `type:"string"`
11653
11654	// The version number used by the cluster.
11655	ClusterVersion *string `type:"string"`
11656
11657	// The description of the cluster version.
11658	Description *string `type:"string"`
11659}
11660
11661// String returns the string representation
11662func (s ClusterVersion) String() string {
11663	return awsutil.Prettify(s)
11664}
11665
11666// GoString returns the string representation
11667func (s ClusterVersion) GoString() string {
11668	return s.String()
11669}
11670
11671// SetClusterParameterGroupFamily sets the ClusterParameterGroupFamily field's value.
11672func (s *ClusterVersion) SetClusterParameterGroupFamily(v string) *ClusterVersion {
11673	s.ClusterParameterGroupFamily = &v
11674	return s
11675}
11676
11677// SetClusterVersion sets the ClusterVersion field's value.
11678func (s *ClusterVersion) SetClusterVersion(v string) *ClusterVersion {
11679	s.ClusterVersion = &v
11680	return s
11681}
11682
11683// SetDescription sets the Description field's value.
11684func (s *ClusterVersion) SetDescription(v string) *ClusterVersion {
11685	s.Description = &v
11686	return s
11687}
11688
11689type CopyClusterSnapshotInput struct {
11690	_ struct{} `type:"structure"`
11691
11692	// The number of days that a manual snapshot is retained. If the value is -1,
11693	// the manual snapshot is retained indefinitely.
11694	//
11695	// The value must be either -1 or an integer between 1 and 3,653.
11696	//
11697	// The default value is -1.
11698	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
11699
11700	// The identifier of the cluster the source snapshot was created from. This
11701	// parameter is required if your IAM user has a policy containing a snapshot
11702	// resource element that specifies anything other than * for the cluster name.
11703	//
11704	// Constraints:
11705	//
11706	//    * Must be the identifier for a valid cluster.
11707	SourceSnapshotClusterIdentifier *string `type:"string"`
11708
11709	// The identifier for the source snapshot.
11710	//
11711	// Constraints:
11712	//
11713	//    * Must be the identifier for a valid automated snapshot whose state is
11714	//    available.
11715	//
11716	// SourceSnapshotIdentifier is a required field
11717	SourceSnapshotIdentifier *string `type:"string" required:"true"`
11718
11719	// The identifier given to the new manual snapshot.
11720	//
11721	// Constraints:
11722	//
11723	//    * Cannot be null, empty, or blank.
11724	//
11725	//    * Must contain from 1 to 255 alphanumeric characters or hyphens.
11726	//
11727	//    * First character must be a letter.
11728	//
11729	//    * Cannot end with a hyphen or contain two consecutive hyphens.
11730	//
11731	//    * Must be unique for the AWS account that is making the request.
11732	//
11733	// TargetSnapshotIdentifier is a required field
11734	TargetSnapshotIdentifier *string `type:"string" required:"true"`
11735}
11736
11737// String returns the string representation
11738func (s CopyClusterSnapshotInput) String() string {
11739	return awsutil.Prettify(s)
11740}
11741
11742// GoString returns the string representation
11743func (s CopyClusterSnapshotInput) GoString() string {
11744	return s.String()
11745}
11746
11747// Validate inspects the fields of the type to determine if they are valid.
11748func (s *CopyClusterSnapshotInput) Validate() error {
11749	invalidParams := request.ErrInvalidParams{Context: "CopyClusterSnapshotInput"}
11750	if s.SourceSnapshotIdentifier == nil {
11751		invalidParams.Add(request.NewErrParamRequired("SourceSnapshotIdentifier"))
11752	}
11753	if s.TargetSnapshotIdentifier == nil {
11754		invalidParams.Add(request.NewErrParamRequired("TargetSnapshotIdentifier"))
11755	}
11756
11757	if invalidParams.Len() > 0 {
11758		return invalidParams
11759	}
11760	return nil
11761}
11762
11763// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
11764func (s *CopyClusterSnapshotInput) SetManualSnapshotRetentionPeriod(v int64) *CopyClusterSnapshotInput {
11765	s.ManualSnapshotRetentionPeriod = &v
11766	return s
11767}
11768
11769// SetSourceSnapshotClusterIdentifier sets the SourceSnapshotClusterIdentifier field's value.
11770func (s *CopyClusterSnapshotInput) SetSourceSnapshotClusterIdentifier(v string) *CopyClusterSnapshotInput {
11771	s.SourceSnapshotClusterIdentifier = &v
11772	return s
11773}
11774
11775// SetSourceSnapshotIdentifier sets the SourceSnapshotIdentifier field's value.
11776func (s *CopyClusterSnapshotInput) SetSourceSnapshotIdentifier(v string) *CopyClusterSnapshotInput {
11777	s.SourceSnapshotIdentifier = &v
11778	return s
11779}
11780
11781// SetTargetSnapshotIdentifier sets the TargetSnapshotIdentifier field's value.
11782func (s *CopyClusterSnapshotInput) SetTargetSnapshotIdentifier(v string) *CopyClusterSnapshotInput {
11783	s.TargetSnapshotIdentifier = &v
11784	return s
11785}
11786
11787type CopyClusterSnapshotOutput struct {
11788	_ struct{} `type:"structure"`
11789
11790	// Describes a snapshot.
11791	Snapshot *Snapshot `type:"structure"`
11792}
11793
11794// String returns the string representation
11795func (s CopyClusterSnapshotOutput) String() string {
11796	return awsutil.Prettify(s)
11797}
11798
11799// GoString returns the string representation
11800func (s CopyClusterSnapshotOutput) GoString() string {
11801	return s.String()
11802}
11803
11804// SetSnapshot sets the Snapshot field's value.
11805func (s *CopyClusterSnapshotOutput) SetSnapshot(v *Snapshot) *CopyClusterSnapshotOutput {
11806	s.Snapshot = v
11807	return s
11808}
11809
11810type CreateClusterInput struct {
11811	_ struct{} `type:"structure"`
11812
11813	// Reserved.
11814	AdditionalInfo *string `type:"string"`
11815
11816	// If true, major version upgrades can be applied during the maintenance window
11817	// to the Amazon Redshift engine that is running on the cluster.
11818	//
11819	// When a new major version of the Amazon Redshift engine is released, you can
11820	// request that the service automatically apply upgrades during the maintenance
11821	// window to the Amazon Redshift engine that is running on your cluster.
11822	//
11823	// Default: true
11824	AllowVersionUpgrade *bool `type:"boolean"`
11825
11826	// The number of days that automated snapshots are retained. If the value is
11827	// 0, automated snapshots are disabled. Even if automated snapshots are disabled,
11828	// you can still create manual snapshots when you want with CreateClusterSnapshot.
11829	//
11830	// Default: 1
11831	//
11832	// Constraints: Must be a value from 0 to 35.
11833	AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
11834
11835	// The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision
11836	// the cluster. For example, if you have several EC2 instances running in a
11837	// specific Availability Zone, then you might want the cluster to be provisioned
11838	// in the same zone in order to decrease network latency.
11839	//
11840	// Default: A random, system-chosen Availability Zone in the region that is
11841	// specified by the endpoint.
11842	//
11843	// Example: us-east-2d
11844	//
11845	// Constraint: The specified Availability Zone must be in the same region as
11846	// the current endpoint.
11847	AvailabilityZone *string `type:"string"`
11848
11849	// A unique identifier for the cluster. You use this identifier to refer to
11850	// the cluster for any subsequent cluster operations such as deleting or modifying.
11851	// The identifier also appears in the Amazon Redshift console.
11852	//
11853	// Constraints:
11854	//
11855	//    * Must contain from 1 to 63 alphanumeric characters or hyphens.
11856	//
11857	//    * Alphabetic characters must be lowercase.
11858	//
11859	//    * First character must be a letter.
11860	//
11861	//    * Cannot end with a hyphen or contain two consecutive hyphens.
11862	//
11863	//    * Must be unique for all clusters within an AWS account.
11864	//
11865	// Example: myexamplecluster
11866	//
11867	// ClusterIdentifier is a required field
11868	ClusterIdentifier *string `type:"string" required:"true"`
11869
11870	// The name of the parameter group to be associated with this cluster.
11871	//
11872	// Default: The default Amazon Redshift cluster parameter group. For information
11873	// about the default parameter group, go to Working with Amazon Redshift Parameter
11874	// Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
11875	//
11876	// Constraints:
11877	//
11878	//    * Must be 1 to 255 alphanumeric characters or hyphens.
11879	//
11880	//    * First character must be a letter.
11881	//
11882	//    * Cannot end with a hyphen or contain two consecutive hyphens.
11883	ClusterParameterGroupName *string `type:"string"`
11884
11885	// A list of security groups to be associated with this cluster.
11886	//
11887	// Default: The default cluster security group for Amazon Redshift.
11888	ClusterSecurityGroups []*string `locationNameList:"ClusterSecurityGroupName" type:"list"`
11889
11890	// The name of a cluster subnet group to be associated with this cluster.
11891	//
11892	// If this parameter is not provided the resulting cluster will be deployed
11893	// outside virtual private cloud (VPC).
11894	ClusterSubnetGroupName *string `type:"string"`
11895
11896	// The type of the cluster. When cluster type is specified as
11897	//
11898	//    * single-node, the NumberOfNodes parameter is not required.
11899	//
11900	//    * multi-node, the NumberOfNodes parameter is required.
11901	//
11902	// Valid Values: multi-node | single-node
11903	//
11904	// Default: multi-node
11905	ClusterType *string `type:"string"`
11906
11907	// The version of the Amazon Redshift engine software that you want to deploy
11908	// on the cluster.
11909	//
11910	// The version selected runs on all the nodes in the cluster.
11911	//
11912	// Constraints: Only version 1.0 is currently available.
11913	//
11914	// Example: 1.0
11915	ClusterVersion *string `type:"string"`
11916
11917	// The name of the first database to be created when the cluster is created.
11918	//
11919	// To create additional databases after the cluster is created, connect to the
11920	// cluster with a SQL client and use SQL commands to create a database. For
11921	// more information, go to Create a Database (https://docs.aws.amazon.com/redshift/latest/dg/t_creating_database.html)
11922	// in the Amazon Redshift Database Developer Guide.
11923	//
11924	// Default: dev
11925	//
11926	// Constraints:
11927	//
11928	//    * Must contain 1 to 64 alphanumeric characters.
11929	//
11930	//    * Must contain only lowercase letters.
11931	//
11932	//    * Cannot be a word that is reserved by the service. A list of reserved
11933	//    words can be found in Reserved Words (https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html)
11934	//    in the Amazon Redshift Database Developer Guide.
11935	DBName *string `type:"string"`
11936
11937	// The Elastic IP (EIP) address for the cluster.
11938	//
11939	// Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible
11940	// through an Internet gateway. For more information about provisioning clusters
11941	// in EC2-VPC, go to Supported Platforms to Launch Your Cluster (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#cluster-platforms)
11942	// in the Amazon Redshift Cluster Management Guide.
11943	ElasticIp *string `type:"string"`
11944
11945	// If true, the data in the cluster is encrypted at rest.
11946	//
11947	// Default: false
11948	Encrypted *bool `type:"boolean"`
11949
11950	// An option that specifies whether to create the cluster with enhanced VPC
11951	// routing enabled. To create a cluster that uses enhanced VPC routing, the
11952	// cluster must be in a VPC. For more information, see Enhanced VPC Routing
11953	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
11954	// in the Amazon Redshift Cluster Management Guide.
11955	//
11956	// If this option is true, enhanced VPC routing is enabled.
11957	//
11958	// Default: false
11959	EnhancedVpcRouting *bool `type:"boolean"`
11960
11961	// Specifies the name of the HSM client certificate the Amazon Redshift cluster
11962	// uses to retrieve the data encryption keys stored in an HSM.
11963	HsmClientCertificateIdentifier *string `type:"string"`
11964
11965	// Specifies the name of the HSM configuration that contains the information
11966	// the Amazon Redshift cluster can use to retrieve and store keys in an HSM.
11967	HsmConfigurationIdentifier *string `type:"string"`
11968
11969	// A list of AWS Identity and Access Management (IAM) roles that can be used
11970	// by the cluster to access other AWS services. You must supply the IAM roles
11971	// in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM roles
11972	// in a single request.
11973	//
11974	// A cluster can have up to 10 IAM roles associated with it at any time.
11975	IamRoles []*string `locationNameList:"IamRoleArn" type:"list"`
11976
11977	// The AWS Key Management Service (KMS) key ID of the encryption key that you
11978	// want to use to encrypt data in the cluster.
11979	KmsKeyId *string `type:"string"`
11980
11981	// An optional parameter for the name of the maintenance track for the cluster.
11982	// If you don't provide a maintenance track name, the cluster is assigned to
11983	// the current track.
11984	MaintenanceTrackName *string `type:"string"`
11985
11986	// The default number of days to retain a manual snapshot. If the value is -1,
11987	// the snapshot is retained indefinitely. This setting doesn't change the retention
11988	// period of existing snapshots.
11989	//
11990	// The value must be either -1 or an integer between 1 and 3,653.
11991	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
11992
11993	// The password associated with the master user account for the cluster that
11994	// is being created.
11995	//
11996	// Constraints:
11997	//
11998	//    * Must be between 8 and 64 characters in length.
11999	//
12000	//    * Must contain at least one uppercase letter.
12001	//
12002	//    * Must contain at least one lowercase letter.
12003	//
12004	//    * Must contain one number.
12005	//
12006	//    * Can be any printable ASCII character (ASCII code 33 to 126) except '
12007	//    (single quote), " (double quote), \, /, @, or space.
12008	//
12009	// MasterUserPassword is a required field
12010	MasterUserPassword *string `type:"string" required:"true"`
12011
12012	// The user name associated with the master user account for the cluster that
12013	// is being created.
12014	//
12015	// Constraints:
12016	//
12017	//    * Must be 1 - 128 alphanumeric characters. The user name can't be PUBLIC.
12018	//
12019	//    * First character must be a letter.
12020	//
12021	//    * Cannot be a reserved word. A list of reserved words can be found in
12022	//    Reserved Words (https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html)
12023	//    in the Amazon Redshift Database Developer Guide.
12024	//
12025	// MasterUsername is a required field
12026	MasterUsername *string `type:"string" required:"true"`
12027
12028	// The node type to be provisioned for the cluster. For information about node
12029	// types, go to Working with Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes)
12030	// in the Amazon Redshift Cluster Management Guide.
12031	//
12032	// Valid Values: ds2.xlarge | ds2.8xlarge | dc1.large | dc1.8xlarge | dc2.large
12033	// | dc2.8xlarge | ra3.4xlarge | ra3.16xlarge
12034	//
12035	// NodeType is a required field
12036	NodeType *string `type:"string" required:"true"`
12037
12038	// The number of compute nodes in the cluster. This parameter is required when
12039	// the ClusterType parameter is specified as multi-node.
12040	//
12041	// For information about determining how many nodes you need, go to Working
12042	// with Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes)
12043	// in the Amazon Redshift Cluster Management Guide.
12044	//
12045	// If you don't specify this parameter, you get a single-node cluster. When
12046	// requesting a multi-node cluster, you must specify the number of nodes that
12047	// you want in the cluster.
12048	//
12049	// Default: 1
12050	//
12051	// Constraints: Value must be at least 1 and no more than 100.
12052	NumberOfNodes *int64 `type:"integer"`
12053
12054	// The port number on which the cluster accepts incoming connections.
12055	//
12056	// The cluster is accessible only via the JDBC and ODBC connection strings.
12057	// Part of the connection string requires the port on which the cluster will
12058	// listen for incoming connections.
12059	//
12060	// Default: 5439
12061	//
12062	// Valid Values: 1150-65535
12063	Port *int64 `type:"integer"`
12064
12065	// The weekly time range (in UTC) during which automated cluster maintenance
12066	// can occur.
12067	//
12068	// Format: ddd:hh24:mi-ddd:hh24:mi
12069	//
12070	// Default: A 30-minute window selected at random from an 8-hour block of time
12071	// per region, occurring on a random day of the week. For more information about
12072	// the time blocks for each region, see Maintenance Windows (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows)
12073	// in Amazon Redshift Cluster Management Guide.
12074	//
12075	// Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
12076	//
12077	// Constraints: Minimum 30-minute window.
12078	PreferredMaintenanceWindow *string `type:"string"`
12079
12080	// If true, the cluster can be accessed from a public network.
12081	PubliclyAccessible *bool `type:"boolean"`
12082
12083	// A unique identifier for the snapshot schedule.
12084	SnapshotScheduleIdentifier *string `type:"string"`
12085
12086	// A list of tag instances.
12087	Tags []*Tag `locationNameList:"Tag" type:"list"`
12088
12089	// A list of Virtual Private Cloud (VPC) security groups to be associated with
12090	// the cluster.
12091	//
12092	// Default: The default VPC security group is associated with the cluster.
12093	VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
12094}
12095
12096// String returns the string representation
12097func (s CreateClusterInput) String() string {
12098	return awsutil.Prettify(s)
12099}
12100
12101// GoString returns the string representation
12102func (s CreateClusterInput) GoString() string {
12103	return s.String()
12104}
12105
12106// Validate inspects the fields of the type to determine if they are valid.
12107func (s *CreateClusterInput) Validate() error {
12108	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
12109	if s.ClusterIdentifier == nil {
12110		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
12111	}
12112	if s.MasterUserPassword == nil {
12113		invalidParams.Add(request.NewErrParamRequired("MasterUserPassword"))
12114	}
12115	if s.MasterUsername == nil {
12116		invalidParams.Add(request.NewErrParamRequired("MasterUsername"))
12117	}
12118	if s.NodeType == nil {
12119		invalidParams.Add(request.NewErrParamRequired("NodeType"))
12120	}
12121
12122	if invalidParams.Len() > 0 {
12123		return invalidParams
12124	}
12125	return nil
12126}
12127
12128// SetAdditionalInfo sets the AdditionalInfo field's value.
12129func (s *CreateClusterInput) SetAdditionalInfo(v string) *CreateClusterInput {
12130	s.AdditionalInfo = &v
12131	return s
12132}
12133
12134// SetAllowVersionUpgrade sets the AllowVersionUpgrade field's value.
12135func (s *CreateClusterInput) SetAllowVersionUpgrade(v bool) *CreateClusterInput {
12136	s.AllowVersionUpgrade = &v
12137	return s
12138}
12139
12140// SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
12141func (s *CreateClusterInput) SetAutomatedSnapshotRetentionPeriod(v int64) *CreateClusterInput {
12142	s.AutomatedSnapshotRetentionPeriod = &v
12143	return s
12144}
12145
12146// SetAvailabilityZone sets the AvailabilityZone field's value.
12147func (s *CreateClusterInput) SetAvailabilityZone(v string) *CreateClusterInput {
12148	s.AvailabilityZone = &v
12149	return s
12150}
12151
12152// SetClusterIdentifier sets the ClusterIdentifier field's value.
12153func (s *CreateClusterInput) SetClusterIdentifier(v string) *CreateClusterInput {
12154	s.ClusterIdentifier = &v
12155	return s
12156}
12157
12158// SetClusterParameterGroupName sets the ClusterParameterGroupName field's value.
12159func (s *CreateClusterInput) SetClusterParameterGroupName(v string) *CreateClusterInput {
12160	s.ClusterParameterGroupName = &v
12161	return s
12162}
12163
12164// SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
12165func (s *CreateClusterInput) SetClusterSecurityGroups(v []*string) *CreateClusterInput {
12166	s.ClusterSecurityGroups = v
12167	return s
12168}
12169
12170// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
12171func (s *CreateClusterInput) SetClusterSubnetGroupName(v string) *CreateClusterInput {
12172	s.ClusterSubnetGroupName = &v
12173	return s
12174}
12175
12176// SetClusterType sets the ClusterType field's value.
12177func (s *CreateClusterInput) SetClusterType(v string) *CreateClusterInput {
12178	s.ClusterType = &v
12179	return s
12180}
12181
12182// SetClusterVersion sets the ClusterVersion field's value.
12183func (s *CreateClusterInput) SetClusterVersion(v string) *CreateClusterInput {
12184	s.ClusterVersion = &v
12185	return s
12186}
12187
12188// SetDBName sets the DBName field's value.
12189func (s *CreateClusterInput) SetDBName(v string) *CreateClusterInput {
12190	s.DBName = &v
12191	return s
12192}
12193
12194// SetElasticIp sets the ElasticIp field's value.
12195func (s *CreateClusterInput) SetElasticIp(v string) *CreateClusterInput {
12196	s.ElasticIp = &v
12197	return s
12198}
12199
12200// SetEncrypted sets the Encrypted field's value.
12201func (s *CreateClusterInput) SetEncrypted(v bool) *CreateClusterInput {
12202	s.Encrypted = &v
12203	return s
12204}
12205
12206// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
12207func (s *CreateClusterInput) SetEnhancedVpcRouting(v bool) *CreateClusterInput {
12208	s.EnhancedVpcRouting = &v
12209	return s
12210}
12211
12212// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
12213func (s *CreateClusterInput) SetHsmClientCertificateIdentifier(v string) *CreateClusterInput {
12214	s.HsmClientCertificateIdentifier = &v
12215	return s
12216}
12217
12218// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
12219func (s *CreateClusterInput) SetHsmConfigurationIdentifier(v string) *CreateClusterInput {
12220	s.HsmConfigurationIdentifier = &v
12221	return s
12222}
12223
12224// SetIamRoles sets the IamRoles field's value.
12225func (s *CreateClusterInput) SetIamRoles(v []*string) *CreateClusterInput {
12226	s.IamRoles = v
12227	return s
12228}
12229
12230// SetKmsKeyId sets the KmsKeyId field's value.
12231func (s *CreateClusterInput) SetKmsKeyId(v string) *CreateClusterInput {
12232	s.KmsKeyId = &v
12233	return s
12234}
12235
12236// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
12237func (s *CreateClusterInput) SetMaintenanceTrackName(v string) *CreateClusterInput {
12238	s.MaintenanceTrackName = &v
12239	return s
12240}
12241
12242// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
12243func (s *CreateClusterInput) SetManualSnapshotRetentionPeriod(v int64) *CreateClusterInput {
12244	s.ManualSnapshotRetentionPeriod = &v
12245	return s
12246}
12247
12248// SetMasterUserPassword sets the MasterUserPassword field's value.
12249func (s *CreateClusterInput) SetMasterUserPassword(v string) *CreateClusterInput {
12250	s.MasterUserPassword = &v
12251	return s
12252}
12253
12254// SetMasterUsername sets the MasterUsername field's value.
12255func (s *CreateClusterInput) SetMasterUsername(v string) *CreateClusterInput {
12256	s.MasterUsername = &v
12257	return s
12258}
12259
12260// SetNodeType sets the NodeType field's value.
12261func (s *CreateClusterInput) SetNodeType(v string) *CreateClusterInput {
12262	s.NodeType = &v
12263	return s
12264}
12265
12266// SetNumberOfNodes sets the NumberOfNodes field's value.
12267func (s *CreateClusterInput) SetNumberOfNodes(v int64) *CreateClusterInput {
12268	s.NumberOfNodes = &v
12269	return s
12270}
12271
12272// SetPort sets the Port field's value.
12273func (s *CreateClusterInput) SetPort(v int64) *CreateClusterInput {
12274	s.Port = &v
12275	return s
12276}
12277
12278// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
12279func (s *CreateClusterInput) SetPreferredMaintenanceWindow(v string) *CreateClusterInput {
12280	s.PreferredMaintenanceWindow = &v
12281	return s
12282}
12283
12284// SetPubliclyAccessible sets the PubliclyAccessible field's value.
12285func (s *CreateClusterInput) SetPubliclyAccessible(v bool) *CreateClusterInput {
12286	s.PubliclyAccessible = &v
12287	return s
12288}
12289
12290// SetSnapshotScheduleIdentifier sets the SnapshotScheduleIdentifier field's value.
12291func (s *CreateClusterInput) SetSnapshotScheduleIdentifier(v string) *CreateClusterInput {
12292	s.SnapshotScheduleIdentifier = &v
12293	return s
12294}
12295
12296// SetTags sets the Tags field's value.
12297func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
12298	s.Tags = v
12299	return s
12300}
12301
12302// SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
12303func (s *CreateClusterInput) SetVpcSecurityGroupIds(v []*string) *CreateClusterInput {
12304	s.VpcSecurityGroupIds = v
12305	return s
12306}
12307
12308type CreateClusterOutput struct {
12309	_ struct{} `type:"structure"`
12310
12311	// Describes a cluster.
12312	Cluster *Cluster `type:"structure"`
12313}
12314
12315// String returns the string representation
12316func (s CreateClusterOutput) String() string {
12317	return awsutil.Prettify(s)
12318}
12319
12320// GoString returns the string representation
12321func (s CreateClusterOutput) GoString() string {
12322	return s.String()
12323}
12324
12325// SetCluster sets the Cluster field's value.
12326func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
12327	s.Cluster = v
12328	return s
12329}
12330
12331type CreateClusterParameterGroupInput struct {
12332	_ struct{} `type:"structure"`
12333
12334	// A description of the parameter group.
12335	//
12336	// Description is a required field
12337	Description *string `type:"string" required:"true"`
12338
12339	// The Amazon Redshift engine version to which the cluster parameter group applies.
12340	// The cluster engine version determines the set of parameters.
12341	//
12342	// To get a list of valid parameter group family names, you can call DescribeClusterParameterGroups.
12343	// By default, Amazon Redshift returns a list of all the parameter groups that
12344	// are owned by your AWS account, including the default parameter groups for
12345	// each Amazon Redshift engine version. The parameter group family names associated
12346	// with the default parameter groups provide you the valid values. For example,
12347	// a valid family name is "redshift-1.0".
12348	//
12349	// ParameterGroupFamily is a required field
12350	ParameterGroupFamily *string `type:"string" required:"true"`
12351
12352	// The name of the cluster parameter group.
12353	//
12354	// Constraints:
12355	//
12356	//    * Must be 1 to 255 alphanumeric characters or hyphens
12357	//
12358	//    * First character must be a letter.
12359	//
12360	//    * Cannot end with a hyphen or contain two consecutive hyphens.
12361	//
12362	//    * Must be unique withing your AWS account.
12363	//
12364	// This value is stored as a lower-case string.
12365	//
12366	// ParameterGroupName is a required field
12367	ParameterGroupName *string `type:"string" required:"true"`
12368
12369	// A list of tag instances.
12370	Tags []*Tag `locationNameList:"Tag" type:"list"`
12371}
12372
12373// String returns the string representation
12374func (s CreateClusterParameterGroupInput) String() string {
12375	return awsutil.Prettify(s)
12376}
12377
12378// GoString returns the string representation
12379func (s CreateClusterParameterGroupInput) GoString() string {
12380	return s.String()
12381}
12382
12383// Validate inspects the fields of the type to determine if they are valid.
12384func (s *CreateClusterParameterGroupInput) Validate() error {
12385	invalidParams := request.ErrInvalidParams{Context: "CreateClusterParameterGroupInput"}
12386	if s.Description == nil {
12387		invalidParams.Add(request.NewErrParamRequired("Description"))
12388	}
12389	if s.ParameterGroupFamily == nil {
12390		invalidParams.Add(request.NewErrParamRequired("ParameterGroupFamily"))
12391	}
12392	if s.ParameterGroupName == nil {
12393		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
12394	}
12395
12396	if invalidParams.Len() > 0 {
12397		return invalidParams
12398	}
12399	return nil
12400}
12401
12402// SetDescription sets the Description field's value.
12403func (s *CreateClusterParameterGroupInput) SetDescription(v string) *CreateClusterParameterGroupInput {
12404	s.Description = &v
12405	return s
12406}
12407
12408// SetParameterGroupFamily sets the ParameterGroupFamily field's value.
12409func (s *CreateClusterParameterGroupInput) SetParameterGroupFamily(v string) *CreateClusterParameterGroupInput {
12410	s.ParameterGroupFamily = &v
12411	return s
12412}
12413
12414// SetParameterGroupName sets the ParameterGroupName field's value.
12415func (s *CreateClusterParameterGroupInput) SetParameterGroupName(v string) *CreateClusterParameterGroupInput {
12416	s.ParameterGroupName = &v
12417	return s
12418}
12419
12420// SetTags sets the Tags field's value.
12421func (s *CreateClusterParameterGroupInput) SetTags(v []*Tag) *CreateClusterParameterGroupInput {
12422	s.Tags = v
12423	return s
12424}
12425
12426type CreateClusterParameterGroupOutput struct {
12427	_ struct{} `type:"structure"`
12428
12429	// Describes a parameter group.
12430	ClusterParameterGroup *ClusterParameterGroup `type:"structure"`
12431}
12432
12433// String returns the string representation
12434func (s CreateClusterParameterGroupOutput) String() string {
12435	return awsutil.Prettify(s)
12436}
12437
12438// GoString returns the string representation
12439func (s CreateClusterParameterGroupOutput) GoString() string {
12440	return s.String()
12441}
12442
12443// SetClusterParameterGroup sets the ClusterParameterGroup field's value.
12444func (s *CreateClusterParameterGroupOutput) SetClusterParameterGroup(v *ClusterParameterGroup) *CreateClusterParameterGroupOutput {
12445	s.ClusterParameterGroup = v
12446	return s
12447}
12448
12449type CreateClusterSecurityGroupInput struct {
12450	_ struct{} `type:"structure"`
12451
12452	// The name for the security group. Amazon Redshift stores the value as a lowercase
12453	// string.
12454	//
12455	// Constraints:
12456	//
12457	//    * Must contain no more than 255 alphanumeric characters or hyphens.
12458	//
12459	//    * Must not be "Default".
12460	//
12461	//    * Must be unique for all security groups that are created by your AWS
12462	//    account.
12463	//
12464	// Example: examplesecuritygroup
12465	//
12466	// ClusterSecurityGroupName is a required field
12467	ClusterSecurityGroupName *string `type:"string" required:"true"`
12468
12469	// A description for the security group.
12470	//
12471	// Description is a required field
12472	Description *string `type:"string" required:"true"`
12473
12474	// A list of tag instances.
12475	Tags []*Tag `locationNameList:"Tag" type:"list"`
12476}
12477
12478// String returns the string representation
12479func (s CreateClusterSecurityGroupInput) String() string {
12480	return awsutil.Prettify(s)
12481}
12482
12483// GoString returns the string representation
12484func (s CreateClusterSecurityGroupInput) GoString() string {
12485	return s.String()
12486}
12487
12488// Validate inspects the fields of the type to determine if they are valid.
12489func (s *CreateClusterSecurityGroupInput) Validate() error {
12490	invalidParams := request.ErrInvalidParams{Context: "CreateClusterSecurityGroupInput"}
12491	if s.ClusterSecurityGroupName == nil {
12492		invalidParams.Add(request.NewErrParamRequired("ClusterSecurityGroupName"))
12493	}
12494	if s.Description == nil {
12495		invalidParams.Add(request.NewErrParamRequired("Description"))
12496	}
12497
12498	if invalidParams.Len() > 0 {
12499		return invalidParams
12500	}
12501	return nil
12502}
12503
12504// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
12505func (s *CreateClusterSecurityGroupInput) SetClusterSecurityGroupName(v string) *CreateClusterSecurityGroupInput {
12506	s.ClusterSecurityGroupName = &v
12507	return s
12508}
12509
12510// SetDescription sets the Description field's value.
12511func (s *CreateClusterSecurityGroupInput) SetDescription(v string) *CreateClusterSecurityGroupInput {
12512	s.Description = &v
12513	return s
12514}
12515
12516// SetTags sets the Tags field's value.
12517func (s *CreateClusterSecurityGroupInput) SetTags(v []*Tag) *CreateClusterSecurityGroupInput {
12518	s.Tags = v
12519	return s
12520}
12521
12522type CreateClusterSecurityGroupOutput struct {
12523	_ struct{} `type:"structure"`
12524
12525	// Describes a security group.
12526	ClusterSecurityGroup *ClusterSecurityGroup `type:"structure"`
12527}
12528
12529// String returns the string representation
12530func (s CreateClusterSecurityGroupOutput) String() string {
12531	return awsutil.Prettify(s)
12532}
12533
12534// GoString returns the string representation
12535func (s CreateClusterSecurityGroupOutput) GoString() string {
12536	return s.String()
12537}
12538
12539// SetClusterSecurityGroup sets the ClusterSecurityGroup field's value.
12540func (s *CreateClusterSecurityGroupOutput) SetClusterSecurityGroup(v *ClusterSecurityGroup) *CreateClusterSecurityGroupOutput {
12541	s.ClusterSecurityGroup = v
12542	return s
12543}
12544
12545type CreateClusterSnapshotInput struct {
12546	_ struct{} `type:"structure"`
12547
12548	// The cluster identifier for which you want a snapshot.
12549	//
12550	// ClusterIdentifier is a required field
12551	ClusterIdentifier *string `type:"string" required:"true"`
12552
12553	// The number of days that a manual snapshot is retained. If the value is -1,
12554	// the manual snapshot is retained indefinitely.
12555	//
12556	// The value must be either -1 or an integer between 1 and 3,653.
12557	//
12558	// The default value is -1.
12559	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
12560
12561	// A unique identifier for the snapshot that you are requesting. This identifier
12562	// must be unique for all snapshots within the AWS account.
12563	//
12564	// Constraints:
12565	//
12566	//    * Cannot be null, empty, or blank
12567	//
12568	//    * Must contain from 1 to 255 alphanumeric characters or hyphens
12569	//
12570	//    * First character must be a letter
12571	//
12572	//    * Cannot end with a hyphen or contain two consecutive hyphens
12573	//
12574	// Example: my-snapshot-id
12575	//
12576	// SnapshotIdentifier is a required field
12577	SnapshotIdentifier *string `type:"string" required:"true"`
12578
12579	// A list of tag instances.
12580	Tags []*Tag `locationNameList:"Tag" type:"list"`
12581}
12582
12583// String returns the string representation
12584func (s CreateClusterSnapshotInput) String() string {
12585	return awsutil.Prettify(s)
12586}
12587
12588// GoString returns the string representation
12589func (s CreateClusterSnapshotInput) GoString() string {
12590	return s.String()
12591}
12592
12593// Validate inspects the fields of the type to determine if they are valid.
12594func (s *CreateClusterSnapshotInput) Validate() error {
12595	invalidParams := request.ErrInvalidParams{Context: "CreateClusterSnapshotInput"}
12596	if s.ClusterIdentifier == nil {
12597		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
12598	}
12599	if s.SnapshotIdentifier == nil {
12600		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
12601	}
12602
12603	if invalidParams.Len() > 0 {
12604		return invalidParams
12605	}
12606	return nil
12607}
12608
12609// SetClusterIdentifier sets the ClusterIdentifier field's value.
12610func (s *CreateClusterSnapshotInput) SetClusterIdentifier(v string) *CreateClusterSnapshotInput {
12611	s.ClusterIdentifier = &v
12612	return s
12613}
12614
12615// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
12616func (s *CreateClusterSnapshotInput) SetManualSnapshotRetentionPeriod(v int64) *CreateClusterSnapshotInput {
12617	s.ManualSnapshotRetentionPeriod = &v
12618	return s
12619}
12620
12621// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
12622func (s *CreateClusterSnapshotInput) SetSnapshotIdentifier(v string) *CreateClusterSnapshotInput {
12623	s.SnapshotIdentifier = &v
12624	return s
12625}
12626
12627// SetTags sets the Tags field's value.
12628func (s *CreateClusterSnapshotInput) SetTags(v []*Tag) *CreateClusterSnapshotInput {
12629	s.Tags = v
12630	return s
12631}
12632
12633type CreateClusterSnapshotOutput struct {
12634	_ struct{} `type:"structure"`
12635
12636	// Describes a snapshot.
12637	Snapshot *Snapshot `type:"structure"`
12638}
12639
12640// String returns the string representation
12641func (s CreateClusterSnapshotOutput) String() string {
12642	return awsutil.Prettify(s)
12643}
12644
12645// GoString returns the string representation
12646func (s CreateClusterSnapshotOutput) GoString() string {
12647	return s.String()
12648}
12649
12650// SetSnapshot sets the Snapshot field's value.
12651func (s *CreateClusterSnapshotOutput) SetSnapshot(v *Snapshot) *CreateClusterSnapshotOutput {
12652	s.Snapshot = v
12653	return s
12654}
12655
12656type CreateClusterSubnetGroupInput struct {
12657	_ struct{} `type:"structure"`
12658
12659	// The name for the subnet group. Amazon Redshift stores the value as a lowercase
12660	// string.
12661	//
12662	// Constraints:
12663	//
12664	//    * Must contain no more than 255 alphanumeric characters or hyphens.
12665	//
12666	//    * Must not be "Default".
12667	//
12668	//    * Must be unique for all subnet groups that are created by your AWS account.
12669	//
12670	// Example: examplesubnetgroup
12671	//
12672	// ClusterSubnetGroupName is a required field
12673	ClusterSubnetGroupName *string `type:"string" required:"true"`
12674
12675	// A description for the subnet group.
12676	//
12677	// Description is a required field
12678	Description *string `type:"string" required:"true"`
12679
12680	// An array of VPC subnet IDs. A maximum of 20 subnets can be modified in a
12681	// single request.
12682	//
12683	// SubnetIds is a required field
12684	SubnetIds []*string `locationNameList:"SubnetIdentifier" type:"list" required:"true"`
12685
12686	// A list of tag instances.
12687	Tags []*Tag `locationNameList:"Tag" type:"list"`
12688}
12689
12690// String returns the string representation
12691func (s CreateClusterSubnetGroupInput) String() string {
12692	return awsutil.Prettify(s)
12693}
12694
12695// GoString returns the string representation
12696func (s CreateClusterSubnetGroupInput) GoString() string {
12697	return s.String()
12698}
12699
12700// Validate inspects the fields of the type to determine if they are valid.
12701func (s *CreateClusterSubnetGroupInput) Validate() error {
12702	invalidParams := request.ErrInvalidParams{Context: "CreateClusterSubnetGroupInput"}
12703	if s.ClusterSubnetGroupName == nil {
12704		invalidParams.Add(request.NewErrParamRequired("ClusterSubnetGroupName"))
12705	}
12706	if s.Description == nil {
12707		invalidParams.Add(request.NewErrParamRequired("Description"))
12708	}
12709	if s.SubnetIds == nil {
12710		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
12711	}
12712
12713	if invalidParams.Len() > 0 {
12714		return invalidParams
12715	}
12716	return nil
12717}
12718
12719// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
12720func (s *CreateClusterSubnetGroupInput) SetClusterSubnetGroupName(v string) *CreateClusterSubnetGroupInput {
12721	s.ClusterSubnetGroupName = &v
12722	return s
12723}
12724
12725// SetDescription sets the Description field's value.
12726func (s *CreateClusterSubnetGroupInput) SetDescription(v string) *CreateClusterSubnetGroupInput {
12727	s.Description = &v
12728	return s
12729}
12730
12731// SetSubnetIds sets the SubnetIds field's value.
12732func (s *CreateClusterSubnetGroupInput) SetSubnetIds(v []*string) *CreateClusterSubnetGroupInput {
12733	s.SubnetIds = v
12734	return s
12735}
12736
12737// SetTags sets the Tags field's value.
12738func (s *CreateClusterSubnetGroupInput) SetTags(v []*Tag) *CreateClusterSubnetGroupInput {
12739	s.Tags = v
12740	return s
12741}
12742
12743type CreateClusterSubnetGroupOutput struct {
12744	_ struct{} `type:"structure"`
12745
12746	// Describes a subnet group.
12747	ClusterSubnetGroup *ClusterSubnetGroup `type:"structure"`
12748}
12749
12750// String returns the string representation
12751func (s CreateClusterSubnetGroupOutput) String() string {
12752	return awsutil.Prettify(s)
12753}
12754
12755// GoString returns the string representation
12756func (s CreateClusterSubnetGroupOutput) GoString() string {
12757	return s.String()
12758}
12759
12760// SetClusterSubnetGroup sets the ClusterSubnetGroup field's value.
12761func (s *CreateClusterSubnetGroupOutput) SetClusterSubnetGroup(v *ClusterSubnetGroup) *CreateClusterSubnetGroupOutput {
12762	s.ClusterSubnetGroup = v
12763	return s
12764}
12765
12766type CreateEventSubscriptionInput struct {
12767	_ struct{} `type:"structure"`
12768
12769	// A boolean value; set to true to activate the subscription, and set to false
12770	// to create the subscription but not activate it.
12771	Enabled *bool `type:"boolean"`
12772
12773	// Specifies the Amazon Redshift event categories to be published by the event
12774	// notification subscription.
12775	//
12776	// Values: configuration, management, monitoring, security
12777	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
12778
12779	// Specifies the Amazon Redshift event severity to be published by the event
12780	// notification subscription.
12781	//
12782	// Values: ERROR, INFO
12783	Severity *string `type:"string"`
12784
12785	// The Amazon Resource Name (ARN) of the Amazon SNS topic used to transmit the
12786	// event notifications. The ARN is created by Amazon SNS when you create a topic
12787	// and subscribe to it.
12788	//
12789	// SnsTopicArn is a required field
12790	SnsTopicArn *string `type:"string" required:"true"`
12791
12792	// A list of one or more identifiers of Amazon Redshift source objects. All
12793	// of the objects must be of the same type as was specified in the source type
12794	// parameter. The event subscription will return only events generated by the
12795	// specified objects. If not specified, then events are returned for all objects
12796	// within the source type specified.
12797	//
12798	// Example: my-cluster-1, my-cluster-2
12799	//
12800	// Example: my-snapshot-20131010
12801	SourceIds []*string `locationNameList:"SourceId" type:"list"`
12802
12803	// The type of source that will be generating the events. For example, if you
12804	// want to be notified of events generated by a cluster, you would set this
12805	// parameter to cluster. If this value is not specified, events are returned
12806	// for all Amazon Redshift objects in your AWS account. You must specify a source
12807	// type in order to specify source IDs.
12808	//
12809	// Valid values: cluster, cluster-parameter-group, cluster-security-group, cluster-snapshot,
12810	// and scheduled-action.
12811	SourceType *string `type:"string"`
12812
12813	// The name of the event subscription to be created.
12814	//
12815	// Constraints:
12816	//
12817	//    * Cannot be null, empty, or blank.
12818	//
12819	//    * Must contain from 1 to 255 alphanumeric characters or hyphens.
12820	//
12821	//    * First character must be a letter.
12822	//
12823	//    * Cannot end with a hyphen or contain two consecutive hyphens.
12824	//
12825	// SubscriptionName is a required field
12826	SubscriptionName *string `type:"string" required:"true"`
12827
12828	// A list of tag instances.
12829	Tags []*Tag `locationNameList:"Tag" type:"list"`
12830}
12831
12832// String returns the string representation
12833func (s CreateEventSubscriptionInput) String() string {
12834	return awsutil.Prettify(s)
12835}
12836
12837// GoString returns the string representation
12838func (s CreateEventSubscriptionInput) GoString() string {
12839	return s.String()
12840}
12841
12842// Validate inspects the fields of the type to determine if they are valid.
12843func (s *CreateEventSubscriptionInput) Validate() error {
12844	invalidParams := request.ErrInvalidParams{Context: "CreateEventSubscriptionInput"}
12845	if s.SnsTopicArn == nil {
12846		invalidParams.Add(request.NewErrParamRequired("SnsTopicArn"))
12847	}
12848	if s.SubscriptionName == nil {
12849		invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
12850	}
12851
12852	if invalidParams.Len() > 0 {
12853		return invalidParams
12854	}
12855	return nil
12856}
12857
12858// SetEnabled sets the Enabled field's value.
12859func (s *CreateEventSubscriptionInput) SetEnabled(v bool) *CreateEventSubscriptionInput {
12860	s.Enabled = &v
12861	return s
12862}
12863
12864// SetEventCategories sets the EventCategories field's value.
12865func (s *CreateEventSubscriptionInput) SetEventCategories(v []*string) *CreateEventSubscriptionInput {
12866	s.EventCategories = v
12867	return s
12868}
12869
12870// SetSeverity sets the Severity field's value.
12871func (s *CreateEventSubscriptionInput) SetSeverity(v string) *CreateEventSubscriptionInput {
12872	s.Severity = &v
12873	return s
12874}
12875
12876// SetSnsTopicArn sets the SnsTopicArn field's value.
12877func (s *CreateEventSubscriptionInput) SetSnsTopicArn(v string) *CreateEventSubscriptionInput {
12878	s.SnsTopicArn = &v
12879	return s
12880}
12881
12882// SetSourceIds sets the SourceIds field's value.
12883func (s *CreateEventSubscriptionInput) SetSourceIds(v []*string) *CreateEventSubscriptionInput {
12884	s.SourceIds = v
12885	return s
12886}
12887
12888// SetSourceType sets the SourceType field's value.
12889func (s *CreateEventSubscriptionInput) SetSourceType(v string) *CreateEventSubscriptionInput {
12890	s.SourceType = &v
12891	return s
12892}
12893
12894// SetSubscriptionName sets the SubscriptionName field's value.
12895func (s *CreateEventSubscriptionInput) SetSubscriptionName(v string) *CreateEventSubscriptionInput {
12896	s.SubscriptionName = &v
12897	return s
12898}
12899
12900// SetTags sets the Tags field's value.
12901func (s *CreateEventSubscriptionInput) SetTags(v []*Tag) *CreateEventSubscriptionInput {
12902	s.Tags = v
12903	return s
12904}
12905
12906type CreateEventSubscriptionOutput struct {
12907	_ struct{} `type:"structure"`
12908
12909	// Describes event subscriptions.
12910	EventSubscription *EventSubscription `type:"structure"`
12911}
12912
12913// String returns the string representation
12914func (s CreateEventSubscriptionOutput) String() string {
12915	return awsutil.Prettify(s)
12916}
12917
12918// GoString returns the string representation
12919func (s CreateEventSubscriptionOutput) GoString() string {
12920	return s.String()
12921}
12922
12923// SetEventSubscription sets the EventSubscription field's value.
12924func (s *CreateEventSubscriptionOutput) SetEventSubscription(v *EventSubscription) *CreateEventSubscriptionOutput {
12925	s.EventSubscription = v
12926	return s
12927}
12928
12929type CreateHsmClientCertificateInput struct {
12930	_ struct{} `type:"structure"`
12931
12932	// The identifier to be assigned to the new HSM client certificate that the
12933	// cluster will use to connect to the HSM to use the database encryption keys.
12934	//
12935	// HsmClientCertificateIdentifier is a required field
12936	HsmClientCertificateIdentifier *string `type:"string" required:"true"`
12937
12938	// A list of tag instances.
12939	Tags []*Tag `locationNameList:"Tag" type:"list"`
12940}
12941
12942// String returns the string representation
12943func (s CreateHsmClientCertificateInput) String() string {
12944	return awsutil.Prettify(s)
12945}
12946
12947// GoString returns the string representation
12948func (s CreateHsmClientCertificateInput) GoString() string {
12949	return s.String()
12950}
12951
12952// Validate inspects the fields of the type to determine if they are valid.
12953func (s *CreateHsmClientCertificateInput) Validate() error {
12954	invalidParams := request.ErrInvalidParams{Context: "CreateHsmClientCertificateInput"}
12955	if s.HsmClientCertificateIdentifier == nil {
12956		invalidParams.Add(request.NewErrParamRequired("HsmClientCertificateIdentifier"))
12957	}
12958
12959	if invalidParams.Len() > 0 {
12960		return invalidParams
12961	}
12962	return nil
12963}
12964
12965// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
12966func (s *CreateHsmClientCertificateInput) SetHsmClientCertificateIdentifier(v string) *CreateHsmClientCertificateInput {
12967	s.HsmClientCertificateIdentifier = &v
12968	return s
12969}
12970
12971// SetTags sets the Tags field's value.
12972func (s *CreateHsmClientCertificateInput) SetTags(v []*Tag) *CreateHsmClientCertificateInput {
12973	s.Tags = v
12974	return s
12975}
12976
12977type CreateHsmClientCertificateOutput struct {
12978	_ struct{} `type:"structure"`
12979
12980	// Returns information about an HSM client certificate. The certificate is stored
12981	// in a secure Hardware Storage Module (HSM), and used by the Amazon Redshift
12982	// cluster to encrypt data files.
12983	HsmClientCertificate *HsmClientCertificate `type:"structure"`
12984}
12985
12986// String returns the string representation
12987func (s CreateHsmClientCertificateOutput) String() string {
12988	return awsutil.Prettify(s)
12989}
12990
12991// GoString returns the string representation
12992func (s CreateHsmClientCertificateOutput) GoString() string {
12993	return s.String()
12994}
12995
12996// SetHsmClientCertificate sets the HsmClientCertificate field's value.
12997func (s *CreateHsmClientCertificateOutput) SetHsmClientCertificate(v *HsmClientCertificate) *CreateHsmClientCertificateOutput {
12998	s.HsmClientCertificate = v
12999	return s
13000}
13001
13002type CreateHsmConfigurationInput struct {
13003	_ struct{} `type:"structure"`
13004
13005	// A text description of the HSM configuration to be created.
13006	//
13007	// Description is a required field
13008	Description *string `type:"string" required:"true"`
13009
13010	// The identifier to be assigned to the new Amazon Redshift HSM configuration.
13011	//
13012	// HsmConfigurationIdentifier is a required field
13013	HsmConfigurationIdentifier *string `type:"string" required:"true"`
13014
13015	// The IP address that the Amazon Redshift cluster must use to access the HSM.
13016	//
13017	// HsmIpAddress is a required field
13018	HsmIpAddress *string `type:"string" required:"true"`
13019
13020	// The name of the partition in the HSM where the Amazon Redshift clusters will
13021	// store their database encryption keys.
13022	//
13023	// HsmPartitionName is a required field
13024	HsmPartitionName *string `type:"string" required:"true"`
13025
13026	// The password required to access the HSM partition.
13027	//
13028	// HsmPartitionPassword is a required field
13029	HsmPartitionPassword *string `type:"string" required:"true"`
13030
13031	// The HSMs public certificate file. When using Cloud HSM, the file name is
13032	// server.pem.
13033	//
13034	// HsmServerPublicCertificate is a required field
13035	HsmServerPublicCertificate *string `type:"string" required:"true"`
13036
13037	// A list of tag instances.
13038	Tags []*Tag `locationNameList:"Tag" type:"list"`
13039}
13040
13041// String returns the string representation
13042func (s CreateHsmConfigurationInput) String() string {
13043	return awsutil.Prettify(s)
13044}
13045
13046// GoString returns the string representation
13047func (s CreateHsmConfigurationInput) GoString() string {
13048	return s.String()
13049}
13050
13051// Validate inspects the fields of the type to determine if they are valid.
13052func (s *CreateHsmConfigurationInput) Validate() error {
13053	invalidParams := request.ErrInvalidParams{Context: "CreateHsmConfigurationInput"}
13054	if s.Description == nil {
13055		invalidParams.Add(request.NewErrParamRequired("Description"))
13056	}
13057	if s.HsmConfigurationIdentifier == nil {
13058		invalidParams.Add(request.NewErrParamRequired("HsmConfigurationIdentifier"))
13059	}
13060	if s.HsmIpAddress == nil {
13061		invalidParams.Add(request.NewErrParamRequired("HsmIpAddress"))
13062	}
13063	if s.HsmPartitionName == nil {
13064		invalidParams.Add(request.NewErrParamRequired("HsmPartitionName"))
13065	}
13066	if s.HsmPartitionPassword == nil {
13067		invalidParams.Add(request.NewErrParamRequired("HsmPartitionPassword"))
13068	}
13069	if s.HsmServerPublicCertificate == nil {
13070		invalidParams.Add(request.NewErrParamRequired("HsmServerPublicCertificate"))
13071	}
13072
13073	if invalidParams.Len() > 0 {
13074		return invalidParams
13075	}
13076	return nil
13077}
13078
13079// SetDescription sets the Description field's value.
13080func (s *CreateHsmConfigurationInput) SetDescription(v string) *CreateHsmConfigurationInput {
13081	s.Description = &v
13082	return s
13083}
13084
13085// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
13086func (s *CreateHsmConfigurationInput) SetHsmConfigurationIdentifier(v string) *CreateHsmConfigurationInput {
13087	s.HsmConfigurationIdentifier = &v
13088	return s
13089}
13090
13091// SetHsmIpAddress sets the HsmIpAddress field's value.
13092func (s *CreateHsmConfigurationInput) SetHsmIpAddress(v string) *CreateHsmConfigurationInput {
13093	s.HsmIpAddress = &v
13094	return s
13095}
13096
13097// SetHsmPartitionName sets the HsmPartitionName field's value.
13098func (s *CreateHsmConfigurationInput) SetHsmPartitionName(v string) *CreateHsmConfigurationInput {
13099	s.HsmPartitionName = &v
13100	return s
13101}
13102
13103// SetHsmPartitionPassword sets the HsmPartitionPassword field's value.
13104func (s *CreateHsmConfigurationInput) SetHsmPartitionPassword(v string) *CreateHsmConfigurationInput {
13105	s.HsmPartitionPassword = &v
13106	return s
13107}
13108
13109// SetHsmServerPublicCertificate sets the HsmServerPublicCertificate field's value.
13110func (s *CreateHsmConfigurationInput) SetHsmServerPublicCertificate(v string) *CreateHsmConfigurationInput {
13111	s.HsmServerPublicCertificate = &v
13112	return s
13113}
13114
13115// SetTags sets the Tags field's value.
13116func (s *CreateHsmConfigurationInput) SetTags(v []*Tag) *CreateHsmConfigurationInput {
13117	s.Tags = v
13118	return s
13119}
13120
13121type CreateHsmConfigurationOutput struct {
13122	_ struct{} `type:"structure"`
13123
13124	// Returns information about an HSM configuration, which is an object that describes
13125	// to Amazon Redshift clusters the information they require to connect to an
13126	// HSM where they can store database encryption keys.
13127	HsmConfiguration *HsmConfiguration `type:"structure"`
13128}
13129
13130// String returns the string representation
13131func (s CreateHsmConfigurationOutput) String() string {
13132	return awsutil.Prettify(s)
13133}
13134
13135// GoString returns the string representation
13136func (s CreateHsmConfigurationOutput) GoString() string {
13137	return s.String()
13138}
13139
13140// SetHsmConfiguration sets the HsmConfiguration field's value.
13141func (s *CreateHsmConfigurationOutput) SetHsmConfiguration(v *HsmConfiguration) *CreateHsmConfigurationOutput {
13142	s.HsmConfiguration = v
13143	return s
13144}
13145
13146type CreateScheduledActionInput struct {
13147	_ struct{} `type:"structure"`
13148
13149	// If true, the schedule is enabled. If false, the scheduled action does not
13150	// trigger. For more information about state of the scheduled action, see ScheduledAction.
13151	Enable *bool `type:"boolean"`
13152
13153	// The end time in UTC of the scheduled action. After this time, the scheduled
13154	// action does not trigger. For more information about this parameter, see ScheduledAction.
13155	EndTime *time.Time `type:"timestamp"`
13156
13157	// The IAM role to assume to run the target action. For more information about
13158	// this parameter, see ScheduledAction.
13159	//
13160	// IamRole is a required field
13161	IamRole *string `type:"string" required:"true"`
13162
13163	// The schedule in at( ) or cron( ) format. For more information about this
13164	// parameter, see ScheduledAction.
13165	//
13166	// Schedule is a required field
13167	Schedule *string `type:"string" required:"true"`
13168
13169	// The description of the scheduled action.
13170	ScheduledActionDescription *string `type:"string"`
13171
13172	// The name of the scheduled action. The name must be unique within an account.
13173	// For more information about this parameter, see ScheduledAction.
13174	//
13175	// ScheduledActionName is a required field
13176	ScheduledActionName *string `type:"string" required:"true"`
13177
13178	// The start time in UTC of the scheduled action. Before this time, the scheduled
13179	// action does not trigger. For more information about this parameter, see ScheduledAction.
13180	StartTime *time.Time `type:"timestamp"`
13181
13182	// A JSON format string of the Amazon Redshift API operation with input parameters.
13183	// For more information about this parameter, see ScheduledAction.
13184	//
13185	// TargetAction is a required field
13186	TargetAction *ScheduledActionType `type:"structure" required:"true"`
13187}
13188
13189// String returns the string representation
13190func (s CreateScheduledActionInput) String() string {
13191	return awsutil.Prettify(s)
13192}
13193
13194// GoString returns the string representation
13195func (s CreateScheduledActionInput) GoString() string {
13196	return s.String()
13197}
13198
13199// Validate inspects the fields of the type to determine if they are valid.
13200func (s *CreateScheduledActionInput) Validate() error {
13201	invalidParams := request.ErrInvalidParams{Context: "CreateScheduledActionInput"}
13202	if s.IamRole == nil {
13203		invalidParams.Add(request.NewErrParamRequired("IamRole"))
13204	}
13205	if s.Schedule == nil {
13206		invalidParams.Add(request.NewErrParamRequired("Schedule"))
13207	}
13208	if s.ScheduledActionName == nil {
13209		invalidParams.Add(request.NewErrParamRequired("ScheduledActionName"))
13210	}
13211	if s.TargetAction == nil {
13212		invalidParams.Add(request.NewErrParamRequired("TargetAction"))
13213	}
13214	if s.TargetAction != nil {
13215		if err := s.TargetAction.Validate(); err != nil {
13216			invalidParams.AddNested("TargetAction", err.(request.ErrInvalidParams))
13217		}
13218	}
13219
13220	if invalidParams.Len() > 0 {
13221		return invalidParams
13222	}
13223	return nil
13224}
13225
13226// SetEnable sets the Enable field's value.
13227func (s *CreateScheduledActionInput) SetEnable(v bool) *CreateScheduledActionInput {
13228	s.Enable = &v
13229	return s
13230}
13231
13232// SetEndTime sets the EndTime field's value.
13233func (s *CreateScheduledActionInput) SetEndTime(v time.Time) *CreateScheduledActionInput {
13234	s.EndTime = &v
13235	return s
13236}
13237
13238// SetIamRole sets the IamRole field's value.
13239func (s *CreateScheduledActionInput) SetIamRole(v string) *CreateScheduledActionInput {
13240	s.IamRole = &v
13241	return s
13242}
13243
13244// SetSchedule sets the Schedule field's value.
13245func (s *CreateScheduledActionInput) SetSchedule(v string) *CreateScheduledActionInput {
13246	s.Schedule = &v
13247	return s
13248}
13249
13250// SetScheduledActionDescription sets the ScheduledActionDescription field's value.
13251func (s *CreateScheduledActionInput) SetScheduledActionDescription(v string) *CreateScheduledActionInput {
13252	s.ScheduledActionDescription = &v
13253	return s
13254}
13255
13256// SetScheduledActionName sets the ScheduledActionName field's value.
13257func (s *CreateScheduledActionInput) SetScheduledActionName(v string) *CreateScheduledActionInput {
13258	s.ScheduledActionName = &v
13259	return s
13260}
13261
13262// SetStartTime sets the StartTime field's value.
13263func (s *CreateScheduledActionInput) SetStartTime(v time.Time) *CreateScheduledActionInput {
13264	s.StartTime = &v
13265	return s
13266}
13267
13268// SetTargetAction sets the TargetAction field's value.
13269func (s *CreateScheduledActionInput) SetTargetAction(v *ScheduledActionType) *CreateScheduledActionInput {
13270	s.TargetAction = v
13271	return s
13272}
13273
13274// Describes a scheduled action. You can use a scheduled action to trigger some
13275// Amazon Redshift API operations on a schedule. For information about which
13276// API operations can be scheduled, see ScheduledActionType.
13277type CreateScheduledActionOutput struct {
13278	_ struct{} `type:"structure"`
13279
13280	// The end time in UTC when the schedule is no longer active. After this time,
13281	// the scheduled action does not trigger.
13282	EndTime *time.Time `type:"timestamp"`
13283
13284	// The IAM role to assume to run the scheduled action. This IAM role must have
13285	// permission to run the Amazon Redshift API operation in the scheduled action.
13286	// This IAM role must allow the Amazon Redshift scheduler (Principal scheduler.redshift.amazonaws.com)
13287	// to assume permissions on your behalf. For more information about the IAM
13288	// role to use with the Amazon Redshift scheduler, see Using Identity-Based
13289	// Policies for Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html)
13290	// in the Amazon Redshift Cluster Management Guide.
13291	IamRole *string `type:"string"`
13292
13293	// List of times when the scheduled action will run.
13294	NextInvocations []*time.Time `locationNameList:"ScheduledActionTime" type:"list"`
13295
13296	// The schedule for a one-time (at format) or recurring (cron format) scheduled
13297	// action. Schedule invocations must be separated by at least one hour.
13298	//
13299	// Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)".
13300	//
13301	// Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week
13302	// Year)". For example, "cron(0 10 ? * MON *)". For more information, see Cron
13303	// Expressions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions)
13304	// in the Amazon CloudWatch Events User Guide.
13305	Schedule *string `type:"string"`
13306
13307	// The description of the scheduled action.
13308	ScheduledActionDescription *string `type:"string"`
13309
13310	// The name of the scheduled action.
13311	ScheduledActionName *string `type:"string"`
13312
13313	// The start time in UTC when the schedule is active. Before this time, the
13314	// scheduled action does not trigger.
13315	StartTime *time.Time `type:"timestamp"`
13316
13317	// The state of the scheduled action. For example, DISABLED.
13318	State *string `type:"string" enum:"ScheduledActionState"`
13319
13320	// A JSON format string of the Amazon Redshift API operation with input parameters.
13321	//
13322	// "{\"ResizeCluster\":{\"NodeType\":\"ds2.8xlarge\",\"ClusterIdentifier\":\"my-test-cluster\",\"NumberOfNodes\":3}}".
13323	TargetAction *ScheduledActionType `type:"structure"`
13324}
13325
13326// String returns the string representation
13327func (s CreateScheduledActionOutput) String() string {
13328	return awsutil.Prettify(s)
13329}
13330
13331// GoString returns the string representation
13332func (s CreateScheduledActionOutput) GoString() string {
13333	return s.String()
13334}
13335
13336// SetEndTime sets the EndTime field's value.
13337func (s *CreateScheduledActionOutput) SetEndTime(v time.Time) *CreateScheduledActionOutput {
13338	s.EndTime = &v
13339	return s
13340}
13341
13342// SetIamRole sets the IamRole field's value.
13343func (s *CreateScheduledActionOutput) SetIamRole(v string) *CreateScheduledActionOutput {
13344	s.IamRole = &v
13345	return s
13346}
13347
13348// SetNextInvocations sets the NextInvocations field's value.
13349func (s *CreateScheduledActionOutput) SetNextInvocations(v []*time.Time) *CreateScheduledActionOutput {
13350	s.NextInvocations = v
13351	return s
13352}
13353
13354// SetSchedule sets the Schedule field's value.
13355func (s *CreateScheduledActionOutput) SetSchedule(v string) *CreateScheduledActionOutput {
13356	s.Schedule = &v
13357	return s
13358}
13359
13360// SetScheduledActionDescription sets the ScheduledActionDescription field's value.
13361func (s *CreateScheduledActionOutput) SetScheduledActionDescription(v string) *CreateScheduledActionOutput {
13362	s.ScheduledActionDescription = &v
13363	return s
13364}
13365
13366// SetScheduledActionName sets the ScheduledActionName field's value.
13367func (s *CreateScheduledActionOutput) SetScheduledActionName(v string) *CreateScheduledActionOutput {
13368	s.ScheduledActionName = &v
13369	return s
13370}
13371
13372// SetStartTime sets the StartTime field's value.
13373func (s *CreateScheduledActionOutput) SetStartTime(v time.Time) *CreateScheduledActionOutput {
13374	s.StartTime = &v
13375	return s
13376}
13377
13378// SetState sets the State field's value.
13379func (s *CreateScheduledActionOutput) SetState(v string) *CreateScheduledActionOutput {
13380	s.State = &v
13381	return s
13382}
13383
13384// SetTargetAction sets the TargetAction field's value.
13385func (s *CreateScheduledActionOutput) SetTargetAction(v *ScheduledActionType) *CreateScheduledActionOutput {
13386	s.TargetAction = v
13387	return s
13388}
13389
13390// The result of the CreateSnapshotCopyGrant action.
13391type CreateSnapshotCopyGrantInput struct {
13392	_ struct{} `type:"structure"`
13393
13394	// The unique identifier of the customer master key (CMK) to which to grant
13395	// Amazon Redshift permission. If no key is specified, the default key is used.
13396	KmsKeyId *string `type:"string"`
13397
13398	// The name of the snapshot copy grant. This name must be unique in the region
13399	// for the AWS account.
13400	//
13401	// Constraints:
13402	//
13403	//    * Must contain from 1 to 63 alphanumeric characters or hyphens.
13404	//
13405	//    * Alphabetic characters must be lowercase.
13406	//
13407	//    * First character must be a letter.
13408	//
13409	//    * Cannot end with a hyphen or contain two consecutive hyphens.
13410	//
13411	//    * Must be unique for all clusters within an AWS account.
13412	//
13413	// SnapshotCopyGrantName is a required field
13414	SnapshotCopyGrantName *string `type:"string" required:"true"`
13415
13416	// A list of tag instances.
13417	Tags []*Tag `locationNameList:"Tag" type:"list"`
13418}
13419
13420// String returns the string representation
13421func (s CreateSnapshotCopyGrantInput) String() string {
13422	return awsutil.Prettify(s)
13423}
13424
13425// GoString returns the string representation
13426func (s CreateSnapshotCopyGrantInput) GoString() string {
13427	return s.String()
13428}
13429
13430// Validate inspects the fields of the type to determine if they are valid.
13431func (s *CreateSnapshotCopyGrantInput) Validate() error {
13432	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotCopyGrantInput"}
13433	if s.SnapshotCopyGrantName == nil {
13434		invalidParams.Add(request.NewErrParamRequired("SnapshotCopyGrantName"))
13435	}
13436
13437	if invalidParams.Len() > 0 {
13438		return invalidParams
13439	}
13440	return nil
13441}
13442
13443// SetKmsKeyId sets the KmsKeyId field's value.
13444func (s *CreateSnapshotCopyGrantInput) SetKmsKeyId(v string) *CreateSnapshotCopyGrantInput {
13445	s.KmsKeyId = &v
13446	return s
13447}
13448
13449// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
13450func (s *CreateSnapshotCopyGrantInput) SetSnapshotCopyGrantName(v string) *CreateSnapshotCopyGrantInput {
13451	s.SnapshotCopyGrantName = &v
13452	return s
13453}
13454
13455// SetTags sets the Tags field's value.
13456func (s *CreateSnapshotCopyGrantInput) SetTags(v []*Tag) *CreateSnapshotCopyGrantInput {
13457	s.Tags = v
13458	return s
13459}
13460
13461type CreateSnapshotCopyGrantOutput struct {
13462	_ struct{} `type:"structure"`
13463
13464	// The snapshot copy grant that grants Amazon Redshift permission to encrypt
13465	// copied snapshots with the specified customer master key (CMK) from AWS KMS
13466	// in the destination region.
13467	//
13468	// For more information about managing snapshot copy grants, go to Amazon Redshift
13469	// Database Encryption (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
13470	// in the Amazon Redshift Cluster Management Guide.
13471	SnapshotCopyGrant *SnapshotCopyGrant `type:"structure"`
13472}
13473
13474// String returns the string representation
13475func (s CreateSnapshotCopyGrantOutput) String() string {
13476	return awsutil.Prettify(s)
13477}
13478
13479// GoString returns the string representation
13480func (s CreateSnapshotCopyGrantOutput) GoString() string {
13481	return s.String()
13482}
13483
13484// SetSnapshotCopyGrant sets the SnapshotCopyGrant field's value.
13485func (s *CreateSnapshotCopyGrantOutput) SetSnapshotCopyGrant(v *SnapshotCopyGrant) *CreateSnapshotCopyGrantOutput {
13486	s.SnapshotCopyGrant = v
13487	return s
13488}
13489
13490type CreateSnapshotScheduleInput struct {
13491	_ struct{} `type:"structure"`
13492
13493	DryRun *bool `type:"boolean"`
13494
13495	NextInvocations *int64 `type:"integer"`
13496
13497	// The definition of the snapshot schedule. The definition is made up of schedule
13498	// expressions, for example "cron(30 12 *)" or "rate(12 hours)".
13499	ScheduleDefinitions []*string `locationNameList:"ScheduleDefinition" type:"list"`
13500
13501	// The description of the snapshot schedule.
13502	ScheduleDescription *string `type:"string"`
13503
13504	// A unique identifier for a snapshot schedule. Only alphanumeric characters
13505	// are allowed for the identifier.
13506	ScheduleIdentifier *string `type:"string"`
13507
13508	// An optional set of tags you can use to search for the schedule.
13509	Tags []*Tag `locationNameList:"Tag" type:"list"`
13510}
13511
13512// String returns the string representation
13513func (s CreateSnapshotScheduleInput) String() string {
13514	return awsutil.Prettify(s)
13515}
13516
13517// GoString returns the string representation
13518func (s CreateSnapshotScheduleInput) GoString() string {
13519	return s.String()
13520}
13521
13522// SetDryRun sets the DryRun field's value.
13523func (s *CreateSnapshotScheduleInput) SetDryRun(v bool) *CreateSnapshotScheduleInput {
13524	s.DryRun = &v
13525	return s
13526}
13527
13528// SetNextInvocations sets the NextInvocations field's value.
13529func (s *CreateSnapshotScheduleInput) SetNextInvocations(v int64) *CreateSnapshotScheduleInput {
13530	s.NextInvocations = &v
13531	return s
13532}
13533
13534// SetScheduleDefinitions sets the ScheduleDefinitions field's value.
13535func (s *CreateSnapshotScheduleInput) SetScheduleDefinitions(v []*string) *CreateSnapshotScheduleInput {
13536	s.ScheduleDefinitions = v
13537	return s
13538}
13539
13540// SetScheduleDescription sets the ScheduleDescription field's value.
13541func (s *CreateSnapshotScheduleInput) SetScheduleDescription(v string) *CreateSnapshotScheduleInput {
13542	s.ScheduleDescription = &v
13543	return s
13544}
13545
13546// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
13547func (s *CreateSnapshotScheduleInput) SetScheduleIdentifier(v string) *CreateSnapshotScheduleInput {
13548	s.ScheduleIdentifier = &v
13549	return s
13550}
13551
13552// SetTags sets the Tags field's value.
13553func (s *CreateSnapshotScheduleInput) SetTags(v []*Tag) *CreateSnapshotScheduleInput {
13554	s.Tags = v
13555	return s
13556}
13557
13558// Describes a snapshot schedule. You can set a regular interval for creating
13559// snapshots of a cluster. You can also schedule snapshots for specific dates.
13560type CreateSnapshotScheduleOutput struct {
13561	_ struct{} `type:"structure"`
13562
13563	// The number of clusters associated with the schedule.
13564	AssociatedClusterCount *int64 `type:"integer"`
13565
13566	// A list of clusters associated with the schedule. A maximum of 100 clusters
13567	// is returned.
13568	AssociatedClusters []*ClusterAssociatedToSchedule `locationNameList:"ClusterAssociatedToSchedule" type:"list"`
13569
13570	NextInvocations []*time.Time `locationNameList:"SnapshotTime" type:"list"`
13571
13572	// A list of ScheduleDefinitions.
13573	ScheduleDefinitions []*string `locationNameList:"ScheduleDefinition" type:"list"`
13574
13575	// The description of the schedule.
13576	ScheduleDescription *string `type:"string"`
13577
13578	// A unique identifier for the schedule.
13579	ScheduleIdentifier *string `type:"string"`
13580
13581	// An optional set of tags describing the schedule.
13582	Tags []*Tag `locationNameList:"Tag" type:"list"`
13583}
13584
13585// String returns the string representation
13586func (s CreateSnapshotScheduleOutput) String() string {
13587	return awsutil.Prettify(s)
13588}
13589
13590// GoString returns the string representation
13591func (s CreateSnapshotScheduleOutput) GoString() string {
13592	return s.String()
13593}
13594
13595// SetAssociatedClusterCount sets the AssociatedClusterCount field's value.
13596func (s *CreateSnapshotScheduleOutput) SetAssociatedClusterCount(v int64) *CreateSnapshotScheduleOutput {
13597	s.AssociatedClusterCount = &v
13598	return s
13599}
13600
13601// SetAssociatedClusters sets the AssociatedClusters field's value.
13602func (s *CreateSnapshotScheduleOutput) SetAssociatedClusters(v []*ClusterAssociatedToSchedule) *CreateSnapshotScheduleOutput {
13603	s.AssociatedClusters = v
13604	return s
13605}
13606
13607// SetNextInvocations sets the NextInvocations field's value.
13608func (s *CreateSnapshotScheduleOutput) SetNextInvocations(v []*time.Time) *CreateSnapshotScheduleOutput {
13609	s.NextInvocations = v
13610	return s
13611}
13612
13613// SetScheduleDefinitions sets the ScheduleDefinitions field's value.
13614func (s *CreateSnapshotScheduleOutput) SetScheduleDefinitions(v []*string) *CreateSnapshotScheduleOutput {
13615	s.ScheduleDefinitions = v
13616	return s
13617}
13618
13619// SetScheduleDescription sets the ScheduleDescription field's value.
13620func (s *CreateSnapshotScheduleOutput) SetScheduleDescription(v string) *CreateSnapshotScheduleOutput {
13621	s.ScheduleDescription = &v
13622	return s
13623}
13624
13625// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
13626func (s *CreateSnapshotScheduleOutput) SetScheduleIdentifier(v string) *CreateSnapshotScheduleOutput {
13627	s.ScheduleIdentifier = &v
13628	return s
13629}
13630
13631// SetTags sets the Tags field's value.
13632func (s *CreateSnapshotScheduleOutput) SetTags(v []*Tag) *CreateSnapshotScheduleOutput {
13633	s.Tags = v
13634	return s
13635}
13636
13637// Contains the output from the CreateTags action.
13638type CreateTagsInput struct {
13639	_ struct{} `type:"structure"`
13640
13641	// The Amazon Resource Name (ARN) to which you want to add the tag or tags.
13642	// For example, arn:aws:redshift:us-east-2:123456789:cluster:t1.
13643	//
13644	// ResourceName is a required field
13645	ResourceName *string `type:"string" required:"true"`
13646
13647	// One or more name/value pairs to add as tags to the specified resource. Each
13648	// tag name is passed in with the parameter Key and the corresponding value
13649	// is passed in with the parameter Value. The Key and Value parameters are separated
13650	// by a comma (,). Separate multiple tags with a space. For example, --tags
13651	// "Key"="owner","Value"="admin" "Key"="environment","Value"="test" "Key"="version","Value"="1.0".
13652	//
13653	// Tags is a required field
13654	Tags []*Tag `locationNameList:"Tag" type:"list" required:"true"`
13655}
13656
13657// String returns the string representation
13658func (s CreateTagsInput) String() string {
13659	return awsutil.Prettify(s)
13660}
13661
13662// GoString returns the string representation
13663func (s CreateTagsInput) GoString() string {
13664	return s.String()
13665}
13666
13667// Validate inspects the fields of the type to determine if they are valid.
13668func (s *CreateTagsInput) Validate() error {
13669	invalidParams := request.ErrInvalidParams{Context: "CreateTagsInput"}
13670	if s.ResourceName == nil {
13671		invalidParams.Add(request.NewErrParamRequired("ResourceName"))
13672	}
13673	if s.Tags == nil {
13674		invalidParams.Add(request.NewErrParamRequired("Tags"))
13675	}
13676
13677	if invalidParams.Len() > 0 {
13678		return invalidParams
13679	}
13680	return nil
13681}
13682
13683// SetResourceName sets the ResourceName field's value.
13684func (s *CreateTagsInput) SetResourceName(v string) *CreateTagsInput {
13685	s.ResourceName = &v
13686	return s
13687}
13688
13689// SetTags sets the Tags field's value.
13690func (s *CreateTagsInput) SetTags(v []*Tag) *CreateTagsInput {
13691	s.Tags = v
13692	return s
13693}
13694
13695type CreateTagsOutput struct {
13696	_ struct{} `type:"structure"`
13697}
13698
13699// String returns the string representation
13700func (s CreateTagsOutput) String() string {
13701	return awsutil.Prettify(s)
13702}
13703
13704// GoString returns the string representation
13705func (s CreateTagsOutput) GoString() string {
13706	return s.String()
13707}
13708
13709type CreateUsageLimitInput struct {
13710	_ struct{} `type:"structure"`
13711
13712	// The limit amount. If time-based, this amount is in minutes. If data-based,
13713	// this amount is in terabytes (TB). The value must be a positive number.
13714	//
13715	// Amount is a required field
13716	Amount *int64 `type:"long" required:"true"`
13717
13718	// The action that Amazon Redshift takes when the limit is reached. The default
13719	// is log. For more information about this parameter, see UsageLimit.
13720	BreachAction *string `type:"string" enum:"UsageLimitBreachAction"`
13721
13722	// The identifier of the cluster that you want to limit usage.
13723	//
13724	// ClusterIdentifier is a required field
13725	ClusterIdentifier *string `type:"string" required:"true"`
13726
13727	// The Amazon Redshift feature that you want to limit.
13728	//
13729	// FeatureType is a required field
13730	FeatureType *string `type:"string" required:"true" enum:"UsageLimitFeatureType"`
13731
13732	// The type of limit. Depending on the feature type, this can be based on a
13733	// time duration or data size. If FeatureType is spectrum, then LimitType must
13734	// be data-scanned. If FeatureType is concurrency-scaling, then LimitType must
13735	// be time.
13736	//
13737	// LimitType is a required field
13738	LimitType *string `type:"string" required:"true" enum:"UsageLimitLimitType"`
13739
13740	// The time period that the amount applies to. A weekly period begins on Sunday.
13741	// The default is monthly.
13742	Period *string `type:"string" enum:"UsageLimitPeriod"`
13743
13744	// A list of tag instances.
13745	Tags []*Tag `locationNameList:"Tag" type:"list"`
13746}
13747
13748// String returns the string representation
13749func (s CreateUsageLimitInput) String() string {
13750	return awsutil.Prettify(s)
13751}
13752
13753// GoString returns the string representation
13754func (s CreateUsageLimitInput) GoString() string {
13755	return s.String()
13756}
13757
13758// Validate inspects the fields of the type to determine if they are valid.
13759func (s *CreateUsageLimitInput) Validate() error {
13760	invalidParams := request.ErrInvalidParams{Context: "CreateUsageLimitInput"}
13761	if s.Amount == nil {
13762		invalidParams.Add(request.NewErrParamRequired("Amount"))
13763	}
13764	if s.ClusterIdentifier == nil {
13765		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
13766	}
13767	if s.FeatureType == nil {
13768		invalidParams.Add(request.NewErrParamRequired("FeatureType"))
13769	}
13770	if s.LimitType == nil {
13771		invalidParams.Add(request.NewErrParamRequired("LimitType"))
13772	}
13773
13774	if invalidParams.Len() > 0 {
13775		return invalidParams
13776	}
13777	return nil
13778}
13779
13780// SetAmount sets the Amount field's value.
13781func (s *CreateUsageLimitInput) SetAmount(v int64) *CreateUsageLimitInput {
13782	s.Amount = &v
13783	return s
13784}
13785
13786// SetBreachAction sets the BreachAction field's value.
13787func (s *CreateUsageLimitInput) SetBreachAction(v string) *CreateUsageLimitInput {
13788	s.BreachAction = &v
13789	return s
13790}
13791
13792// SetClusterIdentifier sets the ClusterIdentifier field's value.
13793func (s *CreateUsageLimitInput) SetClusterIdentifier(v string) *CreateUsageLimitInput {
13794	s.ClusterIdentifier = &v
13795	return s
13796}
13797
13798// SetFeatureType sets the FeatureType field's value.
13799func (s *CreateUsageLimitInput) SetFeatureType(v string) *CreateUsageLimitInput {
13800	s.FeatureType = &v
13801	return s
13802}
13803
13804// SetLimitType sets the LimitType field's value.
13805func (s *CreateUsageLimitInput) SetLimitType(v string) *CreateUsageLimitInput {
13806	s.LimitType = &v
13807	return s
13808}
13809
13810// SetPeriod sets the Period field's value.
13811func (s *CreateUsageLimitInput) SetPeriod(v string) *CreateUsageLimitInput {
13812	s.Period = &v
13813	return s
13814}
13815
13816// SetTags sets the Tags field's value.
13817func (s *CreateUsageLimitInput) SetTags(v []*Tag) *CreateUsageLimitInput {
13818	s.Tags = v
13819	return s
13820}
13821
13822// Describes a usage limit object for a cluster.
13823type CreateUsageLimitOutput struct {
13824	_ struct{} `type:"structure"`
13825
13826	// The limit amount. If time-based, this amount is in minutes. If data-based,
13827	// this amount is in terabytes (TB).
13828	Amount *int64 `type:"long"`
13829
13830	// The action that Amazon Redshift takes when the limit is reached. Possible
13831	// values are:
13832	//
13833	//    * log - To log an event in a system table. The default is log.
13834	//
13835	//    * emit-metric - To emit CloudWatch metrics.
13836	//
13837	//    * disable - To disable the feature until the next usage period begins.
13838	BreachAction *string `type:"string" enum:"UsageLimitBreachAction"`
13839
13840	// The identifier of the cluster with a usage limit.
13841	ClusterIdentifier *string `type:"string"`
13842
13843	// The Amazon Redshift feature to which the limit applies.
13844	FeatureType *string `type:"string" enum:"UsageLimitFeatureType"`
13845
13846	// The type of limit. Depending on the feature type, this can be based on a
13847	// time duration or data size.
13848	LimitType *string `type:"string" enum:"UsageLimitLimitType"`
13849
13850	// The time period that the amount applies to. A weekly period begins on Sunday.
13851	// The default is monthly.
13852	Period *string `type:"string" enum:"UsageLimitPeriod"`
13853
13854	// A list of tag instances.
13855	Tags []*Tag `locationNameList:"Tag" type:"list"`
13856
13857	// The identifier of the usage limit.
13858	UsageLimitId *string `type:"string"`
13859}
13860
13861// String returns the string representation
13862func (s CreateUsageLimitOutput) String() string {
13863	return awsutil.Prettify(s)
13864}
13865
13866// GoString returns the string representation
13867func (s CreateUsageLimitOutput) GoString() string {
13868	return s.String()
13869}
13870
13871// SetAmount sets the Amount field's value.
13872func (s *CreateUsageLimitOutput) SetAmount(v int64) *CreateUsageLimitOutput {
13873	s.Amount = &v
13874	return s
13875}
13876
13877// SetBreachAction sets the BreachAction field's value.
13878func (s *CreateUsageLimitOutput) SetBreachAction(v string) *CreateUsageLimitOutput {
13879	s.BreachAction = &v
13880	return s
13881}
13882
13883// SetClusterIdentifier sets the ClusterIdentifier field's value.
13884func (s *CreateUsageLimitOutput) SetClusterIdentifier(v string) *CreateUsageLimitOutput {
13885	s.ClusterIdentifier = &v
13886	return s
13887}
13888
13889// SetFeatureType sets the FeatureType field's value.
13890func (s *CreateUsageLimitOutput) SetFeatureType(v string) *CreateUsageLimitOutput {
13891	s.FeatureType = &v
13892	return s
13893}
13894
13895// SetLimitType sets the LimitType field's value.
13896func (s *CreateUsageLimitOutput) SetLimitType(v string) *CreateUsageLimitOutput {
13897	s.LimitType = &v
13898	return s
13899}
13900
13901// SetPeriod sets the Period field's value.
13902func (s *CreateUsageLimitOutput) SetPeriod(v string) *CreateUsageLimitOutput {
13903	s.Period = &v
13904	return s
13905}
13906
13907// SetTags sets the Tags field's value.
13908func (s *CreateUsageLimitOutput) SetTags(v []*Tag) *CreateUsageLimitOutput {
13909	s.Tags = v
13910	return s
13911}
13912
13913// SetUsageLimitId sets the UsageLimitId field's value.
13914func (s *CreateUsageLimitOutput) SetUsageLimitId(v string) *CreateUsageLimitOutput {
13915	s.UsageLimitId = &v
13916	return s
13917}
13918
13919// Describes the status of a cluster while it is in the process of resizing
13920// with an incremental resize.
13921type DataTransferProgress struct {
13922	_ struct{} `type:"structure"`
13923
13924	// Describes the data transfer rate in MB's per second.
13925	CurrentRateInMegaBytesPerSecond *float64 `type:"double"`
13926
13927	// Describes the total amount of data that has been transfered in MB's.
13928	DataTransferredInMegaBytes *int64 `type:"long"`
13929
13930	// Describes the number of seconds that have elapsed during the data transfer.
13931	ElapsedTimeInSeconds *int64 `type:"long"`
13932
13933	// Describes the estimated number of seconds remaining to complete the transfer.
13934	EstimatedTimeToCompletionInSeconds *int64 `type:"long"`
13935
13936	// Describes the status of the cluster. While the transfer is in progress the
13937	// status is transferringdata.
13938	Status *string `type:"string"`
13939
13940	// Describes the total amount of data to be transfered in megabytes.
13941	TotalDataInMegaBytes *int64 `type:"long"`
13942}
13943
13944// String returns the string representation
13945func (s DataTransferProgress) String() string {
13946	return awsutil.Prettify(s)
13947}
13948
13949// GoString returns the string representation
13950func (s DataTransferProgress) GoString() string {
13951	return s.String()
13952}
13953
13954// SetCurrentRateInMegaBytesPerSecond sets the CurrentRateInMegaBytesPerSecond field's value.
13955func (s *DataTransferProgress) SetCurrentRateInMegaBytesPerSecond(v float64) *DataTransferProgress {
13956	s.CurrentRateInMegaBytesPerSecond = &v
13957	return s
13958}
13959
13960// SetDataTransferredInMegaBytes sets the DataTransferredInMegaBytes field's value.
13961func (s *DataTransferProgress) SetDataTransferredInMegaBytes(v int64) *DataTransferProgress {
13962	s.DataTransferredInMegaBytes = &v
13963	return s
13964}
13965
13966// SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
13967func (s *DataTransferProgress) SetElapsedTimeInSeconds(v int64) *DataTransferProgress {
13968	s.ElapsedTimeInSeconds = &v
13969	return s
13970}
13971
13972// SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value.
13973func (s *DataTransferProgress) SetEstimatedTimeToCompletionInSeconds(v int64) *DataTransferProgress {
13974	s.EstimatedTimeToCompletionInSeconds = &v
13975	return s
13976}
13977
13978// SetStatus sets the Status field's value.
13979func (s *DataTransferProgress) SetStatus(v string) *DataTransferProgress {
13980	s.Status = &v
13981	return s
13982}
13983
13984// SetTotalDataInMegaBytes sets the TotalDataInMegaBytes field's value.
13985func (s *DataTransferProgress) SetTotalDataInMegaBytes(v int64) *DataTransferProgress {
13986	s.TotalDataInMegaBytes = &v
13987	return s
13988}
13989
13990// Describes the default cluster parameters for a parameter group family.
13991type DefaultClusterParameters struct {
13992	_ struct{} `type:"structure"`
13993
13994	// A value that indicates the starting point for the next set of response records
13995	// in a subsequent request. If a value is returned in a response, you can retrieve
13996	// the next set of records by providing this returned marker value in the Marker
13997	// parameter and retrying the command. If the Marker field is empty, all response
13998	// records have been retrieved for the request.
13999	Marker *string `type:"string"`
14000
14001	// The name of the cluster parameter group family to which the engine default
14002	// parameters apply.
14003	ParameterGroupFamily *string `type:"string"`
14004
14005	// The list of cluster default parameters.
14006	Parameters []*Parameter `locationNameList:"Parameter" type:"list"`
14007}
14008
14009// String returns the string representation
14010func (s DefaultClusterParameters) String() string {
14011	return awsutil.Prettify(s)
14012}
14013
14014// GoString returns the string representation
14015func (s DefaultClusterParameters) GoString() string {
14016	return s.String()
14017}
14018
14019// SetMarker sets the Marker field's value.
14020func (s *DefaultClusterParameters) SetMarker(v string) *DefaultClusterParameters {
14021	s.Marker = &v
14022	return s
14023}
14024
14025// SetParameterGroupFamily sets the ParameterGroupFamily field's value.
14026func (s *DefaultClusterParameters) SetParameterGroupFamily(v string) *DefaultClusterParameters {
14027	s.ParameterGroupFamily = &v
14028	return s
14029}
14030
14031// SetParameters sets the Parameters field's value.
14032func (s *DefaultClusterParameters) SetParameters(v []*Parameter) *DefaultClusterParameters {
14033	s.Parameters = v
14034	return s
14035}
14036
14037// Describes a deferred maintenance window
14038type DeferredMaintenanceWindow struct {
14039	_ struct{} `type:"structure"`
14040
14041	// A timestamp for the end of the time period when we defer maintenance.
14042	DeferMaintenanceEndTime *time.Time `type:"timestamp"`
14043
14044	// A unique identifier for the maintenance window.
14045	DeferMaintenanceIdentifier *string `type:"string"`
14046
14047	// A timestamp for the beginning of the time period when we defer maintenance.
14048	DeferMaintenanceStartTime *time.Time `type:"timestamp"`
14049}
14050
14051// String returns the string representation
14052func (s DeferredMaintenanceWindow) String() string {
14053	return awsutil.Prettify(s)
14054}
14055
14056// GoString returns the string representation
14057func (s DeferredMaintenanceWindow) GoString() string {
14058	return s.String()
14059}
14060
14061// SetDeferMaintenanceEndTime sets the DeferMaintenanceEndTime field's value.
14062func (s *DeferredMaintenanceWindow) SetDeferMaintenanceEndTime(v time.Time) *DeferredMaintenanceWindow {
14063	s.DeferMaintenanceEndTime = &v
14064	return s
14065}
14066
14067// SetDeferMaintenanceIdentifier sets the DeferMaintenanceIdentifier field's value.
14068func (s *DeferredMaintenanceWindow) SetDeferMaintenanceIdentifier(v string) *DeferredMaintenanceWindow {
14069	s.DeferMaintenanceIdentifier = &v
14070	return s
14071}
14072
14073// SetDeferMaintenanceStartTime sets the DeferMaintenanceStartTime field's value.
14074func (s *DeferredMaintenanceWindow) SetDeferMaintenanceStartTime(v time.Time) *DeferredMaintenanceWindow {
14075	s.DeferMaintenanceStartTime = &v
14076	return s
14077}
14078
14079type DeleteClusterInput struct {
14080	_ struct{} `type:"structure"`
14081
14082	// The identifier of the cluster to be deleted.
14083	//
14084	// Constraints:
14085	//
14086	//    * Must contain lowercase characters.
14087	//
14088	//    * Must contain from 1 to 63 alphanumeric characters or hyphens.
14089	//
14090	//    * First character must be a letter.
14091	//
14092	//    * Cannot end with a hyphen or contain two consecutive hyphens.
14093	//
14094	// ClusterIdentifier is a required field
14095	ClusterIdentifier *string `type:"string" required:"true"`
14096
14097	// The identifier of the final snapshot that is to be created immediately before
14098	// deleting the cluster. If this parameter is provided, SkipFinalClusterSnapshot
14099	// must be false.
14100	//
14101	// Constraints:
14102	//
14103	//    * Must be 1 to 255 alphanumeric characters.
14104	//
14105	//    * First character must be a letter.
14106	//
14107	//    * Cannot end with a hyphen or contain two consecutive hyphens.
14108	FinalClusterSnapshotIdentifier *string `type:"string"`
14109
14110	// The number of days that a manual snapshot is retained. If the value is -1,
14111	// the manual snapshot is retained indefinitely.
14112	//
14113	// The value must be either -1 or an integer between 1 and 3,653.
14114	//
14115	// The default value is -1.
14116	FinalClusterSnapshotRetentionPeriod *int64 `type:"integer"`
14117
14118	// Determines whether a final snapshot of the cluster is created before Amazon
14119	// Redshift deletes the cluster. If true, a final cluster snapshot is not created.
14120	// If false, a final cluster snapshot is created before the cluster is deleted.
14121	//
14122	// The FinalClusterSnapshotIdentifier parameter must be specified if SkipFinalClusterSnapshot
14123	// is false.
14124	//
14125	// Default: false
14126	SkipFinalClusterSnapshot *bool `type:"boolean"`
14127}
14128
14129// String returns the string representation
14130func (s DeleteClusterInput) String() string {
14131	return awsutil.Prettify(s)
14132}
14133
14134// GoString returns the string representation
14135func (s DeleteClusterInput) GoString() string {
14136	return s.String()
14137}
14138
14139// Validate inspects the fields of the type to determine if they are valid.
14140func (s *DeleteClusterInput) Validate() error {
14141	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
14142	if s.ClusterIdentifier == nil {
14143		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
14144	}
14145
14146	if invalidParams.Len() > 0 {
14147		return invalidParams
14148	}
14149	return nil
14150}
14151
14152// SetClusterIdentifier sets the ClusterIdentifier field's value.
14153func (s *DeleteClusterInput) SetClusterIdentifier(v string) *DeleteClusterInput {
14154	s.ClusterIdentifier = &v
14155	return s
14156}
14157
14158// SetFinalClusterSnapshotIdentifier sets the FinalClusterSnapshotIdentifier field's value.
14159func (s *DeleteClusterInput) SetFinalClusterSnapshotIdentifier(v string) *DeleteClusterInput {
14160	s.FinalClusterSnapshotIdentifier = &v
14161	return s
14162}
14163
14164// SetFinalClusterSnapshotRetentionPeriod sets the FinalClusterSnapshotRetentionPeriod field's value.
14165func (s *DeleteClusterInput) SetFinalClusterSnapshotRetentionPeriod(v int64) *DeleteClusterInput {
14166	s.FinalClusterSnapshotRetentionPeriod = &v
14167	return s
14168}
14169
14170// SetSkipFinalClusterSnapshot sets the SkipFinalClusterSnapshot field's value.
14171func (s *DeleteClusterInput) SetSkipFinalClusterSnapshot(v bool) *DeleteClusterInput {
14172	s.SkipFinalClusterSnapshot = &v
14173	return s
14174}
14175
14176type DeleteClusterOutput struct {
14177	_ struct{} `type:"structure"`
14178
14179	// Describes a cluster.
14180	Cluster *Cluster `type:"structure"`
14181}
14182
14183// String returns the string representation
14184func (s DeleteClusterOutput) String() string {
14185	return awsutil.Prettify(s)
14186}
14187
14188// GoString returns the string representation
14189func (s DeleteClusterOutput) GoString() string {
14190	return s.String()
14191}
14192
14193// SetCluster sets the Cluster field's value.
14194func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
14195	s.Cluster = v
14196	return s
14197}
14198
14199type DeleteClusterParameterGroupInput struct {
14200	_ struct{} `type:"structure"`
14201
14202	// The name of the parameter group to be deleted.
14203	//
14204	// Constraints:
14205	//
14206	//    * Must be the name of an existing cluster parameter group.
14207	//
14208	//    * Cannot delete a default cluster parameter group.
14209	//
14210	// ParameterGroupName is a required field
14211	ParameterGroupName *string `type:"string" required:"true"`
14212}
14213
14214// String returns the string representation
14215func (s DeleteClusterParameterGroupInput) String() string {
14216	return awsutil.Prettify(s)
14217}
14218
14219// GoString returns the string representation
14220func (s DeleteClusterParameterGroupInput) GoString() string {
14221	return s.String()
14222}
14223
14224// Validate inspects the fields of the type to determine if they are valid.
14225func (s *DeleteClusterParameterGroupInput) Validate() error {
14226	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterParameterGroupInput"}
14227	if s.ParameterGroupName == nil {
14228		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
14229	}
14230
14231	if invalidParams.Len() > 0 {
14232		return invalidParams
14233	}
14234	return nil
14235}
14236
14237// SetParameterGroupName sets the ParameterGroupName field's value.
14238func (s *DeleteClusterParameterGroupInput) SetParameterGroupName(v string) *DeleteClusterParameterGroupInput {
14239	s.ParameterGroupName = &v
14240	return s
14241}
14242
14243type DeleteClusterParameterGroupOutput struct {
14244	_ struct{} `type:"structure"`
14245}
14246
14247// String returns the string representation
14248func (s DeleteClusterParameterGroupOutput) String() string {
14249	return awsutil.Prettify(s)
14250}
14251
14252// GoString returns the string representation
14253func (s DeleteClusterParameterGroupOutput) GoString() string {
14254	return s.String()
14255}
14256
14257type DeleteClusterSecurityGroupInput struct {
14258	_ struct{} `type:"structure"`
14259
14260	// The name of the cluster security group to be deleted.
14261	//
14262	// ClusterSecurityGroupName is a required field
14263	ClusterSecurityGroupName *string `type:"string" required:"true"`
14264}
14265
14266// String returns the string representation
14267func (s DeleteClusterSecurityGroupInput) String() string {
14268	return awsutil.Prettify(s)
14269}
14270
14271// GoString returns the string representation
14272func (s DeleteClusterSecurityGroupInput) GoString() string {
14273	return s.String()
14274}
14275
14276// Validate inspects the fields of the type to determine if they are valid.
14277func (s *DeleteClusterSecurityGroupInput) Validate() error {
14278	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterSecurityGroupInput"}
14279	if s.ClusterSecurityGroupName == nil {
14280		invalidParams.Add(request.NewErrParamRequired("ClusterSecurityGroupName"))
14281	}
14282
14283	if invalidParams.Len() > 0 {
14284		return invalidParams
14285	}
14286	return nil
14287}
14288
14289// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
14290func (s *DeleteClusterSecurityGroupInput) SetClusterSecurityGroupName(v string) *DeleteClusterSecurityGroupInput {
14291	s.ClusterSecurityGroupName = &v
14292	return s
14293}
14294
14295type DeleteClusterSecurityGroupOutput struct {
14296	_ struct{} `type:"structure"`
14297}
14298
14299// String returns the string representation
14300func (s DeleteClusterSecurityGroupOutput) String() string {
14301	return awsutil.Prettify(s)
14302}
14303
14304// GoString returns the string representation
14305func (s DeleteClusterSecurityGroupOutput) GoString() string {
14306	return s.String()
14307}
14308
14309type DeleteClusterSnapshotInput struct {
14310	_ struct{} `type:"structure"`
14311
14312	// The unique identifier of the cluster the snapshot was created from. This
14313	// parameter is required if your IAM user has a policy containing a snapshot
14314	// resource element that specifies anything other than * for the cluster name.
14315	//
14316	// Constraints: Must be the name of valid cluster.
14317	SnapshotClusterIdentifier *string `type:"string"`
14318
14319	// The unique identifier of the manual snapshot to be deleted.
14320	//
14321	// Constraints: Must be the name of an existing snapshot that is in the available,
14322	// failed, or cancelled state.
14323	//
14324	// SnapshotIdentifier is a required field
14325	SnapshotIdentifier *string `type:"string" required:"true"`
14326}
14327
14328// String returns the string representation
14329func (s DeleteClusterSnapshotInput) String() string {
14330	return awsutil.Prettify(s)
14331}
14332
14333// GoString returns the string representation
14334func (s DeleteClusterSnapshotInput) GoString() string {
14335	return s.String()
14336}
14337
14338// Validate inspects the fields of the type to determine if they are valid.
14339func (s *DeleteClusterSnapshotInput) Validate() error {
14340	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterSnapshotInput"}
14341	if s.SnapshotIdentifier == nil {
14342		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
14343	}
14344
14345	if invalidParams.Len() > 0 {
14346		return invalidParams
14347	}
14348	return nil
14349}
14350
14351// SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
14352func (s *DeleteClusterSnapshotInput) SetSnapshotClusterIdentifier(v string) *DeleteClusterSnapshotInput {
14353	s.SnapshotClusterIdentifier = &v
14354	return s
14355}
14356
14357// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
14358func (s *DeleteClusterSnapshotInput) SetSnapshotIdentifier(v string) *DeleteClusterSnapshotInput {
14359	s.SnapshotIdentifier = &v
14360	return s
14361}
14362
14363type DeleteClusterSnapshotMessage struct {
14364	_ struct{} `type:"structure"`
14365
14366	// The unique identifier of the cluster the snapshot was created from. This
14367	// parameter is required if your IAM user has a policy containing a snapshot
14368	// resource element that specifies anything other than * for the cluster name.
14369	//
14370	// Constraints: Must be the name of valid cluster.
14371	SnapshotClusterIdentifier *string `type:"string"`
14372
14373	// The unique identifier of the manual snapshot to be deleted.
14374	//
14375	// Constraints: Must be the name of an existing snapshot that is in the available,
14376	// failed, or cancelled state.
14377	//
14378	// SnapshotIdentifier is a required field
14379	SnapshotIdentifier *string `type:"string" required:"true"`
14380}
14381
14382// String returns the string representation
14383func (s DeleteClusterSnapshotMessage) String() string {
14384	return awsutil.Prettify(s)
14385}
14386
14387// GoString returns the string representation
14388func (s DeleteClusterSnapshotMessage) GoString() string {
14389	return s.String()
14390}
14391
14392// Validate inspects the fields of the type to determine if they are valid.
14393func (s *DeleteClusterSnapshotMessage) Validate() error {
14394	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterSnapshotMessage"}
14395	if s.SnapshotIdentifier == nil {
14396		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
14397	}
14398
14399	if invalidParams.Len() > 0 {
14400		return invalidParams
14401	}
14402	return nil
14403}
14404
14405// SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
14406func (s *DeleteClusterSnapshotMessage) SetSnapshotClusterIdentifier(v string) *DeleteClusterSnapshotMessage {
14407	s.SnapshotClusterIdentifier = &v
14408	return s
14409}
14410
14411// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
14412func (s *DeleteClusterSnapshotMessage) SetSnapshotIdentifier(v string) *DeleteClusterSnapshotMessage {
14413	s.SnapshotIdentifier = &v
14414	return s
14415}
14416
14417type DeleteClusterSnapshotOutput struct {
14418	_ struct{} `type:"structure"`
14419
14420	// Describes a snapshot.
14421	Snapshot *Snapshot `type:"structure"`
14422}
14423
14424// String returns the string representation
14425func (s DeleteClusterSnapshotOutput) String() string {
14426	return awsutil.Prettify(s)
14427}
14428
14429// GoString returns the string representation
14430func (s DeleteClusterSnapshotOutput) GoString() string {
14431	return s.String()
14432}
14433
14434// SetSnapshot sets the Snapshot field's value.
14435func (s *DeleteClusterSnapshotOutput) SetSnapshot(v *Snapshot) *DeleteClusterSnapshotOutput {
14436	s.Snapshot = v
14437	return s
14438}
14439
14440type DeleteClusterSubnetGroupInput struct {
14441	_ struct{} `type:"structure"`
14442
14443	// The name of the cluster subnet group name to be deleted.
14444	//
14445	// ClusterSubnetGroupName is a required field
14446	ClusterSubnetGroupName *string `type:"string" required:"true"`
14447}
14448
14449// String returns the string representation
14450func (s DeleteClusterSubnetGroupInput) String() string {
14451	return awsutil.Prettify(s)
14452}
14453
14454// GoString returns the string representation
14455func (s DeleteClusterSubnetGroupInput) GoString() string {
14456	return s.String()
14457}
14458
14459// Validate inspects the fields of the type to determine if they are valid.
14460func (s *DeleteClusterSubnetGroupInput) Validate() error {
14461	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterSubnetGroupInput"}
14462	if s.ClusterSubnetGroupName == nil {
14463		invalidParams.Add(request.NewErrParamRequired("ClusterSubnetGroupName"))
14464	}
14465
14466	if invalidParams.Len() > 0 {
14467		return invalidParams
14468	}
14469	return nil
14470}
14471
14472// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
14473func (s *DeleteClusterSubnetGroupInput) SetClusterSubnetGroupName(v string) *DeleteClusterSubnetGroupInput {
14474	s.ClusterSubnetGroupName = &v
14475	return s
14476}
14477
14478type DeleteClusterSubnetGroupOutput struct {
14479	_ struct{} `type:"structure"`
14480}
14481
14482// String returns the string representation
14483func (s DeleteClusterSubnetGroupOutput) String() string {
14484	return awsutil.Prettify(s)
14485}
14486
14487// GoString returns the string representation
14488func (s DeleteClusterSubnetGroupOutput) GoString() string {
14489	return s.String()
14490}
14491
14492type DeleteEventSubscriptionInput struct {
14493	_ struct{} `type:"structure"`
14494
14495	// The name of the Amazon Redshift event notification subscription to be deleted.
14496	//
14497	// SubscriptionName is a required field
14498	SubscriptionName *string `type:"string" required:"true"`
14499}
14500
14501// String returns the string representation
14502func (s DeleteEventSubscriptionInput) String() string {
14503	return awsutil.Prettify(s)
14504}
14505
14506// GoString returns the string representation
14507func (s DeleteEventSubscriptionInput) GoString() string {
14508	return s.String()
14509}
14510
14511// Validate inspects the fields of the type to determine if they are valid.
14512func (s *DeleteEventSubscriptionInput) Validate() error {
14513	invalidParams := request.ErrInvalidParams{Context: "DeleteEventSubscriptionInput"}
14514	if s.SubscriptionName == nil {
14515		invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
14516	}
14517
14518	if invalidParams.Len() > 0 {
14519		return invalidParams
14520	}
14521	return nil
14522}
14523
14524// SetSubscriptionName sets the SubscriptionName field's value.
14525func (s *DeleteEventSubscriptionInput) SetSubscriptionName(v string) *DeleteEventSubscriptionInput {
14526	s.SubscriptionName = &v
14527	return s
14528}
14529
14530type DeleteEventSubscriptionOutput struct {
14531	_ struct{} `type:"structure"`
14532}
14533
14534// String returns the string representation
14535func (s DeleteEventSubscriptionOutput) String() string {
14536	return awsutil.Prettify(s)
14537}
14538
14539// GoString returns the string representation
14540func (s DeleteEventSubscriptionOutput) GoString() string {
14541	return s.String()
14542}
14543
14544type DeleteHsmClientCertificateInput struct {
14545	_ struct{} `type:"structure"`
14546
14547	// The identifier of the HSM client certificate to be deleted.
14548	//
14549	// HsmClientCertificateIdentifier is a required field
14550	HsmClientCertificateIdentifier *string `type:"string" required:"true"`
14551}
14552
14553// String returns the string representation
14554func (s DeleteHsmClientCertificateInput) String() string {
14555	return awsutil.Prettify(s)
14556}
14557
14558// GoString returns the string representation
14559func (s DeleteHsmClientCertificateInput) GoString() string {
14560	return s.String()
14561}
14562
14563// Validate inspects the fields of the type to determine if they are valid.
14564func (s *DeleteHsmClientCertificateInput) Validate() error {
14565	invalidParams := request.ErrInvalidParams{Context: "DeleteHsmClientCertificateInput"}
14566	if s.HsmClientCertificateIdentifier == nil {
14567		invalidParams.Add(request.NewErrParamRequired("HsmClientCertificateIdentifier"))
14568	}
14569
14570	if invalidParams.Len() > 0 {
14571		return invalidParams
14572	}
14573	return nil
14574}
14575
14576// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
14577func (s *DeleteHsmClientCertificateInput) SetHsmClientCertificateIdentifier(v string) *DeleteHsmClientCertificateInput {
14578	s.HsmClientCertificateIdentifier = &v
14579	return s
14580}
14581
14582type DeleteHsmClientCertificateOutput struct {
14583	_ struct{} `type:"structure"`
14584}
14585
14586// String returns the string representation
14587func (s DeleteHsmClientCertificateOutput) String() string {
14588	return awsutil.Prettify(s)
14589}
14590
14591// GoString returns the string representation
14592func (s DeleteHsmClientCertificateOutput) GoString() string {
14593	return s.String()
14594}
14595
14596type DeleteHsmConfigurationInput struct {
14597	_ struct{} `type:"structure"`
14598
14599	// The identifier of the Amazon Redshift HSM configuration to be deleted.
14600	//
14601	// HsmConfigurationIdentifier is a required field
14602	HsmConfigurationIdentifier *string `type:"string" required:"true"`
14603}
14604
14605// String returns the string representation
14606func (s DeleteHsmConfigurationInput) String() string {
14607	return awsutil.Prettify(s)
14608}
14609
14610// GoString returns the string representation
14611func (s DeleteHsmConfigurationInput) GoString() string {
14612	return s.String()
14613}
14614
14615// Validate inspects the fields of the type to determine if they are valid.
14616func (s *DeleteHsmConfigurationInput) Validate() error {
14617	invalidParams := request.ErrInvalidParams{Context: "DeleteHsmConfigurationInput"}
14618	if s.HsmConfigurationIdentifier == nil {
14619		invalidParams.Add(request.NewErrParamRequired("HsmConfigurationIdentifier"))
14620	}
14621
14622	if invalidParams.Len() > 0 {
14623		return invalidParams
14624	}
14625	return nil
14626}
14627
14628// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
14629func (s *DeleteHsmConfigurationInput) SetHsmConfigurationIdentifier(v string) *DeleteHsmConfigurationInput {
14630	s.HsmConfigurationIdentifier = &v
14631	return s
14632}
14633
14634type DeleteHsmConfigurationOutput struct {
14635	_ struct{} `type:"structure"`
14636}
14637
14638// String returns the string representation
14639func (s DeleteHsmConfigurationOutput) String() string {
14640	return awsutil.Prettify(s)
14641}
14642
14643// GoString returns the string representation
14644func (s DeleteHsmConfigurationOutput) GoString() string {
14645	return s.String()
14646}
14647
14648type DeleteScheduledActionInput struct {
14649	_ struct{} `type:"structure"`
14650
14651	// The name of the scheduled action to delete.
14652	//
14653	// ScheduledActionName is a required field
14654	ScheduledActionName *string `type:"string" required:"true"`
14655}
14656
14657// String returns the string representation
14658func (s DeleteScheduledActionInput) String() string {
14659	return awsutil.Prettify(s)
14660}
14661
14662// GoString returns the string representation
14663func (s DeleteScheduledActionInput) GoString() string {
14664	return s.String()
14665}
14666
14667// Validate inspects the fields of the type to determine if they are valid.
14668func (s *DeleteScheduledActionInput) Validate() error {
14669	invalidParams := request.ErrInvalidParams{Context: "DeleteScheduledActionInput"}
14670	if s.ScheduledActionName == nil {
14671		invalidParams.Add(request.NewErrParamRequired("ScheduledActionName"))
14672	}
14673
14674	if invalidParams.Len() > 0 {
14675		return invalidParams
14676	}
14677	return nil
14678}
14679
14680// SetScheduledActionName sets the ScheduledActionName field's value.
14681func (s *DeleteScheduledActionInput) SetScheduledActionName(v string) *DeleteScheduledActionInput {
14682	s.ScheduledActionName = &v
14683	return s
14684}
14685
14686type DeleteScheduledActionOutput struct {
14687	_ struct{} `type:"structure"`
14688}
14689
14690// String returns the string representation
14691func (s DeleteScheduledActionOutput) String() string {
14692	return awsutil.Prettify(s)
14693}
14694
14695// GoString returns the string representation
14696func (s DeleteScheduledActionOutput) GoString() string {
14697	return s.String()
14698}
14699
14700// The result of the DeleteSnapshotCopyGrant action.
14701type DeleteSnapshotCopyGrantInput struct {
14702	_ struct{} `type:"structure"`
14703
14704	// The name of the snapshot copy grant to delete.
14705	//
14706	// SnapshotCopyGrantName is a required field
14707	SnapshotCopyGrantName *string `type:"string" required:"true"`
14708}
14709
14710// String returns the string representation
14711func (s DeleteSnapshotCopyGrantInput) String() string {
14712	return awsutil.Prettify(s)
14713}
14714
14715// GoString returns the string representation
14716func (s DeleteSnapshotCopyGrantInput) GoString() string {
14717	return s.String()
14718}
14719
14720// Validate inspects the fields of the type to determine if they are valid.
14721func (s *DeleteSnapshotCopyGrantInput) Validate() error {
14722	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotCopyGrantInput"}
14723	if s.SnapshotCopyGrantName == nil {
14724		invalidParams.Add(request.NewErrParamRequired("SnapshotCopyGrantName"))
14725	}
14726
14727	if invalidParams.Len() > 0 {
14728		return invalidParams
14729	}
14730	return nil
14731}
14732
14733// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
14734func (s *DeleteSnapshotCopyGrantInput) SetSnapshotCopyGrantName(v string) *DeleteSnapshotCopyGrantInput {
14735	s.SnapshotCopyGrantName = &v
14736	return s
14737}
14738
14739type DeleteSnapshotCopyGrantOutput struct {
14740	_ struct{} `type:"structure"`
14741}
14742
14743// String returns the string representation
14744func (s DeleteSnapshotCopyGrantOutput) String() string {
14745	return awsutil.Prettify(s)
14746}
14747
14748// GoString returns the string representation
14749func (s DeleteSnapshotCopyGrantOutput) GoString() string {
14750	return s.String()
14751}
14752
14753type DeleteSnapshotScheduleInput struct {
14754	_ struct{} `type:"structure"`
14755
14756	// A unique identifier of the snapshot schedule to delete.
14757	//
14758	// ScheduleIdentifier is a required field
14759	ScheduleIdentifier *string `type:"string" required:"true"`
14760}
14761
14762// String returns the string representation
14763func (s DeleteSnapshotScheduleInput) String() string {
14764	return awsutil.Prettify(s)
14765}
14766
14767// GoString returns the string representation
14768func (s DeleteSnapshotScheduleInput) GoString() string {
14769	return s.String()
14770}
14771
14772// Validate inspects the fields of the type to determine if they are valid.
14773func (s *DeleteSnapshotScheduleInput) Validate() error {
14774	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotScheduleInput"}
14775	if s.ScheduleIdentifier == nil {
14776		invalidParams.Add(request.NewErrParamRequired("ScheduleIdentifier"))
14777	}
14778
14779	if invalidParams.Len() > 0 {
14780		return invalidParams
14781	}
14782	return nil
14783}
14784
14785// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
14786func (s *DeleteSnapshotScheduleInput) SetScheduleIdentifier(v string) *DeleteSnapshotScheduleInput {
14787	s.ScheduleIdentifier = &v
14788	return s
14789}
14790
14791type DeleteSnapshotScheduleOutput struct {
14792	_ struct{} `type:"structure"`
14793}
14794
14795// String returns the string representation
14796func (s DeleteSnapshotScheduleOutput) String() string {
14797	return awsutil.Prettify(s)
14798}
14799
14800// GoString returns the string representation
14801func (s DeleteSnapshotScheduleOutput) GoString() string {
14802	return s.String()
14803}
14804
14805// Contains the output from the DeleteTags action.
14806type DeleteTagsInput struct {
14807	_ struct{} `type:"structure"`
14808
14809	// The Amazon Resource Name (ARN) from which you want to remove the tag or tags.
14810	// For example, arn:aws:redshift:us-east-2:123456789:cluster:t1.
14811	//
14812	// ResourceName is a required field
14813	ResourceName *string `type:"string" required:"true"`
14814
14815	// The tag key that you want to delete.
14816	//
14817	// TagKeys is a required field
14818	TagKeys []*string `locationNameList:"TagKey" type:"list" required:"true"`
14819}
14820
14821// String returns the string representation
14822func (s DeleteTagsInput) String() string {
14823	return awsutil.Prettify(s)
14824}
14825
14826// GoString returns the string representation
14827func (s DeleteTagsInput) GoString() string {
14828	return s.String()
14829}
14830
14831// Validate inspects the fields of the type to determine if they are valid.
14832func (s *DeleteTagsInput) Validate() error {
14833	invalidParams := request.ErrInvalidParams{Context: "DeleteTagsInput"}
14834	if s.ResourceName == nil {
14835		invalidParams.Add(request.NewErrParamRequired("ResourceName"))
14836	}
14837	if s.TagKeys == nil {
14838		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
14839	}
14840
14841	if invalidParams.Len() > 0 {
14842		return invalidParams
14843	}
14844	return nil
14845}
14846
14847// SetResourceName sets the ResourceName field's value.
14848func (s *DeleteTagsInput) SetResourceName(v string) *DeleteTagsInput {
14849	s.ResourceName = &v
14850	return s
14851}
14852
14853// SetTagKeys sets the TagKeys field's value.
14854func (s *DeleteTagsInput) SetTagKeys(v []*string) *DeleteTagsInput {
14855	s.TagKeys = v
14856	return s
14857}
14858
14859type DeleteTagsOutput struct {
14860	_ struct{} `type:"structure"`
14861}
14862
14863// String returns the string representation
14864func (s DeleteTagsOutput) String() string {
14865	return awsutil.Prettify(s)
14866}
14867
14868// GoString returns the string representation
14869func (s DeleteTagsOutput) GoString() string {
14870	return s.String()
14871}
14872
14873type DeleteUsageLimitInput struct {
14874	_ struct{} `type:"structure"`
14875
14876	// The identifier of the usage limit to delete.
14877	//
14878	// UsageLimitId is a required field
14879	UsageLimitId *string `type:"string" required:"true"`
14880}
14881
14882// String returns the string representation
14883func (s DeleteUsageLimitInput) String() string {
14884	return awsutil.Prettify(s)
14885}
14886
14887// GoString returns the string representation
14888func (s DeleteUsageLimitInput) GoString() string {
14889	return s.String()
14890}
14891
14892// Validate inspects the fields of the type to determine if they are valid.
14893func (s *DeleteUsageLimitInput) Validate() error {
14894	invalidParams := request.ErrInvalidParams{Context: "DeleteUsageLimitInput"}
14895	if s.UsageLimitId == nil {
14896		invalidParams.Add(request.NewErrParamRequired("UsageLimitId"))
14897	}
14898
14899	if invalidParams.Len() > 0 {
14900		return invalidParams
14901	}
14902	return nil
14903}
14904
14905// SetUsageLimitId sets the UsageLimitId field's value.
14906func (s *DeleteUsageLimitInput) SetUsageLimitId(v string) *DeleteUsageLimitInput {
14907	s.UsageLimitId = &v
14908	return s
14909}
14910
14911type DeleteUsageLimitOutput struct {
14912	_ struct{} `type:"structure"`
14913}
14914
14915// String returns the string representation
14916func (s DeleteUsageLimitOutput) String() string {
14917	return awsutil.Prettify(s)
14918}
14919
14920// GoString returns the string representation
14921func (s DeleteUsageLimitOutput) GoString() string {
14922	return s.String()
14923}
14924
14925type DescribeAccountAttributesInput struct {
14926	_ struct{} `type:"structure"`
14927
14928	// A list of attribute names.
14929	AttributeNames []*string `locationNameList:"AttributeName" type:"list"`
14930}
14931
14932// String returns the string representation
14933func (s DescribeAccountAttributesInput) String() string {
14934	return awsutil.Prettify(s)
14935}
14936
14937// GoString returns the string representation
14938func (s DescribeAccountAttributesInput) GoString() string {
14939	return s.String()
14940}
14941
14942// SetAttributeNames sets the AttributeNames field's value.
14943func (s *DescribeAccountAttributesInput) SetAttributeNames(v []*string) *DescribeAccountAttributesInput {
14944	s.AttributeNames = v
14945	return s
14946}
14947
14948type DescribeAccountAttributesOutput struct {
14949	_ struct{} `type:"structure"`
14950
14951	// A list of attributes assigned to an account.
14952	AccountAttributes []*AccountAttribute `locationNameList:"AccountAttribute" type:"list"`
14953}
14954
14955// String returns the string representation
14956func (s DescribeAccountAttributesOutput) String() string {
14957	return awsutil.Prettify(s)
14958}
14959
14960// GoString returns the string representation
14961func (s DescribeAccountAttributesOutput) GoString() string {
14962	return s.String()
14963}
14964
14965// SetAccountAttributes sets the AccountAttributes field's value.
14966func (s *DescribeAccountAttributesOutput) SetAccountAttributes(v []*AccountAttribute) *DescribeAccountAttributesOutput {
14967	s.AccountAttributes = v
14968	return s
14969}
14970
14971type DescribeClusterDbRevisionsInput struct {
14972	_ struct{} `type:"structure"`
14973
14974	// A unique identifier for a cluster whose ClusterDbRevisions you are requesting.
14975	// This parameter is case sensitive. All clusters defined for an account are
14976	// returned by default.
14977	ClusterIdentifier *string `type:"string"`
14978
14979	// An optional parameter that specifies the starting point for returning a set
14980	// of response records. When the results of a DescribeClusterDbRevisions request
14981	// exceed the value specified in MaxRecords, Amazon Redshift returns a value
14982	// in the marker field of the response. You can retrieve the next set of response
14983	// records by providing the returned marker value in the marker parameter and
14984	// retrying the request.
14985	//
14986	// Constraints: You can specify either the ClusterIdentifier parameter, or the
14987	// marker parameter, but not both.
14988	Marker *string `type:"string"`
14989
14990	// The maximum number of response records to return in each call. If the number
14991	// of remaining response records exceeds the specified MaxRecords value, a value
14992	// is returned in the marker field of the response. You can retrieve the next
14993	// set of response records by providing the returned marker value in the marker
14994	// parameter and retrying the request.
14995	//
14996	// Default: 100
14997	//
14998	// Constraints: minimum 20, maximum 100.
14999	MaxRecords *int64 `type:"integer"`
15000}
15001
15002// String returns the string representation
15003func (s DescribeClusterDbRevisionsInput) String() string {
15004	return awsutil.Prettify(s)
15005}
15006
15007// GoString returns the string representation
15008func (s DescribeClusterDbRevisionsInput) GoString() string {
15009	return s.String()
15010}
15011
15012// SetClusterIdentifier sets the ClusterIdentifier field's value.
15013func (s *DescribeClusterDbRevisionsInput) SetClusterIdentifier(v string) *DescribeClusterDbRevisionsInput {
15014	s.ClusterIdentifier = &v
15015	return s
15016}
15017
15018// SetMarker sets the Marker field's value.
15019func (s *DescribeClusterDbRevisionsInput) SetMarker(v string) *DescribeClusterDbRevisionsInput {
15020	s.Marker = &v
15021	return s
15022}
15023
15024// SetMaxRecords sets the MaxRecords field's value.
15025func (s *DescribeClusterDbRevisionsInput) SetMaxRecords(v int64) *DescribeClusterDbRevisionsInput {
15026	s.MaxRecords = &v
15027	return s
15028}
15029
15030type DescribeClusterDbRevisionsOutput struct {
15031	_ struct{} `type:"structure"`
15032
15033	// A list of revisions.
15034	ClusterDbRevisions []*ClusterDbRevision `locationNameList:"ClusterDbRevision" type:"list"`
15035
15036	// A string representing the starting point for the next set of revisions. If
15037	// a value is returned in a response, you can retrieve the next set of revisions
15038	// by providing the value in the marker parameter and retrying the command.
15039	// If the marker field is empty, all revisions have already been returned.
15040	Marker *string `type:"string"`
15041}
15042
15043// String returns the string representation
15044func (s DescribeClusterDbRevisionsOutput) String() string {
15045	return awsutil.Prettify(s)
15046}
15047
15048// GoString returns the string representation
15049func (s DescribeClusterDbRevisionsOutput) GoString() string {
15050	return s.String()
15051}
15052
15053// SetClusterDbRevisions sets the ClusterDbRevisions field's value.
15054func (s *DescribeClusterDbRevisionsOutput) SetClusterDbRevisions(v []*ClusterDbRevision) *DescribeClusterDbRevisionsOutput {
15055	s.ClusterDbRevisions = v
15056	return s
15057}
15058
15059// SetMarker sets the Marker field's value.
15060func (s *DescribeClusterDbRevisionsOutput) SetMarker(v string) *DescribeClusterDbRevisionsOutput {
15061	s.Marker = &v
15062	return s
15063}
15064
15065type DescribeClusterParameterGroupsInput struct {
15066	_ struct{} `type:"structure"`
15067
15068	// An optional parameter that specifies the starting point to return a set of
15069	// response records. When the results of a DescribeClusterParameterGroups request
15070	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
15071	// field of the response. You can retrieve the next set of response records
15072	// by providing the returned marker value in the Marker parameter and retrying
15073	// the request.
15074	Marker *string `type:"string"`
15075
15076	// The maximum number of response records to return in each call. If the number
15077	// of remaining response records exceeds the specified MaxRecords value, a value
15078	// is returned in a marker field of the response. You can retrieve the next
15079	// set of records by retrying the command with the returned marker value.
15080	//
15081	// Default: 100
15082	//
15083	// Constraints: minimum 20, maximum 100.
15084	MaxRecords *int64 `type:"integer"`
15085
15086	// The name of a specific parameter group for which to return details. By default,
15087	// details about all parameter groups and the default parameter group are returned.
15088	ParameterGroupName *string `type:"string"`
15089
15090	// A tag key or keys for which you want to return all matching cluster parameter
15091	// groups that are associated with the specified key or keys. For example, suppose
15092	// that you have parameter groups that are tagged with keys called owner and
15093	// environment. If you specify both of these tag keys in the request, Amazon
15094	// Redshift returns a response with the parameter groups that have either or
15095	// both of these tag keys associated with them.
15096	TagKeys []*string `locationNameList:"TagKey" type:"list"`
15097
15098	// A tag value or values for which you want to return all matching cluster parameter
15099	// groups that are associated with the specified tag value or values. For example,
15100	// suppose that you have parameter groups that are tagged with values called
15101	// admin and test. If you specify both of these tag values in the request, Amazon
15102	// Redshift returns a response with the parameter groups that have either or
15103	// both of these tag values associated with them.
15104	TagValues []*string `locationNameList:"TagValue" type:"list"`
15105}
15106
15107// String returns the string representation
15108func (s DescribeClusterParameterGroupsInput) String() string {
15109	return awsutil.Prettify(s)
15110}
15111
15112// GoString returns the string representation
15113func (s DescribeClusterParameterGroupsInput) GoString() string {
15114	return s.String()
15115}
15116
15117// SetMarker sets the Marker field's value.
15118func (s *DescribeClusterParameterGroupsInput) SetMarker(v string) *DescribeClusterParameterGroupsInput {
15119	s.Marker = &v
15120	return s
15121}
15122
15123// SetMaxRecords sets the MaxRecords field's value.
15124func (s *DescribeClusterParameterGroupsInput) SetMaxRecords(v int64) *DescribeClusterParameterGroupsInput {
15125	s.MaxRecords = &v
15126	return s
15127}
15128
15129// SetParameterGroupName sets the ParameterGroupName field's value.
15130func (s *DescribeClusterParameterGroupsInput) SetParameterGroupName(v string) *DescribeClusterParameterGroupsInput {
15131	s.ParameterGroupName = &v
15132	return s
15133}
15134
15135// SetTagKeys sets the TagKeys field's value.
15136func (s *DescribeClusterParameterGroupsInput) SetTagKeys(v []*string) *DescribeClusterParameterGroupsInput {
15137	s.TagKeys = v
15138	return s
15139}
15140
15141// SetTagValues sets the TagValues field's value.
15142func (s *DescribeClusterParameterGroupsInput) SetTagValues(v []*string) *DescribeClusterParameterGroupsInput {
15143	s.TagValues = v
15144	return s
15145}
15146
15147// Contains the output from the DescribeClusterParameterGroups action.
15148type DescribeClusterParameterGroupsOutput struct {
15149	_ struct{} `type:"structure"`
15150
15151	// A value that indicates the starting point for the next set of response records
15152	// in a subsequent request. If a value is returned in a response, you can retrieve
15153	// the next set of records by providing this returned marker value in the Marker
15154	// parameter and retrying the command. If the Marker field is empty, all response
15155	// records have been retrieved for the request.
15156	Marker *string `type:"string"`
15157
15158	// A list of ClusterParameterGroup instances. Each instance describes one cluster
15159	// parameter group.
15160	ParameterGroups []*ClusterParameterGroup `locationNameList:"ClusterParameterGroup" type:"list"`
15161}
15162
15163// String returns the string representation
15164func (s DescribeClusterParameterGroupsOutput) String() string {
15165	return awsutil.Prettify(s)
15166}
15167
15168// GoString returns the string representation
15169func (s DescribeClusterParameterGroupsOutput) GoString() string {
15170	return s.String()
15171}
15172
15173// SetMarker sets the Marker field's value.
15174func (s *DescribeClusterParameterGroupsOutput) SetMarker(v string) *DescribeClusterParameterGroupsOutput {
15175	s.Marker = &v
15176	return s
15177}
15178
15179// SetParameterGroups sets the ParameterGroups field's value.
15180func (s *DescribeClusterParameterGroupsOutput) SetParameterGroups(v []*ClusterParameterGroup) *DescribeClusterParameterGroupsOutput {
15181	s.ParameterGroups = v
15182	return s
15183}
15184
15185type DescribeClusterParametersInput struct {
15186	_ struct{} `type:"structure"`
15187
15188	// An optional parameter that specifies the starting point to return a set of
15189	// response records. When the results of a DescribeClusterParameters request
15190	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
15191	// field of the response. You can retrieve the next set of response records
15192	// by providing the returned marker value in the Marker parameter and retrying
15193	// the request.
15194	Marker *string `type:"string"`
15195
15196	// The maximum number of response records to return in each call. If the number
15197	// of remaining response records exceeds the specified MaxRecords value, a value
15198	// is returned in a marker field of the response. You can retrieve the next
15199	// set of records by retrying the command with the returned marker value.
15200	//
15201	// Default: 100
15202	//
15203	// Constraints: minimum 20, maximum 100.
15204	MaxRecords *int64 `type:"integer"`
15205
15206	// The name of a cluster parameter group for which to return details.
15207	//
15208	// ParameterGroupName is a required field
15209	ParameterGroupName *string `type:"string" required:"true"`
15210
15211	// The parameter types to return. Specify user to show parameters that are different
15212	// form the default. Similarly, specify engine-default to show parameters that
15213	// are the same as the default parameter group.
15214	//
15215	// Default: All parameter types returned.
15216	//
15217	// Valid Values: user | engine-default
15218	Source *string `type:"string"`
15219}
15220
15221// String returns the string representation
15222func (s DescribeClusterParametersInput) String() string {
15223	return awsutil.Prettify(s)
15224}
15225
15226// GoString returns the string representation
15227func (s DescribeClusterParametersInput) GoString() string {
15228	return s.String()
15229}
15230
15231// Validate inspects the fields of the type to determine if they are valid.
15232func (s *DescribeClusterParametersInput) Validate() error {
15233	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterParametersInput"}
15234	if s.ParameterGroupName == nil {
15235		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
15236	}
15237
15238	if invalidParams.Len() > 0 {
15239		return invalidParams
15240	}
15241	return nil
15242}
15243
15244// SetMarker sets the Marker field's value.
15245func (s *DescribeClusterParametersInput) SetMarker(v string) *DescribeClusterParametersInput {
15246	s.Marker = &v
15247	return s
15248}
15249
15250// SetMaxRecords sets the MaxRecords field's value.
15251func (s *DescribeClusterParametersInput) SetMaxRecords(v int64) *DescribeClusterParametersInput {
15252	s.MaxRecords = &v
15253	return s
15254}
15255
15256// SetParameterGroupName sets the ParameterGroupName field's value.
15257func (s *DescribeClusterParametersInput) SetParameterGroupName(v string) *DescribeClusterParametersInput {
15258	s.ParameterGroupName = &v
15259	return s
15260}
15261
15262// SetSource sets the Source field's value.
15263func (s *DescribeClusterParametersInput) SetSource(v string) *DescribeClusterParametersInput {
15264	s.Source = &v
15265	return s
15266}
15267
15268// Contains the output from the DescribeClusterParameters action.
15269type DescribeClusterParametersOutput struct {
15270	_ struct{} `type:"structure"`
15271
15272	// A value that indicates the starting point for the next set of response records
15273	// in a subsequent request. If a value is returned in a response, you can retrieve
15274	// the next set of records by providing this returned marker value in the Marker
15275	// parameter and retrying the command. If the Marker field is empty, all response
15276	// records have been retrieved for the request.
15277	Marker *string `type:"string"`
15278
15279	// A list of Parameter instances. Each instance lists the parameters of one
15280	// cluster parameter group.
15281	Parameters []*Parameter `locationNameList:"Parameter" type:"list"`
15282}
15283
15284// String returns the string representation
15285func (s DescribeClusterParametersOutput) String() string {
15286	return awsutil.Prettify(s)
15287}
15288
15289// GoString returns the string representation
15290func (s DescribeClusterParametersOutput) GoString() string {
15291	return s.String()
15292}
15293
15294// SetMarker sets the Marker field's value.
15295func (s *DescribeClusterParametersOutput) SetMarker(v string) *DescribeClusterParametersOutput {
15296	s.Marker = &v
15297	return s
15298}
15299
15300// SetParameters sets the Parameters field's value.
15301func (s *DescribeClusterParametersOutput) SetParameters(v []*Parameter) *DescribeClusterParametersOutput {
15302	s.Parameters = v
15303	return s
15304}
15305
15306type DescribeClusterSecurityGroupsInput struct {
15307	_ struct{} `type:"structure"`
15308
15309	// The name of a cluster security group for which you are requesting details.
15310	// You can specify either the Marker parameter or a ClusterSecurityGroupName
15311	// parameter, but not both.
15312	//
15313	// Example: securitygroup1
15314	ClusterSecurityGroupName *string `type:"string"`
15315
15316	// An optional parameter that specifies the starting point to return a set of
15317	// response records. When the results of a DescribeClusterSecurityGroups request
15318	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
15319	// field of the response. You can retrieve the next set of response records
15320	// by providing the returned marker value in the Marker parameter and retrying
15321	// the request.
15322	//
15323	// Constraints: You can specify either the ClusterSecurityGroupName parameter
15324	// or the Marker parameter, but not both.
15325	Marker *string `type:"string"`
15326
15327	// The maximum number of response records to return in each call. If the number
15328	// of remaining response records exceeds the specified MaxRecords value, a value
15329	// is returned in a marker field of the response. You can retrieve the next
15330	// set of records by retrying the command with the returned marker value.
15331	//
15332	// Default: 100
15333	//
15334	// Constraints: minimum 20, maximum 100.
15335	MaxRecords *int64 `type:"integer"`
15336
15337	// A tag key or keys for which you want to return all matching cluster security
15338	// groups that are associated with the specified key or keys. For example, suppose
15339	// that you have security groups that are tagged with keys called owner and
15340	// environment. If you specify both of these tag keys in the request, Amazon
15341	// Redshift returns a response with the security groups that have either or
15342	// both of these tag keys associated with them.
15343	TagKeys []*string `locationNameList:"TagKey" type:"list"`
15344
15345	// A tag value or values for which you want to return all matching cluster security
15346	// groups that are associated with the specified tag value or values. For example,
15347	// suppose that you have security groups that are tagged with values called
15348	// admin and test. If you specify both of these tag values in the request, Amazon
15349	// Redshift returns a response with the security groups that have either or
15350	// both of these tag values associated with them.
15351	TagValues []*string `locationNameList:"TagValue" type:"list"`
15352}
15353
15354// String returns the string representation
15355func (s DescribeClusterSecurityGroupsInput) String() string {
15356	return awsutil.Prettify(s)
15357}
15358
15359// GoString returns the string representation
15360func (s DescribeClusterSecurityGroupsInput) GoString() string {
15361	return s.String()
15362}
15363
15364// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
15365func (s *DescribeClusterSecurityGroupsInput) SetClusterSecurityGroupName(v string) *DescribeClusterSecurityGroupsInput {
15366	s.ClusterSecurityGroupName = &v
15367	return s
15368}
15369
15370// SetMarker sets the Marker field's value.
15371func (s *DescribeClusterSecurityGroupsInput) SetMarker(v string) *DescribeClusterSecurityGroupsInput {
15372	s.Marker = &v
15373	return s
15374}
15375
15376// SetMaxRecords sets the MaxRecords field's value.
15377func (s *DescribeClusterSecurityGroupsInput) SetMaxRecords(v int64) *DescribeClusterSecurityGroupsInput {
15378	s.MaxRecords = &v
15379	return s
15380}
15381
15382// SetTagKeys sets the TagKeys field's value.
15383func (s *DescribeClusterSecurityGroupsInput) SetTagKeys(v []*string) *DescribeClusterSecurityGroupsInput {
15384	s.TagKeys = v
15385	return s
15386}
15387
15388// SetTagValues sets the TagValues field's value.
15389func (s *DescribeClusterSecurityGroupsInput) SetTagValues(v []*string) *DescribeClusterSecurityGroupsInput {
15390	s.TagValues = v
15391	return s
15392}
15393
15394type DescribeClusterSecurityGroupsOutput struct {
15395	_ struct{} `type:"structure"`
15396
15397	// A list of ClusterSecurityGroup instances.
15398	ClusterSecurityGroups []*ClusterSecurityGroup `locationNameList:"ClusterSecurityGroup" type:"list"`
15399
15400	// A value that indicates the starting point for the next set of response records
15401	// in a subsequent request. If a value is returned in a response, you can retrieve
15402	// the next set of records by providing this returned marker value in the Marker
15403	// parameter and retrying the command. If the Marker field is empty, all response
15404	// records have been retrieved for the request.
15405	Marker *string `type:"string"`
15406}
15407
15408// String returns the string representation
15409func (s DescribeClusterSecurityGroupsOutput) String() string {
15410	return awsutil.Prettify(s)
15411}
15412
15413// GoString returns the string representation
15414func (s DescribeClusterSecurityGroupsOutput) GoString() string {
15415	return s.String()
15416}
15417
15418// SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
15419func (s *DescribeClusterSecurityGroupsOutput) SetClusterSecurityGroups(v []*ClusterSecurityGroup) *DescribeClusterSecurityGroupsOutput {
15420	s.ClusterSecurityGroups = v
15421	return s
15422}
15423
15424// SetMarker sets the Marker field's value.
15425func (s *DescribeClusterSecurityGroupsOutput) SetMarker(v string) *DescribeClusterSecurityGroupsOutput {
15426	s.Marker = &v
15427	return s
15428}
15429
15430type DescribeClusterSnapshotsInput struct {
15431	_ struct{} `type:"structure"`
15432
15433	// A value that indicates whether to return snapshots only for an existing cluster.
15434	// You can perform table-level restore only by using a snapshot of an existing
15435	// cluster, that is, a cluster that has not been deleted. Values for this parameter
15436	// work as follows:
15437	//
15438	//    * If ClusterExists is set to true, ClusterIdentifier is required.
15439	//
15440	//    * If ClusterExists is set to false and ClusterIdentifier isn't specified,
15441	//    all snapshots associated with deleted clusters (orphaned snapshots) are
15442	//    returned.
15443	//
15444	//    * If ClusterExists is set to false and ClusterIdentifier is specified
15445	//    for a deleted cluster, snapshots associated with that cluster are returned.
15446	//
15447	//    * If ClusterExists is set to false and ClusterIdentifier is specified
15448	//    for an existing cluster, no snapshots are returned.
15449	ClusterExists *bool `type:"boolean"`
15450
15451	// The identifier of the cluster which generated the requested snapshots.
15452	ClusterIdentifier *string `type:"string"`
15453
15454	// A time value that requests only snapshots created at or before the specified
15455	// time. The time value is specified in ISO 8601 format. For more information
15456	// about ISO 8601, go to the ISO8601 Wikipedia page. (http://en.wikipedia.org/wiki/ISO_8601)
15457	//
15458	// Example: 2012-07-16T18:00:00Z
15459	EndTime *time.Time `type:"timestamp"`
15460
15461	// An optional parameter that specifies the starting point to return a set of
15462	// response records. When the results of a DescribeClusterSnapshots request
15463	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
15464	// field of the response. You can retrieve the next set of response records
15465	// by providing the returned marker value in the Marker parameter and retrying
15466	// the request.
15467	Marker *string `type:"string"`
15468
15469	// The maximum number of response records to return in each call. If the number
15470	// of remaining response records exceeds the specified MaxRecords value, a value
15471	// is returned in a marker field of the response. You can retrieve the next
15472	// set of records by retrying the command with the returned marker value.
15473	//
15474	// Default: 100
15475	//
15476	// Constraints: minimum 20, maximum 100.
15477	MaxRecords *int64 `type:"integer"`
15478
15479	// The AWS customer account used to create or copy the snapshot. Use this field
15480	// to filter the results to snapshots owned by a particular account. To describe
15481	// snapshots you own, either specify your AWS customer account, or do not specify
15482	// the parameter.
15483	OwnerAccount *string `type:"string"`
15484
15485	// The snapshot identifier of the snapshot about which to return information.
15486	SnapshotIdentifier *string `type:"string"`
15487
15488	// The type of snapshots for which you are requesting information. By default,
15489	// snapshots of all types are returned.
15490	//
15491	// Valid Values: automated | manual
15492	SnapshotType *string `type:"string"`
15493
15494	SortingEntities []*SnapshotSortingEntity `locationNameList:"SnapshotSortingEntity" type:"list"`
15495
15496	// A value that requests only snapshots created at or after the specified time.
15497	// The time value is specified in ISO 8601 format. For more information about
15498	// ISO 8601, go to the ISO8601 Wikipedia page. (http://en.wikipedia.org/wiki/ISO_8601)
15499	//
15500	// Example: 2012-07-16T18:00:00Z
15501	StartTime *time.Time `type:"timestamp"`
15502
15503	// A tag key or keys for which you want to return all matching cluster snapshots
15504	// that are associated with the specified key or keys. For example, suppose
15505	// that you have snapshots that are tagged with keys called owner and environment.
15506	// If you specify both of these tag keys in the request, Amazon Redshift returns
15507	// a response with the snapshots that have either or both of these tag keys
15508	// associated with them.
15509	TagKeys []*string `locationNameList:"TagKey" type:"list"`
15510
15511	// A tag value or values for which you want to return all matching cluster snapshots
15512	// that are associated with the specified tag value or values. For example,
15513	// suppose that you have snapshots that are tagged with values called admin
15514	// and test. If you specify both of these tag values in the request, Amazon
15515	// Redshift returns a response with the snapshots that have either or both of
15516	// these tag values associated with them.
15517	TagValues []*string `locationNameList:"TagValue" type:"list"`
15518}
15519
15520// String returns the string representation
15521func (s DescribeClusterSnapshotsInput) String() string {
15522	return awsutil.Prettify(s)
15523}
15524
15525// GoString returns the string representation
15526func (s DescribeClusterSnapshotsInput) GoString() string {
15527	return s.String()
15528}
15529
15530// Validate inspects the fields of the type to determine if they are valid.
15531func (s *DescribeClusterSnapshotsInput) Validate() error {
15532	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterSnapshotsInput"}
15533	if s.SortingEntities != nil {
15534		for i, v := range s.SortingEntities {
15535			if v == nil {
15536				continue
15537			}
15538			if err := v.Validate(); err != nil {
15539				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SortingEntities", i), err.(request.ErrInvalidParams))
15540			}
15541		}
15542	}
15543
15544	if invalidParams.Len() > 0 {
15545		return invalidParams
15546	}
15547	return nil
15548}
15549
15550// SetClusterExists sets the ClusterExists field's value.
15551func (s *DescribeClusterSnapshotsInput) SetClusterExists(v bool) *DescribeClusterSnapshotsInput {
15552	s.ClusterExists = &v
15553	return s
15554}
15555
15556// SetClusterIdentifier sets the ClusterIdentifier field's value.
15557func (s *DescribeClusterSnapshotsInput) SetClusterIdentifier(v string) *DescribeClusterSnapshotsInput {
15558	s.ClusterIdentifier = &v
15559	return s
15560}
15561
15562// SetEndTime sets the EndTime field's value.
15563func (s *DescribeClusterSnapshotsInput) SetEndTime(v time.Time) *DescribeClusterSnapshotsInput {
15564	s.EndTime = &v
15565	return s
15566}
15567
15568// SetMarker sets the Marker field's value.
15569func (s *DescribeClusterSnapshotsInput) SetMarker(v string) *DescribeClusterSnapshotsInput {
15570	s.Marker = &v
15571	return s
15572}
15573
15574// SetMaxRecords sets the MaxRecords field's value.
15575func (s *DescribeClusterSnapshotsInput) SetMaxRecords(v int64) *DescribeClusterSnapshotsInput {
15576	s.MaxRecords = &v
15577	return s
15578}
15579
15580// SetOwnerAccount sets the OwnerAccount field's value.
15581func (s *DescribeClusterSnapshotsInput) SetOwnerAccount(v string) *DescribeClusterSnapshotsInput {
15582	s.OwnerAccount = &v
15583	return s
15584}
15585
15586// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
15587func (s *DescribeClusterSnapshotsInput) SetSnapshotIdentifier(v string) *DescribeClusterSnapshotsInput {
15588	s.SnapshotIdentifier = &v
15589	return s
15590}
15591
15592// SetSnapshotType sets the SnapshotType field's value.
15593func (s *DescribeClusterSnapshotsInput) SetSnapshotType(v string) *DescribeClusterSnapshotsInput {
15594	s.SnapshotType = &v
15595	return s
15596}
15597
15598// SetSortingEntities sets the SortingEntities field's value.
15599func (s *DescribeClusterSnapshotsInput) SetSortingEntities(v []*SnapshotSortingEntity) *DescribeClusterSnapshotsInput {
15600	s.SortingEntities = v
15601	return s
15602}
15603
15604// SetStartTime sets the StartTime field's value.
15605func (s *DescribeClusterSnapshotsInput) SetStartTime(v time.Time) *DescribeClusterSnapshotsInput {
15606	s.StartTime = &v
15607	return s
15608}
15609
15610// SetTagKeys sets the TagKeys field's value.
15611func (s *DescribeClusterSnapshotsInput) SetTagKeys(v []*string) *DescribeClusterSnapshotsInput {
15612	s.TagKeys = v
15613	return s
15614}
15615
15616// SetTagValues sets the TagValues field's value.
15617func (s *DescribeClusterSnapshotsInput) SetTagValues(v []*string) *DescribeClusterSnapshotsInput {
15618	s.TagValues = v
15619	return s
15620}
15621
15622// Contains the output from the DescribeClusterSnapshots action.
15623type DescribeClusterSnapshotsOutput struct {
15624	_ struct{} `type:"structure"`
15625
15626	// A value that indicates the starting point for the next set of response records
15627	// in a subsequent request. If a value is returned in a response, you can retrieve
15628	// the next set of records by providing this returned marker value in the Marker
15629	// parameter and retrying the command. If the Marker field is empty, all response
15630	// records have been retrieved for the request.
15631	Marker *string `type:"string"`
15632
15633	// A list of Snapshot instances.
15634	Snapshots []*Snapshot `locationNameList:"Snapshot" type:"list"`
15635}
15636
15637// String returns the string representation
15638func (s DescribeClusterSnapshotsOutput) String() string {
15639	return awsutil.Prettify(s)
15640}
15641
15642// GoString returns the string representation
15643func (s DescribeClusterSnapshotsOutput) GoString() string {
15644	return s.String()
15645}
15646
15647// SetMarker sets the Marker field's value.
15648func (s *DescribeClusterSnapshotsOutput) SetMarker(v string) *DescribeClusterSnapshotsOutput {
15649	s.Marker = &v
15650	return s
15651}
15652
15653// SetSnapshots sets the Snapshots field's value.
15654func (s *DescribeClusterSnapshotsOutput) SetSnapshots(v []*Snapshot) *DescribeClusterSnapshotsOutput {
15655	s.Snapshots = v
15656	return s
15657}
15658
15659type DescribeClusterSubnetGroupsInput struct {
15660	_ struct{} `type:"structure"`
15661
15662	// The name of the cluster subnet group for which information is requested.
15663	ClusterSubnetGroupName *string `type:"string"`
15664
15665	// An optional parameter that specifies the starting point to return a set of
15666	// response records. When the results of a DescribeClusterSubnetGroups request
15667	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
15668	// field of the response. You can retrieve the next set of response records
15669	// by providing the returned marker value in the Marker parameter and retrying
15670	// the request.
15671	Marker *string `type:"string"`
15672
15673	// The maximum number of response records to return in each call. If the number
15674	// of remaining response records exceeds the specified MaxRecords value, a value
15675	// is returned in a marker field of the response. You can retrieve the next
15676	// set of records by retrying the command with the returned marker value.
15677	//
15678	// Default: 100
15679	//
15680	// Constraints: minimum 20, maximum 100.
15681	MaxRecords *int64 `type:"integer"`
15682
15683	// A tag key or keys for which you want to return all matching cluster subnet
15684	// groups that are associated with the specified key or keys. For example, suppose
15685	// that you have subnet groups that are tagged with keys called owner and environment.
15686	// If you specify both of these tag keys in the request, Amazon Redshift returns
15687	// a response with the subnet groups that have either or both of these tag keys
15688	// associated with them.
15689	TagKeys []*string `locationNameList:"TagKey" type:"list"`
15690
15691	// A tag value or values for which you want to return all matching cluster subnet
15692	// groups that are associated with the specified tag value or values. For example,
15693	// suppose that you have subnet groups that are tagged with values called admin
15694	// and test. If you specify both of these tag values in the request, Amazon
15695	// Redshift returns a response with the subnet groups that have either or both
15696	// of these tag values associated with them.
15697	TagValues []*string `locationNameList:"TagValue" type:"list"`
15698}
15699
15700// String returns the string representation
15701func (s DescribeClusterSubnetGroupsInput) String() string {
15702	return awsutil.Prettify(s)
15703}
15704
15705// GoString returns the string representation
15706func (s DescribeClusterSubnetGroupsInput) GoString() string {
15707	return s.String()
15708}
15709
15710// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
15711func (s *DescribeClusterSubnetGroupsInput) SetClusterSubnetGroupName(v string) *DescribeClusterSubnetGroupsInput {
15712	s.ClusterSubnetGroupName = &v
15713	return s
15714}
15715
15716// SetMarker sets the Marker field's value.
15717func (s *DescribeClusterSubnetGroupsInput) SetMarker(v string) *DescribeClusterSubnetGroupsInput {
15718	s.Marker = &v
15719	return s
15720}
15721
15722// SetMaxRecords sets the MaxRecords field's value.
15723func (s *DescribeClusterSubnetGroupsInput) SetMaxRecords(v int64) *DescribeClusterSubnetGroupsInput {
15724	s.MaxRecords = &v
15725	return s
15726}
15727
15728// SetTagKeys sets the TagKeys field's value.
15729func (s *DescribeClusterSubnetGroupsInput) SetTagKeys(v []*string) *DescribeClusterSubnetGroupsInput {
15730	s.TagKeys = v
15731	return s
15732}
15733
15734// SetTagValues sets the TagValues field's value.
15735func (s *DescribeClusterSubnetGroupsInput) SetTagValues(v []*string) *DescribeClusterSubnetGroupsInput {
15736	s.TagValues = v
15737	return s
15738}
15739
15740// Contains the output from the DescribeClusterSubnetGroups action.
15741type DescribeClusterSubnetGroupsOutput struct {
15742	_ struct{} `type:"structure"`
15743
15744	// A list of ClusterSubnetGroup instances.
15745	ClusterSubnetGroups []*ClusterSubnetGroup `locationNameList:"ClusterSubnetGroup" type:"list"`
15746
15747	// A value that indicates the starting point for the next set of response records
15748	// in a subsequent request. If a value is returned in a response, you can retrieve
15749	// the next set of records by providing this returned marker value in the Marker
15750	// parameter and retrying the command. If the Marker field is empty, all response
15751	// records have been retrieved for the request.
15752	Marker *string `type:"string"`
15753}
15754
15755// String returns the string representation
15756func (s DescribeClusterSubnetGroupsOutput) String() string {
15757	return awsutil.Prettify(s)
15758}
15759
15760// GoString returns the string representation
15761func (s DescribeClusterSubnetGroupsOutput) GoString() string {
15762	return s.String()
15763}
15764
15765// SetClusterSubnetGroups sets the ClusterSubnetGroups field's value.
15766func (s *DescribeClusterSubnetGroupsOutput) SetClusterSubnetGroups(v []*ClusterSubnetGroup) *DescribeClusterSubnetGroupsOutput {
15767	s.ClusterSubnetGroups = v
15768	return s
15769}
15770
15771// SetMarker sets the Marker field's value.
15772func (s *DescribeClusterSubnetGroupsOutput) SetMarker(v string) *DescribeClusterSubnetGroupsOutput {
15773	s.Marker = &v
15774	return s
15775}
15776
15777type DescribeClusterTracksInput struct {
15778	_ struct{} `type:"structure"`
15779
15780	// The name of the maintenance track.
15781	MaintenanceTrackName *string `type:"string"`
15782
15783	// An optional parameter that specifies the starting point to return a set of
15784	// response records. When the results of a DescribeClusterTracks request exceed
15785	// the value specified in MaxRecords, Amazon Redshift returns a value in the
15786	// Marker field of the response. You can retrieve the next set of response records
15787	// by providing the returned marker value in the Marker parameter and retrying
15788	// the request.
15789	Marker *string `type:"string"`
15790
15791	// An integer value for the maximum number of maintenance tracks to return.
15792	MaxRecords *int64 `type:"integer"`
15793}
15794
15795// String returns the string representation
15796func (s DescribeClusterTracksInput) String() string {
15797	return awsutil.Prettify(s)
15798}
15799
15800// GoString returns the string representation
15801func (s DescribeClusterTracksInput) GoString() string {
15802	return s.String()
15803}
15804
15805// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
15806func (s *DescribeClusterTracksInput) SetMaintenanceTrackName(v string) *DescribeClusterTracksInput {
15807	s.MaintenanceTrackName = &v
15808	return s
15809}
15810
15811// SetMarker sets the Marker field's value.
15812func (s *DescribeClusterTracksInput) SetMarker(v string) *DescribeClusterTracksInput {
15813	s.Marker = &v
15814	return s
15815}
15816
15817// SetMaxRecords sets the MaxRecords field's value.
15818func (s *DescribeClusterTracksInput) SetMaxRecords(v int64) *DescribeClusterTracksInput {
15819	s.MaxRecords = &v
15820	return s
15821}
15822
15823type DescribeClusterTracksOutput struct {
15824	_ struct{} `type:"structure"`
15825
15826	// A list of maintenance tracks output by the DescribeClusterTracks operation.
15827	MaintenanceTracks []*MaintenanceTrack `locationNameList:"MaintenanceTrack" type:"list"`
15828
15829	// The starting point to return a set of response tracklist records. You can
15830	// retrieve the next set of response records by providing the returned marker
15831	// value in the Marker parameter and retrying the request.
15832	Marker *string `type:"string"`
15833}
15834
15835// String returns the string representation
15836func (s DescribeClusterTracksOutput) String() string {
15837	return awsutil.Prettify(s)
15838}
15839
15840// GoString returns the string representation
15841func (s DescribeClusterTracksOutput) GoString() string {
15842	return s.String()
15843}
15844
15845// SetMaintenanceTracks sets the MaintenanceTracks field's value.
15846func (s *DescribeClusterTracksOutput) SetMaintenanceTracks(v []*MaintenanceTrack) *DescribeClusterTracksOutput {
15847	s.MaintenanceTracks = v
15848	return s
15849}
15850
15851// SetMarker sets the Marker field's value.
15852func (s *DescribeClusterTracksOutput) SetMarker(v string) *DescribeClusterTracksOutput {
15853	s.Marker = &v
15854	return s
15855}
15856
15857type DescribeClusterVersionsInput struct {
15858	_ struct{} `type:"structure"`
15859
15860	// The name of a specific cluster parameter group family to return details for.
15861	//
15862	// Constraints:
15863	//
15864	//    * Must be 1 to 255 alphanumeric characters
15865	//
15866	//    * First character must be a letter
15867	//
15868	//    * Cannot end with a hyphen or contain two consecutive hyphens
15869	ClusterParameterGroupFamily *string `type:"string"`
15870
15871	// The specific cluster version to return.
15872	//
15873	// Example: 1.0
15874	ClusterVersion *string `type:"string"`
15875
15876	// An optional parameter that specifies the starting point to return a set of
15877	// response records. When the results of a DescribeClusterVersions request exceed
15878	// the value specified in MaxRecords, AWS returns a value in the Marker field
15879	// of the response. You can retrieve the next set of response records by providing
15880	// the returned marker value in the Marker parameter and retrying the request.
15881	Marker *string `type:"string"`
15882
15883	// The maximum number of response records to return in each call. If the number
15884	// of remaining response records exceeds the specified MaxRecords value, a value
15885	// is returned in a marker field of the response. You can retrieve the next
15886	// set of records by retrying the command with the returned marker value.
15887	//
15888	// Default: 100
15889	//
15890	// Constraints: minimum 20, maximum 100.
15891	MaxRecords *int64 `type:"integer"`
15892}
15893
15894// String returns the string representation
15895func (s DescribeClusterVersionsInput) String() string {
15896	return awsutil.Prettify(s)
15897}
15898
15899// GoString returns the string representation
15900func (s DescribeClusterVersionsInput) GoString() string {
15901	return s.String()
15902}
15903
15904// SetClusterParameterGroupFamily sets the ClusterParameterGroupFamily field's value.
15905func (s *DescribeClusterVersionsInput) SetClusterParameterGroupFamily(v string) *DescribeClusterVersionsInput {
15906	s.ClusterParameterGroupFamily = &v
15907	return s
15908}
15909
15910// SetClusterVersion sets the ClusterVersion field's value.
15911func (s *DescribeClusterVersionsInput) SetClusterVersion(v string) *DescribeClusterVersionsInput {
15912	s.ClusterVersion = &v
15913	return s
15914}
15915
15916// SetMarker sets the Marker field's value.
15917func (s *DescribeClusterVersionsInput) SetMarker(v string) *DescribeClusterVersionsInput {
15918	s.Marker = &v
15919	return s
15920}
15921
15922// SetMaxRecords sets the MaxRecords field's value.
15923func (s *DescribeClusterVersionsInput) SetMaxRecords(v int64) *DescribeClusterVersionsInput {
15924	s.MaxRecords = &v
15925	return s
15926}
15927
15928// Contains the output from the DescribeClusterVersions action.
15929type DescribeClusterVersionsOutput struct {
15930	_ struct{} `type:"structure"`
15931
15932	// A list of Version elements.
15933	ClusterVersions []*ClusterVersion `locationNameList:"ClusterVersion" type:"list"`
15934
15935	// A value that indicates the starting point for the next set of response records
15936	// in a subsequent request. If a value is returned in a response, you can retrieve
15937	// the next set of records by providing this returned marker value in the Marker
15938	// parameter and retrying the command. If the Marker field is empty, all response
15939	// records have been retrieved for the request.
15940	Marker *string `type:"string"`
15941}
15942
15943// String returns the string representation
15944func (s DescribeClusterVersionsOutput) String() string {
15945	return awsutil.Prettify(s)
15946}
15947
15948// GoString returns the string representation
15949func (s DescribeClusterVersionsOutput) GoString() string {
15950	return s.String()
15951}
15952
15953// SetClusterVersions sets the ClusterVersions field's value.
15954func (s *DescribeClusterVersionsOutput) SetClusterVersions(v []*ClusterVersion) *DescribeClusterVersionsOutput {
15955	s.ClusterVersions = v
15956	return s
15957}
15958
15959// SetMarker sets the Marker field's value.
15960func (s *DescribeClusterVersionsOutput) SetMarker(v string) *DescribeClusterVersionsOutput {
15961	s.Marker = &v
15962	return s
15963}
15964
15965type DescribeClustersInput struct {
15966	_ struct{} `type:"structure"`
15967
15968	// The unique identifier of a cluster whose properties you are requesting. This
15969	// parameter is case sensitive.
15970	//
15971	// The default is that all clusters defined for an account are returned.
15972	ClusterIdentifier *string `type:"string"`
15973
15974	// An optional parameter that specifies the starting point to return a set of
15975	// response records. When the results of a DescribeClusters request exceed the
15976	// value specified in MaxRecords, AWS returns a value in the Marker field of
15977	// the response. You can retrieve the next set of response records by providing
15978	// the returned marker value in the Marker parameter and retrying the request.
15979	//
15980	// Constraints: You can specify either the ClusterIdentifier parameter or the
15981	// Marker parameter, but not both.
15982	Marker *string `type:"string"`
15983
15984	// The maximum number of response records to return in each call. If the number
15985	// of remaining response records exceeds the specified MaxRecords value, a value
15986	// is returned in a marker field of the response. You can retrieve the next
15987	// set of records by retrying the command with the returned marker value.
15988	//
15989	// Default: 100
15990	//
15991	// Constraints: minimum 20, maximum 100.
15992	MaxRecords *int64 `type:"integer"`
15993
15994	// A tag key or keys for which you want to return all matching clusters that
15995	// are associated with the specified key or keys. For example, suppose that
15996	// you have clusters that are tagged with keys called owner and environment.
15997	// If you specify both of these tag keys in the request, Amazon Redshift returns
15998	// a response with the clusters that have either or both of these tag keys associated
15999	// with them.
16000	TagKeys []*string `locationNameList:"TagKey" type:"list"`
16001
16002	// A tag value or values for which you want to return all matching clusters
16003	// that are associated with the specified tag value or values. For example,
16004	// suppose that you have clusters that are tagged with values called admin and
16005	// test. If you specify both of these tag values in the request, Amazon Redshift
16006	// returns a response with the clusters that have either or both of these tag
16007	// values associated with them.
16008	TagValues []*string `locationNameList:"TagValue" type:"list"`
16009}
16010
16011// String returns the string representation
16012func (s DescribeClustersInput) String() string {
16013	return awsutil.Prettify(s)
16014}
16015
16016// GoString returns the string representation
16017func (s DescribeClustersInput) GoString() string {
16018	return s.String()
16019}
16020
16021// SetClusterIdentifier sets the ClusterIdentifier field's value.
16022func (s *DescribeClustersInput) SetClusterIdentifier(v string) *DescribeClustersInput {
16023	s.ClusterIdentifier = &v
16024	return s
16025}
16026
16027// SetMarker sets the Marker field's value.
16028func (s *DescribeClustersInput) SetMarker(v string) *DescribeClustersInput {
16029	s.Marker = &v
16030	return s
16031}
16032
16033// SetMaxRecords sets the MaxRecords field's value.
16034func (s *DescribeClustersInput) SetMaxRecords(v int64) *DescribeClustersInput {
16035	s.MaxRecords = &v
16036	return s
16037}
16038
16039// SetTagKeys sets the TagKeys field's value.
16040func (s *DescribeClustersInput) SetTagKeys(v []*string) *DescribeClustersInput {
16041	s.TagKeys = v
16042	return s
16043}
16044
16045// SetTagValues sets the TagValues field's value.
16046func (s *DescribeClustersInput) SetTagValues(v []*string) *DescribeClustersInput {
16047	s.TagValues = v
16048	return s
16049}
16050
16051// Contains the output from the DescribeClusters action.
16052type DescribeClustersOutput struct {
16053	_ struct{} `type:"structure"`
16054
16055	// A list of Cluster objects, where each object describes one cluster.
16056	Clusters []*Cluster `locationNameList:"Cluster" type:"list"`
16057
16058	// A value that indicates the starting point for the next set of response records
16059	// in a subsequent request. If a value is returned in a response, you can retrieve
16060	// the next set of records by providing this returned marker value in the Marker
16061	// parameter and retrying the command. If the Marker field is empty, all response
16062	// records have been retrieved for the request.
16063	Marker *string `type:"string"`
16064}
16065
16066// String returns the string representation
16067func (s DescribeClustersOutput) String() string {
16068	return awsutil.Prettify(s)
16069}
16070
16071// GoString returns the string representation
16072func (s DescribeClustersOutput) GoString() string {
16073	return s.String()
16074}
16075
16076// SetClusters sets the Clusters field's value.
16077func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
16078	s.Clusters = v
16079	return s
16080}
16081
16082// SetMarker sets the Marker field's value.
16083func (s *DescribeClustersOutput) SetMarker(v string) *DescribeClustersOutput {
16084	s.Marker = &v
16085	return s
16086}
16087
16088type DescribeDefaultClusterParametersInput struct {
16089	_ struct{} `type:"structure"`
16090
16091	// An optional parameter that specifies the starting point to return a set of
16092	// response records. When the results of a DescribeDefaultClusterParameters
16093	// request exceed the value specified in MaxRecords, AWS returns a value in
16094	// the Marker field of the response. You can retrieve the next set of response
16095	// records by providing the returned marker value in the Marker parameter and
16096	// retrying the request.
16097	Marker *string `type:"string"`
16098
16099	// The maximum number of response records to return in each call. If the number
16100	// of remaining response records exceeds the specified MaxRecords value, a value
16101	// is returned in a marker field of the response. You can retrieve the next
16102	// set of records by retrying the command with the returned marker value.
16103	//
16104	// Default: 100
16105	//
16106	// Constraints: minimum 20, maximum 100.
16107	MaxRecords *int64 `type:"integer"`
16108
16109	// The name of the cluster parameter group family.
16110	//
16111	// ParameterGroupFamily is a required field
16112	ParameterGroupFamily *string `type:"string" required:"true"`
16113}
16114
16115// String returns the string representation
16116func (s DescribeDefaultClusterParametersInput) String() string {
16117	return awsutil.Prettify(s)
16118}
16119
16120// GoString returns the string representation
16121func (s DescribeDefaultClusterParametersInput) GoString() string {
16122	return s.String()
16123}
16124
16125// Validate inspects the fields of the type to determine if they are valid.
16126func (s *DescribeDefaultClusterParametersInput) Validate() error {
16127	invalidParams := request.ErrInvalidParams{Context: "DescribeDefaultClusterParametersInput"}
16128	if s.ParameterGroupFamily == nil {
16129		invalidParams.Add(request.NewErrParamRequired("ParameterGroupFamily"))
16130	}
16131
16132	if invalidParams.Len() > 0 {
16133		return invalidParams
16134	}
16135	return nil
16136}
16137
16138// SetMarker sets the Marker field's value.
16139func (s *DescribeDefaultClusterParametersInput) SetMarker(v string) *DescribeDefaultClusterParametersInput {
16140	s.Marker = &v
16141	return s
16142}
16143
16144// SetMaxRecords sets the MaxRecords field's value.
16145func (s *DescribeDefaultClusterParametersInput) SetMaxRecords(v int64) *DescribeDefaultClusterParametersInput {
16146	s.MaxRecords = &v
16147	return s
16148}
16149
16150// SetParameterGroupFamily sets the ParameterGroupFamily field's value.
16151func (s *DescribeDefaultClusterParametersInput) SetParameterGroupFamily(v string) *DescribeDefaultClusterParametersInput {
16152	s.ParameterGroupFamily = &v
16153	return s
16154}
16155
16156type DescribeDefaultClusterParametersOutput struct {
16157	_ struct{} `type:"structure"`
16158
16159	// Describes the default cluster parameters for a parameter group family.
16160	DefaultClusterParameters *DefaultClusterParameters `type:"structure"`
16161}
16162
16163// String returns the string representation
16164func (s DescribeDefaultClusterParametersOutput) String() string {
16165	return awsutil.Prettify(s)
16166}
16167
16168// GoString returns the string representation
16169func (s DescribeDefaultClusterParametersOutput) GoString() string {
16170	return s.String()
16171}
16172
16173// SetDefaultClusterParameters sets the DefaultClusterParameters field's value.
16174func (s *DescribeDefaultClusterParametersOutput) SetDefaultClusterParameters(v *DefaultClusterParameters) *DescribeDefaultClusterParametersOutput {
16175	s.DefaultClusterParameters = v
16176	return s
16177}
16178
16179type DescribeEventCategoriesInput struct {
16180	_ struct{} `type:"structure"`
16181
16182	// The source type, such as cluster or parameter group, to which the described
16183	// event categories apply.
16184	//
16185	// Valid values: cluster, cluster-snapshot, cluster-parameter-group, cluster-security-group,
16186	// and scheduled-action.
16187	SourceType *string `type:"string"`
16188}
16189
16190// String returns the string representation
16191func (s DescribeEventCategoriesInput) String() string {
16192	return awsutil.Prettify(s)
16193}
16194
16195// GoString returns the string representation
16196func (s DescribeEventCategoriesInput) GoString() string {
16197	return s.String()
16198}
16199
16200// SetSourceType sets the SourceType field's value.
16201func (s *DescribeEventCategoriesInput) SetSourceType(v string) *DescribeEventCategoriesInput {
16202	s.SourceType = &v
16203	return s
16204}
16205
16206type DescribeEventCategoriesOutput struct {
16207	_ struct{} `type:"structure"`
16208
16209	// A list of event categories descriptions.
16210	EventCategoriesMapList []*EventCategoriesMap `locationNameList:"EventCategoriesMap" type:"list"`
16211}
16212
16213// String returns the string representation
16214func (s DescribeEventCategoriesOutput) String() string {
16215	return awsutil.Prettify(s)
16216}
16217
16218// GoString returns the string representation
16219func (s DescribeEventCategoriesOutput) GoString() string {
16220	return s.String()
16221}
16222
16223// SetEventCategoriesMapList sets the EventCategoriesMapList field's value.
16224func (s *DescribeEventCategoriesOutput) SetEventCategoriesMapList(v []*EventCategoriesMap) *DescribeEventCategoriesOutput {
16225	s.EventCategoriesMapList = v
16226	return s
16227}
16228
16229type DescribeEventSubscriptionsInput struct {
16230	_ struct{} `type:"structure"`
16231
16232	// An optional parameter that specifies the starting point to return a set of
16233	// response records. When the results of a DescribeEventSubscriptions request
16234	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
16235	// field of the response. You can retrieve the next set of response records
16236	// by providing the returned marker value in the Marker parameter and retrying
16237	// the request.
16238	Marker *string `type:"string"`
16239
16240	// The maximum number of response records to return in each call. If the number
16241	// of remaining response records exceeds the specified MaxRecords value, a value
16242	// is returned in a marker field of the response. You can retrieve the next
16243	// set of records by retrying the command with the returned marker value.
16244	//
16245	// Default: 100
16246	//
16247	// Constraints: minimum 20, maximum 100.
16248	MaxRecords *int64 `type:"integer"`
16249
16250	// The name of the Amazon Redshift event notification subscription to be described.
16251	SubscriptionName *string `type:"string"`
16252
16253	// A tag key or keys for which you want to return all matching event notification
16254	// subscriptions that are associated with the specified key or keys. For example,
16255	// suppose that you have subscriptions that are tagged with keys called owner
16256	// and environment. If you specify both of these tag keys in the request, Amazon
16257	// Redshift returns a response with the subscriptions that have either or both
16258	// of these tag keys associated with them.
16259	TagKeys []*string `locationNameList:"TagKey" type:"list"`
16260
16261	// A tag value or values for which you want to return all matching event notification
16262	// subscriptions that are associated with the specified tag value or values.
16263	// For example, suppose that you have subscriptions that are tagged with values
16264	// called admin and test. If you specify both of these tag values in the request,
16265	// Amazon Redshift returns a response with the subscriptions that have either
16266	// or both of these tag values associated with them.
16267	TagValues []*string `locationNameList:"TagValue" type:"list"`
16268}
16269
16270// String returns the string representation
16271func (s DescribeEventSubscriptionsInput) String() string {
16272	return awsutil.Prettify(s)
16273}
16274
16275// GoString returns the string representation
16276func (s DescribeEventSubscriptionsInput) GoString() string {
16277	return s.String()
16278}
16279
16280// SetMarker sets the Marker field's value.
16281func (s *DescribeEventSubscriptionsInput) SetMarker(v string) *DescribeEventSubscriptionsInput {
16282	s.Marker = &v
16283	return s
16284}
16285
16286// SetMaxRecords sets the MaxRecords field's value.
16287func (s *DescribeEventSubscriptionsInput) SetMaxRecords(v int64) *DescribeEventSubscriptionsInput {
16288	s.MaxRecords = &v
16289	return s
16290}
16291
16292// SetSubscriptionName sets the SubscriptionName field's value.
16293func (s *DescribeEventSubscriptionsInput) SetSubscriptionName(v string) *DescribeEventSubscriptionsInput {
16294	s.SubscriptionName = &v
16295	return s
16296}
16297
16298// SetTagKeys sets the TagKeys field's value.
16299func (s *DescribeEventSubscriptionsInput) SetTagKeys(v []*string) *DescribeEventSubscriptionsInput {
16300	s.TagKeys = v
16301	return s
16302}
16303
16304// SetTagValues sets the TagValues field's value.
16305func (s *DescribeEventSubscriptionsInput) SetTagValues(v []*string) *DescribeEventSubscriptionsInput {
16306	s.TagValues = v
16307	return s
16308}
16309
16310type DescribeEventSubscriptionsOutput struct {
16311	_ struct{} `type:"structure"`
16312
16313	// A list of event subscriptions.
16314	EventSubscriptionsList []*EventSubscription `locationNameList:"EventSubscription" type:"list"`
16315
16316	// A value that indicates the starting point for the next set of response records
16317	// in a subsequent request. If a value is returned in a response, you can retrieve
16318	// the next set of records by providing this returned marker value in the Marker
16319	// parameter and retrying the command. If the Marker field is empty, all response
16320	// records have been retrieved for the request.
16321	Marker *string `type:"string"`
16322}
16323
16324// String returns the string representation
16325func (s DescribeEventSubscriptionsOutput) String() string {
16326	return awsutil.Prettify(s)
16327}
16328
16329// GoString returns the string representation
16330func (s DescribeEventSubscriptionsOutput) GoString() string {
16331	return s.String()
16332}
16333
16334// SetEventSubscriptionsList sets the EventSubscriptionsList field's value.
16335func (s *DescribeEventSubscriptionsOutput) SetEventSubscriptionsList(v []*EventSubscription) *DescribeEventSubscriptionsOutput {
16336	s.EventSubscriptionsList = v
16337	return s
16338}
16339
16340// SetMarker sets the Marker field's value.
16341func (s *DescribeEventSubscriptionsOutput) SetMarker(v string) *DescribeEventSubscriptionsOutput {
16342	s.Marker = &v
16343	return s
16344}
16345
16346type DescribeEventsInput struct {
16347	_ struct{} `type:"structure"`
16348
16349	// The number of minutes prior to the time of the request for which to retrieve
16350	// events. For example, if the request is sent at 18:00 and you specify a duration
16351	// of 60, then only events which have occurred after 17:00 will be returned.
16352	//
16353	// Default: 60
16354	Duration *int64 `type:"integer"`
16355
16356	// The end of the time interval for which to retrieve events, specified in ISO
16357	// 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia
16358	// page. (http://en.wikipedia.org/wiki/ISO_8601)
16359	//
16360	// Example: 2009-07-08T18:00Z
16361	EndTime *time.Time `type:"timestamp"`
16362
16363	// An optional parameter that specifies the starting point to return a set of
16364	// response records. When the results of a DescribeEvents request exceed the
16365	// value specified in MaxRecords, AWS returns a value in the Marker field of
16366	// the response. You can retrieve the next set of response records by providing
16367	// the returned marker value in the Marker parameter and retrying the request.
16368	Marker *string `type:"string"`
16369
16370	// The maximum number of response records to return in each call. If the number
16371	// of remaining response records exceeds the specified MaxRecords value, a value
16372	// is returned in a marker field of the response. You can retrieve the next
16373	// set of records by retrying the command with the returned marker value.
16374	//
16375	// Default: 100
16376	//
16377	// Constraints: minimum 20, maximum 100.
16378	MaxRecords *int64 `type:"integer"`
16379
16380	// The identifier of the event source for which events will be returned. If
16381	// this parameter is not specified, then all sources are included in the response.
16382	//
16383	// Constraints:
16384	//
16385	// If SourceIdentifier is supplied, SourceType must also be provided.
16386	//
16387	//    * Specify a cluster identifier when SourceType is cluster.
16388	//
16389	//    * Specify a cluster security group name when SourceType is cluster-security-group.
16390	//
16391	//    * Specify a cluster parameter group name when SourceType is cluster-parameter-group.
16392	//
16393	//    * Specify a cluster snapshot identifier when SourceType is cluster-snapshot.
16394	SourceIdentifier *string `type:"string"`
16395
16396	// The event source to retrieve events for. If no value is specified, all events
16397	// are returned.
16398	//
16399	// Constraints:
16400	//
16401	// If SourceType is supplied, SourceIdentifier must also be provided.
16402	//
16403	//    * Specify cluster when SourceIdentifier is a cluster identifier.
16404	//
16405	//    * Specify cluster-security-group when SourceIdentifier is a cluster security
16406	//    group name.
16407	//
16408	//    * Specify cluster-parameter-group when SourceIdentifier is a cluster parameter
16409	//    group name.
16410	//
16411	//    * Specify cluster-snapshot when SourceIdentifier is a cluster snapshot
16412	//    identifier.
16413	SourceType *string `type:"string" enum:"SourceType"`
16414
16415	// The beginning of the time interval to retrieve events for, specified in ISO
16416	// 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia
16417	// page. (http://en.wikipedia.org/wiki/ISO_8601)
16418	//
16419	// Example: 2009-07-08T18:00Z
16420	StartTime *time.Time `type:"timestamp"`
16421}
16422
16423// String returns the string representation
16424func (s DescribeEventsInput) String() string {
16425	return awsutil.Prettify(s)
16426}
16427
16428// GoString returns the string representation
16429func (s DescribeEventsInput) GoString() string {
16430	return s.String()
16431}
16432
16433// SetDuration sets the Duration field's value.
16434func (s *DescribeEventsInput) SetDuration(v int64) *DescribeEventsInput {
16435	s.Duration = &v
16436	return s
16437}
16438
16439// SetEndTime sets the EndTime field's value.
16440func (s *DescribeEventsInput) SetEndTime(v time.Time) *DescribeEventsInput {
16441	s.EndTime = &v
16442	return s
16443}
16444
16445// SetMarker sets the Marker field's value.
16446func (s *DescribeEventsInput) SetMarker(v string) *DescribeEventsInput {
16447	s.Marker = &v
16448	return s
16449}
16450
16451// SetMaxRecords sets the MaxRecords field's value.
16452func (s *DescribeEventsInput) SetMaxRecords(v int64) *DescribeEventsInput {
16453	s.MaxRecords = &v
16454	return s
16455}
16456
16457// SetSourceIdentifier sets the SourceIdentifier field's value.
16458func (s *DescribeEventsInput) SetSourceIdentifier(v string) *DescribeEventsInput {
16459	s.SourceIdentifier = &v
16460	return s
16461}
16462
16463// SetSourceType sets the SourceType field's value.
16464func (s *DescribeEventsInput) SetSourceType(v string) *DescribeEventsInput {
16465	s.SourceType = &v
16466	return s
16467}
16468
16469// SetStartTime sets the StartTime field's value.
16470func (s *DescribeEventsInput) SetStartTime(v time.Time) *DescribeEventsInput {
16471	s.StartTime = &v
16472	return s
16473}
16474
16475type DescribeEventsOutput struct {
16476	_ struct{} `type:"structure"`
16477
16478	// A list of Event instances.
16479	Events []*Event `locationNameList:"Event" type:"list"`
16480
16481	// A value that indicates the starting point for the next set of response records
16482	// in a subsequent request. If a value is returned in a response, you can retrieve
16483	// the next set of records by providing this returned marker value in the Marker
16484	// parameter and retrying the command. If the Marker field is empty, all response
16485	// records have been retrieved for the request.
16486	Marker *string `type:"string"`
16487}
16488
16489// String returns the string representation
16490func (s DescribeEventsOutput) String() string {
16491	return awsutil.Prettify(s)
16492}
16493
16494// GoString returns the string representation
16495func (s DescribeEventsOutput) GoString() string {
16496	return s.String()
16497}
16498
16499// SetEvents sets the Events field's value.
16500func (s *DescribeEventsOutput) SetEvents(v []*Event) *DescribeEventsOutput {
16501	s.Events = v
16502	return s
16503}
16504
16505// SetMarker sets the Marker field's value.
16506func (s *DescribeEventsOutput) SetMarker(v string) *DescribeEventsOutput {
16507	s.Marker = &v
16508	return s
16509}
16510
16511type DescribeHsmClientCertificatesInput struct {
16512	_ struct{} `type:"structure"`
16513
16514	// The identifier of a specific HSM client certificate for which you want information.
16515	// If no identifier is specified, information is returned for all HSM client
16516	// certificates owned by your AWS customer account.
16517	HsmClientCertificateIdentifier *string `type:"string"`
16518
16519	// An optional parameter that specifies the starting point to return a set of
16520	// response records. When the results of a DescribeHsmClientCertificates request
16521	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
16522	// field of the response. You can retrieve the next set of response records
16523	// by providing the returned marker value in the Marker parameter and retrying
16524	// the request.
16525	Marker *string `type:"string"`
16526
16527	// The maximum number of response records to return in each call. If the number
16528	// of remaining response records exceeds the specified MaxRecords value, a value
16529	// is returned in a marker field of the response. You can retrieve the next
16530	// set of records by retrying the command with the returned marker value.
16531	//
16532	// Default: 100
16533	//
16534	// Constraints: minimum 20, maximum 100.
16535	MaxRecords *int64 `type:"integer"`
16536
16537	// A tag key or keys for which you want to return all matching HSM client certificates
16538	// that are associated with the specified key or keys. For example, suppose
16539	// that you have HSM client certificates that are tagged with keys called owner
16540	// and environment. If you specify both of these tag keys in the request, Amazon
16541	// Redshift returns a response with the HSM client certificates that have either
16542	// or both of these tag keys associated with them.
16543	TagKeys []*string `locationNameList:"TagKey" type:"list"`
16544
16545	// A tag value or values for which you want to return all matching HSM client
16546	// certificates that are associated with the specified tag value or values.
16547	// For example, suppose that you have HSM client certificates that are tagged
16548	// with values called admin and test. If you specify both of these tag values
16549	// in the request, Amazon Redshift returns a response with the HSM client certificates
16550	// that have either or both of these tag values associated with them.
16551	TagValues []*string `locationNameList:"TagValue" type:"list"`
16552}
16553
16554// String returns the string representation
16555func (s DescribeHsmClientCertificatesInput) String() string {
16556	return awsutil.Prettify(s)
16557}
16558
16559// GoString returns the string representation
16560func (s DescribeHsmClientCertificatesInput) GoString() string {
16561	return s.String()
16562}
16563
16564// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
16565func (s *DescribeHsmClientCertificatesInput) SetHsmClientCertificateIdentifier(v string) *DescribeHsmClientCertificatesInput {
16566	s.HsmClientCertificateIdentifier = &v
16567	return s
16568}
16569
16570// SetMarker sets the Marker field's value.
16571func (s *DescribeHsmClientCertificatesInput) SetMarker(v string) *DescribeHsmClientCertificatesInput {
16572	s.Marker = &v
16573	return s
16574}
16575
16576// SetMaxRecords sets the MaxRecords field's value.
16577func (s *DescribeHsmClientCertificatesInput) SetMaxRecords(v int64) *DescribeHsmClientCertificatesInput {
16578	s.MaxRecords = &v
16579	return s
16580}
16581
16582// SetTagKeys sets the TagKeys field's value.
16583func (s *DescribeHsmClientCertificatesInput) SetTagKeys(v []*string) *DescribeHsmClientCertificatesInput {
16584	s.TagKeys = v
16585	return s
16586}
16587
16588// SetTagValues sets the TagValues field's value.
16589func (s *DescribeHsmClientCertificatesInput) SetTagValues(v []*string) *DescribeHsmClientCertificatesInput {
16590	s.TagValues = v
16591	return s
16592}
16593
16594type DescribeHsmClientCertificatesOutput struct {
16595	_ struct{} `type:"structure"`
16596
16597	// A list of the identifiers for one or more HSM client certificates used by
16598	// Amazon Redshift clusters to store and retrieve database encryption keys in
16599	// an HSM.
16600	HsmClientCertificates []*HsmClientCertificate `locationNameList:"HsmClientCertificate" type:"list"`
16601
16602	// A value that indicates the starting point for the next set of response records
16603	// in a subsequent request. If a value is returned in a response, you can retrieve
16604	// the next set of records by providing this returned marker value in the Marker
16605	// parameter and retrying the command. If the Marker field is empty, all response
16606	// records have been retrieved for the request.
16607	Marker *string `type:"string"`
16608}
16609
16610// String returns the string representation
16611func (s DescribeHsmClientCertificatesOutput) String() string {
16612	return awsutil.Prettify(s)
16613}
16614
16615// GoString returns the string representation
16616func (s DescribeHsmClientCertificatesOutput) GoString() string {
16617	return s.String()
16618}
16619
16620// SetHsmClientCertificates sets the HsmClientCertificates field's value.
16621func (s *DescribeHsmClientCertificatesOutput) SetHsmClientCertificates(v []*HsmClientCertificate) *DescribeHsmClientCertificatesOutput {
16622	s.HsmClientCertificates = v
16623	return s
16624}
16625
16626// SetMarker sets the Marker field's value.
16627func (s *DescribeHsmClientCertificatesOutput) SetMarker(v string) *DescribeHsmClientCertificatesOutput {
16628	s.Marker = &v
16629	return s
16630}
16631
16632type DescribeHsmConfigurationsInput struct {
16633	_ struct{} `type:"structure"`
16634
16635	// The identifier of a specific Amazon Redshift HSM configuration to be described.
16636	// If no identifier is specified, information is returned for all HSM configurations
16637	// owned by your AWS customer account.
16638	HsmConfigurationIdentifier *string `type:"string"`
16639
16640	// An optional parameter that specifies the starting point to return a set of
16641	// response records. When the results of a DescribeHsmConfigurations request
16642	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
16643	// field of the response. You can retrieve the next set of response records
16644	// by providing the returned marker value in the Marker parameter and retrying
16645	// the request.
16646	Marker *string `type:"string"`
16647
16648	// The maximum number of response records to return in each call. If the number
16649	// of remaining response records exceeds the specified MaxRecords value, a value
16650	// is returned in a marker field of the response. You can retrieve the next
16651	// set of records by retrying the command with the returned marker value.
16652	//
16653	// Default: 100
16654	//
16655	// Constraints: minimum 20, maximum 100.
16656	MaxRecords *int64 `type:"integer"`
16657
16658	// A tag key or keys for which you want to return all matching HSM configurations
16659	// that are associated with the specified key or keys. For example, suppose
16660	// that you have HSM configurations that are tagged with keys called owner and
16661	// environment. If you specify both of these tag keys in the request, Amazon
16662	// Redshift returns a response with the HSM configurations that have either
16663	// or both of these tag keys associated with them.
16664	TagKeys []*string `locationNameList:"TagKey" type:"list"`
16665
16666	// A tag value or values for which you want to return all matching HSM configurations
16667	// that are associated with the specified tag value or values. For example,
16668	// suppose that you have HSM configurations that are tagged with values called
16669	// admin and test. If you specify both of these tag values in the request, Amazon
16670	// Redshift returns a response with the HSM configurations that have either
16671	// or both of these tag values associated with them.
16672	TagValues []*string `locationNameList:"TagValue" type:"list"`
16673}
16674
16675// String returns the string representation
16676func (s DescribeHsmConfigurationsInput) String() string {
16677	return awsutil.Prettify(s)
16678}
16679
16680// GoString returns the string representation
16681func (s DescribeHsmConfigurationsInput) GoString() string {
16682	return s.String()
16683}
16684
16685// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
16686func (s *DescribeHsmConfigurationsInput) SetHsmConfigurationIdentifier(v string) *DescribeHsmConfigurationsInput {
16687	s.HsmConfigurationIdentifier = &v
16688	return s
16689}
16690
16691// SetMarker sets the Marker field's value.
16692func (s *DescribeHsmConfigurationsInput) SetMarker(v string) *DescribeHsmConfigurationsInput {
16693	s.Marker = &v
16694	return s
16695}
16696
16697// SetMaxRecords sets the MaxRecords field's value.
16698func (s *DescribeHsmConfigurationsInput) SetMaxRecords(v int64) *DescribeHsmConfigurationsInput {
16699	s.MaxRecords = &v
16700	return s
16701}
16702
16703// SetTagKeys sets the TagKeys field's value.
16704func (s *DescribeHsmConfigurationsInput) SetTagKeys(v []*string) *DescribeHsmConfigurationsInput {
16705	s.TagKeys = v
16706	return s
16707}
16708
16709// SetTagValues sets the TagValues field's value.
16710func (s *DescribeHsmConfigurationsInput) SetTagValues(v []*string) *DescribeHsmConfigurationsInput {
16711	s.TagValues = v
16712	return s
16713}
16714
16715type DescribeHsmConfigurationsOutput struct {
16716	_ struct{} `type:"structure"`
16717
16718	// A list of HsmConfiguration objects.
16719	HsmConfigurations []*HsmConfiguration `locationNameList:"HsmConfiguration" type:"list"`
16720
16721	// A value that indicates the starting point for the next set of response records
16722	// in a subsequent request. If a value is returned in a response, you can retrieve
16723	// the next set of records by providing this returned marker value in the Marker
16724	// parameter and retrying the command. If the Marker field is empty, all response
16725	// records have been retrieved for the request.
16726	Marker *string `type:"string"`
16727}
16728
16729// String returns the string representation
16730func (s DescribeHsmConfigurationsOutput) String() string {
16731	return awsutil.Prettify(s)
16732}
16733
16734// GoString returns the string representation
16735func (s DescribeHsmConfigurationsOutput) GoString() string {
16736	return s.String()
16737}
16738
16739// SetHsmConfigurations sets the HsmConfigurations field's value.
16740func (s *DescribeHsmConfigurationsOutput) SetHsmConfigurations(v []*HsmConfiguration) *DescribeHsmConfigurationsOutput {
16741	s.HsmConfigurations = v
16742	return s
16743}
16744
16745// SetMarker sets the Marker field's value.
16746func (s *DescribeHsmConfigurationsOutput) SetMarker(v string) *DescribeHsmConfigurationsOutput {
16747	s.Marker = &v
16748	return s
16749}
16750
16751type DescribeLoggingStatusInput struct {
16752	_ struct{} `type:"structure"`
16753
16754	// The identifier of the cluster from which to get the logging status.
16755	//
16756	// Example: examplecluster
16757	//
16758	// ClusterIdentifier is a required field
16759	ClusterIdentifier *string `type:"string" required:"true"`
16760}
16761
16762// String returns the string representation
16763func (s DescribeLoggingStatusInput) String() string {
16764	return awsutil.Prettify(s)
16765}
16766
16767// GoString returns the string representation
16768func (s DescribeLoggingStatusInput) GoString() string {
16769	return s.String()
16770}
16771
16772// Validate inspects the fields of the type to determine if they are valid.
16773func (s *DescribeLoggingStatusInput) Validate() error {
16774	invalidParams := request.ErrInvalidParams{Context: "DescribeLoggingStatusInput"}
16775	if s.ClusterIdentifier == nil {
16776		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
16777	}
16778
16779	if invalidParams.Len() > 0 {
16780		return invalidParams
16781	}
16782	return nil
16783}
16784
16785// SetClusterIdentifier sets the ClusterIdentifier field's value.
16786func (s *DescribeLoggingStatusInput) SetClusterIdentifier(v string) *DescribeLoggingStatusInput {
16787	s.ClusterIdentifier = &v
16788	return s
16789}
16790
16791type DescribeNodeConfigurationOptionsInput struct {
16792	_ struct{} `type:"structure"`
16793
16794	// The action type to evaluate for possible node configurations. Specify "restore-cluster"
16795	// to get configuration combinations based on an existing snapshot. Specify
16796	// "recommend-node-config" to get configuration recommendations based on an
16797	// existing cluster or snapshot. Specify "resize-cluster" to get configuration
16798	// combinations for elastic resize based on an existing cluster.
16799	//
16800	// ActionType is a required field
16801	ActionType *string `type:"string" required:"true" enum:"ActionType"`
16802
16803	// The identifier of the cluster to evaluate for possible node configurations.
16804	ClusterIdentifier *string `type:"string"`
16805
16806	// A set of name, operator, and value items to filter the results.
16807	Filters []*NodeConfigurationOptionsFilter `locationName:"Filter" locationNameList:"NodeConfigurationOptionsFilter" type:"list"`
16808
16809	// An optional parameter that specifies the starting point to return a set of
16810	// response records. When the results of a DescribeNodeConfigurationOptions
16811	// request exceed the value specified in MaxRecords, AWS returns a value in
16812	// the Marker field of the response. You can retrieve the next set of response
16813	// records by providing the returned marker value in the Marker parameter and
16814	// retrying the request.
16815	Marker *string `type:"string"`
16816
16817	// The maximum number of response records to return in each call. If the number
16818	// of remaining response records exceeds the specified MaxRecords value, a value
16819	// is returned in a marker field of the response. You can retrieve the next
16820	// set of records by retrying the command with the returned marker value.
16821	//
16822	// Default: 500
16823	//
16824	// Constraints: minimum 100, maximum 500.
16825	MaxRecords *int64 `type:"integer"`
16826
16827	// The AWS customer account used to create or copy the snapshot. Required if
16828	// you are restoring a snapshot you do not own, optional if you own the snapshot.
16829	OwnerAccount *string `type:"string"`
16830
16831	// The identifier of the snapshot to evaluate for possible node configurations.
16832	SnapshotIdentifier *string `type:"string"`
16833}
16834
16835// String returns the string representation
16836func (s DescribeNodeConfigurationOptionsInput) String() string {
16837	return awsutil.Prettify(s)
16838}
16839
16840// GoString returns the string representation
16841func (s DescribeNodeConfigurationOptionsInput) GoString() string {
16842	return s.String()
16843}
16844
16845// Validate inspects the fields of the type to determine if they are valid.
16846func (s *DescribeNodeConfigurationOptionsInput) Validate() error {
16847	invalidParams := request.ErrInvalidParams{Context: "DescribeNodeConfigurationOptionsInput"}
16848	if s.ActionType == nil {
16849		invalidParams.Add(request.NewErrParamRequired("ActionType"))
16850	}
16851
16852	if invalidParams.Len() > 0 {
16853		return invalidParams
16854	}
16855	return nil
16856}
16857
16858// SetActionType sets the ActionType field's value.
16859func (s *DescribeNodeConfigurationOptionsInput) SetActionType(v string) *DescribeNodeConfigurationOptionsInput {
16860	s.ActionType = &v
16861	return s
16862}
16863
16864// SetClusterIdentifier sets the ClusterIdentifier field's value.
16865func (s *DescribeNodeConfigurationOptionsInput) SetClusterIdentifier(v string) *DescribeNodeConfigurationOptionsInput {
16866	s.ClusterIdentifier = &v
16867	return s
16868}
16869
16870// SetFilters sets the Filters field's value.
16871func (s *DescribeNodeConfigurationOptionsInput) SetFilters(v []*NodeConfigurationOptionsFilter) *DescribeNodeConfigurationOptionsInput {
16872	s.Filters = v
16873	return s
16874}
16875
16876// SetMarker sets the Marker field's value.
16877func (s *DescribeNodeConfigurationOptionsInput) SetMarker(v string) *DescribeNodeConfigurationOptionsInput {
16878	s.Marker = &v
16879	return s
16880}
16881
16882// SetMaxRecords sets the MaxRecords field's value.
16883func (s *DescribeNodeConfigurationOptionsInput) SetMaxRecords(v int64) *DescribeNodeConfigurationOptionsInput {
16884	s.MaxRecords = &v
16885	return s
16886}
16887
16888// SetOwnerAccount sets the OwnerAccount field's value.
16889func (s *DescribeNodeConfigurationOptionsInput) SetOwnerAccount(v string) *DescribeNodeConfigurationOptionsInput {
16890	s.OwnerAccount = &v
16891	return s
16892}
16893
16894// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
16895func (s *DescribeNodeConfigurationOptionsInput) SetSnapshotIdentifier(v string) *DescribeNodeConfigurationOptionsInput {
16896	s.SnapshotIdentifier = &v
16897	return s
16898}
16899
16900type DescribeNodeConfigurationOptionsOutput struct {
16901	_ struct{} `type:"structure"`
16902
16903	// A value that indicates the starting point for the next set of response records
16904	// in a subsequent request. If a value is returned in a response, you can retrieve
16905	// the next set of records by providing this returned marker value in the Marker
16906	// parameter and retrying the command. If the Marker field is empty, all response
16907	// records have been retrieved for the request.
16908	Marker *string `type:"string"`
16909
16910	// A list of valid node configurations.
16911	NodeConfigurationOptionList []*NodeConfigurationOption `locationNameList:"NodeConfigurationOption" type:"list"`
16912}
16913
16914// String returns the string representation
16915func (s DescribeNodeConfigurationOptionsOutput) String() string {
16916	return awsutil.Prettify(s)
16917}
16918
16919// GoString returns the string representation
16920func (s DescribeNodeConfigurationOptionsOutput) GoString() string {
16921	return s.String()
16922}
16923
16924// SetMarker sets the Marker field's value.
16925func (s *DescribeNodeConfigurationOptionsOutput) SetMarker(v string) *DescribeNodeConfigurationOptionsOutput {
16926	s.Marker = &v
16927	return s
16928}
16929
16930// SetNodeConfigurationOptionList sets the NodeConfigurationOptionList field's value.
16931func (s *DescribeNodeConfigurationOptionsOutput) SetNodeConfigurationOptionList(v []*NodeConfigurationOption) *DescribeNodeConfigurationOptionsOutput {
16932	s.NodeConfigurationOptionList = v
16933	return s
16934}
16935
16936type DescribeOrderableClusterOptionsInput struct {
16937	_ struct{} `type:"structure"`
16938
16939	// The version filter value. Specify this parameter to show only the available
16940	// offerings matching the specified version.
16941	//
16942	// Default: All versions.
16943	//
16944	// Constraints: Must be one of the version returned from DescribeClusterVersions.
16945	ClusterVersion *string `type:"string"`
16946
16947	// An optional parameter that specifies the starting point to return a set of
16948	// response records. When the results of a DescribeOrderableClusterOptions request
16949	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
16950	// field of the response. You can retrieve the next set of response records
16951	// by providing the returned marker value in the Marker parameter and retrying
16952	// the request.
16953	Marker *string `type:"string"`
16954
16955	// The maximum number of response records to return in each call. If the number
16956	// of remaining response records exceeds the specified MaxRecords value, a value
16957	// is returned in a marker field of the response. You can retrieve the next
16958	// set of records by retrying the command with the returned marker value.
16959	//
16960	// Default: 100
16961	//
16962	// Constraints: minimum 20, maximum 100.
16963	MaxRecords *int64 `type:"integer"`
16964
16965	// The node type filter value. Specify this parameter to show only the available
16966	// offerings matching the specified node type.
16967	NodeType *string `type:"string"`
16968}
16969
16970// String returns the string representation
16971func (s DescribeOrderableClusterOptionsInput) String() string {
16972	return awsutil.Prettify(s)
16973}
16974
16975// GoString returns the string representation
16976func (s DescribeOrderableClusterOptionsInput) GoString() string {
16977	return s.String()
16978}
16979
16980// SetClusterVersion sets the ClusterVersion field's value.
16981func (s *DescribeOrderableClusterOptionsInput) SetClusterVersion(v string) *DescribeOrderableClusterOptionsInput {
16982	s.ClusterVersion = &v
16983	return s
16984}
16985
16986// SetMarker sets the Marker field's value.
16987func (s *DescribeOrderableClusterOptionsInput) SetMarker(v string) *DescribeOrderableClusterOptionsInput {
16988	s.Marker = &v
16989	return s
16990}
16991
16992// SetMaxRecords sets the MaxRecords field's value.
16993func (s *DescribeOrderableClusterOptionsInput) SetMaxRecords(v int64) *DescribeOrderableClusterOptionsInput {
16994	s.MaxRecords = &v
16995	return s
16996}
16997
16998// SetNodeType sets the NodeType field's value.
16999func (s *DescribeOrderableClusterOptionsInput) SetNodeType(v string) *DescribeOrderableClusterOptionsInput {
17000	s.NodeType = &v
17001	return s
17002}
17003
17004// Contains the output from the DescribeOrderableClusterOptions action.
17005type DescribeOrderableClusterOptionsOutput struct {
17006	_ struct{} `type:"structure"`
17007
17008	// A value that indicates the starting point for the next set of response records
17009	// in a subsequent request. If a value is returned in a response, you can retrieve
17010	// the next set of records by providing this returned marker value in the Marker
17011	// parameter and retrying the command. If the Marker field is empty, all response
17012	// records have been retrieved for the request.
17013	Marker *string `type:"string"`
17014
17015	// An OrderableClusterOption structure containing information about orderable
17016	// options for the cluster.
17017	OrderableClusterOptions []*OrderableClusterOption `locationNameList:"OrderableClusterOption" type:"list"`
17018}
17019
17020// String returns the string representation
17021func (s DescribeOrderableClusterOptionsOutput) String() string {
17022	return awsutil.Prettify(s)
17023}
17024
17025// GoString returns the string representation
17026func (s DescribeOrderableClusterOptionsOutput) GoString() string {
17027	return s.String()
17028}
17029
17030// SetMarker sets the Marker field's value.
17031func (s *DescribeOrderableClusterOptionsOutput) SetMarker(v string) *DescribeOrderableClusterOptionsOutput {
17032	s.Marker = &v
17033	return s
17034}
17035
17036// SetOrderableClusterOptions sets the OrderableClusterOptions field's value.
17037func (s *DescribeOrderableClusterOptionsOutput) SetOrderableClusterOptions(v []*OrderableClusterOption) *DescribeOrderableClusterOptionsOutput {
17038	s.OrderableClusterOptions = v
17039	return s
17040}
17041
17042type DescribeReservedNodeOfferingsInput struct {
17043	_ struct{} `type:"structure"`
17044
17045	// An optional parameter that specifies the starting point to return a set of
17046	// response records. When the results of a DescribeReservedNodeOfferings request
17047	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
17048	// field of the response. You can retrieve the next set of response records
17049	// by providing the returned marker value in the Marker parameter and retrying
17050	// the request.
17051	Marker *string `type:"string"`
17052
17053	// The maximum number of response records to return in each call. If the number
17054	// of remaining response records exceeds the specified MaxRecords value, a value
17055	// is returned in a marker field of the response. You can retrieve the next
17056	// set of records by retrying the command with the returned marker value.
17057	//
17058	// Default: 100
17059	//
17060	// Constraints: minimum 20, maximum 100.
17061	MaxRecords *int64 `type:"integer"`
17062
17063	// The unique identifier for the offering.
17064	ReservedNodeOfferingId *string `type:"string"`
17065}
17066
17067// String returns the string representation
17068func (s DescribeReservedNodeOfferingsInput) String() string {
17069	return awsutil.Prettify(s)
17070}
17071
17072// GoString returns the string representation
17073func (s DescribeReservedNodeOfferingsInput) GoString() string {
17074	return s.String()
17075}
17076
17077// SetMarker sets the Marker field's value.
17078func (s *DescribeReservedNodeOfferingsInput) SetMarker(v string) *DescribeReservedNodeOfferingsInput {
17079	s.Marker = &v
17080	return s
17081}
17082
17083// SetMaxRecords sets the MaxRecords field's value.
17084func (s *DescribeReservedNodeOfferingsInput) SetMaxRecords(v int64) *DescribeReservedNodeOfferingsInput {
17085	s.MaxRecords = &v
17086	return s
17087}
17088
17089// SetReservedNodeOfferingId sets the ReservedNodeOfferingId field's value.
17090func (s *DescribeReservedNodeOfferingsInput) SetReservedNodeOfferingId(v string) *DescribeReservedNodeOfferingsInput {
17091	s.ReservedNodeOfferingId = &v
17092	return s
17093}
17094
17095type DescribeReservedNodeOfferingsOutput struct {
17096	_ struct{} `type:"structure"`
17097
17098	// A value that indicates the starting point for the next set of response records
17099	// in a subsequent request. If a value is returned in a response, you can retrieve
17100	// the next set of records by providing this returned marker value in the Marker
17101	// parameter and retrying the command. If the Marker field is empty, all response
17102	// records have been retrieved for the request.
17103	Marker *string `type:"string"`
17104
17105	// A list of ReservedNodeOffering objects.
17106	ReservedNodeOfferings []*ReservedNodeOffering `locationNameList:"ReservedNodeOffering" type:"list"`
17107}
17108
17109// String returns the string representation
17110func (s DescribeReservedNodeOfferingsOutput) String() string {
17111	return awsutil.Prettify(s)
17112}
17113
17114// GoString returns the string representation
17115func (s DescribeReservedNodeOfferingsOutput) GoString() string {
17116	return s.String()
17117}
17118
17119// SetMarker sets the Marker field's value.
17120func (s *DescribeReservedNodeOfferingsOutput) SetMarker(v string) *DescribeReservedNodeOfferingsOutput {
17121	s.Marker = &v
17122	return s
17123}
17124
17125// SetReservedNodeOfferings sets the ReservedNodeOfferings field's value.
17126func (s *DescribeReservedNodeOfferingsOutput) SetReservedNodeOfferings(v []*ReservedNodeOffering) *DescribeReservedNodeOfferingsOutput {
17127	s.ReservedNodeOfferings = v
17128	return s
17129}
17130
17131type DescribeReservedNodesInput struct {
17132	_ struct{} `type:"structure"`
17133
17134	// An optional parameter that specifies the starting point to return a set of
17135	// response records. When the results of a DescribeReservedNodes request exceed
17136	// the value specified in MaxRecords, AWS returns a value in the Marker field
17137	// of the response. You can retrieve the next set of response records by providing
17138	// the returned marker value in the Marker parameter and retrying the request.
17139	Marker *string `type:"string"`
17140
17141	// The maximum number of response records to return in each call. If the number
17142	// of remaining response records exceeds the specified MaxRecords value, a value
17143	// is returned in a marker field of the response. You can retrieve the next
17144	// set of records by retrying the command with the returned marker value.
17145	//
17146	// Default: 100
17147	//
17148	// Constraints: minimum 20, maximum 100.
17149	MaxRecords *int64 `type:"integer"`
17150
17151	// Identifier for the node reservation.
17152	ReservedNodeId *string `type:"string"`
17153}
17154
17155// String returns the string representation
17156func (s DescribeReservedNodesInput) String() string {
17157	return awsutil.Prettify(s)
17158}
17159
17160// GoString returns the string representation
17161func (s DescribeReservedNodesInput) GoString() string {
17162	return s.String()
17163}
17164
17165// SetMarker sets the Marker field's value.
17166func (s *DescribeReservedNodesInput) SetMarker(v string) *DescribeReservedNodesInput {
17167	s.Marker = &v
17168	return s
17169}
17170
17171// SetMaxRecords sets the MaxRecords field's value.
17172func (s *DescribeReservedNodesInput) SetMaxRecords(v int64) *DescribeReservedNodesInput {
17173	s.MaxRecords = &v
17174	return s
17175}
17176
17177// SetReservedNodeId sets the ReservedNodeId field's value.
17178func (s *DescribeReservedNodesInput) SetReservedNodeId(v string) *DescribeReservedNodesInput {
17179	s.ReservedNodeId = &v
17180	return s
17181}
17182
17183type DescribeReservedNodesOutput struct {
17184	_ struct{} `type:"structure"`
17185
17186	// A value that indicates the starting point for the next set of response records
17187	// in a subsequent request. If a value is returned in a response, you can retrieve
17188	// the next set of records by providing this returned marker value in the Marker
17189	// parameter and retrying the command. If the Marker field is empty, all response
17190	// records have been retrieved for the request.
17191	Marker *string `type:"string"`
17192
17193	// The list of ReservedNode objects.
17194	ReservedNodes []*ReservedNode `locationNameList:"ReservedNode" type:"list"`
17195}
17196
17197// String returns the string representation
17198func (s DescribeReservedNodesOutput) String() string {
17199	return awsutil.Prettify(s)
17200}
17201
17202// GoString returns the string representation
17203func (s DescribeReservedNodesOutput) GoString() string {
17204	return s.String()
17205}
17206
17207// SetMarker sets the Marker field's value.
17208func (s *DescribeReservedNodesOutput) SetMarker(v string) *DescribeReservedNodesOutput {
17209	s.Marker = &v
17210	return s
17211}
17212
17213// SetReservedNodes sets the ReservedNodes field's value.
17214func (s *DescribeReservedNodesOutput) SetReservedNodes(v []*ReservedNode) *DescribeReservedNodesOutput {
17215	s.ReservedNodes = v
17216	return s
17217}
17218
17219type DescribeResizeInput struct {
17220	_ struct{} `type:"structure"`
17221
17222	// The unique identifier of a cluster whose resize progress you are requesting.
17223	// This parameter is case-sensitive.
17224	//
17225	// By default, resize operations for all clusters defined for an AWS account
17226	// are returned.
17227	//
17228	// ClusterIdentifier is a required field
17229	ClusterIdentifier *string `type:"string" required:"true"`
17230}
17231
17232// String returns the string representation
17233func (s DescribeResizeInput) String() string {
17234	return awsutil.Prettify(s)
17235}
17236
17237// GoString returns the string representation
17238func (s DescribeResizeInput) GoString() string {
17239	return s.String()
17240}
17241
17242// Validate inspects the fields of the type to determine if they are valid.
17243func (s *DescribeResizeInput) Validate() error {
17244	invalidParams := request.ErrInvalidParams{Context: "DescribeResizeInput"}
17245	if s.ClusterIdentifier == nil {
17246		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
17247	}
17248
17249	if invalidParams.Len() > 0 {
17250		return invalidParams
17251	}
17252	return nil
17253}
17254
17255// SetClusterIdentifier sets the ClusterIdentifier field's value.
17256func (s *DescribeResizeInput) SetClusterIdentifier(v string) *DescribeResizeInput {
17257	s.ClusterIdentifier = &v
17258	return s
17259}
17260
17261// Describes the result of a cluster resize operation.
17262type DescribeResizeOutput struct {
17263	_ struct{} `type:"structure"`
17264
17265	// The average rate of the resize operation over the last few minutes, measured
17266	// in megabytes per second. After the resize operation completes, this value
17267	// shows the average rate of the entire resize operation.
17268	AvgResizeRateInMegaBytesPerSecond *float64 `type:"double"`
17269
17270	// The percent of data transferred from source cluster to target cluster.
17271	DataTransferProgressPercent *float64 `type:"double"`
17272
17273	// The amount of seconds that have elapsed since the resize operation began.
17274	// After the resize operation completes, this value shows the total actual time,
17275	// in seconds, for the resize operation.
17276	ElapsedTimeInSeconds *int64 `type:"long"`
17277
17278	// The estimated time remaining, in seconds, until the resize operation is complete.
17279	// This value is calculated based on the average resize rate and the estimated
17280	// amount of data remaining to be processed. Once the resize operation is complete,
17281	// this value will be 0.
17282	EstimatedTimeToCompletionInSeconds *int64 `type:"long"`
17283
17284	// The names of tables that have been completely imported .
17285	//
17286	// Valid Values: List of table names.
17287	ImportTablesCompleted []*string `type:"list"`
17288
17289	// The names of tables that are being currently imported.
17290	//
17291	// Valid Values: List of table names.
17292	ImportTablesInProgress []*string `type:"list"`
17293
17294	// The names of tables that have not been yet imported.
17295	//
17296	// Valid Values: List of table names
17297	ImportTablesNotStarted []*string `type:"list"`
17298
17299	// An optional string to provide additional details about the resize action.
17300	Message *string `type:"string"`
17301
17302	// While the resize operation is in progress, this value shows the current amount
17303	// of data, in megabytes, that has been processed so far. When the resize operation
17304	// is complete, this value shows the total amount of data, in megabytes, on
17305	// the cluster, which may be more or less than TotalResizeDataInMegaBytes (the
17306	// estimated total amount of data before resize).
17307	ProgressInMegaBytes *int64 `type:"long"`
17308
17309	// An enum with possible values of ClassicResize and ElasticResize. These values
17310	// describe the type of resize operation being performed.
17311	ResizeType *string `type:"string"`
17312
17313	// The status of the resize operation.
17314	//
17315	// Valid Values: NONE | IN_PROGRESS | FAILED | SUCCEEDED | CANCELLING
17316	Status *string `type:"string"`
17317
17318	// The cluster type after the resize operation is complete.
17319	//
17320	// Valid Values: multi-node | single-node
17321	TargetClusterType *string `type:"string"`
17322
17323	// The type of encryption for the cluster after the resize is complete.
17324	//
17325	// Possible values are KMS and None. In the China region possible values are:
17326	// Legacy and None.
17327	TargetEncryptionType *string `type:"string"`
17328
17329	// The node type that the cluster will have after the resize operation is complete.
17330	TargetNodeType *string `type:"string"`
17331
17332	// The number of nodes that the cluster will have after the resize operation
17333	// is complete.
17334	TargetNumberOfNodes *int64 `type:"integer"`
17335
17336	// The estimated total amount of data, in megabytes, on the cluster before the
17337	// resize operation began.
17338	TotalResizeDataInMegaBytes *int64 `type:"long"`
17339}
17340
17341// String returns the string representation
17342func (s DescribeResizeOutput) String() string {
17343	return awsutil.Prettify(s)
17344}
17345
17346// GoString returns the string representation
17347func (s DescribeResizeOutput) GoString() string {
17348	return s.String()
17349}
17350
17351// SetAvgResizeRateInMegaBytesPerSecond sets the AvgResizeRateInMegaBytesPerSecond field's value.
17352func (s *DescribeResizeOutput) SetAvgResizeRateInMegaBytesPerSecond(v float64) *DescribeResizeOutput {
17353	s.AvgResizeRateInMegaBytesPerSecond = &v
17354	return s
17355}
17356
17357// SetDataTransferProgressPercent sets the DataTransferProgressPercent field's value.
17358func (s *DescribeResizeOutput) SetDataTransferProgressPercent(v float64) *DescribeResizeOutput {
17359	s.DataTransferProgressPercent = &v
17360	return s
17361}
17362
17363// SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
17364func (s *DescribeResizeOutput) SetElapsedTimeInSeconds(v int64) *DescribeResizeOutput {
17365	s.ElapsedTimeInSeconds = &v
17366	return s
17367}
17368
17369// SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value.
17370func (s *DescribeResizeOutput) SetEstimatedTimeToCompletionInSeconds(v int64) *DescribeResizeOutput {
17371	s.EstimatedTimeToCompletionInSeconds = &v
17372	return s
17373}
17374
17375// SetImportTablesCompleted sets the ImportTablesCompleted field's value.
17376func (s *DescribeResizeOutput) SetImportTablesCompleted(v []*string) *DescribeResizeOutput {
17377	s.ImportTablesCompleted = v
17378	return s
17379}
17380
17381// SetImportTablesInProgress sets the ImportTablesInProgress field's value.
17382func (s *DescribeResizeOutput) SetImportTablesInProgress(v []*string) *DescribeResizeOutput {
17383	s.ImportTablesInProgress = v
17384	return s
17385}
17386
17387// SetImportTablesNotStarted sets the ImportTablesNotStarted field's value.
17388func (s *DescribeResizeOutput) SetImportTablesNotStarted(v []*string) *DescribeResizeOutput {
17389	s.ImportTablesNotStarted = v
17390	return s
17391}
17392
17393// SetMessage sets the Message field's value.
17394func (s *DescribeResizeOutput) SetMessage(v string) *DescribeResizeOutput {
17395	s.Message = &v
17396	return s
17397}
17398
17399// SetProgressInMegaBytes sets the ProgressInMegaBytes field's value.
17400func (s *DescribeResizeOutput) SetProgressInMegaBytes(v int64) *DescribeResizeOutput {
17401	s.ProgressInMegaBytes = &v
17402	return s
17403}
17404
17405// SetResizeType sets the ResizeType field's value.
17406func (s *DescribeResizeOutput) SetResizeType(v string) *DescribeResizeOutput {
17407	s.ResizeType = &v
17408	return s
17409}
17410
17411// SetStatus sets the Status field's value.
17412func (s *DescribeResizeOutput) SetStatus(v string) *DescribeResizeOutput {
17413	s.Status = &v
17414	return s
17415}
17416
17417// SetTargetClusterType sets the TargetClusterType field's value.
17418func (s *DescribeResizeOutput) SetTargetClusterType(v string) *DescribeResizeOutput {
17419	s.TargetClusterType = &v
17420	return s
17421}
17422
17423// SetTargetEncryptionType sets the TargetEncryptionType field's value.
17424func (s *DescribeResizeOutput) SetTargetEncryptionType(v string) *DescribeResizeOutput {
17425	s.TargetEncryptionType = &v
17426	return s
17427}
17428
17429// SetTargetNodeType sets the TargetNodeType field's value.
17430func (s *DescribeResizeOutput) SetTargetNodeType(v string) *DescribeResizeOutput {
17431	s.TargetNodeType = &v
17432	return s
17433}
17434
17435// SetTargetNumberOfNodes sets the TargetNumberOfNodes field's value.
17436func (s *DescribeResizeOutput) SetTargetNumberOfNodes(v int64) *DescribeResizeOutput {
17437	s.TargetNumberOfNodes = &v
17438	return s
17439}
17440
17441// SetTotalResizeDataInMegaBytes sets the TotalResizeDataInMegaBytes field's value.
17442func (s *DescribeResizeOutput) SetTotalResizeDataInMegaBytes(v int64) *DescribeResizeOutput {
17443	s.TotalResizeDataInMegaBytes = &v
17444	return s
17445}
17446
17447type DescribeScheduledActionsInput struct {
17448	_ struct{} `type:"structure"`
17449
17450	// If true, retrieve only active scheduled actions. If false, retrieve only
17451	// disabled scheduled actions.
17452	Active *bool `type:"boolean"`
17453
17454	// The end time in UTC of the scheduled action to retrieve. Only active scheduled
17455	// actions that have invocations before this time are retrieved.
17456	EndTime *time.Time `type:"timestamp"`
17457
17458	// List of scheduled action filters.
17459	Filters []*ScheduledActionFilter `locationNameList:"ScheduledActionFilter" type:"list"`
17460
17461	// An optional parameter that specifies the starting point to return a set of
17462	// response records. When the results of a DescribeScheduledActions request
17463	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
17464	// field of the response. You can retrieve the next set of response records
17465	// by providing the returned marker value in the Marker parameter and retrying
17466	// the request.
17467	Marker *string `type:"string"`
17468
17469	// The maximum number of response records to return in each call. If the number
17470	// of remaining response records exceeds the specified MaxRecords value, a value
17471	// is returned in a marker field of the response. You can retrieve the next
17472	// set of records by retrying the command with the returned marker value.
17473	//
17474	// Default: 100
17475	//
17476	// Constraints: minimum 20, maximum 100.
17477	MaxRecords *int64 `type:"integer"`
17478
17479	// The name of the scheduled action to retrieve.
17480	ScheduledActionName *string `type:"string"`
17481
17482	// The start time in UTC of the scheduled actions to retrieve. Only active scheduled
17483	// actions that have invocations after this time are retrieved.
17484	StartTime *time.Time `type:"timestamp"`
17485
17486	// The type of the scheduled actions to retrieve.
17487	TargetActionType *string `type:"string" enum:"ScheduledActionTypeValues"`
17488}
17489
17490// String returns the string representation
17491func (s DescribeScheduledActionsInput) String() string {
17492	return awsutil.Prettify(s)
17493}
17494
17495// GoString returns the string representation
17496func (s DescribeScheduledActionsInput) GoString() string {
17497	return s.String()
17498}
17499
17500// Validate inspects the fields of the type to determine if they are valid.
17501func (s *DescribeScheduledActionsInput) Validate() error {
17502	invalidParams := request.ErrInvalidParams{Context: "DescribeScheduledActionsInput"}
17503	if s.Filters != nil {
17504		for i, v := range s.Filters {
17505			if v == nil {
17506				continue
17507			}
17508			if err := v.Validate(); err != nil {
17509				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
17510			}
17511		}
17512	}
17513
17514	if invalidParams.Len() > 0 {
17515		return invalidParams
17516	}
17517	return nil
17518}
17519
17520// SetActive sets the Active field's value.
17521func (s *DescribeScheduledActionsInput) SetActive(v bool) *DescribeScheduledActionsInput {
17522	s.Active = &v
17523	return s
17524}
17525
17526// SetEndTime sets the EndTime field's value.
17527func (s *DescribeScheduledActionsInput) SetEndTime(v time.Time) *DescribeScheduledActionsInput {
17528	s.EndTime = &v
17529	return s
17530}
17531
17532// SetFilters sets the Filters field's value.
17533func (s *DescribeScheduledActionsInput) SetFilters(v []*ScheduledActionFilter) *DescribeScheduledActionsInput {
17534	s.Filters = v
17535	return s
17536}
17537
17538// SetMarker sets the Marker field's value.
17539func (s *DescribeScheduledActionsInput) SetMarker(v string) *DescribeScheduledActionsInput {
17540	s.Marker = &v
17541	return s
17542}
17543
17544// SetMaxRecords sets the MaxRecords field's value.
17545func (s *DescribeScheduledActionsInput) SetMaxRecords(v int64) *DescribeScheduledActionsInput {
17546	s.MaxRecords = &v
17547	return s
17548}
17549
17550// SetScheduledActionName sets the ScheduledActionName field's value.
17551func (s *DescribeScheduledActionsInput) SetScheduledActionName(v string) *DescribeScheduledActionsInput {
17552	s.ScheduledActionName = &v
17553	return s
17554}
17555
17556// SetStartTime sets the StartTime field's value.
17557func (s *DescribeScheduledActionsInput) SetStartTime(v time.Time) *DescribeScheduledActionsInput {
17558	s.StartTime = &v
17559	return s
17560}
17561
17562// SetTargetActionType sets the TargetActionType field's value.
17563func (s *DescribeScheduledActionsInput) SetTargetActionType(v string) *DescribeScheduledActionsInput {
17564	s.TargetActionType = &v
17565	return s
17566}
17567
17568type DescribeScheduledActionsOutput struct {
17569	_ struct{} `type:"structure"`
17570
17571	// An optional parameter that specifies the starting point to return a set of
17572	// response records. When the results of a DescribeScheduledActions request
17573	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
17574	// field of the response. You can retrieve the next set of response records
17575	// by providing the returned marker value in the Marker parameter and retrying
17576	// the request.
17577	Marker *string `type:"string"`
17578
17579	// List of retrieved scheduled actions.
17580	ScheduledActions []*ScheduledAction `locationNameList:"ScheduledAction" type:"list"`
17581}
17582
17583// String returns the string representation
17584func (s DescribeScheduledActionsOutput) String() string {
17585	return awsutil.Prettify(s)
17586}
17587
17588// GoString returns the string representation
17589func (s DescribeScheduledActionsOutput) GoString() string {
17590	return s.String()
17591}
17592
17593// SetMarker sets the Marker field's value.
17594func (s *DescribeScheduledActionsOutput) SetMarker(v string) *DescribeScheduledActionsOutput {
17595	s.Marker = &v
17596	return s
17597}
17598
17599// SetScheduledActions sets the ScheduledActions field's value.
17600func (s *DescribeScheduledActionsOutput) SetScheduledActions(v []*ScheduledAction) *DescribeScheduledActionsOutput {
17601	s.ScheduledActions = v
17602	return s
17603}
17604
17605// The result of the DescribeSnapshotCopyGrants action.
17606type DescribeSnapshotCopyGrantsInput struct {
17607	_ struct{} `type:"structure"`
17608
17609	// An optional parameter that specifies the starting point to return a set of
17610	// response records. When the results of a DescribeSnapshotCopyGrant request
17611	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
17612	// field of the response. You can retrieve the next set of response records
17613	// by providing the returned marker value in the Marker parameter and retrying
17614	// the request.
17615	//
17616	// Constraints: You can specify either the SnapshotCopyGrantName parameter or
17617	// the Marker parameter, but not both.
17618	Marker *string `type:"string"`
17619
17620	// The maximum number of response records to return in each call. If the number
17621	// of remaining response records exceeds the specified MaxRecords value, a value
17622	// is returned in a marker field of the response. You can retrieve the next
17623	// set of records by retrying the command with the returned marker value.
17624	//
17625	// Default: 100
17626	//
17627	// Constraints: minimum 20, maximum 100.
17628	MaxRecords *int64 `type:"integer"`
17629
17630	// The name of the snapshot copy grant.
17631	SnapshotCopyGrantName *string `type:"string"`
17632
17633	// A tag key or keys for which you want to return all matching resources that
17634	// are associated with the specified key or keys. For example, suppose that
17635	// you have resources tagged with keys called owner and environment. If you
17636	// specify both of these tag keys in the request, Amazon Redshift returns a
17637	// response with all resources that have either or both of these tag keys associated
17638	// with them.
17639	TagKeys []*string `locationNameList:"TagKey" type:"list"`
17640
17641	// A tag value or values for which you want to return all matching resources
17642	// that are associated with the specified value or values. For example, suppose
17643	// that you have resources tagged with values called admin and test. If you
17644	// specify both of these tag values in the request, Amazon Redshift returns
17645	// a response with all resources that have either or both of these tag values
17646	// associated with them.
17647	TagValues []*string `locationNameList:"TagValue" type:"list"`
17648}
17649
17650// String returns the string representation
17651func (s DescribeSnapshotCopyGrantsInput) String() string {
17652	return awsutil.Prettify(s)
17653}
17654
17655// GoString returns the string representation
17656func (s DescribeSnapshotCopyGrantsInput) GoString() string {
17657	return s.String()
17658}
17659
17660// SetMarker sets the Marker field's value.
17661func (s *DescribeSnapshotCopyGrantsInput) SetMarker(v string) *DescribeSnapshotCopyGrantsInput {
17662	s.Marker = &v
17663	return s
17664}
17665
17666// SetMaxRecords sets the MaxRecords field's value.
17667func (s *DescribeSnapshotCopyGrantsInput) SetMaxRecords(v int64) *DescribeSnapshotCopyGrantsInput {
17668	s.MaxRecords = &v
17669	return s
17670}
17671
17672// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
17673func (s *DescribeSnapshotCopyGrantsInput) SetSnapshotCopyGrantName(v string) *DescribeSnapshotCopyGrantsInput {
17674	s.SnapshotCopyGrantName = &v
17675	return s
17676}
17677
17678// SetTagKeys sets the TagKeys field's value.
17679func (s *DescribeSnapshotCopyGrantsInput) SetTagKeys(v []*string) *DescribeSnapshotCopyGrantsInput {
17680	s.TagKeys = v
17681	return s
17682}
17683
17684// SetTagValues sets the TagValues field's value.
17685func (s *DescribeSnapshotCopyGrantsInput) SetTagValues(v []*string) *DescribeSnapshotCopyGrantsInput {
17686	s.TagValues = v
17687	return s
17688}
17689
17690type DescribeSnapshotCopyGrantsOutput struct {
17691	_ struct{} `type:"structure"`
17692
17693	// An optional parameter that specifies the starting point to return a set of
17694	// response records. When the results of a DescribeSnapshotCopyGrant request
17695	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
17696	// field of the response. You can retrieve the next set of response records
17697	// by providing the returned marker value in the Marker parameter and retrying
17698	// the request.
17699	//
17700	// Constraints: You can specify either the SnapshotCopyGrantName parameter or
17701	// the Marker parameter, but not both.
17702	Marker *string `type:"string"`
17703
17704	// The list of SnapshotCopyGrant objects.
17705	SnapshotCopyGrants []*SnapshotCopyGrant `locationNameList:"SnapshotCopyGrant" type:"list"`
17706}
17707
17708// String returns the string representation
17709func (s DescribeSnapshotCopyGrantsOutput) String() string {
17710	return awsutil.Prettify(s)
17711}
17712
17713// GoString returns the string representation
17714func (s DescribeSnapshotCopyGrantsOutput) GoString() string {
17715	return s.String()
17716}
17717
17718// SetMarker sets the Marker field's value.
17719func (s *DescribeSnapshotCopyGrantsOutput) SetMarker(v string) *DescribeSnapshotCopyGrantsOutput {
17720	s.Marker = &v
17721	return s
17722}
17723
17724// SetSnapshotCopyGrants sets the SnapshotCopyGrants field's value.
17725func (s *DescribeSnapshotCopyGrantsOutput) SetSnapshotCopyGrants(v []*SnapshotCopyGrant) *DescribeSnapshotCopyGrantsOutput {
17726	s.SnapshotCopyGrants = v
17727	return s
17728}
17729
17730type DescribeSnapshotSchedulesInput struct {
17731	_ struct{} `type:"structure"`
17732
17733	// The unique identifier for the cluster whose snapshot schedules you want to
17734	// view.
17735	ClusterIdentifier *string `type:"string"`
17736
17737	// A value that indicates the starting point for the next set of response records
17738	// in a subsequent request. If a value is returned in a response, you can retrieve
17739	// the next set of records by providing this returned marker value in the marker
17740	// parameter and retrying the command. If the marker field is empty, all response
17741	// records have been retrieved for the request.
17742	Marker *string `type:"string"`
17743
17744	// The maximum number or response records to return in each call. If the number
17745	// of remaining response records exceeds the specified MaxRecords value, a value
17746	// is returned in a marker field of the response. You can retrieve the next
17747	// set of records by retrying the command with the returned marker value.
17748	MaxRecords *int64 `type:"integer"`
17749
17750	// A unique identifier for a snapshot schedule.
17751	ScheduleIdentifier *string `type:"string"`
17752
17753	// The key value for a snapshot schedule tag.
17754	TagKeys []*string `locationNameList:"TagKey" type:"list"`
17755
17756	// The value corresponding to the key of the snapshot schedule tag.
17757	TagValues []*string `locationNameList:"TagValue" type:"list"`
17758}
17759
17760// String returns the string representation
17761func (s DescribeSnapshotSchedulesInput) String() string {
17762	return awsutil.Prettify(s)
17763}
17764
17765// GoString returns the string representation
17766func (s DescribeSnapshotSchedulesInput) GoString() string {
17767	return s.String()
17768}
17769
17770// SetClusterIdentifier sets the ClusterIdentifier field's value.
17771func (s *DescribeSnapshotSchedulesInput) SetClusterIdentifier(v string) *DescribeSnapshotSchedulesInput {
17772	s.ClusterIdentifier = &v
17773	return s
17774}
17775
17776// SetMarker sets the Marker field's value.
17777func (s *DescribeSnapshotSchedulesInput) SetMarker(v string) *DescribeSnapshotSchedulesInput {
17778	s.Marker = &v
17779	return s
17780}
17781
17782// SetMaxRecords sets the MaxRecords field's value.
17783func (s *DescribeSnapshotSchedulesInput) SetMaxRecords(v int64) *DescribeSnapshotSchedulesInput {
17784	s.MaxRecords = &v
17785	return s
17786}
17787
17788// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
17789func (s *DescribeSnapshotSchedulesInput) SetScheduleIdentifier(v string) *DescribeSnapshotSchedulesInput {
17790	s.ScheduleIdentifier = &v
17791	return s
17792}
17793
17794// SetTagKeys sets the TagKeys field's value.
17795func (s *DescribeSnapshotSchedulesInput) SetTagKeys(v []*string) *DescribeSnapshotSchedulesInput {
17796	s.TagKeys = v
17797	return s
17798}
17799
17800// SetTagValues sets the TagValues field's value.
17801func (s *DescribeSnapshotSchedulesInput) SetTagValues(v []*string) *DescribeSnapshotSchedulesInput {
17802	s.TagValues = v
17803	return s
17804}
17805
17806type DescribeSnapshotSchedulesOutput struct {
17807	_ struct{} `type:"structure"`
17808
17809	// A value that indicates the starting point for the next set of response records
17810	// in a subsequent request. If a value is returned in a response, you can retrieve
17811	// the next set of records by providing this returned marker value in the marker
17812	// parameter and retrying the command. If the marker field is empty, all response
17813	// records have been retrieved for the request.
17814	Marker *string `type:"string"`
17815
17816	// A list of SnapshotSchedules.
17817	SnapshotSchedules []*SnapshotSchedule `locationNameList:"SnapshotSchedule" type:"list"`
17818}
17819
17820// String returns the string representation
17821func (s DescribeSnapshotSchedulesOutput) String() string {
17822	return awsutil.Prettify(s)
17823}
17824
17825// GoString returns the string representation
17826func (s DescribeSnapshotSchedulesOutput) GoString() string {
17827	return s.String()
17828}
17829
17830// SetMarker sets the Marker field's value.
17831func (s *DescribeSnapshotSchedulesOutput) SetMarker(v string) *DescribeSnapshotSchedulesOutput {
17832	s.Marker = &v
17833	return s
17834}
17835
17836// SetSnapshotSchedules sets the SnapshotSchedules field's value.
17837func (s *DescribeSnapshotSchedulesOutput) SetSnapshotSchedules(v []*SnapshotSchedule) *DescribeSnapshotSchedulesOutput {
17838	s.SnapshotSchedules = v
17839	return s
17840}
17841
17842type DescribeStorageInput struct {
17843	_ struct{} `type:"structure"`
17844}
17845
17846// String returns the string representation
17847func (s DescribeStorageInput) String() string {
17848	return awsutil.Prettify(s)
17849}
17850
17851// GoString returns the string representation
17852func (s DescribeStorageInput) GoString() string {
17853	return s.String()
17854}
17855
17856type DescribeStorageOutput struct {
17857	_ struct{} `type:"structure"`
17858
17859	// The total amount of storage currently used for snapshots.
17860	TotalBackupSizeInMegaBytes *float64 `type:"double"`
17861
17862	// The total amount of storage currently provisioned.
17863	TotalProvisionedStorageInMegaBytes *float64 `type:"double"`
17864}
17865
17866// String returns the string representation
17867func (s DescribeStorageOutput) String() string {
17868	return awsutil.Prettify(s)
17869}
17870
17871// GoString returns the string representation
17872func (s DescribeStorageOutput) GoString() string {
17873	return s.String()
17874}
17875
17876// SetTotalBackupSizeInMegaBytes sets the TotalBackupSizeInMegaBytes field's value.
17877func (s *DescribeStorageOutput) SetTotalBackupSizeInMegaBytes(v float64) *DescribeStorageOutput {
17878	s.TotalBackupSizeInMegaBytes = &v
17879	return s
17880}
17881
17882// SetTotalProvisionedStorageInMegaBytes sets the TotalProvisionedStorageInMegaBytes field's value.
17883func (s *DescribeStorageOutput) SetTotalProvisionedStorageInMegaBytes(v float64) *DescribeStorageOutput {
17884	s.TotalProvisionedStorageInMegaBytes = &v
17885	return s
17886}
17887
17888type DescribeTableRestoreStatusInput struct {
17889	_ struct{} `type:"structure"`
17890
17891	// The Amazon Redshift cluster that the table is being restored to.
17892	ClusterIdentifier *string `type:"string"`
17893
17894	// An optional pagination token provided by a previous DescribeTableRestoreStatus
17895	// request. If this parameter is specified, the response includes only records
17896	// beyond the marker, up to the value specified by the MaxRecords parameter.
17897	Marker *string `type:"string"`
17898
17899	// The maximum number of records to include in the response. If more records
17900	// exist than the specified MaxRecords value, a pagination token called a marker
17901	// is included in the response so that the remaining results can be retrieved.
17902	MaxRecords *int64 `type:"integer"`
17903
17904	// The identifier of the table restore request to return status for. If you
17905	// don't specify a TableRestoreRequestId value, then DescribeTableRestoreStatus
17906	// returns the status of all in-progress table restore requests.
17907	TableRestoreRequestId *string `type:"string"`
17908}
17909
17910// String returns the string representation
17911func (s DescribeTableRestoreStatusInput) String() string {
17912	return awsutil.Prettify(s)
17913}
17914
17915// GoString returns the string representation
17916func (s DescribeTableRestoreStatusInput) GoString() string {
17917	return s.String()
17918}
17919
17920// SetClusterIdentifier sets the ClusterIdentifier field's value.
17921func (s *DescribeTableRestoreStatusInput) SetClusterIdentifier(v string) *DescribeTableRestoreStatusInput {
17922	s.ClusterIdentifier = &v
17923	return s
17924}
17925
17926// SetMarker sets the Marker field's value.
17927func (s *DescribeTableRestoreStatusInput) SetMarker(v string) *DescribeTableRestoreStatusInput {
17928	s.Marker = &v
17929	return s
17930}
17931
17932// SetMaxRecords sets the MaxRecords field's value.
17933func (s *DescribeTableRestoreStatusInput) SetMaxRecords(v int64) *DescribeTableRestoreStatusInput {
17934	s.MaxRecords = &v
17935	return s
17936}
17937
17938// SetTableRestoreRequestId sets the TableRestoreRequestId field's value.
17939func (s *DescribeTableRestoreStatusInput) SetTableRestoreRequestId(v string) *DescribeTableRestoreStatusInput {
17940	s.TableRestoreRequestId = &v
17941	return s
17942}
17943
17944type DescribeTableRestoreStatusOutput struct {
17945	_ struct{} `type:"structure"`
17946
17947	// A pagination token that can be used in a subsequent DescribeTableRestoreStatus
17948	// request.
17949	Marker *string `type:"string"`
17950
17951	// A list of status details for one or more table restore requests.
17952	TableRestoreStatusDetails []*TableRestoreStatus `locationNameList:"TableRestoreStatus" type:"list"`
17953}
17954
17955// String returns the string representation
17956func (s DescribeTableRestoreStatusOutput) String() string {
17957	return awsutil.Prettify(s)
17958}
17959
17960// GoString returns the string representation
17961func (s DescribeTableRestoreStatusOutput) GoString() string {
17962	return s.String()
17963}
17964
17965// SetMarker sets the Marker field's value.
17966func (s *DescribeTableRestoreStatusOutput) SetMarker(v string) *DescribeTableRestoreStatusOutput {
17967	s.Marker = &v
17968	return s
17969}
17970
17971// SetTableRestoreStatusDetails sets the TableRestoreStatusDetails field's value.
17972func (s *DescribeTableRestoreStatusOutput) SetTableRestoreStatusDetails(v []*TableRestoreStatus) *DescribeTableRestoreStatusOutput {
17973	s.TableRestoreStatusDetails = v
17974	return s
17975}
17976
17977type DescribeTagsInput struct {
17978	_ struct{} `type:"structure"`
17979
17980	// A value that indicates the starting point for the next set of response records
17981	// in a subsequent request. If a value is returned in a response, you can retrieve
17982	// the next set of records by providing this returned marker value in the marker
17983	// parameter and retrying the command. If the marker field is empty, all response
17984	// records have been retrieved for the request.
17985	Marker *string `type:"string"`
17986
17987	// The maximum number or response records to return in each call. If the number
17988	// of remaining response records exceeds the specified MaxRecords value, a value
17989	// is returned in a marker field of the response. You can retrieve the next
17990	// set of records by retrying the command with the returned marker value.
17991	MaxRecords *int64 `type:"integer"`
17992
17993	// The Amazon Resource Name (ARN) for which you want to describe the tag or
17994	// tags. For example, arn:aws:redshift:us-east-2:123456789:cluster:t1.
17995	ResourceName *string `type:"string"`
17996
17997	// The type of resource with which you want to view tags. Valid resource types
17998	// are:
17999	//
18000	//    * Cluster
18001	//
18002	//    * CIDR/IP
18003	//
18004	//    * EC2 security group
18005	//
18006	//    * Snapshot
18007	//
18008	//    * Cluster security group
18009	//
18010	//    * Subnet group
18011	//
18012	//    * HSM connection
18013	//
18014	//    * HSM certificate
18015	//
18016	//    * Parameter group
18017	//
18018	//    * Snapshot copy grant
18019	//
18020	// For more information about Amazon Redshift resource types and constructing
18021	// ARNs, go to Specifying Policy Elements: Actions, Effects, Resources, and
18022	// Principals (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-overview.html#redshift-iam-access-control-specify-actions)
18023	// in the Amazon Redshift Cluster Management Guide.
18024	ResourceType *string `type:"string"`
18025
18026	// A tag key or keys for which you want to return all matching resources that
18027	// are associated with the specified key or keys. For example, suppose that
18028	// you have resources tagged with keys called owner and environment. If you
18029	// specify both of these tag keys in the request, Amazon Redshift returns a
18030	// response with all resources that have either or both of these tag keys associated
18031	// with them.
18032	TagKeys []*string `locationNameList:"TagKey" type:"list"`
18033
18034	// A tag value or values for which you want to return all matching resources
18035	// that are associated with the specified value or values. For example, suppose
18036	// that you have resources tagged with values called admin and test. If you
18037	// specify both of these tag values in the request, Amazon Redshift returns
18038	// a response with all resources that have either or both of these tag values
18039	// associated with them.
18040	TagValues []*string `locationNameList:"TagValue" type:"list"`
18041}
18042
18043// String returns the string representation
18044func (s DescribeTagsInput) String() string {
18045	return awsutil.Prettify(s)
18046}
18047
18048// GoString returns the string representation
18049func (s DescribeTagsInput) GoString() string {
18050	return s.String()
18051}
18052
18053// SetMarker sets the Marker field's value.
18054func (s *DescribeTagsInput) SetMarker(v string) *DescribeTagsInput {
18055	s.Marker = &v
18056	return s
18057}
18058
18059// SetMaxRecords sets the MaxRecords field's value.
18060func (s *DescribeTagsInput) SetMaxRecords(v int64) *DescribeTagsInput {
18061	s.MaxRecords = &v
18062	return s
18063}
18064
18065// SetResourceName sets the ResourceName field's value.
18066func (s *DescribeTagsInput) SetResourceName(v string) *DescribeTagsInput {
18067	s.ResourceName = &v
18068	return s
18069}
18070
18071// SetResourceType sets the ResourceType field's value.
18072func (s *DescribeTagsInput) SetResourceType(v string) *DescribeTagsInput {
18073	s.ResourceType = &v
18074	return s
18075}
18076
18077// SetTagKeys sets the TagKeys field's value.
18078func (s *DescribeTagsInput) SetTagKeys(v []*string) *DescribeTagsInput {
18079	s.TagKeys = v
18080	return s
18081}
18082
18083// SetTagValues sets the TagValues field's value.
18084func (s *DescribeTagsInput) SetTagValues(v []*string) *DescribeTagsInput {
18085	s.TagValues = v
18086	return s
18087}
18088
18089type DescribeTagsOutput struct {
18090	_ struct{} `type:"structure"`
18091
18092	// A value that indicates the starting point for the next set of response records
18093	// in a subsequent request. If a value is returned in a response, you can retrieve
18094	// the next set of records by providing this returned marker value in the Marker
18095	// parameter and retrying the command. If the Marker field is empty, all response
18096	// records have been retrieved for the request.
18097	Marker *string `type:"string"`
18098
18099	// A list of tags with their associated resources.
18100	TaggedResources []*TaggedResource `locationNameList:"TaggedResource" type:"list"`
18101}
18102
18103// String returns the string representation
18104func (s DescribeTagsOutput) String() string {
18105	return awsutil.Prettify(s)
18106}
18107
18108// GoString returns the string representation
18109func (s DescribeTagsOutput) GoString() string {
18110	return s.String()
18111}
18112
18113// SetMarker sets the Marker field's value.
18114func (s *DescribeTagsOutput) SetMarker(v string) *DescribeTagsOutput {
18115	s.Marker = &v
18116	return s
18117}
18118
18119// SetTaggedResources sets the TaggedResources field's value.
18120func (s *DescribeTagsOutput) SetTaggedResources(v []*TaggedResource) *DescribeTagsOutput {
18121	s.TaggedResources = v
18122	return s
18123}
18124
18125type DescribeUsageLimitsInput struct {
18126	_ struct{} `type:"structure"`
18127
18128	// The identifier of the cluster for which you want to describe usage limits.
18129	ClusterIdentifier *string `type:"string"`
18130
18131	// The feature type for which you want to describe usage limits.
18132	FeatureType *string `type:"string" enum:"UsageLimitFeatureType"`
18133
18134	// An optional parameter that specifies the starting point to return a set of
18135	// response records. When the results of a DescribeUsageLimits request exceed
18136	// the value specified in MaxRecords, AWS returns a value in the Marker field
18137	// of the response. You can retrieve the next set of response records by providing
18138	// the returned marker value in the Marker parameter and retrying the request.
18139	Marker *string `type:"string"`
18140
18141	// The maximum number of response records to return in each call. If the number
18142	// of remaining response records exceeds the specified MaxRecords value, a value
18143	// is returned in a marker field of the response. You can retrieve the next
18144	// set of records by retrying the command with the returned marker value.
18145	//
18146	// Default: 100
18147	//
18148	// Constraints: minimum 20, maximum 100.
18149	MaxRecords *int64 `type:"integer"`
18150
18151	// A tag key or keys for which you want to return all matching usage limit objects
18152	// that are associated with the specified key or keys. For example, suppose
18153	// that you have parameter groups that are tagged with keys called owner and
18154	// environment. If you specify both of these tag keys in the request, Amazon
18155	// Redshift returns a response with the usage limit objects have either or both
18156	// of these tag keys associated with them.
18157	TagKeys []*string `locationNameList:"TagKey" type:"list"`
18158
18159	// A tag value or values for which you want to return all matching usage limit
18160	// objects that are associated with the specified tag value or values. For example,
18161	// suppose that you have parameter groups that are tagged with values called
18162	// admin and test. If you specify both of these tag values in the request, Amazon
18163	// Redshift returns a response with the usage limit objects that have either
18164	// or both of these tag values associated with them.
18165	TagValues []*string `locationNameList:"TagValue" type:"list"`
18166
18167	// The identifier of the usage limit to describe.
18168	UsageLimitId *string `type:"string"`
18169}
18170
18171// String returns the string representation
18172func (s DescribeUsageLimitsInput) String() string {
18173	return awsutil.Prettify(s)
18174}
18175
18176// GoString returns the string representation
18177func (s DescribeUsageLimitsInput) GoString() string {
18178	return s.String()
18179}
18180
18181// SetClusterIdentifier sets the ClusterIdentifier field's value.
18182func (s *DescribeUsageLimitsInput) SetClusterIdentifier(v string) *DescribeUsageLimitsInput {
18183	s.ClusterIdentifier = &v
18184	return s
18185}
18186
18187// SetFeatureType sets the FeatureType field's value.
18188func (s *DescribeUsageLimitsInput) SetFeatureType(v string) *DescribeUsageLimitsInput {
18189	s.FeatureType = &v
18190	return s
18191}
18192
18193// SetMarker sets the Marker field's value.
18194func (s *DescribeUsageLimitsInput) SetMarker(v string) *DescribeUsageLimitsInput {
18195	s.Marker = &v
18196	return s
18197}
18198
18199// SetMaxRecords sets the MaxRecords field's value.
18200func (s *DescribeUsageLimitsInput) SetMaxRecords(v int64) *DescribeUsageLimitsInput {
18201	s.MaxRecords = &v
18202	return s
18203}
18204
18205// SetTagKeys sets the TagKeys field's value.
18206func (s *DescribeUsageLimitsInput) SetTagKeys(v []*string) *DescribeUsageLimitsInput {
18207	s.TagKeys = v
18208	return s
18209}
18210
18211// SetTagValues sets the TagValues field's value.
18212func (s *DescribeUsageLimitsInput) SetTagValues(v []*string) *DescribeUsageLimitsInput {
18213	s.TagValues = v
18214	return s
18215}
18216
18217// SetUsageLimitId sets the UsageLimitId field's value.
18218func (s *DescribeUsageLimitsInput) SetUsageLimitId(v string) *DescribeUsageLimitsInput {
18219	s.UsageLimitId = &v
18220	return s
18221}
18222
18223type DescribeUsageLimitsOutput struct {
18224	_ struct{} `type:"structure"`
18225
18226	// A value that indicates the starting point for the next set of response records
18227	// in a subsequent request. If a value is returned in a response, you can retrieve
18228	// the next set of records by providing this returned marker value in the Marker
18229	// parameter and retrying the command. If the Marker field is empty, all response
18230	// records have been retrieved for the request.
18231	Marker *string `type:"string"`
18232
18233	// Contains the output from the DescribeUsageLimits action.
18234	UsageLimits []*UsageLimit `type:"list"`
18235}
18236
18237// String returns the string representation
18238func (s DescribeUsageLimitsOutput) String() string {
18239	return awsutil.Prettify(s)
18240}
18241
18242// GoString returns the string representation
18243func (s DescribeUsageLimitsOutput) GoString() string {
18244	return s.String()
18245}
18246
18247// SetMarker sets the Marker field's value.
18248func (s *DescribeUsageLimitsOutput) SetMarker(v string) *DescribeUsageLimitsOutput {
18249	s.Marker = &v
18250	return s
18251}
18252
18253// SetUsageLimits sets the UsageLimits field's value.
18254func (s *DescribeUsageLimitsOutput) SetUsageLimits(v []*UsageLimit) *DescribeUsageLimitsOutput {
18255	s.UsageLimits = v
18256	return s
18257}
18258
18259type DisableLoggingInput struct {
18260	_ struct{} `type:"structure"`
18261
18262	// The identifier of the cluster on which logging is to be stopped.
18263	//
18264	// Example: examplecluster
18265	//
18266	// ClusterIdentifier is a required field
18267	ClusterIdentifier *string `type:"string" required:"true"`
18268}
18269
18270// String returns the string representation
18271func (s DisableLoggingInput) String() string {
18272	return awsutil.Prettify(s)
18273}
18274
18275// GoString returns the string representation
18276func (s DisableLoggingInput) GoString() string {
18277	return s.String()
18278}
18279
18280// Validate inspects the fields of the type to determine if they are valid.
18281func (s *DisableLoggingInput) Validate() error {
18282	invalidParams := request.ErrInvalidParams{Context: "DisableLoggingInput"}
18283	if s.ClusterIdentifier == nil {
18284		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
18285	}
18286
18287	if invalidParams.Len() > 0 {
18288		return invalidParams
18289	}
18290	return nil
18291}
18292
18293// SetClusterIdentifier sets the ClusterIdentifier field's value.
18294func (s *DisableLoggingInput) SetClusterIdentifier(v string) *DisableLoggingInput {
18295	s.ClusterIdentifier = &v
18296	return s
18297}
18298
18299type DisableSnapshotCopyInput struct {
18300	_ struct{} `type:"structure"`
18301
18302	// The unique identifier of the source cluster that you want to disable copying
18303	// of snapshots to a destination region.
18304	//
18305	// Constraints: Must be the valid name of an existing cluster that has cross-region
18306	// snapshot copy enabled.
18307	//
18308	// ClusterIdentifier is a required field
18309	ClusterIdentifier *string `type:"string" required:"true"`
18310}
18311
18312// String returns the string representation
18313func (s DisableSnapshotCopyInput) String() string {
18314	return awsutil.Prettify(s)
18315}
18316
18317// GoString returns the string representation
18318func (s DisableSnapshotCopyInput) GoString() string {
18319	return s.String()
18320}
18321
18322// Validate inspects the fields of the type to determine if they are valid.
18323func (s *DisableSnapshotCopyInput) Validate() error {
18324	invalidParams := request.ErrInvalidParams{Context: "DisableSnapshotCopyInput"}
18325	if s.ClusterIdentifier == nil {
18326		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
18327	}
18328
18329	if invalidParams.Len() > 0 {
18330		return invalidParams
18331	}
18332	return nil
18333}
18334
18335// SetClusterIdentifier sets the ClusterIdentifier field's value.
18336func (s *DisableSnapshotCopyInput) SetClusterIdentifier(v string) *DisableSnapshotCopyInput {
18337	s.ClusterIdentifier = &v
18338	return s
18339}
18340
18341type DisableSnapshotCopyOutput struct {
18342	_ struct{} `type:"structure"`
18343
18344	// Describes a cluster.
18345	Cluster *Cluster `type:"structure"`
18346}
18347
18348// String returns the string representation
18349func (s DisableSnapshotCopyOutput) String() string {
18350	return awsutil.Prettify(s)
18351}
18352
18353// GoString returns the string representation
18354func (s DisableSnapshotCopyOutput) GoString() string {
18355	return s.String()
18356}
18357
18358// SetCluster sets the Cluster field's value.
18359func (s *DisableSnapshotCopyOutput) SetCluster(v *Cluster) *DisableSnapshotCopyOutput {
18360	s.Cluster = v
18361	return s
18362}
18363
18364// Describes an Amazon EC2 security group.
18365type EC2SecurityGroup struct {
18366	_ struct{} `type:"structure"`
18367
18368	// The name of the EC2 Security Group.
18369	EC2SecurityGroupName *string `type:"string"`
18370
18371	// The AWS ID of the owner of the EC2 security group specified in the EC2SecurityGroupName
18372	// field.
18373	EC2SecurityGroupOwnerId *string `type:"string"`
18374
18375	// The status of the EC2 security group.
18376	Status *string `type:"string"`
18377
18378	// The list of tags for the EC2 security group.
18379	Tags []*Tag `locationNameList:"Tag" type:"list"`
18380}
18381
18382// String returns the string representation
18383func (s EC2SecurityGroup) String() string {
18384	return awsutil.Prettify(s)
18385}
18386
18387// GoString returns the string representation
18388func (s EC2SecurityGroup) GoString() string {
18389	return s.String()
18390}
18391
18392// SetEC2SecurityGroupName sets the EC2SecurityGroupName field's value.
18393func (s *EC2SecurityGroup) SetEC2SecurityGroupName(v string) *EC2SecurityGroup {
18394	s.EC2SecurityGroupName = &v
18395	return s
18396}
18397
18398// SetEC2SecurityGroupOwnerId sets the EC2SecurityGroupOwnerId field's value.
18399func (s *EC2SecurityGroup) SetEC2SecurityGroupOwnerId(v string) *EC2SecurityGroup {
18400	s.EC2SecurityGroupOwnerId = &v
18401	return s
18402}
18403
18404// SetStatus sets the Status field's value.
18405func (s *EC2SecurityGroup) SetStatus(v string) *EC2SecurityGroup {
18406	s.Status = &v
18407	return s
18408}
18409
18410// SetTags sets the Tags field's value.
18411func (s *EC2SecurityGroup) SetTags(v []*Tag) *EC2SecurityGroup {
18412	s.Tags = v
18413	return s
18414}
18415
18416// Describes the status of the elastic IP (EIP) address.
18417type ElasticIpStatus struct {
18418	_ struct{} `type:"structure"`
18419
18420	// The elastic IP (EIP) address for the cluster.
18421	ElasticIp *string `type:"string"`
18422
18423	// The status of the elastic IP (EIP) address.
18424	Status *string `type:"string"`
18425}
18426
18427// String returns the string representation
18428func (s ElasticIpStatus) String() string {
18429	return awsutil.Prettify(s)
18430}
18431
18432// GoString returns the string representation
18433func (s ElasticIpStatus) GoString() string {
18434	return s.String()
18435}
18436
18437// SetElasticIp sets the ElasticIp field's value.
18438func (s *ElasticIpStatus) SetElasticIp(v string) *ElasticIpStatus {
18439	s.ElasticIp = &v
18440	return s
18441}
18442
18443// SetStatus sets the Status field's value.
18444func (s *ElasticIpStatus) SetStatus(v string) *ElasticIpStatus {
18445	s.Status = &v
18446	return s
18447}
18448
18449type EnableLoggingInput struct {
18450	_ struct{} `type:"structure"`
18451
18452	// The name of an existing S3 bucket where the log files are to be stored.
18453	//
18454	// Constraints:
18455	//
18456	//    * Must be in the same region as the cluster
18457	//
18458	//    * The cluster must have read bucket and put object permissions
18459	//
18460	// BucketName is a required field
18461	BucketName *string `type:"string" required:"true"`
18462
18463	// The identifier of the cluster on which logging is to be started.
18464	//
18465	// Example: examplecluster
18466	//
18467	// ClusterIdentifier is a required field
18468	ClusterIdentifier *string `type:"string" required:"true"`
18469
18470	// The prefix applied to the log file names.
18471	//
18472	// Constraints:
18473	//
18474	//    * Cannot exceed 512 characters
18475	//
18476	//    * Cannot contain spaces( ), double quotes ("), single quotes ('), a backslash
18477	//    (\), or control characters. The hexadecimal codes for invalid characters
18478	//    are: x00 to x20 x22 x27 x5c x7f or larger
18479	S3KeyPrefix *string `type:"string"`
18480}
18481
18482// String returns the string representation
18483func (s EnableLoggingInput) String() string {
18484	return awsutil.Prettify(s)
18485}
18486
18487// GoString returns the string representation
18488func (s EnableLoggingInput) GoString() string {
18489	return s.String()
18490}
18491
18492// Validate inspects the fields of the type to determine if they are valid.
18493func (s *EnableLoggingInput) Validate() error {
18494	invalidParams := request.ErrInvalidParams{Context: "EnableLoggingInput"}
18495	if s.BucketName == nil {
18496		invalidParams.Add(request.NewErrParamRequired("BucketName"))
18497	}
18498	if s.ClusterIdentifier == nil {
18499		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
18500	}
18501
18502	if invalidParams.Len() > 0 {
18503		return invalidParams
18504	}
18505	return nil
18506}
18507
18508// SetBucketName sets the BucketName field's value.
18509func (s *EnableLoggingInput) SetBucketName(v string) *EnableLoggingInput {
18510	s.BucketName = &v
18511	return s
18512}
18513
18514// SetClusterIdentifier sets the ClusterIdentifier field's value.
18515func (s *EnableLoggingInput) SetClusterIdentifier(v string) *EnableLoggingInput {
18516	s.ClusterIdentifier = &v
18517	return s
18518}
18519
18520// SetS3KeyPrefix sets the S3KeyPrefix field's value.
18521func (s *EnableLoggingInput) SetS3KeyPrefix(v string) *EnableLoggingInput {
18522	s.S3KeyPrefix = &v
18523	return s
18524}
18525
18526type EnableSnapshotCopyInput struct {
18527	_ struct{} `type:"structure"`
18528
18529	// The unique identifier of the source cluster to copy snapshots from.
18530	//
18531	// Constraints: Must be the valid name of an existing cluster that does not
18532	// already have cross-region snapshot copy enabled.
18533	//
18534	// ClusterIdentifier is a required field
18535	ClusterIdentifier *string `type:"string" required:"true"`
18536
18537	// The destination AWS Region that you want to copy snapshots to.
18538	//
18539	// Constraints: Must be the name of a valid AWS Region. For more information,
18540	// see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#redshift_region)
18541	// in the Amazon Web Services General Reference.
18542	//
18543	// DestinationRegion is a required field
18544	DestinationRegion *string `type:"string" required:"true"`
18545
18546	// The number of days to retain newly copied snapshots in the destination AWS
18547	// Region after they are copied from the source AWS Region. If the value is
18548	// -1, the manual snapshot is retained indefinitely.
18549	//
18550	// The value must be either -1 or an integer between 1 and 3,653.
18551	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
18552
18553	// The number of days to retain automated snapshots in the destination region
18554	// after they are copied from the source region.
18555	//
18556	// Default: 7.
18557	//
18558	// Constraints: Must be at least 1 and no more than 35.
18559	RetentionPeriod *int64 `type:"integer"`
18560
18561	// The name of the snapshot copy grant to use when snapshots of an AWS KMS-encrypted
18562	// cluster are copied to the destination region.
18563	SnapshotCopyGrantName *string `type:"string"`
18564}
18565
18566// String returns the string representation
18567func (s EnableSnapshotCopyInput) String() string {
18568	return awsutil.Prettify(s)
18569}
18570
18571// GoString returns the string representation
18572func (s EnableSnapshotCopyInput) GoString() string {
18573	return s.String()
18574}
18575
18576// Validate inspects the fields of the type to determine if they are valid.
18577func (s *EnableSnapshotCopyInput) Validate() error {
18578	invalidParams := request.ErrInvalidParams{Context: "EnableSnapshotCopyInput"}
18579	if s.ClusterIdentifier == nil {
18580		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
18581	}
18582	if s.DestinationRegion == nil {
18583		invalidParams.Add(request.NewErrParamRequired("DestinationRegion"))
18584	}
18585
18586	if invalidParams.Len() > 0 {
18587		return invalidParams
18588	}
18589	return nil
18590}
18591
18592// SetClusterIdentifier sets the ClusterIdentifier field's value.
18593func (s *EnableSnapshotCopyInput) SetClusterIdentifier(v string) *EnableSnapshotCopyInput {
18594	s.ClusterIdentifier = &v
18595	return s
18596}
18597
18598// SetDestinationRegion sets the DestinationRegion field's value.
18599func (s *EnableSnapshotCopyInput) SetDestinationRegion(v string) *EnableSnapshotCopyInput {
18600	s.DestinationRegion = &v
18601	return s
18602}
18603
18604// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
18605func (s *EnableSnapshotCopyInput) SetManualSnapshotRetentionPeriod(v int64) *EnableSnapshotCopyInput {
18606	s.ManualSnapshotRetentionPeriod = &v
18607	return s
18608}
18609
18610// SetRetentionPeriod sets the RetentionPeriod field's value.
18611func (s *EnableSnapshotCopyInput) SetRetentionPeriod(v int64) *EnableSnapshotCopyInput {
18612	s.RetentionPeriod = &v
18613	return s
18614}
18615
18616// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
18617func (s *EnableSnapshotCopyInput) SetSnapshotCopyGrantName(v string) *EnableSnapshotCopyInput {
18618	s.SnapshotCopyGrantName = &v
18619	return s
18620}
18621
18622type EnableSnapshotCopyOutput struct {
18623	_ struct{} `type:"structure"`
18624
18625	// Describes a cluster.
18626	Cluster *Cluster `type:"structure"`
18627}
18628
18629// String returns the string representation
18630func (s EnableSnapshotCopyOutput) String() string {
18631	return awsutil.Prettify(s)
18632}
18633
18634// GoString returns the string representation
18635func (s EnableSnapshotCopyOutput) GoString() string {
18636	return s.String()
18637}
18638
18639// SetCluster sets the Cluster field's value.
18640func (s *EnableSnapshotCopyOutput) SetCluster(v *Cluster) *EnableSnapshotCopyOutput {
18641	s.Cluster = v
18642	return s
18643}
18644
18645// Describes a connection endpoint.
18646type Endpoint struct {
18647	_ struct{} `type:"structure"`
18648
18649	// The DNS address of the Cluster.
18650	Address *string `type:"string"`
18651
18652	// The port that the database engine is listening on.
18653	Port *int64 `type:"integer"`
18654}
18655
18656// String returns the string representation
18657func (s Endpoint) String() string {
18658	return awsutil.Prettify(s)
18659}
18660
18661// GoString returns the string representation
18662func (s Endpoint) GoString() string {
18663	return s.String()
18664}
18665
18666// SetAddress sets the Address field's value.
18667func (s *Endpoint) SetAddress(v string) *Endpoint {
18668	s.Address = &v
18669	return s
18670}
18671
18672// SetPort sets the Port field's value.
18673func (s *Endpoint) SetPort(v int64) *Endpoint {
18674	s.Port = &v
18675	return s
18676}
18677
18678// Describes an event.
18679type Event struct {
18680	_ struct{} `type:"structure"`
18681
18682	// The date and time of the event.
18683	Date *time.Time `type:"timestamp"`
18684
18685	// A list of the event categories.
18686	//
18687	// Values: Configuration, Management, Monitoring, Security
18688	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
18689
18690	// The identifier of the event.
18691	EventId *string `type:"string"`
18692
18693	// The text of this event.
18694	Message *string `type:"string"`
18695
18696	// The severity of the event.
18697	//
18698	// Values: ERROR, INFO
18699	Severity *string `type:"string"`
18700
18701	// The identifier for the source of the event.
18702	SourceIdentifier *string `type:"string"`
18703
18704	// The source type for this event.
18705	SourceType *string `type:"string" enum:"SourceType"`
18706}
18707
18708// String returns the string representation
18709func (s Event) String() string {
18710	return awsutil.Prettify(s)
18711}
18712
18713// GoString returns the string representation
18714func (s Event) GoString() string {
18715	return s.String()
18716}
18717
18718// SetDate sets the Date field's value.
18719func (s *Event) SetDate(v time.Time) *Event {
18720	s.Date = &v
18721	return s
18722}
18723
18724// SetEventCategories sets the EventCategories field's value.
18725func (s *Event) SetEventCategories(v []*string) *Event {
18726	s.EventCategories = v
18727	return s
18728}
18729
18730// SetEventId sets the EventId field's value.
18731func (s *Event) SetEventId(v string) *Event {
18732	s.EventId = &v
18733	return s
18734}
18735
18736// SetMessage sets the Message field's value.
18737func (s *Event) SetMessage(v string) *Event {
18738	s.Message = &v
18739	return s
18740}
18741
18742// SetSeverity sets the Severity field's value.
18743func (s *Event) SetSeverity(v string) *Event {
18744	s.Severity = &v
18745	return s
18746}
18747
18748// SetSourceIdentifier sets the SourceIdentifier field's value.
18749func (s *Event) SetSourceIdentifier(v string) *Event {
18750	s.SourceIdentifier = &v
18751	return s
18752}
18753
18754// SetSourceType sets the SourceType field's value.
18755func (s *Event) SetSourceType(v string) *Event {
18756	s.SourceType = &v
18757	return s
18758}
18759
18760// Describes event categories.
18761type EventCategoriesMap struct {
18762	_ struct{} `type:"structure"`
18763
18764	// The events in the event category.
18765	Events []*EventInfoMap `locationNameList:"EventInfoMap" type:"list"`
18766
18767	// The source type, such as cluster or cluster-snapshot, that the returned categories
18768	// belong to.
18769	SourceType *string `type:"string"`
18770}
18771
18772// String returns the string representation
18773func (s EventCategoriesMap) String() string {
18774	return awsutil.Prettify(s)
18775}
18776
18777// GoString returns the string representation
18778func (s EventCategoriesMap) GoString() string {
18779	return s.String()
18780}
18781
18782// SetEvents sets the Events field's value.
18783func (s *EventCategoriesMap) SetEvents(v []*EventInfoMap) *EventCategoriesMap {
18784	s.Events = v
18785	return s
18786}
18787
18788// SetSourceType sets the SourceType field's value.
18789func (s *EventCategoriesMap) SetSourceType(v string) *EventCategoriesMap {
18790	s.SourceType = &v
18791	return s
18792}
18793
18794// Describes event information.
18795type EventInfoMap struct {
18796	_ struct{} `type:"structure"`
18797
18798	// The category of an Amazon Redshift event.
18799	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
18800
18801	// The description of an Amazon Redshift event.
18802	EventDescription *string `type:"string"`
18803
18804	// The identifier of an Amazon Redshift event.
18805	EventId *string `type:"string"`
18806
18807	// The severity of the event.
18808	//
18809	// Values: ERROR, INFO
18810	Severity *string `type:"string"`
18811}
18812
18813// String returns the string representation
18814func (s EventInfoMap) String() string {
18815	return awsutil.Prettify(s)
18816}
18817
18818// GoString returns the string representation
18819func (s EventInfoMap) GoString() string {
18820	return s.String()
18821}
18822
18823// SetEventCategories sets the EventCategories field's value.
18824func (s *EventInfoMap) SetEventCategories(v []*string) *EventInfoMap {
18825	s.EventCategories = v
18826	return s
18827}
18828
18829// SetEventDescription sets the EventDescription field's value.
18830func (s *EventInfoMap) SetEventDescription(v string) *EventInfoMap {
18831	s.EventDescription = &v
18832	return s
18833}
18834
18835// SetEventId sets the EventId field's value.
18836func (s *EventInfoMap) SetEventId(v string) *EventInfoMap {
18837	s.EventId = &v
18838	return s
18839}
18840
18841// SetSeverity sets the Severity field's value.
18842func (s *EventInfoMap) SetSeverity(v string) *EventInfoMap {
18843	s.Severity = &v
18844	return s
18845}
18846
18847// Describes event subscriptions.
18848type EventSubscription struct {
18849	_ struct{} `type:"structure"`
18850
18851	// The name of the Amazon Redshift event notification subscription.
18852	CustSubscriptionId *string `type:"string"`
18853
18854	// The AWS customer account associated with the Amazon Redshift event notification
18855	// subscription.
18856	CustomerAwsId *string `type:"string"`
18857
18858	// A boolean value indicating whether the subscription is enabled; true indicates
18859	// that the subscription is enabled.
18860	Enabled *bool `type:"boolean"`
18861
18862	// The list of Amazon Redshift event categories specified in the event notification
18863	// subscription.
18864	//
18865	// Values: Configuration, Management, Monitoring, Security
18866	EventCategoriesList []*string `locationNameList:"EventCategory" type:"list"`
18867
18868	// The event severity specified in the Amazon Redshift event notification subscription.
18869	//
18870	// Values: ERROR, INFO
18871	Severity *string `type:"string"`
18872
18873	// The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event
18874	// notification subscription.
18875	SnsTopicArn *string `type:"string"`
18876
18877	// A list of the sources that publish events to the Amazon Redshift event notification
18878	// subscription.
18879	SourceIdsList []*string `locationNameList:"SourceId" type:"list"`
18880
18881	// The source type of the events returned by the Amazon Redshift event notification,
18882	// such as cluster, cluster-snapshot, cluster-parameter-group, cluster-security-group,
18883	// or scheduled-action.
18884	SourceType *string `type:"string"`
18885
18886	// The status of the Amazon Redshift event notification subscription.
18887	//
18888	// Constraints:
18889	//
18890	//    * Can be one of the following: active | no-permission | topic-not-exist
18891	//
18892	//    * The status "no-permission" indicates that Amazon Redshift no longer
18893	//    has permission to post to the Amazon SNS topic. The status "topic-not-exist"
18894	//    indicates that the topic was deleted after the subscription was created.
18895	Status *string `type:"string"`
18896
18897	// The date and time the Amazon Redshift event notification subscription was
18898	// created.
18899	SubscriptionCreationTime *time.Time `type:"timestamp"`
18900
18901	// The list of tags for the event subscription.
18902	Tags []*Tag `locationNameList:"Tag" type:"list"`
18903}
18904
18905// String returns the string representation
18906func (s EventSubscription) String() string {
18907	return awsutil.Prettify(s)
18908}
18909
18910// GoString returns the string representation
18911func (s EventSubscription) GoString() string {
18912	return s.String()
18913}
18914
18915// SetCustSubscriptionId sets the CustSubscriptionId field's value.
18916func (s *EventSubscription) SetCustSubscriptionId(v string) *EventSubscription {
18917	s.CustSubscriptionId = &v
18918	return s
18919}
18920
18921// SetCustomerAwsId sets the CustomerAwsId field's value.
18922func (s *EventSubscription) SetCustomerAwsId(v string) *EventSubscription {
18923	s.CustomerAwsId = &v
18924	return s
18925}
18926
18927// SetEnabled sets the Enabled field's value.
18928func (s *EventSubscription) SetEnabled(v bool) *EventSubscription {
18929	s.Enabled = &v
18930	return s
18931}
18932
18933// SetEventCategoriesList sets the EventCategoriesList field's value.
18934func (s *EventSubscription) SetEventCategoriesList(v []*string) *EventSubscription {
18935	s.EventCategoriesList = v
18936	return s
18937}
18938
18939// SetSeverity sets the Severity field's value.
18940func (s *EventSubscription) SetSeverity(v string) *EventSubscription {
18941	s.Severity = &v
18942	return s
18943}
18944
18945// SetSnsTopicArn sets the SnsTopicArn field's value.
18946func (s *EventSubscription) SetSnsTopicArn(v string) *EventSubscription {
18947	s.SnsTopicArn = &v
18948	return s
18949}
18950
18951// SetSourceIdsList sets the SourceIdsList field's value.
18952func (s *EventSubscription) SetSourceIdsList(v []*string) *EventSubscription {
18953	s.SourceIdsList = v
18954	return s
18955}
18956
18957// SetSourceType sets the SourceType field's value.
18958func (s *EventSubscription) SetSourceType(v string) *EventSubscription {
18959	s.SourceType = &v
18960	return s
18961}
18962
18963// SetStatus sets the Status field's value.
18964func (s *EventSubscription) SetStatus(v string) *EventSubscription {
18965	s.Status = &v
18966	return s
18967}
18968
18969// SetSubscriptionCreationTime sets the SubscriptionCreationTime field's value.
18970func (s *EventSubscription) SetSubscriptionCreationTime(v time.Time) *EventSubscription {
18971	s.SubscriptionCreationTime = &v
18972	return s
18973}
18974
18975// SetTags sets the Tags field's value.
18976func (s *EventSubscription) SetTags(v []*Tag) *EventSubscription {
18977	s.Tags = v
18978	return s
18979}
18980
18981// The request parameters to get cluster credentials.
18982type GetClusterCredentialsInput struct {
18983	_ struct{} `type:"structure"`
18984
18985	// Create a database user with the name specified for the user named in DbUser
18986	// if one does not exist.
18987	AutoCreate *bool `type:"boolean"`
18988
18989	// The unique identifier of the cluster that contains the database for which
18990	// your are requesting credentials. This parameter is case sensitive.
18991	//
18992	// ClusterIdentifier is a required field
18993	ClusterIdentifier *string `type:"string" required:"true"`
18994
18995	// A list of the names of existing database groups that the user named in DbUser
18996	// will join for the current session, in addition to any group memberships for
18997	// an existing user. If not specified, a new user is added only to PUBLIC.
18998	//
18999	// Database group name constraints
19000	//
19001	//    * Must be 1 to 64 alphanumeric characters or hyphens
19002	//
19003	//    * Must contain only lowercase letters, numbers, underscore, plus sign,
19004	//    period (dot), at symbol (@), or hyphen.
19005	//
19006	//    * First character must be a letter.
19007	//
19008	//    * Must not contain a colon ( : ) or slash ( / ).
19009	//
19010	//    * Cannot be a reserved word. A list of reserved words can be found in
19011	//    Reserved Words (http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html)
19012	//    in the Amazon Redshift Database Developer Guide.
19013	DbGroups []*string `locationNameList:"DbGroup" type:"list"`
19014
19015	// The name of a database that DbUser is authorized to log on to. If DbName
19016	// is not specified, DbUser can log on to any existing database.
19017	//
19018	// Constraints:
19019	//
19020	//    * Must be 1 to 64 alphanumeric characters or hyphens
19021	//
19022	//    * Must contain only lowercase letters, numbers, underscore, plus sign,
19023	//    period (dot), at symbol (@), or hyphen.
19024	//
19025	//    * First character must be a letter.
19026	//
19027	//    * Must not contain a colon ( : ) or slash ( / ).
19028	//
19029	//    * Cannot be a reserved word. A list of reserved words can be found in
19030	//    Reserved Words (http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html)
19031	//    in the Amazon Redshift Database Developer Guide.
19032	DbName *string `type:"string"`
19033
19034	// The name of a database user. If a user name matching DbUser exists in the
19035	// database, the temporary user credentials have the same permissions as the
19036	// existing user. If DbUser doesn't exist in the database and Autocreate is
19037	// True, a new user is created using the value for DbUser with PUBLIC permissions.
19038	// If a database user matching the value for DbUser doesn't exist and Autocreate
19039	// is False, then the command succeeds but the connection attempt will fail
19040	// because the user doesn't exist in the database.
19041	//
19042	// For more information, see CREATE USER (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_USER.html)
19043	// in the Amazon Redshift Database Developer Guide.
19044	//
19045	// Constraints:
19046	//
19047	//    * Must be 1 to 64 alphanumeric characters or hyphens. The user name can't
19048	//    be PUBLIC.
19049	//
19050	//    * Must contain only lowercase letters, numbers, underscore, plus sign,
19051	//    period (dot), at symbol (@), or hyphen.
19052	//
19053	//    * First character must be a letter.
19054	//
19055	//    * Must not contain a colon ( : ) or slash ( / ).
19056	//
19057	//    * Cannot be a reserved word. A list of reserved words can be found in
19058	//    Reserved Words (http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html)
19059	//    in the Amazon Redshift Database Developer Guide.
19060	//
19061	// DbUser is a required field
19062	DbUser *string `type:"string" required:"true"`
19063
19064	// The number of seconds until the returned temporary password expires.
19065	//
19066	// Constraint: minimum 900, maximum 3600.
19067	//
19068	// Default: 900
19069	DurationSeconds *int64 `type:"integer"`
19070}
19071
19072// String returns the string representation
19073func (s GetClusterCredentialsInput) String() string {
19074	return awsutil.Prettify(s)
19075}
19076
19077// GoString returns the string representation
19078func (s GetClusterCredentialsInput) GoString() string {
19079	return s.String()
19080}
19081
19082// Validate inspects the fields of the type to determine if they are valid.
19083func (s *GetClusterCredentialsInput) Validate() error {
19084	invalidParams := request.ErrInvalidParams{Context: "GetClusterCredentialsInput"}
19085	if s.ClusterIdentifier == nil {
19086		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
19087	}
19088	if s.DbUser == nil {
19089		invalidParams.Add(request.NewErrParamRequired("DbUser"))
19090	}
19091
19092	if invalidParams.Len() > 0 {
19093		return invalidParams
19094	}
19095	return nil
19096}
19097
19098// SetAutoCreate sets the AutoCreate field's value.
19099func (s *GetClusterCredentialsInput) SetAutoCreate(v bool) *GetClusterCredentialsInput {
19100	s.AutoCreate = &v
19101	return s
19102}
19103
19104// SetClusterIdentifier sets the ClusterIdentifier field's value.
19105func (s *GetClusterCredentialsInput) SetClusterIdentifier(v string) *GetClusterCredentialsInput {
19106	s.ClusterIdentifier = &v
19107	return s
19108}
19109
19110// SetDbGroups sets the DbGroups field's value.
19111func (s *GetClusterCredentialsInput) SetDbGroups(v []*string) *GetClusterCredentialsInput {
19112	s.DbGroups = v
19113	return s
19114}
19115
19116// SetDbName sets the DbName field's value.
19117func (s *GetClusterCredentialsInput) SetDbName(v string) *GetClusterCredentialsInput {
19118	s.DbName = &v
19119	return s
19120}
19121
19122// SetDbUser sets the DbUser field's value.
19123func (s *GetClusterCredentialsInput) SetDbUser(v string) *GetClusterCredentialsInput {
19124	s.DbUser = &v
19125	return s
19126}
19127
19128// SetDurationSeconds sets the DurationSeconds field's value.
19129func (s *GetClusterCredentialsInput) SetDurationSeconds(v int64) *GetClusterCredentialsInput {
19130	s.DurationSeconds = &v
19131	return s
19132}
19133
19134// Temporary credentials with authorization to log on to an Amazon Redshift
19135// database.
19136type GetClusterCredentialsOutput struct {
19137	_ struct{} `type:"structure"`
19138
19139	// A temporary password that authorizes the user name returned by DbUser to
19140	// log on to the database DbName.
19141	DbPassword *string `type:"string" sensitive:"true"`
19142
19143	// A database user name that is authorized to log on to the database DbName
19144	// using the password DbPassword. If the specified DbUser exists in the database,
19145	// the new user name has the same database privileges as the the user named
19146	// in DbUser. By default, the user is added to PUBLIC. If the DbGroups parameter
19147	// is specifed, DbUser is added to the listed groups for any sessions created
19148	// using these credentials.
19149	DbUser *string `type:"string"`
19150
19151	// The date and time the password in DbPassword expires.
19152	Expiration *time.Time `type:"timestamp"`
19153}
19154
19155// String returns the string representation
19156func (s GetClusterCredentialsOutput) String() string {
19157	return awsutil.Prettify(s)
19158}
19159
19160// GoString returns the string representation
19161func (s GetClusterCredentialsOutput) GoString() string {
19162	return s.String()
19163}
19164
19165// SetDbPassword sets the DbPassword field's value.
19166func (s *GetClusterCredentialsOutput) SetDbPassword(v string) *GetClusterCredentialsOutput {
19167	s.DbPassword = &v
19168	return s
19169}
19170
19171// SetDbUser sets the DbUser field's value.
19172func (s *GetClusterCredentialsOutput) SetDbUser(v string) *GetClusterCredentialsOutput {
19173	s.DbUser = &v
19174	return s
19175}
19176
19177// SetExpiration sets the Expiration field's value.
19178func (s *GetClusterCredentialsOutput) SetExpiration(v time.Time) *GetClusterCredentialsOutput {
19179	s.Expiration = &v
19180	return s
19181}
19182
19183type GetReservedNodeExchangeOfferingsInput struct {
19184	_ struct{} `type:"structure"`
19185
19186	// A value that indicates the starting point for the next set of ReservedNodeOfferings.
19187	Marker *string `type:"string"`
19188
19189	// An integer setting the maximum number of ReservedNodeOfferings to retrieve.
19190	MaxRecords *int64 `type:"integer"`
19191
19192	// A string representing the node identifier for the DC1 Reserved Node to be
19193	// exchanged.
19194	//
19195	// ReservedNodeId is a required field
19196	ReservedNodeId *string `type:"string" required:"true"`
19197}
19198
19199// String returns the string representation
19200func (s GetReservedNodeExchangeOfferingsInput) String() string {
19201	return awsutil.Prettify(s)
19202}
19203
19204// GoString returns the string representation
19205func (s GetReservedNodeExchangeOfferingsInput) GoString() string {
19206	return s.String()
19207}
19208
19209// Validate inspects the fields of the type to determine if they are valid.
19210func (s *GetReservedNodeExchangeOfferingsInput) Validate() error {
19211	invalidParams := request.ErrInvalidParams{Context: "GetReservedNodeExchangeOfferingsInput"}
19212	if s.ReservedNodeId == nil {
19213		invalidParams.Add(request.NewErrParamRequired("ReservedNodeId"))
19214	}
19215
19216	if invalidParams.Len() > 0 {
19217		return invalidParams
19218	}
19219	return nil
19220}
19221
19222// SetMarker sets the Marker field's value.
19223func (s *GetReservedNodeExchangeOfferingsInput) SetMarker(v string) *GetReservedNodeExchangeOfferingsInput {
19224	s.Marker = &v
19225	return s
19226}
19227
19228// SetMaxRecords sets the MaxRecords field's value.
19229func (s *GetReservedNodeExchangeOfferingsInput) SetMaxRecords(v int64) *GetReservedNodeExchangeOfferingsInput {
19230	s.MaxRecords = &v
19231	return s
19232}
19233
19234// SetReservedNodeId sets the ReservedNodeId field's value.
19235func (s *GetReservedNodeExchangeOfferingsInput) SetReservedNodeId(v string) *GetReservedNodeExchangeOfferingsInput {
19236	s.ReservedNodeId = &v
19237	return s
19238}
19239
19240type GetReservedNodeExchangeOfferingsOutput struct {
19241	_ struct{} `type:"structure"`
19242
19243	// An optional parameter that specifies the starting point for returning a set
19244	// of response records. When the results of a GetReservedNodeExchangeOfferings
19245	// request exceed the value specified in MaxRecords, Amazon Redshift returns
19246	// a value in the marker field of the response. You can retrieve the next set
19247	// of response records by providing the returned marker value in the marker
19248	// parameter and retrying the request.
19249	Marker *string `type:"string"`
19250
19251	// Returns an array of ReservedNodeOffering objects.
19252	ReservedNodeOfferings []*ReservedNodeOffering `locationNameList:"ReservedNodeOffering" type:"list"`
19253}
19254
19255// String returns the string representation
19256func (s GetReservedNodeExchangeOfferingsOutput) String() string {
19257	return awsutil.Prettify(s)
19258}
19259
19260// GoString returns the string representation
19261func (s GetReservedNodeExchangeOfferingsOutput) GoString() string {
19262	return s.String()
19263}
19264
19265// SetMarker sets the Marker field's value.
19266func (s *GetReservedNodeExchangeOfferingsOutput) SetMarker(v string) *GetReservedNodeExchangeOfferingsOutput {
19267	s.Marker = &v
19268	return s
19269}
19270
19271// SetReservedNodeOfferings sets the ReservedNodeOfferings field's value.
19272func (s *GetReservedNodeExchangeOfferingsOutput) SetReservedNodeOfferings(v []*ReservedNodeOffering) *GetReservedNodeExchangeOfferingsOutput {
19273	s.ReservedNodeOfferings = v
19274	return s
19275}
19276
19277// Returns information about an HSM client certificate. The certificate is stored
19278// in a secure Hardware Storage Module (HSM), and used by the Amazon Redshift
19279// cluster to encrypt data files.
19280type HsmClientCertificate struct {
19281	_ struct{} `type:"structure"`
19282
19283	// The identifier of the HSM client certificate.
19284	HsmClientCertificateIdentifier *string `type:"string"`
19285
19286	// The public key that the Amazon Redshift cluster will use to connect to the
19287	// HSM. You must register the public key in the HSM.
19288	HsmClientCertificatePublicKey *string `type:"string"`
19289
19290	// The list of tags for the HSM client certificate.
19291	Tags []*Tag `locationNameList:"Tag" type:"list"`
19292}
19293
19294// String returns the string representation
19295func (s HsmClientCertificate) String() string {
19296	return awsutil.Prettify(s)
19297}
19298
19299// GoString returns the string representation
19300func (s HsmClientCertificate) GoString() string {
19301	return s.String()
19302}
19303
19304// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
19305func (s *HsmClientCertificate) SetHsmClientCertificateIdentifier(v string) *HsmClientCertificate {
19306	s.HsmClientCertificateIdentifier = &v
19307	return s
19308}
19309
19310// SetHsmClientCertificatePublicKey sets the HsmClientCertificatePublicKey field's value.
19311func (s *HsmClientCertificate) SetHsmClientCertificatePublicKey(v string) *HsmClientCertificate {
19312	s.HsmClientCertificatePublicKey = &v
19313	return s
19314}
19315
19316// SetTags sets the Tags field's value.
19317func (s *HsmClientCertificate) SetTags(v []*Tag) *HsmClientCertificate {
19318	s.Tags = v
19319	return s
19320}
19321
19322// Returns information about an HSM configuration, which is an object that describes
19323// to Amazon Redshift clusters the information they require to connect to an
19324// HSM where they can store database encryption keys.
19325type HsmConfiguration struct {
19326	_ struct{} `type:"structure"`
19327
19328	// A text description of the HSM configuration.
19329	Description *string `type:"string"`
19330
19331	// The name of the Amazon Redshift HSM configuration.
19332	HsmConfigurationIdentifier *string `type:"string"`
19333
19334	// The IP address that the Amazon Redshift cluster must use to access the HSM.
19335	HsmIpAddress *string `type:"string"`
19336
19337	// The name of the partition in the HSM where the Amazon Redshift clusters will
19338	// store their database encryption keys.
19339	HsmPartitionName *string `type:"string"`
19340
19341	// The list of tags for the HSM configuration.
19342	Tags []*Tag `locationNameList:"Tag" type:"list"`
19343}
19344
19345// String returns the string representation
19346func (s HsmConfiguration) String() string {
19347	return awsutil.Prettify(s)
19348}
19349
19350// GoString returns the string representation
19351func (s HsmConfiguration) GoString() string {
19352	return s.String()
19353}
19354
19355// SetDescription sets the Description field's value.
19356func (s *HsmConfiguration) SetDescription(v string) *HsmConfiguration {
19357	s.Description = &v
19358	return s
19359}
19360
19361// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
19362func (s *HsmConfiguration) SetHsmConfigurationIdentifier(v string) *HsmConfiguration {
19363	s.HsmConfigurationIdentifier = &v
19364	return s
19365}
19366
19367// SetHsmIpAddress sets the HsmIpAddress field's value.
19368func (s *HsmConfiguration) SetHsmIpAddress(v string) *HsmConfiguration {
19369	s.HsmIpAddress = &v
19370	return s
19371}
19372
19373// SetHsmPartitionName sets the HsmPartitionName field's value.
19374func (s *HsmConfiguration) SetHsmPartitionName(v string) *HsmConfiguration {
19375	s.HsmPartitionName = &v
19376	return s
19377}
19378
19379// SetTags sets the Tags field's value.
19380func (s *HsmConfiguration) SetTags(v []*Tag) *HsmConfiguration {
19381	s.Tags = v
19382	return s
19383}
19384
19385// Describes the status of changes to HSM settings.
19386type HsmStatus struct {
19387	_ struct{} `type:"structure"`
19388
19389	// Specifies the name of the HSM client certificate the Amazon Redshift cluster
19390	// uses to retrieve the data encryption keys stored in an HSM.
19391	HsmClientCertificateIdentifier *string `type:"string"`
19392
19393	// Specifies the name of the HSM configuration that contains the information
19394	// the Amazon Redshift cluster can use to retrieve and store keys in an HSM.
19395	HsmConfigurationIdentifier *string `type:"string"`
19396
19397	// Reports whether the Amazon Redshift cluster has finished applying any HSM
19398	// settings changes specified in a modify cluster command.
19399	//
19400	// Values: active, applying
19401	Status *string `type:"string"`
19402}
19403
19404// String returns the string representation
19405func (s HsmStatus) String() string {
19406	return awsutil.Prettify(s)
19407}
19408
19409// GoString returns the string representation
19410func (s HsmStatus) GoString() string {
19411	return s.String()
19412}
19413
19414// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
19415func (s *HsmStatus) SetHsmClientCertificateIdentifier(v string) *HsmStatus {
19416	s.HsmClientCertificateIdentifier = &v
19417	return s
19418}
19419
19420// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
19421func (s *HsmStatus) SetHsmConfigurationIdentifier(v string) *HsmStatus {
19422	s.HsmConfigurationIdentifier = &v
19423	return s
19424}
19425
19426// SetStatus sets the Status field's value.
19427func (s *HsmStatus) SetStatus(v string) *HsmStatus {
19428	s.Status = &v
19429	return s
19430}
19431
19432// Describes an IP range used in a security group.
19433type IPRange struct {
19434	_ struct{} `type:"structure"`
19435
19436	// The IP range in Classless Inter-Domain Routing (CIDR) notation.
19437	CIDRIP *string `type:"string"`
19438
19439	// The status of the IP range, for example, "authorized".
19440	Status *string `type:"string"`
19441
19442	// The list of tags for the IP range.
19443	Tags []*Tag `locationNameList:"Tag" type:"list"`
19444}
19445
19446// String returns the string representation
19447func (s IPRange) String() string {
19448	return awsutil.Prettify(s)
19449}
19450
19451// GoString returns the string representation
19452func (s IPRange) GoString() string {
19453	return s.String()
19454}
19455
19456// SetCIDRIP sets the CIDRIP field's value.
19457func (s *IPRange) SetCIDRIP(v string) *IPRange {
19458	s.CIDRIP = &v
19459	return s
19460}
19461
19462// SetStatus sets the Status field's value.
19463func (s *IPRange) SetStatus(v string) *IPRange {
19464	s.Status = &v
19465	return s
19466}
19467
19468// SetTags sets the Tags field's value.
19469func (s *IPRange) SetTags(v []*Tag) *IPRange {
19470	s.Tags = v
19471	return s
19472}
19473
19474// Describes the status of logging for a cluster.
19475type LoggingStatus struct {
19476	_ struct{} `type:"structure"`
19477
19478	// The name of the S3 bucket where the log files are stored.
19479	BucketName *string `type:"string"`
19480
19481	// The message indicating that logs failed to be delivered.
19482	LastFailureMessage *string `type:"string"`
19483
19484	// The last time when logs failed to be delivered.
19485	LastFailureTime *time.Time `type:"timestamp"`
19486
19487	// The last time that logs were delivered.
19488	LastSuccessfulDeliveryTime *time.Time `type:"timestamp"`
19489
19490	// true if logging is on, false if logging is off.
19491	LoggingEnabled *bool `type:"boolean"`
19492
19493	// The prefix applied to the log file names.
19494	S3KeyPrefix *string `type:"string"`
19495}
19496
19497// String returns the string representation
19498func (s LoggingStatus) String() string {
19499	return awsutil.Prettify(s)
19500}
19501
19502// GoString returns the string representation
19503func (s LoggingStatus) GoString() string {
19504	return s.String()
19505}
19506
19507// SetBucketName sets the BucketName field's value.
19508func (s *LoggingStatus) SetBucketName(v string) *LoggingStatus {
19509	s.BucketName = &v
19510	return s
19511}
19512
19513// SetLastFailureMessage sets the LastFailureMessage field's value.
19514func (s *LoggingStatus) SetLastFailureMessage(v string) *LoggingStatus {
19515	s.LastFailureMessage = &v
19516	return s
19517}
19518
19519// SetLastFailureTime sets the LastFailureTime field's value.
19520func (s *LoggingStatus) SetLastFailureTime(v time.Time) *LoggingStatus {
19521	s.LastFailureTime = &v
19522	return s
19523}
19524
19525// SetLastSuccessfulDeliveryTime sets the LastSuccessfulDeliveryTime field's value.
19526func (s *LoggingStatus) SetLastSuccessfulDeliveryTime(v time.Time) *LoggingStatus {
19527	s.LastSuccessfulDeliveryTime = &v
19528	return s
19529}
19530
19531// SetLoggingEnabled sets the LoggingEnabled field's value.
19532func (s *LoggingStatus) SetLoggingEnabled(v bool) *LoggingStatus {
19533	s.LoggingEnabled = &v
19534	return s
19535}
19536
19537// SetS3KeyPrefix sets the S3KeyPrefix field's value.
19538func (s *LoggingStatus) SetS3KeyPrefix(v string) *LoggingStatus {
19539	s.S3KeyPrefix = &v
19540	return s
19541}
19542
19543// Defines a maintenance track that determines which Amazon Redshift version
19544// to apply during a maintenance window. If the value for MaintenanceTrack is
19545// current, the cluster is updated to the most recently certified maintenance
19546// release. If the value is trailing, the cluster is updated to the previously
19547// certified maintenance release.
19548type MaintenanceTrack struct {
19549	_ struct{} `type:"structure"`
19550
19551	// The version number for the cluster release.
19552	DatabaseVersion *string `type:"string"`
19553
19554	// The name of the maintenance track. Possible values are current and trailing.
19555	MaintenanceTrackName *string `type:"string"`
19556
19557	// An array of UpdateTarget objects to update with the maintenance track.
19558	UpdateTargets []*UpdateTarget `locationNameList:"UpdateTarget" type:"list"`
19559}
19560
19561// String returns the string representation
19562func (s MaintenanceTrack) String() string {
19563	return awsutil.Prettify(s)
19564}
19565
19566// GoString returns the string representation
19567func (s MaintenanceTrack) GoString() string {
19568	return s.String()
19569}
19570
19571// SetDatabaseVersion sets the DatabaseVersion field's value.
19572func (s *MaintenanceTrack) SetDatabaseVersion(v string) *MaintenanceTrack {
19573	s.DatabaseVersion = &v
19574	return s
19575}
19576
19577// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
19578func (s *MaintenanceTrack) SetMaintenanceTrackName(v string) *MaintenanceTrack {
19579	s.MaintenanceTrackName = &v
19580	return s
19581}
19582
19583// SetUpdateTargets sets the UpdateTargets field's value.
19584func (s *MaintenanceTrack) SetUpdateTargets(v []*UpdateTarget) *MaintenanceTrack {
19585	s.UpdateTargets = v
19586	return s
19587}
19588
19589type ModifyClusterDbRevisionInput struct {
19590	_ struct{} `type:"structure"`
19591
19592	// The unique identifier of a cluster whose database revision you want to modify.
19593	//
19594	// Example: examplecluster
19595	//
19596	// ClusterIdentifier is a required field
19597	ClusterIdentifier *string `type:"string" required:"true"`
19598
19599	// The identifier of the database revision. You can retrieve this value from
19600	// the response to the DescribeClusterDbRevisions request.
19601	//
19602	// RevisionTarget is a required field
19603	RevisionTarget *string `type:"string" required:"true"`
19604}
19605
19606// String returns the string representation
19607func (s ModifyClusterDbRevisionInput) String() string {
19608	return awsutil.Prettify(s)
19609}
19610
19611// GoString returns the string representation
19612func (s ModifyClusterDbRevisionInput) GoString() string {
19613	return s.String()
19614}
19615
19616// Validate inspects the fields of the type to determine if they are valid.
19617func (s *ModifyClusterDbRevisionInput) Validate() error {
19618	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterDbRevisionInput"}
19619	if s.ClusterIdentifier == nil {
19620		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
19621	}
19622	if s.RevisionTarget == nil {
19623		invalidParams.Add(request.NewErrParamRequired("RevisionTarget"))
19624	}
19625
19626	if invalidParams.Len() > 0 {
19627		return invalidParams
19628	}
19629	return nil
19630}
19631
19632// SetClusterIdentifier sets the ClusterIdentifier field's value.
19633func (s *ModifyClusterDbRevisionInput) SetClusterIdentifier(v string) *ModifyClusterDbRevisionInput {
19634	s.ClusterIdentifier = &v
19635	return s
19636}
19637
19638// SetRevisionTarget sets the RevisionTarget field's value.
19639func (s *ModifyClusterDbRevisionInput) SetRevisionTarget(v string) *ModifyClusterDbRevisionInput {
19640	s.RevisionTarget = &v
19641	return s
19642}
19643
19644type ModifyClusterDbRevisionOutput struct {
19645	_ struct{} `type:"structure"`
19646
19647	// Describes a cluster.
19648	Cluster *Cluster `type:"structure"`
19649}
19650
19651// String returns the string representation
19652func (s ModifyClusterDbRevisionOutput) String() string {
19653	return awsutil.Prettify(s)
19654}
19655
19656// GoString returns the string representation
19657func (s ModifyClusterDbRevisionOutput) GoString() string {
19658	return s.String()
19659}
19660
19661// SetCluster sets the Cluster field's value.
19662func (s *ModifyClusterDbRevisionOutput) SetCluster(v *Cluster) *ModifyClusterDbRevisionOutput {
19663	s.Cluster = v
19664	return s
19665}
19666
19667type ModifyClusterIamRolesInput struct {
19668	_ struct{} `type:"structure"`
19669
19670	// Zero or more IAM roles to associate with the cluster. The roles must be in
19671	// their Amazon Resource Name (ARN) format. You can associate up to 10 IAM roles
19672	// with a single cluster in a single request.
19673	AddIamRoles []*string `locationNameList:"IamRoleArn" type:"list"`
19674
19675	// The unique identifier of the cluster for which you want to associate or disassociate
19676	// IAM roles.
19677	//
19678	// ClusterIdentifier is a required field
19679	ClusterIdentifier *string `type:"string" required:"true"`
19680
19681	// Zero or more IAM roles in ARN format to disassociate from the cluster. You
19682	// can disassociate up to 10 IAM roles from a single cluster in a single request.
19683	RemoveIamRoles []*string `locationNameList:"IamRoleArn" type:"list"`
19684}
19685
19686// String returns the string representation
19687func (s ModifyClusterIamRolesInput) String() string {
19688	return awsutil.Prettify(s)
19689}
19690
19691// GoString returns the string representation
19692func (s ModifyClusterIamRolesInput) GoString() string {
19693	return s.String()
19694}
19695
19696// Validate inspects the fields of the type to determine if they are valid.
19697func (s *ModifyClusterIamRolesInput) Validate() error {
19698	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterIamRolesInput"}
19699	if s.ClusterIdentifier == nil {
19700		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
19701	}
19702
19703	if invalidParams.Len() > 0 {
19704		return invalidParams
19705	}
19706	return nil
19707}
19708
19709// SetAddIamRoles sets the AddIamRoles field's value.
19710func (s *ModifyClusterIamRolesInput) SetAddIamRoles(v []*string) *ModifyClusterIamRolesInput {
19711	s.AddIamRoles = v
19712	return s
19713}
19714
19715// SetClusterIdentifier sets the ClusterIdentifier field's value.
19716func (s *ModifyClusterIamRolesInput) SetClusterIdentifier(v string) *ModifyClusterIamRolesInput {
19717	s.ClusterIdentifier = &v
19718	return s
19719}
19720
19721// SetRemoveIamRoles sets the RemoveIamRoles field's value.
19722func (s *ModifyClusterIamRolesInput) SetRemoveIamRoles(v []*string) *ModifyClusterIamRolesInput {
19723	s.RemoveIamRoles = v
19724	return s
19725}
19726
19727type ModifyClusterIamRolesOutput struct {
19728	_ struct{} `type:"structure"`
19729
19730	// Describes a cluster.
19731	Cluster *Cluster `type:"structure"`
19732}
19733
19734// String returns the string representation
19735func (s ModifyClusterIamRolesOutput) String() string {
19736	return awsutil.Prettify(s)
19737}
19738
19739// GoString returns the string representation
19740func (s ModifyClusterIamRolesOutput) GoString() string {
19741	return s.String()
19742}
19743
19744// SetCluster sets the Cluster field's value.
19745func (s *ModifyClusterIamRolesOutput) SetCluster(v *Cluster) *ModifyClusterIamRolesOutput {
19746	s.Cluster = v
19747	return s
19748}
19749
19750type ModifyClusterInput struct {
19751	_ struct{} `type:"structure"`
19752
19753	// If true, major version upgrades will be applied automatically to the cluster
19754	// during the maintenance window.
19755	//
19756	// Default: false
19757	AllowVersionUpgrade *bool `type:"boolean"`
19758
19759	// The number of days that automated snapshots are retained. If the value is
19760	// 0, automated snapshots are disabled. Even if automated snapshots are disabled,
19761	// you can still create manual snapshots when you want with CreateClusterSnapshot.
19762	//
19763	// If you decrease the automated snapshot retention period from its current
19764	// value, existing automated snapshots that fall outside of the new retention
19765	// period will be immediately deleted.
19766	//
19767	// Default: Uses existing setting.
19768	//
19769	// Constraints: Must be a value from 0 to 35.
19770	AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
19771
19772	// The unique identifier of the cluster to be modified.
19773	//
19774	// Example: examplecluster
19775	//
19776	// ClusterIdentifier is a required field
19777	ClusterIdentifier *string `type:"string" required:"true"`
19778
19779	// The name of the cluster parameter group to apply to this cluster. This change
19780	// is applied only after the cluster is rebooted. To reboot a cluster use RebootCluster.
19781	//
19782	// Default: Uses existing setting.
19783	//
19784	// Constraints: The cluster parameter group must be in the same parameter group
19785	// family that matches the cluster version.
19786	ClusterParameterGroupName *string `type:"string"`
19787
19788	// A list of cluster security groups to be authorized on this cluster. This
19789	// change is asynchronously applied as soon as possible.
19790	//
19791	// Security groups currently associated with the cluster, and not in the list
19792	// of groups to apply, will be revoked from the cluster.
19793	//
19794	// Constraints:
19795	//
19796	//    * Must be 1 to 255 alphanumeric characters or hyphens
19797	//
19798	//    * First character must be a letter
19799	//
19800	//    * Cannot end with a hyphen or contain two consecutive hyphens
19801	ClusterSecurityGroups []*string `locationNameList:"ClusterSecurityGroupName" type:"list"`
19802
19803	// The new cluster type.
19804	//
19805	// When you submit your cluster resize request, your existing cluster goes into
19806	// a read-only mode. After Amazon Redshift provisions a new cluster based on
19807	// your resize requirements, there will be outage for a period while the old
19808	// cluster is deleted and your connection is switched to the new cluster. You
19809	// can use DescribeResize to track the progress of the resize request.
19810	//
19811	// Valid Values: multi-node | single-node
19812	ClusterType *string `type:"string"`
19813
19814	// The new version number of the Amazon Redshift engine to upgrade to.
19815	//
19816	// For major version upgrades, if a non-default cluster parameter group is currently
19817	// in use, a new cluster parameter group in the cluster parameter group family
19818	// for the new version must be specified. The new cluster parameter group can
19819	// be the default for that cluster parameter group family. For more information
19820	// about parameters and parameter groups, go to Amazon Redshift Parameter Groups
19821	// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
19822	// in the Amazon Redshift Cluster Management Guide.
19823	//
19824	// Example: 1.0
19825	ClusterVersion *string `type:"string"`
19826
19827	// The Elastic IP (EIP) address for the cluster.
19828	//
19829	// Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible
19830	// through an Internet gateway. For more information about provisioning clusters
19831	// in EC2-VPC, go to Supported Platforms to Launch Your Cluster (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#cluster-platforms)
19832	// in the Amazon Redshift Cluster Management Guide.
19833	ElasticIp *string `type:"string"`
19834
19835	// Indicates whether the cluster is encrypted. If the value is encrypted (true)
19836	// and you provide a value for the KmsKeyId parameter, we encrypt the cluster
19837	// with the provided KmsKeyId. If you don't provide a KmsKeyId, we encrypt with
19838	// the default key. In the China region we use legacy encryption if you specify
19839	// that the cluster is encrypted.
19840	//
19841	// If the value is not encrypted (false), then the cluster is decrypted.
19842	Encrypted *bool `type:"boolean"`
19843
19844	// An option that specifies whether to create the cluster with enhanced VPC
19845	// routing enabled. To create a cluster that uses enhanced VPC routing, the
19846	// cluster must be in a VPC. For more information, see Enhanced VPC Routing
19847	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
19848	// in the Amazon Redshift Cluster Management Guide.
19849	//
19850	// If this option is true, enhanced VPC routing is enabled.
19851	//
19852	// Default: false
19853	EnhancedVpcRouting *bool `type:"boolean"`
19854
19855	// Specifies the name of the HSM client certificate the Amazon Redshift cluster
19856	// uses to retrieve the data encryption keys stored in an HSM.
19857	HsmClientCertificateIdentifier *string `type:"string"`
19858
19859	// Specifies the name of the HSM configuration that contains the information
19860	// the Amazon Redshift cluster can use to retrieve and store keys in an HSM.
19861	HsmConfigurationIdentifier *string `type:"string"`
19862
19863	// The AWS Key Management Service (KMS) key ID of the encryption key that you
19864	// want to use to encrypt data in the cluster.
19865	KmsKeyId *string `type:"string"`
19866
19867	// The name for the maintenance track that you want to assign for the cluster.
19868	// This name change is asynchronous. The new track name stays in the PendingModifiedValues
19869	// for the cluster until the next maintenance window. When the maintenance track
19870	// changes, the cluster is switched to the latest cluster release available
19871	// for the maintenance track. At this point, the maintenance track name is applied.
19872	MaintenanceTrackName *string `type:"string"`
19873
19874	// The default for number of days that a newly created manual snapshot is retained.
19875	// If the value is -1, the manual snapshot is retained indefinitely. This value
19876	// doesn't retroactively change the retention periods of existing manual snapshots.
19877	//
19878	// The value must be either -1 or an integer between 1 and 3,653.
19879	//
19880	// The default value is -1.
19881	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
19882
19883	// The new password for the cluster master user. This change is asynchronously
19884	// applied as soon as possible. Between the time of the request and the completion
19885	// of the request, the MasterUserPassword element exists in the PendingModifiedValues
19886	// element of the operation response.
19887	//
19888	// Operations never return the password, so this operation provides a way to
19889	// regain access to the master user account for a cluster if the password is
19890	// lost.
19891	//
19892	// Default: Uses existing setting.
19893	//
19894	// Constraints:
19895	//
19896	//    * Must be between 8 and 64 characters in length.
19897	//
19898	//    * Must contain at least one uppercase letter.
19899	//
19900	//    * Must contain at least one lowercase letter.
19901	//
19902	//    * Must contain one number.
19903	//
19904	//    * Can be any printable ASCII character (ASCII code 33 to 126) except '
19905	//    (single quote), " (double quote), \, /, @, or space.
19906	MasterUserPassword *string `type:"string"`
19907
19908	// The new identifier for the cluster.
19909	//
19910	// Constraints:
19911	//
19912	//    * Must contain from 1 to 63 alphanumeric characters or hyphens.
19913	//
19914	//    * Alphabetic characters must be lowercase.
19915	//
19916	//    * First character must be a letter.
19917	//
19918	//    * Cannot end with a hyphen or contain two consecutive hyphens.
19919	//
19920	//    * Must be unique for all clusters within an AWS account.
19921	//
19922	// Example: examplecluster
19923	NewClusterIdentifier *string `type:"string"`
19924
19925	// The new node type of the cluster. If you specify a new node type, you must
19926	// also specify the number of nodes parameter.
19927	//
19928	// For more information about resizing clusters, go to Resizing Clusters in
19929	// Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html)
19930	// in the Amazon Redshift Cluster Management Guide.
19931	//
19932	// Valid Values: ds2.xlarge | ds2.8xlarge | dc1.large | dc1.8xlarge | dc2.large
19933	// | dc2.8xlarge | ra3.4xlarge | ra3.16xlarge
19934	NodeType *string `type:"string"`
19935
19936	// The new number of nodes of the cluster. If you specify a new number of nodes,
19937	// you must also specify the node type parameter.
19938	//
19939	// For more information about resizing clusters, go to Resizing Clusters in
19940	// Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html)
19941	// in the Amazon Redshift Cluster Management Guide.
19942	//
19943	// Valid Values: Integer greater than 0.
19944	NumberOfNodes *int64 `type:"integer"`
19945
19946	// The weekly time range (in UTC) during which system maintenance can occur,
19947	// if necessary. If system maintenance is necessary during the window, it may
19948	// result in an outage.
19949	//
19950	// This maintenance window change is made immediately. If the new maintenance
19951	// window indicates the current time, there must be at least 120 minutes between
19952	// the current time and end of the window in order to ensure that pending changes
19953	// are applied.
19954	//
19955	// Default: Uses existing setting.
19956	//
19957	// Format: ddd:hh24:mi-ddd:hh24:mi, for example wed:07:30-wed:08:00.
19958	//
19959	// Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
19960	//
19961	// Constraints: Must be at least 30 minutes.
19962	PreferredMaintenanceWindow *string `type:"string"`
19963
19964	// If true, the cluster can be accessed from a public network. Only clusters
19965	// in VPCs can be set to be publicly available.
19966	PubliclyAccessible *bool `type:"boolean"`
19967
19968	// A list of virtual private cloud (VPC) security groups to be associated with
19969	// the cluster. This change is asynchronously applied as soon as possible.
19970	VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
19971}
19972
19973// String returns the string representation
19974func (s ModifyClusterInput) String() string {
19975	return awsutil.Prettify(s)
19976}
19977
19978// GoString returns the string representation
19979func (s ModifyClusterInput) GoString() string {
19980	return s.String()
19981}
19982
19983// Validate inspects the fields of the type to determine if they are valid.
19984func (s *ModifyClusterInput) Validate() error {
19985	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterInput"}
19986	if s.ClusterIdentifier == nil {
19987		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
19988	}
19989
19990	if invalidParams.Len() > 0 {
19991		return invalidParams
19992	}
19993	return nil
19994}
19995
19996// SetAllowVersionUpgrade sets the AllowVersionUpgrade field's value.
19997func (s *ModifyClusterInput) SetAllowVersionUpgrade(v bool) *ModifyClusterInput {
19998	s.AllowVersionUpgrade = &v
19999	return s
20000}
20001
20002// SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
20003func (s *ModifyClusterInput) SetAutomatedSnapshotRetentionPeriod(v int64) *ModifyClusterInput {
20004	s.AutomatedSnapshotRetentionPeriod = &v
20005	return s
20006}
20007
20008// SetClusterIdentifier sets the ClusterIdentifier field's value.
20009func (s *ModifyClusterInput) SetClusterIdentifier(v string) *ModifyClusterInput {
20010	s.ClusterIdentifier = &v
20011	return s
20012}
20013
20014// SetClusterParameterGroupName sets the ClusterParameterGroupName field's value.
20015func (s *ModifyClusterInput) SetClusterParameterGroupName(v string) *ModifyClusterInput {
20016	s.ClusterParameterGroupName = &v
20017	return s
20018}
20019
20020// SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
20021func (s *ModifyClusterInput) SetClusterSecurityGroups(v []*string) *ModifyClusterInput {
20022	s.ClusterSecurityGroups = v
20023	return s
20024}
20025
20026// SetClusterType sets the ClusterType field's value.
20027func (s *ModifyClusterInput) SetClusterType(v string) *ModifyClusterInput {
20028	s.ClusterType = &v
20029	return s
20030}
20031
20032// SetClusterVersion sets the ClusterVersion field's value.
20033func (s *ModifyClusterInput) SetClusterVersion(v string) *ModifyClusterInput {
20034	s.ClusterVersion = &v
20035	return s
20036}
20037
20038// SetElasticIp sets the ElasticIp field's value.
20039func (s *ModifyClusterInput) SetElasticIp(v string) *ModifyClusterInput {
20040	s.ElasticIp = &v
20041	return s
20042}
20043
20044// SetEncrypted sets the Encrypted field's value.
20045func (s *ModifyClusterInput) SetEncrypted(v bool) *ModifyClusterInput {
20046	s.Encrypted = &v
20047	return s
20048}
20049
20050// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
20051func (s *ModifyClusterInput) SetEnhancedVpcRouting(v bool) *ModifyClusterInput {
20052	s.EnhancedVpcRouting = &v
20053	return s
20054}
20055
20056// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
20057func (s *ModifyClusterInput) SetHsmClientCertificateIdentifier(v string) *ModifyClusterInput {
20058	s.HsmClientCertificateIdentifier = &v
20059	return s
20060}
20061
20062// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
20063func (s *ModifyClusterInput) SetHsmConfigurationIdentifier(v string) *ModifyClusterInput {
20064	s.HsmConfigurationIdentifier = &v
20065	return s
20066}
20067
20068// SetKmsKeyId sets the KmsKeyId field's value.
20069func (s *ModifyClusterInput) SetKmsKeyId(v string) *ModifyClusterInput {
20070	s.KmsKeyId = &v
20071	return s
20072}
20073
20074// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
20075func (s *ModifyClusterInput) SetMaintenanceTrackName(v string) *ModifyClusterInput {
20076	s.MaintenanceTrackName = &v
20077	return s
20078}
20079
20080// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
20081func (s *ModifyClusterInput) SetManualSnapshotRetentionPeriod(v int64) *ModifyClusterInput {
20082	s.ManualSnapshotRetentionPeriod = &v
20083	return s
20084}
20085
20086// SetMasterUserPassword sets the MasterUserPassword field's value.
20087func (s *ModifyClusterInput) SetMasterUserPassword(v string) *ModifyClusterInput {
20088	s.MasterUserPassword = &v
20089	return s
20090}
20091
20092// SetNewClusterIdentifier sets the NewClusterIdentifier field's value.
20093func (s *ModifyClusterInput) SetNewClusterIdentifier(v string) *ModifyClusterInput {
20094	s.NewClusterIdentifier = &v
20095	return s
20096}
20097
20098// SetNodeType sets the NodeType field's value.
20099func (s *ModifyClusterInput) SetNodeType(v string) *ModifyClusterInput {
20100	s.NodeType = &v
20101	return s
20102}
20103
20104// SetNumberOfNodes sets the NumberOfNodes field's value.
20105func (s *ModifyClusterInput) SetNumberOfNodes(v int64) *ModifyClusterInput {
20106	s.NumberOfNodes = &v
20107	return s
20108}
20109
20110// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
20111func (s *ModifyClusterInput) SetPreferredMaintenanceWindow(v string) *ModifyClusterInput {
20112	s.PreferredMaintenanceWindow = &v
20113	return s
20114}
20115
20116// SetPubliclyAccessible sets the PubliclyAccessible field's value.
20117func (s *ModifyClusterInput) SetPubliclyAccessible(v bool) *ModifyClusterInput {
20118	s.PubliclyAccessible = &v
20119	return s
20120}
20121
20122// SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
20123func (s *ModifyClusterInput) SetVpcSecurityGroupIds(v []*string) *ModifyClusterInput {
20124	s.VpcSecurityGroupIds = v
20125	return s
20126}
20127
20128type ModifyClusterMaintenanceInput struct {
20129	_ struct{} `type:"structure"`
20130
20131	// A unique identifier for the cluster.
20132	//
20133	// ClusterIdentifier is a required field
20134	ClusterIdentifier *string `type:"string" required:"true"`
20135
20136	// A boolean indicating whether to enable the deferred maintenance window.
20137	DeferMaintenance *bool `type:"boolean"`
20138
20139	// An integer indicating the duration of the maintenance window in days. If
20140	// you specify a duration, you can't specify an end time. The duration must
20141	// be 45 days or less.
20142	DeferMaintenanceDuration *int64 `type:"integer"`
20143
20144	// A timestamp indicating end time for the deferred maintenance window. If you
20145	// specify an end time, you can't specify a duration.
20146	DeferMaintenanceEndTime *time.Time `type:"timestamp"`
20147
20148	// A unique identifier for the deferred maintenance window.
20149	DeferMaintenanceIdentifier *string `type:"string"`
20150
20151	// A timestamp indicating the start time for the deferred maintenance window.
20152	DeferMaintenanceStartTime *time.Time `type:"timestamp"`
20153}
20154
20155// String returns the string representation
20156func (s ModifyClusterMaintenanceInput) String() string {
20157	return awsutil.Prettify(s)
20158}
20159
20160// GoString returns the string representation
20161func (s ModifyClusterMaintenanceInput) GoString() string {
20162	return s.String()
20163}
20164
20165// Validate inspects the fields of the type to determine if they are valid.
20166func (s *ModifyClusterMaintenanceInput) Validate() error {
20167	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterMaintenanceInput"}
20168	if s.ClusterIdentifier == nil {
20169		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
20170	}
20171
20172	if invalidParams.Len() > 0 {
20173		return invalidParams
20174	}
20175	return nil
20176}
20177
20178// SetClusterIdentifier sets the ClusterIdentifier field's value.
20179func (s *ModifyClusterMaintenanceInput) SetClusterIdentifier(v string) *ModifyClusterMaintenanceInput {
20180	s.ClusterIdentifier = &v
20181	return s
20182}
20183
20184// SetDeferMaintenance sets the DeferMaintenance field's value.
20185func (s *ModifyClusterMaintenanceInput) SetDeferMaintenance(v bool) *ModifyClusterMaintenanceInput {
20186	s.DeferMaintenance = &v
20187	return s
20188}
20189
20190// SetDeferMaintenanceDuration sets the DeferMaintenanceDuration field's value.
20191func (s *ModifyClusterMaintenanceInput) SetDeferMaintenanceDuration(v int64) *ModifyClusterMaintenanceInput {
20192	s.DeferMaintenanceDuration = &v
20193	return s
20194}
20195
20196// SetDeferMaintenanceEndTime sets the DeferMaintenanceEndTime field's value.
20197func (s *ModifyClusterMaintenanceInput) SetDeferMaintenanceEndTime(v time.Time) *ModifyClusterMaintenanceInput {
20198	s.DeferMaintenanceEndTime = &v
20199	return s
20200}
20201
20202// SetDeferMaintenanceIdentifier sets the DeferMaintenanceIdentifier field's value.
20203func (s *ModifyClusterMaintenanceInput) SetDeferMaintenanceIdentifier(v string) *ModifyClusterMaintenanceInput {
20204	s.DeferMaintenanceIdentifier = &v
20205	return s
20206}
20207
20208// SetDeferMaintenanceStartTime sets the DeferMaintenanceStartTime field's value.
20209func (s *ModifyClusterMaintenanceInput) SetDeferMaintenanceStartTime(v time.Time) *ModifyClusterMaintenanceInput {
20210	s.DeferMaintenanceStartTime = &v
20211	return s
20212}
20213
20214type ModifyClusterMaintenanceOutput struct {
20215	_ struct{} `type:"structure"`
20216
20217	// Describes a cluster.
20218	Cluster *Cluster `type:"structure"`
20219}
20220
20221// String returns the string representation
20222func (s ModifyClusterMaintenanceOutput) String() string {
20223	return awsutil.Prettify(s)
20224}
20225
20226// GoString returns the string representation
20227func (s ModifyClusterMaintenanceOutput) GoString() string {
20228	return s.String()
20229}
20230
20231// SetCluster sets the Cluster field's value.
20232func (s *ModifyClusterMaintenanceOutput) SetCluster(v *Cluster) *ModifyClusterMaintenanceOutput {
20233	s.Cluster = v
20234	return s
20235}
20236
20237type ModifyClusterOutput struct {
20238	_ struct{} `type:"structure"`
20239
20240	// Describes a cluster.
20241	Cluster *Cluster `type:"structure"`
20242}
20243
20244// String returns the string representation
20245func (s ModifyClusterOutput) String() string {
20246	return awsutil.Prettify(s)
20247}
20248
20249// GoString returns the string representation
20250func (s ModifyClusterOutput) GoString() string {
20251	return s.String()
20252}
20253
20254// SetCluster sets the Cluster field's value.
20255func (s *ModifyClusterOutput) SetCluster(v *Cluster) *ModifyClusterOutput {
20256	s.Cluster = v
20257	return s
20258}
20259
20260type ModifyClusterParameterGroupInput struct {
20261	_ struct{} `type:"structure"`
20262
20263	// The name of the parameter group to be modified.
20264	//
20265	// ParameterGroupName is a required field
20266	ParameterGroupName *string `type:"string" required:"true"`
20267
20268	// An array of parameters to be modified. A maximum of 20 parameters can be
20269	// modified in a single request.
20270	//
20271	// For each parameter to be modified, you must supply at least the parameter
20272	// name and parameter value; other name-value pairs of the parameter are optional.
20273	//
20274	// For the workload management (WLM) configuration, you must supply all the
20275	// name-value pairs in the wlm_json_configuration parameter.
20276	//
20277	// Parameters is a required field
20278	Parameters []*Parameter `locationNameList:"Parameter" type:"list" required:"true"`
20279}
20280
20281// String returns the string representation
20282func (s ModifyClusterParameterGroupInput) String() string {
20283	return awsutil.Prettify(s)
20284}
20285
20286// GoString returns the string representation
20287func (s ModifyClusterParameterGroupInput) GoString() string {
20288	return s.String()
20289}
20290
20291// Validate inspects the fields of the type to determine if they are valid.
20292func (s *ModifyClusterParameterGroupInput) Validate() error {
20293	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterParameterGroupInput"}
20294	if s.ParameterGroupName == nil {
20295		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
20296	}
20297	if s.Parameters == nil {
20298		invalidParams.Add(request.NewErrParamRequired("Parameters"))
20299	}
20300
20301	if invalidParams.Len() > 0 {
20302		return invalidParams
20303	}
20304	return nil
20305}
20306
20307// SetParameterGroupName sets the ParameterGroupName field's value.
20308func (s *ModifyClusterParameterGroupInput) SetParameterGroupName(v string) *ModifyClusterParameterGroupInput {
20309	s.ParameterGroupName = &v
20310	return s
20311}
20312
20313// SetParameters sets the Parameters field's value.
20314func (s *ModifyClusterParameterGroupInput) SetParameters(v []*Parameter) *ModifyClusterParameterGroupInput {
20315	s.Parameters = v
20316	return s
20317}
20318
20319type ModifyClusterSnapshotInput struct {
20320	_ struct{} `type:"structure"`
20321
20322	// A Boolean option to override an exception if the retention period has already
20323	// passed.
20324	Force *bool `type:"boolean"`
20325
20326	// The number of days that a manual snapshot is retained. If the value is -1,
20327	// the manual snapshot is retained indefinitely.
20328	//
20329	// If the manual snapshot falls outside of the new retention period, you can
20330	// specify the force option to immediately delete the snapshot.
20331	//
20332	// The value must be either -1 or an integer between 1 and 3,653.
20333	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
20334
20335	// The identifier of the snapshot whose setting you want to modify.
20336	//
20337	// SnapshotIdentifier is a required field
20338	SnapshotIdentifier *string `type:"string" required:"true"`
20339}
20340
20341// String returns the string representation
20342func (s ModifyClusterSnapshotInput) String() string {
20343	return awsutil.Prettify(s)
20344}
20345
20346// GoString returns the string representation
20347func (s ModifyClusterSnapshotInput) GoString() string {
20348	return s.String()
20349}
20350
20351// Validate inspects the fields of the type to determine if they are valid.
20352func (s *ModifyClusterSnapshotInput) Validate() error {
20353	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterSnapshotInput"}
20354	if s.SnapshotIdentifier == nil {
20355		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
20356	}
20357
20358	if invalidParams.Len() > 0 {
20359		return invalidParams
20360	}
20361	return nil
20362}
20363
20364// SetForce sets the Force field's value.
20365func (s *ModifyClusterSnapshotInput) SetForce(v bool) *ModifyClusterSnapshotInput {
20366	s.Force = &v
20367	return s
20368}
20369
20370// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
20371func (s *ModifyClusterSnapshotInput) SetManualSnapshotRetentionPeriod(v int64) *ModifyClusterSnapshotInput {
20372	s.ManualSnapshotRetentionPeriod = &v
20373	return s
20374}
20375
20376// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
20377func (s *ModifyClusterSnapshotInput) SetSnapshotIdentifier(v string) *ModifyClusterSnapshotInput {
20378	s.SnapshotIdentifier = &v
20379	return s
20380}
20381
20382type ModifyClusterSnapshotOutput struct {
20383	_ struct{} `type:"structure"`
20384
20385	// Describes a snapshot.
20386	Snapshot *Snapshot `type:"structure"`
20387}
20388
20389// String returns the string representation
20390func (s ModifyClusterSnapshotOutput) String() string {
20391	return awsutil.Prettify(s)
20392}
20393
20394// GoString returns the string representation
20395func (s ModifyClusterSnapshotOutput) GoString() string {
20396	return s.String()
20397}
20398
20399// SetSnapshot sets the Snapshot field's value.
20400func (s *ModifyClusterSnapshotOutput) SetSnapshot(v *Snapshot) *ModifyClusterSnapshotOutput {
20401	s.Snapshot = v
20402	return s
20403}
20404
20405type ModifyClusterSnapshotScheduleInput struct {
20406	_ struct{} `type:"structure"`
20407
20408	// A unique identifier for the cluster whose snapshot schedule you want to modify.
20409	//
20410	// ClusterIdentifier is a required field
20411	ClusterIdentifier *string `type:"string" required:"true"`
20412
20413	// A boolean to indicate whether to remove the assoiciation between the cluster
20414	// and the schedule.
20415	DisassociateSchedule *bool `type:"boolean"`
20416
20417	// A unique alphanumeric identifier for the schedule that you want to associate
20418	// with the cluster.
20419	ScheduleIdentifier *string `type:"string"`
20420}
20421
20422// String returns the string representation
20423func (s ModifyClusterSnapshotScheduleInput) String() string {
20424	return awsutil.Prettify(s)
20425}
20426
20427// GoString returns the string representation
20428func (s ModifyClusterSnapshotScheduleInput) GoString() string {
20429	return s.String()
20430}
20431
20432// Validate inspects the fields of the type to determine if they are valid.
20433func (s *ModifyClusterSnapshotScheduleInput) Validate() error {
20434	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterSnapshotScheduleInput"}
20435	if s.ClusterIdentifier == nil {
20436		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
20437	}
20438
20439	if invalidParams.Len() > 0 {
20440		return invalidParams
20441	}
20442	return nil
20443}
20444
20445// SetClusterIdentifier sets the ClusterIdentifier field's value.
20446func (s *ModifyClusterSnapshotScheduleInput) SetClusterIdentifier(v string) *ModifyClusterSnapshotScheduleInput {
20447	s.ClusterIdentifier = &v
20448	return s
20449}
20450
20451// SetDisassociateSchedule sets the DisassociateSchedule field's value.
20452func (s *ModifyClusterSnapshotScheduleInput) SetDisassociateSchedule(v bool) *ModifyClusterSnapshotScheduleInput {
20453	s.DisassociateSchedule = &v
20454	return s
20455}
20456
20457// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
20458func (s *ModifyClusterSnapshotScheduleInput) SetScheduleIdentifier(v string) *ModifyClusterSnapshotScheduleInput {
20459	s.ScheduleIdentifier = &v
20460	return s
20461}
20462
20463type ModifyClusterSnapshotScheduleOutput struct {
20464	_ struct{} `type:"structure"`
20465}
20466
20467// String returns the string representation
20468func (s ModifyClusterSnapshotScheduleOutput) String() string {
20469	return awsutil.Prettify(s)
20470}
20471
20472// GoString returns the string representation
20473func (s ModifyClusterSnapshotScheduleOutput) GoString() string {
20474	return s.String()
20475}
20476
20477type ModifyClusterSubnetGroupInput struct {
20478	_ struct{} `type:"structure"`
20479
20480	// The name of the subnet group to be modified.
20481	//
20482	// ClusterSubnetGroupName is a required field
20483	ClusterSubnetGroupName *string `type:"string" required:"true"`
20484
20485	// A text description of the subnet group to be modified.
20486	Description *string `type:"string"`
20487
20488	// An array of VPC subnet IDs. A maximum of 20 subnets can be modified in a
20489	// single request.
20490	//
20491	// SubnetIds is a required field
20492	SubnetIds []*string `locationNameList:"SubnetIdentifier" type:"list" required:"true"`
20493}
20494
20495// String returns the string representation
20496func (s ModifyClusterSubnetGroupInput) String() string {
20497	return awsutil.Prettify(s)
20498}
20499
20500// GoString returns the string representation
20501func (s ModifyClusterSubnetGroupInput) GoString() string {
20502	return s.String()
20503}
20504
20505// Validate inspects the fields of the type to determine if they are valid.
20506func (s *ModifyClusterSubnetGroupInput) Validate() error {
20507	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterSubnetGroupInput"}
20508	if s.ClusterSubnetGroupName == nil {
20509		invalidParams.Add(request.NewErrParamRequired("ClusterSubnetGroupName"))
20510	}
20511	if s.SubnetIds == nil {
20512		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
20513	}
20514
20515	if invalidParams.Len() > 0 {
20516		return invalidParams
20517	}
20518	return nil
20519}
20520
20521// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
20522func (s *ModifyClusterSubnetGroupInput) SetClusterSubnetGroupName(v string) *ModifyClusterSubnetGroupInput {
20523	s.ClusterSubnetGroupName = &v
20524	return s
20525}
20526
20527// SetDescription sets the Description field's value.
20528func (s *ModifyClusterSubnetGroupInput) SetDescription(v string) *ModifyClusterSubnetGroupInput {
20529	s.Description = &v
20530	return s
20531}
20532
20533// SetSubnetIds sets the SubnetIds field's value.
20534func (s *ModifyClusterSubnetGroupInput) SetSubnetIds(v []*string) *ModifyClusterSubnetGroupInput {
20535	s.SubnetIds = v
20536	return s
20537}
20538
20539type ModifyClusterSubnetGroupOutput struct {
20540	_ struct{} `type:"structure"`
20541
20542	// Describes a subnet group.
20543	ClusterSubnetGroup *ClusterSubnetGroup `type:"structure"`
20544}
20545
20546// String returns the string representation
20547func (s ModifyClusterSubnetGroupOutput) String() string {
20548	return awsutil.Prettify(s)
20549}
20550
20551// GoString returns the string representation
20552func (s ModifyClusterSubnetGroupOutput) GoString() string {
20553	return s.String()
20554}
20555
20556// SetClusterSubnetGroup sets the ClusterSubnetGroup field's value.
20557func (s *ModifyClusterSubnetGroupOutput) SetClusterSubnetGroup(v *ClusterSubnetGroup) *ModifyClusterSubnetGroupOutput {
20558	s.ClusterSubnetGroup = v
20559	return s
20560}
20561
20562type ModifyEventSubscriptionInput struct {
20563	_ struct{} `type:"structure"`
20564
20565	// A Boolean value indicating if the subscription is enabled. true indicates
20566	// the subscription is enabled
20567	Enabled *bool `type:"boolean"`
20568
20569	// Specifies the Amazon Redshift event categories to be published by the event
20570	// notification subscription.
20571	//
20572	// Values: configuration, management, monitoring, security
20573	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
20574
20575	// Specifies the Amazon Redshift event severity to be published by the event
20576	// notification subscription.
20577	//
20578	// Values: ERROR, INFO
20579	Severity *string `type:"string"`
20580
20581	// The Amazon Resource Name (ARN) of the SNS topic to be used by the event notification
20582	// subscription.
20583	SnsTopicArn *string `type:"string"`
20584
20585	// A list of one or more identifiers of Amazon Redshift source objects. All
20586	// of the objects must be of the same type as was specified in the source type
20587	// parameter. The event subscription will return only events generated by the
20588	// specified objects. If not specified, then events are returned for all objects
20589	// within the source type specified.
20590	//
20591	// Example: my-cluster-1, my-cluster-2
20592	//
20593	// Example: my-snapshot-20131010
20594	SourceIds []*string `locationNameList:"SourceId" type:"list"`
20595
20596	// The type of source that will be generating the events. For example, if you
20597	// want to be notified of events generated by a cluster, you would set this
20598	// parameter to cluster. If this value is not specified, events are returned
20599	// for all Amazon Redshift objects in your AWS account. You must specify a source
20600	// type in order to specify source IDs.
20601	//
20602	// Valid values: cluster, cluster-parameter-group, cluster-security-group, cluster-snapshot,
20603	// and scheduled-action.
20604	SourceType *string `type:"string"`
20605
20606	// The name of the modified Amazon Redshift event notification subscription.
20607	//
20608	// SubscriptionName is a required field
20609	SubscriptionName *string `type:"string" required:"true"`
20610}
20611
20612// String returns the string representation
20613func (s ModifyEventSubscriptionInput) String() string {
20614	return awsutil.Prettify(s)
20615}
20616
20617// GoString returns the string representation
20618func (s ModifyEventSubscriptionInput) GoString() string {
20619	return s.String()
20620}
20621
20622// Validate inspects the fields of the type to determine if they are valid.
20623func (s *ModifyEventSubscriptionInput) Validate() error {
20624	invalidParams := request.ErrInvalidParams{Context: "ModifyEventSubscriptionInput"}
20625	if s.SubscriptionName == nil {
20626		invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
20627	}
20628
20629	if invalidParams.Len() > 0 {
20630		return invalidParams
20631	}
20632	return nil
20633}
20634
20635// SetEnabled sets the Enabled field's value.
20636func (s *ModifyEventSubscriptionInput) SetEnabled(v bool) *ModifyEventSubscriptionInput {
20637	s.Enabled = &v
20638	return s
20639}
20640
20641// SetEventCategories sets the EventCategories field's value.
20642func (s *ModifyEventSubscriptionInput) SetEventCategories(v []*string) *ModifyEventSubscriptionInput {
20643	s.EventCategories = v
20644	return s
20645}
20646
20647// SetSeverity sets the Severity field's value.
20648func (s *ModifyEventSubscriptionInput) SetSeverity(v string) *ModifyEventSubscriptionInput {
20649	s.Severity = &v
20650	return s
20651}
20652
20653// SetSnsTopicArn sets the SnsTopicArn field's value.
20654func (s *ModifyEventSubscriptionInput) SetSnsTopicArn(v string) *ModifyEventSubscriptionInput {
20655	s.SnsTopicArn = &v
20656	return s
20657}
20658
20659// SetSourceIds sets the SourceIds field's value.
20660func (s *ModifyEventSubscriptionInput) SetSourceIds(v []*string) *ModifyEventSubscriptionInput {
20661	s.SourceIds = v
20662	return s
20663}
20664
20665// SetSourceType sets the SourceType field's value.
20666func (s *ModifyEventSubscriptionInput) SetSourceType(v string) *ModifyEventSubscriptionInput {
20667	s.SourceType = &v
20668	return s
20669}
20670
20671// SetSubscriptionName sets the SubscriptionName field's value.
20672func (s *ModifyEventSubscriptionInput) SetSubscriptionName(v string) *ModifyEventSubscriptionInput {
20673	s.SubscriptionName = &v
20674	return s
20675}
20676
20677type ModifyEventSubscriptionOutput struct {
20678	_ struct{} `type:"structure"`
20679
20680	// Describes event subscriptions.
20681	EventSubscription *EventSubscription `type:"structure"`
20682}
20683
20684// String returns the string representation
20685func (s ModifyEventSubscriptionOutput) String() string {
20686	return awsutil.Prettify(s)
20687}
20688
20689// GoString returns the string representation
20690func (s ModifyEventSubscriptionOutput) GoString() string {
20691	return s.String()
20692}
20693
20694// SetEventSubscription sets the EventSubscription field's value.
20695func (s *ModifyEventSubscriptionOutput) SetEventSubscription(v *EventSubscription) *ModifyEventSubscriptionOutput {
20696	s.EventSubscription = v
20697	return s
20698}
20699
20700type ModifyScheduledActionInput struct {
20701	_ struct{} `type:"structure"`
20702
20703	// A modified enable flag of the scheduled action. If true, the scheduled action
20704	// is active. If false, the scheduled action is disabled.
20705	Enable *bool `type:"boolean"`
20706
20707	// A modified end time of the scheduled action. For more information about this
20708	// parameter, see ScheduledAction.
20709	EndTime *time.Time `type:"timestamp"`
20710
20711	// A different IAM role to assume to run the target action. For more information
20712	// about this parameter, see ScheduledAction.
20713	IamRole *string `type:"string"`
20714
20715	// A modified schedule in either at( ) or cron( ) format. For more information
20716	// about this parameter, see ScheduledAction.
20717	Schedule *string `type:"string"`
20718
20719	// A modified description of the scheduled action.
20720	ScheduledActionDescription *string `type:"string"`
20721
20722	// The name of the scheduled action to modify.
20723	//
20724	// ScheduledActionName is a required field
20725	ScheduledActionName *string `type:"string" required:"true"`
20726
20727	// A modified start time of the scheduled action. For more information about
20728	// this parameter, see ScheduledAction.
20729	StartTime *time.Time `type:"timestamp"`
20730
20731	// A modified JSON format of the scheduled action. For more information about
20732	// this parameter, see ScheduledAction.
20733	TargetAction *ScheduledActionType `type:"structure"`
20734}
20735
20736// String returns the string representation
20737func (s ModifyScheduledActionInput) String() string {
20738	return awsutil.Prettify(s)
20739}
20740
20741// GoString returns the string representation
20742func (s ModifyScheduledActionInput) GoString() string {
20743	return s.String()
20744}
20745
20746// Validate inspects the fields of the type to determine if they are valid.
20747func (s *ModifyScheduledActionInput) Validate() error {
20748	invalidParams := request.ErrInvalidParams{Context: "ModifyScheduledActionInput"}
20749	if s.ScheduledActionName == nil {
20750		invalidParams.Add(request.NewErrParamRequired("ScheduledActionName"))
20751	}
20752	if s.TargetAction != nil {
20753		if err := s.TargetAction.Validate(); err != nil {
20754			invalidParams.AddNested("TargetAction", err.(request.ErrInvalidParams))
20755		}
20756	}
20757
20758	if invalidParams.Len() > 0 {
20759		return invalidParams
20760	}
20761	return nil
20762}
20763
20764// SetEnable sets the Enable field's value.
20765func (s *ModifyScheduledActionInput) SetEnable(v bool) *ModifyScheduledActionInput {
20766	s.Enable = &v
20767	return s
20768}
20769
20770// SetEndTime sets the EndTime field's value.
20771func (s *ModifyScheduledActionInput) SetEndTime(v time.Time) *ModifyScheduledActionInput {
20772	s.EndTime = &v
20773	return s
20774}
20775
20776// SetIamRole sets the IamRole field's value.
20777func (s *ModifyScheduledActionInput) SetIamRole(v string) *ModifyScheduledActionInput {
20778	s.IamRole = &v
20779	return s
20780}
20781
20782// SetSchedule sets the Schedule field's value.
20783func (s *ModifyScheduledActionInput) SetSchedule(v string) *ModifyScheduledActionInput {
20784	s.Schedule = &v
20785	return s
20786}
20787
20788// SetScheduledActionDescription sets the ScheduledActionDescription field's value.
20789func (s *ModifyScheduledActionInput) SetScheduledActionDescription(v string) *ModifyScheduledActionInput {
20790	s.ScheduledActionDescription = &v
20791	return s
20792}
20793
20794// SetScheduledActionName sets the ScheduledActionName field's value.
20795func (s *ModifyScheduledActionInput) SetScheduledActionName(v string) *ModifyScheduledActionInput {
20796	s.ScheduledActionName = &v
20797	return s
20798}
20799
20800// SetStartTime sets the StartTime field's value.
20801func (s *ModifyScheduledActionInput) SetStartTime(v time.Time) *ModifyScheduledActionInput {
20802	s.StartTime = &v
20803	return s
20804}
20805
20806// SetTargetAction sets the TargetAction field's value.
20807func (s *ModifyScheduledActionInput) SetTargetAction(v *ScheduledActionType) *ModifyScheduledActionInput {
20808	s.TargetAction = v
20809	return s
20810}
20811
20812// Describes a scheduled action. You can use a scheduled action to trigger some
20813// Amazon Redshift API operations on a schedule. For information about which
20814// API operations can be scheduled, see ScheduledActionType.
20815type ModifyScheduledActionOutput struct {
20816	_ struct{} `type:"structure"`
20817
20818	// The end time in UTC when the schedule is no longer active. After this time,
20819	// the scheduled action does not trigger.
20820	EndTime *time.Time `type:"timestamp"`
20821
20822	// The IAM role to assume to run the scheduled action. This IAM role must have
20823	// permission to run the Amazon Redshift API operation in the scheduled action.
20824	// This IAM role must allow the Amazon Redshift scheduler (Principal scheduler.redshift.amazonaws.com)
20825	// to assume permissions on your behalf. For more information about the IAM
20826	// role to use with the Amazon Redshift scheduler, see Using Identity-Based
20827	// Policies for Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html)
20828	// in the Amazon Redshift Cluster Management Guide.
20829	IamRole *string `type:"string"`
20830
20831	// List of times when the scheduled action will run.
20832	NextInvocations []*time.Time `locationNameList:"ScheduledActionTime" type:"list"`
20833
20834	// The schedule for a one-time (at format) or recurring (cron format) scheduled
20835	// action. Schedule invocations must be separated by at least one hour.
20836	//
20837	// Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)".
20838	//
20839	// Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week
20840	// Year)". For example, "cron(0 10 ? * MON *)". For more information, see Cron
20841	// Expressions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions)
20842	// in the Amazon CloudWatch Events User Guide.
20843	Schedule *string `type:"string"`
20844
20845	// The description of the scheduled action.
20846	ScheduledActionDescription *string `type:"string"`
20847
20848	// The name of the scheduled action.
20849	ScheduledActionName *string `type:"string"`
20850
20851	// The start time in UTC when the schedule is active. Before this time, the
20852	// scheduled action does not trigger.
20853	StartTime *time.Time `type:"timestamp"`
20854
20855	// The state of the scheduled action. For example, DISABLED.
20856	State *string `type:"string" enum:"ScheduledActionState"`
20857
20858	// A JSON format string of the Amazon Redshift API operation with input parameters.
20859	//
20860	// "{\"ResizeCluster\":{\"NodeType\":\"ds2.8xlarge\",\"ClusterIdentifier\":\"my-test-cluster\",\"NumberOfNodes\":3}}".
20861	TargetAction *ScheduledActionType `type:"structure"`
20862}
20863
20864// String returns the string representation
20865func (s ModifyScheduledActionOutput) String() string {
20866	return awsutil.Prettify(s)
20867}
20868
20869// GoString returns the string representation
20870func (s ModifyScheduledActionOutput) GoString() string {
20871	return s.String()
20872}
20873
20874// SetEndTime sets the EndTime field's value.
20875func (s *ModifyScheduledActionOutput) SetEndTime(v time.Time) *ModifyScheduledActionOutput {
20876	s.EndTime = &v
20877	return s
20878}
20879
20880// SetIamRole sets the IamRole field's value.
20881func (s *ModifyScheduledActionOutput) SetIamRole(v string) *ModifyScheduledActionOutput {
20882	s.IamRole = &v
20883	return s
20884}
20885
20886// SetNextInvocations sets the NextInvocations field's value.
20887func (s *ModifyScheduledActionOutput) SetNextInvocations(v []*time.Time) *ModifyScheduledActionOutput {
20888	s.NextInvocations = v
20889	return s
20890}
20891
20892// SetSchedule sets the Schedule field's value.
20893func (s *ModifyScheduledActionOutput) SetSchedule(v string) *ModifyScheduledActionOutput {
20894	s.Schedule = &v
20895	return s
20896}
20897
20898// SetScheduledActionDescription sets the ScheduledActionDescription field's value.
20899func (s *ModifyScheduledActionOutput) SetScheduledActionDescription(v string) *ModifyScheduledActionOutput {
20900	s.ScheduledActionDescription = &v
20901	return s
20902}
20903
20904// SetScheduledActionName sets the ScheduledActionName field's value.
20905func (s *ModifyScheduledActionOutput) SetScheduledActionName(v string) *ModifyScheduledActionOutput {
20906	s.ScheduledActionName = &v
20907	return s
20908}
20909
20910// SetStartTime sets the StartTime field's value.
20911func (s *ModifyScheduledActionOutput) SetStartTime(v time.Time) *ModifyScheduledActionOutput {
20912	s.StartTime = &v
20913	return s
20914}
20915
20916// SetState sets the State field's value.
20917func (s *ModifyScheduledActionOutput) SetState(v string) *ModifyScheduledActionOutput {
20918	s.State = &v
20919	return s
20920}
20921
20922// SetTargetAction sets the TargetAction field's value.
20923func (s *ModifyScheduledActionOutput) SetTargetAction(v *ScheduledActionType) *ModifyScheduledActionOutput {
20924	s.TargetAction = v
20925	return s
20926}
20927
20928type ModifySnapshotCopyRetentionPeriodInput struct {
20929	_ struct{} `type:"structure"`
20930
20931	// The unique identifier of the cluster for which you want to change the retention
20932	// period for either automated or manual snapshots that are copied to a destination
20933	// AWS Region.
20934	//
20935	// Constraints: Must be the valid name of an existing cluster that has cross-region
20936	// snapshot copy enabled.
20937	//
20938	// ClusterIdentifier is a required field
20939	ClusterIdentifier *string `type:"string" required:"true"`
20940
20941	// Indicates whether to apply the snapshot retention period to newly copied
20942	// manual snapshots instead of automated snapshots.
20943	Manual *bool `type:"boolean"`
20944
20945	// The number of days to retain automated snapshots in the destination AWS Region
20946	// after they are copied from the source AWS Region.
20947	//
20948	// By default, this only changes the retention period of copied automated snapshots.
20949	//
20950	// If you decrease the retention period for automated snapshots that are copied
20951	// to a destination AWS Region, Amazon Redshift deletes any existing automated
20952	// snapshots that were copied to the destination AWS Region and that fall outside
20953	// of the new retention period.
20954	//
20955	// Constraints: Must be at least 1 and no more than 35 for automated snapshots.
20956	//
20957	// If you specify the manual option, only newly copied manual snapshots will
20958	// have the new retention period.
20959	//
20960	// If you specify the value of -1 newly copied manual snapshots are retained
20961	// indefinitely.
20962	//
20963	// Constraints: The number of days must be either -1 or an integer between 1
20964	// and 3,653 for manual snapshots.
20965	//
20966	// RetentionPeriod is a required field
20967	RetentionPeriod *int64 `type:"integer" required:"true"`
20968}
20969
20970// String returns the string representation
20971func (s ModifySnapshotCopyRetentionPeriodInput) String() string {
20972	return awsutil.Prettify(s)
20973}
20974
20975// GoString returns the string representation
20976func (s ModifySnapshotCopyRetentionPeriodInput) GoString() string {
20977	return s.String()
20978}
20979
20980// Validate inspects the fields of the type to determine if they are valid.
20981func (s *ModifySnapshotCopyRetentionPeriodInput) Validate() error {
20982	invalidParams := request.ErrInvalidParams{Context: "ModifySnapshotCopyRetentionPeriodInput"}
20983	if s.ClusterIdentifier == nil {
20984		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
20985	}
20986	if s.RetentionPeriod == nil {
20987		invalidParams.Add(request.NewErrParamRequired("RetentionPeriod"))
20988	}
20989
20990	if invalidParams.Len() > 0 {
20991		return invalidParams
20992	}
20993	return nil
20994}
20995
20996// SetClusterIdentifier sets the ClusterIdentifier field's value.
20997func (s *ModifySnapshotCopyRetentionPeriodInput) SetClusterIdentifier(v string) *ModifySnapshotCopyRetentionPeriodInput {
20998	s.ClusterIdentifier = &v
20999	return s
21000}
21001
21002// SetManual sets the Manual field's value.
21003func (s *ModifySnapshotCopyRetentionPeriodInput) SetManual(v bool) *ModifySnapshotCopyRetentionPeriodInput {
21004	s.Manual = &v
21005	return s
21006}
21007
21008// SetRetentionPeriod sets the RetentionPeriod field's value.
21009func (s *ModifySnapshotCopyRetentionPeriodInput) SetRetentionPeriod(v int64) *ModifySnapshotCopyRetentionPeriodInput {
21010	s.RetentionPeriod = &v
21011	return s
21012}
21013
21014type ModifySnapshotCopyRetentionPeriodOutput struct {
21015	_ struct{} `type:"structure"`
21016
21017	// Describes a cluster.
21018	Cluster *Cluster `type:"structure"`
21019}
21020
21021// String returns the string representation
21022func (s ModifySnapshotCopyRetentionPeriodOutput) String() string {
21023	return awsutil.Prettify(s)
21024}
21025
21026// GoString returns the string representation
21027func (s ModifySnapshotCopyRetentionPeriodOutput) GoString() string {
21028	return s.String()
21029}
21030
21031// SetCluster sets the Cluster field's value.
21032func (s *ModifySnapshotCopyRetentionPeriodOutput) SetCluster(v *Cluster) *ModifySnapshotCopyRetentionPeriodOutput {
21033	s.Cluster = v
21034	return s
21035}
21036
21037type ModifySnapshotScheduleInput struct {
21038	_ struct{} `type:"structure"`
21039
21040	// An updated list of schedule definitions. A schedule definition is made up
21041	// of schedule expressions, for example, "cron(30 12 *)" or "rate(12 hours)".
21042	//
21043	// ScheduleDefinitions is a required field
21044	ScheduleDefinitions []*string `locationNameList:"ScheduleDefinition" type:"list" required:"true"`
21045
21046	// A unique alphanumeric identifier of the schedule to modify.
21047	//
21048	// ScheduleIdentifier is a required field
21049	ScheduleIdentifier *string `type:"string" required:"true"`
21050}
21051
21052// String returns the string representation
21053func (s ModifySnapshotScheduleInput) String() string {
21054	return awsutil.Prettify(s)
21055}
21056
21057// GoString returns the string representation
21058func (s ModifySnapshotScheduleInput) GoString() string {
21059	return s.String()
21060}
21061
21062// Validate inspects the fields of the type to determine if they are valid.
21063func (s *ModifySnapshotScheduleInput) Validate() error {
21064	invalidParams := request.ErrInvalidParams{Context: "ModifySnapshotScheduleInput"}
21065	if s.ScheduleDefinitions == nil {
21066		invalidParams.Add(request.NewErrParamRequired("ScheduleDefinitions"))
21067	}
21068	if s.ScheduleIdentifier == nil {
21069		invalidParams.Add(request.NewErrParamRequired("ScheduleIdentifier"))
21070	}
21071
21072	if invalidParams.Len() > 0 {
21073		return invalidParams
21074	}
21075	return nil
21076}
21077
21078// SetScheduleDefinitions sets the ScheduleDefinitions field's value.
21079func (s *ModifySnapshotScheduleInput) SetScheduleDefinitions(v []*string) *ModifySnapshotScheduleInput {
21080	s.ScheduleDefinitions = v
21081	return s
21082}
21083
21084// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
21085func (s *ModifySnapshotScheduleInput) SetScheduleIdentifier(v string) *ModifySnapshotScheduleInput {
21086	s.ScheduleIdentifier = &v
21087	return s
21088}
21089
21090// Describes a snapshot schedule. You can set a regular interval for creating
21091// snapshots of a cluster. You can also schedule snapshots for specific dates.
21092type ModifySnapshotScheduleOutput struct {
21093	_ struct{} `type:"structure"`
21094
21095	// The number of clusters associated with the schedule.
21096	AssociatedClusterCount *int64 `type:"integer"`
21097
21098	// A list of clusters associated with the schedule. A maximum of 100 clusters
21099	// is returned.
21100	AssociatedClusters []*ClusterAssociatedToSchedule `locationNameList:"ClusterAssociatedToSchedule" type:"list"`
21101
21102	NextInvocations []*time.Time `locationNameList:"SnapshotTime" type:"list"`
21103
21104	// A list of ScheduleDefinitions.
21105	ScheduleDefinitions []*string `locationNameList:"ScheduleDefinition" type:"list"`
21106
21107	// The description of the schedule.
21108	ScheduleDescription *string `type:"string"`
21109
21110	// A unique identifier for the schedule.
21111	ScheduleIdentifier *string `type:"string"`
21112
21113	// An optional set of tags describing the schedule.
21114	Tags []*Tag `locationNameList:"Tag" type:"list"`
21115}
21116
21117// String returns the string representation
21118func (s ModifySnapshotScheduleOutput) String() string {
21119	return awsutil.Prettify(s)
21120}
21121
21122// GoString returns the string representation
21123func (s ModifySnapshotScheduleOutput) GoString() string {
21124	return s.String()
21125}
21126
21127// SetAssociatedClusterCount sets the AssociatedClusterCount field's value.
21128func (s *ModifySnapshotScheduleOutput) SetAssociatedClusterCount(v int64) *ModifySnapshotScheduleOutput {
21129	s.AssociatedClusterCount = &v
21130	return s
21131}
21132
21133// SetAssociatedClusters sets the AssociatedClusters field's value.
21134func (s *ModifySnapshotScheduleOutput) SetAssociatedClusters(v []*ClusterAssociatedToSchedule) *ModifySnapshotScheduleOutput {
21135	s.AssociatedClusters = v
21136	return s
21137}
21138
21139// SetNextInvocations sets the NextInvocations field's value.
21140func (s *ModifySnapshotScheduleOutput) SetNextInvocations(v []*time.Time) *ModifySnapshotScheduleOutput {
21141	s.NextInvocations = v
21142	return s
21143}
21144
21145// SetScheduleDefinitions sets the ScheduleDefinitions field's value.
21146func (s *ModifySnapshotScheduleOutput) SetScheduleDefinitions(v []*string) *ModifySnapshotScheduleOutput {
21147	s.ScheduleDefinitions = v
21148	return s
21149}
21150
21151// SetScheduleDescription sets the ScheduleDescription field's value.
21152func (s *ModifySnapshotScheduleOutput) SetScheduleDescription(v string) *ModifySnapshotScheduleOutput {
21153	s.ScheduleDescription = &v
21154	return s
21155}
21156
21157// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
21158func (s *ModifySnapshotScheduleOutput) SetScheduleIdentifier(v string) *ModifySnapshotScheduleOutput {
21159	s.ScheduleIdentifier = &v
21160	return s
21161}
21162
21163// SetTags sets the Tags field's value.
21164func (s *ModifySnapshotScheduleOutput) SetTags(v []*Tag) *ModifySnapshotScheduleOutput {
21165	s.Tags = v
21166	return s
21167}
21168
21169type ModifyUsageLimitInput struct {
21170	_ struct{} `type:"structure"`
21171
21172	// The new limit amount. For more information about this parameter, see UsageLimit.
21173	Amount *int64 `type:"long"`
21174
21175	// The new action that Amazon Redshift takes when the limit is reached. For
21176	// more information about this parameter, see UsageLimit.
21177	BreachAction *string `type:"string" enum:"UsageLimitBreachAction"`
21178
21179	// The identifier of the usage limit to modify.
21180	//
21181	// UsageLimitId is a required field
21182	UsageLimitId *string `type:"string" required:"true"`
21183}
21184
21185// String returns the string representation
21186func (s ModifyUsageLimitInput) String() string {
21187	return awsutil.Prettify(s)
21188}
21189
21190// GoString returns the string representation
21191func (s ModifyUsageLimitInput) GoString() string {
21192	return s.String()
21193}
21194
21195// Validate inspects the fields of the type to determine if they are valid.
21196func (s *ModifyUsageLimitInput) Validate() error {
21197	invalidParams := request.ErrInvalidParams{Context: "ModifyUsageLimitInput"}
21198	if s.UsageLimitId == nil {
21199		invalidParams.Add(request.NewErrParamRequired("UsageLimitId"))
21200	}
21201
21202	if invalidParams.Len() > 0 {
21203		return invalidParams
21204	}
21205	return nil
21206}
21207
21208// SetAmount sets the Amount field's value.
21209func (s *ModifyUsageLimitInput) SetAmount(v int64) *ModifyUsageLimitInput {
21210	s.Amount = &v
21211	return s
21212}
21213
21214// SetBreachAction sets the BreachAction field's value.
21215func (s *ModifyUsageLimitInput) SetBreachAction(v string) *ModifyUsageLimitInput {
21216	s.BreachAction = &v
21217	return s
21218}
21219
21220// SetUsageLimitId sets the UsageLimitId field's value.
21221func (s *ModifyUsageLimitInput) SetUsageLimitId(v string) *ModifyUsageLimitInput {
21222	s.UsageLimitId = &v
21223	return s
21224}
21225
21226// Describes a usage limit object for a cluster.
21227type ModifyUsageLimitOutput struct {
21228	_ struct{} `type:"structure"`
21229
21230	// The limit amount. If time-based, this amount is in minutes. If data-based,
21231	// this amount is in terabytes (TB).
21232	Amount *int64 `type:"long"`
21233
21234	// The action that Amazon Redshift takes when the limit is reached. Possible
21235	// values are:
21236	//
21237	//    * log - To log an event in a system table. The default is log.
21238	//
21239	//    * emit-metric - To emit CloudWatch metrics.
21240	//
21241	//    * disable - To disable the feature until the next usage period begins.
21242	BreachAction *string `type:"string" enum:"UsageLimitBreachAction"`
21243
21244	// The identifier of the cluster with a usage limit.
21245	ClusterIdentifier *string `type:"string"`
21246
21247	// The Amazon Redshift feature to which the limit applies.
21248	FeatureType *string `type:"string" enum:"UsageLimitFeatureType"`
21249
21250	// The type of limit. Depending on the feature type, this can be based on a
21251	// time duration or data size.
21252	LimitType *string `type:"string" enum:"UsageLimitLimitType"`
21253
21254	// The time period that the amount applies to. A weekly period begins on Sunday.
21255	// The default is monthly.
21256	Period *string `type:"string" enum:"UsageLimitPeriod"`
21257
21258	// A list of tag instances.
21259	Tags []*Tag `locationNameList:"Tag" type:"list"`
21260
21261	// The identifier of the usage limit.
21262	UsageLimitId *string `type:"string"`
21263}
21264
21265// String returns the string representation
21266func (s ModifyUsageLimitOutput) String() string {
21267	return awsutil.Prettify(s)
21268}
21269
21270// GoString returns the string representation
21271func (s ModifyUsageLimitOutput) GoString() string {
21272	return s.String()
21273}
21274
21275// SetAmount sets the Amount field's value.
21276func (s *ModifyUsageLimitOutput) SetAmount(v int64) *ModifyUsageLimitOutput {
21277	s.Amount = &v
21278	return s
21279}
21280
21281// SetBreachAction sets the BreachAction field's value.
21282func (s *ModifyUsageLimitOutput) SetBreachAction(v string) *ModifyUsageLimitOutput {
21283	s.BreachAction = &v
21284	return s
21285}
21286
21287// SetClusterIdentifier sets the ClusterIdentifier field's value.
21288func (s *ModifyUsageLimitOutput) SetClusterIdentifier(v string) *ModifyUsageLimitOutput {
21289	s.ClusterIdentifier = &v
21290	return s
21291}
21292
21293// SetFeatureType sets the FeatureType field's value.
21294func (s *ModifyUsageLimitOutput) SetFeatureType(v string) *ModifyUsageLimitOutput {
21295	s.FeatureType = &v
21296	return s
21297}
21298
21299// SetLimitType sets the LimitType field's value.
21300func (s *ModifyUsageLimitOutput) SetLimitType(v string) *ModifyUsageLimitOutput {
21301	s.LimitType = &v
21302	return s
21303}
21304
21305// SetPeriod sets the Period field's value.
21306func (s *ModifyUsageLimitOutput) SetPeriod(v string) *ModifyUsageLimitOutput {
21307	s.Period = &v
21308	return s
21309}
21310
21311// SetTags sets the Tags field's value.
21312func (s *ModifyUsageLimitOutput) SetTags(v []*Tag) *ModifyUsageLimitOutput {
21313	s.Tags = v
21314	return s
21315}
21316
21317// SetUsageLimitId sets the UsageLimitId field's value.
21318func (s *ModifyUsageLimitOutput) SetUsageLimitId(v string) *ModifyUsageLimitOutput {
21319	s.UsageLimitId = &v
21320	return s
21321}
21322
21323// A list of node configurations.
21324type NodeConfigurationOption struct {
21325	_ struct{} `type:"structure"`
21326
21327	// The estimated disk utilizaton percentage.
21328	EstimatedDiskUtilizationPercent *float64 `type:"double"`
21329
21330	// The category of the node configuration recommendation.
21331	Mode *string `type:"string" enum:"Mode"`
21332
21333	// The node type, such as, "ds2.8xlarge".
21334	NodeType *string `type:"string"`
21335
21336	// The number of nodes.
21337	NumberOfNodes *int64 `type:"integer"`
21338}
21339
21340// String returns the string representation
21341func (s NodeConfigurationOption) String() string {
21342	return awsutil.Prettify(s)
21343}
21344
21345// GoString returns the string representation
21346func (s NodeConfigurationOption) GoString() string {
21347	return s.String()
21348}
21349
21350// SetEstimatedDiskUtilizationPercent sets the EstimatedDiskUtilizationPercent field's value.
21351func (s *NodeConfigurationOption) SetEstimatedDiskUtilizationPercent(v float64) *NodeConfigurationOption {
21352	s.EstimatedDiskUtilizationPercent = &v
21353	return s
21354}
21355
21356// SetMode sets the Mode field's value.
21357func (s *NodeConfigurationOption) SetMode(v string) *NodeConfigurationOption {
21358	s.Mode = &v
21359	return s
21360}
21361
21362// SetNodeType sets the NodeType field's value.
21363func (s *NodeConfigurationOption) SetNodeType(v string) *NodeConfigurationOption {
21364	s.NodeType = &v
21365	return s
21366}
21367
21368// SetNumberOfNodes sets the NumberOfNodes field's value.
21369func (s *NodeConfigurationOption) SetNumberOfNodes(v int64) *NodeConfigurationOption {
21370	s.NumberOfNodes = &v
21371	return s
21372}
21373
21374// A set of elements to filter the returned node configurations.
21375type NodeConfigurationOptionsFilter struct {
21376	_ struct{} `type:"structure"`
21377
21378	// The name of the element to filter.
21379	Name *string `type:"string" enum:"NodeConfigurationOptionsFilterName"`
21380
21381	// The filter operator. If filter Name is NodeType only the 'in' operator is
21382	// supported. Provide one value to evaluate for 'eq', 'lt', 'le', 'gt', and
21383	// 'ge'. Provide two values to evaluate for 'between'. Provide a list of values
21384	// for 'in'.
21385	Operator *string `type:"string" enum:"OperatorType"`
21386
21387	// List of values. Compare Name using Operator to Values. If filter Name is
21388	// NumberOfNodes, then values can range from 0 to 200. If filter Name is EstimatedDiskUtilizationPercent,
21389	// then values can range from 0 to 100. For example, filter NumberOfNodes (name)
21390	// GT (operator) 3 (values).
21391	Values []*string `locationName:"Value" locationNameList:"item" type:"list"`
21392}
21393
21394// String returns the string representation
21395func (s NodeConfigurationOptionsFilter) String() string {
21396	return awsutil.Prettify(s)
21397}
21398
21399// GoString returns the string representation
21400func (s NodeConfigurationOptionsFilter) GoString() string {
21401	return s.String()
21402}
21403
21404// SetName sets the Name field's value.
21405func (s *NodeConfigurationOptionsFilter) SetName(v string) *NodeConfigurationOptionsFilter {
21406	s.Name = &v
21407	return s
21408}
21409
21410// SetOperator sets the Operator field's value.
21411func (s *NodeConfigurationOptionsFilter) SetOperator(v string) *NodeConfigurationOptionsFilter {
21412	s.Operator = &v
21413	return s
21414}
21415
21416// SetValues sets the Values field's value.
21417func (s *NodeConfigurationOptionsFilter) SetValues(v []*string) *NodeConfigurationOptionsFilter {
21418	s.Values = v
21419	return s
21420}
21421
21422// Describes an orderable cluster option.
21423type OrderableClusterOption struct {
21424	_ struct{} `type:"structure"`
21425
21426	// A list of availability zones for the orderable cluster.
21427	AvailabilityZones []*AvailabilityZone `locationNameList:"AvailabilityZone" type:"list"`
21428
21429	// The cluster type, for example multi-node.
21430	ClusterType *string `type:"string"`
21431
21432	// The version of the orderable cluster.
21433	ClusterVersion *string `type:"string"`
21434
21435	// The node type for the orderable cluster.
21436	NodeType *string `type:"string"`
21437}
21438
21439// String returns the string representation
21440func (s OrderableClusterOption) String() string {
21441	return awsutil.Prettify(s)
21442}
21443
21444// GoString returns the string representation
21445func (s OrderableClusterOption) GoString() string {
21446	return s.String()
21447}
21448
21449// SetAvailabilityZones sets the AvailabilityZones field's value.
21450func (s *OrderableClusterOption) SetAvailabilityZones(v []*AvailabilityZone) *OrderableClusterOption {
21451	s.AvailabilityZones = v
21452	return s
21453}
21454
21455// SetClusterType sets the ClusterType field's value.
21456func (s *OrderableClusterOption) SetClusterType(v string) *OrderableClusterOption {
21457	s.ClusterType = &v
21458	return s
21459}
21460
21461// SetClusterVersion sets the ClusterVersion field's value.
21462func (s *OrderableClusterOption) SetClusterVersion(v string) *OrderableClusterOption {
21463	s.ClusterVersion = &v
21464	return s
21465}
21466
21467// SetNodeType sets the NodeType field's value.
21468func (s *OrderableClusterOption) SetNodeType(v string) *OrderableClusterOption {
21469	s.NodeType = &v
21470	return s
21471}
21472
21473// Describes a parameter in a cluster parameter group.
21474type Parameter struct {
21475	_ struct{} `type:"structure"`
21476
21477	// The valid range of values for the parameter.
21478	AllowedValues *string `type:"string"`
21479
21480	// Specifies how to apply the WLM configuration parameter. Some properties can
21481	// be applied dynamically, while other properties require that any associated
21482	// clusters be rebooted for the configuration changes to be applied. For more
21483	// information about parameters and parameter groups, go to Amazon Redshift
21484	// Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
21485	// in the Amazon Redshift Cluster Management Guide.
21486	ApplyType *string `type:"string" enum:"ParameterApplyType"`
21487
21488	// The data type of the parameter.
21489	DataType *string `type:"string"`
21490
21491	// A description of the parameter.
21492	Description *string `type:"string"`
21493
21494	// If true, the parameter can be modified. Some parameters have security or
21495	// operational implications that prevent them from being changed.
21496	IsModifiable *bool `type:"boolean"`
21497
21498	// The earliest engine version to which the parameter can apply.
21499	MinimumEngineVersion *string `type:"string"`
21500
21501	// The name of the parameter.
21502	ParameterName *string `type:"string"`
21503
21504	// The value of the parameter.
21505	ParameterValue *string `type:"string"`
21506
21507	// The source of the parameter value, such as "engine-default" or "user".
21508	Source *string `type:"string"`
21509}
21510
21511// String returns the string representation
21512func (s Parameter) String() string {
21513	return awsutil.Prettify(s)
21514}
21515
21516// GoString returns the string representation
21517func (s Parameter) GoString() string {
21518	return s.String()
21519}
21520
21521// SetAllowedValues sets the AllowedValues field's value.
21522func (s *Parameter) SetAllowedValues(v string) *Parameter {
21523	s.AllowedValues = &v
21524	return s
21525}
21526
21527// SetApplyType sets the ApplyType field's value.
21528func (s *Parameter) SetApplyType(v string) *Parameter {
21529	s.ApplyType = &v
21530	return s
21531}
21532
21533// SetDataType sets the DataType field's value.
21534func (s *Parameter) SetDataType(v string) *Parameter {
21535	s.DataType = &v
21536	return s
21537}
21538
21539// SetDescription sets the Description field's value.
21540func (s *Parameter) SetDescription(v string) *Parameter {
21541	s.Description = &v
21542	return s
21543}
21544
21545// SetIsModifiable sets the IsModifiable field's value.
21546func (s *Parameter) SetIsModifiable(v bool) *Parameter {
21547	s.IsModifiable = &v
21548	return s
21549}
21550
21551// SetMinimumEngineVersion sets the MinimumEngineVersion field's value.
21552func (s *Parameter) SetMinimumEngineVersion(v string) *Parameter {
21553	s.MinimumEngineVersion = &v
21554	return s
21555}
21556
21557// SetParameterName sets the ParameterName field's value.
21558func (s *Parameter) SetParameterName(v string) *Parameter {
21559	s.ParameterName = &v
21560	return s
21561}
21562
21563// SetParameterValue sets the ParameterValue field's value.
21564func (s *Parameter) SetParameterValue(v string) *Parameter {
21565	s.ParameterValue = &v
21566	return s
21567}
21568
21569// SetSource sets the Source field's value.
21570func (s *Parameter) SetSource(v string) *Parameter {
21571	s.Source = &v
21572	return s
21573}
21574
21575type PauseClusterInput struct {
21576	_ struct{} `type:"structure"`
21577
21578	// The identifier of the cluster to be paused.
21579	//
21580	// ClusterIdentifier is a required field
21581	ClusterIdentifier *string `type:"string" required:"true"`
21582}
21583
21584// String returns the string representation
21585func (s PauseClusterInput) String() string {
21586	return awsutil.Prettify(s)
21587}
21588
21589// GoString returns the string representation
21590func (s PauseClusterInput) GoString() string {
21591	return s.String()
21592}
21593
21594// Validate inspects the fields of the type to determine if they are valid.
21595func (s *PauseClusterInput) Validate() error {
21596	invalidParams := request.ErrInvalidParams{Context: "PauseClusterInput"}
21597	if s.ClusterIdentifier == nil {
21598		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
21599	}
21600
21601	if invalidParams.Len() > 0 {
21602		return invalidParams
21603	}
21604	return nil
21605}
21606
21607// SetClusterIdentifier sets the ClusterIdentifier field's value.
21608func (s *PauseClusterInput) SetClusterIdentifier(v string) *PauseClusterInput {
21609	s.ClusterIdentifier = &v
21610	return s
21611}
21612
21613type PauseClusterMessage struct {
21614	_ struct{} `type:"structure"`
21615
21616	// The identifier of the cluster to be paused.
21617	//
21618	// ClusterIdentifier is a required field
21619	ClusterIdentifier *string `type:"string" required:"true"`
21620}
21621
21622// String returns the string representation
21623func (s PauseClusterMessage) String() string {
21624	return awsutil.Prettify(s)
21625}
21626
21627// GoString returns the string representation
21628func (s PauseClusterMessage) GoString() string {
21629	return s.String()
21630}
21631
21632// Validate inspects the fields of the type to determine if they are valid.
21633func (s *PauseClusterMessage) Validate() error {
21634	invalidParams := request.ErrInvalidParams{Context: "PauseClusterMessage"}
21635	if s.ClusterIdentifier == nil {
21636		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
21637	}
21638
21639	if invalidParams.Len() > 0 {
21640		return invalidParams
21641	}
21642	return nil
21643}
21644
21645// SetClusterIdentifier sets the ClusterIdentifier field's value.
21646func (s *PauseClusterMessage) SetClusterIdentifier(v string) *PauseClusterMessage {
21647	s.ClusterIdentifier = &v
21648	return s
21649}
21650
21651type PauseClusterOutput struct {
21652	_ struct{} `type:"structure"`
21653
21654	// Describes a cluster.
21655	Cluster *Cluster `type:"structure"`
21656}
21657
21658// String returns the string representation
21659func (s PauseClusterOutput) String() string {
21660	return awsutil.Prettify(s)
21661}
21662
21663// GoString returns the string representation
21664func (s PauseClusterOutput) GoString() string {
21665	return s.String()
21666}
21667
21668// SetCluster sets the Cluster field's value.
21669func (s *PauseClusterOutput) SetCluster(v *Cluster) *PauseClusterOutput {
21670	s.Cluster = v
21671	return s
21672}
21673
21674// Describes cluster attributes that are in a pending state. A change to one
21675// or more the attributes was requested and is in progress or will be applied.
21676type PendingModifiedValues struct {
21677	_ struct{} `type:"structure"`
21678
21679	// The pending or in-progress change of the automated snapshot retention period.
21680	AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
21681
21682	// The pending or in-progress change of the new identifier for the cluster.
21683	ClusterIdentifier *string `type:"string"`
21684
21685	// The pending or in-progress change of the cluster type.
21686	ClusterType *string `type:"string"`
21687
21688	// The pending or in-progress change of the service version.
21689	ClusterVersion *string `type:"string"`
21690
21691	// The encryption type for a cluster. Possible values are: KMS and None. For
21692	// the China region the possible values are None, and Legacy.
21693	EncryptionType *string `type:"string"`
21694
21695	// An option that specifies whether to create the cluster with enhanced VPC
21696	// routing enabled. To create a cluster that uses enhanced VPC routing, the
21697	// cluster must be in a VPC. For more information, see Enhanced VPC Routing
21698	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
21699	// in the Amazon Redshift Cluster Management Guide.
21700	//
21701	// If this option is true, enhanced VPC routing is enabled.
21702	//
21703	// Default: false
21704	EnhancedVpcRouting *bool `type:"boolean"`
21705
21706	// The name of the maintenance track that the cluster will change to during
21707	// the next maintenance window.
21708	MaintenanceTrackName *string `type:"string"`
21709
21710	// The pending or in-progress change of the master user password for the cluster.
21711	MasterUserPassword *string `type:"string"`
21712
21713	// The pending or in-progress change of the cluster's node type.
21714	NodeType *string `type:"string"`
21715
21716	// The pending or in-progress change of the number of nodes in the cluster.
21717	NumberOfNodes *int64 `type:"integer"`
21718
21719	// The pending or in-progress change of the ability to connect to the cluster
21720	// from the public network.
21721	PubliclyAccessible *bool `type:"boolean"`
21722}
21723
21724// String returns the string representation
21725func (s PendingModifiedValues) String() string {
21726	return awsutil.Prettify(s)
21727}
21728
21729// GoString returns the string representation
21730func (s PendingModifiedValues) GoString() string {
21731	return s.String()
21732}
21733
21734// SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
21735func (s *PendingModifiedValues) SetAutomatedSnapshotRetentionPeriod(v int64) *PendingModifiedValues {
21736	s.AutomatedSnapshotRetentionPeriod = &v
21737	return s
21738}
21739
21740// SetClusterIdentifier sets the ClusterIdentifier field's value.
21741func (s *PendingModifiedValues) SetClusterIdentifier(v string) *PendingModifiedValues {
21742	s.ClusterIdentifier = &v
21743	return s
21744}
21745
21746// SetClusterType sets the ClusterType field's value.
21747func (s *PendingModifiedValues) SetClusterType(v string) *PendingModifiedValues {
21748	s.ClusterType = &v
21749	return s
21750}
21751
21752// SetClusterVersion sets the ClusterVersion field's value.
21753func (s *PendingModifiedValues) SetClusterVersion(v string) *PendingModifiedValues {
21754	s.ClusterVersion = &v
21755	return s
21756}
21757
21758// SetEncryptionType sets the EncryptionType field's value.
21759func (s *PendingModifiedValues) SetEncryptionType(v string) *PendingModifiedValues {
21760	s.EncryptionType = &v
21761	return s
21762}
21763
21764// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
21765func (s *PendingModifiedValues) SetEnhancedVpcRouting(v bool) *PendingModifiedValues {
21766	s.EnhancedVpcRouting = &v
21767	return s
21768}
21769
21770// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
21771func (s *PendingModifiedValues) SetMaintenanceTrackName(v string) *PendingModifiedValues {
21772	s.MaintenanceTrackName = &v
21773	return s
21774}
21775
21776// SetMasterUserPassword sets the MasterUserPassword field's value.
21777func (s *PendingModifiedValues) SetMasterUserPassword(v string) *PendingModifiedValues {
21778	s.MasterUserPassword = &v
21779	return s
21780}
21781
21782// SetNodeType sets the NodeType field's value.
21783func (s *PendingModifiedValues) SetNodeType(v string) *PendingModifiedValues {
21784	s.NodeType = &v
21785	return s
21786}
21787
21788// SetNumberOfNodes sets the NumberOfNodes field's value.
21789func (s *PendingModifiedValues) SetNumberOfNodes(v int64) *PendingModifiedValues {
21790	s.NumberOfNodes = &v
21791	return s
21792}
21793
21794// SetPubliclyAccessible sets the PubliclyAccessible field's value.
21795func (s *PendingModifiedValues) SetPubliclyAccessible(v bool) *PendingModifiedValues {
21796	s.PubliclyAccessible = &v
21797	return s
21798}
21799
21800type PurchaseReservedNodeOfferingInput struct {
21801	_ struct{} `type:"structure"`
21802
21803	// The number of reserved nodes that you want to purchase.
21804	//
21805	// Default: 1
21806	NodeCount *int64 `type:"integer"`
21807
21808	// The unique identifier of the reserved node offering you want to purchase.
21809	//
21810	// ReservedNodeOfferingId is a required field
21811	ReservedNodeOfferingId *string `type:"string" required:"true"`
21812}
21813
21814// String returns the string representation
21815func (s PurchaseReservedNodeOfferingInput) String() string {
21816	return awsutil.Prettify(s)
21817}
21818
21819// GoString returns the string representation
21820func (s PurchaseReservedNodeOfferingInput) GoString() string {
21821	return s.String()
21822}
21823
21824// Validate inspects the fields of the type to determine if they are valid.
21825func (s *PurchaseReservedNodeOfferingInput) Validate() error {
21826	invalidParams := request.ErrInvalidParams{Context: "PurchaseReservedNodeOfferingInput"}
21827	if s.ReservedNodeOfferingId == nil {
21828		invalidParams.Add(request.NewErrParamRequired("ReservedNodeOfferingId"))
21829	}
21830
21831	if invalidParams.Len() > 0 {
21832		return invalidParams
21833	}
21834	return nil
21835}
21836
21837// SetNodeCount sets the NodeCount field's value.
21838func (s *PurchaseReservedNodeOfferingInput) SetNodeCount(v int64) *PurchaseReservedNodeOfferingInput {
21839	s.NodeCount = &v
21840	return s
21841}
21842
21843// SetReservedNodeOfferingId sets the ReservedNodeOfferingId field's value.
21844func (s *PurchaseReservedNodeOfferingInput) SetReservedNodeOfferingId(v string) *PurchaseReservedNodeOfferingInput {
21845	s.ReservedNodeOfferingId = &v
21846	return s
21847}
21848
21849type PurchaseReservedNodeOfferingOutput struct {
21850	_ struct{} `type:"structure"`
21851
21852	// Describes a reserved node. You can call the DescribeReservedNodeOfferings
21853	// API to obtain the available reserved node offerings.
21854	ReservedNode *ReservedNode `type:"structure"`
21855}
21856
21857// String returns the string representation
21858func (s PurchaseReservedNodeOfferingOutput) String() string {
21859	return awsutil.Prettify(s)
21860}
21861
21862// GoString returns the string representation
21863func (s PurchaseReservedNodeOfferingOutput) GoString() string {
21864	return s.String()
21865}
21866
21867// SetReservedNode sets the ReservedNode field's value.
21868func (s *PurchaseReservedNodeOfferingOutput) SetReservedNode(v *ReservedNode) *PurchaseReservedNodeOfferingOutput {
21869	s.ReservedNode = v
21870	return s
21871}
21872
21873type RebootClusterInput struct {
21874	_ struct{} `type:"structure"`
21875
21876	// The cluster identifier.
21877	//
21878	// ClusterIdentifier is a required field
21879	ClusterIdentifier *string `type:"string" required:"true"`
21880}
21881
21882// String returns the string representation
21883func (s RebootClusterInput) String() string {
21884	return awsutil.Prettify(s)
21885}
21886
21887// GoString returns the string representation
21888func (s RebootClusterInput) GoString() string {
21889	return s.String()
21890}
21891
21892// Validate inspects the fields of the type to determine if they are valid.
21893func (s *RebootClusterInput) Validate() error {
21894	invalidParams := request.ErrInvalidParams{Context: "RebootClusterInput"}
21895	if s.ClusterIdentifier == nil {
21896		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
21897	}
21898
21899	if invalidParams.Len() > 0 {
21900		return invalidParams
21901	}
21902	return nil
21903}
21904
21905// SetClusterIdentifier sets the ClusterIdentifier field's value.
21906func (s *RebootClusterInput) SetClusterIdentifier(v string) *RebootClusterInput {
21907	s.ClusterIdentifier = &v
21908	return s
21909}
21910
21911type RebootClusterOutput struct {
21912	_ struct{} `type:"structure"`
21913
21914	// Describes a cluster.
21915	Cluster *Cluster `type:"structure"`
21916}
21917
21918// String returns the string representation
21919func (s RebootClusterOutput) String() string {
21920	return awsutil.Prettify(s)
21921}
21922
21923// GoString returns the string representation
21924func (s RebootClusterOutput) GoString() string {
21925	return s.String()
21926}
21927
21928// SetCluster sets the Cluster field's value.
21929func (s *RebootClusterOutput) SetCluster(v *Cluster) *RebootClusterOutput {
21930	s.Cluster = v
21931	return s
21932}
21933
21934// Describes a recurring charge.
21935type RecurringCharge struct {
21936	_ struct{} `type:"structure"`
21937
21938	// The amount charged per the period of time specified by the recurring charge
21939	// frequency.
21940	RecurringChargeAmount *float64 `type:"double"`
21941
21942	// The frequency at which the recurring charge amount is applied.
21943	RecurringChargeFrequency *string `type:"string"`
21944}
21945
21946// String returns the string representation
21947func (s RecurringCharge) String() string {
21948	return awsutil.Prettify(s)
21949}
21950
21951// GoString returns the string representation
21952func (s RecurringCharge) GoString() string {
21953	return s.String()
21954}
21955
21956// SetRecurringChargeAmount sets the RecurringChargeAmount field's value.
21957func (s *RecurringCharge) SetRecurringChargeAmount(v float64) *RecurringCharge {
21958	s.RecurringChargeAmount = &v
21959	return s
21960}
21961
21962// SetRecurringChargeFrequency sets the RecurringChargeFrequency field's value.
21963func (s *RecurringCharge) SetRecurringChargeFrequency(v string) *RecurringCharge {
21964	s.RecurringChargeFrequency = &v
21965	return s
21966}
21967
21968// Describes a reserved node. You can call the DescribeReservedNodeOfferings
21969// API to obtain the available reserved node offerings.
21970type ReservedNode struct {
21971	_ struct{} `type:"structure"`
21972
21973	// The currency code for the reserved cluster.
21974	CurrencyCode *string `type:"string"`
21975
21976	// The duration of the node reservation in seconds.
21977	Duration *int64 `type:"integer"`
21978
21979	// The fixed cost Amazon Redshift charges you for this reserved node.
21980	FixedPrice *float64 `type:"double"`
21981
21982	// The number of reserved compute nodes.
21983	NodeCount *int64 `type:"integer"`
21984
21985	// The node type of the reserved node.
21986	NodeType *string `type:"string"`
21987
21988	// The anticipated utilization of the reserved node, as defined in the reserved
21989	// node offering.
21990	OfferingType *string `type:"string"`
21991
21992	// The recurring charges for the reserved node.
21993	RecurringCharges []*RecurringCharge `locationNameList:"RecurringCharge" type:"list"`
21994
21995	// The unique identifier for the reservation.
21996	ReservedNodeId *string `type:"string"`
21997
21998	// The identifier for the reserved node offering.
21999	ReservedNodeOfferingId *string `type:"string"`
22000
22001	ReservedNodeOfferingType *string `type:"string" enum:"ReservedNodeOfferingType"`
22002
22003	// The time the reservation started. You purchase a reserved node offering for
22004	// a duration. This is the start time of that duration.
22005	StartTime *time.Time `type:"timestamp"`
22006
22007	// The state of the reserved compute node.
22008	//
22009	// Possible Values:
22010	//
22011	//    * pending-payment-This reserved node has recently been purchased, and
22012	//    the sale has been approved, but payment has not yet been confirmed.
22013	//
22014	//    * active-This reserved node is owned by the caller and is available for
22015	//    use.
22016	//
22017	//    * payment-failed-Payment failed for the purchase attempt.
22018	//
22019	//    * retired-The reserved node is no longer available.
22020	//
22021	//    * exchanging-The owner is exchanging the reserved node for another reserved
22022	//    node.
22023	State *string `type:"string"`
22024
22025	// The hourly rate Amazon Redshift charges you for this reserved node.
22026	UsagePrice *float64 `type:"double"`
22027}
22028
22029// String returns the string representation
22030func (s ReservedNode) String() string {
22031	return awsutil.Prettify(s)
22032}
22033
22034// GoString returns the string representation
22035func (s ReservedNode) GoString() string {
22036	return s.String()
22037}
22038
22039// SetCurrencyCode sets the CurrencyCode field's value.
22040func (s *ReservedNode) SetCurrencyCode(v string) *ReservedNode {
22041	s.CurrencyCode = &v
22042	return s
22043}
22044
22045// SetDuration sets the Duration field's value.
22046func (s *ReservedNode) SetDuration(v int64) *ReservedNode {
22047	s.Duration = &v
22048	return s
22049}
22050
22051// SetFixedPrice sets the FixedPrice field's value.
22052func (s *ReservedNode) SetFixedPrice(v float64) *ReservedNode {
22053	s.FixedPrice = &v
22054	return s
22055}
22056
22057// SetNodeCount sets the NodeCount field's value.
22058func (s *ReservedNode) SetNodeCount(v int64) *ReservedNode {
22059	s.NodeCount = &v
22060	return s
22061}
22062
22063// SetNodeType sets the NodeType field's value.
22064func (s *ReservedNode) SetNodeType(v string) *ReservedNode {
22065	s.NodeType = &v
22066	return s
22067}
22068
22069// SetOfferingType sets the OfferingType field's value.
22070func (s *ReservedNode) SetOfferingType(v string) *ReservedNode {
22071	s.OfferingType = &v
22072	return s
22073}
22074
22075// SetRecurringCharges sets the RecurringCharges field's value.
22076func (s *ReservedNode) SetRecurringCharges(v []*RecurringCharge) *ReservedNode {
22077	s.RecurringCharges = v
22078	return s
22079}
22080
22081// SetReservedNodeId sets the ReservedNodeId field's value.
22082func (s *ReservedNode) SetReservedNodeId(v string) *ReservedNode {
22083	s.ReservedNodeId = &v
22084	return s
22085}
22086
22087// SetReservedNodeOfferingId sets the ReservedNodeOfferingId field's value.
22088func (s *ReservedNode) SetReservedNodeOfferingId(v string) *ReservedNode {
22089	s.ReservedNodeOfferingId = &v
22090	return s
22091}
22092
22093// SetReservedNodeOfferingType sets the ReservedNodeOfferingType field's value.
22094func (s *ReservedNode) SetReservedNodeOfferingType(v string) *ReservedNode {
22095	s.ReservedNodeOfferingType = &v
22096	return s
22097}
22098
22099// SetStartTime sets the StartTime field's value.
22100func (s *ReservedNode) SetStartTime(v time.Time) *ReservedNode {
22101	s.StartTime = &v
22102	return s
22103}
22104
22105// SetState sets the State field's value.
22106func (s *ReservedNode) SetState(v string) *ReservedNode {
22107	s.State = &v
22108	return s
22109}
22110
22111// SetUsagePrice sets the UsagePrice field's value.
22112func (s *ReservedNode) SetUsagePrice(v float64) *ReservedNode {
22113	s.UsagePrice = &v
22114	return s
22115}
22116
22117// Describes a reserved node offering.
22118type ReservedNodeOffering struct {
22119	_ struct{} `type:"structure"`
22120
22121	// The currency code for the compute nodes offering.
22122	CurrencyCode *string `type:"string"`
22123
22124	// The duration, in seconds, for which the offering will reserve the node.
22125	Duration *int64 `type:"integer"`
22126
22127	// The upfront fixed charge you will pay to purchase the specific reserved node
22128	// offering.
22129	FixedPrice *float64 `type:"double"`
22130
22131	// The node type offered by the reserved node offering.
22132	NodeType *string `type:"string"`
22133
22134	// The anticipated utilization of the reserved node, as defined in the reserved
22135	// node offering.
22136	OfferingType *string `type:"string"`
22137
22138	// The charge to your account regardless of whether you are creating any clusters
22139	// using the node offering. Recurring charges are only in effect for heavy-utilization
22140	// reserved nodes.
22141	RecurringCharges []*RecurringCharge `locationNameList:"RecurringCharge" type:"list"`
22142
22143	// The offering identifier.
22144	ReservedNodeOfferingId *string `type:"string"`
22145
22146	ReservedNodeOfferingType *string `type:"string" enum:"ReservedNodeOfferingType"`
22147
22148	// The rate you are charged for each hour the cluster that is using the offering
22149	// is running.
22150	UsagePrice *float64 `type:"double"`
22151}
22152
22153// String returns the string representation
22154func (s ReservedNodeOffering) String() string {
22155	return awsutil.Prettify(s)
22156}
22157
22158// GoString returns the string representation
22159func (s ReservedNodeOffering) GoString() string {
22160	return s.String()
22161}
22162
22163// SetCurrencyCode sets the CurrencyCode field's value.
22164func (s *ReservedNodeOffering) SetCurrencyCode(v string) *ReservedNodeOffering {
22165	s.CurrencyCode = &v
22166	return s
22167}
22168
22169// SetDuration sets the Duration field's value.
22170func (s *ReservedNodeOffering) SetDuration(v int64) *ReservedNodeOffering {
22171	s.Duration = &v
22172	return s
22173}
22174
22175// SetFixedPrice sets the FixedPrice field's value.
22176func (s *ReservedNodeOffering) SetFixedPrice(v float64) *ReservedNodeOffering {
22177	s.FixedPrice = &v
22178	return s
22179}
22180
22181// SetNodeType sets the NodeType field's value.
22182func (s *ReservedNodeOffering) SetNodeType(v string) *ReservedNodeOffering {
22183	s.NodeType = &v
22184	return s
22185}
22186
22187// SetOfferingType sets the OfferingType field's value.
22188func (s *ReservedNodeOffering) SetOfferingType(v string) *ReservedNodeOffering {
22189	s.OfferingType = &v
22190	return s
22191}
22192
22193// SetRecurringCharges sets the RecurringCharges field's value.
22194func (s *ReservedNodeOffering) SetRecurringCharges(v []*RecurringCharge) *ReservedNodeOffering {
22195	s.RecurringCharges = v
22196	return s
22197}
22198
22199// SetReservedNodeOfferingId sets the ReservedNodeOfferingId field's value.
22200func (s *ReservedNodeOffering) SetReservedNodeOfferingId(v string) *ReservedNodeOffering {
22201	s.ReservedNodeOfferingId = &v
22202	return s
22203}
22204
22205// SetReservedNodeOfferingType sets the ReservedNodeOfferingType field's value.
22206func (s *ReservedNodeOffering) SetReservedNodeOfferingType(v string) *ReservedNodeOffering {
22207	s.ReservedNodeOfferingType = &v
22208	return s
22209}
22210
22211// SetUsagePrice sets the UsagePrice field's value.
22212func (s *ReservedNodeOffering) SetUsagePrice(v float64) *ReservedNodeOffering {
22213	s.UsagePrice = &v
22214	return s
22215}
22216
22217type ResetClusterParameterGroupInput struct {
22218	_ struct{} `type:"structure"`
22219
22220	// The name of the cluster parameter group to be reset.
22221	//
22222	// ParameterGroupName is a required field
22223	ParameterGroupName *string `type:"string" required:"true"`
22224
22225	// An array of names of parameters to be reset. If ResetAllParameters option
22226	// is not used, then at least one parameter name must be supplied.
22227	//
22228	// Constraints: A maximum of 20 parameters can be reset in a single request.
22229	Parameters []*Parameter `locationNameList:"Parameter" type:"list"`
22230
22231	// If true, all parameters in the specified parameter group will be reset to
22232	// their default values.
22233	//
22234	// Default: true
22235	ResetAllParameters *bool `type:"boolean"`
22236}
22237
22238// String returns the string representation
22239func (s ResetClusterParameterGroupInput) String() string {
22240	return awsutil.Prettify(s)
22241}
22242
22243// GoString returns the string representation
22244func (s ResetClusterParameterGroupInput) GoString() string {
22245	return s.String()
22246}
22247
22248// Validate inspects the fields of the type to determine if they are valid.
22249func (s *ResetClusterParameterGroupInput) Validate() error {
22250	invalidParams := request.ErrInvalidParams{Context: "ResetClusterParameterGroupInput"}
22251	if s.ParameterGroupName == nil {
22252		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
22253	}
22254
22255	if invalidParams.Len() > 0 {
22256		return invalidParams
22257	}
22258	return nil
22259}
22260
22261// SetParameterGroupName sets the ParameterGroupName field's value.
22262func (s *ResetClusterParameterGroupInput) SetParameterGroupName(v string) *ResetClusterParameterGroupInput {
22263	s.ParameterGroupName = &v
22264	return s
22265}
22266
22267// SetParameters sets the Parameters field's value.
22268func (s *ResetClusterParameterGroupInput) SetParameters(v []*Parameter) *ResetClusterParameterGroupInput {
22269	s.Parameters = v
22270	return s
22271}
22272
22273// SetResetAllParameters sets the ResetAllParameters field's value.
22274func (s *ResetClusterParameterGroupInput) SetResetAllParameters(v bool) *ResetClusterParameterGroupInput {
22275	s.ResetAllParameters = &v
22276	return s
22277}
22278
22279type ResizeClusterInput struct {
22280	_ struct{} `type:"structure"`
22281
22282	// A boolean value indicating whether the resize operation is using the classic
22283	// resize process. If you don't provide this parameter or set the value to false,
22284	// the resize type is elastic.
22285	Classic *bool `type:"boolean"`
22286
22287	// The unique identifier for the cluster to resize.
22288	//
22289	// ClusterIdentifier is a required field
22290	ClusterIdentifier *string `type:"string" required:"true"`
22291
22292	// The new cluster type for the specified cluster.
22293	ClusterType *string `type:"string"`
22294
22295	// The new node type for the nodes you are adding. If not specified, the cluster's
22296	// current node type is used.
22297	NodeType *string `type:"string"`
22298
22299	// The new number of nodes for the cluster.
22300	NumberOfNodes *int64 `type:"integer"`
22301}
22302
22303// String returns the string representation
22304func (s ResizeClusterInput) String() string {
22305	return awsutil.Prettify(s)
22306}
22307
22308// GoString returns the string representation
22309func (s ResizeClusterInput) GoString() string {
22310	return s.String()
22311}
22312
22313// Validate inspects the fields of the type to determine if they are valid.
22314func (s *ResizeClusterInput) Validate() error {
22315	invalidParams := request.ErrInvalidParams{Context: "ResizeClusterInput"}
22316	if s.ClusterIdentifier == nil {
22317		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
22318	}
22319
22320	if invalidParams.Len() > 0 {
22321		return invalidParams
22322	}
22323	return nil
22324}
22325
22326// SetClassic sets the Classic field's value.
22327func (s *ResizeClusterInput) SetClassic(v bool) *ResizeClusterInput {
22328	s.Classic = &v
22329	return s
22330}
22331
22332// SetClusterIdentifier sets the ClusterIdentifier field's value.
22333func (s *ResizeClusterInput) SetClusterIdentifier(v string) *ResizeClusterInput {
22334	s.ClusterIdentifier = &v
22335	return s
22336}
22337
22338// SetClusterType sets the ClusterType field's value.
22339func (s *ResizeClusterInput) SetClusterType(v string) *ResizeClusterInput {
22340	s.ClusterType = &v
22341	return s
22342}
22343
22344// SetNodeType sets the NodeType field's value.
22345func (s *ResizeClusterInput) SetNodeType(v string) *ResizeClusterInput {
22346	s.NodeType = &v
22347	return s
22348}
22349
22350// SetNumberOfNodes sets the NumberOfNodes field's value.
22351func (s *ResizeClusterInput) SetNumberOfNodes(v int64) *ResizeClusterInput {
22352	s.NumberOfNodes = &v
22353	return s
22354}
22355
22356type ResizeClusterMessage struct {
22357	_ struct{} `type:"structure"`
22358
22359	// A boolean value indicating whether the resize operation is using the classic
22360	// resize process. If you don't provide this parameter or set the value to false,
22361	// the resize type is elastic.
22362	Classic *bool `type:"boolean"`
22363
22364	// The unique identifier for the cluster to resize.
22365	//
22366	// ClusterIdentifier is a required field
22367	ClusterIdentifier *string `type:"string" required:"true"`
22368
22369	// The new cluster type for the specified cluster.
22370	ClusterType *string `type:"string"`
22371
22372	// The new node type for the nodes you are adding. If not specified, the cluster's
22373	// current node type is used.
22374	NodeType *string `type:"string"`
22375
22376	// The new number of nodes for the cluster.
22377	NumberOfNodes *int64 `type:"integer"`
22378}
22379
22380// String returns the string representation
22381func (s ResizeClusterMessage) String() string {
22382	return awsutil.Prettify(s)
22383}
22384
22385// GoString returns the string representation
22386func (s ResizeClusterMessage) GoString() string {
22387	return s.String()
22388}
22389
22390// Validate inspects the fields of the type to determine if they are valid.
22391func (s *ResizeClusterMessage) Validate() error {
22392	invalidParams := request.ErrInvalidParams{Context: "ResizeClusterMessage"}
22393	if s.ClusterIdentifier == nil {
22394		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
22395	}
22396
22397	if invalidParams.Len() > 0 {
22398		return invalidParams
22399	}
22400	return nil
22401}
22402
22403// SetClassic sets the Classic field's value.
22404func (s *ResizeClusterMessage) SetClassic(v bool) *ResizeClusterMessage {
22405	s.Classic = &v
22406	return s
22407}
22408
22409// SetClusterIdentifier sets the ClusterIdentifier field's value.
22410func (s *ResizeClusterMessage) SetClusterIdentifier(v string) *ResizeClusterMessage {
22411	s.ClusterIdentifier = &v
22412	return s
22413}
22414
22415// SetClusterType sets the ClusterType field's value.
22416func (s *ResizeClusterMessage) SetClusterType(v string) *ResizeClusterMessage {
22417	s.ClusterType = &v
22418	return s
22419}
22420
22421// SetNodeType sets the NodeType field's value.
22422func (s *ResizeClusterMessage) SetNodeType(v string) *ResizeClusterMessage {
22423	s.NodeType = &v
22424	return s
22425}
22426
22427// SetNumberOfNodes sets the NumberOfNodes field's value.
22428func (s *ResizeClusterMessage) SetNumberOfNodes(v int64) *ResizeClusterMessage {
22429	s.NumberOfNodes = &v
22430	return s
22431}
22432
22433type ResizeClusterOutput struct {
22434	_ struct{} `type:"structure"`
22435
22436	// Describes a cluster.
22437	Cluster *Cluster `type:"structure"`
22438}
22439
22440// String returns the string representation
22441func (s ResizeClusterOutput) String() string {
22442	return awsutil.Prettify(s)
22443}
22444
22445// GoString returns the string representation
22446func (s ResizeClusterOutput) GoString() string {
22447	return s.String()
22448}
22449
22450// SetCluster sets the Cluster field's value.
22451func (s *ResizeClusterOutput) SetCluster(v *Cluster) *ResizeClusterOutput {
22452	s.Cluster = v
22453	return s
22454}
22455
22456// Describes a resize operation.
22457type ResizeInfo struct {
22458	_ struct{} `type:"structure"`
22459
22460	// A boolean value indicating if the resize operation can be cancelled.
22461	AllowCancelResize *bool `type:"boolean"`
22462
22463	// Returns the value ClassicResize.
22464	ResizeType *string `type:"string"`
22465}
22466
22467// String returns the string representation
22468func (s ResizeInfo) String() string {
22469	return awsutil.Prettify(s)
22470}
22471
22472// GoString returns the string representation
22473func (s ResizeInfo) GoString() string {
22474	return s.String()
22475}
22476
22477// SetAllowCancelResize sets the AllowCancelResize field's value.
22478func (s *ResizeInfo) SetAllowCancelResize(v bool) *ResizeInfo {
22479	s.AllowCancelResize = &v
22480	return s
22481}
22482
22483// SetResizeType sets the ResizeType field's value.
22484func (s *ResizeInfo) SetResizeType(v string) *ResizeInfo {
22485	s.ResizeType = &v
22486	return s
22487}
22488
22489type RestoreFromClusterSnapshotInput struct {
22490	_ struct{} `type:"structure"`
22491
22492	// Reserved.
22493	AdditionalInfo *string `type:"string"`
22494
22495	// If true, major version upgrades can be applied during the maintenance window
22496	// to the Amazon Redshift engine that is running on the cluster.
22497	//
22498	// Default: true
22499	AllowVersionUpgrade *bool `type:"boolean"`
22500
22501	// The number of days that automated snapshots are retained. If the value is
22502	// 0, automated snapshots are disabled. Even if automated snapshots are disabled,
22503	// you can still create manual snapshots when you want with CreateClusterSnapshot.
22504	//
22505	// Default: The value selected for the cluster from which the snapshot was taken.
22506	//
22507	// Constraints: Must be a value from 0 to 35.
22508	AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
22509
22510	// The Amazon EC2 Availability Zone in which to restore the cluster.
22511	//
22512	// Default: A random, system-chosen Availability Zone.
22513	//
22514	// Example: us-east-2a
22515	AvailabilityZone *string `type:"string"`
22516
22517	// The identifier of the cluster that will be created from restoring the snapshot.
22518	//
22519	// Constraints:
22520	//
22521	//    * Must contain from 1 to 63 alphanumeric characters or hyphens.
22522	//
22523	//    * Alphabetic characters must be lowercase.
22524	//
22525	//    * First character must be a letter.
22526	//
22527	//    * Cannot end with a hyphen or contain two consecutive hyphens.
22528	//
22529	//    * Must be unique for all clusters within an AWS account.
22530	//
22531	// ClusterIdentifier is a required field
22532	ClusterIdentifier *string `type:"string" required:"true"`
22533
22534	// The name of the parameter group to be associated with this cluster.
22535	//
22536	// Default: The default Amazon Redshift cluster parameter group. For information
22537	// about the default parameter group, go to Working with Amazon Redshift Parameter
22538	// Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html).
22539	//
22540	// Constraints:
22541	//
22542	//    * Must be 1 to 255 alphanumeric characters or hyphens.
22543	//
22544	//    * First character must be a letter.
22545	//
22546	//    * Cannot end with a hyphen or contain two consecutive hyphens.
22547	ClusterParameterGroupName *string `type:"string"`
22548
22549	// A list of security groups to be associated with this cluster.
22550	//
22551	// Default: The default cluster security group for Amazon Redshift.
22552	//
22553	// Cluster security groups only apply to clusters outside of VPCs.
22554	ClusterSecurityGroups []*string `locationNameList:"ClusterSecurityGroupName" type:"list"`
22555
22556	// The name of the subnet group where you want to cluster restored.
22557	//
22558	// A snapshot of cluster in VPC can be restored only in VPC. Therefore, you
22559	// must provide subnet group name where you want the cluster restored.
22560	ClusterSubnetGroupName *string `type:"string"`
22561
22562	// The elastic IP (EIP) address for the cluster.
22563	ElasticIp *string `type:"string"`
22564
22565	// An option that specifies whether to create the cluster with enhanced VPC
22566	// routing enabled. To create a cluster that uses enhanced VPC routing, the
22567	// cluster must be in a VPC. For more information, see Enhanced VPC Routing
22568	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
22569	// in the Amazon Redshift Cluster Management Guide.
22570	//
22571	// If this option is true, enhanced VPC routing is enabled.
22572	//
22573	// Default: false
22574	EnhancedVpcRouting *bool `type:"boolean"`
22575
22576	// Specifies the name of the HSM client certificate the Amazon Redshift cluster
22577	// uses to retrieve the data encryption keys stored in an HSM.
22578	HsmClientCertificateIdentifier *string `type:"string"`
22579
22580	// Specifies the name of the HSM configuration that contains the information
22581	// the Amazon Redshift cluster can use to retrieve and store keys in an HSM.
22582	HsmConfigurationIdentifier *string `type:"string"`
22583
22584	// A list of AWS Identity and Access Management (IAM) roles that can be used
22585	// by the cluster to access other AWS services. You must supply the IAM roles
22586	// in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM roles
22587	// in a single request.
22588	//
22589	// A cluster can have up to 10 IAM roles associated at any time.
22590	IamRoles []*string `locationNameList:"IamRoleArn" type:"list"`
22591
22592	// The AWS Key Management Service (KMS) key ID of the encryption key that you
22593	// want to use to encrypt data in the cluster that you restore from a shared
22594	// snapshot.
22595	KmsKeyId *string `type:"string"`
22596
22597	// The name of the maintenance track for the restored cluster. When you take
22598	// a snapshot, the snapshot inherits the MaintenanceTrack value from the cluster.
22599	// The snapshot might be on a different track than the cluster that was the
22600	// source for the snapshot. For example, suppose that you take a snapshot of
22601	// a cluster that is on the current track and then change the cluster to be
22602	// on the trailing track. In this case, the snapshot and the source cluster
22603	// are on different tracks.
22604	MaintenanceTrackName *string `type:"string"`
22605
22606	// The default number of days to retain a manual snapshot. If the value is -1,
22607	// the snapshot is retained indefinitely. This setting doesn't change the retention
22608	// period of existing snapshots.
22609	//
22610	// The value must be either -1 or an integer between 1 and 3,653.
22611	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
22612
22613	// The node type that the restored cluster will be provisioned with.
22614	//
22615	// Default: The node type of the cluster from which the snapshot was taken.
22616	// You can modify this if you are using any DS node type. In that case, you
22617	// can choose to restore into another DS node type of the same size. For example,
22618	// you can restore ds1.8xlarge into ds2.8xlarge, or ds1.xlarge into ds2.xlarge.
22619	// If you have a DC instance type, you must restore into that same instance
22620	// type and size. In other words, you can only restore a dc1.large instance
22621	// type into another dc1.large instance type or dc2.large instance type. You
22622	// can't restore dc1.8xlarge to dc2.8xlarge. First restore to a dc1.8xlarge
22623	// cluster, then resize to a dc2.8large cluster. For more information about
22624	// node types, see About Clusters and Nodes (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes)
22625	// in the Amazon Redshift Cluster Management Guide.
22626	NodeType *string `type:"string"`
22627
22628	// The number of nodes specified when provisioning the restored cluster.
22629	NumberOfNodes *int64 `type:"integer"`
22630
22631	// The AWS customer account used to create or copy the snapshot. Required if
22632	// you are restoring a snapshot you do not own, optional if you own the snapshot.
22633	OwnerAccount *string `type:"string"`
22634
22635	// The port number on which the cluster accepts connections.
22636	//
22637	// Default: The same port as the original cluster.
22638	//
22639	// Constraints: Must be between 1115 and 65535.
22640	Port *int64 `type:"integer"`
22641
22642	// The weekly time range (in UTC) during which automated cluster maintenance
22643	// can occur.
22644	//
22645	// Format: ddd:hh24:mi-ddd:hh24:mi
22646	//
22647	// Default: The value selected for the cluster from which the snapshot was taken.
22648	// For more information about the time blocks for each region, see Maintenance
22649	// Windows (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows)
22650	// in Amazon Redshift Cluster Management Guide.
22651	//
22652	// Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
22653	//
22654	// Constraints: Minimum 30-minute window.
22655	PreferredMaintenanceWindow *string `type:"string"`
22656
22657	// If true, the cluster can be accessed from a public network.
22658	PubliclyAccessible *bool `type:"boolean"`
22659
22660	// The name of the cluster the source snapshot was created from. This parameter
22661	// is required if your IAM user has a policy containing a snapshot resource
22662	// element that specifies anything other than * for the cluster name.
22663	SnapshotClusterIdentifier *string `type:"string"`
22664
22665	// The name of the snapshot from which to create the new cluster. This parameter
22666	// isn't case sensitive.
22667	//
22668	// Example: my-snapshot-id
22669	//
22670	// SnapshotIdentifier is a required field
22671	SnapshotIdentifier *string `type:"string" required:"true"`
22672
22673	// A unique identifier for the snapshot schedule.
22674	SnapshotScheduleIdentifier *string `type:"string"`
22675
22676	// A list of Virtual Private Cloud (VPC) security groups to be associated with
22677	// the cluster.
22678	//
22679	// Default: The default VPC security group is associated with the cluster.
22680	//
22681	// VPC security groups only apply to clusters in VPCs.
22682	VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
22683}
22684
22685// String returns the string representation
22686func (s RestoreFromClusterSnapshotInput) String() string {
22687	return awsutil.Prettify(s)
22688}
22689
22690// GoString returns the string representation
22691func (s RestoreFromClusterSnapshotInput) GoString() string {
22692	return s.String()
22693}
22694
22695// Validate inspects the fields of the type to determine if they are valid.
22696func (s *RestoreFromClusterSnapshotInput) Validate() error {
22697	invalidParams := request.ErrInvalidParams{Context: "RestoreFromClusterSnapshotInput"}
22698	if s.ClusterIdentifier == nil {
22699		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
22700	}
22701	if s.SnapshotIdentifier == nil {
22702		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
22703	}
22704
22705	if invalidParams.Len() > 0 {
22706		return invalidParams
22707	}
22708	return nil
22709}
22710
22711// SetAdditionalInfo sets the AdditionalInfo field's value.
22712func (s *RestoreFromClusterSnapshotInput) SetAdditionalInfo(v string) *RestoreFromClusterSnapshotInput {
22713	s.AdditionalInfo = &v
22714	return s
22715}
22716
22717// SetAllowVersionUpgrade sets the AllowVersionUpgrade field's value.
22718func (s *RestoreFromClusterSnapshotInput) SetAllowVersionUpgrade(v bool) *RestoreFromClusterSnapshotInput {
22719	s.AllowVersionUpgrade = &v
22720	return s
22721}
22722
22723// SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
22724func (s *RestoreFromClusterSnapshotInput) SetAutomatedSnapshotRetentionPeriod(v int64) *RestoreFromClusterSnapshotInput {
22725	s.AutomatedSnapshotRetentionPeriod = &v
22726	return s
22727}
22728
22729// SetAvailabilityZone sets the AvailabilityZone field's value.
22730func (s *RestoreFromClusterSnapshotInput) SetAvailabilityZone(v string) *RestoreFromClusterSnapshotInput {
22731	s.AvailabilityZone = &v
22732	return s
22733}
22734
22735// SetClusterIdentifier sets the ClusterIdentifier field's value.
22736func (s *RestoreFromClusterSnapshotInput) SetClusterIdentifier(v string) *RestoreFromClusterSnapshotInput {
22737	s.ClusterIdentifier = &v
22738	return s
22739}
22740
22741// SetClusterParameterGroupName sets the ClusterParameterGroupName field's value.
22742func (s *RestoreFromClusterSnapshotInput) SetClusterParameterGroupName(v string) *RestoreFromClusterSnapshotInput {
22743	s.ClusterParameterGroupName = &v
22744	return s
22745}
22746
22747// SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
22748func (s *RestoreFromClusterSnapshotInput) SetClusterSecurityGroups(v []*string) *RestoreFromClusterSnapshotInput {
22749	s.ClusterSecurityGroups = v
22750	return s
22751}
22752
22753// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
22754func (s *RestoreFromClusterSnapshotInput) SetClusterSubnetGroupName(v string) *RestoreFromClusterSnapshotInput {
22755	s.ClusterSubnetGroupName = &v
22756	return s
22757}
22758
22759// SetElasticIp sets the ElasticIp field's value.
22760func (s *RestoreFromClusterSnapshotInput) SetElasticIp(v string) *RestoreFromClusterSnapshotInput {
22761	s.ElasticIp = &v
22762	return s
22763}
22764
22765// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
22766func (s *RestoreFromClusterSnapshotInput) SetEnhancedVpcRouting(v bool) *RestoreFromClusterSnapshotInput {
22767	s.EnhancedVpcRouting = &v
22768	return s
22769}
22770
22771// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
22772func (s *RestoreFromClusterSnapshotInput) SetHsmClientCertificateIdentifier(v string) *RestoreFromClusterSnapshotInput {
22773	s.HsmClientCertificateIdentifier = &v
22774	return s
22775}
22776
22777// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
22778func (s *RestoreFromClusterSnapshotInput) SetHsmConfigurationIdentifier(v string) *RestoreFromClusterSnapshotInput {
22779	s.HsmConfigurationIdentifier = &v
22780	return s
22781}
22782
22783// SetIamRoles sets the IamRoles field's value.
22784func (s *RestoreFromClusterSnapshotInput) SetIamRoles(v []*string) *RestoreFromClusterSnapshotInput {
22785	s.IamRoles = v
22786	return s
22787}
22788
22789// SetKmsKeyId sets the KmsKeyId field's value.
22790func (s *RestoreFromClusterSnapshotInput) SetKmsKeyId(v string) *RestoreFromClusterSnapshotInput {
22791	s.KmsKeyId = &v
22792	return s
22793}
22794
22795// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
22796func (s *RestoreFromClusterSnapshotInput) SetMaintenanceTrackName(v string) *RestoreFromClusterSnapshotInput {
22797	s.MaintenanceTrackName = &v
22798	return s
22799}
22800
22801// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
22802func (s *RestoreFromClusterSnapshotInput) SetManualSnapshotRetentionPeriod(v int64) *RestoreFromClusterSnapshotInput {
22803	s.ManualSnapshotRetentionPeriod = &v
22804	return s
22805}
22806
22807// SetNodeType sets the NodeType field's value.
22808func (s *RestoreFromClusterSnapshotInput) SetNodeType(v string) *RestoreFromClusterSnapshotInput {
22809	s.NodeType = &v
22810	return s
22811}
22812
22813// SetNumberOfNodes sets the NumberOfNodes field's value.
22814func (s *RestoreFromClusterSnapshotInput) SetNumberOfNodes(v int64) *RestoreFromClusterSnapshotInput {
22815	s.NumberOfNodes = &v
22816	return s
22817}
22818
22819// SetOwnerAccount sets the OwnerAccount field's value.
22820func (s *RestoreFromClusterSnapshotInput) SetOwnerAccount(v string) *RestoreFromClusterSnapshotInput {
22821	s.OwnerAccount = &v
22822	return s
22823}
22824
22825// SetPort sets the Port field's value.
22826func (s *RestoreFromClusterSnapshotInput) SetPort(v int64) *RestoreFromClusterSnapshotInput {
22827	s.Port = &v
22828	return s
22829}
22830
22831// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
22832func (s *RestoreFromClusterSnapshotInput) SetPreferredMaintenanceWindow(v string) *RestoreFromClusterSnapshotInput {
22833	s.PreferredMaintenanceWindow = &v
22834	return s
22835}
22836
22837// SetPubliclyAccessible sets the PubliclyAccessible field's value.
22838func (s *RestoreFromClusterSnapshotInput) SetPubliclyAccessible(v bool) *RestoreFromClusterSnapshotInput {
22839	s.PubliclyAccessible = &v
22840	return s
22841}
22842
22843// SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
22844func (s *RestoreFromClusterSnapshotInput) SetSnapshotClusterIdentifier(v string) *RestoreFromClusterSnapshotInput {
22845	s.SnapshotClusterIdentifier = &v
22846	return s
22847}
22848
22849// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
22850func (s *RestoreFromClusterSnapshotInput) SetSnapshotIdentifier(v string) *RestoreFromClusterSnapshotInput {
22851	s.SnapshotIdentifier = &v
22852	return s
22853}
22854
22855// SetSnapshotScheduleIdentifier sets the SnapshotScheduleIdentifier field's value.
22856func (s *RestoreFromClusterSnapshotInput) SetSnapshotScheduleIdentifier(v string) *RestoreFromClusterSnapshotInput {
22857	s.SnapshotScheduleIdentifier = &v
22858	return s
22859}
22860
22861// SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
22862func (s *RestoreFromClusterSnapshotInput) SetVpcSecurityGroupIds(v []*string) *RestoreFromClusterSnapshotInput {
22863	s.VpcSecurityGroupIds = v
22864	return s
22865}
22866
22867type RestoreFromClusterSnapshotOutput struct {
22868	_ struct{} `type:"structure"`
22869
22870	// Describes a cluster.
22871	Cluster *Cluster `type:"structure"`
22872}
22873
22874// String returns the string representation
22875func (s RestoreFromClusterSnapshotOutput) String() string {
22876	return awsutil.Prettify(s)
22877}
22878
22879// GoString returns the string representation
22880func (s RestoreFromClusterSnapshotOutput) GoString() string {
22881	return s.String()
22882}
22883
22884// SetCluster sets the Cluster field's value.
22885func (s *RestoreFromClusterSnapshotOutput) SetCluster(v *Cluster) *RestoreFromClusterSnapshotOutput {
22886	s.Cluster = v
22887	return s
22888}
22889
22890// Describes the status of a cluster restore action. Returns null if the cluster
22891// was not created by restoring a snapshot.
22892type RestoreStatus struct {
22893	_ struct{} `type:"structure"`
22894
22895	// The number of megabytes per second being transferred from the backup storage.
22896	// Returns the average rate for a completed backup. This field is only updated
22897	// when you restore to DC2 and DS2 node types.
22898	CurrentRestoreRateInMegaBytesPerSecond *float64 `type:"double"`
22899
22900	// The amount of time an in-progress restore has been running, or the amount
22901	// of time it took a completed restore to finish. This field is only updated
22902	// when you restore to DC2 and DS2 node types.
22903	ElapsedTimeInSeconds *int64 `type:"long"`
22904
22905	// The estimate of the time remaining before the restore will complete. Returns
22906	// 0 for a completed restore. This field is only updated when you restore to
22907	// DC2 and DS2 node types.
22908	EstimatedTimeToCompletionInSeconds *int64 `type:"long"`
22909
22910	// The number of megabytes that have been transferred from snapshot storage.
22911	// This field is only updated when you restore to DC2 and DS2 node types.
22912	ProgressInMegaBytes *int64 `type:"long"`
22913
22914	// The size of the set of snapshot data used to restore the cluster. This field
22915	// is only updated when you restore to DC2 and DS2 node types.
22916	SnapshotSizeInMegaBytes *int64 `type:"long"`
22917
22918	// The status of the restore action. Returns starting, restoring, completed,
22919	// or failed.
22920	Status *string `type:"string"`
22921}
22922
22923// String returns the string representation
22924func (s RestoreStatus) String() string {
22925	return awsutil.Prettify(s)
22926}
22927
22928// GoString returns the string representation
22929func (s RestoreStatus) GoString() string {
22930	return s.String()
22931}
22932
22933// SetCurrentRestoreRateInMegaBytesPerSecond sets the CurrentRestoreRateInMegaBytesPerSecond field's value.
22934func (s *RestoreStatus) SetCurrentRestoreRateInMegaBytesPerSecond(v float64) *RestoreStatus {
22935	s.CurrentRestoreRateInMegaBytesPerSecond = &v
22936	return s
22937}
22938
22939// SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
22940func (s *RestoreStatus) SetElapsedTimeInSeconds(v int64) *RestoreStatus {
22941	s.ElapsedTimeInSeconds = &v
22942	return s
22943}
22944
22945// SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value.
22946func (s *RestoreStatus) SetEstimatedTimeToCompletionInSeconds(v int64) *RestoreStatus {
22947	s.EstimatedTimeToCompletionInSeconds = &v
22948	return s
22949}
22950
22951// SetProgressInMegaBytes sets the ProgressInMegaBytes field's value.
22952func (s *RestoreStatus) SetProgressInMegaBytes(v int64) *RestoreStatus {
22953	s.ProgressInMegaBytes = &v
22954	return s
22955}
22956
22957// SetSnapshotSizeInMegaBytes sets the SnapshotSizeInMegaBytes field's value.
22958func (s *RestoreStatus) SetSnapshotSizeInMegaBytes(v int64) *RestoreStatus {
22959	s.SnapshotSizeInMegaBytes = &v
22960	return s
22961}
22962
22963// SetStatus sets the Status field's value.
22964func (s *RestoreStatus) SetStatus(v string) *RestoreStatus {
22965	s.Status = &v
22966	return s
22967}
22968
22969type RestoreTableFromClusterSnapshotInput struct {
22970	_ struct{} `type:"structure"`
22971
22972	// The identifier of the Amazon Redshift cluster to restore the table to.
22973	//
22974	// ClusterIdentifier is a required field
22975	ClusterIdentifier *string `type:"string" required:"true"`
22976
22977	// The name of the table to create as a result of the current request.
22978	//
22979	// NewTableName is a required field
22980	NewTableName *string `type:"string" required:"true"`
22981
22982	// The identifier of the snapshot to restore the table from. This snapshot must
22983	// have been created from the Amazon Redshift cluster specified by the ClusterIdentifier
22984	// parameter.
22985	//
22986	// SnapshotIdentifier is a required field
22987	SnapshotIdentifier *string `type:"string" required:"true"`
22988
22989	// The name of the source database that contains the table to restore from.
22990	//
22991	// SourceDatabaseName is a required field
22992	SourceDatabaseName *string `type:"string" required:"true"`
22993
22994	// The name of the source schema that contains the table to restore from. If
22995	// you do not specify a SourceSchemaName value, the default is public.
22996	SourceSchemaName *string `type:"string"`
22997
22998	// The name of the source table to restore from.
22999	//
23000	// SourceTableName is a required field
23001	SourceTableName *string `type:"string" required:"true"`
23002
23003	// The name of the database to restore the table to.
23004	TargetDatabaseName *string `type:"string"`
23005
23006	// The name of the schema to restore the table to.
23007	TargetSchemaName *string `type:"string"`
23008}
23009
23010// String returns the string representation
23011func (s RestoreTableFromClusterSnapshotInput) String() string {
23012	return awsutil.Prettify(s)
23013}
23014
23015// GoString returns the string representation
23016func (s RestoreTableFromClusterSnapshotInput) GoString() string {
23017	return s.String()
23018}
23019
23020// Validate inspects the fields of the type to determine if they are valid.
23021func (s *RestoreTableFromClusterSnapshotInput) Validate() error {
23022	invalidParams := request.ErrInvalidParams{Context: "RestoreTableFromClusterSnapshotInput"}
23023	if s.ClusterIdentifier == nil {
23024		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
23025	}
23026	if s.NewTableName == nil {
23027		invalidParams.Add(request.NewErrParamRequired("NewTableName"))
23028	}
23029	if s.SnapshotIdentifier == nil {
23030		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
23031	}
23032	if s.SourceDatabaseName == nil {
23033		invalidParams.Add(request.NewErrParamRequired("SourceDatabaseName"))
23034	}
23035	if s.SourceTableName == nil {
23036		invalidParams.Add(request.NewErrParamRequired("SourceTableName"))
23037	}
23038
23039	if invalidParams.Len() > 0 {
23040		return invalidParams
23041	}
23042	return nil
23043}
23044
23045// SetClusterIdentifier sets the ClusterIdentifier field's value.
23046func (s *RestoreTableFromClusterSnapshotInput) SetClusterIdentifier(v string) *RestoreTableFromClusterSnapshotInput {
23047	s.ClusterIdentifier = &v
23048	return s
23049}
23050
23051// SetNewTableName sets the NewTableName field's value.
23052func (s *RestoreTableFromClusterSnapshotInput) SetNewTableName(v string) *RestoreTableFromClusterSnapshotInput {
23053	s.NewTableName = &v
23054	return s
23055}
23056
23057// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
23058func (s *RestoreTableFromClusterSnapshotInput) SetSnapshotIdentifier(v string) *RestoreTableFromClusterSnapshotInput {
23059	s.SnapshotIdentifier = &v
23060	return s
23061}
23062
23063// SetSourceDatabaseName sets the SourceDatabaseName field's value.
23064func (s *RestoreTableFromClusterSnapshotInput) SetSourceDatabaseName(v string) *RestoreTableFromClusterSnapshotInput {
23065	s.SourceDatabaseName = &v
23066	return s
23067}
23068
23069// SetSourceSchemaName sets the SourceSchemaName field's value.
23070func (s *RestoreTableFromClusterSnapshotInput) SetSourceSchemaName(v string) *RestoreTableFromClusterSnapshotInput {
23071	s.SourceSchemaName = &v
23072	return s
23073}
23074
23075// SetSourceTableName sets the SourceTableName field's value.
23076func (s *RestoreTableFromClusterSnapshotInput) SetSourceTableName(v string) *RestoreTableFromClusterSnapshotInput {
23077	s.SourceTableName = &v
23078	return s
23079}
23080
23081// SetTargetDatabaseName sets the TargetDatabaseName field's value.
23082func (s *RestoreTableFromClusterSnapshotInput) SetTargetDatabaseName(v string) *RestoreTableFromClusterSnapshotInput {
23083	s.TargetDatabaseName = &v
23084	return s
23085}
23086
23087// SetTargetSchemaName sets the TargetSchemaName field's value.
23088func (s *RestoreTableFromClusterSnapshotInput) SetTargetSchemaName(v string) *RestoreTableFromClusterSnapshotInput {
23089	s.TargetSchemaName = &v
23090	return s
23091}
23092
23093type RestoreTableFromClusterSnapshotOutput struct {
23094	_ struct{} `type:"structure"`
23095
23096	// Describes the status of a RestoreTableFromClusterSnapshot operation.
23097	TableRestoreStatus *TableRestoreStatus `type:"structure"`
23098}
23099
23100// String returns the string representation
23101func (s RestoreTableFromClusterSnapshotOutput) String() string {
23102	return awsutil.Prettify(s)
23103}
23104
23105// GoString returns the string representation
23106func (s RestoreTableFromClusterSnapshotOutput) GoString() string {
23107	return s.String()
23108}
23109
23110// SetTableRestoreStatus sets the TableRestoreStatus field's value.
23111func (s *RestoreTableFromClusterSnapshotOutput) SetTableRestoreStatus(v *TableRestoreStatus) *RestoreTableFromClusterSnapshotOutput {
23112	s.TableRestoreStatus = v
23113	return s
23114}
23115
23116type ResumeClusterInput struct {
23117	_ struct{} `type:"structure"`
23118
23119	// The identifier of the cluster to be resumed.
23120	//
23121	// ClusterIdentifier is a required field
23122	ClusterIdentifier *string `type:"string" required:"true"`
23123}
23124
23125// String returns the string representation
23126func (s ResumeClusterInput) String() string {
23127	return awsutil.Prettify(s)
23128}
23129
23130// GoString returns the string representation
23131func (s ResumeClusterInput) GoString() string {
23132	return s.String()
23133}
23134
23135// Validate inspects the fields of the type to determine if they are valid.
23136func (s *ResumeClusterInput) Validate() error {
23137	invalidParams := request.ErrInvalidParams{Context: "ResumeClusterInput"}
23138	if s.ClusterIdentifier == nil {
23139		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
23140	}
23141
23142	if invalidParams.Len() > 0 {
23143		return invalidParams
23144	}
23145	return nil
23146}
23147
23148// SetClusterIdentifier sets the ClusterIdentifier field's value.
23149func (s *ResumeClusterInput) SetClusterIdentifier(v string) *ResumeClusterInput {
23150	s.ClusterIdentifier = &v
23151	return s
23152}
23153
23154type ResumeClusterMessage struct {
23155	_ struct{} `type:"structure"`
23156
23157	// The identifier of the cluster to be resumed.
23158	//
23159	// ClusterIdentifier is a required field
23160	ClusterIdentifier *string `type:"string" required:"true"`
23161}
23162
23163// String returns the string representation
23164func (s ResumeClusterMessage) String() string {
23165	return awsutil.Prettify(s)
23166}
23167
23168// GoString returns the string representation
23169func (s ResumeClusterMessage) GoString() string {
23170	return s.String()
23171}
23172
23173// Validate inspects the fields of the type to determine if they are valid.
23174func (s *ResumeClusterMessage) Validate() error {
23175	invalidParams := request.ErrInvalidParams{Context: "ResumeClusterMessage"}
23176	if s.ClusterIdentifier == nil {
23177		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
23178	}
23179
23180	if invalidParams.Len() > 0 {
23181		return invalidParams
23182	}
23183	return nil
23184}
23185
23186// SetClusterIdentifier sets the ClusterIdentifier field's value.
23187func (s *ResumeClusterMessage) SetClusterIdentifier(v string) *ResumeClusterMessage {
23188	s.ClusterIdentifier = &v
23189	return s
23190}
23191
23192type ResumeClusterOutput struct {
23193	_ struct{} `type:"structure"`
23194
23195	// Describes a cluster.
23196	Cluster *Cluster `type:"structure"`
23197}
23198
23199// String returns the string representation
23200func (s ResumeClusterOutput) String() string {
23201	return awsutil.Prettify(s)
23202}
23203
23204// GoString returns the string representation
23205func (s ResumeClusterOutput) GoString() string {
23206	return s.String()
23207}
23208
23209// SetCluster sets the Cluster field's value.
23210func (s *ResumeClusterOutput) SetCluster(v *Cluster) *ResumeClusterOutput {
23211	s.Cluster = v
23212	return s
23213}
23214
23215// Describes a RevisionTarget.
23216type RevisionTarget struct {
23217	_ struct{} `type:"structure"`
23218
23219	// A unique string that identifies the version to update the cluster to. You
23220	// can use this value in ModifyClusterDbRevision.
23221	DatabaseRevision *string `type:"string"`
23222
23223	// The date on which the database revision was released.
23224	DatabaseRevisionReleaseDate *time.Time `type:"timestamp"`
23225
23226	// A string that describes the changes and features that will be applied to
23227	// the cluster when it is updated to the corresponding ClusterDbRevision.
23228	Description *string `type:"string"`
23229}
23230
23231// String returns the string representation
23232func (s RevisionTarget) String() string {
23233	return awsutil.Prettify(s)
23234}
23235
23236// GoString returns the string representation
23237func (s RevisionTarget) GoString() string {
23238	return s.String()
23239}
23240
23241// SetDatabaseRevision sets the DatabaseRevision field's value.
23242func (s *RevisionTarget) SetDatabaseRevision(v string) *RevisionTarget {
23243	s.DatabaseRevision = &v
23244	return s
23245}
23246
23247// SetDatabaseRevisionReleaseDate sets the DatabaseRevisionReleaseDate field's value.
23248func (s *RevisionTarget) SetDatabaseRevisionReleaseDate(v time.Time) *RevisionTarget {
23249	s.DatabaseRevisionReleaseDate = &v
23250	return s
23251}
23252
23253// SetDescription sets the Description field's value.
23254func (s *RevisionTarget) SetDescription(v string) *RevisionTarget {
23255	s.Description = &v
23256	return s
23257}
23258
23259type RevokeClusterSecurityGroupIngressInput struct {
23260	_ struct{} `type:"structure"`
23261
23262	// The IP range for which to revoke access. This range must be a valid Classless
23263	// Inter-Domain Routing (CIDR) block of IP addresses. If CIDRIP is specified,
23264	// EC2SecurityGroupName and EC2SecurityGroupOwnerId cannot be provided.
23265	CIDRIP *string `type:"string"`
23266
23267	// The name of the security Group from which to revoke the ingress rule.
23268	//
23269	// ClusterSecurityGroupName is a required field
23270	ClusterSecurityGroupName *string `type:"string" required:"true"`
23271
23272	// The name of the EC2 Security Group whose access is to be revoked. If EC2SecurityGroupName
23273	// is specified, EC2SecurityGroupOwnerId must also be provided and CIDRIP cannot
23274	// be provided.
23275	EC2SecurityGroupName *string `type:"string"`
23276
23277	// The AWS account number of the owner of the security group specified in the
23278	// EC2SecurityGroupName parameter. The AWS access key ID is not an acceptable
23279	// value. If EC2SecurityGroupOwnerId is specified, EC2SecurityGroupName must
23280	// also be provided. and CIDRIP cannot be provided.
23281	//
23282	// Example: 111122223333
23283	EC2SecurityGroupOwnerId *string `type:"string"`
23284}
23285
23286// String returns the string representation
23287func (s RevokeClusterSecurityGroupIngressInput) String() string {
23288	return awsutil.Prettify(s)
23289}
23290
23291// GoString returns the string representation
23292func (s RevokeClusterSecurityGroupIngressInput) GoString() string {
23293	return s.String()
23294}
23295
23296// Validate inspects the fields of the type to determine if they are valid.
23297func (s *RevokeClusterSecurityGroupIngressInput) Validate() error {
23298	invalidParams := request.ErrInvalidParams{Context: "RevokeClusterSecurityGroupIngressInput"}
23299	if s.ClusterSecurityGroupName == nil {
23300		invalidParams.Add(request.NewErrParamRequired("ClusterSecurityGroupName"))
23301	}
23302
23303	if invalidParams.Len() > 0 {
23304		return invalidParams
23305	}
23306	return nil
23307}
23308
23309// SetCIDRIP sets the CIDRIP field's value.
23310func (s *RevokeClusterSecurityGroupIngressInput) SetCIDRIP(v string) *RevokeClusterSecurityGroupIngressInput {
23311	s.CIDRIP = &v
23312	return s
23313}
23314
23315// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
23316func (s *RevokeClusterSecurityGroupIngressInput) SetClusterSecurityGroupName(v string) *RevokeClusterSecurityGroupIngressInput {
23317	s.ClusterSecurityGroupName = &v
23318	return s
23319}
23320
23321// SetEC2SecurityGroupName sets the EC2SecurityGroupName field's value.
23322func (s *RevokeClusterSecurityGroupIngressInput) SetEC2SecurityGroupName(v string) *RevokeClusterSecurityGroupIngressInput {
23323	s.EC2SecurityGroupName = &v
23324	return s
23325}
23326
23327// SetEC2SecurityGroupOwnerId sets the EC2SecurityGroupOwnerId field's value.
23328func (s *RevokeClusterSecurityGroupIngressInput) SetEC2SecurityGroupOwnerId(v string) *RevokeClusterSecurityGroupIngressInput {
23329	s.EC2SecurityGroupOwnerId = &v
23330	return s
23331}
23332
23333type RevokeClusterSecurityGroupIngressOutput struct {
23334	_ struct{} `type:"structure"`
23335
23336	// Describes a security group.
23337	ClusterSecurityGroup *ClusterSecurityGroup `type:"structure"`
23338}
23339
23340// String returns the string representation
23341func (s RevokeClusterSecurityGroupIngressOutput) String() string {
23342	return awsutil.Prettify(s)
23343}
23344
23345// GoString returns the string representation
23346func (s RevokeClusterSecurityGroupIngressOutput) GoString() string {
23347	return s.String()
23348}
23349
23350// SetClusterSecurityGroup sets the ClusterSecurityGroup field's value.
23351func (s *RevokeClusterSecurityGroupIngressOutput) SetClusterSecurityGroup(v *ClusterSecurityGroup) *RevokeClusterSecurityGroupIngressOutput {
23352	s.ClusterSecurityGroup = v
23353	return s
23354}
23355
23356type RevokeSnapshotAccessInput struct {
23357	_ struct{} `type:"structure"`
23358
23359	// The identifier of the AWS customer account that can no longer restore the
23360	// specified snapshot.
23361	//
23362	// AccountWithRestoreAccess is a required field
23363	AccountWithRestoreAccess *string `type:"string" required:"true"`
23364
23365	// The identifier of the cluster the snapshot was created from. This parameter
23366	// is required if your IAM user has a policy containing a snapshot resource
23367	// element that specifies anything other than * for the cluster name.
23368	SnapshotClusterIdentifier *string `type:"string"`
23369
23370	// The identifier of the snapshot that the account can no longer access.
23371	//
23372	// SnapshotIdentifier is a required field
23373	SnapshotIdentifier *string `type:"string" required:"true"`
23374}
23375
23376// String returns the string representation
23377func (s RevokeSnapshotAccessInput) String() string {
23378	return awsutil.Prettify(s)
23379}
23380
23381// GoString returns the string representation
23382func (s RevokeSnapshotAccessInput) GoString() string {
23383	return s.String()
23384}
23385
23386// Validate inspects the fields of the type to determine if they are valid.
23387func (s *RevokeSnapshotAccessInput) Validate() error {
23388	invalidParams := request.ErrInvalidParams{Context: "RevokeSnapshotAccessInput"}
23389	if s.AccountWithRestoreAccess == nil {
23390		invalidParams.Add(request.NewErrParamRequired("AccountWithRestoreAccess"))
23391	}
23392	if s.SnapshotIdentifier == nil {
23393		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
23394	}
23395
23396	if invalidParams.Len() > 0 {
23397		return invalidParams
23398	}
23399	return nil
23400}
23401
23402// SetAccountWithRestoreAccess sets the AccountWithRestoreAccess field's value.
23403func (s *RevokeSnapshotAccessInput) SetAccountWithRestoreAccess(v string) *RevokeSnapshotAccessInput {
23404	s.AccountWithRestoreAccess = &v
23405	return s
23406}
23407
23408// SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
23409func (s *RevokeSnapshotAccessInput) SetSnapshotClusterIdentifier(v string) *RevokeSnapshotAccessInput {
23410	s.SnapshotClusterIdentifier = &v
23411	return s
23412}
23413
23414// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
23415func (s *RevokeSnapshotAccessInput) SetSnapshotIdentifier(v string) *RevokeSnapshotAccessInput {
23416	s.SnapshotIdentifier = &v
23417	return s
23418}
23419
23420type RevokeSnapshotAccessOutput struct {
23421	_ struct{} `type:"structure"`
23422
23423	// Describes a snapshot.
23424	Snapshot *Snapshot `type:"structure"`
23425}
23426
23427// String returns the string representation
23428func (s RevokeSnapshotAccessOutput) String() string {
23429	return awsutil.Prettify(s)
23430}
23431
23432// GoString returns the string representation
23433func (s RevokeSnapshotAccessOutput) GoString() string {
23434	return s.String()
23435}
23436
23437// SetSnapshot sets the Snapshot field's value.
23438func (s *RevokeSnapshotAccessOutput) SetSnapshot(v *Snapshot) *RevokeSnapshotAccessOutput {
23439	s.Snapshot = v
23440	return s
23441}
23442
23443type RotateEncryptionKeyInput struct {
23444	_ struct{} `type:"structure"`
23445
23446	// The unique identifier of the cluster that you want to rotate the encryption
23447	// keys for.
23448	//
23449	// Constraints: Must be the name of valid cluster that has encryption enabled.
23450	//
23451	// ClusterIdentifier is a required field
23452	ClusterIdentifier *string `type:"string" required:"true"`
23453}
23454
23455// String returns the string representation
23456func (s RotateEncryptionKeyInput) String() string {
23457	return awsutil.Prettify(s)
23458}
23459
23460// GoString returns the string representation
23461func (s RotateEncryptionKeyInput) GoString() string {
23462	return s.String()
23463}
23464
23465// Validate inspects the fields of the type to determine if they are valid.
23466func (s *RotateEncryptionKeyInput) Validate() error {
23467	invalidParams := request.ErrInvalidParams{Context: "RotateEncryptionKeyInput"}
23468	if s.ClusterIdentifier == nil {
23469		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
23470	}
23471
23472	if invalidParams.Len() > 0 {
23473		return invalidParams
23474	}
23475	return nil
23476}
23477
23478// SetClusterIdentifier sets the ClusterIdentifier field's value.
23479func (s *RotateEncryptionKeyInput) SetClusterIdentifier(v string) *RotateEncryptionKeyInput {
23480	s.ClusterIdentifier = &v
23481	return s
23482}
23483
23484type RotateEncryptionKeyOutput struct {
23485	_ struct{} `type:"structure"`
23486
23487	// Describes a cluster.
23488	Cluster *Cluster `type:"structure"`
23489}
23490
23491// String returns the string representation
23492func (s RotateEncryptionKeyOutput) String() string {
23493	return awsutil.Prettify(s)
23494}
23495
23496// GoString returns the string representation
23497func (s RotateEncryptionKeyOutput) GoString() string {
23498	return s.String()
23499}
23500
23501// SetCluster sets the Cluster field's value.
23502func (s *RotateEncryptionKeyOutput) SetCluster(v *Cluster) *RotateEncryptionKeyOutput {
23503	s.Cluster = v
23504	return s
23505}
23506
23507// Describes a scheduled action. You can use a scheduled action to trigger some
23508// Amazon Redshift API operations on a schedule. For information about which
23509// API operations can be scheduled, see ScheduledActionType.
23510type ScheduledAction struct {
23511	_ struct{} `type:"structure"`
23512
23513	// The end time in UTC when the schedule is no longer active. After this time,
23514	// the scheduled action does not trigger.
23515	EndTime *time.Time `type:"timestamp"`
23516
23517	// The IAM role to assume to run the scheduled action. This IAM role must have
23518	// permission to run the Amazon Redshift API operation in the scheduled action.
23519	// This IAM role must allow the Amazon Redshift scheduler (Principal scheduler.redshift.amazonaws.com)
23520	// to assume permissions on your behalf. For more information about the IAM
23521	// role to use with the Amazon Redshift scheduler, see Using Identity-Based
23522	// Policies for Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html)
23523	// in the Amazon Redshift Cluster Management Guide.
23524	IamRole *string `type:"string"`
23525
23526	// List of times when the scheduled action will run.
23527	NextInvocations []*time.Time `locationNameList:"ScheduledActionTime" type:"list"`
23528
23529	// The schedule for a one-time (at format) or recurring (cron format) scheduled
23530	// action. Schedule invocations must be separated by at least one hour.
23531	//
23532	// Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)".
23533	//
23534	// Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week
23535	// Year)". For example, "cron(0 10 ? * MON *)". For more information, see Cron
23536	// Expressions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions)
23537	// in the Amazon CloudWatch Events User Guide.
23538	Schedule *string `type:"string"`
23539
23540	// The description of the scheduled action.
23541	ScheduledActionDescription *string `type:"string"`
23542
23543	// The name of the scheduled action.
23544	ScheduledActionName *string `type:"string"`
23545
23546	// The start time in UTC when the schedule is active. Before this time, the
23547	// scheduled action does not trigger.
23548	StartTime *time.Time `type:"timestamp"`
23549
23550	// The state of the scheduled action. For example, DISABLED.
23551	State *string `type:"string" enum:"ScheduledActionState"`
23552
23553	// A JSON format string of the Amazon Redshift API operation with input parameters.
23554	//
23555	// "{\"ResizeCluster\":{\"NodeType\":\"ds2.8xlarge\",\"ClusterIdentifier\":\"my-test-cluster\",\"NumberOfNodes\":3}}".
23556	TargetAction *ScheduledActionType `type:"structure"`
23557}
23558
23559// String returns the string representation
23560func (s ScheduledAction) String() string {
23561	return awsutil.Prettify(s)
23562}
23563
23564// GoString returns the string representation
23565func (s ScheduledAction) GoString() string {
23566	return s.String()
23567}
23568
23569// SetEndTime sets the EndTime field's value.
23570func (s *ScheduledAction) SetEndTime(v time.Time) *ScheduledAction {
23571	s.EndTime = &v
23572	return s
23573}
23574
23575// SetIamRole sets the IamRole field's value.
23576func (s *ScheduledAction) SetIamRole(v string) *ScheduledAction {
23577	s.IamRole = &v
23578	return s
23579}
23580
23581// SetNextInvocations sets the NextInvocations field's value.
23582func (s *ScheduledAction) SetNextInvocations(v []*time.Time) *ScheduledAction {
23583	s.NextInvocations = v
23584	return s
23585}
23586
23587// SetSchedule sets the Schedule field's value.
23588func (s *ScheduledAction) SetSchedule(v string) *ScheduledAction {
23589	s.Schedule = &v
23590	return s
23591}
23592
23593// SetScheduledActionDescription sets the ScheduledActionDescription field's value.
23594func (s *ScheduledAction) SetScheduledActionDescription(v string) *ScheduledAction {
23595	s.ScheduledActionDescription = &v
23596	return s
23597}
23598
23599// SetScheduledActionName sets the ScheduledActionName field's value.
23600func (s *ScheduledAction) SetScheduledActionName(v string) *ScheduledAction {
23601	s.ScheduledActionName = &v
23602	return s
23603}
23604
23605// SetStartTime sets the StartTime field's value.
23606func (s *ScheduledAction) SetStartTime(v time.Time) *ScheduledAction {
23607	s.StartTime = &v
23608	return s
23609}
23610
23611// SetState sets the State field's value.
23612func (s *ScheduledAction) SetState(v string) *ScheduledAction {
23613	s.State = &v
23614	return s
23615}
23616
23617// SetTargetAction sets the TargetAction field's value.
23618func (s *ScheduledAction) SetTargetAction(v *ScheduledActionType) *ScheduledAction {
23619	s.TargetAction = v
23620	return s
23621}
23622
23623// A set of elements to filter the returned scheduled actions.
23624type ScheduledActionFilter struct {
23625	_ struct{} `type:"structure"`
23626
23627	// The type of element to filter.
23628	//
23629	// Name is a required field
23630	Name *string `type:"string" required:"true" enum:"ScheduledActionFilterName"`
23631
23632	// List of values. Compare if the value (of type defined by Name) equals an
23633	// item in the list of scheduled actions.
23634	//
23635	// Values is a required field
23636	Values []*string `locationNameList:"item" type:"list" required:"true"`
23637}
23638
23639// String returns the string representation
23640func (s ScheduledActionFilter) String() string {
23641	return awsutil.Prettify(s)
23642}
23643
23644// GoString returns the string representation
23645func (s ScheduledActionFilter) GoString() string {
23646	return s.String()
23647}
23648
23649// Validate inspects the fields of the type to determine if they are valid.
23650func (s *ScheduledActionFilter) Validate() error {
23651	invalidParams := request.ErrInvalidParams{Context: "ScheduledActionFilter"}
23652	if s.Name == nil {
23653		invalidParams.Add(request.NewErrParamRequired("Name"))
23654	}
23655	if s.Values == nil {
23656		invalidParams.Add(request.NewErrParamRequired("Values"))
23657	}
23658
23659	if invalidParams.Len() > 0 {
23660		return invalidParams
23661	}
23662	return nil
23663}
23664
23665// SetName sets the Name field's value.
23666func (s *ScheduledActionFilter) SetName(v string) *ScheduledActionFilter {
23667	s.Name = &v
23668	return s
23669}
23670
23671// SetValues sets the Values field's value.
23672func (s *ScheduledActionFilter) SetValues(v []*string) *ScheduledActionFilter {
23673	s.Values = v
23674	return s
23675}
23676
23677// The action type that specifies an Amazon Redshift API operation that is supported
23678// by the Amazon Redshift scheduler.
23679type ScheduledActionType struct {
23680	_ struct{} `type:"structure"`
23681
23682	// An action that runs a PauseCluster API operation.
23683	PauseCluster *PauseClusterMessage `type:"structure"`
23684
23685	// An action that runs a ResizeCluster API operation.
23686	ResizeCluster *ResizeClusterMessage `type:"structure"`
23687
23688	// An action that runs a ResumeCluster API operation.
23689	ResumeCluster *ResumeClusterMessage `type:"structure"`
23690}
23691
23692// String returns the string representation
23693func (s ScheduledActionType) String() string {
23694	return awsutil.Prettify(s)
23695}
23696
23697// GoString returns the string representation
23698func (s ScheduledActionType) GoString() string {
23699	return s.String()
23700}
23701
23702// Validate inspects the fields of the type to determine if they are valid.
23703func (s *ScheduledActionType) Validate() error {
23704	invalidParams := request.ErrInvalidParams{Context: "ScheduledActionType"}
23705	if s.PauseCluster != nil {
23706		if err := s.PauseCluster.Validate(); err != nil {
23707			invalidParams.AddNested("PauseCluster", err.(request.ErrInvalidParams))
23708		}
23709	}
23710	if s.ResizeCluster != nil {
23711		if err := s.ResizeCluster.Validate(); err != nil {
23712			invalidParams.AddNested("ResizeCluster", err.(request.ErrInvalidParams))
23713		}
23714	}
23715	if s.ResumeCluster != nil {
23716		if err := s.ResumeCluster.Validate(); err != nil {
23717			invalidParams.AddNested("ResumeCluster", err.(request.ErrInvalidParams))
23718		}
23719	}
23720
23721	if invalidParams.Len() > 0 {
23722		return invalidParams
23723	}
23724	return nil
23725}
23726
23727// SetPauseCluster sets the PauseCluster field's value.
23728func (s *ScheduledActionType) SetPauseCluster(v *PauseClusterMessage) *ScheduledActionType {
23729	s.PauseCluster = v
23730	return s
23731}
23732
23733// SetResizeCluster sets the ResizeCluster field's value.
23734func (s *ScheduledActionType) SetResizeCluster(v *ResizeClusterMessage) *ScheduledActionType {
23735	s.ResizeCluster = v
23736	return s
23737}
23738
23739// SetResumeCluster sets the ResumeCluster field's value.
23740func (s *ScheduledActionType) SetResumeCluster(v *ResumeClusterMessage) *ScheduledActionType {
23741	s.ResumeCluster = v
23742	return s
23743}
23744
23745// Describes a snapshot.
23746type Snapshot struct {
23747	_ struct{} `type:"structure"`
23748
23749	// A list of the AWS customer accounts authorized to restore the snapshot. Returns
23750	// null if no accounts are authorized. Visible only to the snapshot owner.
23751	AccountsWithRestoreAccess []*AccountWithRestoreAccess `locationNameList:"AccountWithRestoreAccess" type:"list"`
23752
23753	// The size of the incremental backup.
23754	ActualIncrementalBackupSizeInMegaBytes *float64 `type:"double"`
23755
23756	// The Availability Zone in which the cluster was created.
23757	AvailabilityZone *string `type:"string"`
23758
23759	// The number of megabytes that have been transferred to the snapshot backup.
23760	BackupProgressInMegaBytes *float64 `type:"double"`
23761
23762	// The time (UTC) when the cluster was originally created.
23763	ClusterCreateTime *time.Time `type:"timestamp"`
23764
23765	// The identifier of the cluster for which the snapshot was taken.
23766	ClusterIdentifier *string `type:"string"`
23767
23768	// The version ID of the Amazon Redshift engine that is running on the cluster.
23769	ClusterVersion *string `type:"string"`
23770
23771	// The number of megabytes per second being transferred to the snapshot backup.
23772	// Returns 0 for a completed backup.
23773	CurrentBackupRateInMegaBytesPerSecond *float64 `type:"double"`
23774
23775	// The name of the database that was created when the cluster was created.
23776	DBName *string `type:"string"`
23777
23778	// The amount of time an in-progress snapshot backup has been running, or the
23779	// amount of time it took a completed backup to finish.
23780	ElapsedTimeInSeconds *int64 `type:"long"`
23781
23782	// If true, the data in the snapshot is encrypted at rest.
23783	Encrypted *bool `type:"boolean"`
23784
23785	// A boolean that indicates whether the snapshot data is encrypted using the
23786	// HSM keys of the source cluster. true indicates that the data is encrypted
23787	// using HSM keys.
23788	EncryptedWithHSM *bool `type:"boolean"`
23789
23790	// An option that specifies whether to create the cluster with enhanced VPC
23791	// routing enabled. To create a cluster that uses enhanced VPC routing, the
23792	// cluster must be in a VPC. For more information, see Enhanced VPC Routing
23793	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
23794	// in the Amazon Redshift Cluster Management Guide.
23795	//
23796	// If this option is true, enhanced VPC routing is enabled.
23797	//
23798	// Default: false
23799	EnhancedVpcRouting *bool `type:"boolean"`
23800
23801	// The estimate of the time remaining before the snapshot backup will complete.
23802	// Returns 0 for a completed backup.
23803	EstimatedSecondsToCompletion *int64 `type:"long"`
23804
23805	// The AWS Key Management Service (KMS) key ID of the encryption key that was
23806	// used to encrypt data in the cluster from which the snapshot was taken.
23807	KmsKeyId *string `type:"string"`
23808
23809	// The name of the maintenance track for the snapshot.
23810	MaintenanceTrackName *string `type:"string"`
23811
23812	// The number of days until a manual snapshot will pass its retention period.
23813	ManualSnapshotRemainingDays *int64 `type:"integer"`
23814
23815	// The number of days that a manual snapshot is retained. If the value is -1,
23816	// the manual snapshot is retained indefinitely.
23817	//
23818	// The value must be either -1 or an integer between 1 and 3,653.
23819	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
23820
23821	// The master user name for the cluster.
23822	MasterUsername *string `type:"string"`
23823
23824	// The node type of the nodes in the cluster.
23825	NodeType *string `type:"string"`
23826
23827	// The number of nodes in the cluster.
23828	NumberOfNodes *int64 `type:"integer"`
23829
23830	// For manual snapshots, the AWS customer account used to create or copy the
23831	// snapshot. For automatic snapshots, the owner of the cluster. The owner can
23832	// perform all snapshot actions, such as sharing a manual snapshot.
23833	OwnerAccount *string `type:"string"`
23834
23835	// The port that the cluster is listening on.
23836	Port *int64 `type:"integer"`
23837
23838	// The list of node types that this cluster snapshot is able to restore into.
23839	RestorableNodeTypes []*string `locationNameList:"NodeType" type:"list"`
23840
23841	// The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot
23842	// contains a copy of the cluster data as of this exact time.
23843	SnapshotCreateTime *time.Time `type:"timestamp"`
23844
23845	// The snapshot identifier that is provided in the request.
23846	SnapshotIdentifier *string `type:"string"`
23847
23848	// A timestamp representing the start of the retention period for the snapshot.
23849	SnapshotRetentionStartTime *time.Time `type:"timestamp"`
23850
23851	// The snapshot type. Snapshots created using CreateClusterSnapshot and CopyClusterSnapshot
23852	// are of type "manual".
23853	SnapshotType *string `type:"string"`
23854
23855	// The source region from which the snapshot was copied.
23856	SourceRegion *string `type:"string"`
23857
23858	// The snapshot status. The value of the status depends on the API operation
23859	// used:
23860	//
23861	//    * CreateClusterSnapshot and CopyClusterSnapshot returns status as "creating".
23862	//
23863	//    * DescribeClusterSnapshots returns status as "creating", "available",
23864	//    "final snapshot", or "failed".
23865	//
23866	//    * DeleteClusterSnapshot returns status as "deleted".
23867	Status *string `type:"string"`
23868
23869	// The list of tags for the cluster snapshot.
23870	Tags []*Tag `locationNameList:"Tag" type:"list"`
23871
23872	// The size of the complete set of backup data that would be used to restore
23873	// the cluster.
23874	TotalBackupSizeInMegaBytes *float64 `type:"double"`
23875
23876	// The VPC identifier of the cluster if the snapshot is from a cluster in a
23877	// VPC. Otherwise, this field is not in the output.
23878	VpcId *string `type:"string"`
23879}
23880
23881// String returns the string representation
23882func (s Snapshot) String() string {
23883	return awsutil.Prettify(s)
23884}
23885
23886// GoString returns the string representation
23887func (s Snapshot) GoString() string {
23888	return s.String()
23889}
23890
23891// SetAccountsWithRestoreAccess sets the AccountsWithRestoreAccess field's value.
23892func (s *Snapshot) SetAccountsWithRestoreAccess(v []*AccountWithRestoreAccess) *Snapshot {
23893	s.AccountsWithRestoreAccess = v
23894	return s
23895}
23896
23897// SetActualIncrementalBackupSizeInMegaBytes sets the ActualIncrementalBackupSizeInMegaBytes field's value.
23898func (s *Snapshot) SetActualIncrementalBackupSizeInMegaBytes(v float64) *Snapshot {
23899	s.ActualIncrementalBackupSizeInMegaBytes = &v
23900	return s
23901}
23902
23903// SetAvailabilityZone sets the AvailabilityZone field's value.
23904func (s *Snapshot) SetAvailabilityZone(v string) *Snapshot {
23905	s.AvailabilityZone = &v
23906	return s
23907}
23908
23909// SetBackupProgressInMegaBytes sets the BackupProgressInMegaBytes field's value.
23910func (s *Snapshot) SetBackupProgressInMegaBytes(v float64) *Snapshot {
23911	s.BackupProgressInMegaBytes = &v
23912	return s
23913}
23914
23915// SetClusterCreateTime sets the ClusterCreateTime field's value.
23916func (s *Snapshot) SetClusterCreateTime(v time.Time) *Snapshot {
23917	s.ClusterCreateTime = &v
23918	return s
23919}
23920
23921// SetClusterIdentifier sets the ClusterIdentifier field's value.
23922func (s *Snapshot) SetClusterIdentifier(v string) *Snapshot {
23923	s.ClusterIdentifier = &v
23924	return s
23925}
23926
23927// SetClusterVersion sets the ClusterVersion field's value.
23928func (s *Snapshot) SetClusterVersion(v string) *Snapshot {
23929	s.ClusterVersion = &v
23930	return s
23931}
23932
23933// SetCurrentBackupRateInMegaBytesPerSecond sets the CurrentBackupRateInMegaBytesPerSecond field's value.
23934func (s *Snapshot) SetCurrentBackupRateInMegaBytesPerSecond(v float64) *Snapshot {
23935	s.CurrentBackupRateInMegaBytesPerSecond = &v
23936	return s
23937}
23938
23939// SetDBName sets the DBName field's value.
23940func (s *Snapshot) SetDBName(v string) *Snapshot {
23941	s.DBName = &v
23942	return s
23943}
23944
23945// SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
23946func (s *Snapshot) SetElapsedTimeInSeconds(v int64) *Snapshot {
23947	s.ElapsedTimeInSeconds = &v
23948	return s
23949}
23950
23951// SetEncrypted sets the Encrypted field's value.
23952func (s *Snapshot) SetEncrypted(v bool) *Snapshot {
23953	s.Encrypted = &v
23954	return s
23955}
23956
23957// SetEncryptedWithHSM sets the EncryptedWithHSM field's value.
23958func (s *Snapshot) SetEncryptedWithHSM(v bool) *Snapshot {
23959	s.EncryptedWithHSM = &v
23960	return s
23961}
23962
23963// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
23964func (s *Snapshot) SetEnhancedVpcRouting(v bool) *Snapshot {
23965	s.EnhancedVpcRouting = &v
23966	return s
23967}
23968
23969// SetEstimatedSecondsToCompletion sets the EstimatedSecondsToCompletion field's value.
23970func (s *Snapshot) SetEstimatedSecondsToCompletion(v int64) *Snapshot {
23971	s.EstimatedSecondsToCompletion = &v
23972	return s
23973}
23974
23975// SetKmsKeyId sets the KmsKeyId field's value.
23976func (s *Snapshot) SetKmsKeyId(v string) *Snapshot {
23977	s.KmsKeyId = &v
23978	return s
23979}
23980
23981// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
23982func (s *Snapshot) SetMaintenanceTrackName(v string) *Snapshot {
23983	s.MaintenanceTrackName = &v
23984	return s
23985}
23986
23987// SetManualSnapshotRemainingDays sets the ManualSnapshotRemainingDays field's value.
23988func (s *Snapshot) SetManualSnapshotRemainingDays(v int64) *Snapshot {
23989	s.ManualSnapshotRemainingDays = &v
23990	return s
23991}
23992
23993// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
23994func (s *Snapshot) SetManualSnapshotRetentionPeriod(v int64) *Snapshot {
23995	s.ManualSnapshotRetentionPeriod = &v
23996	return s
23997}
23998
23999// SetMasterUsername sets the MasterUsername field's value.
24000func (s *Snapshot) SetMasterUsername(v string) *Snapshot {
24001	s.MasterUsername = &v
24002	return s
24003}
24004
24005// SetNodeType sets the NodeType field's value.
24006func (s *Snapshot) SetNodeType(v string) *Snapshot {
24007	s.NodeType = &v
24008	return s
24009}
24010
24011// SetNumberOfNodes sets the NumberOfNodes field's value.
24012func (s *Snapshot) SetNumberOfNodes(v int64) *Snapshot {
24013	s.NumberOfNodes = &v
24014	return s
24015}
24016
24017// SetOwnerAccount sets the OwnerAccount field's value.
24018func (s *Snapshot) SetOwnerAccount(v string) *Snapshot {
24019	s.OwnerAccount = &v
24020	return s
24021}
24022
24023// SetPort sets the Port field's value.
24024func (s *Snapshot) SetPort(v int64) *Snapshot {
24025	s.Port = &v
24026	return s
24027}
24028
24029// SetRestorableNodeTypes sets the RestorableNodeTypes field's value.
24030func (s *Snapshot) SetRestorableNodeTypes(v []*string) *Snapshot {
24031	s.RestorableNodeTypes = v
24032	return s
24033}
24034
24035// SetSnapshotCreateTime sets the SnapshotCreateTime field's value.
24036func (s *Snapshot) SetSnapshotCreateTime(v time.Time) *Snapshot {
24037	s.SnapshotCreateTime = &v
24038	return s
24039}
24040
24041// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
24042func (s *Snapshot) SetSnapshotIdentifier(v string) *Snapshot {
24043	s.SnapshotIdentifier = &v
24044	return s
24045}
24046
24047// SetSnapshotRetentionStartTime sets the SnapshotRetentionStartTime field's value.
24048func (s *Snapshot) SetSnapshotRetentionStartTime(v time.Time) *Snapshot {
24049	s.SnapshotRetentionStartTime = &v
24050	return s
24051}
24052
24053// SetSnapshotType sets the SnapshotType field's value.
24054func (s *Snapshot) SetSnapshotType(v string) *Snapshot {
24055	s.SnapshotType = &v
24056	return s
24057}
24058
24059// SetSourceRegion sets the SourceRegion field's value.
24060func (s *Snapshot) SetSourceRegion(v string) *Snapshot {
24061	s.SourceRegion = &v
24062	return s
24063}
24064
24065// SetStatus sets the Status field's value.
24066func (s *Snapshot) SetStatus(v string) *Snapshot {
24067	s.Status = &v
24068	return s
24069}
24070
24071// SetTags sets the Tags field's value.
24072func (s *Snapshot) SetTags(v []*Tag) *Snapshot {
24073	s.Tags = v
24074	return s
24075}
24076
24077// SetTotalBackupSizeInMegaBytes sets the TotalBackupSizeInMegaBytes field's value.
24078func (s *Snapshot) SetTotalBackupSizeInMegaBytes(v float64) *Snapshot {
24079	s.TotalBackupSizeInMegaBytes = &v
24080	return s
24081}
24082
24083// SetVpcId sets the VpcId field's value.
24084func (s *Snapshot) SetVpcId(v string) *Snapshot {
24085	s.VpcId = &v
24086	return s
24087}
24088
24089// The snapshot copy grant that grants Amazon Redshift permission to encrypt
24090// copied snapshots with the specified customer master key (CMK) from AWS KMS
24091// in the destination region.
24092//
24093// For more information about managing snapshot copy grants, go to Amazon Redshift
24094// Database Encryption (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
24095// in the Amazon Redshift Cluster Management Guide.
24096type SnapshotCopyGrant struct {
24097	_ struct{} `type:"structure"`
24098
24099	// The unique identifier of the customer master key (CMK) in AWS KMS to which
24100	// Amazon Redshift is granted permission.
24101	KmsKeyId *string `type:"string"`
24102
24103	// The name of the snapshot copy grant.
24104	SnapshotCopyGrantName *string `type:"string"`
24105
24106	// A list of tag instances.
24107	Tags []*Tag `locationNameList:"Tag" type:"list"`
24108}
24109
24110// String returns the string representation
24111func (s SnapshotCopyGrant) String() string {
24112	return awsutil.Prettify(s)
24113}
24114
24115// GoString returns the string representation
24116func (s SnapshotCopyGrant) GoString() string {
24117	return s.String()
24118}
24119
24120// SetKmsKeyId sets the KmsKeyId field's value.
24121func (s *SnapshotCopyGrant) SetKmsKeyId(v string) *SnapshotCopyGrant {
24122	s.KmsKeyId = &v
24123	return s
24124}
24125
24126// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
24127func (s *SnapshotCopyGrant) SetSnapshotCopyGrantName(v string) *SnapshotCopyGrant {
24128	s.SnapshotCopyGrantName = &v
24129	return s
24130}
24131
24132// SetTags sets the Tags field's value.
24133func (s *SnapshotCopyGrant) SetTags(v []*Tag) *SnapshotCopyGrant {
24134	s.Tags = v
24135	return s
24136}
24137
24138// Describes the errors returned by a snapshot.
24139type SnapshotErrorMessage struct {
24140	_ struct{} `type:"structure"`
24141
24142	// The failure code for the error.
24143	FailureCode *string `type:"string"`
24144
24145	// The text message describing the error.
24146	FailureReason *string `type:"string"`
24147
24148	// A unique identifier for the cluster.
24149	SnapshotClusterIdentifier *string `type:"string"`
24150
24151	// A unique identifier for the snapshot returning the error.
24152	SnapshotIdentifier *string `type:"string"`
24153}
24154
24155// String returns the string representation
24156func (s SnapshotErrorMessage) String() string {
24157	return awsutil.Prettify(s)
24158}
24159
24160// GoString returns the string representation
24161func (s SnapshotErrorMessage) GoString() string {
24162	return s.String()
24163}
24164
24165// SetFailureCode sets the FailureCode field's value.
24166func (s *SnapshotErrorMessage) SetFailureCode(v string) *SnapshotErrorMessage {
24167	s.FailureCode = &v
24168	return s
24169}
24170
24171// SetFailureReason sets the FailureReason field's value.
24172func (s *SnapshotErrorMessage) SetFailureReason(v string) *SnapshotErrorMessage {
24173	s.FailureReason = &v
24174	return s
24175}
24176
24177// SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
24178func (s *SnapshotErrorMessage) SetSnapshotClusterIdentifier(v string) *SnapshotErrorMessage {
24179	s.SnapshotClusterIdentifier = &v
24180	return s
24181}
24182
24183// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
24184func (s *SnapshotErrorMessage) SetSnapshotIdentifier(v string) *SnapshotErrorMessage {
24185	s.SnapshotIdentifier = &v
24186	return s
24187}
24188
24189// Describes a snapshot schedule. You can set a regular interval for creating
24190// snapshots of a cluster. You can also schedule snapshots for specific dates.
24191type SnapshotSchedule struct {
24192	_ struct{} `type:"structure"`
24193
24194	// The number of clusters associated with the schedule.
24195	AssociatedClusterCount *int64 `type:"integer"`
24196
24197	// A list of clusters associated with the schedule. A maximum of 100 clusters
24198	// is returned.
24199	AssociatedClusters []*ClusterAssociatedToSchedule `locationNameList:"ClusterAssociatedToSchedule" type:"list"`
24200
24201	NextInvocations []*time.Time `locationNameList:"SnapshotTime" type:"list"`
24202
24203	// A list of ScheduleDefinitions.
24204	ScheduleDefinitions []*string `locationNameList:"ScheduleDefinition" type:"list"`
24205
24206	// The description of the schedule.
24207	ScheduleDescription *string `type:"string"`
24208
24209	// A unique identifier for the schedule.
24210	ScheduleIdentifier *string `type:"string"`
24211
24212	// An optional set of tags describing the schedule.
24213	Tags []*Tag `locationNameList:"Tag" type:"list"`
24214}
24215
24216// String returns the string representation
24217func (s SnapshotSchedule) String() string {
24218	return awsutil.Prettify(s)
24219}
24220
24221// GoString returns the string representation
24222func (s SnapshotSchedule) GoString() string {
24223	return s.String()
24224}
24225
24226// SetAssociatedClusterCount sets the AssociatedClusterCount field's value.
24227func (s *SnapshotSchedule) SetAssociatedClusterCount(v int64) *SnapshotSchedule {
24228	s.AssociatedClusterCount = &v
24229	return s
24230}
24231
24232// SetAssociatedClusters sets the AssociatedClusters field's value.
24233func (s *SnapshotSchedule) SetAssociatedClusters(v []*ClusterAssociatedToSchedule) *SnapshotSchedule {
24234	s.AssociatedClusters = v
24235	return s
24236}
24237
24238// SetNextInvocations sets the NextInvocations field's value.
24239func (s *SnapshotSchedule) SetNextInvocations(v []*time.Time) *SnapshotSchedule {
24240	s.NextInvocations = v
24241	return s
24242}
24243
24244// SetScheduleDefinitions sets the ScheduleDefinitions field's value.
24245func (s *SnapshotSchedule) SetScheduleDefinitions(v []*string) *SnapshotSchedule {
24246	s.ScheduleDefinitions = v
24247	return s
24248}
24249
24250// SetScheduleDescription sets the ScheduleDescription field's value.
24251func (s *SnapshotSchedule) SetScheduleDescription(v string) *SnapshotSchedule {
24252	s.ScheduleDescription = &v
24253	return s
24254}
24255
24256// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
24257func (s *SnapshotSchedule) SetScheduleIdentifier(v string) *SnapshotSchedule {
24258	s.ScheduleIdentifier = &v
24259	return s
24260}
24261
24262// SetTags sets the Tags field's value.
24263func (s *SnapshotSchedule) SetTags(v []*Tag) *SnapshotSchedule {
24264	s.Tags = v
24265	return s
24266}
24267
24268// Describes a sorting entity
24269type SnapshotSortingEntity struct {
24270	_ struct{} `type:"structure"`
24271
24272	// The category for sorting the snapshots.
24273	//
24274	// Attribute is a required field
24275	Attribute *string `type:"string" required:"true" enum:"SnapshotAttributeToSortBy"`
24276
24277	// The order for listing the attributes.
24278	SortOrder *string `type:"string" enum:"SortByOrder"`
24279}
24280
24281// String returns the string representation
24282func (s SnapshotSortingEntity) String() string {
24283	return awsutil.Prettify(s)
24284}
24285
24286// GoString returns the string representation
24287func (s SnapshotSortingEntity) GoString() string {
24288	return s.String()
24289}
24290
24291// Validate inspects the fields of the type to determine if they are valid.
24292func (s *SnapshotSortingEntity) Validate() error {
24293	invalidParams := request.ErrInvalidParams{Context: "SnapshotSortingEntity"}
24294	if s.Attribute == nil {
24295		invalidParams.Add(request.NewErrParamRequired("Attribute"))
24296	}
24297
24298	if invalidParams.Len() > 0 {
24299		return invalidParams
24300	}
24301	return nil
24302}
24303
24304// SetAttribute sets the Attribute field's value.
24305func (s *SnapshotSortingEntity) SetAttribute(v string) *SnapshotSortingEntity {
24306	s.Attribute = &v
24307	return s
24308}
24309
24310// SetSortOrder sets the SortOrder field's value.
24311func (s *SnapshotSortingEntity) SetSortOrder(v string) *SnapshotSortingEntity {
24312	s.SortOrder = &v
24313	return s
24314}
24315
24316// Describes a subnet.
24317type Subnet struct {
24318	_ struct{} `type:"structure"`
24319
24320	// Describes an availability zone.
24321	SubnetAvailabilityZone *AvailabilityZone `type:"structure"`
24322
24323	// The identifier of the subnet.
24324	SubnetIdentifier *string `type:"string"`
24325
24326	// The status of the subnet.
24327	SubnetStatus *string `type:"string"`
24328}
24329
24330// String returns the string representation
24331func (s Subnet) String() string {
24332	return awsutil.Prettify(s)
24333}
24334
24335// GoString returns the string representation
24336func (s Subnet) GoString() string {
24337	return s.String()
24338}
24339
24340// SetSubnetAvailabilityZone sets the SubnetAvailabilityZone field's value.
24341func (s *Subnet) SetSubnetAvailabilityZone(v *AvailabilityZone) *Subnet {
24342	s.SubnetAvailabilityZone = v
24343	return s
24344}
24345
24346// SetSubnetIdentifier sets the SubnetIdentifier field's value.
24347func (s *Subnet) SetSubnetIdentifier(v string) *Subnet {
24348	s.SubnetIdentifier = &v
24349	return s
24350}
24351
24352// SetSubnetStatus sets the SubnetStatus field's value.
24353func (s *Subnet) SetSubnetStatus(v string) *Subnet {
24354	s.SubnetStatus = &v
24355	return s
24356}
24357
24358// Describes the operations that are allowed on a maintenance track.
24359type SupportedOperation struct {
24360	_ struct{} `type:"structure"`
24361
24362	// A list of the supported operations.
24363	OperationName *string `type:"string"`
24364}
24365
24366// String returns the string representation
24367func (s SupportedOperation) String() string {
24368	return awsutil.Prettify(s)
24369}
24370
24371// GoString returns the string representation
24372func (s SupportedOperation) GoString() string {
24373	return s.String()
24374}
24375
24376// SetOperationName sets the OperationName field's value.
24377func (s *SupportedOperation) SetOperationName(v string) *SupportedOperation {
24378	s.OperationName = &v
24379	return s
24380}
24381
24382// A list of supported platforms for orderable clusters.
24383type SupportedPlatform struct {
24384	_ struct{} `type:"structure"`
24385
24386	Name *string `type:"string"`
24387}
24388
24389// String returns the string representation
24390func (s SupportedPlatform) String() string {
24391	return awsutil.Prettify(s)
24392}
24393
24394// GoString returns the string representation
24395func (s SupportedPlatform) GoString() string {
24396	return s.String()
24397}
24398
24399// SetName sets the Name field's value.
24400func (s *SupportedPlatform) SetName(v string) *SupportedPlatform {
24401	s.Name = &v
24402	return s
24403}
24404
24405// Describes the status of a RestoreTableFromClusterSnapshot operation.
24406type TableRestoreStatus struct {
24407	_ struct{} `type:"structure"`
24408
24409	// The identifier of the Amazon Redshift cluster that the table is being restored
24410	// to.
24411	ClusterIdentifier *string `type:"string"`
24412
24413	// A description of the status of the table restore request. Status values include
24414	// SUCCEEDED, FAILED, CANCELED, PENDING, IN_PROGRESS.
24415	Message *string `type:"string"`
24416
24417	// The name of the table to create as a result of the table restore request.
24418	NewTableName *string `type:"string"`
24419
24420	// The amount of data restored to the new table so far, in megabytes (MB).
24421	ProgressInMegaBytes *int64 `type:"long"`
24422
24423	// The time that the table restore request was made, in Universal Coordinated
24424	// Time (UTC).
24425	RequestTime *time.Time `type:"timestamp"`
24426
24427	// The identifier of the snapshot that the table is being restored from.
24428	SnapshotIdentifier *string `type:"string"`
24429
24430	// The name of the source database that contains the table being restored.
24431	SourceDatabaseName *string `type:"string"`
24432
24433	// The name of the source schema that contains the table being restored.
24434	SourceSchemaName *string `type:"string"`
24435
24436	// The name of the source table being restored.
24437	SourceTableName *string `type:"string"`
24438
24439	// A value that describes the current state of the table restore request.
24440	//
24441	// Valid Values: SUCCEEDED, FAILED, CANCELED, PENDING, IN_PROGRESS
24442	Status *string `type:"string" enum:"TableRestoreStatusType"`
24443
24444	// The unique identifier for the table restore request.
24445	TableRestoreRequestId *string `type:"string"`
24446
24447	// The name of the database to restore the table to.
24448	TargetDatabaseName *string `type:"string"`
24449
24450	// The name of the schema to restore the table to.
24451	TargetSchemaName *string `type:"string"`
24452
24453	// The total amount of data to restore to the new table, in megabytes (MB).
24454	TotalDataInMegaBytes *int64 `type:"long"`
24455}
24456
24457// String returns the string representation
24458func (s TableRestoreStatus) String() string {
24459	return awsutil.Prettify(s)
24460}
24461
24462// GoString returns the string representation
24463func (s TableRestoreStatus) GoString() string {
24464	return s.String()
24465}
24466
24467// SetClusterIdentifier sets the ClusterIdentifier field's value.
24468func (s *TableRestoreStatus) SetClusterIdentifier(v string) *TableRestoreStatus {
24469	s.ClusterIdentifier = &v
24470	return s
24471}
24472
24473// SetMessage sets the Message field's value.
24474func (s *TableRestoreStatus) SetMessage(v string) *TableRestoreStatus {
24475	s.Message = &v
24476	return s
24477}
24478
24479// SetNewTableName sets the NewTableName field's value.
24480func (s *TableRestoreStatus) SetNewTableName(v string) *TableRestoreStatus {
24481	s.NewTableName = &v
24482	return s
24483}
24484
24485// SetProgressInMegaBytes sets the ProgressInMegaBytes field's value.
24486func (s *TableRestoreStatus) SetProgressInMegaBytes(v int64) *TableRestoreStatus {
24487	s.ProgressInMegaBytes = &v
24488	return s
24489}
24490
24491// SetRequestTime sets the RequestTime field's value.
24492func (s *TableRestoreStatus) SetRequestTime(v time.Time) *TableRestoreStatus {
24493	s.RequestTime = &v
24494	return s
24495}
24496
24497// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
24498func (s *TableRestoreStatus) SetSnapshotIdentifier(v string) *TableRestoreStatus {
24499	s.SnapshotIdentifier = &v
24500	return s
24501}
24502
24503// SetSourceDatabaseName sets the SourceDatabaseName field's value.
24504func (s *TableRestoreStatus) SetSourceDatabaseName(v string) *TableRestoreStatus {
24505	s.SourceDatabaseName = &v
24506	return s
24507}
24508
24509// SetSourceSchemaName sets the SourceSchemaName field's value.
24510func (s *TableRestoreStatus) SetSourceSchemaName(v string) *TableRestoreStatus {
24511	s.SourceSchemaName = &v
24512	return s
24513}
24514
24515// SetSourceTableName sets the SourceTableName field's value.
24516func (s *TableRestoreStatus) SetSourceTableName(v string) *TableRestoreStatus {
24517	s.SourceTableName = &v
24518	return s
24519}
24520
24521// SetStatus sets the Status field's value.
24522func (s *TableRestoreStatus) SetStatus(v string) *TableRestoreStatus {
24523	s.Status = &v
24524	return s
24525}
24526
24527// SetTableRestoreRequestId sets the TableRestoreRequestId field's value.
24528func (s *TableRestoreStatus) SetTableRestoreRequestId(v string) *TableRestoreStatus {
24529	s.TableRestoreRequestId = &v
24530	return s
24531}
24532
24533// SetTargetDatabaseName sets the TargetDatabaseName field's value.
24534func (s *TableRestoreStatus) SetTargetDatabaseName(v string) *TableRestoreStatus {
24535	s.TargetDatabaseName = &v
24536	return s
24537}
24538
24539// SetTargetSchemaName sets the TargetSchemaName field's value.
24540func (s *TableRestoreStatus) SetTargetSchemaName(v string) *TableRestoreStatus {
24541	s.TargetSchemaName = &v
24542	return s
24543}
24544
24545// SetTotalDataInMegaBytes sets the TotalDataInMegaBytes field's value.
24546func (s *TableRestoreStatus) SetTotalDataInMegaBytes(v int64) *TableRestoreStatus {
24547	s.TotalDataInMegaBytes = &v
24548	return s
24549}
24550
24551// A tag consisting of a name/value pair for a resource.
24552type Tag struct {
24553	_ struct{} `type:"structure"`
24554
24555	// The key, or name, for the resource tag.
24556	Key *string `type:"string"`
24557
24558	// The value for the resource tag.
24559	Value *string `type:"string"`
24560}
24561
24562// String returns the string representation
24563func (s Tag) String() string {
24564	return awsutil.Prettify(s)
24565}
24566
24567// GoString returns the string representation
24568func (s Tag) GoString() string {
24569	return s.String()
24570}
24571
24572// SetKey sets the Key field's value.
24573func (s *Tag) SetKey(v string) *Tag {
24574	s.Key = &v
24575	return s
24576}
24577
24578// SetValue sets the Value field's value.
24579func (s *Tag) SetValue(v string) *Tag {
24580	s.Value = &v
24581	return s
24582}
24583
24584// A tag and its associated resource.
24585type TaggedResource struct {
24586	_ struct{} `type:"structure"`
24587
24588	// The Amazon Resource Name (ARN) with which the tag is associated, for example:
24589	// arn:aws:redshift:us-east-2:123456789:cluster:t1.
24590	ResourceName *string `type:"string"`
24591
24592	// The type of resource with which the tag is associated. Valid resource types
24593	// are:
24594	//
24595	//    * Cluster
24596	//
24597	//    * CIDR/IP
24598	//
24599	//    * EC2 security group
24600	//
24601	//    * Snapshot
24602	//
24603	//    * Cluster security group
24604	//
24605	//    * Subnet group
24606	//
24607	//    * HSM connection
24608	//
24609	//    * HSM certificate
24610	//
24611	//    * Parameter group
24612	//
24613	// For more information about Amazon Redshift resource types and constructing
24614	// ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-overview.html#redshift-iam-access-control-specify-actions)
24615	// in the Amazon Redshift Cluster Management Guide.
24616	ResourceType *string `type:"string"`
24617
24618	// The tag for the resource.
24619	Tag *Tag `type:"structure"`
24620}
24621
24622// String returns the string representation
24623func (s TaggedResource) String() string {
24624	return awsutil.Prettify(s)
24625}
24626
24627// GoString returns the string representation
24628func (s TaggedResource) GoString() string {
24629	return s.String()
24630}
24631
24632// SetResourceName sets the ResourceName field's value.
24633func (s *TaggedResource) SetResourceName(v string) *TaggedResource {
24634	s.ResourceName = &v
24635	return s
24636}
24637
24638// SetResourceType sets the ResourceType field's value.
24639func (s *TaggedResource) SetResourceType(v string) *TaggedResource {
24640	s.ResourceType = &v
24641	return s
24642}
24643
24644// SetTag sets the Tag field's value.
24645func (s *TaggedResource) SetTag(v *Tag) *TaggedResource {
24646	s.Tag = v
24647	return s
24648}
24649
24650// A maintenance track that you can switch the current track to.
24651type UpdateTarget struct {
24652	_ struct{} `type:"structure"`
24653
24654	// The cluster version for the new maintenance track.
24655	DatabaseVersion *string `type:"string"`
24656
24657	// The name of the new maintenance track.
24658	MaintenanceTrackName *string `type:"string"`
24659
24660	// A list of operations supported by the maintenance track.
24661	SupportedOperations []*SupportedOperation `locationNameList:"SupportedOperation" type:"list"`
24662}
24663
24664// String returns the string representation
24665func (s UpdateTarget) String() string {
24666	return awsutil.Prettify(s)
24667}
24668
24669// GoString returns the string representation
24670func (s UpdateTarget) GoString() string {
24671	return s.String()
24672}
24673
24674// SetDatabaseVersion sets the DatabaseVersion field's value.
24675func (s *UpdateTarget) SetDatabaseVersion(v string) *UpdateTarget {
24676	s.DatabaseVersion = &v
24677	return s
24678}
24679
24680// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
24681func (s *UpdateTarget) SetMaintenanceTrackName(v string) *UpdateTarget {
24682	s.MaintenanceTrackName = &v
24683	return s
24684}
24685
24686// SetSupportedOperations sets the SupportedOperations field's value.
24687func (s *UpdateTarget) SetSupportedOperations(v []*SupportedOperation) *UpdateTarget {
24688	s.SupportedOperations = v
24689	return s
24690}
24691
24692// Describes a usage limit object for a cluster.
24693type UsageLimit struct {
24694	_ struct{} `type:"structure"`
24695
24696	// The limit amount. If time-based, this amount is in minutes. If data-based,
24697	// this amount is in terabytes (TB).
24698	Amount *int64 `type:"long"`
24699
24700	// The action that Amazon Redshift takes when the limit is reached. Possible
24701	// values are:
24702	//
24703	//    * log - To log an event in a system table. The default is log.
24704	//
24705	//    * emit-metric - To emit CloudWatch metrics.
24706	//
24707	//    * disable - To disable the feature until the next usage period begins.
24708	BreachAction *string `type:"string" enum:"UsageLimitBreachAction"`
24709
24710	// The identifier of the cluster with a usage limit.
24711	ClusterIdentifier *string `type:"string"`
24712
24713	// The Amazon Redshift feature to which the limit applies.
24714	FeatureType *string `type:"string" enum:"UsageLimitFeatureType"`
24715
24716	// The type of limit. Depending on the feature type, this can be based on a
24717	// time duration or data size.
24718	LimitType *string `type:"string" enum:"UsageLimitLimitType"`
24719
24720	// The time period that the amount applies to. A weekly period begins on Sunday.
24721	// The default is monthly.
24722	Period *string `type:"string" enum:"UsageLimitPeriod"`
24723
24724	// A list of tag instances.
24725	Tags []*Tag `locationNameList:"Tag" type:"list"`
24726
24727	// The identifier of the usage limit.
24728	UsageLimitId *string `type:"string"`
24729}
24730
24731// String returns the string representation
24732func (s UsageLimit) String() string {
24733	return awsutil.Prettify(s)
24734}
24735
24736// GoString returns the string representation
24737func (s UsageLimit) GoString() string {
24738	return s.String()
24739}
24740
24741// SetAmount sets the Amount field's value.
24742func (s *UsageLimit) SetAmount(v int64) *UsageLimit {
24743	s.Amount = &v
24744	return s
24745}
24746
24747// SetBreachAction sets the BreachAction field's value.
24748func (s *UsageLimit) SetBreachAction(v string) *UsageLimit {
24749	s.BreachAction = &v
24750	return s
24751}
24752
24753// SetClusterIdentifier sets the ClusterIdentifier field's value.
24754func (s *UsageLimit) SetClusterIdentifier(v string) *UsageLimit {
24755	s.ClusterIdentifier = &v
24756	return s
24757}
24758
24759// SetFeatureType sets the FeatureType field's value.
24760func (s *UsageLimit) SetFeatureType(v string) *UsageLimit {
24761	s.FeatureType = &v
24762	return s
24763}
24764
24765// SetLimitType sets the LimitType field's value.
24766func (s *UsageLimit) SetLimitType(v string) *UsageLimit {
24767	s.LimitType = &v
24768	return s
24769}
24770
24771// SetPeriod sets the Period field's value.
24772func (s *UsageLimit) SetPeriod(v string) *UsageLimit {
24773	s.Period = &v
24774	return s
24775}
24776
24777// SetTags sets the Tags field's value.
24778func (s *UsageLimit) SetTags(v []*Tag) *UsageLimit {
24779	s.Tags = v
24780	return s
24781}
24782
24783// SetUsageLimitId sets the UsageLimitId field's value.
24784func (s *UsageLimit) SetUsageLimitId(v string) *UsageLimit {
24785	s.UsageLimitId = &v
24786	return s
24787}
24788
24789// Describes the members of a VPC security group.
24790type VpcSecurityGroupMembership struct {
24791	_ struct{} `type:"structure"`
24792
24793	// The status of the VPC security group.
24794	Status *string `type:"string"`
24795
24796	// The identifier of the VPC security group.
24797	VpcSecurityGroupId *string `type:"string"`
24798}
24799
24800// String returns the string representation
24801func (s VpcSecurityGroupMembership) String() string {
24802	return awsutil.Prettify(s)
24803}
24804
24805// GoString returns the string representation
24806func (s VpcSecurityGroupMembership) GoString() string {
24807	return s.String()
24808}
24809
24810// SetStatus sets the Status field's value.
24811func (s *VpcSecurityGroupMembership) SetStatus(v string) *VpcSecurityGroupMembership {
24812	s.Status = &v
24813	return s
24814}
24815
24816// SetVpcSecurityGroupId sets the VpcSecurityGroupId field's value.
24817func (s *VpcSecurityGroupMembership) SetVpcSecurityGroupId(v string) *VpcSecurityGroupMembership {
24818	s.VpcSecurityGroupId = &v
24819	return s
24820}
24821
24822const (
24823	// ActionTypeRestoreCluster is a ActionType enum value
24824	ActionTypeRestoreCluster = "restore-cluster"
24825
24826	// ActionTypeRecommendNodeConfig is a ActionType enum value
24827	ActionTypeRecommendNodeConfig = "recommend-node-config"
24828
24829	// ActionTypeResizeCluster is a ActionType enum value
24830	ActionTypeResizeCluster = "resize-cluster"
24831)
24832
24833const (
24834	// ModeStandard is a Mode enum value
24835	ModeStandard = "standard"
24836
24837	// ModeHighPerformance is a Mode enum value
24838	ModeHighPerformance = "high-performance"
24839)
24840
24841const (
24842	// NodeConfigurationOptionsFilterNameNodeType is a NodeConfigurationOptionsFilterName enum value
24843	NodeConfigurationOptionsFilterNameNodeType = "NodeType"
24844
24845	// NodeConfigurationOptionsFilterNameNumberOfNodes is a NodeConfigurationOptionsFilterName enum value
24846	NodeConfigurationOptionsFilterNameNumberOfNodes = "NumberOfNodes"
24847
24848	// NodeConfigurationOptionsFilterNameEstimatedDiskUtilizationPercent is a NodeConfigurationOptionsFilterName enum value
24849	NodeConfigurationOptionsFilterNameEstimatedDiskUtilizationPercent = "EstimatedDiskUtilizationPercent"
24850
24851	// NodeConfigurationOptionsFilterNameMode is a NodeConfigurationOptionsFilterName enum value
24852	NodeConfigurationOptionsFilterNameMode = "Mode"
24853)
24854
24855const (
24856	// OperatorTypeEq is a OperatorType enum value
24857	OperatorTypeEq = "eq"
24858
24859	// OperatorTypeLt is a OperatorType enum value
24860	OperatorTypeLt = "lt"
24861
24862	// OperatorTypeGt is a OperatorType enum value
24863	OperatorTypeGt = "gt"
24864
24865	// OperatorTypeLe is a OperatorType enum value
24866	OperatorTypeLe = "le"
24867
24868	// OperatorTypeGe is a OperatorType enum value
24869	OperatorTypeGe = "ge"
24870
24871	// OperatorTypeIn is a OperatorType enum value
24872	OperatorTypeIn = "in"
24873
24874	// OperatorTypeBetween is a OperatorType enum value
24875	OperatorTypeBetween = "between"
24876)
24877
24878const (
24879	// ParameterApplyTypeStatic is a ParameterApplyType enum value
24880	ParameterApplyTypeStatic = "static"
24881
24882	// ParameterApplyTypeDynamic is a ParameterApplyType enum value
24883	ParameterApplyTypeDynamic = "dynamic"
24884)
24885
24886const (
24887	// ReservedNodeOfferingTypeRegular is a ReservedNodeOfferingType enum value
24888	ReservedNodeOfferingTypeRegular = "Regular"
24889
24890	// ReservedNodeOfferingTypeUpgradable is a ReservedNodeOfferingType enum value
24891	ReservedNodeOfferingTypeUpgradable = "Upgradable"
24892)
24893
24894const (
24895	// ScheduleStateModifying is a ScheduleState enum value
24896	ScheduleStateModifying = "MODIFYING"
24897
24898	// ScheduleStateActive is a ScheduleState enum value
24899	ScheduleStateActive = "ACTIVE"
24900
24901	// ScheduleStateFailed is a ScheduleState enum value
24902	ScheduleStateFailed = "FAILED"
24903)
24904
24905const (
24906	// ScheduledActionFilterNameClusterIdentifier is a ScheduledActionFilterName enum value
24907	ScheduledActionFilterNameClusterIdentifier = "cluster-identifier"
24908
24909	// ScheduledActionFilterNameIamRole is a ScheduledActionFilterName enum value
24910	ScheduledActionFilterNameIamRole = "iam-role"
24911)
24912
24913const (
24914	// ScheduledActionStateActive is a ScheduledActionState enum value
24915	ScheduledActionStateActive = "ACTIVE"
24916
24917	// ScheduledActionStateDisabled is a ScheduledActionState enum value
24918	ScheduledActionStateDisabled = "DISABLED"
24919)
24920
24921const (
24922	// ScheduledActionTypeValuesResizeCluster is a ScheduledActionTypeValues enum value
24923	ScheduledActionTypeValuesResizeCluster = "ResizeCluster"
24924
24925	// ScheduledActionTypeValuesPauseCluster is a ScheduledActionTypeValues enum value
24926	ScheduledActionTypeValuesPauseCluster = "PauseCluster"
24927
24928	// ScheduledActionTypeValuesResumeCluster is a ScheduledActionTypeValues enum value
24929	ScheduledActionTypeValuesResumeCluster = "ResumeCluster"
24930)
24931
24932const (
24933	// SnapshotAttributeToSortBySourceType is a SnapshotAttributeToSortBy enum value
24934	SnapshotAttributeToSortBySourceType = "SOURCE_TYPE"
24935
24936	// SnapshotAttributeToSortByTotalSize is a SnapshotAttributeToSortBy enum value
24937	SnapshotAttributeToSortByTotalSize = "TOTAL_SIZE"
24938
24939	// SnapshotAttributeToSortByCreateTime is a SnapshotAttributeToSortBy enum value
24940	SnapshotAttributeToSortByCreateTime = "CREATE_TIME"
24941)
24942
24943const (
24944	// SortByOrderAsc is a SortByOrder enum value
24945	SortByOrderAsc = "ASC"
24946
24947	// SortByOrderDesc is a SortByOrder enum value
24948	SortByOrderDesc = "DESC"
24949)
24950
24951const (
24952	// SourceTypeCluster is a SourceType enum value
24953	SourceTypeCluster = "cluster"
24954
24955	// SourceTypeClusterParameterGroup is a SourceType enum value
24956	SourceTypeClusterParameterGroup = "cluster-parameter-group"
24957
24958	// SourceTypeClusterSecurityGroup is a SourceType enum value
24959	SourceTypeClusterSecurityGroup = "cluster-security-group"
24960
24961	// SourceTypeClusterSnapshot is a SourceType enum value
24962	SourceTypeClusterSnapshot = "cluster-snapshot"
24963
24964	// SourceTypeScheduledAction is a SourceType enum value
24965	SourceTypeScheduledAction = "scheduled-action"
24966)
24967
24968const (
24969	// TableRestoreStatusTypePending is a TableRestoreStatusType enum value
24970	TableRestoreStatusTypePending = "PENDING"
24971
24972	// TableRestoreStatusTypeInProgress is a TableRestoreStatusType enum value
24973	TableRestoreStatusTypeInProgress = "IN_PROGRESS"
24974
24975	// TableRestoreStatusTypeSucceeded is a TableRestoreStatusType enum value
24976	TableRestoreStatusTypeSucceeded = "SUCCEEDED"
24977
24978	// TableRestoreStatusTypeFailed is a TableRestoreStatusType enum value
24979	TableRestoreStatusTypeFailed = "FAILED"
24980
24981	// TableRestoreStatusTypeCanceled is a TableRestoreStatusType enum value
24982	TableRestoreStatusTypeCanceled = "CANCELED"
24983)
24984
24985const (
24986	// UsageLimitBreachActionLog is a UsageLimitBreachAction enum value
24987	UsageLimitBreachActionLog = "log"
24988
24989	// UsageLimitBreachActionEmitMetric is a UsageLimitBreachAction enum value
24990	UsageLimitBreachActionEmitMetric = "emit-metric"
24991
24992	// UsageLimitBreachActionDisable is a UsageLimitBreachAction enum value
24993	UsageLimitBreachActionDisable = "disable"
24994)
24995
24996const (
24997	// UsageLimitFeatureTypeSpectrum is a UsageLimitFeatureType enum value
24998	UsageLimitFeatureTypeSpectrum = "spectrum"
24999
25000	// UsageLimitFeatureTypeConcurrencyScaling is a UsageLimitFeatureType enum value
25001	UsageLimitFeatureTypeConcurrencyScaling = "concurrency-scaling"
25002)
25003
25004const (
25005	// UsageLimitLimitTypeTime is a UsageLimitLimitType enum value
25006	UsageLimitLimitTypeTime = "time"
25007
25008	// UsageLimitLimitTypeDataScanned is a UsageLimitLimitType enum value
25009	UsageLimitLimitTypeDataScanned = "data-scanned"
25010)
25011
25012const (
25013	// UsageLimitPeriodDaily is a UsageLimitPeriod enum value
25014	UsageLimitPeriodDaily = "daily"
25015
25016	// UsageLimitPeriodWeekly is a UsageLimitPeriod enum value
25017	UsageLimitPeriodWeekly = "weekly"
25018
25019	// UsageLimitPeriodMonthly is a UsageLimitPeriod enum value
25020	UsageLimitPeriodMonthly = "monthly"
25021)
25022