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 opAddPartner = "AddPartner"
117
118// AddPartnerRequest generates a "aws/request.Request" representing the
119// client's request for the AddPartner 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 AddPartner for more information on using the AddPartner
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 AddPartnerRequest method.
134//    req, resp := client.AddPartnerRequest(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/AddPartner
142func (c *Redshift) AddPartnerRequest(input *AddPartnerInput) (req *request.Request, output *AddPartnerOutput) {
143	op := &request.Operation{
144		Name:       opAddPartner,
145		HTTPMethod: "POST",
146		HTTPPath:   "/",
147	}
148
149	if input == nil {
150		input = &AddPartnerInput{}
151	}
152
153	output = &AddPartnerOutput{}
154	req = c.newRequest(op, input, output)
155	return
156}
157
158// AddPartner API operation for Amazon Redshift.
159//
160// Adds a partner integration to a cluster. This operation authorizes a partner
161// to push status updates for the specified database. To complete the integration,
162// you also set up the integration on the partner website.
163//
164// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
165// with awserr.Error's Code and Message methods to get detailed information about
166// the error.
167//
168// See the AWS API reference guide for Amazon Redshift's
169// API operation AddPartner for usage and error information.
170//
171// Returned Error Codes:
172//   * ErrCodePartnerNotFoundFault "PartnerNotFound"
173//   The name of the partner was not found.
174//
175//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
176//   The ClusterIdentifier parameter does not refer to an existing cluster.
177//
178//   * ErrCodeUnauthorizedPartnerIntegrationFault "UnauthorizedPartnerIntegration"
179//   The partner integration is not authorized.
180//
181// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AddPartner
182func (c *Redshift) AddPartner(input *AddPartnerInput) (*AddPartnerOutput, error) {
183	req, out := c.AddPartnerRequest(input)
184	return out, req.Send()
185}
186
187// AddPartnerWithContext is the same as AddPartner with the addition of
188// the ability to pass a context and additional request options.
189//
190// See AddPartner for details on how to use this API operation.
191//
192// The context must be non-nil and will be used for request cancellation. If
193// the context is nil a panic will occur. In the future the SDK may create
194// sub-contexts for http.Requests. See https://golang.org/pkg/context/
195// for more information on using Contexts.
196func (c *Redshift) AddPartnerWithContext(ctx aws.Context, input *AddPartnerInput, opts ...request.Option) (*AddPartnerOutput, error) {
197	req, out := c.AddPartnerRequest(input)
198	req.SetContext(ctx)
199	req.ApplyOptions(opts...)
200	return out, req.Send()
201}
202
203const opAssociateDataShareConsumer = "AssociateDataShareConsumer"
204
205// AssociateDataShareConsumerRequest generates a "aws/request.Request" representing the
206// client's request for the AssociateDataShareConsumer operation. The "output" return
207// value will be populated with the request's response once the request completes
208// successfully.
209//
210// Use "Send" method on the returned Request to send the API call to the service.
211// the "output" return value is not valid until after Send returns without error.
212//
213// See AssociateDataShareConsumer for more information on using the AssociateDataShareConsumer
214// API call, and error handling.
215//
216// This method is useful when you want to inject custom logic or configuration
217// into the SDK's request lifecycle. Such as custom headers, or retry logic.
218//
219//
220//    // Example sending a request using the AssociateDataShareConsumerRequest method.
221//    req, resp := client.AssociateDataShareConsumerRequest(params)
222//
223//    err := req.Send()
224//    if err == nil { // resp is now filled
225//        fmt.Println(resp)
226//    }
227//
228// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AssociateDataShareConsumer
229func (c *Redshift) AssociateDataShareConsumerRequest(input *AssociateDataShareConsumerInput) (req *request.Request, output *AssociateDataShareConsumerOutput) {
230	op := &request.Operation{
231		Name:       opAssociateDataShareConsumer,
232		HTTPMethod: "POST",
233		HTTPPath:   "/",
234	}
235
236	if input == nil {
237		input = &AssociateDataShareConsumerInput{}
238	}
239
240	output = &AssociateDataShareConsumerOutput{}
241	req = c.newRequest(op, input, output)
242	return
243}
244
245// AssociateDataShareConsumer API operation for Amazon Redshift.
246//
247// From a datashare consumer account, associates a datashare with the account
248// (AssociateEntireAccount) or the specified namespace (ConsumerArn). If you
249// make this association, the consumer can consume the datashare.
250//
251// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
252// with awserr.Error's Code and Message methods to get detailed information about
253// the error.
254//
255// See the AWS API reference guide for Amazon Redshift's
256// API operation AssociateDataShareConsumer for usage and error information.
257//
258// Returned Error Codes:
259//   * ErrCodeInvalidDataShareFault "InvalidDataShareFault"
260//   There is an error with the datashare.
261//
262//   * ErrCodeInvalidNamespaceFault "InvalidNamespaceFault"
263//   The namespace isn't valid because the namespace doesn't exist. Provide a
264//   valid namespace.
265//
266// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AssociateDataShareConsumer
267func (c *Redshift) AssociateDataShareConsumer(input *AssociateDataShareConsumerInput) (*AssociateDataShareConsumerOutput, error) {
268	req, out := c.AssociateDataShareConsumerRequest(input)
269	return out, req.Send()
270}
271
272// AssociateDataShareConsumerWithContext is the same as AssociateDataShareConsumer with the addition of
273// the ability to pass a context and additional request options.
274//
275// See AssociateDataShareConsumer for details on how to use this API operation.
276//
277// The context must be non-nil and will be used for request cancellation. If
278// the context is nil a panic will occur. In the future the SDK may create
279// sub-contexts for http.Requests. See https://golang.org/pkg/context/
280// for more information on using Contexts.
281func (c *Redshift) AssociateDataShareConsumerWithContext(ctx aws.Context, input *AssociateDataShareConsumerInput, opts ...request.Option) (*AssociateDataShareConsumerOutput, error) {
282	req, out := c.AssociateDataShareConsumerRequest(input)
283	req.SetContext(ctx)
284	req.ApplyOptions(opts...)
285	return out, req.Send()
286}
287
288const opAuthorizeClusterSecurityGroupIngress = "AuthorizeClusterSecurityGroupIngress"
289
290// AuthorizeClusterSecurityGroupIngressRequest generates a "aws/request.Request" representing the
291// client's request for the AuthorizeClusterSecurityGroupIngress operation. The "output" return
292// value will be populated with the request's response once the request completes
293// successfully.
294//
295// Use "Send" method on the returned Request to send the API call to the service.
296// the "output" return value is not valid until after Send returns without error.
297//
298// See AuthorizeClusterSecurityGroupIngress for more information on using the AuthorizeClusterSecurityGroupIngress
299// API call, and error handling.
300//
301// This method is useful when you want to inject custom logic or configuration
302// into the SDK's request lifecycle. Such as custom headers, or retry logic.
303//
304//
305//    // Example sending a request using the AuthorizeClusterSecurityGroupIngressRequest method.
306//    req, resp := client.AuthorizeClusterSecurityGroupIngressRequest(params)
307//
308//    err := req.Send()
309//    if err == nil { // resp is now filled
310//        fmt.Println(resp)
311//    }
312//
313// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeClusterSecurityGroupIngress
314func (c *Redshift) AuthorizeClusterSecurityGroupIngressRequest(input *AuthorizeClusterSecurityGroupIngressInput) (req *request.Request, output *AuthorizeClusterSecurityGroupIngressOutput) {
315	op := &request.Operation{
316		Name:       opAuthorizeClusterSecurityGroupIngress,
317		HTTPMethod: "POST",
318		HTTPPath:   "/",
319	}
320
321	if input == nil {
322		input = &AuthorizeClusterSecurityGroupIngressInput{}
323	}
324
325	output = &AuthorizeClusterSecurityGroupIngressOutput{}
326	req = c.newRequest(op, input, output)
327	return
328}
329
330// AuthorizeClusterSecurityGroupIngress API operation for Amazon Redshift.
331//
332// Adds an inbound (ingress) rule to an Amazon Redshift security group. Depending
333// on whether the application accessing your cluster is running on the Internet
334// or an Amazon EC2 instance, you can authorize inbound access to either a Classless
335// Interdomain Routing (CIDR)/Internet Protocol (IP) range or to an Amazon EC2
336// security group. You can add as many as 20 ingress rules to an Amazon Redshift
337// security group.
338//
339// If you authorize access to an Amazon EC2 security group, specify EC2SecurityGroupName
340// and EC2SecurityGroupOwnerId. The Amazon EC2 security group and Amazon Redshift
341// cluster must be in the same Amazon Web Services Region.
342//
343// If you authorize access to a CIDR/IP address range, specify CIDRIP. For an
344// overview of CIDR blocks, see the Wikipedia article on Classless Inter-Domain
345// Routing (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
346//
347// You must also associate the security group with a cluster so that clients
348// running on these IP addresses or the EC2 instance are authorized to connect
349// to the cluster. For information about managing security groups, go to Working
350// with Security Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
351// in the Amazon Redshift Cluster Management Guide.
352//
353// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
354// with awserr.Error's Code and Message methods to get detailed information about
355// the error.
356//
357// See the AWS API reference guide for Amazon Redshift's
358// API operation AuthorizeClusterSecurityGroupIngress for usage and error information.
359//
360// Returned Error Codes:
361//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
362//   The cluster security group name does not refer to an existing cluster security
363//   group.
364//
365//   * ErrCodeInvalidClusterSecurityGroupStateFault "InvalidClusterSecurityGroupState"
366//   The state of the cluster security group is not available.
367//
368//   * ErrCodeAuthorizationAlreadyExistsFault "AuthorizationAlreadyExists"
369//   The specified CIDR block or EC2 security group is already authorized for
370//   the specified cluster security group.
371//
372//   * ErrCodeAuthorizationQuotaExceededFault "AuthorizationQuotaExceeded"
373//   The authorization quota for the cluster security group has been reached.
374//
375// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeClusterSecurityGroupIngress
376func (c *Redshift) AuthorizeClusterSecurityGroupIngress(input *AuthorizeClusterSecurityGroupIngressInput) (*AuthorizeClusterSecurityGroupIngressOutput, error) {
377	req, out := c.AuthorizeClusterSecurityGroupIngressRequest(input)
378	return out, req.Send()
379}
380
381// AuthorizeClusterSecurityGroupIngressWithContext is the same as AuthorizeClusterSecurityGroupIngress with the addition of
382// the ability to pass a context and additional request options.
383//
384// See AuthorizeClusterSecurityGroupIngress for details on how to use this API operation.
385//
386// The context must be non-nil and will be used for request cancellation. If
387// the context is nil a panic will occur. In the future the SDK may create
388// sub-contexts for http.Requests. See https://golang.org/pkg/context/
389// for more information on using Contexts.
390func (c *Redshift) AuthorizeClusterSecurityGroupIngressWithContext(ctx aws.Context, input *AuthorizeClusterSecurityGroupIngressInput, opts ...request.Option) (*AuthorizeClusterSecurityGroupIngressOutput, error) {
391	req, out := c.AuthorizeClusterSecurityGroupIngressRequest(input)
392	req.SetContext(ctx)
393	req.ApplyOptions(opts...)
394	return out, req.Send()
395}
396
397const opAuthorizeDataShare = "AuthorizeDataShare"
398
399// AuthorizeDataShareRequest generates a "aws/request.Request" representing the
400// client's request for the AuthorizeDataShare operation. The "output" return
401// value will be populated with the request's response once the request completes
402// successfully.
403//
404// Use "Send" method on the returned Request to send the API call to the service.
405// the "output" return value is not valid until after Send returns without error.
406//
407// See AuthorizeDataShare for more information on using the AuthorizeDataShare
408// API call, and error handling.
409//
410// This method is useful when you want to inject custom logic or configuration
411// into the SDK's request lifecycle. Such as custom headers, or retry logic.
412//
413//
414//    // Example sending a request using the AuthorizeDataShareRequest method.
415//    req, resp := client.AuthorizeDataShareRequest(params)
416//
417//    err := req.Send()
418//    if err == nil { // resp is now filled
419//        fmt.Println(resp)
420//    }
421//
422// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeDataShare
423func (c *Redshift) AuthorizeDataShareRequest(input *AuthorizeDataShareInput) (req *request.Request, output *AuthorizeDataShareOutput) {
424	op := &request.Operation{
425		Name:       opAuthorizeDataShare,
426		HTTPMethod: "POST",
427		HTTPPath:   "/",
428	}
429
430	if input == nil {
431		input = &AuthorizeDataShareInput{}
432	}
433
434	output = &AuthorizeDataShareOutput{}
435	req = c.newRequest(op, input, output)
436	return
437}
438
439// AuthorizeDataShare API operation for Amazon Redshift.
440//
441// From a data producer account, authorizes the sharing of a datashare with
442// one or more consumer accounts. To authorize a datashare for a data consumer,
443// the producer account must have the correct access privileges.
444//
445// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
446// with awserr.Error's Code and Message methods to get detailed information about
447// the error.
448//
449// See the AWS API reference guide for Amazon Redshift's
450// API operation AuthorizeDataShare for usage and error information.
451//
452// Returned Error Codes:
453//   * ErrCodeInvalidDataShareFault "InvalidDataShareFault"
454//   There is an error with the datashare.
455//
456// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeDataShare
457func (c *Redshift) AuthorizeDataShare(input *AuthorizeDataShareInput) (*AuthorizeDataShareOutput, error) {
458	req, out := c.AuthorizeDataShareRequest(input)
459	return out, req.Send()
460}
461
462// AuthorizeDataShareWithContext is the same as AuthorizeDataShare with the addition of
463// the ability to pass a context and additional request options.
464//
465// See AuthorizeDataShare for details on how to use this API operation.
466//
467// The context must be non-nil and will be used for request cancellation. If
468// the context is nil a panic will occur. In the future the SDK may create
469// sub-contexts for http.Requests. See https://golang.org/pkg/context/
470// for more information on using Contexts.
471func (c *Redshift) AuthorizeDataShareWithContext(ctx aws.Context, input *AuthorizeDataShareInput, opts ...request.Option) (*AuthorizeDataShareOutput, error) {
472	req, out := c.AuthorizeDataShareRequest(input)
473	req.SetContext(ctx)
474	req.ApplyOptions(opts...)
475	return out, req.Send()
476}
477
478const opAuthorizeEndpointAccess = "AuthorizeEndpointAccess"
479
480// AuthorizeEndpointAccessRequest generates a "aws/request.Request" representing the
481// client's request for the AuthorizeEndpointAccess operation. The "output" return
482// value will be populated with the request's response once the request completes
483// successfully.
484//
485// Use "Send" method on the returned Request to send the API call to the service.
486// the "output" return value is not valid until after Send returns without error.
487//
488// See AuthorizeEndpointAccess for more information on using the AuthorizeEndpointAccess
489// API call, and error handling.
490//
491// This method is useful when you want to inject custom logic or configuration
492// into the SDK's request lifecycle. Such as custom headers, or retry logic.
493//
494//
495//    // Example sending a request using the AuthorizeEndpointAccessRequest method.
496//    req, resp := client.AuthorizeEndpointAccessRequest(params)
497//
498//    err := req.Send()
499//    if err == nil { // resp is now filled
500//        fmt.Println(resp)
501//    }
502//
503// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeEndpointAccess
504func (c *Redshift) AuthorizeEndpointAccessRequest(input *AuthorizeEndpointAccessInput) (req *request.Request, output *AuthorizeEndpointAccessOutput) {
505	op := &request.Operation{
506		Name:       opAuthorizeEndpointAccess,
507		HTTPMethod: "POST",
508		HTTPPath:   "/",
509	}
510
511	if input == nil {
512		input = &AuthorizeEndpointAccessInput{}
513	}
514
515	output = &AuthorizeEndpointAccessOutput{}
516	req = c.newRequest(op, input, output)
517	return
518}
519
520// AuthorizeEndpointAccess API operation for Amazon Redshift.
521//
522// Grants access to a cluster.
523//
524// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
525// with awserr.Error's Code and Message methods to get detailed information about
526// the error.
527//
528// See the AWS API reference guide for Amazon Redshift's
529// API operation AuthorizeEndpointAccess for usage and error information.
530//
531// Returned Error Codes:
532//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
533//   The ClusterIdentifier parameter does not refer to an existing cluster.
534//
535//   * ErrCodeEndpointAuthorizationsPerClusterLimitExceededFault "EndpointAuthorizationsPerClusterLimitExceeded"
536//   The number of endpoint authorizations per cluster has exceeded its limit.
537//
538//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
539//   The requested operation isn't supported.
540//
541//   * ErrCodeEndpointAuthorizationAlreadyExistsFault "EndpointAuthorizationAlreadyExists"
542//   The authorization already exists for this endpoint.
543//
544//   * ErrCodeInvalidAuthorizationStateFault "InvalidAuthorizationState"
545//   The status of the authorization is not valid.
546//
547//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
548//   The specified cluster is not in the available state.
549//
550// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeEndpointAccess
551func (c *Redshift) AuthorizeEndpointAccess(input *AuthorizeEndpointAccessInput) (*AuthorizeEndpointAccessOutput, error) {
552	req, out := c.AuthorizeEndpointAccessRequest(input)
553	return out, req.Send()
554}
555
556// AuthorizeEndpointAccessWithContext is the same as AuthorizeEndpointAccess with the addition of
557// the ability to pass a context and additional request options.
558//
559// See AuthorizeEndpointAccess for details on how to use this API operation.
560//
561// The context must be non-nil and will be used for request cancellation. If
562// the context is nil a panic will occur. In the future the SDK may create
563// sub-contexts for http.Requests. See https://golang.org/pkg/context/
564// for more information on using Contexts.
565func (c *Redshift) AuthorizeEndpointAccessWithContext(ctx aws.Context, input *AuthorizeEndpointAccessInput, opts ...request.Option) (*AuthorizeEndpointAccessOutput, error) {
566	req, out := c.AuthorizeEndpointAccessRequest(input)
567	req.SetContext(ctx)
568	req.ApplyOptions(opts...)
569	return out, req.Send()
570}
571
572const opAuthorizeSnapshotAccess = "AuthorizeSnapshotAccess"
573
574// AuthorizeSnapshotAccessRequest generates a "aws/request.Request" representing the
575// client's request for the AuthorizeSnapshotAccess operation. The "output" return
576// value will be populated with the request's response once the request completes
577// successfully.
578//
579// Use "Send" method on the returned Request to send the API call to the service.
580// the "output" return value is not valid until after Send returns without error.
581//
582// See AuthorizeSnapshotAccess for more information on using the AuthorizeSnapshotAccess
583// API call, and error handling.
584//
585// This method is useful when you want to inject custom logic or configuration
586// into the SDK's request lifecycle. Such as custom headers, or retry logic.
587//
588//
589//    // Example sending a request using the AuthorizeSnapshotAccessRequest method.
590//    req, resp := client.AuthorizeSnapshotAccessRequest(params)
591//
592//    err := req.Send()
593//    if err == nil { // resp is now filled
594//        fmt.Println(resp)
595//    }
596//
597// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeSnapshotAccess
598func (c *Redshift) AuthorizeSnapshotAccessRequest(input *AuthorizeSnapshotAccessInput) (req *request.Request, output *AuthorizeSnapshotAccessOutput) {
599	op := &request.Operation{
600		Name:       opAuthorizeSnapshotAccess,
601		HTTPMethod: "POST",
602		HTTPPath:   "/",
603	}
604
605	if input == nil {
606		input = &AuthorizeSnapshotAccessInput{}
607	}
608
609	output = &AuthorizeSnapshotAccessOutput{}
610	req = c.newRequest(op, input, output)
611	return
612}
613
614// AuthorizeSnapshotAccess API operation for Amazon Redshift.
615//
616// Authorizes the specified Amazon Web Services account to restore the specified
617// snapshot.
618//
619// For more information about working with snapshots, go to Amazon Redshift
620// Snapshots (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
621// in the Amazon Redshift Cluster Management Guide.
622//
623// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
624// with awserr.Error's Code and Message methods to get detailed information about
625// the error.
626//
627// See the AWS API reference guide for Amazon Redshift's
628// API operation AuthorizeSnapshotAccess for usage and error information.
629//
630// Returned Error Codes:
631//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
632//   The snapshot identifier does not refer to an existing cluster snapshot.
633//
634//   * ErrCodeAuthorizationAlreadyExistsFault "AuthorizationAlreadyExists"
635//   The specified CIDR block or EC2 security group is already authorized for
636//   the specified cluster security group.
637//
638//   * ErrCodeAuthorizationQuotaExceededFault "AuthorizationQuotaExceeded"
639//   The authorization quota for the cluster security group has been reached.
640//
641//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
642//   The request cannot be completed because a dependent service is throttling
643//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
644//
645//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
646//   The specified cluster snapshot is not in the available state, or other accounts
647//   are authorized to access the snapshot.
648//
649//   * ErrCodeLimitExceededFault "LimitExceededFault"
650//   The encryption key has exceeded its grant limit in Amazon Web Services KMS.
651//
652// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeSnapshotAccess
653func (c *Redshift) AuthorizeSnapshotAccess(input *AuthorizeSnapshotAccessInput) (*AuthorizeSnapshotAccessOutput, error) {
654	req, out := c.AuthorizeSnapshotAccessRequest(input)
655	return out, req.Send()
656}
657
658// AuthorizeSnapshotAccessWithContext is the same as AuthorizeSnapshotAccess with the addition of
659// the ability to pass a context and additional request options.
660//
661// See AuthorizeSnapshotAccess for details on how to use this API operation.
662//
663// The context must be non-nil and will be used for request cancellation. If
664// the context is nil a panic will occur. In the future the SDK may create
665// sub-contexts for http.Requests. See https://golang.org/pkg/context/
666// for more information on using Contexts.
667func (c *Redshift) AuthorizeSnapshotAccessWithContext(ctx aws.Context, input *AuthorizeSnapshotAccessInput, opts ...request.Option) (*AuthorizeSnapshotAccessOutput, error) {
668	req, out := c.AuthorizeSnapshotAccessRequest(input)
669	req.SetContext(ctx)
670	req.ApplyOptions(opts...)
671	return out, req.Send()
672}
673
674const opBatchDeleteClusterSnapshots = "BatchDeleteClusterSnapshots"
675
676// BatchDeleteClusterSnapshotsRequest generates a "aws/request.Request" representing the
677// client's request for the BatchDeleteClusterSnapshots operation. The "output" return
678// value will be populated with the request's response once the request completes
679// successfully.
680//
681// Use "Send" method on the returned Request to send the API call to the service.
682// the "output" return value is not valid until after Send returns without error.
683//
684// See BatchDeleteClusterSnapshots for more information on using the BatchDeleteClusterSnapshots
685// API call, and error handling.
686//
687// This method is useful when you want to inject custom logic or configuration
688// into the SDK's request lifecycle. Such as custom headers, or retry logic.
689//
690//
691//    // Example sending a request using the BatchDeleteClusterSnapshotsRequest method.
692//    req, resp := client.BatchDeleteClusterSnapshotsRequest(params)
693//
694//    err := req.Send()
695//    if err == nil { // resp is now filled
696//        fmt.Println(resp)
697//    }
698//
699// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/BatchDeleteClusterSnapshots
700func (c *Redshift) BatchDeleteClusterSnapshotsRequest(input *BatchDeleteClusterSnapshotsInput) (req *request.Request, output *BatchDeleteClusterSnapshotsOutput) {
701	op := &request.Operation{
702		Name:       opBatchDeleteClusterSnapshots,
703		HTTPMethod: "POST",
704		HTTPPath:   "/",
705	}
706
707	if input == nil {
708		input = &BatchDeleteClusterSnapshotsInput{}
709	}
710
711	output = &BatchDeleteClusterSnapshotsOutput{}
712	req = c.newRequest(op, input, output)
713	return
714}
715
716// BatchDeleteClusterSnapshots API operation for Amazon Redshift.
717//
718// Deletes a set of cluster snapshots.
719//
720// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
721// with awserr.Error's Code and Message methods to get detailed information about
722// the error.
723//
724// See the AWS API reference guide for Amazon Redshift's
725// API operation BatchDeleteClusterSnapshots for usage and error information.
726//
727// Returned Error Codes:
728//   * ErrCodeBatchDeleteRequestSizeExceededFault "BatchDeleteRequestSizeExceeded"
729//   The maximum number for a batch delete of snapshots has been reached. The
730//   limit is 100.
731//
732// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/BatchDeleteClusterSnapshots
733func (c *Redshift) BatchDeleteClusterSnapshots(input *BatchDeleteClusterSnapshotsInput) (*BatchDeleteClusterSnapshotsOutput, error) {
734	req, out := c.BatchDeleteClusterSnapshotsRequest(input)
735	return out, req.Send()
736}
737
738// BatchDeleteClusterSnapshotsWithContext is the same as BatchDeleteClusterSnapshots with the addition of
739// the ability to pass a context and additional request options.
740//
741// See BatchDeleteClusterSnapshots for details on how to use this API operation.
742//
743// The context must be non-nil and will be used for request cancellation. If
744// the context is nil a panic will occur. In the future the SDK may create
745// sub-contexts for http.Requests. See https://golang.org/pkg/context/
746// for more information on using Contexts.
747func (c *Redshift) BatchDeleteClusterSnapshotsWithContext(ctx aws.Context, input *BatchDeleteClusterSnapshotsInput, opts ...request.Option) (*BatchDeleteClusterSnapshotsOutput, error) {
748	req, out := c.BatchDeleteClusterSnapshotsRequest(input)
749	req.SetContext(ctx)
750	req.ApplyOptions(opts...)
751	return out, req.Send()
752}
753
754const opBatchModifyClusterSnapshots = "BatchModifyClusterSnapshots"
755
756// BatchModifyClusterSnapshotsRequest generates a "aws/request.Request" representing the
757// client's request for the BatchModifyClusterSnapshots operation. The "output" return
758// value will be populated with the request's response once the request completes
759// successfully.
760//
761// Use "Send" method on the returned Request to send the API call to the service.
762// the "output" return value is not valid until after Send returns without error.
763//
764// See BatchModifyClusterSnapshots for more information on using the BatchModifyClusterSnapshots
765// API call, and error handling.
766//
767// This method is useful when you want to inject custom logic or configuration
768// into the SDK's request lifecycle. Such as custom headers, or retry logic.
769//
770//
771//    // Example sending a request using the BatchModifyClusterSnapshotsRequest method.
772//    req, resp := client.BatchModifyClusterSnapshotsRequest(params)
773//
774//    err := req.Send()
775//    if err == nil { // resp is now filled
776//        fmt.Println(resp)
777//    }
778//
779// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/BatchModifyClusterSnapshots
780func (c *Redshift) BatchModifyClusterSnapshotsRequest(input *BatchModifyClusterSnapshotsInput) (req *request.Request, output *BatchModifyClusterSnapshotsOutput) {
781	op := &request.Operation{
782		Name:       opBatchModifyClusterSnapshots,
783		HTTPMethod: "POST",
784		HTTPPath:   "/",
785	}
786
787	if input == nil {
788		input = &BatchModifyClusterSnapshotsInput{}
789	}
790
791	output = &BatchModifyClusterSnapshotsOutput{}
792	req = c.newRequest(op, input, output)
793	return
794}
795
796// BatchModifyClusterSnapshots API operation for Amazon Redshift.
797//
798// Modifies the settings for a set of cluster snapshots.
799//
800// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
801// with awserr.Error's Code and Message methods to get detailed information about
802// the error.
803//
804// See the AWS API reference guide for Amazon Redshift's
805// API operation BatchModifyClusterSnapshots for usage and error information.
806//
807// Returned Error Codes:
808//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
809//   The retention period specified is either in the past or is not a valid value.
810//
811//   The value must be either -1 or an integer between 1 and 3,653.
812//
813//   * ErrCodeBatchModifyClusterSnapshotsLimitExceededFault "BatchModifyClusterSnapshotsLimitExceededFault"
814//   The maximum number for snapshot identifiers has been reached. The limit is
815//   100.
816//
817// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/BatchModifyClusterSnapshots
818func (c *Redshift) BatchModifyClusterSnapshots(input *BatchModifyClusterSnapshotsInput) (*BatchModifyClusterSnapshotsOutput, error) {
819	req, out := c.BatchModifyClusterSnapshotsRequest(input)
820	return out, req.Send()
821}
822
823// BatchModifyClusterSnapshotsWithContext is the same as BatchModifyClusterSnapshots with the addition of
824// the ability to pass a context and additional request options.
825//
826// See BatchModifyClusterSnapshots for details on how to use this API operation.
827//
828// The context must be non-nil and will be used for request cancellation. If
829// the context is nil a panic will occur. In the future the SDK may create
830// sub-contexts for http.Requests. See https://golang.org/pkg/context/
831// for more information on using Contexts.
832func (c *Redshift) BatchModifyClusterSnapshotsWithContext(ctx aws.Context, input *BatchModifyClusterSnapshotsInput, opts ...request.Option) (*BatchModifyClusterSnapshotsOutput, error) {
833	req, out := c.BatchModifyClusterSnapshotsRequest(input)
834	req.SetContext(ctx)
835	req.ApplyOptions(opts...)
836	return out, req.Send()
837}
838
839const opCancelResize = "CancelResize"
840
841// CancelResizeRequest generates a "aws/request.Request" representing the
842// client's request for the CancelResize operation. The "output" return
843// value will be populated with the request's response once the request completes
844// successfully.
845//
846// Use "Send" method on the returned Request to send the API call to the service.
847// the "output" return value is not valid until after Send returns without error.
848//
849// See CancelResize for more information on using the CancelResize
850// API call, and error handling.
851//
852// This method is useful when you want to inject custom logic or configuration
853// into the SDK's request lifecycle. Such as custom headers, or retry logic.
854//
855//
856//    // Example sending a request using the CancelResizeRequest method.
857//    req, resp := client.CancelResizeRequest(params)
858//
859//    err := req.Send()
860//    if err == nil { // resp is now filled
861//        fmt.Println(resp)
862//    }
863//
864// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CancelResize
865func (c *Redshift) CancelResizeRequest(input *CancelResizeInput) (req *request.Request, output *CancelResizeOutput) {
866	op := &request.Operation{
867		Name:       opCancelResize,
868		HTTPMethod: "POST",
869		HTTPPath:   "/",
870	}
871
872	if input == nil {
873		input = &CancelResizeInput{}
874	}
875
876	output = &CancelResizeOutput{}
877	req = c.newRequest(op, input, output)
878	return
879}
880
881// CancelResize API operation for Amazon Redshift.
882//
883// Cancels a resize operation for a cluster.
884//
885// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
886// with awserr.Error's Code and Message methods to get detailed information about
887// the error.
888//
889// See the AWS API reference guide for Amazon Redshift's
890// API operation CancelResize for usage and error information.
891//
892// Returned Error Codes:
893//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
894//   The ClusterIdentifier parameter does not refer to an existing cluster.
895//
896//   * ErrCodeResizeNotFoundFault "ResizeNotFound"
897//   A resize operation for the specified cluster is not found.
898//
899//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
900//   The specified cluster is not in the available state.
901//
902//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
903//   The requested operation isn't supported.
904//
905// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CancelResize
906func (c *Redshift) CancelResize(input *CancelResizeInput) (*CancelResizeOutput, error) {
907	req, out := c.CancelResizeRequest(input)
908	return out, req.Send()
909}
910
911// CancelResizeWithContext is the same as CancelResize with the addition of
912// the ability to pass a context and additional request options.
913//
914// See CancelResize for details on how to use this API operation.
915//
916// The context must be non-nil and will be used for request cancellation. If
917// the context is nil a panic will occur. In the future the SDK may create
918// sub-contexts for http.Requests. See https://golang.org/pkg/context/
919// for more information on using Contexts.
920func (c *Redshift) CancelResizeWithContext(ctx aws.Context, input *CancelResizeInput, opts ...request.Option) (*CancelResizeOutput, error) {
921	req, out := c.CancelResizeRequest(input)
922	req.SetContext(ctx)
923	req.ApplyOptions(opts...)
924	return out, req.Send()
925}
926
927const opCopyClusterSnapshot = "CopyClusterSnapshot"
928
929// CopyClusterSnapshotRequest generates a "aws/request.Request" representing the
930// client's request for the CopyClusterSnapshot operation. The "output" return
931// value will be populated with the request's response once the request completes
932// successfully.
933//
934// Use "Send" method on the returned Request to send the API call to the service.
935// the "output" return value is not valid until after Send returns without error.
936//
937// See CopyClusterSnapshot for more information on using the CopyClusterSnapshot
938// API call, and error handling.
939//
940// This method is useful when you want to inject custom logic or configuration
941// into the SDK's request lifecycle. Such as custom headers, or retry logic.
942//
943//
944//    // Example sending a request using the CopyClusterSnapshotRequest method.
945//    req, resp := client.CopyClusterSnapshotRequest(params)
946//
947//    err := req.Send()
948//    if err == nil { // resp is now filled
949//        fmt.Println(resp)
950//    }
951//
952// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CopyClusterSnapshot
953func (c *Redshift) CopyClusterSnapshotRequest(input *CopyClusterSnapshotInput) (req *request.Request, output *CopyClusterSnapshotOutput) {
954	op := &request.Operation{
955		Name:       opCopyClusterSnapshot,
956		HTTPMethod: "POST",
957		HTTPPath:   "/",
958	}
959
960	if input == nil {
961		input = &CopyClusterSnapshotInput{}
962	}
963
964	output = &CopyClusterSnapshotOutput{}
965	req = c.newRequest(op, input, output)
966	return
967}
968
969// CopyClusterSnapshot API operation for Amazon Redshift.
970//
971// Copies the specified automated cluster snapshot to a new manual cluster snapshot.
972// The source must be an automated snapshot and it must be in the available
973// state.
974//
975// When you delete a cluster, Amazon Redshift deletes any automated snapshots
976// of the cluster. Also, when the retention period of the snapshot expires,
977// Amazon Redshift automatically deletes it. If you want to keep an automated
978// snapshot for a longer period, you can make a manual copy of the snapshot.
979// Manual snapshots are retained until you delete them.
980//
981// For more information about working with snapshots, go to Amazon Redshift
982// Snapshots (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
983// in the Amazon Redshift Cluster Management Guide.
984//
985// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
986// with awserr.Error's Code and Message methods to get detailed information about
987// the error.
988//
989// See the AWS API reference guide for Amazon Redshift's
990// API operation CopyClusterSnapshot for usage and error information.
991//
992// Returned Error Codes:
993//   * ErrCodeClusterSnapshotAlreadyExistsFault "ClusterSnapshotAlreadyExists"
994//   The value specified as a snapshot identifier is already used by an existing
995//   snapshot.
996//
997//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
998//   The snapshot identifier does not refer to an existing cluster snapshot.
999//
1000//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
1001//   The specified cluster snapshot is not in the available state, or other accounts
1002//   are authorized to access the snapshot.
1003//
1004//   * ErrCodeClusterSnapshotQuotaExceededFault "ClusterSnapshotQuotaExceeded"
1005//   The request would result in the user exceeding the allowed number of cluster
1006//   snapshots.
1007//
1008//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
1009//   The retention period specified is either in the past or is not a valid value.
1010//
1011//   The value must be either -1 or an integer between 1 and 3,653.
1012//
1013// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CopyClusterSnapshot
1014func (c *Redshift) CopyClusterSnapshot(input *CopyClusterSnapshotInput) (*CopyClusterSnapshotOutput, error) {
1015	req, out := c.CopyClusterSnapshotRequest(input)
1016	return out, req.Send()
1017}
1018
1019// CopyClusterSnapshotWithContext is the same as CopyClusterSnapshot with the addition of
1020// the ability to pass a context and additional request options.
1021//
1022// See CopyClusterSnapshot for details on how to use this API operation.
1023//
1024// The context must be non-nil and will be used for request cancellation. If
1025// the context is nil a panic will occur. In the future the SDK may create
1026// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1027// for more information on using Contexts.
1028func (c *Redshift) CopyClusterSnapshotWithContext(ctx aws.Context, input *CopyClusterSnapshotInput, opts ...request.Option) (*CopyClusterSnapshotOutput, error) {
1029	req, out := c.CopyClusterSnapshotRequest(input)
1030	req.SetContext(ctx)
1031	req.ApplyOptions(opts...)
1032	return out, req.Send()
1033}
1034
1035const opCreateAuthenticationProfile = "CreateAuthenticationProfile"
1036
1037// CreateAuthenticationProfileRequest generates a "aws/request.Request" representing the
1038// client's request for the CreateAuthenticationProfile operation. The "output" return
1039// value will be populated with the request's response once the request completes
1040// successfully.
1041//
1042// Use "Send" method on the returned Request to send the API call to the service.
1043// the "output" return value is not valid until after Send returns without error.
1044//
1045// See CreateAuthenticationProfile for more information on using the CreateAuthenticationProfile
1046// API call, and error handling.
1047//
1048// This method is useful when you want to inject custom logic or configuration
1049// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1050//
1051//
1052//    // Example sending a request using the CreateAuthenticationProfileRequest method.
1053//    req, resp := client.CreateAuthenticationProfileRequest(params)
1054//
1055//    err := req.Send()
1056//    if err == nil { // resp is now filled
1057//        fmt.Println(resp)
1058//    }
1059//
1060// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateAuthenticationProfile
1061func (c *Redshift) CreateAuthenticationProfileRequest(input *CreateAuthenticationProfileInput) (req *request.Request, output *CreateAuthenticationProfileOutput) {
1062	op := &request.Operation{
1063		Name:       opCreateAuthenticationProfile,
1064		HTTPMethod: "POST",
1065		HTTPPath:   "/",
1066	}
1067
1068	if input == nil {
1069		input = &CreateAuthenticationProfileInput{}
1070	}
1071
1072	output = &CreateAuthenticationProfileOutput{}
1073	req = c.newRequest(op, input, output)
1074	return
1075}
1076
1077// CreateAuthenticationProfile API operation for Amazon Redshift.
1078//
1079// Creates an authentication profile with the specified parameters.
1080//
1081// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1082// with awserr.Error's Code and Message methods to get detailed information about
1083// the error.
1084//
1085// See the AWS API reference guide for Amazon Redshift's
1086// API operation CreateAuthenticationProfile for usage and error information.
1087//
1088// Returned Error Codes:
1089//   * ErrCodeAuthenticationProfileAlreadyExistsFault "AuthenticationProfileAlreadyExistsFault"
1090//   The authentication profile already exists.
1091//
1092//   * ErrCodeAuthenticationProfileQuotaExceededFault "AuthenticationProfileQuotaExceededFault"
1093//   The size or number of authentication profiles has exceeded the quota. The
1094//   maximum length of the JSON string and maximum number of authentication profiles
1095//   is determined by a quota for your account.
1096//
1097//   * ErrCodeInvalidAuthenticationProfileRequestFault "InvalidAuthenticationProfileRequestFault"
1098//   The authentication profile request is not valid. The profile name can't be
1099//   null or empty. The authentication profile API operation must be available
1100//   in the Amazon Web Services Region.
1101//
1102// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateAuthenticationProfile
1103func (c *Redshift) CreateAuthenticationProfile(input *CreateAuthenticationProfileInput) (*CreateAuthenticationProfileOutput, error) {
1104	req, out := c.CreateAuthenticationProfileRequest(input)
1105	return out, req.Send()
1106}
1107
1108// CreateAuthenticationProfileWithContext is the same as CreateAuthenticationProfile with the addition of
1109// the ability to pass a context and additional request options.
1110//
1111// See CreateAuthenticationProfile for details on how to use this API operation.
1112//
1113// The context must be non-nil and will be used for request cancellation. If
1114// the context is nil a panic will occur. In the future the SDK may create
1115// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1116// for more information on using Contexts.
1117func (c *Redshift) CreateAuthenticationProfileWithContext(ctx aws.Context, input *CreateAuthenticationProfileInput, opts ...request.Option) (*CreateAuthenticationProfileOutput, error) {
1118	req, out := c.CreateAuthenticationProfileRequest(input)
1119	req.SetContext(ctx)
1120	req.ApplyOptions(opts...)
1121	return out, req.Send()
1122}
1123
1124const opCreateCluster = "CreateCluster"
1125
1126// CreateClusterRequest generates a "aws/request.Request" representing the
1127// client's request for the CreateCluster operation. The "output" return
1128// value will be populated with the request's response once the request completes
1129// successfully.
1130//
1131// Use "Send" method on the returned Request to send the API call to the service.
1132// the "output" return value is not valid until after Send returns without error.
1133//
1134// See CreateCluster for more information on using the CreateCluster
1135// API call, and error handling.
1136//
1137// This method is useful when you want to inject custom logic or configuration
1138// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1139//
1140//
1141//    // Example sending a request using the CreateClusterRequest method.
1142//    req, resp := client.CreateClusterRequest(params)
1143//
1144//    err := req.Send()
1145//    if err == nil { // resp is now filled
1146//        fmt.Println(resp)
1147//    }
1148//
1149// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateCluster
1150func (c *Redshift) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
1151	op := &request.Operation{
1152		Name:       opCreateCluster,
1153		HTTPMethod: "POST",
1154		HTTPPath:   "/",
1155	}
1156
1157	if input == nil {
1158		input = &CreateClusterInput{}
1159	}
1160
1161	output = &CreateClusterOutput{}
1162	req = c.newRequest(op, input, output)
1163	return
1164}
1165
1166// CreateCluster API operation for Amazon Redshift.
1167//
1168// Creates a new cluster with the specified parameters.
1169//
1170// To create a cluster in Virtual Private Cloud (VPC), you must provide a cluster
1171// subnet group name. The cluster subnet group identifies the subnets of your
1172// VPC that Amazon Redshift uses when creating the cluster. For more information
1173// about managing clusters, go to Amazon Redshift Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
1174// in the Amazon Redshift Cluster Management Guide.
1175//
1176// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1177// with awserr.Error's Code and Message methods to get detailed information about
1178// the error.
1179//
1180// See the AWS API reference guide for Amazon Redshift's
1181// API operation CreateCluster for usage and error information.
1182//
1183// Returned Error Codes:
1184//   * ErrCodeClusterAlreadyExistsFault "ClusterAlreadyExists"
1185//   The account already has a cluster with the given identifier.
1186//
1187//   * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacity"
1188//   The number of nodes specified exceeds the allotted capacity of the cluster.
1189//
1190//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
1191//   The parameter group name does not refer to an existing parameter group.
1192//
1193//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
1194//   The cluster security group name does not refer to an existing cluster security
1195//   group.
1196//
1197//   * ErrCodeClusterQuotaExceededFault "ClusterQuotaExceeded"
1198//   The request would exceed the allowed number of cluster instances for this
1199//   account. For information about increasing your quota, go to Limits in Amazon
1200//   Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1201//   in the Amazon Redshift Cluster Management Guide.
1202//
1203//   * ErrCodeNumberOfNodesQuotaExceededFault "NumberOfNodesQuotaExceeded"
1204//   The operation would exceed the number of nodes allotted to the account. For
1205//   information about increasing your quota, go to Limits in Amazon Redshift
1206//   (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1207//   in the Amazon Redshift Cluster Management Guide.
1208//
1209//   * ErrCodeNumberOfNodesPerClusterLimitExceededFault "NumberOfNodesPerClusterLimitExceeded"
1210//   The operation would exceed the number of nodes allowed for a cluster.
1211//
1212//   * ErrCodeClusterSubnetGroupNotFoundFault "ClusterSubnetGroupNotFoundFault"
1213//   The cluster subnet group name does not refer to an existing cluster subnet
1214//   group.
1215//
1216//   * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault"
1217//   The cluster subnet group does not cover all Availability Zones.
1218//
1219//   * ErrCodeInvalidClusterSubnetGroupStateFault "InvalidClusterSubnetGroupStateFault"
1220//   The cluster subnet group cannot be deleted because it is in use.
1221//
1222//   * ErrCodeInvalidSubnet "InvalidSubnet"
1223//   The requested subnet is not valid, or not all of the subnets are in the same
1224//   VPC.
1225//
1226//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
1227//   Your account is not authorized to perform the requested operation.
1228//
1229//   * ErrCodeHsmClientCertificateNotFoundFault "HsmClientCertificateNotFoundFault"
1230//   There is no Amazon Redshift HSM client certificate with the specified identifier.
1231//
1232//   * ErrCodeHsmConfigurationNotFoundFault "HsmConfigurationNotFoundFault"
1233//   There is no Amazon Redshift HSM configuration with the specified identifier.
1234//
1235//   * ErrCodeInvalidElasticIpFault "InvalidElasticIpFault"
1236//   The Elastic IP (EIP) is invalid or cannot be found.
1237//
1238//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1239//   You have exceeded the number of tags allowed.
1240//
1241//   * ErrCodeInvalidTagFault "InvalidTagFault"
1242//   The tag is invalid.
1243//
1244//   * ErrCodeLimitExceededFault "LimitExceededFault"
1245//   The encryption key has exceeded its grant limit in Amazon Web Services KMS.
1246//
1247//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
1248//   The request cannot be completed because a dependent service is throttling
1249//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
1250//
1251//   * ErrCodeInvalidClusterTrackFault "InvalidClusterTrack"
1252//   The provided cluster track name is not valid.
1253//
1254//   * ErrCodeSnapshotScheduleNotFoundFault "SnapshotScheduleNotFound"
1255//   We could not find the specified snapshot schedule.
1256//
1257//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
1258//   The retention period specified is either in the past or is not a valid value.
1259//
1260//   The value must be either -1 or an integer between 1 and 3,653.
1261//
1262// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateCluster
1263func (c *Redshift) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
1264	req, out := c.CreateClusterRequest(input)
1265	return out, req.Send()
1266}
1267
1268// CreateClusterWithContext is the same as CreateCluster with the addition of
1269// the ability to pass a context and additional request options.
1270//
1271// See CreateCluster for details on how to use this API operation.
1272//
1273// The context must be non-nil and will be used for request cancellation. If
1274// the context is nil a panic will occur. In the future the SDK may create
1275// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1276// for more information on using Contexts.
1277func (c *Redshift) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
1278	req, out := c.CreateClusterRequest(input)
1279	req.SetContext(ctx)
1280	req.ApplyOptions(opts...)
1281	return out, req.Send()
1282}
1283
1284const opCreateClusterParameterGroup = "CreateClusterParameterGroup"
1285
1286// CreateClusterParameterGroupRequest generates a "aws/request.Request" representing the
1287// client's request for the CreateClusterParameterGroup operation. The "output" return
1288// value will be populated with the request's response once the request completes
1289// successfully.
1290//
1291// Use "Send" method on the returned Request to send the API call to the service.
1292// the "output" return value is not valid until after Send returns without error.
1293//
1294// See CreateClusterParameterGroup for more information on using the CreateClusterParameterGroup
1295// API call, and error handling.
1296//
1297// This method is useful when you want to inject custom logic or configuration
1298// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1299//
1300//
1301//    // Example sending a request using the CreateClusterParameterGroupRequest method.
1302//    req, resp := client.CreateClusterParameterGroupRequest(params)
1303//
1304//    err := req.Send()
1305//    if err == nil { // resp is now filled
1306//        fmt.Println(resp)
1307//    }
1308//
1309// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterParameterGroup
1310func (c *Redshift) CreateClusterParameterGroupRequest(input *CreateClusterParameterGroupInput) (req *request.Request, output *CreateClusterParameterGroupOutput) {
1311	op := &request.Operation{
1312		Name:       opCreateClusterParameterGroup,
1313		HTTPMethod: "POST",
1314		HTTPPath:   "/",
1315	}
1316
1317	if input == nil {
1318		input = &CreateClusterParameterGroupInput{}
1319	}
1320
1321	output = &CreateClusterParameterGroupOutput{}
1322	req = c.newRequest(op, input, output)
1323	return
1324}
1325
1326// CreateClusterParameterGroup API operation for Amazon Redshift.
1327//
1328// Creates an Amazon Redshift parameter group.
1329//
1330// Creating parameter groups is independent of creating clusters. You can associate
1331// a cluster with a parameter group when you create the cluster. You can also
1332// associate an existing cluster with a parameter group after the cluster is
1333// created by using ModifyCluster.
1334//
1335// Parameters in the parameter group define specific behavior that applies to
1336// the databases you create on the cluster. For more information about parameters
1337// and parameter groups, go to Amazon Redshift Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
1338// in the Amazon Redshift Cluster Management Guide.
1339//
1340// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1341// with awserr.Error's Code and Message methods to get detailed information about
1342// the error.
1343//
1344// See the AWS API reference guide for Amazon Redshift's
1345// API operation CreateClusterParameterGroup for usage and error information.
1346//
1347// Returned Error Codes:
1348//   * ErrCodeClusterParameterGroupQuotaExceededFault "ClusterParameterGroupQuotaExceeded"
1349//   The request would result in the user exceeding the allowed number of cluster
1350//   parameter groups. For information about increasing your quota, go to Limits
1351//   in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1352//   in the Amazon Redshift Cluster Management Guide.
1353//
1354//   * ErrCodeClusterParameterGroupAlreadyExistsFault "ClusterParameterGroupAlreadyExists"
1355//   A cluster parameter group with the same name already exists.
1356//
1357//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1358//   You have exceeded the number of tags allowed.
1359//
1360//   * ErrCodeInvalidTagFault "InvalidTagFault"
1361//   The tag is invalid.
1362//
1363// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterParameterGroup
1364func (c *Redshift) CreateClusterParameterGroup(input *CreateClusterParameterGroupInput) (*CreateClusterParameterGroupOutput, error) {
1365	req, out := c.CreateClusterParameterGroupRequest(input)
1366	return out, req.Send()
1367}
1368
1369// CreateClusterParameterGroupWithContext is the same as CreateClusterParameterGroup with the addition of
1370// the ability to pass a context and additional request options.
1371//
1372// See CreateClusterParameterGroup for details on how to use this API operation.
1373//
1374// The context must be non-nil and will be used for request cancellation. If
1375// the context is nil a panic will occur. In the future the SDK may create
1376// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1377// for more information on using Contexts.
1378func (c *Redshift) CreateClusterParameterGroupWithContext(ctx aws.Context, input *CreateClusterParameterGroupInput, opts ...request.Option) (*CreateClusterParameterGroupOutput, error) {
1379	req, out := c.CreateClusterParameterGroupRequest(input)
1380	req.SetContext(ctx)
1381	req.ApplyOptions(opts...)
1382	return out, req.Send()
1383}
1384
1385const opCreateClusterSecurityGroup = "CreateClusterSecurityGroup"
1386
1387// CreateClusterSecurityGroupRequest generates a "aws/request.Request" representing the
1388// client's request for the CreateClusterSecurityGroup operation. The "output" return
1389// value will be populated with the request's response once the request completes
1390// successfully.
1391//
1392// Use "Send" method on the returned Request to send the API call to the service.
1393// the "output" return value is not valid until after Send returns without error.
1394//
1395// See CreateClusterSecurityGroup for more information on using the CreateClusterSecurityGroup
1396// API call, and error handling.
1397//
1398// This method is useful when you want to inject custom logic or configuration
1399// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1400//
1401//
1402//    // Example sending a request using the CreateClusterSecurityGroupRequest method.
1403//    req, resp := client.CreateClusterSecurityGroupRequest(params)
1404//
1405//    err := req.Send()
1406//    if err == nil { // resp is now filled
1407//        fmt.Println(resp)
1408//    }
1409//
1410// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSecurityGroup
1411func (c *Redshift) CreateClusterSecurityGroupRequest(input *CreateClusterSecurityGroupInput) (req *request.Request, output *CreateClusterSecurityGroupOutput) {
1412	op := &request.Operation{
1413		Name:       opCreateClusterSecurityGroup,
1414		HTTPMethod: "POST",
1415		HTTPPath:   "/",
1416	}
1417
1418	if input == nil {
1419		input = &CreateClusterSecurityGroupInput{}
1420	}
1421
1422	output = &CreateClusterSecurityGroupOutput{}
1423	req = c.newRequest(op, input, output)
1424	return
1425}
1426
1427// CreateClusterSecurityGroup API operation for Amazon Redshift.
1428//
1429// Creates a new Amazon Redshift security group. You use security groups to
1430// control access to non-VPC clusters.
1431//
1432// For information about managing security groups, go to Amazon Redshift Cluster
1433// Security Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
1434// in the Amazon Redshift Cluster Management Guide.
1435//
1436// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1437// with awserr.Error's Code and Message methods to get detailed information about
1438// the error.
1439//
1440// See the AWS API reference guide for Amazon Redshift's
1441// API operation CreateClusterSecurityGroup for usage and error information.
1442//
1443// Returned Error Codes:
1444//   * ErrCodeClusterSecurityGroupAlreadyExistsFault "ClusterSecurityGroupAlreadyExists"
1445//   A cluster security group with the same name already exists.
1446//
1447//   * ErrCodeClusterSecurityGroupQuotaExceededFault "QuotaExceeded.ClusterSecurityGroup"
1448//   The request would result in the user exceeding the allowed number of cluster
1449//   security groups. For information about increasing your quota, go to Limits
1450//   in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1451//   in the Amazon Redshift Cluster Management Guide.
1452//
1453//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1454//   You have exceeded the number of tags allowed.
1455//
1456//   * ErrCodeInvalidTagFault "InvalidTagFault"
1457//   The tag is invalid.
1458//
1459// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSecurityGroup
1460func (c *Redshift) CreateClusterSecurityGroup(input *CreateClusterSecurityGroupInput) (*CreateClusterSecurityGroupOutput, error) {
1461	req, out := c.CreateClusterSecurityGroupRequest(input)
1462	return out, req.Send()
1463}
1464
1465// CreateClusterSecurityGroupWithContext is the same as CreateClusterSecurityGroup with the addition of
1466// the ability to pass a context and additional request options.
1467//
1468// See CreateClusterSecurityGroup for details on how to use this API operation.
1469//
1470// The context must be non-nil and will be used for request cancellation. If
1471// the context is nil a panic will occur. In the future the SDK may create
1472// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1473// for more information on using Contexts.
1474func (c *Redshift) CreateClusterSecurityGroupWithContext(ctx aws.Context, input *CreateClusterSecurityGroupInput, opts ...request.Option) (*CreateClusterSecurityGroupOutput, error) {
1475	req, out := c.CreateClusterSecurityGroupRequest(input)
1476	req.SetContext(ctx)
1477	req.ApplyOptions(opts...)
1478	return out, req.Send()
1479}
1480
1481const opCreateClusterSnapshot = "CreateClusterSnapshot"
1482
1483// CreateClusterSnapshotRequest generates a "aws/request.Request" representing the
1484// client's request for the CreateClusterSnapshot operation. The "output" return
1485// value will be populated with the request's response once the request completes
1486// successfully.
1487//
1488// Use "Send" method on the returned Request to send the API call to the service.
1489// the "output" return value is not valid until after Send returns without error.
1490//
1491// See CreateClusterSnapshot for more information on using the CreateClusterSnapshot
1492// API call, and error handling.
1493//
1494// This method is useful when you want to inject custom logic or configuration
1495// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1496//
1497//
1498//    // Example sending a request using the CreateClusterSnapshotRequest method.
1499//    req, resp := client.CreateClusterSnapshotRequest(params)
1500//
1501//    err := req.Send()
1502//    if err == nil { // resp is now filled
1503//        fmt.Println(resp)
1504//    }
1505//
1506// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSnapshot
1507func (c *Redshift) CreateClusterSnapshotRequest(input *CreateClusterSnapshotInput) (req *request.Request, output *CreateClusterSnapshotOutput) {
1508	op := &request.Operation{
1509		Name:       opCreateClusterSnapshot,
1510		HTTPMethod: "POST",
1511		HTTPPath:   "/",
1512	}
1513
1514	if input == nil {
1515		input = &CreateClusterSnapshotInput{}
1516	}
1517
1518	output = &CreateClusterSnapshotOutput{}
1519	req = c.newRequest(op, input, output)
1520	return
1521}
1522
1523// CreateClusterSnapshot API operation for Amazon Redshift.
1524//
1525// Creates a manual snapshot of the specified cluster. The cluster must be in
1526// the available state.
1527//
1528// For more information about working with snapshots, go to Amazon Redshift
1529// Snapshots (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
1530// in the Amazon Redshift Cluster Management Guide.
1531//
1532// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1533// with awserr.Error's Code and Message methods to get detailed information about
1534// the error.
1535//
1536// See the AWS API reference guide for Amazon Redshift's
1537// API operation CreateClusterSnapshot for usage and error information.
1538//
1539// Returned Error Codes:
1540//   * ErrCodeClusterSnapshotAlreadyExistsFault "ClusterSnapshotAlreadyExists"
1541//   The value specified as a snapshot identifier is already used by an existing
1542//   snapshot.
1543//
1544//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
1545//   The specified cluster is not in the available state.
1546//
1547//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
1548//   The ClusterIdentifier parameter does not refer to an existing cluster.
1549//
1550//   * ErrCodeClusterSnapshotQuotaExceededFault "ClusterSnapshotQuotaExceeded"
1551//   The request would result in the user exceeding the allowed number of cluster
1552//   snapshots.
1553//
1554//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1555//   You have exceeded the number of tags allowed.
1556//
1557//   * ErrCodeInvalidTagFault "InvalidTagFault"
1558//   The tag is invalid.
1559//
1560//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
1561//   The retention period specified is either in the past or is not a valid value.
1562//
1563//   The value must be either -1 or an integer between 1 and 3,653.
1564//
1565// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSnapshot
1566func (c *Redshift) CreateClusterSnapshot(input *CreateClusterSnapshotInput) (*CreateClusterSnapshotOutput, error) {
1567	req, out := c.CreateClusterSnapshotRequest(input)
1568	return out, req.Send()
1569}
1570
1571// CreateClusterSnapshotWithContext is the same as CreateClusterSnapshot with the addition of
1572// the ability to pass a context and additional request options.
1573//
1574// See CreateClusterSnapshot for details on how to use this API operation.
1575//
1576// The context must be non-nil and will be used for request cancellation. If
1577// the context is nil a panic will occur. In the future the SDK may create
1578// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1579// for more information on using Contexts.
1580func (c *Redshift) CreateClusterSnapshotWithContext(ctx aws.Context, input *CreateClusterSnapshotInput, opts ...request.Option) (*CreateClusterSnapshotOutput, error) {
1581	req, out := c.CreateClusterSnapshotRequest(input)
1582	req.SetContext(ctx)
1583	req.ApplyOptions(opts...)
1584	return out, req.Send()
1585}
1586
1587const opCreateClusterSubnetGroup = "CreateClusterSubnetGroup"
1588
1589// CreateClusterSubnetGroupRequest generates a "aws/request.Request" representing the
1590// client's request for the CreateClusterSubnetGroup operation. The "output" return
1591// value will be populated with the request's response once the request completes
1592// successfully.
1593//
1594// Use "Send" method on the returned Request to send the API call to the service.
1595// the "output" return value is not valid until after Send returns without error.
1596//
1597// See CreateClusterSubnetGroup for more information on using the CreateClusterSubnetGroup
1598// API call, and error handling.
1599//
1600// This method is useful when you want to inject custom logic or configuration
1601// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1602//
1603//
1604//    // Example sending a request using the CreateClusterSubnetGroupRequest method.
1605//    req, resp := client.CreateClusterSubnetGroupRequest(params)
1606//
1607//    err := req.Send()
1608//    if err == nil { // resp is now filled
1609//        fmt.Println(resp)
1610//    }
1611//
1612// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSubnetGroup
1613func (c *Redshift) CreateClusterSubnetGroupRequest(input *CreateClusterSubnetGroupInput) (req *request.Request, output *CreateClusterSubnetGroupOutput) {
1614	op := &request.Operation{
1615		Name:       opCreateClusterSubnetGroup,
1616		HTTPMethod: "POST",
1617		HTTPPath:   "/",
1618	}
1619
1620	if input == nil {
1621		input = &CreateClusterSubnetGroupInput{}
1622	}
1623
1624	output = &CreateClusterSubnetGroupOutput{}
1625	req = c.newRequest(op, input, output)
1626	return
1627}
1628
1629// CreateClusterSubnetGroup API operation for Amazon Redshift.
1630//
1631// Creates a new Amazon Redshift subnet group. You must provide a list of one
1632// or more subnets in your existing Amazon Virtual Private Cloud (Amazon VPC)
1633// when creating Amazon Redshift subnet group.
1634//
1635// For information about subnet groups, go to Amazon Redshift Cluster Subnet
1636// Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-cluster-subnet-groups.html)
1637// in the Amazon Redshift Cluster Management Guide.
1638//
1639// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1640// with awserr.Error's Code and Message methods to get detailed information about
1641// the error.
1642//
1643// See the AWS API reference guide for Amazon Redshift's
1644// API operation CreateClusterSubnetGroup for usage and error information.
1645//
1646// Returned Error Codes:
1647//   * ErrCodeClusterSubnetGroupAlreadyExistsFault "ClusterSubnetGroupAlreadyExists"
1648//   A ClusterSubnetGroupName is already used by an existing cluster subnet group.
1649//
1650//   * ErrCodeClusterSubnetGroupQuotaExceededFault "ClusterSubnetGroupQuotaExceeded"
1651//   The request would result in user exceeding the allowed number of cluster
1652//   subnet groups. For information about increasing your quota, go to Limits
1653//   in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1654//   in the Amazon Redshift Cluster Management Guide.
1655//
1656//   * ErrCodeClusterSubnetQuotaExceededFault "ClusterSubnetQuotaExceededFault"
1657//   The request would result in user exceeding the allowed number of subnets
1658//   in a cluster subnet groups. For information about increasing your quota,
1659//   go to Limits in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1660//   in the Amazon Redshift Cluster Management Guide.
1661//
1662//   * ErrCodeInvalidSubnet "InvalidSubnet"
1663//   The requested subnet is not valid, or not all of the subnets are in the same
1664//   VPC.
1665//
1666//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
1667//   Your account is not authorized to perform the requested operation.
1668//
1669//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1670//   You have exceeded the number of tags allowed.
1671//
1672//   * ErrCodeInvalidTagFault "InvalidTagFault"
1673//   The tag is invalid.
1674//
1675//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
1676//   The request cannot be completed because a dependent service is throttling
1677//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
1678//
1679// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSubnetGroup
1680func (c *Redshift) CreateClusterSubnetGroup(input *CreateClusterSubnetGroupInput) (*CreateClusterSubnetGroupOutput, error) {
1681	req, out := c.CreateClusterSubnetGroupRequest(input)
1682	return out, req.Send()
1683}
1684
1685// CreateClusterSubnetGroupWithContext is the same as CreateClusterSubnetGroup with the addition of
1686// the ability to pass a context and additional request options.
1687//
1688// See CreateClusterSubnetGroup for details on how to use this API operation.
1689//
1690// The context must be non-nil and will be used for request cancellation. If
1691// the context is nil a panic will occur. In the future the SDK may create
1692// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1693// for more information on using Contexts.
1694func (c *Redshift) CreateClusterSubnetGroupWithContext(ctx aws.Context, input *CreateClusterSubnetGroupInput, opts ...request.Option) (*CreateClusterSubnetGroupOutput, error) {
1695	req, out := c.CreateClusterSubnetGroupRequest(input)
1696	req.SetContext(ctx)
1697	req.ApplyOptions(opts...)
1698	return out, req.Send()
1699}
1700
1701const opCreateEndpointAccess = "CreateEndpointAccess"
1702
1703// CreateEndpointAccessRequest generates a "aws/request.Request" representing the
1704// client's request for the CreateEndpointAccess operation. The "output" return
1705// value will be populated with the request's response once the request completes
1706// successfully.
1707//
1708// Use "Send" method on the returned Request to send the API call to the service.
1709// the "output" return value is not valid until after Send returns without error.
1710//
1711// See CreateEndpointAccess for more information on using the CreateEndpointAccess
1712// API call, and error handling.
1713//
1714// This method is useful when you want to inject custom logic or configuration
1715// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1716//
1717//
1718//    // Example sending a request using the CreateEndpointAccessRequest method.
1719//    req, resp := client.CreateEndpointAccessRequest(params)
1720//
1721//    err := req.Send()
1722//    if err == nil { // resp is now filled
1723//        fmt.Println(resp)
1724//    }
1725//
1726// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateEndpointAccess
1727func (c *Redshift) CreateEndpointAccessRequest(input *CreateEndpointAccessInput) (req *request.Request, output *CreateEndpointAccessOutput) {
1728	op := &request.Operation{
1729		Name:       opCreateEndpointAccess,
1730		HTTPMethod: "POST",
1731		HTTPPath:   "/",
1732	}
1733
1734	if input == nil {
1735		input = &CreateEndpointAccessInput{}
1736	}
1737
1738	output = &CreateEndpointAccessOutput{}
1739	req = c.newRequest(op, input, output)
1740	return
1741}
1742
1743// CreateEndpointAccess API operation for Amazon Redshift.
1744//
1745// Creates a Redshift-managed VPC endpoint.
1746//
1747// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1748// with awserr.Error's Code and Message methods to get detailed information about
1749// the error.
1750//
1751// See the AWS API reference guide for Amazon Redshift's
1752// API operation CreateEndpointAccess for usage and error information.
1753//
1754// Returned Error Codes:
1755//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
1756//   The ClusterIdentifier parameter does not refer to an existing cluster.
1757//
1758//   * ErrCodeAccessToClusterDeniedFault "AccessToClusterDenied"
1759//   You are not authorized to access the cluster.
1760//
1761//   * ErrCodeEndpointsPerClusterLimitExceededFault "EndpointsPerClusterLimitExceeded"
1762//   The number of Redshift-managed VPC endpoints per cluster has exceeded its
1763//   limit.
1764//
1765//   * ErrCodeEndpointsPerAuthorizationLimitExceededFault "EndpointsPerAuthorizationLimitExceeded"
1766//   The number of Redshift-managed VPC endpoints per authorization has exceeded
1767//   its limit.
1768//
1769//   * ErrCodeInvalidClusterSecurityGroupStateFault "InvalidClusterSecurityGroupState"
1770//   The state of the cluster security group is not available.
1771//
1772//   * ErrCodeClusterSubnetGroupNotFoundFault "ClusterSubnetGroupNotFoundFault"
1773//   The cluster subnet group name does not refer to an existing cluster subnet
1774//   group.
1775//
1776//   * ErrCodeEndpointAlreadyExistsFault "EndpointAlreadyExists"
1777//   The account already has a Redshift-managed VPC endpoint with the given identifier.
1778//
1779//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
1780//   The requested operation isn't supported.
1781//
1782//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
1783//   The specified cluster is not in the available state.
1784//
1785//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
1786//   Your account is not authorized to perform the requested operation.
1787//
1788// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateEndpointAccess
1789func (c *Redshift) CreateEndpointAccess(input *CreateEndpointAccessInput) (*CreateEndpointAccessOutput, error) {
1790	req, out := c.CreateEndpointAccessRequest(input)
1791	return out, req.Send()
1792}
1793
1794// CreateEndpointAccessWithContext is the same as CreateEndpointAccess with the addition of
1795// the ability to pass a context and additional request options.
1796//
1797// See CreateEndpointAccess for details on how to use this API operation.
1798//
1799// The context must be non-nil and will be used for request cancellation. If
1800// the context is nil a panic will occur. In the future the SDK may create
1801// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1802// for more information on using Contexts.
1803func (c *Redshift) CreateEndpointAccessWithContext(ctx aws.Context, input *CreateEndpointAccessInput, opts ...request.Option) (*CreateEndpointAccessOutput, error) {
1804	req, out := c.CreateEndpointAccessRequest(input)
1805	req.SetContext(ctx)
1806	req.ApplyOptions(opts...)
1807	return out, req.Send()
1808}
1809
1810const opCreateEventSubscription = "CreateEventSubscription"
1811
1812// CreateEventSubscriptionRequest generates a "aws/request.Request" representing the
1813// client's request for the CreateEventSubscription operation. The "output" return
1814// value will be populated with the request's response once the request completes
1815// successfully.
1816//
1817// Use "Send" method on the returned Request to send the API call to the service.
1818// the "output" return value is not valid until after Send returns without error.
1819//
1820// See CreateEventSubscription for more information on using the CreateEventSubscription
1821// API call, and error handling.
1822//
1823// This method is useful when you want to inject custom logic or configuration
1824// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1825//
1826//
1827//    // Example sending a request using the CreateEventSubscriptionRequest method.
1828//    req, resp := client.CreateEventSubscriptionRequest(params)
1829//
1830//    err := req.Send()
1831//    if err == nil { // resp is now filled
1832//        fmt.Println(resp)
1833//    }
1834//
1835// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateEventSubscription
1836func (c *Redshift) CreateEventSubscriptionRequest(input *CreateEventSubscriptionInput) (req *request.Request, output *CreateEventSubscriptionOutput) {
1837	op := &request.Operation{
1838		Name:       opCreateEventSubscription,
1839		HTTPMethod: "POST",
1840		HTTPPath:   "/",
1841	}
1842
1843	if input == nil {
1844		input = &CreateEventSubscriptionInput{}
1845	}
1846
1847	output = &CreateEventSubscriptionOutput{}
1848	req = c.newRequest(op, input, output)
1849	return
1850}
1851
1852// CreateEventSubscription API operation for Amazon Redshift.
1853//
1854// Creates an Amazon Redshift event notification subscription. This action requires
1855// an ARN (Amazon Resource Name) of an Amazon SNS topic created by either the
1856// Amazon Redshift console, the Amazon SNS console, or the Amazon SNS API. To
1857// obtain an ARN with Amazon SNS, you must create a topic in Amazon SNS and
1858// subscribe to the topic. The ARN is displayed in the SNS console.
1859//
1860// You can specify the source type, and lists of Amazon Redshift source IDs,
1861// event categories, and event severities. Notifications will be sent for all
1862// events you want that match those criteria. For example, you can specify source
1863// type = cluster, source ID = my-cluster-1 and mycluster2, event categories
1864// = Availability, Backup, and severity = ERROR. The subscription will only
1865// send notifications for those ERROR events in the Availability and Backup
1866// categories for the specified clusters.
1867//
1868// If you specify both the source type and source IDs, such as source type =
1869// cluster and source identifier = my-cluster-1, notifications will be sent
1870// for all the cluster events for my-cluster-1. If you specify a source type
1871// but do not specify a source identifier, you will receive notice of the events
1872// for the objects of that type in your Amazon Web Services account. If you
1873// do not specify either the SourceType nor the SourceIdentifier, you will be
1874// notified of events generated from all Amazon Redshift sources belonging to
1875// your Amazon Web Services account. You must specify a source type if you specify
1876// a source ID.
1877//
1878// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1879// with awserr.Error's Code and Message methods to get detailed information about
1880// the error.
1881//
1882// See the AWS API reference guide for Amazon Redshift's
1883// API operation CreateEventSubscription for usage and error information.
1884//
1885// Returned Error Codes:
1886//   * ErrCodeEventSubscriptionQuotaExceededFault "EventSubscriptionQuotaExceeded"
1887//   The request would exceed the allowed number of event subscriptions for this
1888//   account. For information about increasing your quota, go to Limits in Amazon
1889//   Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
1890//   in the Amazon Redshift Cluster Management Guide.
1891//
1892//   * ErrCodeSubscriptionAlreadyExistFault "SubscriptionAlreadyExist"
1893//   There is already an existing event notification subscription with the specified
1894//   name.
1895//
1896//   * ErrCodeSNSInvalidTopicFault "SNSInvalidTopic"
1897//   Amazon SNS has responded that there is a problem with the specified Amazon
1898//   SNS topic.
1899//
1900//   * ErrCodeSNSNoAuthorizationFault "SNSNoAuthorization"
1901//   You do not have permission to publish to the specified Amazon SNS topic.
1902//
1903//   * ErrCodeSNSTopicArnNotFoundFault "SNSTopicArnNotFound"
1904//   An Amazon SNS topic with the specified Amazon Resource Name (ARN) does not
1905//   exist.
1906//
1907//   * ErrCodeSubscriptionEventIdNotFoundFault "SubscriptionEventIdNotFound"
1908//   An Amazon Redshift event with the specified event ID does not exist.
1909//
1910//   * ErrCodeSubscriptionCategoryNotFoundFault "SubscriptionCategoryNotFound"
1911//   The value specified for the event category was not one of the allowed values,
1912//   or it specified a category that does not apply to the specified source type.
1913//   The allowed values are Configuration, Management, Monitoring, and Security.
1914//
1915//   * ErrCodeSubscriptionSeverityNotFoundFault "SubscriptionSeverityNotFound"
1916//   The value specified for the event severity was not one of the allowed values,
1917//   or it specified a severity that does not apply to the specified source type.
1918//   The allowed values are ERROR and INFO.
1919//
1920//   * ErrCodeSourceNotFoundFault "SourceNotFound"
1921//   The specified Amazon Redshift event source could not be found.
1922//
1923//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
1924//   You have exceeded the number of tags allowed.
1925//
1926//   * ErrCodeInvalidTagFault "InvalidTagFault"
1927//   The tag is invalid.
1928//
1929// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateEventSubscription
1930func (c *Redshift) CreateEventSubscription(input *CreateEventSubscriptionInput) (*CreateEventSubscriptionOutput, error) {
1931	req, out := c.CreateEventSubscriptionRequest(input)
1932	return out, req.Send()
1933}
1934
1935// CreateEventSubscriptionWithContext is the same as CreateEventSubscription with the addition of
1936// the ability to pass a context and additional request options.
1937//
1938// See CreateEventSubscription for details on how to use this API operation.
1939//
1940// The context must be non-nil and will be used for request cancellation. If
1941// the context is nil a panic will occur. In the future the SDK may create
1942// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1943// for more information on using Contexts.
1944func (c *Redshift) CreateEventSubscriptionWithContext(ctx aws.Context, input *CreateEventSubscriptionInput, opts ...request.Option) (*CreateEventSubscriptionOutput, error) {
1945	req, out := c.CreateEventSubscriptionRequest(input)
1946	req.SetContext(ctx)
1947	req.ApplyOptions(opts...)
1948	return out, req.Send()
1949}
1950
1951const opCreateHsmClientCertificate = "CreateHsmClientCertificate"
1952
1953// CreateHsmClientCertificateRequest generates a "aws/request.Request" representing the
1954// client's request for the CreateHsmClientCertificate operation. The "output" return
1955// value will be populated with the request's response once the request completes
1956// successfully.
1957//
1958// Use "Send" method on the returned Request to send the API call to the service.
1959// the "output" return value is not valid until after Send returns without error.
1960//
1961// See CreateHsmClientCertificate for more information on using the CreateHsmClientCertificate
1962// API call, and error handling.
1963//
1964// This method is useful when you want to inject custom logic or configuration
1965// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1966//
1967//
1968//    // Example sending a request using the CreateHsmClientCertificateRequest method.
1969//    req, resp := client.CreateHsmClientCertificateRequest(params)
1970//
1971//    err := req.Send()
1972//    if err == nil { // resp is now filled
1973//        fmt.Println(resp)
1974//    }
1975//
1976// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateHsmClientCertificate
1977func (c *Redshift) CreateHsmClientCertificateRequest(input *CreateHsmClientCertificateInput) (req *request.Request, output *CreateHsmClientCertificateOutput) {
1978	op := &request.Operation{
1979		Name:       opCreateHsmClientCertificate,
1980		HTTPMethod: "POST",
1981		HTTPPath:   "/",
1982	}
1983
1984	if input == nil {
1985		input = &CreateHsmClientCertificateInput{}
1986	}
1987
1988	output = &CreateHsmClientCertificateOutput{}
1989	req = c.newRequest(op, input, output)
1990	return
1991}
1992
1993// CreateHsmClientCertificate API operation for Amazon Redshift.
1994//
1995// Creates an HSM client certificate that an Amazon Redshift cluster will use
1996// to connect to the client's HSM in order to store and retrieve the keys used
1997// to encrypt the cluster databases.
1998//
1999// The command returns a public key, which you must store in the HSM. In addition
2000// to creating the HSM certificate, you must create an Amazon Redshift HSM configuration
2001// that provides a cluster the information needed to store and use encryption
2002// keys in the HSM. For more information, go to Hardware Security Modules (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html#working-with-HSM)
2003// in the Amazon Redshift Cluster Management Guide.
2004//
2005// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2006// with awserr.Error's Code and Message methods to get detailed information about
2007// the error.
2008//
2009// See the AWS API reference guide for Amazon Redshift's
2010// API operation CreateHsmClientCertificate for usage and error information.
2011//
2012// Returned Error Codes:
2013//   * ErrCodeHsmClientCertificateAlreadyExistsFault "HsmClientCertificateAlreadyExistsFault"
2014//   There is already an existing Amazon Redshift HSM client certificate with
2015//   the specified identifier.
2016//
2017//   * ErrCodeHsmClientCertificateQuotaExceededFault "HsmClientCertificateQuotaExceededFault"
2018//   The quota for HSM client certificates has been reached. For information about
2019//   increasing your quota, go to Limits in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
2020//   in the Amazon Redshift Cluster Management Guide.
2021//
2022//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
2023//   You have exceeded the number of tags allowed.
2024//
2025//   * ErrCodeInvalidTagFault "InvalidTagFault"
2026//   The tag is invalid.
2027//
2028// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateHsmClientCertificate
2029func (c *Redshift) CreateHsmClientCertificate(input *CreateHsmClientCertificateInput) (*CreateHsmClientCertificateOutput, error) {
2030	req, out := c.CreateHsmClientCertificateRequest(input)
2031	return out, req.Send()
2032}
2033
2034// CreateHsmClientCertificateWithContext is the same as CreateHsmClientCertificate with the addition of
2035// the ability to pass a context and additional request options.
2036//
2037// See CreateHsmClientCertificate for details on how to use this API operation.
2038//
2039// The context must be non-nil and will be used for request cancellation. If
2040// the context is nil a panic will occur. In the future the SDK may create
2041// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2042// for more information on using Contexts.
2043func (c *Redshift) CreateHsmClientCertificateWithContext(ctx aws.Context, input *CreateHsmClientCertificateInput, opts ...request.Option) (*CreateHsmClientCertificateOutput, error) {
2044	req, out := c.CreateHsmClientCertificateRequest(input)
2045	req.SetContext(ctx)
2046	req.ApplyOptions(opts...)
2047	return out, req.Send()
2048}
2049
2050const opCreateHsmConfiguration = "CreateHsmConfiguration"
2051
2052// CreateHsmConfigurationRequest generates a "aws/request.Request" representing the
2053// client's request for the CreateHsmConfiguration operation. The "output" return
2054// value will be populated with the request's response once the request completes
2055// successfully.
2056//
2057// Use "Send" method on the returned Request to send the API call to the service.
2058// the "output" return value is not valid until after Send returns without error.
2059//
2060// See CreateHsmConfiguration for more information on using the CreateHsmConfiguration
2061// API call, and error handling.
2062//
2063// This method is useful when you want to inject custom logic or configuration
2064// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2065//
2066//
2067//    // Example sending a request using the CreateHsmConfigurationRequest method.
2068//    req, resp := client.CreateHsmConfigurationRequest(params)
2069//
2070//    err := req.Send()
2071//    if err == nil { // resp is now filled
2072//        fmt.Println(resp)
2073//    }
2074//
2075// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateHsmConfiguration
2076func (c *Redshift) CreateHsmConfigurationRequest(input *CreateHsmConfigurationInput) (req *request.Request, output *CreateHsmConfigurationOutput) {
2077	op := &request.Operation{
2078		Name:       opCreateHsmConfiguration,
2079		HTTPMethod: "POST",
2080		HTTPPath:   "/",
2081	}
2082
2083	if input == nil {
2084		input = &CreateHsmConfigurationInput{}
2085	}
2086
2087	output = &CreateHsmConfigurationOutput{}
2088	req = c.newRequest(op, input, output)
2089	return
2090}
2091
2092// CreateHsmConfiguration API operation for Amazon Redshift.
2093//
2094// Creates an HSM configuration that contains the information required by an
2095// Amazon Redshift cluster to store and use database encryption keys in a Hardware
2096// Security Module (HSM). After creating the HSM configuration, you can specify
2097// it as a parameter when creating a cluster. The cluster will then store its
2098// encryption keys in the HSM.
2099//
2100// In addition to creating an HSM configuration, you must also create an HSM
2101// client certificate. For more information, go to Hardware Security Modules
2102// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-HSM.html)
2103// in the Amazon Redshift Cluster Management Guide.
2104//
2105// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2106// with awserr.Error's Code and Message methods to get detailed information about
2107// the error.
2108//
2109// See the AWS API reference guide for Amazon Redshift's
2110// API operation CreateHsmConfiguration for usage and error information.
2111//
2112// Returned Error Codes:
2113//   * ErrCodeHsmConfigurationAlreadyExistsFault "HsmConfigurationAlreadyExistsFault"
2114//   There is already an existing Amazon Redshift HSM configuration with the specified
2115//   identifier.
2116//
2117//   * ErrCodeHsmConfigurationQuotaExceededFault "HsmConfigurationQuotaExceededFault"
2118//   The quota for HSM configurations has been reached. For information about
2119//   increasing your quota, go to Limits in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
2120//   in the Amazon Redshift Cluster Management Guide.
2121//
2122//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
2123//   You have exceeded the number of tags allowed.
2124//
2125//   * ErrCodeInvalidTagFault "InvalidTagFault"
2126//   The tag is invalid.
2127//
2128// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateHsmConfiguration
2129func (c *Redshift) CreateHsmConfiguration(input *CreateHsmConfigurationInput) (*CreateHsmConfigurationOutput, error) {
2130	req, out := c.CreateHsmConfigurationRequest(input)
2131	return out, req.Send()
2132}
2133
2134// CreateHsmConfigurationWithContext is the same as CreateHsmConfiguration with the addition of
2135// the ability to pass a context and additional request options.
2136//
2137// See CreateHsmConfiguration for details on how to use this API operation.
2138//
2139// The context must be non-nil and will be used for request cancellation. If
2140// the context is nil a panic will occur. In the future the SDK may create
2141// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2142// for more information on using Contexts.
2143func (c *Redshift) CreateHsmConfigurationWithContext(ctx aws.Context, input *CreateHsmConfigurationInput, opts ...request.Option) (*CreateHsmConfigurationOutput, error) {
2144	req, out := c.CreateHsmConfigurationRequest(input)
2145	req.SetContext(ctx)
2146	req.ApplyOptions(opts...)
2147	return out, req.Send()
2148}
2149
2150const opCreateScheduledAction = "CreateScheduledAction"
2151
2152// CreateScheduledActionRequest generates a "aws/request.Request" representing the
2153// client's request for the CreateScheduledAction operation. The "output" return
2154// value will be populated with the request's response once the request completes
2155// successfully.
2156//
2157// Use "Send" method on the returned Request to send the API call to the service.
2158// the "output" return value is not valid until after Send returns without error.
2159//
2160// See CreateScheduledAction for more information on using the CreateScheduledAction
2161// API call, and error handling.
2162//
2163// This method is useful when you want to inject custom logic or configuration
2164// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2165//
2166//
2167//    // Example sending a request using the CreateScheduledActionRequest method.
2168//    req, resp := client.CreateScheduledActionRequest(params)
2169//
2170//    err := req.Send()
2171//    if err == nil { // resp is now filled
2172//        fmt.Println(resp)
2173//    }
2174//
2175// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateScheduledAction
2176func (c *Redshift) CreateScheduledActionRequest(input *CreateScheduledActionInput) (req *request.Request, output *CreateScheduledActionOutput) {
2177	op := &request.Operation{
2178		Name:       opCreateScheduledAction,
2179		HTTPMethod: "POST",
2180		HTTPPath:   "/",
2181	}
2182
2183	if input == nil {
2184		input = &CreateScheduledActionInput{}
2185	}
2186
2187	output = &CreateScheduledActionOutput{}
2188	req = c.newRequest(op, input, output)
2189	return
2190}
2191
2192// CreateScheduledAction API operation for Amazon Redshift.
2193//
2194// Creates a scheduled action. A scheduled action contains a schedule and an
2195// Amazon Redshift API action. For example, you can create a schedule of when
2196// to run the ResizeCluster API operation.
2197//
2198// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2199// with awserr.Error's Code and Message methods to get detailed information about
2200// the error.
2201//
2202// See the AWS API reference guide for Amazon Redshift's
2203// API operation CreateScheduledAction for usage and error information.
2204//
2205// Returned Error Codes:
2206//   * ErrCodeScheduledActionAlreadyExistsFault "ScheduledActionAlreadyExists"
2207//   The scheduled action already exists.
2208//
2209//   * ErrCodeScheduledActionQuotaExceededFault "ScheduledActionQuotaExceeded"
2210//   The quota for scheduled actions exceeded.
2211//
2212//   * ErrCodeScheduledActionTypeUnsupportedFault "ScheduledActionTypeUnsupported"
2213//   The action type specified for a scheduled action is not supported.
2214//
2215//   * ErrCodeInvalidScheduleFault "InvalidSchedule"
2216//   The schedule you submitted isn't valid.
2217//
2218//   * ErrCodeInvalidScheduledActionFault "InvalidScheduledAction"
2219//   The scheduled action is not valid.
2220//
2221//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
2222//   Your account is not authorized to perform the requested operation.
2223//
2224// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateScheduledAction
2225func (c *Redshift) CreateScheduledAction(input *CreateScheduledActionInput) (*CreateScheduledActionOutput, error) {
2226	req, out := c.CreateScheduledActionRequest(input)
2227	return out, req.Send()
2228}
2229
2230// CreateScheduledActionWithContext is the same as CreateScheduledAction with the addition of
2231// the ability to pass a context and additional request options.
2232//
2233// See CreateScheduledAction for details on how to use this API operation.
2234//
2235// The context must be non-nil and will be used for request cancellation. If
2236// the context is nil a panic will occur. In the future the SDK may create
2237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2238// for more information on using Contexts.
2239func (c *Redshift) CreateScheduledActionWithContext(ctx aws.Context, input *CreateScheduledActionInput, opts ...request.Option) (*CreateScheduledActionOutput, error) {
2240	req, out := c.CreateScheduledActionRequest(input)
2241	req.SetContext(ctx)
2242	req.ApplyOptions(opts...)
2243	return out, req.Send()
2244}
2245
2246const opCreateSnapshotCopyGrant = "CreateSnapshotCopyGrant"
2247
2248// CreateSnapshotCopyGrantRequest generates a "aws/request.Request" representing the
2249// client's request for the CreateSnapshotCopyGrant operation. The "output" return
2250// value will be populated with the request's response once the request completes
2251// successfully.
2252//
2253// Use "Send" method on the returned Request to send the API call to the service.
2254// the "output" return value is not valid until after Send returns without error.
2255//
2256// See CreateSnapshotCopyGrant for more information on using the CreateSnapshotCopyGrant
2257// API call, and error handling.
2258//
2259// This method is useful when you want to inject custom logic or configuration
2260// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2261//
2262//
2263//    // Example sending a request using the CreateSnapshotCopyGrantRequest method.
2264//    req, resp := client.CreateSnapshotCopyGrantRequest(params)
2265//
2266//    err := req.Send()
2267//    if err == nil { // resp is now filled
2268//        fmt.Println(resp)
2269//    }
2270//
2271// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotCopyGrant
2272func (c *Redshift) CreateSnapshotCopyGrantRequest(input *CreateSnapshotCopyGrantInput) (req *request.Request, output *CreateSnapshotCopyGrantOutput) {
2273	op := &request.Operation{
2274		Name:       opCreateSnapshotCopyGrant,
2275		HTTPMethod: "POST",
2276		HTTPPath:   "/",
2277	}
2278
2279	if input == nil {
2280		input = &CreateSnapshotCopyGrantInput{}
2281	}
2282
2283	output = &CreateSnapshotCopyGrantOutput{}
2284	req = c.newRequest(op, input, output)
2285	return
2286}
2287
2288// CreateSnapshotCopyGrant API operation for Amazon Redshift.
2289//
2290// Creates a snapshot copy grant that permits Amazon Redshift to use a customer
2291// master key (CMK) from Key Management Service (KMS) to encrypt copied snapshots
2292// in a destination region.
2293//
2294// For more information about managing snapshot copy grants, go to Amazon Redshift
2295// Database Encryption (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
2296// in the Amazon Redshift Cluster Management Guide.
2297//
2298// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2299// with awserr.Error's Code and Message methods to get detailed information about
2300// the error.
2301//
2302// See the AWS API reference guide for Amazon Redshift's
2303// API operation CreateSnapshotCopyGrant for usage and error information.
2304//
2305// Returned Error Codes:
2306//   * ErrCodeSnapshotCopyGrantAlreadyExistsFault "SnapshotCopyGrantAlreadyExistsFault"
2307//   The snapshot copy grant can't be created because a grant with the same name
2308//   already exists.
2309//
2310//   * ErrCodeSnapshotCopyGrantQuotaExceededFault "SnapshotCopyGrantQuotaExceededFault"
2311//   The Amazon Web Services account has exceeded the maximum number of snapshot
2312//   copy grants in this region.
2313//
2314//   * ErrCodeLimitExceededFault "LimitExceededFault"
2315//   The encryption key has exceeded its grant limit in Amazon Web Services KMS.
2316//
2317//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
2318//   You have exceeded the number of tags allowed.
2319//
2320//   * ErrCodeInvalidTagFault "InvalidTagFault"
2321//   The tag is invalid.
2322//
2323//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
2324//   The request cannot be completed because a dependent service is throttling
2325//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
2326//
2327// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotCopyGrant
2328func (c *Redshift) CreateSnapshotCopyGrant(input *CreateSnapshotCopyGrantInput) (*CreateSnapshotCopyGrantOutput, error) {
2329	req, out := c.CreateSnapshotCopyGrantRequest(input)
2330	return out, req.Send()
2331}
2332
2333// CreateSnapshotCopyGrantWithContext is the same as CreateSnapshotCopyGrant with the addition of
2334// the ability to pass a context and additional request options.
2335//
2336// See CreateSnapshotCopyGrant for details on how to use this API operation.
2337//
2338// The context must be non-nil and will be used for request cancellation. If
2339// the context is nil a panic will occur. In the future the SDK may create
2340// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2341// for more information on using Contexts.
2342func (c *Redshift) CreateSnapshotCopyGrantWithContext(ctx aws.Context, input *CreateSnapshotCopyGrantInput, opts ...request.Option) (*CreateSnapshotCopyGrantOutput, error) {
2343	req, out := c.CreateSnapshotCopyGrantRequest(input)
2344	req.SetContext(ctx)
2345	req.ApplyOptions(opts...)
2346	return out, req.Send()
2347}
2348
2349const opCreateSnapshotSchedule = "CreateSnapshotSchedule"
2350
2351// CreateSnapshotScheduleRequest generates a "aws/request.Request" representing the
2352// client's request for the CreateSnapshotSchedule operation. The "output" return
2353// value will be populated with the request's response once the request completes
2354// successfully.
2355//
2356// Use "Send" method on the returned Request to send the API call to the service.
2357// the "output" return value is not valid until after Send returns without error.
2358//
2359// See CreateSnapshotSchedule for more information on using the CreateSnapshotSchedule
2360// API call, and error handling.
2361//
2362// This method is useful when you want to inject custom logic or configuration
2363// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2364//
2365//
2366//    // Example sending a request using the CreateSnapshotScheduleRequest method.
2367//    req, resp := client.CreateSnapshotScheduleRequest(params)
2368//
2369//    err := req.Send()
2370//    if err == nil { // resp is now filled
2371//        fmt.Println(resp)
2372//    }
2373//
2374// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotSchedule
2375func (c *Redshift) CreateSnapshotScheduleRequest(input *CreateSnapshotScheduleInput) (req *request.Request, output *CreateSnapshotScheduleOutput) {
2376	op := &request.Operation{
2377		Name:       opCreateSnapshotSchedule,
2378		HTTPMethod: "POST",
2379		HTTPPath:   "/",
2380	}
2381
2382	if input == nil {
2383		input = &CreateSnapshotScheduleInput{}
2384	}
2385
2386	output = &CreateSnapshotScheduleOutput{}
2387	req = c.newRequest(op, input, output)
2388	return
2389}
2390
2391// CreateSnapshotSchedule API operation for Amazon Redshift.
2392//
2393// Create a snapshot schedule that can be associated to a cluster and which
2394// overrides the default system backup schedule.
2395//
2396// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2397// with awserr.Error's Code and Message methods to get detailed information about
2398// the error.
2399//
2400// See the AWS API reference guide for Amazon Redshift's
2401// API operation CreateSnapshotSchedule for usage and error information.
2402//
2403// Returned Error Codes:
2404//   * ErrCodeSnapshotScheduleAlreadyExistsFault "SnapshotScheduleAlreadyExists"
2405//   The specified snapshot schedule already exists.
2406//
2407//   * ErrCodeInvalidScheduleFault "InvalidSchedule"
2408//   The schedule you submitted isn't valid.
2409//
2410//   * ErrCodeSnapshotScheduleQuotaExceededFault "SnapshotScheduleQuotaExceeded"
2411//   You have exceeded the quota of snapshot schedules.
2412//
2413//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
2414//   You have exceeded the number of tags allowed.
2415//
2416//   * ErrCodeScheduleDefinitionTypeUnsupportedFault "ScheduleDefinitionTypeUnsupported"
2417//   The definition you submitted is not supported.
2418//
2419//   * ErrCodeInvalidTagFault "InvalidTagFault"
2420//   The tag is invalid.
2421//
2422// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotSchedule
2423func (c *Redshift) CreateSnapshotSchedule(input *CreateSnapshotScheduleInput) (*CreateSnapshotScheduleOutput, error) {
2424	req, out := c.CreateSnapshotScheduleRequest(input)
2425	return out, req.Send()
2426}
2427
2428// CreateSnapshotScheduleWithContext is the same as CreateSnapshotSchedule with the addition of
2429// the ability to pass a context and additional request options.
2430//
2431// See CreateSnapshotSchedule for details on how to use this API operation.
2432//
2433// The context must be non-nil and will be used for request cancellation. If
2434// the context is nil a panic will occur. In the future the SDK may create
2435// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2436// for more information on using Contexts.
2437func (c *Redshift) CreateSnapshotScheduleWithContext(ctx aws.Context, input *CreateSnapshotScheduleInput, opts ...request.Option) (*CreateSnapshotScheduleOutput, error) {
2438	req, out := c.CreateSnapshotScheduleRequest(input)
2439	req.SetContext(ctx)
2440	req.ApplyOptions(opts...)
2441	return out, req.Send()
2442}
2443
2444const opCreateTags = "CreateTags"
2445
2446// CreateTagsRequest generates a "aws/request.Request" representing the
2447// client's request for the CreateTags operation. The "output" return
2448// value will be populated with the request's response once the request completes
2449// successfully.
2450//
2451// Use "Send" method on the returned Request to send the API call to the service.
2452// the "output" return value is not valid until after Send returns without error.
2453//
2454// See CreateTags for more information on using the CreateTags
2455// API call, and error handling.
2456//
2457// This method is useful when you want to inject custom logic or configuration
2458// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2459//
2460//
2461//    // Example sending a request using the CreateTagsRequest method.
2462//    req, resp := client.CreateTagsRequest(params)
2463//
2464//    err := req.Send()
2465//    if err == nil { // resp is now filled
2466//        fmt.Println(resp)
2467//    }
2468//
2469// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateTags
2470func (c *Redshift) CreateTagsRequest(input *CreateTagsInput) (req *request.Request, output *CreateTagsOutput) {
2471	op := &request.Operation{
2472		Name:       opCreateTags,
2473		HTTPMethod: "POST",
2474		HTTPPath:   "/",
2475	}
2476
2477	if input == nil {
2478		input = &CreateTagsInput{}
2479	}
2480
2481	output = &CreateTagsOutput{}
2482	req = c.newRequest(op, input, output)
2483	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2484	return
2485}
2486
2487// CreateTags API operation for Amazon Redshift.
2488//
2489// Adds tags to a cluster.
2490//
2491// A resource can have up to 50 tags. If you try to create more than 50 tags
2492// for a resource, you will receive an error and the attempt will fail.
2493//
2494// If you specify a key that already exists for the resource, the value for
2495// that key will be updated with the new value.
2496//
2497// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2498// with awserr.Error's Code and Message methods to get detailed information about
2499// the error.
2500//
2501// See the AWS API reference guide for Amazon Redshift's
2502// API operation CreateTags for usage and error information.
2503//
2504// Returned Error Codes:
2505//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
2506//   You have exceeded the number of tags allowed.
2507//
2508//   * ErrCodeResourceNotFoundFault "ResourceNotFoundFault"
2509//   The resource could not be found.
2510//
2511//   * ErrCodeInvalidTagFault "InvalidTagFault"
2512//   The tag is invalid.
2513//
2514//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
2515//   The specified cluster is not in the available state.
2516//
2517// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateTags
2518func (c *Redshift) CreateTags(input *CreateTagsInput) (*CreateTagsOutput, error) {
2519	req, out := c.CreateTagsRequest(input)
2520	return out, req.Send()
2521}
2522
2523// CreateTagsWithContext is the same as CreateTags with the addition of
2524// the ability to pass a context and additional request options.
2525//
2526// See CreateTags for details on how to use this API operation.
2527//
2528// The context must be non-nil and will be used for request cancellation. If
2529// the context is nil a panic will occur. In the future the SDK may create
2530// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2531// for more information on using Contexts.
2532func (c *Redshift) CreateTagsWithContext(ctx aws.Context, input *CreateTagsInput, opts ...request.Option) (*CreateTagsOutput, error) {
2533	req, out := c.CreateTagsRequest(input)
2534	req.SetContext(ctx)
2535	req.ApplyOptions(opts...)
2536	return out, req.Send()
2537}
2538
2539const opCreateUsageLimit = "CreateUsageLimit"
2540
2541// CreateUsageLimitRequest generates a "aws/request.Request" representing the
2542// client's request for the CreateUsageLimit operation. The "output" return
2543// value will be populated with the request's response once the request completes
2544// successfully.
2545//
2546// Use "Send" method on the returned Request to send the API call to the service.
2547// the "output" return value is not valid until after Send returns without error.
2548//
2549// See CreateUsageLimit for more information on using the CreateUsageLimit
2550// API call, and error handling.
2551//
2552// This method is useful when you want to inject custom logic or configuration
2553// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2554//
2555//
2556//    // Example sending a request using the CreateUsageLimitRequest method.
2557//    req, resp := client.CreateUsageLimitRequest(params)
2558//
2559//    err := req.Send()
2560//    if err == nil { // resp is now filled
2561//        fmt.Println(resp)
2562//    }
2563//
2564// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateUsageLimit
2565func (c *Redshift) CreateUsageLimitRequest(input *CreateUsageLimitInput) (req *request.Request, output *CreateUsageLimitOutput) {
2566	op := &request.Operation{
2567		Name:       opCreateUsageLimit,
2568		HTTPMethod: "POST",
2569		HTTPPath:   "/",
2570	}
2571
2572	if input == nil {
2573		input = &CreateUsageLimitInput{}
2574	}
2575
2576	output = &CreateUsageLimitOutput{}
2577	req = c.newRequest(op, input, output)
2578	return
2579}
2580
2581// CreateUsageLimit API operation for Amazon Redshift.
2582//
2583// Creates a usage limit for a specified Amazon Redshift feature on a cluster.
2584// The usage limit is identified by the returned usage limit identifier.
2585//
2586// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2587// with awserr.Error's Code and Message methods to get detailed information about
2588// the error.
2589//
2590// See the AWS API reference guide for Amazon Redshift's
2591// API operation CreateUsageLimit for usage and error information.
2592//
2593// Returned Error Codes:
2594//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
2595//   The ClusterIdentifier parameter does not refer to an existing cluster.
2596//
2597//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
2598//   The specified cluster is not in the available state.
2599//
2600//   * ErrCodeLimitExceededFault "LimitExceededFault"
2601//   The encryption key has exceeded its grant limit in Amazon Web Services KMS.
2602//
2603//   * ErrCodeUsageLimitAlreadyExistsFault "UsageLimitAlreadyExists"
2604//   The usage limit already exists.
2605//
2606//   * ErrCodeInvalidUsageLimitFault "InvalidUsageLimit"
2607//   The usage limit is not valid.
2608//
2609//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
2610//   You have exceeded the number of tags allowed.
2611//
2612//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
2613//   The requested operation isn't supported.
2614//
2615// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateUsageLimit
2616func (c *Redshift) CreateUsageLimit(input *CreateUsageLimitInput) (*CreateUsageLimitOutput, error) {
2617	req, out := c.CreateUsageLimitRequest(input)
2618	return out, req.Send()
2619}
2620
2621// CreateUsageLimitWithContext is the same as CreateUsageLimit with the addition of
2622// the ability to pass a context and additional request options.
2623//
2624// See CreateUsageLimit for details on how to use this API operation.
2625//
2626// The context must be non-nil and will be used for request cancellation. If
2627// the context is nil a panic will occur. In the future the SDK may create
2628// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2629// for more information on using Contexts.
2630func (c *Redshift) CreateUsageLimitWithContext(ctx aws.Context, input *CreateUsageLimitInput, opts ...request.Option) (*CreateUsageLimitOutput, error) {
2631	req, out := c.CreateUsageLimitRequest(input)
2632	req.SetContext(ctx)
2633	req.ApplyOptions(opts...)
2634	return out, req.Send()
2635}
2636
2637const opDeauthorizeDataShare = "DeauthorizeDataShare"
2638
2639// DeauthorizeDataShareRequest generates a "aws/request.Request" representing the
2640// client's request for the DeauthorizeDataShare operation. The "output" return
2641// value will be populated with the request's response once the request completes
2642// successfully.
2643//
2644// Use "Send" method on the returned Request to send the API call to the service.
2645// the "output" return value is not valid until after Send returns without error.
2646//
2647// See DeauthorizeDataShare for more information on using the DeauthorizeDataShare
2648// API call, and error handling.
2649//
2650// This method is useful when you want to inject custom logic or configuration
2651// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2652//
2653//
2654//    // Example sending a request using the DeauthorizeDataShareRequest method.
2655//    req, resp := client.DeauthorizeDataShareRequest(params)
2656//
2657//    err := req.Send()
2658//    if err == nil { // resp is now filled
2659//        fmt.Println(resp)
2660//    }
2661//
2662// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeauthorizeDataShare
2663func (c *Redshift) DeauthorizeDataShareRequest(input *DeauthorizeDataShareInput) (req *request.Request, output *DeauthorizeDataShareOutput) {
2664	op := &request.Operation{
2665		Name:       opDeauthorizeDataShare,
2666		HTTPMethod: "POST",
2667		HTTPPath:   "/",
2668	}
2669
2670	if input == nil {
2671		input = &DeauthorizeDataShareInput{}
2672	}
2673
2674	output = &DeauthorizeDataShareOutput{}
2675	req = c.newRequest(op, input, output)
2676	return
2677}
2678
2679// DeauthorizeDataShare API operation for Amazon Redshift.
2680//
2681// From the producer account, removes authorization from the specified datashare.
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 DeauthorizeDataShare for usage and error information.
2689//
2690// Returned Error Codes:
2691//   * ErrCodeInvalidDataShareFault "InvalidDataShareFault"
2692//   There is an error with the datashare.
2693//
2694// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeauthorizeDataShare
2695func (c *Redshift) DeauthorizeDataShare(input *DeauthorizeDataShareInput) (*DeauthorizeDataShareOutput, error) {
2696	req, out := c.DeauthorizeDataShareRequest(input)
2697	return out, req.Send()
2698}
2699
2700// DeauthorizeDataShareWithContext is the same as DeauthorizeDataShare with the addition of
2701// the ability to pass a context and additional request options.
2702//
2703// See DeauthorizeDataShare for details on how to use this API operation.
2704//
2705// The context must be non-nil and will be used for request cancellation. If
2706// the context is nil a panic will occur. In the future the SDK may create
2707// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2708// for more information on using Contexts.
2709func (c *Redshift) DeauthorizeDataShareWithContext(ctx aws.Context, input *DeauthorizeDataShareInput, opts ...request.Option) (*DeauthorizeDataShareOutput, error) {
2710	req, out := c.DeauthorizeDataShareRequest(input)
2711	req.SetContext(ctx)
2712	req.ApplyOptions(opts...)
2713	return out, req.Send()
2714}
2715
2716const opDeleteAuthenticationProfile = "DeleteAuthenticationProfile"
2717
2718// DeleteAuthenticationProfileRequest generates a "aws/request.Request" representing the
2719// client's request for the DeleteAuthenticationProfile operation. The "output" return
2720// value will be populated with the request's response once the request completes
2721// successfully.
2722//
2723// Use "Send" method on the returned Request to send the API call to the service.
2724// the "output" return value is not valid until after Send returns without error.
2725//
2726// See DeleteAuthenticationProfile for more information on using the DeleteAuthenticationProfile
2727// API call, and error handling.
2728//
2729// This method is useful when you want to inject custom logic or configuration
2730// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2731//
2732//
2733//    // Example sending a request using the DeleteAuthenticationProfileRequest method.
2734//    req, resp := client.DeleteAuthenticationProfileRequest(params)
2735//
2736//    err := req.Send()
2737//    if err == nil { // resp is now filled
2738//        fmt.Println(resp)
2739//    }
2740//
2741// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteAuthenticationProfile
2742func (c *Redshift) DeleteAuthenticationProfileRequest(input *DeleteAuthenticationProfileInput) (req *request.Request, output *DeleteAuthenticationProfileOutput) {
2743	op := &request.Operation{
2744		Name:       opDeleteAuthenticationProfile,
2745		HTTPMethod: "POST",
2746		HTTPPath:   "/",
2747	}
2748
2749	if input == nil {
2750		input = &DeleteAuthenticationProfileInput{}
2751	}
2752
2753	output = &DeleteAuthenticationProfileOutput{}
2754	req = c.newRequest(op, input, output)
2755	return
2756}
2757
2758// DeleteAuthenticationProfile API operation for Amazon Redshift.
2759//
2760// Deletes an authentication profile.
2761//
2762// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2763// with awserr.Error's Code and Message methods to get detailed information about
2764// the error.
2765//
2766// See the AWS API reference guide for Amazon Redshift's
2767// API operation DeleteAuthenticationProfile for usage and error information.
2768//
2769// Returned Error Codes:
2770//   * ErrCodeAuthenticationProfileNotFoundFault "AuthenticationProfileNotFoundFault"
2771//   The authentication profile can't be found.
2772//
2773//   * ErrCodeInvalidAuthenticationProfileRequestFault "InvalidAuthenticationProfileRequestFault"
2774//   The authentication profile request is not valid. The profile name can't be
2775//   null or empty. The authentication profile API operation must be available
2776//   in the Amazon Web Services Region.
2777//
2778// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteAuthenticationProfile
2779func (c *Redshift) DeleteAuthenticationProfile(input *DeleteAuthenticationProfileInput) (*DeleteAuthenticationProfileOutput, error) {
2780	req, out := c.DeleteAuthenticationProfileRequest(input)
2781	return out, req.Send()
2782}
2783
2784// DeleteAuthenticationProfileWithContext is the same as DeleteAuthenticationProfile with the addition of
2785// the ability to pass a context and additional request options.
2786//
2787// See DeleteAuthenticationProfile for details on how to use this API operation.
2788//
2789// The context must be non-nil and will be used for request cancellation. If
2790// the context is nil a panic will occur. In the future the SDK may create
2791// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2792// for more information on using Contexts.
2793func (c *Redshift) DeleteAuthenticationProfileWithContext(ctx aws.Context, input *DeleteAuthenticationProfileInput, opts ...request.Option) (*DeleteAuthenticationProfileOutput, error) {
2794	req, out := c.DeleteAuthenticationProfileRequest(input)
2795	req.SetContext(ctx)
2796	req.ApplyOptions(opts...)
2797	return out, req.Send()
2798}
2799
2800const opDeleteCluster = "DeleteCluster"
2801
2802// DeleteClusterRequest generates a "aws/request.Request" representing the
2803// client's request for the DeleteCluster operation. The "output" return
2804// value will be populated with the request's response once the request completes
2805// successfully.
2806//
2807// Use "Send" method on the returned Request to send the API call to the service.
2808// the "output" return value is not valid until after Send returns without error.
2809//
2810// See DeleteCluster for more information on using the DeleteCluster
2811// API call, and error handling.
2812//
2813// This method is useful when you want to inject custom logic or configuration
2814// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2815//
2816//
2817//    // Example sending a request using the DeleteClusterRequest method.
2818//    req, resp := client.DeleteClusterRequest(params)
2819//
2820//    err := req.Send()
2821//    if err == nil { // resp is now filled
2822//        fmt.Println(resp)
2823//    }
2824//
2825// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteCluster
2826func (c *Redshift) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
2827	op := &request.Operation{
2828		Name:       opDeleteCluster,
2829		HTTPMethod: "POST",
2830		HTTPPath:   "/",
2831	}
2832
2833	if input == nil {
2834		input = &DeleteClusterInput{}
2835	}
2836
2837	output = &DeleteClusterOutput{}
2838	req = c.newRequest(op, input, output)
2839	return
2840}
2841
2842// DeleteCluster API operation for Amazon Redshift.
2843//
2844// Deletes a previously provisioned cluster without its final snapshot being
2845// created. A successful response from the web service indicates that the request
2846// was received correctly. Use DescribeClusters to monitor the status of the
2847// deletion. The delete operation cannot be canceled or reverted once submitted.
2848// For more information about managing clusters, go to Amazon Redshift Clusters
2849// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
2850// in the Amazon Redshift Cluster Management Guide.
2851//
2852// If you want to shut down the cluster and retain it for future use, set SkipFinalClusterSnapshot
2853// to false and specify a name for FinalClusterSnapshotIdentifier. You can later
2854// restore this snapshot to resume using the cluster. If a final cluster snapshot
2855// is requested, the status of the cluster will be "final-snapshot" while the
2856// snapshot is being taken, then it's "deleting" once Amazon Redshift begins
2857// deleting the cluster.
2858//
2859// For more information about managing clusters, go to Amazon Redshift Clusters
2860// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
2861// in the Amazon Redshift Cluster Management Guide.
2862//
2863// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2864// with awserr.Error's Code and Message methods to get detailed information about
2865// the error.
2866//
2867// See the AWS API reference guide for Amazon Redshift's
2868// API operation DeleteCluster for usage and error information.
2869//
2870// Returned Error Codes:
2871//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
2872//   The ClusterIdentifier parameter does not refer to an existing cluster.
2873//
2874//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
2875//   The specified cluster is not in the available state.
2876//
2877//   * ErrCodeClusterSnapshotAlreadyExistsFault "ClusterSnapshotAlreadyExists"
2878//   The value specified as a snapshot identifier is already used by an existing
2879//   snapshot.
2880//
2881//   * ErrCodeClusterSnapshotQuotaExceededFault "ClusterSnapshotQuotaExceeded"
2882//   The request would result in the user exceeding the allowed number of cluster
2883//   snapshots.
2884//
2885//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
2886//   The retention period specified is either in the past or is not a valid value.
2887//
2888//   The value must be either -1 or an integer between 1 and 3,653.
2889//
2890// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteCluster
2891func (c *Redshift) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
2892	req, out := c.DeleteClusterRequest(input)
2893	return out, req.Send()
2894}
2895
2896// DeleteClusterWithContext is the same as DeleteCluster with the addition of
2897// the ability to pass a context and additional request options.
2898//
2899// See DeleteCluster for details on how to use this API operation.
2900//
2901// The context must be non-nil and will be used for request cancellation. If
2902// the context is nil a panic will occur. In the future the SDK may create
2903// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2904// for more information on using Contexts.
2905func (c *Redshift) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
2906	req, out := c.DeleteClusterRequest(input)
2907	req.SetContext(ctx)
2908	req.ApplyOptions(opts...)
2909	return out, req.Send()
2910}
2911
2912const opDeleteClusterParameterGroup = "DeleteClusterParameterGroup"
2913
2914// DeleteClusterParameterGroupRequest generates a "aws/request.Request" representing the
2915// client's request for the DeleteClusterParameterGroup operation. The "output" return
2916// value will be populated with the request's response once the request completes
2917// successfully.
2918//
2919// Use "Send" method on the returned Request to send the API call to the service.
2920// the "output" return value is not valid until after Send returns without error.
2921//
2922// See DeleteClusterParameterGroup for more information on using the DeleteClusterParameterGroup
2923// API call, and error handling.
2924//
2925// This method is useful when you want to inject custom logic or configuration
2926// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2927//
2928//
2929//    // Example sending a request using the DeleteClusterParameterGroupRequest method.
2930//    req, resp := client.DeleteClusterParameterGroupRequest(params)
2931//
2932//    err := req.Send()
2933//    if err == nil { // resp is now filled
2934//        fmt.Println(resp)
2935//    }
2936//
2937// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterParameterGroup
2938func (c *Redshift) DeleteClusterParameterGroupRequest(input *DeleteClusterParameterGroupInput) (req *request.Request, output *DeleteClusterParameterGroupOutput) {
2939	op := &request.Operation{
2940		Name:       opDeleteClusterParameterGroup,
2941		HTTPMethod: "POST",
2942		HTTPPath:   "/",
2943	}
2944
2945	if input == nil {
2946		input = &DeleteClusterParameterGroupInput{}
2947	}
2948
2949	output = &DeleteClusterParameterGroupOutput{}
2950	req = c.newRequest(op, input, output)
2951	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2952	return
2953}
2954
2955// DeleteClusterParameterGroup API operation for Amazon Redshift.
2956//
2957// Deletes a specified Amazon Redshift parameter group.
2958//
2959// You cannot delete a parameter group if it is associated with a cluster.
2960//
2961// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2962// with awserr.Error's Code and Message methods to get detailed information about
2963// the error.
2964//
2965// See the AWS API reference guide for Amazon Redshift's
2966// API operation DeleteClusterParameterGroup for usage and error information.
2967//
2968// Returned Error Codes:
2969//   * ErrCodeInvalidClusterParameterGroupStateFault "InvalidClusterParameterGroupState"
2970//   The cluster parameter group action can not be completed because another task
2971//   is in progress that involves the parameter group. Wait a few moments and
2972//   try the operation again.
2973//
2974//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
2975//   The parameter group name does not refer to an existing parameter group.
2976//
2977// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterParameterGroup
2978func (c *Redshift) DeleteClusterParameterGroup(input *DeleteClusterParameterGroupInput) (*DeleteClusterParameterGroupOutput, error) {
2979	req, out := c.DeleteClusterParameterGroupRequest(input)
2980	return out, req.Send()
2981}
2982
2983// DeleteClusterParameterGroupWithContext is the same as DeleteClusterParameterGroup with the addition of
2984// the ability to pass a context and additional request options.
2985//
2986// See DeleteClusterParameterGroup for details on how to use this API operation.
2987//
2988// The context must be non-nil and will be used for request cancellation. If
2989// the context is nil a panic will occur. In the future the SDK may create
2990// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2991// for more information on using Contexts.
2992func (c *Redshift) DeleteClusterParameterGroupWithContext(ctx aws.Context, input *DeleteClusterParameterGroupInput, opts ...request.Option) (*DeleteClusterParameterGroupOutput, error) {
2993	req, out := c.DeleteClusterParameterGroupRequest(input)
2994	req.SetContext(ctx)
2995	req.ApplyOptions(opts...)
2996	return out, req.Send()
2997}
2998
2999const opDeleteClusterSecurityGroup = "DeleteClusterSecurityGroup"
3000
3001// DeleteClusterSecurityGroupRequest generates a "aws/request.Request" representing the
3002// client's request for the DeleteClusterSecurityGroup operation. The "output" return
3003// value will be populated with the request's response once the request completes
3004// successfully.
3005//
3006// Use "Send" method on the returned Request to send the API call to the service.
3007// the "output" return value is not valid until after Send returns without error.
3008//
3009// See DeleteClusterSecurityGroup for more information on using the DeleteClusterSecurityGroup
3010// API call, and error handling.
3011//
3012// This method is useful when you want to inject custom logic or configuration
3013// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3014//
3015//
3016//    // Example sending a request using the DeleteClusterSecurityGroupRequest method.
3017//    req, resp := client.DeleteClusterSecurityGroupRequest(params)
3018//
3019//    err := req.Send()
3020//    if err == nil { // resp is now filled
3021//        fmt.Println(resp)
3022//    }
3023//
3024// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSecurityGroup
3025func (c *Redshift) DeleteClusterSecurityGroupRequest(input *DeleteClusterSecurityGroupInput) (req *request.Request, output *DeleteClusterSecurityGroupOutput) {
3026	op := &request.Operation{
3027		Name:       opDeleteClusterSecurityGroup,
3028		HTTPMethod: "POST",
3029		HTTPPath:   "/",
3030	}
3031
3032	if input == nil {
3033		input = &DeleteClusterSecurityGroupInput{}
3034	}
3035
3036	output = &DeleteClusterSecurityGroupOutput{}
3037	req = c.newRequest(op, input, output)
3038	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3039	return
3040}
3041
3042// DeleteClusterSecurityGroup API operation for Amazon Redshift.
3043//
3044// Deletes an Amazon Redshift security group.
3045//
3046// You cannot delete a security group that is associated with any clusters.
3047// You cannot delete the default security group.
3048//
3049// For information about managing security groups, go to Amazon Redshift Cluster
3050// Security Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
3051// in the Amazon Redshift Cluster Management Guide.
3052//
3053// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3054// with awserr.Error's Code and Message methods to get detailed information about
3055// the error.
3056//
3057// See the AWS API reference guide for Amazon Redshift's
3058// API operation DeleteClusterSecurityGroup for usage and error information.
3059//
3060// Returned Error Codes:
3061//   * ErrCodeInvalidClusterSecurityGroupStateFault "InvalidClusterSecurityGroupState"
3062//   The state of the cluster security group is not available.
3063//
3064//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
3065//   The cluster security group name does not refer to an existing cluster security
3066//   group.
3067//
3068// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSecurityGroup
3069func (c *Redshift) DeleteClusterSecurityGroup(input *DeleteClusterSecurityGroupInput) (*DeleteClusterSecurityGroupOutput, error) {
3070	req, out := c.DeleteClusterSecurityGroupRequest(input)
3071	return out, req.Send()
3072}
3073
3074// DeleteClusterSecurityGroupWithContext is the same as DeleteClusterSecurityGroup with the addition of
3075// the ability to pass a context and additional request options.
3076//
3077// See DeleteClusterSecurityGroup for details on how to use this API operation.
3078//
3079// The context must be non-nil and will be used for request cancellation. If
3080// the context is nil a panic will occur. In the future the SDK may create
3081// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3082// for more information on using Contexts.
3083func (c *Redshift) DeleteClusterSecurityGroupWithContext(ctx aws.Context, input *DeleteClusterSecurityGroupInput, opts ...request.Option) (*DeleteClusterSecurityGroupOutput, error) {
3084	req, out := c.DeleteClusterSecurityGroupRequest(input)
3085	req.SetContext(ctx)
3086	req.ApplyOptions(opts...)
3087	return out, req.Send()
3088}
3089
3090const opDeleteClusterSnapshot = "DeleteClusterSnapshot"
3091
3092// DeleteClusterSnapshotRequest generates a "aws/request.Request" representing the
3093// client's request for the DeleteClusterSnapshot operation. The "output" return
3094// value will be populated with the request's response once the request completes
3095// successfully.
3096//
3097// Use "Send" method on the returned Request to send the API call to the service.
3098// the "output" return value is not valid until after Send returns without error.
3099//
3100// See DeleteClusterSnapshot for more information on using the DeleteClusterSnapshot
3101// API call, and error handling.
3102//
3103// This method is useful when you want to inject custom logic or configuration
3104// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3105//
3106//
3107//    // Example sending a request using the DeleteClusterSnapshotRequest method.
3108//    req, resp := client.DeleteClusterSnapshotRequest(params)
3109//
3110//    err := req.Send()
3111//    if err == nil { // resp is now filled
3112//        fmt.Println(resp)
3113//    }
3114//
3115// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSnapshot
3116func (c *Redshift) DeleteClusterSnapshotRequest(input *DeleteClusterSnapshotInput) (req *request.Request, output *DeleteClusterSnapshotOutput) {
3117	op := &request.Operation{
3118		Name:       opDeleteClusterSnapshot,
3119		HTTPMethod: "POST",
3120		HTTPPath:   "/",
3121	}
3122
3123	if input == nil {
3124		input = &DeleteClusterSnapshotInput{}
3125	}
3126
3127	output = &DeleteClusterSnapshotOutput{}
3128	req = c.newRequest(op, input, output)
3129	return
3130}
3131
3132// DeleteClusterSnapshot API operation for Amazon Redshift.
3133//
3134// Deletes the specified manual snapshot. The snapshot must be in the available
3135// state, with no other users authorized to access the snapshot.
3136//
3137// Unlike automated snapshots, manual snapshots are retained even after you
3138// delete your cluster. Amazon Redshift does not delete your manual snapshots.
3139// You must delete manual snapshot explicitly to avoid getting charged. If other
3140// accounts are authorized to access the snapshot, you must revoke all of the
3141// authorizations before you can delete the snapshot.
3142//
3143// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3144// with awserr.Error's Code and Message methods to get detailed information about
3145// the error.
3146//
3147// See the AWS API reference guide for Amazon Redshift's
3148// API operation DeleteClusterSnapshot for usage and error information.
3149//
3150// Returned Error Codes:
3151//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
3152//   The specified cluster snapshot is not in the available state, or other accounts
3153//   are authorized to access the snapshot.
3154//
3155//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
3156//   The snapshot identifier does not refer to an existing cluster snapshot.
3157//
3158// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSnapshot
3159func (c *Redshift) DeleteClusterSnapshot(input *DeleteClusterSnapshotInput) (*DeleteClusterSnapshotOutput, error) {
3160	req, out := c.DeleteClusterSnapshotRequest(input)
3161	return out, req.Send()
3162}
3163
3164// DeleteClusterSnapshotWithContext is the same as DeleteClusterSnapshot with the addition of
3165// the ability to pass a context and additional request options.
3166//
3167// See DeleteClusterSnapshot for details on how to use this API operation.
3168//
3169// The context must be non-nil and will be used for request cancellation. If
3170// the context is nil a panic will occur. In the future the SDK may create
3171// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3172// for more information on using Contexts.
3173func (c *Redshift) DeleteClusterSnapshotWithContext(ctx aws.Context, input *DeleteClusterSnapshotInput, opts ...request.Option) (*DeleteClusterSnapshotOutput, error) {
3174	req, out := c.DeleteClusterSnapshotRequest(input)
3175	req.SetContext(ctx)
3176	req.ApplyOptions(opts...)
3177	return out, req.Send()
3178}
3179
3180const opDeleteClusterSubnetGroup = "DeleteClusterSubnetGroup"
3181
3182// DeleteClusterSubnetGroupRequest generates a "aws/request.Request" representing the
3183// client's request for the DeleteClusterSubnetGroup operation. The "output" return
3184// value will be populated with the request's response once the request completes
3185// successfully.
3186//
3187// Use "Send" method on the returned Request to send the API call to the service.
3188// the "output" return value is not valid until after Send returns without error.
3189//
3190// See DeleteClusterSubnetGroup for more information on using the DeleteClusterSubnetGroup
3191// API call, and error handling.
3192//
3193// This method is useful when you want to inject custom logic or configuration
3194// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3195//
3196//
3197//    // Example sending a request using the DeleteClusterSubnetGroupRequest method.
3198//    req, resp := client.DeleteClusterSubnetGroupRequest(params)
3199//
3200//    err := req.Send()
3201//    if err == nil { // resp is now filled
3202//        fmt.Println(resp)
3203//    }
3204//
3205// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSubnetGroup
3206func (c *Redshift) DeleteClusterSubnetGroupRequest(input *DeleteClusterSubnetGroupInput) (req *request.Request, output *DeleteClusterSubnetGroupOutput) {
3207	op := &request.Operation{
3208		Name:       opDeleteClusterSubnetGroup,
3209		HTTPMethod: "POST",
3210		HTTPPath:   "/",
3211	}
3212
3213	if input == nil {
3214		input = &DeleteClusterSubnetGroupInput{}
3215	}
3216
3217	output = &DeleteClusterSubnetGroupOutput{}
3218	req = c.newRequest(op, input, output)
3219	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3220	return
3221}
3222
3223// DeleteClusterSubnetGroup API operation for Amazon Redshift.
3224//
3225// Deletes the specified cluster subnet group.
3226//
3227// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3228// with awserr.Error's Code and Message methods to get detailed information about
3229// the error.
3230//
3231// See the AWS API reference guide for Amazon Redshift's
3232// API operation DeleteClusterSubnetGroup for usage and error information.
3233//
3234// Returned Error Codes:
3235//   * ErrCodeInvalidClusterSubnetGroupStateFault "InvalidClusterSubnetGroupStateFault"
3236//   The cluster subnet group cannot be deleted because it is in use.
3237//
3238//   * ErrCodeInvalidClusterSubnetStateFault "InvalidClusterSubnetStateFault"
3239//   The state of the subnet is invalid.
3240//
3241//   * ErrCodeClusterSubnetGroupNotFoundFault "ClusterSubnetGroupNotFoundFault"
3242//   The cluster subnet group name does not refer to an existing cluster subnet
3243//   group.
3244//
3245// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSubnetGroup
3246func (c *Redshift) DeleteClusterSubnetGroup(input *DeleteClusterSubnetGroupInput) (*DeleteClusterSubnetGroupOutput, error) {
3247	req, out := c.DeleteClusterSubnetGroupRequest(input)
3248	return out, req.Send()
3249}
3250
3251// DeleteClusterSubnetGroupWithContext is the same as DeleteClusterSubnetGroup with the addition of
3252// the ability to pass a context and additional request options.
3253//
3254// See DeleteClusterSubnetGroup for details on how to use this API operation.
3255//
3256// The context must be non-nil and will be used for request cancellation. If
3257// the context is nil a panic will occur. In the future the SDK may create
3258// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3259// for more information on using Contexts.
3260func (c *Redshift) DeleteClusterSubnetGroupWithContext(ctx aws.Context, input *DeleteClusterSubnetGroupInput, opts ...request.Option) (*DeleteClusterSubnetGroupOutput, error) {
3261	req, out := c.DeleteClusterSubnetGroupRequest(input)
3262	req.SetContext(ctx)
3263	req.ApplyOptions(opts...)
3264	return out, req.Send()
3265}
3266
3267const opDeleteEndpointAccess = "DeleteEndpointAccess"
3268
3269// DeleteEndpointAccessRequest generates a "aws/request.Request" representing the
3270// client's request for the DeleteEndpointAccess operation. The "output" return
3271// value will be populated with the request's response once the request completes
3272// successfully.
3273//
3274// Use "Send" method on the returned Request to send the API call to the service.
3275// the "output" return value is not valid until after Send returns without error.
3276//
3277// See DeleteEndpointAccess for more information on using the DeleteEndpointAccess
3278// API call, and error handling.
3279//
3280// This method is useful when you want to inject custom logic or configuration
3281// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3282//
3283//
3284//    // Example sending a request using the DeleteEndpointAccessRequest method.
3285//    req, resp := client.DeleteEndpointAccessRequest(params)
3286//
3287//    err := req.Send()
3288//    if err == nil { // resp is now filled
3289//        fmt.Println(resp)
3290//    }
3291//
3292// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteEndpointAccess
3293func (c *Redshift) DeleteEndpointAccessRequest(input *DeleteEndpointAccessInput) (req *request.Request, output *DeleteEndpointAccessOutput) {
3294	op := &request.Operation{
3295		Name:       opDeleteEndpointAccess,
3296		HTTPMethod: "POST",
3297		HTTPPath:   "/",
3298	}
3299
3300	if input == nil {
3301		input = &DeleteEndpointAccessInput{}
3302	}
3303
3304	output = &DeleteEndpointAccessOutput{}
3305	req = c.newRequest(op, input, output)
3306	return
3307}
3308
3309// DeleteEndpointAccess API operation for Amazon Redshift.
3310//
3311// Deletes a Redshift-managed VPC endpoint.
3312//
3313// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3314// with awserr.Error's Code and Message methods to get detailed information about
3315// the error.
3316//
3317// See the AWS API reference guide for Amazon Redshift's
3318// API operation DeleteEndpointAccess for usage and error information.
3319//
3320// Returned Error Codes:
3321//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
3322//   The ClusterIdentifier parameter does not refer to an existing cluster.
3323//
3324//   * ErrCodeInvalidEndpointStateFault "InvalidEndpointState"
3325//   The status of the endpoint is not valid.
3326//
3327//   * ErrCodeInvalidClusterSecurityGroupStateFault "InvalidClusterSecurityGroupState"
3328//   The state of the cluster security group is not available.
3329//
3330//   * ErrCodeEndpointNotFoundFault "EndpointNotFound"
3331//   The endpoint name doesn't refer to an existing endpoint.
3332//
3333//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
3334//   The specified cluster is not in the available state.
3335//
3336// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteEndpointAccess
3337func (c *Redshift) DeleteEndpointAccess(input *DeleteEndpointAccessInput) (*DeleteEndpointAccessOutput, error) {
3338	req, out := c.DeleteEndpointAccessRequest(input)
3339	return out, req.Send()
3340}
3341
3342// DeleteEndpointAccessWithContext is the same as DeleteEndpointAccess with the addition of
3343// the ability to pass a context and additional request options.
3344//
3345// See DeleteEndpointAccess for details on how to use this API operation.
3346//
3347// The context must be non-nil and will be used for request cancellation. If
3348// the context is nil a panic will occur. In the future the SDK may create
3349// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3350// for more information on using Contexts.
3351func (c *Redshift) DeleteEndpointAccessWithContext(ctx aws.Context, input *DeleteEndpointAccessInput, opts ...request.Option) (*DeleteEndpointAccessOutput, error) {
3352	req, out := c.DeleteEndpointAccessRequest(input)
3353	req.SetContext(ctx)
3354	req.ApplyOptions(opts...)
3355	return out, req.Send()
3356}
3357
3358const opDeleteEventSubscription = "DeleteEventSubscription"
3359
3360// DeleteEventSubscriptionRequest generates a "aws/request.Request" representing the
3361// client's request for the DeleteEventSubscription operation. The "output" return
3362// value will be populated with the request's response once the request completes
3363// successfully.
3364//
3365// Use "Send" method on the returned Request to send the API call to the service.
3366// the "output" return value is not valid until after Send returns without error.
3367//
3368// See DeleteEventSubscription for more information on using the DeleteEventSubscription
3369// API call, and error handling.
3370//
3371// This method is useful when you want to inject custom logic or configuration
3372// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3373//
3374//
3375//    // Example sending a request using the DeleteEventSubscriptionRequest method.
3376//    req, resp := client.DeleteEventSubscriptionRequest(params)
3377//
3378//    err := req.Send()
3379//    if err == nil { // resp is now filled
3380//        fmt.Println(resp)
3381//    }
3382//
3383// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteEventSubscription
3384func (c *Redshift) DeleteEventSubscriptionRequest(input *DeleteEventSubscriptionInput) (req *request.Request, output *DeleteEventSubscriptionOutput) {
3385	op := &request.Operation{
3386		Name:       opDeleteEventSubscription,
3387		HTTPMethod: "POST",
3388		HTTPPath:   "/",
3389	}
3390
3391	if input == nil {
3392		input = &DeleteEventSubscriptionInput{}
3393	}
3394
3395	output = &DeleteEventSubscriptionOutput{}
3396	req = c.newRequest(op, input, output)
3397	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3398	return
3399}
3400
3401// DeleteEventSubscription API operation for Amazon Redshift.
3402//
3403// Deletes an Amazon Redshift event notification subscription.
3404//
3405// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3406// with awserr.Error's Code and Message methods to get detailed information about
3407// the error.
3408//
3409// See the AWS API reference guide for Amazon Redshift's
3410// API operation DeleteEventSubscription for usage and error information.
3411//
3412// Returned Error Codes:
3413//   * ErrCodeSubscriptionNotFoundFault "SubscriptionNotFound"
3414//   An Amazon Redshift event notification subscription with the specified name
3415//   does not exist.
3416//
3417//   * ErrCodeInvalidSubscriptionStateFault "InvalidSubscriptionStateFault"
3418//   The subscription request is invalid because it is a duplicate request. This
3419//   subscription request is already in progress.
3420//
3421// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteEventSubscription
3422func (c *Redshift) DeleteEventSubscription(input *DeleteEventSubscriptionInput) (*DeleteEventSubscriptionOutput, error) {
3423	req, out := c.DeleteEventSubscriptionRequest(input)
3424	return out, req.Send()
3425}
3426
3427// DeleteEventSubscriptionWithContext is the same as DeleteEventSubscription with the addition of
3428// the ability to pass a context and additional request options.
3429//
3430// See DeleteEventSubscription for details on how to use this API operation.
3431//
3432// The context must be non-nil and will be used for request cancellation. If
3433// the context is nil a panic will occur. In the future the SDK may create
3434// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3435// for more information on using Contexts.
3436func (c *Redshift) DeleteEventSubscriptionWithContext(ctx aws.Context, input *DeleteEventSubscriptionInput, opts ...request.Option) (*DeleteEventSubscriptionOutput, error) {
3437	req, out := c.DeleteEventSubscriptionRequest(input)
3438	req.SetContext(ctx)
3439	req.ApplyOptions(opts...)
3440	return out, req.Send()
3441}
3442
3443const opDeleteHsmClientCertificate = "DeleteHsmClientCertificate"
3444
3445// DeleteHsmClientCertificateRequest generates a "aws/request.Request" representing the
3446// client's request for the DeleteHsmClientCertificate operation. The "output" return
3447// value will be populated with the request's response once the request completes
3448// successfully.
3449//
3450// Use "Send" method on the returned Request to send the API call to the service.
3451// the "output" return value is not valid until after Send returns without error.
3452//
3453// See DeleteHsmClientCertificate for more information on using the DeleteHsmClientCertificate
3454// API call, and error handling.
3455//
3456// This method is useful when you want to inject custom logic or configuration
3457// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3458//
3459//
3460//    // Example sending a request using the DeleteHsmClientCertificateRequest method.
3461//    req, resp := client.DeleteHsmClientCertificateRequest(params)
3462//
3463//    err := req.Send()
3464//    if err == nil { // resp is now filled
3465//        fmt.Println(resp)
3466//    }
3467//
3468// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteHsmClientCertificate
3469func (c *Redshift) DeleteHsmClientCertificateRequest(input *DeleteHsmClientCertificateInput) (req *request.Request, output *DeleteHsmClientCertificateOutput) {
3470	op := &request.Operation{
3471		Name:       opDeleteHsmClientCertificate,
3472		HTTPMethod: "POST",
3473		HTTPPath:   "/",
3474	}
3475
3476	if input == nil {
3477		input = &DeleteHsmClientCertificateInput{}
3478	}
3479
3480	output = &DeleteHsmClientCertificateOutput{}
3481	req = c.newRequest(op, input, output)
3482	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3483	return
3484}
3485
3486// DeleteHsmClientCertificate API operation for Amazon Redshift.
3487//
3488// Deletes the specified HSM client certificate.
3489//
3490// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3491// with awserr.Error's Code and Message methods to get detailed information about
3492// the error.
3493//
3494// See the AWS API reference guide for Amazon Redshift's
3495// API operation DeleteHsmClientCertificate for usage and error information.
3496//
3497// Returned Error Codes:
3498//   * ErrCodeInvalidHsmClientCertificateStateFault "InvalidHsmClientCertificateStateFault"
3499//   The specified HSM client certificate is not in the available state, or it
3500//   is still in use by one or more Amazon Redshift clusters.
3501//
3502//   * ErrCodeHsmClientCertificateNotFoundFault "HsmClientCertificateNotFoundFault"
3503//   There is no Amazon Redshift HSM client certificate with the specified identifier.
3504//
3505// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteHsmClientCertificate
3506func (c *Redshift) DeleteHsmClientCertificate(input *DeleteHsmClientCertificateInput) (*DeleteHsmClientCertificateOutput, error) {
3507	req, out := c.DeleteHsmClientCertificateRequest(input)
3508	return out, req.Send()
3509}
3510
3511// DeleteHsmClientCertificateWithContext is the same as DeleteHsmClientCertificate with the addition of
3512// the ability to pass a context and additional request options.
3513//
3514// See DeleteHsmClientCertificate for details on how to use this API operation.
3515//
3516// The context must be non-nil and will be used for request cancellation. If
3517// the context is nil a panic will occur. In the future the SDK may create
3518// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3519// for more information on using Contexts.
3520func (c *Redshift) DeleteHsmClientCertificateWithContext(ctx aws.Context, input *DeleteHsmClientCertificateInput, opts ...request.Option) (*DeleteHsmClientCertificateOutput, error) {
3521	req, out := c.DeleteHsmClientCertificateRequest(input)
3522	req.SetContext(ctx)
3523	req.ApplyOptions(opts...)
3524	return out, req.Send()
3525}
3526
3527const opDeleteHsmConfiguration = "DeleteHsmConfiguration"
3528
3529// DeleteHsmConfigurationRequest generates a "aws/request.Request" representing the
3530// client's request for the DeleteHsmConfiguration operation. The "output" return
3531// value will be populated with the request's response once the request completes
3532// successfully.
3533//
3534// Use "Send" method on the returned Request to send the API call to the service.
3535// the "output" return value is not valid until after Send returns without error.
3536//
3537// See DeleteHsmConfiguration for more information on using the DeleteHsmConfiguration
3538// API call, and error handling.
3539//
3540// This method is useful when you want to inject custom logic or configuration
3541// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3542//
3543//
3544//    // Example sending a request using the DeleteHsmConfigurationRequest method.
3545//    req, resp := client.DeleteHsmConfigurationRequest(params)
3546//
3547//    err := req.Send()
3548//    if err == nil { // resp is now filled
3549//        fmt.Println(resp)
3550//    }
3551//
3552// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteHsmConfiguration
3553func (c *Redshift) DeleteHsmConfigurationRequest(input *DeleteHsmConfigurationInput) (req *request.Request, output *DeleteHsmConfigurationOutput) {
3554	op := &request.Operation{
3555		Name:       opDeleteHsmConfiguration,
3556		HTTPMethod: "POST",
3557		HTTPPath:   "/",
3558	}
3559
3560	if input == nil {
3561		input = &DeleteHsmConfigurationInput{}
3562	}
3563
3564	output = &DeleteHsmConfigurationOutput{}
3565	req = c.newRequest(op, input, output)
3566	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3567	return
3568}
3569
3570// DeleteHsmConfiguration API operation for Amazon Redshift.
3571//
3572// Deletes the specified Amazon Redshift HSM configuration.
3573//
3574// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3575// with awserr.Error's Code and Message methods to get detailed information about
3576// the error.
3577//
3578// See the AWS API reference guide for Amazon Redshift's
3579// API operation DeleteHsmConfiguration for usage and error information.
3580//
3581// Returned Error Codes:
3582//   * ErrCodeInvalidHsmConfigurationStateFault "InvalidHsmConfigurationStateFault"
3583//   The specified HSM configuration is not in the available state, or it is still
3584//   in use by one or more Amazon Redshift clusters.
3585//
3586//   * ErrCodeHsmConfigurationNotFoundFault "HsmConfigurationNotFoundFault"
3587//   There is no Amazon Redshift HSM configuration with the specified identifier.
3588//
3589// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteHsmConfiguration
3590func (c *Redshift) DeleteHsmConfiguration(input *DeleteHsmConfigurationInput) (*DeleteHsmConfigurationOutput, error) {
3591	req, out := c.DeleteHsmConfigurationRequest(input)
3592	return out, req.Send()
3593}
3594
3595// DeleteHsmConfigurationWithContext is the same as DeleteHsmConfiguration with the addition of
3596// the ability to pass a context and additional request options.
3597//
3598// See DeleteHsmConfiguration for details on how to use this API operation.
3599//
3600// The context must be non-nil and will be used for request cancellation. If
3601// the context is nil a panic will occur. In the future the SDK may create
3602// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3603// for more information on using Contexts.
3604func (c *Redshift) DeleteHsmConfigurationWithContext(ctx aws.Context, input *DeleteHsmConfigurationInput, opts ...request.Option) (*DeleteHsmConfigurationOutput, error) {
3605	req, out := c.DeleteHsmConfigurationRequest(input)
3606	req.SetContext(ctx)
3607	req.ApplyOptions(opts...)
3608	return out, req.Send()
3609}
3610
3611const opDeletePartner = "DeletePartner"
3612
3613// DeletePartnerRequest generates a "aws/request.Request" representing the
3614// client's request for the DeletePartner operation. The "output" return
3615// value will be populated with the request's response once the request completes
3616// successfully.
3617//
3618// Use "Send" method on the returned Request to send the API call to the service.
3619// the "output" return value is not valid until after Send returns without error.
3620//
3621// See DeletePartner for more information on using the DeletePartner
3622// API call, and error handling.
3623//
3624// This method is useful when you want to inject custom logic or configuration
3625// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3626//
3627//
3628//    // Example sending a request using the DeletePartnerRequest method.
3629//    req, resp := client.DeletePartnerRequest(params)
3630//
3631//    err := req.Send()
3632//    if err == nil { // resp is now filled
3633//        fmt.Println(resp)
3634//    }
3635//
3636// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeletePartner
3637func (c *Redshift) DeletePartnerRequest(input *DeletePartnerInput) (req *request.Request, output *DeletePartnerOutput) {
3638	op := &request.Operation{
3639		Name:       opDeletePartner,
3640		HTTPMethod: "POST",
3641		HTTPPath:   "/",
3642	}
3643
3644	if input == nil {
3645		input = &DeletePartnerInput{}
3646	}
3647
3648	output = &DeletePartnerOutput{}
3649	req = c.newRequest(op, input, output)
3650	return
3651}
3652
3653// DeletePartner API operation for Amazon Redshift.
3654//
3655// Deletes a partner integration from a cluster. Data can still flow to the
3656// cluster until the integration is deleted at the partner's website.
3657//
3658// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3659// with awserr.Error's Code and Message methods to get detailed information about
3660// the error.
3661//
3662// See the AWS API reference guide for Amazon Redshift's
3663// API operation DeletePartner for usage and error information.
3664//
3665// Returned Error Codes:
3666//   * ErrCodePartnerNotFoundFault "PartnerNotFound"
3667//   The name of the partner was not found.
3668//
3669//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
3670//   The ClusterIdentifier parameter does not refer to an existing cluster.
3671//
3672//   * ErrCodeUnauthorizedPartnerIntegrationFault "UnauthorizedPartnerIntegration"
3673//   The partner integration is not authorized.
3674//
3675// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeletePartner
3676func (c *Redshift) DeletePartner(input *DeletePartnerInput) (*DeletePartnerOutput, error) {
3677	req, out := c.DeletePartnerRequest(input)
3678	return out, req.Send()
3679}
3680
3681// DeletePartnerWithContext is the same as DeletePartner with the addition of
3682// the ability to pass a context and additional request options.
3683//
3684// See DeletePartner for details on how to use this API operation.
3685//
3686// The context must be non-nil and will be used for request cancellation. If
3687// the context is nil a panic will occur. In the future the SDK may create
3688// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3689// for more information on using Contexts.
3690func (c *Redshift) DeletePartnerWithContext(ctx aws.Context, input *DeletePartnerInput, opts ...request.Option) (*DeletePartnerOutput, error) {
3691	req, out := c.DeletePartnerRequest(input)
3692	req.SetContext(ctx)
3693	req.ApplyOptions(opts...)
3694	return out, req.Send()
3695}
3696
3697const opDeleteScheduledAction = "DeleteScheduledAction"
3698
3699// DeleteScheduledActionRequest generates a "aws/request.Request" representing the
3700// client's request for the DeleteScheduledAction operation. The "output" return
3701// value will be populated with the request's response once the request completes
3702// successfully.
3703//
3704// Use "Send" method on the returned Request to send the API call to the service.
3705// the "output" return value is not valid until after Send returns without error.
3706//
3707// See DeleteScheduledAction for more information on using the DeleteScheduledAction
3708// API call, and error handling.
3709//
3710// This method is useful when you want to inject custom logic or configuration
3711// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3712//
3713//
3714//    // Example sending a request using the DeleteScheduledActionRequest method.
3715//    req, resp := client.DeleteScheduledActionRequest(params)
3716//
3717//    err := req.Send()
3718//    if err == nil { // resp is now filled
3719//        fmt.Println(resp)
3720//    }
3721//
3722// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteScheduledAction
3723func (c *Redshift) DeleteScheduledActionRequest(input *DeleteScheduledActionInput) (req *request.Request, output *DeleteScheduledActionOutput) {
3724	op := &request.Operation{
3725		Name:       opDeleteScheduledAction,
3726		HTTPMethod: "POST",
3727		HTTPPath:   "/",
3728	}
3729
3730	if input == nil {
3731		input = &DeleteScheduledActionInput{}
3732	}
3733
3734	output = &DeleteScheduledActionOutput{}
3735	req = c.newRequest(op, input, output)
3736	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3737	return
3738}
3739
3740// DeleteScheduledAction API operation for Amazon Redshift.
3741//
3742// Deletes a scheduled action.
3743//
3744// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3745// with awserr.Error's Code and Message methods to get detailed information about
3746// the error.
3747//
3748// See the AWS API reference guide for Amazon Redshift's
3749// API operation DeleteScheduledAction for usage and error information.
3750//
3751// Returned Error Codes:
3752//   * ErrCodeScheduledActionNotFoundFault "ScheduledActionNotFound"
3753//   The scheduled action cannot be found.
3754//
3755//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
3756//   Your account is not authorized to perform the requested operation.
3757//
3758// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteScheduledAction
3759func (c *Redshift) DeleteScheduledAction(input *DeleteScheduledActionInput) (*DeleteScheduledActionOutput, error) {
3760	req, out := c.DeleteScheduledActionRequest(input)
3761	return out, req.Send()
3762}
3763
3764// DeleteScheduledActionWithContext is the same as DeleteScheduledAction with the addition of
3765// the ability to pass a context and additional request options.
3766//
3767// See DeleteScheduledAction for details on how to use this API operation.
3768//
3769// The context must be non-nil and will be used for request cancellation. If
3770// the context is nil a panic will occur. In the future the SDK may create
3771// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3772// for more information on using Contexts.
3773func (c *Redshift) DeleteScheduledActionWithContext(ctx aws.Context, input *DeleteScheduledActionInput, opts ...request.Option) (*DeleteScheduledActionOutput, error) {
3774	req, out := c.DeleteScheduledActionRequest(input)
3775	req.SetContext(ctx)
3776	req.ApplyOptions(opts...)
3777	return out, req.Send()
3778}
3779
3780const opDeleteSnapshotCopyGrant = "DeleteSnapshotCopyGrant"
3781
3782// DeleteSnapshotCopyGrantRequest generates a "aws/request.Request" representing the
3783// client's request for the DeleteSnapshotCopyGrant operation. The "output" return
3784// value will be populated with the request's response once the request completes
3785// successfully.
3786//
3787// Use "Send" method on the returned Request to send the API call to the service.
3788// the "output" return value is not valid until after Send returns without error.
3789//
3790// See DeleteSnapshotCopyGrant for more information on using the DeleteSnapshotCopyGrant
3791// API call, and error handling.
3792//
3793// This method is useful when you want to inject custom logic or configuration
3794// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3795//
3796//
3797//    // Example sending a request using the DeleteSnapshotCopyGrantRequest method.
3798//    req, resp := client.DeleteSnapshotCopyGrantRequest(params)
3799//
3800//    err := req.Send()
3801//    if err == nil { // resp is now filled
3802//        fmt.Println(resp)
3803//    }
3804//
3805// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteSnapshotCopyGrant
3806func (c *Redshift) DeleteSnapshotCopyGrantRequest(input *DeleteSnapshotCopyGrantInput) (req *request.Request, output *DeleteSnapshotCopyGrantOutput) {
3807	op := &request.Operation{
3808		Name:       opDeleteSnapshotCopyGrant,
3809		HTTPMethod: "POST",
3810		HTTPPath:   "/",
3811	}
3812
3813	if input == nil {
3814		input = &DeleteSnapshotCopyGrantInput{}
3815	}
3816
3817	output = &DeleteSnapshotCopyGrantOutput{}
3818	req = c.newRequest(op, input, output)
3819	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3820	return
3821}
3822
3823// DeleteSnapshotCopyGrant API operation for Amazon Redshift.
3824//
3825// Deletes the specified snapshot copy grant.
3826//
3827// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3828// with awserr.Error's Code and Message methods to get detailed information about
3829// the error.
3830//
3831// See the AWS API reference guide for Amazon Redshift's
3832// API operation DeleteSnapshotCopyGrant for usage and error information.
3833//
3834// Returned Error Codes:
3835//   * ErrCodeInvalidSnapshotCopyGrantStateFault "InvalidSnapshotCopyGrantStateFault"
3836//   The snapshot copy grant can't be deleted because it is used by one or more
3837//   clusters.
3838//
3839//   * ErrCodeSnapshotCopyGrantNotFoundFault "SnapshotCopyGrantNotFoundFault"
3840//   The specified snapshot copy grant can't be found. Make sure that the name
3841//   is typed correctly and that the grant exists in the destination region.
3842//
3843// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteSnapshotCopyGrant
3844func (c *Redshift) DeleteSnapshotCopyGrant(input *DeleteSnapshotCopyGrantInput) (*DeleteSnapshotCopyGrantOutput, error) {
3845	req, out := c.DeleteSnapshotCopyGrantRequest(input)
3846	return out, req.Send()
3847}
3848
3849// DeleteSnapshotCopyGrantWithContext is the same as DeleteSnapshotCopyGrant with the addition of
3850// the ability to pass a context and additional request options.
3851//
3852// See DeleteSnapshotCopyGrant for details on how to use this API operation.
3853//
3854// The context must be non-nil and will be used for request cancellation. If
3855// the context is nil a panic will occur. In the future the SDK may create
3856// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3857// for more information on using Contexts.
3858func (c *Redshift) DeleteSnapshotCopyGrantWithContext(ctx aws.Context, input *DeleteSnapshotCopyGrantInput, opts ...request.Option) (*DeleteSnapshotCopyGrantOutput, error) {
3859	req, out := c.DeleteSnapshotCopyGrantRequest(input)
3860	req.SetContext(ctx)
3861	req.ApplyOptions(opts...)
3862	return out, req.Send()
3863}
3864
3865const opDeleteSnapshotSchedule = "DeleteSnapshotSchedule"
3866
3867// DeleteSnapshotScheduleRequest generates a "aws/request.Request" representing the
3868// client's request for the DeleteSnapshotSchedule operation. The "output" return
3869// value will be populated with the request's response once the request completes
3870// successfully.
3871//
3872// Use "Send" method on the returned Request to send the API call to the service.
3873// the "output" return value is not valid until after Send returns without error.
3874//
3875// See DeleteSnapshotSchedule for more information on using the DeleteSnapshotSchedule
3876// API call, and error handling.
3877//
3878// This method is useful when you want to inject custom logic or configuration
3879// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3880//
3881//
3882//    // Example sending a request using the DeleteSnapshotScheduleRequest method.
3883//    req, resp := client.DeleteSnapshotScheduleRequest(params)
3884//
3885//    err := req.Send()
3886//    if err == nil { // resp is now filled
3887//        fmt.Println(resp)
3888//    }
3889//
3890// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteSnapshotSchedule
3891func (c *Redshift) DeleteSnapshotScheduleRequest(input *DeleteSnapshotScheduleInput) (req *request.Request, output *DeleteSnapshotScheduleOutput) {
3892	op := &request.Operation{
3893		Name:       opDeleteSnapshotSchedule,
3894		HTTPMethod: "POST",
3895		HTTPPath:   "/",
3896	}
3897
3898	if input == nil {
3899		input = &DeleteSnapshotScheduleInput{}
3900	}
3901
3902	output = &DeleteSnapshotScheduleOutput{}
3903	req = c.newRequest(op, input, output)
3904	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3905	return
3906}
3907
3908// DeleteSnapshotSchedule API operation for Amazon Redshift.
3909//
3910// Deletes a snapshot schedule.
3911//
3912// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3913// with awserr.Error's Code and Message methods to get detailed information about
3914// the error.
3915//
3916// See the AWS API reference guide for Amazon Redshift's
3917// API operation DeleteSnapshotSchedule for usage and error information.
3918//
3919// Returned Error Codes:
3920//   * ErrCodeInvalidClusterSnapshotScheduleStateFault "InvalidClusterSnapshotScheduleState"
3921//   The cluster snapshot schedule state is not valid.
3922//
3923//   * ErrCodeSnapshotScheduleNotFoundFault "SnapshotScheduleNotFound"
3924//   We could not find the specified snapshot schedule.
3925//
3926// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteSnapshotSchedule
3927func (c *Redshift) DeleteSnapshotSchedule(input *DeleteSnapshotScheduleInput) (*DeleteSnapshotScheduleOutput, error) {
3928	req, out := c.DeleteSnapshotScheduleRequest(input)
3929	return out, req.Send()
3930}
3931
3932// DeleteSnapshotScheduleWithContext is the same as DeleteSnapshotSchedule with the addition of
3933// the ability to pass a context and additional request options.
3934//
3935// See DeleteSnapshotSchedule for details on how to use this API operation.
3936//
3937// The context must be non-nil and will be used for request cancellation. If
3938// the context is nil a panic will occur. In the future the SDK may create
3939// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3940// for more information on using Contexts.
3941func (c *Redshift) DeleteSnapshotScheduleWithContext(ctx aws.Context, input *DeleteSnapshotScheduleInput, opts ...request.Option) (*DeleteSnapshotScheduleOutput, error) {
3942	req, out := c.DeleteSnapshotScheduleRequest(input)
3943	req.SetContext(ctx)
3944	req.ApplyOptions(opts...)
3945	return out, req.Send()
3946}
3947
3948const opDeleteTags = "DeleteTags"
3949
3950// DeleteTagsRequest generates a "aws/request.Request" representing the
3951// client's request for the DeleteTags operation. The "output" return
3952// value will be populated with the request's response once the request completes
3953// successfully.
3954//
3955// Use "Send" method on the returned Request to send the API call to the service.
3956// the "output" return value is not valid until after Send returns without error.
3957//
3958// See DeleteTags for more information on using the DeleteTags
3959// API call, and error handling.
3960//
3961// This method is useful when you want to inject custom logic or configuration
3962// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3963//
3964//
3965//    // Example sending a request using the DeleteTagsRequest method.
3966//    req, resp := client.DeleteTagsRequest(params)
3967//
3968//    err := req.Send()
3969//    if err == nil { // resp is now filled
3970//        fmt.Println(resp)
3971//    }
3972//
3973// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteTags
3974func (c *Redshift) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, output *DeleteTagsOutput) {
3975	op := &request.Operation{
3976		Name:       opDeleteTags,
3977		HTTPMethod: "POST",
3978		HTTPPath:   "/",
3979	}
3980
3981	if input == nil {
3982		input = &DeleteTagsInput{}
3983	}
3984
3985	output = &DeleteTagsOutput{}
3986	req = c.newRequest(op, input, output)
3987	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3988	return
3989}
3990
3991// DeleteTags API operation for Amazon Redshift.
3992//
3993// Deletes tags from a resource. You must provide the ARN of the resource from
3994// which you want to delete the tag or tags.
3995//
3996// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3997// with awserr.Error's Code and Message methods to get detailed information about
3998// the error.
3999//
4000// See the AWS API reference guide for Amazon Redshift's
4001// API operation DeleteTags for usage and error information.
4002//
4003// Returned Error Codes:
4004//   * ErrCodeResourceNotFoundFault "ResourceNotFoundFault"
4005//   The resource could not be found.
4006//
4007//   * ErrCodeInvalidTagFault "InvalidTagFault"
4008//   The tag is invalid.
4009//
4010// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteTags
4011func (c *Redshift) DeleteTags(input *DeleteTagsInput) (*DeleteTagsOutput, error) {
4012	req, out := c.DeleteTagsRequest(input)
4013	return out, req.Send()
4014}
4015
4016// DeleteTagsWithContext is the same as DeleteTags with the addition of
4017// the ability to pass a context and additional request options.
4018//
4019// See DeleteTags for details on how to use this API operation.
4020//
4021// The context must be non-nil and will be used for request cancellation. If
4022// the context is nil a panic will occur. In the future the SDK may create
4023// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4024// for more information on using Contexts.
4025func (c *Redshift) DeleteTagsWithContext(ctx aws.Context, input *DeleteTagsInput, opts ...request.Option) (*DeleteTagsOutput, error) {
4026	req, out := c.DeleteTagsRequest(input)
4027	req.SetContext(ctx)
4028	req.ApplyOptions(opts...)
4029	return out, req.Send()
4030}
4031
4032const opDeleteUsageLimit = "DeleteUsageLimit"
4033
4034// DeleteUsageLimitRequest generates a "aws/request.Request" representing the
4035// client's request for the DeleteUsageLimit operation. The "output" return
4036// value will be populated with the request's response once the request completes
4037// successfully.
4038//
4039// Use "Send" method on the returned Request to send the API call to the service.
4040// the "output" return value is not valid until after Send returns without error.
4041//
4042// See DeleteUsageLimit for more information on using the DeleteUsageLimit
4043// API call, and error handling.
4044//
4045// This method is useful when you want to inject custom logic or configuration
4046// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4047//
4048//
4049//    // Example sending a request using the DeleteUsageLimitRequest method.
4050//    req, resp := client.DeleteUsageLimitRequest(params)
4051//
4052//    err := req.Send()
4053//    if err == nil { // resp is now filled
4054//        fmt.Println(resp)
4055//    }
4056//
4057// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteUsageLimit
4058func (c *Redshift) DeleteUsageLimitRequest(input *DeleteUsageLimitInput) (req *request.Request, output *DeleteUsageLimitOutput) {
4059	op := &request.Operation{
4060		Name:       opDeleteUsageLimit,
4061		HTTPMethod: "POST",
4062		HTTPPath:   "/",
4063	}
4064
4065	if input == nil {
4066		input = &DeleteUsageLimitInput{}
4067	}
4068
4069	output = &DeleteUsageLimitOutput{}
4070	req = c.newRequest(op, input, output)
4071	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4072	return
4073}
4074
4075// DeleteUsageLimit API operation for Amazon Redshift.
4076//
4077// Deletes a usage limit from a cluster.
4078//
4079// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4080// with awserr.Error's Code and Message methods to get detailed information about
4081// the error.
4082//
4083// See the AWS API reference guide for Amazon Redshift's
4084// API operation DeleteUsageLimit for usage and error information.
4085//
4086// Returned Error Codes:
4087//   * ErrCodeUsageLimitNotFoundFault "UsageLimitNotFound"
4088//   The usage limit identifier can't be found.
4089//
4090//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
4091//   The requested operation isn't supported.
4092//
4093// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteUsageLimit
4094func (c *Redshift) DeleteUsageLimit(input *DeleteUsageLimitInput) (*DeleteUsageLimitOutput, error) {
4095	req, out := c.DeleteUsageLimitRequest(input)
4096	return out, req.Send()
4097}
4098
4099// DeleteUsageLimitWithContext is the same as DeleteUsageLimit with the addition of
4100// the ability to pass a context and additional request options.
4101//
4102// See DeleteUsageLimit for details on how to use this API operation.
4103//
4104// The context must be non-nil and will be used for request cancellation. If
4105// the context is nil a panic will occur. In the future the SDK may create
4106// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4107// for more information on using Contexts.
4108func (c *Redshift) DeleteUsageLimitWithContext(ctx aws.Context, input *DeleteUsageLimitInput, opts ...request.Option) (*DeleteUsageLimitOutput, error) {
4109	req, out := c.DeleteUsageLimitRequest(input)
4110	req.SetContext(ctx)
4111	req.ApplyOptions(opts...)
4112	return out, req.Send()
4113}
4114
4115const opDescribeAccountAttributes = "DescribeAccountAttributes"
4116
4117// DescribeAccountAttributesRequest generates a "aws/request.Request" representing the
4118// client's request for the DescribeAccountAttributes operation. The "output" return
4119// value will be populated with the request's response once the request completes
4120// successfully.
4121//
4122// Use "Send" method on the returned Request to send the API call to the service.
4123// the "output" return value is not valid until after Send returns without error.
4124//
4125// See DescribeAccountAttributes for more information on using the DescribeAccountAttributes
4126// API call, and error handling.
4127//
4128// This method is useful when you want to inject custom logic or configuration
4129// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4130//
4131//
4132//    // Example sending a request using the DescribeAccountAttributesRequest method.
4133//    req, resp := client.DescribeAccountAttributesRequest(params)
4134//
4135//    err := req.Send()
4136//    if err == nil { // resp is now filled
4137//        fmt.Println(resp)
4138//    }
4139//
4140// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeAccountAttributes
4141func (c *Redshift) DescribeAccountAttributesRequest(input *DescribeAccountAttributesInput) (req *request.Request, output *DescribeAccountAttributesOutput) {
4142	op := &request.Operation{
4143		Name:       opDescribeAccountAttributes,
4144		HTTPMethod: "POST",
4145		HTTPPath:   "/",
4146	}
4147
4148	if input == nil {
4149		input = &DescribeAccountAttributesInput{}
4150	}
4151
4152	output = &DescribeAccountAttributesOutput{}
4153	req = c.newRequest(op, input, output)
4154	return
4155}
4156
4157// DescribeAccountAttributes API operation for Amazon Redshift.
4158//
4159// Returns a list of attributes attached to an account
4160//
4161// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4162// with awserr.Error's Code and Message methods to get detailed information about
4163// the error.
4164//
4165// See the AWS API reference guide for Amazon Redshift's
4166// API operation DescribeAccountAttributes for usage and error information.
4167// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeAccountAttributes
4168func (c *Redshift) DescribeAccountAttributes(input *DescribeAccountAttributesInput) (*DescribeAccountAttributesOutput, error) {
4169	req, out := c.DescribeAccountAttributesRequest(input)
4170	return out, req.Send()
4171}
4172
4173// DescribeAccountAttributesWithContext is the same as DescribeAccountAttributes with the addition of
4174// the ability to pass a context and additional request options.
4175//
4176// See DescribeAccountAttributes for details on how to use this API operation.
4177//
4178// The context must be non-nil and will be used for request cancellation. If
4179// the context is nil a panic will occur. In the future the SDK may create
4180// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4181// for more information on using Contexts.
4182func (c *Redshift) DescribeAccountAttributesWithContext(ctx aws.Context, input *DescribeAccountAttributesInput, opts ...request.Option) (*DescribeAccountAttributesOutput, error) {
4183	req, out := c.DescribeAccountAttributesRequest(input)
4184	req.SetContext(ctx)
4185	req.ApplyOptions(opts...)
4186	return out, req.Send()
4187}
4188
4189const opDescribeAuthenticationProfiles = "DescribeAuthenticationProfiles"
4190
4191// DescribeAuthenticationProfilesRequest generates a "aws/request.Request" representing the
4192// client's request for the DescribeAuthenticationProfiles operation. The "output" return
4193// value will be populated with the request's response once the request completes
4194// successfully.
4195//
4196// Use "Send" method on the returned Request to send the API call to the service.
4197// the "output" return value is not valid until after Send returns without error.
4198//
4199// See DescribeAuthenticationProfiles for more information on using the DescribeAuthenticationProfiles
4200// API call, and error handling.
4201//
4202// This method is useful when you want to inject custom logic or configuration
4203// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4204//
4205//
4206//    // Example sending a request using the DescribeAuthenticationProfilesRequest method.
4207//    req, resp := client.DescribeAuthenticationProfilesRequest(params)
4208//
4209//    err := req.Send()
4210//    if err == nil { // resp is now filled
4211//        fmt.Println(resp)
4212//    }
4213//
4214// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeAuthenticationProfiles
4215func (c *Redshift) DescribeAuthenticationProfilesRequest(input *DescribeAuthenticationProfilesInput) (req *request.Request, output *DescribeAuthenticationProfilesOutput) {
4216	op := &request.Operation{
4217		Name:       opDescribeAuthenticationProfiles,
4218		HTTPMethod: "POST",
4219		HTTPPath:   "/",
4220	}
4221
4222	if input == nil {
4223		input = &DescribeAuthenticationProfilesInput{}
4224	}
4225
4226	output = &DescribeAuthenticationProfilesOutput{}
4227	req = c.newRequest(op, input, output)
4228	return
4229}
4230
4231// DescribeAuthenticationProfiles API operation for Amazon Redshift.
4232//
4233// Describes an authentication profile.
4234//
4235// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4236// with awserr.Error's Code and Message methods to get detailed information about
4237// the error.
4238//
4239// See the AWS API reference guide for Amazon Redshift's
4240// API operation DescribeAuthenticationProfiles for usage and error information.
4241//
4242// Returned Error Codes:
4243//   * ErrCodeAuthenticationProfileNotFoundFault "AuthenticationProfileNotFoundFault"
4244//   The authentication profile can't be found.
4245//
4246//   * ErrCodeInvalidAuthenticationProfileRequestFault "InvalidAuthenticationProfileRequestFault"
4247//   The authentication profile request is not valid. The profile name can't be
4248//   null or empty. The authentication profile API operation must be available
4249//   in the Amazon Web Services Region.
4250//
4251// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeAuthenticationProfiles
4252func (c *Redshift) DescribeAuthenticationProfiles(input *DescribeAuthenticationProfilesInput) (*DescribeAuthenticationProfilesOutput, error) {
4253	req, out := c.DescribeAuthenticationProfilesRequest(input)
4254	return out, req.Send()
4255}
4256
4257// DescribeAuthenticationProfilesWithContext is the same as DescribeAuthenticationProfiles with the addition of
4258// the ability to pass a context and additional request options.
4259//
4260// See DescribeAuthenticationProfiles for details on how to use this API operation.
4261//
4262// The context must be non-nil and will be used for request cancellation. If
4263// the context is nil a panic will occur. In the future the SDK may create
4264// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4265// for more information on using Contexts.
4266func (c *Redshift) DescribeAuthenticationProfilesWithContext(ctx aws.Context, input *DescribeAuthenticationProfilesInput, opts ...request.Option) (*DescribeAuthenticationProfilesOutput, error) {
4267	req, out := c.DescribeAuthenticationProfilesRequest(input)
4268	req.SetContext(ctx)
4269	req.ApplyOptions(opts...)
4270	return out, req.Send()
4271}
4272
4273const opDescribeClusterDbRevisions = "DescribeClusterDbRevisions"
4274
4275// DescribeClusterDbRevisionsRequest generates a "aws/request.Request" representing the
4276// client's request for the DescribeClusterDbRevisions operation. The "output" return
4277// value will be populated with the request's response once the request completes
4278// successfully.
4279//
4280// Use "Send" method on the returned Request to send the API call to the service.
4281// the "output" return value is not valid until after Send returns without error.
4282//
4283// See DescribeClusterDbRevisions for more information on using the DescribeClusterDbRevisions
4284// API call, and error handling.
4285//
4286// This method is useful when you want to inject custom logic or configuration
4287// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4288//
4289//
4290//    // Example sending a request using the DescribeClusterDbRevisionsRequest method.
4291//    req, resp := client.DescribeClusterDbRevisionsRequest(params)
4292//
4293//    err := req.Send()
4294//    if err == nil { // resp is now filled
4295//        fmt.Println(resp)
4296//    }
4297//
4298// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterDbRevisions
4299func (c *Redshift) DescribeClusterDbRevisionsRequest(input *DescribeClusterDbRevisionsInput) (req *request.Request, output *DescribeClusterDbRevisionsOutput) {
4300	op := &request.Operation{
4301		Name:       opDescribeClusterDbRevisions,
4302		HTTPMethod: "POST",
4303		HTTPPath:   "/",
4304		Paginator: &request.Paginator{
4305			InputTokens:     []string{"Marker"},
4306			OutputTokens:    []string{"Marker"},
4307			LimitToken:      "MaxRecords",
4308			TruncationToken: "",
4309		},
4310	}
4311
4312	if input == nil {
4313		input = &DescribeClusterDbRevisionsInput{}
4314	}
4315
4316	output = &DescribeClusterDbRevisionsOutput{}
4317	req = c.newRequest(op, input, output)
4318	return
4319}
4320
4321// DescribeClusterDbRevisions API operation for Amazon Redshift.
4322//
4323// Returns an array of ClusterDbRevision objects.
4324//
4325// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4326// with awserr.Error's Code and Message methods to get detailed information about
4327// the error.
4328//
4329// See the AWS API reference guide for Amazon Redshift's
4330// API operation DescribeClusterDbRevisions for usage and error information.
4331//
4332// Returned Error Codes:
4333//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
4334//   The ClusterIdentifier parameter does not refer to an existing cluster.
4335//
4336//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
4337//   The specified cluster is not in the available state.
4338//
4339// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterDbRevisions
4340func (c *Redshift) DescribeClusterDbRevisions(input *DescribeClusterDbRevisionsInput) (*DescribeClusterDbRevisionsOutput, error) {
4341	req, out := c.DescribeClusterDbRevisionsRequest(input)
4342	return out, req.Send()
4343}
4344
4345// DescribeClusterDbRevisionsWithContext is the same as DescribeClusterDbRevisions with the addition of
4346// the ability to pass a context and additional request options.
4347//
4348// See DescribeClusterDbRevisions for details on how to use this API operation.
4349//
4350// The context must be non-nil and will be used for request cancellation. If
4351// the context is nil a panic will occur. In the future the SDK may create
4352// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4353// for more information on using Contexts.
4354func (c *Redshift) DescribeClusterDbRevisionsWithContext(ctx aws.Context, input *DescribeClusterDbRevisionsInput, opts ...request.Option) (*DescribeClusterDbRevisionsOutput, error) {
4355	req, out := c.DescribeClusterDbRevisionsRequest(input)
4356	req.SetContext(ctx)
4357	req.ApplyOptions(opts...)
4358	return out, req.Send()
4359}
4360
4361// DescribeClusterDbRevisionsPages iterates over the pages of a DescribeClusterDbRevisions operation,
4362// calling the "fn" function with the response data for each page. To stop
4363// iterating, return false from the fn function.
4364//
4365// See DescribeClusterDbRevisions method for more information on how to use this operation.
4366//
4367// Note: This operation can generate multiple requests to a service.
4368//
4369//    // Example iterating over at most 3 pages of a DescribeClusterDbRevisions operation.
4370//    pageNum := 0
4371//    err := client.DescribeClusterDbRevisionsPages(params,
4372//        func(page *redshift.DescribeClusterDbRevisionsOutput, lastPage bool) bool {
4373//            pageNum++
4374//            fmt.Println(page)
4375//            return pageNum <= 3
4376//        })
4377//
4378func (c *Redshift) DescribeClusterDbRevisionsPages(input *DescribeClusterDbRevisionsInput, fn func(*DescribeClusterDbRevisionsOutput, bool) bool) error {
4379	return c.DescribeClusterDbRevisionsPagesWithContext(aws.BackgroundContext(), input, fn)
4380}
4381
4382// DescribeClusterDbRevisionsPagesWithContext same as DescribeClusterDbRevisionsPages except
4383// it takes a Context and allows setting request options on the pages.
4384//
4385// The context must be non-nil and will be used for request cancellation. If
4386// the context is nil a panic will occur. In the future the SDK may create
4387// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4388// for more information on using Contexts.
4389func (c *Redshift) DescribeClusterDbRevisionsPagesWithContext(ctx aws.Context, input *DescribeClusterDbRevisionsInput, fn func(*DescribeClusterDbRevisionsOutput, bool) bool, opts ...request.Option) error {
4390	p := request.Pagination{
4391		NewRequest: func() (*request.Request, error) {
4392			var inCpy *DescribeClusterDbRevisionsInput
4393			if input != nil {
4394				tmp := *input
4395				inCpy = &tmp
4396			}
4397			req, _ := c.DescribeClusterDbRevisionsRequest(inCpy)
4398			req.SetContext(ctx)
4399			req.ApplyOptions(opts...)
4400			return req, nil
4401		},
4402	}
4403
4404	for p.Next() {
4405		if !fn(p.Page().(*DescribeClusterDbRevisionsOutput), !p.HasNextPage()) {
4406			break
4407		}
4408	}
4409
4410	return p.Err()
4411}
4412
4413const opDescribeClusterParameterGroups = "DescribeClusterParameterGroups"
4414
4415// DescribeClusterParameterGroupsRequest generates a "aws/request.Request" representing the
4416// client's request for the DescribeClusterParameterGroups operation. The "output" return
4417// value will be populated with the request's response once the request completes
4418// successfully.
4419//
4420// Use "Send" method on the returned Request to send the API call to the service.
4421// the "output" return value is not valid until after Send returns without error.
4422//
4423// See DescribeClusterParameterGroups for more information on using the DescribeClusterParameterGroups
4424// API call, and error handling.
4425//
4426// This method is useful when you want to inject custom logic or configuration
4427// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4428//
4429//
4430//    // Example sending a request using the DescribeClusterParameterGroupsRequest method.
4431//    req, resp := client.DescribeClusterParameterGroupsRequest(params)
4432//
4433//    err := req.Send()
4434//    if err == nil { // resp is now filled
4435//        fmt.Println(resp)
4436//    }
4437//
4438// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterParameterGroups
4439func (c *Redshift) DescribeClusterParameterGroupsRequest(input *DescribeClusterParameterGroupsInput) (req *request.Request, output *DescribeClusterParameterGroupsOutput) {
4440	op := &request.Operation{
4441		Name:       opDescribeClusterParameterGroups,
4442		HTTPMethod: "POST",
4443		HTTPPath:   "/",
4444		Paginator: &request.Paginator{
4445			InputTokens:     []string{"Marker"},
4446			OutputTokens:    []string{"Marker"},
4447			LimitToken:      "MaxRecords",
4448			TruncationToken: "",
4449		},
4450	}
4451
4452	if input == nil {
4453		input = &DescribeClusterParameterGroupsInput{}
4454	}
4455
4456	output = &DescribeClusterParameterGroupsOutput{}
4457	req = c.newRequest(op, input, output)
4458	return
4459}
4460
4461// DescribeClusterParameterGroups API operation for Amazon Redshift.
4462//
4463// Returns a list of Amazon Redshift parameter groups, including parameter groups
4464// you created and the default parameter group. For each parameter group, the
4465// response includes the parameter group name, description, and parameter group
4466// family name. You can optionally specify a name to retrieve the description
4467// of a specific parameter group.
4468//
4469// For more information about parameters and parameter groups, go to Amazon
4470// Redshift Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
4471// in the Amazon Redshift Cluster Management Guide.
4472//
4473// If you specify both tag keys and tag values in the same request, Amazon Redshift
4474// returns all parameter groups that match any combination of the specified
4475// keys and values. For example, if you have owner and environment for tag keys,
4476// and admin and test for tag values, all parameter groups that have any combination
4477// of those values are returned.
4478//
4479// If both tag keys and values are omitted from the request, parameter groups
4480// are returned regardless of whether they have tag keys or values associated
4481// with them.
4482//
4483// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4484// with awserr.Error's Code and Message methods to get detailed information about
4485// the error.
4486//
4487// See the AWS API reference guide for Amazon Redshift's
4488// API operation DescribeClusterParameterGroups for usage and error information.
4489//
4490// Returned Error Codes:
4491//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
4492//   The parameter group name does not refer to an existing parameter group.
4493//
4494//   * ErrCodeInvalidTagFault "InvalidTagFault"
4495//   The tag is invalid.
4496//
4497// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterParameterGroups
4498func (c *Redshift) DescribeClusterParameterGroups(input *DescribeClusterParameterGroupsInput) (*DescribeClusterParameterGroupsOutput, error) {
4499	req, out := c.DescribeClusterParameterGroupsRequest(input)
4500	return out, req.Send()
4501}
4502
4503// DescribeClusterParameterGroupsWithContext is the same as DescribeClusterParameterGroups with the addition of
4504// the ability to pass a context and additional request options.
4505//
4506// See DescribeClusterParameterGroups for details on how to use this API operation.
4507//
4508// The context must be non-nil and will be used for request cancellation. If
4509// the context is nil a panic will occur. In the future the SDK may create
4510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4511// for more information on using Contexts.
4512func (c *Redshift) DescribeClusterParameterGroupsWithContext(ctx aws.Context, input *DescribeClusterParameterGroupsInput, opts ...request.Option) (*DescribeClusterParameterGroupsOutput, error) {
4513	req, out := c.DescribeClusterParameterGroupsRequest(input)
4514	req.SetContext(ctx)
4515	req.ApplyOptions(opts...)
4516	return out, req.Send()
4517}
4518
4519// DescribeClusterParameterGroupsPages iterates over the pages of a DescribeClusterParameterGroups operation,
4520// calling the "fn" function with the response data for each page. To stop
4521// iterating, return false from the fn function.
4522//
4523// See DescribeClusterParameterGroups method for more information on how to use this operation.
4524//
4525// Note: This operation can generate multiple requests to a service.
4526//
4527//    // Example iterating over at most 3 pages of a DescribeClusterParameterGroups operation.
4528//    pageNum := 0
4529//    err := client.DescribeClusterParameterGroupsPages(params,
4530//        func(page *redshift.DescribeClusterParameterGroupsOutput, lastPage bool) bool {
4531//            pageNum++
4532//            fmt.Println(page)
4533//            return pageNum <= 3
4534//        })
4535//
4536func (c *Redshift) DescribeClusterParameterGroupsPages(input *DescribeClusterParameterGroupsInput, fn func(*DescribeClusterParameterGroupsOutput, bool) bool) error {
4537	return c.DescribeClusterParameterGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
4538}
4539
4540// DescribeClusterParameterGroupsPagesWithContext same as DescribeClusterParameterGroupsPages except
4541// it takes a Context and allows setting request options on the pages.
4542//
4543// The context must be non-nil and will be used for request cancellation. If
4544// the context is nil a panic will occur. In the future the SDK may create
4545// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4546// for more information on using Contexts.
4547func (c *Redshift) DescribeClusterParameterGroupsPagesWithContext(ctx aws.Context, input *DescribeClusterParameterGroupsInput, fn func(*DescribeClusterParameterGroupsOutput, bool) bool, opts ...request.Option) error {
4548	p := request.Pagination{
4549		NewRequest: func() (*request.Request, error) {
4550			var inCpy *DescribeClusterParameterGroupsInput
4551			if input != nil {
4552				tmp := *input
4553				inCpy = &tmp
4554			}
4555			req, _ := c.DescribeClusterParameterGroupsRequest(inCpy)
4556			req.SetContext(ctx)
4557			req.ApplyOptions(opts...)
4558			return req, nil
4559		},
4560	}
4561
4562	for p.Next() {
4563		if !fn(p.Page().(*DescribeClusterParameterGroupsOutput), !p.HasNextPage()) {
4564			break
4565		}
4566	}
4567
4568	return p.Err()
4569}
4570
4571const opDescribeClusterParameters = "DescribeClusterParameters"
4572
4573// DescribeClusterParametersRequest generates a "aws/request.Request" representing the
4574// client's request for the DescribeClusterParameters operation. The "output" return
4575// value will be populated with the request's response once the request completes
4576// successfully.
4577//
4578// Use "Send" method on the returned Request to send the API call to the service.
4579// the "output" return value is not valid until after Send returns without error.
4580//
4581// See DescribeClusterParameters for more information on using the DescribeClusterParameters
4582// API call, and error handling.
4583//
4584// This method is useful when you want to inject custom logic or configuration
4585// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4586//
4587//
4588//    // Example sending a request using the DescribeClusterParametersRequest method.
4589//    req, resp := client.DescribeClusterParametersRequest(params)
4590//
4591//    err := req.Send()
4592//    if err == nil { // resp is now filled
4593//        fmt.Println(resp)
4594//    }
4595//
4596// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterParameters
4597func (c *Redshift) DescribeClusterParametersRequest(input *DescribeClusterParametersInput) (req *request.Request, output *DescribeClusterParametersOutput) {
4598	op := &request.Operation{
4599		Name:       opDescribeClusterParameters,
4600		HTTPMethod: "POST",
4601		HTTPPath:   "/",
4602		Paginator: &request.Paginator{
4603			InputTokens:     []string{"Marker"},
4604			OutputTokens:    []string{"Marker"},
4605			LimitToken:      "MaxRecords",
4606			TruncationToken: "",
4607		},
4608	}
4609
4610	if input == nil {
4611		input = &DescribeClusterParametersInput{}
4612	}
4613
4614	output = &DescribeClusterParametersOutput{}
4615	req = c.newRequest(op, input, output)
4616	return
4617}
4618
4619// DescribeClusterParameters API operation for Amazon Redshift.
4620//
4621// Returns a detailed list of parameters contained within the specified Amazon
4622// Redshift parameter group. For each parameter the response includes information
4623// such as parameter name, description, data type, value, whether the parameter
4624// value is modifiable, and so on.
4625//
4626// You can specify source filter to retrieve parameters of only specific type.
4627// For example, to retrieve parameters that were modified by a user action such
4628// as from ModifyClusterParameterGroup, you can specify source equal to user.
4629//
4630// For more information about parameters and parameter groups, go to Amazon
4631// Redshift Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
4632// in the Amazon Redshift Cluster Management Guide.
4633//
4634// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4635// with awserr.Error's Code and Message methods to get detailed information about
4636// the error.
4637//
4638// See the AWS API reference guide for Amazon Redshift's
4639// API operation DescribeClusterParameters for usage and error information.
4640//
4641// Returned Error Codes:
4642//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
4643//   The parameter group name does not refer to an existing parameter group.
4644//
4645// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterParameters
4646func (c *Redshift) DescribeClusterParameters(input *DescribeClusterParametersInput) (*DescribeClusterParametersOutput, error) {
4647	req, out := c.DescribeClusterParametersRequest(input)
4648	return out, req.Send()
4649}
4650
4651// DescribeClusterParametersWithContext is the same as DescribeClusterParameters with the addition of
4652// the ability to pass a context and additional request options.
4653//
4654// See DescribeClusterParameters for details on how to use this API operation.
4655//
4656// The context must be non-nil and will be used for request cancellation. If
4657// the context is nil a panic will occur. In the future the SDK may create
4658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4659// for more information on using Contexts.
4660func (c *Redshift) DescribeClusterParametersWithContext(ctx aws.Context, input *DescribeClusterParametersInput, opts ...request.Option) (*DescribeClusterParametersOutput, error) {
4661	req, out := c.DescribeClusterParametersRequest(input)
4662	req.SetContext(ctx)
4663	req.ApplyOptions(opts...)
4664	return out, req.Send()
4665}
4666
4667// DescribeClusterParametersPages iterates over the pages of a DescribeClusterParameters operation,
4668// calling the "fn" function with the response data for each page. To stop
4669// iterating, return false from the fn function.
4670//
4671// See DescribeClusterParameters method for more information on how to use this operation.
4672//
4673// Note: This operation can generate multiple requests to a service.
4674//
4675//    // Example iterating over at most 3 pages of a DescribeClusterParameters operation.
4676//    pageNum := 0
4677//    err := client.DescribeClusterParametersPages(params,
4678//        func(page *redshift.DescribeClusterParametersOutput, lastPage bool) bool {
4679//            pageNum++
4680//            fmt.Println(page)
4681//            return pageNum <= 3
4682//        })
4683//
4684func (c *Redshift) DescribeClusterParametersPages(input *DescribeClusterParametersInput, fn func(*DescribeClusterParametersOutput, bool) bool) error {
4685	return c.DescribeClusterParametersPagesWithContext(aws.BackgroundContext(), input, fn)
4686}
4687
4688// DescribeClusterParametersPagesWithContext same as DescribeClusterParametersPages except
4689// it takes a Context and allows setting request options on the pages.
4690//
4691// The context must be non-nil and will be used for request cancellation. If
4692// the context is nil a panic will occur. In the future the SDK may create
4693// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4694// for more information on using Contexts.
4695func (c *Redshift) DescribeClusterParametersPagesWithContext(ctx aws.Context, input *DescribeClusterParametersInput, fn func(*DescribeClusterParametersOutput, bool) bool, opts ...request.Option) error {
4696	p := request.Pagination{
4697		NewRequest: func() (*request.Request, error) {
4698			var inCpy *DescribeClusterParametersInput
4699			if input != nil {
4700				tmp := *input
4701				inCpy = &tmp
4702			}
4703			req, _ := c.DescribeClusterParametersRequest(inCpy)
4704			req.SetContext(ctx)
4705			req.ApplyOptions(opts...)
4706			return req, nil
4707		},
4708	}
4709
4710	for p.Next() {
4711		if !fn(p.Page().(*DescribeClusterParametersOutput), !p.HasNextPage()) {
4712			break
4713		}
4714	}
4715
4716	return p.Err()
4717}
4718
4719const opDescribeClusterSecurityGroups = "DescribeClusterSecurityGroups"
4720
4721// DescribeClusterSecurityGroupsRequest generates a "aws/request.Request" representing the
4722// client's request for the DescribeClusterSecurityGroups operation. The "output" return
4723// value will be populated with the request's response once the request completes
4724// successfully.
4725//
4726// Use "Send" method on the returned Request to send the API call to the service.
4727// the "output" return value is not valid until after Send returns without error.
4728//
4729// See DescribeClusterSecurityGroups for more information on using the DescribeClusterSecurityGroups
4730// API call, and error handling.
4731//
4732// This method is useful when you want to inject custom logic or configuration
4733// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4734//
4735//
4736//    // Example sending a request using the DescribeClusterSecurityGroupsRequest method.
4737//    req, resp := client.DescribeClusterSecurityGroupsRequest(params)
4738//
4739//    err := req.Send()
4740//    if err == nil { // resp is now filled
4741//        fmt.Println(resp)
4742//    }
4743//
4744// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSecurityGroups
4745func (c *Redshift) DescribeClusterSecurityGroupsRequest(input *DescribeClusterSecurityGroupsInput) (req *request.Request, output *DescribeClusterSecurityGroupsOutput) {
4746	op := &request.Operation{
4747		Name:       opDescribeClusterSecurityGroups,
4748		HTTPMethod: "POST",
4749		HTTPPath:   "/",
4750		Paginator: &request.Paginator{
4751			InputTokens:     []string{"Marker"},
4752			OutputTokens:    []string{"Marker"},
4753			LimitToken:      "MaxRecords",
4754			TruncationToken: "",
4755		},
4756	}
4757
4758	if input == nil {
4759		input = &DescribeClusterSecurityGroupsInput{}
4760	}
4761
4762	output = &DescribeClusterSecurityGroupsOutput{}
4763	req = c.newRequest(op, input, output)
4764	return
4765}
4766
4767// DescribeClusterSecurityGroups API operation for Amazon Redshift.
4768//
4769// Returns information about Amazon Redshift security groups. If the name of
4770// a security group is specified, the response will contain only information
4771// about only that security group.
4772//
4773// For information about managing security groups, go to Amazon Redshift Cluster
4774// Security Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
4775// in the Amazon Redshift Cluster Management Guide.
4776//
4777// If you specify both tag keys and tag values in the same request, Amazon Redshift
4778// returns all security groups that match any combination of the specified keys
4779// and values. For example, if you have owner and environment for tag keys,
4780// and admin and test for tag values, all security groups that have any combination
4781// of those values are returned.
4782//
4783// If both tag keys and values are omitted from the request, security groups
4784// are returned regardless of whether they have tag keys or values associated
4785// with them.
4786//
4787// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4788// with awserr.Error's Code and Message methods to get detailed information about
4789// the error.
4790//
4791// See the AWS API reference guide for Amazon Redshift's
4792// API operation DescribeClusterSecurityGroups for usage and error information.
4793//
4794// Returned Error Codes:
4795//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
4796//   The cluster security group name does not refer to an existing cluster security
4797//   group.
4798//
4799//   * ErrCodeInvalidTagFault "InvalidTagFault"
4800//   The tag is invalid.
4801//
4802// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSecurityGroups
4803func (c *Redshift) DescribeClusterSecurityGroups(input *DescribeClusterSecurityGroupsInput) (*DescribeClusterSecurityGroupsOutput, error) {
4804	req, out := c.DescribeClusterSecurityGroupsRequest(input)
4805	return out, req.Send()
4806}
4807
4808// DescribeClusterSecurityGroupsWithContext is the same as DescribeClusterSecurityGroups with the addition of
4809// the ability to pass a context and additional request options.
4810//
4811// See DescribeClusterSecurityGroups for details on how to use this API operation.
4812//
4813// The context must be non-nil and will be used for request cancellation. If
4814// the context is nil a panic will occur. In the future the SDK may create
4815// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4816// for more information on using Contexts.
4817func (c *Redshift) DescribeClusterSecurityGroupsWithContext(ctx aws.Context, input *DescribeClusterSecurityGroupsInput, opts ...request.Option) (*DescribeClusterSecurityGroupsOutput, error) {
4818	req, out := c.DescribeClusterSecurityGroupsRequest(input)
4819	req.SetContext(ctx)
4820	req.ApplyOptions(opts...)
4821	return out, req.Send()
4822}
4823
4824// DescribeClusterSecurityGroupsPages iterates over the pages of a DescribeClusterSecurityGroups operation,
4825// calling the "fn" function with the response data for each page. To stop
4826// iterating, return false from the fn function.
4827//
4828// See DescribeClusterSecurityGroups method for more information on how to use this operation.
4829//
4830// Note: This operation can generate multiple requests to a service.
4831//
4832//    // Example iterating over at most 3 pages of a DescribeClusterSecurityGroups operation.
4833//    pageNum := 0
4834//    err := client.DescribeClusterSecurityGroupsPages(params,
4835//        func(page *redshift.DescribeClusterSecurityGroupsOutput, lastPage bool) bool {
4836//            pageNum++
4837//            fmt.Println(page)
4838//            return pageNum <= 3
4839//        })
4840//
4841func (c *Redshift) DescribeClusterSecurityGroupsPages(input *DescribeClusterSecurityGroupsInput, fn func(*DescribeClusterSecurityGroupsOutput, bool) bool) error {
4842	return c.DescribeClusterSecurityGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
4843}
4844
4845// DescribeClusterSecurityGroupsPagesWithContext same as DescribeClusterSecurityGroupsPages except
4846// it takes a Context and allows setting request options on the pages.
4847//
4848// The context must be non-nil and will be used for request cancellation. If
4849// the context is nil a panic will occur. In the future the SDK may create
4850// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4851// for more information on using Contexts.
4852func (c *Redshift) DescribeClusterSecurityGroupsPagesWithContext(ctx aws.Context, input *DescribeClusterSecurityGroupsInput, fn func(*DescribeClusterSecurityGroupsOutput, bool) bool, opts ...request.Option) error {
4853	p := request.Pagination{
4854		NewRequest: func() (*request.Request, error) {
4855			var inCpy *DescribeClusterSecurityGroupsInput
4856			if input != nil {
4857				tmp := *input
4858				inCpy = &tmp
4859			}
4860			req, _ := c.DescribeClusterSecurityGroupsRequest(inCpy)
4861			req.SetContext(ctx)
4862			req.ApplyOptions(opts...)
4863			return req, nil
4864		},
4865	}
4866
4867	for p.Next() {
4868		if !fn(p.Page().(*DescribeClusterSecurityGroupsOutput), !p.HasNextPage()) {
4869			break
4870		}
4871	}
4872
4873	return p.Err()
4874}
4875
4876const opDescribeClusterSnapshots = "DescribeClusterSnapshots"
4877
4878// DescribeClusterSnapshotsRequest generates a "aws/request.Request" representing the
4879// client's request for the DescribeClusterSnapshots operation. The "output" return
4880// value will be populated with the request's response once the request completes
4881// successfully.
4882//
4883// Use "Send" method on the returned Request to send the API call to the service.
4884// the "output" return value is not valid until after Send returns without error.
4885//
4886// See DescribeClusterSnapshots for more information on using the DescribeClusterSnapshots
4887// API call, and error handling.
4888//
4889// This method is useful when you want to inject custom logic or configuration
4890// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4891//
4892//
4893//    // Example sending a request using the DescribeClusterSnapshotsRequest method.
4894//    req, resp := client.DescribeClusterSnapshotsRequest(params)
4895//
4896//    err := req.Send()
4897//    if err == nil { // resp is now filled
4898//        fmt.Println(resp)
4899//    }
4900//
4901// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSnapshots
4902func (c *Redshift) DescribeClusterSnapshotsRequest(input *DescribeClusterSnapshotsInput) (req *request.Request, output *DescribeClusterSnapshotsOutput) {
4903	op := &request.Operation{
4904		Name:       opDescribeClusterSnapshots,
4905		HTTPMethod: "POST",
4906		HTTPPath:   "/",
4907		Paginator: &request.Paginator{
4908			InputTokens:     []string{"Marker"},
4909			OutputTokens:    []string{"Marker"},
4910			LimitToken:      "MaxRecords",
4911			TruncationToken: "",
4912		},
4913	}
4914
4915	if input == nil {
4916		input = &DescribeClusterSnapshotsInput{}
4917	}
4918
4919	output = &DescribeClusterSnapshotsOutput{}
4920	req = c.newRequest(op, input, output)
4921	return
4922}
4923
4924// DescribeClusterSnapshots API operation for Amazon Redshift.
4925//
4926// Returns one or more snapshot objects, which contain metadata about your cluster
4927// snapshots. By default, this operation returns information about all snapshots
4928// of all clusters that are owned by your Amazon Web Services account. No information
4929// is returned for snapshots owned by inactive Amazon Web Services accounts.
4930//
4931// If you specify both tag keys and tag values in the same request, Amazon Redshift
4932// returns all snapshots that match any combination of the specified keys and
4933// values. For example, if you have owner and environment for tag keys, and
4934// admin and test for tag values, all snapshots that have any combination of
4935// those values are returned. Only snapshots that you own are returned in the
4936// response; shared snapshots are not returned with the tag key and tag value
4937// request parameters.
4938//
4939// If both tag keys and values are omitted from the request, snapshots are returned
4940// regardless of whether they have tag keys or values associated with them.
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 DescribeClusterSnapshots for usage and error information.
4948//
4949// Returned Error Codes:
4950//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
4951//   The ClusterIdentifier parameter does not refer to an existing cluster.
4952//
4953//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
4954//   The snapshot identifier does not refer to an existing cluster snapshot.
4955//
4956//   * ErrCodeInvalidTagFault "InvalidTagFault"
4957//   The tag is invalid.
4958//
4959// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSnapshots
4960func (c *Redshift) DescribeClusterSnapshots(input *DescribeClusterSnapshotsInput) (*DescribeClusterSnapshotsOutput, error) {
4961	req, out := c.DescribeClusterSnapshotsRequest(input)
4962	return out, req.Send()
4963}
4964
4965// DescribeClusterSnapshotsWithContext is the same as DescribeClusterSnapshots with the addition of
4966// the ability to pass a context and additional request options.
4967//
4968// See DescribeClusterSnapshots for details on how to use this API operation.
4969//
4970// The context must be non-nil and will be used for request cancellation. If
4971// the context is nil a panic will occur. In the future the SDK may create
4972// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4973// for more information on using Contexts.
4974func (c *Redshift) DescribeClusterSnapshotsWithContext(ctx aws.Context, input *DescribeClusterSnapshotsInput, opts ...request.Option) (*DescribeClusterSnapshotsOutput, error) {
4975	req, out := c.DescribeClusterSnapshotsRequest(input)
4976	req.SetContext(ctx)
4977	req.ApplyOptions(opts...)
4978	return out, req.Send()
4979}
4980
4981// DescribeClusterSnapshotsPages iterates over the pages of a DescribeClusterSnapshots operation,
4982// calling the "fn" function with the response data for each page. To stop
4983// iterating, return false from the fn function.
4984//
4985// See DescribeClusterSnapshots method for more information on how to use this operation.
4986//
4987// Note: This operation can generate multiple requests to a service.
4988//
4989//    // Example iterating over at most 3 pages of a DescribeClusterSnapshots operation.
4990//    pageNum := 0
4991//    err := client.DescribeClusterSnapshotsPages(params,
4992//        func(page *redshift.DescribeClusterSnapshotsOutput, lastPage bool) bool {
4993//            pageNum++
4994//            fmt.Println(page)
4995//            return pageNum <= 3
4996//        })
4997//
4998func (c *Redshift) DescribeClusterSnapshotsPages(input *DescribeClusterSnapshotsInput, fn func(*DescribeClusterSnapshotsOutput, bool) bool) error {
4999	return c.DescribeClusterSnapshotsPagesWithContext(aws.BackgroundContext(), input, fn)
5000}
5001
5002// DescribeClusterSnapshotsPagesWithContext same as DescribeClusterSnapshotsPages except
5003// it takes a Context and allows setting request options on the pages.
5004//
5005// The context must be non-nil and will be used for request cancellation. If
5006// the context is nil a panic will occur. In the future the SDK may create
5007// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5008// for more information on using Contexts.
5009func (c *Redshift) DescribeClusterSnapshotsPagesWithContext(ctx aws.Context, input *DescribeClusterSnapshotsInput, fn func(*DescribeClusterSnapshotsOutput, bool) bool, opts ...request.Option) error {
5010	p := request.Pagination{
5011		NewRequest: func() (*request.Request, error) {
5012			var inCpy *DescribeClusterSnapshotsInput
5013			if input != nil {
5014				tmp := *input
5015				inCpy = &tmp
5016			}
5017			req, _ := c.DescribeClusterSnapshotsRequest(inCpy)
5018			req.SetContext(ctx)
5019			req.ApplyOptions(opts...)
5020			return req, nil
5021		},
5022	}
5023
5024	for p.Next() {
5025		if !fn(p.Page().(*DescribeClusterSnapshotsOutput), !p.HasNextPage()) {
5026			break
5027		}
5028	}
5029
5030	return p.Err()
5031}
5032
5033const opDescribeClusterSubnetGroups = "DescribeClusterSubnetGroups"
5034
5035// DescribeClusterSubnetGroupsRequest generates a "aws/request.Request" representing the
5036// client's request for the DescribeClusterSubnetGroups operation. The "output" return
5037// value will be populated with the request's response once the request completes
5038// successfully.
5039//
5040// Use "Send" method on the returned Request to send the API call to the service.
5041// the "output" return value is not valid until after Send returns without error.
5042//
5043// See DescribeClusterSubnetGroups for more information on using the DescribeClusterSubnetGroups
5044// API call, and error handling.
5045//
5046// This method is useful when you want to inject custom logic or configuration
5047// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5048//
5049//
5050//    // Example sending a request using the DescribeClusterSubnetGroupsRequest method.
5051//    req, resp := client.DescribeClusterSubnetGroupsRequest(params)
5052//
5053//    err := req.Send()
5054//    if err == nil { // resp is now filled
5055//        fmt.Println(resp)
5056//    }
5057//
5058// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSubnetGroups
5059func (c *Redshift) DescribeClusterSubnetGroupsRequest(input *DescribeClusterSubnetGroupsInput) (req *request.Request, output *DescribeClusterSubnetGroupsOutput) {
5060	op := &request.Operation{
5061		Name:       opDescribeClusterSubnetGroups,
5062		HTTPMethod: "POST",
5063		HTTPPath:   "/",
5064		Paginator: &request.Paginator{
5065			InputTokens:     []string{"Marker"},
5066			OutputTokens:    []string{"Marker"},
5067			LimitToken:      "MaxRecords",
5068			TruncationToken: "",
5069		},
5070	}
5071
5072	if input == nil {
5073		input = &DescribeClusterSubnetGroupsInput{}
5074	}
5075
5076	output = &DescribeClusterSubnetGroupsOutput{}
5077	req = c.newRequest(op, input, output)
5078	return
5079}
5080
5081// DescribeClusterSubnetGroups API operation for Amazon Redshift.
5082//
5083// Returns one or more cluster subnet group objects, which contain metadata
5084// about your cluster subnet groups. By default, this operation returns information
5085// about all cluster subnet groups that are defined in your Amazon Web Services
5086// account.
5087//
5088// If you specify both tag keys and tag values in the same request, Amazon Redshift
5089// returns all subnet groups that match any combination of the specified keys
5090// and values. For example, if you have owner and environment for tag keys,
5091// and admin and test for tag values, all subnet groups that have any combination
5092// of those values are returned.
5093//
5094// If both tag keys and values are omitted from the request, subnet groups are
5095// returned regardless of whether they have tag keys or values associated with
5096// them.
5097//
5098// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5099// with awserr.Error's Code and Message methods to get detailed information about
5100// the error.
5101//
5102// See the AWS API reference guide for Amazon Redshift's
5103// API operation DescribeClusterSubnetGroups for usage and error information.
5104//
5105// Returned Error Codes:
5106//   * ErrCodeClusterSubnetGroupNotFoundFault "ClusterSubnetGroupNotFoundFault"
5107//   The cluster subnet group name does not refer to an existing cluster subnet
5108//   group.
5109//
5110//   * ErrCodeInvalidTagFault "InvalidTagFault"
5111//   The tag is invalid.
5112//
5113// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSubnetGroups
5114func (c *Redshift) DescribeClusterSubnetGroups(input *DescribeClusterSubnetGroupsInput) (*DescribeClusterSubnetGroupsOutput, error) {
5115	req, out := c.DescribeClusterSubnetGroupsRequest(input)
5116	return out, req.Send()
5117}
5118
5119// DescribeClusterSubnetGroupsWithContext is the same as DescribeClusterSubnetGroups with the addition of
5120// the ability to pass a context and additional request options.
5121//
5122// See DescribeClusterSubnetGroups for details on how to use this API operation.
5123//
5124// The context must be non-nil and will be used for request cancellation. If
5125// the context is nil a panic will occur. In the future the SDK may create
5126// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5127// for more information on using Contexts.
5128func (c *Redshift) DescribeClusterSubnetGroupsWithContext(ctx aws.Context, input *DescribeClusterSubnetGroupsInput, opts ...request.Option) (*DescribeClusterSubnetGroupsOutput, error) {
5129	req, out := c.DescribeClusterSubnetGroupsRequest(input)
5130	req.SetContext(ctx)
5131	req.ApplyOptions(opts...)
5132	return out, req.Send()
5133}
5134
5135// DescribeClusterSubnetGroupsPages iterates over the pages of a DescribeClusterSubnetGroups operation,
5136// calling the "fn" function with the response data for each page. To stop
5137// iterating, return false from the fn function.
5138//
5139// See DescribeClusterSubnetGroups method for more information on how to use this operation.
5140//
5141// Note: This operation can generate multiple requests to a service.
5142//
5143//    // Example iterating over at most 3 pages of a DescribeClusterSubnetGroups operation.
5144//    pageNum := 0
5145//    err := client.DescribeClusterSubnetGroupsPages(params,
5146//        func(page *redshift.DescribeClusterSubnetGroupsOutput, lastPage bool) bool {
5147//            pageNum++
5148//            fmt.Println(page)
5149//            return pageNum <= 3
5150//        })
5151//
5152func (c *Redshift) DescribeClusterSubnetGroupsPages(input *DescribeClusterSubnetGroupsInput, fn func(*DescribeClusterSubnetGroupsOutput, bool) bool) error {
5153	return c.DescribeClusterSubnetGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
5154}
5155
5156// DescribeClusterSubnetGroupsPagesWithContext same as DescribeClusterSubnetGroupsPages except
5157// it takes a Context and allows setting request options on the pages.
5158//
5159// The context must be non-nil and will be used for request cancellation. If
5160// the context is nil a panic will occur. In the future the SDK may create
5161// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5162// for more information on using Contexts.
5163func (c *Redshift) DescribeClusterSubnetGroupsPagesWithContext(ctx aws.Context, input *DescribeClusterSubnetGroupsInput, fn func(*DescribeClusterSubnetGroupsOutput, bool) bool, opts ...request.Option) error {
5164	p := request.Pagination{
5165		NewRequest: func() (*request.Request, error) {
5166			var inCpy *DescribeClusterSubnetGroupsInput
5167			if input != nil {
5168				tmp := *input
5169				inCpy = &tmp
5170			}
5171			req, _ := c.DescribeClusterSubnetGroupsRequest(inCpy)
5172			req.SetContext(ctx)
5173			req.ApplyOptions(opts...)
5174			return req, nil
5175		},
5176	}
5177
5178	for p.Next() {
5179		if !fn(p.Page().(*DescribeClusterSubnetGroupsOutput), !p.HasNextPage()) {
5180			break
5181		}
5182	}
5183
5184	return p.Err()
5185}
5186
5187const opDescribeClusterTracks = "DescribeClusterTracks"
5188
5189// DescribeClusterTracksRequest generates a "aws/request.Request" representing the
5190// client's request for the DescribeClusterTracks operation. The "output" return
5191// value will be populated with the request's response once the request completes
5192// successfully.
5193//
5194// Use "Send" method on the returned Request to send the API call to the service.
5195// the "output" return value is not valid until after Send returns without error.
5196//
5197// See DescribeClusterTracks for more information on using the DescribeClusterTracks
5198// API call, and error handling.
5199//
5200// This method is useful when you want to inject custom logic or configuration
5201// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5202//
5203//
5204//    // Example sending a request using the DescribeClusterTracksRequest method.
5205//    req, resp := client.DescribeClusterTracksRequest(params)
5206//
5207//    err := req.Send()
5208//    if err == nil { // resp is now filled
5209//        fmt.Println(resp)
5210//    }
5211//
5212// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterTracks
5213func (c *Redshift) DescribeClusterTracksRequest(input *DescribeClusterTracksInput) (req *request.Request, output *DescribeClusterTracksOutput) {
5214	op := &request.Operation{
5215		Name:       opDescribeClusterTracks,
5216		HTTPMethod: "POST",
5217		HTTPPath:   "/",
5218		Paginator: &request.Paginator{
5219			InputTokens:     []string{"Marker"},
5220			OutputTokens:    []string{"Marker"},
5221			LimitToken:      "MaxRecords",
5222			TruncationToken: "",
5223		},
5224	}
5225
5226	if input == nil {
5227		input = &DescribeClusterTracksInput{}
5228	}
5229
5230	output = &DescribeClusterTracksOutput{}
5231	req = c.newRequest(op, input, output)
5232	return
5233}
5234
5235// DescribeClusterTracks API operation for Amazon Redshift.
5236//
5237// Returns a list of all the available maintenance tracks.
5238//
5239// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5240// with awserr.Error's Code and Message methods to get detailed information about
5241// the error.
5242//
5243// See the AWS API reference guide for Amazon Redshift's
5244// API operation DescribeClusterTracks for usage and error information.
5245//
5246// Returned Error Codes:
5247//   * ErrCodeInvalidClusterTrackFault "InvalidClusterTrack"
5248//   The provided cluster track name is not valid.
5249//
5250//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
5251//   Your account is not authorized to perform the requested operation.
5252//
5253// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterTracks
5254func (c *Redshift) DescribeClusterTracks(input *DescribeClusterTracksInput) (*DescribeClusterTracksOutput, error) {
5255	req, out := c.DescribeClusterTracksRequest(input)
5256	return out, req.Send()
5257}
5258
5259// DescribeClusterTracksWithContext is the same as DescribeClusterTracks with the addition of
5260// the ability to pass a context and additional request options.
5261//
5262// See DescribeClusterTracks for details on how to use this API operation.
5263//
5264// The context must be non-nil and will be used for request cancellation. If
5265// the context is nil a panic will occur. In the future the SDK may create
5266// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5267// for more information on using Contexts.
5268func (c *Redshift) DescribeClusterTracksWithContext(ctx aws.Context, input *DescribeClusterTracksInput, opts ...request.Option) (*DescribeClusterTracksOutput, error) {
5269	req, out := c.DescribeClusterTracksRequest(input)
5270	req.SetContext(ctx)
5271	req.ApplyOptions(opts...)
5272	return out, req.Send()
5273}
5274
5275// DescribeClusterTracksPages iterates over the pages of a DescribeClusterTracks operation,
5276// calling the "fn" function with the response data for each page. To stop
5277// iterating, return false from the fn function.
5278//
5279// See DescribeClusterTracks method for more information on how to use this operation.
5280//
5281// Note: This operation can generate multiple requests to a service.
5282//
5283//    // Example iterating over at most 3 pages of a DescribeClusterTracks operation.
5284//    pageNum := 0
5285//    err := client.DescribeClusterTracksPages(params,
5286//        func(page *redshift.DescribeClusterTracksOutput, lastPage bool) bool {
5287//            pageNum++
5288//            fmt.Println(page)
5289//            return pageNum <= 3
5290//        })
5291//
5292func (c *Redshift) DescribeClusterTracksPages(input *DescribeClusterTracksInput, fn func(*DescribeClusterTracksOutput, bool) bool) error {
5293	return c.DescribeClusterTracksPagesWithContext(aws.BackgroundContext(), input, fn)
5294}
5295
5296// DescribeClusterTracksPagesWithContext same as DescribeClusterTracksPages except
5297// it takes a Context and allows setting request options on the pages.
5298//
5299// The context must be non-nil and will be used for request cancellation. If
5300// the context is nil a panic will occur. In the future the SDK may create
5301// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5302// for more information on using Contexts.
5303func (c *Redshift) DescribeClusterTracksPagesWithContext(ctx aws.Context, input *DescribeClusterTracksInput, fn func(*DescribeClusterTracksOutput, bool) bool, opts ...request.Option) error {
5304	p := request.Pagination{
5305		NewRequest: func() (*request.Request, error) {
5306			var inCpy *DescribeClusterTracksInput
5307			if input != nil {
5308				tmp := *input
5309				inCpy = &tmp
5310			}
5311			req, _ := c.DescribeClusterTracksRequest(inCpy)
5312			req.SetContext(ctx)
5313			req.ApplyOptions(opts...)
5314			return req, nil
5315		},
5316	}
5317
5318	for p.Next() {
5319		if !fn(p.Page().(*DescribeClusterTracksOutput), !p.HasNextPage()) {
5320			break
5321		}
5322	}
5323
5324	return p.Err()
5325}
5326
5327const opDescribeClusterVersions = "DescribeClusterVersions"
5328
5329// DescribeClusterVersionsRequest generates a "aws/request.Request" representing the
5330// client's request for the DescribeClusterVersions operation. The "output" return
5331// value will be populated with the request's response once the request completes
5332// successfully.
5333//
5334// Use "Send" method on the returned Request to send the API call to the service.
5335// the "output" return value is not valid until after Send returns without error.
5336//
5337// See DescribeClusterVersions for more information on using the DescribeClusterVersions
5338// API call, and error handling.
5339//
5340// This method is useful when you want to inject custom logic or configuration
5341// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5342//
5343//
5344//    // Example sending a request using the DescribeClusterVersionsRequest method.
5345//    req, resp := client.DescribeClusterVersionsRequest(params)
5346//
5347//    err := req.Send()
5348//    if err == nil { // resp is now filled
5349//        fmt.Println(resp)
5350//    }
5351//
5352// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterVersions
5353func (c *Redshift) DescribeClusterVersionsRequest(input *DescribeClusterVersionsInput) (req *request.Request, output *DescribeClusterVersionsOutput) {
5354	op := &request.Operation{
5355		Name:       opDescribeClusterVersions,
5356		HTTPMethod: "POST",
5357		HTTPPath:   "/",
5358		Paginator: &request.Paginator{
5359			InputTokens:     []string{"Marker"},
5360			OutputTokens:    []string{"Marker"},
5361			LimitToken:      "MaxRecords",
5362			TruncationToken: "",
5363		},
5364	}
5365
5366	if input == nil {
5367		input = &DescribeClusterVersionsInput{}
5368	}
5369
5370	output = &DescribeClusterVersionsOutput{}
5371	req = c.newRequest(op, input, output)
5372	return
5373}
5374
5375// DescribeClusterVersions API operation for Amazon Redshift.
5376//
5377// Returns descriptions of the available Amazon Redshift cluster versions. You
5378// can call this operation even before creating any clusters to learn more about
5379// the Amazon Redshift versions. For more information about managing clusters,
5380// go to Amazon Redshift Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
5381// in the Amazon Redshift Cluster Management Guide.
5382//
5383// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5384// with awserr.Error's Code and Message methods to get detailed information about
5385// the error.
5386//
5387// See the AWS API reference guide for Amazon Redshift's
5388// API operation DescribeClusterVersions for usage and error information.
5389// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterVersions
5390func (c *Redshift) DescribeClusterVersions(input *DescribeClusterVersionsInput) (*DescribeClusterVersionsOutput, error) {
5391	req, out := c.DescribeClusterVersionsRequest(input)
5392	return out, req.Send()
5393}
5394
5395// DescribeClusterVersionsWithContext is the same as DescribeClusterVersions with the addition of
5396// the ability to pass a context and additional request options.
5397//
5398// See DescribeClusterVersions for details on how to use this API operation.
5399//
5400// The context must be non-nil and will be used for request cancellation. If
5401// the context is nil a panic will occur. In the future the SDK may create
5402// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5403// for more information on using Contexts.
5404func (c *Redshift) DescribeClusterVersionsWithContext(ctx aws.Context, input *DescribeClusterVersionsInput, opts ...request.Option) (*DescribeClusterVersionsOutput, error) {
5405	req, out := c.DescribeClusterVersionsRequest(input)
5406	req.SetContext(ctx)
5407	req.ApplyOptions(opts...)
5408	return out, req.Send()
5409}
5410
5411// DescribeClusterVersionsPages iterates over the pages of a DescribeClusterVersions operation,
5412// calling the "fn" function with the response data for each page. To stop
5413// iterating, return false from the fn function.
5414//
5415// See DescribeClusterVersions method for more information on how to use this operation.
5416//
5417// Note: This operation can generate multiple requests to a service.
5418//
5419//    // Example iterating over at most 3 pages of a DescribeClusterVersions operation.
5420//    pageNum := 0
5421//    err := client.DescribeClusterVersionsPages(params,
5422//        func(page *redshift.DescribeClusterVersionsOutput, lastPage bool) bool {
5423//            pageNum++
5424//            fmt.Println(page)
5425//            return pageNum <= 3
5426//        })
5427//
5428func (c *Redshift) DescribeClusterVersionsPages(input *DescribeClusterVersionsInput, fn func(*DescribeClusterVersionsOutput, bool) bool) error {
5429	return c.DescribeClusterVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
5430}
5431
5432// DescribeClusterVersionsPagesWithContext same as DescribeClusterVersionsPages except
5433// it takes a Context and allows setting request options on the pages.
5434//
5435// The context must be non-nil and will be used for request cancellation. If
5436// the context is nil a panic will occur. In the future the SDK may create
5437// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5438// for more information on using Contexts.
5439func (c *Redshift) DescribeClusterVersionsPagesWithContext(ctx aws.Context, input *DescribeClusterVersionsInput, fn func(*DescribeClusterVersionsOutput, bool) bool, opts ...request.Option) error {
5440	p := request.Pagination{
5441		NewRequest: func() (*request.Request, error) {
5442			var inCpy *DescribeClusterVersionsInput
5443			if input != nil {
5444				tmp := *input
5445				inCpy = &tmp
5446			}
5447			req, _ := c.DescribeClusterVersionsRequest(inCpy)
5448			req.SetContext(ctx)
5449			req.ApplyOptions(opts...)
5450			return req, nil
5451		},
5452	}
5453
5454	for p.Next() {
5455		if !fn(p.Page().(*DescribeClusterVersionsOutput), !p.HasNextPage()) {
5456			break
5457		}
5458	}
5459
5460	return p.Err()
5461}
5462
5463const opDescribeClusters = "DescribeClusters"
5464
5465// DescribeClustersRequest generates a "aws/request.Request" representing the
5466// client's request for the DescribeClusters operation. The "output" return
5467// value will be populated with the request's response once the request completes
5468// successfully.
5469//
5470// Use "Send" method on the returned Request to send the API call to the service.
5471// the "output" return value is not valid until after Send returns without error.
5472//
5473// See DescribeClusters for more information on using the DescribeClusters
5474// API call, and error handling.
5475//
5476// This method is useful when you want to inject custom logic or configuration
5477// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5478//
5479//
5480//    // Example sending a request using the DescribeClustersRequest method.
5481//    req, resp := client.DescribeClustersRequest(params)
5482//
5483//    err := req.Send()
5484//    if err == nil { // resp is now filled
5485//        fmt.Println(resp)
5486//    }
5487//
5488// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusters
5489func (c *Redshift) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
5490	op := &request.Operation{
5491		Name:       opDescribeClusters,
5492		HTTPMethod: "POST",
5493		HTTPPath:   "/",
5494		Paginator: &request.Paginator{
5495			InputTokens:     []string{"Marker"},
5496			OutputTokens:    []string{"Marker"},
5497			LimitToken:      "MaxRecords",
5498			TruncationToken: "",
5499		},
5500	}
5501
5502	if input == nil {
5503		input = &DescribeClustersInput{}
5504	}
5505
5506	output = &DescribeClustersOutput{}
5507	req = c.newRequest(op, input, output)
5508	return
5509}
5510
5511// DescribeClusters API operation for Amazon Redshift.
5512//
5513// Returns properties of provisioned clusters including general cluster properties,
5514// cluster database properties, maintenance and backup properties, and security
5515// and access properties. This operation supports pagination. For more information
5516// about managing clusters, go to Amazon Redshift Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
5517// in the Amazon Redshift Cluster Management Guide.
5518//
5519// If you specify both tag keys and tag values in the same request, Amazon Redshift
5520// returns all clusters that match any combination of the specified keys and
5521// values. For example, if you have owner and environment for tag keys, and
5522// admin and test for tag values, all clusters that have any combination of
5523// those values are returned.
5524//
5525// If both tag keys and values are omitted from the request, clusters are returned
5526// regardless of whether they have tag keys or values associated with them.
5527//
5528// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5529// with awserr.Error's Code and Message methods to get detailed information about
5530// the error.
5531//
5532// See the AWS API reference guide for Amazon Redshift's
5533// API operation DescribeClusters for usage and error information.
5534//
5535// Returned Error Codes:
5536//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
5537//   The ClusterIdentifier parameter does not refer to an existing cluster.
5538//
5539//   * ErrCodeInvalidTagFault "InvalidTagFault"
5540//   The tag is invalid.
5541//
5542// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusters
5543func (c *Redshift) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
5544	req, out := c.DescribeClustersRequest(input)
5545	return out, req.Send()
5546}
5547
5548// DescribeClustersWithContext is the same as DescribeClusters with the addition of
5549// the ability to pass a context and additional request options.
5550//
5551// See DescribeClusters for details on how to use this API operation.
5552//
5553// The context must be non-nil and will be used for request cancellation. If
5554// the context is nil a panic will occur. In the future the SDK may create
5555// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5556// for more information on using Contexts.
5557func (c *Redshift) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
5558	req, out := c.DescribeClustersRequest(input)
5559	req.SetContext(ctx)
5560	req.ApplyOptions(opts...)
5561	return out, req.Send()
5562}
5563
5564// DescribeClustersPages iterates over the pages of a DescribeClusters operation,
5565// calling the "fn" function with the response data for each page. To stop
5566// iterating, return false from the fn function.
5567//
5568// See DescribeClusters method for more information on how to use this operation.
5569//
5570// Note: This operation can generate multiple requests to a service.
5571//
5572//    // Example iterating over at most 3 pages of a DescribeClusters operation.
5573//    pageNum := 0
5574//    err := client.DescribeClustersPages(params,
5575//        func(page *redshift.DescribeClustersOutput, lastPage bool) bool {
5576//            pageNum++
5577//            fmt.Println(page)
5578//            return pageNum <= 3
5579//        })
5580//
5581func (c *Redshift) DescribeClustersPages(input *DescribeClustersInput, fn func(*DescribeClustersOutput, bool) bool) error {
5582	return c.DescribeClustersPagesWithContext(aws.BackgroundContext(), input, fn)
5583}
5584
5585// DescribeClustersPagesWithContext same as DescribeClustersPages except
5586// it takes a Context and allows setting request options on the pages.
5587//
5588// The context must be non-nil and will be used for request cancellation. If
5589// the context is nil a panic will occur. In the future the SDK may create
5590// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5591// for more information on using Contexts.
5592func (c *Redshift) DescribeClustersPagesWithContext(ctx aws.Context, input *DescribeClustersInput, fn func(*DescribeClustersOutput, bool) bool, opts ...request.Option) error {
5593	p := request.Pagination{
5594		NewRequest: func() (*request.Request, error) {
5595			var inCpy *DescribeClustersInput
5596			if input != nil {
5597				tmp := *input
5598				inCpy = &tmp
5599			}
5600			req, _ := c.DescribeClustersRequest(inCpy)
5601			req.SetContext(ctx)
5602			req.ApplyOptions(opts...)
5603			return req, nil
5604		},
5605	}
5606
5607	for p.Next() {
5608		if !fn(p.Page().(*DescribeClustersOutput), !p.HasNextPage()) {
5609			break
5610		}
5611	}
5612
5613	return p.Err()
5614}
5615
5616const opDescribeDataShares = "DescribeDataShares"
5617
5618// DescribeDataSharesRequest generates a "aws/request.Request" representing the
5619// client's request for the DescribeDataShares operation. The "output" return
5620// value will be populated with the request's response once the request completes
5621// successfully.
5622//
5623// Use "Send" method on the returned Request to send the API call to the service.
5624// the "output" return value is not valid until after Send returns without error.
5625//
5626// See DescribeDataShares for more information on using the DescribeDataShares
5627// API call, and error handling.
5628//
5629// This method is useful when you want to inject custom logic or configuration
5630// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5631//
5632//
5633//    // Example sending a request using the DescribeDataSharesRequest method.
5634//    req, resp := client.DescribeDataSharesRequest(params)
5635//
5636//    err := req.Send()
5637//    if err == nil { // resp is now filled
5638//        fmt.Println(resp)
5639//    }
5640//
5641// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeDataShares
5642func (c *Redshift) DescribeDataSharesRequest(input *DescribeDataSharesInput) (req *request.Request, output *DescribeDataSharesOutput) {
5643	op := &request.Operation{
5644		Name:       opDescribeDataShares,
5645		HTTPMethod: "POST",
5646		HTTPPath:   "/",
5647	}
5648
5649	if input == nil {
5650		input = &DescribeDataSharesInput{}
5651	}
5652
5653	output = &DescribeDataSharesOutput{}
5654	req = c.newRequest(op, input, output)
5655	return
5656}
5657
5658// DescribeDataShares API operation for Amazon Redshift.
5659//
5660// Shows the status of any inbound or outbound datashares available in the specified
5661// account.
5662//
5663// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5664// with awserr.Error's Code and Message methods to get detailed information about
5665// the error.
5666//
5667// See the AWS API reference guide for Amazon Redshift's
5668// API operation DescribeDataShares for usage and error information.
5669//
5670// Returned Error Codes:
5671//   * ErrCodeInvalidDataShareFault "InvalidDataShareFault"
5672//   There is an error with the datashare.
5673//
5674// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeDataShares
5675func (c *Redshift) DescribeDataShares(input *DescribeDataSharesInput) (*DescribeDataSharesOutput, error) {
5676	req, out := c.DescribeDataSharesRequest(input)
5677	return out, req.Send()
5678}
5679
5680// DescribeDataSharesWithContext is the same as DescribeDataShares with the addition of
5681// the ability to pass a context and additional request options.
5682//
5683// See DescribeDataShares for details on how to use this API operation.
5684//
5685// The context must be non-nil and will be used for request cancellation. If
5686// the context is nil a panic will occur. In the future the SDK may create
5687// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5688// for more information on using Contexts.
5689func (c *Redshift) DescribeDataSharesWithContext(ctx aws.Context, input *DescribeDataSharesInput, opts ...request.Option) (*DescribeDataSharesOutput, error) {
5690	req, out := c.DescribeDataSharesRequest(input)
5691	req.SetContext(ctx)
5692	req.ApplyOptions(opts...)
5693	return out, req.Send()
5694}
5695
5696const opDescribeDataSharesForConsumer = "DescribeDataSharesForConsumer"
5697
5698// DescribeDataSharesForConsumerRequest generates a "aws/request.Request" representing the
5699// client's request for the DescribeDataSharesForConsumer operation. The "output" return
5700// value will be populated with the request's response once the request completes
5701// successfully.
5702//
5703// Use "Send" method on the returned Request to send the API call to the service.
5704// the "output" return value is not valid until after Send returns without error.
5705//
5706// See DescribeDataSharesForConsumer for more information on using the DescribeDataSharesForConsumer
5707// API call, and error handling.
5708//
5709// This method is useful when you want to inject custom logic or configuration
5710// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5711//
5712//
5713//    // Example sending a request using the DescribeDataSharesForConsumerRequest method.
5714//    req, resp := client.DescribeDataSharesForConsumerRequest(params)
5715//
5716//    err := req.Send()
5717//    if err == nil { // resp is now filled
5718//        fmt.Println(resp)
5719//    }
5720//
5721// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeDataSharesForConsumer
5722func (c *Redshift) DescribeDataSharesForConsumerRequest(input *DescribeDataSharesForConsumerInput) (req *request.Request, output *DescribeDataSharesForConsumerOutput) {
5723	op := &request.Operation{
5724		Name:       opDescribeDataSharesForConsumer,
5725		HTTPMethod: "POST",
5726		HTTPPath:   "/",
5727	}
5728
5729	if input == nil {
5730		input = &DescribeDataSharesForConsumerInput{}
5731	}
5732
5733	output = &DescribeDataSharesForConsumerOutput{}
5734	req = c.newRequest(op, input, output)
5735	return
5736}
5737
5738// DescribeDataSharesForConsumer API operation for Amazon Redshift.
5739//
5740// Returns a list of datashares where the account identifier being called is
5741// a consumer account identifier.
5742//
5743// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5744// with awserr.Error's Code and Message methods to get detailed information about
5745// the error.
5746//
5747// See the AWS API reference guide for Amazon Redshift's
5748// API operation DescribeDataSharesForConsumer for usage and error information.
5749//
5750// Returned Error Codes:
5751//   * ErrCodeInvalidNamespaceFault "InvalidNamespaceFault"
5752//   The namespace isn't valid because the namespace doesn't exist. Provide a
5753//   valid namespace.
5754//
5755// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeDataSharesForConsumer
5756func (c *Redshift) DescribeDataSharesForConsumer(input *DescribeDataSharesForConsumerInput) (*DescribeDataSharesForConsumerOutput, error) {
5757	req, out := c.DescribeDataSharesForConsumerRequest(input)
5758	return out, req.Send()
5759}
5760
5761// DescribeDataSharesForConsumerWithContext is the same as DescribeDataSharesForConsumer with the addition of
5762// the ability to pass a context and additional request options.
5763//
5764// See DescribeDataSharesForConsumer for details on how to use this API operation.
5765//
5766// The context must be non-nil and will be used for request cancellation. If
5767// the context is nil a panic will occur. In the future the SDK may create
5768// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5769// for more information on using Contexts.
5770func (c *Redshift) DescribeDataSharesForConsumerWithContext(ctx aws.Context, input *DescribeDataSharesForConsumerInput, opts ...request.Option) (*DescribeDataSharesForConsumerOutput, error) {
5771	req, out := c.DescribeDataSharesForConsumerRequest(input)
5772	req.SetContext(ctx)
5773	req.ApplyOptions(opts...)
5774	return out, req.Send()
5775}
5776
5777const opDescribeDataSharesForProducer = "DescribeDataSharesForProducer"
5778
5779// DescribeDataSharesForProducerRequest generates a "aws/request.Request" representing the
5780// client's request for the DescribeDataSharesForProducer operation. The "output" return
5781// value will be populated with the request's response once the request completes
5782// successfully.
5783//
5784// Use "Send" method on the returned Request to send the API call to the service.
5785// the "output" return value is not valid until after Send returns without error.
5786//
5787// See DescribeDataSharesForProducer for more information on using the DescribeDataSharesForProducer
5788// API call, and error handling.
5789//
5790// This method is useful when you want to inject custom logic or configuration
5791// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5792//
5793//
5794//    // Example sending a request using the DescribeDataSharesForProducerRequest method.
5795//    req, resp := client.DescribeDataSharesForProducerRequest(params)
5796//
5797//    err := req.Send()
5798//    if err == nil { // resp is now filled
5799//        fmt.Println(resp)
5800//    }
5801//
5802// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeDataSharesForProducer
5803func (c *Redshift) DescribeDataSharesForProducerRequest(input *DescribeDataSharesForProducerInput) (req *request.Request, output *DescribeDataSharesForProducerOutput) {
5804	op := &request.Operation{
5805		Name:       opDescribeDataSharesForProducer,
5806		HTTPMethod: "POST",
5807		HTTPPath:   "/",
5808	}
5809
5810	if input == nil {
5811		input = &DescribeDataSharesForProducerInput{}
5812	}
5813
5814	output = &DescribeDataSharesForProducerOutput{}
5815	req = c.newRequest(op, input, output)
5816	return
5817}
5818
5819// DescribeDataSharesForProducer API operation for Amazon Redshift.
5820//
5821// Returns a list of datashares when the account identifier being called is
5822// a producer account identifier.
5823//
5824// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5825// with awserr.Error's Code and Message methods to get detailed information about
5826// the error.
5827//
5828// See the AWS API reference guide for Amazon Redshift's
5829// API operation DescribeDataSharesForProducer for usage and error information.
5830//
5831// Returned Error Codes:
5832//   * ErrCodeInvalidNamespaceFault "InvalidNamespaceFault"
5833//   The namespace isn't valid because the namespace doesn't exist. Provide a
5834//   valid namespace.
5835//
5836// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeDataSharesForProducer
5837func (c *Redshift) DescribeDataSharesForProducer(input *DescribeDataSharesForProducerInput) (*DescribeDataSharesForProducerOutput, error) {
5838	req, out := c.DescribeDataSharesForProducerRequest(input)
5839	return out, req.Send()
5840}
5841
5842// DescribeDataSharesForProducerWithContext is the same as DescribeDataSharesForProducer with the addition of
5843// the ability to pass a context and additional request options.
5844//
5845// See DescribeDataSharesForProducer for details on how to use this API operation.
5846//
5847// The context must be non-nil and will be used for request cancellation. If
5848// the context is nil a panic will occur. In the future the SDK may create
5849// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5850// for more information on using Contexts.
5851func (c *Redshift) DescribeDataSharesForProducerWithContext(ctx aws.Context, input *DescribeDataSharesForProducerInput, opts ...request.Option) (*DescribeDataSharesForProducerOutput, error) {
5852	req, out := c.DescribeDataSharesForProducerRequest(input)
5853	req.SetContext(ctx)
5854	req.ApplyOptions(opts...)
5855	return out, req.Send()
5856}
5857
5858const opDescribeDefaultClusterParameters = "DescribeDefaultClusterParameters"
5859
5860// DescribeDefaultClusterParametersRequest generates a "aws/request.Request" representing the
5861// client's request for the DescribeDefaultClusterParameters operation. The "output" return
5862// value will be populated with the request's response once the request completes
5863// successfully.
5864//
5865// Use "Send" method on the returned Request to send the API call to the service.
5866// the "output" return value is not valid until after Send returns without error.
5867//
5868// See DescribeDefaultClusterParameters for more information on using the DescribeDefaultClusterParameters
5869// API call, and error handling.
5870//
5871// This method is useful when you want to inject custom logic or configuration
5872// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5873//
5874//
5875//    // Example sending a request using the DescribeDefaultClusterParametersRequest method.
5876//    req, resp := client.DescribeDefaultClusterParametersRequest(params)
5877//
5878//    err := req.Send()
5879//    if err == nil { // resp is now filled
5880//        fmt.Println(resp)
5881//    }
5882//
5883// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeDefaultClusterParameters
5884func (c *Redshift) DescribeDefaultClusterParametersRequest(input *DescribeDefaultClusterParametersInput) (req *request.Request, output *DescribeDefaultClusterParametersOutput) {
5885	op := &request.Operation{
5886		Name:       opDescribeDefaultClusterParameters,
5887		HTTPMethod: "POST",
5888		HTTPPath:   "/",
5889		Paginator: &request.Paginator{
5890			InputTokens:     []string{"Marker"},
5891			OutputTokens:    []string{"DefaultClusterParameters.Marker"},
5892			LimitToken:      "MaxRecords",
5893			TruncationToken: "",
5894		},
5895	}
5896
5897	if input == nil {
5898		input = &DescribeDefaultClusterParametersInput{}
5899	}
5900
5901	output = &DescribeDefaultClusterParametersOutput{}
5902	req = c.newRequest(op, input, output)
5903	return
5904}
5905
5906// DescribeDefaultClusterParameters API operation for Amazon Redshift.
5907//
5908// Returns a list of parameter settings for the specified parameter group family.
5909//
5910// For more information about parameters and parameter groups, go to Amazon
5911// Redshift Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
5912// in the Amazon Redshift Cluster Management Guide.
5913//
5914// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5915// with awserr.Error's Code and Message methods to get detailed information about
5916// the error.
5917//
5918// See the AWS API reference guide for Amazon Redshift's
5919// API operation DescribeDefaultClusterParameters for usage and error information.
5920// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeDefaultClusterParameters
5921func (c *Redshift) DescribeDefaultClusterParameters(input *DescribeDefaultClusterParametersInput) (*DescribeDefaultClusterParametersOutput, error) {
5922	req, out := c.DescribeDefaultClusterParametersRequest(input)
5923	return out, req.Send()
5924}
5925
5926// DescribeDefaultClusterParametersWithContext is the same as DescribeDefaultClusterParameters with the addition of
5927// the ability to pass a context and additional request options.
5928//
5929// See DescribeDefaultClusterParameters for details on how to use this API operation.
5930//
5931// The context must be non-nil and will be used for request cancellation. If
5932// the context is nil a panic will occur. In the future the SDK may create
5933// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5934// for more information on using Contexts.
5935func (c *Redshift) DescribeDefaultClusterParametersWithContext(ctx aws.Context, input *DescribeDefaultClusterParametersInput, opts ...request.Option) (*DescribeDefaultClusterParametersOutput, error) {
5936	req, out := c.DescribeDefaultClusterParametersRequest(input)
5937	req.SetContext(ctx)
5938	req.ApplyOptions(opts...)
5939	return out, req.Send()
5940}
5941
5942// DescribeDefaultClusterParametersPages iterates over the pages of a DescribeDefaultClusterParameters operation,
5943// calling the "fn" function with the response data for each page. To stop
5944// iterating, return false from the fn function.
5945//
5946// See DescribeDefaultClusterParameters method for more information on how to use this operation.
5947//
5948// Note: This operation can generate multiple requests to a service.
5949//
5950//    // Example iterating over at most 3 pages of a DescribeDefaultClusterParameters operation.
5951//    pageNum := 0
5952//    err := client.DescribeDefaultClusterParametersPages(params,
5953//        func(page *redshift.DescribeDefaultClusterParametersOutput, lastPage bool) bool {
5954//            pageNum++
5955//            fmt.Println(page)
5956//            return pageNum <= 3
5957//        })
5958//
5959func (c *Redshift) DescribeDefaultClusterParametersPages(input *DescribeDefaultClusterParametersInput, fn func(*DescribeDefaultClusterParametersOutput, bool) bool) error {
5960	return c.DescribeDefaultClusterParametersPagesWithContext(aws.BackgroundContext(), input, fn)
5961}
5962
5963// DescribeDefaultClusterParametersPagesWithContext same as DescribeDefaultClusterParametersPages except
5964// it takes a Context and allows setting request options on the pages.
5965//
5966// The context must be non-nil and will be used for request cancellation. If
5967// the context is nil a panic will occur. In the future the SDK may create
5968// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5969// for more information on using Contexts.
5970func (c *Redshift) DescribeDefaultClusterParametersPagesWithContext(ctx aws.Context, input *DescribeDefaultClusterParametersInput, fn func(*DescribeDefaultClusterParametersOutput, bool) bool, opts ...request.Option) error {
5971	p := request.Pagination{
5972		NewRequest: func() (*request.Request, error) {
5973			var inCpy *DescribeDefaultClusterParametersInput
5974			if input != nil {
5975				tmp := *input
5976				inCpy = &tmp
5977			}
5978			req, _ := c.DescribeDefaultClusterParametersRequest(inCpy)
5979			req.SetContext(ctx)
5980			req.ApplyOptions(opts...)
5981			return req, nil
5982		},
5983	}
5984
5985	for p.Next() {
5986		if !fn(p.Page().(*DescribeDefaultClusterParametersOutput), !p.HasNextPage()) {
5987			break
5988		}
5989	}
5990
5991	return p.Err()
5992}
5993
5994const opDescribeEndpointAccess = "DescribeEndpointAccess"
5995
5996// DescribeEndpointAccessRequest generates a "aws/request.Request" representing the
5997// client's request for the DescribeEndpointAccess operation. The "output" return
5998// value will be populated with the request's response once the request completes
5999// successfully.
6000//
6001// Use "Send" method on the returned Request to send the API call to the service.
6002// the "output" return value is not valid until after Send returns without error.
6003//
6004// See DescribeEndpointAccess for more information on using the DescribeEndpointAccess
6005// API call, and error handling.
6006//
6007// This method is useful when you want to inject custom logic or configuration
6008// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6009//
6010//
6011//    // Example sending a request using the DescribeEndpointAccessRequest method.
6012//    req, resp := client.DescribeEndpointAccessRequest(params)
6013//
6014//    err := req.Send()
6015//    if err == nil { // resp is now filled
6016//        fmt.Println(resp)
6017//    }
6018//
6019// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEndpointAccess
6020func (c *Redshift) DescribeEndpointAccessRequest(input *DescribeEndpointAccessInput) (req *request.Request, output *DescribeEndpointAccessOutput) {
6021	op := &request.Operation{
6022		Name:       opDescribeEndpointAccess,
6023		HTTPMethod: "POST",
6024		HTTPPath:   "/",
6025		Paginator: &request.Paginator{
6026			InputTokens:     []string{"Marker"},
6027			OutputTokens:    []string{"Marker"},
6028			LimitToken:      "MaxRecords",
6029			TruncationToken: "",
6030		},
6031	}
6032
6033	if input == nil {
6034		input = &DescribeEndpointAccessInput{}
6035	}
6036
6037	output = &DescribeEndpointAccessOutput{}
6038	req = c.newRequest(op, input, output)
6039	return
6040}
6041
6042// DescribeEndpointAccess API operation for Amazon Redshift.
6043//
6044// Describes a Redshift-managed VPC endpoint.
6045//
6046// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6047// with awserr.Error's Code and Message methods to get detailed information about
6048// the error.
6049//
6050// See the AWS API reference guide for Amazon Redshift's
6051// API operation DescribeEndpointAccess for usage and error information.
6052//
6053// Returned Error Codes:
6054//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
6055//   The ClusterIdentifier parameter does not refer to an existing cluster.
6056//
6057//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
6058//   The specified cluster is not in the available state.
6059//
6060//   * ErrCodeEndpointNotFoundFault "EndpointNotFound"
6061//   The endpoint name doesn't refer to an existing endpoint.
6062//
6063// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEndpointAccess
6064func (c *Redshift) DescribeEndpointAccess(input *DescribeEndpointAccessInput) (*DescribeEndpointAccessOutput, error) {
6065	req, out := c.DescribeEndpointAccessRequest(input)
6066	return out, req.Send()
6067}
6068
6069// DescribeEndpointAccessWithContext is the same as DescribeEndpointAccess with the addition of
6070// the ability to pass a context and additional request options.
6071//
6072// See DescribeEndpointAccess for details on how to use this API operation.
6073//
6074// The context must be non-nil and will be used for request cancellation. If
6075// the context is nil a panic will occur. In the future the SDK may create
6076// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6077// for more information on using Contexts.
6078func (c *Redshift) DescribeEndpointAccessWithContext(ctx aws.Context, input *DescribeEndpointAccessInput, opts ...request.Option) (*DescribeEndpointAccessOutput, error) {
6079	req, out := c.DescribeEndpointAccessRequest(input)
6080	req.SetContext(ctx)
6081	req.ApplyOptions(opts...)
6082	return out, req.Send()
6083}
6084
6085// DescribeEndpointAccessPages iterates over the pages of a DescribeEndpointAccess operation,
6086// calling the "fn" function with the response data for each page. To stop
6087// iterating, return false from the fn function.
6088//
6089// See DescribeEndpointAccess method for more information on how to use this operation.
6090//
6091// Note: This operation can generate multiple requests to a service.
6092//
6093//    // Example iterating over at most 3 pages of a DescribeEndpointAccess operation.
6094//    pageNum := 0
6095//    err := client.DescribeEndpointAccessPages(params,
6096//        func(page *redshift.DescribeEndpointAccessOutput, lastPage bool) bool {
6097//            pageNum++
6098//            fmt.Println(page)
6099//            return pageNum <= 3
6100//        })
6101//
6102func (c *Redshift) DescribeEndpointAccessPages(input *DescribeEndpointAccessInput, fn func(*DescribeEndpointAccessOutput, bool) bool) error {
6103	return c.DescribeEndpointAccessPagesWithContext(aws.BackgroundContext(), input, fn)
6104}
6105
6106// DescribeEndpointAccessPagesWithContext same as DescribeEndpointAccessPages except
6107// it takes a Context and allows setting request options on the pages.
6108//
6109// The context must be non-nil and will be used for request cancellation. If
6110// the context is nil a panic will occur. In the future the SDK may create
6111// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6112// for more information on using Contexts.
6113func (c *Redshift) DescribeEndpointAccessPagesWithContext(ctx aws.Context, input *DescribeEndpointAccessInput, fn func(*DescribeEndpointAccessOutput, bool) bool, opts ...request.Option) error {
6114	p := request.Pagination{
6115		NewRequest: func() (*request.Request, error) {
6116			var inCpy *DescribeEndpointAccessInput
6117			if input != nil {
6118				tmp := *input
6119				inCpy = &tmp
6120			}
6121			req, _ := c.DescribeEndpointAccessRequest(inCpy)
6122			req.SetContext(ctx)
6123			req.ApplyOptions(opts...)
6124			return req, nil
6125		},
6126	}
6127
6128	for p.Next() {
6129		if !fn(p.Page().(*DescribeEndpointAccessOutput), !p.HasNextPage()) {
6130			break
6131		}
6132	}
6133
6134	return p.Err()
6135}
6136
6137const opDescribeEndpointAuthorization = "DescribeEndpointAuthorization"
6138
6139// DescribeEndpointAuthorizationRequest generates a "aws/request.Request" representing the
6140// client's request for the DescribeEndpointAuthorization operation. The "output" return
6141// value will be populated with the request's response once the request completes
6142// successfully.
6143//
6144// Use "Send" method on the returned Request to send the API call to the service.
6145// the "output" return value is not valid until after Send returns without error.
6146//
6147// See DescribeEndpointAuthorization for more information on using the DescribeEndpointAuthorization
6148// API call, and error handling.
6149//
6150// This method is useful when you want to inject custom logic or configuration
6151// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6152//
6153//
6154//    // Example sending a request using the DescribeEndpointAuthorizationRequest method.
6155//    req, resp := client.DescribeEndpointAuthorizationRequest(params)
6156//
6157//    err := req.Send()
6158//    if err == nil { // resp is now filled
6159//        fmt.Println(resp)
6160//    }
6161//
6162// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEndpointAuthorization
6163func (c *Redshift) DescribeEndpointAuthorizationRequest(input *DescribeEndpointAuthorizationInput) (req *request.Request, output *DescribeEndpointAuthorizationOutput) {
6164	op := &request.Operation{
6165		Name:       opDescribeEndpointAuthorization,
6166		HTTPMethod: "POST",
6167		HTTPPath:   "/",
6168		Paginator: &request.Paginator{
6169			InputTokens:     []string{"Marker"},
6170			OutputTokens:    []string{"Marker"},
6171			LimitToken:      "MaxRecords",
6172			TruncationToken: "",
6173		},
6174	}
6175
6176	if input == nil {
6177		input = &DescribeEndpointAuthorizationInput{}
6178	}
6179
6180	output = &DescribeEndpointAuthorizationOutput{}
6181	req = c.newRequest(op, input, output)
6182	return
6183}
6184
6185// DescribeEndpointAuthorization API operation for Amazon Redshift.
6186//
6187// Describes an endpoint authorization.
6188//
6189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6190// with awserr.Error's Code and Message methods to get detailed information about
6191// the error.
6192//
6193// See the AWS API reference guide for Amazon Redshift's
6194// API operation DescribeEndpointAuthorization for usage and error information.
6195//
6196// Returned Error Codes:
6197//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
6198//   The ClusterIdentifier parameter does not refer to an existing cluster.
6199//
6200//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
6201//   The requested operation isn't supported.
6202//
6203// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEndpointAuthorization
6204func (c *Redshift) DescribeEndpointAuthorization(input *DescribeEndpointAuthorizationInput) (*DescribeEndpointAuthorizationOutput, error) {
6205	req, out := c.DescribeEndpointAuthorizationRequest(input)
6206	return out, req.Send()
6207}
6208
6209// DescribeEndpointAuthorizationWithContext is the same as DescribeEndpointAuthorization with the addition of
6210// the ability to pass a context and additional request options.
6211//
6212// See DescribeEndpointAuthorization for details on how to use this API operation.
6213//
6214// The context must be non-nil and will be used for request cancellation. If
6215// the context is nil a panic will occur. In the future the SDK may create
6216// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6217// for more information on using Contexts.
6218func (c *Redshift) DescribeEndpointAuthorizationWithContext(ctx aws.Context, input *DescribeEndpointAuthorizationInput, opts ...request.Option) (*DescribeEndpointAuthorizationOutput, error) {
6219	req, out := c.DescribeEndpointAuthorizationRequest(input)
6220	req.SetContext(ctx)
6221	req.ApplyOptions(opts...)
6222	return out, req.Send()
6223}
6224
6225// DescribeEndpointAuthorizationPages iterates over the pages of a DescribeEndpointAuthorization operation,
6226// calling the "fn" function with the response data for each page. To stop
6227// iterating, return false from the fn function.
6228//
6229// See DescribeEndpointAuthorization method for more information on how to use this operation.
6230//
6231// Note: This operation can generate multiple requests to a service.
6232//
6233//    // Example iterating over at most 3 pages of a DescribeEndpointAuthorization operation.
6234//    pageNum := 0
6235//    err := client.DescribeEndpointAuthorizationPages(params,
6236//        func(page *redshift.DescribeEndpointAuthorizationOutput, lastPage bool) bool {
6237//            pageNum++
6238//            fmt.Println(page)
6239//            return pageNum <= 3
6240//        })
6241//
6242func (c *Redshift) DescribeEndpointAuthorizationPages(input *DescribeEndpointAuthorizationInput, fn func(*DescribeEndpointAuthorizationOutput, bool) bool) error {
6243	return c.DescribeEndpointAuthorizationPagesWithContext(aws.BackgroundContext(), input, fn)
6244}
6245
6246// DescribeEndpointAuthorizationPagesWithContext same as DescribeEndpointAuthorizationPages except
6247// it takes a Context and allows setting request options on the pages.
6248//
6249// The context must be non-nil and will be used for request cancellation. If
6250// the context is nil a panic will occur. In the future the SDK may create
6251// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6252// for more information on using Contexts.
6253func (c *Redshift) DescribeEndpointAuthorizationPagesWithContext(ctx aws.Context, input *DescribeEndpointAuthorizationInput, fn func(*DescribeEndpointAuthorizationOutput, bool) bool, opts ...request.Option) error {
6254	p := request.Pagination{
6255		NewRequest: func() (*request.Request, error) {
6256			var inCpy *DescribeEndpointAuthorizationInput
6257			if input != nil {
6258				tmp := *input
6259				inCpy = &tmp
6260			}
6261			req, _ := c.DescribeEndpointAuthorizationRequest(inCpy)
6262			req.SetContext(ctx)
6263			req.ApplyOptions(opts...)
6264			return req, nil
6265		},
6266	}
6267
6268	for p.Next() {
6269		if !fn(p.Page().(*DescribeEndpointAuthorizationOutput), !p.HasNextPage()) {
6270			break
6271		}
6272	}
6273
6274	return p.Err()
6275}
6276
6277const opDescribeEventCategories = "DescribeEventCategories"
6278
6279// DescribeEventCategoriesRequest generates a "aws/request.Request" representing the
6280// client's request for the DescribeEventCategories operation. The "output" return
6281// value will be populated with the request's response once the request completes
6282// successfully.
6283//
6284// Use "Send" method on the returned Request to send the API call to the service.
6285// the "output" return value is not valid until after Send returns without error.
6286//
6287// See DescribeEventCategories for more information on using the DescribeEventCategories
6288// API call, and error handling.
6289//
6290// This method is useful when you want to inject custom logic or configuration
6291// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6292//
6293//
6294//    // Example sending a request using the DescribeEventCategoriesRequest method.
6295//    req, resp := client.DescribeEventCategoriesRequest(params)
6296//
6297//    err := req.Send()
6298//    if err == nil { // resp is now filled
6299//        fmt.Println(resp)
6300//    }
6301//
6302// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEventCategories
6303func (c *Redshift) DescribeEventCategoriesRequest(input *DescribeEventCategoriesInput) (req *request.Request, output *DescribeEventCategoriesOutput) {
6304	op := &request.Operation{
6305		Name:       opDescribeEventCategories,
6306		HTTPMethod: "POST",
6307		HTTPPath:   "/",
6308	}
6309
6310	if input == nil {
6311		input = &DescribeEventCategoriesInput{}
6312	}
6313
6314	output = &DescribeEventCategoriesOutput{}
6315	req = c.newRequest(op, input, output)
6316	return
6317}
6318
6319// DescribeEventCategories API operation for Amazon Redshift.
6320//
6321// Displays a list of event categories for all event source types, or for a
6322// specified source type. For a list of the event categories and source types,
6323// go to Amazon Redshift Event Notifications (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-event-notifications.html).
6324//
6325// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6326// with awserr.Error's Code and Message methods to get detailed information about
6327// the error.
6328//
6329// See the AWS API reference guide for Amazon Redshift's
6330// API operation DescribeEventCategories for usage and error information.
6331// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEventCategories
6332func (c *Redshift) DescribeEventCategories(input *DescribeEventCategoriesInput) (*DescribeEventCategoriesOutput, error) {
6333	req, out := c.DescribeEventCategoriesRequest(input)
6334	return out, req.Send()
6335}
6336
6337// DescribeEventCategoriesWithContext is the same as DescribeEventCategories with the addition of
6338// the ability to pass a context and additional request options.
6339//
6340// See DescribeEventCategories for details on how to use this API operation.
6341//
6342// The context must be non-nil and will be used for request cancellation. If
6343// the context is nil a panic will occur. In the future the SDK may create
6344// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6345// for more information on using Contexts.
6346func (c *Redshift) DescribeEventCategoriesWithContext(ctx aws.Context, input *DescribeEventCategoriesInput, opts ...request.Option) (*DescribeEventCategoriesOutput, error) {
6347	req, out := c.DescribeEventCategoriesRequest(input)
6348	req.SetContext(ctx)
6349	req.ApplyOptions(opts...)
6350	return out, req.Send()
6351}
6352
6353const opDescribeEventSubscriptions = "DescribeEventSubscriptions"
6354
6355// DescribeEventSubscriptionsRequest generates a "aws/request.Request" representing the
6356// client's request for the DescribeEventSubscriptions operation. The "output" return
6357// value will be populated with the request's response once the request completes
6358// successfully.
6359//
6360// Use "Send" method on the returned Request to send the API call to the service.
6361// the "output" return value is not valid until after Send returns without error.
6362//
6363// See DescribeEventSubscriptions for more information on using the DescribeEventSubscriptions
6364// API call, and error handling.
6365//
6366// This method is useful when you want to inject custom logic or configuration
6367// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6368//
6369//
6370//    // Example sending a request using the DescribeEventSubscriptionsRequest method.
6371//    req, resp := client.DescribeEventSubscriptionsRequest(params)
6372//
6373//    err := req.Send()
6374//    if err == nil { // resp is now filled
6375//        fmt.Println(resp)
6376//    }
6377//
6378// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEventSubscriptions
6379func (c *Redshift) DescribeEventSubscriptionsRequest(input *DescribeEventSubscriptionsInput) (req *request.Request, output *DescribeEventSubscriptionsOutput) {
6380	op := &request.Operation{
6381		Name:       opDescribeEventSubscriptions,
6382		HTTPMethod: "POST",
6383		HTTPPath:   "/",
6384		Paginator: &request.Paginator{
6385			InputTokens:     []string{"Marker"},
6386			OutputTokens:    []string{"Marker"},
6387			LimitToken:      "MaxRecords",
6388			TruncationToken: "",
6389		},
6390	}
6391
6392	if input == nil {
6393		input = &DescribeEventSubscriptionsInput{}
6394	}
6395
6396	output = &DescribeEventSubscriptionsOutput{}
6397	req = c.newRequest(op, input, output)
6398	return
6399}
6400
6401// DescribeEventSubscriptions API operation for Amazon Redshift.
6402//
6403// Lists descriptions of all the Amazon Redshift event notification subscriptions
6404// for a customer account. If you specify a subscription name, lists the description
6405// for that subscription.
6406//
6407// If you specify both tag keys and tag values in the same request, Amazon Redshift
6408// returns all event notification subscriptions that match any combination of
6409// the specified keys and values. For example, if you have owner and environment
6410// for tag keys, and admin and test for tag values, all subscriptions that have
6411// any combination of those values are returned.
6412//
6413// If both tag keys and values are omitted from the request, subscriptions are
6414// returned regardless of whether they have tag keys or values associated with
6415// them.
6416//
6417// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6418// with awserr.Error's Code and Message methods to get detailed information about
6419// the error.
6420//
6421// See the AWS API reference guide for Amazon Redshift's
6422// API operation DescribeEventSubscriptions for usage and error information.
6423//
6424// Returned Error Codes:
6425//   * ErrCodeSubscriptionNotFoundFault "SubscriptionNotFound"
6426//   An Amazon Redshift event notification subscription with the specified name
6427//   does not exist.
6428//
6429//   * ErrCodeInvalidTagFault "InvalidTagFault"
6430//   The tag is invalid.
6431//
6432// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEventSubscriptions
6433func (c *Redshift) DescribeEventSubscriptions(input *DescribeEventSubscriptionsInput) (*DescribeEventSubscriptionsOutput, error) {
6434	req, out := c.DescribeEventSubscriptionsRequest(input)
6435	return out, req.Send()
6436}
6437
6438// DescribeEventSubscriptionsWithContext is the same as DescribeEventSubscriptions with the addition of
6439// the ability to pass a context and additional request options.
6440//
6441// See DescribeEventSubscriptions for details on how to use this API operation.
6442//
6443// The context must be non-nil and will be used for request cancellation. If
6444// the context is nil a panic will occur. In the future the SDK may create
6445// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6446// for more information on using Contexts.
6447func (c *Redshift) DescribeEventSubscriptionsWithContext(ctx aws.Context, input *DescribeEventSubscriptionsInput, opts ...request.Option) (*DescribeEventSubscriptionsOutput, error) {
6448	req, out := c.DescribeEventSubscriptionsRequest(input)
6449	req.SetContext(ctx)
6450	req.ApplyOptions(opts...)
6451	return out, req.Send()
6452}
6453
6454// DescribeEventSubscriptionsPages iterates over the pages of a DescribeEventSubscriptions operation,
6455// calling the "fn" function with the response data for each page. To stop
6456// iterating, return false from the fn function.
6457//
6458// See DescribeEventSubscriptions method for more information on how to use this operation.
6459//
6460// Note: This operation can generate multiple requests to a service.
6461//
6462//    // Example iterating over at most 3 pages of a DescribeEventSubscriptions operation.
6463//    pageNum := 0
6464//    err := client.DescribeEventSubscriptionsPages(params,
6465//        func(page *redshift.DescribeEventSubscriptionsOutput, lastPage bool) bool {
6466//            pageNum++
6467//            fmt.Println(page)
6468//            return pageNum <= 3
6469//        })
6470//
6471func (c *Redshift) DescribeEventSubscriptionsPages(input *DescribeEventSubscriptionsInput, fn func(*DescribeEventSubscriptionsOutput, bool) bool) error {
6472	return c.DescribeEventSubscriptionsPagesWithContext(aws.BackgroundContext(), input, fn)
6473}
6474
6475// DescribeEventSubscriptionsPagesWithContext same as DescribeEventSubscriptionsPages except
6476// it takes a Context and allows setting request options on the pages.
6477//
6478// The context must be non-nil and will be used for request cancellation. If
6479// the context is nil a panic will occur. In the future the SDK may create
6480// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6481// for more information on using Contexts.
6482func (c *Redshift) DescribeEventSubscriptionsPagesWithContext(ctx aws.Context, input *DescribeEventSubscriptionsInput, fn func(*DescribeEventSubscriptionsOutput, bool) bool, opts ...request.Option) error {
6483	p := request.Pagination{
6484		NewRequest: func() (*request.Request, error) {
6485			var inCpy *DescribeEventSubscriptionsInput
6486			if input != nil {
6487				tmp := *input
6488				inCpy = &tmp
6489			}
6490			req, _ := c.DescribeEventSubscriptionsRequest(inCpy)
6491			req.SetContext(ctx)
6492			req.ApplyOptions(opts...)
6493			return req, nil
6494		},
6495	}
6496
6497	for p.Next() {
6498		if !fn(p.Page().(*DescribeEventSubscriptionsOutput), !p.HasNextPage()) {
6499			break
6500		}
6501	}
6502
6503	return p.Err()
6504}
6505
6506const opDescribeEvents = "DescribeEvents"
6507
6508// DescribeEventsRequest generates a "aws/request.Request" representing the
6509// client's request for the DescribeEvents operation. The "output" return
6510// value will be populated with the request's response once the request completes
6511// successfully.
6512//
6513// Use "Send" method on the returned Request to send the API call to the service.
6514// the "output" return value is not valid until after Send returns without error.
6515//
6516// See DescribeEvents for more information on using the DescribeEvents
6517// API call, and error handling.
6518//
6519// This method is useful when you want to inject custom logic or configuration
6520// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6521//
6522//
6523//    // Example sending a request using the DescribeEventsRequest method.
6524//    req, resp := client.DescribeEventsRequest(params)
6525//
6526//    err := req.Send()
6527//    if err == nil { // resp is now filled
6528//        fmt.Println(resp)
6529//    }
6530//
6531// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEvents
6532func (c *Redshift) DescribeEventsRequest(input *DescribeEventsInput) (req *request.Request, output *DescribeEventsOutput) {
6533	op := &request.Operation{
6534		Name:       opDescribeEvents,
6535		HTTPMethod: "POST",
6536		HTTPPath:   "/",
6537		Paginator: &request.Paginator{
6538			InputTokens:     []string{"Marker"},
6539			OutputTokens:    []string{"Marker"},
6540			LimitToken:      "MaxRecords",
6541			TruncationToken: "",
6542		},
6543	}
6544
6545	if input == nil {
6546		input = &DescribeEventsInput{}
6547	}
6548
6549	output = &DescribeEventsOutput{}
6550	req = c.newRequest(op, input, output)
6551	return
6552}
6553
6554// DescribeEvents API operation for Amazon Redshift.
6555//
6556// Returns events related to clusters, security groups, snapshots, and parameter
6557// groups for the past 14 days. Events specific to a particular cluster, security
6558// group, snapshot or parameter group can be obtained by providing the name
6559// as a parameter. By default, the past hour of events are returned.
6560//
6561// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6562// with awserr.Error's Code and Message methods to get detailed information about
6563// the error.
6564//
6565// See the AWS API reference guide for Amazon Redshift's
6566// API operation DescribeEvents for usage and error information.
6567// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEvents
6568func (c *Redshift) DescribeEvents(input *DescribeEventsInput) (*DescribeEventsOutput, error) {
6569	req, out := c.DescribeEventsRequest(input)
6570	return out, req.Send()
6571}
6572
6573// DescribeEventsWithContext is the same as DescribeEvents with the addition of
6574// the ability to pass a context and additional request options.
6575//
6576// See DescribeEvents for details on how to use this API operation.
6577//
6578// The context must be non-nil and will be used for request cancellation. If
6579// the context is nil a panic will occur. In the future the SDK may create
6580// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6581// for more information on using Contexts.
6582func (c *Redshift) DescribeEventsWithContext(ctx aws.Context, input *DescribeEventsInput, opts ...request.Option) (*DescribeEventsOutput, error) {
6583	req, out := c.DescribeEventsRequest(input)
6584	req.SetContext(ctx)
6585	req.ApplyOptions(opts...)
6586	return out, req.Send()
6587}
6588
6589// DescribeEventsPages iterates over the pages of a DescribeEvents operation,
6590// calling the "fn" function with the response data for each page. To stop
6591// iterating, return false from the fn function.
6592//
6593// See DescribeEvents method for more information on how to use this operation.
6594//
6595// Note: This operation can generate multiple requests to a service.
6596//
6597//    // Example iterating over at most 3 pages of a DescribeEvents operation.
6598//    pageNum := 0
6599//    err := client.DescribeEventsPages(params,
6600//        func(page *redshift.DescribeEventsOutput, lastPage bool) bool {
6601//            pageNum++
6602//            fmt.Println(page)
6603//            return pageNum <= 3
6604//        })
6605//
6606func (c *Redshift) DescribeEventsPages(input *DescribeEventsInput, fn func(*DescribeEventsOutput, bool) bool) error {
6607	return c.DescribeEventsPagesWithContext(aws.BackgroundContext(), input, fn)
6608}
6609
6610// DescribeEventsPagesWithContext same as DescribeEventsPages except
6611// it takes a Context and allows setting request options on the pages.
6612//
6613// The context must be non-nil and will be used for request cancellation. If
6614// the context is nil a panic will occur. In the future the SDK may create
6615// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6616// for more information on using Contexts.
6617func (c *Redshift) DescribeEventsPagesWithContext(ctx aws.Context, input *DescribeEventsInput, fn func(*DescribeEventsOutput, bool) bool, opts ...request.Option) error {
6618	p := request.Pagination{
6619		NewRequest: func() (*request.Request, error) {
6620			var inCpy *DescribeEventsInput
6621			if input != nil {
6622				tmp := *input
6623				inCpy = &tmp
6624			}
6625			req, _ := c.DescribeEventsRequest(inCpy)
6626			req.SetContext(ctx)
6627			req.ApplyOptions(opts...)
6628			return req, nil
6629		},
6630	}
6631
6632	for p.Next() {
6633		if !fn(p.Page().(*DescribeEventsOutput), !p.HasNextPage()) {
6634			break
6635		}
6636	}
6637
6638	return p.Err()
6639}
6640
6641const opDescribeHsmClientCertificates = "DescribeHsmClientCertificates"
6642
6643// DescribeHsmClientCertificatesRequest generates a "aws/request.Request" representing the
6644// client's request for the DescribeHsmClientCertificates operation. The "output" return
6645// value will be populated with the request's response once the request completes
6646// successfully.
6647//
6648// Use "Send" method on the returned Request to send the API call to the service.
6649// the "output" return value is not valid until after Send returns without error.
6650//
6651// See DescribeHsmClientCertificates for more information on using the DescribeHsmClientCertificates
6652// API call, and error handling.
6653//
6654// This method is useful when you want to inject custom logic or configuration
6655// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6656//
6657//
6658//    // Example sending a request using the DescribeHsmClientCertificatesRequest method.
6659//    req, resp := client.DescribeHsmClientCertificatesRequest(params)
6660//
6661//    err := req.Send()
6662//    if err == nil { // resp is now filled
6663//        fmt.Println(resp)
6664//    }
6665//
6666// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeHsmClientCertificates
6667func (c *Redshift) DescribeHsmClientCertificatesRequest(input *DescribeHsmClientCertificatesInput) (req *request.Request, output *DescribeHsmClientCertificatesOutput) {
6668	op := &request.Operation{
6669		Name:       opDescribeHsmClientCertificates,
6670		HTTPMethod: "POST",
6671		HTTPPath:   "/",
6672		Paginator: &request.Paginator{
6673			InputTokens:     []string{"Marker"},
6674			OutputTokens:    []string{"Marker"},
6675			LimitToken:      "MaxRecords",
6676			TruncationToken: "",
6677		},
6678	}
6679
6680	if input == nil {
6681		input = &DescribeHsmClientCertificatesInput{}
6682	}
6683
6684	output = &DescribeHsmClientCertificatesOutput{}
6685	req = c.newRequest(op, input, output)
6686	return
6687}
6688
6689// DescribeHsmClientCertificates API operation for Amazon Redshift.
6690//
6691// Returns information about the specified HSM client certificate. If no certificate
6692// ID is specified, returns information about all the HSM certificates owned
6693// by your Amazon Web Services account.
6694//
6695// If you specify both tag keys and tag values in the same request, Amazon Redshift
6696// returns all HSM client certificates that match any combination of the specified
6697// keys and values. For example, if you have owner and environment for tag keys,
6698// and admin and test for tag values, all HSM client certificates that have
6699// any combination of those values are returned.
6700//
6701// If both tag keys and values are omitted from the request, HSM client certificates
6702// are returned regardless of whether they have tag keys or values associated
6703// with them.
6704//
6705// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6706// with awserr.Error's Code and Message methods to get detailed information about
6707// the error.
6708//
6709// See the AWS API reference guide for Amazon Redshift's
6710// API operation DescribeHsmClientCertificates for usage and error information.
6711//
6712// Returned Error Codes:
6713//   * ErrCodeHsmClientCertificateNotFoundFault "HsmClientCertificateNotFoundFault"
6714//   There is no Amazon Redshift HSM client certificate with the specified identifier.
6715//
6716//   * ErrCodeInvalidTagFault "InvalidTagFault"
6717//   The tag is invalid.
6718//
6719// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeHsmClientCertificates
6720func (c *Redshift) DescribeHsmClientCertificates(input *DescribeHsmClientCertificatesInput) (*DescribeHsmClientCertificatesOutput, error) {
6721	req, out := c.DescribeHsmClientCertificatesRequest(input)
6722	return out, req.Send()
6723}
6724
6725// DescribeHsmClientCertificatesWithContext is the same as DescribeHsmClientCertificates with the addition of
6726// the ability to pass a context and additional request options.
6727//
6728// See DescribeHsmClientCertificates for details on how to use this API operation.
6729//
6730// The context must be non-nil and will be used for request cancellation. If
6731// the context is nil a panic will occur. In the future the SDK may create
6732// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6733// for more information on using Contexts.
6734func (c *Redshift) DescribeHsmClientCertificatesWithContext(ctx aws.Context, input *DescribeHsmClientCertificatesInput, opts ...request.Option) (*DescribeHsmClientCertificatesOutput, error) {
6735	req, out := c.DescribeHsmClientCertificatesRequest(input)
6736	req.SetContext(ctx)
6737	req.ApplyOptions(opts...)
6738	return out, req.Send()
6739}
6740
6741// DescribeHsmClientCertificatesPages iterates over the pages of a DescribeHsmClientCertificates operation,
6742// calling the "fn" function with the response data for each page. To stop
6743// iterating, return false from the fn function.
6744//
6745// See DescribeHsmClientCertificates method for more information on how to use this operation.
6746//
6747// Note: This operation can generate multiple requests to a service.
6748//
6749//    // Example iterating over at most 3 pages of a DescribeHsmClientCertificates operation.
6750//    pageNum := 0
6751//    err := client.DescribeHsmClientCertificatesPages(params,
6752//        func(page *redshift.DescribeHsmClientCertificatesOutput, lastPage bool) bool {
6753//            pageNum++
6754//            fmt.Println(page)
6755//            return pageNum <= 3
6756//        })
6757//
6758func (c *Redshift) DescribeHsmClientCertificatesPages(input *DescribeHsmClientCertificatesInput, fn func(*DescribeHsmClientCertificatesOutput, bool) bool) error {
6759	return c.DescribeHsmClientCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
6760}
6761
6762// DescribeHsmClientCertificatesPagesWithContext same as DescribeHsmClientCertificatesPages except
6763// it takes a Context and allows setting request options on the pages.
6764//
6765// The context must be non-nil and will be used for request cancellation. If
6766// the context is nil a panic will occur. In the future the SDK may create
6767// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6768// for more information on using Contexts.
6769func (c *Redshift) DescribeHsmClientCertificatesPagesWithContext(ctx aws.Context, input *DescribeHsmClientCertificatesInput, fn func(*DescribeHsmClientCertificatesOutput, bool) bool, opts ...request.Option) error {
6770	p := request.Pagination{
6771		NewRequest: func() (*request.Request, error) {
6772			var inCpy *DescribeHsmClientCertificatesInput
6773			if input != nil {
6774				tmp := *input
6775				inCpy = &tmp
6776			}
6777			req, _ := c.DescribeHsmClientCertificatesRequest(inCpy)
6778			req.SetContext(ctx)
6779			req.ApplyOptions(opts...)
6780			return req, nil
6781		},
6782	}
6783
6784	for p.Next() {
6785		if !fn(p.Page().(*DescribeHsmClientCertificatesOutput), !p.HasNextPage()) {
6786			break
6787		}
6788	}
6789
6790	return p.Err()
6791}
6792
6793const opDescribeHsmConfigurations = "DescribeHsmConfigurations"
6794
6795// DescribeHsmConfigurationsRequest generates a "aws/request.Request" representing the
6796// client's request for the DescribeHsmConfigurations operation. The "output" return
6797// value will be populated with the request's response once the request completes
6798// successfully.
6799//
6800// Use "Send" method on the returned Request to send the API call to the service.
6801// the "output" return value is not valid until after Send returns without error.
6802//
6803// See DescribeHsmConfigurations for more information on using the DescribeHsmConfigurations
6804// API call, and error handling.
6805//
6806// This method is useful when you want to inject custom logic or configuration
6807// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6808//
6809//
6810//    // Example sending a request using the DescribeHsmConfigurationsRequest method.
6811//    req, resp := client.DescribeHsmConfigurationsRequest(params)
6812//
6813//    err := req.Send()
6814//    if err == nil { // resp is now filled
6815//        fmt.Println(resp)
6816//    }
6817//
6818// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeHsmConfigurations
6819func (c *Redshift) DescribeHsmConfigurationsRequest(input *DescribeHsmConfigurationsInput) (req *request.Request, output *DescribeHsmConfigurationsOutput) {
6820	op := &request.Operation{
6821		Name:       opDescribeHsmConfigurations,
6822		HTTPMethod: "POST",
6823		HTTPPath:   "/",
6824		Paginator: &request.Paginator{
6825			InputTokens:     []string{"Marker"},
6826			OutputTokens:    []string{"Marker"},
6827			LimitToken:      "MaxRecords",
6828			TruncationToken: "",
6829		},
6830	}
6831
6832	if input == nil {
6833		input = &DescribeHsmConfigurationsInput{}
6834	}
6835
6836	output = &DescribeHsmConfigurationsOutput{}
6837	req = c.newRequest(op, input, output)
6838	return
6839}
6840
6841// DescribeHsmConfigurations API operation for Amazon Redshift.
6842//
6843// Returns information about the specified Amazon Redshift HSM configuration.
6844// If no configuration ID is specified, returns information about all the HSM
6845// configurations owned by your Amazon Web Services account.
6846//
6847// If you specify both tag keys and tag values in the same request, Amazon Redshift
6848// returns all HSM connections that match any combination of the specified keys
6849// and values. For example, if you have owner and environment for tag keys,
6850// and admin and test for tag values, all HSM connections that have any combination
6851// of those values are returned.
6852//
6853// If both tag keys and values are omitted from the request, HSM connections
6854// are returned regardless of whether they have tag keys or values associated
6855// with them.
6856//
6857// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6858// with awserr.Error's Code and Message methods to get detailed information about
6859// the error.
6860//
6861// See the AWS API reference guide for Amazon Redshift's
6862// API operation DescribeHsmConfigurations for usage and error information.
6863//
6864// Returned Error Codes:
6865//   * ErrCodeHsmConfigurationNotFoundFault "HsmConfigurationNotFoundFault"
6866//   There is no Amazon Redshift HSM configuration with the specified identifier.
6867//
6868//   * ErrCodeInvalidTagFault "InvalidTagFault"
6869//   The tag is invalid.
6870//
6871// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeHsmConfigurations
6872func (c *Redshift) DescribeHsmConfigurations(input *DescribeHsmConfigurationsInput) (*DescribeHsmConfigurationsOutput, error) {
6873	req, out := c.DescribeHsmConfigurationsRequest(input)
6874	return out, req.Send()
6875}
6876
6877// DescribeHsmConfigurationsWithContext is the same as DescribeHsmConfigurations with the addition of
6878// the ability to pass a context and additional request options.
6879//
6880// See DescribeHsmConfigurations for details on how to use this API operation.
6881//
6882// The context must be non-nil and will be used for request cancellation. If
6883// the context is nil a panic will occur. In the future the SDK may create
6884// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6885// for more information on using Contexts.
6886func (c *Redshift) DescribeHsmConfigurationsWithContext(ctx aws.Context, input *DescribeHsmConfigurationsInput, opts ...request.Option) (*DescribeHsmConfigurationsOutput, error) {
6887	req, out := c.DescribeHsmConfigurationsRequest(input)
6888	req.SetContext(ctx)
6889	req.ApplyOptions(opts...)
6890	return out, req.Send()
6891}
6892
6893// DescribeHsmConfigurationsPages iterates over the pages of a DescribeHsmConfigurations operation,
6894// calling the "fn" function with the response data for each page. To stop
6895// iterating, return false from the fn function.
6896//
6897// See DescribeHsmConfigurations method for more information on how to use this operation.
6898//
6899// Note: This operation can generate multiple requests to a service.
6900//
6901//    // Example iterating over at most 3 pages of a DescribeHsmConfigurations operation.
6902//    pageNum := 0
6903//    err := client.DescribeHsmConfigurationsPages(params,
6904//        func(page *redshift.DescribeHsmConfigurationsOutput, lastPage bool) bool {
6905//            pageNum++
6906//            fmt.Println(page)
6907//            return pageNum <= 3
6908//        })
6909//
6910func (c *Redshift) DescribeHsmConfigurationsPages(input *DescribeHsmConfigurationsInput, fn func(*DescribeHsmConfigurationsOutput, bool) bool) error {
6911	return c.DescribeHsmConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
6912}
6913
6914// DescribeHsmConfigurationsPagesWithContext same as DescribeHsmConfigurationsPages except
6915// it takes a Context and allows setting request options on the pages.
6916//
6917// The context must be non-nil and will be used for request cancellation. If
6918// the context is nil a panic will occur. In the future the SDK may create
6919// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6920// for more information on using Contexts.
6921func (c *Redshift) DescribeHsmConfigurationsPagesWithContext(ctx aws.Context, input *DescribeHsmConfigurationsInput, fn func(*DescribeHsmConfigurationsOutput, bool) bool, opts ...request.Option) error {
6922	p := request.Pagination{
6923		NewRequest: func() (*request.Request, error) {
6924			var inCpy *DescribeHsmConfigurationsInput
6925			if input != nil {
6926				tmp := *input
6927				inCpy = &tmp
6928			}
6929			req, _ := c.DescribeHsmConfigurationsRequest(inCpy)
6930			req.SetContext(ctx)
6931			req.ApplyOptions(opts...)
6932			return req, nil
6933		},
6934	}
6935
6936	for p.Next() {
6937		if !fn(p.Page().(*DescribeHsmConfigurationsOutput), !p.HasNextPage()) {
6938			break
6939		}
6940	}
6941
6942	return p.Err()
6943}
6944
6945const opDescribeLoggingStatus = "DescribeLoggingStatus"
6946
6947// DescribeLoggingStatusRequest generates a "aws/request.Request" representing the
6948// client's request for the DescribeLoggingStatus operation. The "output" return
6949// value will be populated with the request's response once the request completes
6950// successfully.
6951//
6952// Use "Send" method on the returned Request to send the API call to the service.
6953// the "output" return value is not valid until after Send returns without error.
6954//
6955// See DescribeLoggingStatus for more information on using the DescribeLoggingStatus
6956// API call, and error handling.
6957//
6958// This method is useful when you want to inject custom logic or configuration
6959// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6960//
6961//
6962//    // Example sending a request using the DescribeLoggingStatusRequest method.
6963//    req, resp := client.DescribeLoggingStatusRequest(params)
6964//
6965//    err := req.Send()
6966//    if err == nil { // resp is now filled
6967//        fmt.Println(resp)
6968//    }
6969//
6970// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeLoggingStatus
6971func (c *Redshift) DescribeLoggingStatusRequest(input *DescribeLoggingStatusInput) (req *request.Request, output *LoggingStatus) {
6972	op := &request.Operation{
6973		Name:       opDescribeLoggingStatus,
6974		HTTPMethod: "POST",
6975		HTTPPath:   "/",
6976	}
6977
6978	if input == nil {
6979		input = &DescribeLoggingStatusInput{}
6980	}
6981
6982	output = &LoggingStatus{}
6983	req = c.newRequest(op, input, output)
6984	return
6985}
6986
6987// DescribeLoggingStatus API operation for Amazon Redshift.
6988//
6989// Describes whether information, such as queries and connection attempts, is
6990// being logged for the specified Amazon Redshift cluster.
6991//
6992// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6993// with awserr.Error's Code and Message methods to get detailed information about
6994// the error.
6995//
6996// See the AWS API reference guide for Amazon Redshift's
6997// API operation DescribeLoggingStatus for usage and error information.
6998//
6999// Returned Error Codes:
7000//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
7001//   The ClusterIdentifier parameter does not refer to an existing cluster.
7002//
7003// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeLoggingStatus
7004func (c *Redshift) DescribeLoggingStatus(input *DescribeLoggingStatusInput) (*LoggingStatus, error) {
7005	req, out := c.DescribeLoggingStatusRequest(input)
7006	return out, req.Send()
7007}
7008
7009// DescribeLoggingStatusWithContext is the same as DescribeLoggingStatus with the addition of
7010// the ability to pass a context and additional request options.
7011//
7012// See DescribeLoggingStatus for details on how to use this API operation.
7013//
7014// The context must be non-nil and will be used for request cancellation. If
7015// the context is nil a panic will occur. In the future the SDK may create
7016// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7017// for more information on using Contexts.
7018func (c *Redshift) DescribeLoggingStatusWithContext(ctx aws.Context, input *DescribeLoggingStatusInput, opts ...request.Option) (*LoggingStatus, error) {
7019	req, out := c.DescribeLoggingStatusRequest(input)
7020	req.SetContext(ctx)
7021	req.ApplyOptions(opts...)
7022	return out, req.Send()
7023}
7024
7025const opDescribeNodeConfigurationOptions = "DescribeNodeConfigurationOptions"
7026
7027// DescribeNodeConfigurationOptionsRequest generates a "aws/request.Request" representing the
7028// client's request for the DescribeNodeConfigurationOptions operation. The "output" return
7029// value will be populated with the request's response once the request completes
7030// successfully.
7031//
7032// Use "Send" method on the returned Request to send the API call to the service.
7033// the "output" return value is not valid until after Send returns without error.
7034//
7035// See DescribeNodeConfigurationOptions for more information on using the DescribeNodeConfigurationOptions
7036// API call, and error handling.
7037//
7038// This method is useful when you want to inject custom logic or configuration
7039// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7040//
7041//
7042//    // Example sending a request using the DescribeNodeConfigurationOptionsRequest method.
7043//    req, resp := client.DescribeNodeConfigurationOptionsRequest(params)
7044//
7045//    err := req.Send()
7046//    if err == nil { // resp is now filled
7047//        fmt.Println(resp)
7048//    }
7049//
7050// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeNodeConfigurationOptions
7051func (c *Redshift) DescribeNodeConfigurationOptionsRequest(input *DescribeNodeConfigurationOptionsInput) (req *request.Request, output *DescribeNodeConfigurationOptionsOutput) {
7052	op := &request.Operation{
7053		Name:       opDescribeNodeConfigurationOptions,
7054		HTTPMethod: "POST",
7055		HTTPPath:   "/",
7056		Paginator: &request.Paginator{
7057			InputTokens:     []string{"Marker"},
7058			OutputTokens:    []string{"Marker"},
7059			LimitToken:      "MaxRecords",
7060			TruncationToken: "",
7061		},
7062	}
7063
7064	if input == nil {
7065		input = &DescribeNodeConfigurationOptionsInput{}
7066	}
7067
7068	output = &DescribeNodeConfigurationOptionsOutput{}
7069	req = c.newRequest(op, input, output)
7070	return
7071}
7072
7073// DescribeNodeConfigurationOptions API operation for Amazon Redshift.
7074//
7075// Returns properties of possible node configurations such as node type, number
7076// of nodes, and disk usage for the specified action type.
7077//
7078// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7079// with awserr.Error's Code and Message methods to get detailed information about
7080// the error.
7081//
7082// See the AWS API reference guide for Amazon Redshift's
7083// API operation DescribeNodeConfigurationOptions for usage and error information.
7084//
7085// Returned Error Codes:
7086//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
7087//   The snapshot identifier does not refer to an existing cluster snapshot.
7088//
7089//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
7090//   The specified cluster snapshot is not in the available state, or other accounts
7091//   are authorized to access the snapshot.
7092//
7093//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
7094//   The ClusterIdentifier parameter does not refer to an existing cluster.
7095//
7096//   * ErrCodeAccessToSnapshotDeniedFault "AccessToSnapshotDenied"
7097//   The owner of the specified snapshot has not authorized your account to access
7098//   the snapshot.
7099//
7100// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeNodeConfigurationOptions
7101func (c *Redshift) DescribeNodeConfigurationOptions(input *DescribeNodeConfigurationOptionsInput) (*DescribeNodeConfigurationOptionsOutput, error) {
7102	req, out := c.DescribeNodeConfigurationOptionsRequest(input)
7103	return out, req.Send()
7104}
7105
7106// DescribeNodeConfigurationOptionsWithContext is the same as DescribeNodeConfigurationOptions with the addition of
7107// the ability to pass a context and additional request options.
7108//
7109// See DescribeNodeConfigurationOptions for details on how to use this API operation.
7110//
7111// The context must be non-nil and will be used for request cancellation. If
7112// the context is nil a panic will occur. In the future the SDK may create
7113// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7114// for more information on using Contexts.
7115func (c *Redshift) DescribeNodeConfigurationOptionsWithContext(ctx aws.Context, input *DescribeNodeConfigurationOptionsInput, opts ...request.Option) (*DescribeNodeConfigurationOptionsOutput, error) {
7116	req, out := c.DescribeNodeConfigurationOptionsRequest(input)
7117	req.SetContext(ctx)
7118	req.ApplyOptions(opts...)
7119	return out, req.Send()
7120}
7121
7122// DescribeNodeConfigurationOptionsPages iterates over the pages of a DescribeNodeConfigurationOptions operation,
7123// calling the "fn" function with the response data for each page. To stop
7124// iterating, return false from the fn function.
7125//
7126// See DescribeNodeConfigurationOptions method for more information on how to use this operation.
7127//
7128// Note: This operation can generate multiple requests to a service.
7129//
7130//    // Example iterating over at most 3 pages of a DescribeNodeConfigurationOptions operation.
7131//    pageNum := 0
7132//    err := client.DescribeNodeConfigurationOptionsPages(params,
7133//        func(page *redshift.DescribeNodeConfigurationOptionsOutput, lastPage bool) bool {
7134//            pageNum++
7135//            fmt.Println(page)
7136//            return pageNum <= 3
7137//        })
7138//
7139func (c *Redshift) DescribeNodeConfigurationOptionsPages(input *DescribeNodeConfigurationOptionsInput, fn func(*DescribeNodeConfigurationOptionsOutput, bool) bool) error {
7140	return c.DescribeNodeConfigurationOptionsPagesWithContext(aws.BackgroundContext(), input, fn)
7141}
7142
7143// DescribeNodeConfigurationOptionsPagesWithContext same as DescribeNodeConfigurationOptionsPages except
7144// it takes a Context and allows setting request options on the pages.
7145//
7146// The context must be non-nil and will be used for request cancellation. If
7147// the context is nil a panic will occur. In the future the SDK may create
7148// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7149// for more information on using Contexts.
7150func (c *Redshift) DescribeNodeConfigurationOptionsPagesWithContext(ctx aws.Context, input *DescribeNodeConfigurationOptionsInput, fn func(*DescribeNodeConfigurationOptionsOutput, bool) bool, opts ...request.Option) error {
7151	p := request.Pagination{
7152		NewRequest: func() (*request.Request, error) {
7153			var inCpy *DescribeNodeConfigurationOptionsInput
7154			if input != nil {
7155				tmp := *input
7156				inCpy = &tmp
7157			}
7158			req, _ := c.DescribeNodeConfigurationOptionsRequest(inCpy)
7159			req.SetContext(ctx)
7160			req.ApplyOptions(opts...)
7161			return req, nil
7162		},
7163	}
7164
7165	for p.Next() {
7166		if !fn(p.Page().(*DescribeNodeConfigurationOptionsOutput), !p.HasNextPage()) {
7167			break
7168		}
7169	}
7170
7171	return p.Err()
7172}
7173
7174const opDescribeOrderableClusterOptions = "DescribeOrderableClusterOptions"
7175
7176// DescribeOrderableClusterOptionsRequest generates a "aws/request.Request" representing the
7177// client's request for the DescribeOrderableClusterOptions operation. The "output" return
7178// value will be populated with the request's response once the request completes
7179// successfully.
7180//
7181// Use "Send" method on the returned Request to send the API call to the service.
7182// the "output" return value is not valid until after Send returns without error.
7183//
7184// See DescribeOrderableClusterOptions for more information on using the DescribeOrderableClusterOptions
7185// API call, and error handling.
7186//
7187// This method is useful when you want to inject custom logic or configuration
7188// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7189//
7190//
7191//    // Example sending a request using the DescribeOrderableClusterOptionsRequest method.
7192//    req, resp := client.DescribeOrderableClusterOptionsRequest(params)
7193//
7194//    err := req.Send()
7195//    if err == nil { // resp is now filled
7196//        fmt.Println(resp)
7197//    }
7198//
7199// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeOrderableClusterOptions
7200func (c *Redshift) DescribeOrderableClusterOptionsRequest(input *DescribeOrderableClusterOptionsInput) (req *request.Request, output *DescribeOrderableClusterOptionsOutput) {
7201	op := &request.Operation{
7202		Name:       opDescribeOrderableClusterOptions,
7203		HTTPMethod: "POST",
7204		HTTPPath:   "/",
7205		Paginator: &request.Paginator{
7206			InputTokens:     []string{"Marker"},
7207			OutputTokens:    []string{"Marker"},
7208			LimitToken:      "MaxRecords",
7209			TruncationToken: "",
7210		},
7211	}
7212
7213	if input == nil {
7214		input = &DescribeOrderableClusterOptionsInput{}
7215	}
7216
7217	output = &DescribeOrderableClusterOptionsOutput{}
7218	req = c.newRequest(op, input, output)
7219	return
7220}
7221
7222// DescribeOrderableClusterOptions API operation for Amazon Redshift.
7223//
7224// Returns a list of orderable cluster options. Before you create a new cluster
7225// you can use this operation to find what options are available, such as the
7226// EC2 Availability Zones (AZ) in the specific Amazon Web Services Region that
7227// you can specify, and the node types you can request. The node types differ
7228// by available storage, memory, CPU and price. With the cost involved you might
7229// want to obtain a list of cluster options in the specific region and specify
7230// values when creating a cluster. For more information about managing clusters,
7231// go to Amazon Redshift Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
7232// in the Amazon Redshift Cluster Management Guide.
7233//
7234// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7235// with awserr.Error's Code and Message methods to get detailed information about
7236// the error.
7237//
7238// See the AWS API reference guide for Amazon Redshift's
7239// API operation DescribeOrderableClusterOptions for usage and error information.
7240// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeOrderableClusterOptions
7241func (c *Redshift) DescribeOrderableClusterOptions(input *DescribeOrderableClusterOptionsInput) (*DescribeOrderableClusterOptionsOutput, error) {
7242	req, out := c.DescribeOrderableClusterOptionsRequest(input)
7243	return out, req.Send()
7244}
7245
7246// DescribeOrderableClusterOptionsWithContext is the same as DescribeOrderableClusterOptions with the addition of
7247// the ability to pass a context and additional request options.
7248//
7249// See DescribeOrderableClusterOptions for details on how to use this API operation.
7250//
7251// The context must be non-nil and will be used for request cancellation. If
7252// the context is nil a panic will occur. In the future the SDK may create
7253// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7254// for more information on using Contexts.
7255func (c *Redshift) DescribeOrderableClusterOptionsWithContext(ctx aws.Context, input *DescribeOrderableClusterOptionsInput, opts ...request.Option) (*DescribeOrderableClusterOptionsOutput, error) {
7256	req, out := c.DescribeOrderableClusterOptionsRequest(input)
7257	req.SetContext(ctx)
7258	req.ApplyOptions(opts...)
7259	return out, req.Send()
7260}
7261
7262// DescribeOrderableClusterOptionsPages iterates over the pages of a DescribeOrderableClusterOptions operation,
7263// calling the "fn" function with the response data for each page. To stop
7264// iterating, return false from the fn function.
7265//
7266// See DescribeOrderableClusterOptions method for more information on how to use this operation.
7267//
7268// Note: This operation can generate multiple requests to a service.
7269//
7270//    // Example iterating over at most 3 pages of a DescribeOrderableClusterOptions operation.
7271//    pageNum := 0
7272//    err := client.DescribeOrderableClusterOptionsPages(params,
7273//        func(page *redshift.DescribeOrderableClusterOptionsOutput, lastPage bool) bool {
7274//            pageNum++
7275//            fmt.Println(page)
7276//            return pageNum <= 3
7277//        })
7278//
7279func (c *Redshift) DescribeOrderableClusterOptionsPages(input *DescribeOrderableClusterOptionsInput, fn func(*DescribeOrderableClusterOptionsOutput, bool) bool) error {
7280	return c.DescribeOrderableClusterOptionsPagesWithContext(aws.BackgroundContext(), input, fn)
7281}
7282
7283// DescribeOrderableClusterOptionsPagesWithContext same as DescribeOrderableClusterOptionsPages except
7284// it takes a Context and allows setting request options on the pages.
7285//
7286// The context must be non-nil and will be used for request cancellation. If
7287// the context is nil a panic will occur. In the future the SDK may create
7288// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7289// for more information on using Contexts.
7290func (c *Redshift) DescribeOrderableClusterOptionsPagesWithContext(ctx aws.Context, input *DescribeOrderableClusterOptionsInput, fn func(*DescribeOrderableClusterOptionsOutput, bool) bool, opts ...request.Option) error {
7291	p := request.Pagination{
7292		NewRequest: func() (*request.Request, error) {
7293			var inCpy *DescribeOrderableClusterOptionsInput
7294			if input != nil {
7295				tmp := *input
7296				inCpy = &tmp
7297			}
7298			req, _ := c.DescribeOrderableClusterOptionsRequest(inCpy)
7299			req.SetContext(ctx)
7300			req.ApplyOptions(opts...)
7301			return req, nil
7302		},
7303	}
7304
7305	for p.Next() {
7306		if !fn(p.Page().(*DescribeOrderableClusterOptionsOutput), !p.HasNextPage()) {
7307			break
7308		}
7309	}
7310
7311	return p.Err()
7312}
7313
7314const opDescribePartners = "DescribePartners"
7315
7316// DescribePartnersRequest generates a "aws/request.Request" representing the
7317// client's request for the DescribePartners operation. The "output" return
7318// value will be populated with the request's response once the request completes
7319// successfully.
7320//
7321// Use "Send" method on the returned Request to send the API call to the service.
7322// the "output" return value is not valid until after Send returns without error.
7323//
7324// See DescribePartners for more information on using the DescribePartners
7325// API call, and error handling.
7326//
7327// This method is useful when you want to inject custom logic or configuration
7328// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7329//
7330//
7331//    // Example sending a request using the DescribePartnersRequest method.
7332//    req, resp := client.DescribePartnersRequest(params)
7333//
7334//    err := req.Send()
7335//    if err == nil { // resp is now filled
7336//        fmt.Println(resp)
7337//    }
7338//
7339// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribePartners
7340func (c *Redshift) DescribePartnersRequest(input *DescribePartnersInput) (req *request.Request, output *DescribePartnersOutput) {
7341	op := &request.Operation{
7342		Name:       opDescribePartners,
7343		HTTPMethod: "POST",
7344		HTTPPath:   "/",
7345	}
7346
7347	if input == nil {
7348		input = &DescribePartnersInput{}
7349	}
7350
7351	output = &DescribePartnersOutput{}
7352	req = c.newRequest(op, input, output)
7353	return
7354}
7355
7356// DescribePartners API operation for Amazon Redshift.
7357//
7358// Returns information about the partner integrations defined for a cluster.
7359//
7360// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7361// with awserr.Error's Code and Message methods to get detailed information about
7362// the error.
7363//
7364// See the AWS API reference guide for Amazon Redshift's
7365// API operation DescribePartners for usage and error information.
7366//
7367// Returned Error Codes:
7368//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
7369//   The ClusterIdentifier parameter does not refer to an existing cluster.
7370//
7371//   * ErrCodeUnauthorizedPartnerIntegrationFault "UnauthorizedPartnerIntegration"
7372//   The partner integration is not authorized.
7373//
7374// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribePartners
7375func (c *Redshift) DescribePartners(input *DescribePartnersInput) (*DescribePartnersOutput, error) {
7376	req, out := c.DescribePartnersRequest(input)
7377	return out, req.Send()
7378}
7379
7380// DescribePartnersWithContext is the same as DescribePartners with the addition of
7381// the ability to pass a context and additional request options.
7382//
7383// See DescribePartners for details on how to use this API operation.
7384//
7385// The context must be non-nil and will be used for request cancellation. If
7386// the context is nil a panic will occur. In the future the SDK may create
7387// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7388// for more information on using Contexts.
7389func (c *Redshift) DescribePartnersWithContext(ctx aws.Context, input *DescribePartnersInput, opts ...request.Option) (*DescribePartnersOutput, error) {
7390	req, out := c.DescribePartnersRequest(input)
7391	req.SetContext(ctx)
7392	req.ApplyOptions(opts...)
7393	return out, req.Send()
7394}
7395
7396const opDescribeReservedNodeOfferings = "DescribeReservedNodeOfferings"
7397
7398// DescribeReservedNodeOfferingsRequest generates a "aws/request.Request" representing the
7399// client's request for the DescribeReservedNodeOfferings operation. The "output" return
7400// value will be populated with the request's response once the request completes
7401// successfully.
7402//
7403// Use "Send" method on the returned Request to send the API call to the service.
7404// the "output" return value is not valid until after Send returns without error.
7405//
7406// See DescribeReservedNodeOfferings for more information on using the DescribeReservedNodeOfferings
7407// API call, and error handling.
7408//
7409// This method is useful when you want to inject custom logic or configuration
7410// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7411//
7412//
7413//    // Example sending a request using the DescribeReservedNodeOfferingsRequest method.
7414//    req, resp := client.DescribeReservedNodeOfferingsRequest(params)
7415//
7416//    err := req.Send()
7417//    if err == nil { // resp is now filled
7418//        fmt.Println(resp)
7419//    }
7420//
7421// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeReservedNodeOfferings
7422func (c *Redshift) DescribeReservedNodeOfferingsRequest(input *DescribeReservedNodeOfferingsInput) (req *request.Request, output *DescribeReservedNodeOfferingsOutput) {
7423	op := &request.Operation{
7424		Name:       opDescribeReservedNodeOfferings,
7425		HTTPMethod: "POST",
7426		HTTPPath:   "/",
7427		Paginator: &request.Paginator{
7428			InputTokens:     []string{"Marker"},
7429			OutputTokens:    []string{"Marker"},
7430			LimitToken:      "MaxRecords",
7431			TruncationToken: "",
7432		},
7433	}
7434
7435	if input == nil {
7436		input = &DescribeReservedNodeOfferingsInput{}
7437	}
7438
7439	output = &DescribeReservedNodeOfferingsOutput{}
7440	req = c.newRequest(op, input, output)
7441	return
7442}
7443
7444// DescribeReservedNodeOfferings API operation for Amazon Redshift.
7445//
7446// Returns a list of the available reserved node offerings by Amazon Redshift
7447// with their descriptions including the node type, the fixed and recurring
7448// costs of reserving the node and duration the node will be reserved for you.
7449// These descriptions help you determine which reserve node offering you want
7450// to purchase. You then use the unique offering ID in you call to PurchaseReservedNodeOffering
7451// to reserve one or more nodes for your Amazon Redshift cluster.
7452//
7453// For more information about reserved node offerings, go to Purchasing Reserved
7454// Nodes (https://docs.aws.amazon.com/redshift/latest/mgmt/purchase-reserved-node-instance.html)
7455// in the Amazon Redshift Cluster Management Guide.
7456//
7457// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7458// with awserr.Error's Code and Message methods to get detailed information about
7459// the error.
7460//
7461// See the AWS API reference guide for Amazon Redshift's
7462// API operation DescribeReservedNodeOfferings for usage and error information.
7463//
7464// Returned Error Codes:
7465//   * ErrCodeReservedNodeOfferingNotFoundFault "ReservedNodeOfferingNotFound"
7466//   Specified offering does not exist.
7467//
7468//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
7469//   The requested operation isn't supported.
7470//
7471//   * ErrCodeDependentServiceUnavailableFault "DependentServiceUnavailableFault"
7472//   Your request cannot be completed because a dependent internal service is
7473//   temporarily unavailable. Wait 30 to 60 seconds and try again.
7474//
7475// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeReservedNodeOfferings
7476func (c *Redshift) DescribeReservedNodeOfferings(input *DescribeReservedNodeOfferingsInput) (*DescribeReservedNodeOfferingsOutput, error) {
7477	req, out := c.DescribeReservedNodeOfferingsRequest(input)
7478	return out, req.Send()
7479}
7480
7481// DescribeReservedNodeOfferingsWithContext is the same as DescribeReservedNodeOfferings with the addition of
7482// the ability to pass a context and additional request options.
7483//
7484// See DescribeReservedNodeOfferings for details on how to use this API operation.
7485//
7486// The context must be non-nil and will be used for request cancellation. If
7487// the context is nil a panic will occur. In the future the SDK may create
7488// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7489// for more information on using Contexts.
7490func (c *Redshift) DescribeReservedNodeOfferingsWithContext(ctx aws.Context, input *DescribeReservedNodeOfferingsInput, opts ...request.Option) (*DescribeReservedNodeOfferingsOutput, error) {
7491	req, out := c.DescribeReservedNodeOfferingsRequest(input)
7492	req.SetContext(ctx)
7493	req.ApplyOptions(opts...)
7494	return out, req.Send()
7495}
7496
7497// DescribeReservedNodeOfferingsPages iterates over the pages of a DescribeReservedNodeOfferings operation,
7498// calling the "fn" function with the response data for each page. To stop
7499// iterating, return false from the fn function.
7500//
7501// See DescribeReservedNodeOfferings method for more information on how to use this operation.
7502//
7503// Note: This operation can generate multiple requests to a service.
7504//
7505//    // Example iterating over at most 3 pages of a DescribeReservedNodeOfferings operation.
7506//    pageNum := 0
7507//    err := client.DescribeReservedNodeOfferingsPages(params,
7508//        func(page *redshift.DescribeReservedNodeOfferingsOutput, lastPage bool) bool {
7509//            pageNum++
7510//            fmt.Println(page)
7511//            return pageNum <= 3
7512//        })
7513//
7514func (c *Redshift) DescribeReservedNodeOfferingsPages(input *DescribeReservedNodeOfferingsInput, fn func(*DescribeReservedNodeOfferingsOutput, bool) bool) error {
7515	return c.DescribeReservedNodeOfferingsPagesWithContext(aws.BackgroundContext(), input, fn)
7516}
7517
7518// DescribeReservedNodeOfferingsPagesWithContext same as DescribeReservedNodeOfferingsPages except
7519// it takes a Context and allows setting request options on the pages.
7520//
7521// The context must be non-nil and will be used for request cancellation. If
7522// the context is nil a panic will occur. In the future the SDK may create
7523// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7524// for more information on using Contexts.
7525func (c *Redshift) DescribeReservedNodeOfferingsPagesWithContext(ctx aws.Context, input *DescribeReservedNodeOfferingsInput, fn func(*DescribeReservedNodeOfferingsOutput, bool) bool, opts ...request.Option) error {
7526	p := request.Pagination{
7527		NewRequest: func() (*request.Request, error) {
7528			var inCpy *DescribeReservedNodeOfferingsInput
7529			if input != nil {
7530				tmp := *input
7531				inCpy = &tmp
7532			}
7533			req, _ := c.DescribeReservedNodeOfferingsRequest(inCpy)
7534			req.SetContext(ctx)
7535			req.ApplyOptions(opts...)
7536			return req, nil
7537		},
7538	}
7539
7540	for p.Next() {
7541		if !fn(p.Page().(*DescribeReservedNodeOfferingsOutput), !p.HasNextPage()) {
7542			break
7543		}
7544	}
7545
7546	return p.Err()
7547}
7548
7549const opDescribeReservedNodes = "DescribeReservedNodes"
7550
7551// DescribeReservedNodesRequest generates a "aws/request.Request" representing the
7552// client's request for the DescribeReservedNodes operation. The "output" return
7553// value will be populated with the request's response once the request completes
7554// successfully.
7555//
7556// Use "Send" method on the returned Request to send the API call to the service.
7557// the "output" return value is not valid until after Send returns without error.
7558//
7559// See DescribeReservedNodes for more information on using the DescribeReservedNodes
7560// API call, and error handling.
7561//
7562// This method is useful when you want to inject custom logic or configuration
7563// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7564//
7565//
7566//    // Example sending a request using the DescribeReservedNodesRequest method.
7567//    req, resp := client.DescribeReservedNodesRequest(params)
7568//
7569//    err := req.Send()
7570//    if err == nil { // resp is now filled
7571//        fmt.Println(resp)
7572//    }
7573//
7574// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeReservedNodes
7575func (c *Redshift) DescribeReservedNodesRequest(input *DescribeReservedNodesInput) (req *request.Request, output *DescribeReservedNodesOutput) {
7576	op := &request.Operation{
7577		Name:       opDescribeReservedNodes,
7578		HTTPMethod: "POST",
7579		HTTPPath:   "/",
7580		Paginator: &request.Paginator{
7581			InputTokens:     []string{"Marker"},
7582			OutputTokens:    []string{"Marker"},
7583			LimitToken:      "MaxRecords",
7584			TruncationToken: "",
7585		},
7586	}
7587
7588	if input == nil {
7589		input = &DescribeReservedNodesInput{}
7590	}
7591
7592	output = &DescribeReservedNodesOutput{}
7593	req = c.newRequest(op, input, output)
7594	return
7595}
7596
7597// DescribeReservedNodes API operation for Amazon Redshift.
7598//
7599// Returns the descriptions of the reserved nodes.
7600//
7601// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7602// with awserr.Error's Code and Message methods to get detailed information about
7603// the error.
7604//
7605// See the AWS API reference guide for Amazon Redshift's
7606// API operation DescribeReservedNodes for usage and error information.
7607//
7608// Returned Error Codes:
7609//   * ErrCodeReservedNodeNotFoundFault "ReservedNodeNotFound"
7610//   The specified reserved compute node not found.
7611//
7612//   * ErrCodeDependentServiceUnavailableFault "DependentServiceUnavailableFault"
7613//   Your request cannot be completed because a dependent internal service is
7614//   temporarily unavailable. Wait 30 to 60 seconds and try again.
7615//
7616// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeReservedNodes
7617func (c *Redshift) DescribeReservedNodes(input *DescribeReservedNodesInput) (*DescribeReservedNodesOutput, error) {
7618	req, out := c.DescribeReservedNodesRequest(input)
7619	return out, req.Send()
7620}
7621
7622// DescribeReservedNodesWithContext is the same as DescribeReservedNodes with the addition of
7623// the ability to pass a context and additional request options.
7624//
7625// See DescribeReservedNodes for details on how to use this API operation.
7626//
7627// The context must be non-nil and will be used for request cancellation. If
7628// the context is nil a panic will occur. In the future the SDK may create
7629// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7630// for more information on using Contexts.
7631func (c *Redshift) DescribeReservedNodesWithContext(ctx aws.Context, input *DescribeReservedNodesInput, opts ...request.Option) (*DescribeReservedNodesOutput, error) {
7632	req, out := c.DescribeReservedNodesRequest(input)
7633	req.SetContext(ctx)
7634	req.ApplyOptions(opts...)
7635	return out, req.Send()
7636}
7637
7638// DescribeReservedNodesPages iterates over the pages of a DescribeReservedNodes operation,
7639// calling the "fn" function with the response data for each page. To stop
7640// iterating, return false from the fn function.
7641//
7642// See DescribeReservedNodes method for more information on how to use this operation.
7643//
7644// Note: This operation can generate multiple requests to a service.
7645//
7646//    // Example iterating over at most 3 pages of a DescribeReservedNodes operation.
7647//    pageNum := 0
7648//    err := client.DescribeReservedNodesPages(params,
7649//        func(page *redshift.DescribeReservedNodesOutput, lastPage bool) bool {
7650//            pageNum++
7651//            fmt.Println(page)
7652//            return pageNum <= 3
7653//        })
7654//
7655func (c *Redshift) DescribeReservedNodesPages(input *DescribeReservedNodesInput, fn func(*DescribeReservedNodesOutput, bool) bool) error {
7656	return c.DescribeReservedNodesPagesWithContext(aws.BackgroundContext(), input, fn)
7657}
7658
7659// DescribeReservedNodesPagesWithContext same as DescribeReservedNodesPages except
7660// it takes a Context and allows setting request options on the pages.
7661//
7662// The context must be non-nil and will be used for request cancellation. If
7663// the context is nil a panic will occur. In the future the SDK may create
7664// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7665// for more information on using Contexts.
7666func (c *Redshift) DescribeReservedNodesPagesWithContext(ctx aws.Context, input *DescribeReservedNodesInput, fn func(*DescribeReservedNodesOutput, bool) bool, opts ...request.Option) error {
7667	p := request.Pagination{
7668		NewRequest: func() (*request.Request, error) {
7669			var inCpy *DescribeReservedNodesInput
7670			if input != nil {
7671				tmp := *input
7672				inCpy = &tmp
7673			}
7674			req, _ := c.DescribeReservedNodesRequest(inCpy)
7675			req.SetContext(ctx)
7676			req.ApplyOptions(opts...)
7677			return req, nil
7678		},
7679	}
7680
7681	for p.Next() {
7682		if !fn(p.Page().(*DescribeReservedNodesOutput), !p.HasNextPage()) {
7683			break
7684		}
7685	}
7686
7687	return p.Err()
7688}
7689
7690const opDescribeResize = "DescribeResize"
7691
7692// DescribeResizeRequest generates a "aws/request.Request" representing the
7693// client's request for the DescribeResize operation. The "output" return
7694// value will be populated with the request's response once the request completes
7695// successfully.
7696//
7697// Use "Send" method on the returned Request to send the API call to the service.
7698// the "output" return value is not valid until after Send returns without error.
7699//
7700// See DescribeResize for more information on using the DescribeResize
7701// API call, and error handling.
7702//
7703// This method is useful when you want to inject custom logic or configuration
7704// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7705//
7706//
7707//    // Example sending a request using the DescribeResizeRequest method.
7708//    req, resp := client.DescribeResizeRequest(params)
7709//
7710//    err := req.Send()
7711//    if err == nil { // resp is now filled
7712//        fmt.Println(resp)
7713//    }
7714//
7715// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeResize
7716func (c *Redshift) DescribeResizeRequest(input *DescribeResizeInput) (req *request.Request, output *DescribeResizeOutput) {
7717	op := &request.Operation{
7718		Name:       opDescribeResize,
7719		HTTPMethod: "POST",
7720		HTTPPath:   "/",
7721	}
7722
7723	if input == nil {
7724		input = &DescribeResizeInput{}
7725	}
7726
7727	output = &DescribeResizeOutput{}
7728	req = c.newRequest(op, input, output)
7729	return
7730}
7731
7732// DescribeResize API operation for Amazon Redshift.
7733//
7734// Returns information about the last resize operation for the specified cluster.
7735// If no resize operation has ever been initiated for the specified cluster,
7736// a HTTP 404 error is returned. If a resize operation was initiated and completed,
7737// the status of the resize remains as SUCCEEDED until the next resize.
7738//
7739// A resize operation can be requested using ModifyCluster and specifying a
7740// different number or type of nodes for the cluster.
7741//
7742// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7743// with awserr.Error's Code and Message methods to get detailed information about
7744// the error.
7745//
7746// See the AWS API reference guide for Amazon Redshift's
7747// API operation DescribeResize for usage and error information.
7748//
7749// Returned Error Codes:
7750//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
7751//   The ClusterIdentifier parameter does not refer to an existing cluster.
7752//
7753//   * ErrCodeResizeNotFoundFault "ResizeNotFound"
7754//   A resize operation for the specified cluster is not found.
7755//
7756// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeResize
7757func (c *Redshift) DescribeResize(input *DescribeResizeInput) (*DescribeResizeOutput, error) {
7758	req, out := c.DescribeResizeRequest(input)
7759	return out, req.Send()
7760}
7761
7762// DescribeResizeWithContext is the same as DescribeResize with the addition of
7763// the ability to pass a context and additional request options.
7764//
7765// See DescribeResize for details on how to use this API operation.
7766//
7767// The context must be non-nil and will be used for request cancellation. If
7768// the context is nil a panic will occur. In the future the SDK may create
7769// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7770// for more information on using Contexts.
7771func (c *Redshift) DescribeResizeWithContext(ctx aws.Context, input *DescribeResizeInput, opts ...request.Option) (*DescribeResizeOutput, error) {
7772	req, out := c.DescribeResizeRequest(input)
7773	req.SetContext(ctx)
7774	req.ApplyOptions(opts...)
7775	return out, req.Send()
7776}
7777
7778const opDescribeScheduledActions = "DescribeScheduledActions"
7779
7780// DescribeScheduledActionsRequest generates a "aws/request.Request" representing the
7781// client's request for the DescribeScheduledActions operation. The "output" return
7782// value will be populated with the request's response once the request completes
7783// successfully.
7784//
7785// Use "Send" method on the returned Request to send the API call to the service.
7786// the "output" return value is not valid until after Send returns without error.
7787//
7788// See DescribeScheduledActions for more information on using the DescribeScheduledActions
7789// API call, and error handling.
7790//
7791// This method is useful when you want to inject custom logic or configuration
7792// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7793//
7794//
7795//    // Example sending a request using the DescribeScheduledActionsRequest method.
7796//    req, resp := client.DescribeScheduledActionsRequest(params)
7797//
7798//    err := req.Send()
7799//    if err == nil { // resp is now filled
7800//        fmt.Println(resp)
7801//    }
7802//
7803// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeScheduledActions
7804func (c *Redshift) DescribeScheduledActionsRequest(input *DescribeScheduledActionsInput) (req *request.Request, output *DescribeScheduledActionsOutput) {
7805	op := &request.Operation{
7806		Name:       opDescribeScheduledActions,
7807		HTTPMethod: "POST",
7808		HTTPPath:   "/",
7809		Paginator: &request.Paginator{
7810			InputTokens:     []string{"Marker"},
7811			OutputTokens:    []string{"Marker"},
7812			LimitToken:      "MaxRecords",
7813			TruncationToken: "",
7814		},
7815	}
7816
7817	if input == nil {
7818		input = &DescribeScheduledActionsInput{}
7819	}
7820
7821	output = &DescribeScheduledActionsOutput{}
7822	req = c.newRequest(op, input, output)
7823	return
7824}
7825
7826// DescribeScheduledActions API operation for Amazon Redshift.
7827//
7828// Describes properties of scheduled actions.
7829//
7830// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7831// with awserr.Error's Code and Message methods to get detailed information about
7832// the error.
7833//
7834// See the AWS API reference guide for Amazon Redshift's
7835// API operation DescribeScheduledActions for usage and error information.
7836//
7837// Returned Error Codes:
7838//   * ErrCodeScheduledActionNotFoundFault "ScheduledActionNotFound"
7839//   The scheduled action cannot be found.
7840//
7841//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
7842//   Your account is not authorized to perform the requested operation.
7843//
7844// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeScheduledActions
7845func (c *Redshift) DescribeScheduledActions(input *DescribeScheduledActionsInput) (*DescribeScheduledActionsOutput, error) {
7846	req, out := c.DescribeScheduledActionsRequest(input)
7847	return out, req.Send()
7848}
7849
7850// DescribeScheduledActionsWithContext is the same as DescribeScheduledActions with the addition of
7851// the ability to pass a context and additional request options.
7852//
7853// See DescribeScheduledActions for details on how to use this API operation.
7854//
7855// The context must be non-nil and will be used for request cancellation. If
7856// the context is nil a panic will occur. In the future the SDK may create
7857// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7858// for more information on using Contexts.
7859func (c *Redshift) DescribeScheduledActionsWithContext(ctx aws.Context, input *DescribeScheduledActionsInput, opts ...request.Option) (*DescribeScheduledActionsOutput, error) {
7860	req, out := c.DescribeScheduledActionsRequest(input)
7861	req.SetContext(ctx)
7862	req.ApplyOptions(opts...)
7863	return out, req.Send()
7864}
7865
7866// DescribeScheduledActionsPages iterates over the pages of a DescribeScheduledActions operation,
7867// calling the "fn" function with the response data for each page. To stop
7868// iterating, return false from the fn function.
7869//
7870// See DescribeScheduledActions method for more information on how to use this operation.
7871//
7872// Note: This operation can generate multiple requests to a service.
7873//
7874//    // Example iterating over at most 3 pages of a DescribeScheduledActions operation.
7875//    pageNum := 0
7876//    err := client.DescribeScheduledActionsPages(params,
7877//        func(page *redshift.DescribeScheduledActionsOutput, lastPage bool) bool {
7878//            pageNum++
7879//            fmt.Println(page)
7880//            return pageNum <= 3
7881//        })
7882//
7883func (c *Redshift) DescribeScheduledActionsPages(input *DescribeScheduledActionsInput, fn func(*DescribeScheduledActionsOutput, bool) bool) error {
7884	return c.DescribeScheduledActionsPagesWithContext(aws.BackgroundContext(), input, fn)
7885}
7886
7887// DescribeScheduledActionsPagesWithContext same as DescribeScheduledActionsPages except
7888// it takes a Context and allows setting request options on the pages.
7889//
7890// The context must be non-nil and will be used for request cancellation. If
7891// the context is nil a panic will occur. In the future the SDK may create
7892// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7893// for more information on using Contexts.
7894func (c *Redshift) DescribeScheduledActionsPagesWithContext(ctx aws.Context, input *DescribeScheduledActionsInput, fn func(*DescribeScheduledActionsOutput, bool) bool, opts ...request.Option) error {
7895	p := request.Pagination{
7896		NewRequest: func() (*request.Request, error) {
7897			var inCpy *DescribeScheduledActionsInput
7898			if input != nil {
7899				tmp := *input
7900				inCpy = &tmp
7901			}
7902			req, _ := c.DescribeScheduledActionsRequest(inCpy)
7903			req.SetContext(ctx)
7904			req.ApplyOptions(opts...)
7905			return req, nil
7906		},
7907	}
7908
7909	for p.Next() {
7910		if !fn(p.Page().(*DescribeScheduledActionsOutput), !p.HasNextPage()) {
7911			break
7912		}
7913	}
7914
7915	return p.Err()
7916}
7917
7918const opDescribeSnapshotCopyGrants = "DescribeSnapshotCopyGrants"
7919
7920// DescribeSnapshotCopyGrantsRequest generates a "aws/request.Request" representing the
7921// client's request for the DescribeSnapshotCopyGrants operation. The "output" return
7922// value will be populated with the request's response once the request completes
7923// successfully.
7924//
7925// Use "Send" method on the returned Request to send the API call to the service.
7926// the "output" return value is not valid until after Send returns without error.
7927//
7928// See DescribeSnapshotCopyGrants for more information on using the DescribeSnapshotCopyGrants
7929// API call, and error handling.
7930//
7931// This method is useful when you want to inject custom logic or configuration
7932// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7933//
7934//
7935//    // Example sending a request using the DescribeSnapshotCopyGrantsRequest method.
7936//    req, resp := client.DescribeSnapshotCopyGrantsRequest(params)
7937//
7938//    err := req.Send()
7939//    if err == nil { // resp is now filled
7940//        fmt.Println(resp)
7941//    }
7942//
7943// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeSnapshotCopyGrants
7944func (c *Redshift) DescribeSnapshotCopyGrantsRequest(input *DescribeSnapshotCopyGrantsInput) (req *request.Request, output *DescribeSnapshotCopyGrantsOutput) {
7945	op := &request.Operation{
7946		Name:       opDescribeSnapshotCopyGrants,
7947		HTTPMethod: "POST",
7948		HTTPPath:   "/",
7949		Paginator: &request.Paginator{
7950			InputTokens:     []string{"Marker"},
7951			OutputTokens:    []string{"Marker"},
7952			LimitToken:      "MaxRecords",
7953			TruncationToken: "",
7954		},
7955	}
7956
7957	if input == nil {
7958		input = &DescribeSnapshotCopyGrantsInput{}
7959	}
7960
7961	output = &DescribeSnapshotCopyGrantsOutput{}
7962	req = c.newRequest(op, input, output)
7963	return
7964}
7965
7966// DescribeSnapshotCopyGrants API operation for Amazon Redshift.
7967//
7968// Returns a list of snapshot copy grants owned by the Amazon Web Services account
7969// in the destination region.
7970//
7971// For more information about managing snapshot copy grants, go to Amazon Redshift
7972// Database Encryption (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
7973// in the Amazon Redshift Cluster Management Guide.
7974//
7975// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7976// with awserr.Error's Code and Message methods to get detailed information about
7977// the error.
7978//
7979// See the AWS API reference guide for Amazon Redshift's
7980// API operation DescribeSnapshotCopyGrants for usage and error information.
7981//
7982// Returned Error Codes:
7983//   * ErrCodeSnapshotCopyGrantNotFoundFault "SnapshotCopyGrantNotFoundFault"
7984//   The specified snapshot copy grant can't be found. Make sure that the name
7985//   is typed correctly and that the grant exists in the destination region.
7986//
7987//   * ErrCodeInvalidTagFault "InvalidTagFault"
7988//   The tag is invalid.
7989//
7990// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeSnapshotCopyGrants
7991func (c *Redshift) DescribeSnapshotCopyGrants(input *DescribeSnapshotCopyGrantsInput) (*DescribeSnapshotCopyGrantsOutput, error) {
7992	req, out := c.DescribeSnapshotCopyGrantsRequest(input)
7993	return out, req.Send()
7994}
7995
7996// DescribeSnapshotCopyGrantsWithContext is the same as DescribeSnapshotCopyGrants with the addition of
7997// the ability to pass a context and additional request options.
7998//
7999// See DescribeSnapshotCopyGrants for details on how to use this API operation.
8000//
8001// The context must be non-nil and will be used for request cancellation. If
8002// the context is nil a panic will occur. In the future the SDK may create
8003// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8004// for more information on using Contexts.
8005func (c *Redshift) DescribeSnapshotCopyGrantsWithContext(ctx aws.Context, input *DescribeSnapshotCopyGrantsInput, opts ...request.Option) (*DescribeSnapshotCopyGrantsOutput, error) {
8006	req, out := c.DescribeSnapshotCopyGrantsRequest(input)
8007	req.SetContext(ctx)
8008	req.ApplyOptions(opts...)
8009	return out, req.Send()
8010}
8011
8012// DescribeSnapshotCopyGrantsPages iterates over the pages of a DescribeSnapshotCopyGrants operation,
8013// calling the "fn" function with the response data for each page. To stop
8014// iterating, return false from the fn function.
8015//
8016// See DescribeSnapshotCopyGrants method for more information on how to use this operation.
8017//
8018// Note: This operation can generate multiple requests to a service.
8019//
8020//    // Example iterating over at most 3 pages of a DescribeSnapshotCopyGrants operation.
8021//    pageNum := 0
8022//    err := client.DescribeSnapshotCopyGrantsPages(params,
8023//        func(page *redshift.DescribeSnapshotCopyGrantsOutput, lastPage bool) bool {
8024//            pageNum++
8025//            fmt.Println(page)
8026//            return pageNum <= 3
8027//        })
8028//
8029func (c *Redshift) DescribeSnapshotCopyGrantsPages(input *DescribeSnapshotCopyGrantsInput, fn func(*DescribeSnapshotCopyGrantsOutput, bool) bool) error {
8030	return c.DescribeSnapshotCopyGrantsPagesWithContext(aws.BackgroundContext(), input, fn)
8031}
8032
8033// DescribeSnapshotCopyGrantsPagesWithContext same as DescribeSnapshotCopyGrantsPages except
8034// it takes a Context and allows setting request options on the pages.
8035//
8036// The context must be non-nil and will be used for request cancellation. If
8037// the context is nil a panic will occur. In the future the SDK may create
8038// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8039// for more information on using Contexts.
8040func (c *Redshift) DescribeSnapshotCopyGrantsPagesWithContext(ctx aws.Context, input *DescribeSnapshotCopyGrantsInput, fn func(*DescribeSnapshotCopyGrantsOutput, bool) bool, opts ...request.Option) error {
8041	p := request.Pagination{
8042		NewRequest: func() (*request.Request, error) {
8043			var inCpy *DescribeSnapshotCopyGrantsInput
8044			if input != nil {
8045				tmp := *input
8046				inCpy = &tmp
8047			}
8048			req, _ := c.DescribeSnapshotCopyGrantsRequest(inCpy)
8049			req.SetContext(ctx)
8050			req.ApplyOptions(opts...)
8051			return req, nil
8052		},
8053	}
8054
8055	for p.Next() {
8056		if !fn(p.Page().(*DescribeSnapshotCopyGrantsOutput), !p.HasNextPage()) {
8057			break
8058		}
8059	}
8060
8061	return p.Err()
8062}
8063
8064const opDescribeSnapshotSchedules = "DescribeSnapshotSchedules"
8065
8066// DescribeSnapshotSchedulesRequest generates a "aws/request.Request" representing the
8067// client's request for the DescribeSnapshotSchedules operation. The "output" return
8068// value will be populated with the request's response once the request completes
8069// successfully.
8070//
8071// Use "Send" method on the returned Request to send the API call to the service.
8072// the "output" return value is not valid until after Send returns without error.
8073//
8074// See DescribeSnapshotSchedules for more information on using the DescribeSnapshotSchedules
8075// API call, and error handling.
8076//
8077// This method is useful when you want to inject custom logic or configuration
8078// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8079//
8080//
8081//    // Example sending a request using the DescribeSnapshotSchedulesRequest method.
8082//    req, resp := client.DescribeSnapshotSchedulesRequest(params)
8083//
8084//    err := req.Send()
8085//    if err == nil { // resp is now filled
8086//        fmt.Println(resp)
8087//    }
8088//
8089// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeSnapshotSchedules
8090func (c *Redshift) DescribeSnapshotSchedulesRequest(input *DescribeSnapshotSchedulesInput) (req *request.Request, output *DescribeSnapshotSchedulesOutput) {
8091	op := &request.Operation{
8092		Name:       opDescribeSnapshotSchedules,
8093		HTTPMethod: "POST",
8094		HTTPPath:   "/",
8095		Paginator: &request.Paginator{
8096			InputTokens:     []string{"Marker"},
8097			OutputTokens:    []string{"Marker"},
8098			LimitToken:      "MaxRecords",
8099			TruncationToken: "",
8100		},
8101	}
8102
8103	if input == nil {
8104		input = &DescribeSnapshotSchedulesInput{}
8105	}
8106
8107	output = &DescribeSnapshotSchedulesOutput{}
8108	req = c.newRequest(op, input, output)
8109	return
8110}
8111
8112// DescribeSnapshotSchedules API operation for Amazon Redshift.
8113//
8114// Returns a list of snapshot schedules.
8115//
8116// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8117// with awserr.Error's Code and Message methods to get detailed information about
8118// the error.
8119//
8120// See the AWS API reference guide for Amazon Redshift's
8121// API operation DescribeSnapshotSchedules for usage and error information.
8122// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeSnapshotSchedules
8123func (c *Redshift) DescribeSnapshotSchedules(input *DescribeSnapshotSchedulesInput) (*DescribeSnapshotSchedulesOutput, error) {
8124	req, out := c.DescribeSnapshotSchedulesRequest(input)
8125	return out, req.Send()
8126}
8127
8128// DescribeSnapshotSchedulesWithContext is the same as DescribeSnapshotSchedules with the addition of
8129// the ability to pass a context and additional request options.
8130//
8131// See DescribeSnapshotSchedules for details on how to use this API operation.
8132//
8133// The context must be non-nil and will be used for request cancellation. If
8134// the context is nil a panic will occur. In the future the SDK may create
8135// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8136// for more information on using Contexts.
8137func (c *Redshift) DescribeSnapshotSchedulesWithContext(ctx aws.Context, input *DescribeSnapshotSchedulesInput, opts ...request.Option) (*DescribeSnapshotSchedulesOutput, error) {
8138	req, out := c.DescribeSnapshotSchedulesRequest(input)
8139	req.SetContext(ctx)
8140	req.ApplyOptions(opts...)
8141	return out, req.Send()
8142}
8143
8144// DescribeSnapshotSchedulesPages iterates over the pages of a DescribeSnapshotSchedules operation,
8145// calling the "fn" function with the response data for each page. To stop
8146// iterating, return false from the fn function.
8147//
8148// See DescribeSnapshotSchedules method for more information on how to use this operation.
8149//
8150// Note: This operation can generate multiple requests to a service.
8151//
8152//    // Example iterating over at most 3 pages of a DescribeSnapshotSchedules operation.
8153//    pageNum := 0
8154//    err := client.DescribeSnapshotSchedulesPages(params,
8155//        func(page *redshift.DescribeSnapshotSchedulesOutput, lastPage bool) bool {
8156//            pageNum++
8157//            fmt.Println(page)
8158//            return pageNum <= 3
8159//        })
8160//
8161func (c *Redshift) DescribeSnapshotSchedulesPages(input *DescribeSnapshotSchedulesInput, fn func(*DescribeSnapshotSchedulesOutput, bool) bool) error {
8162	return c.DescribeSnapshotSchedulesPagesWithContext(aws.BackgroundContext(), input, fn)
8163}
8164
8165// DescribeSnapshotSchedulesPagesWithContext same as DescribeSnapshotSchedulesPages except
8166// it takes a Context and allows setting request options on the pages.
8167//
8168// The context must be non-nil and will be used for request cancellation. If
8169// the context is nil a panic will occur. In the future the SDK may create
8170// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8171// for more information on using Contexts.
8172func (c *Redshift) DescribeSnapshotSchedulesPagesWithContext(ctx aws.Context, input *DescribeSnapshotSchedulesInput, fn func(*DescribeSnapshotSchedulesOutput, bool) bool, opts ...request.Option) error {
8173	p := request.Pagination{
8174		NewRequest: func() (*request.Request, error) {
8175			var inCpy *DescribeSnapshotSchedulesInput
8176			if input != nil {
8177				tmp := *input
8178				inCpy = &tmp
8179			}
8180			req, _ := c.DescribeSnapshotSchedulesRequest(inCpy)
8181			req.SetContext(ctx)
8182			req.ApplyOptions(opts...)
8183			return req, nil
8184		},
8185	}
8186
8187	for p.Next() {
8188		if !fn(p.Page().(*DescribeSnapshotSchedulesOutput), !p.HasNextPage()) {
8189			break
8190		}
8191	}
8192
8193	return p.Err()
8194}
8195
8196const opDescribeStorage = "DescribeStorage"
8197
8198// DescribeStorageRequest generates a "aws/request.Request" representing the
8199// client's request for the DescribeStorage operation. The "output" return
8200// value will be populated with the request's response once the request completes
8201// successfully.
8202//
8203// Use "Send" method on the returned Request to send the API call to the service.
8204// the "output" return value is not valid until after Send returns without error.
8205//
8206// See DescribeStorage for more information on using the DescribeStorage
8207// API call, and error handling.
8208//
8209// This method is useful when you want to inject custom logic or configuration
8210// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8211//
8212//
8213//    // Example sending a request using the DescribeStorageRequest method.
8214//    req, resp := client.DescribeStorageRequest(params)
8215//
8216//    err := req.Send()
8217//    if err == nil { // resp is now filled
8218//        fmt.Println(resp)
8219//    }
8220//
8221// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeStorage
8222func (c *Redshift) DescribeStorageRequest(input *DescribeStorageInput) (req *request.Request, output *DescribeStorageOutput) {
8223	op := &request.Operation{
8224		Name:       opDescribeStorage,
8225		HTTPMethod: "POST",
8226		HTTPPath:   "/",
8227	}
8228
8229	if input == nil {
8230		input = &DescribeStorageInput{}
8231	}
8232
8233	output = &DescribeStorageOutput{}
8234	req = c.newRequest(op, input, output)
8235	return
8236}
8237
8238// DescribeStorage API operation for Amazon Redshift.
8239//
8240// Returns account level backups storage size and provisional storage.
8241//
8242// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8243// with awserr.Error's Code and Message methods to get detailed information about
8244// the error.
8245//
8246// See the AWS API reference guide for Amazon Redshift's
8247// API operation DescribeStorage for usage and error information.
8248// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeStorage
8249func (c *Redshift) DescribeStorage(input *DescribeStorageInput) (*DescribeStorageOutput, error) {
8250	req, out := c.DescribeStorageRequest(input)
8251	return out, req.Send()
8252}
8253
8254// DescribeStorageWithContext is the same as DescribeStorage with the addition of
8255// the ability to pass a context and additional request options.
8256//
8257// See DescribeStorage for details on how to use this API operation.
8258//
8259// The context must be non-nil and will be used for request cancellation. If
8260// the context is nil a panic will occur. In the future the SDK may create
8261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8262// for more information on using Contexts.
8263func (c *Redshift) DescribeStorageWithContext(ctx aws.Context, input *DescribeStorageInput, opts ...request.Option) (*DescribeStorageOutput, error) {
8264	req, out := c.DescribeStorageRequest(input)
8265	req.SetContext(ctx)
8266	req.ApplyOptions(opts...)
8267	return out, req.Send()
8268}
8269
8270const opDescribeTableRestoreStatus = "DescribeTableRestoreStatus"
8271
8272// DescribeTableRestoreStatusRequest generates a "aws/request.Request" representing the
8273// client's request for the DescribeTableRestoreStatus operation. The "output" return
8274// value will be populated with the request's response once the request completes
8275// successfully.
8276//
8277// Use "Send" method on the returned Request to send the API call to the service.
8278// the "output" return value is not valid until after Send returns without error.
8279//
8280// See DescribeTableRestoreStatus for more information on using the DescribeTableRestoreStatus
8281// API call, and error handling.
8282//
8283// This method is useful when you want to inject custom logic or configuration
8284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8285//
8286//
8287//    // Example sending a request using the DescribeTableRestoreStatusRequest method.
8288//    req, resp := client.DescribeTableRestoreStatusRequest(params)
8289//
8290//    err := req.Send()
8291//    if err == nil { // resp is now filled
8292//        fmt.Println(resp)
8293//    }
8294//
8295// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeTableRestoreStatus
8296func (c *Redshift) DescribeTableRestoreStatusRequest(input *DescribeTableRestoreStatusInput) (req *request.Request, output *DescribeTableRestoreStatusOutput) {
8297	op := &request.Operation{
8298		Name:       opDescribeTableRestoreStatus,
8299		HTTPMethod: "POST",
8300		HTTPPath:   "/",
8301		Paginator: &request.Paginator{
8302			InputTokens:     []string{"Marker"},
8303			OutputTokens:    []string{"Marker"},
8304			LimitToken:      "MaxRecords",
8305			TruncationToken: "",
8306		},
8307	}
8308
8309	if input == nil {
8310		input = &DescribeTableRestoreStatusInput{}
8311	}
8312
8313	output = &DescribeTableRestoreStatusOutput{}
8314	req = c.newRequest(op, input, output)
8315	return
8316}
8317
8318// DescribeTableRestoreStatus API operation for Amazon Redshift.
8319//
8320// Lists the status of one or more table restore requests made using the RestoreTableFromClusterSnapshot
8321// API action. If you don't specify a value for the TableRestoreRequestId parameter,
8322// then DescribeTableRestoreStatus returns the status of all table restore requests
8323// ordered by the date and time of the request in ascending order. Otherwise
8324// DescribeTableRestoreStatus returns the status of the table specified by TableRestoreRequestId.
8325//
8326// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8327// with awserr.Error's Code and Message methods to get detailed information about
8328// the error.
8329//
8330// See the AWS API reference guide for Amazon Redshift's
8331// API operation DescribeTableRestoreStatus for usage and error information.
8332//
8333// Returned Error Codes:
8334//   * ErrCodeTableRestoreNotFoundFault "TableRestoreNotFoundFault"
8335//   The specified TableRestoreRequestId value was not found.
8336//
8337//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
8338//   The ClusterIdentifier parameter does not refer to an existing cluster.
8339//
8340// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeTableRestoreStatus
8341func (c *Redshift) DescribeTableRestoreStatus(input *DescribeTableRestoreStatusInput) (*DescribeTableRestoreStatusOutput, error) {
8342	req, out := c.DescribeTableRestoreStatusRequest(input)
8343	return out, req.Send()
8344}
8345
8346// DescribeTableRestoreStatusWithContext is the same as DescribeTableRestoreStatus with the addition of
8347// the ability to pass a context and additional request options.
8348//
8349// See DescribeTableRestoreStatus for details on how to use this API operation.
8350//
8351// The context must be non-nil and will be used for request cancellation. If
8352// the context is nil a panic will occur. In the future the SDK may create
8353// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8354// for more information on using Contexts.
8355func (c *Redshift) DescribeTableRestoreStatusWithContext(ctx aws.Context, input *DescribeTableRestoreStatusInput, opts ...request.Option) (*DescribeTableRestoreStatusOutput, error) {
8356	req, out := c.DescribeTableRestoreStatusRequest(input)
8357	req.SetContext(ctx)
8358	req.ApplyOptions(opts...)
8359	return out, req.Send()
8360}
8361
8362// DescribeTableRestoreStatusPages iterates over the pages of a DescribeTableRestoreStatus operation,
8363// calling the "fn" function with the response data for each page. To stop
8364// iterating, return false from the fn function.
8365//
8366// See DescribeTableRestoreStatus method for more information on how to use this operation.
8367//
8368// Note: This operation can generate multiple requests to a service.
8369//
8370//    // Example iterating over at most 3 pages of a DescribeTableRestoreStatus operation.
8371//    pageNum := 0
8372//    err := client.DescribeTableRestoreStatusPages(params,
8373//        func(page *redshift.DescribeTableRestoreStatusOutput, lastPage bool) bool {
8374//            pageNum++
8375//            fmt.Println(page)
8376//            return pageNum <= 3
8377//        })
8378//
8379func (c *Redshift) DescribeTableRestoreStatusPages(input *DescribeTableRestoreStatusInput, fn func(*DescribeTableRestoreStatusOutput, bool) bool) error {
8380	return c.DescribeTableRestoreStatusPagesWithContext(aws.BackgroundContext(), input, fn)
8381}
8382
8383// DescribeTableRestoreStatusPagesWithContext same as DescribeTableRestoreStatusPages except
8384// it takes a Context and allows setting request options on the pages.
8385//
8386// The context must be non-nil and will be used for request cancellation. If
8387// the context is nil a panic will occur. In the future the SDK may create
8388// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8389// for more information on using Contexts.
8390func (c *Redshift) DescribeTableRestoreStatusPagesWithContext(ctx aws.Context, input *DescribeTableRestoreStatusInput, fn func(*DescribeTableRestoreStatusOutput, bool) bool, opts ...request.Option) error {
8391	p := request.Pagination{
8392		NewRequest: func() (*request.Request, error) {
8393			var inCpy *DescribeTableRestoreStatusInput
8394			if input != nil {
8395				tmp := *input
8396				inCpy = &tmp
8397			}
8398			req, _ := c.DescribeTableRestoreStatusRequest(inCpy)
8399			req.SetContext(ctx)
8400			req.ApplyOptions(opts...)
8401			return req, nil
8402		},
8403	}
8404
8405	for p.Next() {
8406		if !fn(p.Page().(*DescribeTableRestoreStatusOutput), !p.HasNextPage()) {
8407			break
8408		}
8409	}
8410
8411	return p.Err()
8412}
8413
8414const opDescribeTags = "DescribeTags"
8415
8416// DescribeTagsRequest generates a "aws/request.Request" representing the
8417// client's request for the DescribeTags operation. The "output" return
8418// value will be populated with the request's response once the request completes
8419// successfully.
8420//
8421// Use "Send" method on the returned Request to send the API call to the service.
8422// the "output" return value is not valid until after Send returns without error.
8423//
8424// See DescribeTags for more information on using the DescribeTags
8425// API call, and error handling.
8426//
8427// This method is useful when you want to inject custom logic or configuration
8428// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8429//
8430//
8431//    // Example sending a request using the DescribeTagsRequest method.
8432//    req, resp := client.DescribeTagsRequest(params)
8433//
8434//    err := req.Send()
8435//    if err == nil { // resp is now filled
8436//        fmt.Println(resp)
8437//    }
8438//
8439// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeTags
8440func (c *Redshift) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Request, output *DescribeTagsOutput) {
8441	op := &request.Operation{
8442		Name:       opDescribeTags,
8443		HTTPMethod: "POST",
8444		HTTPPath:   "/",
8445		Paginator: &request.Paginator{
8446			InputTokens:     []string{"Marker"},
8447			OutputTokens:    []string{"Marker"},
8448			LimitToken:      "MaxRecords",
8449			TruncationToken: "",
8450		},
8451	}
8452
8453	if input == nil {
8454		input = &DescribeTagsInput{}
8455	}
8456
8457	output = &DescribeTagsOutput{}
8458	req = c.newRequest(op, input, output)
8459	return
8460}
8461
8462// DescribeTags API operation for Amazon Redshift.
8463//
8464// Returns a list of tags. You can return tags from a specific resource by specifying
8465// an ARN, or you can return all tags for a given type of resource, such as
8466// clusters, snapshots, and so on.
8467//
8468// The following are limitations for DescribeTags:
8469//
8470//    * You cannot specify an ARN and a resource-type value together in the
8471//    same request.
8472//
8473//    * You cannot use the MaxRecords and Marker parameters together with the
8474//    ARN parameter.
8475//
8476//    * The MaxRecords parameter can be a range from 10 to 50 results to return
8477//    in a request.
8478//
8479// If you specify both tag keys and tag values in the same request, Amazon Redshift
8480// returns all resources that match any combination of the specified keys and
8481// values. For example, if you have owner and environment for tag keys, and
8482// admin and test for tag values, all resources that have any combination of
8483// those values are returned.
8484//
8485// If both tag keys and values are omitted from the request, resources are returned
8486// regardless of whether they have tag keys or values associated with them.
8487//
8488// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8489// with awserr.Error's Code and Message methods to get detailed information about
8490// the error.
8491//
8492// See the AWS API reference guide for Amazon Redshift's
8493// API operation DescribeTags for usage and error information.
8494//
8495// Returned Error Codes:
8496//   * ErrCodeResourceNotFoundFault "ResourceNotFoundFault"
8497//   The resource could not be found.
8498//
8499//   * ErrCodeInvalidTagFault "InvalidTagFault"
8500//   The tag is invalid.
8501//
8502// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeTags
8503func (c *Redshift) DescribeTags(input *DescribeTagsInput) (*DescribeTagsOutput, error) {
8504	req, out := c.DescribeTagsRequest(input)
8505	return out, req.Send()
8506}
8507
8508// DescribeTagsWithContext is the same as DescribeTags with the addition of
8509// the ability to pass a context and additional request options.
8510//
8511// See DescribeTags for details on how to use this API operation.
8512//
8513// The context must be non-nil and will be used for request cancellation. If
8514// the context is nil a panic will occur. In the future the SDK may create
8515// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8516// for more information on using Contexts.
8517func (c *Redshift) DescribeTagsWithContext(ctx aws.Context, input *DescribeTagsInput, opts ...request.Option) (*DescribeTagsOutput, error) {
8518	req, out := c.DescribeTagsRequest(input)
8519	req.SetContext(ctx)
8520	req.ApplyOptions(opts...)
8521	return out, req.Send()
8522}
8523
8524// DescribeTagsPages iterates over the pages of a DescribeTags operation,
8525// calling the "fn" function with the response data for each page. To stop
8526// iterating, return false from the fn function.
8527//
8528// See DescribeTags method for more information on how to use this operation.
8529//
8530// Note: This operation can generate multiple requests to a service.
8531//
8532//    // Example iterating over at most 3 pages of a DescribeTags operation.
8533//    pageNum := 0
8534//    err := client.DescribeTagsPages(params,
8535//        func(page *redshift.DescribeTagsOutput, lastPage bool) bool {
8536//            pageNum++
8537//            fmt.Println(page)
8538//            return pageNum <= 3
8539//        })
8540//
8541func (c *Redshift) DescribeTagsPages(input *DescribeTagsInput, fn func(*DescribeTagsOutput, bool) bool) error {
8542	return c.DescribeTagsPagesWithContext(aws.BackgroundContext(), input, fn)
8543}
8544
8545// DescribeTagsPagesWithContext same as DescribeTagsPages except
8546// it takes a Context and allows setting request options on the pages.
8547//
8548// The context must be non-nil and will be used for request cancellation. If
8549// the context is nil a panic will occur. In the future the SDK may create
8550// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8551// for more information on using Contexts.
8552func (c *Redshift) DescribeTagsPagesWithContext(ctx aws.Context, input *DescribeTagsInput, fn func(*DescribeTagsOutput, bool) bool, opts ...request.Option) error {
8553	p := request.Pagination{
8554		NewRequest: func() (*request.Request, error) {
8555			var inCpy *DescribeTagsInput
8556			if input != nil {
8557				tmp := *input
8558				inCpy = &tmp
8559			}
8560			req, _ := c.DescribeTagsRequest(inCpy)
8561			req.SetContext(ctx)
8562			req.ApplyOptions(opts...)
8563			return req, nil
8564		},
8565	}
8566
8567	for p.Next() {
8568		if !fn(p.Page().(*DescribeTagsOutput), !p.HasNextPage()) {
8569			break
8570		}
8571	}
8572
8573	return p.Err()
8574}
8575
8576const opDescribeUsageLimits = "DescribeUsageLimits"
8577
8578// DescribeUsageLimitsRequest generates a "aws/request.Request" representing the
8579// client's request for the DescribeUsageLimits operation. The "output" return
8580// value will be populated with the request's response once the request completes
8581// successfully.
8582//
8583// Use "Send" method on the returned Request to send the API call to the service.
8584// the "output" return value is not valid until after Send returns without error.
8585//
8586// See DescribeUsageLimits for more information on using the DescribeUsageLimits
8587// API call, and error handling.
8588//
8589// This method is useful when you want to inject custom logic or configuration
8590// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8591//
8592//
8593//    // Example sending a request using the DescribeUsageLimitsRequest method.
8594//    req, resp := client.DescribeUsageLimitsRequest(params)
8595//
8596//    err := req.Send()
8597//    if err == nil { // resp is now filled
8598//        fmt.Println(resp)
8599//    }
8600//
8601// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeUsageLimits
8602func (c *Redshift) DescribeUsageLimitsRequest(input *DescribeUsageLimitsInput) (req *request.Request, output *DescribeUsageLimitsOutput) {
8603	op := &request.Operation{
8604		Name:       opDescribeUsageLimits,
8605		HTTPMethod: "POST",
8606		HTTPPath:   "/",
8607		Paginator: &request.Paginator{
8608			InputTokens:     []string{"Marker"},
8609			OutputTokens:    []string{"Marker"},
8610			LimitToken:      "MaxRecords",
8611			TruncationToken: "",
8612		},
8613	}
8614
8615	if input == nil {
8616		input = &DescribeUsageLimitsInput{}
8617	}
8618
8619	output = &DescribeUsageLimitsOutput{}
8620	req = c.newRequest(op, input, output)
8621	return
8622}
8623
8624// DescribeUsageLimits API operation for Amazon Redshift.
8625//
8626// Shows usage limits on a cluster. Results are filtered based on the combination
8627// of input usage limit identifier, cluster identifier, and feature type parameters:
8628//
8629//    * If usage limit identifier, cluster identifier, and feature type are
8630//    not provided, then all usage limit objects for the current account in
8631//    the current region are returned.
8632//
8633//    * If usage limit identifier is provided, then the corresponding usage
8634//    limit object is returned.
8635//
8636//    * If cluster identifier is provided, then all usage limit objects for
8637//    the specified cluster are returned.
8638//
8639//    * If cluster identifier and feature type are provided, then all usage
8640//    limit objects for the combination of cluster and feature are returned.
8641//
8642// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8643// with awserr.Error's Code and Message methods to get detailed information about
8644// the error.
8645//
8646// See the AWS API reference guide for Amazon Redshift's
8647// API operation DescribeUsageLimits for usage and error information.
8648//
8649// Returned Error Codes:
8650//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
8651//   The ClusterIdentifier parameter does not refer to an existing cluster.
8652//
8653//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
8654//   The requested operation isn't supported.
8655//
8656// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeUsageLimits
8657func (c *Redshift) DescribeUsageLimits(input *DescribeUsageLimitsInput) (*DescribeUsageLimitsOutput, error) {
8658	req, out := c.DescribeUsageLimitsRequest(input)
8659	return out, req.Send()
8660}
8661
8662// DescribeUsageLimitsWithContext is the same as DescribeUsageLimits with the addition of
8663// the ability to pass a context and additional request options.
8664//
8665// See DescribeUsageLimits for details on how to use this API operation.
8666//
8667// The context must be non-nil and will be used for request cancellation. If
8668// the context is nil a panic will occur. In the future the SDK may create
8669// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8670// for more information on using Contexts.
8671func (c *Redshift) DescribeUsageLimitsWithContext(ctx aws.Context, input *DescribeUsageLimitsInput, opts ...request.Option) (*DescribeUsageLimitsOutput, error) {
8672	req, out := c.DescribeUsageLimitsRequest(input)
8673	req.SetContext(ctx)
8674	req.ApplyOptions(opts...)
8675	return out, req.Send()
8676}
8677
8678// DescribeUsageLimitsPages iterates over the pages of a DescribeUsageLimits operation,
8679// calling the "fn" function with the response data for each page. To stop
8680// iterating, return false from the fn function.
8681//
8682// See DescribeUsageLimits method for more information on how to use this operation.
8683//
8684// Note: This operation can generate multiple requests to a service.
8685//
8686//    // Example iterating over at most 3 pages of a DescribeUsageLimits operation.
8687//    pageNum := 0
8688//    err := client.DescribeUsageLimitsPages(params,
8689//        func(page *redshift.DescribeUsageLimitsOutput, lastPage bool) bool {
8690//            pageNum++
8691//            fmt.Println(page)
8692//            return pageNum <= 3
8693//        })
8694//
8695func (c *Redshift) DescribeUsageLimitsPages(input *DescribeUsageLimitsInput, fn func(*DescribeUsageLimitsOutput, bool) bool) error {
8696	return c.DescribeUsageLimitsPagesWithContext(aws.BackgroundContext(), input, fn)
8697}
8698
8699// DescribeUsageLimitsPagesWithContext same as DescribeUsageLimitsPages except
8700// it takes a Context and allows setting request options on the pages.
8701//
8702// The context must be non-nil and will be used for request cancellation. If
8703// the context is nil a panic will occur. In the future the SDK may create
8704// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8705// for more information on using Contexts.
8706func (c *Redshift) DescribeUsageLimitsPagesWithContext(ctx aws.Context, input *DescribeUsageLimitsInput, fn func(*DescribeUsageLimitsOutput, bool) bool, opts ...request.Option) error {
8707	p := request.Pagination{
8708		NewRequest: func() (*request.Request, error) {
8709			var inCpy *DescribeUsageLimitsInput
8710			if input != nil {
8711				tmp := *input
8712				inCpy = &tmp
8713			}
8714			req, _ := c.DescribeUsageLimitsRequest(inCpy)
8715			req.SetContext(ctx)
8716			req.ApplyOptions(opts...)
8717			return req, nil
8718		},
8719	}
8720
8721	for p.Next() {
8722		if !fn(p.Page().(*DescribeUsageLimitsOutput), !p.HasNextPage()) {
8723			break
8724		}
8725	}
8726
8727	return p.Err()
8728}
8729
8730const opDisableLogging = "DisableLogging"
8731
8732// DisableLoggingRequest generates a "aws/request.Request" representing the
8733// client's request for the DisableLogging operation. The "output" return
8734// value will be populated with the request's response once the request completes
8735// successfully.
8736//
8737// Use "Send" method on the returned Request to send the API call to the service.
8738// the "output" return value is not valid until after Send returns without error.
8739//
8740// See DisableLogging for more information on using the DisableLogging
8741// API call, and error handling.
8742//
8743// This method is useful when you want to inject custom logic or configuration
8744// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8745//
8746//
8747//    // Example sending a request using the DisableLoggingRequest method.
8748//    req, resp := client.DisableLoggingRequest(params)
8749//
8750//    err := req.Send()
8751//    if err == nil { // resp is now filled
8752//        fmt.Println(resp)
8753//    }
8754//
8755// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisableLogging
8756func (c *Redshift) DisableLoggingRequest(input *DisableLoggingInput) (req *request.Request, output *LoggingStatus) {
8757	op := &request.Operation{
8758		Name:       opDisableLogging,
8759		HTTPMethod: "POST",
8760		HTTPPath:   "/",
8761	}
8762
8763	if input == nil {
8764		input = &DisableLoggingInput{}
8765	}
8766
8767	output = &LoggingStatus{}
8768	req = c.newRequest(op, input, output)
8769	return
8770}
8771
8772// DisableLogging API operation for Amazon Redshift.
8773//
8774// Stops logging information, such as queries and connection attempts, for the
8775// specified Amazon Redshift cluster.
8776//
8777// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8778// with awserr.Error's Code and Message methods to get detailed information about
8779// the error.
8780//
8781// See the AWS API reference guide for Amazon Redshift's
8782// API operation DisableLogging for usage and error information.
8783//
8784// Returned Error Codes:
8785//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
8786//   The ClusterIdentifier parameter does not refer to an existing cluster.
8787//
8788//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
8789//   The specified cluster is not in the available state.
8790//
8791// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisableLogging
8792func (c *Redshift) DisableLogging(input *DisableLoggingInput) (*LoggingStatus, error) {
8793	req, out := c.DisableLoggingRequest(input)
8794	return out, req.Send()
8795}
8796
8797// DisableLoggingWithContext is the same as DisableLogging with the addition of
8798// the ability to pass a context and additional request options.
8799//
8800// See DisableLogging for details on how to use this API operation.
8801//
8802// The context must be non-nil and will be used for request cancellation. If
8803// the context is nil a panic will occur. In the future the SDK may create
8804// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8805// for more information on using Contexts.
8806func (c *Redshift) DisableLoggingWithContext(ctx aws.Context, input *DisableLoggingInput, opts ...request.Option) (*LoggingStatus, error) {
8807	req, out := c.DisableLoggingRequest(input)
8808	req.SetContext(ctx)
8809	req.ApplyOptions(opts...)
8810	return out, req.Send()
8811}
8812
8813const opDisableSnapshotCopy = "DisableSnapshotCopy"
8814
8815// DisableSnapshotCopyRequest generates a "aws/request.Request" representing the
8816// client's request for the DisableSnapshotCopy operation. The "output" return
8817// value will be populated with the request's response once the request completes
8818// successfully.
8819//
8820// Use "Send" method on the returned Request to send the API call to the service.
8821// the "output" return value is not valid until after Send returns without error.
8822//
8823// See DisableSnapshotCopy for more information on using the DisableSnapshotCopy
8824// API call, and error handling.
8825//
8826// This method is useful when you want to inject custom logic or configuration
8827// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8828//
8829//
8830//    // Example sending a request using the DisableSnapshotCopyRequest method.
8831//    req, resp := client.DisableSnapshotCopyRequest(params)
8832//
8833//    err := req.Send()
8834//    if err == nil { // resp is now filled
8835//        fmt.Println(resp)
8836//    }
8837//
8838// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisableSnapshotCopy
8839func (c *Redshift) DisableSnapshotCopyRequest(input *DisableSnapshotCopyInput) (req *request.Request, output *DisableSnapshotCopyOutput) {
8840	op := &request.Operation{
8841		Name:       opDisableSnapshotCopy,
8842		HTTPMethod: "POST",
8843		HTTPPath:   "/",
8844	}
8845
8846	if input == nil {
8847		input = &DisableSnapshotCopyInput{}
8848	}
8849
8850	output = &DisableSnapshotCopyOutput{}
8851	req = c.newRequest(op, input, output)
8852	return
8853}
8854
8855// DisableSnapshotCopy API operation for Amazon Redshift.
8856//
8857// Disables the automatic copying of snapshots from one region to another region
8858// for a specified cluster.
8859//
8860// If your cluster and its snapshots are encrypted using a customer master key
8861// (CMK) from Key Management Service, use DeleteSnapshotCopyGrant to delete
8862// the grant that grants Amazon Redshift permission to the CMK in the destination
8863// region.
8864//
8865// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8866// with awserr.Error's Code and Message methods to get detailed information about
8867// the error.
8868//
8869// See the AWS API reference guide for Amazon Redshift's
8870// API operation DisableSnapshotCopy for usage and error information.
8871//
8872// Returned Error Codes:
8873//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
8874//   The ClusterIdentifier parameter does not refer to an existing cluster.
8875//
8876//   * ErrCodeSnapshotCopyAlreadyDisabledFault "SnapshotCopyAlreadyDisabledFault"
8877//   The cluster already has cross-region snapshot copy disabled.
8878//
8879//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
8880//   The specified cluster is not in the available state.
8881//
8882//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
8883//   Your account is not authorized to perform the requested operation.
8884//
8885// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisableSnapshotCopy
8886func (c *Redshift) DisableSnapshotCopy(input *DisableSnapshotCopyInput) (*DisableSnapshotCopyOutput, error) {
8887	req, out := c.DisableSnapshotCopyRequest(input)
8888	return out, req.Send()
8889}
8890
8891// DisableSnapshotCopyWithContext is the same as DisableSnapshotCopy with the addition of
8892// the ability to pass a context and additional request options.
8893//
8894// See DisableSnapshotCopy for details on how to use this API operation.
8895//
8896// The context must be non-nil and will be used for request cancellation. If
8897// the context is nil a panic will occur. In the future the SDK may create
8898// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8899// for more information on using Contexts.
8900func (c *Redshift) DisableSnapshotCopyWithContext(ctx aws.Context, input *DisableSnapshotCopyInput, opts ...request.Option) (*DisableSnapshotCopyOutput, error) {
8901	req, out := c.DisableSnapshotCopyRequest(input)
8902	req.SetContext(ctx)
8903	req.ApplyOptions(opts...)
8904	return out, req.Send()
8905}
8906
8907const opDisassociateDataShareConsumer = "DisassociateDataShareConsumer"
8908
8909// DisassociateDataShareConsumerRequest generates a "aws/request.Request" representing the
8910// client's request for the DisassociateDataShareConsumer operation. The "output" return
8911// value will be populated with the request's response once the request completes
8912// successfully.
8913//
8914// Use "Send" method on the returned Request to send the API call to the service.
8915// the "output" return value is not valid until after Send returns without error.
8916//
8917// See DisassociateDataShareConsumer for more information on using the DisassociateDataShareConsumer
8918// API call, and error handling.
8919//
8920// This method is useful when you want to inject custom logic or configuration
8921// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8922//
8923//
8924//    // Example sending a request using the DisassociateDataShareConsumerRequest method.
8925//    req, resp := client.DisassociateDataShareConsumerRequest(params)
8926//
8927//    err := req.Send()
8928//    if err == nil { // resp is now filled
8929//        fmt.Println(resp)
8930//    }
8931//
8932// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisassociateDataShareConsumer
8933func (c *Redshift) DisassociateDataShareConsumerRequest(input *DisassociateDataShareConsumerInput) (req *request.Request, output *DisassociateDataShareConsumerOutput) {
8934	op := &request.Operation{
8935		Name:       opDisassociateDataShareConsumer,
8936		HTTPMethod: "POST",
8937		HTTPPath:   "/",
8938	}
8939
8940	if input == nil {
8941		input = &DisassociateDataShareConsumerInput{}
8942	}
8943
8944	output = &DisassociateDataShareConsumerOutput{}
8945	req = c.newRequest(op, input, output)
8946	return
8947}
8948
8949// DisassociateDataShareConsumer API operation for Amazon Redshift.
8950//
8951// From a consumer account, remove association for the specified datashare.
8952//
8953// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8954// with awserr.Error's Code and Message methods to get detailed information about
8955// the error.
8956//
8957// See the AWS API reference guide for Amazon Redshift's
8958// API operation DisassociateDataShareConsumer for usage and error information.
8959//
8960// Returned Error Codes:
8961//   * ErrCodeInvalidDataShareFault "InvalidDataShareFault"
8962//   There is an error with the datashare.
8963//
8964//   * ErrCodeInvalidNamespaceFault "InvalidNamespaceFault"
8965//   The namespace isn't valid because the namespace doesn't exist. Provide a
8966//   valid namespace.
8967//
8968// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisassociateDataShareConsumer
8969func (c *Redshift) DisassociateDataShareConsumer(input *DisassociateDataShareConsumerInput) (*DisassociateDataShareConsumerOutput, error) {
8970	req, out := c.DisassociateDataShareConsumerRequest(input)
8971	return out, req.Send()
8972}
8973
8974// DisassociateDataShareConsumerWithContext is the same as DisassociateDataShareConsumer with the addition of
8975// the ability to pass a context and additional request options.
8976//
8977// See DisassociateDataShareConsumer for details on how to use this API operation.
8978//
8979// The context must be non-nil and will be used for request cancellation. If
8980// the context is nil a panic will occur. In the future the SDK may create
8981// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8982// for more information on using Contexts.
8983func (c *Redshift) DisassociateDataShareConsumerWithContext(ctx aws.Context, input *DisassociateDataShareConsumerInput, opts ...request.Option) (*DisassociateDataShareConsumerOutput, error) {
8984	req, out := c.DisassociateDataShareConsumerRequest(input)
8985	req.SetContext(ctx)
8986	req.ApplyOptions(opts...)
8987	return out, req.Send()
8988}
8989
8990const opEnableLogging = "EnableLogging"
8991
8992// EnableLoggingRequest generates a "aws/request.Request" representing the
8993// client's request for the EnableLogging operation. The "output" return
8994// value will be populated with the request's response once the request completes
8995// successfully.
8996//
8997// Use "Send" method on the returned Request to send the API call to the service.
8998// the "output" return value is not valid until after Send returns without error.
8999//
9000// See EnableLogging for more information on using the EnableLogging
9001// API call, and error handling.
9002//
9003// This method is useful when you want to inject custom logic or configuration
9004// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9005//
9006//
9007//    // Example sending a request using the EnableLoggingRequest method.
9008//    req, resp := client.EnableLoggingRequest(params)
9009//
9010//    err := req.Send()
9011//    if err == nil { // resp is now filled
9012//        fmt.Println(resp)
9013//    }
9014//
9015// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EnableLogging
9016func (c *Redshift) EnableLoggingRequest(input *EnableLoggingInput) (req *request.Request, output *LoggingStatus) {
9017	op := &request.Operation{
9018		Name:       opEnableLogging,
9019		HTTPMethod: "POST",
9020		HTTPPath:   "/",
9021	}
9022
9023	if input == nil {
9024		input = &EnableLoggingInput{}
9025	}
9026
9027	output = &LoggingStatus{}
9028	req = c.newRequest(op, input, output)
9029	return
9030}
9031
9032// EnableLogging API operation for Amazon Redshift.
9033//
9034// Starts logging information, such as queries and connection attempts, for
9035// the specified Amazon Redshift cluster.
9036//
9037// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9038// with awserr.Error's Code and Message methods to get detailed information about
9039// the error.
9040//
9041// See the AWS API reference guide for Amazon Redshift's
9042// API operation EnableLogging for usage and error information.
9043//
9044// Returned Error Codes:
9045//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
9046//   The ClusterIdentifier parameter does not refer to an existing cluster.
9047//
9048//   * ErrCodeBucketNotFoundFault "BucketNotFoundFault"
9049//   Could not find the specified S3 bucket.
9050//
9051//   * ErrCodeInsufficientS3BucketPolicyFault "InsufficientS3BucketPolicyFault"
9052//   The cluster does not have read bucket or put object permissions on the S3
9053//   bucket specified when enabling logging.
9054//
9055//   * ErrCodeInvalidS3KeyPrefixFault "InvalidS3KeyPrefixFault"
9056//   The string specified for the logging S3 key prefix does not comply with the
9057//   documented constraints.
9058//
9059//   * ErrCodeInvalidS3BucketNameFault "InvalidS3BucketNameFault"
9060//   The S3 bucket name is invalid. For more information about naming rules, go
9061//   to Bucket Restrictions and Limitations (https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)
9062//   in the Amazon Simple Storage Service (S3) Developer Guide.
9063//
9064//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
9065//   The specified cluster is not in the available state.
9066//
9067// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EnableLogging
9068func (c *Redshift) EnableLogging(input *EnableLoggingInput) (*LoggingStatus, error) {
9069	req, out := c.EnableLoggingRequest(input)
9070	return out, req.Send()
9071}
9072
9073// EnableLoggingWithContext is the same as EnableLogging with the addition of
9074// the ability to pass a context and additional request options.
9075//
9076// See EnableLogging for details on how to use this API operation.
9077//
9078// The context must be non-nil and will be used for request cancellation. If
9079// the context is nil a panic will occur. In the future the SDK may create
9080// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9081// for more information on using Contexts.
9082func (c *Redshift) EnableLoggingWithContext(ctx aws.Context, input *EnableLoggingInput, opts ...request.Option) (*LoggingStatus, error) {
9083	req, out := c.EnableLoggingRequest(input)
9084	req.SetContext(ctx)
9085	req.ApplyOptions(opts...)
9086	return out, req.Send()
9087}
9088
9089const opEnableSnapshotCopy = "EnableSnapshotCopy"
9090
9091// EnableSnapshotCopyRequest generates a "aws/request.Request" representing the
9092// client's request for the EnableSnapshotCopy operation. The "output" return
9093// value will be populated with the request's response once the request completes
9094// successfully.
9095//
9096// Use "Send" method on the returned Request to send the API call to the service.
9097// the "output" return value is not valid until after Send returns without error.
9098//
9099// See EnableSnapshotCopy for more information on using the EnableSnapshotCopy
9100// API call, and error handling.
9101//
9102// This method is useful when you want to inject custom logic or configuration
9103// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9104//
9105//
9106//    // Example sending a request using the EnableSnapshotCopyRequest method.
9107//    req, resp := client.EnableSnapshotCopyRequest(params)
9108//
9109//    err := req.Send()
9110//    if err == nil { // resp is now filled
9111//        fmt.Println(resp)
9112//    }
9113//
9114// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EnableSnapshotCopy
9115func (c *Redshift) EnableSnapshotCopyRequest(input *EnableSnapshotCopyInput) (req *request.Request, output *EnableSnapshotCopyOutput) {
9116	op := &request.Operation{
9117		Name:       opEnableSnapshotCopy,
9118		HTTPMethod: "POST",
9119		HTTPPath:   "/",
9120	}
9121
9122	if input == nil {
9123		input = &EnableSnapshotCopyInput{}
9124	}
9125
9126	output = &EnableSnapshotCopyOutput{}
9127	req = c.newRequest(op, input, output)
9128	return
9129}
9130
9131// EnableSnapshotCopy API operation for Amazon Redshift.
9132//
9133// Enables the automatic copy of snapshots from one region to another region
9134// for a specified cluster.
9135//
9136// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9137// with awserr.Error's Code and Message methods to get detailed information about
9138// the error.
9139//
9140// See the AWS API reference guide for Amazon Redshift's
9141// API operation EnableSnapshotCopy for usage and error information.
9142//
9143// Returned Error Codes:
9144//   * ErrCodeIncompatibleOrderableOptions "IncompatibleOrderableOptions"
9145//   The specified options are incompatible.
9146//
9147//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
9148//   The specified cluster is not in the available state.
9149//
9150//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
9151//   The ClusterIdentifier parameter does not refer to an existing cluster.
9152//
9153//   * ErrCodeCopyToRegionDisabledFault "CopyToRegionDisabledFault"
9154//   Cross-region snapshot copy was temporarily disabled. Try your request again.
9155//
9156//   * ErrCodeSnapshotCopyAlreadyEnabledFault "SnapshotCopyAlreadyEnabledFault"
9157//   The cluster already has cross-region snapshot copy enabled.
9158//
9159//   * ErrCodeUnknownSnapshotCopyRegionFault "UnknownSnapshotCopyRegionFault"
9160//   The specified region is incorrect or does not exist.
9161//
9162//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
9163//   Your account is not authorized to perform the requested operation.
9164//
9165//   * ErrCodeSnapshotCopyGrantNotFoundFault "SnapshotCopyGrantNotFoundFault"
9166//   The specified snapshot copy grant can't be found. Make sure that the name
9167//   is typed correctly and that the grant exists in the destination region.
9168//
9169//   * ErrCodeLimitExceededFault "LimitExceededFault"
9170//   The encryption key has exceeded its grant limit in Amazon Web Services KMS.
9171//
9172//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
9173//   The request cannot be completed because a dependent service is throttling
9174//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
9175//
9176//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
9177//   The retention period specified is either in the past or is not a valid value.
9178//
9179//   The value must be either -1 or an integer between 1 and 3,653.
9180//
9181// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EnableSnapshotCopy
9182func (c *Redshift) EnableSnapshotCopy(input *EnableSnapshotCopyInput) (*EnableSnapshotCopyOutput, error) {
9183	req, out := c.EnableSnapshotCopyRequest(input)
9184	return out, req.Send()
9185}
9186
9187// EnableSnapshotCopyWithContext is the same as EnableSnapshotCopy with the addition of
9188// the ability to pass a context and additional request options.
9189//
9190// See EnableSnapshotCopy for details on how to use this API operation.
9191//
9192// The context must be non-nil and will be used for request cancellation. If
9193// the context is nil a panic will occur. In the future the SDK may create
9194// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9195// for more information on using Contexts.
9196func (c *Redshift) EnableSnapshotCopyWithContext(ctx aws.Context, input *EnableSnapshotCopyInput, opts ...request.Option) (*EnableSnapshotCopyOutput, error) {
9197	req, out := c.EnableSnapshotCopyRequest(input)
9198	req.SetContext(ctx)
9199	req.ApplyOptions(opts...)
9200	return out, req.Send()
9201}
9202
9203const opGetClusterCredentials = "GetClusterCredentials"
9204
9205// GetClusterCredentialsRequest generates a "aws/request.Request" representing the
9206// client's request for the GetClusterCredentials operation. The "output" return
9207// value will be populated with the request's response once the request completes
9208// successfully.
9209//
9210// Use "Send" method on the returned Request to send the API call to the service.
9211// the "output" return value is not valid until after Send returns without error.
9212//
9213// See GetClusterCredentials for more information on using the GetClusterCredentials
9214// API call, and error handling.
9215//
9216// This method is useful when you want to inject custom logic or configuration
9217// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9218//
9219//
9220//    // Example sending a request using the GetClusterCredentialsRequest method.
9221//    req, resp := client.GetClusterCredentialsRequest(params)
9222//
9223//    err := req.Send()
9224//    if err == nil { // resp is now filled
9225//        fmt.Println(resp)
9226//    }
9227//
9228// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/GetClusterCredentials
9229func (c *Redshift) GetClusterCredentialsRequest(input *GetClusterCredentialsInput) (req *request.Request, output *GetClusterCredentialsOutput) {
9230	op := &request.Operation{
9231		Name:       opGetClusterCredentials,
9232		HTTPMethod: "POST",
9233		HTTPPath:   "/",
9234	}
9235
9236	if input == nil {
9237		input = &GetClusterCredentialsInput{}
9238	}
9239
9240	output = &GetClusterCredentialsOutput{}
9241	req = c.newRequest(op, input, output)
9242	return
9243}
9244
9245// GetClusterCredentials API operation for Amazon Redshift.
9246//
9247// Returns a database user name and temporary password with temporary authorization
9248// to log on to an Amazon Redshift database. The action returns the database
9249// user name prefixed with IAM: if AutoCreate is False or IAMA: if AutoCreate
9250// is True. You can optionally specify one or more database user groups that
9251// the user will join at log on. By default, the temporary credentials expire
9252// in 900 seconds. You can optionally specify a duration between 900 seconds
9253// (15 minutes) and 3600 seconds (60 minutes). For more information, see Using
9254// IAM Authentication to Generate Database User Credentials (https://docs.aws.amazon.com/redshift/latest/mgmt/generating-user-credentials.html)
9255// in the Amazon Redshift Cluster Management Guide.
9256//
9257// The Identity and Access Management (IAM) user or role that runs GetClusterCredentials
9258// must have an IAM policy attached that allows access to all necessary actions
9259// and resources. For more information about permissions, see Resource Policies
9260// for GetClusterCredentials (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html#redshift-policy-resources.getclustercredentials-resources)
9261// in the Amazon Redshift Cluster Management Guide.
9262//
9263// If the DbGroups parameter is specified, the IAM policy must allow the redshift:JoinGroup
9264// action with access to the listed dbgroups.
9265//
9266// In addition, if the AutoCreate parameter is set to True, then the policy
9267// must include the redshift:CreateClusterUser privilege.
9268//
9269// If the DbName parameter is specified, the IAM policy must allow access to
9270// the resource dbname for the specified database name.
9271//
9272// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9273// with awserr.Error's Code and Message methods to get detailed information about
9274// the error.
9275//
9276// See the AWS API reference guide for Amazon Redshift's
9277// API operation GetClusterCredentials for usage and error information.
9278//
9279// Returned Error Codes:
9280//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
9281//   The ClusterIdentifier parameter does not refer to an existing cluster.
9282//
9283//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
9284//   The requested operation isn't supported.
9285//
9286// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/GetClusterCredentials
9287func (c *Redshift) GetClusterCredentials(input *GetClusterCredentialsInput) (*GetClusterCredentialsOutput, error) {
9288	req, out := c.GetClusterCredentialsRequest(input)
9289	return out, req.Send()
9290}
9291
9292// GetClusterCredentialsWithContext is the same as GetClusterCredentials with the addition of
9293// the ability to pass a context and additional request options.
9294//
9295// See GetClusterCredentials for details on how to use this API operation.
9296//
9297// The context must be non-nil and will be used for request cancellation. If
9298// the context is nil a panic will occur. In the future the SDK may create
9299// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9300// for more information on using Contexts.
9301func (c *Redshift) GetClusterCredentialsWithContext(ctx aws.Context, input *GetClusterCredentialsInput, opts ...request.Option) (*GetClusterCredentialsOutput, error) {
9302	req, out := c.GetClusterCredentialsRequest(input)
9303	req.SetContext(ctx)
9304	req.ApplyOptions(opts...)
9305	return out, req.Send()
9306}
9307
9308const opGetReservedNodeExchangeOfferings = "GetReservedNodeExchangeOfferings"
9309
9310// GetReservedNodeExchangeOfferingsRequest generates a "aws/request.Request" representing the
9311// client's request for the GetReservedNodeExchangeOfferings operation. The "output" return
9312// value will be populated with the request's response once the request completes
9313// successfully.
9314//
9315// Use "Send" method on the returned Request to send the API call to the service.
9316// the "output" return value is not valid until after Send returns without error.
9317//
9318// See GetReservedNodeExchangeOfferings for more information on using the GetReservedNodeExchangeOfferings
9319// API call, and error handling.
9320//
9321// This method is useful when you want to inject custom logic or configuration
9322// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9323//
9324//
9325//    // Example sending a request using the GetReservedNodeExchangeOfferingsRequest method.
9326//    req, resp := client.GetReservedNodeExchangeOfferingsRequest(params)
9327//
9328//    err := req.Send()
9329//    if err == nil { // resp is now filled
9330//        fmt.Println(resp)
9331//    }
9332//
9333// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/GetReservedNodeExchangeOfferings
9334func (c *Redshift) GetReservedNodeExchangeOfferingsRequest(input *GetReservedNodeExchangeOfferingsInput) (req *request.Request, output *GetReservedNodeExchangeOfferingsOutput) {
9335	op := &request.Operation{
9336		Name:       opGetReservedNodeExchangeOfferings,
9337		HTTPMethod: "POST",
9338		HTTPPath:   "/",
9339		Paginator: &request.Paginator{
9340			InputTokens:     []string{"Marker"},
9341			OutputTokens:    []string{"Marker"},
9342			LimitToken:      "MaxRecords",
9343			TruncationToken: "",
9344		},
9345	}
9346
9347	if input == nil {
9348		input = &GetReservedNodeExchangeOfferingsInput{}
9349	}
9350
9351	output = &GetReservedNodeExchangeOfferingsOutput{}
9352	req = c.newRequest(op, input, output)
9353	return
9354}
9355
9356// GetReservedNodeExchangeOfferings API operation for Amazon Redshift.
9357//
9358// Returns an array of DC2 ReservedNodeOfferings that matches the payment type,
9359// term, and usage price of the given DC1 reserved node.
9360//
9361// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9362// with awserr.Error's Code and Message methods to get detailed information about
9363// the error.
9364//
9365// See the AWS API reference guide for Amazon Redshift's
9366// API operation GetReservedNodeExchangeOfferings for usage and error information.
9367//
9368// Returned Error Codes:
9369//   * ErrCodeReservedNodeNotFoundFault "ReservedNodeNotFound"
9370//   The specified reserved compute node not found.
9371//
9372//   * ErrCodeInvalidReservedNodeStateFault "InvalidReservedNodeState"
9373//   Indicates that the Reserved Node being exchanged is not in an active state.
9374//
9375//   * ErrCodeReservedNodeAlreadyMigratedFault "ReservedNodeAlreadyMigrated"
9376//   Indicates that the reserved node has already been exchanged.
9377//
9378//   * ErrCodeReservedNodeOfferingNotFoundFault "ReservedNodeOfferingNotFound"
9379//   Specified offering does not exist.
9380//
9381//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
9382//   The requested operation isn't supported.
9383//
9384//   * ErrCodeDependentServiceUnavailableFault "DependentServiceUnavailableFault"
9385//   Your request cannot be completed because a dependent internal service is
9386//   temporarily unavailable. Wait 30 to 60 seconds and try again.
9387//
9388// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/GetReservedNodeExchangeOfferings
9389func (c *Redshift) GetReservedNodeExchangeOfferings(input *GetReservedNodeExchangeOfferingsInput) (*GetReservedNodeExchangeOfferingsOutput, error) {
9390	req, out := c.GetReservedNodeExchangeOfferingsRequest(input)
9391	return out, req.Send()
9392}
9393
9394// GetReservedNodeExchangeOfferingsWithContext is the same as GetReservedNodeExchangeOfferings with the addition of
9395// the ability to pass a context and additional request options.
9396//
9397// See GetReservedNodeExchangeOfferings for details on how to use this API operation.
9398//
9399// The context must be non-nil and will be used for request cancellation. If
9400// the context is nil a panic will occur. In the future the SDK may create
9401// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9402// for more information on using Contexts.
9403func (c *Redshift) GetReservedNodeExchangeOfferingsWithContext(ctx aws.Context, input *GetReservedNodeExchangeOfferingsInput, opts ...request.Option) (*GetReservedNodeExchangeOfferingsOutput, error) {
9404	req, out := c.GetReservedNodeExchangeOfferingsRequest(input)
9405	req.SetContext(ctx)
9406	req.ApplyOptions(opts...)
9407	return out, req.Send()
9408}
9409
9410// GetReservedNodeExchangeOfferingsPages iterates over the pages of a GetReservedNodeExchangeOfferings operation,
9411// calling the "fn" function with the response data for each page. To stop
9412// iterating, return false from the fn function.
9413//
9414// See GetReservedNodeExchangeOfferings method for more information on how to use this operation.
9415//
9416// Note: This operation can generate multiple requests to a service.
9417//
9418//    // Example iterating over at most 3 pages of a GetReservedNodeExchangeOfferings operation.
9419//    pageNum := 0
9420//    err := client.GetReservedNodeExchangeOfferingsPages(params,
9421//        func(page *redshift.GetReservedNodeExchangeOfferingsOutput, lastPage bool) bool {
9422//            pageNum++
9423//            fmt.Println(page)
9424//            return pageNum <= 3
9425//        })
9426//
9427func (c *Redshift) GetReservedNodeExchangeOfferingsPages(input *GetReservedNodeExchangeOfferingsInput, fn func(*GetReservedNodeExchangeOfferingsOutput, bool) bool) error {
9428	return c.GetReservedNodeExchangeOfferingsPagesWithContext(aws.BackgroundContext(), input, fn)
9429}
9430
9431// GetReservedNodeExchangeOfferingsPagesWithContext same as GetReservedNodeExchangeOfferingsPages except
9432// it takes a Context and allows setting request options on the pages.
9433//
9434// The context must be non-nil and will be used for request cancellation. If
9435// the context is nil a panic will occur. In the future the SDK may create
9436// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9437// for more information on using Contexts.
9438func (c *Redshift) GetReservedNodeExchangeOfferingsPagesWithContext(ctx aws.Context, input *GetReservedNodeExchangeOfferingsInput, fn func(*GetReservedNodeExchangeOfferingsOutput, bool) bool, opts ...request.Option) error {
9439	p := request.Pagination{
9440		NewRequest: func() (*request.Request, error) {
9441			var inCpy *GetReservedNodeExchangeOfferingsInput
9442			if input != nil {
9443				tmp := *input
9444				inCpy = &tmp
9445			}
9446			req, _ := c.GetReservedNodeExchangeOfferingsRequest(inCpy)
9447			req.SetContext(ctx)
9448			req.ApplyOptions(opts...)
9449			return req, nil
9450		},
9451	}
9452
9453	for p.Next() {
9454		if !fn(p.Page().(*GetReservedNodeExchangeOfferingsOutput), !p.HasNextPage()) {
9455			break
9456		}
9457	}
9458
9459	return p.Err()
9460}
9461
9462const opModifyAquaConfiguration = "ModifyAquaConfiguration"
9463
9464// ModifyAquaConfigurationRequest generates a "aws/request.Request" representing the
9465// client's request for the ModifyAquaConfiguration operation. The "output" return
9466// value will be populated with the request's response once the request completes
9467// successfully.
9468//
9469// Use "Send" method on the returned Request to send the API call to the service.
9470// the "output" return value is not valid until after Send returns without error.
9471//
9472// See ModifyAquaConfiguration for more information on using the ModifyAquaConfiguration
9473// API call, and error handling.
9474//
9475// This method is useful when you want to inject custom logic or configuration
9476// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9477//
9478//
9479//    // Example sending a request using the ModifyAquaConfigurationRequest method.
9480//    req, resp := client.ModifyAquaConfigurationRequest(params)
9481//
9482//    err := req.Send()
9483//    if err == nil { // resp is now filled
9484//        fmt.Println(resp)
9485//    }
9486//
9487// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyAquaConfiguration
9488func (c *Redshift) ModifyAquaConfigurationRequest(input *ModifyAquaConfigurationInput) (req *request.Request, output *ModifyAquaConfigurationOutput) {
9489	op := &request.Operation{
9490		Name:       opModifyAquaConfiguration,
9491		HTTPMethod: "POST",
9492		HTTPPath:   "/",
9493	}
9494
9495	if input == nil {
9496		input = &ModifyAquaConfigurationInput{}
9497	}
9498
9499	output = &ModifyAquaConfigurationOutput{}
9500	req = c.newRequest(op, input, output)
9501	return
9502}
9503
9504// ModifyAquaConfiguration API operation for Amazon Redshift.
9505//
9506// Modifies whether a cluster can use AQUA (Advanced Query Accelerator).
9507//
9508// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9509// with awserr.Error's Code and Message methods to get detailed information about
9510// the error.
9511//
9512// See the AWS API reference guide for Amazon Redshift's
9513// API operation ModifyAquaConfiguration for usage and error information.
9514//
9515// Returned Error Codes:
9516//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
9517//   The ClusterIdentifier parameter does not refer to an existing cluster.
9518//
9519//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
9520//   The specified cluster is not in the available state.
9521//
9522//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
9523//   The requested operation isn't supported.
9524//
9525// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyAquaConfiguration
9526func (c *Redshift) ModifyAquaConfiguration(input *ModifyAquaConfigurationInput) (*ModifyAquaConfigurationOutput, error) {
9527	req, out := c.ModifyAquaConfigurationRequest(input)
9528	return out, req.Send()
9529}
9530
9531// ModifyAquaConfigurationWithContext is the same as ModifyAquaConfiguration with the addition of
9532// the ability to pass a context and additional request options.
9533//
9534// See ModifyAquaConfiguration for details on how to use this API operation.
9535//
9536// The context must be non-nil and will be used for request cancellation. If
9537// the context is nil a panic will occur. In the future the SDK may create
9538// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9539// for more information on using Contexts.
9540func (c *Redshift) ModifyAquaConfigurationWithContext(ctx aws.Context, input *ModifyAquaConfigurationInput, opts ...request.Option) (*ModifyAquaConfigurationOutput, error) {
9541	req, out := c.ModifyAquaConfigurationRequest(input)
9542	req.SetContext(ctx)
9543	req.ApplyOptions(opts...)
9544	return out, req.Send()
9545}
9546
9547const opModifyAuthenticationProfile = "ModifyAuthenticationProfile"
9548
9549// ModifyAuthenticationProfileRequest generates a "aws/request.Request" representing the
9550// client's request for the ModifyAuthenticationProfile operation. The "output" return
9551// value will be populated with the request's response once the request completes
9552// successfully.
9553//
9554// Use "Send" method on the returned Request to send the API call to the service.
9555// the "output" return value is not valid until after Send returns without error.
9556//
9557// See ModifyAuthenticationProfile for more information on using the ModifyAuthenticationProfile
9558// API call, and error handling.
9559//
9560// This method is useful when you want to inject custom logic or configuration
9561// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9562//
9563//
9564//    // Example sending a request using the ModifyAuthenticationProfileRequest method.
9565//    req, resp := client.ModifyAuthenticationProfileRequest(params)
9566//
9567//    err := req.Send()
9568//    if err == nil { // resp is now filled
9569//        fmt.Println(resp)
9570//    }
9571//
9572// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyAuthenticationProfile
9573func (c *Redshift) ModifyAuthenticationProfileRequest(input *ModifyAuthenticationProfileInput) (req *request.Request, output *ModifyAuthenticationProfileOutput) {
9574	op := &request.Operation{
9575		Name:       opModifyAuthenticationProfile,
9576		HTTPMethod: "POST",
9577		HTTPPath:   "/",
9578	}
9579
9580	if input == nil {
9581		input = &ModifyAuthenticationProfileInput{}
9582	}
9583
9584	output = &ModifyAuthenticationProfileOutput{}
9585	req = c.newRequest(op, input, output)
9586	return
9587}
9588
9589// ModifyAuthenticationProfile API operation for Amazon Redshift.
9590//
9591// Modifies an authentication profile.
9592//
9593// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9594// with awserr.Error's Code and Message methods to get detailed information about
9595// the error.
9596//
9597// See the AWS API reference guide for Amazon Redshift's
9598// API operation ModifyAuthenticationProfile for usage and error information.
9599//
9600// Returned Error Codes:
9601//   * ErrCodeAuthenticationProfileNotFoundFault "AuthenticationProfileNotFoundFault"
9602//   The authentication profile can't be found.
9603//
9604//   * ErrCodeAuthenticationProfileQuotaExceededFault "AuthenticationProfileQuotaExceededFault"
9605//   The size or number of authentication profiles has exceeded the quota. The
9606//   maximum length of the JSON string and maximum number of authentication profiles
9607//   is determined by a quota for your account.
9608//
9609//   * ErrCodeInvalidAuthenticationProfileRequestFault "InvalidAuthenticationProfileRequestFault"
9610//   The authentication profile request is not valid. The profile name can't be
9611//   null or empty. The authentication profile API operation must be available
9612//   in the Amazon Web Services Region.
9613//
9614// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyAuthenticationProfile
9615func (c *Redshift) ModifyAuthenticationProfile(input *ModifyAuthenticationProfileInput) (*ModifyAuthenticationProfileOutput, error) {
9616	req, out := c.ModifyAuthenticationProfileRequest(input)
9617	return out, req.Send()
9618}
9619
9620// ModifyAuthenticationProfileWithContext is the same as ModifyAuthenticationProfile with the addition of
9621// the ability to pass a context and additional request options.
9622//
9623// See ModifyAuthenticationProfile for details on how to use this API operation.
9624//
9625// The context must be non-nil and will be used for request cancellation. If
9626// the context is nil a panic will occur. In the future the SDK may create
9627// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9628// for more information on using Contexts.
9629func (c *Redshift) ModifyAuthenticationProfileWithContext(ctx aws.Context, input *ModifyAuthenticationProfileInput, opts ...request.Option) (*ModifyAuthenticationProfileOutput, error) {
9630	req, out := c.ModifyAuthenticationProfileRequest(input)
9631	req.SetContext(ctx)
9632	req.ApplyOptions(opts...)
9633	return out, req.Send()
9634}
9635
9636const opModifyCluster = "ModifyCluster"
9637
9638// ModifyClusterRequest generates a "aws/request.Request" representing the
9639// client's request for the ModifyCluster operation. The "output" return
9640// value will be populated with the request's response once the request completes
9641// successfully.
9642//
9643// Use "Send" method on the returned Request to send the API call to the service.
9644// the "output" return value is not valid until after Send returns without error.
9645//
9646// See ModifyCluster for more information on using the ModifyCluster
9647// API call, and error handling.
9648//
9649// This method is useful when you want to inject custom logic or configuration
9650// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9651//
9652//
9653//    // Example sending a request using the ModifyClusterRequest method.
9654//    req, resp := client.ModifyClusterRequest(params)
9655//
9656//    err := req.Send()
9657//    if err == nil { // resp is now filled
9658//        fmt.Println(resp)
9659//    }
9660//
9661// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyCluster
9662func (c *Redshift) ModifyClusterRequest(input *ModifyClusterInput) (req *request.Request, output *ModifyClusterOutput) {
9663	op := &request.Operation{
9664		Name:       opModifyCluster,
9665		HTTPMethod: "POST",
9666		HTTPPath:   "/",
9667	}
9668
9669	if input == nil {
9670		input = &ModifyClusterInput{}
9671	}
9672
9673	output = &ModifyClusterOutput{}
9674	req = c.newRequest(op, input, output)
9675	return
9676}
9677
9678// ModifyCluster API operation for Amazon Redshift.
9679//
9680// Modifies the settings for a cluster.
9681//
9682// You can also change node type and the number of nodes to scale up or down
9683// the cluster. When resizing a cluster, you must specify both the number of
9684// nodes and the node type even if one of the parameters does not change.
9685//
9686// You can add another security or parameter group, or change the admin user
9687// password. Resetting a cluster password or modifying the security groups associated
9688// with a cluster do not need a reboot. However, modifying a parameter group
9689// requires a reboot for parameters to take effect. For more information about
9690// managing clusters, go to Amazon Redshift Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
9691// in the Amazon Redshift Cluster Management Guide.
9692//
9693// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9694// with awserr.Error's Code and Message methods to get detailed information about
9695// the error.
9696//
9697// See the AWS API reference guide for Amazon Redshift's
9698// API operation ModifyCluster for usage and error information.
9699//
9700// Returned Error Codes:
9701//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
9702//   The specified cluster is not in the available state.
9703//
9704//   * ErrCodeInvalidClusterSecurityGroupStateFault "InvalidClusterSecurityGroupState"
9705//   The state of the cluster security group is not available.
9706//
9707//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
9708//   The ClusterIdentifier parameter does not refer to an existing cluster.
9709//
9710//   * ErrCodeNumberOfNodesQuotaExceededFault "NumberOfNodesQuotaExceeded"
9711//   The operation would exceed the number of nodes allotted to the account. For
9712//   information about increasing your quota, go to Limits in Amazon Redshift
9713//   (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
9714//   in the Amazon Redshift Cluster Management Guide.
9715//
9716//   * ErrCodeNumberOfNodesPerClusterLimitExceededFault "NumberOfNodesPerClusterLimitExceeded"
9717//   The operation would exceed the number of nodes allowed for a cluster.
9718//
9719//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
9720//   The cluster security group name does not refer to an existing cluster security
9721//   group.
9722//
9723//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
9724//   The parameter group name does not refer to an existing parameter group.
9725//
9726//   * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacity"
9727//   The number of nodes specified exceeds the allotted capacity of the cluster.
9728//
9729//   * ErrCodeUnsupportedOptionFault "UnsupportedOptionFault"
9730//   A request option was specified that is not supported.
9731//
9732//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
9733//   Your account is not authorized to perform the requested operation.
9734//
9735//   * ErrCodeHsmClientCertificateNotFoundFault "HsmClientCertificateNotFoundFault"
9736//   There is no Amazon Redshift HSM client certificate with the specified identifier.
9737//
9738//   * ErrCodeHsmConfigurationNotFoundFault "HsmConfigurationNotFoundFault"
9739//   There is no Amazon Redshift HSM configuration with the specified identifier.
9740//
9741//   * ErrCodeClusterAlreadyExistsFault "ClusterAlreadyExists"
9742//   The account already has a cluster with the given identifier.
9743//
9744//   * ErrCodeLimitExceededFault "LimitExceededFault"
9745//   The encryption key has exceeded its grant limit in Amazon Web Services KMS.
9746//
9747//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
9748//   The request cannot be completed because a dependent service is throttling
9749//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
9750//
9751//   * ErrCodeInvalidElasticIpFault "InvalidElasticIpFault"
9752//   The Elastic IP (EIP) is invalid or cannot be found.
9753//
9754//   * ErrCodeTableLimitExceededFault "TableLimitExceeded"
9755//   The number of tables in the cluster exceeds the limit for the requested new
9756//   cluster node type.
9757//
9758//   * ErrCodeInvalidClusterTrackFault "InvalidClusterTrack"
9759//   The provided cluster track name is not valid.
9760//
9761//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
9762//   The retention period specified is either in the past or is not a valid value.
9763//
9764//   The value must be either -1 or an integer between 1 and 3,653.
9765//
9766// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyCluster
9767func (c *Redshift) ModifyCluster(input *ModifyClusterInput) (*ModifyClusterOutput, error) {
9768	req, out := c.ModifyClusterRequest(input)
9769	return out, req.Send()
9770}
9771
9772// ModifyClusterWithContext is the same as ModifyCluster with the addition of
9773// the ability to pass a context and additional request options.
9774//
9775// See ModifyCluster for details on how to use this API operation.
9776//
9777// The context must be non-nil and will be used for request cancellation. If
9778// the context is nil a panic will occur. In the future the SDK may create
9779// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9780// for more information on using Contexts.
9781func (c *Redshift) ModifyClusterWithContext(ctx aws.Context, input *ModifyClusterInput, opts ...request.Option) (*ModifyClusterOutput, error) {
9782	req, out := c.ModifyClusterRequest(input)
9783	req.SetContext(ctx)
9784	req.ApplyOptions(opts...)
9785	return out, req.Send()
9786}
9787
9788const opModifyClusterDbRevision = "ModifyClusterDbRevision"
9789
9790// ModifyClusterDbRevisionRequest generates a "aws/request.Request" representing the
9791// client's request for the ModifyClusterDbRevision operation. The "output" return
9792// value will be populated with the request's response once the request completes
9793// successfully.
9794//
9795// Use "Send" method on the returned Request to send the API call to the service.
9796// the "output" return value is not valid until after Send returns without error.
9797//
9798// See ModifyClusterDbRevision for more information on using the ModifyClusterDbRevision
9799// API call, and error handling.
9800//
9801// This method is useful when you want to inject custom logic or configuration
9802// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9803//
9804//
9805//    // Example sending a request using the ModifyClusterDbRevisionRequest method.
9806//    req, resp := client.ModifyClusterDbRevisionRequest(params)
9807//
9808//    err := req.Send()
9809//    if err == nil { // resp is now filled
9810//        fmt.Println(resp)
9811//    }
9812//
9813// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterDbRevision
9814func (c *Redshift) ModifyClusterDbRevisionRequest(input *ModifyClusterDbRevisionInput) (req *request.Request, output *ModifyClusterDbRevisionOutput) {
9815	op := &request.Operation{
9816		Name:       opModifyClusterDbRevision,
9817		HTTPMethod: "POST",
9818		HTTPPath:   "/",
9819	}
9820
9821	if input == nil {
9822		input = &ModifyClusterDbRevisionInput{}
9823	}
9824
9825	output = &ModifyClusterDbRevisionOutput{}
9826	req = c.newRequest(op, input, output)
9827	return
9828}
9829
9830// ModifyClusterDbRevision API operation for Amazon Redshift.
9831//
9832// Modifies the database revision of a cluster. The database revision is a unique
9833// revision of the database running in a cluster.
9834//
9835// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9836// with awserr.Error's Code and Message methods to get detailed information about
9837// the error.
9838//
9839// See the AWS API reference guide for Amazon Redshift's
9840// API operation ModifyClusterDbRevision for usage and error information.
9841//
9842// Returned Error Codes:
9843//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
9844//   The ClusterIdentifier parameter does not refer to an existing cluster.
9845//
9846//   * ErrCodeClusterOnLatestRevisionFault "ClusterOnLatestRevision"
9847//   Cluster is already on the latest database revision.
9848//
9849//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
9850//   The specified cluster is not in the available state.
9851//
9852// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterDbRevision
9853func (c *Redshift) ModifyClusterDbRevision(input *ModifyClusterDbRevisionInput) (*ModifyClusterDbRevisionOutput, error) {
9854	req, out := c.ModifyClusterDbRevisionRequest(input)
9855	return out, req.Send()
9856}
9857
9858// ModifyClusterDbRevisionWithContext is the same as ModifyClusterDbRevision with the addition of
9859// the ability to pass a context and additional request options.
9860//
9861// See ModifyClusterDbRevision for details on how to use this API operation.
9862//
9863// The context must be non-nil and will be used for request cancellation. If
9864// the context is nil a panic will occur. In the future the SDK may create
9865// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9866// for more information on using Contexts.
9867func (c *Redshift) ModifyClusterDbRevisionWithContext(ctx aws.Context, input *ModifyClusterDbRevisionInput, opts ...request.Option) (*ModifyClusterDbRevisionOutput, error) {
9868	req, out := c.ModifyClusterDbRevisionRequest(input)
9869	req.SetContext(ctx)
9870	req.ApplyOptions(opts...)
9871	return out, req.Send()
9872}
9873
9874const opModifyClusterIamRoles = "ModifyClusterIamRoles"
9875
9876// ModifyClusterIamRolesRequest generates a "aws/request.Request" representing the
9877// client's request for the ModifyClusterIamRoles operation. The "output" return
9878// value will be populated with the request's response once the request completes
9879// successfully.
9880//
9881// Use "Send" method on the returned Request to send the API call to the service.
9882// the "output" return value is not valid until after Send returns without error.
9883//
9884// See ModifyClusterIamRoles for more information on using the ModifyClusterIamRoles
9885// API call, and error handling.
9886//
9887// This method is useful when you want to inject custom logic or configuration
9888// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9889//
9890//
9891//    // Example sending a request using the ModifyClusterIamRolesRequest method.
9892//    req, resp := client.ModifyClusterIamRolesRequest(params)
9893//
9894//    err := req.Send()
9895//    if err == nil { // resp is now filled
9896//        fmt.Println(resp)
9897//    }
9898//
9899// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterIamRoles
9900func (c *Redshift) ModifyClusterIamRolesRequest(input *ModifyClusterIamRolesInput) (req *request.Request, output *ModifyClusterIamRolesOutput) {
9901	op := &request.Operation{
9902		Name:       opModifyClusterIamRoles,
9903		HTTPMethod: "POST",
9904		HTTPPath:   "/",
9905	}
9906
9907	if input == nil {
9908		input = &ModifyClusterIamRolesInput{}
9909	}
9910
9911	output = &ModifyClusterIamRolesOutput{}
9912	req = c.newRequest(op, input, output)
9913	return
9914}
9915
9916// ModifyClusterIamRoles API operation for Amazon Redshift.
9917//
9918// Modifies the list of Identity and Access Management (IAM) roles that can
9919// be used by the cluster to access other Amazon Web Services services.
9920//
9921// A cluster can have up to 10 IAM roles associated at any time.
9922//
9923// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9924// with awserr.Error's Code and Message methods to get detailed information about
9925// the error.
9926//
9927// See the AWS API reference guide for Amazon Redshift's
9928// API operation ModifyClusterIamRoles for usage and error information.
9929//
9930// Returned Error Codes:
9931//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
9932//   The specified cluster is not in the available state.
9933//
9934//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
9935//   The ClusterIdentifier parameter does not refer to an existing cluster.
9936//
9937// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterIamRoles
9938func (c *Redshift) ModifyClusterIamRoles(input *ModifyClusterIamRolesInput) (*ModifyClusterIamRolesOutput, error) {
9939	req, out := c.ModifyClusterIamRolesRequest(input)
9940	return out, req.Send()
9941}
9942
9943// ModifyClusterIamRolesWithContext is the same as ModifyClusterIamRoles with the addition of
9944// the ability to pass a context and additional request options.
9945//
9946// See ModifyClusterIamRoles for details on how to use this API operation.
9947//
9948// The context must be non-nil and will be used for request cancellation. If
9949// the context is nil a panic will occur. In the future the SDK may create
9950// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9951// for more information on using Contexts.
9952func (c *Redshift) ModifyClusterIamRolesWithContext(ctx aws.Context, input *ModifyClusterIamRolesInput, opts ...request.Option) (*ModifyClusterIamRolesOutput, error) {
9953	req, out := c.ModifyClusterIamRolesRequest(input)
9954	req.SetContext(ctx)
9955	req.ApplyOptions(opts...)
9956	return out, req.Send()
9957}
9958
9959const opModifyClusterMaintenance = "ModifyClusterMaintenance"
9960
9961// ModifyClusterMaintenanceRequest generates a "aws/request.Request" representing the
9962// client's request for the ModifyClusterMaintenance operation. The "output" return
9963// value will be populated with the request's response once the request completes
9964// successfully.
9965//
9966// Use "Send" method on the returned Request to send the API call to the service.
9967// the "output" return value is not valid until after Send returns without error.
9968//
9969// See ModifyClusterMaintenance for more information on using the ModifyClusterMaintenance
9970// API call, and error handling.
9971//
9972// This method is useful when you want to inject custom logic or configuration
9973// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9974//
9975//
9976//    // Example sending a request using the ModifyClusterMaintenanceRequest method.
9977//    req, resp := client.ModifyClusterMaintenanceRequest(params)
9978//
9979//    err := req.Send()
9980//    if err == nil { // resp is now filled
9981//        fmt.Println(resp)
9982//    }
9983//
9984// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterMaintenance
9985func (c *Redshift) ModifyClusterMaintenanceRequest(input *ModifyClusterMaintenanceInput) (req *request.Request, output *ModifyClusterMaintenanceOutput) {
9986	op := &request.Operation{
9987		Name:       opModifyClusterMaintenance,
9988		HTTPMethod: "POST",
9989		HTTPPath:   "/",
9990	}
9991
9992	if input == nil {
9993		input = &ModifyClusterMaintenanceInput{}
9994	}
9995
9996	output = &ModifyClusterMaintenanceOutput{}
9997	req = c.newRequest(op, input, output)
9998	return
9999}
10000
10001// ModifyClusterMaintenance API operation for Amazon Redshift.
10002//
10003// Modifies the maintenance settings of a cluster.
10004//
10005// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10006// with awserr.Error's Code and Message methods to get detailed information about
10007// the error.
10008//
10009// See the AWS API reference guide for Amazon Redshift's
10010// API operation ModifyClusterMaintenance for usage and error information.
10011//
10012// Returned Error Codes:
10013//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
10014//   The ClusterIdentifier parameter does not refer to an existing cluster.
10015//
10016//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
10017//   The specified cluster is not in the available state.
10018//
10019// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterMaintenance
10020func (c *Redshift) ModifyClusterMaintenance(input *ModifyClusterMaintenanceInput) (*ModifyClusterMaintenanceOutput, error) {
10021	req, out := c.ModifyClusterMaintenanceRequest(input)
10022	return out, req.Send()
10023}
10024
10025// ModifyClusterMaintenanceWithContext is the same as ModifyClusterMaintenance with the addition of
10026// the ability to pass a context and additional request options.
10027//
10028// See ModifyClusterMaintenance for details on how to use this API operation.
10029//
10030// The context must be non-nil and will be used for request cancellation. If
10031// the context is nil a panic will occur. In the future the SDK may create
10032// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10033// for more information on using Contexts.
10034func (c *Redshift) ModifyClusterMaintenanceWithContext(ctx aws.Context, input *ModifyClusterMaintenanceInput, opts ...request.Option) (*ModifyClusterMaintenanceOutput, error) {
10035	req, out := c.ModifyClusterMaintenanceRequest(input)
10036	req.SetContext(ctx)
10037	req.ApplyOptions(opts...)
10038	return out, req.Send()
10039}
10040
10041const opModifyClusterParameterGroup = "ModifyClusterParameterGroup"
10042
10043// ModifyClusterParameterGroupRequest generates a "aws/request.Request" representing the
10044// client's request for the ModifyClusterParameterGroup operation. The "output" return
10045// value will be populated with the request's response once the request completes
10046// successfully.
10047//
10048// Use "Send" method on the returned Request to send the API call to the service.
10049// the "output" return value is not valid until after Send returns without error.
10050//
10051// See ModifyClusterParameterGroup for more information on using the ModifyClusterParameterGroup
10052// API call, and error handling.
10053//
10054// This method is useful when you want to inject custom logic or configuration
10055// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10056//
10057//
10058//    // Example sending a request using the ModifyClusterParameterGroupRequest method.
10059//    req, resp := client.ModifyClusterParameterGroupRequest(params)
10060//
10061//    err := req.Send()
10062//    if err == nil { // resp is now filled
10063//        fmt.Println(resp)
10064//    }
10065//
10066// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterParameterGroup
10067func (c *Redshift) ModifyClusterParameterGroupRequest(input *ModifyClusterParameterGroupInput) (req *request.Request, output *ClusterParameterGroupNameMessage) {
10068	op := &request.Operation{
10069		Name:       opModifyClusterParameterGroup,
10070		HTTPMethod: "POST",
10071		HTTPPath:   "/",
10072	}
10073
10074	if input == nil {
10075		input = &ModifyClusterParameterGroupInput{}
10076	}
10077
10078	output = &ClusterParameterGroupNameMessage{}
10079	req = c.newRequest(op, input, output)
10080	return
10081}
10082
10083// ModifyClusterParameterGroup API operation for Amazon Redshift.
10084//
10085// Modifies the parameters of a parameter group. For the parameters parameter,
10086// it can't contain ASCII characters.
10087//
10088// For more information about parameters and parameter groups, go to Amazon
10089// Redshift Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
10090// in the Amazon Redshift Cluster Management Guide.
10091//
10092// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10093// with awserr.Error's Code and Message methods to get detailed information about
10094// the error.
10095//
10096// See the AWS API reference guide for Amazon Redshift's
10097// API operation ModifyClusterParameterGroup for usage and error information.
10098//
10099// Returned Error Codes:
10100//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
10101//   The parameter group name does not refer to an existing parameter group.
10102//
10103//   * ErrCodeInvalidClusterParameterGroupStateFault "InvalidClusterParameterGroupState"
10104//   The cluster parameter group action can not be completed because another task
10105//   is in progress that involves the parameter group. Wait a few moments and
10106//   try the operation again.
10107//
10108// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterParameterGroup
10109func (c *Redshift) ModifyClusterParameterGroup(input *ModifyClusterParameterGroupInput) (*ClusterParameterGroupNameMessage, error) {
10110	req, out := c.ModifyClusterParameterGroupRequest(input)
10111	return out, req.Send()
10112}
10113
10114// ModifyClusterParameterGroupWithContext is the same as ModifyClusterParameterGroup with the addition of
10115// the ability to pass a context and additional request options.
10116//
10117// See ModifyClusterParameterGroup for details on how to use this API operation.
10118//
10119// The context must be non-nil and will be used for request cancellation. If
10120// the context is nil a panic will occur. In the future the SDK may create
10121// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10122// for more information on using Contexts.
10123func (c *Redshift) ModifyClusterParameterGroupWithContext(ctx aws.Context, input *ModifyClusterParameterGroupInput, opts ...request.Option) (*ClusterParameterGroupNameMessage, error) {
10124	req, out := c.ModifyClusterParameterGroupRequest(input)
10125	req.SetContext(ctx)
10126	req.ApplyOptions(opts...)
10127	return out, req.Send()
10128}
10129
10130const opModifyClusterSnapshot = "ModifyClusterSnapshot"
10131
10132// ModifyClusterSnapshotRequest generates a "aws/request.Request" representing the
10133// client's request for the ModifyClusterSnapshot operation. The "output" return
10134// value will be populated with the request's response once the request completes
10135// successfully.
10136//
10137// Use "Send" method on the returned Request to send the API call to the service.
10138// the "output" return value is not valid until after Send returns without error.
10139//
10140// See ModifyClusterSnapshot for more information on using the ModifyClusterSnapshot
10141// API call, and error handling.
10142//
10143// This method is useful when you want to inject custom logic or configuration
10144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10145//
10146//
10147//    // Example sending a request using the ModifyClusterSnapshotRequest method.
10148//    req, resp := client.ModifyClusterSnapshotRequest(params)
10149//
10150//    err := req.Send()
10151//    if err == nil { // resp is now filled
10152//        fmt.Println(resp)
10153//    }
10154//
10155// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSnapshot
10156func (c *Redshift) ModifyClusterSnapshotRequest(input *ModifyClusterSnapshotInput) (req *request.Request, output *ModifyClusterSnapshotOutput) {
10157	op := &request.Operation{
10158		Name:       opModifyClusterSnapshot,
10159		HTTPMethod: "POST",
10160		HTTPPath:   "/",
10161	}
10162
10163	if input == nil {
10164		input = &ModifyClusterSnapshotInput{}
10165	}
10166
10167	output = &ModifyClusterSnapshotOutput{}
10168	req = c.newRequest(op, input, output)
10169	return
10170}
10171
10172// ModifyClusterSnapshot API operation for Amazon Redshift.
10173//
10174// Modifies the settings for a snapshot.
10175//
10176// This exanmple modifies the manual retention period setting for a cluster
10177// snapshot.
10178//
10179// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10180// with awserr.Error's Code and Message methods to get detailed information about
10181// the error.
10182//
10183// See the AWS API reference guide for Amazon Redshift's
10184// API operation ModifyClusterSnapshot for usage and error information.
10185//
10186// Returned Error Codes:
10187//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
10188//   The specified cluster snapshot is not in the available state, or other accounts
10189//   are authorized to access the snapshot.
10190//
10191//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
10192//   The snapshot identifier does not refer to an existing cluster snapshot.
10193//
10194//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
10195//   The retention period specified is either in the past or is not a valid value.
10196//
10197//   The value must be either -1 or an integer between 1 and 3,653.
10198//
10199// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSnapshot
10200func (c *Redshift) ModifyClusterSnapshot(input *ModifyClusterSnapshotInput) (*ModifyClusterSnapshotOutput, error) {
10201	req, out := c.ModifyClusterSnapshotRequest(input)
10202	return out, req.Send()
10203}
10204
10205// ModifyClusterSnapshotWithContext is the same as ModifyClusterSnapshot with the addition of
10206// the ability to pass a context and additional request options.
10207//
10208// See ModifyClusterSnapshot for details on how to use this API operation.
10209//
10210// The context must be non-nil and will be used for request cancellation. If
10211// the context is nil a panic will occur. In the future the SDK may create
10212// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10213// for more information on using Contexts.
10214func (c *Redshift) ModifyClusterSnapshotWithContext(ctx aws.Context, input *ModifyClusterSnapshotInput, opts ...request.Option) (*ModifyClusterSnapshotOutput, error) {
10215	req, out := c.ModifyClusterSnapshotRequest(input)
10216	req.SetContext(ctx)
10217	req.ApplyOptions(opts...)
10218	return out, req.Send()
10219}
10220
10221const opModifyClusterSnapshotSchedule = "ModifyClusterSnapshotSchedule"
10222
10223// ModifyClusterSnapshotScheduleRequest generates a "aws/request.Request" representing the
10224// client's request for the ModifyClusterSnapshotSchedule operation. The "output" return
10225// value will be populated with the request's response once the request completes
10226// successfully.
10227//
10228// Use "Send" method on the returned Request to send the API call to the service.
10229// the "output" return value is not valid until after Send returns without error.
10230//
10231// See ModifyClusterSnapshotSchedule for more information on using the ModifyClusterSnapshotSchedule
10232// API call, and error handling.
10233//
10234// This method is useful when you want to inject custom logic or configuration
10235// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10236//
10237//
10238//    // Example sending a request using the ModifyClusterSnapshotScheduleRequest method.
10239//    req, resp := client.ModifyClusterSnapshotScheduleRequest(params)
10240//
10241//    err := req.Send()
10242//    if err == nil { // resp is now filled
10243//        fmt.Println(resp)
10244//    }
10245//
10246// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSnapshotSchedule
10247func (c *Redshift) ModifyClusterSnapshotScheduleRequest(input *ModifyClusterSnapshotScheduleInput) (req *request.Request, output *ModifyClusterSnapshotScheduleOutput) {
10248	op := &request.Operation{
10249		Name:       opModifyClusterSnapshotSchedule,
10250		HTTPMethod: "POST",
10251		HTTPPath:   "/",
10252	}
10253
10254	if input == nil {
10255		input = &ModifyClusterSnapshotScheduleInput{}
10256	}
10257
10258	output = &ModifyClusterSnapshotScheduleOutput{}
10259	req = c.newRequest(op, input, output)
10260	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
10261	return
10262}
10263
10264// ModifyClusterSnapshotSchedule API operation for Amazon Redshift.
10265//
10266// Modifies a snapshot schedule for a cluster.
10267//
10268// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10269// with awserr.Error's Code and Message methods to get detailed information about
10270// the error.
10271//
10272// See the AWS API reference guide for Amazon Redshift's
10273// API operation ModifyClusterSnapshotSchedule for usage and error information.
10274//
10275// Returned Error Codes:
10276//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
10277//   The ClusterIdentifier parameter does not refer to an existing cluster.
10278//
10279//   * ErrCodeSnapshotScheduleNotFoundFault "SnapshotScheduleNotFound"
10280//   We could not find the specified snapshot schedule.
10281//
10282//   * ErrCodeInvalidClusterSnapshotScheduleStateFault "InvalidClusterSnapshotScheduleState"
10283//   The cluster snapshot schedule state is not valid.
10284//
10285// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSnapshotSchedule
10286func (c *Redshift) ModifyClusterSnapshotSchedule(input *ModifyClusterSnapshotScheduleInput) (*ModifyClusterSnapshotScheduleOutput, error) {
10287	req, out := c.ModifyClusterSnapshotScheduleRequest(input)
10288	return out, req.Send()
10289}
10290
10291// ModifyClusterSnapshotScheduleWithContext is the same as ModifyClusterSnapshotSchedule with the addition of
10292// the ability to pass a context and additional request options.
10293//
10294// See ModifyClusterSnapshotSchedule for details on how to use this API operation.
10295//
10296// The context must be non-nil and will be used for request cancellation. If
10297// the context is nil a panic will occur. In the future the SDK may create
10298// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10299// for more information on using Contexts.
10300func (c *Redshift) ModifyClusterSnapshotScheduleWithContext(ctx aws.Context, input *ModifyClusterSnapshotScheduleInput, opts ...request.Option) (*ModifyClusterSnapshotScheduleOutput, error) {
10301	req, out := c.ModifyClusterSnapshotScheduleRequest(input)
10302	req.SetContext(ctx)
10303	req.ApplyOptions(opts...)
10304	return out, req.Send()
10305}
10306
10307const opModifyClusterSubnetGroup = "ModifyClusterSubnetGroup"
10308
10309// ModifyClusterSubnetGroupRequest generates a "aws/request.Request" representing the
10310// client's request for the ModifyClusterSubnetGroup operation. The "output" return
10311// value will be populated with the request's response once the request completes
10312// successfully.
10313//
10314// Use "Send" method on the returned Request to send the API call to the service.
10315// the "output" return value is not valid until after Send returns without error.
10316//
10317// See ModifyClusterSubnetGroup for more information on using the ModifyClusterSubnetGroup
10318// API call, and error handling.
10319//
10320// This method is useful when you want to inject custom logic or configuration
10321// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10322//
10323//
10324//    // Example sending a request using the ModifyClusterSubnetGroupRequest method.
10325//    req, resp := client.ModifyClusterSubnetGroupRequest(params)
10326//
10327//    err := req.Send()
10328//    if err == nil { // resp is now filled
10329//        fmt.Println(resp)
10330//    }
10331//
10332// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSubnetGroup
10333func (c *Redshift) ModifyClusterSubnetGroupRequest(input *ModifyClusterSubnetGroupInput) (req *request.Request, output *ModifyClusterSubnetGroupOutput) {
10334	op := &request.Operation{
10335		Name:       opModifyClusterSubnetGroup,
10336		HTTPMethod: "POST",
10337		HTTPPath:   "/",
10338	}
10339
10340	if input == nil {
10341		input = &ModifyClusterSubnetGroupInput{}
10342	}
10343
10344	output = &ModifyClusterSubnetGroupOutput{}
10345	req = c.newRequest(op, input, output)
10346	return
10347}
10348
10349// ModifyClusterSubnetGroup API operation for Amazon Redshift.
10350//
10351// Modifies a cluster subnet group to include the specified list of VPC subnets.
10352// The operation replaces the existing list of subnets with the new list of
10353// subnets.
10354//
10355// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10356// with awserr.Error's Code and Message methods to get detailed information about
10357// the error.
10358//
10359// See the AWS API reference guide for Amazon Redshift's
10360// API operation ModifyClusterSubnetGroup for usage and error information.
10361//
10362// Returned Error Codes:
10363//   * ErrCodeClusterSubnetGroupNotFoundFault "ClusterSubnetGroupNotFoundFault"
10364//   The cluster subnet group name does not refer to an existing cluster subnet
10365//   group.
10366//
10367//   * ErrCodeClusterSubnetQuotaExceededFault "ClusterSubnetQuotaExceededFault"
10368//   The request would result in user exceeding the allowed number of subnets
10369//   in a cluster subnet groups. For information about increasing your quota,
10370//   go to Limits in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
10371//   in the Amazon Redshift Cluster Management Guide.
10372//
10373//   * ErrCodeSubnetAlreadyInUse "SubnetAlreadyInUse"
10374//   A specified subnet is already in use by another cluster.
10375//
10376//   * ErrCodeInvalidSubnet "InvalidSubnet"
10377//   The requested subnet is not valid, or not all of the subnets are in the same
10378//   VPC.
10379//
10380//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
10381//   Your account is not authorized to perform the requested operation.
10382//
10383//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
10384//   The request cannot be completed because a dependent service is throttling
10385//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
10386//
10387// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSubnetGroup
10388func (c *Redshift) ModifyClusterSubnetGroup(input *ModifyClusterSubnetGroupInput) (*ModifyClusterSubnetGroupOutput, error) {
10389	req, out := c.ModifyClusterSubnetGroupRequest(input)
10390	return out, req.Send()
10391}
10392
10393// ModifyClusterSubnetGroupWithContext is the same as ModifyClusterSubnetGroup with the addition of
10394// the ability to pass a context and additional request options.
10395//
10396// See ModifyClusterSubnetGroup for details on how to use this API operation.
10397//
10398// The context must be non-nil and will be used for request cancellation. If
10399// the context is nil a panic will occur. In the future the SDK may create
10400// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10401// for more information on using Contexts.
10402func (c *Redshift) ModifyClusterSubnetGroupWithContext(ctx aws.Context, input *ModifyClusterSubnetGroupInput, opts ...request.Option) (*ModifyClusterSubnetGroupOutput, error) {
10403	req, out := c.ModifyClusterSubnetGroupRequest(input)
10404	req.SetContext(ctx)
10405	req.ApplyOptions(opts...)
10406	return out, req.Send()
10407}
10408
10409const opModifyEndpointAccess = "ModifyEndpointAccess"
10410
10411// ModifyEndpointAccessRequest generates a "aws/request.Request" representing the
10412// client's request for the ModifyEndpointAccess operation. The "output" return
10413// value will be populated with the request's response once the request completes
10414// successfully.
10415//
10416// Use "Send" method on the returned Request to send the API call to the service.
10417// the "output" return value is not valid until after Send returns without error.
10418//
10419// See ModifyEndpointAccess for more information on using the ModifyEndpointAccess
10420// API call, and error handling.
10421//
10422// This method is useful when you want to inject custom logic or configuration
10423// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10424//
10425//
10426//    // Example sending a request using the ModifyEndpointAccessRequest method.
10427//    req, resp := client.ModifyEndpointAccessRequest(params)
10428//
10429//    err := req.Send()
10430//    if err == nil { // resp is now filled
10431//        fmt.Println(resp)
10432//    }
10433//
10434// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyEndpointAccess
10435func (c *Redshift) ModifyEndpointAccessRequest(input *ModifyEndpointAccessInput) (req *request.Request, output *ModifyEndpointAccessOutput) {
10436	op := &request.Operation{
10437		Name:       opModifyEndpointAccess,
10438		HTTPMethod: "POST",
10439		HTTPPath:   "/",
10440	}
10441
10442	if input == nil {
10443		input = &ModifyEndpointAccessInput{}
10444	}
10445
10446	output = &ModifyEndpointAccessOutput{}
10447	req = c.newRequest(op, input, output)
10448	return
10449}
10450
10451// ModifyEndpointAccess API operation for Amazon Redshift.
10452//
10453// Modifies a Redshift-managed VPC endpoint.
10454//
10455// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10456// with awserr.Error's Code and Message methods to get detailed information about
10457// the error.
10458//
10459// See the AWS API reference guide for Amazon Redshift's
10460// API operation ModifyEndpointAccess for usage and error information.
10461//
10462// Returned Error Codes:
10463//   * ErrCodeInvalidClusterSecurityGroupStateFault "InvalidClusterSecurityGroupState"
10464//   The state of the cluster security group is not available.
10465//
10466//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
10467//   The ClusterIdentifier parameter does not refer to an existing cluster.
10468//
10469//   * ErrCodeInvalidEndpointStateFault "InvalidEndpointState"
10470//   The status of the endpoint is not valid.
10471//
10472//   * ErrCodeEndpointNotFoundFault "EndpointNotFound"
10473//   The endpoint name doesn't refer to an existing endpoint.
10474//
10475//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
10476//   The specified cluster is not in the available state.
10477//
10478//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
10479//   Your account is not authorized to perform the requested operation.
10480//
10481// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyEndpointAccess
10482func (c *Redshift) ModifyEndpointAccess(input *ModifyEndpointAccessInput) (*ModifyEndpointAccessOutput, error) {
10483	req, out := c.ModifyEndpointAccessRequest(input)
10484	return out, req.Send()
10485}
10486
10487// ModifyEndpointAccessWithContext is the same as ModifyEndpointAccess with the addition of
10488// the ability to pass a context and additional request options.
10489//
10490// See ModifyEndpointAccess for details on how to use this API operation.
10491//
10492// The context must be non-nil and will be used for request cancellation. If
10493// the context is nil a panic will occur. In the future the SDK may create
10494// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10495// for more information on using Contexts.
10496func (c *Redshift) ModifyEndpointAccessWithContext(ctx aws.Context, input *ModifyEndpointAccessInput, opts ...request.Option) (*ModifyEndpointAccessOutput, error) {
10497	req, out := c.ModifyEndpointAccessRequest(input)
10498	req.SetContext(ctx)
10499	req.ApplyOptions(opts...)
10500	return out, req.Send()
10501}
10502
10503const opModifyEventSubscription = "ModifyEventSubscription"
10504
10505// ModifyEventSubscriptionRequest generates a "aws/request.Request" representing the
10506// client's request for the ModifyEventSubscription operation. The "output" return
10507// value will be populated with the request's response once the request completes
10508// successfully.
10509//
10510// Use "Send" method on the returned Request to send the API call to the service.
10511// the "output" return value is not valid until after Send returns without error.
10512//
10513// See ModifyEventSubscription for more information on using the ModifyEventSubscription
10514// API call, and error handling.
10515//
10516// This method is useful when you want to inject custom logic or configuration
10517// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10518//
10519//
10520//    // Example sending a request using the ModifyEventSubscriptionRequest method.
10521//    req, resp := client.ModifyEventSubscriptionRequest(params)
10522//
10523//    err := req.Send()
10524//    if err == nil { // resp is now filled
10525//        fmt.Println(resp)
10526//    }
10527//
10528// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyEventSubscription
10529func (c *Redshift) ModifyEventSubscriptionRequest(input *ModifyEventSubscriptionInput) (req *request.Request, output *ModifyEventSubscriptionOutput) {
10530	op := &request.Operation{
10531		Name:       opModifyEventSubscription,
10532		HTTPMethod: "POST",
10533		HTTPPath:   "/",
10534	}
10535
10536	if input == nil {
10537		input = &ModifyEventSubscriptionInput{}
10538	}
10539
10540	output = &ModifyEventSubscriptionOutput{}
10541	req = c.newRequest(op, input, output)
10542	return
10543}
10544
10545// ModifyEventSubscription API operation for Amazon Redshift.
10546//
10547// Modifies an existing Amazon Redshift event notification subscription.
10548//
10549// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10550// with awserr.Error's Code and Message methods to get detailed information about
10551// the error.
10552//
10553// See the AWS API reference guide for Amazon Redshift's
10554// API operation ModifyEventSubscription for usage and error information.
10555//
10556// Returned Error Codes:
10557//   * ErrCodeSubscriptionNotFoundFault "SubscriptionNotFound"
10558//   An Amazon Redshift event notification subscription with the specified name
10559//   does not exist.
10560//
10561//   * ErrCodeSNSInvalidTopicFault "SNSInvalidTopic"
10562//   Amazon SNS has responded that there is a problem with the specified Amazon
10563//   SNS topic.
10564//
10565//   * ErrCodeSNSNoAuthorizationFault "SNSNoAuthorization"
10566//   You do not have permission to publish to the specified Amazon SNS topic.
10567//
10568//   * ErrCodeSNSTopicArnNotFoundFault "SNSTopicArnNotFound"
10569//   An Amazon SNS topic with the specified Amazon Resource Name (ARN) does not
10570//   exist.
10571//
10572//   * ErrCodeSubscriptionEventIdNotFoundFault "SubscriptionEventIdNotFound"
10573//   An Amazon Redshift event with the specified event ID does not exist.
10574//
10575//   * ErrCodeSubscriptionCategoryNotFoundFault "SubscriptionCategoryNotFound"
10576//   The value specified for the event category was not one of the allowed values,
10577//   or it specified a category that does not apply to the specified source type.
10578//   The allowed values are Configuration, Management, Monitoring, and Security.
10579//
10580//   * ErrCodeSubscriptionSeverityNotFoundFault "SubscriptionSeverityNotFound"
10581//   The value specified for the event severity was not one of the allowed values,
10582//   or it specified a severity that does not apply to the specified source type.
10583//   The allowed values are ERROR and INFO.
10584//
10585//   * ErrCodeSourceNotFoundFault "SourceNotFound"
10586//   The specified Amazon Redshift event source could not be found.
10587//
10588//   * ErrCodeInvalidSubscriptionStateFault "InvalidSubscriptionStateFault"
10589//   The subscription request is invalid because it is a duplicate request. This
10590//   subscription request is already in progress.
10591//
10592// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyEventSubscription
10593func (c *Redshift) ModifyEventSubscription(input *ModifyEventSubscriptionInput) (*ModifyEventSubscriptionOutput, error) {
10594	req, out := c.ModifyEventSubscriptionRequest(input)
10595	return out, req.Send()
10596}
10597
10598// ModifyEventSubscriptionWithContext is the same as ModifyEventSubscription with the addition of
10599// the ability to pass a context and additional request options.
10600//
10601// See ModifyEventSubscription for details on how to use this API operation.
10602//
10603// The context must be non-nil and will be used for request cancellation. If
10604// the context is nil a panic will occur. In the future the SDK may create
10605// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10606// for more information on using Contexts.
10607func (c *Redshift) ModifyEventSubscriptionWithContext(ctx aws.Context, input *ModifyEventSubscriptionInput, opts ...request.Option) (*ModifyEventSubscriptionOutput, error) {
10608	req, out := c.ModifyEventSubscriptionRequest(input)
10609	req.SetContext(ctx)
10610	req.ApplyOptions(opts...)
10611	return out, req.Send()
10612}
10613
10614const opModifyScheduledAction = "ModifyScheduledAction"
10615
10616// ModifyScheduledActionRequest generates a "aws/request.Request" representing the
10617// client's request for the ModifyScheduledAction operation. The "output" return
10618// value will be populated with the request's response once the request completes
10619// successfully.
10620//
10621// Use "Send" method on the returned Request to send the API call to the service.
10622// the "output" return value is not valid until after Send returns without error.
10623//
10624// See ModifyScheduledAction for more information on using the ModifyScheduledAction
10625// API call, and error handling.
10626//
10627// This method is useful when you want to inject custom logic or configuration
10628// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10629//
10630//
10631//    // Example sending a request using the ModifyScheduledActionRequest method.
10632//    req, resp := client.ModifyScheduledActionRequest(params)
10633//
10634//    err := req.Send()
10635//    if err == nil { // resp is now filled
10636//        fmt.Println(resp)
10637//    }
10638//
10639// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyScheduledAction
10640func (c *Redshift) ModifyScheduledActionRequest(input *ModifyScheduledActionInput) (req *request.Request, output *ModifyScheduledActionOutput) {
10641	op := &request.Operation{
10642		Name:       opModifyScheduledAction,
10643		HTTPMethod: "POST",
10644		HTTPPath:   "/",
10645	}
10646
10647	if input == nil {
10648		input = &ModifyScheduledActionInput{}
10649	}
10650
10651	output = &ModifyScheduledActionOutput{}
10652	req = c.newRequest(op, input, output)
10653	return
10654}
10655
10656// ModifyScheduledAction API operation for Amazon Redshift.
10657//
10658// Modifies a scheduled action.
10659//
10660// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10661// with awserr.Error's Code and Message methods to get detailed information about
10662// the error.
10663//
10664// See the AWS API reference guide for Amazon Redshift's
10665// API operation ModifyScheduledAction for usage and error information.
10666//
10667// Returned Error Codes:
10668//   * ErrCodeScheduledActionNotFoundFault "ScheduledActionNotFound"
10669//   The scheduled action cannot be found.
10670//
10671//   * ErrCodeScheduledActionTypeUnsupportedFault "ScheduledActionTypeUnsupported"
10672//   The action type specified for a scheduled action is not supported.
10673//
10674//   * ErrCodeInvalidScheduleFault "InvalidSchedule"
10675//   The schedule you submitted isn't valid.
10676//
10677//   * ErrCodeInvalidScheduledActionFault "InvalidScheduledAction"
10678//   The scheduled action is not valid.
10679//
10680//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
10681//   Your account is not authorized to perform the requested operation.
10682//
10683// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyScheduledAction
10684func (c *Redshift) ModifyScheduledAction(input *ModifyScheduledActionInput) (*ModifyScheduledActionOutput, error) {
10685	req, out := c.ModifyScheduledActionRequest(input)
10686	return out, req.Send()
10687}
10688
10689// ModifyScheduledActionWithContext is the same as ModifyScheduledAction with the addition of
10690// the ability to pass a context and additional request options.
10691//
10692// See ModifyScheduledAction for details on how to use this API operation.
10693//
10694// The context must be non-nil and will be used for request cancellation. If
10695// the context is nil a panic will occur. In the future the SDK may create
10696// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10697// for more information on using Contexts.
10698func (c *Redshift) ModifyScheduledActionWithContext(ctx aws.Context, input *ModifyScheduledActionInput, opts ...request.Option) (*ModifyScheduledActionOutput, error) {
10699	req, out := c.ModifyScheduledActionRequest(input)
10700	req.SetContext(ctx)
10701	req.ApplyOptions(opts...)
10702	return out, req.Send()
10703}
10704
10705const opModifySnapshotCopyRetentionPeriod = "ModifySnapshotCopyRetentionPeriod"
10706
10707// ModifySnapshotCopyRetentionPeriodRequest generates a "aws/request.Request" representing the
10708// client's request for the ModifySnapshotCopyRetentionPeriod operation. The "output" return
10709// value will be populated with the request's response once the request completes
10710// successfully.
10711//
10712// Use "Send" method on the returned Request to send the API call to the service.
10713// the "output" return value is not valid until after Send returns without error.
10714//
10715// See ModifySnapshotCopyRetentionPeriod for more information on using the ModifySnapshotCopyRetentionPeriod
10716// API call, and error handling.
10717//
10718// This method is useful when you want to inject custom logic or configuration
10719// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10720//
10721//
10722//    // Example sending a request using the ModifySnapshotCopyRetentionPeriodRequest method.
10723//    req, resp := client.ModifySnapshotCopyRetentionPeriodRequest(params)
10724//
10725//    err := req.Send()
10726//    if err == nil { // resp is now filled
10727//        fmt.Println(resp)
10728//    }
10729//
10730// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifySnapshotCopyRetentionPeriod
10731func (c *Redshift) ModifySnapshotCopyRetentionPeriodRequest(input *ModifySnapshotCopyRetentionPeriodInput) (req *request.Request, output *ModifySnapshotCopyRetentionPeriodOutput) {
10732	op := &request.Operation{
10733		Name:       opModifySnapshotCopyRetentionPeriod,
10734		HTTPMethod: "POST",
10735		HTTPPath:   "/",
10736	}
10737
10738	if input == nil {
10739		input = &ModifySnapshotCopyRetentionPeriodInput{}
10740	}
10741
10742	output = &ModifySnapshotCopyRetentionPeriodOutput{}
10743	req = c.newRequest(op, input, output)
10744	return
10745}
10746
10747// ModifySnapshotCopyRetentionPeriod API operation for Amazon Redshift.
10748//
10749// Modifies the number of days to retain snapshots in the destination Amazon
10750// Web Services Region after they are copied from the source Amazon Web Services
10751// Region. By default, this operation only changes the retention period of copied
10752// automated snapshots. The retention periods for both new and existing copied
10753// automated snapshots are updated with the new retention period. You can set
10754// the manual option to change only the retention periods of copied manual snapshots.
10755// If you set this option, only newly copied manual snapshots have the new retention
10756// period.
10757//
10758// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10759// with awserr.Error's Code and Message methods to get detailed information about
10760// the error.
10761//
10762// See the AWS API reference guide for Amazon Redshift's
10763// API operation ModifySnapshotCopyRetentionPeriod for usage and error information.
10764//
10765// Returned Error Codes:
10766//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
10767//   The ClusterIdentifier parameter does not refer to an existing cluster.
10768//
10769//   * ErrCodeSnapshotCopyDisabledFault "SnapshotCopyDisabledFault"
10770//   Cross-region snapshot copy was temporarily disabled. Try your request again.
10771//
10772//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
10773//   Your account is not authorized to perform the requested operation.
10774//
10775//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
10776//   The specified cluster is not in the available state.
10777//
10778//   * ErrCodeInvalidRetentionPeriodFault "InvalidRetentionPeriodFault"
10779//   The retention period specified is either in the past or is not a valid value.
10780//
10781//   The value must be either -1 or an integer between 1 and 3,653.
10782//
10783// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifySnapshotCopyRetentionPeriod
10784func (c *Redshift) ModifySnapshotCopyRetentionPeriod(input *ModifySnapshotCopyRetentionPeriodInput) (*ModifySnapshotCopyRetentionPeriodOutput, error) {
10785	req, out := c.ModifySnapshotCopyRetentionPeriodRequest(input)
10786	return out, req.Send()
10787}
10788
10789// ModifySnapshotCopyRetentionPeriodWithContext is the same as ModifySnapshotCopyRetentionPeriod with the addition of
10790// the ability to pass a context and additional request options.
10791//
10792// See ModifySnapshotCopyRetentionPeriod for details on how to use this API operation.
10793//
10794// The context must be non-nil and will be used for request cancellation. If
10795// the context is nil a panic will occur. In the future the SDK may create
10796// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10797// for more information on using Contexts.
10798func (c *Redshift) ModifySnapshotCopyRetentionPeriodWithContext(ctx aws.Context, input *ModifySnapshotCopyRetentionPeriodInput, opts ...request.Option) (*ModifySnapshotCopyRetentionPeriodOutput, error) {
10799	req, out := c.ModifySnapshotCopyRetentionPeriodRequest(input)
10800	req.SetContext(ctx)
10801	req.ApplyOptions(opts...)
10802	return out, req.Send()
10803}
10804
10805const opModifySnapshotSchedule = "ModifySnapshotSchedule"
10806
10807// ModifySnapshotScheduleRequest generates a "aws/request.Request" representing the
10808// client's request for the ModifySnapshotSchedule operation. The "output" return
10809// value will be populated with the request's response once the request completes
10810// successfully.
10811//
10812// Use "Send" method on the returned Request to send the API call to the service.
10813// the "output" return value is not valid until after Send returns without error.
10814//
10815// See ModifySnapshotSchedule for more information on using the ModifySnapshotSchedule
10816// API call, and error handling.
10817//
10818// This method is useful when you want to inject custom logic or configuration
10819// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10820//
10821//
10822//    // Example sending a request using the ModifySnapshotScheduleRequest method.
10823//    req, resp := client.ModifySnapshotScheduleRequest(params)
10824//
10825//    err := req.Send()
10826//    if err == nil { // resp is now filled
10827//        fmt.Println(resp)
10828//    }
10829//
10830// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifySnapshotSchedule
10831func (c *Redshift) ModifySnapshotScheduleRequest(input *ModifySnapshotScheduleInput) (req *request.Request, output *ModifySnapshotScheduleOutput) {
10832	op := &request.Operation{
10833		Name:       opModifySnapshotSchedule,
10834		HTTPMethod: "POST",
10835		HTTPPath:   "/",
10836	}
10837
10838	if input == nil {
10839		input = &ModifySnapshotScheduleInput{}
10840	}
10841
10842	output = &ModifySnapshotScheduleOutput{}
10843	req = c.newRequest(op, input, output)
10844	return
10845}
10846
10847// ModifySnapshotSchedule API operation for Amazon Redshift.
10848//
10849// Modifies a snapshot schedule. Any schedule associated with a cluster is modified
10850// asynchronously.
10851//
10852// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10853// with awserr.Error's Code and Message methods to get detailed information about
10854// the error.
10855//
10856// See the AWS API reference guide for Amazon Redshift's
10857// API operation ModifySnapshotSchedule for usage and error information.
10858//
10859// Returned Error Codes:
10860//   * ErrCodeInvalidScheduleFault "InvalidSchedule"
10861//   The schedule you submitted isn't valid.
10862//
10863//   * ErrCodeSnapshotScheduleNotFoundFault "SnapshotScheduleNotFound"
10864//   We could not find the specified snapshot schedule.
10865//
10866//   * ErrCodeSnapshotScheduleUpdateInProgressFault "SnapshotScheduleUpdateInProgress"
10867//   The specified snapshot schedule is already being updated.
10868//
10869// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifySnapshotSchedule
10870func (c *Redshift) ModifySnapshotSchedule(input *ModifySnapshotScheduleInput) (*ModifySnapshotScheduleOutput, error) {
10871	req, out := c.ModifySnapshotScheduleRequest(input)
10872	return out, req.Send()
10873}
10874
10875// ModifySnapshotScheduleWithContext is the same as ModifySnapshotSchedule with the addition of
10876// the ability to pass a context and additional request options.
10877//
10878// See ModifySnapshotSchedule for details on how to use this API operation.
10879//
10880// The context must be non-nil and will be used for request cancellation. If
10881// the context is nil a panic will occur. In the future the SDK may create
10882// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10883// for more information on using Contexts.
10884func (c *Redshift) ModifySnapshotScheduleWithContext(ctx aws.Context, input *ModifySnapshotScheduleInput, opts ...request.Option) (*ModifySnapshotScheduleOutput, error) {
10885	req, out := c.ModifySnapshotScheduleRequest(input)
10886	req.SetContext(ctx)
10887	req.ApplyOptions(opts...)
10888	return out, req.Send()
10889}
10890
10891const opModifyUsageLimit = "ModifyUsageLimit"
10892
10893// ModifyUsageLimitRequest generates a "aws/request.Request" representing the
10894// client's request for the ModifyUsageLimit operation. The "output" return
10895// value will be populated with the request's response once the request completes
10896// successfully.
10897//
10898// Use "Send" method on the returned Request to send the API call to the service.
10899// the "output" return value is not valid until after Send returns without error.
10900//
10901// See ModifyUsageLimit for more information on using the ModifyUsageLimit
10902// API call, and error handling.
10903//
10904// This method is useful when you want to inject custom logic or configuration
10905// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10906//
10907//
10908//    // Example sending a request using the ModifyUsageLimitRequest method.
10909//    req, resp := client.ModifyUsageLimitRequest(params)
10910//
10911//    err := req.Send()
10912//    if err == nil { // resp is now filled
10913//        fmt.Println(resp)
10914//    }
10915//
10916// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyUsageLimit
10917func (c *Redshift) ModifyUsageLimitRequest(input *ModifyUsageLimitInput) (req *request.Request, output *ModifyUsageLimitOutput) {
10918	op := &request.Operation{
10919		Name:       opModifyUsageLimit,
10920		HTTPMethod: "POST",
10921		HTTPPath:   "/",
10922	}
10923
10924	if input == nil {
10925		input = &ModifyUsageLimitInput{}
10926	}
10927
10928	output = &ModifyUsageLimitOutput{}
10929	req = c.newRequest(op, input, output)
10930	return
10931}
10932
10933// ModifyUsageLimit API operation for Amazon Redshift.
10934//
10935// Modifies a usage limit in a cluster. You can't modify the feature type or
10936// period of a usage limit.
10937//
10938// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10939// with awserr.Error's Code and Message methods to get detailed information about
10940// the error.
10941//
10942// See the AWS API reference guide for Amazon Redshift's
10943// API operation ModifyUsageLimit for usage and error information.
10944//
10945// Returned Error Codes:
10946//   * ErrCodeInvalidUsageLimitFault "InvalidUsageLimit"
10947//   The usage limit is not valid.
10948//
10949//   * ErrCodeUsageLimitNotFoundFault "UsageLimitNotFound"
10950//   The usage limit identifier can't be found.
10951//
10952//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
10953//   The requested operation isn't supported.
10954//
10955// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyUsageLimit
10956func (c *Redshift) ModifyUsageLimit(input *ModifyUsageLimitInput) (*ModifyUsageLimitOutput, error) {
10957	req, out := c.ModifyUsageLimitRequest(input)
10958	return out, req.Send()
10959}
10960
10961// ModifyUsageLimitWithContext is the same as ModifyUsageLimit with the addition of
10962// the ability to pass a context and additional request options.
10963//
10964// See ModifyUsageLimit for details on how to use this API operation.
10965//
10966// The context must be non-nil and will be used for request cancellation. If
10967// the context is nil a panic will occur. In the future the SDK may create
10968// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10969// for more information on using Contexts.
10970func (c *Redshift) ModifyUsageLimitWithContext(ctx aws.Context, input *ModifyUsageLimitInput, opts ...request.Option) (*ModifyUsageLimitOutput, error) {
10971	req, out := c.ModifyUsageLimitRequest(input)
10972	req.SetContext(ctx)
10973	req.ApplyOptions(opts...)
10974	return out, req.Send()
10975}
10976
10977const opPauseCluster = "PauseCluster"
10978
10979// PauseClusterRequest generates a "aws/request.Request" representing the
10980// client's request for the PauseCluster operation. The "output" return
10981// value will be populated with the request's response once the request completes
10982// successfully.
10983//
10984// Use "Send" method on the returned Request to send the API call to the service.
10985// the "output" return value is not valid until after Send returns without error.
10986//
10987// See PauseCluster for more information on using the PauseCluster
10988// API call, and error handling.
10989//
10990// This method is useful when you want to inject custom logic or configuration
10991// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10992//
10993//
10994//    // Example sending a request using the PauseClusterRequest method.
10995//    req, resp := client.PauseClusterRequest(params)
10996//
10997//    err := req.Send()
10998//    if err == nil { // resp is now filled
10999//        fmt.Println(resp)
11000//    }
11001//
11002// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PauseCluster
11003func (c *Redshift) PauseClusterRequest(input *PauseClusterInput) (req *request.Request, output *PauseClusterOutput) {
11004	op := &request.Operation{
11005		Name:       opPauseCluster,
11006		HTTPMethod: "POST",
11007		HTTPPath:   "/",
11008	}
11009
11010	if input == nil {
11011		input = &PauseClusterInput{}
11012	}
11013
11014	output = &PauseClusterOutput{}
11015	req = c.newRequest(op, input, output)
11016	return
11017}
11018
11019// PauseCluster API operation for Amazon Redshift.
11020//
11021// Pauses a cluster.
11022//
11023// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11024// with awserr.Error's Code and Message methods to get detailed information about
11025// the error.
11026//
11027// See the AWS API reference guide for Amazon Redshift's
11028// API operation PauseCluster for usage and error information.
11029//
11030// Returned Error Codes:
11031//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
11032//   The ClusterIdentifier parameter does not refer to an existing cluster.
11033//
11034//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
11035//   The specified cluster is not in the available state.
11036//
11037// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PauseCluster
11038func (c *Redshift) PauseCluster(input *PauseClusterInput) (*PauseClusterOutput, error) {
11039	req, out := c.PauseClusterRequest(input)
11040	return out, req.Send()
11041}
11042
11043// PauseClusterWithContext is the same as PauseCluster with the addition of
11044// the ability to pass a context and additional request options.
11045//
11046// See PauseCluster for details on how to use this API operation.
11047//
11048// The context must be non-nil and will be used for request cancellation. If
11049// the context is nil a panic will occur. In the future the SDK may create
11050// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11051// for more information on using Contexts.
11052func (c *Redshift) PauseClusterWithContext(ctx aws.Context, input *PauseClusterInput, opts ...request.Option) (*PauseClusterOutput, error) {
11053	req, out := c.PauseClusterRequest(input)
11054	req.SetContext(ctx)
11055	req.ApplyOptions(opts...)
11056	return out, req.Send()
11057}
11058
11059const opPurchaseReservedNodeOffering = "PurchaseReservedNodeOffering"
11060
11061// PurchaseReservedNodeOfferingRequest generates a "aws/request.Request" representing the
11062// client's request for the PurchaseReservedNodeOffering operation. The "output" return
11063// value will be populated with the request's response once the request completes
11064// successfully.
11065//
11066// Use "Send" method on the returned Request to send the API call to the service.
11067// the "output" return value is not valid until after Send returns without error.
11068//
11069// See PurchaseReservedNodeOffering for more information on using the PurchaseReservedNodeOffering
11070// API call, and error handling.
11071//
11072// This method is useful when you want to inject custom logic or configuration
11073// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11074//
11075//
11076//    // Example sending a request using the PurchaseReservedNodeOfferingRequest method.
11077//    req, resp := client.PurchaseReservedNodeOfferingRequest(params)
11078//
11079//    err := req.Send()
11080//    if err == nil { // resp is now filled
11081//        fmt.Println(resp)
11082//    }
11083//
11084// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PurchaseReservedNodeOffering
11085func (c *Redshift) PurchaseReservedNodeOfferingRequest(input *PurchaseReservedNodeOfferingInput) (req *request.Request, output *PurchaseReservedNodeOfferingOutput) {
11086	op := &request.Operation{
11087		Name:       opPurchaseReservedNodeOffering,
11088		HTTPMethod: "POST",
11089		HTTPPath:   "/",
11090	}
11091
11092	if input == nil {
11093		input = &PurchaseReservedNodeOfferingInput{}
11094	}
11095
11096	output = &PurchaseReservedNodeOfferingOutput{}
11097	req = c.newRequest(op, input, output)
11098	return
11099}
11100
11101// PurchaseReservedNodeOffering API operation for Amazon Redshift.
11102//
11103// Allows you to purchase reserved nodes. Amazon Redshift offers a predefined
11104// set of reserved node offerings. You can purchase one or more of the offerings.
11105// You can call the DescribeReservedNodeOfferings API to obtain the available
11106// reserved node offerings. You can call this API by providing a specific reserved
11107// node offering and the number of nodes you want to reserve.
11108//
11109// For more information about reserved node offerings, go to Purchasing Reserved
11110// Nodes (https://docs.aws.amazon.com/redshift/latest/mgmt/purchase-reserved-node-instance.html)
11111// in the Amazon Redshift Cluster Management Guide.
11112//
11113// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11114// with awserr.Error's Code and Message methods to get detailed information about
11115// the error.
11116//
11117// See the AWS API reference guide for Amazon Redshift's
11118// API operation PurchaseReservedNodeOffering for usage and error information.
11119//
11120// Returned Error Codes:
11121//   * ErrCodeReservedNodeOfferingNotFoundFault "ReservedNodeOfferingNotFound"
11122//   Specified offering does not exist.
11123//
11124//   * ErrCodeReservedNodeAlreadyExistsFault "ReservedNodeAlreadyExists"
11125//   User already has a reservation with the given identifier.
11126//
11127//   * ErrCodeReservedNodeQuotaExceededFault "ReservedNodeQuotaExceeded"
11128//   Request would exceed the user's compute node quota. For information about
11129//   increasing your quota, go to Limits in Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
11130//   in the Amazon Redshift Cluster Management Guide.
11131//
11132//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
11133//   The requested operation isn't supported.
11134//
11135// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PurchaseReservedNodeOffering
11136func (c *Redshift) PurchaseReservedNodeOffering(input *PurchaseReservedNodeOfferingInput) (*PurchaseReservedNodeOfferingOutput, error) {
11137	req, out := c.PurchaseReservedNodeOfferingRequest(input)
11138	return out, req.Send()
11139}
11140
11141// PurchaseReservedNodeOfferingWithContext is the same as PurchaseReservedNodeOffering with the addition of
11142// the ability to pass a context and additional request options.
11143//
11144// See PurchaseReservedNodeOffering for details on how to use this API operation.
11145//
11146// The context must be non-nil and will be used for request cancellation. If
11147// the context is nil a panic will occur. In the future the SDK may create
11148// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11149// for more information on using Contexts.
11150func (c *Redshift) PurchaseReservedNodeOfferingWithContext(ctx aws.Context, input *PurchaseReservedNodeOfferingInput, opts ...request.Option) (*PurchaseReservedNodeOfferingOutput, error) {
11151	req, out := c.PurchaseReservedNodeOfferingRequest(input)
11152	req.SetContext(ctx)
11153	req.ApplyOptions(opts...)
11154	return out, req.Send()
11155}
11156
11157const opRebootCluster = "RebootCluster"
11158
11159// RebootClusterRequest generates a "aws/request.Request" representing the
11160// client's request for the RebootCluster operation. The "output" return
11161// value will be populated with the request's response once the request completes
11162// successfully.
11163//
11164// Use "Send" method on the returned Request to send the API call to the service.
11165// the "output" return value is not valid until after Send returns without error.
11166//
11167// See RebootCluster for more information on using the RebootCluster
11168// API call, and error handling.
11169//
11170// This method is useful when you want to inject custom logic or configuration
11171// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11172//
11173//
11174//    // Example sending a request using the RebootClusterRequest method.
11175//    req, resp := client.RebootClusterRequest(params)
11176//
11177//    err := req.Send()
11178//    if err == nil { // resp is now filled
11179//        fmt.Println(resp)
11180//    }
11181//
11182// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RebootCluster
11183func (c *Redshift) RebootClusterRequest(input *RebootClusterInput) (req *request.Request, output *RebootClusterOutput) {
11184	op := &request.Operation{
11185		Name:       opRebootCluster,
11186		HTTPMethod: "POST",
11187		HTTPPath:   "/",
11188	}
11189
11190	if input == nil {
11191		input = &RebootClusterInput{}
11192	}
11193
11194	output = &RebootClusterOutput{}
11195	req = c.newRequest(op, input, output)
11196	return
11197}
11198
11199// RebootCluster API operation for Amazon Redshift.
11200//
11201// Reboots a cluster. This action is taken as soon as possible. It results in
11202// a momentary outage to the cluster, during which the cluster status is set
11203// to rebooting. A cluster event is created when the reboot is completed. Any
11204// pending cluster modifications (see ModifyCluster) are applied at this reboot.
11205// For more information about managing clusters, go to Amazon Redshift Clusters
11206// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
11207// in the Amazon Redshift Cluster Management Guide.
11208//
11209// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11210// with awserr.Error's Code and Message methods to get detailed information about
11211// the error.
11212//
11213// See the AWS API reference guide for Amazon Redshift's
11214// API operation RebootCluster for usage and error information.
11215//
11216// Returned Error Codes:
11217//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
11218//   The specified cluster is not in the available state.
11219//
11220//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
11221//   The ClusterIdentifier parameter does not refer to an existing cluster.
11222//
11223// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RebootCluster
11224func (c *Redshift) RebootCluster(input *RebootClusterInput) (*RebootClusterOutput, error) {
11225	req, out := c.RebootClusterRequest(input)
11226	return out, req.Send()
11227}
11228
11229// RebootClusterWithContext is the same as RebootCluster with the addition of
11230// the ability to pass a context and additional request options.
11231//
11232// See RebootCluster for details on how to use this API operation.
11233//
11234// The context must be non-nil and will be used for request cancellation. If
11235// the context is nil a panic will occur. In the future the SDK may create
11236// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11237// for more information on using Contexts.
11238func (c *Redshift) RebootClusterWithContext(ctx aws.Context, input *RebootClusterInput, opts ...request.Option) (*RebootClusterOutput, error) {
11239	req, out := c.RebootClusterRequest(input)
11240	req.SetContext(ctx)
11241	req.ApplyOptions(opts...)
11242	return out, req.Send()
11243}
11244
11245const opRejectDataShare = "RejectDataShare"
11246
11247// RejectDataShareRequest generates a "aws/request.Request" representing the
11248// client's request for the RejectDataShare operation. The "output" return
11249// value will be populated with the request's response once the request completes
11250// successfully.
11251//
11252// Use "Send" method on the returned Request to send the API call to the service.
11253// the "output" return value is not valid until after Send returns without error.
11254//
11255// See RejectDataShare for more information on using the RejectDataShare
11256// API call, and error handling.
11257//
11258// This method is useful when you want to inject custom logic or configuration
11259// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11260//
11261//
11262//    // Example sending a request using the RejectDataShareRequest method.
11263//    req, resp := client.RejectDataShareRequest(params)
11264//
11265//    err := req.Send()
11266//    if err == nil { // resp is now filled
11267//        fmt.Println(resp)
11268//    }
11269//
11270// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RejectDataShare
11271func (c *Redshift) RejectDataShareRequest(input *RejectDataShareInput) (req *request.Request, output *RejectDataShareOutput) {
11272	op := &request.Operation{
11273		Name:       opRejectDataShare,
11274		HTTPMethod: "POST",
11275		HTTPPath:   "/",
11276	}
11277
11278	if input == nil {
11279		input = &RejectDataShareInput{}
11280	}
11281
11282	output = &RejectDataShareOutput{}
11283	req = c.newRequest(op, input, output)
11284	return
11285}
11286
11287// RejectDataShare API operation for Amazon Redshift.
11288//
11289// From the consumer account, rejects the specified datashare.
11290//
11291// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11292// with awserr.Error's Code and Message methods to get detailed information about
11293// the error.
11294//
11295// See the AWS API reference guide for Amazon Redshift's
11296// API operation RejectDataShare for usage and error information.
11297//
11298// Returned Error Codes:
11299//   * ErrCodeInvalidDataShareFault "InvalidDataShareFault"
11300//   There is an error with the datashare.
11301//
11302// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RejectDataShare
11303func (c *Redshift) RejectDataShare(input *RejectDataShareInput) (*RejectDataShareOutput, error) {
11304	req, out := c.RejectDataShareRequest(input)
11305	return out, req.Send()
11306}
11307
11308// RejectDataShareWithContext is the same as RejectDataShare with the addition of
11309// the ability to pass a context and additional request options.
11310//
11311// See RejectDataShare for details on how to use this API operation.
11312//
11313// The context must be non-nil and will be used for request cancellation. If
11314// the context is nil a panic will occur. In the future the SDK may create
11315// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11316// for more information on using Contexts.
11317func (c *Redshift) RejectDataShareWithContext(ctx aws.Context, input *RejectDataShareInput, opts ...request.Option) (*RejectDataShareOutput, error) {
11318	req, out := c.RejectDataShareRequest(input)
11319	req.SetContext(ctx)
11320	req.ApplyOptions(opts...)
11321	return out, req.Send()
11322}
11323
11324const opResetClusterParameterGroup = "ResetClusterParameterGroup"
11325
11326// ResetClusterParameterGroupRequest generates a "aws/request.Request" representing the
11327// client's request for the ResetClusterParameterGroup operation. The "output" return
11328// value will be populated with the request's response once the request completes
11329// successfully.
11330//
11331// Use "Send" method on the returned Request to send the API call to the service.
11332// the "output" return value is not valid until after Send returns without error.
11333//
11334// See ResetClusterParameterGroup for more information on using the ResetClusterParameterGroup
11335// API call, and error handling.
11336//
11337// This method is useful when you want to inject custom logic or configuration
11338// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11339//
11340//
11341//    // Example sending a request using the ResetClusterParameterGroupRequest method.
11342//    req, resp := client.ResetClusterParameterGroupRequest(params)
11343//
11344//    err := req.Send()
11345//    if err == nil { // resp is now filled
11346//        fmt.Println(resp)
11347//    }
11348//
11349// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResetClusterParameterGroup
11350func (c *Redshift) ResetClusterParameterGroupRequest(input *ResetClusterParameterGroupInput) (req *request.Request, output *ClusterParameterGroupNameMessage) {
11351	op := &request.Operation{
11352		Name:       opResetClusterParameterGroup,
11353		HTTPMethod: "POST",
11354		HTTPPath:   "/",
11355	}
11356
11357	if input == nil {
11358		input = &ResetClusterParameterGroupInput{}
11359	}
11360
11361	output = &ClusterParameterGroupNameMessage{}
11362	req = c.newRequest(op, input, output)
11363	return
11364}
11365
11366// ResetClusterParameterGroup API operation for Amazon Redshift.
11367//
11368// Sets one or more parameters of the specified parameter group to their default
11369// values and sets the source values of the parameters to "engine-default".
11370// To reset the entire parameter group specify the ResetAllParameters parameter.
11371// For parameter changes to take effect you must reboot any associated clusters.
11372//
11373// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11374// with awserr.Error's Code and Message methods to get detailed information about
11375// the error.
11376//
11377// See the AWS API reference guide for Amazon Redshift's
11378// API operation ResetClusterParameterGroup for usage and error information.
11379//
11380// Returned Error Codes:
11381//   * ErrCodeInvalidClusterParameterGroupStateFault "InvalidClusterParameterGroupState"
11382//   The cluster parameter group action can not be completed because another task
11383//   is in progress that involves the parameter group. Wait a few moments and
11384//   try the operation again.
11385//
11386//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
11387//   The parameter group name does not refer to an existing parameter group.
11388//
11389// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResetClusterParameterGroup
11390func (c *Redshift) ResetClusterParameterGroup(input *ResetClusterParameterGroupInput) (*ClusterParameterGroupNameMessage, error) {
11391	req, out := c.ResetClusterParameterGroupRequest(input)
11392	return out, req.Send()
11393}
11394
11395// ResetClusterParameterGroupWithContext is the same as ResetClusterParameterGroup with the addition of
11396// the ability to pass a context and additional request options.
11397//
11398// See ResetClusterParameterGroup for details on how to use this API operation.
11399//
11400// The context must be non-nil and will be used for request cancellation. If
11401// the context is nil a panic will occur. In the future the SDK may create
11402// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11403// for more information on using Contexts.
11404func (c *Redshift) ResetClusterParameterGroupWithContext(ctx aws.Context, input *ResetClusterParameterGroupInput, opts ...request.Option) (*ClusterParameterGroupNameMessage, error) {
11405	req, out := c.ResetClusterParameterGroupRequest(input)
11406	req.SetContext(ctx)
11407	req.ApplyOptions(opts...)
11408	return out, req.Send()
11409}
11410
11411const opResizeCluster = "ResizeCluster"
11412
11413// ResizeClusterRequest generates a "aws/request.Request" representing the
11414// client's request for the ResizeCluster operation. The "output" return
11415// value will be populated with the request's response once the request completes
11416// successfully.
11417//
11418// Use "Send" method on the returned Request to send the API call to the service.
11419// the "output" return value is not valid until after Send returns without error.
11420//
11421// See ResizeCluster for more information on using the ResizeCluster
11422// API call, and error handling.
11423//
11424// This method is useful when you want to inject custom logic or configuration
11425// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11426//
11427//
11428//    // Example sending a request using the ResizeClusterRequest method.
11429//    req, resp := client.ResizeClusterRequest(params)
11430//
11431//    err := req.Send()
11432//    if err == nil { // resp is now filled
11433//        fmt.Println(resp)
11434//    }
11435//
11436// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResizeCluster
11437func (c *Redshift) ResizeClusterRequest(input *ResizeClusterInput) (req *request.Request, output *ResizeClusterOutput) {
11438	op := &request.Operation{
11439		Name:       opResizeCluster,
11440		HTTPMethod: "POST",
11441		HTTPPath:   "/",
11442	}
11443
11444	if input == nil {
11445		input = &ResizeClusterInput{}
11446	}
11447
11448	output = &ResizeClusterOutput{}
11449	req = c.newRequest(op, input, output)
11450	return
11451}
11452
11453// ResizeCluster API operation for Amazon Redshift.
11454//
11455// Changes the size of the cluster. You can change the cluster's type, or change
11456// the number or type of nodes. The default behavior is to use the elastic resize
11457// method. With an elastic resize, your cluster is available for read and write
11458// operations more quickly than with the classic resize method.
11459//
11460// Elastic resize operations have the following restrictions:
11461//
11462//    * You can only resize clusters of the following types: dc1.large (if your
11463//    cluster is in a VPC) dc1.8xlarge (if your cluster is in a VPC) dc2.large
11464//    dc2.8xlarge ds2.xlarge ds2.8xlarge ra3.xlplus ra3.4xlarge ra3.16xlarge
11465//
11466//    * The type of nodes that you add must match the node type for the cluster.
11467//
11468// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11469// with awserr.Error's Code and Message methods to get detailed information about
11470// the error.
11471//
11472// See the AWS API reference guide for Amazon Redshift's
11473// API operation ResizeCluster for usage and error information.
11474//
11475// Returned Error Codes:
11476//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
11477//   The specified cluster is not in the available state.
11478//
11479//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
11480//   The ClusterIdentifier parameter does not refer to an existing cluster.
11481//
11482//   * ErrCodeNumberOfNodesQuotaExceededFault "NumberOfNodesQuotaExceeded"
11483//   The operation would exceed the number of nodes allotted to the account. For
11484//   information about increasing your quota, go to Limits in Amazon Redshift
11485//   (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
11486//   in the Amazon Redshift Cluster Management Guide.
11487//
11488//   * ErrCodeNumberOfNodesPerClusterLimitExceededFault "NumberOfNodesPerClusterLimitExceeded"
11489//   The operation would exceed the number of nodes allowed for a cluster.
11490//
11491//   * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacity"
11492//   The number of nodes specified exceeds the allotted capacity of the cluster.
11493//
11494//   * ErrCodeUnsupportedOptionFault "UnsupportedOptionFault"
11495//   A request option was specified that is not supported.
11496//
11497//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
11498//   The requested operation isn't supported.
11499//
11500//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
11501//   Your account is not authorized to perform the requested operation.
11502//
11503//   * ErrCodeLimitExceededFault "LimitExceededFault"
11504//   The encryption key has exceeded its grant limit in Amazon Web Services KMS.
11505//
11506// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResizeCluster
11507func (c *Redshift) ResizeCluster(input *ResizeClusterInput) (*ResizeClusterOutput, error) {
11508	req, out := c.ResizeClusterRequest(input)
11509	return out, req.Send()
11510}
11511
11512// ResizeClusterWithContext is the same as ResizeCluster with the addition of
11513// the ability to pass a context and additional request options.
11514//
11515// See ResizeCluster for details on how to use this API operation.
11516//
11517// The context must be non-nil and will be used for request cancellation. If
11518// the context is nil a panic will occur. In the future the SDK may create
11519// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11520// for more information on using Contexts.
11521func (c *Redshift) ResizeClusterWithContext(ctx aws.Context, input *ResizeClusterInput, opts ...request.Option) (*ResizeClusterOutput, error) {
11522	req, out := c.ResizeClusterRequest(input)
11523	req.SetContext(ctx)
11524	req.ApplyOptions(opts...)
11525	return out, req.Send()
11526}
11527
11528const opRestoreFromClusterSnapshot = "RestoreFromClusterSnapshot"
11529
11530// RestoreFromClusterSnapshotRequest generates a "aws/request.Request" representing the
11531// client's request for the RestoreFromClusterSnapshot operation. The "output" return
11532// value will be populated with the request's response once the request completes
11533// successfully.
11534//
11535// Use "Send" method on the returned Request to send the API call to the service.
11536// the "output" return value is not valid until after Send returns without error.
11537//
11538// See RestoreFromClusterSnapshot for more information on using the RestoreFromClusterSnapshot
11539// API call, and error handling.
11540//
11541// This method is useful when you want to inject custom logic or configuration
11542// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11543//
11544//
11545//    // Example sending a request using the RestoreFromClusterSnapshotRequest method.
11546//    req, resp := client.RestoreFromClusterSnapshotRequest(params)
11547//
11548//    err := req.Send()
11549//    if err == nil { // resp is now filled
11550//        fmt.Println(resp)
11551//    }
11552//
11553// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreFromClusterSnapshot
11554func (c *Redshift) RestoreFromClusterSnapshotRequest(input *RestoreFromClusterSnapshotInput) (req *request.Request, output *RestoreFromClusterSnapshotOutput) {
11555	op := &request.Operation{
11556		Name:       opRestoreFromClusterSnapshot,
11557		HTTPMethod: "POST",
11558		HTTPPath:   "/",
11559	}
11560
11561	if input == nil {
11562		input = &RestoreFromClusterSnapshotInput{}
11563	}
11564
11565	output = &RestoreFromClusterSnapshotOutput{}
11566	req = c.newRequest(op, input, output)
11567	return
11568}
11569
11570// RestoreFromClusterSnapshot API operation for Amazon Redshift.
11571//
11572// Creates a new cluster from a snapshot. By default, Amazon Redshift creates
11573// the resulting cluster with the same configuration as the original cluster
11574// from which the snapshot was created, except that the new cluster is created
11575// with the default cluster security and parameter groups. After Amazon Redshift
11576// creates the cluster, you can use the ModifyCluster API to associate a different
11577// security group and different parameter group with the restored cluster. If
11578// you are using a DS node type, you can also choose to change to another DS
11579// node type of the same size during restore.
11580//
11581// If you restore a cluster into a VPC, you must provide a cluster subnet group
11582// where you want the cluster restored.
11583//
11584// For more information about working with snapshots, go to Amazon Redshift
11585// Snapshots (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
11586// in the Amazon Redshift Cluster Management Guide.
11587//
11588// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11589// with awserr.Error's Code and Message methods to get detailed information about
11590// the error.
11591//
11592// See the AWS API reference guide for Amazon Redshift's
11593// API operation RestoreFromClusterSnapshot for usage and error information.
11594//
11595// Returned Error Codes:
11596//   * ErrCodeAccessToSnapshotDeniedFault "AccessToSnapshotDenied"
11597//   The owner of the specified snapshot has not authorized your account to access
11598//   the snapshot.
11599//
11600//   * ErrCodeClusterAlreadyExistsFault "ClusterAlreadyExists"
11601//   The account already has a cluster with the given identifier.
11602//
11603//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
11604//   The snapshot identifier does not refer to an existing cluster snapshot.
11605//
11606//   * ErrCodeClusterQuotaExceededFault "ClusterQuotaExceeded"
11607//   The request would exceed the allowed number of cluster instances for this
11608//   account. For information about increasing your quota, go to Limits in Amazon
11609//   Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
11610//   in the Amazon Redshift Cluster Management Guide.
11611//
11612//   * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacity"
11613//   The number of nodes specified exceeds the allotted capacity of the cluster.
11614//
11615//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
11616//   The specified cluster snapshot is not in the available state, or other accounts
11617//   are authorized to access the snapshot.
11618//
11619//   * ErrCodeInvalidRestoreFault "InvalidRestore"
11620//   The restore is invalid.
11621//
11622//   * ErrCodeNumberOfNodesQuotaExceededFault "NumberOfNodesQuotaExceeded"
11623//   The operation would exceed the number of nodes allotted to the account. For
11624//   information about increasing your quota, go to Limits in Amazon Redshift
11625//   (https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
11626//   in the Amazon Redshift Cluster Management Guide.
11627//
11628//   * ErrCodeNumberOfNodesPerClusterLimitExceededFault "NumberOfNodesPerClusterLimitExceeded"
11629//   The operation would exceed the number of nodes allowed for a cluster.
11630//
11631//   * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault"
11632//   The cluster subnet group does not cover all Availability Zones.
11633//
11634//   * ErrCodeInvalidClusterSubnetGroupStateFault "InvalidClusterSubnetGroupStateFault"
11635//   The cluster subnet group cannot be deleted because it is in use.
11636//
11637//   * ErrCodeInvalidSubnet "InvalidSubnet"
11638//   The requested subnet is not valid, or not all of the subnets are in the same
11639//   VPC.
11640//
11641//   * ErrCodeClusterSubnetGroupNotFoundFault "ClusterSubnetGroupNotFoundFault"
11642//   The cluster subnet group name does not refer to an existing cluster subnet
11643//   group.
11644//
11645//   * ErrCodeUnauthorizedOperation "UnauthorizedOperation"
11646//   Your account is not authorized to perform the requested operation.
11647//
11648//   * ErrCodeHsmClientCertificateNotFoundFault "HsmClientCertificateNotFoundFault"
11649//   There is no Amazon Redshift HSM client certificate with the specified identifier.
11650//
11651//   * ErrCodeHsmConfigurationNotFoundFault "HsmConfigurationNotFoundFault"
11652//   There is no Amazon Redshift HSM configuration with the specified identifier.
11653//
11654//   * ErrCodeInvalidElasticIpFault "InvalidElasticIpFault"
11655//   The Elastic IP (EIP) is invalid or cannot be found.
11656//
11657//   * ErrCodeClusterParameterGroupNotFoundFault "ClusterParameterGroupNotFound"
11658//   The parameter group name does not refer to an existing parameter group.
11659//
11660//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
11661//   The cluster security group name does not refer to an existing cluster security
11662//   group.
11663//
11664//   * ErrCodeLimitExceededFault "LimitExceededFault"
11665//   The encryption key has exceeded its grant limit in Amazon Web Services KMS.
11666//
11667//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
11668//   The request cannot be completed because a dependent service is throttling
11669//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
11670//
11671//   * ErrCodeInvalidClusterTrackFault "InvalidClusterTrack"
11672//   The provided cluster track name is not valid.
11673//
11674//   * ErrCodeSnapshotScheduleNotFoundFault "SnapshotScheduleNotFound"
11675//   We could not find the specified snapshot schedule.
11676//
11677//   * ErrCodeTagLimitExceededFault "TagLimitExceededFault"
11678//   You have exceeded the number of tags allowed.
11679//
11680//   * ErrCodeInvalidTagFault "InvalidTagFault"
11681//   The tag is invalid.
11682//
11683// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreFromClusterSnapshot
11684func (c *Redshift) RestoreFromClusterSnapshot(input *RestoreFromClusterSnapshotInput) (*RestoreFromClusterSnapshotOutput, error) {
11685	req, out := c.RestoreFromClusterSnapshotRequest(input)
11686	return out, req.Send()
11687}
11688
11689// RestoreFromClusterSnapshotWithContext is the same as RestoreFromClusterSnapshot with the addition of
11690// the ability to pass a context and additional request options.
11691//
11692// See RestoreFromClusterSnapshot for details on how to use this API operation.
11693//
11694// The context must be non-nil and will be used for request cancellation. If
11695// the context is nil a panic will occur. In the future the SDK may create
11696// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11697// for more information on using Contexts.
11698func (c *Redshift) RestoreFromClusterSnapshotWithContext(ctx aws.Context, input *RestoreFromClusterSnapshotInput, opts ...request.Option) (*RestoreFromClusterSnapshotOutput, error) {
11699	req, out := c.RestoreFromClusterSnapshotRequest(input)
11700	req.SetContext(ctx)
11701	req.ApplyOptions(opts...)
11702	return out, req.Send()
11703}
11704
11705const opRestoreTableFromClusterSnapshot = "RestoreTableFromClusterSnapshot"
11706
11707// RestoreTableFromClusterSnapshotRequest generates a "aws/request.Request" representing the
11708// client's request for the RestoreTableFromClusterSnapshot operation. The "output" return
11709// value will be populated with the request's response once the request completes
11710// successfully.
11711//
11712// Use "Send" method on the returned Request to send the API call to the service.
11713// the "output" return value is not valid until after Send returns without error.
11714//
11715// See RestoreTableFromClusterSnapshot for more information on using the RestoreTableFromClusterSnapshot
11716// API call, and error handling.
11717//
11718// This method is useful when you want to inject custom logic or configuration
11719// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11720//
11721//
11722//    // Example sending a request using the RestoreTableFromClusterSnapshotRequest method.
11723//    req, resp := client.RestoreTableFromClusterSnapshotRequest(params)
11724//
11725//    err := req.Send()
11726//    if err == nil { // resp is now filled
11727//        fmt.Println(resp)
11728//    }
11729//
11730// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreTableFromClusterSnapshot
11731func (c *Redshift) RestoreTableFromClusterSnapshotRequest(input *RestoreTableFromClusterSnapshotInput) (req *request.Request, output *RestoreTableFromClusterSnapshotOutput) {
11732	op := &request.Operation{
11733		Name:       opRestoreTableFromClusterSnapshot,
11734		HTTPMethod: "POST",
11735		HTTPPath:   "/",
11736	}
11737
11738	if input == nil {
11739		input = &RestoreTableFromClusterSnapshotInput{}
11740	}
11741
11742	output = &RestoreTableFromClusterSnapshotOutput{}
11743	req = c.newRequest(op, input, output)
11744	return
11745}
11746
11747// RestoreTableFromClusterSnapshot API operation for Amazon Redshift.
11748//
11749// Creates a new table from a table in an Amazon Redshift cluster snapshot.
11750// You must create the new table within the Amazon Redshift cluster that the
11751// snapshot was taken from.
11752//
11753// You cannot use RestoreTableFromClusterSnapshot to restore a table with the
11754// same name as an existing table in an Amazon Redshift cluster. That is, you
11755// cannot overwrite an existing table in a cluster with a restored table. If
11756// you want to replace your original table with a new, restored table, then
11757// rename or drop your original table before you call RestoreTableFromClusterSnapshot.
11758// When you have renamed your original table, then you can pass the original
11759// name of the table as the NewTableName parameter value in the call to RestoreTableFromClusterSnapshot.
11760// This way, you can replace the original table with the table created from
11761// the snapshot.
11762//
11763// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11764// with awserr.Error's Code and Message methods to get detailed information about
11765// the error.
11766//
11767// See the AWS API reference guide for Amazon Redshift's
11768// API operation RestoreTableFromClusterSnapshot for usage and error information.
11769//
11770// Returned Error Codes:
11771//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
11772//   The snapshot identifier does not refer to an existing cluster snapshot.
11773//
11774//   * ErrCodeInProgressTableRestoreQuotaExceededFault "InProgressTableRestoreQuotaExceededFault"
11775//   You have exceeded the allowed number of table restore requests. Wait for
11776//   your current table restore requests to complete before making a new request.
11777//
11778//   * ErrCodeInvalidClusterSnapshotStateFault "InvalidClusterSnapshotState"
11779//   The specified cluster snapshot is not in the available state, or other accounts
11780//   are authorized to access the snapshot.
11781//
11782//   * ErrCodeInvalidTableRestoreArgumentFault "InvalidTableRestoreArgument"
11783//   The value specified for the sourceDatabaseName, sourceSchemaName, or sourceTableName
11784//   parameter, or a combination of these, doesn't exist in the snapshot.
11785//
11786//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
11787//   The ClusterIdentifier parameter does not refer to an existing cluster.
11788//
11789//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
11790//   The specified cluster is not in the available state.
11791//
11792//   * ErrCodeUnsupportedOperationFault "UnsupportedOperation"
11793//   The requested operation isn't supported.
11794//
11795// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreTableFromClusterSnapshot
11796func (c *Redshift) RestoreTableFromClusterSnapshot(input *RestoreTableFromClusterSnapshotInput) (*RestoreTableFromClusterSnapshotOutput, error) {
11797	req, out := c.RestoreTableFromClusterSnapshotRequest(input)
11798	return out, req.Send()
11799}
11800
11801// RestoreTableFromClusterSnapshotWithContext is the same as RestoreTableFromClusterSnapshot with the addition of
11802// the ability to pass a context and additional request options.
11803//
11804// See RestoreTableFromClusterSnapshot for details on how to use this API operation.
11805//
11806// The context must be non-nil and will be used for request cancellation. If
11807// the context is nil a panic will occur. In the future the SDK may create
11808// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11809// for more information on using Contexts.
11810func (c *Redshift) RestoreTableFromClusterSnapshotWithContext(ctx aws.Context, input *RestoreTableFromClusterSnapshotInput, opts ...request.Option) (*RestoreTableFromClusterSnapshotOutput, error) {
11811	req, out := c.RestoreTableFromClusterSnapshotRequest(input)
11812	req.SetContext(ctx)
11813	req.ApplyOptions(opts...)
11814	return out, req.Send()
11815}
11816
11817const opResumeCluster = "ResumeCluster"
11818
11819// ResumeClusterRequest generates a "aws/request.Request" representing the
11820// client's request for the ResumeCluster operation. The "output" return
11821// value will be populated with the request's response once the request completes
11822// successfully.
11823//
11824// Use "Send" method on the returned Request to send the API call to the service.
11825// the "output" return value is not valid until after Send returns without error.
11826//
11827// See ResumeCluster for more information on using the ResumeCluster
11828// API call, and error handling.
11829//
11830// This method is useful when you want to inject custom logic or configuration
11831// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11832//
11833//
11834//    // Example sending a request using the ResumeClusterRequest method.
11835//    req, resp := client.ResumeClusterRequest(params)
11836//
11837//    err := req.Send()
11838//    if err == nil { // resp is now filled
11839//        fmt.Println(resp)
11840//    }
11841//
11842// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResumeCluster
11843func (c *Redshift) ResumeClusterRequest(input *ResumeClusterInput) (req *request.Request, output *ResumeClusterOutput) {
11844	op := &request.Operation{
11845		Name:       opResumeCluster,
11846		HTTPMethod: "POST",
11847		HTTPPath:   "/",
11848	}
11849
11850	if input == nil {
11851		input = &ResumeClusterInput{}
11852	}
11853
11854	output = &ResumeClusterOutput{}
11855	req = c.newRequest(op, input, output)
11856	return
11857}
11858
11859// ResumeCluster API operation for Amazon Redshift.
11860//
11861// Resumes a paused cluster.
11862//
11863// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11864// with awserr.Error's Code and Message methods to get detailed information about
11865// the error.
11866//
11867// See the AWS API reference guide for Amazon Redshift's
11868// API operation ResumeCluster for usage and error information.
11869//
11870// Returned Error Codes:
11871//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
11872//   The ClusterIdentifier parameter does not refer to an existing cluster.
11873//
11874//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
11875//   The specified cluster is not in the available state.
11876//
11877//   * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacity"
11878//   The number of nodes specified exceeds the allotted capacity of the cluster.
11879//
11880// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResumeCluster
11881func (c *Redshift) ResumeCluster(input *ResumeClusterInput) (*ResumeClusterOutput, error) {
11882	req, out := c.ResumeClusterRequest(input)
11883	return out, req.Send()
11884}
11885
11886// ResumeClusterWithContext is the same as ResumeCluster with the addition of
11887// the ability to pass a context and additional request options.
11888//
11889// See ResumeCluster for details on how to use this API operation.
11890//
11891// The context must be non-nil and will be used for request cancellation. If
11892// the context is nil a panic will occur. In the future the SDK may create
11893// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11894// for more information on using Contexts.
11895func (c *Redshift) ResumeClusterWithContext(ctx aws.Context, input *ResumeClusterInput, opts ...request.Option) (*ResumeClusterOutput, error) {
11896	req, out := c.ResumeClusterRequest(input)
11897	req.SetContext(ctx)
11898	req.ApplyOptions(opts...)
11899	return out, req.Send()
11900}
11901
11902const opRevokeClusterSecurityGroupIngress = "RevokeClusterSecurityGroupIngress"
11903
11904// RevokeClusterSecurityGroupIngressRequest generates a "aws/request.Request" representing the
11905// client's request for the RevokeClusterSecurityGroupIngress operation. The "output" return
11906// value will be populated with the request's response once the request completes
11907// successfully.
11908//
11909// Use "Send" method on the returned Request to send the API call to the service.
11910// the "output" return value is not valid until after Send returns without error.
11911//
11912// See RevokeClusterSecurityGroupIngress for more information on using the RevokeClusterSecurityGroupIngress
11913// API call, and error handling.
11914//
11915// This method is useful when you want to inject custom logic or configuration
11916// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11917//
11918//
11919//    // Example sending a request using the RevokeClusterSecurityGroupIngressRequest method.
11920//    req, resp := client.RevokeClusterSecurityGroupIngressRequest(params)
11921//
11922//    err := req.Send()
11923//    if err == nil { // resp is now filled
11924//        fmt.Println(resp)
11925//    }
11926//
11927// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeClusterSecurityGroupIngress
11928func (c *Redshift) RevokeClusterSecurityGroupIngressRequest(input *RevokeClusterSecurityGroupIngressInput) (req *request.Request, output *RevokeClusterSecurityGroupIngressOutput) {
11929	op := &request.Operation{
11930		Name:       opRevokeClusterSecurityGroupIngress,
11931		HTTPMethod: "POST",
11932		HTTPPath:   "/",
11933	}
11934
11935	if input == nil {
11936		input = &RevokeClusterSecurityGroupIngressInput{}
11937	}
11938
11939	output = &RevokeClusterSecurityGroupIngressOutput{}
11940	req = c.newRequest(op, input, output)
11941	return
11942}
11943
11944// RevokeClusterSecurityGroupIngress API operation for Amazon Redshift.
11945//
11946// Revokes an ingress rule in an Amazon Redshift security group for a previously
11947// authorized IP range or Amazon EC2 security group. To add an ingress rule,
11948// see AuthorizeClusterSecurityGroupIngress. For information about managing
11949// security groups, go to Amazon Redshift Cluster Security Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
11950// in the Amazon Redshift Cluster Management Guide.
11951//
11952// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11953// with awserr.Error's Code and Message methods to get detailed information about
11954// the error.
11955//
11956// See the AWS API reference guide for Amazon Redshift's
11957// API operation RevokeClusterSecurityGroupIngress for usage and error information.
11958//
11959// Returned Error Codes:
11960//   * ErrCodeClusterSecurityGroupNotFoundFault "ClusterSecurityGroupNotFound"
11961//   The cluster security group name does not refer to an existing cluster security
11962//   group.
11963//
11964//   * ErrCodeAuthorizationNotFoundFault "AuthorizationNotFound"
11965//   The specified CIDR IP range or EC2 security group is not authorized for the
11966//   specified cluster security group.
11967//
11968//   * ErrCodeInvalidClusterSecurityGroupStateFault "InvalidClusterSecurityGroupState"
11969//   The state of the cluster security group is not available.
11970//
11971// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeClusterSecurityGroupIngress
11972func (c *Redshift) RevokeClusterSecurityGroupIngress(input *RevokeClusterSecurityGroupIngressInput) (*RevokeClusterSecurityGroupIngressOutput, error) {
11973	req, out := c.RevokeClusterSecurityGroupIngressRequest(input)
11974	return out, req.Send()
11975}
11976
11977// RevokeClusterSecurityGroupIngressWithContext is the same as RevokeClusterSecurityGroupIngress with the addition of
11978// the ability to pass a context and additional request options.
11979//
11980// See RevokeClusterSecurityGroupIngress for details on how to use this API operation.
11981//
11982// The context must be non-nil and will be used for request cancellation. If
11983// the context is nil a panic will occur. In the future the SDK may create
11984// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11985// for more information on using Contexts.
11986func (c *Redshift) RevokeClusterSecurityGroupIngressWithContext(ctx aws.Context, input *RevokeClusterSecurityGroupIngressInput, opts ...request.Option) (*RevokeClusterSecurityGroupIngressOutput, error) {
11987	req, out := c.RevokeClusterSecurityGroupIngressRequest(input)
11988	req.SetContext(ctx)
11989	req.ApplyOptions(opts...)
11990	return out, req.Send()
11991}
11992
11993const opRevokeEndpointAccess = "RevokeEndpointAccess"
11994
11995// RevokeEndpointAccessRequest generates a "aws/request.Request" representing the
11996// client's request for the RevokeEndpointAccess operation. The "output" return
11997// value will be populated with the request's response once the request completes
11998// successfully.
11999//
12000// Use "Send" method on the returned Request to send the API call to the service.
12001// the "output" return value is not valid until after Send returns without error.
12002//
12003// See RevokeEndpointAccess for more information on using the RevokeEndpointAccess
12004// API call, and error handling.
12005//
12006// This method is useful when you want to inject custom logic or configuration
12007// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12008//
12009//
12010//    // Example sending a request using the RevokeEndpointAccessRequest method.
12011//    req, resp := client.RevokeEndpointAccessRequest(params)
12012//
12013//    err := req.Send()
12014//    if err == nil { // resp is now filled
12015//        fmt.Println(resp)
12016//    }
12017//
12018// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeEndpointAccess
12019func (c *Redshift) RevokeEndpointAccessRequest(input *RevokeEndpointAccessInput) (req *request.Request, output *RevokeEndpointAccessOutput) {
12020	op := &request.Operation{
12021		Name:       opRevokeEndpointAccess,
12022		HTTPMethod: "POST",
12023		HTTPPath:   "/",
12024	}
12025
12026	if input == nil {
12027		input = &RevokeEndpointAccessInput{}
12028	}
12029
12030	output = &RevokeEndpointAccessOutput{}
12031	req = c.newRequest(op, input, output)
12032	return
12033}
12034
12035// RevokeEndpointAccess API operation for Amazon Redshift.
12036//
12037// Revokes access to a cluster.
12038//
12039// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12040// with awserr.Error's Code and Message methods to get detailed information about
12041// the error.
12042//
12043// See the AWS API reference guide for Amazon Redshift's
12044// API operation RevokeEndpointAccess for usage and error information.
12045//
12046// Returned Error Codes:
12047//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
12048//   The ClusterIdentifier parameter does not refer to an existing cluster.
12049//
12050//   * ErrCodeInvalidEndpointStateFault "InvalidEndpointState"
12051//   The status of the endpoint is not valid.
12052//
12053//   * ErrCodeInvalidClusterSecurityGroupStateFault "InvalidClusterSecurityGroupState"
12054//   The state of the cluster security group is not available.
12055//
12056//   * ErrCodeEndpointNotFoundFault "EndpointNotFound"
12057//   The endpoint name doesn't refer to an existing endpoint.
12058//
12059//   * ErrCodeEndpointAuthorizationNotFoundFault "EndpointAuthorizationNotFound"
12060//   The authorization for this endpoint can't be found.
12061//
12062//   * ErrCodeInvalidAuthorizationStateFault "InvalidAuthorizationState"
12063//   The status of the authorization is not valid.
12064//
12065//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
12066//   The specified cluster is not in the available state.
12067//
12068// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeEndpointAccess
12069func (c *Redshift) RevokeEndpointAccess(input *RevokeEndpointAccessInput) (*RevokeEndpointAccessOutput, error) {
12070	req, out := c.RevokeEndpointAccessRequest(input)
12071	return out, req.Send()
12072}
12073
12074// RevokeEndpointAccessWithContext is the same as RevokeEndpointAccess with the addition of
12075// the ability to pass a context and additional request options.
12076//
12077// See RevokeEndpointAccess for details on how to use this API operation.
12078//
12079// The context must be non-nil and will be used for request cancellation. If
12080// the context is nil a panic will occur. In the future the SDK may create
12081// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12082// for more information on using Contexts.
12083func (c *Redshift) RevokeEndpointAccessWithContext(ctx aws.Context, input *RevokeEndpointAccessInput, opts ...request.Option) (*RevokeEndpointAccessOutput, error) {
12084	req, out := c.RevokeEndpointAccessRequest(input)
12085	req.SetContext(ctx)
12086	req.ApplyOptions(opts...)
12087	return out, req.Send()
12088}
12089
12090const opRevokeSnapshotAccess = "RevokeSnapshotAccess"
12091
12092// RevokeSnapshotAccessRequest generates a "aws/request.Request" representing the
12093// client's request for the RevokeSnapshotAccess operation. The "output" return
12094// value will be populated with the request's response once the request completes
12095// successfully.
12096//
12097// Use "Send" method on the returned Request to send the API call to the service.
12098// the "output" return value is not valid until after Send returns without error.
12099//
12100// See RevokeSnapshotAccess for more information on using the RevokeSnapshotAccess
12101// API call, and error handling.
12102//
12103// This method is useful when you want to inject custom logic or configuration
12104// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12105//
12106//
12107//    // Example sending a request using the RevokeSnapshotAccessRequest method.
12108//    req, resp := client.RevokeSnapshotAccessRequest(params)
12109//
12110//    err := req.Send()
12111//    if err == nil { // resp is now filled
12112//        fmt.Println(resp)
12113//    }
12114//
12115// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeSnapshotAccess
12116func (c *Redshift) RevokeSnapshotAccessRequest(input *RevokeSnapshotAccessInput) (req *request.Request, output *RevokeSnapshotAccessOutput) {
12117	op := &request.Operation{
12118		Name:       opRevokeSnapshotAccess,
12119		HTTPMethod: "POST",
12120		HTTPPath:   "/",
12121	}
12122
12123	if input == nil {
12124		input = &RevokeSnapshotAccessInput{}
12125	}
12126
12127	output = &RevokeSnapshotAccessOutput{}
12128	req = c.newRequest(op, input, output)
12129	return
12130}
12131
12132// RevokeSnapshotAccess API operation for Amazon Redshift.
12133//
12134// Removes the ability of the specified Amazon Web Services account to restore
12135// the specified snapshot. If the account is currently restoring the snapshot,
12136// the restore will run to completion.
12137//
12138// For more information about working with snapshots, go to Amazon Redshift
12139// Snapshots (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
12140// in the Amazon Redshift Cluster Management Guide.
12141//
12142// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12143// with awserr.Error's Code and Message methods to get detailed information about
12144// the error.
12145//
12146// See the AWS API reference guide for Amazon Redshift's
12147// API operation RevokeSnapshotAccess for usage and error information.
12148//
12149// Returned Error Codes:
12150//   * ErrCodeAccessToSnapshotDeniedFault "AccessToSnapshotDenied"
12151//   The owner of the specified snapshot has not authorized your account to access
12152//   the snapshot.
12153//
12154//   * ErrCodeAuthorizationNotFoundFault "AuthorizationNotFound"
12155//   The specified CIDR IP range or EC2 security group is not authorized for the
12156//   specified cluster security group.
12157//
12158//   * ErrCodeClusterSnapshotNotFoundFault "ClusterSnapshotNotFound"
12159//   The snapshot identifier does not refer to an existing cluster snapshot.
12160//
12161// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeSnapshotAccess
12162func (c *Redshift) RevokeSnapshotAccess(input *RevokeSnapshotAccessInput) (*RevokeSnapshotAccessOutput, error) {
12163	req, out := c.RevokeSnapshotAccessRequest(input)
12164	return out, req.Send()
12165}
12166
12167// RevokeSnapshotAccessWithContext is the same as RevokeSnapshotAccess with the addition of
12168// the ability to pass a context and additional request options.
12169//
12170// See RevokeSnapshotAccess for details on how to use this API operation.
12171//
12172// The context must be non-nil and will be used for request cancellation. If
12173// the context is nil a panic will occur. In the future the SDK may create
12174// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12175// for more information on using Contexts.
12176func (c *Redshift) RevokeSnapshotAccessWithContext(ctx aws.Context, input *RevokeSnapshotAccessInput, opts ...request.Option) (*RevokeSnapshotAccessOutput, error) {
12177	req, out := c.RevokeSnapshotAccessRequest(input)
12178	req.SetContext(ctx)
12179	req.ApplyOptions(opts...)
12180	return out, req.Send()
12181}
12182
12183const opRotateEncryptionKey = "RotateEncryptionKey"
12184
12185// RotateEncryptionKeyRequest generates a "aws/request.Request" representing the
12186// client's request for the RotateEncryptionKey operation. The "output" return
12187// value will be populated with the request's response once the request completes
12188// successfully.
12189//
12190// Use "Send" method on the returned Request to send the API call to the service.
12191// the "output" return value is not valid until after Send returns without error.
12192//
12193// See RotateEncryptionKey for more information on using the RotateEncryptionKey
12194// API call, and error handling.
12195//
12196// This method is useful when you want to inject custom logic or configuration
12197// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12198//
12199//
12200//    // Example sending a request using the RotateEncryptionKeyRequest method.
12201//    req, resp := client.RotateEncryptionKeyRequest(params)
12202//
12203//    err := req.Send()
12204//    if err == nil { // resp is now filled
12205//        fmt.Println(resp)
12206//    }
12207//
12208// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RotateEncryptionKey
12209func (c *Redshift) RotateEncryptionKeyRequest(input *RotateEncryptionKeyInput) (req *request.Request, output *RotateEncryptionKeyOutput) {
12210	op := &request.Operation{
12211		Name:       opRotateEncryptionKey,
12212		HTTPMethod: "POST",
12213		HTTPPath:   "/",
12214	}
12215
12216	if input == nil {
12217		input = &RotateEncryptionKeyInput{}
12218	}
12219
12220	output = &RotateEncryptionKeyOutput{}
12221	req = c.newRequest(op, input, output)
12222	return
12223}
12224
12225// RotateEncryptionKey API operation for Amazon Redshift.
12226//
12227// Rotates the encryption keys for a cluster.
12228//
12229// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12230// with awserr.Error's Code and Message methods to get detailed information about
12231// the error.
12232//
12233// See the AWS API reference guide for Amazon Redshift's
12234// API operation RotateEncryptionKey for usage and error information.
12235//
12236// Returned Error Codes:
12237//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
12238//   The ClusterIdentifier parameter does not refer to an existing cluster.
12239//
12240//   * ErrCodeInvalidClusterStateFault "InvalidClusterState"
12241//   The specified cluster is not in the available state.
12242//
12243//   * ErrCodeDependentServiceRequestThrottlingFault "DependentServiceRequestThrottlingFault"
12244//   The request cannot be completed because a dependent service is throttling
12245//   requests made by Amazon Redshift on your behalf. Wait and retry the request.
12246//
12247// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RotateEncryptionKey
12248func (c *Redshift) RotateEncryptionKey(input *RotateEncryptionKeyInput) (*RotateEncryptionKeyOutput, error) {
12249	req, out := c.RotateEncryptionKeyRequest(input)
12250	return out, req.Send()
12251}
12252
12253// RotateEncryptionKeyWithContext is the same as RotateEncryptionKey with the addition of
12254// the ability to pass a context and additional request options.
12255//
12256// See RotateEncryptionKey for details on how to use this API operation.
12257//
12258// The context must be non-nil and will be used for request cancellation. If
12259// the context is nil a panic will occur. In the future the SDK may create
12260// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12261// for more information on using Contexts.
12262func (c *Redshift) RotateEncryptionKeyWithContext(ctx aws.Context, input *RotateEncryptionKeyInput, opts ...request.Option) (*RotateEncryptionKeyOutput, error) {
12263	req, out := c.RotateEncryptionKeyRequest(input)
12264	req.SetContext(ctx)
12265	req.ApplyOptions(opts...)
12266	return out, req.Send()
12267}
12268
12269const opUpdatePartnerStatus = "UpdatePartnerStatus"
12270
12271// UpdatePartnerStatusRequest generates a "aws/request.Request" representing the
12272// client's request for the UpdatePartnerStatus operation. The "output" return
12273// value will be populated with the request's response once the request completes
12274// successfully.
12275//
12276// Use "Send" method on the returned Request to send the API call to the service.
12277// the "output" return value is not valid until after Send returns without error.
12278//
12279// See UpdatePartnerStatus for more information on using the UpdatePartnerStatus
12280// API call, and error handling.
12281//
12282// This method is useful when you want to inject custom logic or configuration
12283// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12284//
12285//
12286//    // Example sending a request using the UpdatePartnerStatusRequest method.
12287//    req, resp := client.UpdatePartnerStatusRequest(params)
12288//
12289//    err := req.Send()
12290//    if err == nil { // resp is now filled
12291//        fmt.Println(resp)
12292//    }
12293//
12294// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/UpdatePartnerStatus
12295func (c *Redshift) UpdatePartnerStatusRequest(input *UpdatePartnerStatusInput) (req *request.Request, output *UpdatePartnerStatusOutput) {
12296	op := &request.Operation{
12297		Name:       opUpdatePartnerStatus,
12298		HTTPMethod: "POST",
12299		HTTPPath:   "/",
12300	}
12301
12302	if input == nil {
12303		input = &UpdatePartnerStatusInput{}
12304	}
12305
12306	output = &UpdatePartnerStatusOutput{}
12307	req = c.newRequest(op, input, output)
12308	return
12309}
12310
12311// UpdatePartnerStatus API operation for Amazon Redshift.
12312//
12313// Updates the status of a partner integration.
12314//
12315// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12316// with awserr.Error's Code and Message methods to get detailed information about
12317// the error.
12318//
12319// See the AWS API reference guide for Amazon Redshift's
12320// API operation UpdatePartnerStatus for usage and error information.
12321//
12322// Returned Error Codes:
12323//   * ErrCodePartnerNotFoundFault "PartnerNotFound"
12324//   The name of the partner was not found.
12325//
12326//   * ErrCodeClusterNotFoundFault "ClusterNotFound"
12327//   The ClusterIdentifier parameter does not refer to an existing cluster.
12328//
12329//   * ErrCodeUnauthorizedPartnerIntegrationFault "UnauthorizedPartnerIntegration"
12330//   The partner integration is not authorized.
12331//
12332// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/UpdatePartnerStatus
12333func (c *Redshift) UpdatePartnerStatus(input *UpdatePartnerStatusInput) (*UpdatePartnerStatusOutput, error) {
12334	req, out := c.UpdatePartnerStatusRequest(input)
12335	return out, req.Send()
12336}
12337
12338// UpdatePartnerStatusWithContext is the same as UpdatePartnerStatus with the addition of
12339// the ability to pass a context and additional request options.
12340//
12341// See UpdatePartnerStatus for details on how to use this API operation.
12342//
12343// The context must be non-nil and will be used for request cancellation. If
12344// the context is nil a panic will occur. In the future the SDK may create
12345// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12346// for more information on using Contexts.
12347func (c *Redshift) UpdatePartnerStatusWithContext(ctx aws.Context, input *UpdatePartnerStatusInput, opts ...request.Option) (*UpdatePartnerStatusOutput, error) {
12348	req, out := c.UpdatePartnerStatusRequest(input)
12349	req.SetContext(ctx)
12350	req.ApplyOptions(opts...)
12351	return out, req.Send()
12352}
12353
12354type AcceptReservedNodeExchangeInput struct {
12355	_ struct{} `type:"structure"`
12356
12357	// A string representing the node identifier of the DC1 Reserved Node to be
12358	// exchanged.
12359	//
12360	// ReservedNodeId is a required field
12361	ReservedNodeId *string `type:"string" required:"true"`
12362
12363	// The unique identifier of the DC2 Reserved Node offering to be used for the
12364	// exchange. You can obtain the value for the parameter by calling GetReservedNodeExchangeOfferings
12365	//
12366	// TargetReservedNodeOfferingId is a required field
12367	TargetReservedNodeOfferingId *string `type:"string" required:"true"`
12368}
12369
12370// String returns the string representation.
12371//
12372// API parameter values that are decorated as "sensitive" in the API will not
12373// be included in the string output. The member name will be present, but the
12374// value will be replaced with "sensitive".
12375func (s AcceptReservedNodeExchangeInput) String() string {
12376	return awsutil.Prettify(s)
12377}
12378
12379// GoString returns the string representation.
12380//
12381// API parameter values that are decorated as "sensitive" in the API will not
12382// be included in the string output. The member name will be present, but the
12383// value will be replaced with "sensitive".
12384func (s AcceptReservedNodeExchangeInput) GoString() string {
12385	return s.String()
12386}
12387
12388// Validate inspects the fields of the type to determine if they are valid.
12389func (s *AcceptReservedNodeExchangeInput) Validate() error {
12390	invalidParams := request.ErrInvalidParams{Context: "AcceptReservedNodeExchangeInput"}
12391	if s.ReservedNodeId == nil {
12392		invalidParams.Add(request.NewErrParamRequired("ReservedNodeId"))
12393	}
12394	if s.TargetReservedNodeOfferingId == nil {
12395		invalidParams.Add(request.NewErrParamRequired("TargetReservedNodeOfferingId"))
12396	}
12397
12398	if invalidParams.Len() > 0 {
12399		return invalidParams
12400	}
12401	return nil
12402}
12403
12404// SetReservedNodeId sets the ReservedNodeId field's value.
12405func (s *AcceptReservedNodeExchangeInput) SetReservedNodeId(v string) *AcceptReservedNodeExchangeInput {
12406	s.ReservedNodeId = &v
12407	return s
12408}
12409
12410// SetTargetReservedNodeOfferingId sets the TargetReservedNodeOfferingId field's value.
12411func (s *AcceptReservedNodeExchangeInput) SetTargetReservedNodeOfferingId(v string) *AcceptReservedNodeExchangeInput {
12412	s.TargetReservedNodeOfferingId = &v
12413	return s
12414}
12415
12416type AcceptReservedNodeExchangeOutput struct {
12417	_ struct{} `type:"structure"`
12418
12419	// Describes a reserved node. You can call the DescribeReservedNodeOfferings
12420	// API to obtain the available reserved node offerings.
12421	ExchangedReservedNode *ReservedNode `type:"structure"`
12422}
12423
12424// String returns the string representation.
12425//
12426// API parameter values that are decorated as "sensitive" in the API will not
12427// be included in the string output. The member name will be present, but the
12428// value will be replaced with "sensitive".
12429func (s AcceptReservedNodeExchangeOutput) String() string {
12430	return awsutil.Prettify(s)
12431}
12432
12433// GoString returns the string representation.
12434//
12435// API parameter values that are decorated as "sensitive" in the API will not
12436// be included in the string output. The member name will be present, but the
12437// value will be replaced with "sensitive".
12438func (s AcceptReservedNodeExchangeOutput) GoString() string {
12439	return s.String()
12440}
12441
12442// SetExchangedReservedNode sets the ExchangedReservedNode field's value.
12443func (s *AcceptReservedNodeExchangeOutput) SetExchangedReservedNode(v *ReservedNode) *AcceptReservedNodeExchangeOutput {
12444	s.ExchangedReservedNode = v
12445	return s
12446}
12447
12448// A name value pair that describes an aspect of an account.
12449type AccountAttribute struct {
12450	_ struct{} `type:"structure"`
12451
12452	// The name of the attribute.
12453	AttributeName *string `type:"string"`
12454
12455	// A list of attribute values.
12456	AttributeValues []*AttributeValueTarget `locationNameList:"AttributeValueTarget" type:"list"`
12457}
12458
12459// String returns the string representation.
12460//
12461// API parameter values that are decorated as "sensitive" in the API will not
12462// be included in the string output. The member name will be present, but the
12463// value will be replaced with "sensitive".
12464func (s AccountAttribute) String() string {
12465	return awsutil.Prettify(s)
12466}
12467
12468// GoString returns the string representation.
12469//
12470// API parameter values that are decorated as "sensitive" in the API will not
12471// be included in the string output. The member name will be present, but the
12472// value will be replaced with "sensitive".
12473func (s AccountAttribute) GoString() string {
12474	return s.String()
12475}
12476
12477// SetAttributeName sets the AttributeName field's value.
12478func (s *AccountAttribute) SetAttributeName(v string) *AccountAttribute {
12479	s.AttributeName = &v
12480	return s
12481}
12482
12483// SetAttributeValues sets the AttributeValues field's value.
12484func (s *AccountAttribute) SetAttributeValues(v []*AttributeValueTarget) *AccountAttribute {
12485	s.AttributeValues = v
12486	return s
12487}
12488
12489// Describes an Amazon Web Services account authorized to restore a snapshot.
12490type AccountWithRestoreAccess struct {
12491	_ struct{} `type:"structure"`
12492
12493	// The identifier of an Amazon Web Services support account authorized to restore
12494	// a snapshot. For Amazon Web Services Support, the identifier is amazon-redshift-support.
12495	AccountAlias *string `type:"string"`
12496
12497	// The identifier of an Amazon Web Services account authorized to restore a
12498	// snapshot.
12499	AccountId *string `type:"string"`
12500}
12501
12502// String returns the string representation.
12503//
12504// API parameter values that are decorated as "sensitive" in the API will not
12505// be included in the string output. The member name will be present, but the
12506// value will be replaced with "sensitive".
12507func (s AccountWithRestoreAccess) String() string {
12508	return awsutil.Prettify(s)
12509}
12510
12511// GoString returns the string representation.
12512//
12513// API parameter values that are decorated as "sensitive" in the API will not
12514// be included in the string output. The member name will be present, but the
12515// value will be replaced with "sensitive".
12516func (s AccountWithRestoreAccess) GoString() string {
12517	return s.String()
12518}
12519
12520// SetAccountAlias sets the AccountAlias field's value.
12521func (s *AccountWithRestoreAccess) SetAccountAlias(v string) *AccountWithRestoreAccess {
12522	s.AccountAlias = &v
12523	return s
12524}
12525
12526// SetAccountId sets the AccountId field's value.
12527func (s *AccountWithRestoreAccess) SetAccountId(v string) *AccountWithRestoreAccess {
12528	s.AccountId = &v
12529	return s
12530}
12531
12532type AddPartnerInput struct {
12533	_ struct{} `type:"structure"`
12534
12535	// The Amazon Web Services account ID that owns the cluster.
12536	//
12537	// AccountId is a required field
12538	AccountId *string `min:"12" type:"string" required:"true"`
12539
12540	// The cluster identifier of the cluster that receives data from the partner.
12541	//
12542	// ClusterIdentifier is a required field
12543	ClusterIdentifier *string `type:"string" required:"true"`
12544
12545	// The name of the database that receives data from the partner.
12546	//
12547	// DatabaseName is a required field
12548	DatabaseName *string `type:"string" required:"true"`
12549
12550	// The name of the partner that is authorized to send data.
12551	//
12552	// PartnerName is a required field
12553	PartnerName *string `type:"string" required:"true"`
12554}
12555
12556// String returns the string representation.
12557//
12558// API parameter values that are decorated as "sensitive" in the API will not
12559// be included in the string output. The member name will be present, but the
12560// value will be replaced with "sensitive".
12561func (s AddPartnerInput) String() string {
12562	return awsutil.Prettify(s)
12563}
12564
12565// GoString returns the string representation.
12566//
12567// API parameter values that are decorated as "sensitive" in the API will not
12568// be included in the string output. The member name will be present, but the
12569// value will be replaced with "sensitive".
12570func (s AddPartnerInput) GoString() string {
12571	return s.String()
12572}
12573
12574// Validate inspects the fields of the type to determine if they are valid.
12575func (s *AddPartnerInput) Validate() error {
12576	invalidParams := request.ErrInvalidParams{Context: "AddPartnerInput"}
12577	if s.AccountId == nil {
12578		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12579	}
12580	if s.AccountId != nil && len(*s.AccountId) < 12 {
12581		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
12582	}
12583	if s.ClusterIdentifier == nil {
12584		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
12585	}
12586	if s.DatabaseName == nil {
12587		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
12588	}
12589	if s.PartnerName == nil {
12590		invalidParams.Add(request.NewErrParamRequired("PartnerName"))
12591	}
12592
12593	if invalidParams.Len() > 0 {
12594		return invalidParams
12595	}
12596	return nil
12597}
12598
12599// SetAccountId sets the AccountId field's value.
12600func (s *AddPartnerInput) SetAccountId(v string) *AddPartnerInput {
12601	s.AccountId = &v
12602	return s
12603}
12604
12605// SetClusterIdentifier sets the ClusterIdentifier field's value.
12606func (s *AddPartnerInput) SetClusterIdentifier(v string) *AddPartnerInput {
12607	s.ClusterIdentifier = &v
12608	return s
12609}
12610
12611// SetDatabaseName sets the DatabaseName field's value.
12612func (s *AddPartnerInput) SetDatabaseName(v string) *AddPartnerInput {
12613	s.DatabaseName = &v
12614	return s
12615}
12616
12617// SetPartnerName sets the PartnerName field's value.
12618func (s *AddPartnerInput) SetPartnerName(v string) *AddPartnerInput {
12619	s.PartnerName = &v
12620	return s
12621}
12622
12623type AddPartnerOutput struct {
12624	_ struct{} `type:"structure"`
12625
12626	// The name of the database that receives data from the partner.
12627	DatabaseName *string `type:"string"`
12628
12629	// The name of the partner that is authorized to send data.
12630	PartnerName *string `type:"string"`
12631}
12632
12633// String returns the string representation.
12634//
12635// API parameter values that are decorated as "sensitive" in the API will not
12636// be included in the string output. The member name will be present, but the
12637// value will be replaced with "sensitive".
12638func (s AddPartnerOutput) String() string {
12639	return awsutil.Prettify(s)
12640}
12641
12642// GoString returns the string representation.
12643//
12644// API parameter values that are decorated as "sensitive" in the API will not
12645// be included in the string output. The member name will be present, but the
12646// value will be replaced with "sensitive".
12647func (s AddPartnerOutput) GoString() string {
12648	return s.String()
12649}
12650
12651// SetDatabaseName sets the DatabaseName field's value.
12652func (s *AddPartnerOutput) SetDatabaseName(v string) *AddPartnerOutput {
12653	s.DatabaseName = &v
12654	return s
12655}
12656
12657// SetPartnerName sets the PartnerName field's value.
12658func (s *AddPartnerOutput) SetPartnerName(v string) *AddPartnerOutput {
12659	s.PartnerName = &v
12660	return s
12661}
12662
12663// The AQUA (Advanced Query Accelerator) configuration of the cluster.
12664type AquaConfiguration struct {
12665	_ struct{} `type:"structure"`
12666
12667	// The value represents how the cluster is configured to use AQUA. Possible
12668	// values include the following.
12669	//
12670	//    * enabled - Use AQUA if it is available for the current Amazon Web Services
12671	//    Region and Amazon Redshift node type.
12672	//
12673	//    * disabled - Don't use AQUA.
12674	//
12675	//    * auto - Amazon Redshift determines whether to use AQUA.
12676	AquaConfigurationStatus *string `type:"string" enum:"AquaConfigurationStatus"`
12677
12678	// The value indicates the status of AQUA on the cluster. Possible values include
12679	// the following.
12680	//
12681	//    * enabled - AQUA is enabled.
12682	//
12683	//    * disabled - AQUA is not enabled.
12684	//
12685	//    * applying - AQUA status is being applied.
12686	AquaStatus *string `type:"string" enum:"AquaStatus"`
12687}
12688
12689// String returns the string representation.
12690//
12691// API parameter values that are decorated as "sensitive" in the API will not
12692// be included in the string output. The member name will be present, but the
12693// value will be replaced with "sensitive".
12694func (s AquaConfiguration) String() string {
12695	return awsutil.Prettify(s)
12696}
12697
12698// GoString returns the string representation.
12699//
12700// API parameter values that are decorated as "sensitive" in the API will not
12701// be included in the string output. The member name will be present, but the
12702// value will be replaced with "sensitive".
12703func (s AquaConfiguration) GoString() string {
12704	return s.String()
12705}
12706
12707// SetAquaConfigurationStatus sets the AquaConfigurationStatus field's value.
12708func (s *AquaConfiguration) SetAquaConfigurationStatus(v string) *AquaConfiguration {
12709	s.AquaConfigurationStatus = &v
12710	return s
12711}
12712
12713// SetAquaStatus sets the AquaStatus field's value.
12714func (s *AquaConfiguration) SetAquaStatus(v string) *AquaConfiguration {
12715	s.AquaStatus = &v
12716	return s
12717}
12718
12719type AssociateDataShareConsumerInput struct {
12720	_ struct{} `type:"structure"`
12721
12722	// A value that specifies whether the datashare is associated with the entire
12723	// account.
12724	AssociateEntireAccount *bool `type:"boolean"`
12725
12726	// The Amazon Resource Name (ARN) of the consumer that is associated with the
12727	// datashare.
12728	ConsumerArn *string `type:"string"`
12729
12730	// The Amazon Resource Name (ARN) of the datashare that the consumer is to use
12731	// with the account or the namespace.
12732	//
12733	// DataShareArn is a required field
12734	DataShareArn *string `type:"string" required:"true"`
12735}
12736
12737// String returns the string representation.
12738//
12739// API parameter values that are decorated as "sensitive" in the API will not
12740// be included in the string output. The member name will be present, but the
12741// value will be replaced with "sensitive".
12742func (s AssociateDataShareConsumerInput) String() string {
12743	return awsutil.Prettify(s)
12744}
12745
12746// GoString returns the string representation.
12747//
12748// API parameter values that are decorated as "sensitive" in the API will not
12749// be included in the string output. The member name will be present, but the
12750// value will be replaced with "sensitive".
12751func (s AssociateDataShareConsumerInput) GoString() string {
12752	return s.String()
12753}
12754
12755// Validate inspects the fields of the type to determine if they are valid.
12756func (s *AssociateDataShareConsumerInput) Validate() error {
12757	invalidParams := request.ErrInvalidParams{Context: "AssociateDataShareConsumerInput"}
12758	if s.DataShareArn == nil {
12759		invalidParams.Add(request.NewErrParamRequired("DataShareArn"))
12760	}
12761
12762	if invalidParams.Len() > 0 {
12763		return invalidParams
12764	}
12765	return nil
12766}
12767
12768// SetAssociateEntireAccount sets the AssociateEntireAccount field's value.
12769func (s *AssociateDataShareConsumerInput) SetAssociateEntireAccount(v bool) *AssociateDataShareConsumerInput {
12770	s.AssociateEntireAccount = &v
12771	return s
12772}
12773
12774// SetConsumerArn sets the ConsumerArn field's value.
12775func (s *AssociateDataShareConsumerInput) SetConsumerArn(v string) *AssociateDataShareConsumerInput {
12776	s.ConsumerArn = &v
12777	return s
12778}
12779
12780// SetDataShareArn sets the DataShareArn field's value.
12781func (s *AssociateDataShareConsumerInput) SetDataShareArn(v string) *AssociateDataShareConsumerInput {
12782	s.DataShareArn = &v
12783	return s
12784}
12785
12786type AssociateDataShareConsumerOutput struct {
12787	_ struct{} `type:"structure"`
12788
12789	// A value that specifies whether the datashare can be shared to a publicly
12790	// accessible cluster.
12791	AllowPubliclyAccessibleConsumers *bool `type:"boolean"`
12792
12793	// An Amazon Resource Name (ARN) that references the datashare that is owned
12794	// by a specific namespace of the producer cluster. A datashare ARN is in the
12795	// arn:aws:redshift:{region}:{account-id}:{datashare}:{namespace-guid}/{datashare-name}
12796	// format.
12797	DataShareArn *string `type:"string"`
12798
12799	// A value that specifies when the datashare has an association between a producer
12800	// and data consumers.
12801	DataShareAssociations []*DataShareAssociation `type:"list"`
12802
12803	// The Amazon Resource Name (ARN) of the producer.
12804	ProducerArn *string `type:"string"`
12805}
12806
12807// String returns the string representation.
12808//
12809// API parameter values that are decorated as "sensitive" in the API will not
12810// be included in the string output. The member name will be present, but the
12811// value will be replaced with "sensitive".
12812func (s AssociateDataShareConsumerOutput) String() string {
12813	return awsutil.Prettify(s)
12814}
12815
12816// GoString returns the string representation.
12817//
12818// API parameter values that are decorated as "sensitive" in the API will not
12819// be included in the string output. The member name will be present, but the
12820// value will be replaced with "sensitive".
12821func (s AssociateDataShareConsumerOutput) GoString() string {
12822	return s.String()
12823}
12824
12825// SetAllowPubliclyAccessibleConsumers sets the AllowPubliclyAccessibleConsumers field's value.
12826func (s *AssociateDataShareConsumerOutput) SetAllowPubliclyAccessibleConsumers(v bool) *AssociateDataShareConsumerOutput {
12827	s.AllowPubliclyAccessibleConsumers = &v
12828	return s
12829}
12830
12831// SetDataShareArn sets the DataShareArn field's value.
12832func (s *AssociateDataShareConsumerOutput) SetDataShareArn(v string) *AssociateDataShareConsumerOutput {
12833	s.DataShareArn = &v
12834	return s
12835}
12836
12837// SetDataShareAssociations sets the DataShareAssociations field's value.
12838func (s *AssociateDataShareConsumerOutput) SetDataShareAssociations(v []*DataShareAssociation) *AssociateDataShareConsumerOutput {
12839	s.DataShareAssociations = v
12840	return s
12841}
12842
12843// SetProducerArn sets the ProducerArn field's value.
12844func (s *AssociateDataShareConsumerOutput) SetProducerArn(v string) *AssociateDataShareConsumerOutput {
12845	s.ProducerArn = &v
12846	return s
12847}
12848
12849// Describes an attribute value.
12850type AttributeValueTarget struct {
12851	_ struct{} `type:"structure"`
12852
12853	// The value of the attribute.
12854	AttributeValue *string `type:"string"`
12855}
12856
12857// String returns the string representation.
12858//
12859// API parameter values that are decorated as "sensitive" in the API will not
12860// be included in the string output. The member name will be present, but the
12861// value will be replaced with "sensitive".
12862func (s AttributeValueTarget) String() string {
12863	return awsutil.Prettify(s)
12864}
12865
12866// GoString returns the string representation.
12867//
12868// API parameter values that are decorated as "sensitive" in the API will not
12869// be included in the string output. The member name will be present, but the
12870// value will be replaced with "sensitive".
12871func (s AttributeValueTarget) GoString() string {
12872	return s.String()
12873}
12874
12875// SetAttributeValue sets the AttributeValue field's value.
12876func (s *AttributeValueTarget) SetAttributeValue(v string) *AttributeValueTarget {
12877	s.AttributeValue = &v
12878	return s
12879}
12880
12881// Describes an authentication profile.
12882type AuthenticationProfile struct {
12883	_ struct{} `type:"structure"`
12884
12885	// The content of the authentication profile in JSON format. The maximum length
12886	// of the JSON string is determined by a quota for your account.
12887	AuthenticationProfileContent *string `type:"string"`
12888
12889	// The name of the authentication profile.
12890	AuthenticationProfileName *string `type:"string"`
12891}
12892
12893// String returns the string representation.
12894//
12895// API parameter values that are decorated as "sensitive" in the API will not
12896// be included in the string output. The member name will be present, but the
12897// value will be replaced with "sensitive".
12898func (s AuthenticationProfile) String() string {
12899	return awsutil.Prettify(s)
12900}
12901
12902// GoString returns the string representation.
12903//
12904// API parameter values that are decorated as "sensitive" in the API will not
12905// be included in the string output. The member name will be present, but the
12906// value will be replaced with "sensitive".
12907func (s AuthenticationProfile) GoString() string {
12908	return s.String()
12909}
12910
12911// SetAuthenticationProfileContent sets the AuthenticationProfileContent field's value.
12912func (s *AuthenticationProfile) SetAuthenticationProfileContent(v string) *AuthenticationProfile {
12913	s.AuthenticationProfileContent = &v
12914	return s
12915}
12916
12917// SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
12918func (s *AuthenticationProfile) SetAuthenticationProfileName(v string) *AuthenticationProfile {
12919	s.AuthenticationProfileName = &v
12920	return s
12921}
12922
12923type AuthorizeClusterSecurityGroupIngressInput struct {
12924	_ struct{} `type:"structure"`
12925
12926	// The IP range to be added the Amazon Redshift security group.
12927	CIDRIP *string `type:"string"`
12928
12929	// The name of the security group to which the ingress rule is added.
12930	//
12931	// ClusterSecurityGroupName is a required field
12932	ClusterSecurityGroupName *string `type:"string" required:"true"`
12933
12934	// The EC2 security group to be added the Amazon Redshift security group.
12935	EC2SecurityGroupName *string `type:"string"`
12936
12937	// The Amazon Web Services account number of the owner of the security group
12938	// specified by the EC2SecurityGroupName parameter. The Amazon Web Services
12939	// Access Key ID is not an acceptable value.
12940	//
12941	// Example: 111122223333
12942	EC2SecurityGroupOwnerId *string `type:"string"`
12943}
12944
12945// String returns the string representation.
12946//
12947// API parameter values that are decorated as "sensitive" in the API will not
12948// be included in the string output. The member name will be present, but the
12949// value will be replaced with "sensitive".
12950func (s AuthorizeClusterSecurityGroupIngressInput) String() string {
12951	return awsutil.Prettify(s)
12952}
12953
12954// GoString returns the string representation.
12955//
12956// API parameter values that are decorated as "sensitive" in the API will not
12957// be included in the string output. The member name will be present, but the
12958// value will be replaced with "sensitive".
12959func (s AuthorizeClusterSecurityGroupIngressInput) GoString() string {
12960	return s.String()
12961}
12962
12963// Validate inspects the fields of the type to determine if they are valid.
12964func (s *AuthorizeClusterSecurityGroupIngressInput) Validate() error {
12965	invalidParams := request.ErrInvalidParams{Context: "AuthorizeClusterSecurityGroupIngressInput"}
12966	if s.ClusterSecurityGroupName == nil {
12967		invalidParams.Add(request.NewErrParamRequired("ClusterSecurityGroupName"))
12968	}
12969
12970	if invalidParams.Len() > 0 {
12971		return invalidParams
12972	}
12973	return nil
12974}
12975
12976// SetCIDRIP sets the CIDRIP field's value.
12977func (s *AuthorizeClusterSecurityGroupIngressInput) SetCIDRIP(v string) *AuthorizeClusterSecurityGroupIngressInput {
12978	s.CIDRIP = &v
12979	return s
12980}
12981
12982// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
12983func (s *AuthorizeClusterSecurityGroupIngressInput) SetClusterSecurityGroupName(v string) *AuthorizeClusterSecurityGroupIngressInput {
12984	s.ClusterSecurityGroupName = &v
12985	return s
12986}
12987
12988// SetEC2SecurityGroupName sets the EC2SecurityGroupName field's value.
12989func (s *AuthorizeClusterSecurityGroupIngressInput) SetEC2SecurityGroupName(v string) *AuthorizeClusterSecurityGroupIngressInput {
12990	s.EC2SecurityGroupName = &v
12991	return s
12992}
12993
12994// SetEC2SecurityGroupOwnerId sets the EC2SecurityGroupOwnerId field's value.
12995func (s *AuthorizeClusterSecurityGroupIngressInput) SetEC2SecurityGroupOwnerId(v string) *AuthorizeClusterSecurityGroupIngressInput {
12996	s.EC2SecurityGroupOwnerId = &v
12997	return s
12998}
12999
13000type AuthorizeClusterSecurityGroupIngressOutput struct {
13001	_ struct{} `type:"structure"`
13002
13003	// Describes a security group.
13004	ClusterSecurityGroup *ClusterSecurityGroup `type:"structure"`
13005}
13006
13007// String returns the string representation.
13008//
13009// API parameter values that are decorated as "sensitive" in the API will not
13010// be included in the string output. The member name will be present, but the
13011// value will be replaced with "sensitive".
13012func (s AuthorizeClusterSecurityGroupIngressOutput) String() string {
13013	return awsutil.Prettify(s)
13014}
13015
13016// GoString returns the string representation.
13017//
13018// API parameter values that are decorated as "sensitive" in the API will not
13019// be included in the string output. The member name will be present, but the
13020// value will be replaced with "sensitive".
13021func (s AuthorizeClusterSecurityGroupIngressOutput) GoString() string {
13022	return s.String()
13023}
13024
13025// SetClusterSecurityGroup sets the ClusterSecurityGroup field's value.
13026func (s *AuthorizeClusterSecurityGroupIngressOutput) SetClusterSecurityGroup(v *ClusterSecurityGroup) *AuthorizeClusterSecurityGroupIngressOutput {
13027	s.ClusterSecurityGroup = v
13028	return s
13029}
13030
13031type AuthorizeDataShareInput struct {
13032	_ struct{} `type:"structure"`
13033
13034	// The identifier of the data consumer that is authorized to access the datashare.
13035	// This identifier is an AWS account ID.
13036	//
13037	// ConsumerIdentifier is a required field
13038	ConsumerIdentifier *string `type:"string" required:"true"`
13039
13040	// The Amazon Resource Name (ARN) of the datashare that producers are to authorize
13041	// sharing for.
13042	//
13043	// DataShareArn is a required field
13044	DataShareArn *string `type:"string" required:"true"`
13045}
13046
13047// String returns the string representation.
13048//
13049// API parameter values that are decorated as "sensitive" in the API will not
13050// be included in the string output. The member name will be present, but the
13051// value will be replaced with "sensitive".
13052func (s AuthorizeDataShareInput) String() string {
13053	return awsutil.Prettify(s)
13054}
13055
13056// GoString returns the string representation.
13057//
13058// API parameter values that are decorated as "sensitive" in the API will not
13059// be included in the string output. The member name will be present, but the
13060// value will be replaced with "sensitive".
13061func (s AuthorizeDataShareInput) GoString() string {
13062	return s.String()
13063}
13064
13065// Validate inspects the fields of the type to determine if they are valid.
13066func (s *AuthorizeDataShareInput) Validate() error {
13067	invalidParams := request.ErrInvalidParams{Context: "AuthorizeDataShareInput"}
13068	if s.ConsumerIdentifier == nil {
13069		invalidParams.Add(request.NewErrParamRequired("ConsumerIdentifier"))
13070	}
13071	if s.DataShareArn == nil {
13072		invalidParams.Add(request.NewErrParamRequired("DataShareArn"))
13073	}
13074
13075	if invalidParams.Len() > 0 {
13076		return invalidParams
13077	}
13078	return nil
13079}
13080
13081// SetConsumerIdentifier sets the ConsumerIdentifier field's value.
13082func (s *AuthorizeDataShareInput) SetConsumerIdentifier(v string) *AuthorizeDataShareInput {
13083	s.ConsumerIdentifier = &v
13084	return s
13085}
13086
13087// SetDataShareArn sets the DataShareArn field's value.
13088func (s *AuthorizeDataShareInput) SetDataShareArn(v string) *AuthorizeDataShareInput {
13089	s.DataShareArn = &v
13090	return s
13091}
13092
13093type AuthorizeDataShareOutput struct {
13094	_ struct{} `type:"structure"`
13095
13096	// A value that specifies whether the datashare can be shared to a publicly
13097	// accessible cluster.
13098	AllowPubliclyAccessibleConsumers *bool `type:"boolean"`
13099
13100	// An Amazon Resource Name (ARN) that references the datashare that is owned
13101	// by a specific namespace of the producer cluster. A datashare ARN is in the
13102	// arn:aws:redshift:{region}:{account-id}:{datashare}:{namespace-guid}/{datashare-name}
13103	// format.
13104	DataShareArn *string `type:"string"`
13105
13106	// A value that specifies when the datashare has an association between a producer
13107	// and data consumers.
13108	DataShareAssociations []*DataShareAssociation `type:"list"`
13109
13110	// The Amazon Resource Name (ARN) of the producer.
13111	ProducerArn *string `type:"string"`
13112}
13113
13114// String returns the string representation.
13115//
13116// API parameter values that are decorated as "sensitive" in the API will not
13117// be included in the string output. The member name will be present, but the
13118// value will be replaced with "sensitive".
13119func (s AuthorizeDataShareOutput) String() string {
13120	return awsutil.Prettify(s)
13121}
13122
13123// GoString returns the string representation.
13124//
13125// API parameter values that are decorated as "sensitive" in the API will not
13126// be included in the string output. The member name will be present, but the
13127// value will be replaced with "sensitive".
13128func (s AuthorizeDataShareOutput) GoString() string {
13129	return s.String()
13130}
13131
13132// SetAllowPubliclyAccessibleConsumers sets the AllowPubliclyAccessibleConsumers field's value.
13133func (s *AuthorizeDataShareOutput) SetAllowPubliclyAccessibleConsumers(v bool) *AuthorizeDataShareOutput {
13134	s.AllowPubliclyAccessibleConsumers = &v
13135	return s
13136}
13137
13138// SetDataShareArn sets the DataShareArn field's value.
13139func (s *AuthorizeDataShareOutput) SetDataShareArn(v string) *AuthorizeDataShareOutput {
13140	s.DataShareArn = &v
13141	return s
13142}
13143
13144// SetDataShareAssociations sets the DataShareAssociations field's value.
13145func (s *AuthorizeDataShareOutput) SetDataShareAssociations(v []*DataShareAssociation) *AuthorizeDataShareOutput {
13146	s.DataShareAssociations = v
13147	return s
13148}
13149
13150// SetProducerArn sets the ProducerArn field's value.
13151func (s *AuthorizeDataShareOutput) SetProducerArn(v string) *AuthorizeDataShareOutput {
13152	s.ProducerArn = &v
13153	return s
13154}
13155
13156type AuthorizeEndpointAccessInput struct {
13157	_ struct{} `type:"structure"`
13158
13159	// The Amazon Web Services account ID to grant access to.
13160	//
13161	// Account is a required field
13162	Account *string `type:"string" required:"true"`
13163
13164	// The cluster identifier of the cluster to grant access to.
13165	ClusterIdentifier *string `type:"string"`
13166
13167	// The virtual private cloud (VPC) identifiers to grant access to.
13168	VpcIds []*string `locationNameList:"VpcIdentifier" type:"list"`
13169}
13170
13171// String returns the string representation.
13172//
13173// API parameter values that are decorated as "sensitive" in the API will not
13174// be included in the string output. The member name will be present, but the
13175// value will be replaced with "sensitive".
13176func (s AuthorizeEndpointAccessInput) String() string {
13177	return awsutil.Prettify(s)
13178}
13179
13180// GoString returns the string representation.
13181//
13182// API parameter values that are decorated as "sensitive" in the API will not
13183// be included in the string output. The member name will be present, but the
13184// value will be replaced with "sensitive".
13185func (s AuthorizeEndpointAccessInput) GoString() string {
13186	return s.String()
13187}
13188
13189// Validate inspects the fields of the type to determine if they are valid.
13190func (s *AuthorizeEndpointAccessInput) Validate() error {
13191	invalidParams := request.ErrInvalidParams{Context: "AuthorizeEndpointAccessInput"}
13192	if s.Account == nil {
13193		invalidParams.Add(request.NewErrParamRequired("Account"))
13194	}
13195
13196	if invalidParams.Len() > 0 {
13197		return invalidParams
13198	}
13199	return nil
13200}
13201
13202// SetAccount sets the Account field's value.
13203func (s *AuthorizeEndpointAccessInput) SetAccount(v string) *AuthorizeEndpointAccessInput {
13204	s.Account = &v
13205	return s
13206}
13207
13208// SetClusterIdentifier sets the ClusterIdentifier field's value.
13209func (s *AuthorizeEndpointAccessInput) SetClusterIdentifier(v string) *AuthorizeEndpointAccessInput {
13210	s.ClusterIdentifier = &v
13211	return s
13212}
13213
13214// SetVpcIds sets the VpcIds field's value.
13215func (s *AuthorizeEndpointAccessInput) SetVpcIds(v []*string) *AuthorizeEndpointAccessInput {
13216	s.VpcIds = v
13217	return s
13218}
13219
13220// Describes an endpoint authorization for authorizing Redshift-managed VPC
13221// endpoint access to a cluster across Amazon Web Services accounts.
13222type AuthorizeEndpointAccessOutput struct {
13223	_ struct{} `type:"structure"`
13224
13225	// Indicates whether all VPCs in the grantee account are allowed access to the
13226	// cluster.
13227	AllowedAllVPCs *bool `type:"boolean"`
13228
13229	// The VPCs allowed access to the cluster.
13230	AllowedVPCs []*string `locationNameList:"VpcIdentifier" type:"list"`
13231
13232	// The time (UTC) when the authorization was created.
13233	AuthorizeTime *time.Time `type:"timestamp"`
13234
13235	// The cluster identifier.
13236	ClusterIdentifier *string `type:"string"`
13237
13238	// The status of the cluster.
13239	ClusterStatus *string `type:"string"`
13240
13241	// The number of Redshift-managed VPC endpoints created for the authorization.
13242	EndpointCount *int64 `type:"integer"`
13243
13244	// The Amazon Web Services account ID of the grantee of the cluster.
13245	Grantee *string `type:"string"`
13246
13247	// The Amazon Web Services account ID of the cluster owner.
13248	Grantor *string `type:"string"`
13249
13250	// The status of the authorization action.
13251	Status *string `type:"string" enum:"AuthorizationStatus"`
13252}
13253
13254// String returns the string representation.
13255//
13256// API parameter values that are decorated as "sensitive" in the API will not
13257// be included in the string output. The member name will be present, but the
13258// value will be replaced with "sensitive".
13259func (s AuthorizeEndpointAccessOutput) String() string {
13260	return awsutil.Prettify(s)
13261}
13262
13263// GoString returns the string representation.
13264//
13265// API parameter values that are decorated as "sensitive" in the API will not
13266// be included in the string output. The member name will be present, but the
13267// value will be replaced with "sensitive".
13268func (s AuthorizeEndpointAccessOutput) GoString() string {
13269	return s.String()
13270}
13271
13272// SetAllowedAllVPCs sets the AllowedAllVPCs field's value.
13273func (s *AuthorizeEndpointAccessOutput) SetAllowedAllVPCs(v bool) *AuthorizeEndpointAccessOutput {
13274	s.AllowedAllVPCs = &v
13275	return s
13276}
13277
13278// SetAllowedVPCs sets the AllowedVPCs field's value.
13279func (s *AuthorizeEndpointAccessOutput) SetAllowedVPCs(v []*string) *AuthorizeEndpointAccessOutput {
13280	s.AllowedVPCs = v
13281	return s
13282}
13283
13284// SetAuthorizeTime sets the AuthorizeTime field's value.
13285func (s *AuthorizeEndpointAccessOutput) SetAuthorizeTime(v time.Time) *AuthorizeEndpointAccessOutput {
13286	s.AuthorizeTime = &v
13287	return s
13288}
13289
13290// SetClusterIdentifier sets the ClusterIdentifier field's value.
13291func (s *AuthorizeEndpointAccessOutput) SetClusterIdentifier(v string) *AuthorizeEndpointAccessOutput {
13292	s.ClusterIdentifier = &v
13293	return s
13294}
13295
13296// SetClusterStatus sets the ClusterStatus field's value.
13297func (s *AuthorizeEndpointAccessOutput) SetClusterStatus(v string) *AuthorizeEndpointAccessOutput {
13298	s.ClusterStatus = &v
13299	return s
13300}
13301
13302// SetEndpointCount sets the EndpointCount field's value.
13303func (s *AuthorizeEndpointAccessOutput) SetEndpointCount(v int64) *AuthorizeEndpointAccessOutput {
13304	s.EndpointCount = &v
13305	return s
13306}
13307
13308// SetGrantee sets the Grantee field's value.
13309func (s *AuthorizeEndpointAccessOutput) SetGrantee(v string) *AuthorizeEndpointAccessOutput {
13310	s.Grantee = &v
13311	return s
13312}
13313
13314// SetGrantor sets the Grantor field's value.
13315func (s *AuthorizeEndpointAccessOutput) SetGrantor(v string) *AuthorizeEndpointAccessOutput {
13316	s.Grantor = &v
13317	return s
13318}
13319
13320// SetStatus sets the Status field's value.
13321func (s *AuthorizeEndpointAccessOutput) SetStatus(v string) *AuthorizeEndpointAccessOutput {
13322	s.Status = &v
13323	return s
13324}
13325
13326type AuthorizeSnapshotAccessInput struct {
13327	_ struct{} `type:"structure"`
13328
13329	// The identifier of the Amazon Web Services account authorized to restore the
13330	// specified snapshot.
13331	//
13332	// To share a snapshot with Amazon Web Services Support, specify amazon-redshift-support.
13333	//
13334	// AccountWithRestoreAccess is a required field
13335	AccountWithRestoreAccess *string `type:"string" required:"true"`
13336
13337	// The identifier of the cluster the snapshot was created from. This parameter
13338	// is required if your IAM user has a policy containing a snapshot resource
13339	// element that specifies anything other than * for the cluster name.
13340	SnapshotClusterIdentifier *string `type:"string"`
13341
13342	// The identifier of the snapshot the account is authorized to restore.
13343	//
13344	// SnapshotIdentifier is a required field
13345	SnapshotIdentifier *string `type:"string" required:"true"`
13346}
13347
13348// String returns the string representation.
13349//
13350// API parameter values that are decorated as "sensitive" in the API will not
13351// be included in the string output. The member name will be present, but the
13352// value will be replaced with "sensitive".
13353func (s AuthorizeSnapshotAccessInput) String() string {
13354	return awsutil.Prettify(s)
13355}
13356
13357// GoString returns the string representation.
13358//
13359// API parameter values that are decorated as "sensitive" in the API will not
13360// be included in the string output. The member name will be present, but the
13361// value will be replaced with "sensitive".
13362func (s AuthorizeSnapshotAccessInput) GoString() string {
13363	return s.String()
13364}
13365
13366// Validate inspects the fields of the type to determine if they are valid.
13367func (s *AuthorizeSnapshotAccessInput) Validate() error {
13368	invalidParams := request.ErrInvalidParams{Context: "AuthorizeSnapshotAccessInput"}
13369	if s.AccountWithRestoreAccess == nil {
13370		invalidParams.Add(request.NewErrParamRequired("AccountWithRestoreAccess"))
13371	}
13372	if s.SnapshotIdentifier == nil {
13373		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
13374	}
13375
13376	if invalidParams.Len() > 0 {
13377		return invalidParams
13378	}
13379	return nil
13380}
13381
13382// SetAccountWithRestoreAccess sets the AccountWithRestoreAccess field's value.
13383func (s *AuthorizeSnapshotAccessInput) SetAccountWithRestoreAccess(v string) *AuthorizeSnapshotAccessInput {
13384	s.AccountWithRestoreAccess = &v
13385	return s
13386}
13387
13388// SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
13389func (s *AuthorizeSnapshotAccessInput) SetSnapshotClusterIdentifier(v string) *AuthorizeSnapshotAccessInput {
13390	s.SnapshotClusterIdentifier = &v
13391	return s
13392}
13393
13394// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
13395func (s *AuthorizeSnapshotAccessInput) SetSnapshotIdentifier(v string) *AuthorizeSnapshotAccessInput {
13396	s.SnapshotIdentifier = &v
13397	return s
13398}
13399
13400type AuthorizeSnapshotAccessOutput struct {
13401	_ struct{} `type:"structure"`
13402
13403	// Describes a snapshot.
13404	Snapshot *Snapshot `type:"structure"`
13405}
13406
13407// String returns the string representation.
13408//
13409// API parameter values that are decorated as "sensitive" in the API will not
13410// be included in the string output. The member name will be present, but the
13411// value will be replaced with "sensitive".
13412func (s AuthorizeSnapshotAccessOutput) String() string {
13413	return awsutil.Prettify(s)
13414}
13415
13416// GoString returns the string representation.
13417//
13418// API parameter values that are decorated as "sensitive" in the API will not
13419// be included in the string output. The member name will be present, but the
13420// value will be replaced with "sensitive".
13421func (s AuthorizeSnapshotAccessOutput) GoString() string {
13422	return s.String()
13423}
13424
13425// SetSnapshot sets the Snapshot field's value.
13426func (s *AuthorizeSnapshotAccessOutput) SetSnapshot(v *Snapshot) *AuthorizeSnapshotAccessOutput {
13427	s.Snapshot = v
13428	return s
13429}
13430
13431// Describes an availability zone.
13432type AvailabilityZone struct {
13433	_ struct{} `type:"structure"`
13434
13435	// The name of the availability zone.
13436	Name *string `type:"string"`
13437
13438	SupportedPlatforms []*SupportedPlatform `locationNameList:"SupportedPlatform" type:"list"`
13439}
13440
13441// String returns the string representation.
13442//
13443// API parameter values that are decorated as "sensitive" in the API will not
13444// be included in the string output. The member name will be present, but the
13445// value will be replaced with "sensitive".
13446func (s AvailabilityZone) String() string {
13447	return awsutil.Prettify(s)
13448}
13449
13450// GoString returns the string representation.
13451//
13452// API parameter values that are decorated as "sensitive" in the API will not
13453// be included in the string output. The member name will be present, but the
13454// value will be replaced with "sensitive".
13455func (s AvailabilityZone) GoString() string {
13456	return s.String()
13457}
13458
13459// SetName sets the Name field's value.
13460func (s *AvailabilityZone) SetName(v string) *AvailabilityZone {
13461	s.Name = &v
13462	return s
13463}
13464
13465// SetSupportedPlatforms sets the SupportedPlatforms field's value.
13466func (s *AvailabilityZone) SetSupportedPlatforms(v []*SupportedPlatform) *AvailabilityZone {
13467	s.SupportedPlatforms = v
13468	return s
13469}
13470
13471type BatchDeleteClusterSnapshotsInput struct {
13472	_ struct{} `type:"structure"`
13473
13474	// A list of identifiers for the snapshots that you want to delete.
13475	//
13476	// Identifiers is a required field
13477	Identifiers []*DeleteClusterSnapshotMessage `locationNameList:"DeleteClusterSnapshotMessage" type:"list" required:"true"`
13478}
13479
13480// String returns the string representation.
13481//
13482// API parameter values that are decorated as "sensitive" in the API will not
13483// be included in the string output. The member name will be present, but the
13484// value will be replaced with "sensitive".
13485func (s BatchDeleteClusterSnapshotsInput) String() string {
13486	return awsutil.Prettify(s)
13487}
13488
13489// GoString returns the string representation.
13490//
13491// API parameter values that are decorated as "sensitive" in the API will not
13492// be included in the string output. The member name will be present, but the
13493// value will be replaced with "sensitive".
13494func (s BatchDeleteClusterSnapshotsInput) GoString() string {
13495	return s.String()
13496}
13497
13498// Validate inspects the fields of the type to determine if they are valid.
13499func (s *BatchDeleteClusterSnapshotsInput) Validate() error {
13500	invalidParams := request.ErrInvalidParams{Context: "BatchDeleteClusterSnapshotsInput"}
13501	if s.Identifiers == nil {
13502		invalidParams.Add(request.NewErrParamRequired("Identifiers"))
13503	}
13504	if s.Identifiers != nil {
13505		for i, v := range s.Identifiers {
13506			if v == nil {
13507				continue
13508			}
13509			if err := v.Validate(); err != nil {
13510				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Identifiers", i), err.(request.ErrInvalidParams))
13511			}
13512		}
13513	}
13514
13515	if invalidParams.Len() > 0 {
13516		return invalidParams
13517	}
13518	return nil
13519}
13520
13521// SetIdentifiers sets the Identifiers field's value.
13522func (s *BatchDeleteClusterSnapshotsInput) SetIdentifiers(v []*DeleteClusterSnapshotMessage) *BatchDeleteClusterSnapshotsInput {
13523	s.Identifiers = v
13524	return s
13525}
13526
13527type BatchDeleteClusterSnapshotsOutput struct {
13528	_ struct{} `type:"structure"`
13529
13530	// A list of any errors returned.
13531	Errors []*SnapshotErrorMessage `locationNameList:"SnapshotErrorMessage" type:"list"`
13532
13533	// A list of the snapshot identifiers that were deleted.
13534	Resources []*string `locationNameList:"String" type:"list"`
13535}
13536
13537// String returns the string representation.
13538//
13539// API parameter values that are decorated as "sensitive" in the API will not
13540// be included in the string output. The member name will be present, but the
13541// value will be replaced with "sensitive".
13542func (s BatchDeleteClusterSnapshotsOutput) String() string {
13543	return awsutil.Prettify(s)
13544}
13545
13546// GoString returns the string representation.
13547//
13548// API parameter values that are decorated as "sensitive" in the API will not
13549// be included in the string output. The member name will be present, but the
13550// value will be replaced with "sensitive".
13551func (s BatchDeleteClusterSnapshotsOutput) GoString() string {
13552	return s.String()
13553}
13554
13555// SetErrors sets the Errors field's value.
13556func (s *BatchDeleteClusterSnapshotsOutput) SetErrors(v []*SnapshotErrorMessage) *BatchDeleteClusterSnapshotsOutput {
13557	s.Errors = v
13558	return s
13559}
13560
13561// SetResources sets the Resources field's value.
13562func (s *BatchDeleteClusterSnapshotsOutput) SetResources(v []*string) *BatchDeleteClusterSnapshotsOutput {
13563	s.Resources = v
13564	return s
13565}
13566
13567type BatchModifyClusterSnapshotsInput struct {
13568	_ struct{} `type:"structure"`
13569
13570	// A boolean value indicating whether to override an exception if the retention
13571	// period has passed.
13572	Force *bool `type:"boolean"`
13573
13574	// The number of days that a manual snapshot is retained. If you specify the
13575	// value -1, the manual snapshot is retained indefinitely.
13576	//
13577	// The number must be either -1 or an integer between 1 and 3,653.
13578	//
13579	// If you decrease the manual snapshot retention period from its current value,
13580	// existing manual snapshots that fall outside of the new retention period will
13581	// return an error. If you want to suppress the errors and delete the snapshots,
13582	// use the force option.
13583	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
13584
13585	// A list of snapshot identifiers you want to modify.
13586	//
13587	// SnapshotIdentifierList is a required field
13588	SnapshotIdentifierList []*string `locationNameList:"String" type:"list" required:"true"`
13589}
13590
13591// String returns the string representation.
13592//
13593// API parameter values that are decorated as "sensitive" in the API will not
13594// be included in the string output. The member name will be present, but the
13595// value will be replaced with "sensitive".
13596func (s BatchModifyClusterSnapshotsInput) String() string {
13597	return awsutil.Prettify(s)
13598}
13599
13600// GoString returns the string representation.
13601//
13602// API parameter values that are decorated as "sensitive" in the API will not
13603// be included in the string output. The member name will be present, but the
13604// value will be replaced with "sensitive".
13605func (s BatchModifyClusterSnapshotsInput) GoString() string {
13606	return s.String()
13607}
13608
13609// Validate inspects the fields of the type to determine if they are valid.
13610func (s *BatchModifyClusterSnapshotsInput) Validate() error {
13611	invalidParams := request.ErrInvalidParams{Context: "BatchModifyClusterSnapshotsInput"}
13612	if s.SnapshotIdentifierList == nil {
13613		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifierList"))
13614	}
13615
13616	if invalidParams.Len() > 0 {
13617		return invalidParams
13618	}
13619	return nil
13620}
13621
13622// SetForce sets the Force field's value.
13623func (s *BatchModifyClusterSnapshotsInput) SetForce(v bool) *BatchModifyClusterSnapshotsInput {
13624	s.Force = &v
13625	return s
13626}
13627
13628// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
13629func (s *BatchModifyClusterSnapshotsInput) SetManualSnapshotRetentionPeriod(v int64) *BatchModifyClusterSnapshotsInput {
13630	s.ManualSnapshotRetentionPeriod = &v
13631	return s
13632}
13633
13634// SetSnapshotIdentifierList sets the SnapshotIdentifierList field's value.
13635func (s *BatchModifyClusterSnapshotsInput) SetSnapshotIdentifierList(v []*string) *BatchModifyClusterSnapshotsInput {
13636	s.SnapshotIdentifierList = v
13637	return s
13638}
13639
13640type BatchModifyClusterSnapshotsOutput struct {
13641	_ struct{} `type:"structure"`
13642
13643	// A list of any errors returned.
13644	Errors []*SnapshotErrorMessage `locationNameList:"SnapshotErrorMessage" type:"list"`
13645
13646	// A list of the snapshots that were modified.
13647	Resources []*string `locationNameList:"String" type:"list"`
13648}
13649
13650// String returns the string representation.
13651//
13652// API parameter values that are decorated as "sensitive" in the API will not
13653// be included in the string output. The member name will be present, but the
13654// value will be replaced with "sensitive".
13655func (s BatchModifyClusterSnapshotsOutput) String() string {
13656	return awsutil.Prettify(s)
13657}
13658
13659// GoString returns the string representation.
13660//
13661// API parameter values that are decorated as "sensitive" in the API will not
13662// be included in the string output. The member name will be present, but the
13663// value will be replaced with "sensitive".
13664func (s BatchModifyClusterSnapshotsOutput) GoString() string {
13665	return s.String()
13666}
13667
13668// SetErrors sets the Errors field's value.
13669func (s *BatchModifyClusterSnapshotsOutput) SetErrors(v []*SnapshotErrorMessage) *BatchModifyClusterSnapshotsOutput {
13670	s.Errors = v
13671	return s
13672}
13673
13674// SetResources sets the Resources field's value.
13675func (s *BatchModifyClusterSnapshotsOutput) SetResources(v []*string) *BatchModifyClusterSnapshotsOutput {
13676	s.Resources = v
13677	return s
13678}
13679
13680type CancelResizeInput struct {
13681	_ struct{} `type:"structure"`
13682
13683	// The unique identifier for the cluster that you want to cancel a resize operation
13684	// for.
13685	//
13686	// ClusterIdentifier is a required field
13687	ClusterIdentifier *string `type:"string" required:"true"`
13688}
13689
13690// String returns the string representation.
13691//
13692// API parameter values that are decorated as "sensitive" in the API will not
13693// be included in the string output. The member name will be present, but the
13694// value will be replaced with "sensitive".
13695func (s CancelResizeInput) String() string {
13696	return awsutil.Prettify(s)
13697}
13698
13699// GoString returns the string representation.
13700//
13701// API parameter values that are decorated as "sensitive" in the API will not
13702// be included in the string output. The member name will be present, but the
13703// value will be replaced with "sensitive".
13704func (s CancelResizeInput) GoString() string {
13705	return s.String()
13706}
13707
13708// Validate inspects the fields of the type to determine if they are valid.
13709func (s *CancelResizeInput) Validate() error {
13710	invalidParams := request.ErrInvalidParams{Context: "CancelResizeInput"}
13711	if s.ClusterIdentifier == nil {
13712		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
13713	}
13714
13715	if invalidParams.Len() > 0 {
13716		return invalidParams
13717	}
13718	return nil
13719}
13720
13721// SetClusterIdentifier sets the ClusterIdentifier field's value.
13722func (s *CancelResizeInput) SetClusterIdentifier(v string) *CancelResizeInput {
13723	s.ClusterIdentifier = &v
13724	return s
13725}
13726
13727// Describes the result of a cluster resize operation.
13728type CancelResizeOutput struct {
13729	_ struct{} `type:"structure"`
13730
13731	// The average rate of the resize operation over the last few minutes, measured
13732	// in megabytes per second. After the resize operation completes, this value
13733	// shows the average rate of the entire resize operation.
13734	AvgResizeRateInMegaBytesPerSecond *float64 `type:"double"`
13735
13736	// The percent of data transferred from source cluster to target cluster.
13737	DataTransferProgressPercent *float64 `type:"double"`
13738
13739	// The amount of seconds that have elapsed since the resize operation began.
13740	// After the resize operation completes, this value shows the total actual time,
13741	// in seconds, for the resize operation.
13742	ElapsedTimeInSeconds *int64 `type:"long"`
13743
13744	// The estimated time remaining, in seconds, until the resize operation is complete.
13745	// This value is calculated based on the average resize rate and the estimated
13746	// amount of data remaining to be processed. Once the resize operation is complete,
13747	// this value will be 0.
13748	EstimatedTimeToCompletionInSeconds *int64 `type:"long"`
13749
13750	// The names of tables that have been completely imported .
13751	//
13752	// Valid Values: List of table names.
13753	ImportTablesCompleted []*string `type:"list"`
13754
13755	// The names of tables that are being currently imported.
13756	//
13757	// Valid Values: List of table names.
13758	ImportTablesInProgress []*string `type:"list"`
13759
13760	// The names of tables that have not been yet imported.
13761	//
13762	// Valid Values: List of table names
13763	ImportTablesNotStarted []*string `type:"list"`
13764
13765	// An optional string to provide additional details about the resize action.
13766	Message *string `type:"string"`
13767
13768	// While the resize operation is in progress, this value shows the current amount
13769	// of data, in megabytes, that has been processed so far. When the resize operation
13770	// is complete, this value shows the total amount of data, in megabytes, on
13771	// the cluster, which may be more or less than TotalResizeDataInMegaBytes (the
13772	// estimated total amount of data before resize).
13773	ProgressInMegaBytes *int64 `type:"long"`
13774
13775	// An enum with possible values of ClassicResize and ElasticResize. These values
13776	// describe the type of resize operation being performed.
13777	ResizeType *string `type:"string"`
13778
13779	// The status of the resize operation.
13780	//
13781	// Valid Values: NONE | IN_PROGRESS | FAILED | SUCCEEDED | CANCELLING
13782	Status *string `type:"string"`
13783
13784	// The cluster type after the resize operation is complete.
13785	//
13786	// Valid Values: multi-node | single-node
13787	TargetClusterType *string `type:"string"`
13788
13789	// The type of encryption for the cluster after the resize is complete.
13790	//
13791	// Possible values are KMS and None.
13792	TargetEncryptionType *string `type:"string"`
13793
13794	// The node type that the cluster will have after the resize operation is complete.
13795	TargetNodeType *string `type:"string"`
13796
13797	// The number of nodes that the cluster will have after the resize operation
13798	// is complete.
13799	TargetNumberOfNodes *int64 `type:"integer"`
13800
13801	// The estimated total amount of data, in megabytes, on the cluster before the
13802	// resize operation began.
13803	TotalResizeDataInMegaBytes *int64 `type:"long"`
13804}
13805
13806// String returns the string representation.
13807//
13808// API parameter values that are decorated as "sensitive" in the API will not
13809// be included in the string output. The member name will be present, but the
13810// value will be replaced with "sensitive".
13811func (s CancelResizeOutput) String() string {
13812	return awsutil.Prettify(s)
13813}
13814
13815// GoString returns the string representation.
13816//
13817// API parameter values that are decorated as "sensitive" in the API will not
13818// be included in the string output. The member name will be present, but the
13819// value will be replaced with "sensitive".
13820func (s CancelResizeOutput) GoString() string {
13821	return s.String()
13822}
13823
13824// SetAvgResizeRateInMegaBytesPerSecond sets the AvgResizeRateInMegaBytesPerSecond field's value.
13825func (s *CancelResizeOutput) SetAvgResizeRateInMegaBytesPerSecond(v float64) *CancelResizeOutput {
13826	s.AvgResizeRateInMegaBytesPerSecond = &v
13827	return s
13828}
13829
13830// SetDataTransferProgressPercent sets the DataTransferProgressPercent field's value.
13831func (s *CancelResizeOutput) SetDataTransferProgressPercent(v float64) *CancelResizeOutput {
13832	s.DataTransferProgressPercent = &v
13833	return s
13834}
13835
13836// SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
13837func (s *CancelResizeOutput) SetElapsedTimeInSeconds(v int64) *CancelResizeOutput {
13838	s.ElapsedTimeInSeconds = &v
13839	return s
13840}
13841
13842// SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value.
13843func (s *CancelResizeOutput) SetEstimatedTimeToCompletionInSeconds(v int64) *CancelResizeOutput {
13844	s.EstimatedTimeToCompletionInSeconds = &v
13845	return s
13846}
13847
13848// SetImportTablesCompleted sets the ImportTablesCompleted field's value.
13849func (s *CancelResizeOutput) SetImportTablesCompleted(v []*string) *CancelResizeOutput {
13850	s.ImportTablesCompleted = v
13851	return s
13852}
13853
13854// SetImportTablesInProgress sets the ImportTablesInProgress field's value.
13855func (s *CancelResizeOutput) SetImportTablesInProgress(v []*string) *CancelResizeOutput {
13856	s.ImportTablesInProgress = v
13857	return s
13858}
13859
13860// SetImportTablesNotStarted sets the ImportTablesNotStarted field's value.
13861func (s *CancelResizeOutput) SetImportTablesNotStarted(v []*string) *CancelResizeOutput {
13862	s.ImportTablesNotStarted = v
13863	return s
13864}
13865
13866// SetMessage sets the Message field's value.
13867func (s *CancelResizeOutput) SetMessage(v string) *CancelResizeOutput {
13868	s.Message = &v
13869	return s
13870}
13871
13872// SetProgressInMegaBytes sets the ProgressInMegaBytes field's value.
13873func (s *CancelResizeOutput) SetProgressInMegaBytes(v int64) *CancelResizeOutput {
13874	s.ProgressInMegaBytes = &v
13875	return s
13876}
13877
13878// SetResizeType sets the ResizeType field's value.
13879func (s *CancelResizeOutput) SetResizeType(v string) *CancelResizeOutput {
13880	s.ResizeType = &v
13881	return s
13882}
13883
13884// SetStatus sets the Status field's value.
13885func (s *CancelResizeOutput) SetStatus(v string) *CancelResizeOutput {
13886	s.Status = &v
13887	return s
13888}
13889
13890// SetTargetClusterType sets the TargetClusterType field's value.
13891func (s *CancelResizeOutput) SetTargetClusterType(v string) *CancelResizeOutput {
13892	s.TargetClusterType = &v
13893	return s
13894}
13895
13896// SetTargetEncryptionType sets the TargetEncryptionType field's value.
13897func (s *CancelResizeOutput) SetTargetEncryptionType(v string) *CancelResizeOutput {
13898	s.TargetEncryptionType = &v
13899	return s
13900}
13901
13902// SetTargetNodeType sets the TargetNodeType field's value.
13903func (s *CancelResizeOutput) SetTargetNodeType(v string) *CancelResizeOutput {
13904	s.TargetNodeType = &v
13905	return s
13906}
13907
13908// SetTargetNumberOfNodes sets the TargetNumberOfNodes field's value.
13909func (s *CancelResizeOutput) SetTargetNumberOfNodes(v int64) *CancelResizeOutput {
13910	s.TargetNumberOfNodes = &v
13911	return s
13912}
13913
13914// SetTotalResizeDataInMegaBytes sets the TotalResizeDataInMegaBytes field's value.
13915func (s *CancelResizeOutput) SetTotalResizeDataInMegaBytes(v int64) *CancelResizeOutput {
13916	s.TotalResizeDataInMegaBytes = &v
13917	return s
13918}
13919
13920// Describes a cluster.
13921type Cluster struct {
13922	_ struct{} `type:"structure"`
13923
13924	// A boolean value that, if true, indicates that major version upgrades will
13925	// be applied automatically to the cluster during the maintenance window.
13926	AllowVersionUpgrade *bool `type:"boolean"`
13927
13928	// The AQUA (Advanced Query Accelerator) configuration of the cluster.
13929	AquaConfiguration *AquaConfiguration `type:"structure"`
13930
13931	// The number of days that automatic cluster snapshots are retained.
13932	AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
13933
13934	// The name of the Availability Zone in which the cluster is located.
13935	AvailabilityZone *string `type:"string"`
13936
13937	// Describes the status of the Availability Zone relocation operation.
13938	AvailabilityZoneRelocationStatus *string `type:"string"`
13939
13940	// The availability status of the cluster for queries. Possible values are the
13941	// following:
13942	//
13943	//    * Available - The cluster is available for queries.
13944	//
13945	//    * Unavailable - The cluster is not available for queries.
13946	//
13947	//    * Maintenance - The cluster is intermittently available for queries due
13948	//    to maintenance activities.
13949	//
13950	//    * Modifying - The cluster is intermittently available for queries due
13951	//    to changes that modify the cluster.
13952	//
13953	//    * Failed - The cluster failed and is not available for queries.
13954	ClusterAvailabilityStatus *string `type:"string"`
13955
13956	// The date and time that the cluster was created.
13957	ClusterCreateTime *time.Time `type:"timestamp"`
13958
13959	// The unique identifier of the cluster.
13960	ClusterIdentifier *string `type:"string"`
13961
13962	// The namespace Amazon Resource Name (ARN) of the cluster.
13963	ClusterNamespaceArn *string `type:"string"`
13964
13965	// The nodes in the cluster.
13966	ClusterNodes []*ClusterNode `type:"list"`
13967
13968	// The list of cluster parameter groups that are associated with this cluster.
13969	// Each parameter group in the list is returned with its status.
13970	ClusterParameterGroups []*ClusterParameterGroupStatus `locationNameList:"ClusterParameterGroup" type:"list"`
13971
13972	// The public key for the cluster.
13973	ClusterPublicKey *string `type:"string"`
13974
13975	// The specific revision number of the database in the cluster.
13976	ClusterRevisionNumber *string `type:"string"`
13977
13978	// A list of cluster security group that are associated with the cluster. Each
13979	// security group is represented by an element that contains ClusterSecurityGroup.Name
13980	// and ClusterSecurityGroup.Status subelements.
13981	//
13982	// Cluster security groups are used when the cluster is not created in an Amazon
13983	// Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security
13984	// groups, which are listed by the VpcSecurityGroups parameter.
13985	ClusterSecurityGroups []*ClusterSecurityGroupMembership `locationNameList:"ClusterSecurityGroup" type:"list"`
13986
13987	// A value that returns the destination region and retention period that are
13988	// configured for cross-region snapshot copy.
13989	ClusterSnapshotCopyStatus *ClusterSnapshotCopyStatus `type:"structure"`
13990
13991	// The current state of the cluster. Possible values are the following:
13992	//
13993	//    * available
13994	//
13995	//    * available, prep-for-resize
13996	//
13997	//    * available, resize-cleanup
13998	//
13999	//    * cancelling-resize
14000	//
14001	//    * creating
14002	//
14003	//    * deleting
14004	//
14005	//    * final-snapshot
14006	//
14007	//    * hardware-failure
14008	//
14009	//    * incompatible-hsm
14010	//
14011	//    * incompatible-network
14012	//
14013	//    * incompatible-parameters
14014	//
14015	//    * incompatible-restore
14016	//
14017	//    * modifying
14018	//
14019	//    * paused
14020	//
14021	//    * rebooting
14022	//
14023	//    * renaming
14024	//
14025	//    * resizing
14026	//
14027	//    * rotating-keys
14028	//
14029	//    * storage-full
14030	//
14031	//    * updating-hsm
14032	ClusterStatus *string `type:"string"`
14033
14034	// The name of the subnet group that is associated with the cluster. This parameter
14035	// is valid only when the cluster is in a VPC.
14036	ClusterSubnetGroupName *string `type:"string"`
14037
14038	// The version ID of the Amazon Redshift engine that is running on the cluster.
14039	ClusterVersion *string `type:"string"`
14040
14041	// The name of the initial database that was created when the cluster was created.
14042	// This same name is returned for the life of the cluster. If an initial database
14043	// was not specified, a database named devdev was created by default.
14044	DBName *string `type:"string"`
14045
14046	// Describes the status of a cluster while it is in the process of resizing
14047	// with an incremental resize.
14048	DataTransferProgress *DataTransferProgress `type:"structure"`
14049
14050	// Describes a group of DeferredMaintenanceWindow objects.
14051	DeferredMaintenanceWindows []*DeferredMaintenanceWindow `locationNameList:"DeferredMaintenanceWindow" type:"list"`
14052
14053	// The status of the elastic IP (EIP) address.
14054	ElasticIpStatus *ElasticIpStatus `type:"structure"`
14055
14056	// The number of nodes that you can resize the cluster to with the elastic resize
14057	// method.
14058	ElasticResizeNumberOfNodeOptions *string `type:"string"`
14059
14060	// A boolean value that, if true, indicates that data in the cluster is encrypted
14061	// at rest.
14062	Encrypted *bool `type:"boolean"`
14063
14064	// The connection endpoint.
14065	Endpoint *Endpoint `type:"structure"`
14066
14067	// An option that specifies whether to create the cluster with enhanced VPC
14068	// routing enabled. To create a cluster that uses enhanced VPC routing, the
14069	// cluster must be in a VPC. For more information, see Enhanced VPC Routing
14070	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
14071	// in the Amazon Redshift Cluster Management Guide.
14072	//
14073	// If this option is true, enhanced VPC routing is enabled.
14074	//
14075	// Default: false
14076	EnhancedVpcRouting *bool `type:"boolean"`
14077
14078	// The date and time when the next snapshot is expected to be taken for clusters
14079	// with a valid snapshot schedule and backups enabled.
14080	ExpectedNextSnapshotScheduleTime *time.Time `type:"timestamp"`
14081
14082	// The status of next expected snapshot for clusters having a valid snapshot
14083	// schedule and backups enabled. Possible values are the following:
14084	//
14085	//    * OnTrack - The next snapshot is expected to be taken on time.
14086	//
14087	//    * Pending - The next snapshot is pending to be taken.
14088	ExpectedNextSnapshotScheduleTimeStatus *string `type:"string"`
14089
14090	// A value that reports whether the Amazon Redshift cluster has finished applying
14091	// any hardware security module (HSM) settings changes specified in a modify
14092	// cluster command.
14093	//
14094	// Values: active, applying
14095	HsmStatus *HsmStatus `type:"structure"`
14096
14097	// A list of Identity and Access Management (IAM) roles that can be used by
14098	// the cluster to access other Amazon Web Services services.
14099	IamRoles []*ClusterIamRole `locationNameList:"ClusterIamRole" type:"list"`
14100
14101	// The Key Management Service (KMS) key ID of the encryption key used to encrypt
14102	// data in the cluster.
14103	KmsKeyId *string `type:"string"`
14104
14105	// The name of the maintenance track for the cluster.
14106	MaintenanceTrackName *string `type:"string"`
14107
14108	// The default number of days to retain a manual snapshot. If the value is -1,
14109	// the snapshot is retained indefinitely. This setting doesn't change the retention
14110	// period of existing snapshots.
14111	//
14112	// The value must be either -1 or an integer between 1 and 3,653.
14113	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
14114
14115	// The admin user name for the cluster. This name is used to connect to the
14116	// database that is specified in the DBName parameter.
14117	MasterUsername *string `type:"string"`
14118
14119	// The status of a modify operation, if any, initiated for the cluster.
14120	ModifyStatus *string `type:"string"`
14121
14122	// The date and time in UTC when system maintenance can begin.
14123	NextMaintenanceWindowStartTime *time.Time `type:"timestamp"`
14124
14125	// The node type for the nodes in the cluster.
14126	NodeType *string `type:"string"`
14127
14128	// The number of compute nodes in the cluster.
14129	NumberOfNodes *int64 `type:"integer"`
14130
14131	// Cluster operations that are waiting to be started.
14132	PendingActions []*string `type:"list"`
14133
14134	// A value that, if present, indicates that changes to the cluster are pending.
14135	// Specific pending changes are identified by subelements.
14136	PendingModifiedValues *PendingModifiedValues `type:"structure"`
14137
14138	// The weekly time range, in Universal Coordinated Time (UTC), during which
14139	// system maintenance can occur.
14140	PreferredMaintenanceWindow *string `type:"string"`
14141
14142	// A boolean value that, if true, indicates that the cluster can be accessed
14143	// from a public network.
14144	PubliclyAccessible *bool `type:"boolean"`
14145
14146	// Returns the following:
14147	//
14148	//    * AllowCancelResize: a boolean value indicating if the resize operation
14149	//    can be cancelled.
14150	//
14151	//    * ResizeType: Returns ClassicResize
14152	ResizeInfo *ResizeInfo `type:"structure"`
14153
14154	// A value that describes the status of a cluster restore action. This parameter
14155	// returns null if the cluster was not created by restoring a snapshot.
14156	RestoreStatus *RestoreStatus `type:"structure"`
14157
14158	// A unique identifier for the cluster snapshot schedule.
14159	SnapshotScheduleIdentifier *string `type:"string"`
14160
14161	// The current state of the cluster snapshot schedule.
14162	SnapshotScheduleState *string `type:"string" enum:"ScheduleState"`
14163
14164	// The list of tags for the cluster.
14165	Tags []*Tag `locationNameList:"Tag" type:"list"`
14166
14167	// The total storage capacity of the cluster in megabytes.
14168	TotalStorageCapacityInMegaBytes *int64 `type:"long"`
14169
14170	// The identifier of the VPC the cluster is in, if the cluster is in a VPC.
14171	VpcId *string `type:"string"`
14172
14173	// A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that
14174	// are associated with the cluster. This parameter is returned only if the cluster
14175	// is in a VPC.
14176	VpcSecurityGroups []*VpcSecurityGroupMembership `locationNameList:"VpcSecurityGroup" type:"list"`
14177}
14178
14179// String returns the string representation.
14180//
14181// API parameter values that are decorated as "sensitive" in the API will not
14182// be included in the string output. The member name will be present, but the
14183// value will be replaced with "sensitive".
14184func (s Cluster) String() string {
14185	return awsutil.Prettify(s)
14186}
14187
14188// GoString returns the string representation.
14189//
14190// API parameter values that are decorated as "sensitive" in the API will not
14191// be included in the string output. The member name will be present, but the
14192// value will be replaced with "sensitive".
14193func (s Cluster) GoString() string {
14194	return s.String()
14195}
14196
14197// SetAllowVersionUpgrade sets the AllowVersionUpgrade field's value.
14198func (s *Cluster) SetAllowVersionUpgrade(v bool) *Cluster {
14199	s.AllowVersionUpgrade = &v
14200	return s
14201}
14202
14203// SetAquaConfiguration sets the AquaConfiguration field's value.
14204func (s *Cluster) SetAquaConfiguration(v *AquaConfiguration) *Cluster {
14205	s.AquaConfiguration = v
14206	return s
14207}
14208
14209// SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
14210func (s *Cluster) SetAutomatedSnapshotRetentionPeriod(v int64) *Cluster {
14211	s.AutomatedSnapshotRetentionPeriod = &v
14212	return s
14213}
14214
14215// SetAvailabilityZone sets the AvailabilityZone field's value.
14216func (s *Cluster) SetAvailabilityZone(v string) *Cluster {
14217	s.AvailabilityZone = &v
14218	return s
14219}
14220
14221// SetAvailabilityZoneRelocationStatus sets the AvailabilityZoneRelocationStatus field's value.
14222func (s *Cluster) SetAvailabilityZoneRelocationStatus(v string) *Cluster {
14223	s.AvailabilityZoneRelocationStatus = &v
14224	return s
14225}
14226
14227// SetClusterAvailabilityStatus sets the ClusterAvailabilityStatus field's value.
14228func (s *Cluster) SetClusterAvailabilityStatus(v string) *Cluster {
14229	s.ClusterAvailabilityStatus = &v
14230	return s
14231}
14232
14233// SetClusterCreateTime sets the ClusterCreateTime field's value.
14234func (s *Cluster) SetClusterCreateTime(v time.Time) *Cluster {
14235	s.ClusterCreateTime = &v
14236	return s
14237}
14238
14239// SetClusterIdentifier sets the ClusterIdentifier field's value.
14240func (s *Cluster) SetClusterIdentifier(v string) *Cluster {
14241	s.ClusterIdentifier = &v
14242	return s
14243}
14244
14245// SetClusterNamespaceArn sets the ClusterNamespaceArn field's value.
14246func (s *Cluster) SetClusterNamespaceArn(v string) *Cluster {
14247	s.ClusterNamespaceArn = &v
14248	return s
14249}
14250
14251// SetClusterNodes sets the ClusterNodes field's value.
14252func (s *Cluster) SetClusterNodes(v []*ClusterNode) *Cluster {
14253	s.ClusterNodes = v
14254	return s
14255}
14256
14257// SetClusterParameterGroups sets the ClusterParameterGroups field's value.
14258func (s *Cluster) SetClusterParameterGroups(v []*ClusterParameterGroupStatus) *Cluster {
14259	s.ClusterParameterGroups = v
14260	return s
14261}
14262
14263// SetClusterPublicKey sets the ClusterPublicKey field's value.
14264func (s *Cluster) SetClusterPublicKey(v string) *Cluster {
14265	s.ClusterPublicKey = &v
14266	return s
14267}
14268
14269// SetClusterRevisionNumber sets the ClusterRevisionNumber field's value.
14270func (s *Cluster) SetClusterRevisionNumber(v string) *Cluster {
14271	s.ClusterRevisionNumber = &v
14272	return s
14273}
14274
14275// SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
14276func (s *Cluster) SetClusterSecurityGroups(v []*ClusterSecurityGroupMembership) *Cluster {
14277	s.ClusterSecurityGroups = v
14278	return s
14279}
14280
14281// SetClusterSnapshotCopyStatus sets the ClusterSnapshotCopyStatus field's value.
14282func (s *Cluster) SetClusterSnapshotCopyStatus(v *ClusterSnapshotCopyStatus) *Cluster {
14283	s.ClusterSnapshotCopyStatus = v
14284	return s
14285}
14286
14287// SetClusterStatus sets the ClusterStatus field's value.
14288func (s *Cluster) SetClusterStatus(v string) *Cluster {
14289	s.ClusterStatus = &v
14290	return s
14291}
14292
14293// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
14294func (s *Cluster) SetClusterSubnetGroupName(v string) *Cluster {
14295	s.ClusterSubnetGroupName = &v
14296	return s
14297}
14298
14299// SetClusterVersion sets the ClusterVersion field's value.
14300func (s *Cluster) SetClusterVersion(v string) *Cluster {
14301	s.ClusterVersion = &v
14302	return s
14303}
14304
14305// SetDBName sets the DBName field's value.
14306func (s *Cluster) SetDBName(v string) *Cluster {
14307	s.DBName = &v
14308	return s
14309}
14310
14311// SetDataTransferProgress sets the DataTransferProgress field's value.
14312func (s *Cluster) SetDataTransferProgress(v *DataTransferProgress) *Cluster {
14313	s.DataTransferProgress = v
14314	return s
14315}
14316
14317// SetDeferredMaintenanceWindows sets the DeferredMaintenanceWindows field's value.
14318func (s *Cluster) SetDeferredMaintenanceWindows(v []*DeferredMaintenanceWindow) *Cluster {
14319	s.DeferredMaintenanceWindows = v
14320	return s
14321}
14322
14323// SetElasticIpStatus sets the ElasticIpStatus field's value.
14324func (s *Cluster) SetElasticIpStatus(v *ElasticIpStatus) *Cluster {
14325	s.ElasticIpStatus = v
14326	return s
14327}
14328
14329// SetElasticResizeNumberOfNodeOptions sets the ElasticResizeNumberOfNodeOptions field's value.
14330func (s *Cluster) SetElasticResizeNumberOfNodeOptions(v string) *Cluster {
14331	s.ElasticResizeNumberOfNodeOptions = &v
14332	return s
14333}
14334
14335// SetEncrypted sets the Encrypted field's value.
14336func (s *Cluster) SetEncrypted(v bool) *Cluster {
14337	s.Encrypted = &v
14338	return s
14339}
14340
14341// SetEndpoint sets the Endpoint field's value.
14342func (s *Cluster) SetEndpoint(v *Endpoint) *Cluster {
14343	s.Endpoint = v
14344	return s
14345}
14346
14347// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
14348func (s *Cluster) SetEnhancedVpcRouting(v bool) *Cluster {
14349	s.EnhancedVpcRouting = &v
14350	return s
14351}
14352
14353// SetExpectedNextSnapshotScheduleTime sets the ExpectedNextSnapshotScheduleTime field's value.
14354func (s *Cluster) SetExpectedNextSnapshotScheduleTime(v time.Time) *Cluster {
14355	s.ExpectedNextSnapshotScheduleTime = &v
14356	return s
14357}
14358
14359// SetExpectedNextSnapshotScheduleTimeStatus sets the ExpectedNextSnapshotScheduleTimeStatus field's value.
14360func (s *Cluster) SetExpectedNextSnapshotScheduleTimeStatus(v string) *Cluster {
14361	s.ExpectedNextSnapshotScheduleTimeStatus = &v
14362	return s
14363}
14364
14365// SetHsmStatus sets the HsmStatus field's value.
14366func (s *Cluster) SetHsmStatus(v *HsmStatus) *Cluster {
14367	s.HsmStatus = v
14368	return s
14369}
14370
14371// SetIamRoles sets the IamRoles field's value.
14372func (s *Cluster) SetIamRoles(v []*ClusterIamRole) *Cluster {
14373	s.IamRoles = v
14374	return s
14375}
14376
14377// SetKmsKeyId sets the KmsKeyId field's value.
14378func (s *Cluster) SetKmsKeyId(v string) *Cluster {
14379	s.KmsKeyId = &v
14380	return s
14381}
14382
14383// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
14384func (s *Cluster) SetMaintenanceTrackName(v string) *Cluster {
14385	s.MaintenanceTrackName = &v
14386	return s
14387}
14388
14389// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
14390func (s *Cluster) SetManualSnapshotRetentionPeriod(v int64) *Cluster {
14391	s.ManualSnapshotRetentionPeriod = &v
14392	return s
14393}
14394
14395// SetMasterUsername sets the MasterUsername field's value.
14396func (s *Cluster) SetMasterUsername(v string) *Cluster {
14397	s.MasterUsername = &v
14398	return s
14399}
14400
14401// SetModifyStatus sets the ModifyStatus field's value.
14402func (s *Cluster) SetModifyStatus(v string) *Cluster {
14403	s.ModifyStatus = &v
14404	return s
14405}
14406
14407// SetNextMaintenanceWindowStartTime sets the NextMaintenanceWindowStartTime field's value.
14408func (s *Cluster) SetNextMaintenanceWindowStartTime(v time.Time) *Cluster {
14409	s.NextMaintenanceWindowStartTime = &v
14410	return s
14411}
14412
14413// SetNodeType sets the NodeType field's value.
14414func (s *Cluster) SetNodeType(v string) *Cluster {
14415	s.NodeType = &v
14416	return s
14417}
14418
14419// SetNumberOfNodes sets the NumberOfNodes field's value.
14420func (s *Cluster) SetNumberOfNodes(v int64) *Cluster {
14421	s.NumberOfNodes = &v
14422	return s
14423}
14424
14425// SetPendingActions sets the PendingActions field's value.
14426func (s *Cluster) SetPendingActions(v []*string) *Cluster {
14427	s.PendingActions = v
14428	return s
14429}
14430
14431// SetPendingModifiedValues sets the PendingModifiedValues field's value.
14432func (s *Cluster) SetPendingModifiedValues(v *PendingModifiedValues) *Cluster {
14433	s.PendingModifiedValues = v
14434	return s
14435}
14436
14437// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
14438func (s *Cluster) SetPreferredMaintenanceWindow(v string) *Cluster {
14439	s.PreferredMaintenanceWindow = &v
14440	return s
14441}
14442
14443// SetPubliclyAccessible sets the PubliclyAccessible field's value.
14444func (s *Cluster) SetPubliclyAccessible(v bool) *Cluster {
14445	s.PubliclyAccessible = &v
14446	return s
14447}
14448
14449// SetResizeInfo sets the ResizeInfo field's value.
14450func (s *Cluster) SetResizeInfo(v *ResizeInfo) *Cluster {
14451	s.ResizeInfo = v
14452	return s
14453}
14454
14455// SetRestoreStatus sets the RestoreStatus field's value.
14456func (s *Cluster) SetRestoreStatus(v *RestoreStatus) *Cluster {
14457	s.RestoreStatus = v
14458	return s
14459}
14460
14461// SetSnapshotScheduleIdentifier sets the SnapshotScheduleIdentifier field's value.
14462func (s *Cluster) SetSnapshotScheduleIdentifier(v string) *Cluster {
14463	s.SnapshotScheduleIdentifier = &v
14464	return s
14465}
14466
14467// SetSnapshotScheduleState sets the SnapshotScheduleState field's value.
14468func (s *Cluster) SetSnapshotScheduleState(v string) *Cluster {
14469	s.SnapshotScheduleState = &v
14470	return s
14471}
14472
14473// SetTags sets the Tags field's value.
14474func (s *Cluster) SetTags(v []*Tag) *Cluster {
14475	s.Tags = v
14476	return s
14477}
14478
14479// SetTotalStorageCapacityInMegaBytes sets the TotalStorageCapacityInMegaBytes field's value.
14480func (s *Cluster) SetTotalStorageCapacityInMegaBytes(v int64) *Cluster {
14481	s.TotalStorageCapacityInMegaBytes = &v
14482	return s
14483}
14484
14485// SetVpcId sets the VpcId field's value.
14486func (s *Cluster) SetVpcId(v string) *Cluster {
14487	s.VpcId = &v
14488	return s
14489}
14490
14491// SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
14492func (s *Cluster) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *Cluster {
14493	s.VpcSecurityGroups = v
14494	return s
14495}
14496
14497type ClusterAssociatedToSchedule struct {
14498	_ struct{} `type:"structure"`
14499
14500	ClusterIdentifier *string `type:"string"`
14501
14502	ScheduleAssociationState *string `type:"string" enum:"ScheduleState"`
14503}
14504
14505// String returns the string representation.
14506//
14507// API parameter values that are decorated as "sensitive" in the API will not
14508// be included in the string output. The member name will be present, but the
14509// value will be replaced with "sensitive".
14510func (s ClusterAssociatedToSchedule) String() string {
14511	return awsutil.Prettify(s)
14512}
14513
14514// GoString returns the string representation.
14515//
14516// API parameter values that are decorated as "sensitive" in the API will not
14517// be included in the string output. The member name will be present, but the
14518// value will be replaced with "sensitive".
14519func (s ClusterAssociatedToSchedule) GoString() string {
14520	return s.String()
14521}
14522
14523// SetClusterIdentifier sets the ClusterIdentifier field's value.
14524func (s *ClusterAssociatedToSchedule) SetClusterIdentifier(v string) *ClusterAssociatedToSchedule {
14525	s.ClusterIdentifier = &v
14526	return s
14527}
14528
14529// SetScheduleAssociationState sets the ScheduleAssociationState field's value.
14530func (s *ClusterAssociatedToSchedule) SetScheduleAssociationState(v string) *ClusterAssociatedToSchedule {
14531	s.ScheduleAssociationState = &v
14532	return s
14533}
14534
14535// Describes a ClusterDbRevision.
14536type ClusterDbRevision struct {
14537	_ struct{} `type:"structure"`
14538
14539	// The unique identifier of the cluster.
14540	ClusterIdentifier *string `type:"string"`
14541
14542	// A string representing the current cluster version.
14543	CurrentDatabaseRevision *string `type:"string"`
14544
14545	// The date on which the database revision was released.
14546	DatabaseRevisionReleaseDate *time.Time `type:"timestamp"`
14547
14548	// A list of RevisionTarget objects, where each object describes the database
14549	// revision that a cluster can be updated to.
14550	RevisionTargets []*RevisionTarget `locationNameList:"RevisionTarget" type:"list"`
14551}
14552
14553// String returns the string representation.
14554//
14555// API parameter values that are decorated as "sensitive" in the API will not
14556// be included in the string output. The member name will be present, but the
14557// value will be replaced with "sensitive".
14558func (s ClusterDbRevision) String() string {
14559	return awsutil.Prettify(s)
14560}
14561
14562// GoString returns the string representation.
14563//
14564// API parameter values that are decorated as "sensitive" in the API will not
14565// be included in the string output. The member name will be present, but the
14566// value will be replaced with "sensitive".
14567func (s ClusterDbRevision) GoString() string {
14568	return s.String()
14569}
14570
14571// SetClusterIdentifier sets the ClusterIdentifier field's value.
14572func (s *ClusterDbRevision) SetClusterIdentifier(v string) *ClusterDbRevision {
14573	s.ClusterIdentifier = &v
14574	return s
14575}
14576
14577// SetCurrentDatabaseRevision sets the CurrentDatabaseRevision field's value.
14578func (s *ClusterDbRevision) SetCurrentDatabaseRevision(v string) *ClusterDbRevision {
14579	s.CurrentDatabaseRevision = &v
14580	return s
14581}
14582
14583// SetDatabaseRevisionReleaseDate sets the DatabaseRevisionReleaseDate field's value.
14584func (s *ClusterDbRevision) SetDatabaseRevisionReleaseDate(v time.Time) *ClusterDbRevision {
14585	s.DatabaseRevisionReleaseDate = &v
14586	return s
14587}
14588
14589// SetRevisionTargets sets the RevisionTargets field's value.
14590func (s *ClusterDbRevision) SetRevisionTargets(v []*RevisionTarget) *ClusterDbRevision {
14591	s.RevisionTargets = v
14592	return s
14593}
14594
14595// An Identity and Access Management (IAM) role that can be used by the associated
14596// Amazon Redshift cluster to access other Amazon Web Services services.
14597type ClusterIamRole struct {
14598	_ struct{} `type:"structure"`
14599
14600	// A value that describes the status of the IAM role's association with an Amazon
14601	// Redshift cluster.
14602	//
14603	// The following are possible statuses and descriptions.
14604	//
14605	//    * in-sync: The role is available for use by the cluster.
14606	//
14607	//    * adding: The role is in the process of being associated with the cluster.
14608	//
14609	//    * removing: The role is in the process of being disassociated with the
14610	//    cluster.
14611	ApplyStatus *string `type:"string"`
14612
14613	// The Amazon Resource Name (ARN) of the IAM role, for example, arn:aws:iam::123456789012:role/RedshiftCopyUnload.
14614	IamRoleArn *string `type:"string"`
14615}
14616
14617// String returns the string representation.
14618//
14619// API parameter values that are decorated as "sensitive" in the API will not
14620// be included in the string output. The member name will be present, but the
14621// value will be replaced with "sensitive".
14622func (s ClusterIamRole) String() string {
14623	return awsutil.Prettify(s)
14624}
14625
14626// GoString returns the string representation.
14627//
14628// API parameter values that are decorated as "sensitive" in the API will not
14629// be included in the string output. The member name will be present, but the
14630// value will be replaced with "sensitive".
14631func (s ClusterIamRole) GoString() string {
14632	return s.String()
14633}
14634
14635// SetApplyStatus sets the ApplyStatus field's value.
14636func (s *ClusterIamRole) SetApplyStatus(v string) *ClusterIamRole {
14637	s.ApplyStatus = &v
14638	return s
14639}
14640
14641// SetIamRoleArn sets the IamRoleArn field's value.
14642func (s *ClusterIamRole) SetIamRoleArn(v string) *ClusterIamRole {
14643	s.IamRoleArn = &v
14644	return s
14645}
14646
14647// The identifier of a node in a cluster.
14648type ClusterNode struct {
14649	_ struct{} `type:"structure"`
14650
14651	// Whether the node is a leader node or a compute node.
14652	NodeRole *string `type:"string"`
14653
14654	// The private IP address of a node within a cluster.
14655	PrivateIPAddress *string `type:"string"`
14656
14657	// The public IP address of a node within a cluster.
14658	PublicIPAddress *string `type:"string"`
14659}
14660
14661// String returns the string representation.
14662//
14663// API parameter values that are decorated as "sensitive" in the API will not
14664// be included in the string output. The member name will be present, but the
14665// value will be replaced with "sensitive".
14666func (s ClusterNode) String() string {
14667	return awsutil.Prettify(s)
14668}
14669
14670// GoString returns the string representation.
14671//
14672// API parameter values that are decorated as "sensitive" in the API will not
14673// be included in the string output. The member name will be present, but the
14674// value will be replaced with "sensitive".
14675func (s ClusterNode) GoString() string {
14676	return s.String()
14677}
14678
14679// SetNodeRole sets the NodeRole field's value.
14680func (s *ClusterNode) SetNodeRole(v string) *ClusterNode {
14681	s.NodeRole = &v
14682	return s
14683}
14684
14685// SetPrivateIPAddress sets the PrivateIPAddress field's value.
14686func (s *ClusterNode) SetPrivateIPAddress(v string) *ClusterNode {
14687	s.PrivateIPAddress = &v
14688	return s
14689}
14690
14691// SetPublicIPAddress sets the PublicIPAddress field's value.
14692func (s *ClusterNode) SetPublicIPAddress(v string) *ClusterNode {
14693	s.PublicIPAddress = &v
14694	return s
14695}
14696
14697// Describes a parameter group.
14698type ClusterParameterGroup struct {
14699	_ struct{} `type:"structure"`
14700
14701	// The description of the parameter group.
14702	Description *string `type:"string"`
14703
14704	// The name of the cluster parameter group family that this cluster parameter
14705	// group is compatible with.
14706	ParameterGroupFamily *string `type:"string"`
14707
14708	// The name of the cluster parameter group.
14709	ParameterGroupName *string `type:"string"`
14710
14711	// The list of tags for the cluster parameter group.
14712	Tags []*Tag `locationNameList:"Tag" type:"list"`
14713}
14714
14715// String returns the string representation.
14716//
14717// API parameter values that are decorated as "sensitive" in the API will not
14718// be included in the string output. The member name will be present, but the
14719// value will be replaced with "sensitive".
14720func (s ClusterParameterGroup) String() string {
14721	return awsutil.Prettify(s)
14722}
14723
14724// GoString returns the string representation.
14725//
14726// API parameter values that are decorated as "sensitive" in the API will not
14727// be included in the string output. The member name will be present, but the
14728// value will be replaced with "sensitive".
14729func (s ClusterParameterGroup) GoString() string {
14730	return s.String()
14731}
14732
14733// SetDescription sets the Description field's value.
14734func (s *ClusterParameterGroup) SetDescription(v string) *ClusterParameterGroup {
14735	s.Description = &v
14736	return s
14737}
14738
14739// SetParameterGroupFamily sets the ParameterGroupFamily field's value.
14740func (s *ClusterParameterGroup) SetParameterGroupFamily(v string) *ClusterParameterGroup {
14741	s.ParameterGroupFamily = &v
14742	return s
14743}
14744
14745// SetParameterGroupName sets the ParameterGroupName field's value.
14746func (s *ClusterParameterGroup) SetParameterGroupName(v string) *ClusterParameterGroup {
14747	s.ParameterGroupName = &v
14748	return s
14749}
14750
14751// SetTags sets the Tags field's value.
14752func (s *ClusterParameterGroup) SetTags(v []*Tag) *ClusterParameterGroup {
14753	s.Tags = v
14754	return s
14755}
14756
14757type ClusterParameterGroupNameMessage struct {
14758	_ struct{} `type:"structure"`
14759
14760	// The name of the cluster parameter group.
14761	ParameterGroupName *string `type:"string"`
14762
14763	// The status of the parameter group. For example, if you made a change to a
14764	// parameter group name-value pair, then the change could be pending a reboot
14765	// of an associated cluster.
14766	ParameterGroupStatus *string `type:"string"`
14767}
14768
14769// String returns the string representation.
14770//
14771// API parameter values that are decorated as "sensitive" in the API will not
14772// be included in the string output. The member name will be present, but the
14773// value will be replaced with "sensitive".
14774func (s ClusterParameterGroupNameMessage) String() string {
14775	return awsutil.Prettify(s)
14776}
14777
14778// GoString returns the string representation.
14779//
14780// API parameter values that are decorated as "sensitive" in the API will not
14781// be included in the string output. The member name will be present, but the
14782// value will be replaced with "sensitive".
14783func (s ClusterParameterGroupNameMessage) GoString() string {
14784	return s.String()
14785}
14786
14787// SetParameterGroupName sets the ParameterGroupName field's value.
14788func (s *ClusterParameterGroupNameMessage) SetParameterGroupName(v string) *ClusterParameterGroupNameMessage {
14789	s.ParameterGroupName = &v
14790	return s
14791}
14792
14793// SetParameterGroupStatus sets the ParameterGroupStatus field's value.
14794func (s *ClusterParameterGroupNameMessage) SetParameterGroupStatus(v string) *ClusterParameterGroupNameMessage {
14795	s.ParameterGroupStatus = &v
14796	return s
14797}
14798
14799// Describes the status of a parameter group.
14800type ClusterParameterGroupStatus struct {
14801	_ struct{} `type:"structure"`
14802
14803	// The list of parameter statuses.
14804	//
14805	// For more information about parameters and parameter groups, go to Amazon
14806	// Redshift Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
14807	// in the Amazon Redshift Cluster Management Guide.
14808	ClusterParameterStatusList []*ClusterParameterStatus `type:"list"`
14809
14810	// The status of parameter updates.
14811	ParameterApplyStatus *string `type:"string"`
14812
14813	// The name of the cluster parameter group.
14814	ParameterGroupName *string `type:"string"`
14815}
14816
14817// String returns the string representation.
14818//
14819// API parameter values that are decorated as "sensitive" in the API will not
14820// be included in the string output. The member name will be present, but the
14821// value will be replaced with "sensitive".
14822func (s ClusterParameterGroupStatus) String() string {
14823	return awsutil.Prettify(s)
14824}
14825
14826// GoString returns the string representation.
14827//
14828// API parameter values that are decorated as "sensitive" in the API will not
14829// be included in the string output. The member name will be present, but the
14830// value will be replaced with "sensitive".
14831func (s ClusterParameterGroupStatus) GoString() string {
14832	return s.String()
14833}
14834
14835// SetClusterParameterStatusList sets the ClusterParameterStatusList field's value.
14836func (s *ClusterParameterGroupStatus) SetClusterParameterStatusList(v []*ClusterParameterStatus) *ClusterParameterGroupStatus {
14837	s.ClusterParameterStatusList = v
14838	return s
14839}
14840
14841// SetParameterApplyStatus sets the ParameterApplyStatus field's value.
14842func (s *ClusterParameterGroupStatus) SetParameterApplyStatus(v string) *ClusterParameterGroupStatus {
14843	s.ParameterApplyStatus = &v
14844	return s
14845}
14846
14847// SetParameterGroupName sets the ParameterGroupName field's value.
14848func (s *ClusterParameterGroupStatus) SetParameterGroupName(v string) *ClusterParameterGroupStatus {
14849	s.ParameterGroupName = &v
14850	return s
14851}
14852
14853// Describes the status of a parameter group.
14854type ClusterParameterStatus struct {
14855	_ struct{} `type:"structure"`
14856
14857	// The error that prevented the parameter from being applied to the database.
14858	ParameterApplyErrorDescription *string `type:"string"`
14859
14860	// The status of the parameter that indicates whether the parameter is in sync
14861	// with the database, waiting for a cluster reboot, or encountered an error
14862	// when being applied.
14863	//
14864	// The following are possible statuses and descriptions.
14865	//
14866	//    * in-sync: The parameter value is in sync with the database.
14867	//
14868	//    * pending-reboot: The parameter value will be applied after the cluster
14869	//    reboots.
14870	//
14871	//    * applying: The parameter value is being applied to the database.
14872	//
14873	//    * invalid-parameter: Cannot apply the parameter value because it has an
14874	//    invalid value or syntax.
14875	//
14876	//    * apply-deferred: The parameter contains static property changes. The
14877	//    changes are deferred until the cluster reboots.
14878	//
14879	//    * apply-error: Cannot connect to the cluster. The parameter change will
14880	//    be applied after the cluster reboots.
14881	//
14882	//    * unknown-error: Cannot apply the parameter change right now. The change
14883	//    will be applied after the cluster reboots.
14884	ParameterApplyStatus *string `type:"string"`
14885
14886	// The name of the parameter.
14887	ParameterName *string `type:"string"`
14888}
14889
14890// String returns the string representation.
14891//
14892// API parameter values that are decorated as "sensitive" in the API will not
14893// be included in the string output. The member name will be present, but the
14894// value will be replaced with "sensitive".
14895func (s ClusterParameterStatus) String() string {
14896	return awsutil.Prettify(s)
14897}
14898
14899// GoString returns the string representation.
14900//
14901// API parameter values that are decorated as "sensitive" in the API will not
14902// be included in the string output. The member name will be present, but the
14903// value will be replaced with "sensitive".
14904func (s ClusterParameterStatus) GoString() string {
14905	return s.String()
14906}
14907
14908// SetParameterApplyErrorDescription sets the ParameterApplyErrorDescription field's value.
14909func (s *ClusterParameterStatus) SetParameterApplyErrorDescription(v string) *ClusterParameterStatus {
14910	s.ParameterApplyErrorDescription = &v
14911	return s
14912}
14913
14914// SetParameterApplyStatus sets the ParameterApplyStatus field's value.
14915func (s *ClusterParameterStatus) SetParameterApplyStatus(v string) *ClusterParameterStatus {
14916	s.ParameterApplyStatus = &v
14917	return s
14918}
14919
14920// SetParameterName sets the ParameterName field's value.
14921func (s *ClusterParameterStatus) SetParameterName(v string) *ClusterParameterStatus {
14922	s.ParameterName = &v
14923	return s
14924}
14925
14926// Describes a security group.
14927type ClusterSecurityGroup struct {
14928	_ struct{} `type:"structure"`
14929
14930	// The name of the cluster security group to which the operation was applied.
14931	ClusterSecurityGroupName *string `type:"string"`
14932
14933	// A description of the security group.
14934	Description *string `type:"string"`
14935
14936	// A list of EC2 security groups that are permitted to access clusters associated
14937	// with this cluster security group.
14938	EC2SecurityGroups []*EC2SecurityGroup `locationNameList:"EC2SecurityGroup" type:"list"`
14939
14940	// A list of IP ranges (CIDR blocks) that are permitted to access clusters associated
14941	// with this cluster security group.
14942	IPRanges []*IPRange `locationNameList:"IPRange" type:"list"`
14943
14944	// The list of tags for the cluster security group.
14945	Tags []*Tag `locationNameList:"Tag" type:"list"`
14946}
14947
14948// String returns the string representation.
14949//
14950// API parameter values that are decorated as "sensitive" in the API will not
14951// be included in the string output. The member name will be present, but the
14952// value will be replaced with "sensitive".
14953func (s ClusterSecurityGroup) String() string {
14954	return awsutil.Prettify(s)
14955}
14956
14957// GoString returns the string representation.
14958//
14959// API parameter values that are decorated as "sensitive" in the API will not
14960// be included in the string output. The member name will be present, but the
14961// value will be replaced with "sensitive".
14962func (s ClusterSecurityGroup) GoString() string {
14963	return s.String()
14964}
14965
14966// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
14967func (s *ClusterSecurityGroup) SetClusterSecurityGroupName(v string) *ClusterSecurityGroup {
14968	s.ClusterSecurityGroupName = &v
14969	return s
14970}
14971
14972// SetDescription sets the Description field's value.
14973func (s *ClusterSecurityGroup) SetDescription(v string) *ClusterSecurityGroup {
14974	s.Description = &v
14975	return s
14976}
14977
14978// SetEC2SecurityGroups sets the EC2SecurityGroups field's value.
14979func (s *ClusterSecurityGroup) SetEC2SecurityGroups(v []*EC2SecurityGroup) *ClusterSecurityGroup {
14980	s.EC2SecurityGroups = v
14981	return s
14982}
14983
14984// SetIPRanges sets the IPRanges field's value.
14985func (s *ClusterSecurityGroup) SetIPRanges(v []*IPRange) *ClusterSecurityGroup {
14986	s.IPRanges = v
14987	return s
14988}
14989
14990// SetTags sets the Tags field's value.
14991func (s *ClusterSecurityGroup) SetTags(v []*Tag) *ClusterSecurityGroup {
14992	s.Tags = v
14993	return s
14994}
14995
14996// Describes a cluster security group.
14997type ClusterSecurityGroupMembership struct {
14998	_ struct{} `type:"structure"`
14999
15000	// The name of the cluster security group.
15001	ClusterSecurityGroupName *string `type:"string"`
15002
15003	// The status of the cluster security group.
15004	Status *string `type:"string"`
15005}
15006
15007// String returns the string representation.
15008//
15009// API parameter values that are decorated as "sensitive" in the API will not
15010// be included in the string output. The member name will be present, but the
15011// value will be replaced with "sensitive".
15012func (s ClusterSecurityGroupMembership) String() string {
15013	return awsutil.Prettify(s)
15014}
15015
15016// GoString returns the string representation.
15017//
15018// API parameter values that are decorated as "sensitive" in the API will not
15019// be included in the string output. The member name will be present, but the
15020// value will be replaced with "sensitive".
15021func (s ClusterSecurityGroupMembership) GoString() string {
15022	return s.String()
15023}
15024
15025// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
15026func (s *ClusterSecurityGroupMembership) SetClusterSecurityGroupName(v string) *ClusterSecurityGroupMembership {
15027	s.ClusterSecurityGroupName = &v
15028	return s
15029}
15030
15031// SetStatus sets the Status field's value.
15032func (s *ClusterSecurityGroupMembership) SetStatus(v string) *ClusterSecurityGroupMembership {
15033	s.Status = &v
15034	return s
15035}
15036
15037// Returns the destination region and retention period that are configured for
15038// cross-region snapshot copy.
15039type ClusterSnapshotCopyStatus struct {
15040	_ struct{} `type:"structure"`
15041
15042	// The destination region that snapshots are automatically copied to when cross-region
15043	// snapshot copy is enabled.
15044	DestinationRegion *string `type:"string"`
15045
15046	// The number of days that automated snapshots are retained in the destination
15047	// region after they are copied from a source region. If the value is -1, the
15048	// manual snapshot is retained indefinitely.
15049	//
15050	// The value must be either -1 or an integer between 1 and 3,653.
15051	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
15052
15053	// The number of days that automated snapshots are retained in the destination
15054	// region after they are copied from a source region.
15055	RetentionPeriod *int64 `type:"long"`
15056
15057	// The name of the snapshot copy grant.
15058	SnapshotCopyGrantName *string `type:"string"`
15059}
15060
15061// String returns the string representation.
15062//
15063// API parameter values that are decorated as "sensitive" in the API will not
15064// be included in the string output. The member name will be present, but the
15065// value will be replaced with "sensitive".
15066func (s ClusterSnapshotCopyStatus) String() string {
15067	return awsutil.Prettify(s)
15068}
15069
15070// GoString returns the string representation.
15071//
15072// API parameter values that are decorated as "sensitive" in the API will not
15073// be included in the string output. The member name will be present, but the
15074// value will be replaced with "sensitive".
15075func (s ClusterSnapshotCopyStatus) GoString() string {
15076	return s.String()
15077}
15078
15079// SetDestinationRegion sets the DestinationRegion field's value.
15080func (s *ClusterSnapshotCopyStatus) SetDestinationRegion(v string) *ClusterSnapshotCopyStatus {
15081	s.DestinationRegion = &v
15082	return s
15083}
15084
15085// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
15086func (s *ClusterSnapshotCopyStatus) SetManualSnapshotRetentionPeriod(v int64) *ClusterSnapshotCopyStatus {
15087	s.ManualSnapshotRetentionPeriod = &v
15088	return s
15089}
15090
15091// SetRetentionPeriod sets the RetentionPeriod field's value.
15092func (s *ClusterSnapshotCopyStatus) SetRetentionPeriod(v int64) *ClusterSnapshotCopyStatus {
15093	s.RetentionPeriod = &v
15094	return s
15095}
15096
15097// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
15098func (s *ClusterSnapshotCopyStatus) SetSnapshotCopyGrantName(v string) *ClusterSnapshotCopyStatus {
15099	s.SnapshotCopyGrantName = &v
15100	return s
15101}
15102
15103// Describes a subnet group.
15104type ClusterSubnetGroup struct {
15105	_ struct{} `type:"structure"`
15106
15107	// The name of the cluster subnet group.
15108	ClusterSubnetGroupName *string `type:"string"`
15109
15110	// The description of the cluster subnet group.
15111	Description *string `type:"string"`
15112
15113	// The status of the cluster subnet group. Possible values are Complete, Incomplete
15114	// and Invalid.
15115	SubnetGroupStatus *string `type:"string"`
15116
15117	// A list of the VPC Subnet elements.
15118	Subnets []*Subnet `locationNameList:"Subnet" type:"list"`
15119
15120	// The list of tags for the cluster subnet group.
15121	Tags []*Tag `locationNameList:"Tag" type:"list"`
15122
15123	// The VPC ID of the cluster subnet group.
15124	VpcId *string `type:"string"`
15125}
15126
15127// String returns the string representation.
15128//
15129// API parameter values that are decorated as "sensitive" in the API will not
15130// be included in the string output. The member name will be present, but the
15131// value will be replaced with "sensitive".
15132func (s ClusterSubnetGroup) String() string {
15133	return awsutil.Prettify(s)
15134}
15135
15136// GoString returns the string representation.
15137//
15138// API parameter values that are decorated as "sensitive" in the API will not
15139// be included in the string output. The member name will be present, but the
15140// value will be replaced with "sensitive".
15141func (s ClusterSubnetGroup) GoString() string {
15142	return s.String()
15143}
15144
15145// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
15146func (s *ClusterSubnetGroup) SetClusterSubnetGroupName(v string) *ClusterSubnetGroup {
15147	s.ClusterSubnetGroupName = &v
15148	return s
15149}
15150
15151// SetDescription sets the Description field's value.
15152func (s *ClusterSubnetGroup) SetDescription(v string) *ClusterSubnetGroup {
15153	s.Description = &v
15154	return s
15155}
15156
15157// SetSubnetGroupStatus sets the SubnetGroupStatus field's value.
15158func (s *ClusterSubnetGroup) SetSubnetGroupStatus(v string) *ClusterSubnetGroup {
15159	s.SubnetGroupStatus = &v
15160	return s
15161}
15162
15163// SetSubnets sets the Subnets field's value.
15164func (s *ClusterSubnetGroup) SetSubnets(v []*Subnet) *ClusterSubnetGroup {
15165	s.Subnets = v
15166	return s
15167}
15168
15169// SetTags sets the Tags field's value.
15170func (s *ClusterSubnetGroup) SetTags(v []*Tag) *ClusterSubnetGroup {
15171	s.Tags = v
15172	return s
15173}
15174
15175// SetVpcId sets the VpcId field's value.
15176func (s *ClusterSubnetGroup) SetVpcId(v string) *ClusterSubnetGroup {
15177	s.VpcId = &v
15178	return s
15179}
15180
15181// Describes a cluster version, including the parameter group family and description
15182// of the version.
15183type ClusterVersion struct {
15184	_ struct{} `type:"structure"`
15185
15186	// The name of the cluster parameter group family for the cluster.
15187	ClusterParameterGroupFamily *string `type:"string"`
15188
15189	// The version number used by the cluster.
15190	ClusterVersion *string `type:"string"`
15191
15192	// The description of the cluster version.
15193	Description *string `type:"string"`
15194}
15195
15196// String returns the string representation.
15197//
15198// API parameter values that are decorated as "sensitive" in the API will not
15199// be included in the string output. The member name will be present, but the
15200// value will be replaced with "sensitive".
15201func (s ClusterVersion) String() string {
15202	return awsutil.Prettify(s)
15203}
15204
15205// GoString returns the string representation.
15206//
15207// API parameter values that are decorated as "sensitive" in the API will not
15208// be included in the string output. The member name will be present, but the
15209// value will be replaced with "sensitive".
15210func (s ClusterVersion) GoString() string {
15211	return s.String()
15212}
15213
15214// SetClusterParameterGroupFamily sets the ClusterParameterGroupFamily field's value.
15215func (s *ClusterVersion) SetClusterParameterGroupFamily(v string) *ClusterVersion {
15216	s.ClusterParameterGroupFamily = &v
15217	return s
15218}
15219
15220// SetClusterVersion sets the ClusterVersion field's value.
15221func (s *ClusterVersion) SetClusterVersion(v string) *ClusterVersion {
15222	s.ClusterVersion = &v
15223	return s
15224}
15225
15226// SetDescription sets the Description field's value.
15227func (s *ClusterVersion) SetDescription(v string) *ClusterVersion {
15228	s.Description = &v
15229	return s
15230}
15231
15232type CopyClusterSnapshotInput struct {
15233	_ struct{} `type:"structure"`
15234
15235	// The number of days that a manual snapshot is retained. If the value is -1,
15236	// the manual snapshot is retained indefinitely.
15237	//
15238	// The value must be either -1 or an integer between 1 and 3,653.
15239	//
15240	// The default value is -1.
15241	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
15242
15243	// The identifier of the cluster the source snapshot was created from. This
15244	// parameter is required if your IAM user has a policy containing a snapshot
15245	// resource element that specifies anything other than * for the cluster name.
15246	//
15247	// Constraints:
15248	//
15249	//    * Must be the identifier for a valid cluster.
15250	SourceSnapshotClusterIdentifier *string `type:"string"`
15251
15252	// The identifier for the source snapshot.
15253	//
15254	// Constraints:
15255	//
15256	//    * Must be the identifier for a valid automated snapshot whose state is
15257	//    available.
15258	//
15259	// SourceSnapshotIdentifier is a required field
15260	SourceSnapshotIdentifier *string `type:"string" required:"true"`
15261
15262	// The identifier given to the new manual snapshot.
15263	//
15264	// Constraints:
15265	//
15266	//    * Cannot be null, empty, or blank.
15267	//
15268	//    * Must contain from 1 to 255 alphanumeric characters or hyphens.
15269	//
15270	//    * First character must be a letter.
15271	//
15272	//    * Cannot end with a hyphen or contain two consecutive hyphens.
15273	//
15274	//    * Must be unique for the Amazon Web Services account that is making the
15275	//    request.
15276	//
15277	// TargetSnapshotIdentifier is a required field
15278	TargetSnapshotIdentifier *string `type:"string" required:"true"`
15279}
15280
15281// String returns the string representation.
15282//
15283// API parameter values that are decorated as "sensitive" in the API will not
15284// be included in the string output. The member name will be present, but the
15285// value will be replaced with "sensitive".
15286func (s CopyClusterSnapshotInput) String() string {
15287	return awsutil.Prettify(s)
15288}
15289
15290// GoString returns the string representation.
15291//
15292// API parameter values that are decorated as "sensitive" in the API will not
15293// be included in the string output. The member name will be present, but the
15294// value will be replaced with "sensitive".
15295func (s CopyClusterSnapshotInput) GoString() string {
15296	return s.String()
15297}
15298
15299// Validate inspects the fields of the type to determine if they are valid.
15300func (s *CopyClusterSnapshotInput) Validate() error {
15301	invalidParams := request.ErrInvalidParams{Context: "CopyClusterSnapshotInput"}
15302	if s.SourceSnapshotIdentifier == nil {
15303		invalidParams.Add(request.NewErrParamRequired("SourceSnapshotIdentifier"))
15304	}
15305	if s.TargetSnapshotIdentifier == nil {
15306		invalidParams.Add(request.NewErrParamRequired("TargetSnapshotIdentifier"))
15307	}
15308
15309	if invalidParams.Len() > 0 {
15310		return invalidParams
15311	}
15312	return nil
15313}
15314
15315// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
15316func (s *CopyClusterSnapshotInput) SetManualSnapshotRetentionPeriod(v int64) *CopyClusterSnapshotInput {
15317	s.ManualSnapshotRetentionPeriod = &v
15318	return s
15319}
15320
15321// SetSourceSnapshotClusterIdentifier sets the SourceSnapshotClusterIdentifier field's value.
15322func (s *CopyClusterSnapshotInput) SetSourceSnapshotClusterIdentifier(v string) *CopyClusterSnapshotInput {
15323	s.SourceSnapshotClusterIdentifier = &v
15324	return s
15325}
15326
15327// SetSourceSnapshotIdentifier sets the SourceSnapshotIdentifier field's value.
15328func (s *CopyClusterSnapshotInput) SetSourceSnapshotIdentifier(v string) *CopyClusterSnapshotInput {
15329	s.SourceSnapshotIdentifier = &v
15330	return s
15331}
15332
15333// SetTargetSnapshotIdentifier sets the TargetSnapshotIdentifier field's value.
15334func (s *CopyClusterSnapshotInput) SetTargetSnapshotIdentifier(v string) *CopyClusterSnapshotInput {
15335	s.TargetSnapshotIdentifier = &v
15336	return s
15337}
15338
15339type CopyClusterSnapshotOutput struct {
15340	_ struct{} `type:"structure"`
15341
15342	// Describes a snapshot.
15343	Snapshot *Snapshot `type:"structure"`
15344}
15345
15346// String returns the string representation.
15347//
15348// API parameter values that are decorated as "sensitive" in the API will not
15349// be included in the string output. The member name will be present, but the
15350// value will be replaced with "sensitive".
15351func (s CopyClusterSnapshotOutput) String() string {
15352	return awsutil.Prettify(s)
15353}
15354
15355// GoString returns the string representation.
15356//
15357// API parameter values that are decorated as "sensitive" in the API will not
15358// be included in the string output. The member name will be present, but the
15359// value will be replaced with "sensitive".
15360func (s CopyClusterSnapshotOutput) GoString() string {
15361	return s.String()
15362}
15363
15364// SetSnapshot sets the Snapshot field's value.
15365func (s *CopyClusterSnapshotOutput) SetSnapshot(v *Snapshot) *CopyClusterSnapshotOutput {
15366	s.Snapshot = v
15367	return s
15368}
15369
15370type CreateAuthenticationProfileInput struct {
15371	_ struct{} `type:"structure"`
15372
15373	// The content of the authentication profile in JSON format. The maximum length
15374	// of the JSON string is determined by a quota for your account.
15375	//
15376	// AuthenticationProfileContent is a required field
15377	AuthenticationProfileContent *string `type:"string" required:"true"`
15378
15379	// The name of the authentication profile to be created.
15380	//
15381	// AuthenticationProfileName is a required field
15382	AuthenticationProfileName *string `type:"string" required:"true"`
15383}
15384
15385// String returns the string representation.
15386//
15387// API parameter values that are decorated as "sensitive" in the API will not
15388// be included in the string output. The member name will be present, but the
15389// value will be replaced with "sensitive".
15390func (s CreateAuthenticationProfileInput) String() string {
15391	return awsutil.Prettify(s)
15392}
15393
15394// GoString returns the string representation.
15395//
15396// API parameter values that are decorated as "sensitive" in the API will not
15397// be included in the string output. The member name will be present, but the
15398// value will be replaced with "sensitive".
15399func (s CreateAuthenticationProfileInput) GoString() string {
15400	return s.String()
15401}
15402
15403// Validate inspects the fields of the type to determine if they are valid.
15404func (s *CreateAuthenticationProfileInput) Validate() error {
15405	invalidParams := request.ErrInvalidParams{Context: "CreateAuthenticationProfileInput"}
15406	if s.AuthenticationProfileContent == nil {
15407		invalidParams.Add(request.NewErrParamRequired("AuthenticationProfileContent"))
15408	}
15409	if s.AuthenticationProfileName == nil {
15410		invalidParams.Add(request.NewErrParamRequired("AuthenticationProfileName"))
15411	}
15412
15413	if invalidParams.Len() > 0 {
15414		return invalidParams
15415	}
15416	return nil
15417}
15418
15419// SetAuthenticationProfileContent sets the AuthenticationProfileContent field's value.
15420func (s *CreateAuthenticationProfileInput) SetAuthenticationProfileContent(v string) *CreateAuthenticationProfileInput {
15421	s.AuthenticationProfileContent = &v
15422	return s
15423}
15424
15425// SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
15426func (s *CreateAuthenticationProfileInput) SetAuthenticationProfileName(v string) *CreateAuthenticationProfileInput {
15427	s.AuthenticationProfileName = &v
15428	return s
15429}
15430
15431type CreateAuthenticationProfileOutput struct {
15432	_ struct{} `type:"structure"`
15433
15434	// The content of the authentication profile in JSON format.
15435	AuthenticationProfileContent *string `type:"string"`
15436
15437	// The name of the authentication profile that was created.
15438	AuthenticationProfileName *string `type:"string"`
15439}
15440
15441// String returns the string representation.
15442//
15443// API parameter values that are decorated as "sensitive" in the API will not
15444// be included in the string output. The member name will be present, but the
15445// value will be replaced with "sensitive".
15446func (s CreateAuthenticationProfileOutput) String() string {
15447	return awsutil.Prettify(s)
15448}
15449
15450// GoString returns the string representation.
15451//
15452// API parameter values that are decorated as "sensitive" in the API will not
15453// be included in the string output. The member name will be present, but the
15454// value will be replaced with "sensitive".
15455func (s CreateAuthenticationProfileOutput) GoString() string {
15456	return s.String()
15457}
15458
15459// SetAuthenticationProfileContent sets the AuthenticationProfileContent field's value.
15460func (s *CreateAuthenticationProfileOutput) SetAuthenticationProfileContent(v string) *CreateAuthenticationProfileOutput {
15461	s.AuthenticationProfileContent = &v
15462	return s
15463}
15464
15465// SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
15466func (s *CreateAuthenticationProfileOutput) SetAuthenticationProfileName(v string) *CreateAuthenticationProfileOutput {
15467	s.AuthenticationProfileName = &v
15468	return s
15469}
15470
15471type CreateClusterInput struct {
15472	_ struct{} `type:"structure"`
15473
15474	// Reserved.
15475	AdditionalInfo *string `type:"string"`
15476
15477	// If true, major version upgrades can be applied during the maintenance window
15478	// to the Amazon Redshift engine that is running on the cluster.
15479	//
15480	// When a new major version of the Amazon Redshift engine is released, you can
15481	// request that the service automatically apply upgrades during the maintenance
15482	// window to the Amazon Redshift engine that is running on your cluster.
15483	//
15484	// Default: true
15485	AllowVersionUpgrade *bool `type:"boolean"`
15486
15487	// The value represents how the cluster is configured to use AQUA (Advanced
15488	// Query Accelerator) when it is created. Possible values include the following.
15489	//
15490	//    * enabled - Use AQUA if it is available for the current Amazon Web Services
15491	//    Region and Amazon Redshift node type.
15492	//
15493	//    * disabled - Don't use AQUA.
15494	//
15495	//    * auto - Amazon Redshift determines whether to use AQUA.
15496	AquaConfigurationStatus *string `type:"string" enum:"AquaConfigurationStatus"`
15497
15498	// The number of days that automated snapshots are retained. If the value is
15499	// 0, automated snapshots are disabled. Even if automated snapshots are disabled,
15500	// you can still create manual snapshots when you want with CreateClusterSnapshot.
15501	//
15502	// You can't disable automated snapshots for RA3 node types. Set the automated
15503	// retention period from 1-35 days.
15504	//
15505	// Default: 1
15506	//
15507	// Constraints: Must be a value from 0 to 35.
15508	AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
15509
15510	// The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision
15511	// the cluster. For example, if you have several EC2 instances running in a
15512	// specific Availability Zone, then you might want the cluster to be provisioned
15513	// in the same zone in order to decrease network latency.
15514	//
15515	// Default: A random, system-chosen Availability Zone in the region that is
15516	// specified by the endpoint.
15517	//
15518	// Example: us-east-2d
15519	//
15520	// Constraint: The specified Availability Zone must be in the same region as
15521	// the current endpoint.
15522	AvailabilityZone *string `type:"string"`
15523
15524	// The option to enable relocation for an Amazon Redshift cluster between Availability
15525	// Zones after the cluster is created.
15526	AvailabilityZoneRelocation *bool `type:"boolean"`
15527
15528	// A unique identifier for the cluster. You use this identifier to refer to
15529	// the cluster for any subsequent cluster operations such as deleting or modifying.
15530	// The identifier also appears in the Amazon Redshift console.
15531	//
15532	// Constraints:
15533	//
15534	//    * Must contain from 1 to 63 alphanumeric characters or hyphens.
15535	//
15536	//    * Alphabetic characters must be lowercase.
15537	//
15538	//    * First character must be a letter.
15539	//
15540	//    * Cannot end with a hyphen or contain two consecutive hyphens.
15541	//
15542	//    * Must be unique for all clusters within an Amazon Web Services account.
15543	//
15544	// Example: myexamplecluster
15545	//
15546	// ClusterIdentifier is a required field
15547	ClusterIdentifier *string `type:"string" required:"true"`
15548
15549	// The name of the parameter group to be associated with this cluster.
15550	//
15551	// Default: The default Amazon Redshift cluster parameter group. For information
15552	// about the default parameter group, go to Working with Amazon Redshift Parameter
15553	// Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
15554	//
15555	// Constraints:
15556	//
15557	//    * Must be 1 to 255 alphanumeric characters or hyphens.
15558	//
15559	//    * First character must be a letter.
15560	//
15561	//    * Cannot end with a hyphen or contain two consecutive hyphens.
15562	ClusterParameterGroupName *string `type:"string"`
15563
15564	// A list of security groups to be associated with this cluster.
15565	//
15566	// Default: The default cluster security group for Amazon Redshift.
15567	ClusterSecurityGroups []*string `locationNameList:"ClusterSecurityGroupName" type:"list"`
15568
15569	// The name of a cluster subnet group to be associated with this cluster.
15570	//
15571	// If this parameter is not provided the resulting cluster will be deployed
15572	// outside virtual private cloud (VPC).
15573	ClusterSubnetGroupName *string `type:"string"`
15574
15575	// The type of the cluster. When cluster type is specified as
15576	//
15577	//    * single-node, the NumberOfNodes parameter is not required.
15578	//
15579	//    * multi-node, the NumberOfNodes parameter is required.
15580	//
15581	// Valid Values: multi-node | single-node
15582	//
15583	// Default: multi-node
15584	ClusterType *string `type:"string"`
15585
15586	// The version of the Amazon Redshift engine software that you want to deploy
15587	// on the cluster.
15588	//
15589	// The version selected runs on all the nodes in the cluster.
15590	//
15591	// Constraints: Only version 1.0 is currently available.
15592	//
15593	// Example: 1.0
15594	ClusterVersion *string `type:"string"`
15595
15596	// The name of the first database to be created when the cluster is created.
15597	//
15598	// To create additional databases after the cluster is created, connect to the
15599	// cluster with a SQL client and use SQL commands to create a database. For
15600	// more information, go to Create a Database (https://docs.aws.amazon.com/redshift/latest/dg/t_creating_database.html)
15601	// in the Amazon Redshift Database Developer Guide.
15602	//
15603	// Default: dev
15604	//
15605	// Constraints:
15606	//
15607	//    * Must contain 1 to 64 alphanumeric characters.
15608	//
15609	//    * Must contain only lowercase letters.
15610	//
15611	//    * Cannot be a word that is reserved by the service. A list of reserved
15612	//    words can be found in Reserved Words (https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html)
15613	//    in the Amazon Redshift Database Developer Guide.
15614	DBName *string `type:"string"`
15615
15616	// The Elastic IP (EIP) address for the cluster.
15617	//
15618	// Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible
15619	// through an Internet gateway. For more information about provisioning clusters
15620	// 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)
15621	// in the Amazon Redshift Cluster Management Guide.
15622	ElasticIp *string `type:"string"`
15623
15624	// If true, the data in the cluster is encrypted at rest.
15625	//
15626	// Default: false
15627	Encrypted *bool `type:"boolean"`
15628
15629	// An option that specifies whether to create the cluster with enhanced VPC
15630	// routing enabled. To create a cluster that uses enhanced VPC routing, the
15631	// cluster must be in a VPC. For more information, see Enhanced VPC Routing
15632	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
15633	// in the Amazon Redshift Cluster Management Guide.
15634	//
15635	// If this option is true, enhanced VPC routing is enabled.
15636	//
15637	// Default: false
15638	EnhancedVpcRouting *bool `type:"boolean"`
15639
15640	// Specifies the name of the HSM client certificate the Amazon Redshift cluster
15641	// uses to retrieve the data encryption keys stored in an HSM.
15642	HsmClientCertificateIdentifier *string `type:"string"`
15643
15644	// Specifies the name of the HSM configuration that contains the information
15645	// the Amazon Redshift cluster can use to retrieve and store keys in an HSM.
15646	HsmConfigurationIdentifier *string `type:"string"`
15647
15648	// A list of Identity and Access Management (IAM) roles that can be used by
15649	// the cluster to access other Amazon Web Services services. You must supply
15650	// the IAM roles in their Amazon Resource Name (ARN) format. You can supply
15651	// up to 10 IAM roles in a single request.
15652	//
15653	// A cluster can have up to 10 IAM roles associated with it at any time.
15654	IamRoles []*string `locationNameList:"IamRoleArn" type:"list"`
15655
15656	// The Key Management Service (KMS) key ID of the encryption key that you want
15657	// to use to encrypt data in the cluster.
15658	KmsKeyId *string `type:"string"`
15659
15660	// An optional parameter for the name of the maintenance track for the cluster.
15661	// If you don't provide a maintenance track name, the cluster is assigned to
15662	// the current track.
15663	MaintenanceTrackName *string `type:"string"`
15664
15665	// The default number of days to retain a manual snapshot. If the value is -1,
15666	// the snapshot is retained indefinitely. This setting doesn't change the retention
15667	// period of existing snapshots.
15668	//
15669	// The value must be either -1 or an integer between 1 and 3,653.
15670	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
15671
15672	// The password associated with the admin user account for the cluster that
15673	// is being created.
15674	//
15675	// Constraints:
15676	//
15677	//    * Must be between 8 and 64 characters in length.
15678	//
15679	//    * Must contain at least one uppercase letter.
15680	//
15681	//    * Must contain at least one lowercase letter.
15682	//
15683	//    * Must contain one number.
15684	//
15685	//    * Can be any printable ASCII character (ASCII code 33 to 126) except '
15686	//    (single quote), " (double quote), \, /, @, or space.
15687	//
15688	// MasterUserPassword is a required field
15689	MasterUserPassword *string `type:"string" required:"true"`
15690
15691	// The user name associated with the admin user account for the cluster that
15692	// is being created.
15693	//
15694	// Constraints:
15695	//
15696	//    * Must be 1 - 128 alphanumeric characters. The user name can't be PUBLIC.
15697	//
15698	//    * First character must be a letter.
15699	//
15700	//    * Cannot be a reserved word. A list of reserved words can be found in
15701	//    Reserved Words (https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html)
15702	//    in the Amazon Redshift Database Developer Guide.
15703	//
15704	// MasterUsername is a required field
15705	MasterUsername *string `type:"string" required:"true"`
15706
15707	// The node type to be provisioned for the cluster. For information about node
15708	// types, go to Working with Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes)
15709	// in the Amazon Redshift Cluster Management Guide.
15710	//
15711	// Valid Values: ds2.xlarge | ds2.8xlarge | dc1.large | dc1.8xlarge | dc2.large
15712	// | dc2.8xlarge | ra3.xlplus | ra3.4xlarge | ra3.16xlarge
15713	//
15714	// NodeType is a required field
15715	NodeType *string `type:"string" required:"true"`
15716
15717	// The number of compute nodes in the cluster. This parameter is required when
15718	// the ClusterType parameter is specified as multi-node.
15719	//
15720	// For information about determining how many nodes you need, go to Working
15721	// with Clusters (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes)
15722	// in the Amazon Redshift Cluster Management Guide.
15723	//
15724	// If you don't specify this parameter, you get a single-node cluster. When
15725	// requesting a multi-node cluster, you must specify the number of nodes that
15726	// you want in the cluster.
15727	//
15728	// Default: 1
15729	//
15730	// Constraints: Value must be at least 1 and no more than 100.
15731	NumberOfNodes *int64 `type:"integer"`
15732
15733	// The port number on which the cluster accepts incoming connections.
15734	//
15735	// The cluster is accessible only via the JDBC and ODBC connection strings.
15736	// Part of the connection string requires the port on which the cluster will
15737	// listen for incoming connections.
15738	//
15739	// Default: 5439
15740	//
15741	// Valid Values: 1150-65535
15742	Port *int64 `type:"integer"`
15743
15744	// The weekly time range (in UTC) during which automated cluster maintenance
15745	// can occur.
15746	//
15747	// Format: ddd:hh24:mi-ddd:hh24:mi
15748	//
15749	// Default: A 30-minute window selected at random from an 8-hour block of time
15750	// per region, occurring on a random day of the week. For more information about
15751	// the time blocks for each region, see Maintenance Windows (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows)
15752	// in Amazon Redshift Cluster Management Guide.
15753	//
15754	// Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
15755	//
15756	// Constraints: Minimum 30-minute window.
15757	PreferredMaintenanceWindow *string `type:"string"`
15758
15759	// If true, the cluster can be accessed from a public network.
15760	PubliclyAccessible *bool `type:"boolean"`
15761
15762	// A unique identifier for the snapshot schedule.
15763	SnapshotScheduleIdentifier *string `type:"string"`
15764
15765	// A list of tag instances.
15766	Tags []*Tag `locationNameList:"Tag" type:"list"`
15767
15768	// A list of Virtual Private Cloud (VPC) security groups to be associated with
15769	// the cluster.
15770	//
15771	// Default: The default VPC security group is associated with the cluster.
15772	VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
15773}
15774
15775// String returns the string representation.
15776//
15777// API parameter values that are decorated as "sensitive" in the API will not
15778// be included in the string output. The member name will be present, but the
15779// value will be replaced with "sensitive".
15780func (s CreateClusterInput) String() string {
15781	return awsutil.Prettify(s)
15782}
15783
15784// GoString returns the string representation.
15785//
15786// API parameter values that are decorated as "sensitive" in the API will not
15787// be included in the string output. The member name will be present, but the
15788// value will be replaced with "sensitive".
15789func (s CreateClusterInput) GoString() string {
15790	return s.String()
15791}
15792
15793// Validate inspects the fields of the type to determine if they are valid.
15794func (s *CreateClusterInput) Validate() error {
15795	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
15796	if s.ClusterIdentifier == nil {
15797		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
15798	}
15799	if s.MasterUserPassword == nil {
15800		invalidParams.Add(request.NewErrParamRequired("MasterUserPassword"))
15801	}
15802	if s.MasterUsername == nil {
15803		invalidParams.Add(request.NewErrParamRequired("MasterUsername"))
15804	}
15805	if s.NodeType == nil {
15806		invalidParams.Add(request.NewErrParamRequired("NodeType"))
15807	}
15808
15809	if invalidParams.Len() > 0 {
15810		return invalidParams
15811	}
15812	return nil
15813}
15814
15815// SetAdditionalInfo sets the AdditionalInfo field's value.
15816func (s *CreateClusterInput) SetAdditionalInfo(v string) *CreateClusterInput {
15817	s.AdditionalInfo = &v
15818	return s
15819}
15820
15821// SetAllowVersionUpgrade sets the AllowVersionUpgrade field's value.
15822func (s *CreateClusterInput) SetAllowVersionUpgrade(v bool) *CreateClusterInput {
15823	s.AllowVersionUpgrade = &v
15824	return s
15825}
15826
15827// SetAquaConfigurationStatus sets the AquaConfigurationStatus field's value.
15828func (s *CreateClusterInput) SetAquaConfigurationStatus(v string) *CreateClusterInput {
15829	s.AquaConfigurationStatus = &v
15830	return s
15831}
15832
15833// SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
15834func (s *CreateClusterInput) SetAutomatedSnapshotRetentionPeriod(v int64) *CreateClusterInput {
15835	s.AutomatedSnapshotRetentionPeriod = &v
15836	return s
15837}
15838
15839// SetAvailabilityZone sets the AvailabilityZone field's value.
15840func (s *CreateClusterInput) SetAvailabilityZone(v string) *CreateClusterInput {
15841	s.AvailabilityZone = &v
15842	return s
15843}
15844
15845// SetAvailabilityZoneRelocation sets the AvailabilityZoneRelocation field's value.
15846func (s *CreateClusterInput) SetAvailabilityZoneRelocation(v bool) *CreateClusterInput {
15847	s.AvailabilityZoneRelocation = &v
15848	return s
15849}
15850
15851// SetClusterIdentifier sets the ClusterIdentifier field's value.
15852func (s *CreateClusterInput) SetClusterIdentifier(v string) *CreateClusterInput {
15853	s.ClusterIdentifier = &v
15854	return s
15855}
15856
15857// SetClusterParameterGroupName sets the ClusterParameterGroupName field's value.
15858func (s *CreateClusterInput) SetClusterParameterGroupName(v string) *CreateClusterInput {
15859	s.ClusterParameterGroupName = &v
15860	return s
15861}
15862
15863// SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
15864func (s *CreateClusterInput) SetClusterSecurityGroups(v []*string) *CreateClusterInput {
15865	s.ClusterSecurityGroups = v
15866	return s
15867}
15868
15869// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
15870func (s *CreateClusterInput) SetClusterSubnetGroupName(v string) *CreateClusterInput {
15871	s.ClusterSubnetGroupName = &v
15872	return s
15873}
15874
15875// SetClusterType sets the ClusterType field's value.
15876func (s *CreateClusterInput) SetClusterType(v string) *CreateClusterInput {
15877	s.ClusterType = &v
15878	return s
15879}
15880
15881// SetClusterVersion sets the ClusterVersion field's value.
15882func (s *CreateClusterInput) SetClusterVersion(v string) *CreateClusterInput {
15883	s.ClusterVersion = &v
15884	return s
15885}
15886
15887// SetDBName sets the DBName field's value.
15888func (s *CreateClusterInput) SetDBName(v string) *CreateClusterInput {
15889	s.DBName = &v
15890	return s
15891}
15892
15893// SetElasticIp sets the ElasticIp field's value.
15894func (s *CreateClusterInput) SetElasticIp(v string) *CreateClusterInput {
15895	s.ElasticIp = &v
15896	return s
15897}
15898
15899// SetEncrypted sets the Encrypted field's value.
15900func (s *CreateClusterInput) SetEncrypted(v bool) *CreateClusterInput {
15901	s.Encrypted = &v
15902	return s
15903}
15904
15905// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
15906func (s *CreateClusterInput) SetEnhancedVpcRouting(v bool) *CreateClusterInput {
15907	s.EnhancedVpcRouting = &v
15908	return s
15909}
15910
15911// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
15912func (s *CreateClusterInput) SetHsmClientCertificateIdentifier(v string) *CreateClusterInput {
15913	s.HsmClientCertificateIdentifier = &v
15914	return s
15915}
15916
15917// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
15918func (s *CreateClusterInput) SetHsmConfigurationIdentifier(v string) *CreateClusterInput {
15919	s.HsmConfigurationIdentifier = &v
15920	return s
15921}
15922
15923// SetIamRoles sets the IamRoles field's value.
15924func (s *CreateClusterInput) SetIamRoles(v []*string) *CreateClusterInput {
15925	s.IamRoles = v
15926	return s
15927}
15928
15929// SetKmsKeyId sets the KmsKeyId field's value.
15930func (s *CreateClusterInput) SetKmsKeyId(v string) *CreateClusterInput {
15931	s.KmsKeyId = &v
15932	return s
15933}
15934
15935// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
15936func (s *CreateClusterInput) SetMaintenanceTrackName(v string) *CreateClusterInput {
15937	s.MaintenanceTrackName = &v
15938	return s
15939}
15940
15941// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
15942func (s *CreateClusterInput) SetManualSnapshotRetentionPeriod(v int64) *CreateClusterInput {
15943	s.ManualSnapshotRetentionPeriod = &v
15944	return s
15945}
15946
15947// SetMasterUserPassword sets the MasterUserPassword field's value.
15948func (s *CreateClusterInput) SetMasterUserPassword(v string) *CreateClusterInput {
15949	s.MasterUserPassword = &v
15950	return s
15951}
15952
15953// SetMasterUsername sets the MasterUsername field's value.
15954func (s *CreateClusterInput) SetMasterUsername(v string) *CreateClusterInput {
15955	s.MasterUsername = &v
15956	return s
15957}
15958
15959// SetNodeType sets the NodeType field's value.
15960func (s *CreateClusterInput) SetNodeType(v string) *CreateClusterInput {
15961	s.NodeType = &v
15962	return s
15963}
15964
15965// SetNumberOfNodes sets the NumberOfNodes field's value.
15966func (s *CreateClusterInput) SetNumberOfNodes(v int64) *CreateClusterInput {
15967	s.NumberOfNodes = &v
15968	return s
15969}
15970
15971// SetPort sets the Port field's value.
15972func (s *CreateClusterInput) SetPort(v int64) *CreateClusterInput {
15973	s.Port = &v
15974	return s
15975}
15976
15977// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
15978func (s *CreateClusterInput) SetPreferredMaintenanceWindow(v string) *CreateClusterInput {
15979	s.PreferredMaintenanceWindow = &v
15980	return s
15981}
15982
15983// SetPubliclyAccessible sets the PubliclyAccessible field's value.
15984func (s *CreateClusterInput) SetPubliclyAccessible(v bool) *CreateClusterInput {
15985	s.PubliclyAccessible = &v
15986	return s
15987}
15988
15989// SetSnapshotScheduleIdentifier sets the SnapshotScheduleIdentifier field's value.
15990func (s *CreateClusterInput) SetSnapshotScheduleIdentifier(v string) *CreateClusterInput {
15991	s.SnapshotScheduleIdentifier = &v
15992	return s
15993}
15994
15995// SetTags sets the Tags field's value.
15996func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
15997	s.Tags = v
15998	return s
15999}
16000
16001// SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
16002func (s *CreateClusterInput) SetVpcSecurityGroupIds(v []*string) *CreateClusterInput {
16003	s.VpcSecurityGroupIds = v
16004	return s
16005}
16006
16007type CreateClusterOutput struct {
16008	_ struct{} `type:"structure"`
16009
16010	// Describes a cluster.
16011	Cluster *Cluster `type:"structure"`
16012}
16013
16014// String returns the string representation.
16015//
16016// API parameter values that are decorated as "sensitive" in the API will not
16017// be included in the string output. The member name will be present, but the
16018// value will be replaced with "sensitive".
16019func (s CreateClusterOutput) String() string {
16020	return awsutil.Prettify(s)
16021}
16022
16023// GoString returns the string representation.
16024//
16025// API parameter values that are decorated as "sensitive" in the API will not
16026// be included in the string output. The member name will be present, but the
16027// value will be replaced with "sensitive".
16028func (s CreateClusterOutput) GoString() string {
16029	return s.String()
16030}
16031
16032// SetCluster sets the Cluster field's value.
16033func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
16034	s.Cluster = v
16035	return s
16036}
16037
16038type CreateClusterParameterGroupInput struct {
16039	_ struct{} `type:"structure"`
16040
16041	// A description of the parameter group.
16042	//
16043	// Description is a required field
16044	Description *string `type:"string" required:"true"`
16045
16046	// The Amazon Redshift engine version to which the cluster parameter group applies.
16047	// The cluster engine version determines the set of parameters.
16048	//
16049	// To get a list of valid parameter group family names, you can call DescribeClusterParameterGroups.
16050	// By default, Amazon Redshift returns a list of all the parameter groups that
16051	// are owned by your Amazon Web Services account, including the default parameter
16052	// groups for each Amazon Redshift engine version. The parameter group family
16053	// names associated with the default parameter groups provide you the valid
16054	// values. For example, a valid family name is "redshift-1.0".
16055	//
16056	// ParameterGroupFamily is a required field
16057	ParameterGroupFamily *string `type:"string" required:"true"`
16058
16059	// The name of the cluster parameter group.
16060	//
16061	// Constraints:
16062	//
16063	//    * Must be 1 to 255 alphanumeric characters or hyphens
16064	//
16065	//    * First character must be a letter.
16066	//
16067	//    * Cannot end with a hyphen or contain two consecutive hyphens.
16068	//
16069	//    * Must be unique withing your Amazon Web Services account.
16070	//
16071	// This value is stored as a lower-case string.
16072	//
16073	// ParameterGroupName is a required field
16074	ParameterGroupName *string `type:"string" required:"true"`
16075
16076	// A list of tag instances.
16077	Tags []*Tag `locationNameList:"Tag" type:"list"`
16078}
16079
16080// String returns the string representation.
16081//
16082// API parameter values that are decorated as "sensitive" in the API will not
16083// be included in the string output. The member name will be present, but the
16084// value will be replaced with "sensitive".
16085func (s CreateClusterParameterGroupInput) String() string {
16086	return awsutil.Prettify(s)
16087}
16088
16089// GoString returns the string representation.
16090//
16091// API parameter values that are decorated as "sensitive" in the API will not
16092// be included in the string output. The member name will be present, but the
16093// value will be replaced with "sensitive".
16094func (s CreateClusterParameterGroupInput) GoString() string {
16095	return s.String()
16096}
16097
16098// Validate inspects the fields of the type to determine if they are valid.
16099func (s *CreateClusterParameterGroupInput) Validate() error {
16100	invalidParams := request.ErrInvalidParams{Context: "CreateClusterParameterGroupInput"}
16101	if s.Description == nil {
16102		invalidParams.Add(request.NewErrParamRequired("Description"))
16103	}
16104	if s.ParameterGroupFamily == nil {
16105		invalidParams.Add(request.NewErrParamRequired("ParameterGroupFamily"))
16106	}
16107	if s.ParameterGroupName == nil {
16108		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
16109	}
16110
16111	if invalidParams.Len() > 0 {
16112		return invalidParams
16113	}
16114	return nil
16115}
16116
16117// SetDescription sets the Description field's value.
16118func (s *CreateClusterParameterGroupInput) SetDescription(v string) *CreateClusterParameterGroupInput {
16119	s.Description = &v
16120	return s
16121}
16122
16123// SetParameterGroupFamily sets the ParameterGroupFamily field's value.
16124func (s *CreateClusterParameterGroupInput) SetParameterGroupFamily(v string) *CreateClusterParameterGroupInput {
16125	s.ParameterGroupFamily = &v
16126	return s
16127}
16128
16129// SetParameterGroupName sets the ParameterGroupName field's value.
16130func (s *CreateClusterParameterGroupInput) SetParameterGroupName(v string) *CreateClusterParameterGroupInput {
16131	s.ParameterGroupName = &v
16132	return s
16133}
16134
16135// SetTags sets the Tags field's value.
16136func (s *CreateClusterParameterGroupInput) SetTags(v []*Tag) *CreateClusterParameterGroupInput {
16137	s.Tags = v
16138	return s
16139}
16140
16141type CreateClusterParameterGroupOutput struct {
16142	_ struct{} `type:"structure"`
16143
16144	// Describes a parameter group.
16145	ClusterParameterGroup *ClusterParameterGroup `type:"structure"`
16146}
16147
16148// String returns the string representation.
16149//
16150// API parameter values that are decorated as "sensitive" in the API will not
16151// be included in the string output. The member name will be present, but the
16152// value will be replaced with "sensitive".
16153func (s CreateClusterParameterGroupOutput) String() string {
16154	return awsutil.Prettify(s)
16155}
16156
16157// GoString returns the string representation.
16158//
16159// API parameter values that are decorated as "sensitive" in the API will not
16160// be included in the string output. The member name will be present, but the
16161// value will be replaced with "sensitive".
16162func (s CreateClusterParameterGroupOutput) GoString() string {
16163	return s.String()
16164}
16165
16166// SetClusterParameterGroup sets the ClusterParameterGroup field's value.
16167func (s *CreateClusterParameterGroupOutput) SetClusterParameterGroup(v *ClusterParameterGroup) *CreateClusterParameterGroupOutput {
16168	s.ClusterParameterGroup = v
16169	return s
16170}
16171
16172type CreateClusterSecurityGroupInput struct {
16173	_ struct{} `type:"structure"`
16174
16175	// The name for the security group. Amazon Redshift stores the value as a lowercase
16176	// string.
16177	//
16178	// Constraints:
16179	//
16180	//    * Must contain no more than 255 alphanumeric characters or hyphens.
16181	//
16182	//    * Must not be "Default".
16183	//
16184	//    * Must be unique for all security groups that are created by your Amazon
16185	//    Web Services account.
16186	//
16187	// Example: examplesecuritygroup
16188	//
16189	// ClusterSecurityGroupName is a required field
16190	ClusterSecurityGroupName *string `type:"string" required:"true"`
16191
16192	// A description for the security group.
16193	//
16194	// Description is a required field
16195	Description *string `type:"string" required:"true"`
16196
16197	// A list of tag instances.
16198	Tags []*Tag `locationNameList:"Tag" type:"list"`
16199}
16200
16201// String returns the string representation.
16202//
16203// API parameter values that are decorated as "sensitive" in the API will not
16204// be included in the string output. The member name will be present, but the
16205// value will be replaced with "sensitive".
16206func (s CreateClusterSecurityGroupInput) String() string {
16207	return awsutil.Prettify(s)
16208}
16209
16210// GoString returns the string representation.
16211//
16212// API parameter values that are decorated as "sensitive" in the API will not
16213// be included in the string output. The member name will be present, but the
16214// value will be replaced with "sensitive".
16215func (s CreateClusterSecurityGroupInput) GoString() string {
16216	return s.String()
16217}
16218
16219// Validate inspects the fields of the type to determine if they are valid.
16220func (s *CreateClusterSecurityGroupInput) Validate() error {
16221	invalidParams := request.ErrInvalidParams{Context: "CreateClusterSecurityGroupInput"}
16222	if s.ClusterSecurityGroupName == nil {
16223		invalidParams.Add(request.NewErrParamRequired("ClusterSecurityGroupName"))
16224	}
16225	if s.Description == nil {
16226		invalidParams.Add(request.NewErrParamRequired("Description"))
16227	}
16228
16229	if invalidParams.Len() > 0 {
16230		return invalidParams
16231	}
16232	return nil
16233}
16234
16235// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
16236func (s *CreateClusterSecurityGroupInput) SetClusterSecurityGroupName(v string) *CreateClusterSecurityGroupInput {
16237	s.ClusterSecurityGroupName = &v
16238	return s
16239}
16240
16241// SetDescription sets the Description field's value.
16242func (s *CreateClusterSecurityGroupInput) SetDescription(v string) *CreateClusterSecurityGroupInput {
16243	s.Description = &v
16244	return s
16245}
16246
16247// SetTags sets the Tags field's value.
16248func (s *CreateClusterSecurityGroupInput) SetTags(v []*Tag) *CreateClusterSecurityGroupInput {
16249	s.Tags = v
16250	return s
16251}
16252
16253type CreateClusterSecurityGroupOutput struct {
16254	_ struct{} `type:"structure"`
16255
16256	// Describes a security group.
16257	ClusterSecurityGroup *ClusterSecurityGroup `type:"structure"`
16258}
16259
16260// String returns the string representation.
16261//
16262// API parameter values that are decorated as "sensitive" in the API will not
16263// be included in the string output. The member name will be present, but the
16264// value will be replaced with "sensitive".
16265func (s CreateClusterSecurityGroupOutput) String() string {
16266	return awsutil.Prettify(s)
16267}
16268
16269// GoString returns the string representation.
16270//
16271// API parameter values that are decorated as "sensitive" in the API will not
16272// be included in the string output. The member name will be present, but the
16273// value will be replaced with "sensitive".
16274func (s CreateClusterSecurityGroupOutput) GoString() string {
16275	return s.String()
16276}
16277
16278// SetClusterSecurityGroup sets the ClusterSecurityGroup field's value.
16279func (s *CreateClusterSecurityGroupOutput) SetClusterSecurityGroup(v *ClusterSecurityGroup) *CreateClusterSecurityGroupOutput {
16280	s.ClusterSecurityGroup = v
16281	return s
16282}
16283
16284type CreateClusterSnapshotInput struct {
16285	_ struct{} `type:"structure"`
16286
16287	// The cluster identifier for which you want a snapshot.
16288	//
16289	// ClusterIdentifier is a required field
16290	ClusterIdentifier *string `type:"string" required:"true"`
16291
16292	// The number of days that a manual snapshot is retained. If the value is -1,
16293	// the manual snapshot is retained indefinitely.
16294	//
16295	// The value must be either -1 or an integer between 1 and 3,653.
16296	//
16297	// The default value is -1.
16298	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
16299
16300	// A unique identifier for the snapshot that you are requesting. This identifier
16301	// must be unique for all snapshots within the Amazon Web Services account.
16302	//
16303	// Constraints:
16304	//
16305	//    * Cannot be null, empty, or blank
16306	//
16307	//    * Must contain from 1 to 255 alphanumeric characters or hyphens
16308	//
16309	//    * First character must be a letter
16310	//
16311	//    * Cannot end with a hyphen or contain two consecutive hyphens
16312	//
16313	// Example: my-snapshot-id
16314	//
16315	// SnapshotIdentifier is a required field
16316	SnapshotIdentifier *string `type:"string" required:"true"`
16317
16318	// A list of tag instances.
16319	Tags []*Tag `locationNameList:"Tag" type:"list"`
16320}
16321
16322// String returns the string representation.
16323//
16324// API parameter values that are decorated as "sensitive" in the API will not
16325// be included in the string output. The member name will be present, but the
16326// value will be replaced with "sensitive".
16327func (s CreateClusterSnapshotInput) String() string {
16328	return awsutil.Prettify(s)
16329}
16330
16331// GoString returns the string representation.
16332//
16333// API parameter values that are decorated as "sensitive" in the API will not
16334// be included in the string output. The member name will be present, but the
16335// value will be replaced with "sensitive".
16336func (s CreateClusterSnapshotInput) GoString() string {
16337	return s.String()
16338}
16339
16340// Validate inspects the fields of the type to determine if they are valid.
16341func (s *CreateClusterSnapshotInput) Validate() error {
16342	invalidParams := request.ErrInvalidParams{Context: "CreateClusterSnapshotInput"}
16343	if s.ClusterIdentifier == nil {
16344		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
16345	}
16346	if s.SnapshotIdentifier == nil {
16347		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
16348	}
16349
16350	if invalidParams.Len() > 0 {
16351		return invalidParams
16352	}
16353	return nil
16354}
16355
16356// SetClusterIdentifier sets the ClusterIdentifier field's value.
16357func (s *CreateClusterSnapshotInput) SetClusterIdentifier(v string) *CreateClusterSnapshotInput {
16358	s.ClusterIdentifier = &v
16359	return s
16360}
16361
16362// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
16363func (s *CreateClusterSnapshotInput) SetManualSnapshotRetentionPeriod(v int64) *CreateClusterSnapshotInput {
16364	s.ManualSnapshotRetentionPeriod = &v
16365	return s
16366}
16367
16368// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
16369func (s *CreateClusterSnapshotInput) SetSnapshotIdentifier(v string) *CreateClusterSnapshotInput {
16370	s.SnapshotIdentifier = &v
16371	return s
16372}
16373
16374// SetTags sets the Tags field's value.
16375func (s *CreateClusterSnapshotInput) SetTags(v []*Tag) *CreateClusterSnapshotInput {
16376	s.Tags = v
16377	return s
16378}
16379
16380type CreateClusterSnapshotOutput struct {
16381	_ struct{} `type:"structure"`
16382
16383	// Describes a snapshot.
16384	Snapshot *Snapshot `type:"structure"`
16385}
16386
16387// String returns the string representation.
16388//
16389// API parameter values that are decorated as "sensitive" in the API will not
16390// be included in the string output. The member name will be present, but the
16391// value will be replaced with "sensitive".
16392func (s CreateClusterSnapshotOutput) String() string {
16393	return awsutil.Prettify(s)
16394}
16395
16396// GoString returns the string representation.
16397//
16398// API parameter values that are decorated as "sensitive" in the API will not
16399// be included in the string output. The member name will be present, but the
16400// value will be replaced with "sensitive".
16401func (s CreateClusterSnapshotOutput) GoString() string {
16402	return s.String()
16403}
16404
16405// SetSnapshot sets the Snapshot field's value.
16406func (s *CreateClusterSnapshotOutput) SetSnapshot(v *Snapshot) *CreateClusterSnapshotOutput {
16407	s.Snapshot = v
16408	return s
16409}
16410
16411type CreateClusterSubnetGroupInput struct {
16412	_ struct{} `type:"structure"`
16413
16414	// The name for the subnet group. Amazon Redshift stores the value as a lowercase
16415	// string.
16416	//
16417	// Constraints:
16418	//
16419	//    * Must contain no more than 255 alphanumeric characters or hyphens.
16420	//
16421	//    * Must not be "Default".
16422	//
16423	//    * Must be unique for all subnet groups that are created by your Amazon
16424	//    Web Services account.
16425	//
16426	// Example: examplesubnetgroup
16427	//
16428	// ClusterSubnetGroupName is a required field
16429	ClusterSubnetGroupName *string `type:"string" required:"true"`
16430
16431	// A description for the subnet group.
16432	//
16433	// Description is a required field
16434	Description *string `type:"string" required:"true"`
16435
16436	// An array of VPC subnet IDs. A maximum of 20 subnets can be modified in a
16437	// single request.
16438	//
16439	// SubnetIds is a required field
16440	SubnetIds []*string `locationNameList:"SubnetIdentifier" type:"list" required:"true"`
16441
16442	// A list of tag instances.
16443	Tags []*Tag `locationNameList:"Tag" type:"list"`
16444}
16445
16446// String returns the string representation.
16447//
16448// API parameter values that are decorated as "sensitive" in the API will not
16449// be included in the string output. The member name will be present, but the
16450// value will be replaced with "sensitive".
16451func (s CreateClusterSubnetGroupInput) String() string {
16452	return awsutil.Prettify(s)
16453}
16454
16455// GoString returns the string representation.
16456//
16457// API parameter values that are decorated as "sensitive" in the API will not
16458// be included in the string output. The member name will be present, but the
16459// value will be replaced with "sensitive".
16460func (s CreateClusterSubnetGroupInput) GoString() string {
16461	return s.String()
16462}
16463
16464// Validate inspects the fields of the type to determine if they are valid.
16465func (s *CreateClusterSubnetGroupInput) Validate() error {
16466	invalidParams := request.ErrInvalidParams{Context: "CreateClusterSubnetGroupInput"}
16467	if s.ClusterSubnetGroupName == nil {
16468		invalidParams.Add(request.NewErrParamRequired("ClusterSubnetGroupName"))
16469	}
16470	if s.Description == nil {
16471		invalidParams.Add(request.NewErrParamRequired("Description"))
16472	}
16473	if s.SubnetIds == nil {
16474		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
16475	}
16476
16477	if invalidParams.Len() > 0 {
16478		return invalidParams
16479	}
16480	return nil
16481}
16482
16483// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
16484func (s *CreateClusterSubnetGroupInput) SetClusterSubnetGroupName(v string) *CreateClusterSubnetGroupInput {
16485	s.ClusterSubnetGroupName = &v
16486	return s
16487}
16488
16489// SetDescription sets the Description field's value.
16490func (s *CreateClusterSubnetGroupInput) SetDescription(v string) *CreateClusterSubnetGroupInput {
16491	s.Description = &v
16492	return s
16493}
16494
16495// SetSubnetIds sets the SubnetIds field's value.
16496func (s *CreateClusterSubnetGroupInput) SetSubnetIds(v []*string) *CreateClusterSubnetGroupInput {
16497	s.SubnetIds = v
16498	return s
16499}
16500
16501// SetTags sets the Tags field's value.
16502func (s *CreateClusterSubnetGroupInput) SetTags(v []*Tag) *CreateClusterSubnetGroupInput {
16503	s.Tags = v
16504	return s
16505}
16506
16507type CreateClusterSubnetGroupOutput struct {
16508	_ struct{} `type:"structure"`
16509
16510	// Describes a subnet group.
16511	ClusterSubnetGroup *ClusterSubnetGroup `type:"structure"`
16512}
16513
16514// String returns the string representation.
16515//
16516// API parameter values that are decorated as "sensitive" in the API will not
16517// be included in the string output. The member name will be present, but the
16518// value will be replaced with "sensitive".
16519func (s CreateClusterSubnetGroupOutput) String() string {
16520	return awsutil.Prettify(s)
16521}
16522
16523// GoString returns the string representation.
16524//
16525// API parameter values that are decorated as "sensitive" in the API will not
16526// be included in the string output. The member name will be present, but the
16527// value will be replaced with "sensitive".
16528func (s CreateClusterSubnetGroupOutput) GoString() string {
16529	return s.String()
16530}
16531
16532// SetClusterSubnetGroup sets the ClusterSubnetGroup field's value.
16533func (s *CreateClusterSubnetGroupOutput) SetClusterSubnetGroup(v *ClusterSubnetGroup) *CreateClusterSubnetGroupOutput {
16534	s.ClusterSubnetGroup = v
16535	return s
16536}
16537
16538type CreateEndpointAccessInput struct {
16539	_ struct{} `type:"structure"`
16540
16541	// The cluster identifier of the cluster to access.
16542	ClusterIdentifier *string `type:"string"`
16543
16544	// The Redshift-managed VPC endpoint name.
16545	//
16546	// An endpoint name must contain 1-30 characters. Valid characters are A-Z,
16547	// a-z, 0-9, and hyphen(-). The first character must be a letter. The name can't
16548	// contain two consecutive hyphens or end with a hyphen.
16549	//
16550	// EndpointName is a required field
16551	EndpointName *string `type:"string" required:"true"`
16552
16553	// The Amazon Web Services account ID of the owner of the cluster. This is only
16554	// required if the cluster is in another Amazon Web Services account.
16555	ResourceOwner *string `type:"string"`
16556
16557	// The subnet group from which Amazon Redshift chooses the subnet to deploy
16558	// the endpoint.
16559	//
16560	// SubnetGroupName is a required field
16561	SubnetGroupName *string `type:"string" required:"true"`
16562
16563	// The security group that defines the ports, protocols, and sources for inbound
16564	// traffic that you are authorizing into your endpoint.
16565	VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
16566}
16567
16568// String returns the string representation.
16569//
16570// API parameter values that are decorated as "sensitive" in the API will not
16571// be included in the string output. The member name will be present, but the
16572// value will be replaced with "sensitive".
16573func (s CreateEndpointAccessInput) String() string {
16574	return awsutil.Prettify(s)
16575}
16576
16577// GoString returns the string representation.
16578//
16579// API parameter values that are decorated as "sensitive" in the API will not
16580// be included in the string output. The member name will be present, but the
16581// value will be replaced with "sensitive".
16582func (s CreateEndpointAccessInput) GoString() string {
16583	return s.String()
16584}
16585
16586// Validate inspects the fields of the type to determine if they are valid.
16587func (s *CreateEndpointAccessInput) Validate() error {
16588	invalidParams := request.ErrInvalidParams{Context: "CreateEndpointAccessInput"}
16589	if s.EndpointName == nil {
16590		invalidParams.Add(request.NewErrParamRequired("EndpointName"))
16591	}
16592	if s.SubnetGroupName == nil {
16593		invalidParams.Add(request.NewErrParamRequired("SubnetGroupName"))
16594	}
16595
16596	if invalidParams.Len() > 0 {
16597		return invalidParams
16598	}
16599	return nil
16600}
16601
16602// SetClusterIdentifier sets the ClusterIdentifier field's value.
16603func (s *CreateEndpointAccessInput) SetClusterIdentifier(v string) *CreateEndpointAccessInput {
16604	s.ClusterIdentifier = &v
16605	return s
16606}
16607
16608// SetEndpointName sets the EndpointName field's value.
16609func (s *CreateEndpointAccessInput) SetEndpointName(v string) *CreateEndpointAccessInput {
16610	s.EndpointName = &v
16611	return s
16612}
16613
16614// SetResourceOwner sets the ResourceOwner field's value.
16615func (s *CreateEndpointAccessInput) SetResourceOwner(v string) *CreateEndpointAccessInput {
16616	s.ResourceOwner = &v
16617	return s
16618}
16619
16620// SetSubnetGroupName sets the SubnetGroupName field's value.
16621func (s *CreateEndpointAccessInput) SetSubnetGroupName(v string) *CreateEndpointAccessInput {
16622	s.SubnetGroupName = &v
16623	return s
16624}
16625
16626// SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
16627func (s *CreateEndpointAccessInput) SetVpcSecurityGroupIds(v []*string) *CreateEndpointAccessInput {
16628	s.VpcSecurityGroupIds = v
16629	return s
16630}
16631
16632// Describes a Redshift-managed VPC endpoint.
16633type CreateEndpointAccessOutput struct {
16634	_ struct{} `type:"structure"`
16635
16636	// The DNS address of the endpoint.
16637	Address *string `type:"string"`
16638
16639	// The cluster identifier of the cluster associated with the endpoint.
16640	ClusterIdentifier *string `type:"string"`
16641
16642	// The time (UTC) that the endpoint was created.
16643	EndpointCreateTime *time.Time `type:"timestamp"`
16644
16645	// The name of the endpoint.
16646	EndpointName *string `type:"string"`
16647
16648	// The status of the endpoint.
16649	EndpointStatus *string `type:"string"`
16650
16651	// The port number on which the cluster accepts incoming connections.
16652	Port *int64 `type:"integer"`
16653
16654	// The Amazon Web Services account ID of the owner of the cluster.
16655	ResourceOwner *string `type:"string"`
16656
16657	// The subnet group name where Amazon Redshift chooses to deploy the endpoint.
16658	SubnetGroupName *string `type:"string"`
16659
16660	// The connection endpoint for connecting to an Amazon Redshift cluster through
16661	// the proxy.
16662	VpcEndpoint *VpcEndpoint `type:"structure"`
16663
16664	// The security groups associated with the endpoint.
16665	VpcSecurityGroups []*VpcSecurityGroupMembership `locationNameList:"VpcSecurityGroup" type:"list"`
16666}
16667
16668// String returns the string representation.
16669//
16670// API parameter values that are decorated as "sensitive" in the API will not
16671// be included in the string output. The member name will be present, but the
16672// value will be replaced with "sensitive".
16673func (s CreateEndpointAccessOutput) String() string {
16674	return awsutil.Prettify(s)
16675}
16676
16677// GoString returns the string representation.
16678//
16679// API parameter values that are decorated as "sensitive" in the API will not
16680// be included in the string output. The member name will be present, but the
16681// value will be replaced with "sensitive".
16682func (s CreateEndpointAccessOutput) GoString() string {
16683	return s.String()
16684}
16685
16686// SetAddress sets the Address field's value.
16687func (s *CreateEndpointAccessOutput) SetAddress(v string) *CreateEndpointAccessOutput {
16688	s.Address = &v
16689	return s
16690}
16691
16692// SetClusterIdentifier sets the ClusterIdentifier field's value.
16693func (s *CreateEndpointAccessOutput) SetClusterIdentifier(v string) *CreateEndpointAccessOutput {
16694	s.ClusterIdentifier = &v
16695	return s
16696}
16697
16698// SetEndpointCreateTime sets the EndpointCreateTime field's value.
16699func (s *CreateEndpointAccessOutput) SetEndpointCreateTime(v time.Time) *CreateEndpointAccessOutput {
16700	s.EndpointCreateTime = &v
16701	return s
16702}
16703
16704// SetEndpointName sets the EndpointName field's value.
16705func (s *CreateEndpointAccessOutput) SetEndpointName(v string) *CreateEndpointAccessOutput {
16706	s.EndpointName = &v
16707	return s
16708}
16709
16710// SetEndpointStatus sets the EndpointStatus field's value.
16711func (s *CreateEndpointAccessOutput) SetEndpointStatus(v string) *CreateEndpointAccessOutput {
16712	s.EndpointStatus = &v
16713	return s
16714}
16715
16716// SetPort sets the Port field's value.
16717func (s *CreateEndpointAccessOutput) SetPort(v int64) *CreateEndpointAccessOutput {
16718	s.Port = &v
16719	return s
16720}
16721
16722// SetResourceOwner sets the ResourceOwner field's value.
16723func (s *CreateEndpointAccessOutput) SetResourceOwner(v string) *CreateEndpointAccessOutput {
16724	s.ResourceOwner = &v
16725	return s
16726}
16727
16728// SetSubnetGroupName sets the SubnetGroupName field's value.
16729func (s *CreateEndpointAccessOutput) SetSubnetGroupName(v string) *CreateEndpointAccessOutput {
16730	s.SubnetGroupName = &v
16731	return s
16732}
16733
16734// SetVpcEndpoint sets the VpcEndpoint field's value.
16735func (s *CreateEndpointAccessOutput) SetVpcEndpoint(v *VpcEndpoint) *CreateEndpointAccessOutput {
16736	s.VpcEndpoint = v
16737	return s
16738}
16739
16740// SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
16741func (s *CreateEndpointAccessOutput) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *CreateEndpointAccessOutput {
16742	s.VpcSecurityGroups = v
16743	return s
16744}
16745
16746type CreateEventSubscriptionInput struct {
16747	_ struct{} `type:"structure"`
16748
16749	// A boolean value; set to true to activate the subscription, and set to false
16750	// to create the subscription but not activate it.
16751	Enabled *bool `type:"boolean"`
16752
16753	// Specifies the Amazon Redshift event categories to be published by the event
16754	// notification subscription.
16755	//
16756	// Values: configuration, management, monitoring, security, pending
16757	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
16758
16759	// Specifies the Amazon Redshift event severity to be published by the event
16760	// notification subscription.
16761	//
16762	// Values: ERROR, INFO
16763	Severity *string `type:"string"`
16764
16765	// The Amazon Resource Name (ARN) of the Amazon SNS topic used to transmit the
16766	// event notifications. The ARN is created by Amazon SNS when you create a topic
16767	// and subscribe to it.
16768	//
16769	// SnsTopicArn is a required field
16770	SnsTopicArn *string `type:"string" required:"true"`
16771
16772	// A list of one or more identifiers of Amazon Redshift source objects. All
16773	// of the objects must be of the same type as was specified in the source type
16774	// parameter. The event subscription will return only events generated by the
16775	// specified objects. If not specified, then events are returned for all objects
16776	// within the source type specified.
16777	//
16778	// Example: my-cluster-1, my-cluster-2
16779	//
16780	// Example: my-snapshot-20131010
16781	SourceIds []*string `locationNameList:"SourceId" type:"list"`
16782
16783	// The type of source that will be generating the events. For example, if you
16784	// want to be notified of events generated by a cluster, you would set this
16785	// parameter to cluster. If this value is not specified, events are returned
16786	// for all Amazon Redshift objects in your Amazon Web Services account. You
16787	// must specify a source type in order to specify source IDs.
16788	//
16789	// Valid values: cluster, cluster-parameter-group, cluster-security-group, cluster-snapshot,
16790	// and scheduled-action.
16791	SourceType *string `type:"string"`
16792
16793	// The name of the event subscription to be created.
16794	//
16795	// Constraints:
16796	//
16797	//    * Cannot be null, empty, or blank.
16798	//
16799	//    * Must contain from 1 to 255 alphanumeric characters or hyphens.
16800	//
16801	//    * First character must be a letter.
16802	//
16803	//    * Cannot end with a hyphen or contain two consecutive hyphens.
16804	//
16805	// SubscriptionName is a required field
16806	SubscriptionName *string `type:"string" required:"true"`
16807
16808	// A list of tag instances.
16809	Tags []*Tag `locationNameList:"Tag" type:"list"`
16810}
16811
16812// String returns the string representation.
16813//
16814// API parameter values that are decorated as "sensitive" in the API will not
16815// be included in the string output. The member name will be present, but the
16816// value will be replaced with "sensitive".
16817func (s CreateEventSubscriptionInput) String() string {
16818	return awsutil.Prettify(s)
16819}
16820
16821// GoString returns the string representation.
16822//
16823// API parameter values that are decorated as "sensitive" in the API will not
16824// be included in the string output. The member name will be present, but the
16825// value will be replaced with "sensitive".
16826func (s CreateEventSubscriptionInput) GoString() string {
16827	return s.String()
16828}
16829
16830// Validate inspects the fields of the type to determine if they are valid.
16831func (s *CreateEventSubscriptionInput) Validate() error {
16832	invalidParams := request.ErrInvalidParams{Context: "CreateEventSubscriptionInput"}
16833	if s.SnsTopicArn == nil {
16834		invalidParams.Add(request.NewErrParamRequired("SnsTopicArn"))
16835	}
16836	if s.SubscriptionName == nil {
16837		invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
16838	}
16839
16840	if invalidParams.Len() > 0 {
16841		return invalidParams
16842	}
16843	return nil
16844}
16845
16846// SetEnabled sets the Enabled field's value.
16847func (s *CreateEventSubscriptionInput) SetEnabled(v bool) *CreateEventSubscriptionInput {
16848	s.Enabled = &v
16849	return s
16850}
16851
16852// SetEventCategories sets the EventCategories field's value.
16853func (s *CreateEventSubscriptionInput) SetEventCategories(v []*string) *CreateEventSubscriptionInput {
16854	s.EventCategories = v
16855	return s
16856}
16857
16858// SetSeverity sets the Severity field's value.
16859func (s *CreateEventSubscriptionInput) SetSeverity(v string) *CreateEventSubscriptionInput {
16860	s.Severity = &v
16861	return s
16862}
16863
16864// SetSnsTopicArn sets the SnsTopicArn field's value.
16865func (s *CreateEventSubscriptionInput) SetSnsTopicArn(v string) *CreateEventSubscriptionInput {
16866	s.SnsTopicArn = &v
16867	return s
16868}
16869
16870// SetSourceIds sets the SourceIds field's value.
16871func (s *CreateEventSubscriptionInput) SetSourceIds(v []*string) *CreateEventSubscriptionInput {
16872	s.SourceIds = v
16873	return s
16874}
16875
16876// SetSourceType sets the SourceType field's value.
16877func (s *CreateEventSubscriptionInput) SetSourceType(v string) *CreateEventSubscriptionInput {
16878	s.SourceType = &v
16879	return s
16880}
16881
16882// SetSubscriptionName sets the SubscriptionName field's value.
16883func (s *CreateEventSubscriptionInput) SetSubscriptionName(v string) *CreateEventSubscriptionInput {
16884	s.SubscriptionName = &v
16885	return s
16886}
16887
16888// SetTags sets the Tags field's value.
16889func (s *CreateEventSubscriptionInput) SetTags(v []*Tag) *CreateEventSubscriptionInput {
16890	s.Tags = v
16891	return s
16892}
16893
16894type CreateEventSubscriptionOutput struct {
16895	_ struct{} `type:"structure"`
16896
16897	// Describes event subscriptions.
16898	EventSubscription *EventSubscription `type:"structure"`
16899}
16900
16901// String returns the string representation.
16902//
16903// API parameter values that are decorated as "sensitive" in the API will not
16904// be included in the string output. The member name will be present, but the
16905// value will be replaced with "sensitive".
16906func (s CreateEventSubscriptionOutput) String() string {
16907	return awsutil.Prettify(s)
16908}
16909
16910// GoString returns the string representation.
16911//
16912// API parameter values that are decorated as "sensitive" in the API will not
16913// be included in the string output. The member name will be present, but the
16914// value will be replaced with "sensitive".
16915func (s CreateEventSubscriptionOutput) GoString() string {
16916	return s.String()
16917}
16918
16919// SetEventSubscription sets the EventSubscription field's value.
16920func (s *CreateEventSubscriptionOutput) SetEventSubscription(v *EventSubscription) *CreateEventSubscriptionOutput {
16921	s.EventSubscription = v
16922	return s
16923}
16924
16925type CreateHsmClientCertificateInput struct {
16926	_ struct{} `type:"structure"`
16927
16928	// The identifier to be assigned to the new HSM client certificate that the
16929	// cluster will use to connect to the HSM to use the database encryption keys.
16930	//
16931	// HsmClientCertificateIdentifier is a required field
16932	HsmClientCertificateIdentifier *string `type:"string" required:"true"`
16933
16934	// A list of tag instances.
16935	Tags []*Tag `locationNameList:"Tag" type:"list"`
16936}
16937
16938// String returns the string representation.
16939//
16940// API parameter values that are decorated as "sensitive" in the API will not
16941// be included in the string output. The member name will be present, but the
16942// value will be replaced with "sensitive".
16943func (s CreateHsmClientCertificateInput) String() string {
16944	return awsutil.Prettify(s)
16945}
16946
16947// GoString returns the string representation.
16948//
16949// API parameter values that are decorated as "sensitive" in the API will not
16950// be included in the string output. The member name will be present, but the
16951// value will be replaced with "sensitive".
16952func (s CreateHsmClientCertificateInput) GoString() string {
16953	return s.String()
16954}
16955
16956// Validate inspects the fields of the type to determine if they are valid.
16957func (s *CreateHsmClientCertificateInput) Validate() error {
16958	invalidParams := request.ErrInvalidParams{Context: "CreateHsmClientCertificateInput"}
16959	if s.HsmClientCertificateIdentifier == nil {
16960		invalidParams.Add(request.NewErrParamRequired("HsmClientCertificateIdentifier"))
16961	}
16962
16963	if invalidParams.Len() > 0 {
16964		return invalidParams
16965	}
16966	return nil
16967}
16968
16969// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
16970func (s *CreateHsmClientCertificateInput) SetHsmClientCertificateIdentifier(v string) *CreateHsmClientCertificateInput {
16971	s.HsmClientCertificateIdentifier = &v
16972	return s
16973}
16974
16975// SetTags sets the Tags field's value.
16976func (s *CreateHsmClientCertificateInput) SetTags(v []*Tag) *CreateHsmClientCertificateInput {
16977	s.Tags = v
16978	return s
16979}
16980
16981type CreateHsmClientCertificateOutput struct {
16982	_ struct{} `type:"structure"`
16983
16984	// Returns information about an HSM client certificate. The certificate is stored
16985	// in a secure Hardware Storage Module (HSM), and used by the Amazon Redshift
16986	// cluster to encrypt data files.
16987	HsmClientCertificate *HsmClientCertificate `type:"structure"`
16988}
16989
16990// String returns the string representation.
16991//
16992// API parameter values that are decorated as "sensitive" in the API will not
16993// be included in the string output. The member name will be present, but the
16994// value will be replaced with "sensitive".
16995func (s CreateHsmClientCertificateOutput) String() string {
16996	return awsutil.Prettify(s)
16997}
16998
16999// GoString returns the string representation.
17000//
17001// API parameter values that are decorated as "sensitive" in the API will not
17002// be included in the string output. The member name will be present, but the
17003// value will be replaced with "sensitive".
17004func (s CreateHsmClientCertificateOutput) GoString() string {
17005	return s.String()
17006}
17007
17008// SetHsmClientCertificate sets the HsmClientCertificate field's value.
17009func (s *CreateHsmClientCertificateOutput) SetHsmClientCertificate(v *HsmClientCertificate) *CreateHsmClientCertificateOutput {
17010	s.HsmClientCertificate = v
17011	return s
17012}
17013
17014type CreateHsmConfigurationInput struct {
17015	_ struct{} `type:"structure"`
17016
17017	// A text description of the HSM configuration to be created.
17018	//
17019	// Description is a required field
17020	Description *string `type:"string" required:"true"`
17021
17022	// The identifier to be assigned to the new Amazon Redshift HSM configuration.
17023	//
17024	// HsmConfigurationIdentifier is a required field
17025	HsmConfigurationIdentifier *string `type:"string" required:"true"`
17026
17027	// The IP address that the Amazon Redshift cluster must use to access the HSM.
17028	//
17029	// HsmIpAddress is a required field
17030	HsmIpAddress *string `type:"string" required:"true"`
17031
17032	// The name of the partition in the HSM where the Amazon Redshift clusters will
17033	// store their database encryption keys.
17034	//
17035	// HsmPartitionName is a required field
17036	HsmPartitionName *string `type:"string" required:"true"`
17037
17038	// The password required to access the HSM partition.
17039	//
17040	// HsmPartitionPassword is a required field
17041	HsmPartitionPassword *string `type:"string" required:"true"`
17042
17043	// The HSMs public certificate file. When using Cloud HSM, the file name is
17044	// server.pem.
17045	//
17046	// HsmServerPublicCertificate is a required field
17047	HsmServerPublicCertificate *string `type:"string" required:"true"`
17048
17049	// A list of tag instances.
17050	Tags []*Tag `locationNameList:"Tag" type:"list"`
17051}
17052
17053// String returns the string representation.
17054//
17055// API parameter values that are decorated as "sensitive" in the API will not
17056// be included in the string output. The member name will be present, but the
17057// value will be replaced with "sensitive".
17058func (s CreateHsmConfigurationInput) String() string {
17059	return awsutil.Prettify(s)
17060}
17061
17062// GoString returns the string representation.
17063//
17064// API parameter values that are decorated as "sensitive" in the API will not
17065// be included in the string output. The member name will be present, but the
17066// value will be replaced with "sensitive".
17067func (s CreateHsmConfigurationInput) GoString() string {
17068	return s.String()
17069}
17070
17071// Validate inspects the fields of the type to determine if they are valid.
17072func (s *CreateHsmConfigurationInput) Validate() error {
17073	invalidParams := request.ErrInvalidParams{Context: "CreateHsmConfigurationInput"}
17074	if s.Description == nil {
17075		invalidParams.Add(request.NewErrParamRequired("Description"))
17076	}
17077	if s.HsmConfigurationIdentifier == nil {
17078		invalidParams.Add(request.NewErrParamRequired("HsmConfigurationIdentifier"))
17079	}
17080	if s.HsmIpAddress == nil {
17081		invalidParams.Add(request.NewErrParamRequired("HsmIpAddress"))
17082	}
17083	if s.HsmPartitionName == nil {
17084		invalidParams.Add(request.NewErrParamRequired("HsmPartitionName"))
17085	}
17086	if s.HsmPartitionPassword == nil {
17087		invalidParams.Add(request.NewErrParamRequired("HsmPartitionPassword"))
17088	}
17089	if s.HsmServerPublicCertificate == nil {
17090		invalidParams.Add(request.NewErrParamRequired("HsmServerPublicCertificate"))
17091	}
17092
17093	if invalidParams.Len() > 0 {
17094		return invalidParams
17095	}
17096	return nil
17097}
17098
17099// SetDescription sets the Description field's value.
17100func (s *CreateHsmConfigurationInput) SetDescription(v string) *CreateHsmConfigurationInput {
17101	s.Description = &v
17102	return s
17103}
17104
17105// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
17106func (s *CreateHsmConfigurationInput) SetHsmConfigurationIdentifier(v string) *CreateHsmConfigurationInput {
17107	s.HsmConfigurationIdentifier = &v
17108	return s
17109}
17110
17111// SetHsmIpAddress sets the HsmIpAddress field's value.
17112func (s *CreateHsmConfigurationInput) SetHsmIpAddress(v string) *CreateHsmConfigurationInput {
17113	s.HsmIpAddress = &v
17114	return s
17115}
17116
17117// SetHsmPartitionName sets the HsmPartitionName field's value.
17118func (s *CreateHsmConfigurationInput) SetHsmPartitionName(v string) *CreateHsmConfigurationInput {
17119	s.HsmPartitionName = &v
17120	return s
17121}
17122
17123// SetHsmPartitionPassword sets the HsmPartitionPassword field's value.
17124func (s *CreateHsmConfigurationInput) SetHsmPartitionPassword(v string) *CreateHsmConfigurationInput {
17125	s.HsmPartitionPassword = &v
17126	return s
17127}
17128
17129// SetHsmServerPublicCertificate sets the HsmServerPublicCertificate field's value.
17130func (s *CreateHsmConfigurationInput) SetHsmServerPublicCertificate(v string) *CreateHsmConfigurationInput {
17131	s.HsmServerPublicCertificate = &v
17132	return s
17133}
17134
17135// SetTags sets the Tags field's value.
17136func (s *CreateHsmConfigurationInput) SetTags(v []*Tag) *CreateHsmConfigurationInput {
17137	s.Tags = v
17138	return s
17139}
17140
17141type CreateHsmConfigurationOutput struct {
17142	_ struct{} `type:"structure"`
17143
17144	// Returns information about an HSM configuration, which is an object that describes
17145	// to Amazon Redshift clusters the information they require to connect to an
17146	// HSM where they can store database encryption keys.
17147	HsmConfiguration *HsmConfiguration `type:"structure"`
17148}
17149
17150// String returns the string representation.
17151//
17152// API parameter values that are decorated as "sensitive" in the API will not
17153// be included in the string output. The member name will be present, but the
17154// value will be replaced with "sensitive".
17155func (s CreateHsmConfigurationOutput) String() string {
17156	return awsutil.Prettify(s)
17157}
17158
17159// GoString returns the string representation.
17160//
17161// API parameter values that are decorated as "sensitive" in the API will not
17162// be included in the string output. The member name will be present, but the
17163// value will be replaced with "sensitive".
17164func (s CreateHsmConfigurationOutput) GoString() string {
17165	return s.String()
17166}
17167
17168// SetHsmConfiguration sets the HsmConfiguration field's value.
17169func (s *CreateHsmConfigurationOutput) SetHsmConfiguration(v *HsmConfiguration) *CreateHsmConfigurationOutput {
17170	s.HsmConfiguration = v
17171	return s
17172}
17173
17174type CreateScheduledActionInput struct {
17175	_ struct{} `type:"structure"`
17176
17177	// If true, the schedule is enabled. If false, the scheduled action does not
17178	// trigger. For more information about state of the scheduled action, see ScheduledAction.
17179	Enable *bool `type:"boolean"`
17180
17181	// The end time in UTC of the scheduled action. After this time, the scheduled
17182	// action does not trigger. For more information about this parameter, see ScheduledAction.
17183	EndTime *time.Time `type:"timestamp"`
17184
17185	// The IAM role to assume to run the target action. For more information about
17186	// this parameter, see ScheduledAction.
17187	//
17188	// IamRole is a required field
17189	IamRole *string `type:"string" required:"true"`
17190
17191	// The schedule in at( ) or cron( ) format. For more information about this
17192	// parameter, see ScheduledAction.
17193	//
17194	// Schedule is a required field
17195	Schedule *string `type:"string" required:"true"`
17196
17197	// The description of the scheduled action.
17198	ScheduledActionDescription *string `type:"string"`
17199
17200	// The name of the scheduled action. The name must be unique within an account.
17201	// For more information about this parameter, see ScheduledAction.
17202	//
17203	// ScheduledActionName is a required field
17204	ScheduledActionName *string `type:"string" required:"true"`
17205
17206	// The start time in UTC of the scheduled action. Before this time, the scheduled
17207	// action does not trigger. For more information about this parameter, see ScheduledAction.
17208	StartTime *time.Time `type:"timestamp"`
17209
17210	// A JSON format string of the Amazon Redshift API operation with input parameters.
17211	// For more information about this parameter, see ScheduledAction.
17212	//
17213	// TargetAction is a required field
17214	TargetAction *ScheduledActionType `type:"structure" required:"true"`
17215}
17216
17217// String returns the string representation.
17218//
17219// API parameter values that are decorated as "sensitive" in the API will not
17220// be included in the string output. The member name will be present, but the
17221// value will be replaced with "sensitive".
17222func (s CreateScheduledActionInput) String() string {
17223	return awsutil.Prettify(s)
17224}
17225
17226// GoString returns the string representation.
17227//
17228// API parameter values that are decorated as "sensitive" in the API will not
17229// be included in the string output. The member name will be present, but the
17230// value will be replaced with "sensitive".
17231func (s CreateScheduledActionInput) GoString() string {
17232	return s.String()
17233}
17234
17235// Validate inspects the fields of the type to determine if they are valid.
17236func (s *CreateScheduledActionInput) Validate() error {
17237	invalidParams := request.ErrInvalidParams{Context: "CreateScheduledActionInput"}
17238	if s.IamRole == nil {
17239		invalidParams.Add(request.NewErrParamRequired("IamRole"))
17240	}
17241	if s.Schedule == nil {
17242		invalidParams.Add(request.NewErrParamRequired("Schedule"))
17243	}
17244	if s.ScheduledActionName == nil {
17245		invalidParams.Add(request.NewErrParamRequired("ScheduledActionName"))
17246	}
17247	if s.TargetAction == nil {
17248		invalidParams.Add(request.NewErrParamRequired("TargetAction"))
17249	}
17250	if s.TargetAction != nil {
17251		if err := s.TargetAction.Validate(); err != nil {
17252			invalidParams.AddNested("TargetAction", err.(request.ErrInvalidParams))
17253		}
17254	}
17255
17256	if invalidParams.Len() > 0 {
17257		return invalidParams
17258	}
17259	return nil
17260}
17261
17262// SetEnable sets the Enable field's value.
17263func (s *CreateScheduledActionInput) SetEnable(v bool) *CreateScheduledActionInput {
17264	s.Enable = &v
17265	return s
17266}
17267
17268// SetEndTime sets the EndTime field's value.
17269func (s *CreateScheduledActionInput) SetEndTime(v time.Time) *CreateScheduledActionInput {
17270	s.EndTime = &v
17271	return s
17272}
17273
17274// SetIamRole sets the IamRole field's value.
17275func (s *CreateScheduledActionInput) SetIamRole(v string) *CreateScheduledActionInput {
17276	s.IamRole = &v
17277	return s
17278}
17279
17280// SetSchedule sets the Schedule field's value.
17281func (s *CreateScheduledActionInput) SetSchedule(v string) *CreateScheduledActionInput {
17282	s.Schedule = &v
17283	return s
17284}
17285
17286// SetScheduledActionDescription sets the ScheduledActionDescription field's value.
17287func (s *CreateScheduledActionInput) SetScheduledActionDescription(v string) *CreateScheduledActionInput {
17288	s.ScheduledActionDescription = &v
17289	return s
17290}
17291
17292// SetScheduledActionName sets the ScheduledActionName field's value.
17293func (s *CreateScheduledActionInput) SetScheduledActionName(v string) *CreateScheduledActionInput {
17294	s.ScheduledActionName = &v
17295	return s
17296}
17297
17298// SetStartTime sets the StartTime field's value.
17299func (s *CreateScheduledActionInput) SetStartTime(v time.Time) *CreateScheduledActionInput {
17300	s.StartTime = &v
17301	return s
17302}
17303
17304// SetTargetAction sets the TargetAction field's value.
17305func (s *CreateScheduledActionInput) SetTargetAction(v *ScheduledActionType) *CreateScheduledActionInput {
17306	s.TargetAction = v
17307	return s
17308}
17309
17310// Describes a scheduled action. You can use a scheduled action to trigger some
17311// Amazon Redshift API operations on a schedule. For information about which
17312// API operations can be scheduled, see ScheduledActionType.
17313type CreateScheduledActionOutput struct {
17314	_ struct{} `type:"structure"`
17315
17316	// The end time in UTC when the schedule is no longer active. After this time,
17317	// the scheduled action does not trigger.
17318	EndTime *time.Time `type:"timestamp"`
17319
17320	// The IAM role to assume to run the scheduled action. This IAM role must have
17321	// permission to run the Amazon Redshift API operation in the scheduled action.
17322	// This IAM role must allow the Amazon Redshift scheduler (Principal scheduler.redshift.amazonaws.com)
17323	// to assume permissions on your behalf. For more information about the IAM
17324	// role to use with the Amazon Redshift scheduler, see Using Identity-Based
17325	// Policies for Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html)
17326	// in the Amazon Redshift Cluster Management Guide.
17327	IamRole *string `type:"string"`
17328
17329	// List of times when the scheduled action will run.
17330	NextInvocations []*time.Time `locationNameList:"ScheduledActionTime" type:"list"`
17331
17332	// The schedule for a one-time (at format) or recurring (cron format) scheduled
17333	// action. Schedule invocations must be separated by at least one hour.
17334	//
17335	// Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)".
17336	//
17337	// Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week
17338	// Year)". For example, "cron(0 10 ? * MON *)". For more information, see Cron
17339	// Expressions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions)
17340	// in the Amazon CloudWatch Events User Guide.
17341	Schedule *string `type:"string"`
17342
17343	// The description of the scheduled action.
17344	ScheduledActionDescription *string `type:"string"`
17345
17346	// The name of the scheduled action.
17347	ScheduledActionName *string `type:"string"`
17348
17349	// The start time in UTC when the schedule is active. Before this time, the
17350	// scheduled action does not trigger.
17351	StartTime *time.Time `type:"timestamp"`
17352
17353	// The state of the scheduled action. For example, DISABLED.
17354	State *string `type:"string" enum:"ScheduledActionState"`
17355
17356	// A JSON format string of the Amazon Redshift API operation with input parameters.
17357	//
17358	// "{\"ResizeCluster\":{\"NodeType\":\"ds2.8xlarge\",\"ClusterIdentifier\":\"my-test-cluster\",\"NumberOfNodes\":3}}".
17359	TargetAction *ScheduledActionType `type:"structure"`
17360}
17361
17362// String returns the string representation.
17363//
17364// API parameter values that are decorated as "sensitive" in the API will not
17365// be included in the string output. The member name will be present, but the
17366// value will be replaced with "sensitive".
17367func (s CreateScheduledActionOutput) String() string {
17368	return awsutil.Prettify(s)
17369}
17370
17371// GoString returns the string representation.
17372//
17373// API parameter values that are decorated as "sensitive" in the API will not
17374// be included in the string output. The member name will be present, but the
17375// value will be replaced with "sensitive".
17376func (s CreateScheduledActionOutput) GoString() string {
17377	return s.String()
17378}
17379
17380// SetEndTime sets the EndTime field's value.
17381func (s *CreateScheduledActionOutput) SetEndTime(v time.Time) *CreateScheduledActionOutput {
17382	s.EndTime = &v
17383	return s
17384}
17385
17386// SetIamRole sets the IamRole field's value.
17387func (s *CreateScheduledActionOutput) SetIamRole(v string) *CreateScheduledActionOutput {
17388	s.IamRole = &v
17389	return s
17390}
17391
17392// SetNextInvocations sets the NextInvocations field's value.
17393func (s *CreateScheduledActionOutput) SetNextInvocations(v []*time.Time) *CreateScheduledActionOutput {
17394	s.NextInvocations = v
17395	return s
17396}
17397
17398// SetSchedule sets the Schedule field's value.
17399func (s *CreateScheduledActionOutput) SetSchedule(v string) *CreateScheduledActionOutput {
17400	s.Schedule = &v
17401	return s
17402}
17403
17404// SetScheduledActionDescription sets the ScheduledActionDescription field's value.
17405func (s *CreateScheduledActionOutput) SetScheduledActionDescription(v string) *CreateScheduledActionOutput {
17406	s.ScheduledActionDescription = &v
17407	return s
17408}
17409
17410// SetScheduledActionName sets the ScheduledActionName field's value.
17411func (s *CreateScheduledActionOutput) SetScheduledActionName(v string) *CreateScheduledActionOutput {
17412	s.ScheduledActionName = &v
17413	return s
17414}
17415
17416// SetStartTime sets the StartTime field's value.
17417func (s *CreateScheduledActionOutput) SetStartTime(v time.Time) *CreateScheduledActionOutput {
17418	s.StartTime = &v
17419	return s
17420}
17421
17422// SetState sets the State field's value.
17423func (s *CreateScheduledActionOutput) SetState(v string) *CreateScheduledActionOutput {
17424	s.State = &v
17425	return s
17426}
17427
17428// SetTargetAction sets the TargetAction field's value.
17429func (s *CreateScheduledActionOutput) SetTargetAction(v *ScheduledActionType) *CreateScheduledActionOutput {
17430	s.TargetAction = v
17431	return s
17432}
17433
17434// The result of the CreateSnapshotCopyGrant action.
17435type CreateSnapshotCopyGrantInput struct {
17436	_ struct{} `type:"structure"`
17437
17438	// The unique identifier of the customer master key (CMK) to which to grant
17439	// Amazon Redshift permission. If no key is specified, the default key is used.
17440	KmsKeyId *string `type:"string"`
17441
17442	// The name of the snapshot copy grant. This name must be unique in the region
17443	// for the Amazon Web Services account.
17444	//
17445	// Constraints:
17446	//
17447	//    * Must contain from 1 to 63 alphanumeric characters or hyphens.
17448	//
17449	//    * Alphabetic characters must be lowercase.
17450	//
17451	//    * First character must be a letter.
17452	//
17453	//    * Cannot end with a hyphen or contain two consecutive hyphens.
17454	//
17455	//    * Must be unique for all clusters within an Amazon Web Services account.
17456	//
17457	// SnapshotCopyGrantName is a required field
17458	SnapshotCopyGrantName *string `type:"string" required:"true"`
17459
17460	// A list of tag instances.
17461	Tags []*Tag `locationNameList:"Tag" type:"list"`
17462}
17463
17464// String returns the string representation.
17465//
17466// API parameter values that are decorated as "sensitive" in the API will not
17467// be included in the string output. The member name will be present, but the
17468// value will be replaced with "sensitive".
17469func (s CreateSnapshotCopyGrantInput) String() string {
17470	return awsutil.Prettify(s)
17471}
17472
17473// GoString returns the string representation.
17474//
17475// API parameter values that are decorated as "sensitive" in the API will not
17476// be included in the string output. The member name will be present, but the
17477// value will be replaced with "sensitive".
17478func (s CreateSnapshotCopyGrantInput) GoString() string {
17479	return s.String()
17480}
17481
17482// Validate inspects the fields of the type to determine if they are valid.
17483func (s *CreateSnapshotCopyGrantInput) Validate() error {
17484	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotCopyGrantInput"}
17485	if s.SnapshotCopyGrantName == nil {
17486		invalidParams.Add(request.NewErrParamRequired("SnapshotCopyGrantName"))
17487	}
17488
17489	if invalidParams.Len() > 0 {
17490		return invalidParams
17491	}
17492	return nil
17493}
17494
17495// SetKmsKeyId sets the KmsKeyId field's value.
17496func (s *CreateSnapshotCopyGrantInput) SetKmsKeyId(v string) *CreateSnapshotCopyGrantInput {
17497	s.KmsKeyId = &v
17498	return s
17499}
17500
17501// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
17502func (s *CreateSnapshotCopyGrantInput) SetSnapshotCopyGrantName(v string) *CreateSnapshotCopyGrantInput {
17503	s.SnapshotCopyGrantName = &v
17504	return s
17505}
17506
17507// SetTags sets the Tags field's value.
17508func (s *CreateSnapshotCopyGrantInput) SetTags(v []*Tag) *CreateSnapshotCopyGrantInput {
17509	s.Tags = v
17510	return s
17511}
17512
17513type CreateSnapshotCopyGrantOutput struct {
17514	_ struct{} `type:"structure"`
17515
17516	// The snapshot copy grant that grants Amazon Redshift permission to encrypt
17517	// copied snapshots with the specified customer master key (CMK) from Amazon
17518	// Web Services KMS in the destination region.
17519	//
17520	// For more information about managing snapshot copy grants, go to Amazon Redshift
17521	// Database Encryption (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
17522	// in the Amazon Redshift Cluster Management Guide.
17523	SnapshotCopyGrant *SnapshotCopyGrant `type:"structure"`
17524}
17525
17526// String returns the string representation.
17527//
17528// API parameter values that are decorated as "sensitive" in the API will not
17529// be included in the string output. The member name will be present, but the
17530// value will be replaced with "sensitive".
17531func (s CreateSnapshotCopyGrantOutput) String() string {
17532	return awsutil.Prettify(s)
17533}
17534
17535// GoString returns the string representation.
17536//
17537// API parameter values that are decorated as "sensitive" in the API will not
17538// be included in the string output. The member name will be present, but the
17539// value will be replaced with "sensitive".
17540func (s CreateSnapshotCopyGrantOutput) GoString() string {
17541	return s.String()
17542}
17543
17544// SetSnapshotCopyGrant sets the SnapshotCopyGrant field's value.
17545func (s *CreateSnapshotCopyGrantOutput) SetSnapshotCopyGrant(v *SnapshotCopyGrant) *CreateSnapshotCopyGrantOutput {
17546	s.SnapshotCopyGrant = v
17547	return s
17548}
17549
17550type CreateSnapshotScheduleInput struct {
17551	_ struct{} `type:"structure"`
17552
17553	DryRun *bool `type:"boolean"`
17554
17555	NextInvocations *int64 `type:"integer"`
17556
17557	// The definition of the snapshot schedule. The definition is made up of schedule
17558	// expressions, for example "cron(30 12 *)" or "rate(12 hours)".
17559	ScheduleDefinitions []*string `locationNameList:"ScheduleDefinition" type:"list"`
17560
17561	// The description of the snapshot schedule.
17562	ScheduleDescription *string `type:"string"`
17563
17564	// A unique identifier for a snapshot schedule. Only alphanumeric characters
17565	// are allowed for the identifier.
17566	ScheduleIdentifier *string `type:"string"`
17567
17568	// An optional set of tags you can use to search for the schedule.
17569	Tags []*Tag `locationNameList:"Tag" type:"list"`
17570}
17571
17572// String returns the string representation.
17573//
17574// API parameter values that are decorated as "sensitive" in the API will not
17575// be included in the string output. The member name will be present, but the
17576// value will be replaced with "sensitive".
17577func (s CreateSnapshotScheduleInput) String() string {
17578	return awsutil.Prettify(s)
17579}
17580
17581// GoString returns the string representation.
17582//
17583// API parameter values that are decorated as "sensitive" in the API will not
17584// be included in the string output. The member name will be present, but the
17585// value will be replaced with "sensitive".
17586func (s CreateSnapshotScheduleInput) GoString() string {
17587	return s.String()
17588}
17589
17590// SetDryRun sets the DryRun field's value.
17591func (s *CreateSnapshotScheduleInput) SetDryRun(v bool) *CreateSnapshotScheduleInput {
17592	s.DryRun = &v
17593	return s
17594}
17595
17596// SetNextInvocations sets the NextInvocations field's value.
17597func (s *CreateSnapshotScheduleInput) SetNextInvocations(v int64) *CreateSnapshotScheduleInput {
17598	s.NextInvocations = &v
17599	return s
17600}
17601
17602// SetScheduleDefinitions sets the ScheduleDefinitions field's value.
17603func (s *CreateSnapshotScheduleInput) SetScheduleDefinitions(v []*string) *CreateSnapshotScheduleInput {
17604	s.ScheduleDefinitions = v
17605	return s
17606}
17607
17608// SetScheduleDescription sets the ScheduleDescription field's value.
17609func (s *CreateSnapshotScheduleInput) SetScheduleDescription(v string) *CreateSnapshotScheduleInput {
17610	s.ScheduleDescription = &v
17611	return s
17612}
17613
17614// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
17615func (s *CreateSnapshotScheduleInput) SetScheduleIdentifier(v string) *CreateSnapshotScheduleInput {
17616	s.ScheduleIdentifier = &v
17617	return s
17618}
17619
17620// SetTags sets the Tags field's value.
17621func (s *CreateSnapshotScheduleInput) SetTags(v []*Tag) *CreateSnapshotScheduleInput {
17622	s.Tags = v
17623	return s
17624}
17625
17626// Describes a snapshot schedule. You can set a regular interval for creating
17627// snapshots of a cluster. You can also schedule snapshots for specific dates.
17628type CreateSnapshotScheduleOutput struct {
17629	_ struct{} `type:"structure"`
17630
17631	// The number of clusters associated with the schedule.
17632	AssociatedClusterCount *int64 `type:"integer"`
17633
17634	// A list of clusters associated with the schedule. A maximum of 100 clusters
17635	// is returned.
17636	AssociatedClusters []*ClusterAssociatedToSchedule `locationNameList:"ClusterAssociatedToSchedule" type:"list"`
17637
17638	NextInvocations []*time.Time `locationNameList:"SnapshotTime" type:"list"`
17639
17640	// A list of ScheduleDefinitions.
17641	ScheduleDefinitions []*string `locationNameList:"ScheduleDefinition" type:"list"`
17642
17643	// The description of the schedule.
17644	ScheduleDescription *string `type:"string"`
17645
17646	// A unique identifier for the schedule.
17647	ScheduleIdentifier *string `type:"string"`
17648
17649	// An optional set of tags describing the schedule.
17650	Tags []*Tag `locationNameList:"Tag" type:"list"`
17651}
17652
17653// String returns the string representation.
17654//
17655// API parameter values that are decorated as "sensitive" in the API will not
17656// be included in the string output. The member name will be present, but the
17657// value will be replaced with "sensitive".
17658func (s CreateSnapshotScheduleOutput) String() string {
17659	return awsutil.Prettify(s)
17660}
17661
17662// GoString returns the string representation.
17663//
17664// API parameter values that are decorated as "sensitive" in the API will not
17665// be included in the string output. The member name will be present, but the
17666// value will be replaced with "sensitive".
17667func (s CreateSnapshotScheduleOutput) GoString() string {
17668	return s.String()
17669}
17670
17671// SetAssociatedClusterCount sets the AssociatedClusterCount field's value.
17672func (s *CreateSnapshotScheduleOutput) SetAssociatedClusterCount(v int64) *CreateSnapshotScheduleOutput {
17673	s.AssociatedClusterCount = &v
17674	return s
17675}
17676
17677// SetAssociatedClusters sets the AssociatedClusters field's value.
17678func (s *CreateSnapshotScheduleOutput) SetAssociatedClusters(v []*ClusterAssociatedToSchedule) *CreateSnapshotScheduleOutput {
17679	s.AssociatedClusters = v
17680	return s
17681}
17682
17683// SetNextInvocations sets the NextInvocations field's value.
17684func (s *CreateSnapshotScheduleOutput) SetNextInvocations(v []*time.Time) *CreateSnapshotScheduleOutput {
17685	s.NextInvocations = v
17686	return s
17687}
17688
17689// SetScheduleDefinitions sets the ScheduleDefinitions field's value.
17690func (s *CreateSnapshotScheduleOutput) SetScheduleDefinitions(v []*string) *CreateSnapshotScheduleOutput {
17691	s.ScheduleDefinitions = v
17692	return s
17693}
17694
17695// SetScheduleDescription sets the ScheduleDescription field's value.
17696func (s *CreateSnapshotScheduleOutput) SetScheduleDescription(v string) *CreateSnapshotScheduleOutput {
17697	s.ScheduleDescription = &v
17698	return s
17699}
17700
17701// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
17702func (s *CreateSnapshotScheduleOutput) SetScheduleIdentifier(v string) *CreateSnapshotScheduleOutput {
17703	s.ScheduleIdentifier = &v
17704	return s
17705}
17706
17707// SetTags sets the Tags field's value.
17708func (s *CreateSnapshotScheduleOutput) SetTags(v []*Tag) *CreateSnapshotScheduleOutput {
17709	s.Tags = v
17710	return s
17711}
17712
17713// Contains the output from the CreateTags action.
17714type CreateTagsInput struct {
17715	_ struct{} `type:"structure"`
17716
17717	// The Amazon Resource Name (ARN) to which you want to add the tag or tags.
17718	// For example, arn:aws:redshift:us-east-2:123456789:cluster:t1.
17719	//
17720	// ResourceName is a required field
17721	ResourceName *string `type:"string" required:"true"`
17722
17723	// One or more name/value pairs to add as tags to the specified resource. Each
17724	// tag name is passed in with the parameter Key and the corresponding value
17725	// is passed in with the parameter Value. The Key and Value parameters are separated
17726	// by a comma (,). Separate multiple tags with a space. For example, --tags
17727	// "Key"="owner","Value"="admin" "Key"="environment","Value"="test" "Key"="version","Value"="1.0".
17728	//
17729	// Tags is a required field
17730	Tags []*Tag `locationNameList:"Tag" type:"list" required:"true"`
17731}
17732
17733// String returns the string representation.
17734//
17735// API parameter values that are decorated as "sensitive" in the API will not
17736// be included in the string output. The member name will be present, but the
17737// value will be replaced with "sensitive".
17738func (s CreateTagsInput) String() string {
17739	return awsutil.Prettify(s)
17740}
17741
17742// GoString returns the string representation.
17743//
17744// API parameter values that are decorated as "sensitive" in the API will not
17745// be included in the string output. The member name will be present, but the
17746// value will be replaced with "sensitive".
17747func (s CreateTagsInput) GoString() string {
17748	return s.String()
17749}
17750
17751// Validate inspects the fields of the type to determine if they are valid.
17752func (s *CreateTagsInput) Validate() error {
17753	invalidParams := request.ErrInvalidParams{Context: "CreateTagsInput"}
17754	if s.ResourceName == nil {
17755		invalidParams.Add(request.NewErrParamRequired("ResourceName"))
17756	}
17757	if s.Tags == nil {
17758		invalidParams.Add(request.NewErrParamRequired("Tags"))
17759	}
17760
17761	if invalidParams.Len() > 0 {
17762		return invalidParams
17763	}
17764	return nil
17765}
17766
17767// SetResourceName sets the ResourceName field's value.
17768func (s *CreateTagsInput) SetResourceName(v string) *CreateTagsInput {
17769	s.ResourceName = &v
17770	return s
17771}
17772
17773// SetTags sets the Tags field's value.
17774func (s *CreateTagsInput) SetTags(v []*Tag) *CreateTagsInput {
17775	s.Tags = v
17776	return s
17777}
17778
17779type CreateTagsOutput struct {
17780	_ struct{} `type:"structure"`
17781}
17782
17783// String returns the string representation.
17784//
17785// API parameter values that are decorated as "sensitive" in the API will not
17786// be included in the string output. The member name will be present, but the
17787// value will be replaced with "sensitive".
17788func (s CreateTagsOutput) String() string {
17789	return awsutil.Prettify(s)
17790}
17791
17792// GoString returns the string representation.
17793//
17794// API parameter values that are decorated as "sensitive" in the API will not
17795// be included in the string output. The member name will be present, but the
17796// value will be replaced with "sensitive".
17797func (s CreateTagsOutput) GoString() string {
17798	return s.String()
17799}
17800
17801type CreateUsageLimitInput struct {
17802	_ struct{} `type:"structure"`
17803
17804	// The limit amount. If time-based, this amount is in minutes. If data-based,
17805	// this amount is in terabytes (TB). The value must be a positive number.
17806	//
17807	// Amount is a required field
17808	Amount *int64 `type:"long" required:"true"`
17809
17810	// The action that Amazon Redshift takes when the limit is reached. The default
17811	// is log. For more information about this parameter, see UsageLimit.
17812	BreachAction *string `type:"string" enum:"UsageLimitBreachAction"`
17813
17814	// The identifier of the cluster that you want to limit usage.
17815	//
17816	// ClusterIdentifier is a required field
17817	ClusterIdentifier *string `type:"string" required:"true"`
17818
17819	// The Amazon Redshift feature that you want to limit.
17820	//
17821	// FeatureType is a required field
17822	FeatureType *string `type:"string" required:"true" enum:"UsageLimitFeatureType"`
17823
17824	// The type of limit. Depending on the feature type, this can be based on a
17825	// time duration or data size. If FeatureType is spectrum, then LimitType must
17826	// be data-scanned. If FeatureType is concurrency-scaling, then LimitType must
17827	// be time.
17828	//
17829	// LimitType is a required field
17830	LimitType *string `type:"string" required:"true" enum:"UsageLimitLimitType"`
17831
17832	// The time period that the amount applies to. A weekly period begins on Sunday.
17833	// The default is monthly.
17834	Period *string `type:"string" enum:"UsageLimitPeriod"`
17835
17836	// A list of tag instances.
17837	Tags []*Tag `locationNameList:"Tag" type:"list"`
17838}
17839
17840// String returns the string representation.
17841//
17842// API parameter values that are decorated as "sensitive" in the API will not
17843// be included in the string output. The member name will be present, but the
17844// value will be replaced with "sensitive".
17845func (s CreateUsageLimitInput) String() string {
17846	return awsutil.Prettify(s)
17847}
17848
17849// GoString returns the string representation.
17850//
17851// API parameter values that are decorated as "sensitive" in the API will not
17852// be included in the string output. The member name will be present, but the
17853// value will be replaced with "sensitive".
17854func (s CreateUsageLimitInput) GoString() string {
17855	return s.String()
17856}
17857
17858// Validate inspects the fields of the type to determine if they are valid.
17859func (s *CreateUsageLimitInput) Validate() error {
17860	invalidParams := request.ErrInvalidParams{Context: "CreateUsageLimitInput"}
17861	if s.Amount == nil {
17862		invalidParams.Add(request.NewErrParamRequired("Amount"))
17863	}
17864	if s.ClusterIdentifier == nil {
17865		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
17866	}
17867	if s.FeatureType == nil {
17868		invalidParams.Add(request.NewErrParamRequired("FeatureType"))
17869	}
17870	if s.LimitType == nil {
17871		invalidParams.Add(request.NewErrParamRequired("LimitType"))
17872	}
17873
17874	if invalidParams.Len() > 0 {
17875		return invalidParams
17876	}
17877	return nil
17878}
17879
17880// SetAmount sets the Amount field's value.
17881func (s *CreateUsageLimitInput) SetAmount(v int64) *CreateUsageLimitInput {
17882	s.Amount = &v
17883	return s
17884}
17885
17886// SetBreachAction sets the BreachAction field's value.
17887func (s *CreateUsageLimitInput) SetBreachAction(v string) *CreateUsageLimitInput {
17888	s.BreachAction = &v
17889	return s
17890}
17891
17892// SetClusterIdentifier sets the ClusterIdentifier field's value.
17893func (s *CreateUsageLimitInput) SetClusterIdentifier(v string) *CreateUsageLimitInput {
17894	s.ClusterIdentifier = &v
17895	return s
17896}
17897
17898// SetFeatureType sets the FeatureType field's value.
17899func (s *CreateUsageLimitInput) SetFeatureType(v string) *CreateUsageLimitInput {
17900	s.FeatureType = &v
17901	return s
17902}
17903
17904// SetLimitType sets the LimitType field's value.
17905func (s *CreateUsageLimitInput) SetLimitType(v string) *CreateUsageLimitInput {
17906	s.LimitType = &v
17907	return s
17908}
17909
17910// SetPeriod sets the Period field's value.
17911func (s *CreateUsageLimitInput) SetPeriod(v string) *CreateUsageLimitInput {
17912	s.Period = &v
17913	return s
17914}
17915
17916// SetTags sets the Tags field's value.
17917func (s *CreateUsageLimitInput) SetTags(v []*Tag) *CreateUsageLimitInput {
17918	s.Tags = v
17919	return s
17920}
17921
17922// Describes a usage limit object for a cluster.
17923type CreateUsageLimitOutput struct {
17924	_ struct{} `type:"structure"`
17925
17926	// The limit amount. If time-based, this amount is in minutes. If data-based,
17927	// this amount is in terabytes (TB).
17928	Amount *int64 `type:"long"`
17929
17930	// The action that Amazon Redshift takes when the limit is reached. Possible
17931	// values are:
17932	//
17933	//    * log - To log an event in a system table. The default is log.
17934	//
17935	//    * emit-metric - To emit CloudWatch metrics.
17936	//
17937	//    * disable - To disable the feature until the next usage period begins.
17938	BreachAction *string `type:"string" enum:"UsageLimitBreachAction"`
17939
17940	// The identifier of the cluster with a usage limit.
17941	ClusterIdentifier *string `type:"string"`
17942
17943	// The Amazon Redshift feature to which the limit applies.
17944	FeatureType *string `type:"string" enum:"UsageLimitFeatureType"`
17945
17946	// The type of limit. Depending on the feature type, this can be based on a
17947	// time duration or data size.
17948	LimitType *string `type:"string" enum:"UsageLimitLimitType"`
17949
17950	// The time period that the amount applies to. A weekly period begins on Sunday.
17951	// The default is monthly.
17952	Period *string `type:"string" enum:"UsageLimitPeriod"`
17953
17954	// A list of tag instances.
17955	Tags []*Tag `locationNameList:"Tag" type:"list"`
17956
17957	// The identifier of the usage limit.
17958	UsageLimitId *string `type:"string"`
17959}
17960
17961// String returns the string representation.
17962//
17963// API parameter values that are decorated as "sensitive" in the API will not
17964// be included in the string output. The member name will be present, but the
17965// value will be replaced with "sensitive".
17966func (s CreateUsageLimitOutput) String() string {
17967	return awsutil.Prettify(s)
17968}
17969
17970// GoString returns the string representation.
17971//
17972// API parameter values that are decorated as "sensitive" in the API will not
17973// be included in the string output. The member name will be present, but the
17974// value will be replaced with "sensitive".
17975func (s CreateUsageLimitOutput) GoString() string {
17976	return s.String()
17977}
17978
17979// SetAmount sets the Amount field's value.
17980func (s *CreateUsageLimitOutput) SetAmount(v int64) *CreateUsageLimitOutput {
17981	s.Amount = &v
17982	return s
17983}
17984
17985// SetBreachAction sets the BreachAction field's value.
17986func (s *CreateUsageLimitOutput) SetBreachAction(v string) *CreateUsageLimitOutput {
17987	s.BreachAction = &v
17988	return s
17989}
17990
17991// SetClusterIdentifier sets the ClusterIdentifier field's value.
17992func (s *CreateUsageLimitOutput) SetClusterIdentifier(v string) *CreateUsageLimitOutput {
17993	s.ClusterIdentifier = &v
17994	return s
17995}
17996
17997// SetFeatureType sets the FeatureType field's value.
17998func (s *CreateUsageLimitOutput) SetFeatureType(v string) *CreateUsageLimitOutput {
17999	s.FeatureType = &v
18000	return s
18001}
18002
18003// SetLimitType sets the LimitType field's value.
18004func (s *CreateUsageLimitOutput) SetLimitType(v string) *CreateUsageLimitOutput {
18005	s.LimitType = &v
18006	return s
18007}
18008
18009// SetPeriod sets the Period field's value.
18010func (s *CreateUsageLimitOutput) SetPeriod(v string) *CreateUsageLimitOutput {
18011	s.Period = &v
18012	return s
18013}
18014
18015// SetTags sets the Tags field's value.
18016func (s *CreateUsageLimitOutput) SetTags(v []*Tag) *CreateUsageLimitOutput {
18017	s.Tags = v
18018	return s
18019}
18020
18021// SetUsageLimitId sets the UsageLimitId field's value.
18022func (s *CreateUsageLimitOutput) SetUsageLimitId(v string) *CreateUsageLimitOutput {
18023	s.UsageLimitId = &v
18024	return s
18025}
18026
18027type DataShare struct {
18028	_ struct{} `type:"structure"`
18029
18030	// A value that specifies whether the datashare can be shared to a publicly
18031	// accessible cluster.
18032	AllowPubliclyAccessibleConsumers *bool `type:"boolean"`
18033
18034	// An Amazon Resource Name (ARN) that references the datashare that is owned
18035	// by a specific namespace of the producer cluster. A datashare ARN is in the
18036	// arn:aws:redshift:{region}:{account-id}:{datashare}:{namespace-guid}/{datashare-name}
18037	// format.
18038	DataShareArn *string `type:"string"`
18039
18040	// A value that specifies when the datashare has an association between a producer
18041	// and data consumers.
18042	DataShareAssociations []*DataShareAssociation `type:"list"`
18043
18044	// The Amazon Resource Name (ARN) of the producer.
18045	ProducerArn *string `type:"string"`
18046}
18047
18048// String returns the string representation.
18049//
18050// API parameter values that are decorated as "sensitive" in the API will not
18051// be included in the string output. The member name will be present, but the
18052// value will be replaced with "sensitive".
18053func (s DataShare) String() string {
18054	return awsutil.Prettify(s)
18055}
18056
18057// GoString returns the string representation.
18058//
18059// API parameter values that are decorated as "sensitive" in the API will not
18060// be included in the string output. The member name will be present, but the
18061// value will be replaced with "sensitive".
18062func (s DataShare) GoString() string {
18063	return s.String()
18064}
18065
18066// SetAllowPubliclyAccessibleConsumers sets the AllowPubliclyAccessibleConsumers field's value.
18067func (s *DataShare) SetAllowPubliclyAccessibleConsumers(v bool) *DataShare {
18068	s.AllowPubliclyAccessibleConsumers = &v
18069	return s
18070}
18071
18072// SetDataShareArn sets the DataShareArn field's value.
18073func (s *DataShare) SetDataShareArn(v string) *DataShare {
18074	s.DataShareArn = &v
18075	return s
18076}
18077
18078// SetDataShareAssociations sets the DataShareAssociations field's value.
18079func (s *DataShare) SetDataShareAssociations(v []*DataShareAssociation) *DataShare {
18080	s.DataShareAssociations = v
18081	return s
18082}
18083
18084// SetProducerArn sets the ProducerArn field's value.
18085func (s *DataShare) SetProducerArn(v string) *DataShare {
18086	s.ProducerArn = &v
18087	return s
18088}
18089
18090// The association of a datashare from a producer account with a data consumer.
18091type DataShareAssociation struct {
18092	_ struct{} `type:"structure"`
18093
18094	// The name of the consumer accounts that have an association with a producer
18095	// datashare.
18096	ConsumerIdentifier *string `type:"string"`
18097
18098	// The creation date of the datashare that is associated.
18099	CreatedDate *time.Time `type:"timestamp"`
18100
18101	// The status of the datashare that is associated.
18102	Status *string `type:"string" enum:"DataShareStatus"`
18103
18104	// The status change data of the datashare that is associated.
18105	StatusChangeDate *time.Time `type:"timestamp"`
18106}
18107
18108// String returns the string representation.
18109//
18110// API parameter values that are decorated as "sensitive" in the API will not
18111// be included in the string output. The member name will be present, but the
18112// value will be replaced with "sensitive".
18113func (s DataShareAssociation) String() string {
18114	return awsutil.Prettify(s)
18115}
18116
18117// GoString returns the string representation.
18118//
18119// API parameter values that are decorated as "sensitive" in the API will not
18120// be included in the string output. The member name will be present, but the
18121// value will be replaced with "sensitive".
18122func (s DataShareAssociation) GoString() string {
18123	return s.String()
18124}
18125
18126// SetConsumerIdentifier sets the ConsumerIdentifier field's value.
18127func (s *DataShareAssociation) SetConsumerIdentifier(v string) *DataShareAssociation {
18128	s.ConsumerIdentifier = &v
18129	return s
18130}
18131
18132// SetCreatedDate sets the CreatedDate field's value.
18133func (s *DataShareAssociation) SetCreatedDate(v time.Time) *DataShareAssociation {
18134	s.CreatedDate = &v
18135	return s
18136}
18137
18138// SetStatus sets the Status field's value.
18139func (s *DataShareAssociation) SetStatus(v string) *DataShareAssociation {
18140	s.Status = &v
18141	return s
18142}
18143
18144// SetStatusChangeDate sets the StatusChangeDate field's value.
18145func (s *DataShareAssociation) SetStatusChangeDate(v time.Time) *DataShareAssociation {
18146	s.StatusChangeDate = &v
18147	return s
18148}
18149
18150// Describes the status of a cluster while it is in the process of resizing
18151// with an incremental resize.
18152type DataTransferProgress struct {
18153	_ struct{} `type:"structure"`
18154
18155	// Describes the data transfer rate in MB's per second.
18156	CurrentRateInMegaBytesPerSecond *float64 `type:"double"`
18157
18158	// Describes the total amount of data that has been transfered in MB's.
18159	DataTransferredInMegaBytes *int64 `type:"long"`
18160
18161	// Describes the number of seconds that have elapsed during the data transfer.
18162	ElapsedTimeInSeconds *int64 `type:"long"`
18163
18164	// Describes the estimated number of seconds remaining to complete the transfer.
18165	EstimatedTimeToCompletionInSeconds *int64 `type:"long"`
18166
18167	// Describes the status of the cluster. While the transfer is in progress the
18168	// status is transferringdata.
18169	Status *string `type:"string"`
18170
18171	// Describes the total amount of data to be transfered in megabytes.
18172	TotalDataInMegaBytes *int64 `type:"long"`
18173}
18174
18175// String returns the string representation.
18176//
18177// API parameter values that are decorated as "sensitive" in the API will not
18178// be included in the string output. The member name will be present, but the
18179// value will be replaced with "sensitive".
18180func (s DataTransferProgress) String() string {
18181	return awsutil.Prettify(s)
18182}
18183
18184// GoString returns the string representation.
18185//
18186// API parameter values that are decorated as "sensitive" in the API will not
18187// be included in the string output. The member name will be present, but the
18188// value will be replaced with "sensitive".
18189func (s DataTransferProgress) GoString() string {
18190	return s.String()
18191}
18192
18193// SetCurrentRateInMegaBytesPerSecond sets the CurrentRateInMegaBytesPerSecond field's value.
18194func (s *DataTransferProgress) SetCurrentRateInMegaBytesPerSecond(v float64) *DataTransferProgress {
18195	s.CurrentRateInMegaBytesPerSecond = &v
18196	return s
18197}
18198
18199// SetDataTransferredInMegaBytes sets the DataTransferredInMegaBytes field's value.
18200func (s *DataTransferProgress) SetDataTransferredInMegaBytes(v int64) *DataTransferProgress {
18201	s.DataTransferredInMegaBytes = &v
18202	return s
18203}
18204
18205// SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
18206func (s *DataTransferProgress) SetElapsedTimeInSeconds(v int64) *DataTransferProgress {
18207	s.ElapsedTimeInSeconds = &v
18208	return s
18209}
18210
18211// SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value.
18212func (s *DataTransferProgress) SetEstimatedTimeToCompletionInSeconds(v int64) *DataTransferProgress {
18213	s.EstimatedTimeToCompletionInSeconds = &v
18214	return s
18215}
18216
18217// SetStatus sets the Status field's value.
18218func (s *DataTransferProgress) SetStatus(v string) *DataTransferProgress {
18219	s.Status = &v
18220	return s
18221}
18222
18223// SetTotalDataInMegaBytes sets the TotalDataInMegaBytes field's value.
18224func (s *DataTransferProgress) SetTotalDataInMegaBytes(v int64) *DataTransferProgress {
18225	s.TotalDataInMegaBytes = &v
18226	return s
18227}
18228
18229type DeauthorizeDataShareInput struct {
18230	_ struct{} `type:"structure"`
18231
18232	// The identifier of the data consumer that is to have authorization removed
18233	// from the datashare. This identifier is an AWS account ID.
18234	//
18235	// ConsumerIdentifier is a required field
18236	ConsumerIdentifier *string `type:"string" required:"true"`
18237
18238	// The Amazon Resource Name (ARN) of the datashare to remove authorization from.
18239	//
18240	// DataShareArn is a required field
18241	DataShareArn *string `type:"string" required:"true"`
18242}
18243
18244// String returns the string representation.
18245//
18246// API parameter values that are decorated as "sensitive" in the API will not
18247// be included in the string output. The member name will be present, but the
18248// value will be replaced with "sensitive".
18249func (s DeauthorizeDataShareInput) String() string {
18250	return awsutil.Prettify(s)
18251}
18252
18253// GoString returns the string representation.
18254//
18255// API parameter values that are decorated as "sensitive" in the API will not
18256// be included in the string output. The member name will be present, but the
18257// value will be replaced with "sensitive".
18258func (s DeauthorizeDataShareInput) GoString() string {
18259	return s.String()
18260}
18261
18262// Validate inspects the fields of the type to determine if they are valid.
18263func (s *DeauthorizeDataShareInput) Validate() error {
18264	invalidParams := request.ErrInvalidParams{Context: "DeauthorizeDataShareInput"}
18265	if s.ConsumerIdentifier == nil {
18266		invalidParams.Add(request.NewErrParamRequired("ConsumerIdentifier"))
18267	}
18268	if s.DataShareArn == nil {
18269		invalidParams.Add(request.NewErrParamRequired("DataShareArn"))
18270	}
18271
18272	if invalidParams.Len() > 0 {
18273		return invalidParams
18274	}
18275	return nil
18276}
18277
18278// SetConsumerIdentifier sets the ConsumerIdentifier field's value.
18279func (s *DeauthorizeDataShareInput) SetConsumerIdentifier(v string) *DeauthorizeDataShareInput {
18280	s.ConsumerIdentifier = &v
18281	return s
18282}
18283
18284// SetDataShareArn sets the DataShareArn field's value.
18285func (s *DeauthorizeDataShareInput) SetDataShareArn(v string) *DeauthorizeDataShareInput {
18286	s.DataShareArn = &v
18287	return s
18288}
18289
18290type DeauthorizeDataShareOutput struct {
18291	_ struct{} `type:"structure"`
18292
18293	// A value that specifies whether the datashare can be shared to a publicly
18294	// accessible cluster.
18295	AllowPubliclyAccessibleConsumers *bool `type:"boolean"`
18296
18297	// An Amazon Resource Name (ARN) that references the datashare that is owned
18298	// by a specific namespace of the producer cluster. A datashare ARN is in the
18299	// arn:aws:redshift:{region}:{account-id}:{datashare}:{namespace-guid}/{datashare-name}
18300	// format.
18301	DataShareArn *string `type:"string"`
18302
18303	// A value that specifies when the datashare has an association between a producer
18304	// and data consumers.
18305	DataShareAssociations []*DataShareAssociation `type:"list"`
18306
18307	// The Amazon Resource Name (ARN) of the producer.
18308	ProducerArn *string `type:"string"`
18309}
18310
18311// String returns the string representation.
18312//
18313// API parameter values that are decorated as "sensitive" in the API will not
18314// be included in the string output. The member name will be present, but the
18315// value will be replaced with "sensitive".
18316func (s DeauthorizeDataShareOutput) String() string {
18317	return awsutil.Prettify(s)
18318}
18319
18320// GoString returns the string representation.
18321//
18322// API parameter values that are decorated as "sensitive" in the API will not
18323// be included in the string output. The member name will be present, but the
18324// value will be replaced with "sensitive".
18325func (s DeauthorizeDataShareOutput) GoString() string {
18326	return s.String()
18327}
18328
18329// SetAllowPubliclyAccessibleConsumers sets the AllowPubliclyAccessibleConsumers field's value.
18330func (s *DeauthorizeDataShareOutput) SetAllowPubliclyAccessibleConsumers(v bool) *DeauthorizeDataShareOutput {
18331	s.AllowPubliclyAccessibleConsumers = &v
18332	return s
18333}
18334
18335// SetDataShareArn sets the DataShareArn field's value.
18336func (s *DeauthorizeDataShareOutput) SetDataShareArn(v string) *DeauthorizeDataShareOutput {
18337	s.DataShareArn = &v
18338	return s
18339}
18340
18341// SetDataShareAssociations sets the DataShareAssociations field's value.
18342func (s *DeauthorizeDataShareOutput) SetDataShareAssociations(v []*DataShareAssociation) *DeauthorizeDataShareOutput {
18343	s.DataShareAssociations = v
18344	return s
18345}
18346
18347// SetProducerArn sets the ProducerArn field's value.
18348func (s *DeauthorizeDataShareOutput) SetProducerArn(v string) *DeauthorizeDataShareOutput {
18349	s.ProducerArn = &v
18350	return s
18351}
18352
18353// Describes the default cluster parameters for a parameter group family.
18354type DefaultClusterParameters struct {
18355	_ struct{} `type:"structure"`
18356
18357	// A value that indicates the starting point for the next set of response records
18358	// in a subsequent request. If a value is returned in a response, you can retrieve
18359	// the next set of records by providing this returned marker value in the Marker
18360	// parameter and retrying the command. If the Marker field is empty, all response
18361	// records have been retrieved for the request.
18362	Marker *string `type:"string"`
18363
18364	// The name of the cluster parameter group family to which the engine default
18365	// parameters apply.
18366	ParameterGroupFamily *string `type:"string"`
18367
18368	// The list of cluster default parameters.
18369	Parameters []*Parameter `locationNameList:"Parameter" type:"list"`
18370}
18371
18372// String returns the string representation.
18373//
18374// API parameter values that are decorated as "sensitive" in the API will not
18375// be included in the string output. The member name will be present, but the
18376// value will be replaced with "sensitive".
18377func (s DefaultClusterParameters) String() string {
18378	return awsutil.Prettify(s)
18379}
18380
18381// GoString returns the string representation.
18382//
18383// API parameter values that are decorated as "sensitive" in the API will not
18384// be included in the string output. The member name will be present, but the
18385// value will be replaced with "sensitive".
18386func (s DefaultClusterParameters) GoString() string {
18387	return s.String()
18388}
18389
18390// SetMarker sets the Marker field's value.
18391func (s *DefaultClusterParameters) SetMarker(v string) *DefaultClusterParameters {
18392	s.Marker = &v
18393	return s
18394}
18395
18396// SetParameterGroupFamily sets the ParameterGroupFamily field's value.
18397func (s *DefaultClusterParameters) SetParameterGroupFamily(v string) *DefaultClusterParameters {
18398	s.ParameterGroupFamily = &v
18399	return s
18400}
18401
18402// SetParameters sets the Parameters field's value.
18403func (s *DefaultClusterParameters) SetParameters(v []*Parameter) *DefaultClusterParameters {
18404	s.Parameters = v
18405	return s
18406}
18407
18408// Describes a deferred maintenance window
18409type DeferredMaintenanceWindow struct {
18410	_ struct{} `type:"structure"`
18411
18412	// A timestamp for the end of the time period when we defer maintenance.
18413	DeferMaintenanceEndTime *time.Time `type:"timestamp"`
18414
18415	// A unique identifier for the maintenance window.
18416	DeferMaintenanceIdentifier *string `type:"string"`
18417
18418	// A timestamp for the beginning of the time period when we defer maintenance.
18419	DeferMaintenanceStartTime *time.Time `type:"timestamp"`
18420}
18421
18422// String returns the string representation.
18423//
18424// API parameter values that are decorated as "sensitive" in the API will not
18425// be included in the string output. The member name will be present, but the
18426// value will be replaced with "sensitive".
18427func (s DeferredMaintenanceWindow) String() string {
18428	return awsutil.Prettify(s)
18429}
18430
18431// GoString returns the string representation.
18432//
18433// API parameter values that are decorated as "sensitive" in the API will not
18434// be included in the string output. The member name will be present, but the
18435// value will be replaced with "sensitive".
18436func (s DeferredMaintenanceWindow) GoString() string {
18437	return s.String()
18438}
18439
18440// SetDeferMaintenanceEndTime sets the DeferMaintenanceEndTime field's value.
18441func (s *DeferredMaintenanceWindow) SetDeferMaintenanceEndTime(v time.Time) *DeferredMaintenanceWindow {
18442	s.DeferMaintenanceEndTime = &v
18443	return s
18444}
18445
18446// SetDeferMaintenanceIdentifier sets the DeferMaintenanceIdentifier field's value.
18447func (s *DeferredMaintenanceWindow) SetDeferMaintenanceIdentifier(v string) *DeferredMaintenanceWindow {
18448	s.DeferMaintenanceIdentifier = &v
18449	return s
18450}
18451
18452// SetDeferMaintenanceStartTime sets the DeferMaintenanceStartTime field's value.
18453func (s *DeferredMaintenanceWindow) SetDeferMaintenanceStartTime(v time.Time) *DeferredMaintenanceWindow {
18454	s.DeferMaintenanceStartTime = &v
18455	return s
18456}
18457
18458type DeleteAuthenticationProfileInput struct {
18459	_ struct{} `type:"structure"`
18460
18461	// The name of the authentication profile to delete.
18462	//
18463	// AuthenticationProfileName is a required field
18464	AuthenticationProfileName *string `type:"string" required:"true"`
18465}
18466
18467// String returns the string representation.
18468//
18469// API parameter values that are decorated as "sensitive" in the API will not
18470// be included in the string output. The member name will be present, but the
18471// value will be replaced with "sensitive".
18472func (s DeleteAuthenticationProfileInput) String() string {
18473	return awsutil.Prettify(s)
18474}
18475
18476// GoString returns the string representation.
18477//
18478// API parameter values that are decorated as "sensitive" in the API will not
18479// be included in the string output. The member name will be present, but the
18480// value will be replaced with "sensitive".
18481func (s DeleteAuthenticationProfileInput) GoString() string {
18482	return s.String()
18483}
18484
18485// Validate inspects the fields of the type to determine if they are valid.
18486func (s *DeleteAuthenticationProfileInput) Validate() error {
18487	invalidParams := request.ErrInvalidParams{Context: "DeleteAuthenticationProfileInput"}
18488	if s.AuthenticationProfileName == nil {
18489		invalidParams.Add(request.NewErrParamRequired("AuthenticationProfileName"))
18490	}
18491
18492	if invalidParams.Len() > 0 {
18493		return invalidParams
18494	}
18495	return nil
18496}
18497
18498// SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
18499func (s *DeleteAuthenticationProfileInput) SetAuthenticationProfileName(v string) *DeleteAuthenticationProfileInput {
18500	s.AuthenticationProfileName = &v
18501	return s
18502}
18503
18504type DeleteAuthenticationProfileOutput struct {
18505	_ struct{} `type:"structure"`
18506
18507	// The name of the authentication profile that was deleted.
18508	AuthenticationProfileName *string `type:"string"`
18509}
18510
18511// String returns the string representation.
18512//
18513// API parameter values that are decorated as "sensitive" in the API will not
18514// be included in the string output. The member name will be present, but the
18515// value will be replaced with "sensitive".
18516func (s DeleteAuthenticationProfileOutput) String() string {
18517	return awsutil.Prettify(s)
18518}
18519
18520// GoString returns the string representation.
18521//
18522// API parameter values that are decorated as "sensitive" in the API will not
18523// be included in the string output. The member name will be present, but the
18524// value will be replaced with "sensitive".
18525func (s DeleteAuthenticationProfileOutput) GoString() string {
18526	return s.String()
18527}
18528
18529// SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
18530func (s *DeleteAuthenticationProfileOutput) SetAuthenticationProfileName(v string) *DeleteAuthenticationProfileOutput {
18531	s.AuthenticationProfileName = &v
18532	return s
18533}
18534
18535type DeleteClusterInput struct {
18536	_ struct{} `type:"structure"`
18537
18538	// The identifier of the cluster to be deleted.
18539	//
18540	// Constraints:
18541	//
18542	//    * Must contain lowercase characters.
18543	//
18544	//    * Must contain from 1 to 63 alphanumeric characters or hyphens.
18545	//
18546	//    * First character must be a letter.
18547	//
18548	//    * Cannot end with a hyphen or contain two consecutive hyphens.
18549	//
18550	// ClusterIdentifier is a required field
18551	ClusterIdentifier *string `type:"string" required:"true"`
18552
18553	// The identifier of the final snapshot that is to be created immediately before
18554	// deleting the cluster. If this parameter is provided, SkipFinalClusterSnapshot
18555	// must be false.
18556	//
18557	// Constraints:
18558	//
18559	//    * Must be 1 to 255 alphanumeric characters.
18560	//
18561	//    * First character must be a letter.
18562	//
18563	//    * Cannot end with a hyphen or contain two consecutive hyphens.
18564	FinalClusterSnapshotIdentifier *string `type:"string"`
18565
18566	// The number of days that a manual snapshot is retained. If the value is -1,
18567	// the manual snapshot is retained indefinitely.
18568	//
18569	// The value must be either -1 or an integer between 1 and 3,653.
18570	//
18571	// The default value is -1.
18572	FinalClusterSnapshotRetentionPeriod *int64 `type:"integer"`
18573
18574	// Determines whether a final snapshot of the cluster is created before Amazon
18575	// Redshift deletes the cluster. If true, a final cluster snapshot is not created.
18576	// If false, a final cluster snapshot is created before the cluster is deleted.
18577	//
18578	// The FinalClusterSnapshotIdentifier parameter must be specified if SkipFinalClusterSnapshot
18579	// is false.
18580	//
18581	// Default: false
18582	SkipFinalClusterSnapshot *bool `type:"boolean"`
18583}
18584
18585// String returns the string representation.
18586//
18587// API parameter values that are decorated as "sensitive" in the API will not
18588// be included in the string output. The member name will be present, but the
18589// value will be replaced with "sensitive".
18590func (s DeleteClusterInput) String() string {
18591	return awsutil.Prettify(s)
18592}
18593
18594// GoString returns the string representation.
18595//
18596// API parameter values that are decorated as "sensitive" in the API will not
18597// be included in the string output. The member name will be present, but the
18598// value will be replaced with "sensitive".
18599func (s DeleteClusterInput) GoString() string {
18600	return s.String()
18601}
18602
18603// Validate inspects the fields of the type to determine if they are valid.
18604func (s *DeleteClusterInput) Validate() error {
18605	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
18606	if s.ClusterIdentifier == nil {
18607		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
18608	}
18609
18610	if invalidParams.Len() > 0 {
18611		return invalidParams
18612	}
18613	return nil
18614}
18615
18616// SetClusterIdentifier sets the ClusterIdentifier field's value.
18617func (s *DeleteClusterInput) SetClusterIdentifier(v string) *DeleteClusterInput {
18618	s.ClusterIdentifier = &v
18619	return s
18620}
18621
18622// SetFinalClusterSnapshotIdentifier sets the FinalClusterSnapshotIdentifier field's value.
18623func (s *DeleteClusterInput) SetFinalClusterSnapshotIdentifier(v string) *DeleteClusterInput {
18624	s.FinalClusterSnapshotIdentifier = &v
18625	return s
18626}
18627
18628// SetFinalClusterSnapshotRetentionPeriod sets the FinalClusterSnapshotRetentionPeriod field's value.
18629func (s *DeleteClusterInput) SetFinalClusterSnapshotRetentionPeriod(v int64) *DeleteClusterInput {
18630	s.FinalClusterSnapshotRetentionPeriod = &v
18631	return s
18632}
18633
18634// SetSkipFinalClusterSnapshot sets the SkipFinalClusterSnapshot field's value.
18635func (s *DeleteClusterInput) SetSkipFinalClusterSnapshot(v bool) *DeleteClusterInput {
18636	s.SkipFinalClusterSnapshot = &v
18637	return s
18638}
18639
18640type DeleteClusterOutput struct {
18641	_ struct{} `type:"structure"`
18642
18643	// Describes a cluster.
18644	Cluster *Cluster `type:"structure"`
18645}
18646
18647// String returns the string representation.
18648//
18649// API parameter values that are decorated as "sensitive" in the API will not
18650// be included in the string output. The member name will be present, but the
18651// value will be replaced with "sensitive".
18652func (s DeleteClusterOutput) String() string {
18653	return awsutil.Prettify(s)
18654}
18655
18656// GoString returns the string representation.
18657//
18658// API parameter values that are decorated as "sensitive" in the API will not
18659// be included in the string output. The member name will be present, but the
18660// value will be replaced with "sensitive".
18661func (s DeleteClusterOutput) GoString() string {
18662	return s.String()
18663}
18664
18665// SetCluster sets the Cluster field's value.
18666func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
18667	s.Cluster = v
18668	return s
18669}
18670
18671type DeleteClusterParameterGroupInput struct {
18672	_ struct{} `type:"structure"`
18673
18674	// The name of the parameter group to be deleted.
18675	//
18676	// Constraints:
18677	//
18678	//    * Must be the name of an existing cluster parameter group.
18679	//
18680	//    * Cannot delete a default cluster parameter group.
18681	//
18682	// ParameterGroupName is a required field
18683	ParameterGroupName *string `type:"string" required:"true"`
18684}
18685
18686// String returns the string representation.
18687//
18688// API parameter values that are decorated as "sensitive" in the API will not
18689// be included in the string output. The member name will be present, but the
18690// value will be replaced with "sensitive".
18691func (s DeleteClusterParameterGroupInput) String() string {
18692	return awsutil.Prettify(s)
18693}
18694
18695// GoString returns the string representation.
18696//
18697// API parameter values that are decorated as "sensitive" in the API will not
18698// be included in the string output. The member name will be present, but the
18699// value will be replaced with "sensitive".
18700func (s DeleteClusterParameterGroupInput) GoString() string {
18701	return s.String()
18702}
18703
18704// Validate inspects the fields of the type to determine if they are valid.
18705func (s *DeleteClusterParameterGroupInput) Validate() error {
18706	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterParameterGroupInput"}
18707	if s.ParameterGroupName == nil {
18708		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
18709	}
18710
18711	if invalidParams.Len() > 0 {
18712		return invalidParams
18713	}
18714	return nil
18715}
18716
18717// SetParameterGroupName sets the ParameterGroupName field's value.
18718func (s *DeleteClusterParameterGroupInput) SetParameterGroupName(v string) *DeleteClusterParameterGroupInput {
18719	s.ParameterGroupName = &v
18720	return s
18721}
18722
18723type DeleteClusterParameterGroupOutput struct {
18724	_ struct{} `type:"structure"`
18725}
18726
18727// String returns the string representation.
18728//
18729// API parameter values that are decorated as "sensitive" in the API will not
18730// be included in the string output. The member name will be present, but the
18731// value will be replaced with "sensitive".
18732func (s DeleteClusterParameterGroupOutput) String() string {
18733	return awsutil.Prettify(s)
18734}
18735
18736// GoString returns the string representation.
18737//
18738// API parameter values that are decorated as "sensitive" in the API will not
18739// be included in the string output. The member name will be present, but the
18740// value will be replaced with "sensitive".
18741func (s DeleteClusterParameterGroupOutput) GoString() string {
18742	return s.String()
18743}
18744
18745type DeleteClusterSecurityGroupInput struct {
18746	_ struct{} `type:"structure"`
18747
18748	// The name of the cluster security group to be deleted.
18749	//
18750	// ClusterSecurityGroupName is a required field
18751	ClusterSecurityGroupName *string `type:"string" required:"true"`
18752}
18753
18754// String returns the string representation.
18755//
18756// API parameter values that are decorated as "sensitive" in the API will not
18757// be included in the string output. The member name will be present, but the
18758// value will be replaced with "sensitive".
18759func (s DeleteClusterSecurityGroupInput) String() string {
18760	return awsutil.Prettify(s)
18761}
18762
18763// GoString returns the string representation.
18764//
18765// API parameter values that are decorated as "sensitive" in the API will not
18766// be included in the string output. The member name will be present, but the
18767// value will be replaced with "sensitive".
18768func (s DeleteClusterSecurityGroupInput) GoString() string {
18769	return s.String()
18770}
18771
18772// Validate inspects the fields of the type to determine if they are valid.
18773func (s *DeleteClusterSecurityGroupInput) Validate() error {
18774	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterSecurityGroupInput"}
18775	if s.ClusterSecurityGroupName == nil {
18776		invalidParams.Add(request.NewErrParamRequired("ClusterSecurityGroupName"))
18777	}
18778
18779	if invalidParams.Len() > 0 {
18780		return invalidParams
18781	}
18782	return nil
18783}
18784
18785// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
18786func (s *DeleteClusterSecurityGroupInput) SetClusterSecurityGroupName(v string) *DeleteClusterSecurityGroupInput {
18787	s.ClusterSecurityGroupName = &v
18788	return s
18789}
18790
18791type DeleteClusterSecurityGroupOutput struct {
18792	_ struct{} `type:"structure"`
18793}
18794
18795// String returns the string representation.
18796//
18797// API parameter values that are decorated as "sensitive" in the API will not
18798// be included in the string output. The member name will be present, but the
18799// value will be replaced with "sensitive".
18800func (s DeleteClusterSecurityGroupOutput) String() string {
18801	return awsutil.Prettify(s)
18802}
18803
18804// GoString returns the string representation.
18805//
18806// API parameter values that are decorated as "sensitive" in the API will not
18807// be included in the string output. The member name will be present, but the
18808// value will be replaced with "sensitive".
18809func (s DeleteClusterSecurityGroupOutput) GoString() string {
18810	return s.String()
18811}
18812
18813type DeleteClusterSnapshotInput struct {
18814	_ struct{} `type:"structure"`
18815
18816	// The unique identifier of the cluster the snapshot was created from. This
18817	// parameter is required if your IAM user has a policy containing a snapshot
18818	// resource element that specifies anything other than * for the cluster name.
18819	//
18820	// Constraints: Must be the name of valid cluster.
18821	SnapshotClusterIdentifier *string `type:"string"`
18822
18823	// The unique identifier of the manual snapshot to be deleted.
18824	//
18825	// Constraints: Must be the name of an existing snapshot that is in the available,
18826	// failed, or cancelled state.
18827	//
18828	// SnapshotIdentifier is a required field
18829	SnapshotIdentifier *string `type:"string" required:"true"`
18830}
18831
18832// String returns the string representation.
18833//
18834// API parameter values that are decorated as "sensitive" in the API will not
18835// be included in the string output. The member name will be present, but the
18836// value will be replaced with "sensitive".
18837func (s DeleteClusterSnapshotInput) String() string {
18838	return awsutil.Prettify(s)
18839}
18840
18841// GoString returns the string representation.
18842//
18843// API parameter values that are decorated as "sensitive" in the API will not
18844// be included in the string output. The member name will be present, but the
18845// value will be replaced with "sensitive".
18846func (s DeleteClusterSnapshotInput) GoString() string {
18847	return s.String()
18848}
18849
18850// Validate inspects the fields of the type to determine if they are valid.
18851func (s *DeleteClusterSnapshotInput) Validate() error {
18852	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterSnapshotInput"}
18853	if s.SnapshotIdentifier == nil {
18854		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
18855	}
18856
18857	if invalidParams.Len() > 0 {
18858		return invalidParams
18859	}
18860	return nil
18861}
18862
18863// SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
18864func (s *DeleteClusterSnapshotInput) SetSnapshotClusterIdentifier(v string) *DeleteClusterSnapshotInput {
18865	s.SnapshotClusterIdentifier = &v
18866	return s
18867}
18868
18869// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
18870func (s *DeleteClusterSnapshotInput) SetSnapshotIdentifier(v string) *DeleteClusterSnapshotInput {
18871	s.SnapshotIdentifier = &v
18872	return s
18873}
18874
18875type DeleteClusterSnapshotMessage struct {
18876	_ struct{} `type:"structure"`
18877
18878	// The unique identifier of the cluster the snapshot was created from. This
18879	// parameter is required if your IAM user has a policy containing a snapshot
18880	// resource element that specifies anything other than * for the cluster name.
18881	//
18882	// Constraints: Must be the name of valid cluster.
18883	SnapshotClusterIdentifier *string `type:"string"`
18884
18885	// The unique identifier of the manual snapshot to be deleted.
18886	//
18887	// Constraints: Must be the name of an existing snapshot that is in the available,
18888	// failed, or cancelled state.
18889	//
18890	// SnapshotIdentifier is a required field
18891	SnapshotIdentifier *string `type:"string" required:"true"`
18892}
18893
18894// String returns the string representation.
18895//
18896// API parameter values that are decorated as "sensitive" in the API will not
18897// be included in the string output. The member name will be present, but the
18898// value will be replaced with "sensitive".
18899func (s DeleteClusterSnapshotMessage) String() string {
18900	return awsutil.Prettify(s)
18901}
18902
18903// GoString returns the string representation.
18904//
18905// API parameter values that are decorated as "sensitive" in the API will not
18906// be included in the string output. The member name will be present, but the
18907// value will be replaced with "sensitive".
18908func (s DeleteClusterSnapshotMessage) GoString() string {
18909	return s.String()
18910}
18911
18912// Validate inspects the fields of the type to determine if they are valid.
18913func (s *DeleteClusterSnapshotMessage) Validate() error {
18914	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterSnapshotMessage"}
18915	if s.SnapshotIdentifier == nil {
18916		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
18917	}
18918
18919	if invalidParams.Len() > 0 {
18920		return invalidParams
18921	}
18922	return nil
18923}
18924
18925// SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
18926func (s *DeleteClusterSnapshotMessage) SetSnapshotClusterIdentifier(v string) *DeleteClusterSnapshotMessage {
18927	s.SnapshotClusterIdentifier = &v
18928	return s
18929}
18930
18931// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
18932func (s *DeleteClusterSnapshotMessage) SetSnapshotIdentifier(v string) *DeleteClusterSnapshotMessage {
18933	s.SnapshotIdentifier = &v
18934	return s
18935}
18936
18937type DeleteClusterSnapshotOutput struct {
18938	_ struct{} `type:"structure"`
18939
18940	// Describes a snapshot.
18941	Snapshot *Snapshot `type:"structure"`
18942}
18943
18944// String returns the string representation.
18945//
18946// API parameter values that are decorated as "sensitive" in the API will not
18947// be included in the string output. The member name will be present, but the
18948// value will be replaced with "sensitive".
18949func (s DeleteClusterSnapshotOutput) String() string {
18950	return awsutil.Prettify(s)
18951}
18952
18953// GoString returns the string representation.
18954//
18955// API parameter values that are decorated as "sensitive" in the API will not
18956// be included in the string output. The member name will be present, but the
18957// value will be replaced with "sensitive".
18958func (s DeleteClusterSnapshotOutput) GoString() string {
18959	return s.String()
18960}
18961
18962// SetSnapshot sets the Snapshot field's value.
18963func (s *DeleteClusterSnapshotOutput) SetSnapshot(v *Snapshot) *DeleteClusterSnapshotOutput {
18964	s.Snapshot = v
18965	return s
18966}
18967
18968type DeleteClusterSubnetGroupInput struct {
18969	_ struct{} `type:"structure"`
18970
18971	// The name of the cluster subnet group name to be deleted.
18972	//
18973	// ClusterSubnetGroupName is a required field
18974	ClusterSubnetGroupName *string `type:"string" required:"true"`
18975}
18976
18977// String returns the string representation.
18978//
18979// API parameter values that are decorated as "sensitive" in the API will not
18980// be included in the string output. The member name will be present, but the
18981// value will be replaced with "sensitive".
18982func (s DeleteClusterSubnetGroupInput) String() string {
18983	return awsutil.Prettify(s)
18984}
18985
18986// GoString returns the string representation.
18987//
18988// API parameter values that are decorated as "sensitive" in the API will not
18989// be included in the string output. The member name will be present, but the
18990// value will be replaced with "sensitive".
18991func (s DeleteClusterSubnetGroupInput) GoString() string {
18992	return s.String()
18993}
18994
18995// Validate inspects the fields of the type to determine if they are valid.
18996func (s *DeleteClusterSubnetGroupInput) Validate() error {
18997	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterSubnetGroupInput"}
18998	if s.ClusterSubnetGroupName == nil {
18999		invalidParams.Add(request.NewErrParamRequired("ClusterSubnetGroupName"))
19000	}
19001
19002	if invalidParams.Len() > 0 {
19003		return invalidParams
19004	}
19005	return nil
19006}
19007
19008// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
19009func (s *DeleteClusterSubnetGroupInput) SetClusterSubnetGroupName(v string) *DeleteClusterSubnetGroupInput {
19010	s.ClusterSubnetGroupName = &v
19011	return s
19012}
19013
19014type DeleteClusterSubnetGroupOutput struct {
19015	_ struct{} `type:"structure"`
19016}
19017
19018// String returns the string representation.
19019//
19020// API parameter values that are decorated as "sensitive" in the API will not
19021// be included in the string output. The member name will be present, but the
19022// value will be replaced with "sensitive".
19023func (s DeleteClusterSubnetGroupOutput) String() string {
19024	return awsutil.Prettify(s)
19025}
19026
19027// GoString returns the string representation.
19028//
19029// API parameter values that are decorated as "sensitive" in the API will not
19030// be included in the string output. The member name will be present, but the
19031// value will be replaced with "sensitive".
19032func (s DeleteClusterSubnetGroupOutput) GoString() string {
19033	return s.String()
19034}
19035
19036type DeleteEndpointAccessInput struct {
19037	_ struct{} `type:"structure"`
19038
19039	// The Redshift-managed VPC endpoint to delete.
19040	//
19041	// EndpointName is a required field
19042	EndpointName *string `type:"string" required:"true"`
19043}
19044
19045// String returns the string representation.
19046//
19047// API parameter values that are decorated as "sensitive" in the API will not
19048// be included in the string output. The member name will be present, but the
19049// value will be replaced with "sensitive".
19050func (s DeleteEndpointAccessInput) String() string {
19051	return awsutil.Prettify(s)
19052}
19053
19054// GoString returns the string representation.
19055//
19056// API parameter values that are decorated as "sensitive" in the API will not
19057// be included in the string output. The member name will be present, but the
19058// value will be replaced with "sensitive".
19059func (s DeleteEndpointAccessInput) GoString() string {
19060	return s.String()
19061}
19062
19063// Validate inspects the fields of the type to determine if they are valid.
19064func (s *DeleteEndpointAccessInput) Validate() error {
19065	invalidParams := request.ErrInvalidParams{Context: "DeleteEndpointAccessInput"}
19066	if s.EndpointName == nil {
19067		invalidParams.Add(request.NewErrParamRequired("EndpointName"))
19068	}
19069
19070	if invalidParams.Len() > 0 {
19071		return invalidParams
19072	}
19073	return nil
19074}
19075
19076// SetEndpointName sets the EndpointName field's value.
19077func (s *DeleteEndpointAccessInput) SetEndpointName(v string) *DeleteEndpointAccessInput {
19078	s.EndpointName = &v
19079	return s
19080}
19081
19082// Describes a Redshift-managed VPC endpoint.
19083type DeleteEndpointAccessOutput struct {
19084	_ struct{} `type:"structure"`
19085
19086	// The DNS address of the endpoint.
19087	Address *string `type:"string"`
19088
19089	// The cluster identifier of the cluster associated with the endpoint.
19090	ClusterIdentifier *string `type:"string"`
19091
19092	// The time (UTC) that the endpoint was created.
19093	EndpointCreateTime *time.Time `type:"timestamp"`
19094
19095	// The name of the endpoint.
19096	EndpointName *string `type:"string"`
19097
19098	// The status of the endpoint.
19099	EndpointStatus *string `type:"string"`
19100
19101	// The port number on which the cluster accepts incoming connections.
19102	Port *int64 `type:"integer"`
19103
19104	// The Amazon Web Services account ID of the owner of the cluster.
19105	ResourceOwner *string `type:"string"`
19106
19107	// The subnet group name where Amazon Redshift chooses to deploy the endpoint.
19108	SubnetGroupName *string `type:"string"`
19109
19110	// The connection endpoint for connecting to an Amazon Redshift cluster through
19111	// the proxy.
19112	VpcEndpoint *VpcEndpoint `type:"structure"`
19113
19114	// The security groups associated with the endpoint.
19115	VpcSecurityGroups []*VpcSecurityGroupMembership `locationNameList:"VpcSecurityGroup" type:"list"`
19116}
19117
19118// String returns the string representation.
19119//
19120// API parameter values that are decorated as "sensitive" in the API will not
19121// be included in the string output. The member name will be present, but the
19122// value will be replaced with "sensitive".
19123func (s DeleteEndpointAccessOutput) String() string {
19124	return awsutil.Prettify(s)
19125}
19126
19127// GoString returns the string representation.
19128//
19129// API parameter values that are decorated as "sensitive" in the API will not
19130// be included in the string output. The member name will be present, but the
19131// value will be replaced with "sensitive".
19132func (s DeleteEndpointAccessOutput) GoString() string {
19133	return s.String()
19134}
19135
19136// SetAddress sets the Address field's value.
19137func (s *DeleteEndpointAccessOutput) SetAddress(v string) *DeleteEndpointAccessOutput {
19138	s.Address = &v
19139	return s
19140}
19141
19142// SetClusterIdentifier sets the ClusterIdentifier field's value.
19143func (s *DeleteEndpointAccessOutput) SetClusterIdentifier(v string) *DeleteEndpointAccessOutput {
19144	s.ClusterIdentifier = &v
19145	return s
19146}
19147
19148// SetEndpointCreateTime sets the EndpointCreateTime field's value.
19149func (s *DeleteEndpointAccessOutput) SetEndpointCreateTime(v time.Time) *DeleteEndpointAccessOutput {
19150	s.EndpointCreateTime = &v
19151	return s
19152}
19153
19154// SetEndpointName sets the EndpointName field's value.
19155func (s *DeleteEndpointAccessOutput) SetEndpointName(v string) *DeleteEndpointAccessOutput {
19156	s.EndpointName = &v
19157	return s
19158}
19159
19160// SetEndpointStatus sets the EndpointStatus field's value.
19161func (s *DeleteEndpointAccessOutput) SetEndpointStatus(v string) *DeleteEndpointAccessOutput {
19162	s.EndpointStatus = &v
19163	return s
19164}
19165
19166// SetPort sets the Port field's value.
19167func (s *DeleteEndpointAccessOutput) SetPort(v int64) *DeleteEndpointAccessOutput {
19168	s.Port = &v
19169	return s
19170}
19171
19172// SetResourceOwner sets the ResourceOwner field's value.
19173func (s *DeleteEndpointAccessOutput) SetResourceOwner(v string) *DeleteEndpointAccessOutput {
19174	s.ResourceOwner = &v
19175	return s
19176}
19177
19178// SetSubnetGroupName sets the SubnetGroupName field's value.
19179func (s *DeleteEndpointAccessOutput) SetSubnetGroupName(v string) *DeleteEndpointAccessOutput {
19180	s.SubnetGroupName = &v
19181	return s
19182}
19183
19184// SetVpcEndpoint sets the VpcEndpoint field's value.
19185func (s *DeleteEndpointAccessOutput) SetVpcEndpoint(v *VpcEndpoint) *DeleteEndpointAccessOutput {
19186	s.VpcEndpoint = v
19187	return s
19188}
19189
19190// SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
19191func (s *DeleteEndpointAccessOutput) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *DeleteEndpointAccessOutput {
19192	s.VpcSecurityGroups = v
19193	return s
19194}
19195
19196type DeleteEventSubscriptionInput struct {
19197	_ struct{} `type:"structure"`
19198
19199	// The name of the Amazon Redshift event notification subscription to be deleted.
19200	//
19201	// SubscriptionName is a required field
19202	SubscriptionName *string `type:"string" required:"true"`
19203}
19204
19205// String returns the string representation.
19206//
19207// API parameter values that are decorated as "sensitive" in the API will not
19208// be included in the string output. The member name will be present, but the
19209// value will be replaced with "sensitive".
19210func (s DeleteEventSubscriptionInput) String() string {
19211	return awsutil.Prettify(s)
19212}
19213
19214// GoString returns the string representation.
19215//
19216// API parameter values that are decorated as "sensitive" in the API will not
19217// be included in the string output. The member name will be present, but the
19218// value will be replaced with "sensitive".
19219func (s DeleteEventSubscriptionInput) GoString() string {
19220	return s.String()
19221}
19222
19223// Validate inspects the fields of the type to determine if they are valid.
19224func (s *DeleteEventSubscriptionInput) Validate() error {
19225	invalidParams := request.ErrInvalidParams{Context: "DeleteEventSubscriptionInput"}
19226	if s.SubscriptionName == nil {
19227		invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
19228	}
19229
19230	if invalidParams.Len() > 0 {
19231		return invalidParams
19232	}
19233	return nil
19234}
19235
19236// SetSubscriptionName sets the SubscriptionName field's value.
19237func (s *DeleteEventSubscriptionInput) SetSubscriptionName(v string) *DeleteEventSubscriptionInput {
19238	s.SubscriptionName = &v
19239	return s
19240}
19241
19242type DeleteEventSubscriptionOutput struct {
19243	_ struct{} `type:"structure"`
19244}
19245
19246// String returns the string representation.
19247//
19248// API parameter values that are decorated as "sensitive" in the API will not
19249// be included in the string output. The member name will be present, but the
19250// value will be replaced with "sensitive".
19251func (s DeleteEventSubscriptionOutput) String() string {
19252	return awsutil.Prettify(s)
19253}
19254
19255// GoString returns the string representation.
19256//
19257// API parameter values that are decorated as "sensitive" in the API will not
19258// be included in the string output. The member name will be present, but the
19259// value will be replaced with "sensitive".
19260func (s DeleteEventSubscriptionOutput) GoString() string {
19261	return s.String()
19262}
19263
19264type DeleteHsmClientCertificateInput struct {
19265	_ struct{} `type:"structure"`
19266
19267	// The identifier of the HSM client certificate to be deleted.
19268	//
19269	// HsmClientCertificateIdentifier is a required field
19270	HsmClientCertificateIdentifier *string `type:"string" required:"true"`
19271}
19272
19273// String returns the string representation.
19274//
19275// API parameter values that are decorated as "sensitive" in the API will not
19276// be included in the string output. The member name will be present, but the
19277// value will be replaced with "sensitive".
19278func (s DeleteHsmClientCertificateInput) String() string {
19279	return awsutil.Prettify(s)
19280}
19281
19282// GoString returns the string representation.
19283//
19284// API parameter values that are decorated as "sensitive" in the API will not
19285// be included in the string output. The member name will be present, but the
19286// value will be replaced with "sensitive".
19287func (s DeleteHsmClientCertificateInput) GoString() string {
19288	return s.String()
19289}
19290
19291// Validate inspects the fields of the type to determine if they are valid.
19292func (s *DeleteHsmClientCertificateInput) Validate() error {
19293	invalidParams := request.ErrInvalidParams{Context: "DeleteHsmClientCertificateInput"}
19294	if s.HsmClientCertificateIdentifier == nil {
19295		invalidParams.Add(request.NewErrParamRequired("HsmClientCertificateIdentifier"))
19296	}
19297
19298	if invalidParams.Len() > 0 {
19299		return invalidParams
19300	}
19301	return nil
19302}
19303
19304// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
19305func (s *DeleteHsmClientCertificateInput) SetHsmClientCertificateIdentifier(v string) *DeleteHsmClientCertificateInput {
19306	s.HsmClientCertificateIdentifier = &v
19307	return s
19308}
19309
19310type DeleteHsmClientCertificateOutput struct {
19311	_ struct{} `type:"structure"`
19312}
19313
19314// String returns the string representation.
19315//
19316// API parameter values that are decorated as "sensitive" in the API will not
19317// be included in the string output. The member name will be present, but the
19318// value will be replaced with "sensitive".
19319func (s DeleteHsmClientCertificateOutput) String() string {
19320	return awsutil.Prettify(s)
19321}
19322
19323// GoString returns the string representation.
19324//
19325// API parameter values that are decorated as "sensitive" in the API will not
19326// be included in the string output. The member name will be present, but the
19327// value will be replaced with "sensitive".
19328func (s DeleteHsmClientCertificateOutput) GoString() string {
19329	return s.String()
19330}
19331
19332type DeleteHsmConfigurationInput struct {
19333	_ struct{} `type:"structure"`
19334
19335	// The identifier of the Amazon Redshift HSM configuration to be deleted.
19336	//
19337	// HsmConfigurationIdentifier is a required field
19338	HsmConfigurationIdentifier *string `type:"string" required:"true"`
19339}
19340
19341// String returns the string representation.
19342//
19343// API parameter values that are decorated as "sensitive" in the API will not
19344// be included in the string output. The member name will be present, but the
19345// value will be replaced with "sensitive".
19346func (s DeleteHsmConfigurationInput) String() string {
19347	return awsutil.Prettify(s)
19348}
19349
19350// GoString returns the string representation.
19351//
19352// API parameter values that are decorated as "sensitive" in the API will not
19353// be included in the string output. The member name will be present, but the
19354// value will be replaced with "sensitive".
19355func (s DeleteHsmConfigurationInput) GoString() string {
19356	return s.String()
19357}
19358
19359// Validate inspects the fields of the type to determine if they are valid.
19360func (s *DeleteHsmConfigurationInput) Validate() error {
19361	invalidParams := request.ErrInvalidParams{Context: "DeleteHsmConfigurationInput"}
19362	if s.HsmConfigurationIdentifier == nil {
19363		invalidParams.Add(request.NewErrParamRequired("HsmConfigurationIdentifier"))
19364	}
19365
19366	if invalidParams.Len() > 0 {
19367		return invalidParams
19368	}
19369	return nil
19370}
19371
19372// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
19373func (s *DeleteHsmConfigurationInput) SetHsmConfigurationIdentifier(v string) *DeleteHsmConfigurationInput {
19374	s.HsmConfigurationIdentifier = &v
19375	return s
19376}
19377
19378type DeleteHsmConfigurationOutput struct {
19379	_ struct{} `type:"structure"`
19380}
19381
19382// String returns the string representation.
19383//
19384// API parameter values that are decorated as "sensitive" in the API will not
19385// be included in the string output. The member name will be present, but the
19386// value will be replaced with "sensitive".
19387func (s DeleteHsmConfigurationOutput) String() string {
19388	return awsutil.Prettify(s)
19389}
19390
19391// GoString returns the string representation.
19392//
19393// API parameter values that are decorated as "sensitive" in the API will not
19394// be included in the string output. The member name will be present, but the
19395// value will be replaced with "sensitive".
19396func (s DeleteHsmConfigurationOutput) GoString() string {
19397	return s.String()
19398}
19399
19400type DeletePartnerInput struct {
19401	_ struct{} `type:"structure"`
19402
19403	// The Amazon Web Services account ID that owns the cluster.
19404	//
19405	// AccountId is a required field
19406	AccountId *string `min:"12" type:"string" required:"true"`
19407
19408	// The cluster identifier of the cluster that receives data from the partner.
19409	//
19410	// ClusterIdentifier is a required field
19411	ClusterIdentifier *string `type:"string" required:"true"`
19412
19413	// The name of the database that receives data from the partner.
19414	//
19415	// DatabaseName is a required field
19416	DatabaseName *string `type:"string" required:"true"`
19417
19418	// The name of the partner that is authorized to send data.
19419	//
19420	// PartnerName is a required field
19421	PartnerName *string `type:"string" required:"true"`
19422}
19423
19424// String returns the string representation.
19425//
19426// API parameter values that are decorated as "sensitive" in the API will not
19427// be included in the string output. The member name will be present, but the
19428// value will be replaced with "sensitive".
19429func (s DeletePartnerInput) String() string {
19430	return awsutil.Prettify(s)
19431}
19432
19433// GoString returns the string representation.
19434//
19435// API parameter values that are decorated as "sensitive" in the API will not
19436// be included in the string output. The member name will be present, but the
19437// value will be replaced with "sensitive".
19438func (s DeletePartnerInput) GoString() string {
19439	return s.String()
19440}
19441
19442// Validate inspects the fields of the type to determine if they are valid.
19443func (s *DeletePartnerInput) Validate() error {
19444	invalidParams := request.ErrInvalidParams{Context: "DeletePartnerInput"}
19445	if s.AccountId == nil {
19446		invalidParams.Add(request.NewErrParamRequired("AccountId"))
19447	}
19448	if s.AccountId != nil && len(*s.AccountId) < 12 {
19449		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
19450	}
19451	if s.ClusterIdentifier == nil {
19452		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
19453	}
19454	if s.DatabaseName == nil {
19455		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
19456	}
19457	if s.PartnerName == nil {
19458		invalidParams.Add(request.NewErrParamRequired("PartnerName"))
19459	}
19460
19461	if invalidParams.Len() > 0 {
19462		return invalidParams
19463	}
19464	return nil
19465}
19466
19467// SetAccountId sets the AccountId field's value.
19468func (s *DeletePartnerInput) SetAccountId(v string) *DeletePartnerInput {
19469	s.AccountId = &v
19470	return s
19471}
19472
19473// SetClusterIdentifier sets the ClusterIdentifier field's value.
19474func (s *DeletePartnerInput) SetClusterIdentifier(v string) *DeletePartnerInput {
19475	s.ClusterIdentifier = &v
19476	return s
19477}
19478
19479// SetDatabaseName sets the DatabaseName field's value.
19480func (s *DeletePartnerInput) SetDatabaseName(v string) *DeletePartnerInput {
19481	s.DatabaseName = &v
19482	return s
19483}
19484
19485// SetPartnerName sets the PartnerName field's value.
19486func (s *DeletePartnerInput) SetPartnerName(v string) *DeletePartnerInput {
19487	s.PartnerName = &v
19488	return s
19489}
19490
19491type DeletePartnerOutput struct {
19492	_ struct{} `type:"structure"`
19493
19494	// The name of the database that receives data from the partner.
19495	DatabaseName *string `type:"string"`
19496
19497	// The name of the partner that is authorized to send data.
19498	PartnerName *string `type:"string"`
19499}
19500
19501// String returns the string representation.
19502//
19503// API parameter values that are decorated as "sensitive" in the API will not
19504// be included in the string output. The member name will be present, but the
19505// value will be replaced with "sensitive".
19506func (s DeletePartnerOutput) String() string {
19507	return awsutil.Prettify(s)
19508}
19509
19510// GoString returns the string representation.
19511//
19512// API parameter values that are decorated as "sensitive" in the API will not
19513// be included in the string output. The member name will be present, but the
19514// value will be replaced with "sensitive".
19515func (s DeletePartnerOutput) GoString() string {
19516	return s.String()
19517}
19518
19519// SetDatabaseName sets the DatabaseName field's value.
19520func (s *DeletePartnerOutput) SetDatabaseName(v string) *DeletePartnerOutput {
19521	s.DatabaseName = &v
19522	return s
19523}
19524
19525// SetPartnerName sets the PartnerName field's value.
19526func (s *DeletePartnerOutput) SetPartnerName(v string) *DeletePartnerOutput {
19527	s.PartnerName = &v
19528	return s
19529}
19530
19531type DeleteScheduledActionInput struct {
19532	_ struct{} `type:"structure"`
19533
19534	// The name of the scheduled action to delete.
19535	//
19536	// ScheduledActionName is a required field
19537	ScheduledActionName *string `type:"string" required:"true"`
19538}
19539
19540// String returns the string representation.
19541//
19542// API parameter values that are decorated as "sensitive" in the API will not
19543// be included in the string output. The member name will be present, but the
19544// value will be replaced with "sensitive".
19545func (s DeleteScheduledActionInput) String() string {
19546	return awsutil.Prettify(s)
19547}
19548
19549// GoString returns the string representation.
19550//
19551// API parameter values that are decorated as "sensitive" in the API will not
19552// be included in the string output. The member name will be present, but the
19553// value will be replaced with "sensitive".
19554func (s DeleteScheduledActionInput) GoString() string {
19555	return s.String()
19556}
19557
19558// Validate inspects the fields of the type to determine if they are valid.
19559func (s *DeleteScheduledActionInput) Validate() error {
19560	invalidParams := request.ErrInvalidParams{Context: "DeleteScheduledActionInput"}
19561	if s.ScheduledActionName == nil {
19562		invalidParams.Add(request.NewErrParamRequired("ScheduledActionName"))
19563	}
19564
19565	if invalidParams.Len() > 0 {
19566		return invalidParams
19567	}
19568	return nil
19569}
19570
19571// SetScheduledActionName sets the ScheduledActionName field's value.
19572func (s *DeleteScheduledActionInput) SetScheduledActionName(v string) *DeleteScheduledActionInput {
19573	s.ScheduledActionName = &v
19574	return s
19575}
19576
19577type DeleteScheduledActionOutput struct {
19578	_ struct{} `type:"structure"`
19579}
19580
19581// String returns the string representation.
19582//
19583// API parameter values that are decorated as "sensitive" in the API will not
19584// be included in the string output. The member name will be present, but the
19585// value will be replaced with "sensitive".
19586func (s DeleteScheduledActionOutput) String() string {
19587	return awsutil.Prettify(s)
19588}
19589
19590// GoString returns the string representation.
19591//
19592// API parameter values that are decorated as "sensitive" in the API will not
19593// be included in the string output. The member name will be present, but the
19594// value will be replaced with "sensitive".
19595func (s DeleteScheduledActionOutput) GoString() string {
19596	return s.String()
19597}
19598
19599// The result of the DeleteSnapshotCopyGrant action.
19600type DeleteSnapshotCopyGrantInput struct {
19601	_ struct{} `type:"structure"`
19602
19603	// The name of the snapshot copy grant to delete.
19604	//
19605	// SnapshotCopyGrantName is a required field
19606	SnapshotCopyGrantName *string `type:"string" required:"true"`
19607}
19608
19609// String returns the string representation.
19610//
19611// API parameter values that are decorated as "sensitive" in the API will not
19612// be included in the string output. The member name will be present, but the
19613// value will be replaced with "sensitive".
19614func (s DeleteSnapshotCopyGrantInput) String() string {
19615	return awsutil.Prettify(s)
19616}
19617
19618// GoString returns the string representation.
19619//
19620// API parameter values that are decorated as "sensitive" in the API will not
19621// be included in the string output. The member name will be present, but the
19622// value will be replaced with "sensitive".
19623func (s DeleteSnapshotCopyGrantInput) GoString() string {
19624	return s.String()
19625}
19626
19627// Validate inspects the fields of the type to determine if they are valid.
19628func (s *DeleteSnapshotCopyGrantInput) Validate() error {
19629	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotCopyGrantInput"}
19630	if s.SnapshotCopyGrantName == nil {
19631		invalidParams.Add(request.NewErrParamRequired("SnapshotCopyGrantName"))
19632	}
19633
19634	if invalidParams.Len() > 0 {
19635		return invalidParams
19636	}
19637	return nil
19638}
19639
19640// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
19641func (s *DeleteSnapshotCopyGrantInput) SetSnapshotCopyGrantName(v string) *DeleteSnapshotCopyGrantInput {
19642	s.SnapshotCopyGrantName = &v
19643	return s
19644}
19645
19646type DeleteSnapshotCopyGrantOutput struct {
19647	_ struct{} `type:"structure"`
19648}
19649
19650// String returns the string representation.
19651//
19652// API parameter values that are decorated as "sensitive" in the API will not
19653// be included in the string output. The member name will be present, but the
19654// value will be replaced with "sensitive".
19655func (s DeleteSnapshotCopyGrantOutput) String() string {
19656	return awsutil.Prettify(s)
19657}
19658
19659// GoString returns the string representation.
19660//
19661// API parameter values that are decorated as "sensitive" in the API will not
19662// be included in the string output. The member name will be present, but the
19663// value will be replaced with "sensitive".
19664func (s DeleteSnapshotCopyGrantOutput) GoString() string {
19665	return s.String()
19666}
19667
19668type DeleteSnapshotScheduleInput struct {
19669	_ struct{} `type:"structure"`
19670
19671	// A unique identifier of the snapshot schedule to delete.
19672	//
19673	// ScheduleIdentifier is a required field
19674	ScheduleIdentifier *string `type:"string" required:"true"`
19675}
19676
19677// String returns the string representation.
19678//
19679// API parameter values that are decorated as "sensitive" in the API will not
19680// be included in the string output. The member name will be present, but the
19681// value will be replaced with "sensitive".
19682func (s DeleteSnapshotScheduleInput) String() string {
19683	return awsutil.Prettify(s)
19684}
19685
19686// GoString returns the string representation.
19687//
19688// API parameter values that are decorated as "sensitive" in the API will not
19689// be included in the string output. The member name will be present, but the
19690// value will be replaced with "sensitive".
19691func (s DeleteSnapshotScheduleInput) GoString() string {
19692	return s.String()
19693}
19694
19695// Validate inspects the fields of the type to determine if they are valid.
19696func (s *DeleteSnapshotScheduleInput) Validate() error {
19697	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotScheduleInput"}
19698	if s.ScheduleIdentifier == nil {
19699		invalidParams.Add(request.NewErrParamRequired("ScheduleIdentifier"))
19700	}
19701
19702	if invalidParams.Len() > 0 {
19703		return invalidParams
19704	}
19705	return nil
19706}
19707
19708// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
19709func (s *DeleteSnapshotScheduleInput) SetScheduleIdentifier(v string) *DeleteSnapshotScheduleInput {
19710	s.ScheduleIdentifier = &v
19711	return s
19712}
19713
19714type DeleteSnapshotScheduleOutput struct {
19715	_ struct{} `type:"structure"`
19716}
19717
19718// String returns the string representation.
19719//
19720// API parameter values that are decorated as "sensitive" in the API will not
19721// be included in the string output. The member name will be present, but the
19722// value will be replaced with "sensitive".
19723func (s DeleteSnapshotScheduleOutput) String() string {
19724	return awsutil.Prettify(s)
19725}
19726
19727// GoString returns the string representation.
19728//
19729// API parameter values that are decorated as "sensitive" in the API will not
19730// be included in the string output. The member name will be present, but the
19731// value will be replaced with "sensitive".
19732func (s DeleteSnapshotScheduleOutput) GoString() string {
19733	return s.String()
19734}
19735
19736// Contains the output from the DeleteTags action.
19737type DeleteTagsInput struct {
19738	_ struct{} `type:"structure"`
19739
19740	// The Amazon Resource Name (ARN) from which you want to remove the tag or tags.
19741	// For example, arn:aws:redshift:us-east-2:123456789:cluster:t1.
19742	//
19743	// ResourceName is a required field
19744	ResourceName *string `type:"string" required:"true"`
19745
19746	// The tag key that you want to delete.
19747	//
19748	// TagKeys is a required field
19749	TagKeys []*string `locationNameList:"TagKey" type:"list" required:"true"`
19750}
19751
19752// String returns the string representation.
19753//
19754// API parameter values that are decorated as "sensitive" in the API will not
19755// be included in the string output. The member name will be present, but the
19756// value will be replaced with "sensitive".
19757func (s DeleteTagsInput) String() string {
19758	return awsutil.Prettify(s)
19759}
19760
19761// GoString returns the string representation.
19762//
19763// API parameter values that are decorated as "sensitive" in the API will not
19764// be included in the string output. The member name will be present, but the
19765// value will be replaced with "sensitive".
19766func (s DeleteTagsInput) GoString() string {
19767	return s.String()
19768}
19769
19770// Validate inspects the fields of the type to determine if they are valid.
19771func (s *DeleteTagsInput) Validate() error {
19772	invalidParams := request.ErrInvalidParams{Context: "DeleteTagsInput"}
19773	if s.ResourceName == nil {
19774		invalidParams.Add(request.NewErrParamRequired("ResourceName"))
19775	}
19776	if s.TagKeys == nil {
19777		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
19778	}
19779
19780	if invalidParams.Len() > 0 {
19781		return invalidParams
19782	}
19783	return nil
19784}
19785
19786// SetResourceName sets the ResourceName field's value.
19787func (s *DeleteTagsInput) SetResourceName(v string) *DeleteTagsInput {
19788	s.ResourceName = &v
19789	return s
19790}
19791
19792// SetTagKeys sets the TagKeys field's value.
19793func (s *DeleteTagsInput) SetTagKeys(v []*string) *DeleteTagsInput {
19794	s.TagKeys = v
19795	return s
19796}
19797
19798type DeleteTagsOutput struct {
19799	_ struct{} `type:"structure"`
19800}
19801
19802// String returns the string representation.
19803//
19804// API parameter values that are decorated as "sensitive" in the API will not
19805// be included in the string output. The member name will be present, but the
19806// value will be replaced with "sensitive".
19807func (s DeleteTagsOutput) String() string {
19808	return awsutil.Prettify(s)
19809}
19810
19811// GoString returns the string representation.
19812//
19813// API parameter values that are decorated as "sensitive" in the API will not
19814// be included in the string output. The member name will be present, but the
19815// value will be replaced with "sensitive".
19816func (s DeleteTagsOutput) GoString() string {
19817	return s.String()
19818}
19819
19820type DeleteUsageLimitInput struct {
19821	_ struct{} `type:"structure"`
19822
19823	// The identifier of the usage limit to delete.
19824	//
19825	// UsageLimitId is a required field
19826	UsageLimitId *string `type:"string" required:"true"`
19827}
19828
19829// String returns the string representation.
19830//
19831// API parameter values that are decorated as "sensitive" in the API will not
19832// be included in the string output. The member name will be present, but the
19833// value will be replaced with "sensitive".
19834func (s DeleteUsageLimitInput) String() string {
19835	return awsutil.Prettify(s)
19836}
19837
19838// GoString returns the string representation.
19839//
19840// API parameter values that are decorated as "sensitive" in the API will not
19841// be included in the string output. The member name will be present, but the
19842// value will be replaced with "sensitive".
19843func (s DeleteUsageLimitInput) GoString() string {
19844	return s.String()
19845}
19846
19847// Validate inspects the fields of the type to determine if they are valid.
19848func (s *DeleteUsageLimitInput) Validate() error {
19849	invalidParams := request.ErrInvalidParams{Context: "DeleteUsageLimitInput"}
19850	if s.UsageLimitId == nil {
19851		invalidParams.Add(request.NewErrParamRequired("UsageLimitId"))
19852	}
19853
19854	if invalidParams.Len() > 0 {
19855		return invalidParams
19856	}
19857	return nil
19858}
19859
19860// SetUsageLimitId sets the UsageLimitId field's value.
19861func (s *DeleteUsageLimitInput) SetUsageLimitId(v string) *DeleteUsageLimitInput {
19862	s.UsageLimitId = &v
19863	return s
19864}
19865
19866type DeleteUsageLimitOutput struct {
19867	_ struct{} `type:"structure"`
19868}
19869
19870// String returns the string representation.
19871//
19872// API parameter values that are decorated as "sensitive" in the API will not
19873// be included in the string output. The member name will be present, but the
19874// value will be replaced with "sensitive".
19875func (s DeleteUsageLimitOutput) String() string {
19876	return awsutil.Prettify(s)
19877}
19878
19879// GoString returns the string representation.
19880//
19881// API parameter values that are decorated as "sensitive" in the API will not
19882// be included in the string output. The member name will be present, but the
19883// value will be replaced with "sensitive".
19884func (s DeleteUsageLimitOutput) GoString() string {
19885	return s.String()
19886}
19887
19888type DescribeAccountAttributesInput struct {
19889	_ struct{} `type:"structure"`
19890
19891	// A list of attribute names.
19892	AttributeNames []*string `locationNameList:"AttributeName" type:"list"`
19893}
19894
19895// String returns the string representation.
19896//
19897// API parameter values that are decorated as "sensitive" in the API will not
19898// be included in the string output. The member name will be present, but the
19899// value will be replaced with "sensitive".
19900func (s DescribeAccountAttributesInput) String() string {
19901	return awsutil.Prettify(s)
19902}
19903
19904// GoString returns the string representation.
19905//
19906// API parameter values that are decorated as "sensitive" in the API will not
19907// be included in the string output. The member name will be present, but the
19908// value will be replaced with "sensitive".
19909func (s DescribeAccountAttributesInput) GoString() string {
19910	return s.String()
19911}
19912
19913// SetAttributeNames sets the AttributeNames field's value.
19914func (s *DescribeAccountAttributesInput) SetAttributeNames(v []*string) *DescribeAccountAttributesInput {
19915	s.AttributeNames = v
19916	return s
19917}
19918
19919type DescribeAccountAttributesOutput struct {
19920	_ struct{} `type:"structure"`
19921
19922	// A list of attributes assigned to an account.
19923	AccountAttributes []*AccountAttribute `locationNameList:"AccountAttribute" type:"list"`
19924}
19925
19926// String returns the string representation.
19927//
19928// API parameter values that are decorated as "sensitive" in the API will not
19929// be included in the string output. The member name will be present, but the
19930// value will be replaced with "sensitive".
19931func (s DescribeAccountAttributesOutput) String() string {
19932	return awsutil.Prettify(s)
19933}
19934
19935// GoString returns the string representation.
19936//
19937// API parameter values that are decorated as "sensitive" in the API will not
19938// be included in the string output. The member name will be present, but the
19939// value will be replaced with "sensitive".
19940func (s DescribeAccountAttributesOutput) GoString() string {
19941	return s.String()
19942}
19943
19944// SetAccountAttributes sets the AccountAttributes field's value.
19945func (s *DescribeAccountAttributesOutput) SetAccountAttributes(v []*AccountAttribute) *DescribeAccountAttributesOutput {
19946	s.AccountAttributes = v
19947	return s
19948}
19949
19950type DescribeAuthenticationProfilesInput struct {
19951	_ struct{} `type:"structure"`
19952
19953	// The name of the authentication profile to describe. If not specified then
19954	// all authentication profiles owned by the account are listed.
19955	AuthenticationProfileName *string `type:"string"`
19956}
19957
19958// String returns the string representation.
19959//
19960// API parameter values that are decorated as "sensitive" in the API will not
19961// be included in the string output. The member name will be present, but the
19962// value will be replaced with "sensitive".
19963func (s DescribeAuthenticationProfilesInput) String() string {
19964	return awsutil.Prettify(s)
19965}
19966
19967// GoString returns the string representation.
19968//
19969// API parameter values that are decorated as "sensitive" in the API will not
19970// be included in the string output. The member name will be present, but the
19971// value will be replaced with "sensitive".
19972func (s DescribeAuthenticationProfilesInput) GoString() string {
19973	return s.String()
19974}
19975
19976// SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
19977func (s *DescribeAuthenticationProfilesInput) SetAuthenticationProfileName(v string) *DescribeAuthenticationProfilesInput {
19978	s.AuthenticationProfileName = &v
19979	return s
19980}
19981
19982type DescribeAuthenticationProfilesOutput struct {
19983	_ struct{} `type:"structure"`
19984
19985	// The list of authentication profiles.
19986	AuthenticationProfiles []*AuthenticationProfile `type:"list"`
19987}
19988
19989// String returns the string representation.
19990//
19991// API parameter values that are decorated as "sensitive" in the API will not
19992// be included in the string output. The member name will be present, but the
19993// value will be replaced with "sensitive".
19994func (s DescribeAuthenticationProfilesOutput) String() string {
19995	return awsutil.Prettify(s)
19996}
19997
19998// GoString returns the string representation.
19999//
20000// API parameter values that are decorated as "sensitive" in the API will not
20001// be included in the string output. The member name will be present, but the
20002// value will be replaced with "sensitive".
20003func (s DescribeAuthenticationProfilesOutput) GoString() string {
20004	return s.String()
20005}
20006
20007// SetAuthenticationProfiles sets the AuthenticationProfiles field's value.
20008func (s *DescribeAuthenticationProfilesOutput) SetAuthenticationProfiles(v []*AuthenticationProfile) *DescribeAuthenticationProfilesOutput {
20009	s.AuthenticationProfiles = v
20010	return s
20011}
20012
20013type DescribeClusterDbRevisionsInput struct {
20014	_ struct{} `type:"structure"`
20015
20016	// A unique identifier for a cluster whose ClusterDbRevisions you are requesting.
20017	// This parameter is case sensitive. All clusters defined for an account are
20018	// returned by default.
20019	ClusterIdentifier *string `type:"string"`
20020
20021	// An optional parameter that specifies the starting point for returning a set
20022	// of response records. When the results of a DescribeClusterDbRevisions request
20023	// exceed the value specified in MaxRecords, Amazon Redshift returns a value
20024	// in the marker field of the response. You can retrieve the next set of response
20025	// records by providing the returned marker value in the marker parameter and
20026	// retrying the request.
20027	//
20028	// Constraints: You can specify either the ClusterIdentifier parameter, or the
20029	// marker parameter, but not both.
20030	Marker *string `type:"string"`
20031
20032	// The maximum number of response records to return in each call. If the number
20033	// of remaining response records exceeds the specified MaxRecords value, a value
20034	// is returned in the marker field of the response. You can retrieve the next
20035	// set of response records by providing the returned marker value in the marker
20036	// parameter and retrying the request.
20037	//
20038	// Default: 100
20039	//
20040	// Constraints: minimum 20, maximum 100.
20041	MaxRecords *int64 `type:"integer"`
20042}
20043
20044// String returns the string representation.
20045//
20046// API parameter values that are decorated as "sensitive" in the API will not
20047// be included in the string output. The member name will be present, but the
20048// value will be replaced with "sensitive".
20049func (s DescribeClusterDbRevisionsInput) String() string {
20050	return awsutil.Prettify(s)
20051}
20052
20053// GoString returns the string representation.
20054//
20055// API parameter values that are decorated as "sensitive" in the API will not
20056// be included in the string output. The member name will be present, but the
20057// value will be replaced with "sensitive".
20058func (s DescribeClusterDbRevisionsInput) GoString() string {
20059	return s.String()
20060}
20061
20062// SetClusterIdentifier sets the ClusterIdentifier field's value.
20063func (s *DescribeClusterDbRevisionsInput) SetClusterIdentifier(v string) *DescribeClusterDbRevisionsInput {
20064	s.ClusterIdentifier = &v
20065	return s
20066}
20067
20068// SetMarker sets the Marker field's value.
20069func (s *DescribeClusterDbRevisionsInput) SetMarker(v string) *DescribeClusterDbRevisionsInput {
20070	s.Marker = &v
20071	return s
20072}
20073
20074// SetMaxRecords sets the MaxRecords field's value.
20075func (s *DescribeClusterDbRevisionsInput) SetMaxRecords(v int64) *DescribeClusterDbRevisionsInput {
20076	s.MaxRecords = &v
20077	return s
20078}
20079
20080type DescribeClusterDbRevisionsOutput struct {
20081	_ struct{} `type:"structure"`
20082
20083	// A list of revisions.
20084	ClusterDbRevisions []*ClusterDbRevision `locationNameList:"ClusterDbRevision" type:"list"`
20085
20086	// A string representing the starting point for the next set of revisions. If
20087	// a value is returned in a response, you can retrieve the next set of revisions
20088	// by providing the value in the marker parameter and retrying the command.
20089	// If the marker field is empty, all revisions have already been returned.
20090	Marker *string `type:"string"`
20091}
20092
20093// String returns the string representation.
20094//
20095// API parameter values that are decorated as "sensitive" in the API will not
20096// be included in the string output. The member name will be present, but the
20097// value will be replaced with "sensitive".
20098func (s DescribeClusterDbRevisionsOutput) String() string {
20099	return awsutil.Prettify(s)
20100}
20101
20102// GoString returns the string representation.
20103//
20104// API parameter values that are decorated as "sensitive" in the API will not
20105// be included in the string output. The member name will be present, but the
20106// value will be replaced with "sensitive".
20107func (s DescribeClusterDbRevisionsOutput) GoString() string {
20108	return s.String()
20109}
20110
20111// SetClusterDbRevisions sets the ClusterDbRevisions field's value.
20112func (s *DescribeClusterDbRevisionsOutput) SetClusterDbRevisions(v []*ClusterDbRevision) *DescribeClusterDbRevisionsOutput {
20113	s.ClusterDbRevisions = v
20114	return s
20115}
20116
20117// SetMarker sets the Marker field's value.
20118func (s *DescribeClusterDbRevisionsOutput) SetMarker(v string) *DescribeClusterDbRevisionsOutput {
20119	s.Marker = &v
20120	return s
20121}
20122
20123type DescribeClusterParameterGroupsInput struct {
20124	_ struct{} `type:"structure"`
20125
20126	// An optional parameter that specifies the starting point to return a set of
20127	// response records. When the results of a DescribeClusterParameterGroups request
20128	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
20129	// in the Marker field of the response. You can retrieve the next set of response
20130	// records by providing the returned marker value in the Marker parameter and
20131	// retrying the request.
20132	Marker *string `type:"string"`
20133
20134	// The maximum number of response records to return in each call. If the number
20135	// of remaining response records exceeds the specified MaxRecords value, a value
20136	// is returned in a marker field of the response. You can retrieve the next
20137	// set of records by retrying the command with the returned marker value.
20138	//
20139	// Default: 100
20140	//
20141	// Constraints: minimum 20, maximum 100.
20142	MaxRecords *int64 `type:"integer"`
20143
20144	// The name of a specific parameter group for which to return details. By default,
20145	// details about all parameter groups and the default parameter group are returned.
20146	ParameterGroupName *string `type:"string"`
20147
20148	// A tag key or keys for which you want to return all matching cluster parameter
20149	// groups that are associated with the specified key or keys. For example, suppose
20150	// that you have parameter groups that are tagged with keys called owner and
20151	// environment. If you specify both of these tag keys in the request, Amazon
20152	// Redshift returns a response with the parameter groups that have either or
20153	// both of these tag keys associated with them.
20154	TagKeys []*string `locationNameList:"TagKey" type:"list"`
20155
20156	// A tag value or values for which you want to return all matching cluster parameter
20157	// groups that are associated with the specified tag value or values. For example,
20158	// suppose that you have parameter groups that are tagged with values called
20159	// admin and test. If you specify both of these tag values in the request, Amazon
20160	// Redshift returns a response with the parameter groups that have either or
20161	// both of these tag values associated with them.
20162	TagValues []*string `locationNameList:"TagValue" type:"list"`
20163}
20164
20165// String returns the string representation.
20166//
20167// API parameter values that are decorated as "sensitive" in the API will not
20168// be included in the string output. The member name will be present, but the
20169// value will be replaced with "sensitive".
20170func (s DescribeClusterParameterGroupsInput) String() string {
20171	return awsutil.Prettify(s)
20172}
20173
20174// GoString returns the string representation.
20175//
20176// API parameter values that are decorated as "sensitive" in the API will not
20177// be included in the string output. The member name will be present, but the
20178// value will be replaced with "sensitive".
20179func (s DescribeClusterParameterGroupsInput) GoString() string {
20180	return s.String()
20181}
20182
20183// SetMarker sets the Marker field's value.
20184func (s *DescribeClusterParameterGroupsInput) SetMarker(v string) *DescribeClusterParameterGroupsInput {
20185	s.Marker = &v
20186	return s
20187}
20188
20189// SetMaxRecords sets the MaxRecords field's value.
20190func (s *DescribeClusterParameterGroupsInput) SetMaxRecords(v int64) *DescribeClusterParameterGroupsInput {
20191	s.MaxRecords = &v
20192	return s
20193}
20194
20195// SetParameterGroupName sets the ParameterGroupName field's value.
20196func (s *DescribeClusterParameterGroupsInput) SetParameterGroupName(v string) *DescribeClusterParameterGroupsInput {
20197	s.ParameterGroupName = &v
20198	return s
20199}
20200
20201// SetTagKeys sets the TagKeys field's value.
20202func (s *DescribeClusterParameterGroupsInput) SetTagKeys(v []*string) *DescribeClusterParameterGroupsInput {
20203	s.TagKeys = v
20204	return s
20205}
20206
20207// SetTagValues sets the TagValues field's value.
20208func (s *DescribeClusterParameterGroupsInput) SetTagValues(v []*string) *DescribeClusterParameterGroupsInput {
20209	s.TagValues = v
20210	return s
20211}
20212
20213// Contains the output from the DescribeClusterParameterGroups action.
20214type DescribeClusterParameterGroupsOutput struct {
20215	_ struct{} `type:"structure"`
20216
20217	// A value that indicates the starting point for the next set of response records
20218	// in a subsequent request. If a value is returned in a response, you can retrieve
20219	// the next set of records by providing this returned marker value in the Marker
20220	// parameter and retrying the command. If the Marker field is empty, all response
20221	// records have been retrieved for the request.
20222	Marker *string `type:"string"`
20223
20224	// A list of ClusterParameterGroup instances. Each instance describes one cluster
20225	// parameter group.
20226	ParameterGroups []*ClusterParameterGroup `locationNameList:"ClusterParameterGroup" type:"list"`
20227}
20228
20229// String returns the string representation.
20230//
20231// API parameter values that are decorated as "sensitive" in the API will not
20232// be included in the string output. The member name will be present, but the
20233// value will be replaced with "sensitive".
20234func (s DescribeClusterParameterGroupsOutput) String() string {
20235	return awsutil.Prettify(s)
20236}
20237
20238// GoString returns the string representation.
20239//
20240// API parameter values that are decorated as "sensitive" in the API will not
20241// be included in the string output. The member name will be present, but the
20242// value will be replaced with "sensitive".
20243func (s DescribeClusterParameterGroupsOutput) GoString() string {
20244	return s.String()
20245}
20246
20247// SetMarker sets the Marker field's value.
20248func (s *DescribeClusterParameterGroupsOutput) SetMarker(v string) *DescribeClusterParameterGroupsOutput {
20249	s.Marker = &v
20250	return s
20251}
20252
20253// SetParameterGroups sets the ParameterGroups field's value.
20254func (s *DescribeClusterParameterGroupsOutput) SetParameterGroups(v []*ClusterParameterGroup) *DescribeClusterParameterGroupsOutput {
20255	s.ParameterGroups = v
20256	return s
20257}
20258
20259type DescribeClusterParametersInput struct {
20260	_ struct{} `type:"structure"`
20261
20262	// An optional parameter that specifies the starting point to return a set of
20263	// response records. When the results of a DescribeClusterParameters request
20264	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
20265	// in the Marker field of the response. You can retrieve the next set of response
20266	// records by providing the returned marker value in the Marker parameter and
20267	// retrying the request.
20268	Marker *string `type:"string"`
20269
20270	// The maximum number of response records to return in each call. If the number
20271	// of remaining response records exceeds the specified MaxRecords value, a value
20272	// is returned in a marker field of the response. You can retrieve the next
20273	// set of records by retrying the command with the returned marker value.
20274	//
20275	// Default: 100
20276	//
20277	// Constraints: minimum 20, maximum 100.
20278	MaxRecords *int64 `type:"integer"`
20279
20280	// The name of a cluster parameter group for which to return details.
20281	//
20282	// ParameterGroupName is a required field
20283	ParameterGroupName *string `type:"string" required:"true"`
20284
20285	// The parameter types to return. Specify user to show parameters that are different
20286	// form the default. Similarly, specify engine-default to show parameters that
20287	// are the same as the default parameter group.
20288	//
20289	// Default: All parameter types returned.
20290	//
20291	// Valid Values: user | engine-default
20292	Source *string `type:"string"`
20293}
20294
20295// String returns the string representation.
20296//
20297// API parameter values that are decorated as "sensitive" in the API will not
20298// be included in the string output. The member name will be present, but the
20299// value will be replaced with "sensitive".
20300func (s DescribeClusterParametersInput) String() string {
20301	return awsutil.Prettify(s)
20302}
20303
20304// GoString returns the string representation.
20305//
20306// API parameter values that are decorated as "sensitive" in the API will not
20307// be included in the string output. The member name will be present, but the
20308// value will be replaced with "sensitive".
20309func (s DescribeClusterParametersInput) GoString() string {
20310	return s.String()
20311}
20312
20313// Validate inspects the fields of the type to determine if they are valid.
20314func (s *DescribeClusterParametersInput) Validate() error {
20315	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterParametersInput"}
20316	if s.ParameterGroupName == nil {
20317		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
20318	}
20319
20320	if invalidParams.Len() > 0 {
20321		return invalidParams
20322	}
20323	return nil
20324}
20325
20326// SetMarker sets the Marker field's value.
20327func (s *DescribeClusterParametersInput) SetMarker(v string) *DescribeClusterParametersInput {
20328	s.Marker = &v
20329	return s
20330}
20331
20332// SetMaxRecords sets the MaxRecords field's value.
20333func (s *DescribeClusterParametersInput) SetMaxRecords(v int64) *DescribeClusterParametersInput {
20334	s.MaxRecords = &v
20335	return s
20336}
20337
20338// SetParameterGroupName sets the ParameterGroupName field's value.
20339func (s *DescribeClusterParametersInput) SetParameterGroupName(v string) *DescribeClusterParametersInput {
20340	s.ParameterGroupName = &v
20341	return s
20342}
20343
20344// SetSource sets the Source field's value.
20345func (s *DescribeClusterParametersInput) SetSource(v string) *DescribeClusterParametersInput {
20346	s.Source = &v
20347	return s
20348}
20349
20350// Contains the output from the DescribeClusterParameters action.
20351type DescribeClusterParametersOutput struct {
20352	_ struct{} `type:"structure"`
20353
20354	// A value that indicates the starting point for the next set of response records
20355	// in a subsequent request. If a value is returned in a response, you can retrieve
20356	// the next set of records by providing this returned marker value in the Marker
20357	// parameter and retrying the command. If the Marker field is empty, all response
20358	// records have been retrieved for the request.
20359	Marker *string `type:"string"`
20360
20361	// A list of Parameter instances. Each instance lists the parameters of one
20362	// cluster parameter group.
20363	Parameters []*Parameter `locationNameList:"Parameter" type:"list"`
20364}
20365
20366// String returns the string representation.
20367//
20368// API parameter values that are decorated as "sensitive" in the API will not
20369// be included in the string output. The member name will be present, but the
20370// value will be replaced with "sensitive".
20371func (s DescribeClusterParametersOutput) String() string {
20372	return awsutil.Prettify(s)
20373}
20374
20375// GoString returns the string representation.
20376//
20377// API parameter values that are decorated as "sensitive" in the API will not
20378// be included in the string output. The member name will be present, but the
20379// value will be replaced with "sensitive".
20380func (s DescribeClusterParametersOutput) GoString() string {
20381	return s.String()
20382}
20383
20384// SetMarker sets the Marker field's value.
20385func (s *DescribeClusterParametersOutput) SetMarker(v string) *DescribeClusterParametersOutput {
20386	s.Marker = &v
20387	return s
20388}
20389
20390// SetParameters sets the Parameters field's value.
20391func (s *DescribeClusterParametersOutput) SetParameters(v []*Parameter) *DescribeClusterParametersOutput {
20392	s.Parameters = v
20393	return s
20394}
20395
20396type DescribeClusterSecurityGroupsInput struct {
20397	_ struct{} `type:"structure"`
20398
20399	// The name of a cluster security group for which you are requesting details.
20400	// You can specify either the Marker parameter or a ClusterSecurityGroupName
20401	// parameter, but not both.
20402	//
20403	// Example: securitygroup1
20404	ClusterSecurityGroupName *string `type:"string"`
20405
20406	// An optional parameter that specifies the starting point to return a set of
20407	// response records. When the results of a DescribeClusterSecurityGroups request
20408	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
20409	// in the Marker field of the response. You can retrieve the next set of response
20410	// records by providing the returned marker value in the Marker parameter and
20411	// retrying the request.
20412	//
20413	// Constraints: You can specify either the ClusterSecurityGroupName parameter
20414	// or the Marker parameter, but not both.
20415	Marker *string `type:"string"`
20416
20417	// The maximum number of response records to return in each call. If the number
20418	// of remaining response records exceeds the specified MaxRecords value, a value
20419	// is returned in a marker field of the response. You can retrieve the next
20420	// set of records by retrying the command with the returned marker value.
20421	//
20422	// Default: 100
20423	//
20424	// Constraints: minimum 20, maximum 100.
20425	MaxRecords *int64 `type:"integer"`
20426
20427	// A tag key or keys for which you want to return all matching cluster security
20428	// groups that are associated with the specified key or keys. For example, suppose
20429	// that you have security groups that are tagged with keys called owner and
20430	// environment. If you specify both of these tag keys in the request, Amazon
20431	// Redshift returns a response with the security groups that have either or
20432	// both of these tag keys associated with them.
20433	TagKeys []*string `locationNameList:"TagKey" type:"list"`
20434
20435	// A tag value or values for which you want to return all matching cluster security
20436	// groups that are associated with the specified tag value or values. For example,
20437	// suppose that you have security groups that are tagged with values called
20438	// admin and test. If you specify both of these tag values in the request, Amazon
20439	// Redshift returns a response with the security groups that have either or
20440	// both of these tag values associated with them.
20441	TagValues []*string `locationNameList:"TagValue" type:"list"`
20442}
20443
20444// String returns the string representation.
20445//
20446// API parameter values that are decorated as "sensitive" in the API will not
20447// be included in the string output. The member name will be present, but the
20448// value will be replaced with "sensitive".
20449func (s DescribeClusterSecurityGroupsInput) String() string {
20450	return awsutil.Prettify(s)
20451}
20452
20453// GoString returns the string representation.
20454//
20455// API parameter values that are decorated as "sensitive" in the API will not
20456// be included in the string output. The member name will be present, but the
20457// value will be replaced with "sensitive".
20458func (s DescribeClusterSecurityGroupsInput) GoString() string {
20459	return s.String()
20460}
20461
20462// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
20463func (s *DescribeClusterSecurityGroupsInput) SetClusterSecurityGroupName(v string) *DescribeClusterSecurityGroupsInput {
20464	s.ClusterSecurityGroupName = &v
20465	return s
20466}
20467
20468// SetMarker sets the Marker field's value.
20469func (s *DescribeClusterSecurityGroupsInput) SetMarker(v string) *DescribeClusterSecurityGroupsInput {
20470	s.Marker = &v
20471	return s
20472}
20473
20474// SetMaxRecords sets the MaxRecords field's value.
20475func (s *DescribeClusterSecurityGroupsInput) SetMaxRecords(v int64) *DescribeClusterSecurityGroupsInput {
20476	s.MaxRecords = &v
20477	return s
20478}
20479
20480// SetTagKeys sets the TagKeys field's value.
20481func (s *DescribeClusterSecurityGroupsInput) SetTagKeys(v []*string) *DescribeClusterSecurityGroupsInput {
20482	s.TagKeys = v
20483	return s
20484}
20485
20486// SetTagValues sets the TagValues field's value.
20487func (s *DescribeClusterSecurityGroupsInput) SetTagValues(v []*string) *DescribeClusterSecurityGroupsInput {
20488	s.TagValues = v
20489	return s
20490}
20491
20492type DescribeClusterSecurityGroupsOutput struct {
20493	_ struct{} `type:"structure"`
20494
20495	// A list of ClusterSecurityGroup instances.
20496	ClusterSecurityGroups []*ClusterSecurityGroup `locationNameList:"ClusterSecurityGroup" type:"list"`
20497
20498	// A value that indicates the starting point for the next set of response records
20499	// in a subsequent request. If a value is returned in a response, you can retrieve
20500	// the next set of records by providing this returned marker value in the Marker
20501	// parameter and retrying the command. If the Marker field is empty, all response
20502	// records have been retrieved for the request.
20503	Marker *string `type:"string"`
20504}
20505
20506// String returns the string representation.
20507//
20508// API parameter values that are decorated as "sensitive" in the API will not
20509// be included in the string output. The member name will be present, but the
20510// value will be replaced with "sensitive".
20511func (s DescribeClusterSecurityGroupsOutput) String() string {
20512	return awsutil.Prettify(s)
20513}
20514
20515// GoString returns the string representation.
20516//
20517// API parameter values that are decorated as "sensitive" in the API will not
20518// be included in the string output. The member name will be present, but the
20519// value will be replaced with "sensitive".
20520func (s DescribeClusterSecurityGroupsOutput) GoString() string {
20521	return s.String()
20522}
20523
20524// SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
20525func (s *DescribeClusterSecurityGroupsOutput) SetClusterSecurityGroups(v []*ClusterSecurityGroup) *DescribeClusterSecurityGroupsOutput {
20526	s.ClusterSecurityGroups = v
20527	return s
20528}
20529
20530// SetMarker sets the Marker field's value.
20531func (s *DescribeClusterSecurityGroupsOutput) SetMarker(v string) *DescribeClusterSecurityGroupsOutput {
20532	s.Marker = &v
20533	return s
20534}
20535
20536type DescribeClusterSnapshotsInput struct {
20537	_ struct{} `type:"structure"`
20538
20539	// A value that indicates whether to return snapshots only for an existing cluster.
20540	// You can perform table-level restore only by using a snapshot of an existing
20541	// cluster, that is, a cluster that has not been deleted. Values for this parameter
20542	// work as follows:
20543	//
20544	//    * If ClusterExists is set to true, ClusterIdentifier is required.
20545	//
20546	//    * If ClusterExists is set to false and ClusterIdentifier isn't specified,
20547	//    all snapshots associated with deleted clusters (orphaned snapshots) are
20548	//    returned.
20549	//
20550	//    * If ClusterExists is set to false and ClusterIdentifier is specified
20551	//    for a deleted cluster, snapshots associated with that cluster are returned.
20552	//
20553	//    * If ClusterExists is set to false and ClusterIdentifier is specified
20554	//    for an existing cluster, no snapshots are returned.
20555	ClusterExists *bool `type:"boolean"`
20556
20557	// The identifier of the cluster which generated the requested snapshots.
20558	ClusterIdentifier *string `type:"string"`
20559
20560	// A time value that requests only snapshots created at or before the specified
20561	// time. The time value is specified in ISO 8601 format. For more information
20562	// about ISO 8601, go to the ISO8601 Wikipedia page. (http://en.wikipedia.org/wiki/ISO_8601)
20563	//
20564	// Example: 2012-07-16T18:00:00Z
20565	EndTime *time.Time `type:"timestamp"`
20566
20567	// An optional parameter that specifies the starting point to return a set of
20568	// response records. When the results of a DescribeClusterSnapshots request
20569	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
20570	// in the Marker field of the response. You can retrieve the next set of response
20571	// records by providing the returned marker value in the Marker parameter and
20572	// retrying the request.
20573	Marker *string `type:"string"`
20574
20575	// The maximum number of response records to return in each call. If the number
20576	// of remaining response records exceeds the specified MaxRecords value, a value
20577	// is returned in a marker field of the response. You can retrieve the next
20578	// set of records by retrying the command with the returned marker value.
20579	//
20580	// Default: 100
20581	//
20582	// Constraints: minimum 20, maximum 100.
20583	MaxRecords *int64 `type:"integer"`
20584
20585	// The Amazon Web Services account used to create or copy the snapshot. Use
20586	// this field to filter the results to snapshots owned by a particular account.
20587	// To describe snapshots you own, either specify your Amazon Web Services account,
20588	// or do not specify the parameter.
20589	OwnerAccount *string `type:"string"`
20590
20591	// The snapshot identifier of the snapshot about which to return information.
20592	SnapshotIdentifier *string `type:"string"`
20593
20594	// The type of snapshots for which you are requesting information. By default,
20595	// snapshots of all types are returned.
20596	//
20597	// Valid Values: automated | manual
20598	SnapshotType *string `type:"string"`
20599
20600	SortingEntities []*SnapshotSortingEntity `locationNameList:"SnapshotSortingEntity" type:"list"`
20601
20602	// A value that requests only snapshots created at or after the specified time.
20603	// The time value is specified in ISO 8601 format. For more information about
20604	// ISO 8601, go to the ISO8601 Wikipedia page. (http://en.wikipedia.org/wiki/ISO_8601)
20605	//
20606	// Example: 2012-07-16T18:00:00Z
20607	StartTime *time.Time `type:"timestamp"`
20608
20609	// A tag key or keys for which you want to return all matching cluster snapshots
20610	// that are associated with the specified key or keys. For example, suppose
20611	// that you have snapshots that are tagged with keys called owner and environment.
20612	// If you specify both of these tag keys in the request, Amazon Redshift returns
20613	// a response with the snapshots that have either or both of these tag keys
20614	// associated with them.
20615	TagKeys []*string `locationNameList:"TagKey" type:"list"`
20616
20617	// A tag value or values for which you want to return all matching cluster snapshots
20618	// that are associated with the specified tag value or values. For example,
20619	// suppose that you have snapshots that are tagged with values called admin
20620	// and test. If you specify both of these tag values in the request, Amazon
20621	// Redshift returns a response with the snapshots that have either or both of
20622	// these tag values associated with them.
20623	TagValues []*string `locationNameList:"TagValue" type:"list"`
20624}
20625
20626// String returns the string representation.
20627//
20628// API parameter values that are decorated as "sensitive" in the API will not
20629// be included in the string output. The member name will be present, but the
20630// value will be replaced with "sensitive".
20631func (s DescribeClusterSnapshotsInput) String() string {
20632	return awsutil.Prettify(s)
20633}
20634
20635// GoString returns the string representation.
20636//
20637// API parameter values that are decorated as "sensitive" in the API will not
20638// be included in the string output. The member name will be present, but the
20639// value will be replaced with "sensitive".
20640func (s DescribeClusterSnapshotsInput) GoString() string {
20641	return s.String()
20642}
20643
20644// Validate inspects the fields of the type to determine if they are valid.
20645func (s *DescribeClusterSnapshotsInput) Validate() error {
20646	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterSnapshotsInput"}
20647	if s.SortingEntities != nil {
20648		for i, v := range s.SortingEntities {
20649			if v == nil {
20650				continue
20651			}
20652			if err := v.Validate(); err != nil {
20653				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SortingEntities", i), err.(request.ErrInvalidParams))
20654			}
20655		}
20656	}
20657
20658	if invalidParams.Len() > 0 {
20659		return invalidParams
20660	}
20661	return nil
20662}
20663
20664// SetClusterExists sets the ClusterExists field's value.
20665func (s *DescribeClusterSnapshotsInput) SetClusterExists(v bool) *DescribeClusterSnapshotsInput {
20666	s.ClusterExists = &v
20667	return s
20668}
20669
20670// SetClusterIdentifier sets the ClusterIdentifier field's value.
20671func (s *DescribeClusterSnapshotsInput) SetClusterIdentifier(v string) *DescribeClusterSnapshotsInput {
20672	s.ClusterIdentifier = &v
20673	return s
20674}
20675
20676// SetEndTime sets the EndTime field's value.
20677func (s *DescribeClusterSnapshotsInput) SetEndTime(v time.Time) *DescribeClusterSnapshotsInput {
20678	s.EndTime = &v
20679	return s
20680}
20681
20682// SetMarker sets the Marker field's value.
20683func (s *DescribeClusterSnapshotsInput) SetMarker(v string) *DescribeClusterSnapshotsInput {
20684	s.Marker = &v
20685	return s
20686}
20687
20688// SetMaxRecords sets the MaxRecords field's value.
20689func (s *DescribeClusterSnapshotsInput) SetMaxRecords(v int64) *DescribeClusterSnapshotsInput {
20690	s.MaxRecords = &v
20691	return s
20692}
20693
20694// SetOwnerAccount sets the OwnerAccount field's value.
20695func (s *DescribeClusterSnapshotsInput) SetOwnerAccount(v string) *DescribeClusterSnapshotsInput {
20696	s.OwnerAccount = &v
20697	return s
20698}
20699
20700// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
20701func (s *DescribeClusterSnapshotsInput) SetSnapshotIdentifier(v string) *DescribeClusterSnapshotsInput {
20702	s.SnapshotIdentifier = &v
20703	return s
20704}
20705
20706// SetSnapshotType sets the SnapshotType field's value.
20707func (s *DescribeClusterSnapshotsInput) SetSnapshotType(v string) *DescribeClusterSnapshotsInput {
20708	s.SnapshotType = &v
20709	return s
20710}
20711
20712// SetSortingEntities sets the SortingEntities field's value.
20713func (s *DescribeClusterSnapshotsInput) SetSortingEntities(v []*SnapshotSortingEntity) *DescribeClusterSnapshotsInput {
20714	s.SortingEntities = v
20715	return s
20716}
20717
20718// SetStartTime sets the StartTime field's value.
20719func (s *DescribeClusterSnapshotsInput) SetStartTime(v time.Time) *DescribeClusterSnapshotsInput {
20720	s.StartTime = &v
20721	return s
20722}
20723
20724// SetTagKeys sets the TagKeys field's value.
20725func (s *DescribeClusterSnapshotsInput) SetTagKeys(v []*string) *DescribeClusterSnapshotsInput {
20726	s.TagKeys = v
20727	return s
20728}
20729
20730// SetTagValues sets the TagValues field's value.
20731func (s *DescribeClusterSnapshotsInput) SetTagValues(v []*string) *DescribeClusterSnapshotsInput {
20732	s.TagValues = v
20733	return s
20734}
20735
20736// Contains the output from the DescribeClusterSnapshots action.
20737type DescribeClusterSnapshotsOutput struct {
20738	_ struct{} `type:"structure"`
20739
20740	// A value that indicates the starting point for the next set of response records
20741	// in a subsequent request. If a value is returned in a response, you can retrieve
20742	// the next set of records by providing this returned marker value in the Marker
20743	// parameter and retrying the command. If the Marker field is empty, all response
20744	// records have been retrieved for the request.
20745	Marker *string `type:"string"`
20746
20747	// A list of Snapshot instances.
20748	Snapshots []*Snapshot `locationNameList:"Snapshot" type:"list"`
20749}
20750
20751// String returns the string representation.
20752//
20753// API parameter values that are decorated as "sensitive" in the API will not
20754// be included in the string output. The member name will be present, but the
20755// value will be replaced with "sensitive".
20756func (s DescribeClusterSnapshotsOutput) String() string {
20757	return awsutil.Prettify(s)
20758}
20759
20760// GoString returns the string representation.
20761//
20762// API parameter values that are decorated as "sensitive" in the API will not
20763// be included in the string output. The member name will be present, but the
20764// value will be replaced with "sensitive".
20765func (s DescribeClusterSnapshotsOutput) GoString() string {
20766	return s.String()
20767}
20768
20769// SetMarker sets the Marker field's value.
20770func (s *DescribeClusterSnapshotsOutput) SetMarker(v string) *DescribeClusterSnapshotsOutput {
20771	s.Marker = &v
20772	return s
20773}
20774
20775// SetSnapshots sets the Snapshots field's value.
20776func (s *DescribeClusterSnapshotsOutput) SetSnapshots(v []*Snapshot) *DescribeClusterSnapshotsOutput {
20777	s.Snapshots = v
20778	return s
20779}
20780
20781type DescribeClusterSubnetGroupsInput struct {
20782	_ struct{} `type:"structure"`
20783
20784	// The name of the cluster subnet group for which information is requested.
20785	ClusterSubnetGroupName *string `type:"string"`
20786
20787	// An optional parameter that specifies the starting point to return a set of
20788	// response records. When the results of a DescribeClusterSubnetGroups request
20789	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
20790	// in the Marker field of the response. You can retrieve the next set of response
20791	// records by providing the returned marker value in the Marker parameter and
20792	// retrying the request.
20793	Marker *string `type:"string"`
20794
20795	// The maximum number of response records to return in each call. If the number
20796	// of remaining response records exceeds the specified MaxRecords value, a value
20797	// is returned in a marker field of the response. You can retrieve the next
20798	// set of records by retrying the command with the returned marker value.
20799	//
20800	// Default: 100
20801	//
20802	// Constraints: minimum 20, maximum 100.
20803	MaxRecords *int64 `type:"integer"`
20804
20805	// A tag key or keys for which you want to return all matching cluster subnet
20806	// groups that are associated with the specified key or keys. For example, suppose
20807	// that you have subnet groups that are tagged with keys called owner and environment.
20808	// If you specify both of these tag keys in the request, Amazon Redshift returns
20809	// a response with the subnet groups that have either or both of these tag keys
20810	// associated with them.
20811	TagKeys []*string `locationNameList:"TagKey" type:"list"`
20812
20813	// A tag value or values for which you want to return all matching cluster subnet
20814	// groups that are associated with the specified tag value or values. For example,
20815	// suppose that you have subnet groups that are tagged with values called admin
20816	// and test. If you specify both of these tag values in the request, Amazon
20817	// Redshift returns a response with the subnet groups that have either or both
20818	// of these tag values associated with them.
20819	TagValues []*string `locationNameList:"TagValue" type:"list"`
20820}
20821
20822// String returns the string representation.
20823//
20824// API parameter values that are decorated as "sensitive" in the API will not
20825// be included in the string output. The member name will be present, but the
20826// value will be replaced with "sensitive".
20827func (s DescribeClusterSubnetGroupsInput) String() string {
20828	return awsutil.Prettify(s)
20829}
20830
20831// GoString returns the string representation.
20832//
20833// API parameter values that are decorated as "sensitive" in the API will not
20834// be included in the string output. The member name will be present, but the
20835// value will be replaced with "sensitive".
20836func (s DescribeClusterSubnetGroupsInput) GoString() string {
20837	return s.String()
20838}
20839
20840// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
20841func (s *DescribeClusterSubnetGroupsInput) SetClusterSubnetGroupName(v string) *DescribeClusterSubnetGroupsInput {
20842	s.ClusterSubnetGroupName = &v
20843	return s
20844}
20845
20846// SetMarker sets the Marker field's value.
20847func (s *DescribeClusterSubnetGroupsInput) SetMarker(v string) *DescribeClusterSubnetGroupsInput {
20848	s.Marker = &v
20849	return s
20850}
20851
20852// SetMaxRecords sets the MaxRecords field's value.
20853func (s *DescribeClusterSubnetGroupsInput) SetMaxRecords(v int64) *DescribeClusterSubnetGroupsInput {
20854	s.MaxRecords = &v
20855	return s
20856}
20857
20858// SetTagKeys sets the TagKeys field's value.
20859func (s *DescribeClusterSubnetGroupsInput) SetTagKeys(v []*string) *DescribeClusterSubnetGroupsInput {
20860	s.TagKeys = v
20861	return s
20862}
20863
20864// SetTagValues sets the TagValues field's value.
20865func (s *DescribeClusterSubnetGroupsInput) SetTagValues(v []*string) *DescribeClusterSubnetGroupsInput {
20866	s.TagValues = v
20867	return s
20868}
20869
20870// Contains the output from the DescribeClusterSubnetGroups action.
20871type DescribeClusterSubnetGroupsOutput struct {
20872	_ struct{} `type:"structure"`
20873
20874	// A list of ClusterSubnetGroup instances.
20875	ClusterSubnetGroups []*ClusterSubnetGroup `locationNameList:"ClusterSubnetGroup" type:"list"`
20876
20877	// A value that indicates the starting point for the next set of response records
20878	// in a subsequent request. If a value is returned in a response, you can retrieve
20879	// the next set of records by providing this returned marker value in the Marker
20880	// parameter and retrying the command. If the Marker field is empty, all response
20881	// records have been retrieved for the request.
20882	Marker *string `type:"string"`
20883}
20884
20885// String returns the string representation.
20886//
20887// API parameter values that are decorated as "sensitive" in the API will not
20888// be included in the string output. The member name will be present, but the
20889// value will be replaced with "sensitive".
20890func (s DescribeClusterSubnetGroupsOutput) String() string {
20891	return awsutil.Prettify(s)
20892}
20893
20894// GoString returns the string representation.
20895//
20896// API parameter values that are decorated as "sensitive" in the API will not
20897// be included in the string output. The member name will be present, but the
20898// value will be replaced with "sensitive".
20899func (s DescribeClusterSubnetGroupsOutput) GoString() string {
20900	return s.String()
20901}
20902
20903// SetClusterSubnetGroups sets the ClusterSubnetGroups field's value.
20904func (s *DescribeClusterSubnetGroupsOutput) SetClusterSubnetGroups(v []*ClusterSubnetGroup) *DescribeClusterSubnetGroupsOutput {
20905	s.ClusterSubnetGroups = v
20906	return s
20907}
20908
20909// SetMarker sets the Marker field's value.
20910func (s *DescribeClusterSubnetGroupsOutput) SetMarker(v string) *DescribeClusterSubnetGroupsOutput {
20911	s.Marker = &v
20912	return s
20913}
20914
20915type DescribeClusterTracksInput struct {
20916	_ struct{} `type:"structure"`
20917
20918	// The name of the maintenance track.
20919	MaintenanceTrackName *string `type:"string"`
20920
20921	// An optional parameter that specifies the starting point to return a set of
20922	// response records. When the results of a DescribeClusterTracks request exceed
20923	// the value specified in MaxRecords, Amazon Redshift returns a value in the
20924	// Marker field of the response. You can retrieve the next set of response records
20925	// by providing the returned marker value in the Marker parameter and retrying
20926	// the request.
20927	Marker *string `type:"string"`
20928
20929	// An integer value for the maximum number of maintenance tracks to return.
20930	MaxRecords *int64 `type:"integer"`
20931}
20932
20933// String returns the string representation.
20934//
20935// API parameter values that are decorated as "sensitive" in the API will not
20936// be included in the string output. The member name will be present, but the
20937// value will be replaced with "sensitive".
20938func (s DescribeClusterTracksInput) String() string {
20939	return awsutil.Prettify(s)
20940}
20941
20942// GoString returns the string representation.
20943//
20944// API parameter values that are decorated as "sensitive" in the API will not
20945// be included in the string output. The member name will be present, but the
20946// value will be replaced with "sensitive".
20947func (s DescribeClusterTracksInput) GoString() string {
20948	return s.String()
20949}
20950
20951// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
20952func (s *DescribeClusterTracksInput) SetMaintenanceTrackName(v string) *DescribeClusterTracksInput {
20953	s.MaintenanceTrackName = &v
20954	return s
20955}
20956
20957// SetMarker sets the Marker field's value.
20958func (s *DescribeClusterTracksInput) SetMarker(v string) *DescribeClusterTracksInput {
20959	s.Marker = &v
20960	return s
20961}
20962
20963// SetMaxRecords sets the MaxRecords field's value.
20964func (s *DescribeClusterTracksInput) SetMaxRecords(v int64) *DescribeClusterTracksInput {
20965	s.MaxRecords = &v
20966	return s
20967}
20968
20969type DescribeClusterTracksOutput struct {
20970	_ struct{} `type:"structure"`
20971
20972	// A list of maintenance tracks output by the DescribeClusterTracks operation.
20973	MaintenanceTracks []*MaintenanceTrack `locationNameList:"MaintenanceTrack" type:"list"`
20974
20975	// The starting point to return a set of response tracklist records. You can
20976	// retrieve the next set of response records by providing the returned marker
20977	// value in the Marker parameter and retrying the request.
20978	Marker *string `type:"string"`
20979}
20980
20981// String returns the string representation.
20982//
20983// API parameter values that are decorated as "sensitive" in the API will not
20984// be included in the string output. The member name will be present, but the
20985// value will be replaced with "sensitive".
20986func (s DescribeClusterTracksOutput) String() string {
20987	return awsutil.Prettify(s)
20988}
20989
20990// GoString returns the string representation.
20991//
20992// API parameter values that are decorated as "sensitive" in the API will not
20993// be included in the string output. The member name will be present, but the
20994// value will be replaced with "sensitive".
20995func (s DescribeClusterTracksOutput) GoString() string {
20996	return s.String()
20997}
20998
20999// SetMaintenanceTracks sets the MaintenanceTracks field's value.
21000func (s *DescribeClusterTracksOutput) SetMaintenanceTracks(v []*MaintenanceTrack) *DescribeClusterTracksOutput {
21001	s.MaintenanceTracks = v
21002	return s
21003}
21004
21005// SetMarker sets the Marker field's value.
21006func (s *DescribeClusterTracksOutput) SetMarker(v string) *DescribeClusterTracksOutput {
21007	s.Marker = &v
21008	return s
21009}
21010
21011type DescribeClusterVersionsInput struct {
21012	_ struct{} `type:"structure"`
21013
21014	// The name of a specific cluster parameter group family to return details for.
21015	//
21016	// Constraints:
21017	//
21018	//    * Must be 1 to 255 alphanumeric characters
21019	//
21020	//    * First character must be a letter
21021	//
21022	//    * Cannot end with a hyphen or contain two consecutive hyphens
21023	ClusterParameterGroupFamily *string `type:"string"`
21024
21025	// The specific cluster version to return.
21026	//
21027	// Example: 1.0
21028	ClusterVersion *string `type:"string"`
21029
21030	// An optional parameter that specifies the starting point to return a set of
21031	// response records. When the results of a DescribeClusterVersions request exceed
21032	// the value specified in MaxRecords, Amazon Web Services returns a value in
21033	// the Marker field of the response. You can retrieve the next set of response
21034	// records by providing the returned marker value in the Marker parameter and
21035	// retrying the request.
21036	Marker *string `type:"string"`
21037
21038	// The maximum number of response records to return in each call. If the number
21039	// of remaining response records exceeds the specified MaxRecords value, a value
21040	// is returned in a marker field of the response. You can retrieve the next
21041	// set of records by retrying the command with the returned marker value.
21042	//
21043	// Default: 100
21044	//
21045	// Constraints: minimum 20, maximum 100.
21046	MaxRecords *int64 `type:"integer"`
21047}
21048
21049// String returns the string representation.
21050//
21051// API parameter values that are decorated as "sensitive" in the API will not
21052// be included in the string output. The member name will be present, but the
21053// value will be replaced with "sensitive".
21054func (s DescribeClusterVersionsInput) String() string {
21055	return awsutil.Prettify(s)
21056}
21057
21058// GoString returns the string representation.
21059//
21060// API parameter values that are decorated as "sensitive" in the API will not
21061// be included in the string output. The member name will be present, but the
21062// value will be replaced with "sensitive".
21063func (s DescribeClusterVersionsInput) GoString() string {
21064	return s.String()
21065}
21066
21067// SetClusterParameterGroupFamily sets the ClusterParameterGroupFamily field's value.
21068func (s *DescribeClusterVersionsInput) SetClusterParameterGroupFamily(v string) *DescribeClusterVersionsInput {
21069	s.ClusterParameterGroupFamily = &v
21070	return s
21071}
21072
21073// SetClusterVersion sets the ClusterVersion field's value.
21074func (s *DescribeClusterVersionsInput) SetClusterVersion(v string) *DescribeClusterVersionsInput {
21075	s.ClusterVersion = &v
21076	return s
21077}
21078
21079// SetMarker sets the Marker field's value.
21080func (s *DescribeClusterVersionsInput) SetMarker(v string) *DescribeClusterVersionsInput {
21081	s.Marker = &v
21082	return s
21083}
21084
21085// SetMaxRecords sets the MaxRecords field's value.
21086func (s *DescribeClusterVersionsInput) SetMaxRecords(v int64) *DescribeClusterVersionsInput {
21087	s.MaxRecords = &v
21088	return s
21089}
21090
21091// Contains the output from the DescribeClusterVersions action.
21092type DescribeClusterVersionsOutput struct {
21093	_ struct{} `type:"structure"`
21094
21095	// A list of Version elements.
21096	ClusterVersions []*ClusterVersion `locationNameList:"ClusterVersion" type:"list"`
21097
21098	// A value that indicates the starting point for the next set of response records
21099	// in a subsequent request. If a value is returned in a response, you can retrieve
21100	// the next set of records by providing this returned marker value in the Marker
21101	// parameter and retrying the command. If the Marker field is empty, all response
21102	// records have been retrieved for the request.
21103	Marker *string `type:"string"`
21104}
21105
21106// String returns the string representation.
21107//
21108// API parameter values that are decorated as "sensitive" in the API will not
21109// be included in the string output. The member name will be present, but the
21110// value will be replaced with "sensitive".
21111func (s DescribeClusterVersionsOutput) String() string {
21112	return awsutil.Prettify(s)
21113}
21114
21115// GoString returns the string representation.
21116//
21117// API parameter values that are decorated as "sensitive" in the API will not
21118// be included in the string output. The member name will be present, but the
21119// value will be replaced with "sensitive".
21120func (s DescribeClusterVersionsOutput) GoString() string {
21121	return s.String()
21122}
21123
21124// SetClusterVersions sets the ClusterVersions field's value.
21125func (s *DescribeClusterVersionsOutput) SetClusterVersions(v []*ClusterVersion) *DescribeClusterVersionsOutput {
21126	s.ClusterVersions = v
21127	return s
21128}
21129
21130// SetMarker sets the Marker field's value.
21131func (s *DescribeClusterVersionsOutput) SetMarker(v string) *DescribeClusterVersionsOutput {
21132	s.Marker = &v
21133	return s
21134}
21135
21136type DescribeClustersInput struct {
21137	_ struct{} `type:"structure"`
21138
21139	// The unique identifier of a cluster whose properties you are requesting. This
21140	// parameter is case sensitive.
21141	//
21142	// The default is that all clusters defined for an account are returned.
21143	ClusterIdentifier *string `type:"string"`
21144
21145	// An optional parameter that specifies the starting point to return a set of
21146	// response records. When the results of a DescribeClusters request exceed the
21147	// value specified in MaxRecords, Amazon Web Services returns a value in the
21148	// Marker field of the response. You can retrieve the next set of response records
21149	// by providing the returned marker value in the Marker parameter and retrying
21150	// the request.
21151	//
21152	// Constraints: You can specify either the ClusterIdentifier parameter or the
21153	// Marker parameter, but not both.
21154	Marker *string `type:"string"`
21155
21156	// The maximum number of response records to return in each call. If the number
21157	// of remaining response records exceeds the specified MaxRecords value, a value
21158	// is returned in a marker field of the response. You can retrieve the next
21159	// set of records by retrying the command with the returned marker value.
21160	//
21161	// Default: 100
21162	//
21163	// Constraints: minimum 20, maximum 100.
21164	MaxRecords *int64 `type:"integer"`
21165
21166	// A tag key or keys for which you want to return all matching clusters that
21167	// are associated with the specified key or keys. For example, suppose that
21168	// you have clusters that are tagged with keys called owner and environment.
21169	// If you specify both of these tag keys in the request, Amazon Redshift returns
21170	// a response with the clusters that have either or both of these tag keys associated
21171	// with them.
21172	TagKeys []*string `locationNameList:"TagKey" type:"list"`
21173
21174	// A tag value or values for which you want to return all matching clusters
21175	// that are associated with the specified tag value or values. For example,
21176	// suppose that you have clusters that are tagged with values called admin and
21177	// test. If you specify both of these tag values in the request, Amazon Redshift
21178	// returns a response with the clusters that have either or both of these tag
21179	// values associated with them.
21180	TagValues []*string `locationNameList:"TagValue" type:"list"`
21181}
21182
21183// String returns the string representation.
21184//
21185// API parameter values that are decorated as "sensitive" in the API will not
21186// be included in the string output. The member name will be present, but the
21187// value will be replaced with "sensitive".
21188func (s DescribeClustersInput) String() string {
21189	return awsutil.Prettify(s)
21190}
21191
21192// GoString returns the string representation.
21193//
21194// API parameter values that are decorated as "sensitive" in the API will not
21195// be included in the string output. The member name will be present, but the
21196// value will be replaced with "sensitive".
21197func (s DescribeClustersInput) GoString() string {
21198	return s.String()
21199}
21200
21201// SetClusterIdentifier sets the ClusterIdentifier field's value.
21202func (s *DescribeClustersInput) SetClusterIdentifier(v string) *DescribeClustersInput {
21203	s.ClusterIdentifier = &v
21204	return s
21205}
21206
21207// SetMarker sets the Marker field's value.
21208func (s *DescribeClustersInput) SetMarker(v string) *DescribeClustersInput {
21209	s.Marker = &v
21210	return s
21211}
21212
21213// SetMaxRecords sets the MaxRecords field's value.
21214func (s *DescribeClustersInput) SetMaxRecords(v int64) *DescribeClustersInput {
21215	s.MaxRecords = &v
21216	return s
21217}
21218
21219// SetTagKeys sets the TagKeys field's value.
21220func (s *DescribeClustersInput) SetTagKeys(v []*string) *DescribeClustersInput {
21221	s.TagKeys = v
21222	return s
21223}
21224
21225// SetTagValues sets the TagValues field's value.
21226func (s *DescribeClustersInput) SetTagValues(v []*string) *DescribeClustersInput {
21227	s.TagValues = v
21228	return s
21229}
21230
21231// Contains the output from the DescribeClusters action.
21232type DescribeClustersOutput struct {
21233	_ struct{} `type:"structure"`
21234
21235	// A list of Cluster objects, where each object describes one cluster.
21236	Clusters []*Cluster `locationNameList:"Cluster" type:"list"`
21237
21238	// A value that indicates the starting point for the next set of response records
21239	// in a subsequent request. If a value is returned in a response, you can retrieve
21240	// the next set of records by providing this returned marker value in the Marker
21241	// parameter and retrying the command. If the Marker field is empty, all response
21242	// records have been retrieved for the request.
21243	Marker *string `type:"string"`
21244}
21245
21246// String returns the string representation.
21247//
21248// API parameter values that are decorated as "sensitive" in the API will not
21249// be included in the string output. The member name will be present, but the
21250// value will be replaced with "sensitive".
21251func (s DescribeClustersOutput) String() string {
21252	return awsutil.Prettify(s)
21253}
21254
21255// GoString returns the string representation.
21256//
21257// API parameter values that are decorated as "sensitive" in the API will not
21258// be included in the string output. The member name will be present, but the
21259// value will be replaced with "sensitive".
21260func (s DescribeClustersOutput) GoString() string {
21261	return s.String()
21262}
21263
21264// SetClusters sets the Clusters field's value.
21265func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
21266	s.Clusters = v
21267	return s
21268}
21269
21270// SetMarker sets the Marker field's value.
21271func (s *DescribeClustersOutput) SetMarker(v string) *DescribeClustersOutput {
21272	s.Marker = &v
21273	return s
21274}
21275
21276type DescribeDataSharesForConsumerInput struct {
21277	_ struct{} `type:"structure"`
21278
21279	// The Amazon Resource Name (ARN) of the consumer that returns in the list of
21280	// datashares.
21281	ConsumerArn *string `type:"string"`
21282
21283	// An optional parameter that specifies the starting point to return a set of
21284	// response records. When the results of a DescribeDataSharesForConsumer request
21285	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
21286	// field of the response. You can retrieve the next set of response records
21287	// by providing the returned marker value in the Marker parameter and retrying
21288	// the request.
21289	Marker *string `type:"string"`
21290
21291	// The maximum number of response records to return in each call. If the number
21292	// of remaining response records exceeds the specified MaxRecords value, a value
21293	// is returned in a marker field of the response. You can retrieve the next
21294	// set of records by retrying the command with the returned marker value.
21295	MaxRecords *int64 `type:"integer"`
21296
21297	// An identifier giving the status of a datashare in the consumer cluster. If
21298	// this field is specified, Amazon Redshift returns the list of datashares that
21299	// have the specified status.
21300	Status *string `type:"string" enum:"DataShareStatusForConsumer"`
21301}
21302
21303// String returns the string representation.
21304//
21305// API parameter values that are decorated as "sensitive" in the API will not
21306// be included in the string output. The member name will be present, but the
21307// value will be replaced with "sensitive".
21308func (s DescribeDataSharesForConsumerInput) String() string {
21309	return awsutil.Prettify(s)
21310}
21311
21312// GoString returns the string representation.
21313//
21314// API parameter values that are decorated as "sensitive" in the API will not
21315// be included in the string output. The member name will be present, but the
21316// value will be replaced with "sensitive".
21317func (s DescribeDataSharesForConsumerInput) GoString() string {
21318	return s.String()
21319}
21320
21321// SetConsumerArn sets the ConsumerArn field's value.
21322func (s *DescribeDataSharesForConsumerInput) SetConsumerArn(v string) *DescribeDataSharesForConsumerInput {
21323	s.ConsumerArn = &v
21324	return s
21325}
21326
21327// SetMarker sets the Marker field's value.
21328func (s *DescribeDataSharesForConsumerInput) SetMarker(v string) *DescribeDataSharesForConsumerInput {
21329	s.Marker = &v
21330	return s
21331}
21332
21333// SetMaxRecords sets the MaxRecords field's value.
21334func (s *DescribeDataSharesForConsumerInput) SetMaxRecords(v int64) *DescribeDataSharesForConsumerInput {
21335	s.MaxRecords = &v
21336	return s
21337}
21338
21339// SetStatus sets the Status field's value.
21340func (s *DescribeDataSharesForConsumerInput) SetStatus(v string) *DescribeDataSharesForConsumerInput {
21341	s.Status = &v
21342	return s
21343}
21344
21345type DescribeDataSharesForConsumerOutput struct {
21346	_ struct{} `type:"structure"`
21347
21348	// Shows the results of datashares available for consumers.
21349	DataShares []*DataShare `type:"list"`
21350
21351	// An optional parameter that specifies the starting point to return a set of
21352	// response records. When the results of a DescribeDataSharesForConsumer request
21353	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
21354	// field of the response. You can retrieve the next set of response records
21355	// by providing the returned marker value in the Marker parameter and retrying
21356	// the request.
21357	Marker *string `type:"string"`
21358}
21359
21360// String returns the string representation.
21361//
21362// API parameter values that are decorated as "sensitive" in the API will not
21363// be included in the string output. The member name will be present, but the
21364// value will be replaced with "sensitive".
21365func (s DescribeDataSharesForConsumerOutput) String() string {
21366	return awsutil.Prettify(s)
21367}
21368
21369// GoString returns the string representation.
21370//
21371// API parameter values that are decorated as "sensitive" in the API will not
21372// be included in the string output. The member name will be present, but the
21373// value will be replaced with "sensitive".
21374func (s DescribeDataSharesForConsumerOutput) GoString() string {
21375	return s.String()
21376}
21377
21378// SetDataShares sets the DataShares field's value.
21379func (s *DescribeDataSharesForConsumerOutput) SetDataShares(v []*DataShare) *DescribeDataSharesForConsumerOutput {
21380	s.DataShares = v
21381	return s
21382}
21383
21384// SetMarker sets the Marker field's value.
21385func (s *DescribeDataSharesForConsumerOutput) SetMarker(v string) *DescribeDataSharesForConsumerOutput {
21386	s.Marker = &v
21387	return s
21388}
21389
21390type DescribeDataSharesForProducerInput struct {
21391	_ struct{} `type:"structure"`
21392
21393	// An optional parameter that specifies the starting point to return a set of
21394	// response records. When the results of a DescribeDataSharesForProducer request
21395	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
21396	// field of the response. You can retrieve the next set of response records
21397	// by providing the returned marker value in the Marker parameter and retrying
21398	// the request.
21399	Marker *string `type:"string"`
21400
21401	// The maximum number of response records to return in each call. If the number
21402	// of remaining response records exceeds the specified MaxRecords value, a value
21403	// is returned in a marker field of the response. You can retrieve the next
21404	// set of records by retrying the command with the returned marker value.
21405	MaxRecords *int64 `type:"integer"`
21406
21407	// The Amazon Resource Name (ARN) of the producer that returns in the list of
21408	// datashares.
21409	ProducerArn *string `type:"string"`
21410
21411	// An identifier giving the status of a datashare in the producer. If this field
21412	// is specified, Amazon Redshift returns the list of datashares that have the
21413	// specified status.
21414	Status *string `type:"string" enum:"DataShareStatusForProducer"`
21415}
21416
21417// String returns the string representation.
21418//
21419// API parameter values that are decorated as "sensitive" in the API will not
21420// be included in the string output. The member name will be present, but the
21421// value will be replaced with "sensitive".
21422func (s DescribeDataSharesForProducerInput) String() string {
21423	return awsutil.Prettify(s)
21424}
21425
21426// GoString returns the string representation.
21427//
21428// API parameter values that are decorated as "sensitive" in the API will not
21429// be included in the string output. The member name will be present, but the
21430// value will be replaced with "sensitive".
21431func (s DescribeDataSharesForProducerInput) GoString() string {
21432	return s.String()
21433}
21434
21435// SetMarker sets the Marker field's value.
21436func (s *DescribeDataSharesForProducerInput) SetMarker(v string) *DescribeDataSharesForProducerInput {
21437	s.Marker = &v
21438	return s
21439}
21440
21441// SetMaxRecords sets the MaxRecords field's value.
21442func (s *DescribeDataSharesForProducerInput) SetMaxRecords(v int64) *DescribeDataSharesForProducerInput {
21443	s.MaxRecords = &v
21444	return s
21445}
21446
21447// SetProducerArn sets the ProducerArn field's value.
21448func (s *DescribeDataSharesForProducerInput) SetProducerArn(v string) *DescribeDataSharesForProducerInput {
21449	s.ProducerArn = &v
21450	return s
21451}
21452
21453// SetStatus sets the Status field's value.
21454func (s *DescribeDataSharesForProducerInput) SetStatus(v string) *DescribeDataSharesForProducerInput {
21455	s.Status = &v
21456	return s
21457}
21458
21459type DescribeDataSharesForProducerOutput struct {
21460	_ struct{} `type:"structure"`
21461
21462	// Shows the results of datashares available for producers.
21463	DataShares []*DataShare `type:"list"`
21464
21465	// An optional parameter that specifies the starting point to return a set of
21466	// response records. When the results of a DescribeDataSharesForProducer request
21467	// exceed the value specified in MaxRecords, AWS returns a value in the Marker
21468	// field of the response. You can retrieve the next set of response records
21469	// by providing the returned marker value in the Marker parameter and retrying
21470	// the request.
21471	Marker *string `type:"string"`
21472}
21473
21474// String returns the string representation.
21475//
21476// API parameter values that are decorated as "sensitive" in the API will not
21477// be included in the string output. The member name will be present, but the
21478// value will be replaced with "sensitive".
21479func (s DescribeDataSharesForProducerOutput) String() string {
21480	return awsutil.Prettify(s)
21481}
21482
21483// GoString returns the string representation.
21484//
21485// API parameter values that are decorated as "sensitive" in the API will not
21486// be included in the string output. The member name will be present, but the
21487// value will be replaced with "sensitive".
21488func (s DescribeDataSharesForProducerOutput) GoString() string {
21489	return s.String()
21490}
21491
21492// SetDataShares sets the DataShares field's value.
21493func (s *DescribeDataSharesForProducerOutput) SetDataShares(v []*DataShare) *DescribeDataSharesForProducerOutput {
21494	s.DataShares = v
21495	return s
21496}
21497
21498// SetMarker sets the Marker field's value.
21499func (s *DescribeDataSharesForProducerOutput) SetMarker(v string) *DescribeDataSharesForProducerOutput {
21500	s.Marker = &v
21501	return s
21502}
21503
21504type DescribeDataSharesInput struct {
21505	_ struct{} `type:"structure"`
21506
21507	// The identifier of the datashare to describe details of.
21508	DataShareArn *string `type:"string"`
21509
21510	// An optional parameter that specifies the starting point to return a set of
21511	// response records. When the results of a DescribeDataShares request exceed
21512	// the value specified in MaxRecords, AWS returns a value in the Marker field
21513	// of the response. You can retrieve the next set of response records by providing
21514	// the returned marker value in the Marker parameter and retrying the request.
21515	Marker *string `type:"string"`
21516
21517	// The maximum number of response records to return in each call. If the number
21518	// of remaining response records exceeds the specified MaxRecords value, a value
21519	// is returned in a marker field of the response. You can retrieve the next
21520	// set of records by retrying the command with the returned marker value.
21521	MaxRecords *int64 `type:"integer"`
21522}
21523
21524// String returns the string representation.
21525//
21526// API parameter values that are decorated as "sensitive" in the API will not
21527// be included in the string output. The member name will be present, but the
21528// value will be replaced with "sensitive".
21529func (s DescribeDataSharesInput) String() string {
21530	return awsutil.Prettify(s)
21531}
21532
21533// GoString returns the string representation.
21534//
21535// API parameter values that are decorated as "sensitive" in the API will not
21536// be included in the string output. The member name will be present, but the
21537// value will be replaced with "sensitive".
21538func (s DescribeDataSharesInput) GoString() string {
21539	return s.String()
21540}
21541
21542// SetDataShareArn sets the DataShareArn field's value.
21543func (s *DescribeDataSharesInput) SetDataShareArn(v string) *DescribeDataSharesInput {
21544	s.DataShareArn = &v
21545	return s
21546}
21547
21548// SetMarker sets the Marker field's value.
21549func (s *DescribeDataSharesInput) SetMarker(v string) *DescribeDataSharesInput {
21550	s.Marker = &v
21551	return s
21552}
21553
21554// SetMaxRecords sets the MaxRecords field's value.
21555func (s *DescribeDataSharesInput) SetMaxRecords(v int64) *DescribeDataSharesInput {
21556	s.MaxRecords = &v
21557	return s
21558}
21559
21560type DescribeDataSharesOutput struct {
21561	_ struct{} `type:"structure"`
21562
21563	// The results returned from describing datashares.
21564	DataShares []*DataShare `type:"list"`
21565
21566	// An optional parameter that specifies the starting point to return a set of
21567	// response records. When the results of a DescribeDataShares request exceed
21568	// the value specified in MaxRecords, AWS returns a value in the Marker field
21569	// of the response. You can retrieve the next set of response records by providing
21570	// the returned marker value in the Marker parameter and retrying the request.
21571	Marker *string `type:"string"`
21572}
21573
21574// String returns the string representation.
21575//
21576// API parameter values that are decorated as "sensitive" in the API will not
21577// be included in the string output. The member name will be present, but the
21578// value will be replaced with "sensitive".
21579func (s DescribeDataSharesOutput) String() string {
21580	return awsutil.Prettify(s)
21581}
21582
21583// GoString returns the string representation.
21584//
21585// API parameter values that are decorated as "sensitive" in the API will not
21586// be included in the string output. The member name will be present, but the
21587// value will be replaced with "sensitive".
21588func (s DescribeDataSharesOutput) GoString() string {
21589	return s.String()
21590}
21591
21592// SetDataShares sets the DataShares field's value.
21593func (s *DescribeDataSharesOutput) SetDataShares(v []*DataShare) *DescribeDataSharesOutput {
21594	s.DataShares = v
21595	return s
21596}
21597
21598// SetMarker sets the Marker field's value.
21599func (s *DescribeDataSharesOutput) SetMarker(v string) *DescribeDataSharesOutput {
21600	s.Marker = &v
21601	return s
21602}
21603
21604type DescribeDefaultClusterParametersInput struct {
21605	_ struct{} `type:"structure"`
21606
21607	// An optional parameter that specifies the starting point to return a set of
21608	// response records. When the results of a DescribeDefaultClusterParameters
21609	// request exceed the value specified in MaxRecords, Amazon Web Services returns
21610	// a value in the Marker field of the response. You can retrieve the next set
21611	// of response records by providing the returned marker value in the Marker
21612	// parameter and retrying the request.
21613	Marker *string `type:"string"`
21614
21615	// The maximum number of response records to return in each call. If the number
21616	// of remaining response records exceeds the specified MaxRecords value, a value
21617	// is returned in a marker field of the response. You can retrieve the next
21618	// set of records by retrying the command with the returned marker value.
21619	//
21620	// Default: 100
21621	//
21622	// Constraints: minimum 20, maximum 100.
21623	MaxRecords *int64 `type:"integer"`
21624
21625	// The name of the cluster parameter group family.
21626	//
21627	// ParameterGroupFamily is a required field
21628	ParameterGroupFamily *string `type:"string" required:"true"`
21629}
21630
21631// String returns the string representation.
21632//
21633// API parameter values that are decorated as "sensitive" in the API will not
21634// be included in the string output. The member name will be present, but the
21635// value will be replaced with "sensitive".
21636func (s DescribeDefaultClusterParametersInput) String() string {
21637	return awsutil.Prettify(s)
21638}
21639
21640// GoString returns the string representation.
21641//
21642// API parameter values that are decorated as "sensitive" in the API will not
21643// be included in the string output. The member name will be present, but the
21644// value will be replaced with "sensitive".
21645func (s DescribeDefaultClusterParametersInput) GoString() string {
21646	return s.String()
21647}
21648
21649// Validate inspects the fields of the type to determine if they are valid.
21650func (s *DescribeDefaultClusterParametersInput) Validate() error {
21651	invalidParams := request.ErrInvalidParams{Context: "DescribeDefaultClusterParametersInput"}
21652	if s.ParameterGroupFamily == nil {
21653		invalidParams.Add(request.NewErrParamRequired("ParameterGroupFamily"))
21654	}
21655
21656	if invalidParams.Len() > 0 {
21657		return invalidParams
21658	}
21659	return nil
21660}
21661
21662// SetMarker sets the Marker field's value.
21663func (s *DescribeDefaultClusterParametersInput) SetMarker(v string) *DescribeDefaultClusterParametersInput {
21664	s.Marker = &v
21665	return s
21666}
21667
21668// SetMaxRecords sets the MaxRecords field's value.
21669func (s *DescribeDefaultClusterParametersInput) SetMaxRecords(v int64) *DescribeDefaultClusterParametersInput {
21670	s.MaxRecords = &v
21671	return s
21672}
21673
21674// SetParameterGroupFamily sets the ParameterGroupFamily field's value.
21675func (s *DescribeDefaultClusterParametersInput) SetParameterGroupFamily(v string) *DescribeDefaultClusterParametersInput {
21676	s.ParameterGroupFamily = &v
21677	return s
21678}
21679
21680type DescribeDefaultClusterParametersOutput struct {
21681	_ struct{} `type:"structure"`
21682
21683	// Describes the default cluster parameters for a parameter group family.
21684	DefaultClusterParameters *DefaultClusterParameters `type:"structure"`
21685}
21686
21687// String returns the string representation.
21688//
21689// API parameter values that are decorated as "sensitive" in the API will not
21690// be included in the string output. The member name will be present, but the
21691// value will be replaced with "sensitive".
21692func (s DescribeDefaultClusterParametersOutput) String() string {
21693	return awsutil.Prettify(s)
21694}
21695
21696// GoString returns the string representation.
21697//
21698// API parameter values that are decorated as "sensitive" in the API will not
21699// be included in the string output. The member name will be present, but the
21700// value will be replaced with "sensitive".
21701func (s DescribeDefaultClusterParametersOutput) GoString() string {
21702	return s.String()
21703}
21704
21705// SetDefaultClusterParameters sets the DefaultClusterParameters field's value.
21706func (s *DescribeDefaultClusterParametersOutput) SetDefaultClusterParameters(v *DefaultClusterParameters) *DescribeDefaultClusterParametersOutput {
21707	s.DefaultClusterParameters = v
21708	return s
21709}
21710
21711type DescribeEndpointAccessInput struct {
21712	_ struct{} `type:"structure"`
21713
21714	// The cluster identifier associated with the described endpoint.
21715	ClusterIdentifier *string `type:"string"`
21716
21717	// The name of the endpoint to be described.
21718	EndpointName *string `type:"string"`
21719
21720	// An optional pagination token provided by a previous DescribeEndpointAccess
21721	// request. If this parameter is specified, the response includes only records
21722	// beyond the marker, up to the value specified by the MaxRecords parameter.
21723	Marker *string `type:"string"`
21724
21725	// The maximum number of records to include in the response. If more records
21726	// exist than the specified MaxRecords value, a pagination token called a Marker
21727	// is included in the response so that the remaining results can be retrieved.
21728	MaxRecords *int64 `type:"integer"`
21729
21730	// The Amazon Web Services account ID of the owner of the cluster.
21731	ResourceOwner *string `type:"string"`
21732
21733	// The virtual private cloud (VPC) identifier with access to the cluster.
21734	VpcId *string `type:"string"`
21735}
21736
21737// String returns the string representation.
21738//
21739// API parameter values that are decorated as "sensitive" in the API will not
21740// be included in the string output. The member name will be present, but the
21741// value will be replaced with "sensitive".
21742func (s DescribeEndpointAccessInput) String() string {
21743	return awsutil.Prettify(s)
21744}
21745
21746// GoString returns the string representation.
21747//
21748// API parameter values that are decorated as "sensitive" in the API will not
21749// be included in the string output. The member name will be present, but the
21750// value will be replaced with "sensitive".
21751func (s DescribeEndpointAccessInput) GoString() string {
21752	return s.String()
21753}
21754
21755// SetClusterIdentifier sets the ClusterIdentifier field's value.
21756func (s *DescribeEndpointAccessInput) SetClusterIdentifier(v string) *DescribeEndpointAccessInput {
21757	s.ClusterIdentifier = &v
21758	return s
21759}
21760
21761// SetEndpointName sets the EndpointName field's value.
21762func (s *DescribeEndpointAccessInput) SetEndpointName(v string) *DescribeEndpointAccessInput {
21763	s.EndpointName = &v
21764	return s
21765}
21766
21767// SetMarker sets the Marker field's value.
21768func (s *DescribeEndpointAccessInput) SetMarker(v string) *DescribeEndpointAccessInput {
21769	s.Marker = &v
21770	return s
21771}
21772
21773// SetMaxRecords sets the MaxRecords field's value.
21774func (s *DescribeEndpointAccessInput) SetMaxRecords(v int64) *DescribeEndpointAccessInput {
21775	s.MaxRecords = &v
21776	return s
21777}
21778
21779// SetResourceOwner sets the ResourceOwner field's value.
21780func (s *DescribeEndpointAccessInput) SetResourceOwner(v string) *DescribeEndpointAccessInput {
21781	s.ResourceOwner = &v
21782	return s
21783}
21784
21785// SetVpcId sets the VpcId field's value.
21786func (s *DescribeEndpointAccessInput) SetVpcId(v string) *DescribeEndpointAccessInput {
21787	s.VpcId = &v
21788	return s
21789}
21790
21791type DescribeEndpointAccessOutput struct {
21792	_ struct{} `type:"structure"`
21793
21794	// The list of endpoints with access to the cluster.
21795	EndpointAccessList []*EndpointAccess `type:"list"`
21796
21797	// An optional pagination token provided by a previous DescribeEndpointAccess
21798	// request. If this parameter is specified, the response includes only records
21799	// beyond the marker, up to the value specified by the MaxRecords parameter.
21800	Marker *string `type:"string"`
21801}
21802
21803// String returns the string representation.
21804//
21805// API parameter values that are decorated as "sensitive" in the API will not
21806// be included in the string output. The member name will be present, but the
21807// value will be replaced with "sensitive".
21808func (s DescribeEndpointAccessOutput) String() string {
21809	return awsutil.Prettify(s)
21810}
21811
21812// GoString returns the string representation.
21813//
21814// API parameter values that are decorated as "sensitive" in the API will not
21815// be included in the string output. The member name will be present, but the
21816// value will be replaced with "sensitive".
21817func (s DescribeEndpointAccessOutput) GoString() string {
21818	return s.String()
21819}
21820
21821// SetEndpointAccessList sets the EndpointAccessList field's value.
21822func (s *DescribeEndpointAccessOutput) SetEndpointAccessList(v []*EndpointAccess) *DescribeEndpointAccessOutput {
21823	s.EndpointAccessList = v
21824	return s
21825}
21826
21827// SetMarker sets the Marker field's value.
21828func (s *DescribeEndpointAccessOutput) SetMarker(v string) *DescribeEndpointAccessOutput {
21829	s.Marker = &v
21830	return s
21831}
21832
21833type DescribeEndpointAuthorizationInput struct {
21834	_ struct{} `type:"structure"`
21835
21836	// The AAmazon Web Services account ID of either the cluster owner (grantor)
21837	// or grantee. If Grantee parameter is true, then the Account value is of the
21838	// grantor.
21839	Account *string `type:"string"`
21840
21841	// The cluster identifier of the cluster to access.
21842	ClusterIdentifier *string `type:"string"`
21843
21844	// Indicates whether to check authorization from a grantor or grantee point
21845	// of view. If true, Amazon Redshift returns endpoint authorizations that you've
21846	// been granted. If false (default), checks authorization from a grantor point
21847	// of view.
21848	Grantee *bool `type:"boolean"`
21849
21850	// An optional pagination token provided by a previous DescribeEndpointAuthorization
21851	// request. If this parameter is specified, the response includes only records
21852	// beyond the marker, up to the value specified by the MaxRecords parameter.
21853	Marker *string `type:"string"`
21854
21855	// The maximum number of records to include in the response. If more records
21856	// exist than the specified MaxRecords value, a pagination token called a Marker
21857	// is included in the response so that the remaining results can be retrieved.
21858	MaxRecords *int64 `type:"integer"`
21859}
21860
21861// String returns the string representation.
21862//
21863// API parameter values that are decorated as "sensitive" in the API will not
21864// be included in the string output. The member name will be present, but the
21865// value will be replaced with "sensitive".
21866func (s DescribeEndpointAuthorizationInput) String() string {
21867	return awsutil.Prettify(s)
21868}
21869
21870// GoString returns the string representation.
21871//
21872// API parameter values that are decorated as "sensitive" in the API will not
21873// be included in the string output. The member name will be present, but the
21874// value will be replaced with "sensitive".
21875func (s DescribeEndpointAuthorizationInput) GoString() string {
21876	return s.String()
21877}
21878
21879// SetAccount sets the Account field's value.
21880func (s *DescribeEndpointAuthorizationInput) SetAccount(v string) *DescribeEndpointAuthorizationInput {
21881	s.Account = &v
21882	return s
21883}
21884
21885// SetClusterIdentifier sets the ClusterIdentifier field's value.
21886func (s *DescribeEndpointAuthorizationInput) SetClusterIdentifier(v string) *DescribeEndpointAuthorizationInput {
21887	s.ClusterIdentifier = &v
21888	return s
21889}
21890
21891// SetGrantee sets the Grantee field's value.
21892func (s *DescribeEndpointAuthorizationInput) SetGrantee(v bool) *DescribeEndpointAuthorizationInput {
21893	s.Grantee = &v
21894	return s
21895}
21896
21897// SetMarker sets the Marker field's value.
21898func (s *DescribeEndpointAuthorizationInput) SetMarker(v string) *DescribeEndpointAuthorizationInput {
21899	s.Marker = &v
21900	return s
21901}
21902
21903// SetMaxRecords sets the MaxRecords field's value.
21904func (s *DescribeEndpointAuthorizationInput) SetMaxRecords(v int64) *DescribeEndpointAuthorizationInput {
21905	s.MaxRecords = &v
21906	return s
21907}
21908
21909type DescribeEndpointAuthorizationOutput struct {
21910	_ struct{} `type:"structure"`
21911
21912	// The authorizations to an endpoint.
21913	EndpointAuthorizationList []*EndpointAuthorization `type:"list"`
21914
21915	// An optional pagination token provided by a previous DescribeEndpointAuthorization
21916	// request. If this parameter is specified, the response includes only records
21917	// beyond the marker, up to the value specified by the MaxRecords parameter.
21918	Marker *string `type:"string"`
21919}
21920
21921// String returns the string representation.
21922//
21923// API parameter values that are decorated as "sensitive" in the API will not
21924// be included in the string output. The member name will be present, but the
21925// value will be replaced with "sensitive".
21926func (s DescribeEndpointAuthorizationOutput) String() string {
21927	return awsutil.Prettify(s)
21928}
21929
21930// GoString returns the string representation.
21931//
21932// API parameter values that are decorated as "sensitive" in the API will not
21933// be included in the string output. The member name will be present, but the
21934// value will be replaced with "sensitive".
21935func (s DescribeEndpointAuthorizationOutput) GoString() string {
21936	return s.String()
21937}
21938
21939// SetEndpointAuthorizationList sets the EndpointAuthorizationList field's value.
21940func (s *DescribeEndpointAuthorizationOutput) SetEndpointAuthorizationList(v []*EndpointAuthorization) *DescribeEndpointAuthorizationOutput {
21941	s.EndpointAuthorizationList = v
21942	return s
21943}
21944
21945// SetMarker sets the Marker field's value.
21946func (s *DescribeEndpointAuthorizationOutput) SetMarker(v string) *DescribeEndpointAuthorizationOutput {
21947	s.Marker = &v
21948	return s
21949}
21950
21951type DescribeEventCategoriesInput struct {
21952	_ struct{} `type:"structure"`
21953
21954	// The source type, such as cluster or parameter group, to which the described
21955	// event categories apply.
21956	//
21957	// Valid values: cluster, cluster-snapshot, cluster-parameter-group, cluster-security-group,
21958	// and scheduled-action.
21959	SourceType *string `type:"string"`
21960}
21961
21962// String returns the string representation.
21963//
21964// API parameter values that are decorated as "sensitive" in the API will not
21965// be included in the string output. The member name will be present, but the
21966// value will be replaced with "sensitive".
21967func (s DescribeEventCategoriesInput) String() string {
21968	return awsutil.Prettify(s)
21969}
21970
21971// GoString returns the string representation.
21972//
21973// API parameter values that are decorated as "sensitive" in the API will not
21974// be included in the string output. The member name will be present, but the
21975// value will be replaced with "sensitive".
21976func (s DescribeEventCategoriesInput) GoString() string {
21977	return s.String()
21978}
21979
21980// SetSourceType sets the SourceType field's value.
21981func (s *DescribeEventCategoriesInput) SetSourceType(v string) *DescribeEventCategoriesInput {
21982	s.SourceType = &v
21983	return s
21984}
21985
21986type DescribeEventCategoriesOutput struct {
21987	_ struct{} `type:"structure"`
21988
21989	// A list of event categories descriptions.
21990	EventCategoriesMapList []*EventCategoriesMap `locationNameList:"EventCategoriesMap" type:"list"`
21991}
21992
21993// String returns the string representation.
21994//
21995// API parameter values that are decorated as "sensitive" in the API will not
21996// be included in the string output. The member name will be present, but the
21997// value will be replaced with "sensitive".
21998func (s DescribeEventCategoriesOutput) String() string {
21999	return awsutil.Prettify(s)
22000}
22001
22002// GoString returns the string representation.
22003//
22004// API parameter values that are decorated as "sensitive" in the API will not
22005// be included in the string output. The member name will be present, but the
22006// value will be replaced with "sensitive".
22007func (s DescribeEventCategoriesOutput) GoString() string {
22008	return s.String()
22009}
22010
22011// SetEventCategoriesMapList sets the EventCategoriesMapList field's value.
22012func (s *DescribeEventCategoriesOutput) SetEventCategoriesMapList(v []*EventCategoriesMap) *DescribeEventCategoriesOutput {
22013	s.EventCategoriesMapList = v
22014	return s
22015}
22016
22017type DescribeEventSubscriptionsInput struct {
22018	_ struct{} `type:"structure"`
22019
22020	// An optional parameter that specifies the starting point to return a set of
22021	// response records. When the results of a DescribeEventSubscriptions request
22022	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
22023	// in the Marker field of the response. You can retrieve the next set of response
22024	// records by providing the returned marker value in the Marker parameter and
22025	// retrying the request.
22026	Marker *string `type:"string"`
22027
22028	// The maximum number of response records to return in each call. If the number
22029	// of remaining response records exceeds the specified MaxRecords value, a value
22030	// is returned in a marker field of the response. You can retrieve the next
22031	// set of records by retrying the command with the returned marker value.
22032	//
22033	// Default: 100
22034	//
22035	// Constraints: minimum 20, maximum 100.
22036	MaxRecords *int64 `type:"integer"`
22037
22038	// The name of the Amazon Redshift event notification subscription to be described.
22039	SubscriptionName *string `type:"string"`
22040
22041	// A tag key or keys for which you want to return all matching event notification
22042	// subscriptions that are associated with the specified key or keys. For example,
22043	// suppose that you have subscriptions that are tagged with keys called owner
22044	// and environment. If you specify both of these tag keys in the request, Amazon
22045	// Redshift returns a response with the subscriptions that have either or both
22046	// of these tag keys associated with them.
22047	TagKeys []*string `locationNameList:"TagKey" type:"list"`
22048
22049	// A tag value or values for which you want to return all matching event notification
22050	// subscriptions that are associated with the specified tag value or values.
22051	// For example, suppose that you have subscriptions that are tagged with values
22052	// called admin and test. If you specify both of these tag values in the request,
22053	// Amazon Redshift returns a response with the subscriptions that have either
22054	// or both of these tag values associated with them.
22055	TagValues []*string `locationNameList:"TagValue" type:"list"`
22056}
22057
22058// String returns the string representation.
22059//
22060// API parameter values that are decorated as "sensitive" in the API will not
22061// be included in the string output. The member name will be present, but the
22062// value will be replaced with "sensitive".
22063func (s DescribeEventSubscriptionsInput) String() string {
22064	return awsutil.Prettify(s)
22065}
22066
22067// GoString returns the string representation.
22068//
22069// API parameter values that are decorated as "sensitive" in the API will not
22070// be included in the string output. The member name will be present, but the
22071// value will be replaced with "sensitive".
22072func (s DescribeEventSubscriptionsInput) GoString() string {
22073	return s.String()
22074}
22075
22076// SetMarker sets the Marker field's value.
22077func (s *DescribeEventSubscriptionsInput) SetMarker(v string) *DescribeEventSubscriptionsInput {
22078	s.Marker = &v
22079	return s
22080}
22081
22082// SetMaxRecords sets the MaxRecords field's value.
22083func (s *DescribeEventSubscriptionsInput) SetMaxRecords(v int64) *DescribeEventSubscriptionsInput {
22084	s.MaxRecords = &v
22085	return s
22086}
22087
22088// SetSubscriptionName sets the SubscriptionName field's value.
22089func (s *DescribeEventSubscriptionsInput) SetSubscriptionName(v string) *DescribeEventSubscriptionsInput {
22090	s.SubscriptionName = &v
22091	return s
22092}
22093
22094// SetTagKeys sets the TagKeys field's value.
22095func (s *DescribeEventSubscriptionsInput) SetTagKeys(v []*string) *DescribeEventSubscriptionsInput {
22096	s.TagKeys = v
22097	return s
22098}
22099
22100// SetTagValues sets the TagValues field's value.
22101func (s *DescribeEventSubscriptionsInput) SetTagValues(v []*string) *DescribeEventSubscriptionsInput {
22102	s.TagValues = v
22103	return s
22104}
22105
22106type DescribeEventSubscriptionsOutput struct {
22107	_ struct{} `type:"structure"`
22108
22109	// A list of event subscriptions.
22110	EventSubscriptionsList []*EventSubscription `locationNameList:"EventSubscription" type:"list"`
22111
22112	// A value that indicates the starting point for the next set of response records
22113	// in a subsequent request. If a value is returned in a response, you can retrieve
22114	// the next set of records by providing this returned marker value in the Marker
22115	// parameter and retrying the command. If the Marker field is empty, all response
22116	// records have been retrieved for the request.
22117	Marker *string `type:"string"`
22118}
22119
22120// String returns the string representation.
22121//
22122// API parameter values that are decorated as "sensitive" in the API will not
22123// be included in the string output. The member name will be present, but the
22124// value will be replaced with "sensitive".
22125func (s DescribeEventSubscriptionsOutput) String() string {
22126	return awsutil.Prettify(s)
22127}
22128
22129// GoString returns the string representation.
22130//
22131// API parameter values that are decorated as "sensitive" in the API will not
22132// be included in the string output. The member name will be present, but the
22133// value will be replaced with "sensitive".
22134func (s DescribeEventSubscriptionsOutput) GoString() string {
22135	return s.String()
22136}
22137
22138// SetEventSubscriptionsList sets the EventSubscriptionsList field's value.
22139func (s *DescribeEventSubscriptionsOutput) SetEventSubscriptionsList(v []*EventSubscription) *DescribeEventSubscriptionsOutput {
22140	s.EventSubscriptionsList = v
22141	return s
22142}
22143
22144// SetMarker sets the Marker field's value.
22145func (s *DescribeEventSubscriptionsOutput) SetMarker(v string) *DescribeEventSubscriptionsOutput {
22146	s.Marker = &v
22147	return s
22148}
22149
22150type DescribeEventsInput struct {
22151	_ struct{} `type:"structure"`
22152
22153	// The number of minutes prior to the time of the request for which to retrieve
22154	// events. For example, if the request is sent at 18:00 and you specify a duration
22155	// of 60, then only events which have occurred after 17:00 will be returned.
22156	//
22157	// Default: 60
22158	Duration *int64 `type:"integer"`
22159
22160	// The end of the time interval for which to retrieve events, specified in ISO
22161	// 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia
22162	// page. (http://en.wikipedia.org/wiki/ISO_8601)
22163	//
22164	// Example: 2009-07-08T18:00Z
22165	EndTime *time.Time `type:"timestamp"`
22166
22167	// An optional parameter that specifies the starting point to return a set of
22168	// response records. When the results of a DescribeEvents request exceed the
22169	// value specified in MaxRecords, Amazon Web Services returns a value in the
22170	// Marker field of the response. You can retrieve the next set of response records
22171	// by providing the returned marker value in the Marker parameter and retrying
22172	// the request.
22173	Marker *string `type:"string"`
22174
22175	// The maximum number of response records to return in each call. If the number
22176	// of remaining response records exceeds the specified MaxRecords value, a value
22177	// is returned in a marker field of the response. You can retrieve the next
22178	// set of records by retrying the command with the returned marker value.
22179	//
22180	// Default: 100
22181	//
22182	// Constraints: minimum 20, maximum 100.
22183	MaxRecords *int64 `type:"integer"`
22184
22185	// The identifier of the event source for which events will be returned. If
22186	// this parameter is not specified, then all sources are included in the response.
22187	//
22188	// Constraints:
22189	//
22190	// If SourceIdentifier is supplied, SourceType must also be provided.
22191	//
22192	//    * Specify a cluster identifier when SourceType is cluster.
22193	//
22194	//    * Specify a cluster security group name when SourceType is cluster-security-group.
22195	//
22196	//    * Specify a cluster parameter group name when SourceType is cluster-parameter-group.
22197	//
22198	//    * Specify a cluster snapshot identifier when SourceType is cluster-snapshot.
22199	SourceIdentifier *string `type:"string"`
22200
22201	// The event source to retrieve events for. If no value is specified, all events
22202	// are returned.
22203	//
22204	// Constraints:
22205	//
22206	// If SourceType is supplied, SourceIdentifier must also be provided.
22207	//
22208	//    * Specify cluster when SourceIdentifier is a cluster identifier.
22209	//
22210	//    * Specify cluster-security-group when SourceIdentifier is a cluster security
22211	//    group name.
22212	//
22213	//    * Specify cluster-parameter-group when SourceIdentifier is a cluster parameter
22214	//    group name.
22215	//
22216	//    * Specify cluster-snapshot when SourceIdentifier is a cluster snapshot
22217	//    identifier.
22218	SourceType *string `type:"string" enum:"SourceType"`
22219
22220	// The beginning of the time interval to retrieve events for, specified in ISO
22221	// 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia
22222	// page. (http://en.wikipedia.org/wiki/ISO_8601)
22223	//
22224	// Example: 2009-07-08T18:00Z
22225	StartTime *time.Time `type:"timestamp"`
22226}
22227
22228// String returns the string representation.
22229//
22230// API parameter values that are decorated as "sensitive" in the API will not
22231// be included in the string output. The member name will be present, but the
22232// value will be replaced with "sensitive".
22233func (s DescribeEventsInput) String() string {
22234	return awsutil.Prettify(s)
22235}
22236
22237// GoString returns the string representation.
22238//
22239// API parameter values that are decorated as "sensitive" in the API will not
22240// be included in the string output. The member name will be present, but the
22241// value will be replaced with "sensitive".
22242func (s DescribeEventsInput) GoString() string {
22243	return s.String()
22244}
22245
22246// SetDuration sets the Duration field's value.
22247func (s *DescribeEventsInput) SetDuration(v int64) *DescribeEventsInput {
22248	s.Duration = &v
22249	return s
22250}
22251
22252// SetEndTime sets the EndTime field's value.
22253func (s *DescribeEventsInput) SetEndTime(v time.Time) *DescribeEventsInput {
22254	s.EndTime = &v
22255	return s
22256}
22257
22258// SetMarker sets the Marker field's value.
22259func (s *DescribeEventsInput) SetMarker(v string) *DescribeEventsInput {
22260	s.Marker = &v
22261	return s
22262}
22263
22264// SetMaxRecords sets the MaxRecords field's value.
22265func (s *DescribeEventsInput) SetMaxRecords(v int64) *DescribeEventsInput {
22266	s.MaxRecords = &v
22267	return s
22268}
22269
22270// SetSourceIdentifier sets the SourceIdentifier field's value.
22271func (s *DescribeEventsInput) SetSourceIdentifier(v string) *DescribeEventsInput {
22272	s.SourceIdentifier = &v
22273	return s
22274}
22275
22276// SetSourceType sets the SourceType field's value.
22277func (s *DescribeEventsInput) SetSourceType(v string) *DescribeEventsInput {
22278	s.SourceType = &v
22279	return s
22280}
22281
22282// SetStartTime sets the StartTime field's value.
22283func (s *DescribeEventsInput) SetStartTime(v time.Time) *DescribeEventsInput {
22284	s.StartTime = &v
22285	return s
22286}
22287
22288type DescribeEventsOutput struct {
22289	_ struct{} `type:"structure"`
22290
22291	// A list of Event instances.
22292	Events []*Event `locationNameList:"Event" type:"list"`
22293
22294	// A value that indicates the starting point for the next set of response records
22295	// in a subsequent request. If a value is returned in a response, you can retrieve
22296	// the next set of records by providing this returned marker value in the Marker
22297	// parameter and retrying the command. If the Marker field is empty, all response
22298	// records have been retrieved for the request.
22299	Marker *string `type:"string"`
22300}
22301
22302// String returns the string representation.
22303//
22304// API parameter values that are decorated as "sensitive" in the API will not
22305// be included in the string output. The member name will be present, but the
22306// value will be replaced with "sensitive".
22307func (s DescribeEventsOutput) String() string {
22308	return awsutil.Prettify(s)
22309}
22310
22311// GoString returns the string representation.
22312//
22313// API parameter values that are decorated as "sensitive" in the API will not
22314// be included in the string output. The member name will be present, but the
22315// value will be replaced with "sensitive".
22316func (s DescribeEventsOutput) GoString() string {
22317	return s.String()
22318}
22319
22320// SetEvents sets the Events field's value.
22321func (s *DescribeEventsOutput) SetEvents(v []*Event) *DescribeEventsOutput {
22322	s.Events = v
22323	return s
22324}
22325
22326// SetMarker sets the Marker field's value.
22327func (s *DescribeEventsOutput) SetMarker(v string) *DescribeEventsOutput {
22328	s.Marker = &v
22329	return s
22330}
22331
22332type DescribeHsmClientCertificatesInput struct {
22333	_ struct{} `type:"structure"`
22334
22335	// The identifier of a specific HSM client certificate for which you want information.
22336	// If no identifier is specified, information is returned for all HSM client
22337	// certificates owned by your Amazon Web Services account.
22338	HsmClientCertificateIdentifier *string `type:"string"`
22339
22340	// An optional parameter that specifies the starting point to return a set of
22341	// response records. When the results of a DescribeHsmClientCertificates request
22342	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
22343	// in the Marker field of the response. You can retrieve the next set of response
22344	// records by providing the returned marker value in the Marker parameter and
22345	// retrying the request.
22346	Marker *string `type:"string"`
22347
22348	// The maximum number of response records to return in each call. If the number
22349	// of remaining response records exceeds the specified MaxRecords value, a value
22350	// is returned in a marker field of the response. You can retrieve the next
22351	// set of records by retrying the command with the returned marker value.
22352	//
22353	// Default: 100
22354	//
22355	// Constraints: minimum 20, maximum 100.
22356	MaxRecords *int64 `type:"integer"`
22357
22358	// A tag key or keys for which you want to return all matching HSM client certificates
22359	// that are associated with the specified key or keys. For example, suppose
22360	// that you have HSM client certificates that are tagged with keys called owner
22361	// and environment. If you specify both of these tag keys in the request, Amazon
22362	// Redshift returns a response with the HSM client certificates that have either
22363	// or both of these tag keys associated with them.
22364	TagKeys []*string `locationNameList:"TagKey" type:"list"`
22365
22366	// A tag value or values for which you want to return all matching HSM client
22367	// certificates that are associated with the specified tag value or values.
22368	// For example, suppose that you have HSM client certificates that are tagged
22369	// with values called admin and test. If you specify both of these tag values
22370	// in the request, Amazon Redshift returns a response with the HSM client certificates
22371	// that have either or both of these tag values associated with them.
22372	TagValues []*string `locationNameList:"TagValue" type:"list"`
22373}
22374
22375// String returns the string representation.
22376//
22377// API parameter values that are decorated as "sensitive" in the API will not
22378// be included in the string output. The member name will be present, but the
22379// value will be replaced with "sensitive".
22380func (s DescribeHsmClientCertificatesInput) String() string {
22381	return awsutil.Prettify(s)
22382}
22383
22384// GoString returns the string representation.
22385//
22386// API parameter values that are decorated as "sensitive" in the API will not
22387// be included in the string output. The member name will be present, but the
22388// value will be replaced with "sensitive".
22389func (s DescribeHsmClientCertificatesInput) GoString() string {
22390	return s.String()
22391}
22392
22393// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
22394func (s *DescribeHsmClientCertificatesInput) SetHsmClientCertificateIdentifier(v string) *DescribeHsmClientCertificatesInput {
22395	s.HsmClientCertificateIdentifier = &v
22396	return s
22397}
22398
22399// SetMarker sets the Marker field's value.
22400func (s *DescribeHsmClientCertificatesInput) SetMarker(v string) *DescribeHsmClientCertificatesInput {
22401	s.Marker = &v
22402	return s
22403}
22404
22405// SetMaxRecords sets the MaxRecords field's value.
22406func (s *DescribeHsmClientCertificatesInput) SetMaxRecords(v int64) *DescribeHsmClientCertificatesInput {
22407	s.MaxRecords = &v
22408	return s
22409}
22410
22411// SetTagKeys sets the TagKeys field's value.
22412func (s *DescribeHsmClientCertificatesInput) SetTagKeys(v []*string) *DescribeHsmClientCertificatesInput {
22413	s.TagKeys = v
22414	return s
22415}
22416
22417// SetTagValues sets the TagValues field's value.
22418func (s *DescribeHsmClientCertificatesInput) SetTagValues(v []*string) *DescribeHsmClientCertificatesInput {
22419	s.TagValues = v
22420	return s
22421}
22422
22423type DescribeHsmClientCertificatesOutput struct {
22424	_ struct{} `type:"structure"`
22425
22426	// A list of the identifiers for one or more HSM client certificates used by
22427	// Amazon Redshift clusters to store and retrieve database encryption keys in
22428	// an HSM.
22429	HsmClientCertificates []*HsmClientCertificate `locationNameList:"HsmClientCertificate" type:"list"`
22430
22431	// A value that indicates the starting point for the next set of response records
22432	// in a subsequent request. If a value is returned in a response, you can retrieve
22433	// the next set of records by providing this returned marker value in the Marker
22434	// parameter and retrying the command. If the Marker field is empty, all response
22435	// records have been retrieved for the request.
22436	Marker *string `type:"string"`
22437}
22438
22439// String returns the string representation.
22440//
22441// API parameter values that are decorated as "sensitive" in the API will not
22442// be included in the string output. The member name will be present, but the
22443// value will be replaced with "sensitive".
22444func (s DescribeHsmClientCertificatesOutput) String() string {
22445	return awsutil.Prettify(s)
22446}
22447
22448// GoString returns the string representation.
22449//
22450// API parameter values that are decorated as "sensitive" in the API will not
22451// be included in the string output. The member name will be present, but the
22452// value will be replaced with "sensitive".
22453func (s DescribeHsmClientCertificatesOutput) GoString() string {
22454	return s.String()
22455}
22456
22457// SetHsmClientCertificates sets the HsmClientCertificates field's value.
22458func (s *DescribeHsmClientCertificatesOutput) SetHsmClientCertificates(v []*HsmClientCertificate) *DescribeHsmClientCertificatesOutput {
22459	s.HsmClientCertificates = v
22460	return s
22461}
22462
22463// SetMarker sets the Marker field's value.
22464func (s *DescribeHsmClientCertificatesOutput) SetMarker(v string) *DescribeHsmClientCertificatesOutput {
22465	s.Marker = &v
22466	return s
22467}
22468
22469type DescribeHsmConfigurationsInput struct {
22470	_ struct{} `type:"structure"`
22471
22472	// The identifier of a specific Amazon Redshift HSM configuration to be described.
22473	// If no identifier is specified, information is returned for all HSM configurations
22474	// owned by your Amazon Web Services account.
22475	HsmConfigurationIdentifier *string `type:"string"`
22476
22477	// An optional parameter that specifies the starting point to return a set of
22478	// response records. When the results of a DescribeHsmConfigurations request
22479	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
22480	// in the Marker field of the response. You can retrieve the next set of response
22481	// records by providing the returned marker value in the Marker parameter and
22482	// retrying the request.
22483	Marker *string `type:"string"`
22484
22485	// The maximum number of response records to return in each call. If the number
22486	// of remaining response records exceeds the specified MaxRecords value, a value
22487	// is returned in a marker field of the response. You can retrieve the next
22488	// set of records by retrying the command with the returned marker value.
22489	//
22490	// Default: 100
22491	//
22492	// Constraints: minimum 20, maximum 100.
22493	MaxRecords *int64 `type:"integer"`
22494
22495	// A tag key or keys for which you want to return all matching HSM configurations
22496	// that are associated with the specified key or keys. For example, suppose
22497	// that you have HSM configurations that are tagged with keys called owner and
22498	// environment. If you specify both of these tag keys in the request, Amazon
22499	// Redshift returns a response with the HSM configurations that have either
22500	// or both of these tag keys associated with them.
22501	TagKeys []*string `locationNameList:"TagKey" type:"list"`
22502
22503	// A tag value or values for which you want to return all matching HSM configurations
22504	// that are associated with the specified tag value or values. For example,
22505	// suppose that you have HSM configurations that are tagged with values called
22506	// admin and test. If you specify both of these tag values in the request, Amazon
22507	// Redshift returns a response with the HSM configurations that have either
22508	// or both of these tag values associated with them.
22509	TagValues []*string `locationNameList:"TagValue" type:"list"`
22510}
22511
22512// String returns the string representation.
22513//
22514// API parameter values that are decorated as "sensitive" in the API will not
22515// be included in the string output. The member name will be present, but the
22516// value will be replaced with "sensitive".
22517func (s DescribeHsmConfigurationsInput) String() string {
22518	return awsutil.Prettify(s)
22519}
22520
22521// GoString returns the string representation.
22522//
22523// API parameter values that are decorated as "sensitive" in the API will not
22524// be included in the string output. The member name will be present, but the
22525// value will be replaced with "sensitive".
22526func (s DescribeHsmConfigurationsInput) GoString() string {
22527	return s.String()
22528}
22529
22530// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
22531func (s *DescribeHsmConfigurationsInput) SetHsmConfigurationIdentifier(v string) *DescribeHsmConfigurationsInput {
22532	s.HsmConfigurationIdentifier = &v
22533	return s
22534}
22535
22536// SetMarker sets the Marker field's value.
22537func (s *DescribeHsmConfigurationsInput) SetMarker(v string) *DescribeHsmConfigurationsInput {
22538	s.Marker = &v
22539	return s
22540}
22541
22542// SetMaxRecords sets the MaxRecords field's value.
22543func (s *DescribeHsmConfigurationsInput) SetMaxRecords(v int64) *DescribeHsmConfigurationsInput {
22544	s.MaxRecords = &v
22545	return s
22546}
22547
22548// SetTagKeys sets the TagKeys field's value.
22549func (s *DescribeHsmConfigurationsInput) SetTagKeys(v []*string) *DescribeHsmConfigurationsInput {
22550	s.TagKeys = v
22551	return s
22552}
22553
22554// SetTagValues sets the TagValues field's value.
22555func (s *DescribeHsmConfigurationsInput) SetTagValues(v []*string) *DescribeHsmConfigurationsInput {
22556	s.TagValues = v
22557	return s
22558}
22559
22560type DescribeHsmConfigurationsOutput struct {
22561	_ struct{} `type:"structure"`
22562
22563	// A list of HsmConfiguration objects.
22564	HsmConfigurations []*HsmConfiguration `locationNameList:"HsmConfiguration" type:"list"`
22565
22566	// A value that indicates the starting point for the next set of response records
22567	// in a subsequent request. If a value is returned in a response, you can retrieve
22568	// the next set of records by providing this returned marker value in the Marker
22569	// parameter and retrying the command. If the Marker field is empty, all response
22570	// records have been retrieved for the request.
22571	Marker *string `type:"string"`
22572}
22573
22574// String returns the string representation.
22575//
22576// API parameter values that are decorated as "sensitive" in the API will not
22577// be included in the string output. The member name will be present, but the
22578// value will be replaced with "sensitive".
22579func (s DescribeHsmConfigurationsOutput) String() string {
22580	return awsutil.Prettify(s)
22581}
22582
22583// GoString returns the string representation.
22584//
22585// API parameter values that are decorated as "sensitive" in the API will not
22586// be included in the string output. The member name will be present, but the
22587// value will be replaced with "sensitive".
22588func (s DescribeHsmConfigurationsOutput) GoString() string {
22589	return s.String()
22590}
22591
22592// SetHsmConfigurations sets the HsmConfigurations field's value.
22593func (s *DescribeHsmConfigurationsOutput) SetHsmConfigurations(v []*HsmConfiguration) *DescribeHsmConfigurationsOutput {
22594	s.HsmConfigurations = v
22595	return s
22596}
22597
22598// SetMarker sets the Marker field's value.
22599func (s *DescribeHsmConfigurationsOutput) SetMarker(v string) *DescribeHsmConfigurationsOutput {
22600	s.Marker = &v
22601	return s
22602}
22603
22604type DescribeLoggingStatusInput struct {
22605	_ struct{} `type:"structure"`
22606
22607	// The identifier of the cluster from which to get the logging status.
22608	//
22609	// Example: examplecluster
22610	//
22611	// ClusterIdentifier is a required field
22612	ClusterIdentifier *string `type:"string" required:"true"`
22613}
22614
22615// String returns the string representation.
22616//
22617// API parameter values that are decorated as "sensitive" in the API will not
22618// be included in the string output. The member name will be present, but the
22619// value will be replaced with "sensitive".
22620func (s DescribeLoggingStatusInput) String() string {
22621	return awsutil.Prettify(s)
22622}
22623
22624// GoString returns the string representation.
22625//
22626// API parameter values that are decorated as "sensitive" in the API will not
22627// be included in the string output. The member name will be present, but the
22628// value will be replaced with "sensitive".
22629func (s DescribeLoggingStatusInput) GoString() string {
22630	return s.String()
22631}
22632
22633// Validate inspects the fields of the type to determine if they are valid.
22634func (s *DescribeLoggingStatusInput) Validate() error {
22635	invalidParams := request.ErrInvalidParams{Context: "DescribeLoggingStatusInput"}
22636	if s.ClusterIdentifier == nil {
22637		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
22638	}
22639
22640	if invalidParams.Len() > 0 {
22641		return invalidParams
22642	}
22643	return nil
22644}
22645
22646// SetClusterIdentifier sets the ClusterIdentifier field's value.
22647func (s *DescribeLoggingStatusInput) SetClusterIdentifier(v string) *DescribeLoggingStatusInput {
22648	s.ClusterIdentifier = &v
22649	return s
22650}
22651
22652type DescribeNodeConfigurationOptionsInput struct {
22653	_ struct{} `type:"structure"`
22654
22655	// The action type to evaluate for possible node configurations. Specify "restore-cluster"
22656	// to get configuration combinations based on an existing snapshot. Specify
22657	// "recommend-node-config" to get configuration recommendations based on an
22658	// existing cluster or snapshot. Specify "resize-cluster" to get configuration
22659	// combinations for elastic resize based on an existing cluster.
22660	//
22661	// ActionType is a required field
22662	ActionType *string `type:"string" required:"true" enum:"ActionType"`
22663
22664	// The identifier of the cluster to evaluate for possible node configurations.
22665	ClusterIdentifier *string `type:"string"`
22666
22667	// A set of name, operator, and value items to filter the results.
22668	Filters []*NodeConfigurationOptionsFilter `locationName:"Filter" locationNameList:"NodeConfigurationOptionsFilter" type:"list"`
22669
22670	// An optional parameter that specifies the starting point to return a set of
22671	// response records. When the results of a DescribeNodeConfigurationOptions
22672	// request exceed the value specified in MaxRecords, Amazon Web Services returns
22673	// a value in the Marker field of the response. You can retrieve the next set
22674	// of response records by providing the returned marker value in the Marker
22675	// parameter and retrying the request.
22676	Marker *string `type:"string"`
22677
22678	// The maximum number of response records to return in each call. If the number
22679	// of remaining response records exceeds the specified MaxRecords value, a value
22680	// is returned in a marker field of the response. You can retrieve the next
22681	// set of records by retrying the command with the returned marker value.
22682	//
22683	// Default: 500
22684	//
22685	// Constraints: minimum 100, maximum 500.
22686	MaxRecords *int64 `type:"integer"`
22687
22688	// The Amazon Web Services account used to create or copy the snapshot. Required
22689	// if you are restoring a snapshot you do not own, optional if you own the snapshot.
22690	OwnerAccount *string `type:"string"`
22691
22692	// The identifier of the snapshot to evaluate for possible node configurations.
22693	SnapshotIdentifier *string `type:"string"`
22694}
22695
22696// String returns the string representation.
22697//
22698// API parameter values that are decorated as "sensitive" in the API will not
22699// be included in the string output. The member name will be present, but the
22700// value will be replaced with "sensitive".
22701func (s DescribeNodeConfigurationOptionsInput) String() string {
22702	return awsutil.Prettify(s)
22703}
22704
22705// GoString returns the string representation.
22706//
22707// API parameter values that are decorated as "sensitive" in the API will not
22708// be included in the string output. The member name will be present, but the
22709// value will be replaced with "sensitive".
22710func (s DescribeNodeConfigurationOptionsInput) GoString() string {
22711	return s.String()
22712}
22713
22714// Validate inspects the fields of the type to determine if they are valid.
22715func (s *DescribeNodeConfigurationOptionsInput) Validate() error {
22716	invalidParams := request.ErrInvalidParams{Context: "DescribeNodeConfigurationOptionsInput"}
22717	if s.ActionType == nil {
22718		invalidParams.Add(request.NewErrParamRequired("ActionType"))
22719	}
22720
22721	if invalidParams.Len() > 0 {
22722		return invalidParams
22723	}
22724	return nil
22725}
22726
22727// SetActionType sets the ActionType field's value.
22728func (s *DescribeNodeConfigurationOptionsInput) SetActionType(v string) *DescribeNodeConfigurationOptionsInput {
22729	s.ActionType = &v
22730	return s
22731}
22732
22733// SetClusterIdentifier sets the ClusterIdentifier field's value.
22734func (s *DescribeNodeConfigurationOptionsInput) SetClusterIdentifier(v string) *DescribeNodeConfigurationOptionsInput {
22735	s.ClusterIdentifier = &v
22736	return s
22737}
22738
22739// SetFilters sets the Filters field's value.
22740func (s *DescribeNodeConfigurationOptionsInput) SetFilters(v []*NodeConfigurationOptionsFilter) *DescribeNodeConfigurationOptionsInput {
22741	s.Filters = v
22742	return s
22743}
22744
22745// SetMarker sets the Marker field's value.
22746func (s *DescribeNodeConfigurationOptionsInput) SetMarker(v string) *DescribeNodeConfigurationOptionsInput {
22747	s.Marker = &v
22748	return s
22749}
22750
22751// SetMaxRecords sets the MaxRecords field's value.
22752func (s *DescribeNodeConfigurationOptionsInput) SetMaxRecords(v int64) *DescribeNodeConfigurationOptionsInput {
22753	s.MaxRecords = &v
22754	return s
22755}
22756
22757// SetOwnerAccount sets the OwnerAccount field's value.
22758func (s *DescribeNodeConfigurationOptionsInput) SetOwnerAccount(v string) *DescribeNodeConfigurationOptionsInput {
22759	s.OwnerAccount = &v
22760	return s
22761}
22762
22763// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
22764func (s *DescribeNodeConfigurationOptionsInput) SetSnapshotIdentifier(v string) *DescribeNodeConfigurationOptionsInput {
22765	s.SnapshotIdentifier = &v
22766	return s
22767}
22768
22769type DescribeNodeConfigurationOptionsOutput struct {
22770	_ struct{} `type:"structure"`
22771
22772	// A value that indicates the starting point for the next set of response records
22773	// in a subsequent request. If a value is returned in a response, you can retrieve
22774	// the next set of records by providing this returned marker value in the Marker
22775	// parameter and retrying the command. If the Marker field is empty, all response
22776	// records have been retrieved for the request.
22777	Marker *string `type:"string"`
22778
22779	// A list of valid node configurations.
22780	NodeConfigurationOptionList []*NodeConfigurationOption `locationNameList:"NodeConfigurationOption" type:"list"`
22781}
22782
22783// String returns the string representation.
22784//
22785// API parameter values that are decorated as "sensitive" in the API will not
22786// be included in the string output. The member name will be present, but the
22787// value will be replaced with "sensitive".
22788func (s DescribeNodeConfigurationOptionsOutput) String() string {
22789	return awsutil.Prettify(s)
22790}
22791
22792// GoString returns the string representation.
22793//
22794// API parameter values that are decorated as "sensitive" in the API will not
22795// be included in the string output. The member name will be present, but the
22796// value will be replaced with "sensitive".
22797func (s DescribeNodeConfigurationOptionsOutput) GoString() string {
22798	return s.String()
22799}
22800
22801// SetMarker sets the Marker field's value.
22802func (s *DescribeNodeConfigurationOptionsOutput) SetMarker(v string) *DescribeNodeConfigurationOptionsOutput {
22803	s.Marker = &v
22804	return s
22805}
22806
22807// SetNodeConfigurationOptionList sets the NodeConfigurationOptionList field's value.
22808func (s *DescribeNodeConfigurationOptionsOutput) SetNodeConfigurationOptionList(v []*NodeConfigurationOption) *DescribeNodeConfigurationOptionsOutput {
22809	s.NodeConfigurationOptionList = v
22810	return s
22811}
22812
22813type DescribeOrderableClusterOptionsInput struct {
22814	_ struct{} `type:"structure"`
22815
22816	// The version filter value. Specify this parameter to show only the available
22817	// offerings matching the specified version.
22818	//
22819	// Default: All versions.
22820	//
22821	// Constraints: Must be one of the version returned from DescribeClusterVersions.
22822	ClusterVersion *string `type:"string"`
22823
22824	// An optional parameter that specifies the starting point to return a set of
22825	// response records. When the results of a DescribeOrderableClusterOptions request
22826	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
22827	// in the Marker field of the response. You can retrieve the next set of response
22828	// records by providing the returned marker value in the Marker parameter and
22829	// retrying the request.
22830	Marker *string `type:"string"`
22831
22832	// The maximum number of response records to return in each call. If the number
22833	// of remaining response records exceeds the specified MaxRecords value, a value
22834	// is returned in a marker field of the response. You can retrieve the next
22835	// set of records by retrying the command with the returned marker value.
22836	//
22837	// Default: 100
22838	//
22839	// Constraints: minimum 20, maximum 100.
22840	MaxRecords *int64 `type:"integer"`
22841
22842	// The node type filter value. Specify this parameter to show only the available
22843	// offerings matching the specified node type.
22844	NodeType *string `type:"string"`
22845}
22846
22847// String returns the string representation.
22848//
22849// API parameter values that are decorated as "sensitive" in the API will not
22850// be included in the string output. The member name will be present, but the
22851// value will be replaced with "sensitive".
22852func (s DescribeOrderableClusterOptionsInput) String() string {
22853	return awsutil.Prettify(s)
22854}
22855
22856// GoString returns the string representation.
22857//
22858// API parameter values that are decorated as "sensitive" in the API will not
22859// be included in the string output. The member name will be present, but the
22860// value will be replaced with "sensitive".
22861func (s DescribeOrderableClusterOptionsInput) GoString() string {
22862	return s.String()
22863}
22864
22865// SetClusterVersion sets the ClusterVersion field's value.
22866func (s *DescribeOrderableClusterOptionsInput) SetClusterVersion(v string) *DescribeOrderableClusterOptionsInput {
22867	s.ClusterVersion = &v
22868	return s
22869}
22870
22871// SetMarker sets the Marker field's value.
22872func (s *DescribeOrderableClusterOptionsInput) SetMarker(v string) *DescribeOrderableClusterOptionsInput {
22873	s.Marker = &v
22874	return s
22875}
22876
22877// SetMaxRecords sets the MaxRecords field's value.
22878func (s *DescribeOrderableClusterOptionsInput) SetMaxRecords(v int64) *DescribeOrderableClusterOptionsInput {
22879	s.MaxRecords = &v
22880	return s
22881}
22882
22883// SetNodeType sets the NodeType field's value.
22884func (s *DescribeOrderableClusterOptionsInput) SetNodeType(v string) *DescribeOrderableClusterOptionsInput {
22885	s.NodeType = &v
22886	return s
22887}
22888
22889// Contains the output from the DescribeOrderableClusterOptions action.
22890type DescribeOrderableClusterOptionsOutput struct {
22891	_ struct{} `type:"structure"`
22892
22893	// A value that indicates the starting point for the next set of response records
22894	// in a subsequent request. If a value is returned in a response, you can retrieve
22895	// the next set of records by providing this returned marker value in the Marker
22896	// parameter and retrying the command. If the Marker field is empty, all response
22897	// records have been retrieved for the request.
22898	Marker *string `type:"string"`
22899
22900	// An OrderableClusterOption structure containing information about orderable
22901	// options for the cluster.
22902	OrderableClusterOptions []*OrderableClusterOption `locationNameList:"OrderableClusterOption" type:"list"`
22903}
22904
22905// String returns the string representation.
22906//
22907// API parameter values that are decorated as "sensitive" in the API will not
22908// be included in the string output. The member name will be present, but the
22909// value will be replaced with "sensitive".
22910func (s DescribeOrderableClusterOptionsOutput) String() string {
22911	return awsutil.Prettify(s)
22912}
22913
22914// GoString returns the string representation.
22915//
22916// API parameter values that are decorated as "sensitive" in the API will not
22917// be included in the string output. The member name will be present, but the
22918// value will be replaced with "sensitive".
22919func (s DescribeOrderableClusterOptionsOutput) GoString() string {
22920	return s.String()
22921}
22922
22923// SetMarker sets the Marker field's value.
22924func (s *DescribeOrderableClusterOptionsOutput) SetMarker(v string) *DescribeOrderableClusterOptionsOutput {
22925	s.Marker = &v
22926	return s
22927}
22928
22929// SetOrderableClusterOptions sets the OrderableClusterOptions field's value.
22930func (s *DescribeOrderableClusterOptionsOutput) SetOrderableClusterOptions(v []*OrderableClusterOption) *DescribeOrderableClusterOptionsOutput {
22931	s.OrderableClusterOptions = v
22932	return s
22933}
22934
22935type DescribePartnersInput struct {
22936	_ struct{} `type:"structure"`
22937
22938	// The Amazon Web Services account ID that owns the cluster.
22939	//
22940	// AccountId is a required field
22941	AccountId *string `min:"12" type:"string" required:"true"`
22942
22943	// The cluster identifier of the cluster whose partner integration is being
22944	// described.
22945	//
22946	// ClusterIdentifier is a required field
22947	ClusterIdentifier *string `type:"string" required:"true"`
22948
22949	// The name of the database whose partner integration is being described. If
22950	// database name is not specified, then all databases in the cluster are described.
22951	DatabaseName *string `type:"string"`
22952
22953	// The name of the partner that is being described. If partner name is not specified,
22954	// then all partner integrations are described.
22955	PartnerName *string `type:"string"`
22956}
22957
22958// String returns the string representation.
22959//
22960// API parameter values that are decorated as "sensitive" in the API will not
22961// be included in the string output. The member name will be present, but the
22962// value will be replaced with "sensitive".
22963func (s DescribePartnersInput) String() string {
22964	return awsutil.Prettify(s)
22965}
22966
22967// GoString returns the string representation.
22968//
22969// API parameter values that are decorated as "sensitive" in the API will not
22970// be included in the string output. The member name will be present, but the
22971// value will be replaced with "sensitive".
22972func (s DescribePartnersInput) GoString() string {
22973	return s.String()
22974}
22975
22976// Validate inspects the fields of the type to determine if they are valid.
22977func (s *DescribePartnersInput) Validate() error {
22978	invalidParams := request.ErrInvalidParams{Context: "DescribePartnersInput"}
22979	if s.AccountId == nil {
22980		invalidParams.Add(request.NewErrParamRequired("AccountId"))
22981	}
22982	if s.AccountId != nil && len(*s.AccountId) < 12 {
22983		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
22984	}
22985	if s.ClusterIdentifier == nil {
22986		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
22987	}
22988
22989	if invalidParams.Len() > 0 {
22990		return invalidParams
22991	}
22992	return nil
22993}
22994
22995// SetAccountId sets the AccountId field's value.
22996func (s *DescribePartnersInput) SetAccountId(v string) *DescribePartnersInput {
22997	s.AccountId = &v
22998	return s
22999}
23000
23001// SetClusterIdentifier sets the ClusterIdentifier field's value.
23002func (s *DescribePartnersInput) SetClusterIdentifier(v string) *DescribePartnersInput {
23003	s.ClusterIdentifier = &v
23004	return s
23005}
23006
23007// SetDatabaseName sets the DatabaseName field's value.
23008func (s *DescribePartnersInput) SetDatabaseName(v string) *DescribePartnersInput {
23009	s.DatabaseName = &v
23010	return s
23011}
23012
23013// SetPartnerName sets the PartnerName field's value.
23014func (s *DescribePartnersInput) SetPartnerName(v string) *DescribePartnersInput {
23015	s.PartnerName = &v
23016	return s
23017}
23018
23019type DescribePartnersOutput struct {
23020	_ struct{} `type:"structure"`
23021
23022	// A list of partner integrations.
23023	PartnerIntegrationInfoList []*PartnerIntegrationInfo `locationNameList:"PartnerIntegrationInfo" type:"list"`
23024}
23025
23026// String returns the string representation.
23027//
23028// API parameter values that are decorated as "sensitive" in the API will not
23029// be included in the string output. The member name will be present, but the
23030// value will be replaced with "sensitive".
23031func (s DescribePartnersOutput) String() string {
23032	return awsutil.Prettify(s)
23033}
23034
23035// GoString returns the string representation.
23036//
23037// API parameter values that are decorated as "sensitive" in the API will not
23038// be included in the string output. The member name will be present, but the
23039// value will be replaced with "sensitive".
23040func (s DescribePartnersOutput) GoString() string {
23041	return s.String()
23042}
23043
23044// SetPartnerIntegrationInfoList sets the PartnerIntegrationInfoList field's value.
23045func (s *DescribePartnersOutput) SetPartnerIntegrationInfoList(v []*PartnerIntegrationInfo) *DescribePartnersOutput {
23046	s.PartnerIntegrationInfoList = v
23047	return s
23048}
23049
23050type DescribeReservedNodeOfferingsInput struct {
23051	_ struct{} `type:"structure"`
23052
23053	// An optional parameter that specifies the starting point to return a set of
23054	// response records. When the results of a DescribeReservedNodeOfferings request
23055	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
23056	// in the Marker field of the response. You can retrieve the next set of response
23057	// records by providing the returned marker value in the Marker parameter and
23058	// retrying the request.
23059	Marker *string `type:"string"`
23060
23061	// The maximum number of response records to return in each call. If the number
23062	// of remaining response records exceeds the specified MaxRecords value, a value
23063	// is returned in a marker field of the response. You can retrieve the next
23064	// set of records by retrying the command with the returned marker value.
23065	//
23066	// Default: 100
23067	//
23068	// Constraints: minimum 20, maximum 100.
23069	MaxRecords *int64 `type:"integer"`
23070
23071	// The unique identifier for the offering.
23072	ReservedNodeOfferingId *string `type:"string"`
23073}
23074
23075// String returns the string representation.
23076//
23077// API parameter values that are decorated as "sensitive" in the API will not
23078// be included in the string output. The member name will be present, but the
23079// value will be replaced with "sensitive".
23080func (s DescribeReservedNodeOfferingsInput) String() string {
23081	return awsutil.Prettify(s)
23082}
23083
23084// GoString returns the string representation.
23085//
23086// API parameter values that are decorated as "sensitive" in the API will not
23087// be included in the string output. The member name will be present, but the
23088// value will be replaced with "sensitive".
23089func (s DescribeReservedNodeOfferingsInput) GoString() string {
23090	return s.String()
23091}
23092
23093// SetMarker sets the Marker field's value.
23094func (s *DescribeReservedNodeOfferingsInput) SetMarker(v string) *DescribeReservedNodeOfferingsInput {
23095	s.Marker = &v
23096	return s
23097}
23098
23099// SetMaxRecords sets the MaxRecords field's value.
23100func (s *DescribeReservedNodeOfferingsInput) SetMaxRecords(v int64) *DescribeReservedNodeOfferingsInput {
23101	s.MaxRecords = &v
23102	return s
23103}
23104
23105// SetReservedNodeOfferingId sets the ReservedNodeOfferingId field's value.
23106func (s *DescribeReservedNodeOfferingsInput) SetReservedNodeOfferingId(v string) *DescribeReservedNodeOfferingsInput {
23107	s.ReservedNodeOfferingId = &v
23108	return s
23109}
23110
23111type DescribeReservedNodeOfferingsOutput struct {
23112	_ struct{} `type:"structure"`
23113
23114	// A value that indicates the starting point for the next set of response records
23115	// in a subsequent request. If a value is returned in a response, you can retrieve
23116	// the next set of records by providing this returned marker value in the Marker
23117	// parameter and retrying the command. If the Marker field is empty, all response
23118	// records have been retrieved for the request.
23119	Marker *string `type:"string"`
23120
23121	// A list of ReservedNodeOffering objects.
23122	ReservedNodeOfferings []*ReservedNodeOffering `locationNameList:"ReservedNodeOffering" type:"list"`
23123}
23124
23125// String returns the string representation.
23126//
23127// API parameter values that are decorated as "sensitive" in the API will not
23128// be included in the string output. The member name will be present, but the
23129// value will be replaced with "sensitive".
23130func (s DescribeReservedNodeOfferingsOutput) String() string {
23131	return awsutil.Prettify(s)
23132}
23133
23134// GoString returns the string representation.
23135//
23136// API parameter values that are decorated as "sensitive" in the API will not
23137// be included in the string output. The member name will be present, but the
23138// value will be replaced with "sensitive".
23139func (s DescribeReservedNodeOfferingsOutput) GoString() string {
23140	return s.String()
23141}
23142
23143// SetMarker sets the Marker field's value.
23144func (s *DescribeReservedNodeOfferingsOutput) SetMarker(v string) *DescribeReservedNodeOfferingsOutput {
23145	s.Marker = &v
23146	return s
23147}
23148
23149// SetReservedNodeOfferings sets the ReservedNodeOfferings field's value.
23150func (s *DescribeReservedNodeOfferingsOutput) SetReservedNodeOfferings(v []*ReservedNodeOffering) *DescribeReservedNodeOfferingsOutput {
23151	s.ReservedNodeOfferings = v
23152	return s
23153}
23154
23155type DescribeReservedNodesInput struct {
23156	_ struct{} `type:"structure"`
23157
23158	// An optional parameter that specifies the starting point to return a set of
23159	// response records. When the results of a DescribeReservedNodes request exceed
23160	// the value specified in MaxRecords, Amazon Web Services returns a value in
23161	// the Marker field of the response. You can retrieve the next set of response
23162	// records by providing the returned marker value in the Marker parameter and
23163	// retrying the request.
23164	Marker *string `type:"string"`
23165
23166	// The maximum number of response records to return in each call. If the number
23167	// of remaining response records exceeds the specified MaxRecords value, a value
23168	// is returned in a marker field of the response. You can retrieve the next
23169	// set of records by retrying the command with the returned marker value.
23170	//
23171	// Default: 100
23172	//
23173	// Constraints: minimum 20, maximum 100.
23174	MaxRecords *int64 `type:"integer"`
23175
23176	// Identifier for the node reservation.
23177	ReservedNodeId *string `type:"string"`
23178}
23179
23180// String returns the string representation.
23181//
23182// API parameter values that are decorated as "sensitive" in the API will not
23183// be included in the string output. The member name will be present, but the
23184// value will be replaced with "sensitive".
23185func (s DescribeReservedNodesInput) String() string {
23186	return awsutil.Prettify(s)
23187}
23188
23189// GoString returns the string representation.
23190//
23191// API parameter values that are decorated as "sensitive" in the API will not
23192// be included in the string output. The member name will be present, but the
23193// value will be replaced with "sensitive".
23194func (s DescribeReservedNodesInput) GoString() string {
23195	return s.String()
23196}
23197
23198// SetMarker sets the Marker field's value.
23199func (s *DescribeReservedNodesInput) SetMarker(v string) *DescribeReservedNodesInput {
23200	s.Marker = &v
23201	return s
23202}
23203
23204// SetMaxRecords sets the MaxRecords field's value.
23205func (s *DescribeReservedNodesInput) SetMaxRecords(v int64) *DescribeReservedNodesInput {
23206	s.MaxRecords = &v
23207	return s
23208}
23209
23210// SetReservedNodeId sets the ReservedNodeId field's value.
23211func (s *DescribeReservedNodesInput) SetReservedNodeId(v string) *DescribeReservedNodesInput {
23212	s.ReservedNodeId = &v
23213	return s
23214}
23215
23216type DescribeReservedNodesOutput struct {
23217	_ struct{} `type:"structure"`
23218
23219	// A value that indicates the starting point for the next set of response records
23220	// in a subsequent request. If a value is returned in a response, you can retrieve
23221	// the next set of records by providing this returned marker value in the Marker
23222	// parameter and retrying the command. If the Marker field is empty, all response
23223	// records have been retrieved for the request.
23224	Marker *string `type:"string"`
23225
23226	// The list of ReservedNode objects.
23227	ReservedNodes []*ReservedNode `locationNameList:"ReservedNode" type:"list"`
23228}
23229
23230// String returns the string representation.
23231//
23232// API parameter values that are decorated as "sensitive" in the API will not
23233// be included in the string output. The member name will be present, but the
23234// value will be replaced with "sensitive".
23235func (s DescribeReservedNodesOutput) String() string {
23236	return awsutil.Prettify(s)
23237}
23238
23239// GoString returns the string representation.
23240//
23241// API parameter values that are decorated as "sensitive" in the API will not
23242// be included in the string output. The member name will be present, but the
23243// value will be replaced with "sensitive".
23244func (s DescribeReservedNodesOutput) GoString() string {
23245	return s.String()
23246}
23247
23248// SetMarker sets the Marker field's value.
23249func (s *DescribeReservedNodesOutput) SetMarker(v string) *DescribeReservedNodesOutput {
23250	s.Marker = &v
23251	return s
23252}
23253
23254// SetReservedNodes sets the ReservedNodes field's value.
23255func (s *DescribeReservedNodesOutput) SetReservedNodes(v []*ReservedNode) *DescribeReservedNodesOutput {
23256	s.ReservedNodes = v
23257	return s
23258}
23259
23260type DescribeResizeInput struct {
23261	_ struct{} `type:"structure"`
23262
23263	// The unique identifier of a cluster whose resize progress you are requesting.
23264	// This parameter is case-sensitive.
23265	//
23266	// By default, resize operations for all clusters defined for an Amazon Web
23267	// Services account are returned.
23268	//
23269	// ClusterIdentifier is a required field
23270	ClusterIdentifier *string `type:"string" required:"true"`
23271}
23272
23273// String returns the string representation.
23274//
23275// API parameter values that are decorated as "sensitive" in the API will not
23276// be included in the string output. The member name will be present, but the
23277// value will be replaced with "sensitive".
23278func (s DescribeResizeInput) String() string {
23279	return awsutil.Prettify(s)
23280}
23281
23282// GoString returns the string representation.
23283//
23284// API parameter values that are decorated as "sensitive" in the API will not
23285// be included in the string output. The member name will be present, but the
23286// value will be replaced with "sensitive".
23287func (s DescribeResizeInput) GoString() string {
23288	return s.String()
23289}
23290
23291// Validate inspects the fields of the type to determine if they are valid.
23292func (s *DescribeResizeInput) Validate() error {
23293	invalidParams := request.ErrInvalidParams{Context: "DescribeResizeInput"}
23294	if s.ClusterIdentifier == nil {
23295		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
23296	}
23297
23298	if invalidParams.Len() > 0 {
23299		return invalidParams
23300	}
23301	return nil
23302}
23303
23304// SetClusterIdentifier sets the ClusterIdentifier field's value.
23305func (s *DescribeResizeInput) SetClusterIdentifier(v string) *DescribeResizeInput {
23306	s.ClusterIdentifier = &v
23307	return s
23308}
23309
23310// Describes the result of a cluster resize operation.
23311type DescribeResizeOutput struct {
23312	_ struct{} `type:"structure"`
23313
23314	// The average rate of the resize operation over the last few minutes, measured
23315	// in megabytes per second. After the resize operation completes, this value
23316	// shows the average rate of the entire resize operation.
23317	AvgResizeRateInMegaBytesPerSecond *float64 `type:"double"`
23318
23319	// The percent of data transferred from source cluster to target cluster.
23320	DataTransferProgressPercent *float64 `type:"double"`
23321
23322	// The amount of seconds that have elapsed since the resize operation began.
23323	// After the resize operation completes, this value shows the total actual time,
23324	// in seconds, for the resize operation.
23325	ElapsedTimeInSeconds *int64 `type:"long"`
23326
23327	// The estimated time remaining, in seconds, until the resize operation is complete.
23328	// This value is calculated based on the average resize rate and the estimated
23329	// amount of data remaining to be processed. Once the resize operation is complete,
23330	// this value will be 0.
23331	EstimatedTimeToCompletionInSeconds *int64 `type:"long"`
23332
23333	// The names of tables that have been completely imported .
23334	//
23335	// Valid Values: List of table names.
23336	ImportTablesCompleted []*string `type:"list"`
23337
23338	// The names of tables that are being currently imported.
23339	//
23340	// Valid Values: List of table names.
23341	ImportTablesInProgress []*string `type:"list"`
23342
23343	// The names of tables that have not been yet imported.
23344	//
23345	// Valid Values: List of table names
23346	ImportTablesNotStarted []*string `type:"list"`
23347
23348	// An optional string to provide additional details about the resize action.
23349	Message *string `type:"string"`
23350
23351	// While the resize operation is in progress, this value shows the current amount
23352	// of data, in megabytes, that has been processed so far. When the resize operation
23353	// is complete, this value shows the total amount of data, in megabytes, on
23354	// the cluster, which may be more or less than TotalResizeDataInMegaBytes (the
23355	// estimated total amount of data before resize).
23356	ProgressInMegaBytes *int64 `type:"long"`
23357
23358	// An enum with possible values of ClassicResize and ElasticResize. These values
23359	// describe the type of resize operation being performed.
23360	ResizeType *string `type:"string"`
23361
23362	// The status of the resize operation.
23363	//
23364	// Valid Values: NONE | IN_PROGRESS | FAILED | SUCCEEDED | CANCELLING
23365	Status *string `type:"string"`
23366
23367	// The cluster type after the resize operation is complete.
23368	//
23369	// Valid Values: multi-node | single-node
23370	TargetClusterType *string `type:"string"`
23371
23372	// The type of encryption for the cluster after the resize is complete.
23373	//
23374	// Possible values are KMS and None.
23375	TargetEncryptionType *string `type:"string"`
23376
23377	// The node type that the cluster will have after the resize operation is complete.
23378	TargetNodeType *string `type:"string"`
23379
23380	// The number of nodes that the cluster will have after the resize operation
23381	// is complete.
23382	TargetNumberOfNodes *int64 `type:"integer"`
23383
23384	// The estimated total amount of data, in megabytes, on the cluster before the
23385	// resize operation began.
23386	TotalResizeDataInMegaBytes *int64 `type:"long"`
23387}
23388
23389// String returns the string representation.
23390//
23391// API parameter values that are decorated as "sensitive" in the API will not
23392// be included in the string output. The member name will be present, but the
23393// value will be replaced with "sensitive".
23394func (s DescribeResizeOutput) String() string {
23395	return awsutil.Prettify(s)
23396}
23397
23398// GoString returns the string representation.
23399//
23400// API parameter values that are decorated as "sensitive" in the API will not
23401// be included in the string output. The member name will be present, but the
23402// value will be replaced with "sensitive".
23403func (s DescribeResizeOutput) GoString() string {
23404	return s.String()
23405}
23406
23407// SetAvgResizeRateInMegaBytesPerSecond sets the AvgResizeRateInMegaBytesPerSecond field's value.
23408func (s *DescribeResizeOutput) SetAvgResizeRateInMegaBytesPerSecond(v float64) *DescribeResizeOutput {
23409	s.AvgResizeRateInMegaBytesPerSecond = &v
23410	return s
23411}
23412
23413// SetDataTransferProgressPercent sets the DataTransferProgressPercent field's value.
23414func (s *DescribeResizeOutput) SetDataTransferProgressPercent(v float64) *DescribeResizeOutput {
23415	s.DataTransferProgressPercent = &v
23416	return s
23417}
23418
23419// SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
23420func (s *DescribeResizeOutput) SetElapsedTimeInSeconds(v int64) *DescribeResizeOutput {
23421	s.ElapsedTimeInSeconds = &v
23422	return s
23423}
23424
23425// SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value.
23426func (s *DescribeResizeOutput) SetEstimatedTimeToCompletionInSeconds(v int64) *DescribeResizeOutput {
23427	s.EstimatedTimeToCompletionInSeconds = &v
23428	return s
23429}
23430
23431// SetImportTablesCompleted sets the ImportTablesCompleted field's value.
23432func (s *DescribeResizeOutput) SetImportTablesCompleted(v []*string) *DescribeResizeOutput {
23433	s.ImportTablesCompleted = v
23434	return s
23435}
23436
23437// SetImportTablesInProgress sets the ImportTablesInProgress field's value.
23438func (s *DescribeResizeOutput) SetImportTablesInProgress(v []*string) *DescribeResizeOutput {
23439	s.ImportTablesInProgress = v
23440	return s
23441}
23442
23443// SetImportTablesNotStarted sets the ImportTablesNotStarted field's value.
23444func (s *DescribeResizeOutput) SetImportTablesNotStarted(v []*string) *DescribeResizeOutput {
23445	s.ImportTablesNotStarted = v
23446	return s
23447}
23448
23449// SetMessage sets the Message field's value.
23450func (s *DescribeResizeOutput) SetMessage(v string) *DescribeResizeOutput {
23451	s.Message = &v
23452	return s
23453}
23454
23455// SetProgressInMegaBytes sets the ProgressInMegaBytes field's value.
23456func (s *DescribeResizeOutput) SetProgressInMegaBytes(v int64) *DescribeResizeOutput {
23457	s.ProgressInMegaBytes = &v
23458	return s
23459}
23460
23461// SetResizeType sets the ResizeType field's value.
23462func (s *DescribeResizeOutput) SetResizeType(v string) *DescribeResizeOutput {
23463	s.ResizeType = &v
23464	return s
23465}
23466
23467// SetStatus sets the Status field's value.
23468func (s *DescribeResizeOutput) SetStatus(v string) *DescribeResizeOutput {
23469	s.Status = &v
23470	return s
23471}
23472
23473// SetTargetClusterType sets the TargetClusterType field's value.
23474func (s *DescribeResizeOutput) SetTargetClusterType(v string) *DescribeResizeOutput {
23475	s.TargetClusterType = &v
23476	return s
23477}
23478
23479// SetTargetEncryptionType sets the TargetEncryptionType field's value.
23480func (s *DescribeResizeOutput) SetTargetEncryptionType(v string) *DescribeResizeOutput {
23481	s.TargetEncryptionType = &v
23482	return s
23483}
23484
23485// SetTargetNodeType sets the TargetNodeType field's value.
23486func (s *DescribeResizeOutput) SetTargetNodeType(v string) *DescribeResizeOutput {
23487	s.TargetNodeType = &v
23488	return s
23489}
23490
23491// SetTargetNumberOfNodes sets the TargetNumberOfNodes field's value.
23492func (s *DescribeResizeOutput) SetTargetNumberOfNodes(v int64) *DescribeResizeOutput {
23493	s.TargetNumberOfNodes = &v
23494	return s
23495}
23496
23497// SetTotalResizeDataInMegaBytes sets the TotalResizeDataInMegaBytes field's value.
23498func (s *DescribeResizeOutput) SetTotalResizeDataInMegaBytes(v int64) *DescribeResizeOutput {
23499	s.TotalResizeDataInMegaBytes = &v
23500	return s
23501}
23502
23503type DescribeScheduledActionsInput struct {
23504	_ struct{} `type:"structure"`
23505
23506	// If true, retrieve only active scheduled actions. If false, retrieve only
23507	// disabled scheduled actions.
23508	Active *bool `type:"boolean"`
23509
23510	// The end time in UTC of the scheduled action to retrieve. Only active scheduled
23511	// actions that have invocations before this time are retrieved.
23512	EndTime *time.Time `type:"timestamp"`
23513
23514	// List of scheduled action filters.
23515	Filters []*ScheduledActionFilter `locationNameList:"ScheduledActionFilter" type:"list"`
23516
23517	// An optional parameter that specifies the starting point to return a set of
23518	// response records. When the results of a DescribeScheduledActions request
23519	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
23520	// in the Marker field of the response. You can retrieve the next set of response
23521	// records by providing the returned marker value in the Marker parameter and
23522	// retrying the request.
23523	Marker *string `type:"string"`
23524
23525	// The maximum number of response records to return in each call. If the number
23526	// of remaining response records exceeds the specified MaxRecords value, a value
23527	// is returned in a marker field of the response. You can retrieve the next
23528	// set of records by retrying the command with the returned marker value.
23529	//
23530	// Default: 100
23531	//
23532	// Constraints: minimum 20, maximum 100.
23533	MaxRecords *int64 `type:"integer"`
23534
23535	// The name of the scheduled action to retrieve.
23536	ScheduledActionName *string `type:"string"`
23537
23538	// The start time in UTC of the scheduled actions to retrieve. Only active scheduled
23539	// actions that have invocations after this time are retrieved.
23540	StartTime *time.Time `type:"timestamp"`
23541
23542	// The type of the scheduled actions to retrieve.
23543	TargetActionType *string `type:"string" enum:"ScheduledActionTypeValues"`
23544}
23545
23546// String returns the string representation.
23547//
23548// API parameter values that are decorated as "sensitive" in the API will not
23549// be included in the string output. The member name will be present, but the
23550// value will be replaced with "sensitive".
23551func (s DescribeScheduledActionsInput) String() string {
23552	return awsutil.Prettify(s)
23553}
23554
23555// GoString returns the string representation.
23556//
23557// API parameter values that are decorated as "sensitive" in the API will not
23558// be included in the string output. The member name will be present, but the
23559// value will be replaced with "sensitive".
23560func (s DescribeScheduledActionsInput) GoString() string {
23561	return s.String()
23562}
23563
23564// Validate inspects the fields of the type to determine if they are valid.
23565func (s *DescribeScheduledActionsInput) Validate() error {
23566	invalidParams := request.ErrInvalidParams{Context: "DescribeScheduledActionsInput"}
23567	if s.Filters != nil {
23568		for i, v := range s.Filters {
23569			if v == nil {
23570				continue
23571			}
23572			if err := v.Validate(); err != nil {
23573				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
23574			}
23575		}
23576	}
23577
23578	if invalidParams.Len() > 0 {
23579		return invalidParams
23580	}
23581	return nil
23582}
23583
23584// SetActive sets the Active field's value.
23585func (s *DescribeScheduledActionsInput) SetActive(v bool) *DescribeScheduledActionsInput {
23586	s.Active = &v
23587	return s
23588}
23589
23590// SetEndTime sets the EndTime field's value.
23591func (s *DescribeScheduledActionsInput) SetEndTime(v time.Time) *DescribeScheduledActionsInput {
23592	s.EndTime = &v
23593	return s
23594}
23595
23596// SetFilters sets the Filters field's value.
23597func (s *DescribeScheduledActionsInput) SetFilters(v []*ScheduledActionFilter) *DescribeScheduledActionsInput {
23598	s.Filters = v
23599	return s
23600}
23601
23602// SetMarker sets the Marker field's value.
23603func (s *DescribeScheduledActionsInput) SetMarker(v string) *DescribeScheduledActionsInput {
23604	s.Marker = &v
23605	return s
23606}
23607
23608// SetMaxRecords sets the MaxRecords field's value.
23609func (s *DescribeScheduledActionsInput) SetMaxRecords(v int64) *DescribeScheduledActionsInput {
23610	s.MaxRecords = &v
23611	return s
23612}
23613
23614// SetScheduledActionName sets the ScheduledActionName field's value.
23615func (s *DescribeScheduledActionsInput) SetScheduledActionName(v string) *DescribeScheduledActionsInput {
23616	s.ScheduledActionName = &v
23617	return s
23618}
23619
23620// SetStartTime sets the StartTime field's value.
23621func (s *DescribeScheduledActionsInput) SetStartTime(v time.Time) *DescribeScheduledActionsInput {
23622	s.StartTime = &v
23623	return s
23624}
23625
23626// SetTargetActionType sets the TargetActionType field's value.
23627func (s *DescribeScheduledActionsInput) SetTargetActionType(v string) *DescribeScheduledActionsInput {
23628	s.TargetActionType = &v
23629	return s
23630}
23631
23632type DescribeScheduledActionsOutput struct {
23633	_ struct{} `type:"structure"`
23634
23635	// An optional parameter that specifies the starting point to return a set of
23636	// response records. When the results of a DescribeScheduledActions request
23637	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
23638	// in the Marker field of the response. You can retrieve the next set of response
23639	// records by providing the returned marker value in the Marker parameter and
23640	// retrying the request.
23641	Marker *string `type:"string"`
23642
23643	// List of retrieved scheduled actions.
23644	ScheduledActions []*ScheduledAction `locationNameList:"ScheduledAction" type:"list"`
23645}
23646
23647// String returns the string representation.
23648//
23649// API parameter values that are decorated as "sensitive" in the API will not
23650// be included in the string output. The member name will be present, but the
23651// value will be replaced with "sensitive".
23652func (s DescribeScheduledActionsOutput) String() string {
23653	return awsutil.Prettify(s)
23654}
23655
23656// GoString returns the string representation.
23657//
23658// API parameter values that are decorated as "sensitive" in the API will not
23659// be included in the string output. The member name will be present, but the
23660// value will be replaced with "sensitive".
23661func (s DescribeScheduledActionsOutput) GoString() string {
23662	return s.String()
23663}
23664
23665// SetMarker sets the Marker field's value.
23666func (s *DescribeScheduledActionsOutput) SetMarker(v string) *DescribeScheduledActionsOutput {
23667	s.Marker = &v
23668	return s
23669}
23670
23671// SetScheduledActions sets the ScheduledActions field's value.
23672func (s *DescribeScheduledActionsOutput) SetScheduledActions(v []*ScheduledAction) *DescribeScheduledActionsOutput {
23673	s.ScheduledActions = v
23674	return s
23675}
23676
23677// The result of the DescribeSnapshotCopyGrants action.
23678type DescribeSnapshotCopyGrantsInput struct {
23679	_ struct{} `type:"structure"`
23680
23681	// An optional parameter that specifies the starting point to return a set of
23682	// response records. When the results of a DescribeSnapshotCopyGrant request
23683	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
23684	// in the Marker field of the response. You can retrieve the next set of response
23685	// records by providing the returned marker value in the Marker parameter and
23686	// retrying the request.
23687	//
23688	// Constraints: You can specify either the SnapshotCopyGrantName parameter or
23689	// the Marker parameter, but not both.
23690	Marker *string `type:"string"`
23691
23692	// The maximum number of response records to return in each call. If the number
23693	// of remaining response records exceeds the specified MaxRecords value, a value
23694	// is returned in a marker field of the response. You can retrieve the next
23695	// set of records by retrying the command with the returned marker value.
23696	//
23697	// Default: 100
23698	//
23699	// Constraints: minimum 20, maximum 100.
23700	MaxRecords *int64 `type:"integer"`
23701
23702	// The name of the snapshot copy grant.
23703	SnapshotCopyGrantName *string `type:"string"`
23704
23705	// A tag key or keys for which you want to return all matching resources that
23706	// are associated with the specified key or keys. For example, suppose that
23707	// you have resources tagged with keys called owner and environment. If you
23708	// specify both of these tag keys in the request, Amazon Redshift returns a
23709	// response with all resources that have either or both of these tag keys associated
23710	// with them.
23711	TagKeys []*string `locationNameList:"TagKey" type:"list"`
23712
23713	// A tag value or values for which you want to return all matching resources
23714	// that are associated with the specified value or values. For example, suppose
23715	// that you have resources tagged with values called admin and test. If you
23716	// specify both of these tag values in the request, Amazon Redshift returns
23717	// a response with all resources that have either or both of these tag values
23718	// associated with them.
23719	TagValues []*string `locationNameList:"TagValue" type:"list"`
23720}
23721
23722// String returns the string representation.
23723//
23724// API parameter values that are decorated as "sensitive" in the API will not
23725// be included in the string output. The member name will be present, but the
23726// value will be replaced with "sensitive".
23727func (s DescribeSnapshotCopyGrantsInput) String() string {
23728	return awsutil.Prettify(s)
23729}
23730
23731// GoString returns the string representation.
23732//
23733// API parameter values that are decorated as "sensitive" in the API will not
23734// be included in the string output. The member name will be present, but the
23735// value will be replaced with "sensitive".
23736func (s DescribeSnapshotCopyGrantsInput) GoString() string {
23737	return s.String()
23738}
23739
23740// SetMarker sets the Marker field's value.
23741func (s *DescribeSnapshotCopyGrantsInput) SetMarker(v string) *DescribeSnapshotCopyGrantsInput {
23742	s.Marker = &v
23743	return s
23744}
23745
23746// SetMaxRecords sets the MaxRecords field's value.
23747func (s *DescribeSnapshotCopyGrantsInput) SetMaxRecords(v int64) *DescribeSnapshotCopyGrantsInput {
23748	s.MaxRecords = &v
23749	return s
23750}
23751
23752// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
23753func (s *DescribeSnapshotCopyGrantsInput) SetSnapshotCopyGrantName(v string) *DescribeSnapshotCopyGrantsInput {
23754	s.SnapshotCopyGrantName = &v
23755	return s
23756}
23757
23758// SetTagKeys sets the TagKeys field's value.
23759func (s *DescribeSnapshotCopyGrantsInput) SetTagKeys(v []*string) *DescribeSnapshotCopyGrantsInput {
23760	s.TagKeys = v
23761	return s
23762}
23763
23764// SetTagValues sets the TagValues field's value.
23765func (s *DescribeSnapshotCopyGrantsInput) SetTagValues(v []*string) *DescribeSnapshotCopyGrantsInput {
23766	s.TagValues = v
23767	return s
23768}
23769
23770type DescribeSnapshotCopyGrantsOutput struct {
23771	_ struct{} `type:"structure"`
23772
23773	// An optional parameter that specifies the starting point to return a set of
23774	// response records. When the results of a DescribeSnapshotCopyGrant request
23775	// exceed the value specified in MaxRecords, Amazon Web Services returns a value
23776	// in the Marker field of the response. You can retrieve the next set of response
23777	// records by providing the returned marker value in the Marker parameter and
23778	// retrying the request.
23779	//
23780	// Constraints: You can specify either the SnapshotCopyGrantName parameter or
23781	// the Marker parameter, but not both.
23782	Marker *string `type:"string"`
23783
23784	// The list of SnapshotCopyGrant objects.
23785	SnapshotCopyGrants []*SnapshotCopyGrant `locationNameList:"SnapshotCopyGrant" type:"list"`
23786}
23787
23788// String returns the string representation.
23789//
23790// API parameter values that are decorated as "sensitive" in the API will not
23791// be included in the string output. The member name will be present, but the
23792// value will be replaced with "sensitive".
23793func (s DescribeSnapshotCopyGrantsOutput) String() string {
23794	return awsutil.Prettify(s)
23795}
23796
23797// GoString returns the string representation.
23798//
23799// API parameter values that are decorated as "sensitive" in the API will not
23800// be included in the string output. The member name will be present, but the
23801// value will be replaced with "sensitive".
23802func (s DescribeSnapshotCopyGrantsOutput) GoString() string {
23803	return s.String()
23804}
23805
23806// SetMarker sets the Marker field's value.
23807func (s *DescribeSnapshotCopyGrantsOutput) SetMarker(v string) *DescribeSnapshotCopyGrantsOutput {
23808	s.Marker = &v
23809	return s
23810}
23811
23812// SetSnapshotCopyGrants sets the SnapshotCopyGrants field's value.
23813func (s *DescribeSnapshotCopyGrantsOutput) SetSnapshotCopyGrants(v []*SnapshotCopyGrant) *DescribeSnapshotCopyGrantsOutput {
23814	s.SnapshotCopyGrants = v
23815	return s
23816}
23817
23818type DescribeSnapshotSchedulesInput struct {
23819	_ struct{} `type:"structure"`
23820
23821	// The unique identifier for the cluster whose snapshot schedules you want to
23822	// view.
23823	ClusterIdentifier *string `type:"string"`
23824
23825	// A value that indicates the starting point for the next set of response records
23826	// in a subsequent request. If a value is returned in a response, you can retrieve
23827	// the next set of records by providing this returned marker value in the marker
23828	// parameter and retrying the command. If the marker field is empty, all response
23829	// records have been retrieved for the request.
23830	Marker *string `type:"string"`
23831
23832	// The maximum number or response records to return in each call. If the number
23833	// of remaining response records exceeds the specified MaxRecords value, a value
23834	// is returned in a marker field of the response. You can retrieve the next
23835	// set of records by retrying the command with the returned marker value.
23836	MaxRecords *int64 `type:"integer"`
23837
23838	// A unique identifier for a snapshot schedule.
23839	ScheduleIdentifier *string `type:"string"`
23840
23841	// The key value for a snapshot schedule tag.
23842	TagKeys []*string `locationNameList:"TagKey" type:"list"`
23843
23844	// The value corresponding to the key of the snapshot schedule tag.
23845	TagValues []*string `locationNameList:"TagValue" type:"list"`
23846}
23847
23848// String returns the string representation.
23849//
23850// API parameter values that are decorated as "sensitive" in the API will not
23851// be included in the string output. The member name will be present, but the
23852// value will be replaced with "sensitive".
23853func (s DescribeSnapshotSchedulesInput) String() string {
23854	return awsutil.Prettify(s)
23855}
23856
23857// GoString returns the string representation.
23858//
23859// API parameter values that are decorated as "sensitive" in the API will not
23860// be included in the string output. The member name will be present, but the
23861// value will be replaced with "sensitive".
23862func (s DescribeSnapshotSchedulesInput) GoString() string {
23863	return s.String()
23864}
23865
23866// SetClusterIdentifier sets the ClusterIdentifier field's value.
23867func (s *DescribeSnapshotSchedulesInput) SetClusterIdentifier(v string) *DescribeSnapshotSchedulesInput {
23868	s.ClusterIdentifier = &v
23869	return s
23870}
23871
23872// SetMarker sets the Marker field's value.
23873func (s *DescribeSnapshotSchedulesInput) SetMarker(v string) *DescribeSnapshotSchedulesInput {
23874	s.Marker = &v
23875	return s
23876}
23877
23878// SetMaxRecords sets the MaxRecords field's value.
23879func (s *DescribeSnapshotSchedulesInput) SetMaxRecords(v int64) *DescribeSnapshotSchedulesInput {
23880	s.MaxRecords = &v
23881	return s
23882}
23883
23884// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
23885func (s *DescribeSnapshotSchedulesInput) SetScheduleIdentifier(v string) *DescribeSnapshotSchedulesInput {
23886	s.ScheduleIdentifier = &v
23887	return s
23888}
23889
23890// SetTagKeys sets the TagKeys field's value.
23891func (s *DescribeSnapshotSchedulesInput) SetTagKeys(v []*string) *DescribeSnapshotSchedulesInput {
23892	s.TagKeys = v
23893	return s
23894}
23895
23896// SetTagValues sets the TagValues field's value.
23897func (s *DescribeSnapshotSchedulesInput) SetTagValues(v []*string) *DescribeSnapshotSchedulesInput {
23898	s.TagValues = v
23899	return s
23900}
23901
23902type DescribeSnapshotSchedulesOutput struct {
23903	_ struct{} `type:"structure"`
23904
23905	// A value that indicates the starting point for the next set of response records
23906	// in a subsequent request. If a value is returned in a response, you can retrieve
23907	// the next set of records by providing this returned marker value in the marker
23908	// parameter and retrying the command. If the marker field is empty, all response
23909	// records have been retrieved for the request.
23910	Marker *string `type:"string"`
23911
23912	// A list of SnapshotSchedules.
23913	SnapshotSchedules []*SnapshotSchedule `locationNameList:"SnapshotSchedule" type:"list"`
23914}
23915
23916// String returns the string representation.
23917//
23918// API parameter values that are decorated as "sensitive" in the API will not
23919// be included in the string output. The member name will be present, but the
23920// value will be replaced with "sensitive".
23921func (s DescribeSnapshotSchedulesOutput) String() string {
23922	return awsutil.Prettify(s)
23923}
23924
23925// GoString returns the string representation.
23926//
23927// API parameter values that are decorated as "sensitive" in the API will not
23928// be included in the string output. The member name will be present, but the
23929// value will be replaced with "sensitive".
23930func (s DescribeSnapshotSchedulesOutput) GoString() string {
23931	return s.String()
23932}
23933
23934// SetMarker sets the Marker field's value.
23935func (s *DescribeSnapshotSchedulesOutput) SetMarker(v string) *DescribeSnapshotSchedulesOutput {
23936	s.Marker = &v
23937	return s
23938}
23939
23940// SetSnapshotSchedules sets the SnapshotSchedules field's value.
23941func (s *DescribeSnapshotSchedulesOutput) SetSnapshotSchedules(v []*SnapshotSchedule) *DescribeSnapshotSchedulesOutput {
23942	s.SnapshotSchedules = v
23943	return s
23944}
23945
23946type DescribeStorageInput struct {
23947	_ struct{} `type:"structure"`
23948}
23949
23950// String returns the string representation.
23951//
23952// API parameter values that are decorated as "sensitive" in the API will not
23953// be included in the string output. The member name will be present, but the
23954// value will be replaced with "sensitive".
23955func (s DescribeStorageInput) String() string {
23956	return awsutil.Prettify(s)
23957}
23958
23959// GoString returns the string representation.
23960//
23961// API parameter values that are decorated as "sensitive" in the API will not
23962// be included in the string output. The member name will be present, but the
23963// value will be replaced with "sensitive".
23964func (s DescribeStorageInput) GoString() string {
23965	return s.String()
23966}
23967
23968type DescribeStorageOutput struct {
23969	_ struct{} `type:"structure"`
23970
23971	// The total amount of storage currently used for snapshots.
23972	TotalBackupSizeInMegaBytes *float64 `type:"double"`
23973
23974	// The total amount of storage currently provisioned.
23975	TotalProvisionedStorageInMegaBytes *float64 `type:"double"`
23976}
23977
23978// String returns the string representation.
23979//
23980// API parameter values that are decorated as "sensitive" in the API will not
23981// be included in the string output. The member name will be present, but the
23982// value will be replaced with "sensitive".
23983func (s DescribeStorageOutput) String() string {
23984	return awsutil.Prettify(s)
23985}
23986
23987// GoString returns the string representation.
23988//
23989// API parameter values that are decorated as "sensitive" in the API will not
23990// be included in the string output. The member name will be present, but the
23991// value will be replaced with "sensitive".
23992func (s DescribeStorageOutput) GoString() string {
23993	return s.String()
23994}
23995
23996// SetTotalBackupSizeInMegaBytes sets the TotalBackupSizeInMegaBytes field's value.
23997func (s *DescribeStorageOutput) SetTotalBackupSizeInMegaBytes(v float64) *DescribeStorageOutput {
23998	s.TotalBackupSizeInMegaBytes = &v
23999	return s
24000}
24001
24002// SetTotalProvisionedStorageInMegaBytes sets the TotalProvisionedStorageInMegaBytes field's value.
24003func (s *DescribeStorageOutput) SetTotalProvisionedStorageInMegaBytes(v float64) *DescribeStorageOutput {
24004	s.TotalProvisionedStorageInMegaBytes = &v
24005	return s
24006}
24007
24008type DescribeTableRestoreStatusInput struct {
24009	_ struct{} `type:"structure"`
24010
24011	// The Amazon Redshift cluster that the table is being restored to.
24012	ClusterIdentifier *string `type:"string"`
24013
24014	// An optional pagination token provided by a previous DescribeTableRestoreStatus
24015	// request. If this parameter is specified, the response includes only records
24016	// beyond the marker, up to the value specified by the MaxRecords parameter.
24017	Marker *string `type:"string"`
24018
24019	// The maximum number of records to include in the response. If more records
24020	// exist than the specified MaxRecords value, a pagination token called a marker
24021	// is included in the response so that the remaining results can be retrieved.
24022	MaxRecords *int64 `type:"integer"`
24023
24024	// The identifier of the table restore request to return status for. If you
24025	// don't specify a TableRestoreRequestId value, then DescribeTableRestoreStatus
24026	// returns the status of all in-progress table restore requests.
24027	TableRestoreRequestId *string `type:"string"`
24028}
24029
24030// String returns the string representation.
24031//
24032// API parameter values that are decorated as "sensitive" in the API will not
24033// be included in the string output. The member name will be present, but the
24034// value will be replaced with "sensitive".
24035func (s DescribeTableRestoreStatusInput) String() string {
24036	return awsutil.Prettify(s)
24037}
24038
24039// GoString returns the string representation.
24040//
24041// API parameter values that are decorated as "sensitive" in the API will not
24042// be included in the string output. The member name will be present, but the
24043// value will be replaced with "sensitive".
24044func (s DescribeTableRestoreStatusInput) GoString() string {
24045	return s.String()
24046}
24047
24048// SetClusterIdentifier sets the ClusterIdentifier field's value.
24049func (s *DescribeTableRestoreStatusInput) SetClusterIdentifier(v string) *DescribeTableRestoreStatusInput {
24050	s.ClusterIdentifier = &v
24051	return s
24052}
24053
24054// SetMarker sets the Marker field's value.
24055func (s *DescribeTableRestoreStatusInput) SetMarker(v string) *DescribeTableRestoreStatusInput {
24056	s.Marker = &v
24057	return s
24058}
24059
24060// SetMaxRecords sets the MaxRecords field's value.
24061func (s *DescribeTableRestoreStatusInput) SetMaxRecords(v int64) *DescribeTableRestoreStatusInput {
24062	s.MaxRecords = &v
24063	return s
24064}
24065
24066// SetTableRestoreRequestId sets the TableRestoreRequestId field's value.
24067func (s *DescribeTableRestoreStatusInput) SetTableRestoreRequestId(v string) *DescribeTableRestoreStatusInput {
24068	s.TableRestoreRequestId = &v
24069	return s
24070}
24071
24072type DescribeTableRestoreStatusOutput struct {
24073	_ struct{} `type:"structure"`
24074
24075	// A pagination token that can be used in a subsequent DescribeTableRestoreStatus
24076	// request.
24077	Marker *string `type:"string"`
24078
24079	// A list of status details for one or more table restore requests.
24080	TableRestoreStatusDetails []*TableRestoreStatus `locationNameList:"TableRestoreStatus" type:"list"`
24081}
24082
24083// String returns the string representation.
24084//
24085// API parameter values that are decorated as "sensitive" in the API will not
24086// be included in the string output. The member name will be present, but the
24087// value will be replaced with "sensitive".
24088func (s DescribeTableRestoreStatusOutput) String() string {
24089	return awsutil.Prettify(s)
24090}
24091
24092// GoString returns the string representation.
24093//
24094// API parameter values that are decorated as "sensitive" in the API will not
24095// be included in the string output. The member name will be present, but the
24096// value will be replaced with "sensitive".
24097func (s DescribeTableRestoreStatusOutput) GoString() string {
24098	return s.String()
24099}
24100
24101// SetMarker sets the Marker field's value.
24102func (s *DescribeTableRestoreStatusOutput) SetMarker(v string) *DescribeTableRestoreStatusOutput {
24103	s.Marker = &v
24104	return s
24105}
24106
24107// SetTableRestoreStatusDetails sets the TableRestoreStatusDetails field's value.
24108func (s *DescribeTableRestoreStatusOutput) SetTableRestoreStatusDetails(v []*TableRestoreStatus) *DescribeTableRestoreStatusOutput {
24109	s.TableRestoreStatusDetails = v
24110	return s
24111}
24112
24113type DescribeTagsInput struct {
24114	_ struct{} `type:"structure"`
24115
24116	// A value that indicates the starting point for the next set of response records
24117	// in a subsequent request. If a value is returned in a response, you can retrieve
24118	// the next set of records by providing this returned marker value in the marker
24119	// parameter and retrying the command. If the marker field is empty, all response
24120	// records have been retrieved for the request.
24121	Marker *string `type:"string"`
24122
24123	// The maximum number or response records to return in each call. If the number
24124	// of remaining response records exceeds the specified MaxRecords value, a value
24125	// is returned in a marker field of the response. You can retrieve the next
24126	// set of records by retrying the command with the returned marker value.
24127	MaxRecords *int64 `type:"integer"`
24128
24129	// The Amazon Resource Name (ARN) for which you want to describe the tag or
24130	// tags. For example, arn:aws:redshift:us-east-2:123456789:cluster:t1.
24131	ResourceName *string `type:"string"`
24132
24133	// The type of resource with which you want to view tags. Valid resource types
24134	// are:
24135	//
24136	//    * Cluster
24137	//
24138	//    * CIDR/IP
24139	//
24140	//    * EC2 security group
24141	//
24142	//    * Snapshot
24143	//
24144	//    * Cluster security group
24145	//
24146	//    * Subnet group
24147	//
24148	//    * HSM connection
24149	//
24150	//    * HSM certificate
24151	//
24152	//    * Parameter group
24153	//
24154	//    * Snapshot copy grant
24155	//
24156	// For more information about Amazon Redshift resource types and constructing
24157	// ARNs, go to Specifying Policy Elements: Actions, Effects, Resources, and
24158	// Principals (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-overview.html#redshift-iam-access-control-specify-actions)
24159	// in the Amazon Redshift Cluster Management Guide.
24160	ResourceType *string `type:"string"`
24161
24162	// A tag key or keys for which you want to return all matching resources that
24163	// are associated with the specified key or keys. For example, suppose that
24164	// you have resources tagged with keys called owner and environment. If you
24165	// specify both of these tag keys in the request, Amazon Redshift returns a
24166	// response with all resources that have either or both of these tag keys associated
24167	// with them.
24168	TagKeys []*string `locationNameList:"TagKey" type:"list"`
24169
24170	// A tag value or values for which you want to return all matching resources
24171	// that are associated with the specified value or values. For example, suppose
24172	// that you have resources tagged with values called admin and test. If you
24173	// specify both of these tag values in the request, Amazon Redshift returns
24174	// a response with all resources that have either or both of these tag values
24175	// associated with them.
24176	TagValues []*string `locationNameList:"TagValue" type:"list"`
24177}
24178
24179// String returns the string representation.
24180//
24181// API parameter values that are decorated as "sensitive" in the API will not
24182// be included in the string output. The member name will be present, but the
24183// value will be replaced with "sensitive".
24184func (s DescribeTagsInput) String() string {
24185	return awsutil.Prettify(s)
24186}
24187
24188// GoString returns the string representation.
24189//
24190// API parameter values that are decorated as "sensitive" in the API will not
24191// be included in the string output. The member name will be present, but the
24192// value will be replaced with "sensitive".
24193func (s DescribeTagsInput) GoString() string {
24194	return s.String()
24195}
24196
24197// SetMarker sets the Marker field's value.
24198func (s *DescribeTagsInput) SetMarker(v string) *DescribeTagsInput {
24199	s.Marker = &v
24200	return s
24201}
24202
24203// SetMaxRecords sets the MaxRecords field's value.
24204func (s *DescribeTagsInput) SetMaxRecords(v int64) *DescribeTagsInput {
24205	s.MaxRecords = &v
24206	return s
24207}
24208
24209// SetResourceName sets the ResourceName field's value.
24210func (s *DescribeTagsInput) SetResourceName(v string) *DescribeTagsInput {
24211	s.ResourceName = &v
24212	return s
24213}
24214
24215// SetResourceType sets the ResourceType field's value.
24216func (s *DescribeTagsInput) SetResourceType(v string) *DescribeTagsInput {
24217	s.ResourceType = &v
24218	return s
24219}
24220
24221// SetTagKeys sets the TagKeys field's value.
24222func (s *DescribeTagsInput) SetTagKeys(v []*string) *DescribeTagsInput {
24223	s.TagKeys = v
24224	return s
24225}
24226
24227// SetTagValues sets the TagValues field's value.
24228func (s *DescribeTagsInput) SetTagValues(v []*string) *DescribeTagsInput {
24229	s.TagValues = v
24230	return s
24231}
24232
24233type DescribeTagsOutput struct {
24234	_ struct{} `type:"structure"`
24235
24236	// A value that indicates the starting point for the next set of response records
24237	// in a subsequent request. If a value is returned in a response, you can retrieve
24238	// the next set of records by providing this returned marker value in the Marker
24239	// parameter and retrying the command. If the Marker field is empty, all response
24240	// records have been retrieved for the request.
24241	Marker *string `type:"string"`
24242
24243	// A list of tags with their associated resources.
24244	TaggedResources []*TaggedResource `locationNameList:"TaggedResource" type:"list"`
24245}
24246
24247// String returns the string representation.
24248//
24249// API parameter values that are decorated as "sensitive" in the API will not
24250// be included in the string output. The member name will be present, but the
24251// value will be replaced with "sensitive".
24252func (s DescribeTagsOutput) String() string {
24253	return awsutil.Prettify(s)
24254}
24255
24256// GoString returns the string representation.
24257//
24258// API parameter values that are decorated as "sensitive" in the API will not
24259// be included in the string output. The member name will be present, but the
24260// value will be replaced with "sensitive".
24261func (s DescribeTagsOutput) GoString() string {
24262	return s.String()
24263}
24264
24265// SetMarker sets the Marker field's value.
24266func (s *DescribeTagsOutput) SetMarker(v string) *DescribeTagsOutput {
24267	s.Marker = &v
24268	return s
24269}
24270
24271// SetTaggedResources sets the TaggedResources field's value.
24272func (s *DescribeTagsOutput) SetTaggedResources(v []*TaggedResource) *DescribeTagsOutput {
24273	s.TaggedResources = v
24274	return s
24275}
24276
24277type DescribeUsageLimitsInput struct {
24278	_ struct{} `type:"structure"`
24279
24280	// The identifier of the cluster for which you want to describe usage limits.
24281	ClusterIdentifier *string `type:"string"`
24282
24283	// The feature type for which you want to describe usage limits.
24284	FeatureType *string `type:"string" enum:"UsageLimitFeatureType"`
24285
24286	// An optional parameter that specifies the starting point to return a set of
24287	// response records. When the results of a DescribeUsageLimits request exceed
24288	// the value specified in MaxRecords, Amazon Web Services returns a value in
24289	// the Marker field of the response. You can retrieve the next set of response
24290	// records by providing the returned marker value in the Marker parameter and
24291	// retrying the request.
24292	Marker *string `type:"string"`
24293
24294	// The maximum number of response records to return in each call. If the number
24295	// of remaining response records exceeds the specified MaxRecords value, a value
24296	// is returned in a marker field of the response. You can retrieve the next
24297	// set of records by retrying the command with the returned marker value.
24298	//
24299	// Default: 100
24300	//
24301	// Constraints: minimum 20, maximum 100.
24302	MaxRecords *int64 `type:"integer"`
24303
24304	// A tag key or keys for which you want to return all matching usage limit objects
24305	// that are associated with the specified key or keys. For example, suppose
24306	// that you have parameter groups that are tagged with keys called owner and
24307	// environment. If you specify both of these tag keys in the request, Amazon
24308	// Redshift returns a response with the usage limit objects have either or both
24309	// of these tag keys associated with them.
24310	TagKeys []*string `locationNameList:"TagKey" type:"list"`
24311
24312	// A tag value or values for which you want to return all matching usage limit
24313	// objects that are associated with the specified tag value or values. For example,
24314	// suppose that you have parameter groups that are tagged with values called
24315	// admin and test. If you specify both of these tag values in the request, Amazon
24316	// Redshift returns a response with the usage limit objects that have either
24317	// or both of these tag values associated with them.
24318	TagValues []*string `locationNameList:"TagValue" type:"list"`
24319
24320	// The identifier of the usage limit to describe.
24321	UsageLimitId *string `type:"string"`
24322}
24323
24324// String returns the string representation.
24325//
24326// API parameter values that are decorated as "sensitive" in the API will not
24327// be included in the string output. The member name will be present, but the
24328// value will be replaced with "sensitive".
24329func (s DescribeUsageLimitsInput) String() string {
24330	return awsutil.Prettify(s)
24331}
24332
24333// GoString returns the string representation.
24334//
24335// API parameter values that are decorated as "sensitive" in the API will not
24336// be included in the string output. The member name will be present, but the
24337// value will be replaced with "sensitive".
24338func (s DescribeUsageLimitsInput) GoString() string {
24339	return s.String()
24340}
24341
24342// SetClusterIdentifier sets the ClusterIdentifier field's value.
24343func (s *DescribeUsageLimitsInput) SetClusterIdentifier(v string) *DescribeUsageLimitsInput {
24344	s.ClusterIdentifier = &v
24345	return s
24346}
24347
24348// SetFeatureType sets the FeatureType field's value.
24349func (s *DescribeUsageLimitsInput) SetFeatureType(v string) *DescribeUsageLimitsInput {
24350	s.FeatureType = &v
24351	return s
24352}
24353
24354// SetMarker sets the Marker field's value.
24355func (s *DescribeUsageLimitsInput) SetMarker(v string) *DescribeUsageLimitsInput {
24356	s.Marker = &v
24357	return s
24358}
24359
24360// SetMaxRecords sets the MaxRecords field's value.
24361func (s *DescribeUsageLimitsInput) SetMaxRecords(v int64) *DescribeUsageLimitsInput {
24362	s.MaxRecords = &v
24363	return s
24364}
24365
24366// SetTagKeys sets the TagKeys field's value.
24367func (s *DescribeUsageLimitsInput) SetTagKeys(v []*string) *DescribeUsageLimitsInput {
24368	s.TagKeys = v
24369	return s
24370}
24371
24372// SetTagValues sets the TagValues field's value.
24373func (s *DescribeUsageLimitsInput) SetTagValues(v []*string) *DescribeUsageLimitsInput {
24374	s.TagValues = v
24375	return s
24376}
24377
24378// SetUsageLimitId sets the UsageLimitId field's value.
24379func (s *DescribeUsageLimitsInput) SetUsageLimitId(v string) *DescribeUsageLimitsInput {
24380	s.UsageLimitId = &v
24381	return s
24382}
24383
24384type DescribeUsageLimitsOutput struct {
24385	_ struct{} `type:"structure"`
24386
24387	// A value that indicates the starting point for the next set of response records
24388	// in a subsequent request. If a value is returned in a response, you can retrieve
24389	// the next set of records by providing this returned marker value in the Marker
24390	// parameter and retrying the command. If the Marker field is empty, all response
24391	// records have been retrieved for the request.
24392	Marker *string `type:"string"`
24393
24394	// Contains the output from the DescribeUsageLimits action.
24395	UsageLimits []*UsageLimit `type:"list"`
24396}
24397
24398// String returns the string representation.
24399//
24400// API parameter values that are decorated as "sensitive" in the API will not
24401// be included in the string output. The member name will be present, but the
24402// value will be replaced with "sensitive".
24403func (s DescribeUsageLimitsOutput) String() string {
24404	return awsutil.Prettify(s)
24405}
24406
24407// GoString returns the string representation.
24408//
24409// API parameter values that are decorated as "sensitive" in the API will not
24410// be included in the string output. The member name will be present, but the
24411// value will be replaced with "sensitive".
24412func (s DescribeUsageLimitsOutput) GoString() string {
24413	return s.String()
24414}
24415
24416// SetMarker sets the Marker field's value.
24417func (s *DescribeUsageLimitsOutput) SetMarker(v string) *DescribeUsageLimitsOutput {
24418	s.Marker = &v
24419	return s
24420}
24421
24422// SetUsageLimits sets the UsageLimits field's value.
24423func (s *DescribeUsageLimitsOutput) SetUsageLimits(v []*UsageLimit) *DescribeUsageLimitsOutput {
24424	s.UsageLimits = v
24425	return s
24426}
24427
24428type DisableLoggingInput struct {
24429	_ struct{} `type:"structure"`
24430
24431	// The identifier of the cluster on which logging is to be stopped.
24432	//
24433	// Example: examplecluster
24434	//
24435	// ClusterIdentifier is a required field
24436	ClusterIdentifier *string `type:"string" required:"true"`
24437}
24438
24439// String returns the string representation.
24440//
24441// API parameter values that are decorated as "sensitive" in the API will not
24442// be included in the string output. The member name will be present, but the
24443// value will be replaced with "sensitive".
24444func (s DisableLoggingInput) String() string {
24445	return awsutil.Prettify(s)
24446}
24447
24448// GoString returns the string representation.
24449//
24450// API parameter values that are decorated as "sensitive" in the API will not
24451// be included in the string output. The member name will be present, but the
24452// value will be replaced with "sensitive".
24453func (s DisableLoggingInput) GoString() string {
24454	return s.String()
24455}
24456
24457// Validate inspects the fields of the type to determine if they are valid.
24458func (s *DisableLoggingInput) Validate() error {
24459	invalidParams := request.ErrInvalidParams{Context: "DisableLoggingInput"}
24460	if s.ClusterIdentifier == nil {
24461		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
24462	}
24463
24464	if invalidParams.Len() > 0 {
24465		return invalidParams
24466	}
24467	return nil
24468}
24469
24470// SetClusterIdentifier sets the ClusterIdentifier field's value.
24471func (s *DisableLoggingInput) SetClusterIdentifier(v string) *DisableLoggingInput {
24472	s.ClusterIdentifier = &v
24473	return s
24474}
24475
24476type DisableSnapshotCopyInput struct {
24477	_ struct{} `type:"structure"`
24478
24479	// The unique identifier of the source cluster that you want to disable copying
24480	// of snapshots to a destination region.
24481	//
24482	// Constraints: Must be the valid name of an existing cluster that has cross-region
24483	// snapshot copy enabled.
24484	//
24485	// ClusterIdentifier is a required field
24486	ClusterIdentifier *string `type:"string" required:"true"`
24487}
24488
24489// String returns the string representation.
24490//
24491// API parameter values that are decorated as "sensitive" in the API will not
24492// be included in the string output. The member name will be present, but the
24493// value will be replaced with "sensitive".
24494func (s DisableSnapshotCopyInput) String() string {
24495	return awsutil.Prettify(s)
24496}
24497
24498// GoString returns the string representation.
24499//
24500// API parameter values that are decorated as "sensitive" in the API will not
24501// be included in the string output. The member name will be present, but the
24502// value will be replaced with "sensitive".
24503func (s DisableSnapshotCopyInput) GoString() string {
24504	return s.String()
24505}
24506
24507// Validate inspects the fields of the type to determine if they are valid.
24508func (s *DisableSnapshotCopyInput) Validate() error {
24509	invalidParams := request.ErrInvalidParams{Context: "DisableSnapshotCopyInput"}
24510	if s.ClusterIdentifier == nil {
24511		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
24512	}
24513
24514	if invalidParams.Len() > 0 {
24515		return invalidParams
24516	}
24517	return nil
24518}
24519
24520// SetClusterIdentifier sets the ClusterIdentifier field's value.
24521func (s *DisableSnapshotCopyInput) SetClusterIdentifier(v string) *DisableSnapshotCopyInput {
24522	s.ClusterIdentifier = &v
24523	return s
24524}
24525
24526type DisableSnapshotCopyOutput struct {
24527	_ struct{} `type:"structure"`
24528
24529	// Describes a cluster.
24530	Cluster *Cluster `type:"structure"`
24531}
24532
24533// String returns the string representation.
24534//
24535// API parameter values that are decorated as "sensitive" in the API will not
24536// be included in the string output. The member name will be present, but the
24537// value will be replaced with "sensitive".
24538func (s DisableSnapshotCopyOutput) String() string {
24539	return awsutil.Prettify(s)
24540}
24541
24542// GoString returns the string representation.
24543//
24544// API parameter values that are decorated as "sensitive" in the API will not
24545// be included in the string output. The member name will be present, but the
24546// value will be replaced with "sensitive".
24547func (s DisableSnapshotCopyOutput) GoString() string {
24548	return s.String()
24549}
24550
24551// SetCluster sets the Cluster field's value.
24552func (s *DisableSnapshotCopyOutput) SetCluster(v *Cluster) *DisableSnapshotCopyOutput {
24553	s.Cluster = v
24554	return s
24555}
24556
24557type DisassociateDataShareConsumerInput struct {
24558	_ struct{} `type:"structure"`
24559
24560	// The Amazon Resource Name (ARN) of the consumer that association for the datashare
24561	// is removed from.
24562	ConsumerArn *string `type:"string"`
24563
24564	// The Amazon Resource Name (ARN) of the datashare to remove association for.
24565	//
24566	// DataShareArn is a required field
24567	DataShareArn *string `type:"string" required:"true"`
24568
24569	// A value that specifies whether association for the datashare is removed from
24570	// the entire account.
24571	DisassociateEntireAccount *bool `type:"boolean"`
24572}
24573
24574// String returns the string representation.
24575//
24576// API parameter values that are decorated as "sensitive" in the API will not
24577// be included in the string output. The member name will be present, but the
24578// value will be replaced with "sensitive".
24579func (s DisassociateDataShareConsumerInput) String() string {
24580	return awsutil.Prettify(s)
24581}
24582
24583// GoString returns the string representation.
24584//
24585// API parameter values that are decorated as "sensitive" in the API will not
24586// be included in the string output. The member name will be present, but the
24587// value will be replaced with "sensitive".
24588func (s DisassociateDataShareConsumerInput) GoString() string {
24589	return s.String()
24590}
24591
24592// Validate inspects the fields of the type to determine if they are valid.
24593func (s *DisassociateDataShareConsumerInput) Validate() error {
24594	invalidParams := request.ErrInvalidParams{Context: "DisassociateDataShareConsumerInput"}
24595	if s.DataShareArn == nil {
24596		invalidParams.Add(request.NewErrParamRequired("DataShareArn"))
24597	}
24598
24599	if invalidParams.Len() > 0 {
24600		return invalidParams
24601	}
24602	return nil
24603}
24604
24605// SetConsumerArn sets the ConsumerArn field's value.
24606func (s *DisassociateDataShareConsumerInput) SetConsumerArn(v string) *DisassociateDataShareConsumerInput {
24607	s.ConsumerArn = &v
24608	return s
24609}
24610
24611// SetDataShareArn sets the DataShareArn field's value.
24612func (s *DisassociateDataShareConsumerInput) SetDataShareArn(v string) *DisassociateDataShareConsumerInput {
24613	s.DataShareArn = &v
24614	return s
24615}
24616
24617// SetDisassociateEntireAccount sets the DisassociateEntireAccount field's value.
24618func (s *DisassociateDataShareConsumerInput) SetDisassociateEntireAccount(v bool) *DisassociateDataShareConsumerInput {
24619	s.DisassociateEntireAccount = &v
24620	return s
24621}
24622
24623type DisassociateDataShareConsumerOutput struct {
24624	_ struct{} `type:"structure"`
24625
24626	// A value that specifies whether the datashare can be shared to a publicly
24627	// accessible cluster.
24628	AllowPubliclyAccessibleConsumers *bool `type:"boolean"`
24629
24630	// An Amazon Resource Name (ARN) that references the datashare that is owned
24631	// by a specific namespace of the producer cluster. A datashare ARN is in the
24632	// arn:aws:redshift:{region}:{account-id}:{datashare}:{namespace-guid}/{datashare-name}
24633	// format.
24634	DataShareArn *string `type:"string"`
24635
24636	// A value that specifies when the datashare has an association between a producer
24637	// and data consumers.
24638	DataShareAssociations []*DataShareAssociation `type:"list"`
24639
24640	// The Amazon Resource Name (ARN) of the producer.
24641	ProducerArn *string `type:"string"`
24642}
24643
24644// String returns the string representation.
24645//
24646// API parameter values that are decorated as "sensitive" in the API will not
24647// be included in the string output. The member name will be present, but the
24648// value will be replaced with "sensitive".
24649func (s DisassociateDataShareConsumerOutput) String() string {
24650	return awsutil.Prettify(s)
24651}
24652
24653// GoString returns the string representation.
24654//
24655// API parameter values that are decorated as "sensitive" in the API will not
24656// be included in the string output. The member name will be present, but the
24657// value will be replaced with "sensitive".
24658func (s DisassociateDataShareConsumerOutput) GoString() string {
24659	return s.String()
24660}
24661
24662// SetAllowPubliclyAccessibleConsumers sets the AllowPubliclyAccessibleConsumers field's value.
24663func (s *DisassociateDataShareConsumerOutput) SetAllowPubliclyAccessibleConsumers(v bool) *DisassociateDataShareConsumerOutput {
24664	s.AllowPubliclyAccessibleConsumers = &v
24665	return s
24666}
24667
24668// SetDataShareArn sets the DataShareArn field's value.
24669func (s *DisassociateDataShareConsumerOutput) SetDataShareArn(v string) *DisassociateDataShareConsumerOutput {
24670	s.DataShareArn = &v
24671	return s
24672}
24673
24674// SetDataShareAssociations sets the DataShareAssociations field's value.
24675func (s *DisassociateDataShareConsumerOutput) SetDataShareAssociations(v []*DataShareAssociation) *DisassociateDataShareConsumerOutput {
24676	s.DataShareAssociations = v
24677	return s
24678}
24679
24680// SetProducerArn sets the ProducerArn field's value.
24681func (s *DisassociateDataShareConsumerOutput) SetProducerArn(v string) *DisassociateDataShareConsumerOutput {
24682	s.ProducerArn = &v
24683	return s
24684}
24685
24686// Describes an Amazon EC2 security group.
24687type EC2SecurityGroup struct {
24688	_ struct{} `type:"structure"`
24689
24690	// The name of the EC2 Security Group.
24691	EC2SecurityGroupName *string `type:"string"`
24692
24693	// The Amazon Web Services account ID of the owner of the EC2 security group
24694	// specified in the EC2SecurityGroupName field.
24695	EC2SecurityGroupOwnerId *string `type:"string"`
24696
24697	// The status of the EC2 security group.
24698	Status *string `type:"string"`
24699
24700	// The list of tags for the EC2 security group.
24701	Tags []*Tag `locationNameList:"Tag" type:"list"`
24702}
24703
24704// String returns the string representation.
24705//
24706// API parameter values that are decorated as "sensitive" in the API will not
24707// be included in the string output. The member name will be present, but the
24708// value will be replaced with "sensitive".
24709func (s EC2SecurityGroup) String() string {
24710	return awsutil.Prettify(s)
24711}
24712
24713// GoString returns the string representation.
24714//
24715// API parameter values that are decorated as "sensitive" in the API will not
24716// be included in the string output. The member name will be present, but the
24717// value will be replaced with "sensitive".
24718func (s EC2SecurityGroup) GoString() string {
24719	return s.String()
24720}
24721
24722// SetEC2SecurityGroupName sets the EC2SecurityGroupName field's value.
24723func (s *EC2SecurityGroup) SetEC2SecurityGroupName(v string) *EC2SecurityGroup {
24724	s.EC2SecurityGroupName = &v
24725	return s
24726}
24727
24728// SetEC2SecurityGroupOwnerId sets the EC2SecurityGroupOwnerId field's value.
24729func (s *EC2SecurityGroup) SetEC2SecurityGroupOwnerId(v string) *EC2SecurityGroup {
24730	s.EC2SecurityGroupOwnerId = &v
24731	return s
24732}
24733
24734// SetStatus sets the Status field's value.
24735func (s *EC2SecurityGroup) SetStatus(v string) *EC2SecurityGroup {
24736	s.Status = &v
24737	return s
24738}
24739
24740// SetTags sets the Tags field's value.
24741func (s *EC2SecurityGroup) SetTags(v []*Tag) *EC2SecurityGroup {
24742	s.Tags = v
24743	return s
24744}
24745
24746// Describes the status of the elastic IP (EIP) address.
24747type ElasticIpStatus struct {
24748	_ struct{} `type:"structure"`
24749
24750	// The elastic IP (EIP) address for the cluster.
24751	ElasticIp *string `type:"string"`
24752
24753	// The status of the elastic IP (EIP) address.
24754	Status *string `type:"string"`
24755}
24756
24757// String returns the string representation.
24758//
24759// API parameter values that are decorated as "sensitive" in the API will not
24760// be included in the string output. The member name will be present, but the
24761// value will be replaced with "sensitive".
24762func (s ElasticIpStatus) String() string {
24763	return awsutil.Prettify(s)
24764}
24765
24766// GoString returns the string representation.
24767//
24768// API parameter values that are decorated as "sensitive" in the API will not
24769// be included in the string output. The member name will be present, but the
24770// value will be replaced with "sensitive".
24771func (s ElasticIpStatus) GoString() string {
24772	return s.String()
24773}
24774
24775// SetElasticIp sets the ElasticIp field's value.
24776func (s *ElasticIpStatus) SetElasticIp(v string) *ElasticIpStatus {
24777	s.ElasticIp = &v
24778	return s
24779}
24780
24781// SetStatus sets the Status field's value.
24782func (s *ElasticIpStatus) SetStatus(v string) *ElasticIpStatus {
24783	s.Status = &v
24784	return s
24785}
24786
24787type EnableLoggingInput struct {
24788	_ struct{} `type:"structure"`
24789
24790	// The name of an existing S3 bucket where the log files are to be stored.
24791	//
24792	// Constraints:
24793	//
24794	//    * Must be in the same region as the cluster
24795	//
24796	//    * The cluster must have read bucket and put object permissions
24797	//
24798	// BucketName is a required field
24799	BucketName *string `type:"string" required:"true"`
24800
24801	// The identifier of the cluster on which logging is to be started.
24802	//
24803	// Example: examplecluster
24804	//
24805	// ClusterIdentifier is a required field
24806	ClusterIdentifier *string `type:"string" required:"true"`
24807
24808	// The prefix applied to the log file names.
24809	//
24810	// Constraints:
24811	//
24812	//    * Cannot exceed 512 characters
24813	//
24814	//    * Cannot contain spaces( ), double quotes ("), single quotes ('), a backslash
24815	//    (\), or control characters. The hexadecimal codes for invalid characters
24816	//    are: x00 to x20 x22 x27 x5c x7f or larger
24817	S3KeyPrefix *string `type:"string"`
24818}
24819
24820// String returns the string representation.
24821//
24822// API parameter values that are decorated as "sensitive" in the API will not
24823// be included in the string output. The member name will be present, but the
24824// value will be replaced with "sensitive".
24825func (s EnableLoggingInput) String() string {
24826	return awsutil.Prettify(s)
24827}
24828
24829// GoString returns the string representation.
24830//
24831// API parameter values that are decorated as "sensitive" in the API will not
24832// be included in the string output. The member name will be present, but the
24833// value will be replaced with "sensitive".
24834func (s EnableLoggingInput) GoString() string {
24835	return s.String()
24836}
24837
24838// Validate inspects the fields of the type to determine if they are valid.
24839func (s *EnableLoggingInput) Validate() error {
24840	invalidParams := request.ErrInvalidParams{Context: "EnableLoggingInput"}
24841	if s.BucketName == nil {
24842		invalidParams.Add(request.NewErrParamRequired("BucketName"))
24843	}
24844	if s.ClusterIdentifier == nil {
24845		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
24846	}
24847
24848	if invalidParams.Len() > 0 {
24849		return invalidParams
24850	}
24851	return nil
24852}
24853
24854// SetBucketName sets the BucketName field's value.
24855func (s *EnableLoggingInput) SetBucketName(v string) *EnableLoggingInput {
24856	s.BucketName = &v
24857	return s
24858}
24859
24860// SetClusterIdentifier sets the ClusterIdentifier field's value.
24861func (s *EnableLoggingInput) SetClusterIdentifier(v string) *EnableLoggingInput {
24862	s.ClusterIdentifier = &v
24863	return s
24864}
24865
24866// SetS3KeyPrefix sets the S3KeyPrefix field's value.
24867func (s *EnableLoggingInput) SetS3KeyPrefix(v string) *EnableLoggingInput {
24868	s.S3KeyPrefix = &v
24869	return s
24870}
24871
24872type EnableSnapshotCopyInput struct {
24873	_ struct{} `type:"structure"`
24874
24875	// The unique identifier of the source cluster to copy snapshots from.
24876	//
24877	// Constraints: Must be the valid name of an existing cluster that does not
24878	// already have cross-region snapshot copy enabled.
24879	//
24880	// ClusterIdentifier is a required field
24881	ClusterIdentifier *string `type:"string" required:"true"`
24882
24883	// The destination Amazon Web Services Region that you want to copy snapshots
24884	// to.
24885	//
24886	// Constraints: Must be the name of a valid Amazon Web Services Region. For
24887	// more information, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#redshift_region)
24888	// in the Amazon Web Services General Reference.
24889	//
24890	// DestinationRegion is a required field
24891	DestinationRegion *string `type:"string" required:"true"`
24892
24893	// The number of days to retain newly copied snapshots in the destination Amazon
24894	// Web Services Region after they are copied from the source Amazon Web Services
24895	// Region. If the value is -1, the manual snapshot is retained indefinitely.
24896	//
24897	// The value must be either -1 or an integer between 1 and 3,653.
24898	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
24899
24900	// The number of days to retain automated snapshots in the destination region
24901	// after they are copied from the source region.
24902	//
24903	// Default: 7.
24904	//
24905	// Constraints: Must be at least 1 and no more than 35.
24906	RetentionPeriod *int64 `type:"integer"`
24907
24908	// The name of the snapshot copy grant to use when snapshots of an Amazon Web
24909	// Services KMS-encrypted cluster are copied to the destination region.
24910	SnapshotCopyGrantName *string `type:"string"`
24911}
24912
24913// String returns the string representation.
24914//
24915// API parameter values that are decorated as "sensitive" in the API will not
24916// be included in the string output. The member name will be present, but the
24917// value will be replaced with "sensitive".
24918func (s EnableSnapshotCopyInput) String() string {
24919	return awsutil.Prettify(s)
24920}
24921
24922// GoString returns the string representation.
24923//
24924// API parameter values that are decorated as "sensitive" in the API will not
24925// be included in the string output. The member name will be present, but the
24926// value will be replaced with "sensitive".
24927func (s EnableSnapshotCopyInput) GoString() string {
24928	return s.String()
24929}
24930
24931// Validate inspects the fields of the type to determine if they are valid.
24932func (s *EnableSnapshotCopyInput) Validate() error {
24933	invalidParams := request.ErrInvalidParams{Context: "EnableSnapshotCopyInput"}
24934	if s.ClusterIdentifier == nil {
24935		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
24936	}
24937	if s.DestinationRegion == nil {
24938		invalidParams.Add(request.NewErrParamRequired("DestinationRegion"))
24939	}
24940
24941	if invalidParams.Len() > 0 {
24942		return invalidParams
24943	}
24944	return nil
24945}
24946
24947// SetClusterIdentifier sets the ClusterIdentifier field's value.
24948func (s *EnableSnapshotCopyInput) SetClusterIdentifier(v string) *EnableSnapshotCopyInput {
24949	s.ClusterIdentifier = &v
24950	return s
24951}
24952
24953// SetDestinationRegion sets the DestinationRegion field's value.
24954func (s *EnableSnapshotCopyInput) SetDestinationRegion(v string) *EnableSnapshotCopyInput {
24955	s.DestinationRegion = &v
24956	return s
24957}
24958
24959// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
24960func (s *EnableSnapshotCopyInput) SetManualSnapshotRetentionPeriod(v int64) *EnableSnapshotCopyInput {
24961	s.ManualSnapshotRetentionPeriod = &v
24962	return s
24963}
24964
24965// SetRetentionPeriod sets the RetentionPeriod field's value.
24966func (s *EnableSnapshotCopyInput) SetRetentionPeriod(v int64) *EnableSnapshotCopyInput {
24967	s.RetentionPeriod = &v
24968	return s
24969}
24970
24971// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
24972func (s *EnableSnapshotCopyInput) SetSnapshotCopyGrantName(v string) *EnableSnapshotCopyInput {
24973	s.SnapshotCopyGrantName = &v
24974	return s
24975}
24976
24977type EnableSnapshotCopyOutput struct {
24978	_ struct{} `type:"structure"`
24979
24980	// Describes a cluster.
24981	Cluster *Cluster `type:"structure"`
24982}
24983
24984// String returns the string representation.
24985//
24986// API parameter values that are decorated as "sensitive" in the API will not
24987// be included in the string output. The member name will be present, but the
24988// value will be replaced with "sensitive".
24989func (s EnableSnapshotCopyOutput) String() string {
24990	return awsutil.Prettify(s)
24991}
24992
24993// GoString returns the string representation.
24994//
24995// API parameter values that are decorated as "sensitive" in the API will not
24996// be included in the string output. The member name will be present, but the
24997// value will be replaced with "sensitive".
24998func (s EnableSnapshotCopyOutput) GoString() string {
24999	return s.String()
25000}
25001
25002// SetCluster sets the Cluster field's value.
25003func (s *EnableSnapshotCopyOutput) SetCluster(v *Cluster) *EnableSnapshotCopyOutput {
25004	s.Cluster = v
25005	return s
25006}
25007
25008// Describes a connection endpoint.
25009type Endpoint struct {
25010	_ struct{} `type:"structure"`
25011
25012	// The DNS address of the Cluster.
25013	Address *string `type:"string"`
25014
25015	// The port that the database engine is listening on.
25016	Port *int64 `type:"integer"`
25017
25018	// Describes a connection endpoint.
25019	VpcEndpoints []*VpcEndpoint `locationNameList:"VpcEndpoint" type:"list"`
25020}
25021
25022// String returns the string representation.
25023//
25024// API parameter values that are decorated as "sensitive" in the API will not
25025// be included in the string output. The member name will be present, but the
25026// value will be replaced with "sensitive".
25027func (s Endpoint) String() string {
25028	return awsutil.Prettify(s)
25029}
25030
25031// GoString returns the string representation.
25032//
25033// API parameter values that are decorated as "sensitive" in the API will not
25034// be included in the string output. The member name will be present, but the
25035// value will be replaced with "sensitive".
25036func (s Endpoint) GoString() string {
25037	return s.String()
25038}
25039
25040// SetAddress sets the Address field's value.
25041func (s *Endpoint) SetAddress(v string) *Endpoint {
25042	s.Address = &v
25043	return s
25044}
25045
25046// SetPort sets the Port field's value.
25047func (s *Endpoint) SetPort(v int64) *Endpoint {
25048	s.Port = &v
25049	return s
25050}
25051
25052// SetVpcEndpoints sets the VpcEndpoints field's value.
25053func (s *Endpoint) SetVpcEndpoints(v []*VpcEndpoint) *Endpoint {
25054	s.VpcEndpoints = v
25055	return s
25056}
25057
25058// Describes a Redshift-managed VPC endpoint.
25059type EndpointAccess struct {
25060	_ struct{} `type:"structure"`
25061
25062	// The DNS address of the endpoint.
25063	Address *string `type:"string"`
25064
25065	// The cluster identifier of the cluster associated with the endpoint.
25066	ClusterIdentifier *string `type:"string"`
25067
25068	// The time (UTC) that the endpoint was created.
25069	EndpointCreateTime *time.Time `type:"timestamp"`
25070
25071	// The name of the endpoint.
25072	EndpointName *string `type:"string"`
25073
25074	// The status of the endpoint.
25075	EndpointStatus *string `type:"string"`
25076
25077	// The port number on which the cluster accepts incoming connections.
25078	Port *int64 `type:"integer"`
25079
25080	// The Amazon Web Services account ID of the owner of the cluster.
25081	ResourceOwner *string `type:"string"`
25082
25083	// The subnet group name where Amazon Redshift chooses to deploy the endpoint.
25084	SubnetGroupName *string `type:"string"`
25085
25086	// The connection endpoint for connecting to an Amazon Redshift cluster through
25087	// the proxy.
25088	VpcEndpoint *VpcEndpoint `type:"structure"`
25089
25090	// The security groups associated with the endpoint.
25091	VpcSecurityGroups []*VpcSecurityGroupMembership `locationNameList:"VpcSecurityGroup" type:"list"`
25092}
25093
25094// String returns the string representation.
25095//
25096// API parameter values that are decorated as "sensitive" in the API will not
25097// be included in the string output. The member name will be present, but the
25098// value will be replaced with "sensitive".
25099func (s EndpointAccess) String() string {
25100	return awsutil.Prettify(s)
25101}
25102
25103// GoString returns the string representation.
25104//
25105// API parameter values that are decorated as "sensitive" in the API will not
25106// be included in the string output. The member name will be present, but the
25107// value will be replaced with "sensitive".
25108func (s EndpointAccess) GoString() string {
25109	return s.String()
25110}
25111
25112// SetAddress sets the Address field's value.
25113func (s *EndpointAccess) SetAddress(v string) *EndpointAccess {
25114	s.Address = &v
25115	return s
25116}
25117
25118// SetClusterIdentifier sets the ClusterIdentifier field's value.
25119func (s *EndpointAccess) SetClusterIdentifier(v string) *EndpointAccess {
25120	s.ClusterIdentifier = &v
25121	return s
25122}
25123
25124// SetEndpointCreateTime sets the EndpointCreateTime field's value.
25125func (s *EndpointAccess) SetEndpointCreateTime(v time.Time) *EndpointAccess {
25126	s.EndpointCreateTime = &v
25127	return s
25128}
25129
25130// SetEndpointName sets the EndpointName field's value.
25131func (s *EndpointAccess) SetEndpointName(v string) *EndpointAccess {
25132	s.EndpointName = &v
25133	return s
25134}
25135
25136// SetEndpointStatus sets the EndpointStatus field's value.
25137func (s *EndpointAccess) SetEndpointStatus(v string) *EndpointAccess {
25138	s.EndpointStatus = &v
25139	return s
25140}
25141
25142// SetPort sets the Port field's value.
25143func (s *EndpointAccess) SetPort(v int64) *EndpointAccess {
25144	s.Port = &v
25145	return s
25146}
25147
25148// SetResourceOwner sets the ResourceOwner field's value.
25149func (s *EndpointAccess) SetResourceOwner(v string) *EndpointAccess {
25150	s.ResourceOwner = &v
25151	return s
25152}
25153
25154// SetSubnetGroupName sets the SubnetGroupName field's value.
25155func (s *EndpointAccess) SetSubnetGroupName(v string) *EndpointAccess {
25156	s.SubnetGroupName = &v
25157	return s
25158}
25159
25160// SetVpcEndpoint sets the VpcEndpoint field's value.
25161func (s *EndpointAccess) SetVpcEndpoint(v *VpcEndpoint) *EndpointAccess {
25162	s.VpcEndpoint = v
25163	return s
25164}
25165
25166// SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
25167func (s *EndpointAccess) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *EndpointAccess {
25168	s.VpcSecurityGroups = v
25169	return s
25170}
25171
25172// Describes an endpoint authorization for authorizing Redshift-managed VPC
25173// endpoint access to a cluster across Amazon Web Services accounts.
25174type EndpointAuthorization struct {
25175	_ struct{} `type:"structure"`
25176
25177	// Indicates whether all VPCs in the grantee account are allowed access to the
25178	// cluster.
25179	AllowedAllVPCs *bool `type:"boolean"`
25180
25181	// The VPCs allowed access to the cluster.
25182	AllowedVPCs []*string `locationNameList:"VpcIdentifier" type:"list"`
25183
25184	// The time (UTC) when the authorization was created.
25185	AuthorizeTime *time.Time `type:"timestamp"`
25186
25187	// The cluster identifier.
25188	ClusterIdentifier *string `type:"string"`
25189
25190	// The status of the cluster.
25191	ClusterStatus *string `type:"string"`
25192
25193	// The number of Redshift-managed VPC endpoints created for the authorization.
25194	EndpointCount *int64 `type:"integer"`
25195
25196	// The Amazon Web Services account ID of the grantee of the cluster.
25197	Grantee *string `type:"string"`
25198
25199	// The Amazon Web Services account ID of the cluster owner.
25200	Grantor *string `type:"string"`
25201
25202	// The status of the authorization action.
25203	Status *string `type:"string" enum:"AuthorizationStatus"`
25204}
25205
25206// String returns the string representation.
25207//
25208// API parameter values that are decorated as "sensitive" in the API will not
25209// be included in the string output. The member name will be present, but the
25210// value will be replaced with "sensitive".
25211func (s EndpointAuthorization) String() string {
25212	return awsutil.Prettify(s)
25213}
25214
25215// GoString returns the string representation.
25216//
25217// API parameter values that are decorated as "sensitive" in the API will not
25218// be included in the string output. The member name will be present, but the
25219// value will be replaced with "sensitive".
25220func (s EndpointAuthorization) GoString() string {
25221	return s.String()
25222}
25223
25224// SetAllowedAllVPCs sets the AllowedAllVPCs field's value.
25225func (s *EndpointAuthorization) SetAllowedAllVPCs(v bool) *EndpointAuthorization {
25226	s.AllowedAllVPCs = &v
25227	return s
25228}
25229
25230// SetAllowedVPCs sets the AllowedVPCs field's value.
25231func (s *EndpointAuthorization) SetAllowedVPCs(v []*string) *EndpointAuthorization {
25232	s.AllowedVPCs = v
25233	return s
25234}
25235
25236// SetAuthorizeTime sets the AuthorizeTime field's value.
25237func (s *EndpointAuthorization) SetAuthorizeTime(v time.Time) *EndpointAuthorization {
25238	s.AuthorizeTime = &v
25239	return s
25240}
25241
25242// SetClusterIdentifier sets the ClusterIdentifier field's value.
25243func (s *EndpointAuthorization) SetClusterIdentifier(v string) *EndpointAuthorization {
25244	s.ClusterIdentifier = &v
25245	return s
25246}
25247
25248// SetClusterStatus sets the ClusterStatus field's value.
25249func (s *EndpointAuthorization) SetClusterStatus(v string) *EndpointAuthorization {
25250	s.ClusterStatus = &v
25251	return s
25252}
25253
25254// SetEndpointCount sets the EndpointCount field's value.
25255func (s *EndpointAuthorization) SetEndpointCount(v int64) *EndpointAuthorization {
25256	s.EndpointCount = &v
25257	return s
25258}
25259
25260// SetGrantee sets the Grantee field's value.
25261func (s *EndpointAuthorization) SetGrantee(v string) *EndpointAuthorization {
25262	s.Grantee = &v
25263	return s
25264}
25265
25266// SetGrantor sets the Grantor field's value.
25267func (s *EndpointAuthorization) SetGrantor(v string) *EndpointAuthorization {
25268	s.Grantor = &v
25269	return s
25270}
25271
25272// SetStatus sets the Status field's value.
25273func (s *EndpointAuthorization) SetStatus(v string) *EndpointAuthorization {
25274	s.Status = &v
25275	return s
25276}
25277
25278// Describes an event.
25279type Event struct {
25280	_ struct{} `type:"structure"`
25281
25282	// The date and time of the event.
25283	Date *time.Time `type:"timestamp"`
25284
25285	// A list of the event categories.
25286	//
25287	// Values: Configuration, Management, Monitoring, Security, Pending
25288	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
25289
25290	// The identifier of the event.
25291	EventId *string `type:"string"`
25292
25293	// The text of this event.
25294	Message *string `type:"string"`
25295
25296	// The severity of the event.
25297	//
25298	// Values: ERROR, INFO
25299	Severity *string `type:"string"`
25300
25301	// The identifier for the source of the event.
25302	SourceIdentifier *string `type:"string"`
25303
25304	// The source type for this event.
25305	SourceType *string `type:"string" enum:"SourceType"`
25306}
25307
25308// String returns the string representation.
25309//
25310// API parameter values that are decorated as "sensitive" in the API will not
25311// be included in the string output. The member name will be present, but the
25312// value will be replaced with "sensitive".
25313func (s Event) String() string {
25314	return awsutil.Prettify(s)
25315}
25316
25317// GoString returns the string representation.
25318//
25319// API parameter values that are decorated as "sensitive" in the API will not
25320// be included in the string output. The member name will be present, but the
25321// value will be replaced with "sensitive".
25322func (s Event) GoString() string {
25323	return s.String()
25324}
25325
25326// SetDate sets the Date field's value.
25327func (s *Event) SetDate(v time.Time) *Event {
25328	s.Date = &v
25329	return s
25330}
25331
25332// SetEventCategories sets the EventCategories field's value.
25333func (s *Event) SetEventCategories(v []*string) *Event {
25334	s.EventCategories = v
25335	return s
25336}
25337
25338// SetEventId sets the EventId field's value.
25339func (s *Event) SetEventId(v string) *Event {
25340	s.EventId = &v
25341	return s
25342}
25343
25344// SetMessage sets the Message field's value.
25345func (s *Event) SetMessage(v string) *Event {
25346	s.Message = &v
25347	return s
25348}
25349
25350// SetSeverity sets the Severity field's value.
25351func (s *Event) SetSeverity(v string) *Event {
25352	s.Severity = &v
25353	return s
25354}
25355
25356// SetSourceIdentifier sets the SourceIdentifier field's value.
25357func (s *Event) SetSourceIdentifier(v string) *Event {
25358	s.SourceIdentifier = &v
25359	return s
25360}
25361
25362// SetSourceType sets the SourceType field's value.
25363func (s *Event) SetSourceType(v string) *Event {
25364	s.SourceType = &v
25365	return s
25366}
25367
25368// Describes event categories.
25369type EventCategoriesMap struct {
25370	_ struct{} `type:"structure"`
25371
25372	// The events in the event category.
25373	Events []*EventInfoMap `locationNameList:"EventInfoMap" type:"list"`
25374
25375	// The source type, such as cluster or cluster-snapshot, that the returned categories
25376	// belong to.
25377	SourceType *string `type:"string"`
25378}
25379
25380// String returns the string representation.
25381//
25382// API parameter values that are decorated as "sensitive" in the API will not
25383// be included in the string output. The member name will be present, but the
25384// value will be replaced with "sensitive".
25385func (s EventCategoriesMap) String() string {
25386	return awsutil.Prettify(s)
25387}
25388
25389// GoString returns the string representation.
25390//
25391// API parameter values that are decorated as "sensitive" in the API will not
25392// be included in the string output. The member name will be present, but the
25393// value will be replaced with "sensitive".
25394func (s EventCategoriesMap) GoString() string {
25395	return s.String()
25396}
25397
25398// SetEvents sets the Events field's value.
25399func (s *EventCategoriesMap) SetEvents(v []*EventInfoMap) *EventCategoriesMap {
25400	s.Events = v
25401	return s
25402}
25403
25404// SetSourceType sets the SourceType field's value.
25405func (s *EventCategoriesMap) SetSourceType(v string) *EventCategoriesMap {
25406	s.SourceType = &v
25407	return s
25408}
25409
25410// Describes event information.
25411type EventInfoMap struct {
25412	_ struct{} `type:"structure"`
25413
25414	// The category of an Amazon Redshift event.
25415	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
25416
25417	// The description of an Amazon Redshift event.
25418	EventDescription *string `type:"string"`
25419
25420	// The identifier of an Amazon Redshift event.
25421	EventId *string `type:"string"`
25422
25423	// The severity of the event.
25424	//
25425	// Values: ERROR, INFO
25426	Severity *string `type:"string"`
25427}
25428
25429// String returns the string representation.
25430//
25431// API parameter values that are decorated as "sensitive" in the API will not
25432// be included in the string output. The member name will be present, but the
25433// value will be replaced with "sensitive".
25434func (s EventInfoMap) String() string {
25435	return awsutil.Prettify(s)
25436}
25437
25438// GoString returns the string representation.
25439//
25440// API parameter values that are decorated as "sensitive" in the API will not
25441// be included in the string output. The member name will be present, but the
25442// value will be replaced with "sensitive".
25443func (s EventInfoMap) GoString() string {
25444	return s.String()
25445}
25446
25447// SetEventCategories sets the EventCategories field's value.
25448func (s *EventInfoMap) SetEventCategories(v []*string) *EventInfoMap {
25449	s.EventCategories = v
25450	return s
25451}
25452
25453// SetEventDescription sets the EventDescription field's value.
25454func (s *EventInfoMap) SetEventDescription(v string) *EventInfoMap {
25455	s.EventDescription = &v
25456	return s
25457}
25458
25459// SetEventId sets the EventId field's value.
25460func (s *EventInfoMap) SetEventId(v string) *EventInfoMap {
25461	s.EventId = &v
25462	return s
25463}
25464
25465// SetSeverity sets the Severity field's value.
25466func (s *EventInfoMap) SetSeverity(v string) *EventInfoMap {
25467	s.Severity = &v
25468	return s
25469}
25470
25471// Describes event subscriptions.
25472type EventSubscription struct {
25473	_ struct{} `type:"structure"`
25474
25475	// The name of the Amazon Redshift event notification subscription.
25476	CustSubscriptionId *string `type:"string"`
25477
25478	// The Amazon Web Services account associated with the Amazon Redshift event
25479	// notification subscription.
25480	CustomerAwsId *string `type:"string"`
25481
25482	// A boolean value indicating whether the subscription is enabled; true indicates
25483	// that the subscription is enabled.
25484	Enabled *bool `type:"boolean"`
25485
25486	// The list of Amazon Redshift event categories specified in the event notification
25487	// subscription.
25488	//
25489	// Values: Configuration, Management, Monitoring, Security, Pending
25490	EventCategoriesList []*string `locationNameList:"EventCategory" type:"list"`
25491
25492	// The event severity specified in the Amazon Redshift event notification subscription.
25493	//
25494	// Values: ERROR, INFO
25495	Severity *string `type:"string"`
25496
25497	// The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event
25498	// notification subscription.
25499	SnsTopicArn *string `type:"string"`
25500
25501	// A list of the sources that publish events to the Amazon Redshift event notification
25502	// subscription.
25503	SourceIdsList []*string `locationNameList:"SourceId" type:"list"`
25504
25505	// The source type of the events returned by the Amazon Redshift event notification,
25506	// such as cluster, cluster-snapshot, cluster-parameter-group, cluster-security-group,
25507	// or scheduled-action.
25508	SourceType *string `type:"string"`
25509
25510	// The status of the Amazon Redshift event notification subscription.
25511	//
25512	// Constraints:
25513	//
25514	//    * Can be one of the following: active | no-permission | topic-not-exist
25515	//
25516	//    * The status "no-permission" indicates that Amazon Redshift no longer
25517	//    has permission to post to the Amazon SNS topic. The status "topic-not-exist"
25518	//    indicates that the topic was deleted after the subscription was created.
25519	Status *string `type:"string"`
25520
25521	// The date and time the Amazon Redshift event notification subscription was
25522	// created.
25523	SubscriptionCreationTime *time.Time `type:"timestamp"`
25524
25525	// The list of tags for the event subscription.
25526	Tags []*Tag `locationNameList:"Tag" type:"list"`
25527}
25528
25529// String returns the string representation.
25530//
25531// API parameter values that are decorated as "sensitive" in the API will not
25532// be included in the string output. The member name will be present, but the
25533// value will be replaced with "sensitive".
25534func (s EventSubscription) String() string {
25535	return awsutil.Prettify(s)
25536}
25537
25538// GoString returns the string representation.
25539//
25540// API parameter values that are decorated as "sensitive" in the API will not
25541// be included in the string output. The member name will be present, but the
25542// value will be replaced with "sensitive".
25543func (s EventSubscription) GoString() string {
25544	return s.String()
25545}
25546
25547// SetCustSubscriptionId sets the CustSubscriptionId field's value.
25548func (s *EventSubscription) SetCustSubscriptionId(v string) *EventSubscription {
25549	s.CustSubscriptionId = &v
25550	return s
25551}
25552
25553// SetCustomerAwsId sets the CustomerAwsId field's value.
25554func (s *EventSubscription) SetCustomerAwsId(v string) *EventSubscription {
25555	s.CustomerAwsId = &v
25556	return s
25557}
25558
25559// SetEnabled sets the Enabled field's value.
25560func (s *EventSubscription) SetEnabled(v bool) *EventSubscription {
25561	s.Enabled = &v
25562	return s
25563}
25564
25565// SetEventCategoriesList sets the EventCategoriesList field's value.
25566func (s *EventSubscription) SetEventCategoriesList(v []*string) *EventSubscription {
25567	s.EventCategoriesList = v
25568	return s
25569}
25570
25571// SetSeverity sets the Severity field's value.
25572func (s *EventSubscription) SetSeverity(v string) *EventSubscription {
25573	s.Severity = &v
25574	return s
25575}
25576
25577// SetSnsTopicArn sets the SnsTopicArn field's value.
25578func (s *EventSubscription) SetSnsTopicArn(v string) *EventSubscription {
25579	s.SnsTopicArn = &v
25580	return s
25581}
25582
25583// SetSourceIdsList sets the SourceIdsList field's value.
25584func (s *EventSubscription) SetSourceIdsList(v []*string) *EventSubscription {
25585	s.SourceIdsList = v
25586	return s
25587}
25588
25589// SetSourceType sets the SourceType field's value.
25590func (s *EventSubscription) SetSourceType(v string) *EventSubscription {
25591	s.SourceType = &v
25592	return s
25593}
25594
25595// SetStatus sets the Status field's value.
25596func (s *EventSubscription) SetStatus(v string) *EventSubscription {
25597	s.Status = &v
25598	return s
25599}
25600
25601// SetSubscriptionCreationTime sets the SubscriptionCreationTime field's value.
25602func (s *EventSubscription) SetSubscriptionCreationTime(v time.Time) *EventSubscription {
25603	s.SubscriptionCreationTime = &v
25604	return s
25605}
25606
25607// SetTags sets the Tags field's value.
25608func (s *EventSubscription) SetTags(v []*Tag) *EventSubscription {
25609	s.Tags = v
25610	return s
25611}
25612
25613// The request parameters to get cluster credentials.
25614type GetClusterCredentialsInput struct {
25615	_ struct{} `type:"structure"`
25616
25617	// Create a database user with the name specified for the user named in DbUser
25618	// if one does not exist.
25619	AutoCreate *bool `type:"boolean"`
25620
25621	// The unique identifier of the cluster that contains the database for which
25622	// your are requesting credentials. This parameter is case sensitive.
25623	//
25624	// ClusterIdentifier is a required field
25625	ClusterIdentifier *string `type:"string" required:"true"`
25626
25627	// A list of the names of existing database groups that the user named in DbUser
25628	// will join for the current session, in addition to any group memberships for
25629	// an existing user. If not specified, a new user is added only to PUBLIC.
25630	//
25631	// Database group name constraints
25632	//
25633	//    * Must be 1 to 64 alphanumeric characters or hyphens
25634	//
25635	//    * Must contain only lowercase letters, numbers, underscore, plus sign,
25636	//    period (dot), at symbol (@), or hyphen.
25637	//
25638	//    * First character must be a letter.
25639	//
25640	//    * Must not contain a colon ( : ) or slash ( / ).
25641	//
25642	//    * Cannot be a reserved word. A list of reserved words can be found in
25643	//    Reserved Words (http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html)
25644	//    in the Amazon Redshift Database Developer Guide.
25645	DbGroups []*string `locationNameList:"DbGroup" type:"list"`
25646
25647	// The name of a database that DbUser is authorized to log on to. If DbName
25648	// is not specified, DbUser can log on to any existing database.
25649	//
25650	// Constraints:
25651	//
25652	//    * Must be 1 to 64 alphanumeric characters or hyphens
25653	//
25654	//    * Must contain only lowercase letters, numbers, underscore, plus sign,
25655	//    period (dot), at symbol (@), or hyphen.
25656	//
25657	//    * First character must be a letter.
25658	//
25659	//    * Must not contain a colon ( : ) or slash ( / ).
25660	//
25661	//    * Cannot be a reserved word. A list of reserved words can be found in
25662	//    Reserved Words (http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html)
25663	//    in the Amazon Redshift Database Developer Guide.
25664	DbName *string `type:"string"`
25665
25666	// The name of a database user. If a user name matching DbUser exists in the
25667	// database, the temporary user credentials have the same permissions as the
25668	// existing user. If DbUser doesn't exist in the database and Autocreate is
25669	// True, a new user is created using the value for DbUser with PUBLIC permissions.
25670	// If a database user matching the value for DbUser doesn't exist and Autocreate
25671	// is False, then the command succeeds but the connection attempt will fail
25672	// because the user doesn't exist in the database.
25673	//
25674	// For more information, see CREATE USER (https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_USER.html)
25675	// in the Amazon Redshift Database Developer Guide.
25676	//
25677	// Constraints:
25678	//
25679	//    * Must be 1 to 64 alphanumeric characters or hyphens. The user name can't
25680	//    be PUBLIC.
25681	//
25682	//    * Must contain only lowercase letters, numbers, underscore, plus sign,
25683	//    period (dot), at symbol (@), or hyphen.
25684	//
25685	//    * First character must be a letter.
25686	//
25687	//    * Must not contain a colon ( : ) or slash ( / ).
25688	//
25689	//    * Cannot be a reserved word. A list of reserved words can be found in
25690	//    Reserved Words (http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html)
25691	//    in the Amazon Redshift Database Developer Guide.
25692	//
25693	// DbUser is a required field
25694	DbUser *string `type:"string" required:"true"`
25695
25696	// The number of seconds until the returned temporary password expires.
25697	//
25698	// Constraint: minimum 900, maximum 3600.
25699	//
25700	// Default: 900
25701	DurationSeconds *int64 `type:"integer"`
25702}
25703
25704// String returns the string representation.
25705//
25706// API parameter values that are decorated as "sensitive" in the API will not
25707// be included in the string output. The member name will be present, but the
25708// value will be replaced with "sensitive".
25709func (s GetClusterCredentialsInput) String() string {
25710	return awsutil.Prettify(s)
25711}
25712
25713// GoString returns the string representation.
25714//
25715// API parameter values that are decorated as "sensitive" in the API will not
25716// be included in the string output. The member name will be present, but the
25717// value will be replaced with "sensitive".
25718func (s GetClusterCredentialsInput) GoString() string {
25719	return s.String()
25720}
25721
25722// Validate inspects the fields of the type to determine if they are valid.
25723func (s *GetClusterCredentialsInput) Validate() error {
25724	invalidParams := request.ErrInvalidParams{Context: "GetClusterCredentialsInput"}
25725	if s.ClusterIdentifier == nil {
25726		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
25727	}
25728	if s.DbUser == nil {
25729		invalidParams.Add(request.NewErrParamRequired("DbUser"))
25730	}
25731
25732	if invalidParams.Len() > 0 {
25733		return invalidParams
25734	}
25735	return nil
25736}
25737
25738// SetAutoCreate sets the AutoCreate field's value.
25739func (s *GetClusterCredentialsInput) SetAutoCreate(v bool) *GetClusterCredentialsInput {
25740	s.AutoCreate = &v
25741	return s
25742}
25743
25744// SetClusterIdentifier sets the ClusterIdentifier field's value.
25745func (s *GetClusterCredentialsInput) SetClusterIdentifier(v string) *GetClusterCredentialsInput {
25746	s.ClusterIdentifier = &v
25747	return s
25748}
25749
25750// SetDbGroups sets the DbGroups field's value.
25751func (s *GetClusterCredentialsInput) SetDbGroups(v []*string) *GetClusterCredentialsInput {
25752	s.DbGroups = v
25753	return s
25754}
25755
25756// SetDbName sets the DbName field's value.
25757func (s *GetClusterCredentialsInput) SetDbName(v string) *GetClusterCredentialsInput {
25758	s.DbName = &v
25759	return s
25760}
25761
25762// SetDbUser sets the DbUser field's value.
25763func (s *GetClusterCredentialsInput) SetDbUser(v string) *GetClusterCredentialsInput {
25764	s.DbUser = &v
25765	return s
25766}
25767
25768// SetDurationSeconds sets the DurationSeconds field's value.
25769func (s *GetClusterCredentialsInput) SetDurationSeconds(v int64) *GetClusterCredentialsInput {
25770	s.DurationSeconds = &v
25771	return s
25772}
25773
25774// Temporary credentials with authorization to log on to an Amazon Redshift
25775// database.
25776type GetClusterCredentialsOutput struct {
25777	_ struct{} `type:"structure"`
25778
25779	// A temporary password that authorizes the user name returned by DbUser to
25780	// log on to the database DbName.
25781	//
25782	// DbPassword is a sensitive parameter and its value will be
25783	// replaced with "sensitive" in string returned by GetClusterCredentialsOutput's
25784	// String and GoString methods.
25785	DbPassword *string `type:"string" sensitive:"true"`
25786
25787	// A database user name that is authorized to log on to the database DbName
25788	// using the password DbPassword. If the specified DbUser exists in the database,
25789	// the new user name has the same database privileges as the the user named
25790	// in DbUser. By default, the user is added to PUBLIC. If the DbGroups parameter
25791	// is specifed, DbUser is added to the listed groups for any sessions created
25792	// using these credentials.
25793	DbUser *string `type:"string"`
25794
25795	// The date and time the password in DbPassword expires.
25796	Expiration *time.Time `type:"timestamp"`
25797}
25798
25799// String returns the string representation.
25800//
25801// API parameter values that are decorated as "sensitive" in the API will not
25802// be included in the string output. The member name will be present, but the
25803// value will be replaced with "sensitive".
25804func (s GetClusterCredentialsOutput) String() string {
25805	return awsutil.Prettify(s)
25806}
25807
25808// GoString returns the string representation.
25809//
25810// API parameter values that are decorated as "sensitive" in the API will not
25811// be included in the string output. The member name will be present, but the
25812// value will be replaced with "sensitive".
25813func (s GetClusterCredentialsOutput) GoString() string {
25814	return s.String()
25815}
25816
25817// SetDbPassword sets the DbPassword field's value.
25818func (s *GetClusterCredentialsOutput) SetDbPassword(v string) *GetClusterCredentialsOutput {
25819	s.DbPassword = &v
25820	return s
25821}
25822
25823// SetDbUser sets the DbUser field's value.
25824func (s *GetClusterCredentialsOutput) SetDbUser(v string) *GetClusterCredentialsOutput {
25825	s.DbUser = &v
25826	return s
25827}
25828
25829// SetExpiration sets the Expiration field's value.
25830func (s *GetClusterCredentialsOutput) SetExpiration(v time.Time) *GetClusterCredentialsOutput {
25831	s.Expiration = &v
25832	return s
25833}
25834
25835type GetReservedNodeExchangeOfferingsInput struct {
25836	_ struct{} `type:"structure"`
25837
25838	// A value that indicates the starting point for the next set of ReservedNodeOfferings.
25839	Marker *string `type:"string"`
25840
25841	// An integer setting the maximum number of ReservedNodeOfferings to retrieve.
25842	MaxRecords *int64 `type:"integer"`
25843
25844	// A string representing the node identifier for the DC1 Reserved Node to be
25845	// exchanged.
25846	//
25847	// ReservedNodeId is a required field
25848	ReservedNodeId *string `type:"string" required:"true"`
25849}
25850
25851// String returns the string representation.
25852//
25853// API parameter values that are decorated as "sensitive" in the API will not
25854// be included in the string output. The member name will be present, but the
25855// value will be replaced with "sensitive".
25856func (s GetReservedNodeExchangeOfferingsInput) String() string {
25857	return awsutil.Prettify(s)
25858}
25859
25860// GoString returns the string representation.
25861//
25862// API parameter values that are decorated as "sensitive" in the API will not
25863// be included in the string output. The member name will be present, but the
25864// value will be replaced with "sensitive".
25865func (s GetReservedNodeExchangeOfferingsInput) GoString() string {
25866	return s.String()
25867}
25868
25869// Validate inspects the fields of the type to determine if they are valid.
25870func (s *GetReservedNodeExchangeOfferingsInput) Validate() error {
25871	invalidParams := request.ErrInvalidParams{Context: "GetReservedNodeExchangeOfferingsInput"}
25872	if s.ReservedNodeId == nil {
25873		invalidParams.Add(request.NewErrParamRequired("ReservedNodeId"))
25874	}
25875
25876	if invalidParams.Len() > 0 {
25877		return invalidParams
25878	}
25879	return nil
25880}
25881
25882// SetMarker sets the Marker field's value.
25883func (s *GetReservedNodeExchangeOfferingsInput) SetMarker(v string) *GetReservedNodeExchangeOfferingsInput {
25884	s.Marker = &v
25885	return s
25886}
25887
25888// SetMaxRecords sets the MaxRecords field's value.
25889func (s *GetReservedNodeExchangeOfferingsInput) SetMaxRecords(v int64) *GetReservedNodeExchangeOfferingsInput {
25890	s.MaxRecords = &v
25891	return s
25892}
25893
25894// SetReservedNodeId sets the ReservedNodeId field's value.
25895func (s *GetReservedNodeExchangeOfferingsInput) SetReservedNodeId(v string) *GetReservedNodeExchangeOfferingsInput {
25896	s.ReservedNodeId = &v
25897	return s
25898}
25899
25900type GetReservedNodeExchangeOfferingsOutput struct {
25901	_ struct{} `type:"structure"`
25902
25903	// An optional parameter that specifies the starting point for returning a set
25904	// of response records. When the results of a GetReservedNodeExchangeOfferings
25905	// request exceed the value specified in MaxRecords, Amazon Redshift returns
25906	// a value in the marker field of the response. You can retrieve the next set
25907	// of response records by providing the returned marker value in the marker
25908	// parameter and retrying the request.
25909	Marker *string `type:"string"`
25910
25911	// Returns an array of ReservedNodeOffering objects.
25912	ReservedNodeOfferings []*ReservedNodeOffering `locationNameList:"ReservedNodeOffering" type:"list"`
25913}
25914
25915// String returns the string representation.
25916//
25917// API parameter values that are decorated as "sensitive" in the API will not
25918// be included in the string output. The member name will be present, but the
25919// value will be replaced with "sensitive".
25920func (s GetReservedNodeExchangeOfferingsOutput) String() string {
25921	return awsutil.Prettify(s)
25922}
25923
25924// GoString returns the string representation.
25925//
25926// API parameter values that are decorated as "sensitive" in the API will not
25927// be included in the string output. The member name will be present, but the
25928// value will be replaced with "sensitive".
25929func (s GetReservedNodeExchangeOfferingsOutput) GoString() string {
25930	return s.String()
25931}
25932
25933// SetMarker sets the Marker field's value.
25934func (s *GetReservedNodeExchangeOfferingsOutput) SetMarker(v string) *GetReservedNodeExchangeOfferingsOutput {
25935	s.Marker = &v
25936	return s
25937}
25938
25939// SetReservedNodeOfferings sets the ReservedNodeOfferings field's value.
25940func (s *GetReservedNodeExchangeOfferingsOutput) SetReservedNodeOfferings(v []*ReservedNodeOffering) *GetReservedNodeExchangeOfferingsOutput {
25941	s.ReservedNodeOfferings = v
25942	return s
25943}
25944
25945// Returns information about an HSM client certificate. The certificate is stored
25946// in a secure Hardware Storage Module (HSM), and used by the Amazon Redshift
25947// cluster to encrypt data files.
25948type HsmClientCertificate struct {
25949	_ struct{} `type:"structure"`
25950
25951	// The identifier of the HSM client certificate.
25952	HsmClientCertificateIdentifier *string `type:"string"`
25953
25954	// The public key that the Amazon Redshift cluster will use to connect to the
25955	// HSM. You must register the public key in the HSM.
25956	HsmClientCertificatePublicKey *string `type:"string"`
25957
25958	// The list of tags for the HSM client certificate.
25959	Tags []*Tag `locationNameList:"Tag" type:"list"`
25960}
25961
25962// String returns the string representation.
25963//
25964// API parameter values that are decorated as "sensitive" in the API will not
25965// be included in the string output. The member name will be present, but the
25966// value will be replaced with "sensitive".
25967func (s HsmClientCertificate) String() string {
25968	return awsutil.Prettify(s)
25969}
25970
25971// GoString returns the string representation.
25972//
25973// API parameter values that are decorated as "sensitive" in the API will not
25974// be included in the string output. The member name will be present, but the
25975// value will be replaced with "sensitive".
25976func (s HsmClientCertificate) GoString() string {
25977	return s.String()
25978}
25979
25980// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
25981func (s *HsmClientCertificate) SetHsmClientCertificateIdentifier(v string) *HsmClientCertificate {
25982	s.HsmClientCertificateIdentifier = &v
25983	return s
25984}
25985
25986// SetHsmClientCertificatePublicKey sets the HsmClientCertificatePublicKey field's value.
25987func (s *HsmClientCertificate) SetHsmClientCertificatePublicKey(v string) *HsmClientCertificate {
25988	s.HsmClientCertificatePublicKey = &v
25989	return s
25990}
25991
25992// SetTags sets the Tags field's value.
25993func (s *HsmClientCertificate) SetTags(v []*Tag) *HsmClientCertificate {
25994	s.Tags = v
25995	return s
25996}
25997
25998// Returns information about an HSM configuration, which is an object that describes
25999// to Amazon Redshift clusters the information they require to connect to an
26000// HSM where they can store database encryption keys.
26001type HsmConfiguration struct {
26002	_ struct{} `type:"structure"`
26003
26004	// A text description of the HSM configuration.
26005	Description *string `type:"string"`
26006
26007	// The name of the Amazon Redshift HSM configuration.
26008	HsmConfigurationIdentifier *string `type:"string"`
26009
26010	// The IP address that the Amazon Redshift cluster must use to access the HSM.
26011	HsmIpAddress *string `type:"string"`
26012
26013	// The name of the partition in the HSM where the Amazon Redshift clusters will
26014	// store their database encryption keys.
26015	HsmPartitionName *string `type:"string"`
26016
26017	// The list of tags for the HSM configuration.
26018	Tags []*Tag `locationNameList:"Tag" type:"list"`
26019}
26020
26021// String returns the string representation.
26022//
26023// API parameter values that are decorated as "sensitive" in the API will not
26024// be included in the string output. The member name will be present, but the
26025// value will be replaced with "sensitive".
26026func (s HsmConfiguration) String() string {
26027	return awsutil.Prettify(s)
26028}
26029
26030// GoString returns the string representation.
26031//
26032// API parameter values that are decorated as "sensitive" in the API will not
26033// be included in the string output. The member name will be present, but the
26034// value will be replaced with "sensitive".
26035func (s HsmConfiguration) GoString() string {
26036	return s.String()
26037}
26038
26039// SetDescription sets the Description field's value.
26040func (s *HsmConfiguration) SetDescription(v string) *HsmConfiguration {
26041	s.Description = &v
26042	return s
26043}
26044
26045// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
26046func (s *HsmConfiguration) SetHsmConfigurationIdentifier(v string) *HsmConfiguration {
26047	s.HsmConfigurationIdentifier = &v
26048	return s
26049}
26050
26051// SetHsmIpAddress sets the HsmIpAddress field's value.
26052func (s *HsmConfiguration) SetHsmIpAddress(v string) *HsmConfiguration {
26053	s.HsmIpAddress = &v
26054	return s
26055}
26056
26057// SetHsmPartitionName sets the HsmPartitionName field's value.
26058func (s *HsmConfiguration) SetHsmPartitionName(v string) *HsmConfiguration {
26059	s.HsmPartitionName = &v
26060	return s
26061}
26062
26063// SetTags sets the Tags field's value.
26064func (s *HsmConfiguration) SetTags(v []*Tag) *HsmConfiguration {
26065	s.Tags = v
26066	return s
26067}
26068
26069// Describes the status of changes to HSM settings.
26070type HsmStatus struct {
26071	_ struct{} `type:"structure"`
26072
26073	// Specifies the name of the HSM client certificate the Amazon Redshift cluster
26074	// uses to retrieve the data encryption keys stored in an HSM.
26075	HsmClientCertificateIdentifier *string `type:"string"`
26076
26077	// Specifies the name of the HSM configuration that contains the information
26078	// the Amazon Redshift cluster can use to retrieve and store keys in an HSM.
26079	HsmConfigurationIdentifier *string `type:"string"`
26080
26081	// Reports whether the Amazon Redshift cluster has finished applying any HSM
26082	// settings changes specified in a modify cluster command.
26083	//
26084	// Values: active, applying
26085	Status *string `type:"string"`
26086}
26087
26088// String returns the string representation.
26089//
26090// API parameter values that are decorated as "sensitive" in the API will not
26091// be included in the string output. The member name will be present, but the
26092// value will be replaced with "sensitive".
26093func (s HsmStatus) String() string {
26094	return awsutil.Prettify(s)
26095}
26096
26097// GoString returns the string representation.
26098//
26099// API parameter values that are decorated as "sensitive" in the API will not
26100// be included in the string output. The member name will be present, but the
26101// value will be replaced with "sensitive".
26102func (s HsmStatus) GoString() string {
26103	return s.String()
26104}
26105
26106// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
26107func (s *HsmStatus) SetHsmClientCertificateIdentifier(v string) *HsmStatus {
26108	s.HsmClientCertificateIdentifier = &v
26109	return s
26110}
26111
26112// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
26113func (s *HsmStatus) SetHsmConfigurationIdentifier(v string) *HsmStatus {
26114	s.HsmConfigurationIdentifier = &v
26115	return s
26116}
26117
26118// SetStatus sets the Status field's value.
26119func (s *HsmStatus) SetStatus(v string) *HsmStatus {
26120	s.Status = &v
26121	return s
26122}
26123
26124// Describes an IP range used in a security group.
26125type IPRange struct {
26126	_ struct{} `type:"structure"`
26127
26128	// The IP range in Classless Inter-Domain Routing (CIDR) notation.
26129	CIDRIP *string `type:"string"`
26130
26131	// The status of the IP range, for example, "authorized".
26132	Status *string `type:"string"`
26133
26134	// The list of tags for the IP range.
26135	Tags []*Tag `locationNameList:"Tag" type:"list"`
26136}
26137
26138// String returns the string representation.
26139//
26140// API parameter values that are decorated as "sensitive" in the API will not
26141// be included in the string output. The member name will be present, but the
26142// value will be replaced with "sensitive".
26143func (s IPRange) String() string {
26144	return awsutil.Prettify(s)
26145}
26146
26147// GoString returns the string representation.
26148//
26149// API parameter values that are decorated as "sensitive" in the API will not
26150// be included in the string output. The member name will be present, but the
26151// value will be replaced with "sensitive".
26152func (s IPRange) GoString() string {
26153	return s.String()
26154}
26155
26156// SetCIDRIP sets the CIDRIP field's value.
26157func (s *IPRange) SetCIDRIP(v string) *IPRange {
26158	s.CIDRIP = &v
26159	return s
26160}
26161
26162// SetStatus sets the Status field's value.
26163func (s *IPRange) SetStatus(v string) *IPRange {
26164	s.Status = &v
26165	return s
26166}
26167
26168// SetTags sets the Tags field's value.
26169func (s *IPRange) SetTags(v []*Tag) *IPRange {
26170	s.Tags = v
26171	return s
26172}
26173
26174// Describes the status of logging for a cluster.
26175type LoggingStatus struct {
26176	_ struct{} `type:"structure"`
26177
26178	// The name of the S3 bucket where the log files are stored.
26179	BucketName *string `type:"string"`
26180
26181	// The message indicating that logs failed to be delivered.
26182	LastFailureMessage *string `type:"string"`
26183
26184	// The last time when logs failed to be delivered.
26185	LastFailureTime *time.Time `type:"timestamp"`
26186
26187	// The last time that logs were delivered.
26188	LastSuccessfulDeliveryTime *time.Time `type:"timestamp"`
26189
26190	// true if logging is on, false if logging is off.
26191	LoggingEnabled *bool `type:"boolean"`
26192
26193	// The prefix applied to the log file names.
26194	S3KeyPrefix *string `type:"string"`
26195}
26196
26197// String returns the string representation.
26198//
26199// API parameter values that are decorated as "sensitive" in the API will not
26200// be included in the string output. The member name will be present, but the
26201// value will be replaced with "sensitive".
26202func (s LoggingStatus) String() string {
26203	return awsutil.Prettify(s)
26204}
26205
26206// GoString returns the string representation.
26207//
26208// API parameter values that are decorated as "sensitive" in the API will not
26209// be included in the string output. The member name will be present, but the
26210// value will be replaced with "sensitive".
26211func (s LoggingStatus) GoString() string {
26212	return s.String()
26213}
26214
26215// SetBucketName sets the BucketName field's value.
26216func (s *LoggingStatus) SetBucketName(v string) *LoggingStatus {
26217	s.BucketName = &v
26218	return s
26219}
26220
26221// SetLastFailureMessage sets the LastFailureMessage field's value.
26222func (s *LoggingStatus) SetLastFailureMessage(v string) *LoggingStatus {
26223	s.LastFailureMessage = &v
26224	return s
26225}
26226
26227// SetLastFailureTime sets the LastFailureTime field's value.
26228func (s *LoggingStatus) SetLastFailureTime(v time.Time) *LoggingStatus {
26229	s.LastFailureTime = &v
26230	return s
26231}
26232
26233// SetLastSuccessfulDeliveryTime sets the LastSuccessfulDeliveryTime field's value.
26234func (s *LoggingStatus) SetLastSuccessfulDeliveryTime(v time.Time) *LoggingStatus {
26235	s.LastSuccessfulDeliveryTime = &v
26236	return s
26237}
26238
26239// SetLoggingEnabled sets the LoggingEnabled field's value.
26240func (s *LoggingStatus) SetLoggingEnabled(v bool) *LoggingStatus {
26241	s.LoggingEnabled = &v
26242	return s
26243}
26244
26245// SetS3KeyPrefix sets the S3KeyPrefix field's value.
26246func (s *LoggingStatus) SetS3KeyPrefix(v string) *LoggingStatus {
26247	s.S3KeyPrefix = &v
26248	return s
26249}
26250
26251// Defines a maintenance track that determines which Amazon Redshift version
26252// to apply during a maintenance window. If the value for MaintenanceTrack is
26253// current, the cluster is updated to the most recently certified maintenance
26254// release. If the value is trailing, the cluster is updated to the previously
26255// certified maintenance release.
26256type MaintenanceTrack struct {
26257	_ struct{} `type:"structure"`
26258
26259	// The version number for the cluster release.
26260	DatabaseVersion *string `type:"string"`
26261
26262	// The name of the maintenance track. Possible values are current and trailing.
26263	MaintenanceTrackName *string `type:"string"`
26264
26265	// An array of UpdateTarget objects to update with the maintenance track.
26266	UpdateTargets []*UpdateTarget `locationNameList:"UpdateTarget" type:"list"`
26267}
26268
26269// String returns the string representation.
26270//
26271// API parameter values that are decorated as "sensitive" in the API will not
26272// be included in the string output. The member name will be present, but the
26273// value will be replaced with "sensitive".
26274func (s MaintenanceTrack) String() string {
26275	return awsutil.Prettify(s)
26276}
26277
26278// GoString returns the string representation.
26279//
26280// API parameter values that are decorated as "sensitive" in the API will not
26281// be included in the string output. The member name will be present, but the
26282// value will be replaced with "sensitive".
26283func (s MaintenanceTrack) GoString() string {
26284	return s.String()
26285}
26286
26287// SetDatabaseVersion sets the DatabaseVersion field's value.
26288func (s *MaintenanceTrack) SetDatabaseVersion(v string) *MaintenanceTrack {
26289	s.DatabaseVersion = &v
26290	return s
26291}
26292
26293// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
26294func (s *MaintenanceTrack) SetMaintenanceTrackName(v string) *MaintenanceTrack {
26295	s.MaintenanceTrackName = &v
26296	return s
26297}
26298
26299// SetUpdateTargets sets the UpdateTargets field's value.
26300func (s *MaintenanceTrack) SetUpdateTargets(v []*UpdateTarget) *MaintenanceTrack {
26301	s.UpdateTargets = v
26302	return s
26303}
26304
26305type ModifyAquaConfigurationInput struct {
26306	_ struct{} `type:"structure"`
26307
26308	// The new value of AQUA configuration status. Possible values include the following.
26309	//
26310	//    * enabled - Use AQUA if it is available for the current Amazon Web Services
26311	//    Region and Amazon Redshift node type.
26312	//
26313	//    * disabled - Don't use AQUA.
26314	//
26315	//    * auto - Amazon Redshift determines whether to use AQUA.
26316	AquaConfigurationStatus *string `type:"string" enum:"AquaConfigurationStatus"`
26317
26318	// The identifier of the cluster to be modified.
26319	//
26320	// ClusterIdentifier is a required field
26321	ClusterIdentifier *string `type:"string" required:"true"`
26322}
26323
26324// String returns the string representation.
26325//
26326// API parameter values that are decorated as "sensitive" in the API will not
26327// be included in the string output. The member name will be present, but the
26328// value will be replaced with "sensitive".
26329func (s ModifyAquaConfigurationInput) String() string {
26330	return awsutil.Prettify(s)
26331}
26332
26333// GoString returns the string representation.
26334//
26335// API parameter values that are decorated as "sensitive" in the API will not
26336// be included in the string output. The member name will be present, but the
26337// value will be replaced with "sensitive".
26338func (s ModifyAquaConfigurationInput) GoString() string {
26339	return s.String()
26340}
26341
26342// Validate inspects the fields of the type to determine if they are valid.
26343func (s *ModifyAquaConfigurationInput) Validate() error {
26344	invalidParams := request.ErrInvalidParams{Context: "ModifyAquaConfigurationInput"}
26345	if s.ClusterIdentifier == nil {
26346		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
26347	}
26348
26349	if invalidParams.Len() > 0 {
26350		return invalidParams
26351	}
26352	return nil
26353}
26354
26355// SetAquaConfigurationStatus sets the AquaConfigurationStatus field's value.
26356func (s *ModifyAquaConfigurationInput) SetAquaConfigurationStatus(v string) *ModifyAquaConfigurationInput {
26357	s.AquaConfigurationStatus = &v
26358	return s
26359}
26360
26361// SetClusterIdentifier sets the ClusterIdentifier field's value.
26362func (s *ModifyAquaConfigurationInput) SetClusterIdentifier(v string) *ModifyAquaConfigurationInput {
26363	s.ClusterIdentifier = &v
26364	return s
26365}
26366
26367type ModifyAquaConfigurationOutput struct {
26368	_ struct{} `type:"structure"`
26369
26370	// The updated AQUA configuration of the cluster.
26371	AquaConfiguration *AquaConfiguration `type:"structure"`
26372}
26373
26374// String returns the string representation.
26375//
26376// API parameter values that are decorated as "sensitive" in the API will not
26377// be included in the string output. The member name will be present, but the
26378// value will be replaced with "sensitive".
26379func (s ModifyAquaConfigurationOutput) String() string {
26380	return awsutil.Prettify(s)
26381}
26382
26383// GoString returns the string representation.
26384//
26385// API parameter values that are decorated as "sensitive" in the API will not
26386// be included in the string output. The member name will be present, but the
26387// value will be replaced with "sensitive".
26388func (s ModifyAquaConfigurationOutput) GoString() string {
26389	return s.String()
26390}
26391
26392// SetAquaConfiguration sets the AquaConfiguration field's value.
26393func (s *ModifyAquaConfigurationOutput) SetAquaConfiguration(v *AquaConfiguration) *ModifyAquaConfigurationOutput {
26394	s.AquaConfiguration = v
26395	return s
26396}
26397
26398type ModifyAuthenticationProfileInput struct {
26399	_ struct{} `type:"structure"`
26400
26401	// The new content of the authentication profile in JSON format. The maximum
26402	// length of the JSON string is determined by a quota for your account.
26403	//
26404	// AuthenticationProfileContent is a required field
26405	AuthenticationProfileContent *string `type:"string" required:"true"`
26406
26407	// The name of the authentication profile to replace.
26408	//
26409	// AuthenticationProfileName is a required field
26410	AuthenticationProfileName *string `type:"string" required:"true"`
26411}
26412
26413// String returns the string representation.
26414//
26415// API parameter values that are decorated as "sensitive" in the API will not
26416// be included in the string output. The member name will be present, but the
26417// value will be replaced with "sensitive".
26418func (s ModifyAuthenticationProfileInput) String() string {
26419	return awsutil.Prettify(s)
26420}
26421
26422// GoString returns the string representation.
26423//
26424// API parameter values that are decorated as "sensitive" in the API will not
26425// be included in the string output. The member name will be present, but the
26426// value will be replaced with "sensitive".
26427func (s ModifyAuthenticationProfileInput) GoString() string {
26428	return s.String()
26429}
26430
26431// Validate inspects the fields of the type to determine if they are valid.
26432func (s *ModifyAuthenticationProfileInput) Validate() error {
26433	invalidParams := request.ErrInvalidParams{Context: "ModifyAuthenticationProfileInput"}
26434	if s.AuthenticationProfileContent == nil {
26435		invalidParams.Add(request.NewErrParamRequired("AuthenticationProfileContent"))
26436	}
26437	if s.AuthenticationProfileName == nil {
26438		invalidParams.Add(request.NewErrParamRequired("AuthenticationProfileName"))
26439	}
26440
26441	if invalidParams.Len() > 0 {
26442		return invalidParams
26443	}
26444	return nil
26445}
26446
26447// SetAuthenticationProfileContent sets the AuthenticationProfileContent field's value.
26448func (s *ModifyAuthenticationProfileInput) SetAuthenticationProfileContent(v string) *ModifyAuthenticationProfileInput {
26449	s.AuthenticationProfileContent = &v
26450	return s
26451}
26452
26453// SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
26454func (s *ModifyAuthenticationProfileInput) SetAuthenticationProfileName(v string) *ModifyAuthenticationProfileInput {
26455	s.AuthenticationProfileName = &v
26456	return s
26457}
26458
26459type ModifyAuthenticationProfileOutput struct {
26460	_ struct{} `type:"structure"`
26461
26462	// The updated content of the authentication profile in JSON format.
26463	AuthenticationProfileContent *string `type:"string"`
26464
26465	// The name of the authentication profile that was replaced.
26466	AuthenticationProfileName *string `type:"string"`
26467}
26468
26469// String returns the string representation.
26470//
26471// API parameter values that are decorated as "sensitive" in the API will not
26472// be included in the string output. The member name will be present, but the
26473// value will be replaced with "sensitive".
26474func (s ModifyAuthenticationProfileOutput) String() string {
26475	return awsutil.Prettify(s)
26476}
26477
26478// GoString returns the string representation.
26479//
26480// API parameter values that are decorated as "sensitive" in the API will not
26481// be included in the string output. The member name will be present, but the
26482// value will be replaced with "sensitive".
26483func (s ModifyAuthenticationProfileOutput) GoString() string {
26484	return s.String()
26485}
26486
26487// SetAuthenticationProfileContent sets the AuthenticationProfileContent field's value.
26488func (s *ModifyAuthenticationProfileOutput) SetAuthenticationProfileContent(v string) *ModifyAuthenticationProfileOutput {
26489	s.AuthenticationProfileContent = &v
26490	return s
26491}
26492
26493// SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
26494func (s *ModifyAuthenticationProfileOutput) SetAuthenticationProfileName(v string) *ModifyAuthenticationProfileOutput {
26495	s.AuthenticationProfileName = &v
26496	return s
26497}
26498
26499type ModifyClusterDbRevisionInput struct {
26500	_ struct{} `type:"structure"`
26501
26502	// The unique identifier of a cluster whose database revision you want to modify.
26503	//
26504	// Example: examplecluster
26505	//
26506	// ClusterIdentifier is a required field
26507	ClusterIdentifier *string `type:"string" required:"true"`
26508
26509	// The identifier of the database revision. You can retrieve this value from
26510	// the response to the DescribeClusterDbRevisions request.
26511	//
26512	// RevisionTarget is a required field
26513	RevisionTarget *string `type:"string" required:"true"`
26514}
26515
26516// String returns the string representation.
26517//
26518// API parameter values that are decorated as "sensitive" in the API will not
26519// be included in the string output. The member name will be present, but the
26520// value will be replaced with "sensitive".
26521func (s ModifyClusterDbRevisionInput) String() string {
26522	return awsutil.Prettify(s)
26523}
26524
26525// GoString returns the string representation.
26526//
26527// API parameter values that are decorated as "sensitive" in the API will not
26528// be included in the string output. The member name will be present, but the
26529// value will be replaced with "sensitive".
26530func (s ModifyClusterDbRevisionInput) GoString() string {
26531	return s.String()
26532}
26533
26534// Validate inspects the fields of the type to determine if they are valid.
26535func (s *ModifyClusterDbRevisionInput) Validate() error {
26536	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterDbRevisionInput"}
26537	if s.ClusterIdentifier == nil {
26538		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
26539	}
26540	if s.RevisionTarget == nil {
26541		invalidParams.Add(request.NewErrParamRequired("RevisionTarget"))
26542	}
26543
26544	if invalidParams.Len() > 0 {
26545		return invalidParams
26546	}
26547	return nil
26548}
26549
26550// SetClusterIdentifier sets the ClusterIdentifier field's value.
26551func (s *ModifyClusterDbRevisionInput) SetClusterIdentifier(v string) *ModifyClusterDbRevisionInput {
26552	s.ClusterIdentifier = &v
26553	return s
26554}
26555
26556// SetRevisionTarget sets the RevisionTarget field's value.
26557func (s *ModifyClusterDbRevisionInput) SetRevisionTarget(v string) *ModifyClusterDbRevisionInput {
26558	s.RevisionTarget = &v
26559	return s
26560}
26561
26562type ModifyClusterDbRevisionOutput struct {
26563	_ struct{} `type:"structure"`
26564
26565	// Describes a cluster.
26566	Cluster *Cluster `type:"structure"`
26567}
26568
26569// String returns the string representation.
26570//
26571// API parameter values that are decorated as "sensitive" in the API will not
26572// be included in the string output. The member name will be present, but the
26573// value will be replaced with "sensitive".
26574func (s ModifyClusterDbRevisionOutput) String() string {
26575	return awsutil.Prettify(s)
26576}
26577
26578// GoString returns the string representation.
26579//
26580// API parameter values that are decorated as "sensitive" in the API will not
26581// be included in the string output. The member name will be present, but the
26582// value will be replaced with "sensitive".
26583func (s ModifyClusterDbRevisionOutput) GoString() string {
26584	return s.String()
26585}
26586
26587// SetCluster sets the Cluster field's value.
26588func (s *ModifyClusterDbRevisionOutput) SetCluster(v *Cluster) *ModifyClusterDbRevisionOutput {
26589	s.Cluster = v
26590	return s
26591}
26592
26593type ModifyClusterIamRolesInput struct {
26594	_ struct{} `type:"structure"`
26595
26596	// Zero or more IAM roles to associate with the cluster. The roles must be in
26597	// their Amazon Resource Name (ARN) format. You can associate up to 10 IAM roles
26598	// with a single cluster in a single request.
26599	AddIamRoles []*string `locationNameList:"IamRoleArn" type:"list"`
26600
26601	// The unique identifier of the cluster for which you want to associate or disassociate
26602	// IAM roles.
26603	//
26604	// ClusterIdentifier is a required field
26605	ClusterIdentifier *string `type:"string" required:"true"`
26606
26607	// Zero or more IAM roles in ARN format to disassociate from the cluster. You
26608	// can disassociate up to 10 IAM roles from a single cluster in a single request.
26609	RemoveIamRoles []*string `locationNameList:"IamRoleArn" type:"list"`
26610}
26611
26612// String returns the string representation.
26613//
26614// API parameter values that are decorated as "sensitive" in the API will not
26615// be included in the string output. The member name will be present, but the
26616// value will be replaced with "sensitive".
26617func (s ModifyClusterIamRolesInput) String() string {
26618	return awsutil.Prettify(s)
26619}
26620
26621// GoString returns the string representation.
26622//
26623// API parameter values that are decorated as "sensitive" in the API will not
26624// be included in the string output. The member name will be present, but the
26625// value will be replaced with "sensitive".
26626func (s ModifyClusterIamRolesInput) GoString() string {
26627	return s.String()
26628}
26629
26630// Validate inspects the fields of the type to determine if they are valid.
26631func (s *ModifyClusterIamRolesInput) Validate() error {
26632	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterIamRolesInput"}
26633	if s.ClusterIdentifier == nil {
26634		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
26635	}
26636
26637	if invalidParams.Len() > 0 {
26638		return invalidParams
26639	}
26640	return nil
26641}
26642
26643// SetAddIamRoles sets the AddIamRoles field's value.
26644func (s *ModifyClusterIamRolesInput) SetAddIamRoles(v []*string) *ModifyClusterIamRolesInput {
26645	s.AddIamRoles = v
26646	return s
26647}
26648
26649// SetClusterIdentifier sets the ClusterIdentifier field's value.
26650func (s *ModifyClusterIamRolesInput) SetClusterIdentifier(v string) *ModifyClusterIamRolesInput {
26651	s.ClusterIdentifier = &v
26652	return s
26653}
26654
26655// SetRemoveIamRoles sets the RemoveIamRoles field's value.
26656func (s *ModifyClusterIamRolesInput) SetRemoveIamRoles(v []*string) *ModifyClusterIamRolesInput {
26657	s.RemoveIamRoles = v
26658	return s
26659}
26660
26661type ModifyClusterIamRolesOutput struct {
26662	_ struct{} `type:"structure"`
26663
26664	// Describes a cluster.
26665	Cluster *Cluster `type:"structure"`
26666}
26667
26668// String returns the string representation.
26669//
26670// API parameter values that are decorated as "sensitive" in the API will not
26671// be included in the string output. The member name will be present, but the
26672// value will be replaced with "sensitive".
26673func (s ModifyClusterIamRolesOutput) String() string {
26674	return awsutil.Prettify(s)
26675}
26676
26677// GoString returns the string representation.
26678//
26679// API parameter values that are decorated as "sensitive" in the API will not
26680// be included in the string output. The member name will be present, but the
26681// value will be replaced with "sensitive".
26682func (s ModifyClusterIamRolesOutput) GoString() string {
26683	return s.String()
26684}
26685
26686// SetCluster sets the Cluster field's value.
26687func (s *ModifyClusterIamRolesOutput) SetCluster(v *Cluster) *ModifyClusterIamRolesOutput {
26688	s.Cluster = v
26689	return s
26690}
26691
26692type ModifyClusterInput struct {
26693	_ struct{} `type:"structure"`
26694
26695	// If true, major version upgrades will be applied automatically to the cluster
26696	// during the maintenance window.
26697	//
26698	// Default: false
26699	AllowVersionUpgrade *bool `type:"boolean"`
26700
26701	// The number of days that automated snapshots are retained. If the value is
26702	// 0, automated snapshots are disabled. Even if automated snapshots are disabled,
26703	// you can still create manual snapshots when you want with CreateClusterSnapshot.
26704	//
26705	// If you decrease the automated snapshot retention period from its current
26706	// value, existing automated snapshots that fall outside of the new retention
26707	// period will be immediately deleted.
26708	//
26709	// You can't disable automated snapshots for RA3 node types. Set the automated
26710	// retention period from 1-35 days.
26711	//
26712	// Default: Uses existing setting.
26713	//
26714	// Constraints: Must be a value from 0 to 35.
26715	AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
26716
26717	// The option to initiate relocation for an Amazon Redshift cluster to the target
26718	// Availability Zone.
26719	AvailabilityZone *string `type:"string"`
26720
26721	// The option to enable relocation for an Amazon Redshift cluster between Availability
26722	// Zones after the cluster modification is complete.
26723	AvailabilityZoneRelocation *bool `type:"boolean"`
26724
26725	// The unique identifier of the cluster to be modified.
26726	//
26727	// Example: examplecluster
26728	//
26729	// ClusterIdentifier is a required field
26730	ClusterIdentifier *string `type:"string" required:"true"`
26731
26732	// The name of the cluster parameter group to apply to this cluster. This change
26733	// is applied only after the cluster is rebooted. To reboot a cluster use RebootCluster.
26734	//
26735	// Default: Uses existing setting.
26736	//
26737	// Constraints: The cluster parameter group must be in the same parameter group
26738	// family that matches the cluster version.
26739	ClusterParameterGroupName *string `type:"string"`
26740
26741	// A list of cluster security groups to be authorized on this cluster. This
26742	// change is asynchronously applied as soon as possible.
26743	//
26744	// Security groups currently associated with the cluster, and not in the list
26745	// of groups to apply, will be revoked from the cluster.
26746	//
26747	// Constraints:
26748	//
26749	//    * Must be 1 to 255 alphanumeric characters or hyphens
26750	//
26751	//    * First character must be a letter
26752	//
26753	//    * Cannot end with a hyphen or contain two consecutive hyphens
26754	ClusterSecurityGroups []*string `locationNameList:"ClusterSecurityGroupName" type:"list"`
26755
26756	// The new cluster type.
26757	//
26758	// When you submit your cluster resize request, your existing cluster goes into
26759	// a read-only mode. After Amazon Redshift provisions a new cluster based on
26760	// your resize requirements, there will be outage for a period while the old
26761	// cluster is deleted and your connection is switched to the new cluster. You
26762	// can use DescribeResize to track the progress of the resize request.
26763	//
26764	// Valid Values: multi-node | single-node
26765	ClusterType *string `type:"string"`
26766
26767	// The new version number of the Amazon Redshift engine to upgrade to.
26768	//
26769	// For major version upgrades, if a non-default cluster parameter group is currently
26770	// in use, a new cluster parameter group in the cluster parameter group family
26771	// for the new version must be specified. The new cluster parameter group can
26772	// be the default for that cluster parameter group family. For more information
26773	// about parameters and parameter groups, go to Amazon Redshift Parameter Groups
26774	// (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
26775	// in the Amazon Redshift Cluster Management Guide.
26776	//
26777	// Example: 1.0
26778	ClusterVersion *string `type:"string"`
26779
26780	// The Elastic IP (EIP) address for the cluster.
26781	//
26782	// Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible
26783	// through an Internet gateway. For more information about provisioning clusters
26784	// 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)
26785	// in the Amazon Redshift Cluster Management Guide.
26786	ElasticIp *string `type:"string"`
26787
26788	// Indicates whether the cluster is encrypted. If the value is encrypted (true)
26789	// and you provide a value for the KmsKeyId parameter, we encrypt the cluster
26790	// with the provided KmsKeyId. If you don't provide a KmsKeyId, we encrypt with
26791	// the default key.
26792	//
26793	// If the value is not encrypted (false), then the cluster is decrypted.
26794	Encrypted *bool `type:"boolean"`
26795
26796	// An option that specifies whether to create the cluster with enhanced VPC
26797	// routing enabled. To create a cluster that uses enhanced VPC routing, the
26798	// cluster must be in a VPC. For more information, see Enhanced VPC Routing
26799	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
26800	// in the Amazon Redshift Cluster Management Guide.
26801	//
26802	// If this option is true, enhanced VPC routing is enabled.
26803	//
26804	// Default: false
26805	EnhancedVpcRouting *bool `type:"boolean"`
26806
26807	// Specifies the name of the HSM client certificate the Amazon Redshift cluster
26808	// uses to retrieve the data encryption keys stored in an HSM.
26809	HsmClientCertificateIdentifier *string `type:"string"`
26810
26811	// Specifies the name of the HSM configuration that contains the information
26812	// the Amazon Redshift cluster can use to retrieve and store keys in an HSM.
26813	HsmConfigurationIdentifier *string `type:"string"`
26814
26815	// The Key Management Service (KMS) key ID of the encryption key that you want
26816	// to use to encrypt data in the cluster.
26817	KmsKeyId *string `type:"string"`
26818
26819	// The name for the maintenance track that you want to assign for the cluster.
26820	// This name change is asynchronous. The new track name stays in the PendingModifiedValues
26821	// for the cluster until the next maintenance window. When the maintenance track
26822	// changes, the cluster is switched to the latest cluster release available
26823	// for the maintenance track. At this point, the maintenance track name is applied.
26824	MaintenanceTrackName *string `type:"string"`
26825
26826	// The default for number of days that a newly created manual snapshot is retained.
26827	// If the value is -1, the manual snapshot is retained indefinitely. This value
26828	// doesn't retroactively change the retention periods of existing manual snapshots.
26829	//
26830	// The value must be either -1 or an integer between 1 and 3,653.
26831	//
26832	// The default value is -1.
26833	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
26834
26835	// The new password for the cluster admin user. This change is asynchronously
26836	// applied as soon as possible. Between the time of the request and the completion
26837	// of the request, the MasterUserPassword element exists in the PendingModifiedValues
26838	// element of the operation response.
26839	//
26840	// Operations never return the password, so this operation provides a way to
26841	// regain access to the admin user account for a cluster if the password is
26842	// lost.
26843	//
26844	// Default: Uses existing setting.
26845	//
26846	// Constraints:
26847	//
26848	//    * Must be between 8 and 64 characters in length.
26849	//
26850	//    * Must contain at least one uppercase letter.
26851	//
26852	//    * Must contain at least one lowercase letter.
26853	//
26854	//    * Must contain one number.
26855	//
26856	//    * Can be any printable ASCII character (ASCII code 33 to 126) except '
26857	//    (single quote), " (double quote), \, /, @, or space.
26858	MasterUserPassword *string `type:"string"`
26859
26860	// The new identifier for the cluster.
26861	//
26862	// Constraints:
26863	//
26864	//    * Must contain from 1 to 63 alphanumeric characters or hyphens.
26865	//
26866	//    * Alphabetic characters must be lowercase.
26867	//
26868	//    * First character must be a letter.
26869	//
26870	//    * Cannot end with a hyphen or contain two consecutive hyphens.
26871	//
26872	//    * Must be unique for all clusters within an Amazon Web Services account.
26873	//
26874	// Example: examplecluster
26875	NewClusterIdentifier *string `type:"string"`
26876
26877	// The new node type of the cluster. If you specify a new node type, you must
26878	// also specify the number of nodes parameter.
26879	//
26880	// For more information about resizing clusters, go to Resizing Clusters in
26881	// Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html)
26882	// in the Amazon Redshift Cluster Management Guide.
26883	//
26884	// Valid Values: ds2.xlarge | ds2.8xlarge | dc1.large | dc1.8xlarge | dc2.large
26885	// | dc2.8xlarge | ra3.xlplus | ra3.4xlarge | ra3.16xlarge
26886	NodeType *string `type:"string"`
26887
26888	// The new number of nodes of the cluster. If you specify a new number of nodes,
26889	// you must also specify the node type parameter.
26890	//
26891	// For more information about resizing clusters, go to Resizing Clusters in
26892	// Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html)
26893	// in the Amazon Redshift Cluster Management Guide.
26894	//
26895	// Valid Values: Integer greater than 0.
26896	NumberOfNodes *int64 `type:"integer"`
26897
26898	// The option to change the port of an Amazon Redshift cluster.
26899	Port *int64 `type:"integer"`
26900
26901	// The weekly time range (in UTC) during which system maintenance can occur,
26902	// if necessary. If system maintenance is necessary during the window, it may
26903	// result in an outage.
26904	//
26905	// This maintenance window change is made immediately. If the new maintenance
26906	// window indicates the current time, there must be at least 120 minutes between
26907	// the current time and end of the window in order to ensure that pending changes
26908	// are applied.
26909	//
26910	// Default: Uses existing setting.
26911	//
26912	// Format: ddd:hh24:mi-ddd:hh24:mi, for example wed:07:30-wed:08:00.
26913	//
26914	// Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
26915	//
26916	// Constraints: Must be at least 30 minutes.
26917	PreferredMaintenanceWindow *string `type:"string"`
26918
26919	// If true, the cluster can be accessed from a public network. Only clusters
26920	// in VPCs can be set to be publicly available.
26921	PubliclyAccessible *bool `type:"boolean"`
26922
26923	// A list of virtual private cloud (VPC) security groups to be associated with
26924	// the cluster. This change is asynchronously applied as soon as possible.
26925	VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
26926}
26927
26928// String returns the string representation.
26929//
26930// API parameter values that are decorated as "sensitive" in the API will not
26931// be included in the string output. The member name will be present, but the
26932// value will be replaced with "sensitive".
26933func (s ModifyClusterInput) String() string {
26934	return awsutil.Prettify(s)
26935}
26936
26937// GoString returns the string representation.
26938//
26939// API parameter values that are decorated as "sensitive" in the API will not
26940// be included in the string output. The member name will be present, but the
26941// value will be replaced with "sensitive".
26942func (s ModifyClusterInput) GoString() string {
26943	return s.String()
26944}
26945
26946// Validate inspects the fields of the type to determine if they are valid.
26947func (s *ModifyClusterInput) Validate() error {
26948	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterInput"}
26949	if s.ClusterIdentifier == nil {
26950		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
26951	}
26952
26953	if invalidParams.Len() > 0 {
26954		return invalidParams
26955	}
26956	return nil
26957}
26958
26959// SetAllowVersionUpgrade sets the AllowVersionUpgrade field's value.
26960func (s *ModifyClusterInput) SetAllowVersionUpgrade(v bool) *ModifyClusterInput {
26961	s.AllowVersionUpgrade = &v
26962	return s
26963}
26964
26965// SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
26966func (s *ModifyClusterInput) SetAutomatedSnapshotRetentionPeriod(v int64) *ModifyClusterInput {
26967	s.AutomatedSnapshotRetentionPeriod = &v
26968	return s
26969}
26970
26971// SetAvailabilityZone sets the AvailabilityZone field's value.
26972func (s *ModifyClusterInput) SetAvailabilityZone(v string) *ModifyClusterInput {
26973	s.AvailabilityZone = &v
26974	return s
26975}
26976
26977// SetAvailabilityZoneRelocation sets the AvailabilityZoneRelocation field's value.
26978func (s *ModifyClusterInput) SetAvailabilityZoneRelocation(v bool) *ModifyClusterInput {
26979	s.AvailabilityZoneRelocation = &v
26980	return s
26981}
26982
26983// SetClusterIdentifier sets the ClusterIdentifier field's value.
26984func (s *ModifyClusterInput) SetClusterIdentifier(v string) *ModifyClusterInput {
26985	s.ClusterIdentifier = &v
26986	return s
26987}
26988
26989// SetClusterParameterGroupName sets the ClusterParameterGroupName field's value.
26990func (s *ModifyClusterInput) SetClusterParameterGroupName(v string) *ModifyClusterInput {
26991	s.ClusterParameterGroupName = &v
26992	return s
26993}
26994
26995// SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
26996func (s *ModifyClusterInput) SetClusterSecurityGroups(v []*string) *ModifyClusterInput {
26997	s.ClusterSecurityGroups = v
26998	return s
26999}
27000
27001// SetClusterType sets the ClusterType field's value.
27002func (s *ModifyClusterInput) SetClusterType(v string) *ModifyClusterInput {
27003	s.ClusterType = &v
27004	return s
27005}
27006
27007// SetClusterVersion sets the ClusterVersion field's value.
27008func (s *ModifyClusterInput) SetClusterVersion(v string) *ModifyClusterInput {
27009	s.ClusterVersion = &v
27010	return s
27011}
27012
27013// SetElasticIp sets the ElasticIp field's value.
27014func (s *ModifyClusterInput) SetElasticIp(v string) *ModifyClusterInput {
27015	s.ElasticIp = &v
27016	return s
27017}
27018
27019// SetEncrypted sets the Encrypted field's value.
27020func (s *ModifyClusterInput) SetEncrypted(v bool) *ModifyClusterInput {
27021	s.Encrypted = &v
27022	return s
27023}
27024
27025// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
27026func (s *ModifyClusterInput) SetEnhancedVpcRouting(v bool) *ModifyClusterInput {
27027	s.EnhancedVpcRouting = &v
27028	return s
27029}
27030
27031// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
27032func (s *ModifyClusterInput) SetHsmClientCertificateIdentifier(v string) *ModifyClusterInput {
27033	s.HsmClientCertificateIdentifier = &v
27034	return s
27035}
27036
27037// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
27038func (s *ModifyClusterInput) SetHsmConfigurationIdentifier(v string) *ModifyClusterInput {
27039	s.HsmConfigurationIdentifier = &v
27040	return s
27041}
27042
27043// SetKmsKeyId sets the KmsKeyId field's value.
27044func (s *ModifyClusterInput) SetKmsKeyId(v string) *ModifyClusterInput {
27045	s.KmsKeyId = &v
27046	return s
27047}
27048
27049// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
27050func (s *ModifyClusterInput) SetMaintenanceTrackName(v string) *ModifyClusterInput {
27051	s.MaintenanceTrackName = &v
27052	return s
27053}
27054
27055// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
27056func (s *ModifyClusterInput) SetManualSnapshotRetentionPeriod(v int64) *ModifyClusterInput {
27057	s.ManualSnapshotRetentionPeriod = &v
27058	return s
27059}
27060
27061// SetMasterUserPassword sets the MasterUserPassword field's value.
27062func (s *ModifyClusterInput) SetMasterUserPassword(v string) *ModifyClusterInput {
27063	s.MasterUserPassword = &v
27064	return s
27065}
27066
27067// SetNewClusterIdentifier sets the NewClusterIdentifier field's value.
27068func (s *ModifyClusterInput) SetNewClusterIdentifier(v string) *ModifyClusterInput {
27069	s.NewClusterIdentifier = &v
27070	return s
27071}
27072
27073// SetNodeType sets the NodeType field's value.
27074func (s *ModifyClusterInput) SetNodeType(v string) *ModifyClusterInput {
27075	s.NodeType = &v
27076	return s
27077}
27078
27079// SetNumberOfNodes sets the NumberOfNodes field's value.
27080func (s *ModifyClusterInput) SetNumberOfNodes(v int64) *ModifyClusterInput {
27081	s.NumberOfNodes = &v
27082	return s
27083}
27084
27085// SetPort sets the Port field's value.
27086func (s *ModifyClusterInput) SetPort(v int64) *ModifyClusterInput {
27087	s.Port = &v
27088	return s
27089}
27090
27091// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
27092func (s *ModifyClusterInput) SetPreferredMaintenanceWindow(v string) *ModifyClusterInput {
27093	s.PreferredMaintenanceWindow = &v
27094	return s
27095}
27096
27097// SetPubliclyAccessible sets the PubliclyAccessible field's value.
27098func (s *ModifyClusterInput) SetPubliclyAccessible(v bool) *ModifyClusterInput {
27099	s.PubliclyAccessible = &v
27100	return s
27101}
27102
27103// SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
27104func (s *ModifyClusterInput) SetVpcSecurityGroupIds(v []*string) *ModifyClusterInput {
27105	s.VpcSecurityGroupIds = v
27106	return s
27107}
27108
27109type ModifyClusterMaintenanceInput struct {
27110	_ struct{} `type:"structure"`
27111
27112	// A unique identifier for the cluster.
27113	//
27114	// ClusterIdentifier is a required field
27115	ClusterIdentifier *string `type:"string" required:"true"`
27116
27117	// A boolean indicating whether to enable the deferred maintenance window.
27118	DeferMaintenance *bool `type:"boolean"`
27119
27120	// An integer indicating the duration of the maintenance window in days. If
27121	// you specify a duration, you can't specify an end time. The duration must
27122	// be 45 days or less.
27123	DeferMaintenanceDuration *int64 `type:"integer"`
27124
27125	// A timestamp indicating end time for the deferred maintenance window. If you
27126	// specify an end time, you can't specify a duration.
27127	DeferMaintenanceEndTime *time.Time `type:"timestamp"`
27128
27129	// A unique identifier for the deferred maintenance window.
27130	DeferMaintenanceIdentifier *string `type:"string"`
27131
27132	// A timestamp indicating the start time for the deferred maintenance window.
27133	DeferMaintenanceStartTime *time.Time `type:"timestamp"`
27134}
27135
27136// String returns the string representation.
27137//
27138// API parameter values that are decorated as "sensitive" in the API will not
27139// be included in the string output. The member name will be present, but the
27140// value will be replaced with "sensitive".
27141func (s ModifyClusterMaintenanceInput) String() string {
27142	return awsutil.Prettify(s)
27143}
27144
27145// GoString returns the string representation.
27146//
27147// API parameter values that are decorated as "sensitive" in the API will not
27148// be included in the string output. The member name will be present, but the
27149// value will be replaced with "sensitive".
27150func (s ModifyClusterMaintenanceInput) GoString() string {
27151	return s.String()
27152}
27153
27154// Validate inspects the fields of the type to determine if they are valid.
27155func (s *ModifyClusterMaintenanceInput) Validate() error {
27156	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterMaintenanceInput"}
27157	if s.ClusterIdentifier == nil {
27158		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
27159	}
27160
27161	if invalidParams.Len() > 0 {
27162		return invalidParams
27163	}
27164	return nil
27165}
27166
27167// SetClusterIdentifier sets the ClusterIdentifier field's value.
27168func (s *ModifyClusterMaintenanceInput) SetClusterIdentifier(v string) *ModifyClusterMaintenanceInput {
27169	s.ClusterIdentifier = &v
27170	return s
27171}
27172
27173// SetDeferMaintenance sets the DeferMaintenance field's value.
27174func (s *ModifyClusterMaintenanceInput) SetDeferMaintenance(v bool) *ModifyClusterMaintenanceInput {
27175	s.DeferMaintenance = &v
27176	return s
27177}
27178
27179// SetDeferMaintenanceDuration sets the DeferMaintenanceDuration field's value.
27180func (s *ModifyClusterMaintenanceInput) SetDeferMaintenanceDuration(v int64) *ModifyClusterMaintenanceInput {
27181	s.DeferMaintenanceDuration = &v
27182	return s
27183}
27184
27185// SetDeferMaintenanceEndTime sets the DeferMaintenanceEndTime field's value.
27186func (s *ModifyClusterMaintenanceInput) SetDeferMaintenanceEndTime(v time.Time) *ModifyClusterMaintenanceInput {
27187	s.DeferMaintenanceEndTime = &v
27188	return s
27189}
27190
27191// SetDeferMaintenanceIdentifier sets the DeferMaintenanceIdentifier field's value.
27192func (s *ModifyClusterMaintenanceInput) SetDeferMaintenanceIdentifier(v string) *ModifyClusterMaintenanceInput {
27193	s.DeferMaintenanceIdentifier = &v
27194	return s
27195}
27196
27197// SetDeferMaintenanceStartTime sets the DeferMaintenanceStartTime field's value.
27198func (s *ModifyClusterMaintenanceInput) SetDeferMaintenanceStartTime(v time.Time) *ModifyClusterMaintenanceInput {
27199	s.DeferMaintenanceStartTime = &v
27200	return s
27201}
27202
27203type ModifyClusterMaintenanceOutput struct {
27204	_ struct{} `type:"structure"`
27205
27206	// Describes a cluster.
27207	Cluster *Cluster `type:"structure"`
27208}
27209
27210// String returns the string representation.
27211//
27212// API parameter values that are decorated as "sensitive" in the API will not
27213// be included in the string output. The member name will be present, but the
27214// value will be replaced with "sensitive".
27215func (s ModifyClusterMaintenanceOutput) String() string {
27216	return awsutil.Prettify(s)
27217}
27218
27219// GoString returns the string representation.
27220//
27221// API parameter values that are decorated as "sensitive" in the API will not
27222// be included in the string output. The member name will be present, but the
27223// value will be replaced with "sensitive".
27224func (s ModifyClusterMaintenanceOutput) GoString() string {
27225	return s.String()
27226}
27227
27228// SetCluster sets the Cluster field's value.
27229func (s *ModifyClusterMaintenanceOutput) SetCluster(v *Cluster) *ModifyClusterMaintenanceOutput {
27230	s.Cluster = v
27231	return s
27232}
27233
27234type ModifyClusterOutput struct {
27235	_ struct{} `type:"structure"`
27236
27237	// Describes a cluster.
27238	Cluster *Cluster `type:"structure"`
27239}
27240
27241// String returns the string representation.
27242//
27243// API parameter values that are decorated as "sensitive" in the API will not
27244// be included in the string output. The member name will be present, but the
27245// value will be replaced with "sensitive".
27246func (s ModifyClusterOutput) String() string {
27247	return awsutil.Prettify(s)
27248}
27249
27250// GoString returns the string representation.
27251//
27252// API parameter values that are decorated as "sensitive" in the API will not
27253// be included in the string output. The member name will be present, but the
27254// value will be replaced with "sensitive".
27255func (s ModifyClusterOutput) GoString() string {
27256	return s.String()
27257}
27258
27259// SetCluster sets the Cluster field's value.
27260func (s *ModifyClusterOutput) SetCluster(v *Cluster) *ModifyClusterOutput {
27261	s.Cluster = v
27262	return s
27263}
27264
27265// Describes a modify cluster parameter group operation.
27266type ModifyClusterParameterGroupInput struct {
27267	_ struct{} `type:"structure"`
27268
27269	// The name of the parameter group to be modified.
27270	//
27271	// ParameterGroupName is a required field
27272	ParameterGroupName *string `type:"string" required:"true"`
27273
27274	// An array of parameters to be modified. A maximum of 20 parameters can be
27275	// modified in a single request.
27276	//
27277	// For each parameter to be modified, you must supply at least the parameter
27278	// name and parameter value; other name-value pairs of the parameter are optional.
27279	//
27280	// For the workload management (WLM) configuration, you must supply all the
27281	// name-value pairs in the wlm_json_configuration parameter.
27282	//
27283	// Parameters is a required field
27284	Parameters []*Parameter `locationNameList:"Parameter" type:"list" required:"true"`
27285}
27286
27287// String returns the string representation.
27288//
27289// API parameter values that are decorated as "sensitive" in the API will not
27290// be included in the string output. The member name will be present, but the
27291// value will be replaced with "sensitive".
27292func (s ModifyClusterParameterGroupInput) String() string {
27293	return awsutil.Prettify(s)
27294}
27295
27296// GoString returns the string representation.
27297//
27298// API parameter values that are decorated as "sensitive" in the API will not
27299// be included in the string output. The member name will be present, but the
27300// value will be replaced with "sensitive".
27301func (s ModifyClusterParameterGroupInput) GoString() string {
27302	return s.String()
27303}
27304
27305// Validate inspects the fields of the type to determine if they are valid.
27306func (s *ModifyClusterParameterGroupInput) Validate() error {
27307	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterParameterGroupInput"}
27308	if s.ParameterGroupName == nil {
27309		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
27310	}
27311	if s.Parameters == nil {
27312		invalidParams.Add(request.NewErrParamRequired("Parameters"))
27313	}
27314
27315	if invalidParams.Len() > 0 {
27316		return invalidParams
27317	}
27318	return nil
27319}
27320
27321// SetParameterGroupName sets the ParameterGroupName field's value.
27322func (s *ModifyClusterParameterGroupInput) SetParameterGroupName(v string) *ModifyClusterParameterGroupInput {
27323	s.ParameterGroupName = &v
27324	return s
27325}
27326
27327// SetParameters sets the Parameters field's value.
27328func (s *ModifyClusterParameterGroupInput) SetParameters(v []*Parameter) *ModifyClusterParameterGroupInput {
27329	s.Parameters = v
27330	return s
27331}
27332
27333type ModifyClusterSnapshotInput struct {
27334	_ struct{} `type:"structure"`
27335
27336	// A Boolean option to override an exception if the retention period has already
27337	// passed.
27338	Force *bool `type:"boolean"`
27339
27340	// The number of days that a manual snapshot is retained. If the value is -1,
27341	// the manual snapshot is retained indefinitely.
27342	//
27343	// If the manual snapshot falls outside of the new retention period, you can
27344	// specify the force option to immediately delete the snapshot.
27345	//
27346	// The value must be either -1 or an integer between 1 and 3,653.
27347	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
27348
27349	// The identifier of the snapshot whose setting you want to modify.
27350	//
27351	// SnapshotIdentifier is a required field
27352	SnapshotIdentifier *string `type:"string" required:"true"`
27353}
27354
27355// String returns the string representation.
27356//
27357// API parameter values that are decorated as "sensitive" in the API will not
27358// be included in the string output. The member name will be present, but the
27359// value will be replaced with "sensitive".
27360func (s ModifyClusterSnapshotInput) String() string {
27361	return awsutil.Prettify(s)
27362}
27363
27364// GoString returns the string representation.
27365//
27366// API parameter values that are decorated as "sensitive" in the API will not
27367// be included in the string output. The member name will be present, but the
27368// value will be replaced with "sensitive".
27369func (s ModifyClusterSnapshotInput) GoString() string {
27370	return s.String()
27371}
27372
27373// Validate inspects the fields of the type to determine if they are valid.
27374func (s *ModifyClusterSnapshotInput) Validate() error {
27375	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterSnapshotInput"}
27376	if s.SnapshotIdentifier == nil {
27377		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
27378	}
27379
27380	if invalidParams.Len() > 0 {
27381		return invalidParams
27382	}
27383	return nil
27384}
27385
27386// SetForce sets the Force field's value.
27387func (s *ModifyClusterSnapshotInput) SetForce(v bool) *ModifyClusterSnapshotInput {
27388	s.Force = &v
27389	return s
27390}
27391
27392// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
27393func (s *ModifyClusterSnapshotInput) SetManualSnapshotRetentionPeriod(v int64) *ModifyClusterSnapshotInput {
27394	s.ManualSnapshotRetentionPeriod = &v
27395	return s
27396}
27397
27398// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
27399func (s *ModifyClusterSnapshotInput) SetSnapshotIdentifier(v string) *ModifyClusterSnapshotInput {
27400	s.SnapshotIdentifier = &v
27401	return s
27402}
27403
27404type ModifyClusterSnapshotOutput struct {
27405	_ struct{} `type:"structure"`
27406
27407	// Describes a snapshot.
27408	Snapshot *Snapshot `type:"structure"`
27409}
27410
27411// String returns the string representation.
27412//
27413// API parameter values that are decorated as "sensitive" in the API will not
27414// be included in the string output. The member name will be present, but the
27415// value will be replaced with "sensitive".
27416func (s ModifyClusterSnapshotOutput) String() string {
27417	return awsutil.Prettify(s)
27418}
27419
27420// GoString returns the string representation.
27421//
27422// API parameter values that are decorated as "sensitive" in the API will not
27423// be included in the string output. The member name will be present, but the
27424// value will be replaced with "sensitive".
27425func (s ModifyClusterSnapshotOutput) GoString() string {
27426	return s.String()
27427}
27428
27429// SetSnapshot sets the Snapshot field's value.
27430func (s *ModifyClusterSnapshotOutput) SetSnapshot(v *Snapshot) *ModifyClusterSnapshotOutput {
27431	s.Snapshot = v
27432	return s
27433}
27434
27435type ModifyClusterSnapshotScheduleInput struct {
27436	_ struct{} `type:"structure"`
27437
27438	// A unique identifier for the cluster whose snapshot schedule you want to modify.
27439	//
27440	// ClusterIdentifier is a required field
27441	ClusterIdentifier *string `type:"string" required:"true"`
27442
27443	// A boolean to indicate whether to remove the assoiciation between the cluster
27444	// and the schedule.
27445	DisassociateSchedule *bool `type:"boolean"`
27446
27447	// A unique alphanumeric identifier for the schedule that you want to associate
27448	// with the cluster.
27449	ScheduleIdentifier *string `type:"string"`
27450}
27451
27452// String returns the string representation.
27453//
27454// API parameter values that are decorated as "sensitive" in the API will not
27455// be included in the string output. The member name will be present, but the
27456// value will be replaced with "sensitive".
27457func (s ModifyClusterSnapshotScheduleInput) String() string {
27458	return awsutil.Prettify(s)
27459}
27460
27461// GoString returns the string representation.
27462//
27463// API parameter values that are decorated as "sensitive" in the API will not
27464// be included in the string output. The member name will be present, but the
27465// value will be replaced with "sensitive".
27466func (s ModifyClusterSnapshotScheduleInput) GoString() string {
27467	return s.String()
27468}
27469
27470// Validate inspects the fields of the type to determine if they are valid.
27471func (s *ModifyClusterSnapshotScheduleInput) Validate() error {
27472	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterSnapshotScheduleInput"}
27473	if s.ClusterIdentifier == nil {
27474		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
27475	}
27476
27477	if invalidParams.Len() > 0 {
27478		return invalidParams
27479	}
27480	return nil
27481}
27482
27483// SetClusterIdentifier sets the ClusterIdentifier field's value.
27484func (s *ModifyClusterSnapshotScheduleInput) SetClusterIdentifier(v string) *ModifyClusterSnapshotScheduleInput {
27485	s.ClusterIdentifier = &v
27486	return s
27487}
27488
27489// SetDisassociateSchedule sets the DisassociateSchedule field's value.
27490func (s *ModifyClusterSnapshotScheduleInput) SetDisassociateSchedule(v bool) *ModifyClusterSnapshotScheduleInput {
27491	s.DisassociateSchedule = &v
27492	return s
27493}
27494
27495// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
27496func (s *ModifyClusterSnapshotScheduleInput) SetScheduleIdentifier(v string) *ModifyClusterSnapshotScheduleInput {
27497	s.ScheduleIdentifier = &v
27498	return s
27499}
27500
27501type ModifyClusterSnapshotScheduleOutput struct {
27502	_ struct{} `type:"structure"`
27503}
27504
27505// String returns the string representation.
27506//
27507// API parameter values that are decorated as "sensitive" in the API will not
27508// be included in the string output. The member name will be present, but the
27509// value will be replaced with "sensitive".
27510func (s ModifyClusterSnapshotScheduleOutput) String() string {
27511	return awsutil.Prettify(s)
27512}
27513
27514// GoString returns the string representation.
27515//
27516// API parameter values that are decorated as "sensitive" in the API will not
27517// be included in the string output. The member name will be present, but the
27518// value will be replaced with "sensitive".
27519func (s ModifyClusterSnapshotScheduleOutput) GoString() string {
27520	return s.String()
27521}
27522
27523type ModifyClusterSubnetGroupInput struct {
27524	_ struct{} `type:"structure"`
27525
27526	// The name of the subnet group to be modified.
27527	//
27528	// ClusterSubnetGroupName is a required field
27529	ClusterSubnetGroupName *string `type:"string" required:"true"`
27530
27531	// A text description of the subnet group to be modified.
27532	Description *string `type:"string"`
27533
27534	// An array of VPC subnet IDs. A maximum of 20 subnets can be modified in a
27535	// single request.
27536	//
27537	// SubnetIds is a required field
27538	SubnetIds []*string `locationNameList:"SubnetIdentifier" type:"list" required:"true"`
27539}
27540
27541// String returns the string representation.
27542//
27543// API parameter values that are decorated as "sensitive" in the API will not
27544// be included in the string output. The member name will be present, but the
27545// value will be replaced with "sensitive".
27546func (s ModifyClusterSubnetGroupInput) String() string {
27547	return awsutil.Prettify(s)
27548}
27549
27550// GoString returns the string representation.
27551//
27552// API parameter values that are decorated as "sensitive" in the API will not
27553// be included in the string output. The member name will be present, but the
27554// value will be replaced with "sensitive".
27555func (s ModifyClusterSubnetGroupInput) GoString() string {
27556	return s.String()
27557}
27558
27559// Validate inspects the fields of the type to determine if they are valid.
27560func (s *ModifyClusterSubnetGroupInput) Validate() error {
27561	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterSubnetGroupInput"}
27562	if s.ClusterSubnetGroupName == nil {
27563		invalidParams.Add(request.NewErrParamRequired("ClusterSubnetGroupName"))
27564	}
27565	if s.SubnetIds == nil {
27566		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
27567	}
27568
27569	if invalidParams.Len() > 0 {
27570		return invalidParams
27571	}
27572	return nil
27573}
27574
27575// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
27576func (s *ModifyClusterSubnetGroupInput) SetClusterSubnetGroupName(v string) *ModifyClusterSubnetGroupInput {
27577	s.ClusterSubnetGroupName = &v
27578	return s
27579}
27580
27581// SetDescription sets the Description field's value.
27582func (s *ModifyClusterSubnetGroupInput) SetDescription(v string) *ModifyClusterSubnetGroupInput {
27583	s.Description = &v
27584	return s
27585}
27586
27587// SetSubnetIds sets the SubnetIds field's value.
27588func (s *ModifyClusterSubnetGroupInput) SetSubnetIds(v []*string) *ModifyClusterSubnetGroupInput {
27589	s.SubnetIds = v
27590	return s
27591}
27592
27593type ModifyClusterSubnetGroupOutput struct {
27594	_ struct{} `type:"structure"`
27595
27596	// Describes a subnet group.
27597	ClusterSubnetGroup *ClusterSubnetGroup `type:"structure"`
27598}
27599
27600// String returns the string representation.
27601//
27602// API parameter values that are decorated as "sensitive" in the API will not
27603// be included in the string output. The member name will be present, but the
27604// value will be replaced with "sensitive".
27605func (s ModifyClusterSubnetGroupOutput) String() string {
27606	return awsutil.Prettify(s)
27607}
27608
27609// GoString returns the string representation.
27610//
27611// API parameter values that are decorated as "sensitive" in the API will not
27612// be included in the string output. The member name will be present, but the
27613// value will be replaced with "sensitive".
27614func (s ModifyClusterSubnetGroupOutput) GoString() string {
27615	return s.String()
27616}
27617
27618// SetClusterSubnetGroup sets the ClusterSubnetGroup field's value.
27619func (s *ModifyClusterSubnetGroupOutput) SetClusterSubnetGroup(v *ClusterSubnetGroup) *ModifyClusterSubnetGroupOutput {
27620	s.ClusterSubnetGroup = v
27621	return s
27622}
27623
27624type ModifyEndpointAccessInput struct {
27625	_ struct{} `type:"structure"`
27626
27627	// The endpoint to be modified.
27628	//
27629	// EndpointName is a required field
27630	EndpointName *string `type:"string" required:"true"`
27631
27632	// The complete list of VPC security groups associated with the endpoint after
27633	// the endpoint is modified.
27634	VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
27635}
27636
27637// String returns the string representation.
27638//
27639// API parameter values that are decorated as "sensitive" in the API will not
27640// be included in the string output. The member name will be present, but the
27641// value will be replaced with "sensitive".
27642func (s ModifyEndpointAccessInput) String() string {
27643	return awsutil.Prettify(s)
27644}
27645
27646// GoString returns the string representation.
27647//
27648// API parameter values that are decorated as "sensitive" in the API will not
27649// be included in the string output. The member name will be present, but the
27650// value will be replaced with "sensitive".
27651func (s ModifyEndpointAccessInput) GoString() string {
27652	return s.String()
27653}
27654
27655// Validate inspects the fields of the type to determine if they are valid.
27656func (s *ModifyEndpointAccessInput) Validate() error {
27657	invalidParams := request.ErrInvalidParams{Context: "ModifyEndpointAccessInput"}
27658	if s.EndpointName == nil {
27659		invalidParams.Add(request.NewErrParamRequired("EndpointName"))
27660	}
27661
27662	if invalidParams.Len() > 0 {
27663		return invalidParams
27664	}
27665	return nil
27666}
27667
27668// SetEndpointName sets the EndpointName field's value.
27669func (s *ModifyEndpointAccessInput) SetEndpointName(v string) *ModifyEndpointAccessInput {
27670	s.EndpointName = &v
27671	return s
27672}
27673
27674// SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
27675func (s *ModifyEndpointAccessInput) SetVpcSecurityGroupIds(v []*string) *ModifyEndpointAccessInput {
27676	s.VpcSecurityGroupIds = v
27677	return s
27678}
27679
27680// Describes a Redshift-managed VPC endpoint.
27681type ModifyEndpointAccessOutput struct {
27682	_ struct{} `type:"structure"`
27683
27684	// The DNS address of the endpoint.
27685	Address *string `type:"string"`
27686
27687	// The cluster identifier of the cluster associated with the endpoint.
27688	ClusterIdentifier *string `type:"string"`
27689
27690	// The time (UTC) that the endpoint was created.
27691	EndpointCreateTime *time.Time `type:"timestamp"`
27692
27693	// The name of the endpoint.
27694	EndpointName *string `type:"string"`
27695
27696	// The status of the endpoint.
27697	EndpointStatus *string `type:"string"`
27698
27699	// The port number on which the cluster accepts incoming connections.
27700	Port *int64 `type:"integer"`
27701
27702	// The Amazon Web Services account ID of the owner of the cluster.
27703	ResourceOwner *string `type:"string"`
27704
27705	// The subnet group name where Amazon Redshift chooses to deploy the endpoint.
27706	SubnetGroupName *string `type:"string"`
27707
27708	// The connection endpoint for connecting to an Amazon Redshift cluster through
27709	// the proxy.
27710	VpcEndpoint *VpcEndpoint `type:"structure"`
27711
27712	// The security groups associated with the endpoint.
27713	VpcSecurityGroups []*VpcSecurityGroupMembership `locationNameList:"VpcSecurityGroup" type:"list"`
27714}
27715
27716// String returns the string representation.
27717//
27718// API parameter values that are decorated as "sensitive" in the API will not
27719// be included in the string output. The member name will be present, but the
27720// value will be replaced with "sensitive".
27721func (s ModifyEndpointAccessOutput) String() string {
27722	return awsutil.Prettify(s)
27723}
27724
27725// GoString returns the string representation.
27726//
27727// API parameter values that are decorated as "sensitive" in the API will not
27728// be included in the string output. The member name will be present, but the
27729// value will be replaced with "sensitive".
27730func (s ModifyEndpointAccessOutput) GoString() string {
27731	return s.String()
27732}
27733
27734// SetAddress sets the Address field's value.
27735func (s *ModifyEndpointAccessOutput) SetAddress(v string) *ModifyEndpointAccessOutput {
27736	s.Address = &v
27737	return s
27738}
27739
27740// SetClusterIdentifier sets the ClusterIdentifier field's value.
27741func (s *ModifyEndpointAccessOutput) SetClusterIdentifier(v string) *ModifyEndpointAccessOutput {
27742	s.ClusterIdentifier = &v
27743	return s
27744}
27745
27746// SetEndpointCreateTime sets the EndpointCreateTime field's value.
27747func (s *ModifyEndpointAccessOutput) SetEndpointCreateTime(v time.Time) *ModifyEndpointAccessOutput {
27748	s.EndpointCreateTime = &v
27749	return s
27750}
27751
27752// SetEndpointName sets the EndpointName field's value.
27753func (s *ModifyEndpointAccessOutput) SetEndpointName(v string) *ModifyEndpointAccessOutput {
27754	s.EndpointName = &v
27755	return s
27756}
27757
27758// SetEndpointStatus sets the EndpointStatus field's value.
27759func (s *ModifyEndpointAccessOutput) SetEndpointStatus(v string) *ModifyEndpointAccessOutput {
27760	s.EndpointStatus = &v
27761	return s
27762}
27763
27764// SetPort sets the Port field's value.
27765func (s *ModifyEndpointAccessOutput) SetPort(v int64) *ModifyEndpointAccessOutput {
27766	s.Port = &v
27767	return s
27768}
27769
27770// SetResourceOwner sets the ResourceOwner field's value.
27771func (s *ModifyEndpointAccessOutput) SetResourceOwner(v string) *ModifyEndpointAccessOutput {
27772	s.ResourceOwner = &v
27773	return s
27774}
27775
27776// SetSubnetGroupName sets the SubnetGroupName field's value.
27777func (s *ModifyEndpointAccessOutput) SetSubnetGroupName(v string) *ModifyEndpointAccessOutput {
27778	s.SubnetGroupName = &v
27779	return s
27780}
27781
27782// SetVpcEndpoint sets the VpcEndpoint field's value.
27783func (s *ModifyEndpointAccessOutput) SetVpcEndpoint(v *VpcEndpoint) *ModifyEndpointAccessOutput {
27784	s.VpcEndpoint = v
27785	return s
27786}
27787
27788// SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
27789func (s *ModifyEndpointAccessOutput) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *ModifyEndpointAccessOutput {
27790	s.VpcSecurityGroups = v
27791	return s
27792}
27793
27794type ModifyEventSubscriptionInput struct {
27795	_ struct{} `type:"structure"`
27796
27797	// A Boolean value indicating if the subscription is enabled. true indicates
27798	// the subscription is enabled
27799	Enabled *bool `type:"boolean"`
27800
27801	// Specifies the Amazon Redshift event categories to be published by the event
27802	// notification subscription.
27803	//
27804	// Values: configuration, management, monitoring, security, pending
27805	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
27806
27807	// Specifies the Amazon Redshift event severity to be published by the event
27808	// notification subscription.
27809	//
27810	// Values: ERROR, INFO
27811	Severity *string `type:"string"`
27812
27813	// The Amazon Resource Name (ARN) of the SNS topic to be used by the event notification
27814	// subscription.
27815	SnsTopicArn *string `type:"string"`
27816
27817	// A list of one or more identifiers of Amazon Redshift source objects. All
27818	// of the objects must be of the same type as was specified in the source type
27819	// parameter. The event subscription will return only events generated by the
27820	// specified objects. If not specified, then events are returned for all objects
27821	// within the source type specified.
27822	//
27823	// Example: my-cluster-1, my-cluster-2
27824	//
27825	// Example: my-snapshot-20131010
27826	SourceIds []*string `locationNameList:"SourceId" type:"list"`
27827
27828	// The type of source that will be generating the events. For example, if you
27829	// want to be notified of events generated by a cluster, you would set this
27830	// parameter to cluster. If this value is not specified, events are returned
27831	// for all Amazon Redshift objects in your Amazon Web Services account. You
27832	// must specify a source type in order to specify source IDs.
27833	//
27834	// Valid values: cluster, cluster-parameter-group, cluster-security-group, cluster-snapshot,
27835	// and scheduled-action.
27836	SourceType *string `type:"string"`
27837
27838	// The name of the modified Amazon Redshift event notification subscription.
27839	//
27840	// SubscriptionName is a required field
27841	SubscriptionName *string `type:"string" required:"true"`
27842}
27843
27844// String returns the string representation.
27845//
27846// API parameter values that are decorated as "sensitive" in the API will not
27847// be included in the string output. The member name will be present, but the
27848// value will be replaced with "sensitive".
27849func (s ModifyEventSubscriptionInput) String() string {
27850	return awsutil.Prettify(s)
27851}
27852
27853// GoString returns the string representation.
27854//
27855// API parameter values that are decorated as "sensitive" in the API will not
27856// be included in the string output. The member name will be present, but the
27857// value will be replaced with "sensitive".
27858func (s ModifyEventSubscriptionInput) GoString() string {
27859	return s.String()
27860}
27861
27862// Validate inspects the fields of the type to determine if they are valid.
27863func (s *ModifyEventSubscriptionInput) Validate() error {
27864	invalidParams := request.ErrInvalidParams{Context: "ModifyEventSubscriptionInput"}
27865	if s.SubscriptionName == nil {
27866		invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
27867	}
27868
27869	if invalidParams.Len() > 0 {
27870		return invalidParams
27871	}
27872	return nil
27873}
27874
27875// SetEnabled sets the Enabled field's value.
27876func (s *ModifyEventSubscriptionInput) SetEnabled(v bool) *ModifyEventSubscriptionInput {
27877	s.Enabled = &v
27878	return s
27879}
27880
27881// SetEventCategories sets the EventCategories field's value.
27882func (s *ModifyEventSubscriptionInput) SetEventCategories(v []*string) *ModifyEventSubscriptionInput {
27883	s.EventCategories = v
27884	return s
27885}
27886
27887// SetSeverity sets the Severity field's value.
27888func (s *ModifyEventSubscriptionInput) SetSeverity(v string) *ModifyEventSubscriptionInput {
27889	s.Severity = &v
27890	return s
27891}
27892
27893// SetSnsTopicArn sets the SnsTopicArn field's value.
27894func (s *ModifyEventSubscriptionInput) SetSnsTopicArn(v string) *ModifyEventSubscriptionInput {
27895	s.SnsTopicArn = &v
27896	return s
27897}
27898
27899// SetSourceIds sets the SourceIds field's value.
27900func (s *ModifyEventSubscriptionInput) SetSourceIds(v []*string) *ModifyEventSubscriptionInput {
27901	s.SourceIds = v
27902	return s
27903}
27904
27905// SetSourceType sets the SourceType field's value.
27906func (s *ModifyEventSubscriptionInput) SetSourceType(v string) *ModifyEventSubscriptionInput {
27907	s.SourceType = &v
27908	return s
27909}
27910
27911// SetSubscriptionName sets the SubscriptionName field's value.
27912func (s *ModifyEventSubscriptionInput) SetSubscriptionName(v string) *ModifyEventSubscriptionInput {
27913	s.SubscriptionName = &v
27914	return s
27915}
27916
27917type ModifyEventSubscriptionOutput struct {
27918	_ struct{} `type:"structure"`
27919
27920	// Describes event subscriptions.
27921	EventSubscription *EventSubscription `type:"structure"`
27922}
27923
27924// String returns the string representation.
27925//
27926// API parameter values that are decorated as "sensitive" in the API will not
27927// be included in the string output. The member name will be present, but the
27928// value will be replaced with "sensitive".
27929func (s ModifyEventSubscriptionOutput) String() string {
27930	return awsutil.Prettify(s)
27931}
27932
27933// GoString returns the string representation.
27934//
27935// API parameter values that are decorated as "sensitive" in the API will not
27936// be included in the string output. The member name will be present, but the
27937// value will be replaced with "sensitive".
27938func (s ModifyEventSubscriptionOutput) GoString() string {
27939	return s.String()
27940}
27941
27942// SetEventSubscription sets the EventSubscription field's value.
27943func (s *ModifyEventSubscriptionOutput) SetEventSubscription(v *EventSubscription) *ModifyEventSubscriptionOutput {
27944	s.EventSubscription = v
27945	return s
27946}
27947
27948type ModifyScheduledActionInput struct {
27949	_ struct{} `type:"structure"`
27950
27951	// A modified enable flag of the scheduled action. If true, the scheduled action
27952	// is active. If false, the scheduled action is disabled.
27953	Enable *bool `type:"boolean"`
27954
27955	// A modified end time of the scheduled action. For more information about this
27956	// parameter, see ScheduledAction.
27957	EndTime *time.Time `type:"timestamp"`
27958
27959	// A different IAM role to assume to run the target action. For more information
27960	// about this parameter, see ScheduledAction.
27961	IamRole *string `type:"string"`
27962
27963	// A modified schedule in either at( ) or cron( ) format. For more information
27964	// about this parameter, see ScheduledAction.
27965	Schedule *string `type:"string"`
27966
27967	// A modified description of the scheduled action.
27968	ScheduledActionDescription *string `type:"string"`
27969
27970	// The name of the scheduled action to modify.
27971	//
27972	// ScheduledActionName is a required field
27973	ScheduledActionName *string `type:"string" required:"true"`
27974
27975	// A modified start time of the scheduled action. For more information about
27976	// this parameter, see ScheduledAction.
27977	StartTime *time.Time `type:"timestamp"`
27978
27979	// A modified JSON format of the scheduled action. For more information about
27980	// this parameter, see ScheduledAction.
27981	TargetAction *ScheduledActionType `type:"structure"`
27982}
27983
27984// String returns the string representation.
27985//
27986// API parameter values that are decorated as "sensitive" in the API will not
27987// be included in the string output. The member name will be present, but the
27988// value will be replaced with "sensitive".
27989func (s ModifyScheduledActionInput) String() string {
27990	return awsutil.Prettify(s)
27991}
27992
27993// GoString returns the string representation.
27994//
27995// API parameter values that are decorated as "sensitive" in the API will not
27996// be included in the string output. The member name will be present, but the
27997// value will be replaced with "sensitive".
27998func (s ModifyScheduledActionInput) GoString() string {
27999	return s.String()
28000}
28001
28002// Validate inspects the fields of the type to determine if they are valid.
28003func (s *ModifyScheduledActionInput) Validate() error {
28004	invalidParams := request.ErrInvalidParams{Context: "ModifyScheduledActionInput"}
28005	if s.ScheduledActionName == nil {
28006		invalidParams.Add(request.NewErrParamRequired("ScheduledActionName"))
28007	}
28008	if s.TargetAction != nil {
28009		if err := s.TargetAction.Validate(); err != nil {
28010			invalidParams.AddNested("TargetAction", err.(request.ErrInvalidParams))
28011		}
28012	}
28013
28014	if invalidParams.Len() > 0 {
28015		return invalidParams
28016	}
28017	return nil
28018}
28019
28020// SetEnable sets the Enable field's value.
28021func (s *ModifyScheduledActionInput) SetEnable(v bool) *ModifyScheduledActionInput {
28022	s.Enable = &v
28023	return s
28024}
28025
28026// SetEndTime sets the EndTime field's value.
28027func (s *ModifyScheduledActionInput) SetEndTime(v time.Time) *ModifyScheduledActionInput {
28028	s.EndTime = &v
28029	return s
28030}
28031
28032// SetIamRole sets the IamRole field's value.
28033func (s *ModifyScheduledActionInput) SetIamRole(v string) *ModifyScheduledActionInput {
28034	s.IamRole = &v
28035	return s
28036}
28037
28038// SetSchedule sets the Schedule field's value.
28039func (s *ModifyScheduledActionInput) SetSchedule(v string) *ModifyScheduledActionInput {
28040	s.Schedule = &v
28041	return s
28042}
28043
28044// SetScheduledActionDescription sets the ScheduledActionDescription field's value.
28045func (s *ModifyScheduledActionInput) SetScheduledActionDescription(v string) *ModifyScheduledActionInput {
28046	s.ScheduledActionDescription = &v
28047	return s
28048}
28049
28050// SetScheduledActionName sets the ScheduledActionName field's value.
28051func (s *ModifyScheduledActionInput) SetScheduledActionName(v string) *ModifyScheduledActionInput {
28052	s.ScheduledActionName = &v
28053	return s
28054}
28055
28056// SetStartTime sets the StartTime field's value.
28057func (s *ModifyScheduledActionInput) SetStartTime(v time.Time) *ModifyScheduledActionInput {
28058	s.StartTime = &v
28059	return s
28060}
28061
28062// SetTargetAction sets the TargetAction field's value.
28063func (s *ModifyScheduledActionInput) SetTargetAction(v *ScheduledActionType) *ModifyScheduledActionInput {
28064	s.TargetAction = v
28065	return s
28066}
28067
28068// Describes a scheduled action. You can use a scheduled action to trigger some
28069// Amazon Redshift API operations on a schedule. For information about which
28070// API operations can be scheduled, see ScheduledActionType.
28071type ModifyScheduledActionOutput struct {
28072	_ struct{} `type:"structure"`
28073
28074	// The end time in UTC when the schedule is no longer active. After this time,
28075	// the scheduled action does not trigger.
28076	EndTime *time.Time `type:"timestamp"`
28077
28078	// The IAM role to assume to run the scheduled action. This IAM role must have
28079	// permission to run the Amazon Redshift API operation in the scheduled action.
28080	// This IAM role must allow the Amazon Redshift scheduler (Principal scheduler.redshift.amazonaws.com)
28081	// to assume permissions on your behalf. For more information about the IAM
28082	// role to use with the Amazon Redshift scheduler, see Using Identity-Based
28083	// Policies for Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html)
28084	// in the Amazon Redshift Cluster Management Guide.
28085	IamRole *string `type:"string"`
28086
28087	// List of times when the scheduled action will run.
28088	NextInvocations []*time.Time `locationNameList:"ScheduledActionTime" type:"list"`
28089
28090	// The schedule for a one-time (at format) or recurring (cron format) scheduled
28091	// action. Schedule invocations must be separated by at least one hour.
28092	//
28093	// Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)".
28094	//
28095	// Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week
28096	// Year)". For example, "cron(0 10 ? * MON *)". For more information, see Cron
28097	// Expressions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions)
28098	// in the Amazon CloudWatch Events User Guide.
28099	Schedule *string `type:"string"`
28100
28101	// The description of the scheduled action.
28102	ScheduledActionDescription *string `type:"string"`
28103
28104	// The name of the scheduled action.
28105	ScheduledActionName *string `type:"string"`
28106
28107	// The start time in UTC when the schedule is active. Before this time, the
28108	// scheduled action does not trigger.
28109	StartTime *time.Time `type:"timestamp"`
28110
28111	// The state of the scheduled action. For example, DISABLED.
28112	State *string `type:"string" enum:"ScheduledActionState"`
28113
28114	// A JSON format string of the Amazon Redshift API operation with input parameters.
28115	//
28116	// "{\"ResizeCluster\":{\"NodeType\":\"ds2.8xlarge\",\"ClusterIdentifier\":\"my-test-cluster\",\"NumberOfNodes\":3}}".
28117	TargetAction *ScheduledActionType `type:"structure"`
28118}
28119
28120// String returns the string representation.
28121//
28122// API parameter values that are decorated as "sensitive" in the API will not
28123// be included in the string output. The member name will be present, but the
28124// value will be replaced with "sensitive".
28125func (s ModifyScheduledActionOutput) String() string {
28126	return awsutil.Prettify(s)
28127}
28128
28129// GoString returns the string representation.
28130//
28131// API parameter values that are decorated as "sensitive" in the API will not
28132// be included in the string output. The member name will be present, but the
28133// value will be replaced with "sensitive".
28134func (s ModifyScheduledActionOutput) GoString() string {
28135	return s.String()
28136}
28137
28138// SetEndTime sets the EndTime field's value.
28139func (s *ModifyScheduledActionOutput) SetEndTime(v time.Time) *ModifyScheduledActionOutput {
28140	s.EndTime = &v
28141	return s
28142}
28143
28144// SetIamRole sets the IamRole field's value.
28145func (s *ModifyScheduledActionOutput) SetIamRole(v string) *ModifyScheduledActionOutput {
28146	s.IamRole = &v
28147	return s
28148}
28149
28150// SetNextInvocations sets the NextInvocations field's value.
28151func (s *ModifyScheduledActionOutput) SetNextInvocations(v []*time.Time) *ModifyScheduledActionOutput {
28152	s.NextInvocations = v
28153	return s
28154}
28155
28156// SetSchedule sets the Schedule field's value.
28157func (s *ModifyScheduledActionOutput) SetSchedule(v string) *ModifyScheduledActionOutput {
28158	s.Schedule = &v
28159	return s
28160}
28161
28162// SetScheduledActionDescription sets the ScheduledActionDescription field's value.
28163func (s *ModifyScheduledActionOutput) SetScheduledActionDescription(v string) *ModifyScheduledActionOutput {
28164	s.ScheduledActionDescription = &v
28165	return s
28166}
28167
28168// SetScheduledActionName sets the ScheduledActionName field's value.
28169func (s *ModifyScheduledActionOutput) SetScheduledActionName(v string) *ModifyScheduledActionOutput {
28170	s.ScheduledActionName = &v
28171	return s
28172}
28173
28174// SetStartTime sets the StartTime field's value.
28175func (s *ModifyScheduledActionOutput) SetStartTime(v time.Time) *ModifyScheduledActionOutput {
28176	s.StartTime = &v
28177	return s
28178}
28179
28180// SetState sets the State field's value.
28181func (s *ModifyScheduledActionOutput) SetState(v string) *ModifyScheduledActionOutput {
28182	s.State = &v
28183	return s
28184}
28185
28186// SetTargetAction sets the TargetAction field's value.
28187func (s *ModifyScheduledActionOutput) SetTargetAction(v *ScheduledActionType) *ModifyScheduledActionOutput {
28188	s.TargetAction = v
28189	return s
28190}
28191
28192type ModifySnapshotCopyRetentionPeriodInput struct {
28193	_ struct{} `type:"structure"`
28194
28195	// The unique identifier of the cluster for which you want to change the retention
28196	// period for either automated or manual snapshots that are copied to a destination
28197	// Amazon Web Services Region.
28198	//
28199	// Constraints: Must be the valid name of an existing cluster that has cross-region
28200	// snapshot copy enabled.
28201	//
28202	// ClusterIdentifier is a required field
28203	ClusterIdentifier *string `type:"string" required:"true"`
28204
28205	// Indicates whether to apply the snapshot retention period to newly copied
28206	// manual snapshots instead of automated snapshots.
28207	Manual *bool `type:"boolean"`
28208
28209	// The number of days to retain automated snapshots in the destination Amazon
28210	// Web Services Region after they are copied from the source Amazon Web Services
28211	// Region.
28212	//
28213	// By default, this only changes the retention period of copied automated snapshots.
28214	//
28215	// If you decrease the retention period for automated snapshots that are copied
28216	// to a destination Amazon Web Services Region, Amazon Redshift deletes any
28217	// existing automated snapshots that were copied to the destination Amazon Web
28218	// Services Region and that fall outside of the new retention period.
28219	//
28220	// Constraints: Must be at least 1 and no more than 35 for automated snapshots.
28221	//
28222	// If you specify the manual option, only newly copied manual snapshots will
28223	// have the new retention period.
28224	//
28225	// If you specify the value of -1 newly copied manual snapshots are retained
28226	// indefinitely.
28227	//
28228	// Constraints: The number of days must be either -1 or an integer between 1
28229	// and 3,653 for manual snapshots.
28230	//
28231	// RetentionPeriod is a required field
28232	RetentionPeriod *int64 `type:"integer" required:"true"`
28233}
28234
28235// String returns the string representation.
28236//
28237// API parameter values that are decorated as "sensitive" in the API will not
28238// be included in the string output. The member name will be present, but the
28239// value will be replaced with "sensitive".
28240func (s ModifySnapshotCopyRetentionPeriodInput) String() string {
28241	return awsutil.Prettify(s)
28242}
28243
28244// GoString returns the string representation.
28245//
28246// API parameter values that are decorated as "sensitive" in the API will not
28247// be included in the string output. The member name will be present, but the
28248// value will be replaced with "sensitive".
28249func (s ModifySnapshotCopyRetentionPeriodInput) GoString() string {
28250	return s.String()
28251}
28252
28253// Validate inspects the fields of the type to determine if they are valid.
28254func (s *ModifySnapshotCopyRetentionPeriodInput) Validate() error {
28255	invalidParams := request.ErrInvalidParams{Context: "ModifySnapshotCopyRetentionPeriodInput"}
28256	if s.ClusterIdentifier == nil {
28257		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
28258	}
28259	if s.RetentionPeriod == nil {
28260		invalidParams.Add(request.NewErrParamRequired("RetentionPeriod"))
28261	}
28262
28263	if invalidParams.Len() > 0 {
28264		return invalidParams
28265	}
28266	return nil
28267}
28268
28269// SetClusterIdentifier sets the ClusterIdentifier field's value.
28270func (s *ModifySnapshotCopyRetentionPeriodInput) SetClusterIdentifier(v string) *ModifySnapshotCopyRetentionPeriodInput {
28271	s.ClusterIdentifier = &v
28272	return s
28273}
28274
28275// SetManual sets the Manual field's value.
28276func (s *ModifySnapshotCopyRetentionPeriodInput) SetManual(v bool) *ModifySnapshotCopyRetentionPeriodInput {
28277	s.Manual = &v
28278	return s
28279}
28280
28281// SetRetentionPeriod sets the RetentionPeriod field's value.
28282func (s *ModifySnapshotCopyRetentionPeriodInput) SetRetentionPeriod(v int64) *ModifySnapshotCopyRetentionPeriodInput {
28283	s.RetentionPeriod = &v
28284	return s
28285}
28286
28287type ModifySnapshotCopyRetentionPeriodOutput struct {
28288	_ struct{} `type:"structure"`
28289
28290	// Describes a cluster.
28291	Cluster *Cluster `type:"structure"`
28292}
28293
28294// String returns the string representation.
28295//
28296// API parameter values that are decorated as "sensitive" in the API will not
28297// be included in the string output. The member name will be present, but the
28298// value will be replaced with "sensitive".
28299func (s ModifySnapshotCopyRetentionPeriodOutput) String() string {
28300	return awsutil.Prettify(s)
28301}
28302
28303// GoString returns the string representation.
28304//
28305// API parameter values that are decorated as "sensitive" in the API will not
28306// be included in the string output. The member name will be present, but the
28307// value will be replaced with "sensitive".
28308func (s ModifySnapshotCopyRetentionPeriodOutput) GoString() string {
28309	return s.String()
28310}
28311
28312// SetCluster sets the Cluster field's value.
28313func (s *ModifySnapshotCopyRetentionPeriodOutput) SetCluster(v *Cluster) *ModifySnapshotCopyRetentionPeriodOutput {
28314	s.Cluster = v
28315	return s
28316}
28317
28318type ModifySnapshotScheduleInput struct {
28319	_ struct{} `type:"structure"`
28320
28321	// An updated list of schedule definitions. A schedule definition is made up
28322	// of schedule expressions, for example, "cron(30 12 *)" or "rate(12 hours)".
28323	//
28324	// ScheduleDefinitions is a required field
28325	ScheduleDefinitions []*string `locationNameList:"ScheduleDefinition" type:"list" required:"true"`
28326
28327	// A unique alphanumeric identifier of the schedule to modify.
28328	//
28329	// ScheduleIdentifier is a required field
28330	ScheduleIdentifier *string `type:"string" required:"true"`
28331}
28332
28333// String returns the string representation.
28334//
28335// API parameter values that are decorated as "sensitive" in the API will not
28336// be included in the string output. The member name will be present, but the
28337// value will be replaced with "sensitive".
28338func (s ModifySnapshotScheduleInput) String() string {
28339	return awsutil.Prettify(s)
28340}
28341
28342// GoString returns the string representation.
28343//
28344// API parameter values that are decorated as "sensitive" in the API will not
28345// be included in the string output. The member name will be present, but the
28346// value will be replaced with "sensitive".
28347func (s ModifySnapshotScheduleInput) GoString() string {
28348	return s.String()
28349}
28350
28351// Validate inspects the fields of the type to determine if they are valid.
28352func (s *ModifySnapshotScheduleInput) Validate() error {
28353	invalidParams := request.ErrInvalidParams{Context: "ModifySnapshotScheduleInput"}
28354	if s.ScheduleDefinitions == nil {
28355		invalidParams.Add(request.NewErrParamRequired("ScheduleDefinitions"))
28356	}
28357	if s.ScheduleIdentifier == nil {
28358		invalidParams.Add(request.NewErrParamRequired("ScheduleIdentifier"))
28359	}
28360
28361	if invalidParams.Len() > 0 {
28362		return invalidParams
28363	}
28364	return nil
28365}
28366
28367// SetScheduleDefinitions sets the ScheduleDefinitions field's value.
28368func (s *ModifySnapshotScheduleInput) SetScheduleDefinitions(v []*string) *ModifySnapshotScheduleInput {
28369	s.ScheduleDefinitions = v
28370	return s
28371}
28372
28373// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
28374func (s *ModifySnapshotScheduleInput) SetScheduleIdentifier(v string) *ModifySnapshotScheduleInput {
28375	s.ScheduleIdentifier = &v
28376	return s
28377}
28378
28379// Describes a snapshot schedule. You can set a regular interval for creating
28380// snapshots of a cluster. You can also schedule snapshots for specific dates.
28381type ModifySnapshotScheduleOutput struct {
28382	_ struct{} `type:"structure"`
28383
28384	// The number of clusters associated with the schedule.
28385	AssociatedClusterCount *int64 `type:"integer"`
28386
28387	// A list of clusters associated with the schedule. A maximum of 100 clusters
28388	// is returned.
28389	AssociatedClusters []*ClusterAssociatedToSchedule `locationNameList:"ClusterAssociatedToSchedule" type:"list"`
28390
28391	NextInvocations []*time.Time `locationNameList:"SnapshotTime" type:"list"`
28392
28393	// A list of ScheduleDefinitions.
28394	ScheduleDefinitions []*string `locationNameList:"ScheduleDefinition" type:"list"`
28395
28396	// The description of the schedule.
28397	ScheduleDescription *string `type:"string"`
28398
28399	// A unique identifier for the schedule.
28400	ScheduleIdentifier *string `type:"string"`
28401
28402	// An optional set of tags describing the schedule.
28403	Tags []*Tag `locationNameList:"Tag" type:"list"`
28404}
28405
28406// String returns the string representation.
28407//
28408// API parameter values that are decorated as "sensitive" in the API will not
28409// be included in the string output. The member name will be present, but the
28410// value will be replaced with "sensitive".
28411func (s ModifySnapshotScheduleOutput) String() string {
28412	return awsutil.Prettify(s)
28413}
28414
28415// GoString returns the string representation.
28416//
28417// API parameter values that are decorated as "sensitive" in the API will not
28418// be included in the string output. The member name will be present, but the
28419// value will be replaced with "sensitive".
28420func (s ModifySnapshotScheduleOutput) GoString() string {
28421	return s.String()
28422}
28423
28424// SetAssociatedClusterCount sets the AssociatedClusterCount field's value.
28425func (s *ModifySnapshotScheduleOutput) SetAssociatedClusterCount(v int64) *ModifySnapshotScheduleOutput {
28426	s.AssociatedClusterCount = &v
28427	return s
28428}
28429
28430// SetAssociatedClusters sets the AssociatedClusters field's value.
28431func (s *ModifySnapshotScheduleOutput) SetAssociatedClusters(v []*ClusterAssociatedToSchedule) *ModifySnapshotScheduleOutput {
28432	s.AssociatedClusters = v
28433	return s
28434}
28435
28436// SetNextInvocations sets the NextInvocations field's value.
28437func (s *ModifySnapshotScheduleOutput) SetNextInvocations(v []*time.Time) *ModifySnapshotScheduleOutput {
28438	s.NextInvocations = v
28439	return s
28440}
28441
28442// SetScheduleDefinitions sets the ScheduleDefinitions field's value.
28443func (s *ModifySnapshotScheduleOutput) SetScheduleDefinitions(v []*string) *ModifySnapshotScheduleOutput {
28444	s.ScheduleDefinitions = v
28445	return s
28446}
28447
28448// SetScheduleDescription sets the ScheduleDescription field's value.
28449func (s *ModifySnapshotScheduleOutput) SetScheduleDescription(v string) *ModifySnapshotScheduleOutput {
28450	s.ScheduleDescription = &v
28451	return s
28452}
28453
28454// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
28455func (s *ModifySnapshotScheduleOutput) SetScheduleIdentifier(v string) *ModifySnapshotScheduleOutput {
28456	s.ScheduleIdentifier = &v
28457	return s
28458}
28459
28460// SetTags sets the Tags field's value.
28461func (s *ModifySnapshotScheduleOutput) SetTags(v []*Tag) *ModifySnapshotScheduleOutput {
28462	s.Tags = v
28463	return s
28464}
28465
28466type ModifyUsageLimitInput struct {
28467	_ struct{} `type:"structure"`
28468
28469	// The new limit amount. For more information about this parameter, see UsageLimit.
28470	Amount *int64 `type:"long"`
28471
28472	// The new action that Amazon Redshift takes when the limit is reached. For
28473	// more information about this parameter, see UsageLimit.
28474	BreachAction *string `type:"string" enum:"UsageLimitBreachAction"`
28475
28476	// The identifier of the usage limit to modify.
28477	//
28478	// UsageLimitId is a required field
28479	UsageLimitId *string `type:"string" required:"true"`
28480}
28481
28482// String returns the string representation.
28483//
28484// API parameter values that are decorated as "sensitive" in the API will not
28485// be included in the string output. The member name will be present, but the
28486// value will be replaced with "sensitive".
28487func (s ModifyUsageLimitInput) String() string {
28488	return awsutil.Prettify(s)
28489}
28490
28491// GoString returns the string representation.
28492//
28493// API parameter values that are decorated as "sensitive" in the API will not
28494// be included in the string output. The member name will be present, but the
28495// value will be replaced with "sensitive".
28496func (s ModifyUsageLimitInput) GoString() string {
28497	return s.String()
28498}
28499
28500// Validate inspects the fields of the type to determine if they are valid.
28501func (s *ModifyUsageLimitInput) Validate() error {
28502	invalidParams := request.ErrInvalidParams{Context: "ModifyUsageLimitInput"}
28503	if s.UsageLimitId == nil {
28504		invalidParams.Add(request.NewErrParamRequired("UsageLimitId"))
28505	}
28506
28507	if invalidParams.Len() > 0 {
28508		return invalidParams
28509	}
28510	return nil
28511}
28512
28513// SetAmount sets the Amount field's value.
28514func (s *ModifyUsageLimitInput) SetAmount(v int64) *ModifyUsageLimitInput {
28515	s.Amount = &v
28516	return s
28517}
28518
28519// SetBreachAction sets the BreachAction field's value.
28520func (s *ModifyUsageLimitInput) SetBreachAction(v string) *ModifyUsageLimitInput {
28521	s.BreachAction = &v
28522	return s
28523}
28524
28525// SetUsageLimitId sets the UsageLimitId field's value.
28526func (s *ModifyUsageLimitInput) SetUsageLimitId(v string) *ModifyUsageLimitInput {
28527	s.UsageLimitId = &v
28528	return s
28529}
28530
28531// Describes a usage limit object for a cluster.
28532type ModifyUsageLimitOutput struct {
28533	_ struct{} `type:"structure"`
28534
28535	// The limit amount. If time-based, this amount is in minutes. If data-based,
28536	// this amount is in terabytes (TB).
28537	Amount *int64 `type:"long"`
28538
28539	// The action that Amazon Redshift takes when the limit is reached. Possible
28540	// values are:
28541	//
28542	//    * log - To log an event in a system table. The default is log.
28543	//
28544	//    * emit-metric - To emit CloudWatch metrics.
28545	//
28546	//    * disable - To disable the feature until the next usage period begins.
28547	BreachAction *string `type:"string" enum:"UsageLimitBreachAction"`
28548
28549	// The identifier of the cluster with a usage limit.
28550	ClusterIdentifier *string `type:"string"`
28551
28552	// The Amazon Redshift feature to which the limit applies.
28553	FeatureType *string `type:"string" enum:"UsageLimitFeatureType"`
28554
28555	// The type of limit. Depending on the feature type, this can be based on a
28556	// time duration or data size.
28557	LimitType *string `type:"string" enum:"UsageLimitLimitType"`
28558
28559	// The time period that the amount applies to. A weekly period begins on Sunday.
28560	// The default is monthly.
28561	Period *string `type:"string" enum:"UsageLimitPeriod"`
28562
28563	// A list of tag instances.
28564	Tags []*Tag `locationNameList:"Tag" type:"list"`
28565
28566	// The identifier of the usage limit.
28567	UsageLimitId *string `type:"string"`
28568}
28569
28570// String returns the string representation.
28571//
28572// API parameter values that are decorated as "sensitive" in the API will not
28573// be included in the string output. The member name will be present, but the
28574// value will be replaced with "sensitive".
28575func (s ModifyUsageLimitOutput) String() string {
28576	return awsutil.Prettify(s)
28577}
28578
28579// GoString returns the string representation.
28580//
28581// API parameter values that are decorated as "sensitive" in the API will not
28582// be included in the string output. The member name will be present, but the
28583// value will be replaced with "sensitive".
28584func (s ModifyUsageLimitOutput) GoString() string {
28585	return s.String()
28586}
28587
28588// SetAmount sets the Amount field's value.
28589func (s *ModifyUsageLimitOutput) SetAmount(v int64) *ModifyUsageLimitOutput {
28590	s.Amount = &v
28591	return s
28592}
28593
28594// SetBreachAction sets the BreachAction field's value.
28595func (s *ModifyUsageLimitOutput) SetBreachAction(v string) *ModifyUsageLimitOutput {
28596	s.BreachAction = &v
28597	return s
28598}
28599
28600// SetClusterIdentifier sets the ClusterIdentifier field's value.
28601func (s *ModifyUsageLimitOutput) SetClusterIdentifier(v string) *ModifyUsageLimitOutput {
28602	s.ClusterIdentifier = &v
28603	return s
28604}
28605
28606// SetFeatureType sets the FeatureType field's value.
28607func (s *ModifyUsageLimitOutput) SetFeatureType(v string) *ModifyUsageLimitOutput {
28608	s.FeatureType = &v
28609	return s
28610}
28611
28612// SetLimitType sets the LimitType field's value.
28613func (s *ModifyUsageLimitOutput) SetLimitType(v string) *ModifyUsageLimitOutput {
28614	s.LimitType = &v
28615	return s
28616}
28617
28618// SetPeriod sets the Period field's value.
28619func (s *ModifyUsageLimitOutput) SetPeriod(v string) *ModifyUsageLimitOutput {
28620	s.Period = &v
28621	return s
28622}
28623
28624// SetTags sets the Tags field's value.
28625func (s *ModifyUsageLimitOutput) SetTags(v []*Tag) *ModifyUsageLimitOutput {
28626	s.Tags = v
28627	return s
28628}
28629
28630// SetUsageLimitId sets the UsageLimitId field's value.
28631func (s *ModifyUsageLimitOutput) SetUsageLimitId(v string) *ModifyUsageLimitOutput {
28632	s.UsageLimitId = &v
28633	return s
28634}
28635
28636// Describes a network interface.
28637type NetworkInterface struct {
28638	_ struct{} `type:"structure"`
28639
28640	// The Availability Zone.
28641	AvailabilityZone *string `type:"string"`
28642
28643	// The network interface identifier.
28644	NetworkInterfaceId *string `type:"string"`
28645
28646	// The IPv4 address of the network interface within the subnet.
28647	PrivateIpAddress *string `type:"string"`
28648
28649	// The subnet identifier.
28650	SubnetId *string `type:"string"`
28651}
28652
28653// String returns the string representation.
28654//
28655// API parameter values that are decorated as "sensitive" in the API will not
28656// be included in the string output. The member name will be present, but the
28657// value will be replaced with "sensitive".
28658func (s NetworkInterface) String() string {
28659	return awsutil.Prettify(s)
28660}
28661
28662// GoString returns the string representation.
28663//
28664// API parameter values that are decorated as "sensitive" in the API will not
28665// be included in the string output. The member name will be present, but the
28666// value will be replaced with "sensitive".
28667func (s NetworkInterface) GoString() string {
28668	return s.String()
28669}
28670
28671// SetAvailabilityZone sets the AvailabilityZone field's value.
28672func (s *NetworkInterface) SetAvailabilityZone(v string) *NetworkInterface {
28673	s.AvailabilityZone = &v
28674	return s
28675}
28676
28677// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
28678func (s *NetworkInterface) SetNetworkInterfaceId(v string) *NetworkInterface {
28679	s.NetworkInterfaceId = &v
28680	return s
28681}
28682
28683// SetPrivateIpAddress sets the PrivateIpAddress field's value.
28684func (s *NetworkInterface) SetPrivateIpAddress(v string) *NetworkInterface {
28685	s.PrivateIpAddress = &v
28686	return s
28687}
28688
28689// SetSubnetId sets the SubnetId field's value.
28690func (s *NetworkInterface) SetSubnetId(v string) *NetworkInterface {
28691	s.SubnetId = &v
28692	return s
28693}
28694
28695// A list of node configurations.
28696type NodeConfigurationOption struct {
28697	_ struct{} `type:"structure"`
28698
28699	// The estimated disk utilizaton percentage.
28700	EstimatedDiskUtilizationPercent *float64 `type:"double"`
28701
28702	// The category of the node configuration recommendation.
28703	Mode *string `type:"string" enum:"Mode"`
28704
28705	// The node type, such as, "ds2.8xlarge".
28706	NodeType *string `type:"string"`
28707
28708	// The number of nodes.
28709	NumberOfNodes *int64 `type:"integer"`
28710}
28711
28712// String returns the string representation.
28713//
28714// API parameter values that are decorated as "sensitive" in the API will not
28715// be included in the string output. The member name will be present, but the
28716// value will be replaced with "sensitive".
28717func (s NodeConfigurationOption) String() string {
28718	return awsutil.Prettify(s)
28719}
28720
28721// GoString returns the string representation.
28722//
28723// API parameter values that are decorated as "sensitive" in the API will not
28724// be included in the string output. The member name will be present, but the
28725// value will be replaced with "sensitive".
28726func (s NodeConfigurationOption) GoString() string {
28727	return s.String()
28728}
28729
28730// SetEstimatedDiskUtilizationPercent sets the EstimatedDiskUtilizationPercent field's value.
28731func (s *NodeConfigurationOption) SetEstimatedDiskUtilizationPercent(v float64) *NodeConfigurationOption {
28732	s.EstimatedDiskUtilizationPercent = &v
28733	return s
28734}
28735
28736// SetMode sets the Mode field's value.
28737func (s *NodeConfigurationOption) SetMode(v string) *NodeConfigurationOption {
28738	s.Mode = &v
28739	return s
28740}
28741
28742// SetNodeType sets the NodeType field's value.
28743func (s *NodeConfigurationOption) SetNodeType(v string) *NodeConfigurationOption {
28744	s.NodeType = &v
28745	return s
28746}
28747
28748// SetNumberOfNodes sets the NumberOfNodes field's value.
28749func (s *NodeConfigurationOption) SetNumberOfNodes(v int64) *NodeConfigurationOption {
28750	s.NumberOfNodes = &v
28751	return s
28752}
28753
28754// A set of elements to filter the returned node configurations.
28755type NodeConfigurationOptionsFilter struct {
28756	_ struct{} `type:"structure"`
28757
28758	// The name of the element to filter.
28759	Name *string `type:"string" enum:"NodeConfigurationOptionsFilterName"`
28760
28761	// The filter operator. If filter Name is NodeType only the 'in' operator is
28762	// supported. Provide one value to evaluate for 'eq', 'lt', 'le', 'gt', and
28763	// 'ge'. Provide two values to evaluate for 'between'. Provide a list of values
28764	// for 'in'.
28765	Operator *string `type:"string" enum:"OperatorType"`
28766
28767	// List of values. Compare Name using Operator to Values. If filter Name is
28768	// NumberOfNodes, then values can range from 0 to 200. If filter Name is EstimatedDiskUtilizationPercent,
28769	// then values can range from 0 to 100. For example, filter NumberOfNodes (name)
28770	// GT (operator) 3 (values).
28771	Values []*string `locationName:"Value" locationNameList:"item" type:"list"`
28772}
28773
28774// String returns the string representation.
28775//
28776// API parameter values that are decorated as "sensitive" in the API will not
28777// be included in the string output. The member name will be present, but the
28778// value will be replaced with "sensitive".
28779func (s NodeConfigurationOptionsFilter) String() string {
28780	return awsutil.Prettify(s)
28781}
28782
28783// GoString returns the string representation.
28784//
28785// API parameter values that are decorated as "sensitive" in the API will not
28786// be included in the string output. The member name will be present, but the
28787// value will be replaced with "sensitive".
28788func (s NodeConfigurationOptionsFilter) GoString() string {
28789	return s.String()
28790}
28791
28792// SetName sets the Name field's value.
28793func (s *NodeConfigurationOptionsFilter) SetName(v string) *NodeConfigurationOptionsFilter {
28794	s.Name = &v
28795	return s
28796}
28797
28798// SetOperator sets the Operator field's value.
28799func (s *NodeConfigurationOptionsFilter) SetOperator(v string) *NodeConfigurationOptionsFilter {
28800	s.Operator = &v
28801	return s
28802}
28803
28804// SetValues sets the Values field's value.
28805func (s *NodeConfigurationOptionsFilter) SetValues(v []*string) *NodeConfigurationOptionsFilter {
28806	s.Values = v
28807	return s
28808}
28809
28810// Describes an orderable cluster option.
28811type OrderableClusterOption struct {
28812	_ struct{} `type:"structure"`
28813
28814	// A list of availability zones for the orderable cluster.
28815	AvailabilityZones []*AvailabilityZone `locationNameList:"AvailabilityZone" type:"list"`
28816
28817	// The cluster type, for example multi-node.
28818	ClusterType *string `type:"string"`
28819
28820	// The version of the orderable cluster.
28821	ClusterVersion *string `type:"string"`
28822
28823	// The node type for the orderable cluster.
28824	NodeType *string `type:"string"`
28825}
28826
28827// String returns the string representation.
28828//
28829// API parameter values that are decorated as "sensitive" in the API will not
28830// be included in the string output. The member name will be present, but the
28831// value will be replaced with "sensitive".
28832func (s OrderableClusterOption) String() string {
28833	return awsutil.Prettify(s)
28834}
28835
28836// GoString returns the string representation.
28837//
28838// API parameter values that are decorated as "sensitive" in the API will not
28839// be included in the string output. The member name will be present, but the
28840// value will be replaced with "sensitive".
28841func (s OrderableClusterOption) GoString() string {
28842	return s.String()
28843}
28844
28845// SetAvailabilityZones sets the AvailabilityZones field's value.
28846func (s *OrderableClusterOption) SetAvailabilityZones(v []*AvailabilityZone) *OrderableClusterOption {
28847	s.AvailabilityZones = v
28848	return s
28849}
28850
28851// SetClusterType sets the ClusterType field's value.
28852func (s *OrderableClusterOption) SetClusterType(v string) *OrderableClusterOption {
28853	s.ClusterType = &v
28854	return s
28855}
28856
28857// SetClusterVersion sets the ClusterVersion field's value.
28858func (s *OrderableClusterOption) SetClusterVersion(v string) *OrderableClusterOption {
28859	s.ClusterVersion = &v
28860	return s
28861}
28862
28863// SetNodeType sets the NodeType field's value.
28864func (s *OrderableClusterOption) SetNodeType(v string) *OrderableClusterOption {
28865	s.NodeType = &v
28866	return s
28867}
28868
28869// Describes a parameter in a cluster parameter group.
28870type Parameter struct {
28871	_ struct{} `type:"structure"`
28872
28873	// The valid range of values for the parameter.
28874	AllowedValues *string `type:"string"`
28875
28876	// Specifies how to apply the WLM configuration parameter. Some properties can
28877	// be applied dynamically, while other properties require that any associated
28878	// clusters be rebooted for the configuration changes to be applied. For more
28879	// information about parameters and parameter groups, go to Amazon Redshift
28880	// Parameter Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
28881	// in the Amazon Redshift Cluster Management Guide.
28882	ApplyType *string `type:"string" enum:"ParameterApplyType"`
28883
28884	// The data type of the parameter.
28885	DataType *string `type:"string"`
28886
28887	// A description of the parameter.
28888	Description *string `type:"string"`
28889
28890	// If true, the parameter can be modified. Some parameters have security or
28891	// operational implications that prevent them from being changed.
28892	IsModifiable *bool `type:"boolean"`
28893
28894	// The earliest engine version to which the parameter can apply.
28895	MinimumEngineVersion *string `type:"string"`
28896
28897	// The name of the parameter.
28898	ParameterName *string `type:"string"`
28899
28900	// The value of the parameter. If ParameterName is wlm_json_configuration, then
28901	// the maximum size of ParameterValue is 8000 characters.
28902	ParameterValue *string `type:"string"`
28903
28904	// The source of the parameter value, such as "engine-default" or "user".
28905	Source *string `type:"string"`
28906}
28907
28908// String returns the string representation.
28909//
28910// API parameter values that are decorated as "sensitive" in the API will not
28911// be included in the string output. The member name will be present, but the
28912// value will be replaced with "sensitive".
28913func (s Parameter) String() string {
28914	return awsutil.Prettify(s)
28915}
28916
28917// GoString returns the string representation.
28918//
28919// API parameter values that are decorated as "sensitive" in the API will not
28920// be included in the string output. The member name will be present, but the
28921// value will be replaced with "sensitive".
28922func (s Parameter) GoString() string {
28923	return s.String()
28924}
28925
28926// SetAllowedValues sets the AllowedValues field's value.
28927func (s *Parameter) SetAllowedValues(v string) *Parameter {
28928	s.AllowedValues = &v
28929	return s
28930}
28931
28932// SetApplyType sets the ApplyType field's value.
28933func (s *Parameter) SetApplyType(v string) *Parameter {
28934	s.ApplyType = &v
28935	return s
28936}
28937
28938// SetDataType sets the DataType field's value.
28939func (s *Parameter) SetDataType(v string) *Parameter {
28940	s.DataType = &v
28941	return s
28942}
28943
28944// SetDescription sets the Description field's value.
28945func (s *Parameter) SetDescription(v string) *Parameter {
28946	s.Description = &v
28947	return s
28948}
28949
28950// SetIsModifiable sets the IsModifiable field's value.
28951func (s *Parameter) SetIsModifiable(v bool) *Parameter {
28952	s.IsModifiable = &v
28953	return s
28954}
28955
28956// SetMinimumEngineVersion sets the MinimumEngineVersion field's value.
28957func (s *Parameter) SetMinimumEngineVersion(v string) *Parameter {
28958	s.MinimumEngineVersion = &v
28959	return s
28960}
28961
28962// SetParameterName sets the ParameterName field's value.
28963func (s *Parameter) SetParameterName(v string) *Parameter {
28964	s.ParameterName = &v
28965	return s
28966}
28967
28968// SetParameterValue sets the ParameterValue field's value.
28969func (s *Parameter) SetParameterValue(v string) *Parameter {
28970	s.ParameterValue = &v
28971	return s
28972}
28973
28974// SetSource sets the Source field's value.
28975func (s *Parameter) SetSource(v string) *Parameter {
28976	s.Source = &v
28977	return s
28978}
28979
28980// Describes a partner integration.
28981type PartnerIntegrationInfo struct {
28982	_ struct{} `type:"structure"`
28983
28984	// The date (UTC) that the partner integration was created.
28985	CreatedAt *time.Time `type:"timestamp"`
28986
28987	// The name of the database that receives data from a partner.
28988	DatabaseName *string `type:"string"`
28989
28990	// The name of the partner.
28991	PartnerName *string `type:"string"`
28992
28993	// The partner integration status.
28994	Status *string `type:"string" enum:"PartnerIntegrationStatus"`
28995
28996	// The status message provided by the partner.
28997	StatusMessage *string `type:"string"`
28998
28999	// The date (UTC) that the partner integration status was last updated by the
29000	// partner.
29001	UpdatedAt *time.Time `type:"timestamp"`
29002}
29003
29004// String returns the string representation.
29005//
29006// API parameter values that are decorated as "sensitive" in the API will not
29007// be included in the string output. The member name will be present, but the
29008// value will be replaced with "sensitive".
29009func (s PartnerIntegrationInfo) String() string {
29010	return awsutil.Prettify(s)
29011}
29012
29013// GoString returns the string representation.
29014//
29015// API parameter values that are decorated as "sensitive" in the API will not
29016// be included in the string output. The member name will be present, but the
29017// value will be replaced with "sensitive".
29018func (s PartnerIntegrationInfo) GoString() string {
29019	return s.String()
29020}
29021
29022// SetCreatedAt sets the CreatedAt field's value.
29023func (s *PartnerIntegrationInfo) SetCreatedAt(v time.Time) *PartnerIntegrationInfo {
29024	s.CreatedAt = &v
29025	return s
29026}
29027
29028// SetDatabaseName sets the DatabaseName field's value.
29029func (s *PartnerIntegrationInfo) SetDatabaseName(v string) *PartnerIntegrationInfo {
29030	s.DatabaseName = &v
29031	return s
29032}
29033
29034// SetPartnerName sets the PartnerName field's value.
29035func (s *PartnerIntegrationInfo) SetPartnerName(v string) *PartnerIntegrationInfo {
29036	s.PartnerName = &v
29037	return s
29038}
29039
29040// SetStatus sets the Status field's value.
29041func (s *PartnerIntegrationInfo) SetStatus(v string) *PartnerIntegrationInfo {
29042	s.Status = &v
29043	return s
29044}
29045
29046// SetStatusMessage sets the StatusMessage field's value.
29047func (s *PartnerIntegrationInfo) SetStatusMessage(v string) *PartnerIntegrationInfo {
29048	s.StatusMessage = &v
29049	return s
29050}
29051
29052// SetUpdatedAt sets the UpdatedAt field's value.
29053func (s *PartnerIntegrationInfo) SetUpdatedAt(v time.Time) *PartnerIntegrationInfo {
29054	s.UpdatedAt = &v
29055	return s
29056}
29057
29058// Describes a pause cluster operation. For example, a scheduled action to run
29059// the PauseCluster API operation.
29060type PauseClusterInput struct {
29061	_ struct{} `type:"structure"`
29062
29063	// The identifier of the cluster to be paused.
29064	//
29065	// ClusterIdentifier is a required field
29066	ClusterIdentifier *string `type:"string" required:"true"`
29067}
29068
29069// String returns the string representation.
29070//
29071// API parameter values that are decorated as "sensitive" in the API will not
29072// be included in the string output. The member name will be present, but the
29073// value will be replaced with "sensitive".
29074func (s PauseClusterInput) String() string {
29075	return awsutil.Prettify(s)
29076}
29077
29078// GoString returns the string representation.
29079//
29080// API parameter values that are decorated as "sensitive" in the API will not
29081// be included in the string output. The member name will be present, but the
29082// value will be replaced with "sensitive".
29083func (s PauseClusterInput) GoString() string {
29084	return s.String()
29085}
29086
29087// Validate inspects the fields of the type to determine if they are valid.
29088func (s *PauseClusterInput) Validate() error {
29089	invalidParams := request.ErrInvalidParams{Context: "PauseClusterInput"}
29090	if s.ClusterIdentifier == nil {
29091		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
29092	}
29093
29094	if invalidParams.Len() > 0 {
29095		return invalidParams
29096	}
29097	return nil
29098}
29099
29100// SetClusterIdentifier sets the ClusterIdentifier field's value.
29101func (s *PauseClusterInput) SetClusterIdentifier(v string) *PauseClusterInput {
29102	s.ClusterIdentifier = &v
29103	return s
29104}
29105
29106// Describes a pause cluster operation. For example, a scheduled action to run
29107// the PauseCluster API operation.
29108type PauseClusterMessage struct {
29109	_ struct{} `type:"structure"`
29110
29111	// The identifier of the cluster to be paused.
29112	//
29113	// ClusterIdentifier is a required field
29114	ClusterIdentifier *string `type:"string" required:"true"`
29115}
29116
29117// String returns the string representation.
29118//
29119// API parameter values that are decorated as "sensitive" in the API will not
29120// be included in the string output. The member name will be present, but the
29121// value will be replaced with "sensitive".
29122func (s PauseClusterMessage) String() string {
29123	return awsutil.Prettify(s)
29124}
29125
29126// GoString returns the string representation.
29127//
29128// API parameter values that are decorated as "sensitive" in the API will not
29129// be included in the string output. The member name will be present, but the
29130// value will be replaced with "sensitive".
29131func (s PauseClusterMessage) GoString() string {
29132	return s.String()
29133}
29134
29135// Validate inspects the fields of the type to determine if they are valid.
29136func (s *PauseClusterMessage) Validate() error {
29137	invalidParams := request.ErrInvalidParams{Context: "PauseClusterMessage"}
29138	if s.ClusterIdentifier == nil {
29139		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
29140	}
29141
29142	if invalidParams.Len() > 0 {
29143		return invalidParams
29144	}
29145	return nil
29146}
29147
29148// SetClusterIdentifier sets the ClusterIdentifier field's value.
29149func (s *PauseClusterMessage) SetClusterIdentifier(v string) *PauseClusterMessage {
29150	s.ClusterIdentifier = &v
29151	return s
29152}
29153
29154type PauseClusterOutput struct {
29155	_ struct{} `type:"structure"`
29156
29157	// Describes a cluster.
29158	Cluster *Cluster `type:"structure"`
29159}
29160
29161// String returns the string representation.
29162//
29163// API parameter values that are decorated as "sensitive" in the API will not
29164// be included in the string output. The member name will be present, but the
29165// value will be replaced with "sensitive".
29166func (s PauseClusterOutput) String() string {
29167	return awsutil.Prettify(s)
29168}
29169
29170// GoString returns the string representation.
29171//
29172// API parameter values that are decorated as "sensitive" in the API will not
29173// be included in the string output. The member name will be present, but the
29174// value will be replaced with "sensitive".
29175func (s PauseClusterOutput) GoString() string {
29176	return s.String()
29177}
29178
29179// SetCluster sets the Cluster field's value.
29180func (s *PauseClusterOutput) SetCluster(v *Cluster) *PauseClusterOutput {
29181	s.Cluster = v
29182	return s
29183}
29184
29185// Describes cluster attributes that are in a pending state. A change to one
29186// or more the attributes was requested and is in progress or will be applied.
29187type PendingModifiedValues struct {
29188	_ struct{} `type:"structure"`
29189
29190	// The pending or in-progress change of the automated snapshot retention period.
29191	AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
29192
29193	// The pending or in-progress change of the new identifier for the cluster.
29194	ClusterIdentifier *string `type:"string"`
29195
29196	// The pending or in-progress change of the cluster type.
29197	ClusterType *string `type:"string"`
29198
29199	// The pending or in-progress change of the service version.
29200	ClusterVersion *string `type:"string"`
29201
29202	// The encryption type for a cluster. Possible values are: KMS and None.
29203	EncryptionType *string `type:"string"`
29204
29205	// An option that specifies whether to create the cluster with enhanced VPC
29206	// routing enabled. To create a cluster that uses enhanced VPC routing, the
29207	// cluster must be in a VPC. For more information, see Enhanced VPC Routing
29208	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
29209	// in the Amazon Redshift Cluster Management Guide.
29210	//
29211	// If this option is true, enhanced VPC routing is enabled.
29212	//
29213	// Default: false
29214	EnhancedVpcRouting *bool `type:"boolean"`
29215
29216	// The name of the maintenance track that the cluster will change to during
29217	// the next maintenance window.
29218	MaintenanceTrackName *string `type:"string"`
29219
29220	// The pending or in-progress change of the admin user password for the cluster.
29221	MasterUserPassword *string `type:"string"`
29222
29223	// The pending or in-progress change of the cluster's node type.
29224	NodeType *string `type:"string"`
29225
29226	// The pending or in-progress change of the number of nodes in the cluster.
29227	NumberOfNodes *int64 `type:"integer"`
29228
29229	// The pending or in-progress change of the ability to connect to the cluster
29230	// from the public network.
29231	PubliclyAccessible *bool `type:"boolean"`
29232}
29233
29234// String returns the string representation.
29235//
29236// API parameter values that are decorated as "sensitive" in the API will not
29237// be included in the string output. The member name will be present, but the
29238// value will be replaced with "sensitive".
29239func (s PendingModifiedValues) String() string {
29240	return awsutil.Prettify(s)
29241}
29242
29243// GoString returns the string representation.
29244//
29245// API parameter values that are decorated as "sensitive" in the API will not
29246// be included in the string output. The member name will be present, but the
29247// value will be replaced with "sensitive".
29248func (s PendingModifiedValues) GoString() string {
29249	return s.String()
29250}
29251
29252// SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
29253func (s *PendingModifiedValues) SetAutomatedSnapshotRetentionPeriod(v int64) *PendingModifiedValues {
29254	s.AutomatedSnapshotRetentionPeriod = &v
29255	return s
29256}
29257
29258// SetClusterIdentifier sets the ClusterIdentifier field's value.
29259func (s *PendingModifiedValues) SetClusterIdentifier(v string) *PendingModifiedValues {
29260	s.ClusterIdentifier = &v
29261	return s
29262}
29263
29264// SetClusterType sets the ClusterType field's value.
29265func (s *PendingModifiedValues) SetClusterType(v string) *PendingModifiedValues {
29266	s.ClusterType = &v
29267	return s
29268}
29269
29270// SetClusterVersion sets the ClusterVersion field's value.
29271func (s *PendingModifiedValues) SetClusterVersion(v string) *PendingModifiedValues {
29272	s.ClusterVersion = &v
29273	return s
29274}
29275
29276// SetEncryptionType sets the EncryptionType field's value.
29277func (s *PendingModifiedValues) SetEncryptionType(v string) *PendingModifiedValues {
29278	s.EncryptionType = &v
29279	return s
29280}
29281
29282// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
29283func (s *PendingModifiedValues) SetEnhancedVpcRouting(v bool) *PendingModifiedValues {
29284	s.EnhancedVpcRouting = &v
29285	return s
29286}
29287
29288// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
29289func (s *PendingModifiedValues) SetMaintenanceTrackName(v string) *PendingModifiedValues {
29290	s.MaintenanceTrackName = &v
29291	return s
29292}
29293
29294// SetMasterUserPassword sets the MasterUserPassword field's value.
29295func (s *PendingModifiedValues) SetMasterUserPassword(v string) *PendingModifiedValues {
29296	s.MasterUserPassword = &v
29297	return s
29298}
29299
29300// SetNodeType sets the NodeType field's value.
29301func (s *PendingModifiedValues) SetNodeType(v string) *PendingModifiedValues {
29302	s.NodeType = &v
29303	return s
29304}
29305
29306// SetNumberOfNodes sets the NumberOfNodes field's value.
29307func (s *PendingModifiedValues) SetNumberOfNodes(v int64) *PendingModifiedValues {
29308	s.NumberOfNodes = &v
29309	return s
29310}
29311
29312// SetPubliclyAccessible sets the PubliclyAccessible field's value.
29313func (s *PendingModifiedValues) SetPubliclyAccessible(v bool) *PendingModifiedValues {
29314	s.PubliclyAccessible = &v
29315	return s
29316}
29317
29318type PurchaseReservedNodeOfferingInput struct {
29319	_ struct{} `type:"structure"`
29320
29321	// The number of reserved nodes that you want to purchase.
29322	//
29323	// Default: 1
29324	NodeCount *int64 `type:"integer"`
29325
29326	// The unique identifier of the reserved node offering you want to purchase.
29327	//
29328	// ReservedNodeOfferingId is a required field
29329	ReservedNodeOfferingId *string `type:"string" required:"true"`
29330}
29331
29332// String returns the string representation.
29333//
29334// API parameter values that are decorated as "sensitive" in the API will not
29335// be included in the string output. The member name will be present, but the
29336// value will be replaced with "sensitive".
29337func (s PurchaseReservedNodeOfferingInput) String() string {
29338	return awsutil.Prettify(s)
29339}
29340
29341// GoString returns the string representation.
29342//
29343// API parameter values that are decorated as "sensitive" in the API will not
29344// be included in the string output. The member name will be present, but the
29345// value will be replaced with "sensitive".
29346func (s PurchaseReservedNodeOfferingInput) GoString() string {
29347	return s.String()
29348}
29349
29350// Validate inspects the fields of the type to determine if they are valid.
29351func (s *PurchaseReservedNodeOfferingInput) Validate() error {
29352	invalidParams := request.ErrInvalidParams{Context: "PurchaseReservedNodeOfferingInput"}
29353	if s.ReservedNodeOfferingId == nil {
29354		invalidParams.Add(request.NewErrParamRequired("ReservedNodeOfferingId"))
29355	}
29356
29357	if invalidParams.Len() > 0 {
29358		return invalidParams
29359	}
29360	return nil
29361}
29362
29363// SetNodeCount sets the NodeCount field's value.
29364func (s *PurchaseReservedNodeOfferingInput) SetNodeCount(v int64) *PurchaseReservedNodeOfferingInput {
29365	s.NodeCount = &v
29366	return s
29367}
29368
29369// SetReservedNodeOfferingId sets the ReservedNodeOfferingId field's value.
29370func (s *PurchaseReservedNodeOfferingInput) SetReservedNodeOfferingId(v string) *PurchaseReservedNodeOfferingInput {
29371	s.ReservedNodeOfferingId = &v
29372	return s
29373}
29374
29375type PurchaseReservedNodeOfferingOutput struct {
29376	_ struct{} `type:"structure"`
29377
29378	// Describes a reserved node. You can call the DescribeReservedNodeOfferings
29379	// API to obtain the available reserved node offerings.
29380	ReservedNode *ReservedNode `type:"structure"`
29381}
29382
29383// String returns the string representation.
29384//
29385// API parameter values that are decorated as "sensitive" in the API will not
29386// be included in the string output. The member name will be present, but the
29387// value will be replaced with "sensitive".
29388func (s PurchaseReservedNodeOfferingOutput) String() string {
29389	return awsutil.Prettify(s)
29390}
29391
29392// GoString returns the string representation.
29393//
29394// API parameter values that are decorated as "sensitive" in the API will not
29395// be included in the string output. The member name will be present, but the
29396// value will be replaced with "sensitive".
29397func (s PurchaseReservedNodeOfferingOutput) GoString() string {
29398	return s.String()
29399}
29400
29401// SetReservedNode sets the ReservedNode field's value.
29402func (s *PurchaseReservedNodeOfferingOutput) SetReservedNode(v *ReservedNode) *PurchaseReservedNodeOfferingOutput {
29403	s.ReservedNode = v
29404	return s
29405}
29406
29407type RebootClusterInput struct {
29408	_ struct{} `type:"structure"`
29409
29410	// The cluster identifier.
29411	//
29412	// ClusterIdentifier is a required field
29413	ClusterIdentifier *string `type:"string" required:"true"`
29414}
29415
29416// String returns the string representation.
29417//
29418// API parameter values that are decorated as "sensitive" in the API will not
29419// be included in the string output. The member name will be present, but the
29420// value will be replaced with "sensitive".
29421func (s RebootClusterInput) String() string {
29422	return awsutil.Prettify(s)
29423}
29424
29425// GoString returns the string representation.
29426//
29427// API parameter values that are decorated as "sensitive" in the API will not
29428// be included in the string output. The member name will be present, but the
29429// value will be replaced with "sensitive".
29430func (s RebootClusterInput) GoString() string {
29431	return s.String()
29432}
29433
29434// Validate inspects the fields of the type to determine if they are valid.
29435func (s *RebootClusterInput) Validate() error {
29436	invalidParams := request.ErrInvalidParams{Context: "RebootClusterInput"}
29437	if s.ClusterIdentifier == nil {
29438		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
29439	}
29440
29441	if invalidParams.Len() > 0 {
29442		return invalidParams
29443	}
29444	return nil
29445}
29446
29447// SetClusterIdentifier sets the ClusterIdentifier field's value.
29448func (s *RebootClusterInput) SetClusterIdentifier(v string) *RebootClusterInput {
29449	s.ClusterIdentifier = &v
29450	return s
29451}
29452
29453type RebootClusterOutput struct {
29454	_ struct{} `type:"structure"`
29455
29456	// Describes a cluster.
29457	Cluster *Cluster `type:"structure"`
29458}
29459
29460// String returns the string representation.
29461//
29462// API parameter values that are decorated as "sensitive" in the API will not
29463// be included in the string output. The member name will be present, but the
29464// value will be replaced with "sensitive".
29465func (s RebootClusterOutput) String() string {
29466	return awsutil.Prettify(s)
29467}
29468
29469// GoString returns the string representation.
29470//
29471// API parameter values that are decorated as "sensitive" in the API will not
29472// be included in the string output. The member name will be present, but the
29473// value will be replaced with "sensitive".
29474func (s RebootClusterOutput) GoString() string {
29475	return s.String()
29476}
29477
29478// SetCluster sets the Cluster field's value.
29479func (s *RebootClusterOutput) SetCluster(v *Cluster) *RebootClusterOutput {
29480	s.Cluster = v
29481	return s
29482}
29483
29484// Describes a recurring charge.
29485type RecurringCharge struct {
29486	_ struct{} `type:"structure"`
29487
29488	// The amount charged per the period of time specified by the recurring charge
29489	// frequency.
29490	RecurringChargeAmount *float64 `type:"double"`
29491
29492	// The frequency at which the recurring charge amount is applied.
29493	RecurringChargeFrequency *string `type:"string"`
29494}
29495
29496// String returns the string representation.
29497//
29498// API parameter values that are decorated as "sensitive" in the API will not
29499// be included in the string output. The member name will be present, but the
29500// value will be replaced with "sensitive".
29501func (s RecurringCharge) String() string {
29502	return awsutil.Prettify(s)
29503}
29504
29505// GoString returns the string representation.
29506//
29507// API parameter values that are decorated as "sensitive" in the API will not
29508// be included in the string output. The member name will be present, but the
29509// value will be replaced with "sensitive".
29510func (s RecurringCharge) GoString() string {
29511	return s.String()
29512}
29513
29514// SetRecurringChargeAmount sets the RecurringChargeAmount field's value.
29515func (s *RecurringCharge) SetRecurringChargeAmount(v float64) *RecurringCharge {
29516	s.RecurringChargeAmount = &v
29517	return s
29518}
29519
29520// SetRecurringChargeFrequency sets the RecurringChargeFrequency field's value.
29521func (s *RecurringCharge) SetRecurringChargeFrequency(v string) *RecurringCharge {
29522	s.RecurringChargeFrequency = &v
29523	return s
29524}
29525
29526type RejectDataShareInput struct {
29527	_ struct{} `type:"structure"`
29528
29529	// The Amazon Resource Name (ARN) of the datashare to reject.
29530	//
29531	// DataShareArn is a required field
29532	DataShareArn *string `type:"string" required:"true"`
29533}
29534
29535// String returns the string representation.
29536//
29537// API parameter values that are decorated as "sensitive" in the API will not
29538// be included in the string output. The member name will be present, but the
29539// value will be replaced with "sensitive".
29540func (s RejectDataShareInput) String() string {
29541	return awsutil.Prettify(s)
29542}
29543
29544// GoString returns the string representation.
29545//
29546// API parameter values that are decorated as "sensitive" in the API will not
29547// be included in the string output. The member name will be present, but the
29548// value will be replaced with "sensitive".
29549func (s RejectDataShareInput) GoString() string {
29550	return s.String()
29551}
29552
29553// Validate inspects the fields of the type to determine if they are valid.
29554func (s *RejectDataShareInput) Validate() error {
29555	invalidParams := request.ErrInvalidParams{Context: "RejectDataShareInput"}
29556	if s.DataShareArn == nil {
29557		invalidParams.Add(request.NewErrParamRequired("DataShareArn"))
29558	}
29559
29560	if invalidParams.Len() > 0 {
29561		return invalidParams
29562	}
29563	return nil
29564}
29565
29566// SetDataShareArn sets the DataShareArn field's value.
29567func (s *RejectDataShareInput) SetDataShareArn(v string) *RejectDataShareInput {
29568	s.DataShareArn = &v
29569	return s
29570}
29571
29572type RejectDataShareOutput struct {
29573	_ struct{} `type:"structure"`
29574
29575	// A value that specifies whether the datashare can be shared to a publicly
29576	// accessible cluster.
29577	AllowPubliclyAccessibleConsumers *bool `type:"boolean"`
29578
29579	// An Amazon Resource Name (ARN) that references the datashare that is owned
29580	// by a specific namespace of the producer cluster. A datashare ARN is in the
29581	// arn:aws:redshift:{region}:{account-id}:{datashare}:{namespace-guid}/{datashare-name}
29582	// format.
29583	DataShareArn *string `type:"string"`
29584
29585	// A value that specifies when the datashare has an association between a producer
29586	// and data consumers.
29587	DataShareAssociations []*DataShareAssociation `type:"list"`
29588
29589	// The Amazon Resource Name (ARN) of the producer.
29590	ProducerArn *string `type:"string"`
29591}
29592
29593// String returns the string representation.
29594//
29595// API parameter values that are decorated as "sensitive" in the API will not
29596// be included in the string output. The member name will be present, but the
29597// value will be replaced with "sensitive".
29598func (s RejectDataShareOutput) String() string {
29599	return awsutil.Prettify(s)
29600}
29601
29602// GoString returns the string representation.
29603//
29604// API parameter values that are decorated as "sensitive" in the API will not
29605// be included in the string output. The member name will be present, but the
29606// value will be replaced with "sensitive".
29607func (s RejectDataShareOutput) GoString() string {
29608	return s.String()
29609}
29610
29611// SetAllowPubliclyAccessibleConsumers sets the AllowPubliclyAccessibleConsumers field's value.
29612func (s *RejectDataShareOutput) SetAllowPubliclyAccessibleConsumers(v bool) *RejectDataShareOutput {
29613	s.AllowPubliclyAccessibleConsumers = &v
29614	return s
29615}
29616
29617// SetDataShareArn sets the DataShareArn field's value.
29618func (s *RejectDataShareOutput) SetDataShareArn(v string) *RejectDataShareOutput {
29619	s.DataShareArn = &v
29620	return s
29621}
29622
29623// SetDataShareAssociations sets the DataShareAssociations field's value.
29624func (s *RejectDataShareOutput) SetDataShareAssociations(v []*DataShareAssociation) *RejectDataShareOutput {
29625	s.DataShareAssociations = v
29626	return s
29627}
29628
29629// SetProducerArn sets the ProducerArn field's value.
29630func (s *RejectDataShareOutput) SetProducerArn(v string) *RejectDataShareOutput {
29631	s.ProducerArn = &v
29632	return s
29633}
29634
29635// Describes a reserved node. You can call the DescribeReservedNodeOfferings
29636// API to obtain the available reserved node offerings.
29637type ReservedNode struct {
29638	_ struct{} `type:"structure"`
29639
29640	// The currency code for the reserved cluster.
29641	CurrencyCode *string `type:"string"`
29642
29643	// The duration of the node reservation in seconds.
29644	Duration *int64 `type:"integer"`
29645
29646	// The fixed cost Amazon Redshift charges you for this reserved node.
29647	FixedPrice *float64 `type:"double"`
29648
29649	// The number of reserved compute nodes.
29650	NodeCount *int64 `type:"integer"`
29651
29652	// The node type of the reserved node.
29653	NodeType *string `type:"string"`
29654
29655	// The anticipated utilization of the reserved node, as defined in the reserved
29656	// node offering.
29657	OfferingType *string `type:"string"`
29658
29659	// The recurring charges for the reserved node.
29660	RecurringCharges []*RecurringCharge `locationNameList:"RecurringCharge" type:"list"`
29661
29662	// The unique identifier for the reservation.
29663	ReservedNodeId *string `type:"string"`
29664
29665	// The identifier for the reserved node offering.
29666	ReservedNodeOfferingId *string `type:"string"`
29667
29668	ReservedNodeOfferingType *string `type:"string" enum:"ReservedNodeOfferingType"`
29669
29670	// The time the reservation started. You purchase a reserved node offering for
29671	// a duration. This is the start time of that duration.
29672	StartTime *time.Time `type:"timestamp"`
29673
29674	// The state of the reserved compute node.
29675	//
29676	// Possible Values:
29677	//
29678	//    * pending-payment-This reserved node has recently been purchased, and
29679	//    the sale has been approved, but payment has not yet been confirmed.
29680	//
29681	//    * active-This reserved node is owned by the caller and is available for
29682	//    use.
29683	//
29684	//    * payment-failed-Payment failed for the purchase attempt.
29685	//
29686	//    * retired-The reserved node is no longer available.
29687	//
29688	//    * exchanging-The owner is exchanging the reserved node for another reserved
29689	//    node.
29690	State *string `type:"string"`
29691
29692	// The hourly rate Amazon Redshift charges you for this reserved node.
29693	UsagePrice *float64 `type:"double"`
29694}
29695
29696// String returns the string representation.
29697//
29698// API parameter values that are decorated as "sensitive" in the API will not
29699// be included in the string output. The member name will be present, but the
29700// value will be replaced with "sensitive".
29701func (s ReservedNode) String() string {
29702	return awsutil.Prettify(s)
29703}
29704
29705// GoString returns the string representation.
29706//
29707// API parameter values that are decorated as "sensitive" in the API will not
29708// be included in the string output. The member name will be present, but the
29709// value will be replaced with "sensitive".
29710func (s ReservedNode) GoString() string {
29711	return s.String()
29712}
29713
29714// SetCurrencyCode sets the CurrencyCode field's value.
29715func (s *ReservedNode) SetCurrencyCode(v string) *ReservedNode {
29716	s.CurrencyCode = &v
29717	return s
29718}
29719
29720// SetDuration sets the Duration field's value.
29721func (s *ReservedNode) SetDuration(v int64) *ReservedNode {
29722	s.Duration = &v
29723	return s
29724}
29725
29726// SetFixedPrice sets the FixedPrice field's value.
29727func (s *ReservedNode) SetFixedPrice(v float64) *ReservedNode {
29728	s.FixedPrice = &v
29729	return s
29730}
29731
29732// SetNodeCount sets the NodeCount field's value.
29733func (s *ReservedNode) SetNodeCount(v int64) *ReservedNode {
29734	s.NodeCount = &v
29735	return s
29736}
29737
29738// SetNodeType sets the NodeType field's value.
29739func (s *ReservedNode) SetNodeType(v string) *ReservedNode {
29740	s.NodeType = &v
29741	return s
29742}
29743
29744// SetOfferingType sets the OfferingType field's value.
29745func (s *ReservedNode) SetOfferingType(v string) *ReservedNode {
29746	s.OfferingType = &v
29747	return s
29748}
29749
29750// SetRecurringCharges sets the RecurringCharges field's value.
29751func (s *ReservedNode) SetRecurringCharges(v []*RecurringCharge) *ReservedNode {
29752	s.RecurringCharges = v
29753	return s
29754}
29755
29756// SetReservedNodeId sets the ReservedNodeId field's value.
29757func (s *ReservedNode) SetReservedNodeId(v string) *ReservedNode {
29758	s.ReservedNodeId = &v
29759	return s
29760}
29761
29762// SetReservedNodeOfferingId sets the ReservedNodeOfferingId field's value.
29763func (s *ReservedNode) SetReservedNodeOfferingId(v string) *ReservedNode {
29764	s.ReservedNodeOfferingId = &v
29765	return s
29766}
29767
29768// SetReservedNodeOfferingType sets the ReservedNodeOfferingType field's value.
29769func (s *ReservedNode) SetReservedNodeOfferingType(v string) *ReservedNode {
29770	s.ReservedNodeOfferingType = &v
29771	return s
29772}
29773
29774// SetStartTime sets the StartTime field's value.
29775func (s *ReservedNode) SetStartTime(v time.Time) *ReservedNode {
29776	s.StartTime = &v
29777	return s
29778}
29779
29780// SetState sets the State field's value.
29781func (s *ReservedNode) SetState(v string) *ReservedNode {
29782	s.State = &v
29783	return s
29784}
29785
29786// SetUsagePrice sets the UsagePrice field's value.
29787func (s *ReservedNode) SetUsagePrice(v float64) *ReservedNode {
29788	s.UsagePrice = &v
29789	return s
29790}
29791
29792// Describes a reserved node offering.
29793type ReservedNodeOffering struct {
29794	_ struct{} `type:"structure"`
29795
29796	// The currency code for the compute nodes offering.
29797	CurrencyCode *string `type:"string"`
29798
29799	// The duration, in seconds, for which the offering will reserve the node.
29800	Duration *int64 `type:"integer"`
29801
29802	// The upfront fixed charge you will pay to purchase the specific reserved node
29803	// offering.
29804	FixedPrice *float64 `type:"double"`
29805
29806	// The node type offered by the reserved node offering.
29807	NodeType *string `type:"string"`
29808
29809	// The anticipated utilization of the reserved node, as defined in the reserved
29810	// node offering.
29811	OfferingType *string `type:"string"`
29812
29813	// The charge to your account regardless of whether you are creating any clusters
29814	// using the node offering. Recurring charges are only in effect for heavy-utilization
29815	// reserved nodes.
29816	RecurringCharges []*RecurringCharge `locationNameList:"RecurringCharge" type:"list"`
29817
29818	// The offering identifier.
29819	ReservedNodeOfferingId *string `type:"string"`
29820
29821	ReservedNodeOfferingType *string `type:"string" enum:"ReservedNodeOfferingType"`
29822
29823	// The rate you are charged for each hour the cluster that is using the offering
29824	// is running.
29825	UsagePrice *float64 `type:"double"`
29826}
29827
29828// String returns the string representation.
29829//
29830// API parameter values that are decorated as "sensitive" in the API will not
29831// be included in the string output. The member name will be present, but the
29832// value will be replaced with "sensitive".
29833func (s ReservedNodeOffering) String() string {
29834	return awsutil.Prettify(s)
29835}
29836
29837// GoString returns the string representation.
29838//
29839// API parameter values that are decorated as "sensitive" in the API will not
29840// be included in the string output. The member name will be present, but the
29841// value will be replaced with "sensitive".
29842func (s ReservedNodeOffering) GoString() string {
29843	return s.String()
29844}
29845
29846// SetCurrencyCode sets the CurrencyCode field's value.
29847func (s *ReservedNodeOffering) SetCurrencyCode(v string) *ReservedNodeOffering {
29848	s.CurrencyCode = &v
29849	return s
29850}
29851
29852// SetDuration sets the Duration field's value.
29853func (s *ReservedNodeOffering) SetDuration(v int64) *ReservedNodeOffering {
29854	s.Duration = &v
29855	return s
29856}
29857
29858// SetFixedPrice sets the FixedPrice field's value.
29859func (s *ReservedNodeOffering) SetFixedPrice(v float64) *ReservedNodeOffering {
29860	s.FixedPrice = &v
29861	return s
29862}
29863
29864// SetNodeType sets the NodeType field's value.
29865func (s *ReservedNodeOffering) SetNodeType(v string) *ReservedNodeOffering {
29866	s.NodeType = &v
29867	return s
29868}
29869
29870// SetOfferingType sets the OfferingType field's value.
29871func (s *ReservedNodeOffering) SetOfferingType(v string) *ReservedNodeOffering {
29872	s.OfferingType = &v
29873	return s
29874}
29875
29876// SetRecurringCharges sets the RecurringCharges field's value.
29877func (s *ReservedNodeOffering) SetRecurringCharges(v []*RecurringCharge) *ReservedNodeOffering {
29878	s.RecurringCharges = v
29879	return s
29880}
29881
29882// SetReservedNodeOfferingId sets the ReservedNodeOfferingId field's value.
29883func (s *ReservedNodeOffering) SetReservedNodeOfferingId(v string) *ReservedNodeOffering {
29884	s.ReservedNodeOfferingId = &v
29885	return s
29886}
29887
29888// SetReservedNodeOfferingType sets the ReservedNodeOfferingType field's value.
29889func (s *ReservedNodeOffering) SetReservedNodeOfferingType(v string) *ReservedNodeOffering {
29890	s.ReservedNodeOfferingType = &v
29891	return s
29892}
29893
29894// SetUsagePrice sets the UsagePrice field's value.
29895func (s *ReservedNodeOffering) SetUsagePrice(v float64) *ReservedNodeOffering {
29896	s.UsagePrice = &v
29897	return s
29898}
29899
29900type ResetClusterParameterGroupInput struct {
29901	_ struct{} `type:"structure"`
29902
29903	// The name of the cluster parameter group to be reset.
29904	//
29905	// ParameterGroupName is a required field
29906	ParameterGroupName *string `type:"string" required:"true"`
29907
29908	// An array of names of parameters to be reset. If ResetAllParameters option
29909	// is not used, then at least one parameter name must be supplied.
29910	//
29911	// Constraints: A maximum of 20 parameters can be reset in a single request.
29912	Parameters []*Parameter `locationNameList:"Parameter" type:"list"`
29913
29914	// If true, all parameters in the specified parameter group will be reset to
29915	// their default values.
29916	//
29917	// Default: true
29918	ResetAllParameters *bool `type:"boolean"`
29919}
29920
29921// String returns the string representation.
29922//
29923// API parameter values that are decorated as "sensitive" in the API will not
29924// be included in the string output. The member name will be present, but the
29925// value will be replaced with "sensitive".
29926func (s ResetClusterParameterGroupInput) String() string {
29927	return awsutil.Prettify(s)
29928}
29929
29930// GoString returns the string representation.
29931//
29932// API parameter values that are decorated as "sensitive" in the API will not
29933// be included in the string output. The member name will be present, but the
29934// value will be replaced with "sensitive".
29935func (s ResetClusterParameterGroupInput) GoString() string {
29936	return s.String()
29937}
29938
29939// Validate inspects the fields of the type to determine if they are valid.
29940func (s *ResetClusterParameterGroupInput) Validate() error {
29941	invalidParams := request.ErrInvalidParams{Context: "ResetClusterParameterGroupInput"}
29942	if s.ParameterGroupName == nil {
29943		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
29944	}
29945
29946	if invalidParams.Len() > 0 {
29947		return invalidParams
29948	}
29949	return nil
29950}
29951
29952// SetParameterGroupName sets the ParameterGroupName field's value.
29953func (s *ResetClusterParameterGroupInput) SetParameterGroupName(v string) *ResetClusterParameterGroupInput {
29954	s.ParameterGroupName = &v
29955	return s
29956}
29957
29958// SetParameters sets the Parameters field's value.
29959func (s *ResetClusterParameterGroupInput) SetParameters(v []*Parameter) *ResetClusterParameterGroupInput {
29960	s.Parameters = v
29961	return s
29962}
29963
29964// SetResetAllParameters sets the ResetAllParameters field's value.
29965func (s *ResetClusterParameterGroupInput) SetResetAllParameters(v bool) *ResetClusterParameterGroupInput {
29966	s.ResetAllParameters = &v
29967	return s
29968}
29969
29970// Describes a resize cluster operation. For example, a scheduled action to
29971// run the ResizeCluster API operation.
29972type ResizeClusterInput struct {
29973	_ struct{} `type:"structure"`
29974
29975	// A boolean value indicating whether the resize operation is using the classic
29976	// resize process. If you don't provide this parameter or set the value to false,
29977	// the resize type is elastic.
29978	Classic *bool `type:"boolean"`
29979
29980	// The unique identifier for the cluster to resize.
29981	//
29982	// ClusterIdentifier is a required field
29983	ClusterIdentifier *string `type:"string" required:"true"`
29984
29985	// The new cluster type for the specified cluster.
29986	ClusterType *string `type:"string"`
29987
29988	// The new node type for the nodes you are adding. If not specified, the cluster's
29989	// current node type is used.
29990	NodeType *string `type:"string"`
29991
29992	// The new number of nodes for the cluster. If not specified, the cluster's
29993	// current number of nodes is used.
29994	NumberOfNodes *int64 `type:"integer"`
29995}
29996
29997// String returns the string representation.
29998//
29999// API parameter values that are decorated as "sensitive" in the API will not
30000// be included in the string output. The member name will be present, but the
30001// value will be replaced with "sensitive".
30002func (s ResizeClusterInput) String() string {
30003	return awsutil.Prettify(s)
30004}
30005
30006// GoString returns the string representation.
30007//
30008// API parameter values that are decorated as "sensitive" in the API will not
30009// be included in the string output. The member name will be present, but the
30010// value will be replaced with "sensitive".
30011func (s ResizeClusterInput) GoString() string {
30012	return s.String()
30013}
30014
30015// Validate inspects the fields of the type to determine if they are valid.
30016func (s *ResizeClusterInput) Validate() error {
30017	invalidParams := request.ErrInvalidParams{Context: "ResizeClusterInput"}
30018	if s.ClusterIdentifier == nil {
30019		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
30020	}
30021
30022	if invalidParams.Len() > 0 {
30023		return invalidParams
30024	}
30025	return nil
30026}
30027
30028// SetClassic sets the Classic field's value.
30029func (s *ResizeClusterInput) SetClassic(v bool) *ResizeClusterInput {
30030	s.Classic = &v
30031	return s
30032}
30033
30034// SetClusterIdentifier sets the ClusterIdentifier field's value.
30035func (s *ResizeClusterInput) SetClusterIdentifier(v string) *ResizeClusterInput {
30036	s.ClusterIdentifier = &v
30037	return s
30038}
30039
30040// SetClusterType sets the ClusterType field's value.
30041func (s *ResizeClusterInput) SetClusterType(v string) *ResizeClusterInput {
30042	s.ClusterType = &v
30043	return s
30044}
30045
30046// SetNodeType sets the NodeType field's value.
30047func (s *ResizeClusterInput) SetNodeType(v string) *ResizeClusterInput {
30048	s.NodeType = &v
30049	return s
30050}
30051
30052// SetNumberOfNodes sets the NumberOfNodes field's value.
30053func (s *ResizeClusterInput) SetNumberOfNodes(v int64) *ResizeClusterInput {
30054	s.NumberOfNodes = &v
30055	return s
30056}
30057
30058// Describes a resize cluster operation. For example, a scheduled action to
30059// run the ResizeCluster API operation.
30060type ResizeClusterMessage struct {
30061	_ struct{} `type:"structure"`
30062
30063	// A boolean value indicating whether the resize operation is using the classic
30064	// resize process. If you don't provide this parameter or set the value to false,
30065	// the resize type is elastic.
30066	Classic *bool `type:"boolean"`
30067
30068	// The unique identifier for the cluster to resize.
30069	//
30070	// ClusterIdentifier is a required field
30071	ClusterIdentifier *string `type:"string" required:"true"`
30072
30073	// The new cluster type for the specified cluster.
30074	ClusterType *string `type:"string"`
30075
30076	// The new node type for the nodes you are adding. If not specified, the cluster's
30077	// current node type is used.
30078	NodeType *string `type:"string"`
30079
30080	// The new number of nodes for the cluster. If not specified, the cluster's
30081	// current number of nodes is used.
30082	NumberOfNodes *int64 `type:"integer"`
30083}
30084
30085// String returns the string representation.
30086//
30087// API parameter values that are decorated as "sensitive" in the API will not
30088// be included in the string output. The member name will be present, but the
30089// value will be replaced with "sensitive".
30090func (s ResizeClusterMessage) String() string {
30091	return awsutil.Prettify(s)
30092}
30093
30094// GoString returns the string representation.
30095//
30096// API parameter values that are decorated as "sensitive" in the API will not
30097// be included in the string output. The member name will be present, but the
30098// value will be replaced with "sensitive".
30099func (s ResizeClusterMessage) GoString() string {
30100	return s.String()
30101}
30102
30103// Validate inspects the fields of the type to determine if they are valid.
30104func (s *ResizeClusterMessage) Validate() error {
30105	invalidParams := request.ErrInvalidParams{Context: "ResizeClusterMessage"}
30106	if s.ClusterIdentifier == nil {
30107		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
30108	}
30109
30110	if invalidParams.Len() > 0 {
30111		return invalidParams
30112	}
30113	return nil
30114}
30115
30116// SetClassic sets the Classic field's value.
30117func (s *ResizeClusterMessage) SetClassic(v bool) *ResizeClusterMessage {
30118	s.Classic = &v
30119	return s
30120}
30121
30122// SetClusterIdentifier sets the ClusterIdentifier field's value.
30123func (s *ResizeClusterMessage) SetClusterIdentifier(v string) *ResizeClusterMessage {
30124	s.ClusterIdentifier = &v
30125	return s
30126}
30127
30128// SetClusterType sets the ClusterType field's value.
30129func (s *ResizeClusterMessage) SetClusterType(v string) *ResizeClusterMessage {
30130	s.ClusterType = &v
30131	return s
30132}
30133
30134// SetNodeType sets the NodeType field's value.
30135func (s *ResizeClusterMessage) SetNodeType(v string) *ResizeClusterMessage {
30136	s.NodeType = &v
30137	return s
30138}
30139
30140// SetNumberOfNodes sets the NumberOfNodes field's value.
30141func (s *ResizeClusterMessage) SetNumberOfNodes(v int64) *ResizeClusterMessage {
30142	s.NumberOfNodes = &v
30143	return s
30144}
30145
30146type ResizeClusterOutput struct {
30147	_ struct{} `type:"structure"`
30148
30149	// Describes a cluster.
30150	Cluster *Cluster `type:"structure"`
30151}
30152
30153// String returns the string representation.
30154//
30155// API parameter values that are decorated as "sensitive" in the API will not
30156// be included in the string output. The member name will be present, but the
30157// value will be replaced with "sensitive".
30158func (s ResizeClusterOutput) String() string {
30159	return awsutil.Prettify(s)
30160}
30161
30162// GoString returns the string representation.
30163//
30164// API parameter values that are decorated as "sensitive" in the API will not
30165// be included in the string output. The member name will be present, but the
30166// value will be replaced with "sensitive".
30167func (s ResizeClusterOutput) GoString() string {
30168	return s.String()
30169}
30170
30171// SetCluster sets the Cluster field's value.
30172func (s *ResizeClusterOutput) SetCluster(v *Cluster) *ResizeClusterOutput {
30173	s.Cluster = v
30174	return s
30175}
30176
30177// Describes a resize operation.
30178type ResizeInfo struct {
30179	_ struct{} `type:"structure"`
30180
30181	// A boolean value indicating if the resize operation can be cancelled.
30182	AllowCancelResize *bool `type:"boolean"`
30183
30184	// Returns the value ClassicResize.
30185	ResizeType *string `type:"string"`
30186}
30187
30188// String returns the string representation.
30189//
30190// API parameter values that are decorated as "sensitive" in the API will not
30191// be included in the string output. The member name will be present, but the
30192// value will be replaced with "sensitive".
30193func (s ResizeInfo) String() string {
30194	return awsutil.Prettify(s)
30195}
30196
30197// GoString returns the string representation.
30198//
30199// API parameter values that are decorated as "sensitive" in the API will not
30200// be included in the string output. The member name will be present, but the
30201// value will be replaced with "sensitive".
30202func (s ResizeInfo) GoString() string {
30203	return s.String()
30204}
30205
30206// SetAllowCancelResize sets the AllowCancelResize field's value.
30207func (s *ResizeInfo) SetAllowCancelResize(v bool) *ResizeInfo {
30208	s.AllowCancelResize = &v
30209	return s
30210}
30211
30212// SetResizeType sets the ResizeType field's value.
30213func (s *ResizeInfo) SetResizeType(v string) *ResizeInfo {
30214	s.ResizeType = &v
30215	return s
30216}
30217
30218type RestoreFromClusterSnapshotInput struct {
30219	_ struct{} `type:"structure"`
30220
30221	// Reserved.
30222	AdditionalInfo *string `type:"string"`
30223
30224	// If true, major version upgrades can be applied during the maintenance window
30225	// to the Amazon Redshift engine that is running on the cluster.
30226	//
30227	// Default: true
30228	AllowVersionUpgrade *bool `type:"boolean"`
30229
30230	// The value represents how the cluster is configured to use AQUA (Advanced
30231	// Query Accelerator) after the cluster is restored. Possible values include
30232	// the following.
30233	//
30234	//    * enabled - Use AQUA if it is available for the current Amazon Web Services
30235	//    Region and Amazon Redshift node type.
30236	//
30237	//    * disabled - Don't use AQUA.
30238	//
30239	//    * auto - Amazon Redshift determines whether to use AQUA.
30240	AquaConfigurationStatus *string `type:"string" enum:"AquaConfigurationStatus"`
30241
30242	// The number of days that automated snapshots are retained. If the value is
30243	// 0, automated snapshots are disabled. Even if automated snapshots are disabled,
30244	// you can still create manual snapshots when you want with CreateClusterSnapshot.
30245	//
30246	// You can't disable automated snapshots for RA3 node types. Set the automated
30247	// retention period from 1-35 days.
30248	//
30249	// Default: The value selected for the cluster from which the snapshot was taken.
30250	//
30251	// Constraints: Must be a value from 0 to 35.
30252	AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
30253
30254	// The Amazon EC2 Availability Zone in which to restore the cluster.
30255	//
30256	// Default: A random, system-chosen Availability Zone.
30257	//
30258	// Example: us-east-2a
30259	AvailabilityZone *string `type:"string"`
30260
30261	// The option to enable relocation for an Amazon Redshift cluster between Availability
30262	// Zones after the cluster is restored.
30263	AvailabilityZoneRelocation *bool `type:"boolean"`
30264
30265	// The identifier of the cluster that will be created from restoring the snapshot.
30266	//
30267	// Constraints:
30268	//
30269	//    * Must contain from 1 to 63 alphanumeric characters or hyphens.
30270	//
30271	//    * Alphabetic characters must be lowercase.
30272	//
30273	//    * First character must be a letter.
30274	//
30275	//    * Cannot end with a hyphen or contain two consecutive hyphens.
30276	//
30277	//    * Must be unique for all clusters within an Amazon Web Services account.
30278	//
30279	// ClusterIdentifier is a required field
30280	ClusterIdentifier *string `type:"string" required:"true"`
30281
30282	// The name of the parameter group to be associated with this cluster.
30283	//
30284	// Default: The default Amazon Redshift cluster parameter group. For information
30285	// about the default parameter group, go to Working with Amazon Redshift Parameter
30286	// Groups (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html).
30287	//
30288	// Constraints:
30289	//
30290	//    * Must be 1 to 255 alphanumeric characters or hyphens.
30291	//
30292	//    * First character must be a letter.
30293	//
30294	//    * Cannot end with a hyphen or contain two consecutive hyphens.
30295	ClusterParameterGroupName *string `type:"string"`
30296
30297	// A list of security groups to be associated with this cluster.
30298	//
30299	// Default: The default cluster security group for Amazon Redshift.
30300	//
30301	// Cluster security groups only apply to clusters outside of VPCs.
30302	ClusterSecurityGroups []*string `locationNameList:"ClusterSecurityGroupName" type:"list"`
30303
30304	// The name of the subnet group where you want to cluster restored.
30305	//
30306	// A snapshot of cluster in VPC can be restored only in VPC. Therefore, you
30307	// must provide subnet group name where you want the cluster restored.
30308	ClusterSubnetGroupName *string `type:"string"`
30309
30310	// The elastic IP (EIP) address for the cluster.
30311	ElasticIp *string `type:"string"`
30312
30313	// An option that specifies whether to create the cluster with enhanced VPC
30314	// routing enabled. To create a cluster that uses enhanced VPC routing, the
30315	// cluster must be in a VPC. For more information, see Enhanced VPC Routing
30316	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
30317	// in the Amazon Redshift Cluster Management Guide.
30318	//
30319	// If this option is true, enhanced VPC routing is enabled.
30320	//
30321	// Default: false
30322	EnhancedVpcRouting *bool `type:"boolean"`
30323
30324	// Specifies the name of the HSM client certificate the Amazon Redshift cluster
30325	// uses to retrieve the data encryption keys stored in an HSM.
30326	HsmClientCertificateIdentifier *string `type:"string"`
30327
30328	// Specifies the name of the HSM configuration that contains the information
30329	// the Amazon Redshift cluster can use to retrieve and store keys in an HSM.
30330	HsmConfigurationIdentifier *string `type:"string"`
30331
30332	// A list of Identity and Access Management (IAM) roles that can be used by
30333	// the cluster to access other Amazon Web Services services. You must supply
30334	// the IAM roles in their Amazon Resource Name (ARN) format. You can supply
30335	// up to 10 IAM roles in a single request.
30336	//
30337	// A cluster can have up to 10 IAM roles associated at any time.
30338	IamRoles []*string `locationNameList:"IamRoleArn" type:"list"`
30339
30340	// The Key Management Service (KMS) key ID of the encryption key that you want
30341	// to use to encrypt data in the cluster that you restore from a shared snapshot.
30342	KmsKeyId *string `type:"string"`
30343
30344	// The name of the maintenance track for the restored cluster. When you take
30345	// a snapshot, the snapshot inherits the MaintenanceTrack value from the cluster.
30346	// The snapshot might be on a different track than the cluster that was the
30347	// source for the snapshot. For example, suppose that you take a snapshot of
30348	// a cluster that is on the current track and then change the cluster to be
30349	// on the trailing track. In this case, the snapshot and the source cluster
30350	// are on different tracks.
30351	MaintenanceTrackName *string `type:"string"`
30352
30353	// The default number of days to retain a manual snapshot. If the value is -1,
30354	// the snapshot is retained indefinitely. This setting doesn't change the retention
30355	// period of existing snapshots.
30356	//
30357	// The value must be either -1 or an integer between 1 and 3,653.
30358	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
30359
30360	// The node type that the restored cluster will be provisioned with.
30361	//
30362	// Default: The node type of the cluster from which the snapshot was taken.
30363	// You can modify this if you are using any DS node type. In that case, you
30364	// can choose to restore into another DS node type of the same size. For example,
30365	// you can restore ds1.8xlarge into ds2.8xlarge, or ds1.xlarge into ds2.xlarge.
30366	// If you have a DC instance type, you must restore into that same instance
30367	// type and size. In other words, you can only restore a dc1.large instance
30368	// type into another dc1.large instance type or dc2.large instance type. You
30369	// can't restore dc1.8xlarge to dc2.8xlarge. First restore to a dc1.8xlarge
30370	// cluster, then resize to a dc2.8large cluster. For more information about
30371	// node types, see About Clusters and Nodes (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes)
30372	// in the Amazon Redshift Cluster Management Guide.
30373	NodeType *string `type:"string"`
30374
30375	// The number of nodes specified when provisioning the restored cluster.
30376	NumberOfNodes *int64 `type:"integer"`
30377
30378	// The Amazon Web Services account used to create or copy the snapshot. Required
30379	// if you are restoring a snapshot you do not own, optional if you own the snapshot.
30380	OwnerAccount *string `type:"string"`
30381
30382	// The port number on which the cluster accepts connections.
30383	//
30384	// Default: The same port as the original cluster.
30385	//
30386	// Constraints: Must be between 1115 and 65535.
30387	Port *int64 `type:"integer"`
30388
30389	// The weekly time range (in UTC) during which automated cluster maintenance
30390	// can occur.
30391	//
30392	// Format: ddd:hh24:mi-ddd:hh24:mi
30393	//
30394	// Default: The value selected for the cluster from which the snapshot was taken.
30395	// For more information about the time blocks for each region, see Maintenance
30396	// Windows (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows)
30397	// in Amazon Redshift Cluster Management Guide.
30398	//
30399	// Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
30400	//
30401	// Constraints: Minimum 30-minute window.
30402	PreferredMaintenanceWindow *string `type:"string"`
30403
30404	// If true, the cluster can be accessed from a public network.
30405	PubliclyAccessible *bool `type:"boolean"`
30406
30407	// The name of the cluster the source snapshot was created from. This parameter
30408	// is required if your IAM user has a policy containing a snapshot resource
30409	// element that specifies anything other than * for the cluster name.
30410	SnapshotClusterIdentifier *string `type:"string"`
30411
30412	// The name of the snapshot from which to create the new cluster. This parameter
30413	// isn't case sensitive.
30414	//
30415	// Example: my-snapshot-id
30416	//
30417	// SnapshotIdentifier is a required field
30418	SnapshotIdentifier *string `type:"string" required:"true"`
30419
30420	// A unique identifier for the snapshot schedule.
30421	SnapshotScheduleIdentifier *string `type:"string"`
30422
30423	// A list of Virtual Private Cloud (VPC) security groups to be associated with
30424	// the cluster.
30425	//
30426	// Default: The default VPC security group is associated with the cluster.
30427	//
30428	// VPC security groups only apply to clusters in VPCs.
30429	VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
30430}
30431
30432// String returns the string representation.
30433//
30434// API parameter values that are decorated as "sensitive" in the API will not
30435// be included in the string output. The member name will be present, but the
30436// value will be replaced with "sensitive".
30437func (s RestoreFromClusterSnapshotInput) String() string {
30438	return awsutil.Prettify(s)
30439}
30440
30441// GoString returns the string representation.
30442//
30443// API parameter values that are decorated as "sensitive" in the API will not
30444// be included in the string output. The member name will be present, but the
30445// value will be replaced with "sensitive".
30446func (s RestoreFromClusterSnapshotInput) GoString() string {
30447	return s.String()
30448}
30449
30450// Validate inspects the fields of the type to determine if they are valid.
30451func (s *RestoreFromClusterSnapshotInput) Validate() error {
30452	invalidParams := request.ErrInvalidParams{Context: "RestoreFromClusterSnapshotInput"}
30453	if s.ClusterIdentifier == nil {
30454		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
30455	}
30456	if s.SnapshotIdentifier == nil {
30457		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
30458	}
30459
30460	if invalidParams.Len() > 0 {
30461		return invalidParams
30462	}
30463	return nil
30464}
30465
30466// SetAdditionalInfo sets the AdditionalInfo field's value.
30467func (s *RestoreFromClusterSnapshotInput) SetAdditionalInfo(v string) *RestoreFromClusterSnapshotInput {
30468	s.AdditionalInfo = &v
30469	return s
30470}
30471
30472// SetAllowVersionUpgrade sets the AllowVersionUpgrade field's value.
30473func (s *RestoreFromClusterSnapshotInput) SetAllowVersionUpgrade(v bool) *RestoreFromClusterSnapshotInput {
30474	s.AllowVersionUpgrade = &v
30475	return s
30476}
30477
30478// SetAquaConfigurationStatus sets the AquaConfigurationStatus field's value.
30479func (s *RestoreFromClusterSnapshotInput) SetAquaConfigurationStatus(v string) *RestoreFromClusterSnapshotInput {
30480	s.AquaConfigurationStatus = &v
30481	return s
30482}
30483
30484// SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
30485func (s *RestoreFromClusterSnapshotInput) SetAutomatedSnapshotRetentionPeriod(v int64) *RestoreFromClusterSnapshotInput {
30486	s.AutomatedSnapshotRetentionPeriod = &v
30487	return s
30488}
30489
30490// SetAvailabilityZone sets the AvailabilityZone field's value.
30491func (s *RestoreFromClusterSnapshotInput) SetAvailabilityZone(v string) *RestoreFromClusterSnapshotInput {
30492	s.AvailabilityZone = &v
30493	return s
30494}
30495
30496// SetAvailabilityZoneRelocation sets the AvailabilityZoneRelocation field's value.
30497func (s *RestoreFromClusterSnapshotInput) SetAvailabilityZoneRelocation(v bool) *RestoreFromClusterSnapshotInput {
30498	s.AvailabilityZoneRelocation = &v
30499	return s
30500}
30501
30502// SetClusterIdentifier sets the ClusterIdentifier field's value.
30503func (s *RestoreFromClusterSnapshotInput) SetClusterIdentifier(v string) *RestoreFromClusterSnapshotInput {
30504	s.ClusterIdentifier = &v
30505	return s
30506}
30507
30508// SetClusterParameterGroupName sets the ClusterParameterGroupName field's value.
30509func (s *RestoreFromClusterSnapshotInput) SetClusterParameterGroupName(v string) *RestoreFromClusterSnapshotInput {
30510	s.ClusterParameterGroupName = &v
30511	return s
30512}
30513
30514// SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
30515func (s *RestoreFromClusterSnapshotInput) SetClusterSecurityGroups(v []*string) *RestoreFromClusterSnapshotInput {
30516	s.ClusterSecurityGroups = v
30517	return s
30518}
30519
30520// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
30521func (s *RestoreFromClusterSnapshotInput) SetClusterSubnetGroupName(v string) *RestoreFromClusterSnapshotInput {
30522	s.ClusterSubnetGroupName = &v
30523	return s
30524}
30525
30526// SetElasticIp sets the ElasticIp field's value.
30527func (s *RestoreFromClusterSnapshotInput) SetElasticIp(v string) *RestoreFromClusterSnapshotInput {
30528	s.ElasticIp = &v
30529	return s
30530}
30531
30532// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
30533func (s *RestoreFromClusterSnapshotInput) SetEnhancedVpcRouting(v bool) *RestoreFromClusterSnapshotInput {
30534	s.EnhancedVpcRouting = &v
30535	return s
30536}
30537
30538// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
30539func (s *RestoreFromClusterSnapshotInput) SetHsmClientCertificateIdentifier(v string) *RestoreFromClusterSnapshotInput {
30540	s.HsmClientCertificateIdentifier = &v
30541	return s
30542}
30543
30544// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
30545func (s *RestoreFromClusterSnapshotInput) SetHsmConfigurationIdentifier(v string) *RestoreFromClusterSnapshotInput {
30546	s.HsmConfigurationIdentifier = &v
30547	return s
30548}
30549
30550// SetIamRoles sets the IamRoles field's value.
30551func (s *RestoreFromClusterSnapshotInput) SetIamRoles(v []*string) *RestoreFromClusterSnapshotInput {
30552	s.IamRoles = v
30553	return s
30554}
30555
30556// SetKmsKeyId sets the KmsKeyId field's value.
30557func (s *RestoreFromClusterSnapshotInput) SetKmsKeyId(v string) *RestoreFromClusterSnapshotInput {
30558	s.KmsKeyId = &v
30559	return s
30560}
30561
30562// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
30563func (s *RestoreFromClusterSnapshotInput) SetMaintenanceTrackName(v string) *RestoreFromClusterSnapshotInput {
30564	s.MaintenanceTrackName = &v
30565	return s
30566}
30567
30568// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
30569func (s *RestoreFromClusterSnapshotInput) SetManualSnapshotRetentionPeriod(v int64) *RestoreFromClusterSnapshotInput {
30570	s.ManualSnapshotRetentionPeriod = &v
30571	return s
30572}
30573
30574// SetNodeType sets the NodeType field's value.
30575func (s *RestoreFromClusterSnapshotInput) SetNodeType(v string) *RestoreFromClusterSnapshotInput {
30576	s.NodeType = &v
30577	return s
30578}
30579
30580// SetNumberOfNodes sets the NumberOfNodes field's value.
30581func (s *RestoreFromClusterSnapshotInput) SetNumberOfNodes(v int64) *RestoreFromClusterSnapshotInput {
30582	s.NumberOfNodes = &v
30583	return s
30584}
30585
30586// SetOwnerAccount sets the OwnerAccount field's value.
30587func (s *RestoreFromClusterSnapshotInput) SetOwnerAccount(v string) *RestoreFromClusterSnapshotInput {
30588	s.OwnerAccount = &v
30589	return s
30590}
30591
30592// SetPort sets the Port field's value.
30593func (s *RestoreFromClusterSnapshotInput) SetPort(v int64) *RestoreFromClusterSnapshotInput {
30594	s.Port = &v
30595	return s
30596}
30597
30598// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
30599func (s *RestoreFromClusterSnapshotInput) SetPreferredMaintenanceWindow(v string) *RestoreFromClusterSnapshotInput {
30600	s.PreferredMaintenanceWindow = &v
30601	return s
30602}
30603
30604// SetPubliclyAccessible sets the PubliclyAccessible field's value.
30605func (s *RestoreFromClusterSnapshotInput) SetPubliclyAccessible(v bool) *RestoreFromClusterSnapshotInput {
30606	s.PubliclyAccessible = &v
30607	return s
30608}
30609
30610// SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
30611func (s *RestoreFromClusterSnapshotInput) SetSnapshotClusterIdentifier(v string) *RestoreFromClusterSnapshotInput {
30612	s.SnapshotClusterIdentifier = &v
30613	return s
30614}
30615
30616// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
30617func (s *RestoreFromClusterSnapshotInput) SetSnapshotIdentifier(v string) *RestoreFromClusterSnapshotInput {
30618	s.SnapshotIdentifier = &v
30619	return s
30620}
30621
30622// SetSnapshotScheduleIdentifier sets the SnapshotScheduleIdentifier field's value.
30623func (s *RestoreFromClusterSnapshotInput) SetSnapshotScheduleIdentifier(v string) *RestoreFromClusterSnapshotInput {
30624	s.SnapshotScheduleIdentifier = &v
30625	return s
30626}
30627
30628// SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
30629func (s *RestoreFromClusterSnapshotInput) SetVpcSecurityGroupIds(v []*string) *RestoreFromClusterSnapshotInput {
30630	s.VpcSecurityGroupIds = v
30631	return s
30632}
30633
30634type RestoreFromClusterSnapshotOutput struct {
30635	_ struct{} `type:"structure"`
30636
30637	// Describes a cluster.
30638	Cluster *Cluster `type:"structure"`
30639}
30640
30641// String returns the string representation.
30642//
30643// API parameter values that are decorated as "sensitive" in the API will not
30644// be included in the string output. The member name will be present, but the
30645// value will be replaced with "sensitive".
30646func (s RestoreFromClusterSnapshotOutput) String() string {
30647	return awsutil.Prettify(s)
30648}
30649
30650// GoString returns the string representation.
30651//
30652// API parameter values that are decorated as "sensitive" in the API will not
30653// be included in the string output. The member name will be present, but the
30654// value will be replaced with "sensitive".
30655func (s RestoreFromClusterSnapshotOutput) GoString() string {
30656	return s.String()
30657}
30658
30659// SetCluster sets the Cluster field's value.
30660func (s *RestoreFromClusterSnapshotOutput) SetCluster(v *Cluster) *RestoreFromClusterSnapshotOutput {
30661	s.Cluster = v
30662	return s
30663}
30664
30665// Describes the status of a cluster restore action. Returns null if the cluster
30666// was not created by restoring a snapshot.
30667type RestoreStatus struct {
30668	_ struct{} `type:"structure"`
30669
30670	// The number of megabytes per second being transferred from the backup storage.
30671	// Returns the average rate for a completed backup. This field is only updated
30672	// when you restore to DC2 and DS2 node types.
30673	CurrentRestoreRateInMegaBytesPerSecond *float64 `type:"double"`
30674
30675	// The amount of time an in-progress restore has been running, or the amount
30676	// of time it took a completed restore to finish. This field is only updated
30677	// when you restore to DC2 and DS2 node types.
30678	ElapsedTimeInSeconds *int64 `type:"long"`
30679
30680	// The estimate of the time remaining before the restore will complete. Returns
30681	// 0 for a completed restore. This field is only updated when you restore to
30682	// DC2 and DS2 node types.
30683	EstimatedTimeToCompletionInSeconds *int64 `type:"long"`
30684
30685	// The number of megabytes that have been transferred from snapshot storage.
30686	// This field is only updated when you restore to DC2 and DS2 node types.
30687	ProgressInMegaBytes *int64 `type:"long"`
30688
30689	// The size of the set of snapshot data used to restore the cluster. This field
30690	// is only updated when you restore to DC2 and DS2 node types.
30691	SnapshotSizeInMegaBytes *int64 `type:"long"`
30692
30693	// The status of the restore action. Returns starting, restoring, completed,
30694	// or failed.
30695	Status *string `type:"string"`
30696}
30697
30698// String returns the string representation.
30699//
30700// API parameter values that are decorated as "sensitive" in the API will not
30701// be included in the string output. The member name will be present, but the
30702// value will be replaced with "sensitive".
30703func (s RestoreStatus) String() string {
30704	return awsutil.Prettify(s)
30705}
30706
30707// GoString returns the string representation.
30708//
30709// API parameter values that are decorated as "sensitive" in the API will not
30710// be included in the string output. The member name will be present, but the
30711// value will be replaced with "sensitive".
30712func (s RestoreStatus) GoString() string {
30713	return s.String()
30714}
30715
30716// SetCurrentRestoreRateInMegaBytesPerSecond sets the CurrentRestoreRateInMegaBytesPerSecond field's value.
30717func (s *RestoreStatus) SetCurrentRestoreRateInMegaBytesPerSecond(v float64) *RestoreStatus {
30718	s.CurrentRestoreRateInMegaBytesPerSecond = &v
30719	return s
30720}
30721
30722// SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
30723func (s *RestoreStatus) SetElapsedTimeInSeconds(v int64) *RestoreStatus {
30724	s.ElapsedTimeInSeconds = &v
30725	return s
30726}
30727
30728// SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value.
30729func (s *RestoreStatus) SetEstimatedTimeToCompletionInSeconds(v int64) *RestoreStatus {
30730	s.EstimatedTimeToCompletionInSeconds = &v
30731	return s
30732}
30733
30734// SetProgressInMegaBytes sets the ProgressInMegaBytes field's value.
30735func (s *RestoreStatus) SetProgressInMegaBytes(v int64) *RestoreStatus {
30736	s.ProgressInMegaBytes = &v
30737	return s
30738}
30739
30740// SetSnapshotSizeInMegaBytes sets the SnapshotSizeInMegaBytes field's value.
30741func (s *RestoreStatus) SetSnapshotSizeInMegaBytes(v int64) *RestoreStatus {
30742	s.SnapshotSizeInMegaBytes = &v
30743	return s
30744}
30745
30746// SetStatus sets the Status field's value.
30747func (s *RestoreStatus) SetStatus(v string) *RestoreStatus {
30748	s.Status = &v
30749	return s
30750}
30751
30752type RestoreTableFromClusterSnapshotInput struct {
30753	_ struct{} `type:"structure"`
30754
30755	// The identifier of the Amazon Redshift cluster to restore the table to.
30756	//
30757	// ClusterIdentifier is a required field
30758	ClusterIdentifier *string `type:"string" required:"true"`
30759
30760	// Indicates whether name identifiers for database, schema, and table are case
30761	// sensitive. If true, the names are case sensitive. If false (default), the
30762	// names are not case sensitive.
30763	EnableCaseSensitiveIdentifier *bool `type:"boolean"`
30764
30765	// The name of the table to create as a result of the current request.
30766	//
30767	// NewTableName is a required field
30768	NewTableName *string `type:"string" required:"true"`
30769
30770	// The identifier of the snapshot to restore the table from. This snapshot must
30771	// have been created from the Amazon Redshift cluster specified by the ClusterIdentifier
30772	// parameter.
30773	//
30774	// SnapshotIdentifier is a required field
30775	SnapshotIdentifier *string `type:"string" required:"true"`
30776
30777	// The name of the source database that contains the table to restore from.
30778	//
30779	// SourceDatabaseName is a required field
30780	SourceDatabaseName *string `type:"string" required:"true"`
30781
30782	// The name of the source schema that contains the table to restore from. If
30783	// you do not specify a SourceSchemaName value, the default is public.
30784	SourceSchemaName *string `type:"string"`
30785
30786	// The name of the source table to restore from.
30787	//
30788	// SourceTableName is a required field
30789	SourceTableName *string `type:"string" required:"true"`
30790
30791	// The name of the database to restore the table to.
30792	TargetDatabaseName *string `type:"string"`
30793
30794	// The name of the schema to restore the table to.
30795	TargetSchemaName *string `type:"string"`
30796}
30797
30798// String returns the string representation.
30799//
30800// API parameter values that are decorated as "sensitive" in the API will not
30801// be included in the string output. The member name will be present, but the
30802// value will be replaced with "sensitive".
30803func (s RestoreTableFromClusterSnapshotInput) String() string {
30804	return awsutil.Prettify(s)
30805}
30806
30807// GoString returns the string representation.
30808//
30809// API parameter values that are decorated as "sensitive" in the API will not
30810// be included in the string output. The member name will be present, but the
30811// value will be replaced with "sensitive".
30812func (s RestoreTableFromClusterSnapshotInput) GoString() string {
30813	return s.String()
30814}
30815
30816// Validate inspects the fields of the type to determine if they are valid.
30817func (s *RestoreTableFromClusterSnapshotInput) Validate() error {
30818	invalidParams := request.ErrInvalidParams{Context: "RestoreTableFromClusterSnapshotInput"}
30819	if s.ClusterIdentifier == nil {
30820		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
30821	}
30822	if s.NewTableName == nil {
30823		invalidParams.Add(request.NewErrParamRequired("NewTableName"))
30824	}
30825	if s.SnapshotIdentifier == nil {
30826		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
30827	}
30828	if s.SourceDatabaseName == nil {
30829		invalidParams.Add(request.NewErrParamRequired("SourceDatabaseName"))
30830	}
30831	if s.SourceTableName == nil {
30832		invalidParams.Add(request.NewErrParamRequired("SourceTableName"))
30833	}
30834
30835	if invalidParams.Len() > 0 {
30836		return invalidParams
30837	}
30838	return nil
30839}
30840
30841// SetClusterIdentifier sets the ClusterIdentifier field's value.
30842func (s *RestoreTableFromClusterSnapshotInput) SetClusterIdentifier(v string) *RestoreTableFromClusterSnapshotInput {
30843	s.ClusterIdentifier = &v
30844	return s
30845}
30846
30847// SetEnableCaseSensitiveIdentifier sets the EnableCaseSensitiveIdentifier field's value.
30848func (s *RestoreTableFromClusterSnapshotInput) SetEnableCaseSensitiveIdentifier(v bool) *RestoreTableFromClusterSnapshotInput {
30849	s.EnableCaseSensitiveIdentifier = &v
30850	return s
30851}
30852
30853// SetNewTableName sets the NewTableName field's value.
30854func (s *RestoreTableFromClusterSnapshotInput) SetNewTableName(v string) *RestoreTableFromClusterSnapshotInput {
30855	s.NewTableName = &v
30856	return s
30857}
30858
30859// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
30860func (s *RestoreTableFromClusterSnapshotInput) SetSnapshotIdentifier(v string) *RestoreTableFromClusterSnapshotInput {
30861	s.SnapshotIdentifier = &v
30862	return s
30863}
30864
30865// SetSourceDatabaseName sets the SourceDatabaseName field's value.
30866func (s *RestoreTableFromClusterSnapshotInput) SetSourceDatabaseName(v string) *RestoreTableFromClusterSnapshotInput {
30867	s.SourceDatabaseName = &v
30868	return s
30869}
30870
30871// SetSourceSchemaName sets the SourceSchemaName field's value.
30872func (s *RestoreTableFromClusterSnapshotInput) SetSourceSchemaName(v string) *RestoreTableFromClusterSnapshotInput {
30873	s.SourceSchemaName = &v
30874	return s
30875}
30876
30877// SetSourceTableName sets the SourceTableName field's value.
30878func (s *RestoreTableFromClusterSnapshotInput) SetSourceTableName(v string) *RestoreTableFromClusterSnapshotInput {
30879	s.SourceTableName = &v
30880	return s
30881}
30882
30883// SetTargetDatabaseName sets the TargetDatabaseName field's value.
30884func (s *RestoreTableFromClusterSnapshotInput) SetTargetDatabaseName(v string) *RestoreTableFromClusterSnapshotInput {
30885	s.TargetDatabaseName = &v
30886	return s
30887}
30888
30889// SetTargetSchemaName sets the TargetSchemaName field's value.
30890func (s *RestoreTableFromClusterSnapshotInput) SetTargetSchemaName(v string) *RestoreTableFromClusterSnapshotInput {
30891	s.TargetSchemaName = &v
30892	return s
30893}
30894
30895type RestoreTableFromClusterSnapshotOutput struct {
30896	_ struct{} `type:"structure"`
30897
30898	// Describes the status of a RestoreTableFromClusterSnapshot operation.
30899	TableRestoreStatus *TableRestoreStatus `type:"structure"`
30900}
30901
30902// String returns the string representation.
30903//
30904// API parameter values that are decorated as "sensitive" in the API will not
30905// be included in the string output. The member name will be present, but the
30906// value will be replaced with "sensitive".
30907func (s RestoreTableFromClusterSnapshotOutput) String() string {
30908	return awsutil.Prettify(s)
30909}
30910
30911// GoString returns the string representation.
30912//
30913// API parameter values that are decorated as "sensitive" in the API will not
30914// be included in the string output. The member name will be present, but the
30915// value will be replaced with "sensitive".
30916func (s RestoreTableFromClusterSnapshotOutput) GoString() string {
30917	return s.String()
30918}
30919
30920// SetTableRestoreStatus sets the TableRestoreStatus field's value.
30921func (s *RestoreTableFromClusterSnapshotOutput) SetTableRestoreStatus(v *TableRestoreStatus) *RestoreTableFromClusterSnapshotOutput {
30922	s.TableRestoreStatus = v
30923	return s
30924}
30925
30926// Describes a resume cluster operation. For example, a scheduled action to
30927// run the ResumeCluster API operation.
30928type ResumeClusterInput struct {
30929	_ struct{} `type:"structure"`
30930
30931	// The identifier of the cluster to be resumed.
30932	//
30933	// ClusterIdentifier is a required field
30934	ClusterIdentifier *string `type:"string" required:"true"`
30935}
30936
30937// String returns the string representation.
30938//
30939// API parameter values that are decorated as "sensitive" in the API will not
30940// be included in the string output. The member name will be present, but the
30941// value will be replaced with "sensitive".
30942func (s ResumeClusterInput) String() string {
30943	return awsutil.Prettify(s)
30944}
30945
30946// GoString returns the string representation.
30947//
30948// API parameter values that are decorated as "sensitive" in the API will not
30949// be included in the string output. The member name will be present, but the
30950// value will be replaced with "sensitive".
30951func (s ResumeClusterInput) GoString() string {
30952	return s.String()
30953}
30954
30955// Validate inspects the fields of the type to determine if they are valid.
30956func (s *ResumeClusterInput) Validate() error {
30957	invalidParams := request.ErrInvalidParams{Context: "ResumeClusterInput"}
30958	if s.ClusterIdentifier == nil {
30959		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
30960	}
30961
30962	if invalidParams.Len() > 0 {
30963		return invalidParams
30964	}
30965	return nil
30966}
30967
30968// SetClusterIdentifier sets the ClusterIdentifier field's value.
30969func (s *ResumeClusterInput) SetClusterIdentifier(v string) *ResumeClusterInput {
30970	s.ClusterIdentifier = &v
30971	return s
30972}
30973
30974// Describes a resume cluster operation. For example, a scheduled action to
30975// run the ResumeCluster API operation.
30976type ResumeClusterMessage struct {
30977	_ struct{} `type:"structure"`
30978
30979	// The identifier of the cluster to be resumed.
30980	//
30981	// ClusterIdentifier is a required field
30982	ClusterIdentifier *string `type:"string" required:"true"`
30983}
30984
30985// String returns the string representation.
30986//
30987// API parameter values that are decorated as "sensitive" in the API will not
30988// be included in the string output. The member name will be present, but the
30989// value will be replaced with "sensitive".
30990func (s ResumeClusterMessage) String() string {
30991	return awsutil.Prettify(s)
30992}
30993
30994// GoString returns the string representation.
30995//
30996// API parameter values that are decorated as "sensitive" in the API will not
30997// be included in the string output. The member name will be present, but the
30998// value will be replaced with "sensitive".
30999func (s ResumeClusterMessage) GoString() string {
31000	return s.String()
31001}
31002
31003// Validate inspects the fields of the type to determine if they are valid.
31004func (s *ResumeClusterMessage) Validate() error {
31005	invalidParams := request.ErrInvalidParams{Context: "ResumeClusterMessage"}
31006	if s.ClusterIdentifier == nil {
31007		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
31008	}
31009
31010	if invalidParams.Len() > 0 {
31011		return invalidParams
31012	}
31013	return nil
31014}
31015
31016// SetClusterIdentifier sets the ClusterIdentifier field's value.
31017func (s *ResumeClusterMessage) SetClusterIdentifier(v string) *ResumeClusterMessage {
31018	s.ClusterIdentifier = &v
31019	return s
31020}
31021
31022type ResumeClusterOutput struct {
31023	_ struct{} `type:"structure"`
31024
31025	// Describes a cluster.
31026	Cluster *Cluster `type:"structure"`
31027}
31028
31029// String returns the string representation.
31030//
31031// API parameter values that are decorated as "sensitive" in the API will not
31032// be included in the string output. The member name will be present, but the
31033// value will be replaced with "sensitive".
31034func (s ResumeClusterOutput) String() string {
31035	return awsutil.Prettify(s)
31036}
31037
31038// GoString returns the string representation.
31039//
31040// API parameter values that are decorated as "sensitive" in the API will not
31041// be included in the string output. The member name will be present, but the
31042// value will be replaced with "sensitive".
31043func (s ResumeClusterOutput) GoString() string {
31044	return s.String()
31045}
31046
31047// SetCluster sets the Cluster field's value.
31048func (s *ResumeClusterOutput) SetCluster(v *Cluster) *ResumeClusterOutput {
31049	s.Cluster = v
31050	return s
31051}
31052
31053// Describes a RevisionTarget.
31054type RevisionTarget struct {
31055	_ struct{} `type:"structure"`
31056
31057	// A unique string that identifies the version to update the cluster to. You
31058	// can use this value in ModifyClusterDbRevision.
31059	DatabaseRevision *string `type:"string"`
31060
31061	// The date on which the database revision was released.
31062	DatabaseRevisionReleaseDate *time.Time `type:"timestamp"`
31063
31064	// A string that describes the changes and features that will be applied to
31065	// the cluster when it is updated to the corresponding ClusterDbRevision.
31066	Description *string `type:"string"`
31067}
31068
31069// String returns the string representation.
31070//
31071// API parameter values that are decorated as "sensitive" in the API will not
31072// be included in the string output. The member name will be present, but the
31073// value will be replaced with "sensitive".
31074func (s RevisionTarget) String() string {
31075	return awsutil.Prettify(s)
31076}
31077
31078// GoString returns the string representation.
31079//
31080// API parameter values that are decorated as "sensitive" in the API will not
31081// be included in the string output. The member name will be present, but the
31082// value will be replaced with "sensitive".
31083func (s RevisionTarget) GoString() string {
31084	return s.String()
31085}
31086
31087// SetDatabaseRevision sets the DatabaseRevision field's value.
31088func (s *RevisionTarget) SetDatabaseRevision(v string) *RevisionTarget {
31089	s.DatabaseRevision = &v
31090	return s
31091}
31092
31093// SetDatabaseRevisionReleaseDate sets the DatabaseRevisionReleaseDate field's value.
31094func (s *RevisionTarget) SetDatabaseRevisionReleaseDate(v time.Time) *RevisionTarget {
31095	s.DatabaseRevisionReleaseDate = &v
31096	return s
31097}
31098
31099// SetDescription sets the Description field's value.
31100func (s *RevisionTarget) SetDescription(v string) *RevisionTarget {
31101	s.Description = &v
31102	return s
31103}
31104
31105type RevokeClusterSecurityGroupIngressInput struct {
31106	_ struct{} `type:"structure"`
31107
31108	// The IP range for which to revoke access. This range must be a valid Classless
31109	// Inter-Domain Routing (CIDR) block of IP addresses. If CIDRIP is specified,
31110	// EC2SecurityGroupName and EC2SecurityGroupOwnerId cannot be provided.
31111	CIDRIP *string `type:"string"`
31112
31113	// The name of the security Group from which to revoke the ingress rule.
31114	//
31115	// ClusterSecurityGroupName is a required field
31116	ClusterSecurityGroupName *string `type:"string" required:"true"`
31117
31118	// The name of the EC2 Security Group whose access is to be revoked. If EC2SecurityGroupName
31119	// is specified, EC2SecurityGroupOwnerId must also be provided and CIDRIP cannot
31120	// be provided.
31121	EC2SecurityGroupName *string `type:"string"`
31122
31123	// The Amazon Web Services account number of the owner of the security group
31124	// specified in the EC2SecurityGroupName parameter. The Amazon Web Services
31125	// access key ID is not an acceptable value. If EC2SecurityGroupOwnerId is specified,
31126	// EC2SecurityGroupName must also be provided. and CIDRIP cannot be provided.
31127	//
31128	// Example: 111122223333
31129	EC2SecurityGroupOwnerId *string `type:"string"`
31130}
31131
31132// String returns the string representation.
31133//
31134// API parameter values that are decorated as "sensitive" in the API will not
31135// be included in the string output. The member name will be present, but the
31136// value will be replaced with "sensitive".
31137func (s RevokeClusterSecurityGroupIngressInput) String() string {
31138	return awsutil.Prettify(s)
31139}
31140
31141// GoString returns the string representation.
31142//
31143// API parameter values that are decorated as "sensitive" in the API will not
31144// be included in the string output. The member name will be present, but the
31145// value will be replaced with "sensitive".
31146func (s RevokeClusterSecurityGroupIngressInput) GoString() string {
31147	return s.String()
31148}
31149
31150// Validate inspects the fields of the type to determine if they are valid.
31151func (s *RevokeClusterSecurityGroupIngressInput) Validate() error {
31152	invalidParams := request.ErrInvalidParams{Context: "RevokeClusterSecurityGroupIngressInput"}
31153	if s.ClusterSecurityGroupName == nil {
31154		invalidParams.Add(request.NewErrParamRequired("ClusterSecurityGroupName"))
31155	}
31156
31157	if invalidParams.Len() > 0 {
31158		return invalidParams
31159	}
31160	return nil
31161}
31162
31163// SetCIDRIP sets the CIDRIP field's value.
31164func (s *RevokeClusterSecurityGroupIngressInput) SetCIDRIP(v string) *RevokeClusterSecurityGroupIngressInput {
31165	s.CIDRIP = &v
31166	return s
31167}
31168
31169// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
31170func (s *RevokeClusterSecurityGroupIngressInput) SetClusterSecurityGroupName(v string) *RevokeClusterSecurityGroupIngressInput {
31171	s.ClusterSecurityGroupName = &v
31172	return s
31173}
31174
31175// SetEC2SecurityGroupName sets the EC2SecurityGroupName field's value.
31176func (s *RevokeClusterSecurityGroupIngressInput) SetEC2SecurityGroupName(v string) *RevokeClusterSecurityGroupIngressInput {
31177	s.EC2SecurityGroupName = &v
31178	return s
31179}
31180
31181// SetEC2SecurityGroupOwnerId sets the EC2SecurityGroupOwnerId field's value.
31182func (s *RevokeClusterSecurityGroupIngressInput) SetEC2SecurityGroupOwnerId(v string) *RevokeClusterSecurityGroupIngressInput {
31183	s.EC2SecurityGroupOwnerId = &v
31184	return s
31185}
31186
31187type RevokeClusterSecurityGroupIngressOutput struct {
31188	_ struct{} `type:"structure"`
31189
31190	// Describes a security group.
31191	ClusterSecurityGroup *ClusterSecurityGroup `type:"structure"`
31192}
31193
31194// String returns the string representation.
31195//
31196// API parameter values that are decorated as "sensitive" in the API will not
31197// be included in the string output. The member name will be present, but the
31198// value will be replaced with "sensitive".
31199func (s RevokeClusterSecurityGroupIngressOutput) String() string {
31200	return awsutil.Prettify(s)
31201}
31202
31203// GoString returns the string representation.
31204//
31205// API parameter values that are decorated as "sensitive" in the API will not
31206// be included in the string output. The member name will be present, but the
31207// value will be replaced with "sensitive".
31208func (s RevokeClusterSecurityGroupIngressOutput) GoString() string {
31209	return s.String()
31210}
31211
31212// SetClusterSecurityGroup sets the ClusterSecurityGroup field's value.
31213func (s *RevokeClusterSecurityGroupIngressOutput) SetClusterSecurityGroup(v *ClusterSecurityGroup) *RevokeClusterSecurityGroupIngressOutput {
31214	s.ClusterSecurityGroup = v
31215	return s
31216}
31217
31218type RevokeEndpointAccessInput struct {
31219	_ struct{} `type:"structure"`
31220
31221	// The Amazon Web Services account ID whose access is to be revoked.
31222	Account *string `type:"string"`
31223
31224	// The cluster to revoke access from.
31225	ClusterIdentifier *string `type:"string"`
31226
31227	// Indicates whether to force the revoke action. If true, the Redshift-managed
31228	// VPC endpoints associated with the endpoint authorization are also deleted.
31229	Force *bool `type:"boolean"`
31230
31231	// The virtual private cloud (VPC) identifiers for which access is to be revoked.
31232	VpcIds []*string `locationNameList:"VpcIdentifier" type:"list"`
31233}
31234
31235// String returns the string representation.
31236//
31237// API parameter values that are decorated as "sensitive" in the API will not
31238// be included in the string output. The member name will be present, but the
31239// value will be replaced with "sensitive".
31240func (s RevokeEndpointAccessInput) String() string {
31241	return awsutil.Prettify(s)
31242}
31243
31244// GoString returns the string representation.
31245//
31246// API parameter values that are decorated as "sensitive" in the API will not
31247// be included in the string output. The member name will be present, but the
31248// value will be replaced with "sensitive".
31249func (s RevokeEndpointAccessInput) GoString() string {
31250	return s.String()
31251}
31252
31253// SetAccount sets the Account field's value.
31254func (s *RevokeEndpointAccessInput) SetAccount(v string) *RevokeEndpointAccessInput {
31255	s.Account = &v
31256	return s
31257}
31258
31259// SetClusterIdentifier sets the ClusterIdentifier field's value.
31260func (s *RevokeEndpointAccessInput) SetClusterIdentifier(v string) *RevokeEndpointAccessInput {
31261	s.ClusterIdentifier = &v
31262	return s
31263}
31264
31265// SetForce sets the Force field's value.
31266func (s *RevokeEndpointAccessInput) SetForce(v bool) *RevokeEndpointAccessInput {
31267	s.Force = &v
31268	return s
31269}
31270
31271// SetVpcIds sets the VpcIds field's value.
31272func (s *RevokeEndpointAccessInput) SetVpcIds(v []*string) *RevokeEndpointAccessInput {
31273	s.VpcIds = v
31274	return s
31275}
31276
31277// Describes an endpoint authorization for authorizing Redshift-managed VPC
31278// endpoint access to a cluster across Amazon Web Services accounts.
31279type RevokeEndpointAccessOutput struct {
31280	_ struct{} `type:"structure"`
31281
31282	// Indicates whether all VPCs in the grantee account are allowed access to the
31283	// cluster.
31284	AllowedAllVPCs *bool `type:"boolean"`
31285
31286	// The VPCs allowed access to the cluster.
31287	AllowedVPCs []*string `locationNameList:"VpcIdentifier" type:"list"`
31288
31289	// The time (UTC) when the authorization was created.
31290	AuthorizeTime *time.Time `type:"timestamp"`
31291
31292	// The cluster identifier.
31293	ClusterIdentifier *string `type:"string"`
31294
31295	// The status of the cluster.
31296	ClusterStatus *string `type:"string"`
31297
31298	// The number of Redshift-managed VPC endpoints created for the authorization.
31299	EndpointCount *int64 `type:"integer"`
31300
31301	// The Amazon Web Services account ID of the grantee of the cluster.
31302	Grantee *string `type:"string"`
31303
31304	// The Amazon Web Services account ID of the cluster owner.
31305	Grantor *string `type:"string"`
31306
31307	// The status of the authorization action.
31308	Status *string `type:"string" enum:"AuthorizationStatus"`
31309}
31310
31311// String returns the string representation.
31312//
31313// API parameter values that are decorated as "sensitive" in the API will not
31314// be included in the string output. The member name will be present, but the
31315// value will be replaced with "sensitive".
31316func (s RevokeEndpointAccessOutput) String() string {
31317	return awsutil.Prettify(s)
31318}
31319
31320// GoString returns the string representation.
31321//
31322// API parameter values that are decorated as "sensitive" in the API will not
31323// be included in the string output. The member name will be present, but the
31324// value will be replaced with "sensitive".
31325func (s RevokeEndpointAccessOutput) GoString() string {
31326	return s.String()
31327}
31328
31329// SetAllowedAllVPCs sets the AllowedAllVPCs field's value.
31330func (s *RevokeEndpointAccessOutput) SetAllowedAllVPCs(v bool) *RevokeEndpointAccessOutput {
31331	s.AllowedAllVPCs = &v
31332	return s
31333}
31334
31335// SetAllowedVPCs sets the AllowedVPCs field's value.
31336func (s *RevokeEndpointAccessOutput) SetAllowedVPCs(v []*string) *RevokeEndpointAccessOutput {
31337	s.AllowedVPCs = v
31338	return s
31339}
31340
31341// SetAuthorizeTime sets the AuthorizeTime field's value.
31342func (s *RevokeEndpointAccessOutput) SetAuthorizeTime(v time.Time) *RevokeEndpointAccessOutput {
31343	s.AuthorizeTime = &v
31344	return s
31345}
31346
31347// SetClusterIdentifier sets the ClusterIdentifier field's value.
31348func (s *RevokeEndpointAccessOutput) SetClusterIdentifier(v string) *RevokeEndpointAccessOutput {
31349	s.ClusterIdentifier = &v
31350	return s
31351}
31352
31353// SetClusterStatus sets the ClusterStatus field's value.
31354func (s *RevokeEndpointAccessOutput) SetClusterStatus(v string) *RevokeEndpointAccessOutput {
31355	s.ClusterStatus = &v
31356	return s
31357}
31358
31359// SetEndpointCount sets the EndpointCount field's value.
31360func (s *RevokeEndpointAccessOutput) SetEndpointCount(v int64) *RevokeEndpointAccessOutput {
31361	s.EndpointCount = &v
31362	return s
31363}
31364
31365// SetGrantee sets the Grantee field's value.
31366func (s *RevokeEndpointAccessOutput) SetGrantee(v string) *RevokeEndpointAccessOutput {
31367	s.Grantee = &v
31368	return s
31369}
31370
31371// SetGrantor sets the Grantor field's value.
31372func (s *RevokeEndpointAccessOutput) SetGrantor(v string) *RevokeEndpointAccessOutput {
31373	s.Grantor = &v
31374	return s
31375}
31376
31377// SetStatus sets the Status field's value.
31378func (s *RevokeEndpointAccessOutput) SetStatus(v string) *RevokeEndpointAccessOutput {
31379	s.Status = &v
31380	return s
31381}
31382
31383type RevokeSnapshotAccessInput struct {
31384	_ struct{} `type:"structure"`
31385
31386	// The identifier of the Amazon Web Services account that can no longer restore
31387	// the specified snapshot.
31388	//
31389	// AccountWithRestoreAccess is a required field
31390	AccountWithRestoreAccess *string `type:"string" required:"true"`
31391
31392	// The identifier of the cluster the snapshot was created from. This parameter
31393	// is required if your IAM user has a policy containing a snapshot resource
31394	// element that specifies anything other than * for the cluster name.
31395	SnapshotClusterIdentifier *string `type:"string"`
31396
31397	// The identifier of the snapshot that the account can no longer access.
31398	//
31399	// SnapshotIdentifier is a required field
31400	SnapshotIdentifier *string `type:"string" required:"true"`
31401}
31402
31403// String returns the string representation.
31404//
31405// API parameter values that are decorated as "sensitive" in the API will not
31406// be included in the string output. The member name will be present, but the
31407// value will be replaced with "sensitive".
31408func (s RevokeSnapshotAccessInput) String() string {
31409	return awsutil.Prettify(s)
31410}
31411
31412// GoString returns the string representation.
31413//
31414// API parameter values that are decorated as "sensitive" in the API will not
31415// be included in the string output. The member name will be present, but the
31416// value will be replaced with "sensitive".
31417func (s RevokeSnapshotAccessInput) GoString() string {
31418	return s.String()
31419}
31420
31421// Validate inspects the fields of the type to determine if they are valid.
31422func (s *RevokeSnapshotAccessInput) Validate() error {
31423	invalidParams := request.ErrInvalidParams{Context: "RevokeSnapshotAccessInput"}
31424	if s.AccountWithRestoreAccess == nil {
31425		invalidParams.Add(request.NewErrParamRequired("AccountWithRestoreAccess"))
31426	}
31427	if s.SnapshotIdentifier == nil {
31428		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
31429	}
31430
31431	if invalidParams.Len() > 0 {
31432		return invalidParams
31433	}
31434	return nil
31435}
31436
31437// SetAccountWithRestoreAccess sets the AccountWithRestoreAccess field's value.
31438func (s *RevokeSnapshotAccessInput) SetAccountWithRestoreAccess(v string) *RevokeSnapshotAccessInput {
31439	s.AccountWithRestoreAccess = &v
31440	return s
31441}
31442
31443// SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
31444func (s *RevokeSnapshotAccessInput) SetSnapshotClusterIdentifier(v string) *RevokeSnapshotAccessInput {
31445	s.SnapshotClusterIdentifier = &v
31446	return s
31447}
31448
31449// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
31450func (s *RevokeSnapshotAccessInput) SetSnapshotIdentifier(v string) *RevokeSnapshotAccessInput {
31451	s.SnapshotIdentifier = &v
31452	return s
31453}
31454
31455type RevokeSnapshotAccessOutput struct {
31456	_ struct{} `type:"structure"`
31457
31458	// Describes a snapshot.
31459	Snapshot *Snapshot `type:"structure"`
31460}
31461
31462// String returns the string representation.
31463//
31464// API parameter values that are decorated as "sensitive" in the API will not
31465// be included in the string output. The member name will be present, but the
31466// value will be replaced with "sensitive".
31467func (s RevokeSnapshotAccessOutput) String() string {
31468	return awsutil.Prettify(s)
31469}
31470
31471// GoString returns the string representation.
31472//
31473// API parameter values that are decorated as "sensitive" in the API will not
31474// be included in the string output. The member name will be present, but the
31475// value will be replaced with "sensitive".
31476func (s RevokeSnapshotAccessOutput) GoString() string {
31477	return s.String()
31478}
31479
31480// SetSnapshot sets the Snapshot field's value.
31481func (s *RevokeSnapshotAccessOutput) SetSnapshot(v *Snapshot) *RevokeSnapshotAccessOutput {
31482	s.Snapshot = v
31483	return s
31484}
31485
31486type RotateEncryptionKeyInput struct {
31487	_ struct{} `type:"structure"`
31488
31489	// The unique identifier of the cluster that you want to rotate the encryption
31490	// keys for.
31491	//
31492	// Constraints: Must be the name of valid cluster that has encryption enabled.
31493	//
31494	// ClusterIdentifier is a required field
31495	ClusterIdentifier *string `type:"string" required:"true"`
31496}
31497
31498// String returns the string representation.
31499//
31500// API parameter values that are decorated as "sensitive" in the API will not
31501// be included in the string output. The member name will be present, but the
31502// value will be replaced with "sensitive".
31503func (s RotateEncryptionKeyInput) String() string {
31504	return awsutil.Prettify(s)
31505}
31506
31507// GoString returns the string representation.
31508//
31509// API parameter values that are decorated as "sensitive" in the API will not
31510// be included in the string output. The member name will be present, but the
31511// value will be replaced with "sensitive".
31512func (s RotateEncryptionKeyInput) GoString() string {
31513	return s.String()
31514}
31515
31516// Validate inspects the fields of the type to determine if they are valid.
31517func (s *RotateEncryptionKeyInput) Validate() error {
31518	invalidParams := request.ErrInvalidParams{Context: "RotateEncryptionKeyInput"}
31519	if s.ClusterIdentifier == nil {
31520		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
31521	}
31522
31523	if invalidParams.Len() > 0 {
31524		return invalidParams
31525	}
31526	return nil
31527}
31528
31529// SetClusterIdentifier sets the ClusterIdentifier field's value.
31530func (s *RotateEncryptionKeyInput) SetClusterIdentifier(v string) *RotateEncryptionKeyInput {
31531	s.ClusterIdentifier = &v
31532	return s
31533}
31534
31535type RotateEncryptionKeyOutput struct {
31536	_ struct{} `type:"structure"`
31537
31538	// Describes a cluster.
31539	Cluster *Cluster `type:"structure"`
31540}
31541
31542// String returns the string representation.
31543//
31544// API parameter values that are decorated as "sensitive" in the API will not
31545// be included in the string output. The member name will be present, but the
31546// value will be replaced with "sensitive".
31547func (s RotateEncryptionKeyOutput) String() string {
31548	return awsutil.Prettify(s)
31549}
31550
31551// GoString returns the string representation.
31552//
31553// API parameter values that are decorated as "sensitive" in the API will not
31554// be included in the string output. The member name will be present, but the
31555// value will be replaced with "sensitive".
31556func (s RotateEncryptionKeyOutput) GoString() string {
31557	return s.String()
31558}
31559
31560// SetCluster sets the Cluster field's value.
31561func (s *RotateEncryptionKeyOutput) SetCluster(v *Cluster) *RotateEncryptionKeyOutput {
31562	s.Cluster = v
31563	return s
31564}
31565
31566// Describes a scheduled action. You can use a scheduled action to trigger some
31567// Amazon Redshift API operations on a schedule. For information about which
31568// API operations can be scheduled, see ScheduledActionType.
31569type ScheduledAction struct {
31570	_ struct{} `type:"structure"`
31571
31572	// The end time in UTC when the schedule is no longer active. After this time,
31573	// the scheduled action does not trigger.
31574	EndTime *time.Time `type:"timestamp"`
31575
31576	// The IAM role to assume to run the scheduled action. This IAM role must have
31577	// permission to run the Amazon Redshift API operation in the scheduled action.
31578	// This IAM role must allow the Amazon Redshift scheduler (Principal scheduler.redshift.amazonaws.com)
31579	// to assume permissions on your behalf. For more information about the IAM
31580	// role to use with the Amazon Redshift scheduler, see Using Identity-Based
31581	// Policies for Amazon Redshift (https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html)
31582	// in the Amazon Redshift Cluster Management Guide.
31583	IamRole *string `type:"string"`
31584
31585	// List of times when the scheduled action will run.
31586	NextInvocations []*time.Time `locationNameList:"ScheduledActionTime" type:"list"`
31587
31588	// The schedule for a one-time (at format) or recurring (cron format) scheduled
31589	// action. Schedule invocations must be separated by at least one hour.
31590	//
31591	// Format of at expressions is "at(yyyy-mm-ddThh:mm:ss)". For example, "at(2016-03-04T17:27:00)".
31592	//
31593	// Format of cron expressions is "cron(Minutes Hours Day-of-month Month Day-of-week
31594	// Year)". For example, "cron(0 10 ? * MON *)". For more information, see Cron
31595	// Expressions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions)
31596	// in the Amazon CloudWatch Events User Guide.
31597	Schedule *string `type:"string"`
31598
31599	// The description of the scheduled action.
31600	ScheduledActionDescription *string `type:"string"`
31601
31602	// The name of the scheduled action.
31603	ScheduledActionName *string `type:"string"`
31604
31605	// The start time in UTC when the schedule is active. Before this time, the
31606	// scheduled action does not trigger.
31607	StartTime *time.Time `type:"timestamp"`
31608
31609	// The state of the scheduled action. For example, DISABLED.
31610	State *string `type:"string" enum:"ScheduledActionState"`
31611
31612	// A JSON format string of the Amazon Redshift API operation with input parameters.
31613	//
31614	// "{\"ResizeCluster\":{\"NodeType\":\"ds2.8xlarge\",\"ClusterIdentifier\":\"my-test-cluster\",\"NumberOfNodes\":3}}".
31615	TargetAction *ScheduledActionType `type:"structure"`
31616}
31617
31618// String returns the string representation.
31619//
31620// API parameter values that are decorated as "sensitive" in the API will not
31621// be included in the string output. The member name will be present, but the
31622// value will be replaced with "sensitive".
31623func (s ScheduledAction) String() string {
31624	return awsutil.Prettify(s)
31625}
31626
31627// GoString returns the string representation.
31628//
31629// API parameter values that are decorated as "sensitive" in the API will not
31630// be included in the string output. The member name will be present, but the
31631// value will be replaced with "sensitive".
31632func (s ScheduledAction) GoString() string {
31633	return s.String()
31634}
31635
31636// SetEndTime sets the EndTime field's value.
31637func (s *ScheduledAction) SetEndTime(v time.Time) *ScheduledAction {
31638	s.EndTime = &v
31639	return s
31640}
31641
31642// SetIamRole sets the IamRole field's value.
31643func (s *ScheduledAction) SetIamRole(v string) *ScheduledAction {
31644	s.IamRole = &v
31645	return s
31646}
31647
31648// SetNextInvocations sets the NextInvocations field's value.
31649func (s *ScheduledAction) SetNextInvocations(v []*time.Time) *ScheduledAction {
31650	s.NextInvocations = v
31651	return s
31652}
31653
31654// SetSchedule sets the Schedule field's value.
31655func (s *ScheduledAction) SetSchedule(v string) *ScheduledAction {
31656	s.Schedule = &v
31657	return s
31658}
31659
31660// SetScheduledActionDescription sets the ScheduledActionDescription field's value.
31661func (s *ScheduledAction) SetScheduledActionDescription(v string) *ScheduledAction {
31662	s.ScheduledActionDescription = &v
31663	return s
31664}
31665
31666// SetScheduledActionName sets the ScheduledActionName field's value.
31667func (s *ScheduledAction) SetScheduledActionName(v string) *ScheduledAction {
31668	s.ScheduledActionName = &v
31669	return s
31670}
31671
31672// SetStartTime sets the StartTime field's value.
31673func (s *ScheduledAction) SetStartTime(v time.Time) *ScheduledAction {
31674	s.StartTime = &v
31675	return s
31676}
31677
31678// SetState sets the State field's value.
31679func (s *ScheduledAction) SetState(v string) *ScheduledAction {
31680	s.State = &v
31681	return s
31682}
31683
31684// SetTargetAction sets the TargetAction field's value.
31685func (s *ScheduledAction) SetTargetAction(v *ScheduledActionType) *ScheduledAction {
31686	s.TargetAction = v
31687	return s
31688}
31689
31690// A set of elements to filter the returned scheduled actions.
31691type ScheduledActionFilter struct {
31692	_ struct{} `type:"structure"`
31693
31694	// The type of element to filter.
31695	//
31696	// Name is a required field
31697	Name *string `type:"string" required:"true" enum:"ScheduledActionFilterName"`
31698
31699	// List of values. Compare if the value (of type defined by Name) equals an
31700	// item in the list of scheduled actions.
31701	//
31702	// Values is a required field
31703	Values []*string `locationNameList:"item" type:"list" required:"true"`
31704}
31705
31706// String returns the string representation.
31707//
31708// API parameter values that are decorated as "sensitive" in the API will not
31709// be included in the string output. The member name will be present, but the
31710// value will be replaced with "sensitive".
31711func (s ScheduledActionFilter) String() string {
31712	return awsutil.Prettify(s)
31713}
31714
31715// GoString returns the string representation.
31716//
31717// API parameter values that are decorated as "sensitive" in the API will not
31718// be included in the string output. The member name will be present, but the
31719// value will be replaced with "sensitive".
31720func (s ScheduledActionFilter) GoString() string {
31721	return s.String()
31722}
31723
31724// Validate inspects the fields of the type to determine if they are valid.
31725func (s *ScheduledActionFilter) Validate() error {
31726	invalidParams := request.ErrInvalidParams{Context: "ScheduledActionFilter"}
31727	if s.Name == nil {
31728		invalidParams.Add(request.NewErrParamRequired("Name"))
31729	}
31730	if s.Values == nil {
31731		invalidParams.Add(request.NewErrParamRequired("Values"))
31732	}
31733
31734	if invalidParams.Len() > 0 {
31735		return invalidParams
31736	}
31737	return nil
31738}
31739
31740// SetName sets the Name field's value.
31741func (s *ScheduledActionFilter) SetName(v string) *ScheduledActionFilter {
31742	s.Name = &v
31743	return s
31744}
31745
31746// SetValues sets the Values field's value.
31747func (s *ScheduledActionFilter) SetValues(v []*string) *ScheduledActionFilter {
31748	s.Values = v
31749	return s
31750}
31751
31752// The action type that specifies an Amazon Redshift API operation that is supported
31753// by the Amazon Redshift scheduler.
31754type ScheduledActionType struct {
31755	_ struct{} `type:"structure"`
31756
31757	// An action that runs a PauseCluster API operation.
31758	PauseCluster *PauseClusterMessage `type:"structure"`
31759
31760	// An action that runs a ResizeCluster API operation.
31761	ResizeCluster *ResizeClusterMessage `type:"structure"`
31762
31763	// An action that runs a ResumeCluster API operation.
31764	ResumeCluster *ResumeClusterMessage `type:"structure"`
31765}
31766
31767// String returns the string representation.
31768//
31769// API parameter values that are decorated as "sensitive" in the API will not
31770// be included in the string output. The member name will be present, but the
31771// value will be replaced with "sensitive".
31772func (s ScheduledActionType) String() string {
31773	return awsutil.Prettify(s)
31774}
31775
31776// GoString returns the string representation.
31777//
31778// API parameter values that are decorated as "sensitive" in the API will not
31779// be included in the string output. The member name will be present, but the
31780// value will be replaced with "sensitive".
31781func (s ScheduledActionType) GoString() string {
31782	return s.String()
31783}
31784
31785// Validate inspects the fields of the type to determine if they are valid.
31786func (s *ScheduledActionType) Validate() error {
31787	invalidParams := request.ErrInvalidParams{Context: "ScheduledActionType"}
31788	if s.PauseCluster != nil {
31789		if err := s.PauseCluster.Validate(); err != nil {
31790			invalidParams.AddNested("PauseCluster", err.(request.ErrInvalidParams))
31791		}
31792	}
31793	if s.ResizeCluster != nil {
31794		if err := s.ResizeCluster.Validate(); err != nil {
31795			invalidParams.AddNested("ResizeCluster", err.(request.ErrInvalidParams))
31796		}
31797	}
31798	if s.ResumeCluster != nil {
31799		if err := s.ResumeCluster.Validate(); err != nil {
31800			invalidParams.AddNested("ResumeCluster", err.(request.ErrInvalidParams))
31801		}
31802	}
31803
31804	if invalidParams.Len() > 0 {
31805		return invalidParams
31806	}
31807	return nil
31808}
31809
31810// SetPauseCluster sets the PauseCluster field's value.
31811func (s *ScheduledActionType) SetPauseCluster(v *PauseClusterMessage) *ScheduledActionType {
31812	s.PauseCluster = v
31813	return s
31814}
31815
31816// SetResizeCluster sets the ResizeCluster field's value.
31817func (s *ScheduledActionType) SetResizeCluster(v *ResizeClusterMessage) *ScheduledActionType {
31818	s.ResizeCluster = v
31819	return s
31820}
31821
31822// SetResumeCluster sets the ResumeCluster field's value.
31823func (s *ScheduledActionType) SetResumeCluster(v *ResumeClusterMessage) *ScheduledActionType {
31824	s.ResumeCluster = v
31825	return s
31826}
31827
31828// Describes a snapshot.
31829type Snapshot struct {
31830	_ struct{} `type:"structure"`
31831
31832	// A list of the Amazon Web Services accounts authorized to restore the snapshot.
31833	// Returns null if no accounts are authorized. Visible only to the snapshot
31834	// owner.
31835	AccountsWithRestoreAccess []*AccountWithRestoreAccess `locationNameList:"AccountWithRestoreAccess" type:"list"`
31836
31837	// The size of the incremental backup.
31838	ActualIncrementalBackupSizeInMegaBytes *float64 `type:"double"`
31839
31840	// The Availability Zone in which the cluster was created.
31841	AvailabilityZone *string `type:"string"`
31842
31843	// The number of megabytes that have been transferred to the snapshot backup.
31844	BackupProgressInMegaBytes *float64 `type:"double"`
31845
31846	// The time (UTC) when the cluster was originally created.
31847	ClusterCreateTime *time.Time `type:"timestamp"`
31848
31849	// The identifier of the cluster for which the snapshot was taken.
31850	ClusterIdentifier *string `type:"string"`
31851
31852	// The version ID of the Amazon Redshift engine that is running on the cluster.
31853	ClusterVersion *string `type:"string"`
31854
31855	// The number of megabytes per second being transferred to the snapshot backup.
31856	// Returns 0 for a completed backup.
31857	CurrentBackupRateInMegaBytesPerSecond *float64 `type:"double"`
31858
31859	// The name of the database that was created when the cluster was created.
31860	DBName *string `type:"string"`
31861
31862	// The amount of time an in-progress snapshot backup has been running, or the
31863	// amount of time it took a completed backup to finish.
31864	ElapsedTimeInSeconds *int64 `type:"long"`
31865
31866	// If true, the data in the snapshot is encrypted at rest.
31867	Encrypted *bool `type:"boolean"`
31868
31869	// A boolean that indicates whether the snapshot data is encrypted using the
31870	// HSM keys of the source cluster. true indicates that the data is encrypted
31871	// using HSM keys.
31872	EncryptedWithHSM *bool `type:"boolean"`
31873
31874	// The cluster version of the cluster used to create the snapshot. For example,
31875	// 1.0.15503.
31876	EngineFullVersion *string `type:"string"`
31877
31878	// An option that specifies whether to create the cluster with enhanced VPC
31879	// routing enabled. To create a cluster that uses enhanced VPC routing, the
31880	// cluster must be in a VPC. For more information, see Enhanced VPC Routing
31881	// (https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
31882	// in the Amazon Redshift Cluster Management Guide.
31883	//
31884	// If this option is true, enhanced VPC routing is enabled.
31885	//
31886	// Default: false
31887	EnhancedVpcRouting *bool `type:"boolean"`
31888
31889	// The estimate of the time remaining before the snapshot backup will complete.
31890	// Returns 0 for a completed backup.
31891	EstimatedSecondsToCompletion *int64 `type:"long"`
31892
31893	// The Key Management Service (KMS) key ID of the encryption key that was used
31894	// to encrypt data in the cluster from which the snapshot was taken.
31895	KmsKeyId *string `type:"string"`
31896
31897	// The name of the maintenance track for the snapshot.
31898	MaintenanceTrackName *string `type:"string"`
31899
31900	// The number of days until a manual snapshot will pass its retention period.
31901	ManualSnapshotRemainingDays *int64 `type:"integer"`
31902
31903	// The number of days that a manual snapshot is retained. If the value is -1,
31904	// the manual snapshot is retained indefinitely.
31905	//
31906	// The value must be either -1 or an integer between 1 and 3,653.
31907	ManualSnapshotRetentionPeriod *int64 `type:"integer"`
31908
31909	// The admin user name for the cluster.
31910	MasterUsername *string `type:"string"`
31911
31912	// The node type of the nodes in the cluster.
31913	NodeType *string `type:"string"`
31914
31915	// The number of nodes in the cluster.
31916	NumberOfNodes *int64 `type:"integer"`
31917
31918	// For manual snapshots, the Amazon Web Services account used to create or copy
31919	// the snapshot. For automatic snapshots, the owner of the cluster. The owner
31920	// can perform all snapshot actions, such as sharing a manual snapshot.
31921	OwnerAccount *string `type:"string"`
31922
31923	// The port that the cluster is listening on.
31924	Port *int64 `type:"integer"`
31925
31926	// The list of node types that this cluster snapshot is able to restore into.
31927	RestorableNodeTypes []*string `locationNameList:"NodeType" type:"list"`
31928
31929	// The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot
31930	// contains a copy of the cluster data as of this exact time.
31931	SnapshotCreateTime *time.Time `type:"timestamp"`
31932
31933	// The snapshot identifier that is provided in the request.
31934	SnapshotIdentifier *string `type:"string"`
31935
31936	// A timestamp representing the start of the retention period for the snapshot.
31937	SnapshotRetentionStartTime *time.Time `type:"timestamp"`
31938
31939	// The snapshot type. Snapshots created using CreateClusterSnapshot and CopyClusterSnapshot
31940	// are of type "manual".
31941	SnapshotType *string `type:"string"`
31942
31943	// The source region from which the snapshot was copied.
31944	SourceRegion *string `type:"string"`
31945
31946	// The snapshot status. The value of the status depends on the API operation
31947	// used:
31948	//
31949	//    * CreateClusterSnapshot and CopyClusterSnapshot returns status as "creating".
31950	//
31951	//    * DescribeClusterSnapshots returns status as "creating", "available",
31952	//    "final snapshot", or "failed".
31953	//
31954	//    * DeleteClusterSnapshot returns status as "deleted".
31955	Status *string `type:"string"`
31956
31957	// The list of tags for the cluster snapshot.
31958	Tags []*Tag `locationNameList:"Tag" type:"list"`
31959
31960	// The size of the complete set of backup data that would be used to restore
31961	// the cluster.
31962	TotalBackupSizeInMegaBytes *float64 `type:"double"`
31963
31964	// The VPC identifier of the cluster if the snapshot is from a cluster in a
31965	// VPC. Otherwise, this field is not in the output.
31966	VpcId *string `type:"string"`
31967}
31968
31969// String returns the string representation.
31970//
31971// API parameter values that are decorated as "sensitive" in the API will not
31972// be included in the string output. The member name will be present, but the
31973// value will be replaced with "sensitive".
31974func (s Snapshot) String() string {
31975	return awsutil.Prettify(s)
31976}
31977
31978// GoString returns the string representation.
31979//
31980// API parameter values that are decorated as "sensitive" in the API will not
31981// be included in the string output. The member name will be present, but the
31982// value will be replaced with "sensitive".
31983func (s Snapshot) GoString() string {
31984	return s.String()
31985}
31986
31987// SetAccountsWithRestoreAccess sets the AccountsWithRestoreAccess field's value.
31988func (s *Snapshot) SetAccountsWithRestoreAccess(v []*AccountWithRestoreAccess) *Snapshot {
31989	s.AccountsWithRestoreAccess = v
31990	return s
31991}
31992
31993// SetActualIncrementalBackupSizeInMegaBytes sets the ActualIncrementalBackupSizeInMegaBytes field's value.
31994func (s *Snapshot) SetActualIncrementalBackupSizeInMegaBytes(v float64) *Snapshot {
31995	s.ActualIncrementalBackupSizeInMegaBytes = &v
31996	return s
31997}
31998
31999// SetAvailabilityZone sets the AvailabilityZone field's value.
32000func (s *Snapshot) SetAvailabilityZone(v string) *Snapshot {
32001	s.AvailabilityZone = &v
32002	return s
32003}
32004
32005// SetBackupProgressInMegaBytes sets the BackupProgressInMegaBytes field's value.
32006func (s *Snapshot) SetBackupProgressInMegaBytes(v float64) *Snapshot {
32007	s.BackupProgressInMegaBytes = &v
32008	return s
32009}
32010
32011// SetClusterCreateTime sets the ClusterCreateTime field's value.
32012func (s *Snapshot) SetClusterCreateTime(v time.Time) *Snapshot {
32013	s.ClusterCreateTime = &v
32014	return s
32015}
32016
32017// SetClusterIdentifier sets the ClusterIdentifier field's value.
32018func (s *Snapshot) SetClusterIdentifier(v string) *Snapshot {
32019	s.ClusterIdentifier = &v
32020	return s
32021}
32022
32023// SetClusterVersion sets the ClusterVersion field's value.
32024func (s *Snapshot) SetClusterVersion(v string) *Snapshot {
32025	s.ClusterVersion = &v
32026	return s
32027}
32028
32029// SetCurrentBackupRateInMegaBytesPerSecond sets the CurrentBackupRateInMegaBytesPerSecond field's value.
32030func (s *Snapshot) SetCurrentBackupRateInMegaBytesPerSecond(v float64) *Snapshot {
32031	s.CurrentBackupRateInMegaBytesPerSecond = &v
32032	return s
32033}
32034
32035// SetDBName sets the DBName field's value.
32036func (s *Snapshot) SetDBName(v string) *Snapshot {
32037	s.DBName = &v
32038	return s
32039}
32040
32041// SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
32042func (s *Snapshot) SetElapsedTimeInSeconds(v int64) *Snapshot {
32043	s.ElapsedTimeInSeconds = &v
32044	return s
32045}
32046
32047// SetEncrypted sets the Encrypted field's value.
32048func (s *Snapshot) SetEncrypted(v bool) *Snapshot {
32049	s.Encrypted = &v
32050	return s
32051}
32052
32053// SetEncryptedWithHSM sets the EncryptedWithHSM field's value.
32054func (s *Snapshot) SetEncryptedWithHSM(v bool) *Snapshot {
32055	s.EncryptedWithHSM = &v
32056	return s
32057}
32058
32059// SetEngineFullVersion sets the EngineFullVersion field's value.
32060func (s *Snapshot) SetEngineFullVersion(v string) *Snapshot {
32061	s.EngineFullVersion = &v
32062	return s
32063}
32064
32065// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
32066func (s *Snapshot) SetEnhancedVpcRouting(v bool) *Snapshot {
32067	s.EnhancedVpcRouting = &v
32068	return s
32069}
32070
32071// SetEstimatedSecondsToCompletion sets the EstimatedSecondsToCompletion field's value.
32072func (s *Snapshot) SetEstimatedSecondsToCompletion(v int64) *Snapshot {
32073	s.EstimatedSecondsToCompletion = &v
32074	return s
32075}
32076
32077// SetKmsKeyId sets the KmsKeyId field's value.
32078func (s *Snapshot) SetKmsKeyId(v string) *Snapshot {
32079	s.KmsKeyId = &v
32080	return s
32081}
32082
32083// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
32084func (s *Snapshot) SetMaintenanceTrackName(v string) *Snapshot {
32085	s.MaintenanceTrackName = &v
32086	return s
32087}
32088
32089// SetManualSnapshotRemainingDays sets the ManualSnapshotRemainingDays field's value.
32090func (s *Snapshot) SetManualSnapshotRemainingDays(v int64) *Snapshot {
32091	s.ManualSnapshotRemainingDays = &v
32092	return s
32093}
32094
32095// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
32096func (s *Snapshot) SetManualSnapshotRetentionPeriod(v int64) *Snapshot {
32097	s.ManualSnapshotRetentionPeriod = &v
32098	return s
32099}
32100
32101// SetMasterUsername sets the MasterUsername field's value.
32102func (s *Snapshot) SetMasterUsername(v string) *Snapshot {
32103	s.MasterUsername = &v
32104	return s
32105}
32106
32107// SetNodeType sets the NodeType field's value.
32108func (s *Snapshot) SetNodeType(v string) *Snapshot {
32109	s.NodeType = &v
32110	return s
32111}
32112
32113// SetNumberOfNodes sets the NumberOfNodes field's value.
32114func (s *Snapshot) SetNumberOfNodes(v int64) *Snapshot {
32115	s.NumberOfNodes = &v
32116	return s
32117}
32118
32119// SetOwnerAccount sets the OwnerAccount field's value.
32120func (s *Snapshot) SetOwnerAccount(v string) *Snapshot {
32121	s.OwnerAccount = &v
32122	return s
32123}
32124
32125// SetPort sets the Port field's value.
32126func (s *Snapshot) SetPort(v int64) *Snapshot {
32127	s.Port = &v
32128	return s
32129}
32130
32131// SetRestorableNodeTypes sets the RestorableNodeTypes field's value.
32132func (s *Snapshot) SetRestorableNodeTypes(v []*string) *Snapshot {
32133	s.RestorableNodeTypes = v
32134	return s
32135}
32136
32137// SetSnapshotCreateTime sets the SnapshotCreateTime field's value.
32138func (s *Snapshot) SetSnapshotCreateTime(v time.Time) *Snapshot {
32139	s.SnapshotCreateTime = &v
32140	return s
32141}
32142
32143// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
32144func (s *Snapshot) SetSnapshotIdentifier(v string) *Snapshot {
32145	s.SnapshotIdentifier = &v
32146	return s
32147}
32148
32149// SetSnapshotRetentionStartTime sets the SnapshotRetentionStartTime field's value.
32150func (s *Snapshot) SetSnapshotRetentionStartTime(v time.Time) *Snapshot {
32151	s.SnapshotRetentionStartTime = &v
32152	return s
32153}
32154
32155// SetSnapshotType sets the SnapshotType field's value.
32156func (s *Snapshot) SetSnapshotType(v string) *Snapshot {
32157	s.SnapshotType = &v
32158	return s
32159}
32160
32161// SetSourceRegion sets the SourceRegion field's value.
32162func (s *Snapshot) SetSourceRegion(v string) *Snapshot {
32163	s.SourceRegion = &v
32164	return s
32165}
32166
32167// SetStatus sets the Status field's value.
32168func (s *Snapshot) SetStatus(v string) *Snapshot {
32169	s.Status = &v
32170	return s
32171}
32172
32173// SetTags sets the Tags field's value.
32174func (s *Snapshot) SetTags(v []*Tag) *Snapshot {
32175	s.Tags = v
32176	return s
32177}
32178
32179// SetTotalBackupSizeInMegaBytes sets the TotalBackupSizeInMegaBytes field's value.
32180func (s *Snapshot) SetTotalBackupSizeInMegaBytes(v float64) *Snapshot {
32181	s.TotalBackupSizeInMegaBytes = &v
32182	return s
32183}
32184
32185// SetVpcId sets the VpcId field's value.
32186func (s *Snapshot) SetVpcId(v string) *Snapshot {
32187	s.VpcId = &v
32188	return s
32189}
32190
32191// The snapshot copy grant that grants Amazon Redshift permission to encrypt
32192// copied snapshots with the specified customer master key (CMK) from Amazon
32193// Web Services KMS in the destination region.
32194//
32195// For more information about managing snapshot copy grants, go to Amazon Redshift
32196// Database Encryption (https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
32197// in the Amazon Redshift Cluster Management Guide.
32198type SnapshotCopyGrant struct {
32199	_ struct{} `type:"structure"`
32200
32201	// The unique identifier of the customer master key (CMK) in Amazon Web Services
32202	// KMS to which Amazon Redshift is granted permission.
32203	KmsKeyId *string `type:"string"`
32204
32205	// The name of the snapshot copy grant.
32206	SnapshotCopyGrantName *string `type:"string"`
32207
32208	// A list of tag instances.
32209	Tags []*Tag `locationNameList:"Tag" type:"list"`
32210}
32211
32212// String returns the string representation.
32213//
32214// API parameter values that are decorated as "sensitive" in the API will not
32215// be included in the string output. The member name will be present, but the
32216// value will be replaced with "sensitive".
32217func (s SnapshotCopyGrant) String() string {
32218	return awsutil.Prettify(s)
32219}
32220
32221// GoString returns the string representation.
32222//
32223// API parameter values that are decorated as "sensitive" in the API will not
32224// be included in the string output. The member name will be present, but the
32225// value will be replaced with "sensitive".
32226func (s SnapshotCopyGrant) GoString() string {
32227	return s.String()
32228}
32229
32230// SetKmsKeyId sets the KmsKeyId field's value.
32231func (s *SnapshotCopyGrant) SetKmsKeyId(v string) *SnapshotCopyGrant {
32232	s.KmsKeyId = &v
32233	return s
32234}
32235
32236// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
32237func (s *SnapshotCopyGrant) SetSnapshotCopyGrantName(v string) *SnapshotCopyGrant {
32238	s.SnapshotCopyGrantName = &v
32239	return s
32240}
32241
32242// SetTags sets the Tags field's value.
32243func (s *SnapshotCopyGrant) SetTags(v []*Tag) *SnapshotCopyGrant {
32244	s.Tags = v
32245	return s
32246}
32247
32248// Describes the errors returned by a snapshot.
32249type SnapshotErrorMessage struct {
32250	_ struct{} `type:"structure"`
32251
32252	// The failure code for the error.
32253	FailureCode *string `type:"string"`
32254
32255	// The text message describing the error.
32256	FailureReason *string `type:"string"`
32257
32258	// A unique identifier for the cluster.
32259	SnapshotClusterIdentifier *string `type:"string"`
32260
32261	// A unique identifier for the snapshot returning the error.
32262	SnapshotIdentifier *string `type:"string"`
32263}
32264
32265// String returns the string representation.
32266//
32267// API parameter values that are decorated as "sensitive" in the API will not
32268// be included in the string output. The member name will be present, but the
32269// value will be replaced with "sensitive".
32270func (s SnapshotErrorMessage) String() string {
32271	return awsutil.Prettify(s)
32272}
32273
32274// GoString returns the string representation.
32275//
32276// API parameter values that are decorated as "sensitive" in the API will not
32277// be included in the string output. The member name will be present, but the
32278// value will be replaced with "sensitive".
32279func (s SnapshotErrorMessage) GoString() string {
32280	return s.String()
32281}
32282
32283// SetFailureCode sets the FailureCode field's value.
32284func (s *SnapshotErrorMessage) SetFailureCode(v string) *SnapshotErrorMessage {
32285	s.FailureCode = &v
32286	return s
32287}
32288
32289// SetFailureReason sets the FailureReason field's value.
32290func (s *SnapshotErrorMessage) SetFailureReason(v string) *SnapshotErrorMessage {
32291	s.FailureReason = &v
32292	return s
32293}
32294
32295// SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
32296func (s *SnapshotErrorMessage) SetSnapshotClusterIdentifier(v string) *SnapshotErrorMessage {
32297	s.SnapshotClusterIdentifier = &v
32298	return s
32299}
32300
32301// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
32302func (s *SnapshotErrorMessage) SetSnapshotIdentifier(v string) *SnapshotErrorMessage {
32303	s.SnapshotIdentifier = &v
32304	return s
32305}
32306
32307// Describes a snapshot schedule. You can set a regular interval for creating
32308// snapshots of a cluster. You can also schedule snapshots for specific dates.
32309type SnapshotSchedule struct {
32310	_ struct{} `type:"structure"`
32311
32312	// The number of clusters associated with the schedule.
32313	AssociatedClusterCount *int64 `type:"integer"`
32314
32315	// A list of clusters associated with the schedule. A maximum of 100 clusters
32316	// is returned.
32317	AssociatedClusters []*ClusterAssociatedToSchedule `locationNameList:"ClusterAssociatedToSchedule" type:"list"`
32318
32319	NextInvocations []*time.Time `locationNameList:"SnapshotTime" type:"list"`
32320
32321	// A list of ScheduleDefinitions.
32322	ScheduleDefinitions []*string `locationNameList:"ScheduleDefinition" type:"list"`
32323
32324	// The description of the schedule.
32325	ScheduleDescription *string `type:"string"`
32326
32327	// A unique identifier for the schedule.
32328	ScheduleIdentifier *string `type:"string"`
32329
32330	// An optional set of tags describing the schedule.
32331	Tags []*Tag `locationNameList:"Tag" type:"list"`
32332}
32333
32334// String returns the string representation.
32335//
32336// API parameter values that are decorated as "sensitive" in the API will not
32337// be included in the string output. The member name will be present, but the
32338// value will be replaced with "sensitive".
32339func (s SnapshotSchedule) String() string {
32340	return awsutil.Prettify(s)
32341}
32342
32343// GoString returns the string representation.
32344//
32345// API parameter values that are decorated as "sensitive" in the API will not
32346// be included in the string output. The member name will be present, but the
32347// value will be replaced with "sensitive".
32348func (s SnapshotSchedule) GoString() string {
32349	return s.String()
32350}
32351
32352// SetAssociatedClusterCount sets the AssociatedClusterCount field's value.
32353func (s *SnapshotSchedule) SetAssociatedClusterCount(v int64) *SnapshotSchedule {
32354	s.AssociatedClusterCount = &v
32355	return s
32356}
32357
32358// SetAssociatedClusters sets the AssociatedClusters field's value.
32359func (s *SnapshotSchedule) SetAssociatedClusters(v []*ClusterAssociatedToSchedule) *SnapshotSchedule {
32360	s.AssociatedClusters = v
32361	return s
32362}
32363
32364// SetNextInvocations sets the NextInvocations field's value.
32365func (s *SnapshotSchedule) SetNextInvocations(v []*time.Time) *SnapshotSchedule {
32366	s.NextInvocations = v
32367	return s
32368}
32369
32370// SetScheduleDefinitions sets the ScheduleDefinitions field's value.
32371func (s *SnapshotSchedule) SetScheduleDefinitions(v []*string) *SnapshotSchedule {
32372	s.ScheduleDefinitions = v
32373	return s
32374}
32375
32376// SetScheduleDescription sets the ScheduleDescription field's value.
32377func (s *SnapshotSchedule) SetScheduleDescription(v string) *SnapshotSchedule {
32378	s.ScheduleDescription = &v
32379	return s
32380}
32381
32382// SetScheduleIdentifier sets the ScheduleIdentifier field's value.
32383func (s *SnapshotSchedule) SetScheduleIdentifier(v string) *SnapshotSchedule {
32384	s.ScheduleIdentifier = &v
32385	return s
32386}
32387
32388// SetTags sets the Tags field's value.
32389func (s *SnapshotSchedule) SetTags(v []*Tag) *SnapshotSchedule {
32390	s.Tags = v
32391	return s
32392}
32393
32394// Describes a sorting entity
32395type SnapshotSortingEntity struct {
32396	_ struct{} `type:"structure"`
32397
32398	// The category for sorting the snapshots.
32399	//
32400	// Attribute is a required field
32401	Attribute *string `type:"string" required:"true" enum:"SnapshotAttributeToSortBy"`
32402
32403	// The order for listing the attributes.
32404	SortOrder *string `type:"string" enum:"SortByOrder"`
32405}
32406
32407// String returns the string representation.
32408//
32409// API parameter values that are decorated as "sensitive" in the API will not
32410// be included in the string output. The member name will be present, but the
32411// value will be replaced with "sensitive".
32412func (s SnapshotSortingEntity) String() string {
32413	return awsutil.Prettify(s)
32414}
32415
32416// GoString returns the string representation.
32417//
32418// API parameter values that are decorated as "sensitive" in the API will not
32419// be included in the string output. The member name will be present, but the
32420// value will be replaced with "sensitive".
32421func (s SnapshotSortingEntity) GoString() string {
32422	return s.String()
32423}
32424
32425// Validate inspects the fields of the type to determine if they are valid.
32426func (s *SnapshotSortingEntity) Validate() error {
32427	invalidParams := request.ErrInvalidParams{Context: "SnapshotSortingEntity"}
32428	if s.Attribute == nil {
32429		invalidParams.Add(request.NewErrParamRequired("Attribute"))
32430	}
32431
32432	if invalidParams.Len() > 0 {
32433		return invalidParams
32434	}
32435	return nil
32436}
32437
32438// SetAttribute sets the Attribute field's value.
32439func (s *SnapshotSortingEntity) SetAttribute(v string) *SnapshotSortingEntity {
32440	s.Attribute = &v
32441	return s
32442}
32443
32444// SetSortOrder sets the SortOrder field's value.
32445func (s *SnapshotSortingEntity) SetSortOrder(v string) *SnapshotSortingEntity {
32446	s.SortOrder = &v
32447	return s
32448}
32449
32450// Describes a subnet.
32451type Subnet struct {
32452	_ struct{} `type:"structure"`
32453
32454	// Describes an availability zone.
32455	SubnetAvailabilityZone *AvailabilityZone `type:"structure"`
32456
32457	// The identifier of the subnet.
32458	SubnetIdentifier *string `type:"string"`
32459
32460	// The status of the subnet.
32461	SubnetStatus *string `type:"string"`
32462}
32463
32464// String returns the string representation.
32465//
32466// API parameter values that are decorated as "sensitive" in the API will not
32467// be included in the string output. The member name will be present, but the
32468// value will be replaced with "sensitive".
32469func (s Subnet) String() string {
32470	return awsutil.Prettify(s)
32471}
32472
32473// GoString returns the string representation.
32474//
32475// API parameter values that are decorated as "sensitive" in the API will not
32476// be included in the string output. The member name will be present, but the
32477// value will be replaced with "sensitive".
32478func (s Subnet) GoString() string {
32479	return s.String()
32480}
32481
32482// SetSubnetAvailabilityZone sets the SubnetAvailabilityZone field's value.
32483func (s *Subnet) SetSubnetAvailabilityZone(v *AvailabilityZone) *Subnet {
32484	s.SubnetAvailabilityZone = v
32485	return s
32486}
32487
32488// SetSubnetIdentifier sets the SubnetIdentifier field's value.
32489func (s *Subnet) SetSubnetIdentifier(v string) *Subnet {
32490	s.SubnetIdentifier = &v
32491	return s
32492}
32493
32494// SetSubnetStatus sets the SubnetStatus field's value.
32495func (s *Subnet) SetSubnetStatus(v string) *Subnet {
32496	s.SubnetStatus = &v
32497	return s
32498}
32499
32500// Describes the operations that are allowed on a maintenance track.
32501type SupportedOperation struct {
32502	_ struct{} `type:"structure"`
32503
32504	// A list of the supported operations.
32505	OperationName *string `type:"string"`
32506}
32507
32508// String returns the string representation.
32509//
32510// API parameter values that are decorated as "sensitive" in the API will not
32511// be included in the string output. The member name will be present, but the
32512// value will be replaced with "sensitive".
32513func (s SupportedOperation) String() string {
32514	return awsutil.Prettify(s)
32515}
32516
32517// GoString returns the string representation.
32518//
32519// API parameter values that are decorated as "sensitive" in the API will not
32520// be included in the string output. The member name will be present, but the
32521// value will be replaced with "sensitive".
32522func (s SupportedOperation) GoString() string {
32523	return s.String()
32524}
32525
32526// SetOperationName sets the OperationName field's value.
32527func (s *SupportedOperation) SetOperationName(v string) *SupportedOperation {
32528	s.OperationName = &v
32529	return s
32530}
32531
32532// A list of supported platforms for orderable clusters.
32533type SupportedPlatform struct {
32534	_ struct{} `type:"structure"`
32535
32536	Name *string `type:"string"`
32537}
32538
32539// String returns the string representation.
32540//
32541// API parameter values that are decorated as "sensitive" in the API will not
32542// be included in the string output. The member name will be present, but the
32543// value will be replaced with "sensitive".
32544func (s SupportedPlatform) String() string {
32545	return awsutil.Prettify(s)
32546}
32547
32548// GoString returns the string representation.
32549//
32550// API parameter values that are decorated as "sensitive" in the API will not
32551// be included in the string output. The member name will be present, but the
32552// value will be replaced with "sensitive".
32553func (s SupportedPlatform) GoString() string {
32554	return s.String()
32555}
32556
32557// SetName sets the Name field's value.
32558func (s *SupportedPlatform) SetName(v string) *SupportedPlatform {
32559	s.Name = &v
32560	return s
32561}
32562
32563// Describes the status of a RestoreTableFromClusterSnapshot operation.
32564type TableRestoreStatus struct {
32565	_ struct{} `type:"structure"`
32566
32567	// The identifier of the Amazon Redshift cluster that the table is being restored
32568	// to.
32569	ClusterIdentifier *string `type:"string"`
32570
32571	// A description of the status of the table restore request. Status values include
32572	// SUCCEEDED, FAILED, CANCELED, PENDING, IN_PROGRESS.
32573	Message *string `type:"string"`
32574
32575	// The name of the table to create as a result of the table restore request.
32576	NewTableName *string `type:"string"`
32577
32578	// The amount of data restored to the new table so far, in megabytes (MB).
32579	ProgressInMegaBytes *int64 `type:"long"`
32580
32581	// The time that the table restore request was made, in Universal Coordinated
32582	// Time (UTC).
32583	RequestTime *time.Time `type:"timestamp"`
32584
32585	// The identifier of the snapshot that the table is being restored from.
32586	SnapshotIdentifier *string `type:"string"`
32587
32588	// The name of the source database that contains the table being restored.
32589	SourceDatabaseName *string `type:"string"`
32590
32591	// The name of the source schema that contains the table being restored.
32592	SourceSchemaName *string `type:"string"`
32593
32594	// The name of the source table being restored.
32595	SourceTableName *string `type:"string"`
32596
32597	// A value that describes the current state of the table restore request.
32598	//
32599	// Valid Values: SUCCEEDED, FAILED, CANCELED, PENDING, IN_PROGRESS
32600	Status *string `type:"string" enum:"TableRestoreStatusType"`
32601
32602	// The unique identifier for the table restore request.
32603	TableRestoreRequestId *string `type:"string"`
32604
32605	// The name of the database to restore the table to.
32606	TargetDatabaseName *string `type:"string"`
32607
32608	// The name of the schema to restore the table to.
32609	TargetSchemaName *string `type:"string"`
32610
32611	// The total amount of data to restore to the new table, in megabytes (MB).
32612	TotalDataInMegaBytes *int64 `type:"long"`
32613}
32614
32615// String returns the string representation.
32616//
32617// API parameter values that are decorated as "sensitive" in the API will not
32618// be included in the string output. The member name will be present, but the
32619// value will be replaced with "sensitive".
32620func (s TableRestoreStatus) String() string {
32621	return awsutil.Prettify(s)
32622}
32623
32624// GoString returns the string representation.
32625//
32626// API parameter values that are decorated as "sensitive" in the API will not
32627// be included in the string output. The member name will be present, but the
32628// value will be replaced with "sensitive".
32629func (s TableRestoreStatus) GoString() string {
32630	return s.String()
32631}
32632
32633// SetClusterIdentifier sets the ClusterIdentifier field's value.
32634func (s *TableRestoreStatus) SetClusterIdentifier(v string) *TableRestoreStatus {
32635	s.ClusterIdentifier = &v
32636	return s
32637}
32638
32639// SetMessage sets the Message field's value.
32640func (s *TableRestoreStatus) SetMessage(v string) *TableRestoreStatus {
32641	s.Message = &v
32642	return s
32643}
32644
32645// SetNewTableName sets the NewTableName field's value.
32646func (s *TableRestoreStatus) SetNewTableName(v string) *TableRestoreStatus {
32647	s.NewTableName = &v
32648	return s
32649}
32650
32651// SetProgressInMegaBytes sets the ProgressInMegaBytes field's value.
32652func (s *TableRestoreStatus) SetProgressInMegaBytes(v int64) *TableRestoreStatus {
32653	s.ProgressInMegaBytes = &v
32654	return s
32655}
32656
32657// SetRequestTime sets the RequestTime field's value.
32658func (s *TableRestoreStatus) SetRequestTime(v time.Time) *TableRestoreStatus {
32659	s.RequestTime = &v
32660	return s
32661}
32662
32663// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
32664func (s *TableRestoreStatus) SetSnapshotIdentifier(v string) *TableRestoreStatus {
32665	s.SnapshotIdentifier = &v
32666	return s
32667}
32668
32669// SetSourceDatabaseName sets the SourceDatabaseName field's value.
32670func (s *TableRestoreStatus) SetSourceDatabaseName(v string) *TableRestoreStatus {
32671	s.SourceDatabaseName = &v
32672	return s
32673}
32674
32675// SetSourceSchemaName sets the SourceSchemaName field's value.
32676func (s *TableRestoreStatus) SetSourceSchemaName(v string) *TableRestoreStatus {
32677	s.SourceSchemaName = &v
32678	return s
32679}
32680
32681// SetSourceTableName sets the SourceTableName field's value.
32682func (s *TableRestoreStatus) SetSourceTableName(v string) *TableRestoreStatus {
32683	s.SourceTableName = &v
32684	return s
32685}
32686
32687// SetStatus sets the Status field's value.
32688func (s *TableRestoreStatus) SetStatus(v string) *TableRestoreStatus {
32689	s.Status = &v
32690	return s
32691}
32692
32693// SetTableRestoreRequestId sets the TableRestoreRequestId field's value.
32694func (s *TableRestoreStatus) SetTableRestoreRequestId(v string) *TableRestoreStatus {
32695	s.TableRestoreRequestId = &v
32696	return s
32697}
32698
32699// SetTargetDatabaseName sets the TargetDatabaseName field's value.
32700func (s *TableRestoreStatus) SetTargetDatabaseName(v string) *TableRestoreStatus {
32701	s.TargetDatabaseName = &v
32702	return s
32703}
32704
32705// SetTargetSchemaName sets the TargetSchemaName field's value.
32706func (s *TableRestoreStatus) SetTargetSchemaName(v string) *TableRestoreStatus {
32707	s.TargetSchemaName = &v
32708	return s
32709}
32710
32711// SetTotalDataInMegaBytes sets the TotalDataInMegaBytes field's value.
32712func (s *TableRestoreStatus) SetTotalDataInMegaBytes(v int64) *TableRestoreStatus {
32713	s.TotalDataInMegaBytes = &v
32714	return s
32715}
32716
32717// A tag consisting of a name/value pair for a resource.
32718type Tag struct {
32719	_ struct{} `type:"structure"`
32720
32721	// The key, or name, for the resource tag.
32722	Key *string `type:"string"`
32723
32724	// The value for the resource tag.
32725	Value *string `type:"string"`
32726}
32727
32728// String returns the string representation.
32729//
32730// API parameter values that are decorated as "sensitive" in the API will not
32731// be included in the string output. The member name will be present, but the
32732// value will be replaced with "sensitive".
32733func (s Tag) String() string {
32734	return awsutil.Prettify(s)
32735}
32736
32737// GoString returns the string representation.
32738//
32739// API parameter values that are decorated as "sensitive" in the API will not
32740// be included in the string output. The member name will be present, but the
32741// value will be replaced with "sensitive".
32742func (s Tag) GoString() string {
32743	return s.String()
32744}
32745
32746// SetKey sets the Key field's value.
32747func (s *Tag) SetKey(v string) *Tag {
32748	s.Key = &v
32749	return s
32750}
32751
32752// SetValue sets the Value field's value.
32753func (s *Tag) SetValue(v string) *Tag {
32754	s.Value = &v
32755	return s
32756}
32757
32758// A tag and its associated resource.
32759type TaggedResource struct {
32760	_ struct{} `type:"structure"`
32761
32762	// The Amazon Resource Name (ARN) with which the tag is associated, for example:
32763	// arn:aws:redshift:us-east-2:123456789:cluster:t1.
32764	ResourceName *string `type:"string"`
32765
32766	// The type of resource with which the tag is associated. Valid resource types
32767	// are:
32768	//
32769	//    * Cluster
32770	//
32771	//    * CIDR/IP
32772	//
32773	//    * EC2 security group
32774	//
32775	//    * Snapshot
32776	//
32777	//    * Cluster security group
32778	//
32779	//    * Subnet group
32780	//
32781	//    * HSM connection
32782	//
32783	//    * HSM certificate
32784	//
32785	//    * Parameter group
32786	//
32787	// For more information about Amazon Redshift resource types and constructing
32788	// 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)
32789	// in the Amazon Redshift Cluster Management Guide.
32790	ResourceType *string `type:"string"`
32791
32792	// The tag for the resource.
32793	Tag *Tag `type:"structure"`
32794}
32795
32796// String returns the string representation.
32797//
32798// API parameter values that are decorated as "sensitive" in the API will not
32799// be included in the string output. The member name will be present, but the
32800// value will be replaced with "sensitive".
32801func (s TaggedResource) String() string {
32802	return awsutil.Prettify(s)
32803}
32804
32805// GoString returns the string representation.
32806//
32807// API parameter values that are decorated as "sensitive" in the API will not
32808// be included in the string output. The member name will be present, but the
32809// value will be replaced with "sensitive".
32810func (s TaggedResource) GoString() string {
32811	return s.String()
32812}
32813
32814// SetResourceName sets the ResourceName field's value.
32815func (s *TaggedResource) SetResourceName(v string) *TaggedResource {
32816	s.ResourceName = &v
32817	return s
32818}
32819
32820// SetResourceType sets the ResourceType field's value.
32821func (s *TaggedResource) SetResourceType(v string) *TaggedResource {
32822	s.ResourceType = &v
32823	return s
32824}
32825
32826// SetTag sets the Tag field's value.
32827func (s *TaggedResource) SetTag(v *Tag) *TaggedResource {
32828	s.Tag = v
32829	return s
32830}
32831
32832type UpdatePartnerStatusInput struct {
32833	_ struct{} `type:"structure"`
32834
32835	// The Amazon Web Services account ID that owns the cluster.
32836	//
32837	// AccountId is a required field
32838	AccountId *string `min:"12" type:"string" required:"true"`
32839
32840	// The cluster identifier of the cluster whose partner integration status is
32841	// being updated.
32842	//
32843	// ClusterIdentifier is a required field
32844	ClusterIdentifier *string `type:"string" required:"true"`
32845
32846	// The name of the database whose partner integration status is being updated.
32847	//
32848	// DatabaseName is a required field
32849	DatabaseName *string `type:"string" required:"true"`
32850
32851	// The name of the partner whose integration status is being updated.
32852	//
32853	// PartnerName is a required field
32854	PartnerName *string `type:"string" required:"true"`
32855
32856	// The value of the updated status.
32857	//
32858	// Status is a required field
32859	Status *string `type:"string" required:"true" enum:"PartnerIntegrationStatus"`
32860
32861	// The status message provided by the partner.
32862	StatusMessage *string `type:"string"`
32863}
32864
32865// String returns the string representation.
32866//
32867// API parameter values that are decorated as "sensitive" in the API will not
32868// be included in the string output. The member name will be present, but the
32869// value will be replaced with "sensitive".
32870func (s UpdatePartnerStatusInput) String() string {
32871	return awsutil.Prettify(s)
32872}
32873
32874// GoString returns the string representation.
32875//
32876// API parameter values that are decorated as "sensitive" in the API will not
32877// be included in the string output. The member name will be present, but the
32878// value will be replaced with "sensitive".
32879func (s UpdatePartnerStatusInput) GoString() string {
32880	return s.String()
32881}
32882
32883// Validate inspects the fields of the type to determine if they are valid.
32884func (s *UpdatePartnerStatusInput) Validate() error {
32885	invalidParams := request.ErrInvalidParams{Context: "UpdatePartnerStatusInput"}
32886	if s.AccountId == nil {
32887		invalidParams.Add(request.NewErrParamRequired("AccountId"))
32888	}
32889	if s.AccountId != nil && len(*s.AccountId) < 12 {
32890		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
32891	}
32892	if s.ClusterIdentifier == nil {
32893		invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
32894	}
32895	if s.DatabaseName == nil {
32896		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
32897	}
32898	if s.PartnerName == nil {
32899		invalidParams.Add(request.NewErrParamRequired("PartnerName"))
32900	}
32901	if s.Status == nil {
32902		invalidParams.Add(request.NewErrParamRequired("Status"))
32903	}
32904
32905	if invalidParams.Len() > 0 {
32906		return invalidParams
32907	}
32908	return nil
32909}
32910
32911// SetAccountId sets the AccountId field's value.
32912func (s *UpdatePartnerStatusInput) SetAccountId(v string) *UpdatePartnerStatusInput {
32913	s.AccountId = &v
32914	return s
32915}
32916
32917// SetClusterIdentifier sets the ClusterIdentifier field's value.
32918func (s *UpdatePartnerStatusInput) SetClusterIdentifier(v string) *UpdatePartnerStatusInput {
32919	s.ClusterIdentifier = &v
32920	return s
32921}
32922
32923// SetDatabaseName sets the DatabaseName field's value.
32924func (s *UpdatePartnerStatusInput) SetDatabaseName(v string) *UpdatePartnerStatusInput {
32925	s.DatabaseName = &v
32926	return s
32927}
32928
32929// SetPartnerName sets the PartnerName field's value.
32930func (s *UpdatePartnerStatusInput) SetPartnerName(v string) *UpdatePartnerStatusInput {
32931	s.PartnerName = &v
32932	return s
32933}
32934
32935// SetStatus sets the Status field's value.
32936func (s *UpdatePartnerStatusInput) SetStatus(v string) *UpdatePartnerStatusInput {
32937	s.Status = &v
32938	return s
32939}
32940
32941// SetStatusMessage sets the StatusMessage field's value.
32942func (s *UpdatePartnerStatusInput) SetStatusMessage(v string) *UpdatePartnerStatusInput {
32943	s.StatusMessage = &v
32944	return s
32945}
32946
32947type UpdatePartnerStatusOutput struct {
32948	_ struct{} `type:"structure"`
32949
32950	// The name of the database that receives data from the partner.
32951	DatabaseName *string `type:"string"`
32952
32953	// The name of the partner that is authorized to send data.
32954	PartnerName *string `type:"string"`
32955}
32956
32957// String returns the string representation.
32958//
32959// API parameter values that are decorated as "sensitive" in the API will not
32960// be included in the string output. The member name will be present, but the
32961// value will be replaced with "sensitive".
32962func (s UpdatePartnerStatusOutput) String() string {
32963	return awsutil.Prettify(s)
32964}
32965
32966// GoString returns the string representation.
32967//
32968// API parameter values that are decorated as "sensitive" in the API will not
32969// be included in the string output. The member name will be present, but the
32970// value will be replaced with "sensitive".
32971func (s UpdatePartnerStatusOutput) GoString() string {
32972	return s.String()
32973}
32974
32975// SetDatabaseName sets the DatabaseName field's value.
32976func (s *UpdatePartnerStatusOutput) SetDatabaseName(v string) *UpdatePartnerStatusOutput {
32977	s.DatabaseName = &v
32978	return s
32979}
32980
32981// SetPartnerName sets the PartnerName field's value.
32982func (s *UpdatePartnerStatusOutput) SetPartnerName(v string) *UpdatePartnerStatusOutput {
32983	s.PartnerName = &v
32984	return s
32985}
32986
32987// A maintenance track that you can switch the current track to.
32988type UpdateTarget struct {
32989	_ struct{} `type:"structure"`
32990
32991	// The cluster version for the new maintenance track.
32992	DatabaseVersion *string `type:"string"`
32993
32994	// The name of the new maintenance track.
32995	MaintenanceTrackName *string `type:"string"`
32996
32997	// A list of operations supported by the maintenance track.
32998	SupportedOperations []*SupportedOperation `locationNameList:"SupportedOperation" type:"list"`
32999}
33000
33001// String returns the string representation.
33002//
33003// API parameter values that are decorated as "sensitive" in the API will not
33004// be included in the string output. The member name will be present, but the
33005// value will be replaced with "sensitive".
33006func (s UpdateTarget) String() string {
33007	return awsutil.Prettify(s)
33008}
33009
33010// GoString returns the string representation.
33011//
33012// API parameter values that are decorated as "sensitive" in the API will not
33013// be included in the string output. The member name will be present, but the
33014// value will be replaced with "sensitive".
33015func (s UpdateTarget) GoString() string {
33016	return s.String()
33017}
33018
33019// SetDatabaseVersion sets the DatabaseVersion field's value.
33020func (s *UpdateTarget) SetDatabaseVersion(v string) *UpdateTarget {
33021	s.DatabaseVersion = &v
33022	return s
33023}
33024
33025// SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
33026func (s *UpdateTarget) SetMaintenanceTrackName(v string) *UpdateTarget {
33027	s.MaintenanceTrackName = &v
33028	return s
33029}
33030
33031// SetSupportedOperations sets the SupportedOperations field's value.
33032func (s *UpdateTarget) SetSupportedOperations(v []*SupportedOperation) *UpdateTarget {
33033	s.SupportedOperations = v
33034	return s
33035}
33036
33037// Describes a usage limit object for a cluster.
33038type UsageLimit struct {
33039	_ struct{} `type:"structure"`
33040
33041	// The limit amount. If time-based, this amount is in minutes. If data-based,
33042	// this amount is in terabytes (TB).
33043	Amount *int64 `type:"long"`
33044
33045	// The action that Amazon Redshift takes when the limit is reached. Possible
33046	// values are:
33047	//
33048	//    * log - To log an event in a system table. The default is log.
33049	//
33050	//    * emit-metric - To emit CloudWatch metrics.
33051	//
33052	//    * disable - To disable the feature until the next usage period begins.
33053	BreachAction *string `type:"string" enum:"UsageLimitBreachAction"`
33054
33055	// The identifier of the cluster with a usage limit.
33056	ClusterIdentifier *string `type:"string"`
33057
33058	// The Amazon Redshift feature to which the limit applies.
33059	FeatureType *string `type:"string" enum:"UsageLimitFeatureType"`
33060
33061	// The type of limit. Depending on the feature type, this can be based on a
33062	// time duration or data size.
33063	LimitType *string `type:"string" enum:"UsageLimitLimitType"`
33064
33065	// The time period that the amount applies to. A weekly period begins on Sunday.
33066	// The default is monthly.
33067	Period *string `type:"string" enum:"UsageLimitPeriod"`
33068
33069	// A list of tag instances.
33070	Tags []*Tag `locationNameList:"Tag" type:"list"`
33071
33072	// The identifier of the usage limit.
33073	UsageLimitId *string `type:"string"`
33074}
33075
33076// String returns the string representation.
33077//
33078// API parameter values that are decorated as "sensitive" in the API will not
33079// be included in the string output. The member name will be present, but the
33080// value will be replaced with "sensitive".
33081func (s UsageLimit) String() string {
33082	return awsutil.Prettify(s)
33083}
33084
33085// GoString returns the string representation.
33086//
33087// API parameter values that are decorated as "sensitive" in the API will not
33088// be included in the string output. The member name will be present, but the
33089// value will be replaced with "sensitive".
33090func (s UsageLimit) GoString() string {
33091	return s.String()
33092}
33093
33094// SetAmount sets the Amount field's value.
33095func (s *UsageLimit) SetAmount(v int64) *UsageLimit {
33096	s.Amount = &v
33097	return s
33098}
33099
33100// SetBreachAction sets the BreachAction field's value.
33101func (s *UsageLimit) SetBreachAction(v string) *UsageLimit {
33102	s.BreachAction = &v
33103	return s
33104}
33105
33106// SetClusterIdentifier sets the ClusterIdentifier field's value.
33107func (s *UsageLimit) SetClusterIdentifier(v string) *UsageLimit {
33108	s.ClusterIdentifier = &v
33109	return s
33110}
33111
33112// SetFeatureType sets the FeatureType field's value.
33113func (s *UsageLimit) SetFeatureType(v string) *UsageLimit {
33114	s.FeatureType = &v
33115	return s
33116}
33117
33118// SetLimitType sets the LimitType field's value.
33119func (s *UsageLimit) SetLimitType(v string) *UsageLimit {
33120	s.LimitType = &v
33121	return s
33122}
33123
33124// SetPeriod sets the Period field's value.
33125func (s *UsageLimit) SetPeriod(v string) *UsageLimit {
33126	s.Period = &v
33127	return s
33128}
33129
33130// SetTags sets the Tags field's value.
33131func (s *UsageLimit) SetTags(v []*Tag) *UsageLimit {
33132	s.Tags = v
33133	return s
33134}
33135
33136// SetUsageLimitId sets the UsageLimitId field's value.
33137func (s *UsageLimit) SetUsageLimitId(v string) *UsageLimit {
33138	s.UsageLimitId = &v
33139	return s
33140}
33141
33142// The connection endpoint for connecting to an Amazon Redshift cluster through
33143// the proxy.
33144type VpcEndpoint struct {
33145	_ struct{} `type:"structure"`
33146
33147	// One or more network interfaces of the endpoint. Also known as an interface
33148	// endpoint.
33149	NetworkInterfaces []*NetworkInterface `locationNameList:"NetworkInterface" type:"list"`
33150
33151	// The connection endpoint ID for connecting an Amazon Redshift cluster through
33152	// the proxy.
33153	VpcEndpointId *string `type:"string"`
33154
33155	// The VPC identifier that the endpoint is associated.
33156	VpcId *string `type:"string"`
33157}
33158
33159// String returns the string representation.
33160//
33161// API parameter values that are decorated as "sensitive" in the API will not
33162// be included in the string output. The member name will be present, but the
33163// value will be replaced with "sensitive".
33164func (s VpcEndpoint) String() string {
33165	return awsutil.Prettify(s)
33166}
33167
33168// GoString returns the string representation.
33169//
33170// API parameter values that are decorated as "sensitive" in the API will not
33171// be included in the string output. The member name will be present, but the
33172// value will be replaced with "sensitive".
33173func (s VpcEndpoint) GoString() string {
33174	return s.String()
33175}
33176
33177// SetNetworkInterfaces sets the NetworkInterfaces field's value.
33178func (s *VpcEndpoint) SetNetworkInterfaces(v []*NetworkInterface) *VpcEndpoint {
33179	s.NetworkInterfaces = v
33180	return s
33181}
33182
33183// SetVpcEndpointId sets the VpcEndpointId field's value.
33184func (s *VpcEndpoint) SetVpcEndpointId(v string) *VpcEndpoint {
33185	s.VpcEndpointId = &v
33186	return s
33187}
33188
33189// SetVpcId sets the VpcId field's value.
33190func (s *VpcEndpoint) SetVpcId(v string) *VpcEndpoint {
33191	s.VpcId = &v
33192	return s
33193}
33194
33195// Describes the members of a VPC security group.
33196type VpcSecurityGroupMembership struct {
33197	_ struct{} `type:"structure"`
33198
33199	// The status of the VPC security group.
33200	Status *string `type:"string"`
33201
33202	// The identifier of the VPC security group.
33203	VpcSecurityGroupId *string `type:"string"`
33204}
33205
33206// String returns the string representation.
33207//
33208// API parameter values that are decorated as "sensitive" in the API will not
33209// be included in the string output. The member name will be present, but the
33210// value will be replaced with "sensitive".
33211func (s VpcSecurityGroupMembership) String() string {
33212	return awsutil.Prettify(s)
33213}
33214
33215// GoString returns the string representation.
33216//
33217// API parameter values that are decorated as "sensitive" in the API will not
33218// be included in the string output. The member name will be present, but the
33219// value will be replaced with "sensitive".
33220func (s VpcSecurityGroupMembership) GoString() string {
33221	return s.String()
33222}
33223
33224// SetStatus sets the Status field's value.
33225func (s *VpcSecurityGroupMembership) SetStatus(v string) *VpcSecurityGroupMembership {
33226	s.Status = &v
33227	return s
33228}
33229
33230// SetVpcSecurityGroupId sets the VpcSecurityGroupId field's value.
33231func (s *VpcSecurityGroupMembership) SetVpcSecurityGroupId(v string) *VpcSecurityGroupMembership {
33232	s.VpcSecurityGroupId = &v
33233	return s
33234}
33235
33236const (
33237	// ActionTypeRestoreCluster is a ActionType enum value
33238	ActionTypeRestoreCluster = "restore-cluster"
33239
33240	// ActionTypeRecommendNodeConfig is a ActionType enum value
33241	ActionTypeRecommendNodeConfig = "recommend-node-config"
33242
33243	// ActionTypeResizeCluster is a ActionType enum value
33244	ActionTypeResizeCluster = "resize-cluster"
33245)
33246
33247// ActionType_Values returns all elements of the ActionType enum
33248func ActionType_Values() []string {
33249	return []string{
33250		ActionTypeRestoreCluster,
33251		ActionTypeRecommendNodeConfig,
33252		ActionTypeResizeCluster,
33253	}
33254}
33255
33256const (
33257	// AquaConfigurationStatusEnabled is a AquaConfigurationStatus enum value
33258	AquaConfigurationStatusEnabled = "enabled"
33259
33260	// AquaConfigurationStatusDisabled is a AquaConfigurationStatus enum value
33261	AquaConfigurationStatusDisabled = "disabled"
33262
33263	// AquaConfigurationStatusAuto is a AquaConfigurationStatus enum value
33264	AquaConfigurationStatusAuto = "auto"
33265)
33266
33267// AquaConfigurationStatus_Values returns all elements of the AquaConfigurationStatus enum
33268func AquaConfigurationStatus_Values() []string {
33269	return []string{
33270		AquaConfigurationStatusEnabled,
33271		AquaConfigurationStatusDisabled,
33272		AquaConfigurationStatusAuto,
33273	}
33274}
33275
33276const (
33277	// AquaStatusEnabled is a AquaStatus enum value
33278	AquaStatusEnabled = "enabled"
33279
33280	// AquaStatusDisabled is a AquaStatus enum value
33281	AquaStatusDisabled = "disabled"
33282
33283	// AquaStatusApplying is a AquaStatus enum value
33284	AquaStatusApplying = "applying"
33285)
33286
33287// AquaStatus_Values returns all elements of the AquaStatus enum
33288func AquaStatus_Values() []string {
33289	return []string{
33290		AquaStatusEnabled,
33291		AquaStatusDisabled,
33292		AquaStatusApplying,
33293	}
33294}
33295
33296const (
33297	// AuthorizationStatusAuthorized is a AuthorizationStatus enum value
33298	AuthorizationStatusAuthorized = "Authorized"
33299
33300	// AuthorizationStatusRevoking is a AuthorizationStatus enum value
33301	AuthorizationStatusRevoking = "Revoking"
33302)
33303
33304// AuthorizationStatus_Values returns all elements of the AuthorizationStatus enum
33305func AuthorizationStatus_Values() []string {
33306	return []string{
33307		AuthorizationStatusAuthorized,
33308		AuthorizationStatusRevoking,
33309	}
33310}
33311
33312const (
33313	// DataShareStatusActive is a DataShareStatus enum value
33314	DataShareStatusActive = "ACTIVE"
33315
33316	// DataShareStatusPendingAuthorization is a DataShareStatus enum value
33317	DataShareStatusPendingAuthorization = "PENDING_AUTHORIZATION"
33318
33319	// DataShareStatusAuthorized is a DataShareStatus enum value
33320	DataShareStatusAuthorized = "AUTHORIZED"
33321
33322	// DataShareStatusDeauthorized is a DataShareStatus enum value
33323	DataShareStatusDeauthorized = "DEAUTHORIZED"
33324
33325	// DataShareStatusRejected is a DataShareStatus enum value
33326	DataShareStatusRejected = "REJECTED"
33327
33328	// DataShareStatusAvailable is a DataShareStatus enum value
33329	DataShareStatusAvailable = "AVAILABLE"
33330)
33331
33332// DataShareStatus_Values returns all elements of the DataShareStatus enum
33333func DataShareStatus_Values() []string {
33334	return []string{
33335		DataShareStatusActive,
33336		DataShareStatusPendingAuthorization,
33337		DataShareStatusAuthorized,
33338		DataShareStatusDeauthorized,
33339		DataShareStatusRejected,
33340		DataShareStatusAvailable,
33341	}
33342}
33343
33344const (
33345	// DataShareStatusForConsumerActive is a DataShareStatusForConsumer enum value
33346	DataShareStatusForConsumerActive = "ACTIVE"
33347
33348	// DataShareStatusForConsumerAvailable is a DataShareStatusForConsumer enum value
33349	DataShareStatusForConsumerAvailable = "AVAILABLE"
33350)
33351
33352// DataShareStatusForConsumer_Values returns all elements of the DataShareStatusForConsumer enum
33353func DataShareStatusForConsumer_Values() []string {
33354	return []string{
33355		DataShareStatusForConsumerActive,
33356		DataShareStatusForConsumerAvailable,
33357	}
33358}
33359
33360const (
33361	// DataShareStatusForProducerActive is a DataShareStatusForProducer enum value
33362	DataShareStatusForProducerActive = "ACTIVE"
33363
33364	// DataShareStatusForProducerAuthorized is a DataShareStatusForProducer enum value
33365	DataShareStatusForProducerAuthorized = "AUTHORIZED"
33366
33367	// DataShareStatusForProducerPendingAuthorization is a DataShareStatusForProducer enum value
33368	DataShareStatusForProducerPendingAuthorization = "PENDING_AUTHORIZATION"
33369
33370	// DataShareStatusForProducerDeauthorized is a DataShareStatusForProducer enum value
33371	DataShareStatusForProducerDeauthorized = "DEAUTHORIZED"
33372
33373	// DataShareStatusForProducerRejected is a DataShareStatusForProducer enum value
33374	DataShareStatusForProducerRejected = "REJECTED"
33375)
33376
33377// DataShareStatusForProducer_Values returns all elements of the DataShareStatusForProducer enum
33378func DataShareStatusForProducer_Values() []string {
33379	return []string{
33380		DataShareStatusForProducerActive,
33381		DataShareStatusForProducerAuthorized,
33382		DataShareStatusForProducerPendingAuthorization,
33383		DataShareStatusForProducerDeauthorized,
33384		DataShareStatusForProducerRejected,
33385	}
33386}
33387
33388const (
33389	// ModeStandard is a Mode enum value
33390	ModeStandard = "standard"
33391
33392	// ModeHighPerformance is a Mode enum value
33393	ModeHighPerformance = "high-performance"
33394)
33395
33396// Mode_Values returns all elements of the Mode enum
33397func Mode_Values() []string {
33398	return []string{
33399		ModeStandard,
33400		ModeHighPerformance,
33401	}
33402}
33403
33404const (
33405	// NodeConfigurationOptionsFilterNameNodeType is a NodeConfigurationOptionsFilterName enum value
33406	NodeConfigurationOptionsFilterNameNodeType = "NodeType"
33407
33408	// NodeConfigurationOptionsFilterNameNumberOfNodes is a NodeConfigurationOptionsFilterName enum value
33409	NodeConfigurationOptionsFilterNameNumberOfNodes = "NumberOfNodes"
33410
33411	// NodeConfigurationOptionsFilterNameEstimatedDiskUtilizationPercent is a NodeConfigurationOptionsFilterName enum value
33412	NodeConfigurationOptionsFilterNameEstimatedDiskUtilizationPercent = "EstimatedDiskUtilizationPercent"
33413
33414	// NodeConfigurationOptionsFilterNameMode is a NodeConfigurationOptionsFilterName enum value
33415	NodeConfigurationOptionsFilterNameMode = "Mode"
33416)
33417
33418// NodeConfigurationOptionsFilterName_Values returns all elements of the NodeConfigurationOptionsFilterName enum
33419func NodeConfigurationOptionsFilterName_Values() []string {
33420	return []string{
33421		NodeConfigurationOptionsFilterNameNodeType,
33422		NodeConfigurationOptionsFilterNameNumberOfNodes,
33423		NodeConfigurationOptionsFilterNameEstimatedDiskUtilizationPercent,
33424		NodeConfigurationOptionsFilterNameMode,
33425	}
33426}
33427
33428const (
33429	// OperatorTypeEq is a OperatorType enum value
33430	OperatorTypeEq = "eq"
33431
33432	// OperatorTypeLt is a OperatorType enum value
33433	OperatorTypeLt = "lt"
33434
33435	// OperatorTypeGt is a OperatorType enum value
33436	OperatorTypeGt = "gt"
33437
33438	// OperatorTypeLe is a OperatorType enum value
33439	OperatorTypeLe = "le"
33440
33441	// OperatorTypeGe is a OperatorType enum value
33442	OperatorTypeGe = "ge"
33443
33444	// OperatorTypeIn is a OperatorType enum value
33445	OperatorTypeIn = "in"
33446
33447	// OperatorTypeBetween is a OperatorType enum value
33448	OperatorTypeBetween = "between"
33449)
33450
33451// OperatorType_Values returns all elements of the OperatorType enum
33452func OperatorType_Values() []string {
33453	return []string{
33454		OperatorTypeEq,
33455		OperatorTypeLt,
33456		OperatorTypeGt,
33457		OperatorTypeLe,
33458		OperatorTypeGe,
33459		OperatorTypeIn,
33460		OperatorTypeBetween,
33461	}
33462}
33463
33464const (
33465	// ParameterApplyTypeStatic is a ParameterApplyType enum value
33466	ParameterApplyTypeStatic = "static"
33467
33468	// ParameterApplyTypeDynamic is a ParameterApplyType enum value
33469	ParameterApplyTypeDynamic = "dynamic"
33470)
33471
33472// ParameterApplyType_Values returns all elements of the ParameterApplyType enum
33473func ParameterApplyType_Values() []string {
33474	return []string{
33475		ParameterApplyTypeStatic,
33476		ParameterApplyTypeDynamic,
33477	}
33478}
33479
33480const (
33481	// PartnerIntegrationStatusActive is a PartnerIntegrationStatus enum value
33482	PartnerIntegrationStatusActive = "Active"
33483
33484	// PartnerIntegrationStatusInactive is a PartnerIntegrationStatus enum value
33485	PartnerIntegrationStatusInactive = "Inactive"
33486
33487	// PartnerIntegrationStatusRuntimeFailure is a PartnerIntegrationStatus enum value
33488	PartnerIntegrationStatusRuntimeFailure = "RuntimeFailure"
33489
33490	// PartnerIntegrationStatusConnectionFailure is a PartnerIntegrationStatus enum value
33491	PartnerIntegrationStatusConnectionFailure = "ConnectionFailure"
33492)
33493
33494// PartnerIntegrationStatus_Values returns all elements of the PartnerIntegrationStatus enum
33495func PartnerIntegrationStatus_Values() []string {
33496	return []string{
33497		PartnerIntegrationStatusActive,
33498		PartnerIntegrationStatusInactive,
33499		PartnerIntegrationStatusRuntimeFailure,
33500		PartnerIntegrationStatusConnectionFailure,
33501	}
33502}
33503
33504const (
33505	// ReservedNodeOfferingTypeRegular is a ReservedNodeOfferingType enum value
33506	ReservedNodeOfferingTypeRegular = "Regular"
33507
33508	// ReservedNodeOfferingTypeUpgradable is a ReservedNodeOfferingType enum value
33509	ReservedNodeOfferingTypeUpgradable = "Upgradable"
33510)
33511
33512// ReservedNodeOfferingType_Values returns all elements of the ReservedNodeOfferingType enum
33513func ReservedNodeOfferingType_Values() []string {
33514	return []string{
33515		ReservedNodeOfferingTypeRegular,
33516		ReservedNodeOfferingTypeUpgradable,
33517	}
33518}
33519
33520const (
33521	// ScheduleStateModifying is a ScheduleState enum value
33522	ScheduleStateModifying = "MODIFYING"
33523
33524	// ScheduleStateActive is a ScheduleState enum value
33525	ScheduleStateActive = "ACTIVE"
33526
33527	// ScheduleStateFailed is a ScheduleState enum value
33528	ScheduleStateFailed = "FAILED"
33529)
33530
33531// ScheduleState_Values returns all elements of the ScheduleState enum
33532func ScheduleState_Values() []string {
33533	return []string{
33534		ScheduleStateModifying,
33535		ScheduleStateActive,
33536		ScheduleStateFailed,
33537	}
33538}
33539
33540const (
33541	// ScheduledActionFilterNameClusterIdentifier is a ScheduledActionFilterName enum value
33542	ScheduledActionFilterNameClusterIdentifier = "cluster-identifier"
33543
33544	// ScheduledActionFilterNameIamRole is a ScheduledActionFilterName enum value
33545	ScheduledActionFilterNameIamRole = "iam-role"
33546)
33547
33548// ScheduledActionFilterName_Values returns all elements of the ScheduledActionFilterName enum
33549func ScheduledActionFilterName_Values() []string {
33550	return []string{
33551		ScheduledActionFilterNameClusterIdentifier,
33552		ScheduledActionFilterNameIamRole,
33553	}
33554}
33555
33556const (
33557	// ScheduledActionStateActive is a ScheduledActionState enum value
33558	ScheduledActionStateActive = "ACTIVE"
33559
33560	// ScheduledActionStateDisabled is a ScheduledActionState enum value
33561	ScheduledActionStateDisabled = "DISABLED"
33562)
33563
33564// ScheduledActionState_Values returns all elements of the ScheduledActionState enum
33565func ScheduledActionState_Values() []string {
33566	return []string{
33567		ScheduledActionStateActive,
33568		ScheduledActionStateDisabled,
33569	}
33570}
33571
33572const (
33573	// ScheduledActionTypeValuesResizeCluster is a ScheduledActionTypeValues enum value
33574	ScheduledActionTypeValuesResizeCluster = "ResizeCluster"
33575
33576	// ScheduledActionTypeValuesPauseCluster is a ScheduledActionTypeValues enum value
33577	ScheduledActionTypeValuesPauseCluster = "PauseCluster"
33578
33579	// ScheduledActionTypeValuesResumeCluster is a ScheduledActionTypeValues enum value
33580	ScheduledActionTypeValuesResumeCluster = "ResumeCluster"
33581)
33582
33583// ScheduledActionTypeValues_Values returns all elements of the ScheduledActionTypeValues enum
33584func ScheduledActionTypeValues_Values() []string {
33585	return []string{
33586		ScheduledActionTypeValuesResizeCluster,
33587		ScheduledActionTypeValuesPauseCluster,
33588		ScheduledActionTypeValuesResumeCluster,
33589	}
33590}
33591
33592const (
33593	// SnapshotAttributeToSortBySourceType is a SnapshotAttributeToSortBy enum value
33594	SnapshotAttributeToSortBySourceType = "SOURCE_TYPE"
33595
33596	// SnapshotAttributeToSortByTotalSize is a SnapshotAttributeToSortBy enum value
33597	SnapshotAttributeToSortByTotalSize = "TOTAL_SIZE"
33598
33599	// SnapshotAttributeToSortByCreateTime is a SnapshotAttributeToSortBy enum value
33600	SnapshotAttributeToSortByCreateTime = "CREATE_TIME"
33601)
33602
33603// SnapshotAttributeToSortBy_Values returns all elements of the SnapshotAttributeToSortBy enum
33604func SnapshotAttributeToSortBy_Values() []string {
33605	return []string{
33606		SnapshotAttributeToSortBySourceType,
33607		SnapshotAttributeToSortByTotalSize,
33608		SnapshotAttributeToSortByCreateTime,
33609	}
33610}
33611
33612const (
33613	// SortByOrderAsc is a SortByOrder enum value
33614	SortByOrderAsc = "ASC"
33615
33616	// SortByOrderDesc is a SortByOrder enum value
33617	SortByOrderDesc = "DESC"
33618)
33619
33620// SortByOrder_Values returns all elements of the SortByOrder enum
33621func SortByOrder_Values() []string {
33622	return []string{
33623		SortByOrderAsc,
33624		SortByOrderDesc,
33625	}
33626}
33627
33628const (
33629	// SourceTypeCluster is a SourceType enum value
33630	SourceTypeCluster = "cluster"
33631
33632	// SourceTypeClusterParameterGroup is a SourceType enum value
33633	SourceTypeClusterParameterGroup = "cluster-parameter-group"
33634
33635	// SourceTypeClusterSecurityGroup is a SourceType enum value
33636	SourceTypeClusterSecurityGroup = "cluster-security-group"
33637
33638	// SourceTypeClusterSnapshot is a SourceType enum value
33639	SourceTypeClusterSnapshot = "cluster-snapshot"
33640
33641	// SourceTypeScheduledAction is a SourceType enum value
33642	SourceTypeScheduledAction = "scheduled-action"
33643)
33644
33645// SourceType_Values returns all elements of the SourceType enum
33646func SourceType_Values() []string {
33647	return []string{
33648		SourceTypeCluster,
33649		SourceTypeClusterParameterGroup,
33650		SourceTypeClusterSecurityGroup,
33651		SourceTypeClusterSnapshot,
33652		SourceTypeScheduledAction,
33653	}
33654}
33655
33656const (
33657	// TableRestoreStatusTypePending is a TableRestoreStatusType enum value
33658	TableRestoreStatusTypePending = "PENDING"
33659
33660	// TableRestoreStatusTypeInProgress is a TableRestoreStatusType enum value
33661	TableRestoreStatusTypeInProgress = "IN_PROGRESS"
33662
33663	// TableRestoreStatusTypeSucceeded is a TableRestoreStatusType enum value
33664	TableRestoreStatusTypeSucceeded = "SUCCEEDED"
33665
33666	// TableRestoreStatusTypeFailed is a TableRestoreStatusType enum value
33667	TableRestoreStatusTypeFailed = "FAILED"
33668
33669	// TableRestoreStatusTypeCanceled is a TableRestoreStatusType enum value
33670	TableRestoreStatusTypeCanceled = "CANCELED"
33671)
33672
33673// TableRestoreStatusType_Values returns all elements of the TableRestoreStatusType enum
33674func TableRestoreStatusType_Values() []string {
33675	return []string{
33676		TableRestoreStatusTypePending,
33677		TableRestoreStatusTypeInProgress,
33678		TableRestoreStatusTypeSucceeded,
33679		TableRestoreStatusTypeFailed,
33680		TableRestoreStatusTypeCanceled,
33681	}
33682}
33683
33684const (
33685	// UsageLimitBreachActionLog is a UsageLimitBreachAction enum value
33686	UsageLimitBreachActionLog = "log"
33687
33688	// UsageLimitBreachActionEmitMetric is a UsageLimitBreachAction enum value
33689	UsageLimitBreachActionEmitMetric = "emit-metric"
33690
33691	// UsageLimitBreachActionDisable is a UsageLimitBreachAction enum value
33692	UsageLimitBreachActionDisable = "disable"
33693)
33694
33695// UsageLimitBreachAction_Values returns all elements of the UsageLimitBreachAction enum
33696func UsageLimitBreachAction_Values() []string {
33697	return []string{
33698		UsageLimitBreachActionLog,
33699		UsageLimitBreachActionEmitMetric,
33700		UsageLimitBreachActionDisable,
33701	}
33702}
33703
33704const (
33705	// UsageLimitFeatureTypeSpectrum is a UsageLimitFeatureType enum value
33706	UsageLimitFeatureTypeSpectrum = "spectrum"
33707
33708	// UsageLimitFeatureTypeConcurrencyScaling is a UsageLimitFeatureType enum value
33709	UsageLimitFeatureTypeConcurrencyScaling = "concurrency-scaling"
33710)
33711
33712// UsageLimitFeatureType_Values returns all elements of the UsageLimitFeatureType enum
33713func UsageLimitFeatureType_Values() []string {
33714	return []string{
33715		UsageLimitFeatureTypeSpectrum,
33716		UsageLimitFeatureTypeConcurrencyScaling,
33717	}
33718}
33719
33720const (
33721	// UsageLimitLimitTypeTime is a UsageLimitLimitType enum value
33722	UsageLimitLimitTypeTime = "time"
33723
33724	// UsageLimitLimitTypeDataScanned is a UsageLimitLimitType enum value
33725	UsageLimitLimitTypeDataScanned = "data-scanned"
33726)
33727
33728// UsageLimitLimitType_Values returns all elements of the UsageLimitLimitType enum
33729func UsageLimitLimitType_Values() []string {
33730	return []string{
33731		UsageLimitLimitTypeTime,
33732		UsageLimitLimitTypeDataScanned,
33733	}
33734}
33735
33736const (
33737	// UsageLimitPeriodDaily is a UsageLimitPeriod enum value
33738	UsageLimitPeriodDaily = "daily"
33739
33740	// UsageLimitPeriodWeekly is a UsageLimitPeriod enum value
33741	UsageLimitPeriodWeekly = "weekly"
33742
33743	// UsageLimitPeriodMonthly is a UsageLimitPeriod enum value
33744	UsageLimitPeriodMonthly = "monthly"
33745)
33746
33747// UsageLimitPeriod_Values returns all elements of the UsageLimitPeriod enum
33748func UsageLimitPeriod_Values() []string {
33749	return []string{
33750		UsageLimitPeriodDaily,
33751		UsageLimitPeriodWeekly,
33752		UsageLimitPeriodMonthly,
33753	}
33754}
33755