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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package redshift
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/query"
    14  )
    15  
    16  const 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
    42  func (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
    95  func (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.
   109  func (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  
   116  const 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
   142  func (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
   182  func (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.
   196  func (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  
   203  const 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
   229  func (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
   267  func (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.
   281  func (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  
   288  const 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
   314  func (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
   376  func (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.
   390  func (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  
   397  const 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
   423  func (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
   457  func (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.
   471  func (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  
   478  const 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
   504  func (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
   551  func (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.
   565  func (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  
   572  const 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
   598  func (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
   653  func (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.
   667  func (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  
   674  const 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
   700  func (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
   733  func (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.
   747  func (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  
   754  const 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
   780  func (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
   818  func (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.
   832  func (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  
   839  const 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
   865  func (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
   906  func (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.
   920  func (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  
   927  const 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
   953  func (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
  1014  func (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.
  1028  func (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  
  1035  const 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
  1061  func (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
  1103  func (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.
  1117  func (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  
  1124  const 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
  1150  func (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
  1263  func (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.
  1277  func (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  
  1284  const 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
  1310  func (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
  1364  func (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.
  1378  func (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  
  1385  const 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
  1411  func (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
  1460  func (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.
  1474  func (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  
  1481  const 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
  1507  func (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
  1566  func (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.
  1580  func (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  
  1587  const 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
  1613  func (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
  1680  func (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.
  1694  func (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  
  1701  const 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
  1727  func (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
  1789  func (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.
  1803  func (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  
  1810  const 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
  1836  func (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
  1930  func (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.
  1944  func (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  
  1951  const 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
  1977  func (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
  2029  func (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.
  2043  func (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  
  2050  const 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
  2076  func (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
  2129  func (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.
  2143  func (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  
  2150  const 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
  2176  func (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
  2225  func (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.
  2239  func (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  
  2246  const 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
  2272  func (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
  2328  func (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.
  2342  func (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  
  2349  const 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
  2375  func (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
  2423  func (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.
  2437  func (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  
  2444  const 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
  2470  func (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
  2518  func (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.
  2532  func (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  
  2539  const 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
  2565  func (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
  2616  func (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.
  2630  func (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  
  2637  const 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
  2663  func (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
  2695  func (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.
  2709  func (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  
  2716  const 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
  2742  func (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
  2779  func (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.
  2793  func (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  
  2800  const 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
  2826  func (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
  2891  func (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.
  2905  func (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  
  2912  const 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
  2938  func (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
  2978  func (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.
  2992  func (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  
  2999  const 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
  3025  func (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
  3069  func (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.
  3083  func (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  
  3090  const 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
  3116  func (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
  3159  func (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.
  3173  func (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  
  3180  const 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
  3206  func (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
  3246  func (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.
  3260  func (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  
  3267  const 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
  3293  func (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
  3337  func (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.
  3351  func (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  
  3358  const 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
  3384  func (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
  3422  func (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.
  3436  func (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  
  3443  const 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
  3469  func (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
  3506  func (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.
  3520  func (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  
  3527  const 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
  3553  func (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
  3590  func (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.
  3604  func (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  
  3611  const 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
  3637  func (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
  3676  func (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.
  3690  func (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  
  3697  const 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
  3723  func (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
  3759  func (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.
  3773  func (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  
  3780  const 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
  3806  func (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
  3844  func (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.
  3858  func (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  
  3865  const 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
  3891  func (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
  3927  func (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.
  3941  func (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  
  3948  const 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
  3974  func (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
  4011  func (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.
  4025  func (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  
  4032  const 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
  4058  func (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
  4094  func (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.
  4108  func (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  
  4115  const 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
  4141  func (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
  4168  func (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.
  4182  func (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  
  4189  const 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
  4215  func (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
  4252  func (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.
  4266  func (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  
  4273  const 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
  4299  func (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
  4340  func (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.
  4354  func (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  //
  4378  func (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.
  4389  func (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  
  4413  const 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
  4439  func (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
  4498  func (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.
  4512  func (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  //
  4536  func (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.
  4547  func (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  
  4571  const 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
  4597  func (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
  4646  func (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.
  4660  func (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  //
  4684  func (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.
  4695  func (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  
  4719  const 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
  4745  func (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
  4803  func (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.
  4817  func (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  //
  4841  func (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.
  4852  func (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  
  4876  const 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
  4902  func (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
  4960  func (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.
  4974  func (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  //
  4998  func (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.
  5009  func (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  
  5033  const 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
  5059  func (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
  5114  func (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.
  5128  func (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  //
  5152  func (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.
  5163  func (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  
  5187  const 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
  5213  func (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
  5254  func (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.
  5268  func (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  //
  5292  func (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.
  5303  func (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  
  5327  const 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
  5353  func (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
  5390  func (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.
  5404  func (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  //
  5428  func (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.
  5439  func (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  
  5463  const 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
  5489  func (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
  5543  func (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.
  5557  func (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  //
  5581  func (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.
  5592  func (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  
  5616  const 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
  5642  func (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
  5675  func (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.
  5689  func (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  
  5696  const 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
  5722  func (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
  5756  func (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.
  5770  func (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  
  5777  const 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
  5803  func (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
  5837  func (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.
  5851  func (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  
  5858  const 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
  5884  func (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
  5921  func (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.
  5935  func (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  //
  5959  func (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.
  5970  func (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  
  5994  const 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
  6020  func (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
  6064  func (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.
  6078  func (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  //
  6102  func (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.
  6113  func (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  
  6137  const 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
  6163  func (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
  6204  func (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.
  6218  func (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  //
  6242  func (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.
  6253  func (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  
  6277  const 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
  6303  func (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
  6332  func (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.
  6346  func (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  
  6353  const 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
  6379  func (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
  6433  func (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.
  6447  func (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  //
  6471  func (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.
  6482  func (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  
  6506  const 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
  6532  func (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
  6568  func (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.
  6582  func (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  //
  6606  func (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.
  6617  func (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  
  6641  const 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
  6667  func (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
  6720  func (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.
  6734  func (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  //
  6758  func (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.
  6769  func (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  
  6793  const 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
  6819  func (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
  6872  func (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.
  6886  func (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  //
  6910  func (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.
  6921  func (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  
  6945  const 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
  6971  func (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
  7004  func (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.
  7018  func (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  
  7025  const 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
  7051  func (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
  7101  func (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.
  7115  func (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  //
  7139  func (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.
  7150  func (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  
  7174  const 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
  7200  func (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
  7241  func (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.
  7255  func (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  //
  7279  func (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.
  7290  func (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  
  7314  const 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
  7340  func (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
  7375  func (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.
  7389  func (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  
  7396  const 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
  7422  func (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
  7476  func (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.
  7490  func (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  //
  7514  func (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.
  7525  func (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  
  7549  const 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
  7575  func (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
  7617  func (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.
  7631  func (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  //
  7655  func (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.
  7666  func (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  
  7690  const 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
  7716  func (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
  7757  func (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.
  7771  func (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  
  7778  const 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
  7804  func (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
  7845  func (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.
  7859  func (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  //
  7883  func (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.
  7894  func (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  
  7918  const 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
  7944  func (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
  7991  func (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.
  8005  func (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  //
  8029  func (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.
  8040  func (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  
  8064  const 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
  8090  func (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
  8123  func (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.
  8137  func (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  //
  8161  func (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.
  8172  func (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  
  8196  const 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
  8222  func (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
  8249  func (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.
  8263  func (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  
  8270  const 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
  8296  func (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
  8341  func (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.
  8355  func (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  //
  8379  func (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.
  8390  func (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  
  8414  const 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
  8440  func (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
  8503  func (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.
  8517  func (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  //
  8541  func (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.
  8552  func (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  
  8576  const 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
  8602  func (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
  8657  func (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.
  8671  func (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  //
  8695  func (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.
  8706  func (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  
  8730  const 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
  8756  func (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
  8792  func (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.
  8806  func (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  
  8813  const 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
  8839  func (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
  8886  func (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.
  8900  func (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  
  8907  const 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
  8933  func (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
  8969  func (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.
  8983  func (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  
  8990  const 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
  9016  func (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
  9068  func (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.
  9082  func (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  
  9089  const 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
  9115  func (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
  9182  func (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.
  9196  func (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  
  9203  const 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
  9229  func (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
  9287  func (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.
  9301  func (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  
  9308  const 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
  9334  func (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
  9389  func (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.
  9403  func (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  //
  9427  func (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.
  9438  func (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  
  9462  const 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
  9488  func (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
  9526  func (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.
  9540  func (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  
  9547  const 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
  9573  func (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
  9615  func (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.
  9629  func (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  
  9636  const 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
  9662  func (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
  9767  func (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.
  9781  func (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  
  9788  const 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
  9814  func (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
  9853  func (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.
  9867  func (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  
  9874  const 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
  9900  func (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
  9938  func (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.
  9952  func (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  
  9959  const 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
  9985  func (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
 10020  func (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.
 10034  func (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  
 10041  const 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
 10067  func (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
 10109  func (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.
 10123  func (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  
 10130  const 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
 10156  func (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
 10200  func (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.
 10214  func (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  
 10221  const 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
 10247  func (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
 10286  func (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.
 10300  func (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  
 10307  const 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
 10333  func (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
 10388  func (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.
 10402  func (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  
 10409  const 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
 10435  func (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
 10482  func (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.
 10496  func (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  
 10503  const 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
 10529  func (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
 10593  func (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.
 10607  func (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  
 10614  const 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
 10640  func (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
 10684  func (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.
 10698  func (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  
 10705  const 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
 10731  func (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
 10784  func (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.
 10798  func (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  
 10805  const 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
 10831  func (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
 10870  func (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.
 10884  func (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  
 10891  const 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
 10917  func (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
 10956  func (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.
 10970  func (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  
 10977  const 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
 11003  func (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
 11038  func (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.
 11052  func (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  
 11059  const 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
 11085  func (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
 11136  func (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.
 11150  func (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  
 11157  const 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
 11183  func (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
 11224  func (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.
 11238  func (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  
 11245  const 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
 11271  func (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
 11303  func (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.
 11317  func (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  
 11324  const 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
 11350  func (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
 11390  func (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.
 11404  func (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  
 11411  const 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
 11437  func (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
 11507  func (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.
 11521  func (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  
 11528  const 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
 11554  func (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
 11684  func (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.
 11698  func (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  
 11705  const 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
 11731  func (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
 11796  func (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.
 11810  func (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  
 11817  const 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
 11843  func (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
 11881  func (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.
 11895  func (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  
 11902  const 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
 11928  func (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
 11972  func (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.
 11986  func (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  
 11993  const 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
 12019  func (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
 12069  func (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.
 12083  func (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  
 12090  const 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
 12116  func (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
 12162  func (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.
 12176  func (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  
 12183  const 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
 12209  func (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
 12248  func (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.
 12262  func (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  
 12269  const 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
 12295  func (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
 12333  func (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.
 12347  func (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  
 12354  type 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".
 12375  func (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".
 12384  func (s AcceptReservedNodeExchangeInput) GoString() string {
 12385  	return s.String()
 12386  }
 12387  
 12388  // Validate inspects the fields of the type to determine if they are valid.
 12389  func (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.
 12405  func (s *AcceptReservedNodeExchangeInput) SetReservedNodeId(v string) *AcceptReservedNodeExchangeInput {
 12406  	s.ReservedNodeId = &v
 12407  	return s
 12408  }
 12409  
 12410  // SetTargetReservedNodeOfferingId sets the TargetReservedNodeOfferingId field's value.
 12411  func (s *AcceptReservedNodeExchangeInput) SetTargetReservedNodeOfferingId(v string) *AcceptReservedNodeExchangeInput {
 12412  	s.TargetReservedNodeOfferingId = &v
 12413  	return s
 12414  }
 12415  
 12416  type 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".
 12429  func (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".
 12438  func (s AcceptReservedNodeExchangeOutput) GoString() string {
 12439  	return s.String()
 12440  }
 12441  
 12442  // SetExchangedReservedNode sets the ExchangedReservedNode field's value.
 12443  func (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.
 12449  type 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".
 12464  func (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".
 12473  func (s AccountAttribute) GoString() string {
 12474  	return s.String()
 12475  }
 12476  
 12477  // SetAttributeName sets the AttributeName field's value.
 12478  func (s *AccountAttribute) SetAttributeName(v string) *AccountAttribute {
 12479  	s.AttributeName = &v
 12480  	return s
 12481  }
 12482  
 12483  // SetAttributeValues sets the AttributeValues field's value.
 12484  func (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.
 12490  type 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".
 12507  func (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".
 12516  func (s AccountWithRestoreAccess) GoString() string {
 12517  	return s.String()
 12518  }
 12519  
 12520  // SetAccountAlias sets the AccountAlias field's value.
 12521  func (s *AccountWithRestoreAccess) SetAccountAlias(v string) *AccountWithRestoreAccess {
 12522  	s.AccountAlias = &v
 12523  	return s
 12524  }
 12525  
 12526  // SetAccountId sets the AccountId field's value.
 12527  func (s *AccountWithRestoreAccess) SetAccountId(v string) *AccountWithRestoreAccess {
 12528  	s.AccountId = &v
 12529  	return s
 12530  }
 12531  
 12532  type 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".
 12561  func (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".
 12570  func (s AddPartnerInput) GoString() string {
 12571  	return s.String()
 12572  }
 12573  
 12574  // Validate inspects the fields of the type to determine if they are valid.
 12575  func (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.
 12600  func (s *AddPartnerInput) SetAccountId(v string) *AddPartnerInput {
 12601  	s.AccountId = &v
 12602  	return s
 12603  }
 12604  
 12605  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 12606  func (s *AddPartnerInput) SetClusterIdentifier(v string) *AddPartnerInput {
 12607  	s.ClusterIdentifier = &v
 12608  	return s
 12609  }
 12610  
 12611  // SetDatabaseName sets the DatabaseName field's value.
 12612  func (s *AddPartnerInput) SetDatabaseName(v string) *AddPartnerInput {
 12613  	s.DatabaseName = &v
 12614  	return s
 12615  }
 12616  
 12617  // SetPartnerName sets the PartnerName field's value.
 12618  func (s *AddPartnerInput) SetPartnerName(v string) *AddPartnerInput {
 12619  	s.PartnerName = &v
 12620  	return s
 12621  }
 12622  
 12623  type 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".
 12638  func (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".
 12647  func (s AddPartnerOutput) GoString() string {
 12648  	return s.String()
 12649  }
 12650  
 12651  // SetDatabaseName sets the DatabaseName field's value.
 12652  func (s *AddPartnerOutput) SetDatabaseName(v string) *AddPartnerOutput {
 12653  	s.DatabaseName = &v
 12654  	return s
 12655  }
 12656  
 12657  // SetPartnerName sets the PartnerName field's value.
 12658  func (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.
 12664  type 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".
 12694  func (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".
 12703  func (s AquaConfiguration) GoString() string {
 12704  	return s.String()
 12705  }
 12706  
 12707  // SetAquaConfigurationStatus sets the AquaConfigurationStatus field's value.
 12708  func (s *AquaConfiguration) SetAquaConfigurationStatus(v string) *AquaConfiguration {
 12709  	s.AquaConfigurationStatus = &v
 12710  	return s
 12711  }
 12712  
 12713  // SetAquaStatus sets the AquaStatus field's value.
 12714  func (s *AquaConfiguration) SetAquaStatus(v string) *AquaConfiguration {
 12715  	s.AquaStatus = &v
 12716  	return s
 12717  }
 12718  
 12719  type 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".
 12742  func (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".
 12751  func (s AssociateDataShareConsumerInput) GoString() string {
 12752  	return s.String()
 12753  }
 12754  
 12755  // Validate inspects the fields of the type to determine if they are valid.
 12756  func (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.
 12769  func (s *AssociateDataShareConsumerInput) SetAssociateEntireAccount(v bool) *AssociateDataShareConsumerInput {
 12770  	s.AssociateEntireAccount = &v
 12771  	return s
 12772  }
 12773  
 12774  // SetConsumerArn sets the ConsumerArn field's value.
 12775  func (s *AssociateDataShareConsumerInput) SetConsumerArn(v string) *AssociateDataShareConsumerInput {
 12776  	s.ConsumerArn = &v
 12777  	return s
 12778  }
 12779  
 12780  // SetDataShareArn sets the DataShareArn field's value.
 12781  func (s *AssociateDataShareConsumerInput) SetDataShareArn(v string) *AssociateDataShareConsumerInput {
 12782  	s.DataShareArn = &v
 12783  	return s
 12784  }
 12785  
 12786  type 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".
 12812  func (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".
 12821  func (s AssociateDataShareConsumerOutput) GoString() string {
 12822  	return s.String()
 12823  }
 12824  
 12825  // SetAllowPubliclyAccessibleConsumers sets the AllowPubliclyAccessibleConsumers field's value.
 12826  func (s *AssociateDataShareConsumerOutput) SetAllowPubliclyAccessibleConsumers(v bool) *AssociateDataShareConsumerOutput {
 12827  	s.AllowPubliclyAccessibleConsumers = &v
 12828  	return s
 12829  }
 12830  
 12831  // SetDataShareArn sets the DataShareArn field's value.
 12832  func (s *AssociateDataShareConsumerOutput) SetDataShareArn(v string) *AssociateDataShareConsumerOutput {
 12833  	s.DataShareArn = &v
 12834  	return s
 12835  }
 12836  
 12837  // SetDataShareAssociations sets the DataShareAssociations field's value.
 12838  func (s *AssociateDataShareConsumerOutput) SetDataShareAssociations(v []*DataShareAssociation) *AssociateDataShareConsumerOutput {
 12839  	s.DataShareAssociations = v
 12840  	return s
 12841  }
 12842  
 12843  // SetProducerArn sets the ProducerArn field's value.
 12844  func (s *AssociateDataShareConsumerOutput) SetProducerArn(v string) *AssociateDataShareConsumerOutput {
 12845  	s.ProducerArn = &v
 12846  	return s
 12847  }
 12848  
 12849  // Describes an attribute value.
 12850  type 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".
 12862  func (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".
 12871  func (s AttributeValueTarget) GoString() string {
 12872  	return s.String()
 12873  }
 12874  
 12875  // SetAttributeValue sets the AttributeValue field's value.
 12876  func (s *AttributeValueTarget) SetAttributeValue(v string) *AttributeValueTarget {
 12877  	s.AttributeValue = &v
 12878  	return s
 12879  }
 12880  
 12881  // Describes an authentication profile.
 12882  type 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".
 12898  func (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".
 12907  func (s AuthenticationProfile) GoString() string {
 12908  	return s.String()
 12909  }
 12910  
 12911  // SetAuthenticationProfileContent sets the AuthenticationProfileContent field's value.
 12912  func (s *AuthenticationProfile) SetAuthenticationProfileContent(v string) *AuthenticationProfile {
 12913  	s.AuthenticationProfileContent = &v
 12914  	return s
 12915  }
 12916  
 12917  // SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
 12918  func (s *AuthenticationProfile) SetAuthenticationProfileName(v string) *AuthenticationProfile {
 12919  	s.AuthenticationProfileName = &v
 12920  	return s
 12921  }
 12922  
 12923  type 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".
 12950  func (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".
 12959  func (s AuthorizeClusterSecurityGroupIngressInput) GoString() string {
 12960  	return s.String()
 12961  }
 12962  
 12963  // Validate inspects the fields of the type to determine if they are valid.
 12964  func (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.
 12977  func (s *AuthorizeClusterSecurityGroupIngressInput) SetCIDRIP(v string) *AuthorizeClusterSecurityGroupIngressInput {
 12978  	s.CIDRIP = &v
 12979  	return s
 12980  }
 12981  
 12982  // SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
 12983  func (s *AuthorizeClusterSecurityGroupIngressInput) SetClusterSecurityGroupName(v string) *AuthorizeClusterSecurityGroupIngressInput {
 12984  	s.ClusterSecurityGroupName = &v
 12985  	return s
 12986  }
 12987  
 12988  // SetEC2SecurityGroupName sets the EC2SecurityGroupName field's value.
 12989  func (s *AuthorizeClusterSecurityGroupIngressInput) SetEC2SecurityGroupName(v string) *AuthorizeClusterSecurityGroupIngressInput {
 12990  	s.EC2SecurityGroupName = &v
 12991  	return s
 12992  }
 12993  
 12994  // SetEC2SecurityGroupOwnerId sets the EC2SecurityGroupOwnerId field's value.
 12995  func (s *AuthorizeClusterSecurityGroupIngressInput) SetEC2SecurityGroupOwnerId(v string) *AuthorizeClusterSecurityGroupIngressInput {
 12996  	s.EC2SecurityGroupOwnerId = &v
 12997  	return s
 12998  }
 12999  
 13000  type 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".
 13012  func (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".
 13021  func (s AuthorizeClusterSecurityGroupIngressOutput) GoString() string {
 13022  	return s.String()
 13023  }
 13024  
 13025  // SetClusterSecurityGroup sets the ClusterSecurityGroup field's value.
 13026  func (s *AuthorizeClusterSecurityGroupIngressOutput) SetClusterSecurityGroup(v *ClusterSecurityGroup) *AuthorizeClusterSecurityGroupIngressOutput {
 13027  	s.ClusterSecurityGroup = v
 13028  	return s
 13029  }
 13030  
 13031  type 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".
 13052  func (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".
 13061  func (s AuthorizeDataShareInput) GoString() string {
 13062  	return s.String()
 13063  }
 13064  
 13065  // Validate inspects the fields of the type to determine if they are valid.
 13066  func (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.
 13082  func (s *AuthorizeDataShareInput) SetConsumerIdentifier(v string) *AuthorizeDataShareInput {
 13083  	s.ConsumerIdentifier = &v
 13084  	return s
 13085  }
 13086  
 13087  // SetDataShareArn sets the DataShareArn field's value.
 13088  func (s *AuthorizeDataShareInput) SetDataShareArn(v string) *AuthorizeDataShareInput {
 13089  	s.DataShareArn = &v
 13090  	return s
 13091  }
 13092  
 13093  type 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".
 13119  func (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".
 13128  func (s AuthorizeDataShareOutput) GoString() string {
 13129  	return s.String()
 13130  }
 13131  
 13132  // SetAllowPubliclyAccessibleConsumers sets the AllowPubliclyAccessibleConsumers field's value.
 13133  func (s *AuthorizeDataShareOutput) SetAllowPubliclyAccessibleConsumers(v bool) *AuthorizeDataShareOutput {
 13134  	s.AllowPubliclyAccessibleConsumers = &v
 13135  	return s
 13136  }
 13137  
 13138  // SetDataShareArn sets the DataShareArn field's value.
 13139  func (s *AuthorizeDataShareOutput) SetDataShareArn(v string) *AuthorizeDataShareOutput {
 13140  	s.DataShareArn = &v
 13141  	return s
 13142  }
 13143  
 13144  // SetDataShareAssociations sets the DataShareAssociations field's value.
 13145  func (s *AuthorizeDataShareOutput) SetDataShareAssociations(v []*DataShareAssociation) *AuthorizeDataShareOutput {
 13146  	s.DataShareAssociations = v
 13147  	return s
 13148  }
 13149  
 13150  // SetProducerArn sets the ProducerArn field's value.
 13151  func (s *AuthorizeDataShareOutput) SetProducerArn(v string) *AuthorizeDataShareOutput {
 13152  	s.ProducerArn = &v
 13153  	return s
 13154  }
 13155  
 13156  type 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".
 13176  func (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".
 13185  func (s AuthorizeEndpointAccessInput) GoString() string {
 13186  	return s.String()
 13187  }
 13188  
 13189  // Validate inspects the fields of the type to determine if they are valid.
 13190  func (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.
 13203  func (s *AuthorizeEndpointAccessInput) SetAccount(v string) *AuthorizeEndpointAccessInput {
 13204  	s.Account = &v
 13205  	return s
 13206  }
 13207  
 13208  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 13209  func (s *AuthorizeEndpointAccessInput) SetClusterIdentifier(v string) *AuthorizeEndpointAccessInput {
 13210  	s.ClusterIdentifier = &v
 13211  	return s
 13212  }
 13213  
 13214  // SetVpcIds sets the VpcIds field's value.
 13215  func (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.
 13222  type 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".
 13259  func (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".
 13268  func (s AuthorizeEndpointAccessOutput) GoString() string {
 13269  	return s.String()
 13270  }
 13271  
 13272  // SetAllowedAllVPCs sets the AllowedAllVPCs field's value.
 13273  func (s *AuthorizeEndpointAccessOutput) SetAllowedAllVPCs(v bool) *AuthorizeEndpointAccessOutput {
 13274  	s.AllowedAllVPCs = &v
 13275  	return s
 13276  }
 13277  
 13278  // SetAllowedVPCs sets the AllowedVPCs field's value.
 13279  func (s *AuthorizeEndpointAccessOutput) SetAllowedVPCs(v []*string) *AuthorizeEndpointAccessOutput {
 13280  	s.AllowedVPCs = v
 13281  	return s
 13282  }
 13283  
 13284  // SetAuthorizeTime sets the AuthorizeTime field's value.
 13285  func (s *AuthorizeEndpointAccessOutput) SetAuthorizeTime(v time.Time) *AuthorizeEndpointAccessOutput {
 13286  	s.AuthorizeTime = &v
 13287  	return s
 13288  }
 13289  
 13290  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 13291  func (s *AuthorizeEndpointAccessOutput) SetClusterIdentifier(v string) *AuthorizeEndpointAccessOutput {
 13292  	s.ClusterIdentifier = &v
 13293  	return s
 13294  }
 13295  
 13296  // SetClusterStatus sets the ClusterStatus field's value.
 13297  func (s *AuthorizeEndpointAccessOutput) SetClusterStatus(v string) *AuthorizeEndpointAccessOutput {
 13298  	s.ClusterStatus = &v
 13299  	return s
 13300  }
 13301  
 13302  // SetEndpointCount sets the EndpointCount field's value.
 13303  func (s *AuthorizeEndpointAccessOutput) SetEndpointCount(v int64) *AuthorizeEndpointAccessOutput {
 13304  	s.EndpointCount = &v
 13305  	return s
 13306  }
 13307  
 13308  // SetGrantee sets the Grantee field's value.
 13309  func (s *AuthorizeEndpointAccessOutput) SetGrantee(v string) *AuthorizeEndpointAccessOutput {
 13310  	s.Grantee = &v
 13311  	return s
 13312  }
 13313  
 13314  // SetGrantor sets the Grantor field's value.
 13315  func (s *AuthorizeEndpointAccessOutput) SetGrantor(v string) *AuthorizeEndpointAccessOutput {
 13316  	s.Grantor = &v
 13317  	return s
 13318  }
 13319  
 13320  // SetStatus sets the Status field's value.
 13321  func (s *AuthorizeEndpointAccessOutput) SetStatus(v string) *AuthorizeEndpointAccessOutput {
 13322  	s.Status = &v
 13323  	return s
 13324  }
 13325  
 13326  type 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".
 13353  func (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".
 13362  func (s AuthorizeSnapshotAccessInput) GoString() string {
 13363  	return s.String()
 13364  }
 13365  
 13366  // Validate inspects the fields of the type to determine if they are valid.
 13367  func (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.
 13383  func (s *AuthorizeSnapshotAccessInput) SetAccountWithRestoreAccess(v string) *AuthorizeSnapshotAccessInput {
 13384  	s.AccountWithRestoreAccess = &v
 13385  	return s
 13386  }
 13387  
 13388  // SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
 13389  func (s *AuthorizeSnapshotAccessInput) SetSnapshotClusterIdentifier(v string) *AuthorizeSnapshotAccessInput {
 13390  	s.SnapshotClusterIdentifier = &v
 13391  	return s
 13392  }
 13393  
 13394  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 13395  func (s *AuthorizeSnapshotAccessInput) SetSnapshotIdentifier(v string) *AuthorizeSnapshotAccessInput {
 13396  	s.SnapshotIdentifier = &v
 13397  	return s
 13398  }
 13399  
 13400  type 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".
 13412  func (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".
 13421  func (s AuthorizeSnapshotAccessOutput) GoString() string {
 13422  	return s.String()
 13423  }
 13424  
 13425  // SetSnapshot sets the Snapshot field's value.
 13426  func (s *AuthorizeSnapshotAccessOutput) SetSnapshot(v *Snapshot) *AuthorizeSnapshotAccessOutput {
 13427  	s.Snapshot = v
 13428  	return s
 13429  }
 13430  
 13431  // Describes an availability zone.
 13432  type 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".
 13446  func (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".
 13455  func (s AvailabilityZone) GoString() string {
 13456  	return s.String()
 13457  }
 13458  
 13459  // SetName sets the Name field's value.
 13460  func (s *AvailabilityZone) SetName(v string) *AvailabilityZone {
 13461  	s.Name = &v
 13462  	return s
 13463  }
 13464  
 13465  // SetSupportedPlatforms sets the SupportedPlatforms field's value.
 13466  func (s *AvailabilityZone) SetSupportedPlatforms(v []*SupportedPlatform) *AvailabilityZone {
 13467  	s.SupportedPlatforms = v
 13468  	return s
 13469  }
 13470  
 13471  type 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".
 13485  func (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".
 13494  func (s BatchDeleteClusterSnapshotsInput) GoString() string {
 13495  	return s.String()
 13496  }
 13497  
 13498  // Validate inspects the fields of the type to determine if they are valid.
 13499  func (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.
 13522  func (s *BatchDeleteClusterSnapshotsInput) SetIdentifiers(v []*DeleteClusterSnapshotMessage) *BatchDeleteClusterSnapshotsInput {
 13523  	s.Identifiers = v
 13524  	return s
 13525  }
 13526  
 13527  type 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".
 13542  func (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".
 13551  func (s BatchDeleteClusterSnapshotsOutput) GoString() string {
 13552  	return s.String()
 13553  }
 13554  
 13555  // SetErrors sets the Errors field's value.
 13556  func (s *BatchDeleteClusterSnapshotsOutput) SetErrors(v []*SnapshotErrorMessage) *BatchDeleteClusterSnapshotsOutput {
 13557  	s.Errors = v
 13558  	return s
 13559  }
 13560  
 13561  // SetResources sets the Resources field's value.
 13562  func (s *BatchDeleteClusterSnapshotsOutput) SetResources(v []*string) *BatchDeleteClusterSnapshotsOutput {
 13563  	s.Resources = v
 13564  	return s
 13565  }
 13566  
 13567  type 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".
 13596  func (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".
 13605  func (s BatchModifyClusterSnapshotsInput) GoString() string {
 13606  	return s.String()
 13607  }
 13608  
 13609  // Validate inspects the fields of the type to determine if they are valid.
 13610  func (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.
 13623  func (s *BatchModifyClusterSnapshotsInput) SetForce(v bool) *BatchModifyClusterSnapshotsInput {
 13624  	s.Force = &v
 13625  	return s
 13626  }
 13627  
 13628  // SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
 13629  func (s *BatchModifyClusterSnapshotsInput) SetManualSnapshotRetentionPeriod(v int64) *BatchModifyClusterSnapshotsInput {
 13630  	s.ManualSnapshotRetentionPeriod = &v
 13631  	return s
 13632  }
 13633  
 13634  // SetSnapshotIdentifierList sets the SnapshotIdentifierList field's value.
 13635  func (s *BatchModifyClusterSnapshotsInput) SetSnapshotIdentifierList(v []*string) *BatchModifyClusterSnapshotsInput {
 13636  	s.SnapshotIdentifierList = v
 13637  	return s
 13638  }
 13639  
 13640  type 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".
 13655  func (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".
 13664  func (s BatchModifyClusterSnapshotsOutput) GoString() string {
 13665  	return s.String()
 13666  }
 13667  
 13668  // SetErrors sets the Errors field's value.
 13669  func (s *BatchModifyClusterSnapshotsOutput) SetErrors(v []*SnapshotErrorMessage) *BatchModifyClusterSnapshotsOutput {
 13670  	s.Errors = v
 13671  	return s
 13672  }
 13673  
 13674  // SetResources sets the Resources field's value.
 13675  func (s *BatchModifyClusterSnapshotsOutput) SetResources(v []*string) *BatchModifyClusterSnapshotsOutput {
 13676  	s.Resources = v
 13677  	return s
 13678  }
 13679  
 13680  type 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".
 13695  func (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".
 13704  func (s CancelResizeInput) GoString() string {
 13705  	return s.String()
 13706  }
 13707  
 13708  // Validate inspects the fields of the type to determine if they are valid.
 13709  func (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.
 13722  func (s *CancelResizeInput) SetClusterIdentifier(v string) *CancelResizeInput {
 13723  	s.ClusterIdentifier = &v
 13724  	return s
 13725  }
 13726  
 13727  // Describes the result of a cluster resize operation.
 13728  type 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".
 13811  func (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".
 13820  func (s CancelResizeOutput) GoString() string {
 13821  	return s.String()
 13822  }
 13823  
 13824  // SetAvgResizeRateInMegaBytesPerSecond sets the AvgResizeRateInMegaBytesPerSecond field's value.
 13825  func (s *CancelResizeOutput) SetAvgResizeRateInMegaBytesPerSecond(v float64) *CancelResizeOutput {
 13826  	s.AvgResizeRateInMegaBytesPerSecond = &v
 13827  	return s
 13828  }
 13829  
 13830  // SetDataTransferProgressPercent sets the DataTransferProgressPercent field's value.
 13831  func (s *CancelResizeOutput) SetDataTransferProgressPercent(v float64) *CancelResizeOutput {
 13832  	s.DataTransferProgressPercent = &v
 13833  	return s
 13834  }
 13835  
 13836  // SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
 13837  func (s *CancelResizeOutput) SetElapsedTimeInSeconds(v int64) *CancelResizeOutput {
 13838  	s.ElapsedTimeInSeconds = &v
 13839  	return s
 13840  }
 13841  
 13842  // SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value.
 13843  func (s *CancelResizeOutput) SetEstimatedTimeToCompletionInSeconds(v int64) *CancelResizeOutput {
 13844  	s.EstimatedTimeToCompletionInSeconds = &v
 13845  	return s
 13846  }
 13847  
 13848  // SetImportTablesCompleted sets the ImportTablesCompleted field's value.
 13849  func (s *CancelResizeOutput) SetImportTablesCompleted(v []*string) *CancelResizeOutput {
 13850  	s.ImportTablesCompleted = v
 13851  	return s
 13852  }
 13853  
 13854  // SetImportTablesInProgress sets the ImportTablesInProgress field's value.
 13855  func (s *CancelResizeOutput) SetImportTablesInProgress(v []*string) *CancelResizeOutput {
 13856  	s.ImportTablesInProgress = v
 13857  	return s
 13858  }
 13859  
 13860  // SetImportTablesNotStarted sets the ImportTablesNotStarted field's value.
 13861  func (s *CancelResizeOutput) SetImportTablesNotStarted(v []*string) *CancelResizeOutput {
 13862  	s.ImportTablesNotStarted = v
 13863  	return s
 13864  }
 13865  
 13866  // SetMessage sets the Message field's value.
 13867  func (s *CancelResizeOutput) SetMessage(v string) *CancelResizeOutput {
 13868  	s.Message = &v
 13869  	return s
 13870  }
 13871  
 13872  // SetProgressInMegaBytes sets the ProgressInMegaBytes field's value.
 13873  func (s *CancelResizeOutput) SetProgressInMegaBytes(v int64) *CancelResizeOutput {
 13874  	s.ProgressInMegaBytes = &v
 13875  	return s
 13876  }
 13877  
 13878  // SetResizeType sets the ResizeType field's value.
 13879  func (s *CancelResizeOutput) SetResizeType(v string) *CancelResizeOutput {
 13880  	s.ResizeType = &v
 13881  	return s
 13882  }
 13883  
 13884  // SetStatus sets the Status field's value.
 13885  func (s *CancelResizeOutput) SetStatus(v string) *CancelResizeOutput {
 13886  	s.Status = &v
 13887  	return s
 13888  }
 13889  
 13890  // SetTargetClusterType sets the TargetClusterType field's value.
 13891  func (s *CancelResizeOutput) SetTargetClusterType(v string) *CancelResizeOutput {
 13892  	s.TargetClusterType = &v
 13893  	return s
 13894  }
 13895  
 13896  // SetTargetEncryptionType sets the TargetEncryptionType field's value.
 13897  func (s *CancelResizeOutput) SetTargetEncryptionType(v string) *CancelResizeOutput {
 13898  	s.TargetEncryptionType = &v
 13899  	return s
 13900  }
 13901  
 13902  // SetTargetNodeType sets the TargetNodeType field's value.
 13903  func (s *CancelResizeOutput) SetTargetNodeType(v string) *CancelResizeOutput {
 13904  	s.TargetNodeType = &v
 13905  	return s
 13906  }
 13907  
 13908  // SetTargetNumberOfNodes sets the TargetNumberOfNodes field's value.
 13909  func (s *CancelResizeOutput) SetTargetNumberOfNodes(v int64) *CancelResizeOutput {
 13910  	s.TargetNumberOfNodes = &v
 13911  	return s
 13912  }
 13913  
 13914  // SetTotalResizeDataInMegaBytes sets the TotalResizeDataInMegaBytes field's value.
 13915  func (s *CancelResizeOutput) SetTotalResizeDataInMegaBytes(v int64) *CancelResizeOutput {
 13916  	s.TotalResizeDataInMegaBytes = &v
 13917  	return s
 13918  }
 13919  
 13920  // Describes a cluster.
 13921  type 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".
 14184  func (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".
 14193  func (s Cluster) GoString() string {
 14194  	return s.String()
 14195  }
 14196  
 14197  // SetAllowVersionUpgrade sets the AllowVersionUpgrade field's value.
 14198  func (s *Cluster) SetAllowVersionUpgrade(v bool) *Cluster {
 14199  	s.AllowVersionUpgrade = &v
 14200  	return s
 14201  }
 14202  
 14203  // SetAquaConfiguration sets the AquaConfiguration field's value.
 14204  func (s *Cluster) SetAquaConfiguration(v *AquaConfiguration) *Cluster {
 14205  	s.AquaConfiguration = v
 14206  	return s
 14207  }
 14208  
 14209  // SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
 14210  func (s *Cluster) SetAutomatedSnapshotRetentionPeriod(v int64) *Cluster {
 14211  	s.AutomatedSnapshotRetentionPeriod = &v
 14212  	return s
 14213  }
 14214  
 14215  // SetAvailabilityZone sets the AvailabilityZone field's value.
 14216  func (s *Cluster) SetAvailabilityZone(v string) *Cluster {
 14217  	s.AvailabilityZone = &v
 14218  	return s
 14219  }
 14220  
 14221  // SetAvailabilityZoneRelocationStatus sets the AvailabilityZoneRelocationStatus field's value.
 14222  func (s *Cluster) SetAvailabilityZoneRelocationStatus(v string) *Cluster {
 14223  	s.AvailabilityZoneRelocationStatus = &v
 14224  	return s
 14225  }
 14226  
 14227  // SetClusterAvailabilityStatus sets the ClusterAvailabilityStatus field's value.
 14228  func (s *Cluster) SetClusterAvailabilityStatus(v string) *Cluster {
 14229  	s.ClusterAvailabilityStatus = &v
 14230  	return s
 14231  }
 14232  
 14233  // SetClusterCreateTime sets the ClusterCreateTime field's value.
 14234  func (s *Cluster) SetClusterCreateTime(v time.Time) *Cluster {
 14235  	s.ClusterCreateTime = &v
 14236  	return s
 14237  }
 14238  
 14239  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 14240  func (s *Cluster) SetClusterIdentifier(v string) *Cluster {
 14241  	s.ClusterIdentifier = &v
 14242  	return s
 14243  }
 14244  
 14245  // SetClusterNamespaceArn sets the ClusterNamespaceArn field's value.
 14246  func (s *Cluster) SetClusterNamespaceArn(v string) *Cluster {
 14247  	s.ClusterNamespaceArn = &v
 14248  	return s
 14249  }
 14250  
 14251  // SetClusterNodes sets the ClusterNodes field's value.
 14252  func (s *Cluster) SetClusterNodes(v []*ClusterNode) *Cluster {
 14253  	s.ClusterNodes = v
 14254  	return s
 14255  }
 14256  
 14257  // SetClusterParameterGroups sets the ClusterParameterGroups field's value.
 14258  func (s *Cluster) SetClusterParameterGroups(v []*ClusterParameterGroupStatus) *Cluster {
 14259  	s.ClusterParameterGroups = v
 14260  	return s
 14261  }
 14262  
 14263  // SetClusterPublicKey sets the ClusterPublicKey field's value.
 14264  func (s *Cluster) SetClusterPublicKey(v string) *Cluster {
 14265  	s.ClusterPublicKey = &v
 14266  	return s
 14267  }
 14268  
 14269  // SetClusterRevisionNumber sets the ClusterRevisionNumber field's value.
 14270  func (s *Cluster) SetClusterRevisionNumber(v string) *Cluster {
 14271  	s.ClusterRevisionNumber = &v
 14272  	return s
 14273  }
 14274  
 14275  // SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
 14276  func (s *Cluster) SetClusterSecurityGroups(v []*ClusterSecurityGroupMembership) *Cluster {
 14277  	s.ClusterSecurityGroups = v
 14278  	return s
 14279  }
 14280  
 14281  // SetClusterSnapshotCopyStatus sets the ClusterSnapshotCopyStatus field's value.
 14282  func (s *Cluster) SetClusterSnapshotCopyStatus(v *ClusterSnapshotCopyStatus) *Cluster {
 14283  	s.ClusterSnapshotCopyStatus = v
 14284  	return s
 14285  }
 14286  
 14287  // SetClusterStatus sets the ClusterStatus field's value.
 14288  func (s *Cluster) SetClusterStatus(v string) *Cluster {
 14289  	s.ClusterStatus = &v
 14290  	return s
 14291  }
 14292  
 14293  // SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
 14294  func (s *Cluster) SetClusterSubnetGroupName(v string) *Cluster {
 14295  	s.ClusterSubnetGroupName = &v
 14296  	return s
 14297  }
 14298  
 14299  // SetClusterVersion sets the ClusterVersion field's value.
 14300  func (s *Cluster) SetClusterVersion(v string) *Cluster {
 14301  	s.ClusterVersion = &v
 14302  	return s
 14303  }
 14304  
 14305  // SetDBName sets the DBName field's value.
 14306  func (s *Cluster) SetDBName(v string) *Cluster {
 14307  	s.DBName = &v
 14308  	return s
 14309  }
 14310  
 14311  // SetDataTransferProgress sets the DataTransferProgress field's value.
 14312  func (s *Cluster) SetDataTransferProgress(v *DataTransferProgress) *Cluster {
 14313  	s.DataTransferProgress = v
 14314  	return s
 14315  }
 14316  
 14317  // SetDeferredMaintenanceWindows sets the DeferredMaintenanceWindows field's value.
 14318  func (s *Cluster) SetDeferredMaintenanceWindows(v []*DeferredMaintenanceWindow) *Cluster {
 14319  	s.DeferredMaintenanceWindows = v
 14320  	return s
 14321  }
 14322  
 14323  // SetElasticIpStatus sets the ElasticIpStatus field's value.
 14324  func (s *Cluster) SetElasticIpStatus(v *ElasticIpStatus) *Cluster {
 14325  	s.ElasticIpStatus = v
 14326  	return s
 14327  }
 14328  
 14329  // SetElasticResizeNumberOfNodeOptions sets the ElasticResizeNumberOfNodeOptions field's value.
 14330  func (s *Cluster) SetElasticResizeNumberOfNodeOptions(v string) *Cluster {
 14331  	s.ElasticResizeNumberOfNodeOptions = &v
 14332  	return s
 14333  }
 14334  
 14335  // SetEncrypted sets the Encrypted field's value.
 14336  func (s *Cluster) SetEncrypted(v bool) *Cluster {
 14337  	s.Encrypted = &v
 14338  	return s
 14339  }
 14340  
 14341  // SetEndpoint sets the Endpoint field's value.
 14342  func (s *Cluster) SetEndpoint(v *Endpoint) *Cluster {
 14343  	s.Endpoint = v
 14344  	return s
 14345  }
 14346  
 14347  // SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
 14348  func (s *Cluster) SetEnhancedVpcRouting(v bool) *Cluster {
 14349  	s.EnhancedVpcRouting = &v
 14350  	return s
 14351  }
 14352  
 14353  // SetExpectedNextSnapshotScheduleTime sets the ExpectedNextSnapshotScheduleTime field's value.
 14354  func (s *Cluster) SetExpectedNextSnapshotScheduleTime(v time.Time) *Cluster {
 14355  	s.ExpectedNextSnapshotScheduleTime = &v
 14356  	return s
 14357  }
 14358  
 14359  // SetExpectedNextSnapshotScheduleTimeStatus sets the ExpectedNextSnapshotScheduleTimeStatus field's value.
 14360  func (s *Cluster) SetExpectedNextSnapshotScheduleTimeStatus(v string) *Cluster {
 14361  	s.ExpectedNextSnapshotScheduleTimeStatus = &v
 14362  	return s
 14363  }
 14364  
 14365  // SetHsmStatus sets the HsmStatus field's value.
 14366  func (s *Cluster) SetHsmStatus(v *HsmStatus) *Cluster {
 14367  	s.HsmStatus = v
 14368  	return s
 14369  }
 14370  
 14371  // SetIamRoles sets the IamRoles field's value.
 14372  func (s *Cluster) SetIamRoles(v []*ClusterIamRole) *Cluster {
 14373  	s.IamRoles = v
 14374  	return s
 14375  }
 14376  
 14377  // SetKmsKeyId sets the KmsKeyId field's value.
 14378  func (s *Cluster) SetKmsKeyId(v string) *Cluster {
 14379  	s.KmsKeyId = &v
 14380  	return s
 14381  }
 14382  
 14383  // SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
 14384  func (s *Cluster) SetMaintenanceTrackName(v string) *Cluster {
 14385  	s.MaintenanceTrackName = &v
 14386  	return s
 14387  }
 14388  
 14389  // SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
 14390  func (s *Cluster) SetManualSnapshotRetentionPeriod(v int64) *Cluster {
 14391  	s.ManualSnapshotRetentionPeriod = &v
 14392  	return s
 14393  }
 14394  
 14395  // SetMasterUsername sets the MasterUsername field's value.
 14396  func (s *Cluster) SetMasterUsername(v string) *Cluster {
 14397  	s.MasterUsername = &v
 14398  	return s
 14399  }
 14400  
 14401  // SetModifyStatus sets the ModifyStatus field's value.
 14402  func (s *Cluster) SetModifyStatus(v string) *Cluster {
 14403  	s.ModifyStatus = &v
 14404  	return s
 14405  }
 14406  
 14407  // SetNextMaintenanceWindowStartTime sets the NextMaintenanceWindowStartTime field's value.
 14408  func (s *Cluster) SetNextMaintenanceWindowStartTime(v time.Time) *Cluster {
 14409  	s.NextMaintenanceWindowStartTime = &v
 14410  	return s
 14411  }
 14412  
 14413  // SetNodeType sets the NodeType field's value.
 14414  func (s *Cluster) SetNodeType(v string) *Cluster {
 14415  	s.NodeType = &v
 14416  	return s
 14417  }
 14418  
 14419  // SetNumberOfNodes sets the NumberOfNodes field's value.
 14420  func (s *Cluster) SetNumberOfNodes(v int64) *Cluster {
 14421  	s.NumberOfNodes = &v
 14422  	return s
 14423  }
 14424  
 14425  // SetPendingActions sets the PendingActions field's value.
 14426  func (s *Cluster) SetPendingActions(v []*string) *Cluster {
 14427  	s.PendingActions = v
 14428  	return s
 14429  }
 14430  
 14431  // SetPendingModifiedValues sets the PendingModifiedValues field's value.
 14432  func (s *Cluster) SetPendingModifiedValues(v *PendingModifiedValues) *Cluster {
 14433  	s.PendingModifiedValues = v
 14434  	return s
 14435  }
 14436  
 14437  // SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
 14438  func (s *Cluster) SetPreferredMaintenanceWindow(v string) *Cluster {
 14439  	s.PreferredMaintenanceWindow = &v
 14440  	return s
 14441  }
 14442  
 14443  // SetPubliclyAccessible sets the PubliclyAccessible field's value.
 14444  func (s *Cluster) SetPubliclyAccessible(v bool) *Cluster {
 14445  	s.PubliclyAccessible = &v
 14446  	return s
 14447  }
 14448  
 14449  // SetResizeInfo sets the ResizeInfo field's value.
 14450  func (s *Cluster) SetResizeInfo(v *ResizeInfo) *Cluster {
 14451  	s.ResizeInfo = v
 14452  	return s
 14453  }
 14454  
 14455  // SetRestoreStatus sets the RestoreStatus field's value.
 14456  func (s *Cluster) SetRestoreStatus(v *RestoreStatus) *Cluster {
 14457  	s.RestoreStatus = v
 14458  	return s
 14459  }
 14460  
 14461  // SetSnapshotScheduleIdentifier sets the SnapshotScheduleIdentifier field's value.
 14462  func (s *Cluster) SetSnapshotScheduleIdentifier(v string) *Cluster {
 14463  	s.SnapshotScheduleIdentifier = &v
 14464  	return s
 14465  }
 14466  
 14467  // SetSnapshotScheduleState sets the SnapshotScheduleState field's value.
 14468  func (s *Cluster) SetSnapshotScheduleState(v string) *Cluster {
 14469  	s.SnapshotScheduleState = &v
 14470  	return s
 14471  }
 14472  
 14473  // SetTags sets the Tags field's value.
 14474  func (s *Cluster) SetTags(v []*Tag) *Cluster {
 14475  	s.Tags = v
 14476  	return s
 14477  }
 14478  
 14479  // SetTotalStorageCapacityInMegaBytes sets the TotalStorageCapacityInMegaBytes field's value.
 14480  func (s *Cluster) SetTotalStorageCapacityInMegaBytes(v int64) *Cluster {
 14481  	s.TotalStorageCapacityInMegaBytes = &v
 14482  	return s
 14483  }
 14484  
 14485  // SetVpcId sets the VpcId field's value.
 14486  func (s *Cluster) SetVpcId(v string) *Cluster {
 14487  	s.VpcId = &v
 14488  	return s
 14489  }
 14490  
 14491  // SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
 14492  func (s *Cluster) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *Cluster {
 14493  	s.VpcSecurityGroups = v
 14494  	return s
 14495  }
 14496  
 14497  type 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".
 14510  func (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".
 14519  func (s ClusterAssociatedToSchedule) GoString() string {
 14520  	return s.String()
 14521  }
 14522  
 14523  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 14524  func (s *ClusterAssociatedToSchedule) SetClusterIdentifier(v string) *ClusterAssociatedToSchedule {
 14525  	s.ClusterIdentifier = &v
 14526  	return s
 14527  }
 14528  
 14529  // SetScheduleAssociationState sets the ScheduleAssociationState field's value.
 14530  func (s *ClusterAssociatedToSchedule) SetScheduleAssociationState(v string) *ClusterAssociatedToSchedule {
 14531  	s.ScheduleAssociationState = &v
 14532  	return s
 14533  }
 14534  
 14535  // Describes a ClusterDbRevision.
 14536  type 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".
 14558  func (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".
 14567  func (s ClusterDbRevision) GoString() string {
 14568  	return s.String()
 14569  }
 14570  
 14571  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 14572  func (s *ClusterDbRevision) SetClusterIdentifier(v string) *ClusterDbRevision {
 14573  	s.ClusterIdentifier = &v
 14574  	return s
 14575  }
 14576  
 14577  // SetCurrentDatabaseRevision sets the CurrentDatabaseRevision field's value.
 14578  func (s *ClusterDbRevision) SetCurrentDatabaseRevision(v string) *ClusterDbRevision {
 14579  	s.CurrentDatabaseRevision = &v
 14580  	return s
 14581  }
 14582  
 14583  // SetDatabaseRevisionReleaseDate sets the DatabaseRevisionReleaseDate field's value.
 14584  func (s *ClusterDbRevision) SetDatabaseRevisionReleaseDate(v time.Time) *ClusterDbRevision {
 14585  	s.DatabaseRevisionReleaseDate = &v
 14586  	return s
 14587  }
 14588  
 14589  // SetRevisionTargets sets the RevisionTargets field's value.
 14590  func (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.
 14597  type 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".
 14622  func (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".
 14631  func (s ClusterIamRole) GoString() string {
 14632  	return s.String()
 14633  }
 14634  
 14635  // SetApplyStatus sets the ApplyStatus field's value.
 14636  func (s *ClusterIamRole) SetApplyStatus(v string) *ClusterIamRole {
 14637  	s.ApplyStatus = &v
 14638  	return s
 14639  }
 14640  
 14641  // SetIamRoleArn sets the IamRoleArn field's value.
 14642  func (s *ClusterIamRole) SetIamRoleArn(v string) *ClusterIamRole {
 14643  	s.IamRoleArn = &v
 14644  	return s
 14645  }
 14646  
 14647  // The identifier of a node in a cluster.
 14648  type 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".
 14666  func (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".
 14675  func (s ClusterNode) GoString() string {
 14676  	return s.String()
 14677  }
 14678  
 14679  // SetNodeRole sets the NodeRole field's value.
 14680  func (s *ClusterNode) SetNodeRole(v string) *ClusterNode {
 14681  	s.NodeRole = &v
 14682  	return s
 14683  }
 14684  
 14685  // SetPrivateIPAddress sets the PrivateIPAddress field's value.
 14686  func (s *ClusterNode) SetPrivateIPAddress(v string) *ClusterNode {
 14687  	s.PrivateIPAddress = &v
 14688  	return s
 14689  }
 14690  
 14691  // SetPublicIPAddress sets the PublicIPAddress field's value.
 14692  func (s *ClusterNode) SetPublicIPAddress(v string) *ClusterNode {
 14693  	s.PublicIPAddress = &v
 14694  	return s
 14695  }
 14696  
 14697  // Describes a parameter group.
 14698  type 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".
 14720  func (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".
 14729  func (s ClusterParameterGroup) GoString() string {
 14730  	return s.String()
 14731  }
 14732  
 14733  // SetDescription sets the Description field's value.
 14734  func (s *ClusterParameterGroup) SetDescription(v string) *ClusterParameterGroup {
 14735  	s.Description = &v
 14736  	return s
 14737  }
 14738  
 14739  // SetParameterGroupFamily sets the ParameterGroupFamily field's value.
 14740  func (s *ClusterParameterGroup) SetParameterGroupFamily(v string) *ClusterParameterGroup {
 14741  	s.ParameterGroupFamily = &v
 14742  	return s
 14743  }
 14744  
 14745  // SetParameterGroupName sets the ParameterGroupName field's value.
 14746  func (s *ClusterParameterGroup) SetParameterGroupName(v string) *ClusterParameterGroup {
 14747  	s.ParameterGroupName = &v
 14748  	return s
 14749  }
 14750  
 14751  // SetTags sets the Tags field's value.
 14752  func (s *ClusterParameterGroup) SetTags(v []*Tag) *ClusterParameterGroup {
 14753  	s.Tags = v
 14754  	return s
 14755  }
 14756  
 14757  type 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".
 14774  func (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".
 14783  func (s ClusterParameterGroupNameMessage) GoString() string {
 14784  	return s.String()
 14785  }
 14786  
 14787  // SetParameterGroupName sets the ParameterGroupName field's value.
 14788  func (s *ClusterParameterGroupNameMessage) SetParameterGroupName(v string) *ClusterParameterGroupNameMessage {
 14789  	s.ParameterGroupName = &v
 14790  	return s
 14791  }
 14792  
 14793  // SetParameterGroupStatus sets the ParameterGroupStatus field's value.
 14794  func (s *ClusterParameterGroupNameMessage) SetParameterGroupStatus(v string) *ClusterParameterGroupNameMessage {
 14795  	s.ParameterGroupStatus = &v
 14796  	return s
 14797  }
 14798  
 14799  // Describes the status of a parameter group.
 14800  type 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".
 14822  func (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".
 14831  func (s ClusterParameterGroupStatus) GoString() string {
 14832  	return s.String()
 14833  }
 14834  
 14835  // SetClusterParameterStatusList sets the ClusterParameterStatusList field's value.
 14836  func (s *ClusterParameterGroupStatus) SetClusterParameterStatusList(v []*ClusterParameterStatus) *ClusterParameterGroupStatus {
 14837  	s.ClusterParameterStatusList = v
 14838  	return s
 14839  }
 14840  
 14841  // SetParameterApplyStatus sets the ParameterApplyStatus field's value.
 14842  func (s *ClusterParameterGroupStatus) SetParameterApplyStatus(v string) *ClusterParameterGroupStatus {
 14843  	s.ParameterApplyStatus = &v
 14844  	return s
 14845  }
 14846  
 14847  // SetParameterGroupName sets the ParameterGroupName field's value.
 14848  func (s *ClusterParameterGroupStatus) SetParameterGroupName(v string) *ClusterParameterGroupStatus {
 14849  	s.ParameterGroupName = &v
 14850  	return s
 14851  }
 14852  
 14853  // Describes the status of a parameter group.
 14854  type 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".
 14895  func (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".
 14904  func (s ClusterParameterStatus) GoString() string {
 14905  	return s.String()
 14906  }
 14907  
 14908  // SetParameterApplyErrorDescription sets the ParameterApplyErrorDescription field's value.
 14909  func (s *ClusterParameterStatus) SetParameterApplyErrorDescription(v string) *ClusterParameterStatus {
 14910  	s.ParameterApplyErrorDescription = &v
 14911  	return s
 14912  }
 14913  
 14914  // SetParameterApplyStatus sets the ParameterApplyStatus field's value.
 14915  func (s *ClusterParameterStatus) SetParameterApplyStatus(v string) *ClusterParameterStatus {
 14916  	s.ParameterApplyStatus = &v
 14917  	return s
 14918  }
 14919  
 14920  // SetParameterName sets the ParameterName field's value.
 14921  func (s *ClusterParameterStatus) SetParameterName(v string) *ClusterParameterStatus {
 14922  	s.ParameterName = &v
 14923  	return s
 14924  }
 14925  
 14926  // Describes a security group.
 14927  type 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".
 14953  func (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".
 14962  func (s ClusterSecurityGroup) GoString() string {
 14963  	return s.String()
 14964  }
 14965  
 14966  // SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
 14967  func (s *ClusterSecurityGroup) SetClusterSecurityGroupName(v string) *ClusterSecurityGroup {
 14968  	s.ClusterSecurityGroupName = &v
 14969  	return s
 14970  }
 14971  
 14972  // SetDescription sets the Description field's value.
 14973  func (s *ClusterSecurityGroup) SetDescription(v string) *ClusterSecurityGroup {
 14974  	s.Description = &v
 14975  	return s
 14976  }
 14977  
 14978  // SetEC2SecurityGroups sets the EC2SecurityGroups field's value.
 14979  func (s *ClusterSecurityGroup) SetEC2SecurityGroups(v []*EC2SecurityGroup) *ClusterSecurityGroup {
 14980  	s.EC2SecurityGroups = v
 14981  	return s
 14982  }
 14983  
 14984  // SetIPRanges sets the IPRanges field's value.
 14985  func (s *ClusterSecurityGroup) SetIPRanges(v []*IPRange) *ClusterSecurityGroup {
 14986  	s.IPRanges = v
 14987  	return s
 14988  }
 14989  
 14990  // SetTags sets the Tags field's value.
 14991  func (s *ClusterSecurityGroup) SetTags(v []*Tag) *ClusterSecurityGroup {
 14992  	s.Tags = v
 14993  	return s
 14994  }
 14995  
 14996  // Describes a cluster security group.
 14997  type 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".
 15012  func (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".
 15021  func (s ClusterSecurityGroupMembership) GoString() string {
 15022  	return s.String()
 15023  }
 15024  
 15025  // SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
 15026  func (s *ClusterSecurityGroupMembership) SetClusterSecurityGroupName(v string) *ClusterSecurityGroupMembership {
 15027  	s.ClusterSecurityGroupName = &v
 15028  	return s
 15029  }
 15030  
 15031  // SetStatus sets the Status field's value.
 15032  func (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.
 15039  type 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".
 15066  func (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".
 15075  func (s ClusterSnapshotCopyStatus) GoString() string {
 15076  	return s.String()
 15077  }
 15078  
 15079  // SetDestinationRegion sets the DestinationRegion field's value.
 15080  func (s *ClusterSnapshotCopyStatus) SetDestinationRegion(v string) *ClusterSnapshotCopyStatus {
 15081  	s.DestinationRegion = &v
 15082  	return s
 15083  }
 15084  
 15085  // SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
 15086  func (s *ClusterSnapshotCopyStatus) SetManualSnapshotRetentionPeriod(v int64) *ClusterSnapshotCopyStatus {
 15087  	s.ManualSnapshotRetentionPeriod = &v
 15088  	return s
 15089  }
 15090  
 15091  // SetRetentionPeriod sets the RetentionPeriod field's value.
 15092  func (s *ClusterSnapshotCopyStatus) SetRetentionPeriod(v int64) *ClusterSnapshotCopyStatus {
 15093  	s.RetentionPeriod = &v
 15094  	return s
 15095  }
 15096  
 15097  // SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
 15098  func (s *ClusterSnapshotCopyStatus) SetSnapshotCopyGrantName(v string) *ClusterSnapshotCopyStatus {
 15099  	s.SnapshotCopyGrantName = &v
 15100  	return s
 15101  }
 15102  
 15103  // Describes a subnet group.
 15104  type 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".
 15132  func (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".
 15141  func (s ClusterSubnetGroup) GoString() string {
 15142  	return s.String()
 15143  }
 15144  
 15145  // SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
 15146  func (s *ClusterSubnetGroup) SetClusterSubnetGroupName(v string) *ClusterSubnetGroup {
 15147  	s.ClusterSubnetGroupName = &v
 15148  	return s
 15149  }
 15150  
 15151  // SetDescription sets the Description field's value.
 15152  func (s *ClusterSubnetGroup) SetDescription(v string) *ClusterSubnetGroup {
 15153  	s.Description = &v
 15154  	return s
 15155  }
 15156  
 15157  // SetSubnetGroupStatus sets the SubnetGroupStatus field's value.
 15158  func (s *ClusterSubnetGroup) SetSubnetGroupStatus(v string) *ClusterSubnetGroup {
 15159  	s.SubnetGroupStatus = &v
 15160  	return s
 15161  }
 15162  
 15163  // SetSubnets sets the Subnets field's value.
 15164  func (s *ClusterSubnetGroup) SetSubnets(v []*Subnet) *ClusterSubnetGroup {
 15165  	s.Subnets = v
 15166  	return s
 15167  }
 15168  
 15169  // SetTags sets the Tags field's value.
 15170  func (s *ClusterSubnetGroup) SetTags(v []*Tag) *ClusterSubnetGroup {
 15171  	s.Tags = v
 15172  	return s
 15173  }
 15174  
 15175  // SetVpcId sets the VpcId field's value.
 15176  func (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.
 15183  type 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".
 15201  func (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".
 15210  func (s ClusterVersion) GoString() string {
 15211  	return s.String()
 15212  }
 15213  
 15214  // SetClusterParameterGroupFamily sets the ClusterParameterGroupFamily field's value.
 15215  func (s *ClusterVersion) SetClusterParameterGroupFamily(v string) *ClusterVersion {
 15216  	s.ClusterParameterGroupFamily = &v
 15217  	return s
 15218  }
 15219  
 15220  // SetClusterVersion sets the ClusterVersion field's value.
 15221  func (s *ClusterVersion) SetClusterVersion(v string) *ClusterVersion {
 15222  	s.ClusterVersion = &v
 15223  	return s
 15224  }
 15225  
 15226  // SetDescription sets the Description field's value.
 15227  func (s *ClusterVersion) SetDescription(v string) *ClusterVersion {
 15228  	s.Description = &v
 15229  	return s
 15230  }
 15231  
 15232  type 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".
 15286  func (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".
 15295  func (s CopyClusterSnapshotInput) GoString() string {
 15296  	return s.String()
 15297  }
 15298  
 15299  // Validate inspects the fields of the type to determine if they are valid.
 15300  func (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.
 15316  func (s *CopyClusterSnapshotInput) SetManualSnapshotRetentionPeriod(v int64) *CopyClusterSnapshotInput {
 15317  	s.ManualSnapshotRetentionPeriod = &v
 15318  	return s
 15319  }
 15320  
 15321  // SetSourceSnapshotClusterIdentifier sets the SourceSnapshotClusterIdentifier field's value.
 15322  func (s *CopyClusterSnapshotInput) SetSourceSnapshotClusterIdentifier(v string) *CopyClusterSnapshotInput {
 15323  	s.SourceSnapshotClusterIdentifier = &v
 15324  	return s
 15325  }
 15326  
 15327  // SetSourceSnapshotIdentifier sets the SourceSnapshotIdentifier field's value.
 15328  func (s *CopyClusterSnapshotInput) SetSourceSnapshotIdentifier(v string) *CopyClusterSnapshotInput {
 15329  	s.SourceSnapshotIdentifier = &v
 15330  	return s
 15331  }
 15332  
 15333  // SetTargetSnapshotIdentifier sets the TargetSnapshotIdentifier field's value.
 15334  func (s *CopyClusterSnapshotInput) SetTargetSnapshotIdentifier(v string) *CopyClusterSnapshotInput {
 15335  	s.TargetSnapshotIdentifier = &v
 15336  	return s
 15337  }
 15338  
 15339  type 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".
 15351  func (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".
 15360  func (s CopyClusterSnapshotOutput) GoString() string {
 15361  	return s.String()
 15362  }
 15363  
 15364  // SetSnapshot sets the Snapshot field's value.
 15365  func (s *CopyClusterSnapshotOutput) SetSnapshot(v *Snapshot) *CopyClusterSnapshotOutput {
 15366  	s.Snapshot = v
 15367  	return s
 15368  }
 15369  
 15370  type 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".
 15390  func (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".
 15399  func (s CreateAuthenticationProfileInput) GoString() string {
 15400  	return s.String()
 15401  }
 15402  
 15403  // Validate inspects the fields of the type to determine if they are valid.
 15404  func (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.
 15420  func (s *CreateAuthenticationProfileInput) SetAuthenticationProfileContent(v string) *CreateAuthenticationProfileInput {
 15421  	s.AuthenticationProfileContent = &v
 15422  	return s
 15423  }
 15424  
 15425  // SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
 15426  func (s *CreateAuthenticationProfileInput) SetAuthenticationProfileName(v string) *CreateAuthenticationProfileInput {
 15427  	s.AuthenticationProfileName = &v
 15428  	return s
 15429  }
 15430  
 15431  type 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".
 15446  func (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".
 15455  func (s CreateAuthenticationProfileOutput) GoString() string {
 15456  	return s.String()
 15457  }
 15458  
 15459  // SetAuthenticationProfileContent sets the AuthenticationProfileContent field's value.
 15460  func (s *CreateAuthenticationProfileOutput) SetAuthenticationProfileContent(v string) *CreateAuthenticationProfileOutput {
 15461  	s.AuthenticationProfileContent = &v
 15462  	return s
 15463  }
 15464  
 15465  // SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
 15466  func (s *CreateAuthenticationProfileOutput) SetAuthenticationProfileName(v string) *CreateAuthenticationProfileOutput {
 15467  	s.AuthenticationProfileName = &v
 15468  	return s
 15469  }
 15470  
 15471  type 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".
 15780  func (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".
 15789  func (s CreateClusterInput) GoString() string {
 15790  	return s.String()
 15791  }
 15792  
 15793  // Validate inspects the fields of the type to determine if they are valid.
 15794  func (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.
 15816  func (s *CreateClusterInput) SetAdditionalInfo(v string) *CreateClusterInput {
 15817  	s.AdditionalInfo = &v
 15818  	return s
 15819  }
 15820  
 15821  // SetAllowVersionUpgrade sets the AllowVersionUpgrade field's value.
 15822  func (s *CreateClusterInput) SetAllowVersionUpgrade(v bool) *CreateClusterInput {
 15823  	s.AllowVersionUpgrade = &v
 15824  	return s
 15825  }
 15826  
 15827  // SetAquaConfigurationStatus sets the AquaConfigurationStatus field's value.
 15828  func (s *CreateClusterInput) SetAquaConfigurationStatus(v string) *CreateClusterInput {
 15829  	s.AquaConfigurationStatus = &v
 15830  	return s
 15831  }
 15832  
 15833  // SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
 15834  func (s *CreateClusterInput) SetAutomatedSnapshotRetentionPeriod(v int64) *CreateClusterInput {
 15835  	s.AutomatedSnapshotRetentionPeriod = &v
 15836  	return s
 15837  }
 15838  
 15839  // SetAvailabilityZone sets the AvailabilityZone field's value.
 15840  func (s *CreateClusterInput) SetAvailabilityZone(v string) *CreateClusterInput {
 15841  	s.AvailabilityZone = &v
 15842  	return s
 15843  }
 15844  
 15845  // SetAvailabilityZoneRelocation sets the AvailabilityZoneRelocation field's value.
 15846  func (s *CreateClusterInput) SetAvailabilityZoneRelocation(v bool) *CreateClusterInput {
 15847  	s.AvailabilityZoneRelocation = &v
 15848  	return s
 15849  }
 15850  
 15851  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 15852  func (s *CreateClusterInput) SetClusterIdentifier(v string) *CreateClusterInput {
 15853  	s.ClusterIdentifier = &v
 15854  	return s
 15855  }
 15856  
 15857  // SetClusterParameterGroupName sets the ClusterParameterGroupName field's value.
 15858  func (s *CreateClusterInput) SetClusterParameterGroupName(v string) *CreateClusterInput {
 15859  	s.ClusterParameterGroupName = &v
 15860  	return s
 15861  }
 15862  
 15863  // SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
 15864  func (s *CreateClusterInput) SetClusterSecurityGroups(v []*string) *CreateClusterInput {
 15865  	s.ClusterSecurityGroups = v
 15866  	return s
 15867  }
 15868  
 15869  // SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
 15870  func (s *CreateClusterInput) SetClusterSubnetGroupName(v string) *CreateClusterInput {
 15871  	s.ClusterSubnetGroupName = &v
 15872  	return s
 15873  }
 15874  
 15875  // SetClusterType sets the ClusterType field's value.
 15876  func (s *CreateClusterInput) SetClusterType(v string) *CreateClusterInput {
 15877  	s.ClusterType = &v
 15878  	return s
 15879  }
 15880  
 15881  // SetClusterVersion sets the ClusterVersion field's value.
 15882  func (s *CreateClusterInput) SetClusterVersion(v string) *CreateClusterInput {
 15883  	s.ClusterVersion = &v
 15884  	return s
 15885  }
 15886  
 15887  // SetDBName sets the DBName field's value.
 15888  func (s *CreateClusterInput) SetDBName(v string) *CreateClusterInput {
 15889  	s.DBName = &v
 15890  	return s
 15891  }
 15892  
 15893  // SetElasticIp sets the ElasticIp field's value.
 15894  func (s *CreateClusterInput) SetElasticIp(v string) *CreateClusterInput {
 15895  	s.ElasticIp = &v
 15896  	return s
 15897  }
 15898  
 15899  // SetEncrypted sets the Encrypted field's value.
 15900  func (s *CreateClusterInput) SetEncrypted(v bool) *CreateClusterInput {
 15901  	s.Encrypted = &v
 15902  	return s
 15903  }
 15904  
 15905  // SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
 15906  func (s *CreateClusterInput) SetEnhancedVpcRouting(v bool) *CreateClusterInput {
 15907  	s.EnhancedVpcRouting = &v
 15908  	return s
 15909  }
 15910  
 15911  // SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
 15912  func (s *CreateClusterInput) SetHsmClientCertificateIdentifier(v string) *CreateClusterInput {
 15913  	s.HsmClientCertificateIdentifier = &v
 15914  	return s
 15915  }
 15916  
 15917  // SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
 15918  func (s *CreateClusterInput) SetHsmConfigurationIdentifier(v string) *CreateClusterInput {
 15919  	s.HsmConfigurationIdentifier = &v
 15920  	return s
 15921  }
 15922  
 15923  // SetIamRoles sets the IamRoles field's value.
 15924  func (s *CreateClusterInput) SetIamRoles(v []*string) *CreateClusterInput {
 15925  	s.IamRoles = v
 15926  	return s
 15927  }
 15928  
 15929  // SetKmsKeyId sets the KmsKeyId field's value.
 15930  func (s *CreateClusterInput) SetKmsKeyId(v string) *CreateClusterInput {
 15931  	s.KmsKeyId = &v
 15932  	return s
 15933  }
 15934  
 15935  // SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
 15936  func (s *CreateClusterInput) SetMaintenanceTrackName(v string) *CreateClusterInput {
 15937  	s.MaintenanceTrackName = &v
 15938  	return s
 15939  }
 15940  
 15941  // SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
 15942  func (s *CreateClusterInput) SetManualSnapshotRetentionPeriod(v int64) *CreateClusterInput {
 15943  	s.ManualSnapshotRetentionPeriod = &v
 15944  	return s
 15945  }
 15946  
 15947  // SetMasterUserPassword sets the MasterUserPassword field's value.
 15948  func (s *CreateClusterInput) SetMasterUserPassword(v string) *CreateClusterInput {
 15949  	s.MasterUserPassword = &v
 15950  	return s
 15951  }
 15952  
 15953  // SetMasterUsername sets the MasterUsername field's value.
 15954  func (s *CreateClusterInput) SetMasterUsername(v string) *CreateClusterInput {
 15955  	s.MasterUsername = &v
 15956  	return s
 15957  }
 15958  
 15959  // SetNodeType sets the NodeType field's value.
 15960  func (s *CreateClusterInput) SetNodeType(v string) *CreateClusterInput {
 15961  	s.NodeType = &v
 15962  	return s
 15963  }
 15964  
 15965  // SetNumberOfNodes sets the NumberOfNodes field's value.
 15966  func (s *CreateClusterInput) SetNumberOfNodes(v int64) *CreateClusterInput {
 15967  	s.NumberOfNodes = &v
 15968  	return s
 15969  }
 15970  
 15971  // SetPort sets the Port field's value.
 15972  func (s *CreateClusterInput) SetPort(v int64) *CreateClusterInput {
 15973  	s.Port = &v
 15974  	return s
 15975  }
 15976  
 15977  // SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
 15978  func (s *CreateClusterInput) SetPreferredMaintenanceWindow(v string) *CreateClusterInput {
 15979  	s.PreferredMaintenanceWindow = &v
 15980  	return s
 15981  }
 15982  
 15983  // SetPubliclyAccessible sets the PubliclyAccessible field's value.
 15984  func (s *CreateClusterInput) SetPubliclyAccessible(v bool) *CreateClusterInput {
 15985  	s.PubliclyAccessible = &v
 15986  	return s
 15987  }
 15988  
 15989  // SetSnapshotScheduleIdentifier sets the SnapshotScheduleIdentifier field's value.
 15990  func (s *CreateClusterInput) SetSnapshotScheduleIdentifier(v string) *CreateClusterInput {
 15991  	s.SnapshotScheduleIdentifier = &v
 15992  	return s
 15993  }
 15994  
 15995  // SetTags sets the Tags field's value.
 15996  func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
 15997  	s.Tags = v
 15998  	return s
 15999  }
 16000  
 16001  // SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
 16002  func (s *CreateClusterInput) SetVpcSecurityGroupIds(v []*string) *CreateClusterInput {
 16003  	s.VpcSecurityGroupIds = v
 16004  	return s
 16005  }
 16006  
 16007  type 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".
 16019  func (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".
 16028  func (s CreateClusterOutput) GoString() string {
 16029  	return s.String()
 16030  }
 16031  
 16032  // SetCluster sets the Cluster field's value.
 16033  func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
 16034  	s.Cluster = v
 16035  	return s
 16036  }
 16037  
 16038  type 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".
 16085  func (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".
 16094  func (s CreateClusterParameterGroupInput) GoString() string {
 16095  	return s.String()
 16096  }
 16097  
 16098  // Validate inspects the fields of the type to determine if they are valid.
 16099  func (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.
 16118  func (s *CreateClusterParameterGroupInput) SetDescription(v string) *CreateClusterParameterGroupInput {
 16119  	s.Description = &v
 16120  	return s
 16121  }
 16122  
 16123  // SetParameterGroupFamily sets the ParameterGroupFamily field's value.
 16124  func (s *CreateClusterParameterGroupInput) SetParameterGroupFamily(v string) *CreateClusterParameterGroupInput {
 16125  	s.ParameterGroupFamily = &v
 16126  	return s
 16127  }
 16128  
 16129  // SetParameterGroupName sets the ParameterGroupName field's value.
 16130  func (s *CreateClusterParameterGroupInput) SetParameterGroupName(v string) *CreateClusterParameterGroupInput {
 16131  	s.ParameterGroupName = &v
 16132  	return s
 16133  }
 16134  
 16135  // SetTags sets the Tags field's value.
 16136  func (s *CreateClusterParameterGroupInput) SetTags(v []*Tag) *CreateClusterParameterGroupInput {
 16137  	s.Tags = v
 16138  	return s
 16139  }
 16140  
 16141  type 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".
 16153  func (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".
 16162  func (s CreateClusterParameterGroupOutput) GoString() string {
 16163  	return s.String()
 16164  }
 16165  
 16166  // SetClusterParameterGroup sets the ClusterParameterGroup field's value.
 16167  func (s *CreateClusterParameterGroupOutput) SetClusterParameterGroup(v *ClusterParameterGroup) *CreateClusterParameterGroupOutput {
 16168  	s.ClusterParameterGroup = v
 16169  	return s
 16170  }
 16171  
 16172  type 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".
 16206  func (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".
 16215  func (s CreateClusterSecurityGroupInput) GoString() string {
 16216  	return s.String()
 16217  }
 16218  
 16219  // Validate inspects the fields of the type to determine if they are valid.
 16220  func (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.
 16236  func (s *CreateClusterSecurityGroupInput) SetClusterSecurityGroupName(v string) *CreateClusterSecurityGroupInput {
 16237  	s.ClusterSecurityGroupName = &v
 16238  	return s
 16239  }
 16240  
 16241  // SetDescription sets the Description field's value.
 16242  func (s *CreateClusterSecurityGroupInput) SetDescription(v string) *CreateClusterSecurityGroupInput {
 16243  	s.Description = &v
 16244  	return s
 16245  }
 16246  
 16247  // SetTags sets the Tags field's value.
 16248  func (s *CreateClusterSecurityGroupInput) SetTags(v []*Tag) *CreateClusterSecurityGroupInput {
 16249  	s.Tags = v
 16250  	return s
 16251  }
 16252  
 16253  type 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".
 16265  func (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".
 16274  func (s CreateClusterSecurityGroupOutput) GoString() string {
 16275  	return s.String()
 16276  }
 16277  
 16278  // SetClusterSecurityGroup sets the ClusterSecurityGroup field's value.
 16279  func (s *CreateClusterSecurityGroupOutput) SetClusterSecurityGroup(v *ClusterSecurityGroup) *CreateClusterSecurityGroupOutput {
 16280  	s.ClusterSecurityGroup = v
 16281  	return s
 16282  }
 16283  
 16284  type 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".
 16327  func (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".
 16336  func (s CreateClusterSnapshotInput) GoString() string {
 16337  	return s.String()
 16338  }
 16339  
 16340  // Validate inspects the fields of the type to determine if they are valid.
 16341  func (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.
 16357  func (s *CreateClusterSnapshotInput) SetClusterIdentifier(v string) *CreateClusterSnapshotInput {
 16358  	s.ClusterIdentifier = &v
 16359  	return s
 16360  }
 16361  
 16362  // SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
 16363  func (s *CreateClusterSnapshotInput) SetManualSnapshotRetentionPeriod(v int64) *CreateClusterSnapshotInput {
 16364  	s.ManualSnapshotRetentionPeriod = &v
 16365  	return s
 16366  }
 16367  
 16368  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 16369  func (s *CreateClusterSnapshotInput) SetSnapshotIdentifier(v string) *CreateClusterSnapshotInput {
 16370  	s.SnapshotIdentifier = &v
 16371  	return s
 16372  }
 16373  
 16374  // SetTags sets the Tags field's value.
 16375  func (s *CreateClusterSnapshotInput) SetTags(v []*Tag) *CreateClusterSnapshotInput {
 16376  	s.Tags = v
 16377  	return s
 16378  }
 16379  
 16380  type 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".
 16392  func (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".
 16401  func (s CreateClusterSnapshotOutput) GoString() string {
 16402  	return s.String()
 16403  }
 16404  
 16405  // SetSnapshot sets the Snapshot field's value.
 16406  func (s *CreateClusterSnapshotOutput) SetSnapshot(v *Snapshot) *CreateClusterSnapshotOutput {
 16407  	s.Snapshot = v
 16408  	return s
 16409  }
 16410  
 16411  type 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".
 16451  func (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".
 16460  func (s CreateClusterSubnetGroupInput) GoString() string {
 16461  	return s.String()
 16462  }
 16463  
 16464  // Validate inspects the fields of the type to determine if they are valid.
 16465  func (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.
 16484  func (s *CreateClusterSubnetGroupInput) SetClusterSubnetGroupName(v string) *CreateClusterSubnetGroupInput {
 16485  	s.ClusterSubnetGroupName = &v
 16486  	return s
 16487  }
 16488  
 16489  // SetDescription sets the Description field's value.
 16490  func (s *CreateClusterSubnetGroupInput) SetDescription(v string) *CreateClusterSubnetGroupInput {
 16491  	s.Description = &v
 16492  	return s
 16493  }
 16494  
 16495  // SetSubnetIds sets the SubnetIds field's value.
 16496  func (s *CreateClusterSubnetGroupInput) SetSubnetIds(v []*string) *CreateClusterSubnetGroupInput {
 16497  	s.SubnetIds = v
 16498  	return s
 16499  }
 16500  
 16501  // SetTags sets the Tags field's value.
 16502  func (s *CreateClusterSubnetGroupInput) SetTags(v []*Tag) *CreateClusterSubnetGroupInput {
 16503  	s.Tags = v
 16504  	return s
 16505  }
 16506  
 16507  type 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".
 16519  func (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".
 16528  func (s CreateClusterSubnetGroupOutput) GoString() string {
 16529  	return s.String()
 16530  }
 16531  
 16532  // SetClusterSubnetGroup sets the ClusterSubnetGroup field's value.
 16533  func (s *CreateClusterSubnetGroupOutput) SetClusterSubnetGroup(v *ClusterSubnetGroup) *CreateClusterSubnetGroupOutput {
 16534  	s.ClusterSubnetGroup = v
 16535  	return s
 16536  }
 16537  
 16538  type 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".
 16573  func (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".
 16582  func (s CreateEndpointAccessInput) GoString() string {
 16583  	return s.String()
 16584  }
 16585  
 16586  // Validate inspects the fields of the type to determine if they are valid.
 16587  func (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.
 16603  func (s *CreateEndpointAccessInput) SetClusterIdentifier(v string) *CreateEndpointAccessInput {
 16604  	s.ClusterIdentifier = &v
 16605  	return s
 16606  }
 16607  
 16608  // SetEndpointName sets the EndpointName field's value.
 16609  func (s *CreateEndpointAccessInput) SetEndpointName(v string) *CreateEndpointAccessInput {
 16610  	s.EndpointName = &v
 16611  	return s
 16612  }
 16613  
 16614  // SetResourceOwner sets the ResourceOwner field's value.
 16615  func (s *CreateEndpointAccessInput) SetResourceOwner(v string) *CreateEndpointAccessInput {
 16616  	s.ResourceOwner = &v
 16617  	return s
 16618  }
 16619  
 16620  // SetSubnetGroupName sets the SubnetGroupName field's value.
 16621  func (s *CreateEndpointAccessInput) SetSubnetGroupName(v string) *CreateEndpointAccessInput {
 16622  	s.SubnetGroupName = &v
 16623  	return s
 16624  }
 16625  
 16626  // SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
 16627  func (s *CreateEndpointAccessInput) SetVpcSecurityGroupIds(v []*string) *CreateEndpointAccessInput {
 16628  	s.VpcSecurityGroupIds = v
 16629  	return s
 16630  }
 16631  
 16632  // Describes a Redshift-managed VPC endpoint.
 16633  type 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".
 16673  func (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".
 16682  func (s CreateEndpointAccessOutput) GoString() string {
 16683  	return s.String()
 16684  }
 16685  
 16686  // SetAddress sets the Address field's value.
 16687  func (s *CreateEndpointAccessOutput) SetAddress(v string) *CreateEndpointAccessOutput {
 16688  	s.Address = &v
 16689  	return s
 16690  }
 16691  
 16692  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 16693  func (s *CreateEndpointAccessOutput) SetClusterIdentifier(v string) *CreateEndpointAccessOutput {
 16694  	s.ClusterIdentifier = &v
 16695  	return s
 16696  }
 16697  
 16698  // SetEndpointCreateTime sets the EndpointCreateTime field's value.
 16699  func (s *CreateEndpointAccessOutput) SetEndpointCreateTime(v time.Time) *CreateEndpointAccessOutput {
 16700  	s.EndpointCreateTime = &v
 16701  	return s
 16702  }
 16703  
 16704  // SetEndpointName sets the EndpointName field's value.
 16705  func (s *CreateEndpointAccessOutput) SetEndpointName(v string) *CreateEndpointAccessOutput {
 16706  	s.EndpointName = &v
 16707  	return s
 16708  }
 16709  
 16710  // SetEndpointStatus sets the EndpointStatus field's value.
 16711  func (s *CreateEndpointAccessOutput) SetEndpointStatus(v string) *CreateEndpointAccessOutput {
 16712  	s.EndpointStatus = &v
 16713  	return s
 16714  }
 16715  
 16716  // SetPort sets the Port field's value.
 16717  func (s *CreateEndpointAccessOutput) SetPort(v int64) *CreateEndpointAccessOutput {
 16718  	s.Port = &v
 16719  	return s
 16720  }
 16721  
 16722  // SetResourceOwner sets the ResourceOwner field's value.
 16723  func (s *CreateEndpointAccessOutput) SetResourceOwner(v string) *CreateEndpointAccessOutput {
 16724  	s.ResourceOwner = &v
 16725  	return s
 16726  }
 16727  
 16728  // SetSubnetGroupName sets the SubnetGroupName field's value.
 16729  func (s *CreateEndpointAccessOutput) SetSubnetGroupName(v string) *CreateEndpointAccessOutput {
 16730  	s.SubnetGroupName = &v
 16731  	return s
 16732  }
 16733  
 16734  // SetVpcEndpoint sets the VpcEndpoint field's value.
 16735  func (s *CreateEndpointAccessOutput) SetVpcEndpoint(v *VpcEndpoint) *CreateEndpointAccessOutput {
 16736  	s.VpcEndpoint = v
 16737  	return s
 16738  }
 16739  
 16740  // SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
 16741  func (s *CreateEndpointAccessOutput) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *CreateEndpointAccessOutput {
 16742  	s.VpcSecurityGroups = v
 16743  	return s
 16744  }
 16745  
 16746  type 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".
 16817  func (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".
 16826  func (s CreateEventSubscriptionInput) GoString() string {
 16827  	return s.String()
 16828  }
 16829  
 16830  // Validate inspects the fields of the type to determine if they are valid.
 16831  func (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.
 16847  func (s *CreateEventSubscriptionInput) SetEnabled(v bool) *CreateEventSubscriptionInput {
 16848  	s.Enabled = &v
 16849  	return s
 16850  }
 16851  
 16852  // SetEventCategories sets the EventCategories field's value.
 16853  func (s *CreateEventSubscriptionInput) SetEventCategories(v []*string) *CreateEventSubscriptionInput {
 16854  	s.EventCategories = v
 16855  	return s
 16856  }
 16857  
 16858  // SetSeverity sets the Severity field's value.
 16859  func (s *CreateEventSubscriptionInput) SetSeverity(v string) *CreateEventSubscriptionInput {
 16860  	s.Severity = &v
 16861  	return s
 16862  }
 16863  
 16864  // SetSnsTopicArn sets the SnsTopicArn field's value.
 16865  func (s *CreateEventSubscriptionInput) SetSnsTopicArn(v string) *CreateEventSubscriptionInput {
 16866  	s.SnsTopicArn = &v
 16867  	return s
 16868  }
 16869  
 16870  // SetSourceIds sets the SourceIds field's value.
 16871  func (s *CreateEventSubscriptionInput) SetSourceIds(v []*string) *CreateEventSubscriptionInput {
 16872  	s.SourceIds = v
 16873  	return s
 16874  }
 16875  
 16876  // SetSourceType sets the SourceType field's value.
 16877  func (s *CreateEventSubscriptionInput) SetSourceType(v string) *CreateEventSubscriptionInput {
 16878  	s.SourceType = &v
 16879  	return s
 16880  }
 16881  
 16882  // SetSubscriptionName sets the SubscriptionName field's value.
 16883  func (s *CreateEventSubscriptionInput) SetSubscriptionName(v string) *CreateEventSubscriptionInput {
 16884  	s.SubscriptionName = &v
 16885  	return s
 16886  }
 16887  
 16888  // SetTags sets the Tags field's value.
 16889  func (s *CreateEventSubscriptionInput) SetTags(v []*Tag) *CreateEventSubscriptionInput {
 16890  	s.Tags = v
 16891  	return s
 16892  }
 16893  
 16894  type 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".
 16906  func (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".
 16915  func (s CreateEventSubscriptionOutput) GoString() string {
 16916  	return s.String()
 16917  }
 16918  
 16919  // SetEventSubscription sets the EventSubscription field's value.
 16920  func (s *CreateEventSubscriptionOutput) SetEventSubscription(v *EventSubscription) *CreateEventSubscriptionOutput {
 16921  	s.EventSubscription = v
 16922  	return s
 16923  }
 16924  
 16925  type 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".
 16943  func (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".
 16952  func (s CreateHsmClientCertificateInput) GoString() string {
 16953  	return s.String()
 16954  }
 16955  
 16956  // Validate inspects the fields of the type to determine if they are valid.
 16957  func (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.
 16970  func (s *CreateHsmClientCertificateInput) SetHsmClientCertificateIdentifier(v string) *CreateHsmClientCertificateInput {
 16971  	s.HsmClientCertificateIdentifier = &v
 16972  	return s
 16973  }
 16974  
 16975  // SetTags sets the Tags field's value.
 16976  func (s *CreateHsmClientCertificateInput) SetTags(v []*Tag) *CreateHsmClientCertificateInput {
 16977  	s.Tags = v
 16978  	return s
 16979  }
 16980  
 16981  type 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".
 16995  func (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".
 17004  func (s CreateHsmClientCertificateOutput) GoString() string {
 17005  	return s.String()
 17006  }
 17007  
 17008  // SetHsmClientCertificate sets the HsmClientCertificate field's value.
 17009  func (s *CreateHsmClientCertificateOutput) SetHsmClientCertificate(v *HsmClientCertificate) *CreateHsmClientCertificateOutput {
 17010  	s.HsmClientCertificate = v
 17011  	return s
 17012  }
 17013  
 17014  type 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".
 17058  func (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".
 17067  func (s CreateHsmConfigurationInput) GoString() string {
 17068  	return s.String()
 17069  }
 17070  
 17071  // Validate inspects the fields of the type to determine if they are valid.
 17072  func (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.
 17100  func (s *CreateHsmConfigurationInput) SetDescription(v string) *CreateHsmConfigurationInput {
 17101  	s.Description = &v
 17102  	return s
 17103  }
 17104  
 17105  // SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
 17106  func (s *CreateHsmConfigurationInput) SetHsmConfigurationIdentifier(v string) *CreateHsmConfigurationInput {
 17107  	s.HsmConfigurationIdentifier = &v
 17108  	return s
 17109  }
 17110  
 17111  // SetHsmIpAddress sets the HsmIpAddress field's value.
 17112  func (s *CreateHsmConfigurationInput) SetHsmIpAddress(v string) *CreateHsmConfigurationInput {
 17113  	s.HsmIpAddress = &v
 17114  	return s
 17115  }
 17116  
 17117  // SetHsmPartitionName sets the HsmPartitionName field's value.
 17118  func (s *CreateHsmConfigurationInput) SetHsmPartitionName(v string) *CreateHsmConfigurationInput {
 17119  	s.HsmPartitionName = &v
 17120  	return s
 17121  }
 17122  
 17123  // SetHsmPartitionPassword sets the HsmPartitionPassword field's value.
 17124  func (s *CreateHsmConfigurationInput) SetHsmPartitionPassword(v string) *CreateHsmConfigurationInput {
 17125  	s.HsmPartitionPassword = &v
 17126  	return s
 17127  }
 17128  
 17129  // SetHsmServerPublicCertificate sets the HsmServerPublicCertificate field's value.
 17130  func (s *CreateHsmConfigurationInput) SetHsmServerPublicCertificate(v string) *CreateHsmConfigurationInput {
 17131  	s.HsmServerPublicCertificate = &v
 17132  	return s
 17133  }
 17134  
 17135  // SetTags sets the Tags field's value.
 17136  func (s *CreateHsmConfigurationInput) SetTags(v []*Tag) *CreateHsmConfigurationInput {
 17137  	s.Tags = v
 17138  	return s
 17139  }
 17140  
 17141  type 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".
 17155  func (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".
 17164  func (s CreateHsmConfigurationOutput) GoString() string {
 17165  	return s.String()
 17166  }
 17167  
 17168  // SetHsmConfiguration sets the HsmConfiguration field's value.
 17169  func (s *CreateHsmConfigurationOutput) SetHsmConfiguration(v *HsmConfiguration) *CreateHsmConfigurationOutput {
 17170  	s.HsmConfiguration = v
 17171  	return s
 17172  }
 17173  
 17174  type 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".
 17222  func (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".
 17231  func (s CreateScheduledActionInput) GoString() string {
 17232  	return s.String()
 17233  }
 17234  
 17235  // Validate inspects the fields of the type to determine if they are valid.
 17236  func (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.
 17263  func (s *CreateScheduledActionInput) SetEnable(v bool) *CreateScheduledActionInput {
 17264  	s.Enable = &v
 17265  	return s
 17266  }
 17267  
 17268  // SetEndTime sets the EndTime field's value.
 17269  func (s *CreateScheduledActionInput) SetEndTime(v time.Time) *CreateScheduledActionInput {
 17270  	s.EndTime = &v
 17271  	return s
 17272  }
 17273  
 17274  // SetIamRole sets the IamRole field's value.
 17275  func (s *CreateScheduledActionInput) SetIamRole(v string) *CreateScheduledActionInput {
 17276  	s.IamRole = &v
 17277  	return s
 17278  }
 17279  
 17280  // SetSchedule sets the Schedule field's value.
 17281  func (s *CreateScheduledActionInput) SetSchedule(v string) *CreateScheduledActionInput {
 17282  	s.Schedule = &v
 17283  	return s
 17284  }
 17285  
 17286  // SetScheduledActionDescription sets the ScheduledActionDescription field's value.
 17287  func (s *CreateScheduledActionInput) SetScheduledActionDescription(v string) *CreateScheduledActionInput {
 17288  	s.ScheduledActionDescription = &v
 17289  	return s
 17290  }
 17291  
 17292  // SetScheduledActionName sets the ScheduledActionName field's value.
 17293  func (s *CreateScheduledActionInput) SetScheduledActionName(v string) *CreateScheduledActionInput {
 17294  	s.ScheduledActionName = &v
 17295  	return s
 17296  }
 17297  
 17298  // SetStartTime sets the StartTime field's value.
 17299  func (s *CreateScheduledActionInput) SetStartTime(v time.Time) *CreateScheduledActionInput {
 17300  	s.StartTime = &v
 17301  	return s
 17302  }
 17303  
 17304  // SetTargetAction sets the TargetAction field's value.
 17305  func (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.
 17313  type 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".
 17367  func (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".
 17376  func (s CreateScheduledActionOutput) GoString() string {
 17377  	return s.String()
 17378  }
 17379  
 17380  // SetEndTime sets the EndTime field's value.
 17381  func (s *CreateScheduledActionOutput) SetEndTime(v time.Time) *CreateScheduledActionOutput {
 17382  	s.EndTime = &v
 17383  	return s
 17384  }
 17385  
 17386  // SetIamRole sets the IamRole field's value.
 17387  func (s *CreateScheduledActionOutput) SetIamRole(v string) *CreateScheduledActionOutput {
 17388  	s.IamRole = &v
 17389  	return s
 17390  }
 17391  
 17392  // SetNextInvocations sets the NextInvocations field's value.
 17393  func (s *CreateScheduledActionOutput) SetNextInvocations(v []*time.Time) *CreateScheduledActionOutput {
 17394  	s.NextInvocations = v
 17395  	return s
 17396  }
 17397  
 17398  // SetSchedule sets the Schedule field's value.
 17399  func (s *CreateScheduledActionOutput) SetSchedule(v string) *CreateScheduledActionOutput {
 17400  	s.Schedule = &v
 17401  	return s
 17402  }
 17403  
 17404  // SetScheduledActionDescription sets the ScheduledActionDescription field's value.
 17405  func (s *CreateScheduledActionOutput) SetScheduledActionDescription(v string) *CreateScheduledActionOutput {
 17406  	s.ScheduledActionDescription = &v
 17407  	return s
 17408  }
 17409  
 17410  // SetScheduledActionName sets the ScheduledActionName field's value.
 17411  func (s *CreateScheduledActionOutput) SetScheduledActionName(v string) *CreateScheduledActionOutput {
 17412  	s.ScheduledActionName = &v
 17413  	return s
 17414  }
 17415  
 17416  // SetStartTime sets the StartTime field's value.
 17417  func (s *CreateScheduledActionOutput) SetStartTime(v time.Time) *CreateScheduledActionOutput {
 17418  	s.StartTime = &v
 17419  	return s
 17420  }
 17421  
 17422  // SetState sets the State field's value.
 17423  func (s *CreateScheduledActionOutput) SetState(v string) *CreateScheduledActionOutput {
 17424  	s.State = &v
 17425  	return s
 17426  }
 17427  
 17428  // SetTargetAction sets the TargetAction field's value.
 17429  func (s *CreateScheduledActionOutput) SetTargetAction(v *ScheduledActionType) *CreateScheduledActionOutput {
 17430  	s.TargetAction = v
 17431  	return s
 17432  }
 17433  
 17434  // The result of the CreateSnapshotCopyGrant action.
 17435  type 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".
 17469  func (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".
 17478  func (s CreateSnapshotCopyGrantInput) GoString() string {
 17479  	return s.String()
 17480  }
 17481  
 17482  // Validate inspects the fields of the type to determine if they are valid.
 17483  func (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.
 17496  func (s *CreateSnapshotCopyGrantInput) SetKmsKeyId(v string) *CreateSnapshotCopyGrantInput {
 17497  	s.KmsKeyId = &v
 17498  	return s
 17499  }
 17500  
 17501  // SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
 17502  func (s *CreateSnapshotCopyGrantInput) SetSnapshotCopyGrantName(v string) *CreateSnapshotCopyGrantInput {
 17503  	s.SnapshotCopyGrantName = &v
 17504  	return s
 17505  }
 17506  
 17507  // SetTags sets the Tags field's value.
 17508  func (s *CreateSnapshotCopyGrantInput) SetTags(v []*Tag) *CreateSnapshotCopyGrantInput {
 17509  	s.Tags = v
 17510  	return s
 17511  }
 17512  
 17513  type 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".
 17531  func (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".
 17540  func (s CreateSnapshotCopyGrantOutput) GoString() string {
 17541  	return s.String()
 17542  }
 17543  
 17544  // SetSnapshotCopyGrant sets the SnapshotCopyGrant field's value.
 17545  func (s *CreateSnapshotCopyGrantOutput) SetSnapshotCopyGrant(v *SnapshotCopyGrant) *CreateSnapshotCopyGrantOutput {
 17546  	s.SnapshotCopyGrant = v
 17547  	return s
 17548  }
 17549  
 17550  type 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".
 17577  func (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".
 17586  func (s CreateSnapshotScheduleInput) GoString() string {
 17587  	return s.String()
 17588  }
 17589  
 17590  // SetDryRun sets the DryRun field's value.
 17591  func (s *CreateSnapshotScheduleInput) SetDryRun(v bool) *CreateSnapshotScheduleInput {
 17592  	s.DryRun = &v
 17593  	return s
 17594  }
 17595  
 17596  // SetNextInvocations sets the NextInvocations field's value.
 17597  func (s *CreateSnapshotScheduleInput) SetNextInvocations(v int64) *CreateSnapshotScheduleInput {
 17598  	s.NextInvocations = &v
 17599  	return s
 17600  }
 17601  
 17602  // SetScheduleDefinitions sets the ScheduleDefinitions field's value.
 17603  func (s *CreateSnapshotScheduleInput) SetScheduleDefinitions(v []*string) *CreateSnapshotScheduleInput {
 17604  	s.ScheduleDefinitions = v
 17605  	return s
 17606  }
 17607  
 17608  // SetScheduleDescription sets the ScheduleDescription field's value.
 17609  func (s *CreateSnapshotScheduleInput) SetScheduleDescription(v string) *CreateSnapshotScheduleInput {
 17610  	s.ScheduleDescription = &v
 17611  	return s
 17612  }
 17613  
 17614  // SetScheduleIdentifier sets the ScheduleIdentifier field's value.
 17615  func (s *CreateSnapshotScheduleInput) SetScheduleIdentifier(v string) *CreateSnapshotScheduleInput {
 17616  	s.ScheduleIdentifier = &v
 17617  	return s
 17618  }
 17619  
 17620  // SetTags sets the Tags field's value.
 17621  func (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.
 17628  type 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".
 17658  func (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".
 17667  func (s CreateSnapshotScheduleOutput) GoString() string {
 17668  	return s.String()
 17669  }
 17670  
 17671  // SetAssociatedClusterCount sets the AssociatedClusterCount field's value.
 17672  func (s *CreateSnapshotScheduleOutput) SetAssociatedClusterCount(v int64) *CreateSnapshotScheduleOutput {
 17673  	s.AssociatedClusterCount = &v
 17674  	return s
 17675  }
 17676  
 17677  // SetAssociatedClusters sets the AssociatedClusters field's value.
 17678  func (s *CreateSnapshotScheduleOutput) SetAssociatedClusters(v []*ClusterAssociatedToSchedule) *CreateSnapshotScheduleOutput {
 17679  	s.AssociatedClusters = v
 17680  	return s
 17681  }
 17682  
 17683  // SetNextInvocations sets the NextInvocations field's value.
 17684  func (s *CreateSnapshotScheduleOutput) SetNextInvocations(v []*time.Time) *CreateSnapshotScheduleOutput {
 17685  	s.NextInvocations = v
 17686  	return s
 17687  }
 17688  
 17689  // SetScheduleDefinitions sets the ScheduleDefinitions field's value.
 17690  func (s *CreateSnapshotScheduleOutput) SetScheduleDefinitions(v []*string) *CreateSnapshotScheduleOutput {
 17691  	s.ScheduleDefinitions = v
 17692  	return s
 17693  }
 17694  
 17695  // SetScheduleDescription sets the ScheduleDescription field's value.
 17696  func (s *CreateSnapshotScheduleOutput) SetScheduleDescription(v string) *CreateSnapshotScheduleOutput {
 17697  	s.ScheduleDescription = &v
 17698  	return s
 17699  }
 17700  
 17701  // SetScheduleIdentifier sets the ScheduleIdentifier field's value.
 17702  func (s *CreateSnapshotScheduleOutput) SetScheduleIdentifier(v string) *CreateSnapshotScheduleOutput {
 17703  	s.ScheduleIdentifier = &v
 17704  	return s
 17705  }
 17706  
 17707  // SetTags sets the Tags field's value.
 17708  func (s *CreateSnapshotScheduleOutput) SetTags(v []*Tag) *CreateSnapshotScheduleOutput {
 17709  	s.Tags = v
 17710  	return s
 17711  }
 17712  
 17713  // Contains the output from the CreateTags action.
 17714  type 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".
 17738  func (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".
 17747  func (s CreateTagsInput) GoString() string {
 17748  	return s.String()
 17749  }
 17750  
 17751  // Validate inspects the fields of the type to determine if they are valid.
 17752  func (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.
 17768  func (s *CreateTagsInput) SetResourceName(v string) *CreateTagsInput {
 17769  	s.ResourceName = &v
 17770  	return s
 17771  }
 17772  
 17773  // SetTags sets the Tags field's value.
 17774  func (s *CreateTagsInput) SetTags(v []*Tag) *CreateTagsInput {
 17775  	s.Tags = v
 17776  	return s
 17777  }
 17778  
 17779  type 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".
 17788  func (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".
 17797  func (s CreateTagsOutput) GoString() string {
 17798  	return s.String()
 17799  }
 17800  
 17801  type 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".
 17845  func (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".
 17854  func (s CreateUsageLimitInput) GoString() string {
 17855  	return s.String()
 17856  }
 17857  
 17858  // Validate inspects the fields of the type to determine if they are valid.
 17859  func (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.
 17881  func (s *CreateUsageLimitInput) SetAmount(v int64) *CreateUsageLimitInput {
 17882  	s.Amount = &v
 17883  	return s
 17884  }
 17885  
 17886  // SetBreachAction sets the BreachAction field's value.
 17887  func (s *CreateUsageLimitInput) SetBreachAction(v string) *CreateUsageLimitInput {
 17888  	s.BreachAction = &v
 17889  	return s
 17890  }
 17891  
 17892  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 17893  func (s *CreateUsageLimitInput) SetClusterIdentifier(v string) *CreateUsageLimitInput {
 17894  	s.ClusterIdentifier = &v
 17895  	return s
 17896  }
 17897  
 17898  // SetFeatureType sets the FeatureType field's value.
 17899  func (s *CreateUsageLimitInput) SetFeatureType(v string) *CreateUsageLimitInput {
 17900  	s.FeatureType = &v
 17901  	return s
 17902  }
 17903  
 17904  // SetLimitType sets the LimitType field's value.
 17905  func (s *CreateUsageLimitInput) SetLimitType(v string) *CreateUsageLimitInput {
 17906  	s.LimitType = &v
 17907  	return s
 17908  }
 17909  
 17910  // SetPeriod sets the Period field's value.
 17911  func (s *CreateUsageLimitInput) SetPeriod(v string) *CreateUsageLimitInput {
 17912  	s.Period = &v
 17913  	return s
 17914  }
 17915  
 17916  // SetTags sets the Tags field's value.
 17917  func (s *CreateUsageLimitInput) SetTags(v []*Tag) *CreateUsageLimitInput {
 17918  	s.Tags = v
 17919  	return s
 17920  }
 17921  
 17922  // Describes a usage limit object for a cluster.
 17923  type 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".
 17966  func (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".
 17975  func (s CreateUsageLimitOutput) GoString() string {
 17976  	return s.String()
 17977  }
 17978  
 17979  // SetAmount sets the Amount field's value.
 17980  func (s *CreateUsageLimitOutput) SetAmount(v int64) *CreateUsageLimitOutput {
 17981  	s.Amount = &v
 17982  	return s
 17983  }
 17984  
 17985  // SetBreachAction sets the BreachAction field's value.
 17986  func (s *CreateUsageLimitOutput) SetBreachAction(v string) *CreateUsageLimitOutput {
 17987  	s.BreachAction = &v
 17988  	return s
 17989  }
 17990  
 17991  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 17992  func (s *CreateUsageLimitOutput) SetClusterIdentifier(v string) *CreateUsageLimitOutput {
 17993  	s.ClusterIdentifier = &v
 17994  	return s
 17995  }
 17996  
 17997  // SetFeatureType sets the FeatureType field's value.
 17998  func (s *CreateUsageLimitOutput) SetFeatureType(v string) *CreateUsageLimitOutput {
 17999  	s.FeatureType = &v
 18000  	return s
 18001  }
 18002  
 18003  // SetLimitType sets the LimitType field's value.
 18004  func (s *CreateUsageLimitOutput) SetLimitType(v string) *CreateUsageLimitOutput {
 18005  	s.LimitType = &v
 18006  	return s
 18007  }
 18008  
 18009  // SetPeriod sets the Period field's value.
 18010  func (s *CreateUsageLimitOutput) SetPeriod(v string) *CreateUsageLimitOutput {
 18011  	s.Period = &v
 18012  	return s
 18013  }
 18014  
 18015  // SetTags sets the Tags field's value.
 18016  func (s *CreateUsageLimitOutput) SetTags(v []*Tag) *CreateUsageLimitOutput {
 18017  	s.Tags = v
 18018  	return s
 18019  }
 18020  
 18021  // SetUsageLimitId sets the UsageLimitId field's value.
 18022  func (s *CreateUsageLimitOutput) SetUsageLimitId(v string) *CreateUsageLimitOutput {
 18023  	s.UsageLimitId = &v
 18024  	return s
 18025  }
 18026  
 18027  type 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".
 18053  func (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".
 18062  func (s DataShare) GoString() string {
 18063  	return s.String()
 18064  }
 18065  
 18066  // SetAllowPubliclyAccessibleConsumers sets the AllowPubliclyAccessibleConsumers field's value.
 18067  func (s *DataShare) SetAllowPubliclyAccessibleConsumers(v bool) *DataShare {
 18068  	s.AllowPubliclyAccessibleConsumers = &v
 18069  	return s
 18070  }
 18071  
 18072  // SetDataShareArn sets the DataShareArn field's value.
 18073  func (s *DataShare) SetDataShareArn(v string) *DataShare {
 18074  	s.DataShareArn = &v
 18075  	return s
 18076  }
 18077  
 18078  // SetDataShareAssociations sets the DataShareAssociations field's value.
 18079  func (s *DataShare) SetDataShareAssociations(v []*DataShareAssociation) *DataShare {
 18080  	s.DataShareAssociations = v
 18081  	return s
 18082  }
 18083  
 18084  // SetProducerArn sets the ProducerArn field's value.
 18085  func (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.
 18091  type 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".
 18113  func (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".
 18122  func (s DataShareAssociation) GoString() string {
 18123  	return s.String()
 18124  }
 18125  
 18126  // SetConsumerIdentifier sets the ConsumerIdentifier field's value.
 18127  func (s *DataShareAssociation) SetConsumerIdentifier(v string) *DataShareAssociation {
 18128  	s.ConsumerIdentifier = &v
 18129  	return s
 18130  }
 18131  
 18132  // SetCreatedDate sets the CreatedDate field's value.
 18133  func (s *DataShareAssociation) SetCreatedDate(v time.Time) *DataShareAssociation {
 18134  	s.CreatedDate = &v
 18135  	return s
 18136  }
 18137  
 18138  // SetStatus sets the Status field's value.
 18139  func (s *DataShareAssociation) SetStatus(v string) *DataShareAssociation {
 18140  	s.Status = &v
 18141  	return s
 18142  }
 18143  
 18144  // SetStatusChangeDate sets the StatusChangeDate field's value.
 18145  func (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.
 18152  type 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".
 18180  func (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".
 18189  func (s DataTransferProgress) GoString() string {
 18190  	return s.String()
 18191  }
 18192  
 18193  // SetCurrentRateInMegaBytesPerSecond sets the CurrentRateInMegaBytesPerSecond field's value.
 18194  func (s *DataTransferProgress) SetCurrentRateInMegaBytesPerSecond(v float64) *DataTransferProgress {
 18195  	s.CurrentRateInMegaBytesPerSecond = &v
 18196  	return s
 18197  }
 18198  
 18199  // SetDataTransferredInMegaBytes sets the DataTransferredInMegaBytes field's value.
 18200  func (s *DataTransferProgress) SetDataTransferredInMegaBytes(v int64) *DataTransferProgress {
 18201  	s.DataTransferredInMegaBytes = &v
 18202  	return s
 18203  }
 18204  
 18205  // SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
 18206  func (s *DataTransferProgress) SetElapsedTimeInSeconds(v int64) *DataTransferProgress {
 18207  	s.ElapsedTimeInSeconds = &v
 18208  	return s
 18209  }
 18210  
 18211  // SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value.
 18212  func (s *DataTransferProgress) SetEstimatedTimeToCompletionInSeconds(v int64) *DataTransferProgress {
 18213  	s.EstimatedTimeToCompletionInSeconds = &v
 18214  	return s
 18215  }
 18216  
 18217  // SetStatus sets the Status field's value.
 18218  func (s *DataTransferProgress) SetStatus(v string) *DataTransferProgress {
 18219  	s.Status = &v
 18220  	return s
 18221  }
 18222  
 18223  // SetTotalDataInMegaBytes sets the TotalDataInMegaBytes field's value.
 18224  func (s *DataTransferProgress) SetTotalDataInMegaBytes(v int64) *DataTransferProgress {
 18225  	s.TotalDataInMegaBytes = &v
 18226  	return s
 18227  }
 18228  
 18229  type 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".
 18249  func (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".
 18258  func (s DeauthorizeDataShareInput) GoString() string {
 18259  	return s.String()
 18260  }
 18261  
 18262  // Validate inspects the fields of the type to determine if they are valid.
 18263  func (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.
 18279  func (s *DeauthorizeDataShareInput) SetConsumerIdentifier(v string) *DeauthorizeDataShareInput {
 18280  	s.ConsumerIdentifier = &v
 18281  	return s
 18282  }
 18283  
 18284  // SetDataShareArn sets the DataShareArn field's value.
 18285  func (s *DeauthorizeDataShareInput) SetDataShareArn(v string) *DeauthorizeDataShareInput {
 18286  	s.DataShareArn = &v
 18287  	return s
 18288  }
 18289  
 18290  type 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".
 18316  func (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".
 18325  func (s DeauthorizeDataShareOutput) GoString() string {
 18326  	return s.String()
 18327  }
 18328  
 18329  // SetAllowPubliclyAccessibleConsumers sets the AllowPubliclyAccessibleConsumers field's value.
 18330  func (s *DeauthorizeDataShareOutput) SetAllowPubliclyAccessibleConsumers(v bool) *DeauthorizeDataShareOutput {
 18331  	s.AllowPubliclyAccessibleConsumers = &v
 18332  	return s
 18333  }
 18334  
 18335  // SetDataShareArn sets the DataShareArn field's value.
 18336  func (s *DeauthorizeDataShareOutput) SetDataShareArn(v string) *DeauthorizeDataShareOutput {
 18337  	s.DataShareArn = &v
 18338  	return s
 18339  }
 18340  
 18341  // SetDataShareAssociations sets the DataShareAssociations field's value.
 18342  func (s *DeauthorizeDataShareOutput) SetDataShareAssociations(v []*DataShareAssociation) *DeauthorizeDataShareOutput {
 18343  	s.DataShareAssociations = v
 18344  	return s
 18345  }
 18346  
 18347  // SetProducerArn sets the ProducerArn field's value.
 18348  func (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.
 18354  type 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".
 18377  func (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".
 18386  func (s DefaultClusterParameters) GoString() string {
 18387  	return s.String()
 18388  }
 18389  
 18390  // SetMarker sets the Marker field's value.
 18391  func (s *DefaultClusterParameters) SetMarker(v string) *DefaultClusterParameters {
 18392  	s.Marker = &v
 18393  	return s
 18394  }
 18395  
 18396  // SetParameterGroupFamily sets the ParameterGroupFamily field's value.
 18397  func (s *DefaultClusterParameters) SetParameterGroupFamily(v string) *DefaultClusterParameters {
 18398  	s.ParameterGroupFamily = &v
 18399  	return s
 18400  }
 18401  
 18402  // SetParameters sets the Parameters field's value.
 18403  func (s *DefaultClusterParameters) SetParameters(v []*Parameter) *DefaultClusterParameters {
 18404  	s.Parameters = v
 18405  	return s
 18406  }
 18407  
 18408  // Describes a deferred maintenance window
 18409  type 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".
 18427  func (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".
 18436  func (s DeferredMaintenanceWindow) GoString() string {
 18437  	return s.String()
 18438  }
 18439  
 18440  // SetDeferMaintenanceEndTime sets the DeferMaintenanceEndTime field's value.
 18441  func (s *DeferredMaintenanceWindow) SetDeferMaintenanceEndTime(v time.Time) *DeferredMaintenanceWindow {
 18442  	s.DeferMaintenanceEndTime = &v
 18443  	return s
 18444  }
 18445  
 18446  // SetDeferMaintenanceIdentifier sets the DeferMaintenanceIdentifier field's value.
 18447  func (s *DeferredMaintenanceWindow) SetDeferMaintenanceIdentifier(v string) *DeferredMaintenanceWindow {
 18448  	s.DeferMaintenanceIdentifier = &v
 18449  	return s
 18450  }
 18451  
 18452  // SetDeferMaintenanceStartTime sets the DeferMaintenanceStartTime field's value.
 18453  func (s *DeferredMaintenanceWindow) SetDeferMaintenanceStartTime(v time.Time) *DeferredMaintenanceWindow {
 18454  	s.DeferMaintenanceStartTime = &v
 18455  	return s
 18456  }
 18457  
 18458  type 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".
 18472  func (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".
 18481  func (s DeleteAuthenticationProfileInput) GoString() string {
 18482  	return s.String()
 18483  }
 18484  
 18485  // Validate inspects the fields of the type to determine if they are valid.
 18486  func (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.
 18499  func (s *DeleteAuthenticationProfileInput) SetAuthenticationProfileName(v string) *DeleteAuthenticationProfileInput {
 18500  	s.AuthenticationProfileName = &v
 18501  	return s
 18502  }
 18503  
 18504  type 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".
 18516  func (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".
 18525  func (s DeleteAuthenticationProfileOutput) GoString() string {
 18526  	return s.String()
 18527  }
 18528  
 18529  // SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
 18530  func (s *DeleteAuthenticationProfileOutput) SetAuthenticationProfileName(v string) *DeleteAuthenticationProfileOutput {
 18531  	s.AuthenticationProfileName = &v
 18532  	return s
 18533  }
 18534  
 18535  type 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".
 18590  func (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".
 18599  func (s DeleteClusterInput) GoString() string {
 18600  	return s.String()
 18601  }
 18602  
 18603  // Validate inspects the fields of the type to determine if they are valid.
 18604  func (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.
 18617  func (s *DeleteClusterInput) SetClusterIdentifier(v string) *DeleteClusterInput {
 18618  	s.ClusterIdentifier = &v
 18619  	return s
 18620  }
 18621  
 18622  // SetFinalClusterSnapshotIdentifier sets the FinalClusterSnapshotIdentifier field's value.
 18623  func (s *DeleteClusterInput) SetFinalClusterSnapshotIdentifier(v string) *DeleteClusterInput {
 18624  	s.FinalClusterSnapshotIdentifier = &v
 18625  	return s
 18626  }
 18627  
 18628  // SetFinalClusterSnapshotRetentionPeriod sets the FinalClusterSnapshotRetentionPeriod field's value.
 18629  func (s *DeleteClusterInput) SetFinalClusterSnapshotRetentionPeriod(v int64) *DeleteClusterInput {
 18630  	s.FinalClusterSnapshotRetentionPeriod = &v
 18631  	return s
 18632  }
 18633  
 18634  // SetSkipFinalClusterSnapshot sets the SkipFinalClusterSnapshot field's value.
 18635  func (s *DeleteClusterInput) SetSkipFinalClusterSnapshot(v bool) *DeleteClusterInput {
 18636  	s.SkipFinalClusterSnapshot = &v
 18637  	return s
 18638  }
 18639  
 18640  type 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".
 18652  func (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".
 18661  func (s DeleteClusterOutput) GoString() string {
 18662  	return s.String()
 18663  }
 18664  
 18665  // SetCluster sets the Cluster field's value.
 18666  func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
 18667  	s.Cluster = v
 18668  	return s
 18669  }
 18670  
 18671  type 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".
 18691  func (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".
 18700  func (s DeleteClusterParameterGroupInput) GoString() string {
 18701  	return s.String()
 18702  }
 18703  
 18704  // Validate inspects the fields of the type to determine if they are valid.
 18705  func (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.
 18718  func (s *DeleteClusterParameterGroupInput) SetParameterGroupName(v string) *DeleteClusterParameterGroupInput {
 18719  	s.ParameterGroupName = &v
 18720  	return s
 18721  }
 18722  
 18723  type 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".
 18732  func (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".
 18741  func (s DeleteClusterParameterGroupOutput) GoString() string {
 18742  	return s.String()
 18743  }
 18744  
 18745  type 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".
 18759  func (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".
 18768  func (s DeleteClusterSecurityGroupInput) GoString() string {
 18769  	return s.String()
 18770  }
 18771  
 18772  // Validate inspects the fields of the type to determine if they are valid.
 18773  func (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.
 18786  func (s *DeleteClusterSecurityGroupInput) SetClusterSecurityGroupName(v string) *DeleteClusterSecurityGroupInput {
 18787  	s.ClusterSecurityGroupName = &v
 18788  	return s
 18789  }
 18790  
 18791  type 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".
 18800  func (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".
 18809  func (s DeleteClusterSecurityGroupOutput) GoString() string {
 18810  	return s.String()
 18811  }
 18812  
 18813  type 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".
 18837  func (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".
 18846  func (s DeleteClusterSnapshotInput) GoString() string {
 18847  	return s.String()
 18848  }
 18849  
 18850  // Validate inspects the fields of the type to determine if they are valid.
 18851  func (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.
 18864  func (s *DeleteClusterSnapshotInput) SetSnapshotClusterIdentifier(v string) *DeleteClusterSnapshotInput {
 18865  	s.SnapshotClusterIdentifier = &v
 18866  	return s
 18867  }
 18868  
 18869  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 18870  func (s *DeleteClusterSnapshotInput) SetSnapshotIdentifier(v string) *DeleteClusterSnapshotInput {
 18871  	s.SnapshotIdentifier = &v
 18872  	return s
 18873  }
 18874  
 18875  type 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".
 18899  func (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".
 18908  func (s DeleteClusterSnapshotMessage) GoString() string {
 18909  	return s.String()
 18910  }
 18911  
 18912  // Validate inspects the fields of the type to determine if they are valid.
 18913  func (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.
 18926  func (s *DeleteClusterSnapshotMessage) SetSnapshotClusterIdentifier(v string) *DeleteClusterSnapshotMessage {
 18927  	s.SnapshotClusterIdentifier = &v
 18928  	return s
 18929  }
 18930  
 18931  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 18932  func (s *DeleteClusterSnapshotMessage) SetSnapshotIdentifier(v string) *DeleteClusterSnapshotMessage {
 18933  	s.SnapshotIdentifier = &v
 18934  	return s
 18935  }
 18936  
 18937  type 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".
 18949  func (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".
 18958  func (s DeleteClusterSnapshotOutput) GoString() string {
 18959  	return s.String()
 18960  }
 18961  
 18962  // SetSnapshot sets the Snapshot field's value.
 18963  func (s *DeleteClusterSnapshotOutput) SetSnapshot(v *Snapshot) *DeleteClusterSnapshotOutput {
 18964  	s.Snapshot = v
 18965  	return s
 18966  }
 18967  
 18968  type 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".
 18982  func (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".
 18991  func (s DeleteClusterSubnetGroupInput) GoString() string {
 18992  	return s.String()
 18993  }
 18994  
 18995  // Validate inspects the fields of the type to determine if they are valid.
 18996  func (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.
 19009  func (s *DeleteClusterSubnetGroupInput) SetClusterSubnetGroupName(v string) *DeleteClusterSubnetGroupInput {
 19010  	s.ClusterSubnetGroupName = &v
 19011  	return s
 19012  }
 19013  
 19014  type 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".
 19023  func (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".
 19032  func (s DeleteClusterSubnetGroupOutput) GoString() string {
 19033  	return s.String()
 19034  }
 19035  
 19036  type 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".
 19050  func (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".
 19059  func (s DeleteEndpointAccessInput) GoString() string {
 19060  	return s.String()
 19061  }
 19062  
 19063  // Validate inspects the fields of the type to determine if they are valid.
 19064  func (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.
 19077  func (s *DeleteEndpointAccessInput) SetEndpointName(v string) *DeleteEndpointAccessInput {
 19078  	s.EndpointName = &v
 19079  	return s
 19080  }
 19081  
 19082  // Describes a Redshift-managed VPC endpoint.
 19083  type 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".
 19123  func (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".
 19132  func (s DeleteEndpointAccessOutput) GoString() string {
 19133  	return s.String()
 19134  }
 19135  
 19136  // SetAddress sets the Address field's value.
 19137  func (s *DeleteEndpointAccessOutput) SetAddress(v string) *DeleteEndpointAccessOutput {
 19138  	s.Address = &v
 19139  	return s
 19140  }
 19141  
 19142  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 19143  func (s *DeleteEndpointAccessOutput) SetClusterIdentifier(v string) *DeleteEndpointAccessOutput {
 19144  	s.ClusterIdentifier = &v
 19145  	return s
 19146  }
 19147  
 19148  // SetEndpointCreateTime sets the EndpointCreateTime field's value.
 19149  func (s *DeleteEndpointAccessOutput) SetEndpointCreateTime(v time.Time) *DeleteEndpointAccessOutput {
 19150  	s.EndpointCreateTime = &v
 19151  	return s
 19152  }
 19153  
 19154  // SetEndpointName sets the EndpointName field's value.
 19155  func (s *DeleteEndpointAccessOutput) SetEndpointName(v string) *DeleteEndpointAccessOutput {
 19156  	s.EndpointName = &v
 19157  	return s
 19158  }
 19159  
 19160  // SetEndpointStatus sets the EndpointStatus field's value.
 19161  func (s *DeleteEndpointAccessOutput) SetEndpointStatus(v string) *DeleteEndpointAccessOutput {
 19162  	s.EndpointStatus = &v
 19163  	return s
 19164  }
 19165  
 19166  // SetPort sets the Port field's value.
 19167  func (s *DeleteEndpointAccessOutput) SetPort(v int64) *DeleteEndpointAccessOutput {
 19168  	s.Port = &v
 19169  	return s
 19170  }
 19171  
 19172  // SetResourceOwner sets the ResourceOwner field's value.
 19173  func (s *DeleteEndpointAccessOutput) SetResourceOwner(v string) *DeleteEndpointAccessOutput {
 19174  	s.ResourceOwner = &v
 19175  	return s
 19176  }
 19177  
 19178  // SetSubnetGroupName sets the SubnetGroupName field's value.
 19179  func (s *DeleteEndpointAccessOutput) SetSubnetGroupName(v string) *DeleteEndpointAccessOutput {
 19180  	s.SubnetGroupName = &v
 19181  	return s
 19182  }
 19183  
 19184  // SetVpcEndpoint sets the VpcEndpoint field's value.
 19185  func (s *DeleteEndpointAccessOutput) SetVpcEndpoint(v *VpcEndpoint) *DeleteEndpointAccessOutput {
 19186  	s.VpcEndpoint = v
 19187  	return s
 19188  }
 19189  
 19190  // SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
 19191  func (s *DeleteEndpointAccessOutput) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *DeleteEndpointAccessOutput {
 19192  	s.VpcSecurityGroups = v
 19193  	return s
 19194  }
 19195  
 19196  type 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".
 19210  func (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".
 19219  func (s DeleteEventSubscriptionInput) GoString() string {
 19220  	return s.String()
 19221  }
 19222  
 19223  // Validate inspects the fields of the type to determine if they are valid.
 19224  func (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.
 19237  func (s *DeleteEventSubscriptionInput) SetSubscriptionName(v string) *DeleteEventSubscriptionInput {
 19238  	s.SubscriptionName = &v
 19239  	return s
 19240  }
 19241  
 19242  type 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".
 19251  func (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".
 19260  func (s DeleteEventSubscriptionOutput) GoString() string {
 19261  	return s.String()
 19262  }
 19263  
 19264  type 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".
 19278  func (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".
 19287  func (s DeleteHsmClientCertificateInput) GoString() string {
 19288  	return s.String()
 19289  }
 19290  
 19291  // Validate inspects the fields of the type to determine if they are valid.
 19292  func (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.
 19305  func (s *DeleteHsmClientCertificateInput) SetHsmClientCertificateIdentifier(v string) *DeleteHsmClientCertificateInput {
 19306  	s.HsmClientCertificateIdentifier = &v
 19307  	return s
 19308  }
 19309  
 19310  type 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".
 19319  func (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".
 19328  func (s DeleteHsmClientCertificateOutput) GoString() string {
 19329  	return s.String()
 19330  }
 19331  
 19332  type 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".
 19346  func (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".
 19355  func (s DeleteHsmConfigurationInput) GoString() string {
 19356  	return s.String()
 19357  }
 19358  
 19359  // Validate inspects the fields of the type to determine if they are valid.
 19360  func (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.
 19373  func (s *DeleteHsmConfigurationInput) SetHsmConfigurationIdentifier(v string) *DeleteHsmConfigurationInput {
 19374  	s.HsmConfigurationIdentifier = &v
 19375  	return s
 19376  }
 19377  
 19378  type 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".
 19387  func (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".
 19396  func (s DeleteHsmConfigurationOutput) GoString() string {
 19397  	return s.String()
 19398  }
 19399  
 19400  type 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".
 19429  func (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".
 19438  func (s DeletePartnerInput) GoString() string {
 19439  	return s.String()
 19440  }
 19441  
 19442  // Validate inspects the fields of the type to determine if they are valid.
 19443  func (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.
 19468  func (s *DeletePartnerInput) SetAccountId(v string) *DeletePartnerInput {
 19469  	s.AccountId = &v
 19470  	return s
 19471  }
 19472  
 19473  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 19474  func (s *DeletePartnerInput) SetClusterIdentifier(v string) *DeletePartnerInput {
 19475  	s.ClusterIdentifier = &v
 19476  	return s
 19477  }
 19478  
 19479  // SetDatabaseName sets the DatabaseName field's value.
 19480  func (s *DeletePartnerInput) SetDatabaseName(v string) *DeletePartnerInput {
 19481  	s.DatabaseName = &v
 19482  	return s
 19483  }
 19484  
 19485  // SetPartnerName sets the PartnerName field's value.
 19486  func (s *DeletePartnerInput) SetPartnerName(v string) *DeletePartnerInput {
 19487  	s.PartnerName = &v
 19488  	return s
 19489  }
 19490  
 19491  type 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".
 19506  func (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".
 19515  func (s DeletePartnerOutput) GoString() string {
 19516  	return s.String()
 19517  }
 19518  
 19519  // SetDatabaseName sets the DatabaseName field's value.
 19520  func (s *DeletePartnerOutput) SetDatabaseName(v string) *DeletePartnerOutput {
 19521  	s.DatabaseName = &v
 19522  	return s
 19523  }
 19524  
 19525  // SetPartnerName sets the PartnerName field's value.
 19526  func (s *DeletePartnerOutput) SetPartnerName(v string) *DeletePartnerOutput {
 19527  	s.PartnerName = &v
 19528  	return s
 19529  }
 19530  
 19531  type 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".
 19545  func (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".
 19554  func (s DeleteScheduledActionInput) GoString() string {
 19555  	return s.String()
 19556  }
 19557  
 19558  // Validate inspects the fields of the type to determine if they are valid.
 19559  func (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.
 19572  func (s *DeleteScheduledActionInput) SetScheduledActionName(v string) *DeleteScheduledActionInput {
 19573  	s.ScheduledActionName = &v
 19574  	return s
 19575  }
 19576  
 19577  type 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".
 19586  func (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".
 19595  func (s DeleteScheduledActionOutput) GoString() string {
 19596  	return s.String()
 19597  }
 19598  
 19599  // The result of the DeleteSnapshotCopyGrant action.
 19600  type 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".
 19614  func (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".
 19623  func (s DeleteSnapshotCopyGrantInput) GoString() string {
 19624  	return s.String()
 19625  }
 19626  
 19627  // Validate inspects the fields of the type to determine if they are valid.
 19628  func (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.
 19641  func (s *DeleteSnapshotCopyGrantInput) SetSnapshotCopyGrantName(v string) *DeleteSnapshotCopyGrantInput {
 19642  	s.SnapshotCopyGrantName = &v
 19643  	return s
 19644  }
 19645  
 19646  type 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".
 19655  func (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".
 19664  func (s DeleteSnapshotCopyGrantOutput) GoString() string {
 19665  	return s.String()
 19666  }
 19667  
 19668  type 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".
 19682  func (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".
 19691  func (s DeleteSnapshotScheduleInput) GoString() string {
 19692  	return s.String()
 19693  }
 19694  
 19695  // Validate inspects the fields of the type to determine if they are valid.
 19696  func (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.
 19709  func (s *DeleteSnapshotScheduleInput) SetScheduleIdentifier(v string) *DeleteSnapshotScheduleInput {
 19710  	s.ScheduleIdentifier = &v
 19711  	return s
 19712  }
 19713  
 19714  type 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".
 19723  func (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".
 19732  func (s DeleteSnapshotScheduleOutput) GoString() string {
 19733  	return s.String()
 19734  }
 19735  
 19736  // Contains the output from the DeleteTags action.
 19737  type 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".
 19757  func (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".
 19766  func (s DeleteTagsInput) GoString() string {
 19767  	return s.String()
 19768  }
 19769  
 19770  // Validate inspects the fields of the type to determine if they are valid.
 19771  func (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.
 19787  func (s *DeleteTagsInput) SetResourceName(v string) *DeleteTagsInput {
 19788  	s.ResourceName = &v
 19789  	return s
 19790  }
 19791  
 19792  // SetTagKeys sets the TagKeys field's value.
 19793  func (s *DeleteTagsInput) SetTagKeys(v []*string) *DeleteTagsInput {
 19794  	s.TagKeys = v
 19795  	return s
 19796  }
 19797  
 19798  type 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".
 19807  func (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".
 19816  func (s DeleteTagsOutput) GoString() string {
 19817  	return s.String()
 19818  }
 19819  
 19820  type 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".
 19834  func (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".
 19843  func (s DeleteUsageLimitInput) GoString() string {
 19844  	return s.String()
 19845  }
 19846  
 19847  // Validate inspects the fields of the type to determine if they are valid.
 19848  func (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.
 19861  func (s *DeleteUsageLimitInput) SetUsageLimitId(v string) *DeleteUsageLimitInput {
 19862  	s.UsageLimitId = &v
 19863  	return s
 19864  }
 19865  
 19866  type 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".
 19875  func (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".
 19884  func (s DeleteUsageLimitOutput) GoString() string {
 19885  	return s.String()
 19886  }
 19887  
 19888  type 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".
 19900  func (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".
 19909  func (s DescribeAccountAttributesInput) GoString() string {
 19910  	return s.String()
 19911  }
 19912  
 19913  // SetAttributeNames sets the AttributeNames field's value.
 19914  func (s *DescribeAccountAttributesInput) SetAttributeNames(v []*string) *DescribeAccountAttributesInput {
 19915  	s.AttributeNames = v
 19916  	return s
 19917  }
 19918  
 19919  type 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".
 19931  func (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".
 19940  func (s DescribeAccountAttributesOutput) GoString() string {
 19941  	return s.String()
 19942  }
 19943  
 19944  // SetAccountAttributes sets the AccountAttributes field's value.
 19945  func (s *DescribeAccountAttributesOutput) SetAccountAttributes(v []*AccountAttribute) *DescribeAccountAttributesOutput {
 19946  	s.AccountAttributes = v
 19947  	return s
 19948  }
 19949  
 19950  type 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".
 19963  func (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".
 19972  func (s DescribeAuthenticationProfilesInput) GoString() string {
 19973  	return s.String()
 19974  }
 19975  
 19976  // SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
 19977  func (s *DescribeAuthenticationProfilesInput) SetAuthenticationProfileName(v string) *DescribeAuthenticationProfilesInput {
 19978  	s.AuthenticationProfileName = &v
 19979  	return s
 19980  }
 19981  
 19982  type 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".
 19994  func (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".
 20003  func (s DescribeAuthenticationProfilesOutput) GoString() string {
 20004  	return s.String()
 20005  }
 20006  
 20007  // SetAuthenticationProfiles sets the AuthenticationProfiles field's value.
 20008  func (s *DescribeAuthenticationProfilesOutput) SetAuthenticationProfiles(v []*AuthenticationProfile) *DescribeAuthenticationProfilesOutput {
 20009  	s.AuthenticationProfiles = v
 20010  	return s
 20011  }
 20012  
 20013  type 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".
 20049  func (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".
 20058  func (s DescribeClusterDbRevisionsInput) GoString() string {
 20059  	return s.String()
 20060  }
 20061  
 20062  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 20063  func (s *DescribeClusterDbRevisionsInput) SetClusterIdentifier(v string) *DescribeClusterDbRevisionsInput {
 20064  	s.ClusterIdentifier = &v
 20065  	return s
 20066  }
 20067  
 20068  // SetMarker sets the Marker field's value.
 20069  func (s *DescribeClusterDbRevisionsInput) SetMarker(v string) *DescribeClusterDbRevisionsInput {
 20070  	s.Marker = &v
 20071  	return s
 20072  }
 20073  
 20074  // SetMaxRecords sets the MaxRecords field's value.
 20075  func (s *DescribeClusterDbRevisionsInput) SetMaxRecords(v int64) *DescribeClusterDbRevisionsInput {
 20076  	s.MaxRecords = &v
 20077  	return s
 20078  }
 20079  
 20080  type 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".
 20098  func (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".
 20107  func (s DescribeClusterDbRevisionsOutput) GoString() string {
 20108  	return s.String()
 20109  }
 20110  
 20111  // SetClusterDbRevisions sets the ClusterDbRevisions field's value.
 20112  func (s *DescribeClusterDbRevisionsOutput) SetClusterDbRevisions(v []*ClusterDbRevision) *DescribeClusterDbRevisionsOutput {
 20113  	s.ClusterDbRevisions = v
 20114  	return s
 20115  }
 20116  
 20117  // SetMarker sets the Marker field's value.
 20118  func (s *DescribeClusterDbRevisionsOutput) SetMarker(v string) *DescribeClusterDbRevisionsOutput {
 20119  	s.Marker = &v
 20120  	return s
 20121  }
 20122  
 20123  type 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".
 20170  func (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".
 20179  func (s DescribeClusterParameterGroupsInput) GoString() string {
 20180  	return s.String()
 20181  }
 20182  
 20183  // SetMarker sets the Marker field's value.
 20184  func (s *DescribeClusterParameterGroupsInput) SetMarker(v string) *DescribeClusterParameterGroupsInput {
 20185  	s.Marker = &v
 20186  	return s
 20187  }
 20188  
 20189  // SetMaxRecords sets the MaxRecords field's value.
 20190  func (s *DescribeClusterParameterGroupsInput) SetMaxRecords(v int64) *DescribeClusterParameterGroupsInput {
 20191  	s.MaxRecords = &v
 20192  	return s
 20193  }
 20194  
 20195  // SetParameterGroupName sets the ParameterGroupName field's value.
 20196  func (s *DescribeClusterParameterGroupsInput) SetParameterGroupName(v string) *DescribeClusterParameterGroupsInput {
 20197  	s.ParameterGroupName = &v
 20198  	return s
 20199  }
 20200  
 20201  // SetTagKeys sets the TagKeys field's value.
 20202  func (s *DescribeClusterParameterGroupsInput) SetTagKeys(v []*string) *DescribeClusterParameterGroupsInput {
 20203  	s.TagKeys = v
 20204  	return s
 20205  }
 20206  
 20207  // SetTagValues sets the TagValues field's value.
 20208  func (s *DescribeClusterParameterGroupsInput) SetTagValues(v []*string) *DescribeClusterParameterGroupsInput {
 20209  	s.TagValues = v
 20210  	return s
 20211  }
 20212  
 20213  // Contains the output from the DescribeClusterParameterGroups action.
 20214  type 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".
 20234  func (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".
 20243  func (s DescribeClusterParameterGroupsOutput) GoString() string {
 20244  	return s.String()
 20245  }
 20246  
 20247  // SetMarker sets the Marker field's value.
 20248  func (s *DescribeClusterParameterGroupsOutput) SetMarker(v string) *DescribeClusterParameterGroupsOutput {
 20249  	s.Marker = &v
 20250  	return s
 20251  }
 20252  
 20253  // SetParameterGroups sets the ParameterGroups field's value.
 20254  func (s *DescribeClusterParameterGroupsOutput) SetParameterGroups(v []*ClusterParameterGroup) *DescribeClusterParameterGroupsOutput {
 20255  	s.ParameterGroups = v
 20256  	return s
 20257  }
 20258  
 20259  type 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".
 20300  func (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".
 20309  func (s DescribeClusterParametersInput) GoString() string {
 20310  	return s.String()
 20311  }
 20312  
 20313  // Validate inspects the fields of the type to determine if they are valid.
 20314  func (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.
 20327  func (s *DescribeClusterParametersInput) SetMarker(v string) *DescribeClusterParametersInput {
 20328  	s.Marker = &v
 20329  	return s
 20330  }
 20331  
 20332  // SetMaxRecords sets the MaxRecords field's value.
 20333  func (s *DescribeClusterParametersInput) SetMaxRecords(v int64) *DescribeClusterParametersInput {
 20334  	s.MaxRecords = &v
 20335  	return s
 20336  }
 20337  
 20338  // SetParameterGroupName sets the ParameterGroupName field's value.
 20339  func (s *DescribeClusterParametersInput) SetParameterGroupName(v string) *DescribeClusterParametersInput {
 20340  	s.ParameterGroupName = &v
 20341  	return s
 20342  }
 20343  
 20344  // SetSource sets the Source field's value.
 20345  func (s *DescribeClusterParametersInput) SetSource(v string) *DescribeClusterParametersInput {
 20346  	s.Source = &v
 20347  	return s
 20348  }
 20349  
 20350  // Contains the output from the DescribeClusterParameters action.
 20351  type 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".
 20371  func (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".
 20380  func (s DescribeClusterParametersOutput) GoString() string {
 20381  	return s.String()
 20382  }
 20383  
 20384  // SetMarker sets the Marker field's value.
 20385  func (s *DescribeClusterParametersOutput) SetMarker(v string) *DescribeClusterParametersOutput {
 20386  	s.Marker = &v
 20387  	return s
 20388  }
 20389  
 20390  // SetParameters sets the Parameters field's value.
 20391  func (s *DescribeClusterParametersOutput) SetParameters(v []*Parameter) *DescribeClusterParametersOutput {
 20392  	s.Parameters = v
 20393  	return s
 20394  }
 20395  
 20396  type 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".
 20449  func (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".
 20458  func (s DescribeClusterSecurityGroupsInput) GoString() string {
 20459  	return s.String()
 20460  }
 20461  
 20462  // SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
 20463  func (s *DescribeClusterSecurityGroupsInput) SetClusterSecurityGroupName(v string) *DescribeClusterSecurityGroupsInput {
 20464  	s.ClusterSecurityGroupName = &v
 20465  	return s
 20466  }
 20467  
 20468  // SetMarker sets the Marker field's value.
 20469  func (s *DescribeClusterSecurityGroupsInput) SetMarker(v string) *DescribeClusterSecurityGroupsInput {
 20470  	s.Marker = &v
 20471  	return s
 20472  }
 20473  
 20474  // SetMaxRecords sets the MaxRecords field's value.
 20475  func (s *DescribeClusterSecurityGroupsInput) SetMaxRecords(v int64) *DescribeClusterSecurityGroupsInput {
 20476  	s.MaxRecords = &v
 20477  	return s
 20478  }
 20479  
 20480  // SetTagKeys sets the TagKeys field's value.
 20481  func (s *DescribeClusterSecurityGroupsInput) SetTagKeys(v []*string) *DescribeClusterSecurityGroupsInput {
 20482  	s.TagKeys = v
 20483  	return s
 20484  }
 20485  
 20486  // SetTagValues sets the TagValues field's value.
 20487  func (s *DescribeClusterSecurityGroupsInput) SetTagValues(v []*string) *DescribeClusterSecurityGroupsInput {
 20488  	s.TagValues = v
 20489  	return s
 20490  }
 20491  
 20492  type 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".
 20511  func (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".
 20520  func (s DescribeClusterSecurityGroupsOutput) GoString() string {
 20521  	return s.String()
 20522  }
 20523  
 20524  // SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
 20525  func (s *DescribeClusterSecurityGroupsOutput) SetClusterSecurityGroups(v []*ClusterSecurityGroup) *DescribeClusterSecurityGroupsOutput {
 20526  	s.ClusterSecurityGroups = v
 20527  	return s
 20528  }
 20529  
 20530  // SetMarker sets the Marker field's value.
 20531  func (s *DescribeClusterSecurityGroupsOutput) SetMarker(v string) *DescribeClusterSecurityGroupsOutput {
 20532  	s.Marker = &v
 20533  	return s
 20534  }
 20535  
 20536  type 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".
 20631  func (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".
 20640  func (s DescribeClusterSnapshotsInput) GoString() string {
 20641  	return s.String()
 20642  }
 20643  
 20644  // Validate inspects the fields of the type to determine if they are valid.
 20645  func (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.
 20665  func (s *DescribeClusterSnapshotsInput) SetClusterExists(v bool) *DescribeClusterSnapshotsInput {
 20666  	s.ClusterExists = &v
 20667  	return s
 20668  }
 20669  
 20670  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 20671  func (s *DescribeClusterSnapshotsInput) SetClusterIdentifier(v string) *DescribeClusterSnapshotsInput {
 20672  	s.ClusterIdentifier = &v
 20673  	return s
 20674  }
 20675  
 20676  // SetEndTime sets the EndTime field's value.
 20677  func (s *DescribeClusterSnapshotsInput) SetEndTime(v time.Time) *DescribeClusterSnapshotsInput {
 20678  	s.EndTime = &v
 20679  	return s
 20680  }
 20681  
 20682  // SetMarker sets the Marker field's value.
 20683  func (s *DescribeClusterSnapshotsInput) SetMarker(v string) *DescribeClusterSnapshotsInput {
 20684  	s.Marker = &v
 20685  	return s
 20686  }
 20687  
 20688  // SetMaxRecords sets the MaxRecords field's value.
 20689  func (s *DescribeClusterSnapshotsInput) SetMaxRecords(v int64) *DescribeClusterSnapshotsInput {
 20690  	s.MaxRecords = &v
 20691  	return s
 20692  }
 20693  
 20694  // SetOwnerAccount sets the OwnerAccount field's value.
 20695  func (s *DescribeClusterSnapshotsInput) SetOwnerAccount(v string) *DescribeClusterSnapshotsInput {
 20696  	s.OwnerAccount = &v
 20697  	return s
 20698  }
 20699  
 20700  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 20701  func (s *DescribeClusterSnapshotsInput) SetSnapshotIdentifier(v string) *DescribeClusterSnapshotsInput {
 20702  	s.SnapshotIdentifier = &v
 20703  	return s
 20704  }
 20705  
 20706  // SetSnapshotType sets the SnapshotType field's value.
 20707  func (s *DescribeClusterSnapshotsInput) SetSnapshotType(v string) *DescribeClusterSnapshotsInput {
 20708  	s.SnapshotType = &v
 20709  	return s
 20710  }
 20711  
 20712  // SetSortingEntities sets the SortingEntities field's value.
 20713  func (s *DescribeClusterSnapshotsInput) SetSortingEntities(v []*SnapshotSortingEntity) *DescribeClusterSnapshotsInput {
 20714  	s.SortingEntities = v
 20715  	return s
 20716  }
 20717  
 20718  // SetStartTime sets the StartTime field's value.
 20719  func (s *DescribeClusterSnapshotsInput) SetStartTime(v time.Time) *DescribeClusterSnapshotsInput {
 20720  	s.StartTime = &v
 20721  	return s
 20722  }
 20723  
 20724  // SetTagKeys sets the TagKeys field's value.
 20725  func (s *DescribeClusterSnapshotsInput) SetTagKeys(v []*string) *DescribeClusterSnapshotsInput {
 20726  	s.TagKeys = v
 20727  	return s
 20728  }
 20729  
 20730  // SetTagValues sets the TagValues field's value.
 20731  func (s *DescribeClusterSnapshotsInput) SetTagValues(v []*string) *DescribeClusterSnapshotsInput {
 20732  	s.TagValues = v
 20733  	return s
 20734  }
 20735  
 20736  // Contains the output from the DescribeClusterSnapshots action.
 20737  type 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".
 20756  func (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".
 20765  func (s DescribeClusterSnapshotsOutput) GoString() string {
 20766  	return s.String()
 20767  }
 20768  
 20769  // SetMarker sets the Marker field's value.
 20770  func (s *DescribeClusterSnapshotsOutput) SetMarker(v string) *DescribeClusterSnapshotsOutput {
 20771  	s.Marker = &v
 20772  	return s
 20773  }
 20774  
 20775  // SetSnapshots sets the Snapshots field's value.
 20776  func (s *DescribeClusterSnapshotsOutput) SetSnapshots(v []*Snapshot) *DescribeClusterSnapshotsOutput {
 20777  	s.Snapshots = v
 20778  	return s
 20779  }
 20780  
 20781  type 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".
 20827  func (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".
 20836  func (s DescribeClusterSubnetGroupsInput) GoString() string {
 20837  	return s.String()
 20838  }
 20839  
 20840  // SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
 20841  func (s *DescribeClusterSubnetGroupsInput) SetClusterSubnetGroupName(v string) *DescribeClusterSubnetGroupsInput {
 20842  	s.ClusterSubnetGroupName = &v
 20843  	return s
 20844  }
 20845  
 20846  // SetMarker sets the Marker field's value.
 20847  func (s *DescribeClusterSubnetGroupsInput) SetMarker(v string) *DescribeClusterSubnetGroupsInput {
 20848  	s.Marker = &v
 20849  	return s
 20850  }
 20851  
 20852  // SetMaxRecords sets the MaxRecords field's value.
 20853  func (s *DescribeClusterSubnetGroupsInput) SetMaxRecords(v int64) *DescribeClusterSubnetGroupsInput {
 20854  	s.MaxRecords = &v
 20855  	return s
 20856  }
 20857  
 20858  // SetTagKeys sets the TagKeys field's value.
 20859  func (s *DescribeClusterSubnetGroupsInput) SetTagKeys(v []*string) *DescribeClusterSubnetGroupsInput {
 20860  	s.TagKeys = v
 20861  	return s
 20862  }
 20863  
 20864  // SetTagValues sets the TagValues field's value.
 20865  func (s *DescribeClusterSubnetGroupsInput) SetTagValues(v []*string) *DescribeClusterSubnetGroupsInput {
 20866  	s.TagValues = v
 20867  	return s
 20868  }
 20869  
 20870  // Contains the output from the DescribeClusterSubnetGroups action.
 20871  type 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".
 20890  func (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".
 20899  func (s DescribeClusterSubnetGroupsOutput) GoString() string {
 20900  	return s.String()
 20901  }
 20902  
 20903  // SetClusterSubnetGroups sets the ClusterSubnetGroups field's value.
 20904  func (s *DescribeClusterSubnetGroupsOutput) SetClusterSubnetGroups(v []*ClusterSubnetGroup) *DescribeClusterSubnetGroupsOutput {
 20905  	s.ClusterSubnetGroups = v
 20906  	return s
 20907  }
 20908  
 20909  // SetMarker sets the Marker field's value.
 20910  func (s *DescribeClusterSubnetGroupsOutput) SetMarker(v string) *DescribeClusterSubnetGroupsOutput {
 20911  	s.Marker = &v
 20912  	return s
 20913  }
 20914  
 20915  type 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".
 20938  func (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".
 20947  func (s DescribeClusterTracksInput) GoString() string {
 20948  	return s.String()
 20949  }
 20950  
 20951  // SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
 20952  func (s *DescribeClusterTracksInput) SetMaintenanceTrackName(v string) *DescribeClusterTracksInput {
 20953  	s.MaintenanceTrackName = &v
 20954  	return s
 20955  }
 20956  
 20957  // SetMarker sets the Marker field's value.
 20958  func (s *DescribeClusterTracksInput) SetMarker(v string) *DescribeClusterTracksInput {
 20959  	s.Marker = &v
 20960  	return s
 20961  }
 20962  
 20963  // SetMaxRecords sets the MaxRecords field's value.
 20964  func (s *DescribeClusterTracksInput) SetMaxRecords(v int64) *DescribeClusterTracksInput {
 20965  	s.MaxRecords = &v
 20966  	return s
 20967  }
 20968  
 20969  type 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".
 20986  func (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".
 20995  func (s DescribeClusterTracksOutput) GoString() string {
 20996  	return s.String()
 20997  }
 20998  
 20999  // SetMaintenanceTracks sets the MaintenanceTracks field's value.
 21000  func (s *DescribeClusterTracksOutput) SetMaintenanceTracks(v []*MaintenanceTrack) *DescribeClusterTracksOutput {
 21001  	s.MaintenanceTracks = v
 21002  	return s
 21003  }
 21004  
 21005  // SetMarker sets the Marker field's value.
 21006  func (s *DescribeClusterTracksOutput) SetMarker(v string) *DescribeClusterTracksOutput {
 21007  	s.Marker = &v
 21008  	return s
 21009  }
 21010  
 21011  type 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".
 21054  func (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".
 21063  func (s DescribeClusterVersionsInput) GoString() string {
 21064  	return s.String()
 21065  }
 21066  
 21067  // SetClusterParameterGroupFamily sets the ClusterParameterGroupFamily field's value.
 21068  func (s *DescribeClusterVersionsInput) SetClusterParameterGroupFamily(v string) *DescribeClusterVersionsInput {
 21069  	s.ClusterParameterGroupFamily = &v
 21070  	return s
 21071  }
 21072  
 21073  // SetClusterVersion sets the ClusterVersion field's value.
 21074  func (s *DescribeClusterVersionsInput) SetClusterVersion(v string) *DescribeClusterVersionsInput {
 21075  	s.ClusterVersion = &v
 21076  	return s
 21077  }
 21078  
 21079  // SetMarker sets the Marker field's value.
 21080  func (s *DescribeClusterVersionsInput) SetMarker(v string) *DescribeClusterVersionsInput {
 21081  	s.Marker = &v
 21082  	return s
 21083  }
 21084  
 21085  // SetMaxRecords sets the MaxRecords field's value.
 21086  func (s *DescribeClusterVersionsInput) SetMaxRecords(v int64) *DescribeClusterVersionsInput {
 21087  	s.MaxRecords = &v
 21088  	return s
 21089  }
 21090  
 21091  // Contains the output from the DescribeClusterVersions action.
 21092  type 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".
 21111  func (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".
 21120  func (s DescribeClusterVersionsOutput) GoString() string {
 21121  	return s.String()
 21122  }
 21123  
 21124  // SetClusterVersions sets the ClusterVersions field's value.
 21125  func (s *DescribeClusterVersionsOutput) SetClusterVersions(v []*ClusterVersion) *DescribeClusterVersionsOutput {
 21126  	s.ClusterVersions = v
 21127  	return s
 21128  }
 21129  
 21130  // SetMarker sets the Marker field's value.
 21131  func (s *DescribeClusterVersionsOutput) SetMarker(v string) *DescribeClusterVersionsOutput {
 21132  	s.Marker = &v
 21133  	return s
 21134  }
 21135  
 21136  type 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".
 21188  func (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".
 21197  func (s DescribeClustersInput) GoString() string {
 21198  	return s.String()
 21199  }
 21200  
 21201  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 21202  func (s *DescribeClustersInput) SetClusterIdentifier(v string) *DescribeClustersInput {
 21203  	s.ClusterIdentifier = &v
 21204  	return s
 21205  }
 21206  
 21207  // SetMarker sets the Marker field's value.
 21208  func (s *DescribeClustersInput) SetMarker(v string) *DescribeClustersInput {
 21209  	s.Marker = &v
 21210  	return s
 21211  }
 21212  
 21213  // SetMaxRecords sets the MaxRecords field's value.
 21214  func (s *DescribeClustersInput) SetMaxRecords(v int64) *DescribeClustersInput {
 21215  	s.MaxRecords = &v
 21216  	return s
 21217  }
 21218  
 21219  // SetTagKeys sets the TagKeys field's value.
 21220  func (s *DescribeClustersInput) SetTagKeys(v []*string) *DescribeClustersInput {
 21221  	s.TagKeys = v
 21222  	return s
 21223  }
 21224  
 21225  // SetTagValues sets the TagValues field's value.
 21226  func (s *DescribeClustersInput) SetTagValues(v []*string) *DescribeClustersInput {
 21227  	s.TagValues = v
 21228  	return s
 21229  }
 21230  
 21231  // Contains the output from the DescribeClusters action.
 21232  type 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".
 21251  func (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".
 21260  func (s DescribeClustersOutput) GoString() string {
 21261  	return s.String()
 21262  }
 21263  
 21264  // SetClusters sets the Clusters field's value.
 21265  func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
 21266  	s.Clusters = v
 21267  	return s
 21268  }
 21269  
 21270  // SetMarker sets the Marker field's value.
 21271  func (s *DescribeClustersOutput) SetMarker(v string) *DescribeClustersOutput {
 21272  	s.Marker = &v
 21273  	return s
 21274  }
 21275  
 21276  type 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".
 21308  func (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".
 21317  func (s DescribeDataSharesForConsumerInput) GoString() string {
 21318  	return s.String()
 21319  }
 21320  
 21321  // SetConsumerArn sets the ConsumerArn field's value.
 21322  func (s *DescribeDataSharesForConsumerInput) SetConsumerArn(v string) *DescribeDataSharesForConsumerInput {
 21323  	s.ConsumerArn = &v
 21324  	return s
 21325  }
 21326  
 21327  // SetMarker sets the Marker field's value.
 21328  func (s *DescribeDataSharesForConsumerInput) SetMarker(v string) *DescribeDataSharesForConsumerInput {
 21329  	s.Marker = &v
 21330  	return s
 21331  }
 21332  
 21333  // SetMaxRecords sets the MaxRecords field's value.
 21334  func (s *DescribeDataSharesForConsumerInput) SetMaxRecords(v int64) *DescribeDataSharesForConsumerInput {
 21335  	s.MaxRecords = &v
 21336  	return s
 21337  }
 21338  
 21339  // SetStatus sets the Status field's value.
 21340  func (s *DescribeDataSharesForConsumerInput) SetStatus(v string) *DescribeDataSharesForConsumerInput {
 21341  	s.Status = &v
 21342  	return s
 21343  }
 21344  
 21345  type 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".
 21365  func (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".
 21374  func (s DescribeDataSharesForConsumerOutput) GoString() string {
 21375  	return s.String()
 21376  }
 21377  
 21378  // SetDataShares sets the DataShares field's value.
 21379  func (s *DescribeDataSharesForConsumerOutput) SetDataShares(v []*DataShare) *DescribeDataSharesForConsumerOutput {
 21380  	s.DataShares = v
 21381  	return s
 21382  }
 21383  
 21384  // SetMarker sets the Marker field's value.
 21385  func (s *DescribeDataSharesForConsumerOutput) SetMarker(v string) *DescribeDataSharesForConsumerOutput {
 21386  	s.Marker = &v
 21387  	return s
 21388  }
 21389  
 21390  type 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".
 21422  func (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".
 21431  func (s DescribeDataSharesForProducerInput) GoString() string {
 21432  	return s.String()
 21433  }
 21434  
 21435  // SetMarker sets the Marker field's value.
 21436  func (s *DescribeDataSharesForProducerInput) SetMarker(v string) *DescribeDataSharesForProducerInput {
 21437  	s.Marker = &v
 21438  	return s
 21439  }
 21440  
 21441  // SetMaxRecords sets the MaxRecords field's value.
 21442  func (s *DescribeDataSharesForProducerInput) SetMaxRecords(v int64) *DescribeDataSharesForProducerInput {
 21443  	s.MaxRecords = &v
 21444  	return s
 21445  }
 21446  
 21447  // SetProducerArn sets the ProducerArn field's value.
 21448  func (s *DescribeDataSharesForProducerInput) SetProducerArn(v string) *DescribeDataSharesForProducerInput {
 21449  	s.ProducerArn = &v
 21450  	return s
 21451  }
 21452  
 21453  // SetStatus sets the Status field's value.
 21454  func (s *DescribeDataSharesForProducerInput) SetStatus(v string) *DescribeDataSharesForProducerInput {
 21455  	s.Status = &v
 21456  	return s
 21457  }
 21458  
 21459  type 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".
 21479  func (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".
 21488  func (s DescribeDataSharesForProducerOutput) GoString() string {
 21489  	return s.String()
 21490  }
 21491  
 21492  // SetDataShares sets the DataShares field's value.
 21493  func (s *DescribeDataSharesForProducerOutput) SetDataShares(v []*DataShare) *DescribeDataSharesForProducerOutput {
 21494  	s.DataShares = v
 21495  	return s
 21496  }
 21497  
 21498  // SetMarker sets the Marker field's value.
 21499  func (s *DescribeDataSharesForProducerOutput) SetMarker(v string) *DescribeDataSharesForProducerOutput {
 21500  	s.Marker = &v
 21501  	return s
 21502  }
 21503  
 21504  type 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".
 21529  func (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".
 21538  func (s DescribeDataSharesInput) GoString() string {
 21539  	return s.String()
 21540  }
 21541  
 21542  // SetDataShareArn sets the DataShareArn field's value.
 21543  func (s *DescribeDataSharesInput) SetDataShareArn(v string) *DescribeDataSharesInput {
 21544  	s.DataShareArn = &v
 21545  	return s
 21546  }
 21547  
 21548  // SetMarker sets the Marker field's value.
 21549  func (s *DescribeDataSharesInput) SetMarker(v string) *DescribeDataSharesInput {
 21550  	s.Marker = &v
 21551  	return s
 21552  }
 21553  
 21554  // SetMaxRecords sets the MaxRecords field's value.
 21555  func (s *DescribeDataSharesInput) SetMaxRecords(v int64) *DescribeDataSharesInput {
 21556  	s.MaxRecords = &v
 21557  	return s
 21558  }
 21559  
 21560  type 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".
 21579  func (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".
 21588  func (s DescribeDataSharesOutput) GoString() string {
 21589  	return s.String()
 21590  }
 21591  
 21592  // SetDataShares sets the DataShares field's value.
 21593  func (s *DescribeDataSharesOutput) SetDataShares(v []*DataShare) *DescribeDataSharesOutput {
 21594  	s.DataShares = v
 21595  	return s
 21596  }
 21597  
 21598  // SetMarker sets the Marker field's value.
 21599  func (s *DescribeDataSharesOutput) SetMarker(v string) *DescribeDataSharesOutput {
 21600  	s.Marker = &v
 21601  	return s
 21602  }
 21603  
 21604  type 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".
 21636  func (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".
 21645  func (s DescribeDefaultClusterParametersInput) GoString() string {
 21646  	return s.String()
 21647  }
 21648  
 21649  // Validate inspects the fields of the type to determine if they are valid.
 21650  func (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.
 21663  func (s *DescribeDefaultClusterParametersInput) SetMarker(v string) *DescribeDefaultClusterParametersInput {
 21664  	s.Marker = &v
 21665  	return s
 21666  }
 21667  
 21668  // SetMaxRecords sets the MaxRecords field's value.
 21669  func (s *DescribeDefaultClusterParametersInput) SetMaxRecords(v int64) *DescribeDefaultClusterParametersInput {
 21670  	s.MaxRecords = &v
 21671  	return s
 21672  }
 21673  
 21674  // SetParameterGroupFamily sets the ParameterGroupFamily field's value.
 21675  func (s *DescribeDefaultClusterParametersInput) SetParameterGroupFamily(v string) *DescribeDefaultClusterParametersInput {
 21676  	s.ParameterGroupFamily = &v
 21677  	return s
 21678  }
 21679  
 21680  type 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".
 21692  func (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".
 21701  func (s DescribeDefaultClusterParametersOutput) GoString() string {
 21702  	return s.String()
 21703  }
 21704  
 21705  // SetDefaultClusterParameters sets the DefaultClusterParameters field's value.
 21706  func (s *DescribeDefaultClusterParametersOutput) SetDefaultClusterParameters(v *DefaultClusterParameters) *DescribeDefaultClusterParametersOutput {
 21707  	s.DefaultClusterParameters = v
 21708  	return s
 21709  }
 21710  
 21711  type 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".
 21742  func (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".
 21751  func (s DescribeEndpointAccessInput) GoString() string {
 21752  	return s.String()
 21753  }
 21754  
 21755  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 21756  func (s *DescribeEndpointAccessInput) SetClusterIdentifier(v string) *DescribeEndpointAccessInput {
 21757  	s.ClusterIdentifier = &v
 21758  	return s
 21759  }
 21760  
 21761  // SetEndpointName sets the EndpointName field's value.
 21762  func (s *DescribeEndpointAccessInput) SetEndpointName(v string) *DescribeEndpointAccessInput {
 21763  	s.EndpointName = &v
 21764  	return s
 21765  }
 21766  
 21767  // SetMarker sets the Marker field's value.
 21768  func (s *DescribeEndpointAccessInput) SetMarker(v string) *DescribeEndpointAccessInput {
 21769  	s.Marker = &v
 21770  	return s
 21771  }
 21772  
 21773  // SetMaxRecords sets the MaxRecords field's value.
 21774  func (s *DescribeEndpointAccessInput) SetMaxRecords(v int64) *DescribeEndpointAccessInput {
 21775  	s.MaxRecords = &v
 21776  	return s
 21777  }
 21778  
 21779  // SetResourceOwner sets the ResourceOwner field's value.
 21780  func (s *DescribeEndpointAccessInput) SetResourceOwner(v string) *DescribeEndpointAccessInput {
 21781  	s.ResourceOwner = &v
 21782  	return s
 21783  }
 21784  
 21785  // SetVpcId sets the VpcId field's value.
 21786  func (s *DescribeEndpointAccessInput) SetVpcId(v string) *DescribeEndpointAccessInput {
 21787  	s.VpcId = &v
 21788  	return s
 21789  }
 21790  
 21791  type 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".
 21808  func (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".
 21817  func (s DescribeEndpointAccessOutput) GoString() string {
 21818  	return s.String()
 21819  }
 21820  
 21821  // SetEndpointAccessList sets the EndpointAccessList field's value.
 21822  func (s *DescribeEndpointAccessOutput) SetEndpointAccessList(v []*EndpointAccess) *DescribeEndpointAccessOutput {
 21823  	s.EndpointAccessList = v
 21824  	return s
 21825  }
 21826  
 21827  // SetMarker sets the Marker field's value.
 21828  func (s *DescribeEndpointAccessOutput) SetMarker(v string) *DescribeEndpointAccessOutput {
 21829  	s.Marker = &v
 21830  	return s
 21831  }
 21832  
 21833  type 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".
 21866  func (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".
 21875  func (s DescribeEndpointAuthorizationInput) GoString() string {
 21876  	return s.String()
 21877  }
 21878  
 21879  // SetAccount sets the Account field's value.
 21880  func (s *DescribeEndpointAuthorizationInput) SetAccount(v string) *DescribeEndpointAuthorizationInput {
 21881  	s.Account = &v
 21882  	return s
 21883  }
 21884  
 21885  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 21886  func (s *DescribeEndpointAuthorizationInput) SetClusterIdentifier(v string) *DescribeEndpointAuthorizationInput {
 21887  	s.ClusterIdentifier = &v
 21888  	return s
 21889  }
 21890  
 21891  // SetGrantee sets the Grantee field's value.
 21892  func (s *DescribeEndpointAuthorizationInput) SetGrantee(v bool) *DescribeEndpointAuthorizationInput {
 21893  	s.Grantee = &v
 21894  	return s
 21895  }
 21896  
 21897  // SetMarker sets the Marker field's value.
 21898  func (s *DescribeEndpointAuthorizationInput) SetMarker(v string) *DescribeEndpointAuthorizationInput {
 21899  	s.Marker = &v
 21900  	return s
 21901  }
 21902  
 21903  // SetMaxRecords sets the MaxRecords field's value.
 21904  func (s *DescribeEndpointAuthorizationInput) SetMaxRecords(v int64) *DescribeEndpointAuthorizationInput {
 21905  	s.MaxRecords = &v
 21906  	return s
 21907  }
 21908  
 21909  type 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".
 21926  func (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".
 21935  func (s DescribeEndpointAuthorizationOutput) GoString() string {
 21936  	return s.String()
 21937  }
 21938  
 21939  // SetEndpointAuthorizationList sets the EndpointAuthorizationList field's value.
 21940  func (s *DescribeEndpointAuthorizationOutput) SetEndpointAuthorizationList(v []*EndpointAuthorization) *DescribeEndpointAuthorizationOutput {
 21941  	s.EndpointAuthorizationList = v
 21942  	return s
 21943  }
 21944  
 21945  // SetMarker sets the Marker field's value.
 21946  func (s *DescribeEndpointAuthorizationOutput) SetMarker(v string) *DescribeEndpointAuthorizationOutput {
 21947  	s.Marker = &v
 21948  	return s
 21949  }
 21950  
 21951  type 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".
 21967  func (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".
 21976  func (s DescribeEventCategoriesInput) GoString() string {
 21977  	return s.String()
 21978  }
 21979  
 21980  // SetSourceType sets the SourceType field's value.
 21981  func (s *DescribeEventCategoriesInput) SetSourceType(v string) *DescribeEventCategoriesInput {
 21982  	s.SourceType = &v
 21983  	return s
 21984  }
 21985  
 21986  type 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".
 21998  func (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".
 22007  func (s DescribeEventCategoriesOutput) GoString() string {
 22008  	return s.String()
 22009  }
 22010  
 22011  // SetEventCategoriesMapList sets the EventCategoriesMapList field's value.
 22012  func (s *DescribeEventCategoriesOutput) SetEventCategoriesMapList(v []*EventCategoriesMap) *DescribeEventCategoriesOutput {
 22013  	s.EventCategoriesMapList = v
 22014  	return s
 22015  }
 22016  
 22017  type 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".
 22063  func (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".
 22072  func (s DescribeEventSubscriptionsInput) GoString() string {
 22073  	return s.String()
 22074  }
 22075  
 22076  // SetMarker sets the Marker field's value.
 22077  func (s *DescribeEventSubscriptionsInput) SetMarker(v string) *DescribeEventSubscriptionsInput {
 22078  	s.Marker = &v
 22079  	return s
 22080  }
 22081  
 22082  // SetMaxRecords sets the MaxRecords field's value.
 22083  func (s *DescribeEventSubscriptionsInput) SetMaxRecords(v int64) *DescribeEventSubscriptionsInput {
 22084  	s.MaxRecords = &v
 22085  	return s
 22086  }
 22087  
 22088  // SetSubscriptionName sets the SubscriptionName field's value.
 22089  func (s *DescribeEventSubscriptionsInput) SetSubscriptionName(v string) *DescribeEventSubscriptionsInput {
 22090  	s.SubscriptionName = &v
 22091  	return s
 22092  }
 22093  
 22094  // SetTagKeys sets the TagKeys field's value.
 22095  func (s *DescribeEventSubscriptionsInput) SetTagKeys(v []*string) *DescribeEventSubscriptionsInput {
 22096  	s.TagKeys = v
 22097  	return s
 22098  }
 22099  
 22100  // SetTagValues sets the TagValues field's value.
 22101  func (s *DescribeEventSubscriptionsInput) SetTagValues(v []*string) *DescribeEventSubscriptionsInput {
 22102  	s.TagValues = v
 22103  	return s
 22104  }
 22105  
 22106  type 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".
 22125  func (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".
 22134  func (s DescribeEventSubscriptionsOutput) GoString() string {
 22135  	return s.String()
 22136  }
 22137  
 22138  // SetEventSubscriptionsList sets the EventSubscriptionsList field's value.
 22139  func (s *DescribeEventSubscriptionsOutput) SetEventSubscriptionsList(v []*EventSubscription) *DescribeEventSubscriptionsOutput {
 22140  	s.EventSubscriptionsList = v
 22141  	return s
 22142  }
 22143  
 22144  // SetMarker sets the Marker field's value.
 22145  func (s *DescribeEventSubscriptionsOutput) SetMarker(v string) *DescribeEventSubscriptionsOutput {
 22146  	s.Marker = &v
 22147  	return s
 22148  }
 22149  
 22150  type 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".
 22233  func (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".
 22242  func (s DescribeEventsInput) GoString() string {
 22243  	return s.String()
 22244  }
 22245  
 22246  // SetDuration sets the Duration field's value.
 22247  func (s *DescribeEventsInput) SetDuration(v int64) *DescribeEventsInput {
 22248  	s.Duration = &v
 22249  	return s
 22250  }
 22251  
 22252  // SetEndTime sets the EndTime field's value.
 22253  func (s *DescribeEventsInput) SetEndTime(v time.Time) *DescribeEventsInput {
 22254  	s.EndTime = &v
 22255  	return s
 22256  }
 22257  
 22258  // SetMarker sets the Marker field's value.
 22259  func (s *DescribeEventsInput) SetMarker(v string) *DescribeEventsInput {
 22260  	s.Marker = &v
 22261  	return s
 22262  }
 22263  
 22264  // SetMaxRecords sets the MaxRecords field's value.
 22265  func (s *DescribeEventsInput) SetMaxRecords(v int64) *DescribeEventsInput {
 22266  	s.MaxRecords = &v
 22267  	return s
 22268  }
 22269  
 22270  // SetSourceIdentifier sets the SourceIdentifier field's value.
 22271  func (s *DescribeEventsInput) SetSourceIdentifier(v string) *DescribeEventsInput {
 22272  	s.SourceIdentifier = &v
 22273  	return s
 22274  }
 22275  
 22276  // SetSourceType sets the SourceType field's value.
 22277  func (s *DescribeEventsInput) SetSourceType(v string) *DescribeEventsInput {
 22278  	s.SourceType = &v
 22279  	return s
 22280  }
 22281  
 22282  // SetStartTime sets the StartTime field's value.
 22283  func (s *DescribeEventsInput) SetStartTime(v time.Time) *DescribeEventsInput {
 22284  	s.StartTime = &v
 22285  	return s
 22286  }
 22287  
 22288  type 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".
 22307  func (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".
 22316  func (s DescribeEventsOutput) GoString() string {
 22317  	return s.String()
 22318  }
 22319  
 22320  // SetEvents sets the Events field's value.
 22321  func (s *DescribeEventsOutput) SetEvents(v []*Event) *DescribeEventsOutput {
 22322  	s.Events = v
 22323  	return s
 22324  }
 22325  
 22326  // SetMarker sets the Marker field's value.
 22327  func (s *DescribeEventsOutput) SetMarker(v string) *DescribeEventsOutput {
 22328  	s.Marker = &v
 22329  	return s
 22330  }
 22331  
 22332  type 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".
 22380  func (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".
 22389  func (s DescribeHsmClientCertificatesInput) GoString() string {
 22390  	return s.String()
 22391  }
 22392  
 22393  // SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
 22394  func (s *DescribeHsmClientCertificatesInput) SetHsmClientCertificateIdentifier(v string) *DescribeHsmClientCertificatesInput {
 22395  	s.HsmClientCertificateIdentifier = &v
 22396  	return s
 22397  }
 22398  
 22399  // SetMarker sets the Marker field's value.
 22400  func (s *DescribeHsmClientCertificatesInput) SetMarker(v string) *DescribeHsmClientCertificatesInput {
 22401  	s.Marker = &v
 22402  	return s
 22403  }
 22404  
 22405  // SetMaxRecords sets the MaxRecords field's value.
 22406  func (s *DescribeHsmClientCertificatesInput) SetMaxRecords(v int64) *DescribeHsmClientCertificatesInput {
 22407  	s.MaxRecords = &v
 22408  	return s
 22409  }
 22410  
 22411  // SetTagKeys sets the TagKeys field's value.
 22412  func (s *DescribeHsmClientCertificatesInput) SetTagKeys(v []*string) *DescribeHsmClientCertificatesInput {
 22413  	s.TagKeys = v
 22414  	return s
 22415  }
 22416  
 22417  // SetTagValues sets the TagValues field's value.
 22418  func (s *DescribeHsmClientCertificatesInput) SetTagValues(v []*string) *DescribeHsmClientCertificatesInput {
 22419  	s.TagValues = v
 22420  	return s
 22421  }
 22422  
 22423  type 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".
 22444  func (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".
 22453  func (s DescribeHsmClientCertificatesOutput) GoString() string {
 22454  	return s.String()
 22455  }
 22456  
 22457  // SetHsmClientCertificates sets the HsmClientCertificates field's value.
 22458  func (s *DescribeHsmClientCertificatesOutput) SetHsmClientCertificates(v []*HsmClientCertificate) *DescribeHsmClientCertificatesOutput {
 22459  	s.HsmClientCertificates = v
 22460  	return s
 22461  }
 22462  
 22463  // SetMarker sets the Marker field's value.
 22464  func (s *DescribeHsmClientCertificatesOutput) SetMarker(v string) *DescribeHsmClientCertificatesOutput {
 22465  	s.Marker = &v
 22466  	return s
 22467  }
 22468  
 22469  type 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".
 22517  func (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".
 22526  func (s DescribeHsmConfigurationsInput) GoString() string {
 22527  	return s.String()
 22528  }
 22529  
 22530  // SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
 22531  func (s *DescribeHsmConfigurationsInput) SetHsmConfigurationIdentifier(v string) *DescribeHsmConfigurationsInput {
 22532  	s.HsmConfigurationIdentifier = &v
 22533  	return s
 22534  }
 22535  
 22536  // SetMarker sets the Marker field's value.
 22537  func (s *DescribeHsmConfigurationsInput) SetMarker(v string) *DescribeHsmConfigurationsInput {
 22538  	s.Marker = &v
 22539  	return s
 22540  }
 22541  
 22542  // SetMaxRecords sets the MaxRecords field's value.
 22543  func (s *DescribeHsmConfigurationsInput) SetMaxRecords(v int64) *DescribeHsmConfigurationsInput {
 22544  	s.MaxRecords = &v
 22545  	return s
 22546  }
 22547  
 22548  // SetTagKeys sets the TagKeys field's value.
 22549  func (s *DescribeHsmConfigurationsInput) SetTagKeys(v []*string) *DescribeHsmConfigurationsInput {
 22550  	s.TagKeys = v
 22551  	return s
 22552  }
 22553  
 22554  // SetTagValues sets the TagValues field's value.
 22555  func (s *DescribeHsmConfigurationsInput) SetTagValues(v []*string) *DescribeHsmConfigurationsInput {
 22556  	s.TagValues = v
 22557  	return s
 22558  }
 22559  
 22560  type 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".
 22579  func (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".
 22588  func (s DescribeHsmConfigurationsOutput) GoString() string {
 22589  	return s.String()
 22590  }
 22591  
 22592  // SetHsmConfigurations sets the HsmConfigurations field's value.
 22593  func (s *DescribeHsmConfigurationsOutput) SetHsmConfigurations(v []*HsmConfiguration) *DescribeHsmConfigurationsOutput {
 22594  	s.HsmConfigurations = v
 22595  	return s
 22596  }
 22597  
 22598  // SetMarker sets the Marker field's value.
 22599  func (s *DescribeHsmConfigurationsOutput) SetMarker(v string) *DescribeHsmConfigurationsOutput {
 22600  	s.Marker = &v
 22601  	return s
 22602  }
 22603  
 22604  type 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".
 22620  func (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".
 22629  func (s DescribeLoggingStatusInput) GoString() string {
 22630  	return s.String()
 22631  }
 22632  
 22633  // Validate inspects the fields of the type to determine if they are valid.
 22634  func (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.
 22647  func (s *DescribeLoggingStatusInput) SetClusterIdentifier(v string) *DescribeLoggingStatusInput {
 22648  	s.ClusterIdentifier = &v
 22649  	return s
 22650  }
 22651  
 22652  type 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".
 22701  func (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".
 22710  func (s DescribeNodeConfigurationOptionsInput) GoString() string {
 22711  	return s.String()
 22712  }
 22713  
 22714  // Validate inspects the fields of the type to determine if they are valid.
 22715  func (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.
 22728  func (s *DescribeNodeConfigurationOptionsInput) SetActionType(v string) *DescribeNodeConfigurationOptionsInput {
 22729  	s.ActionType = &v
 22730  	return s
 22731  }
 22732  
 22733  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 22734  func (s *DescribeNodeConfigurationOptionsInput) SetClusterIdentifier(v string) *DescribeNodeConfigurationOptionsInput {
 22735  	s.ClusterIdentifier = &v
 22736  	return s
 22737  }
 22738  
 22739  // SetFilters sets the Filters field's value.
 22740  func (s *DescribeNodeConfigurationOptionsInput) SetFilters(v []*NodeConfigurationOptionsFilter) *DescribeNodeConfigurationOptionsInput {
 22741  	s.Filters = v
 22742  	return s
 22743  }
 22744  
 22745  // SetMarker sets the Marker field's value.
 22746  func (s *DescribeNodeConfigurationOptionsInput) SetMarker(v string) *DescribeNodeConfigurationOptionsInput {
 22747  	s.Marker = &v
 22748  	return s
 22749  }
 22750  
 22751  // SetMaxRecords sets the MaxRecords field's value.
 22752  func (s *DescribeNodeConfigurationOptionsInput) SetMaxRecords(v int64) *DescribeNodeConfigurationOptionsInput {
 22753  	s.MaxRecords = &v
 22754  	return s
 22755  }
 22756  
 22757  // SetOwnerAccount sets the OwnerAccount field's value.
 22758  func (s *DescribeNodeConfigurationOptionsInput) SetOwnerAccount(v string) *DescribeNodeConfigurationOptionsInput {
 22759  	s.OwnerAccount = &v
 22760  	return s
 22761  }
 22762  
 22763  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 22764  func (s *DescribeNodeConfigurationOptionsInput) SetSnapshotIdentifier(v string) *DescribeNodeConfigurationOptionsInput {
 22765  	s.SnapshotIdentifier = &v
 22766  	return s
 22767  }
 22768  
 22769  type 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".
 22788  func (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".
 22797  func (s DescribeNodeConfigurationOptionsOutput) GoString() string {
 22798  	return s.String()
 22799  }
 22800  
 22801  // SetMarker sets the Marker field's value.
 22802  func (s *DescribeNodeConfigurationOptionsOutput) SetMarker(v string) *DescribeNodeConfigurationOptionsOutput {
 22803  	s.Marker = &v
 22804  	return s
 22805  }
 22806  
 22807  // SetNodeConfigurationOptionList sets the NodeConfigurationOptionList field's value.
 22808  func (s *DescribeNodeConfigurationOptionsOutput) SetNodeConfigurationOptionList(v []*NodeConfigurationOption) *DescribeNodeConfigurationOptionsOutput {
 22809  	s.NodeConfigurationOptionList = v
 22810  	return s
 22811  }
 22812  
 22813  type 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".
 22852  func (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".
 22861  func (s DescribeOrderableClusterOptionsInput) GoString() string {
 22862  	return s.String()
 22863  }
 22864  
 22865  // SetClusterVersion sets the ClusterVersion field's value.
 22866  func (s *DescribeOrderableClusterOptionsInput) SetClusterVersion(v string) *DescribeOrderableClusterOptionsInput {
 22867  	s.ClusterVersion = &v
 22868  	return s
 22869  }
 22870  
 22871  // SetMarker sets the Marker field's value.
 22872  func (s *DescribeOrderableClusterOptionsInput) SetMarker(v string) *DescribeOrderableClusterOptionsInput {
 22873  	s.Marker = &v
 22874  	return s
 22875  }
 22876  
 22877  // SetMaxRecords sets the MaxRecords field's value.
 22878  func (s *DescribeOrderableClusterOptionsInput) SetMaxRecords(v int64) *DescribeOrderableClusterOptionsInput {
 22879  	s.MaxRecords = &v
 22880  	return s
 22881  }
 22882  
 22883  // SetNodeType sets the NodeType field's value.
 22884  func (s *DescribeOrderableClusterOptionsInput) SetNodeType(v string) *DescribeOrderableClusterOptionsInput {
 22885  	s.NodeType = &v
 22886  	return s
 22887  }
 22888  
 22889  // Contains the output from the DescribeOrderableClusterOptions action.
 22890  type 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".
 22910  func (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".
 22919  func (s DescribeOrderableClusterOptionsOutput) GoString() string {
 22920  	return s.String()
 22921  }
 22922  
 22923  // SetMarker sets the Marker field's value.
 22924  func (s *DescribeOrderableClusterOptionsOutput) SetMarker(v string) *DescribeOrderableClusterOptionsOutput {
 22925  	s.Marker = &v
 22926  	return s
 22927  }
 22928  
 22929  // SetOrderableClusterOptions sets the OrderableClusterOptions field's value.
 22930  func (s *DescribeOrderableClusterOptionsOutput) SetOrderableClusterOptions(v []*OrderableClusterOption) *DescribeOrderableClusterOptionsOutput {
 22931  	s.OrderableClusterOptions = v
 22932  	return s
 22933  }
 22934  
 22935  type 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".
 22963  func (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".
 22972  func (s DescribePartnersInput) GoString() string {
 22973  	return s.String()
 22974  }
 22975  
 22976  // Validate inspects the fields of the type to determine if they are valid.
 22977  func (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.
 22996  func (s *DescribePartnersInput) SetAccountId(v string) *DescribePartnersInput {
 22997  	s.AccountId = &v
 22998  	return s
 22999  }
 23000  
 23001  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 23002  func (s *DescribePartnersInput) SetClusterIdentifier(v string) *DescribePartnersInput {
 23003  	s.ClusterIdentifier = &v
 23004  	return s
 23005  }
 23006  
 23007  // SetDatabaseName sets the DatabaseName field's value.
 23008  func (s *DescribePartnersInput) SetDatabaseName(v string) *DescribePartnersInput {
 23009  	s.DatabaseName = &v
 23010  	return s
 23011  }
 23012  
 23013  // SetPartnerName sets the PartnerName field's value.
 23014  func (s *DescribePartnersInput) SetPartnerName(v string) *DescribePartnersInput {
 23015  	s.PartnerName = &v
 23016  	return s
 23017  }
 23018  
 23019  type 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".
 23031  func (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".
 23040  func (s DescribePartnersOutput) GoString() string {
 23041  	return s.String()
 23042  }
 23043  
 23044  // SetPartnerIntegrationInfoList sets the PartnerIntegrationInfoList field's value.
 23045  func (s *DescribePartnersOutput) SetPartnerIntegrationInfoList(v []*PartnerIntegrationInfo) *DescribePartnersOutput {
 23046  	s.PartnerIntegrationInfoList = v
 23047  	return s
 23048  }
 23049  
 23050  type 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".
 23080  func (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".
 23089  func (s DescribeReservedNodeOfferingsInput) GoString() string {
 23090  	return s.String()
 23091  }
 23092  
 23093  // SetMarker sets the Marker field's value.
 23094  func (s *DescribeReservedNodeOfferingsInput) SetMarker(v string) *DescribeReservedNodeOfferingsInput {
 23095  	s.Marker = &v
 23096  	return s
 23097  }
 23098  
 23099  // SetMaxRecords sets the MaxRecords field's value.
 23100  func (s *DescribeReservedNodeOfferingsInput) SetMaxRecords(v int64) *DescribeReservedNodeOfferingsInput {
 23101  	s.MaxRecords = &v
 23102  	return s
 23103  }
 23104  
 23105  // SetReservedNodeOfferingId sets the ReservedNodeOfferingId field's value.
 23106  func (s *DescribeReservedNodeOfferingsInput) SetReservedNodeOfferingId(v string) *DescribeReservedNodeOfferingsInput {
 23107  	s.ReservedNodeOfferingId = &v
 23108  	return s
 23109  }
 23110  
 23111  type 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".
 23130  func (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".
 23139  func (s DescribeReservedNodeOfferingsOutput) GoString() string {
 23140  	return s.String()
 23141  }
 23142  
 23143  // SetMarker sets the Marker field's value.
 23144  func (s *DescribeReservedNodeOfferingsOutput) SetMarker(v string) *DescribeReservedNodeOfferingsOutput {
 23145  	s.Marker = &v
 23146  	return s
 23147  }
 23148  
 23149  // SetReservedNodeOfferings sets the ReservedNodeOfferings field's value.
 23150  func (s *DescribeReservedNodeOfferingsOutput) SetReservedNodeOfferings(v []*ReservedNodeOffering) *DescribeReservedNodeOfferingsOutput {
 23151  	s.ReservedNodeOfferings = v
 23152  	return s
 23153  }
 23154  
 23155  type 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".
 23185  func (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".
 23194  func (s DescribeReservedNodesInput) GoString() string {
 23195  	return s.String()
 23196  }
 23197  
 23198  // SetMarker sets the Marker field's value.
 23199  func (s *DescribeReservedNodesInput) SetMarker(v string) *DescribeReservedNodesInput {
 23200  	s.Marker = &v
 23201  	return s
 23202  }
 23203  
 23204  // SetMaxRecords sets the MaxRecords field's value.
 23205  func (s *DescribeReservedNodesInput) SetMaxRecords(v int64) *DescribeReservedNodesInput {
 23206  	s.MaxRecords = &v
 23207  	return s
 23208  }
 23209  
 23210  // SetReservedNodeId sets the ReservedNodeId field's value.
 23211  func (s *DescribeReservedNodesInput) SetReservedNodeId(v string) *DescribeReservedNodesInput {
 23212  	s.ReservedNodeId = &v
 23213  	return s
 23214  }
 23215  
 23216  type 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".
 23235  func (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".
 23244  func (s DescribeReservedNodesOutput) GoString() string {
 23245  	return s.String()
 23246  }
 23247  
 23248  // SetMarker sets the Marker field's value.
 23249  func (s *DescribeReservedNodesOutput) SetMarker(v string) *DescribeReservedNodesOutput {
 23250  	s.Marker = &v
 23251  	return s
 23252  }
 23253  
 23254  // SetReservedNodes sets the ReservedNodes field's value.
 23255  func (s *DescribeReservedNodesOutput) SetReservedNodes(v []*ReservedNode) *DescribeReservedNodesOutput {
 23256  	s.ReservedNodes = v
 23257  	return s
 23258  }
 23259  
 23260  type 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".
 23278  func (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".
 23287  func (s DescribeResizeInput) GoString() string {
 23288  	return s.String()
 23289  }
 23290  
 23291  // Validate inspects the fields of the type to determine if they are valid.
 23292  func (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.
 23305  func (s *DescribeResizeInput) SetClusterIdentifier(v string) *DescribeResizeInput {
 23306  	s.ClusterIdentifier = &v
 23307  	return s
 23308  }
 23309  
 23310  // Describes the result of a cluster resize operation.
 23311  type 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".
 23394  func (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".
 23403  func (s DescribeResizeOutput) GoString() string {
 23404  	return s.String()
 23405  }
 23406  
 23407  // SetAvgResizeRateInMegaBytesPerSecond sets the AvgResizeRateInMegaBytesPerSecond field's value.
 23408  func (s *DescribeResizeOutput) SetAvgResizeRateInMegaBytesPerSecond(v float64) *DescribeResizeOutput {
 23409  	s.AvgResizeRateInMegaBytesPerSecond = &v
 23410  	return s
 23411  }
 23412  
 23413  // SetDataTransferProgressPercent sets the DataTransferProgressPercent field's value.
 23414  func (s *DescribeResizeOutput) SetDataTransferProgressPercent(v float64) *DescribeResizeOutput {
 23415  	s.DataTransferProgressPercent = &v
 23416  	return s
 23417  }
 23418  
 23419  // SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
 23420  func (s *DescribeResizeOutput) SetElapsedTimeInSeconds(v int64) *DescribeResizeOutput {
 23421  	s.ElapsedTimeInSeconds = &v
 23422  	return s
 23423  }
 23424  
 23425  // SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value.
 23426  func (s *DescribeResizeOutput) SetEstimatedTimeToCompletionInSeconds(v int64) *DescribeResizeOutput {
 23427  	s.EstimatedTimeToCompletionInSeconds = &v
 23428  	return s
 23429  }
 23430  
 23431  // SetImportTablesCompleted sets the ImportTablesCompleted field's value.
 23432  func (s *DescribeResizeOutput) SetImportTablesCompleted(v []*string) *DescribeResizeOutput {
 23433  	s.ImportTablesCompleted = v
 23434  	return s
 23435  }
 23436  
 23437  // SetImportTablesInProgress sets the ImportTablesInProgress field's value.
 23438  func (s *DescribeResizeOutput) SetImportTablesInProgress(v []*string) *DescribeResizeOutput {
 23439  	s.ImportTablesInProgress = v
 23440  	return s
 23441  }
 23442  
 23443  // SetImportTablesNotStarted sets the ImportTablesNotStarted field's value.
 23444  func (s *DescribeResizeOutput) SetImportTablesNotStarted(v []*string) *DescribeResizeOutput {
 23445  	s.ImportTablesNotStarted = v
 23446  	return s
 23447  }
 23448  
 23449  // SetMessage sets the Message field's value.
 23450  func (s *DescribeResizeOutput) SetMessage(v string) *DescribeResizeOutput {
 23451  	s.Message = &v
 23452  	return s
 23453  }
 23454  
 23455  // SetProgressInMegaBytes sets the ProgressInMegaBytes field's value.
 23456  func (s *DescribeResizeOutput) SetProgressInMegaBytes(v int64) *DescribeResizeOutput {
 23457  	s.ProgressInMegaBytes = &v
 23458  	return s
 23459  }
 23460  
 23461  // SetResizeType sets the ResizeType field's value.
 23462  func (s *DescribeResizeOutput) SetResizeType(v string) *DescribeResizeOutput {
 23463  	s.ResizeType = &v
 23464  	return s
 23465  }
 23466  
 23467  // SetStatus sets the Status field's value.
 23468  func (s *DescribeResizeOutput) SetStatus(v string) *DescribeResizeOutput {
 23469  	s.Status = &v
 23470  	return s
 23471  }
 23472  
 23473  // SetTargetClusterType sets the TargetClusterType field's value.
 23474  func (s *DescribeResizeOutput) SetTargetClusterType(v string) *DescribeResizeOutput {
 23475  	s.TargetClusterType = &v
 23476  	return s
 23477  }
 23478  
 23479  // SetTargetEncryptionType sets the TargetEncryptionType field's value.
 23480  func (s *DescribeResizeOutput) SetTargetEncryptionType(v string) *DescribeResizeOutput {
 23481  	s.TargetEncryptionType = &v
 23482  	return s
 23483  }
 23484  
 23485  // SetTargetNodeType sets the TargetNodeType field's value.
 23486  func (s *DescribeResizeOutput) SetTargetNodeType(v string) *DescribeResizeOutput {
 23487  	s.TargetNodeType = &v
 23488  	return s
 23489  }
 23490  
 23491  // SetTargetNumberOfNodes sets the TargetNumberOfNodes field's value.
 23492  func (s *DescribeResizeOutput) SetTargetNumberOfNodes(v int64) *DescribeResizeOutput {
 23493  	s.TargetNumberOfNodes = &v
 23494  	return s
 23495  }
 23496  
 23497  // SetTotalResizeDataInMegaBytes sets the TotalResizeDataInMegaBytes field's value.
 23498  func (s *DescribeResizeOutput) SetTotalResizeDataInMegaBytes(v int64) *DescribeResizeOutput {
 23499  	s.TotalResizeDataInMegaBytes = &v
 23500  	return s
 23501  }
 23502  
 23503  type 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".
 23551  func (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".
 23560  func (s DescribeScheduledActionsInput) GoString() string {
 23561  	return s.String()
 23562  }
 23563  
 23564  // Validate inspects the fields of the type to determine if they are valid.
 23565  func (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.
 23585  func (s *DescribeScheduledActionsInput) SetActive(v bool) *DescribeScheduledActionsInput {
 23586  	s.Active = &v
 23587  	return s
 23588  }
 23589  
 23590  // SetEndTime sets the EndTime field's value.
 23591  func (s *DescribeScheduledActionsInput) SetEndTime(v time.Time) *DescribeScheduledActionsInput {
 23592  	s.EndTime = &v
 23593  	return s
 23594  }
 23595  
 23596  // SetFilters sets the Filters field's value.
 23597  func (s *DescribeScheduledActionsInput) SetFilters(v []*ScheduledActionFilter) *DescribeScheduledActionsInput {
 23598  	s.Filters = v
 23599  	return s
 23600  }
 23601  
 23602  // SetMarker sets the Marker field's value.
 23603  func (s *DescribeScheduledActionsInput) SetMarker(v string) *DescribeScheduledActionsInput {
 23604  	s.Marker = &v
 23605  	return s
 23606  }
 23607  
 23608  // SetMaxRecords sets the MaxRecords field's value.
 23609  func (s *DescribeScheduledActionsInput) SetMaxRecords(v int64) *DescribeScheduledActionsInput {
 23610  	s.MaxRecords = &v
 23611  	return s
 23612  }
 23613  
 23614  // SetScheduledActionName sets the ScheduledActionName field's value.
 23615  func (s *DescribeScheduledActionsInput) SetScheduledActionName(v string) *DescribeScheduledActionsInput {
 23616  	s.ScheduledActionName = &v
 23617  	return s
 23618  }
 23619  
 23620  // SetStartTime sets the StartTime field's value.
 23621  func (s *DescribeScheduledActionsInput) SetStartTime(v time.Time) *DescribeScheduledActionsInput {
 23622  	s.StartTime = &v
 23623  	return s
 23624  }
 23625  
 23626  // SetTargetActionType sets the TargetActionType field's value.
 23627  func (s *DescribeScheduledActionsInput) SetTargetActionType(v string) *DescribeScheduledActionsInput {
 23628  	s.TargetActionType = &v
 23629  	return s
 23630  }
 23631  
 23632  type 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".
 23652  func (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".
 23661  func (s DescribeScheduledActionsOutput) GoString() string {
 23662  	return s.String()
 23663  }
 23664  
 23665  // SetMarker sets the Marker field's value.
 23666  func (s *DescribeScheduledActionsOutput) SetMarker(v string) *DescribeScheduledActionsOutput {
 23667  	s.Marker = &v
 23668  	return s
 23669  }
 23670  
 23671  // SetScheduledActions sets the ScheduledActions field's value.
 23672  func (s *DescribeScheduledActionsOutput) SetScheduledActions(v []*ScheduledAction) *DescribeScheduledActionsOutput {
 23673  	s.ScheduledActions = v
 23674  	return s
 23675  }
 23676  
 23677  // The result of the DescribeSnapshotCopyGrants action.
 23678  type 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".
 23727  func (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".
 23736  func (s DescribeSnapshotCopyGrantsInput) GoString() string {
 23737  	return s.String()
 23738  }
 23739  
 23740  // SetMarker sets the Marker field's value.
 23741  func (s *DescribeSnapshotCopyGrantsInput) SetMarker(v string) *DescribeSnapshotCopyGrantsInput {
 23742  	s.Marker = &v
 23743  	return s
 23744  }
 23745  
 23746  // SetMaxRecords sets the MaxRecords field's value.
 23747  func (s *DescribeSnapshotCopyGrantsInput) SetMaxRecords(v int64) *DescribeSnapshotCopyGrantsInput {
 23748  	s.MaxRecords = &v
 23749  	return s
 23750  }
 23751  
 23752  // SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
 23753  func (s *DescribeSnapshotCopyGrantsInput) SetSnapshotCopyGrantName(v string) *DescribeSnapshotCopyGrantsInput {
 23754  	s.SnapshotCopyGrantName = &v
 23755  	return s
 23756  }
 23757  
 23758  // SetTagKeys sets the TagKeys field's value.
 23759  func (s *DescribeSnapshotCopyGrantsInput) SetTagKeys(v []*string) *DescribeSnapshotCopyGrantsInput {
 23760  	s.TagKeys = v
 23761  	return s
 23762  }
 23763  
 23764  // SetTagValues sets the TagValues field's value.
 23765  func (s *DescribeSnapshotCopyGrantsInput) SetTagValues(v []*string) *DescribeSnapshotCopyGrantsInput {
 23766  	s.TagValues = v
 23767  	return s
 23768  }
 23769  
 23770  type 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".
 23793  func (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".
 23802  func (s DescribeSnapshotCopyGrantsOutput) GoString() string {
 23803  	return s.String()
 23804  }
 23805  
 23806  // SetMarker sets the Marker field's value.
 23807  func (s *DescribeSnapshotCopyGrantsOutput) SetMarker(v string) *DescribeSnapshotCopyGrantsOutput {
 23808  	s.Marker = &v
 23809  	return s
 23810  }
 23811  
 23812  // SetSnapshotCopyGrants sets the SnapshotCopyGrants field's value.
 23813  func (s *DescribeSnapshotCopyGrantsOutput) SetSnapshotCopyGrants(v []*SnapshotCopyGrant) *DescribeSnapshotCopyGrantsOutput {
 23814  	s.SnapshotCopyGrants = v
 23815  	return s
 23816  }
 23817  
 23818  type 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".
 23853  func (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".
 23862  func (s DescribeSnapshotSchedulesInput) GoString() string {
 23863  	return s.String()
 23864  }
 23865  
 23866  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 23867  func (s *DescribeSnapshotSchedulesInput) SetClusterIdentifier(v string) *DescribeSnapshotSchedulesInput {
 23868  	s.ClusterIdentifier = &v
 23869  	return s
 23870  }
 23871  
 23872  // SetMarker sets the Marker field's value.
 23873  func (s *DescribeSnapshotSchedulesInput) SetMarker(v string) *DescribeSnapshotSchedulesInput {
 23874  	s.Marker = &v
 23875  	return s
 23876  }
 23877  
 23878  // SetMaxRecords sets the MaxRecords field's value.
 23879  func (s *DescribeSnapshotSchedulesInput) SetMaxRecords(v int64) *DescribeSnapshotSchedulesInput {
 23880  	s.MaxRecords = &v
 23881  	return s
 23882  }
 23883  
 23884  // SetScheduleIdentifier sets the ScheduleIdentifier field's value.
 23885  func (s *DescribeSnapshotSchedulesInput) SetScheduleIdentifier(v string) *DescribeSnapshotSchedulesInput {
 23886  	s.ScheduleIdentifier = &v
 23887  	return s
 23888  }
 23889  
 23890  // SetTagKeys sets the TagKeys field's value.
 23891  func (s *DescribeSnapshotSchedulesInput) SetTagKeys(v []*string) *DescribeSnapshotSchedulesInput {
 23892  	s.TagKeys = v
 23893  	return s
 23894  }
 23895  
 23896  // SetTagValues sets the TagValues field's value.
 23897  func (s *DescribeSnapshotSchedulesInput) SetTagValues(v []*string) *DescribeSnapshotSchedulesInput {
 23898  	s.TagValues = v
 23899  	return s
 23900  }
 23901  
 23902  type 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".
 23921  func (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".
 23930  func (s DescribeSnapshotSchedulesOutput) GoString() string {
 23931  	return s.String()
 23932  }
 23933  
 23934  // SetMarker sets the Marker field's value.
 23935  func (s *DescribeSnapshotSchedulesOutput) SetMarker(v string) *DescribeSnapshotSchedulesOutput {
 23936  	s.Marker = &v
 23937  	return s
 23938  }
 23939  
 23940  // SetSnapshotSchedules sets the SnapshotSchedules field's value.
 23941  func (s *DescribeSnapshotSchedulesOutput) SetSnapshotSchedules(v []*SnapshotSchedule) *DescribeSnapshotSchedulesOutput {
 23942  	s.SnapshotSchedules = v
 23943  	return s
 23944  }
 23945  
 23946  type 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".
 23955  func (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".
 23964  func (s DescribeStorageInput) GoString() string {
 23965  	return s.String()
 23966  }
 23967  
 23968  type 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".
 23983  func (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".
 23992  func (s DescribeStorageOutput) GoString() string {
 23993  	return s.String()
 23994  }
 23995  
 23996  // SetTotalBackupSizeInMegaBytes sets the TotalBackupSizeInMegaBytes field's value.
 23997  func (s *DescribeStorageOutput) SetTotalBackupSizeInMegaBytes(v float64) *DescribeStorageOutput {
 23998  	s.TotalBackupSizeInMegaBytes = &v
 23999  	return s
 24000  }
 24001  
 24002  // SetTotalProvisionedStorageInMegaBytes sets the TotalProvisionedStorageInMegaBytes field's value.
 24003  func (s *DescribeStorageOutput) SetTotalProvisionedStorageInMegaBytes(v float64) *DescribeStorageOutput {
 24004  	s.TotalProvisionedStorageInMegaBytes = &v
 24005  	return s
 24006  }
 24007  
 24008  type 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".
 24035  func (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".
 24044  func (s DescribeTableRestoreStatusInput) GoString() string {
 24045  	return s.String()
 24046  }
 24047  
 24048  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 24049  func (s *DescribeTableRestoreStatusInput) SetClusterIdentifier(v string) *DescribeTableRestoreStatusInput {
 24050  	s.ClusterIdentifier = &v
 24051  	return s
 24052  }
 24053  
 24054  // SetMarker sets the Marker field's value.
 24055  func (s *DescribeTableRestoreStatusInput) SetMarker(v string) *DescribeTableRestoreStatusInput {
 24056  	s.Marker = &v
 24057  	return s
 24058  }
 24059  
 24060  // SetMaxRecords sets the MaxRecords field's value.
 24061  func (s *DescribeTableRestoreStatusInput) SetMaxRecords(v int64) *DescribeTableRestoreStatusInput {
 24062  	s.MaxRecords = &v
 24063  	return s
 24064  }
 24065  
 24066  // SetTableRestoreRequestId sets the TableRestoreRequestId field's value.
 24067  func (s *DescribeTableRestoreStatusInput) SetTableRestoreRequestId(v string) *DescribeTableRestoreStatusInput {
 24068  	s.TableRestoreRequestId = &v
 24069  	return s
 24070  }
 24071  
 24072  type 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".
 24088  func (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".
 24097  func (s DescribeTableRestoreStatusOutput) GoString() string {
 24098  	return s.String()
 24099  }
 24100  
 24101  // SetMarker sets the Marker field's value.
 24102  func (s *DescribeTableRestoreStatusOutput) SetMarker(v string) *DescribeTableRestoreStatusOutput {
 24103  	s.Marker = &v
 24104  	return s
 24105  }
 24106  
 24107  // SetTableRestoreStatusDetails sets the TableRestoreStatusDetails field's value.
 24108  func (s *DescribeTableRestoreStatusOutput) SetTableRestoreStatusDetails(v []*TableRestoreStatus) *DescribeTableRestoreStatusOutput {
 24109  	s.TableRestoreStatusDetails = v
 24110  	return s
 24111  }
 24112  
 24113  type 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".
 24184  func (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".
 24193  func (s DescribeTagsInput) GoString() string {
 24194  	return s.String()
 24195  }
 24196  
 24197  // SetMarker sets the Marker field's value.
 24198  func (s *DescribeTagsInput) SetMarker(v string) *DescribeTagsInput {
 24199  	s.Marker = &v
 24200  	return s
 24201  }
 24202  
 24203  // SetMaxRecords sets the MaxRecords field's value.
 24204  func (s *DescribeTagsInput) SetMaxRecords(v int64) *DescribeTagsInput {
 24205  	s.MaxRecords = &v
 24206  	return s
 24207  }
 24208  
 24209  // SetResourceName sets the ResourceName field's value.
 24210  func (s *DescribeTagsInput) SetResourceName(v string) *DescribeTagsInput {
 24211  	s.ResourceName = &v
 24212  	return s
 24213  }
 24214  
 24215  // SetResourceType sets the ResourceType field's value.
 24216  func (s *DescribeTagsInput) SetResourceType(v string) *DescribeTagsInput {
 24217  	s.ResourceType = &v
 24218  	return s
 24219  }
 24220  
 24221  // SetTagKeys sets the TagKeys field's value.
 24222  func (s *DescribeTagsInput) SetTagKeys(v []*string) *DescribeTagsInput {
 24223  	s.TagKeys = v
 24224  	return s
 24225  }
 24226  
 24227  // SetTagValues sets the TagValues field's value.
 24228  func (s *DescribeTagsInput) SetTagValues(v []*string) *DescribeTagsInput {
 24229  	s.TagValues = v
 24230  	return s
 24231  }
 24232  
 24233  type 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".
 24252  func (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".
 24261  func (s DescribeTagsOutput) GoString() string {
 24262  	return s.String()
 24263  }
 24264  
 24265  // SetMarker sets the Marker field's value.
 24266  func (s *DescribeTagsOutput) SetMarker(v string) *DescribeTagsOutput {
 24267  	s.Marker = &v
 24268  	return s
 24269  }
 24270  
 24271  // SetTaggedResources sets the TaggedResources field's value.
 24272  func (s *DescribeTagsOutput) SetTaggedResources(v []*TaggedResource) *DescribeTagsOutput {
 24273  	s.TaggedResources = v
 24274  	return s
 24275  }
 24276  
 24277  type 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".
 24329  func (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".
 24338  func (s DescribeUsageLimitsInput) GoString() string {
 24339  	return s.String()
 24340  }
 24341  
 24342  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 24343  func (s *DescribeUsageLimitsInput) SetClusterIdentifier(v string) *DescribeUsageLimitsInput {
 24344  	s.ClusterIdentifier = &v
 24345  	return s
 24346  }
 24347  
 24348  // SetFeatureType sets the FeatureType field's value.
 24349  func (s *DescribeUsageLimitsInput) SetFeatureType(v string) *DescribeUsageLimitsInput {
 24350  	s.FeatureType = &v
 24351  	return s
 24352  }
 24353  
 24354  // SetMarker sets the Marker field's value.
 24355  func (s *DescribeUsageLimitsInput) SetMarker(v string) *DescribeUsageLimitsInput {
 24356  	s.Marker = &v
 24357  	return s
 24358  }
 24359  
 24360  // SetMaxRecords sets the MaxRecords field's value.
 24361  func (s *DescribeUsageLimitsInput) SetMaxRecords(v int64) *DescribeUsageLimitsInput {
 24362  	s.MaxRecords = &v
 24363  	return s
 24364  }
 24365  
 24366  // SetTagKeys sets the TagKeys field's value.
 24367  func (s *DescribeUsageLimitsInput) SetTagKeys(v []*string) *DescribeUsageLimitsInput {
 24368  	s.TagKeys = v
 24369  	return s
 24370  }
 24371  
 24372  // SetTagValues sets the TagValues field's value.
 24373  func (s *DescribeUsageLimitsInput) SetTagValues(v []*string) *DescribeUsageLimitsInput {
 24374  	s.TagValues = v
 24375  	return s
 24376  }
 24377  
 24378  // SetUsageLimitId sets the UsageLimitId field's value.
 24379  func (s *DescribeUsageLimitsInput) SetUsageLimitId(v string) *DescribeUsageLimitsInput {
 24380  	s.UsageLimitId = &v
 24381  	return s
 24382  }
 24383  
 24384  type 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".
 24403  func (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".
 24412  func (s DescribeUsageLimitsOutput) GoString() string {
 24413  	return s.String()
 24414  }
 24415  
 24416  // SetMarker sets the Marker field's value.
 24417  func (s *DescribeUsageLimitsOutput) SetMarker(v string) *DescribeUsageLimitsOutput {
 24418  	s.Marker = &v
 24419  	return s
 24420  }
 24421  
 24422  // SetUsageLimits sets the UsageLimits field's value.
 24423  func (s *DescribeUsageLimitsOutput) SetUsageLimits(v []*UsageLimit) *DescribeUsageLimitsOutput {
 24424  	s.UsageLimits = v
 24425  	return s
 24426  }
 24427  
 24428  type 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".
 24444  func (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".
 24453  func (s DisableLoggingInput) GoString() string {
 24454  	return s.String()
 24455  }
 24456  
 24457  // Validate inspects the fields of the type to determine if they are valid.
 24458  func (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.
 24471  func (s *DisableLoggingInput) SetClusterIdentifier(v string) *DisableLoggingInput {
 24472  	s.ClusterIdentifier = &v
 24473  	return s
 24474  }
 24475  
 24476  type 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".
 24494  func (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".
 24503  func (s DisableSnapshotCopyInput) GoString() string {
 24504  	return s.String()
 24505  }
 24506  
 24507  // Validate inspects the fields of the type to determine if they are valid.
 24508  func (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.
 24521  func (s *DisableSnapshotCopyInput) SetClusterIdentifier(v string) *DisableSnapshotCopyInput {
 24522  	s.ClusterIdentifier = &v
 24523  	return s
 24524  }
 24525  
 24526  type 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".
 24538  func (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".
 24547  func (s DisableSnapshotCopyOutput) GoString() string {
 24548  	return s.String()
 24549  }
 24550  
 24551  // SetCluster sets the Cluster field's value.
 24552  func (s *DisableSnapshotCopyOutput) SetCluster(v *Cluster) *DisableSnapshotCopyOutput {
 24553  	s.Cluster = v
 24554  	return s
 24555  }
 24556  
 24557  type 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".
 24579  func (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".
 24588  func (s DisassociateDataShareConsumerInput) GoString() string {
 24589  	return s.String()
 24590  }
 24591  
 24592  // Validate inspects the fields of the type to determine if they are valid.
 24593  func (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.
 24606  func (s *DisassociateDataShareConsumerInput) SetConsumerArn(v string) *DisassociateDataShareConsumerInput {
 24607  	s.ConsumerArn = &v
 24608  	return s
 24609  }
 24610  
 24611  // SetDataShareArn sets the DataShareArn field's value.
 24612  func (s *DisassociateDataShareConsumerInput) SetDataShareArn(v string) *DisassociateDataShareConsumerInput {
 24613  	s.DataShareArn = &v
 24614  	return s
 24615  }
 24616  
 24617  // SetDisassociateEntireAccount sets the DisassociateEntireAccount field's value.
 24618  func (s *DisassociateDataShareConsumerInput) SetDisassociateEntireAccount(v bool) *DisassociateDataShareConsumerInput {
 24619  	s.DisassociateEntireAccount = &v
 24620  	return s
 24621  }
 24622  
 24623  type 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".
 24649  func (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".
 24658  func (s DisassociateDataShareConsumerOutput) GoString() string {
 24659  	return s.String()
 24660  }
 24661  
 24662  // SetAllowPubliclyAccessibleConsumers sets the AllowPubliclyAccessibleConsumers field's value.
 24663  func (s *DisassociateDataShareConsumerOutput) SetAllowPubliclyAccessibleConsumers(v bool) *DisassociateDataShareConsumerOutput {
 24664  	s.AllowPubliclyAccessibleConsumers = &v
 24665  	return s
 24666  }
 24667  
 24668  // SetDataShareArn sets the DataShareArn field's value.
 24669  func (s *DisassociateDataShareConsumerOutput) SetDataShareArn(v string) *DisassociateDataShareConsumerOutput {
 24670  	s.DataShareArn = &v
 24671  	return s
 24672  }
 24673  
 24674  // SetDataShareAssociations sets the DataShareAssociations field's value.
 24675  func (s *DisassociateDataShareConsumerOutput) SetDataShareAssociations(v []*DataShareAssociation) *DisassociateDataShareConsumerOutput {
 24676  	s.DataShareAssociations = v
 24677  	return s
 24678  }
 24679  
 24680  // SetProducerArn sets the ProducerArn field's value.
 24681  func (s *DisassociateDataShareConsumerOutput) SetProducerArn(v string) *DisassociateDataShareConsumerOutput {
 24682  	s.ProducerArn = &v
 24683  	return s
 24684  }
 24685  
 24686  // Describes an Amazon EC2 security group.
 24687  type 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".
 24709  func (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".
 24718  func (s EC2SecurityGroup) GoString() string {
 24719  	return s.String()
 24720  }
 24721  
 24722  // SetEC2SecurityGroupName sets the EC2SecurityGroupName field's value.
 24723  func (s *EC2SecurityGroup) SetEC2SecurityGroupName(v string) *EC2SecurityGroup {
 24724  	s.EC2SecurityGroupName = &v
 24725  	return s
 24726  }
 24727  
 24728  // SetEC2SecurityGroupOwnerId sets the EC2SecurityGroupOwnerId field's value.
 24729  func (s *EC2SecurityGroup) SetEC2SecurityGroupOwnerId(v string) *EC2SecurityGroup {
 24730  	s.EC2SecurityGroupOwnerId = &v
 24731  	return s
 24732  }
 24733  
 24734  // SetStatus sets the Status field's value.
 24735  func (s *EC2SecurityGroup) SetStatus(v string) *EC2SecurityGroup {
 24736  	s.Status = &v
 24737  	return s
 24738  }
 24739  
 24740  // SetTags sets the Tags field's value.
 24741  func (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.
 24747  type 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".
 24762  func (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".
 24771  func (s ElasticIpStatus) GoString() string {
 24772  	return s.String()
 24773  }
 24774  
 24775  // SetElasticIp sets the ElasticIp field's value.
 24776  func (s *ElasticIpStatus) SetElasticIp(v string) *ElasticIpStatus {
 24777  	s.ElasticIp = &v
 24778  	return s
 24779  }
 24780  
 24781  // SetStatus sets the Status field's value.
 24782  func (s *ElasticIpStatus) SetStatus(v string) *ElasticIpStatus {
 24783  	s.Status = &v
 24784  	return s
 24785  }
 24786  
 24787  type 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".
 24825  func (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".
 24834  func (s EnableLoggingInput) GoString() string {
 24835  	return s.String()
 24836  }
 24837  
 24838  // Validate inspects the fields of the type to determine if they are valid.
 24839  func (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.
 24855  func (s *EnableLoggingInput) SetBucketName(v string) *EnableLoggingInput {
 24856  	s.BucketName = &v
 24857  	return s
 24858  }
 24859  
 24860  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 24861  func (s *EnableLoggingInput) SetClusterIdentifier(v string) *EnableLoggingInput {
 24862  	s.ClusterIdentifier = &v
 24863  	return s
 24864  }
 24865  
 24866  // SetS3KeyPrefix sets the S3KeyPrefix field's value.
 24867  func (s *EnableLoggingInput) SetS3KeyPrefix(v string) *EnableLoggingInput {
 24868  	s.S3KeyPrefix = &v
 24869  	return s
 24870  }
 24871  
 24872  type 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".
 24918  func (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".
 24927  func (s EnableSnapshotCopyInput) GoString() string {
 24928  	return s.String()
 24929  }
 24930  
 24931  // Validate inspects the fields of the type to determine if they are valid.
 24932  func (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.
 24948  func (s *EnableSnapshotCopyInput) SetClusterIdentifier(v string) *EnableSnapshotCopyInput {
 24949  	s.ClusterIdentifier = &v
 24950  	return s
 24951  }
 24952  
 24953  // SetDestinationRegion sets the DestinationRegion field's value.
 24954  func (s *EnableSnapshotCopyInput) SetDestinationRegion(v string) *EnableSnapshotCopyInput {
 24955  	s.DestinationRegion = &v
 24956  	return s
 24957  }
 24958  
 24959  // SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
 24960  func (s *EnableSnapshotCopyInput) SetManualSnapshotRetentionPeriod(v int64) *EnableSnapshotCopyInput {
 24961  	s.ManualSnapshotRetentionPeriod = &v
 24962  	return s
 24963  }
 24964  
 24965  // SetRetentionPeriod sets the RetentionPeriod field's value.
 24966  func (s *EnableSnapshotCopyInput) SetRetentionPeriod(v int64) *EnableSnapshotCopyInput {
 24967  	s.RetentionPeriod = &v
 24968  	return s
 24969  }
 24970  
 24971  // SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
 24972  func (s *EnableSnapshotCopyInput) SetSnapshotCopyGrantName(v string) *EnableSnapshotCopyInput {
 24973  	s.SnapshotCopyGrantName = &v
 24974  	return s
 24975  }
 24976  
 24977  type 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".
 24989  func (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".
 24998  func (s EnableSnapshotCopyOutput) GoString() string {
 24999  	return s.String()
 25000  }
 25001  
 25002  // SetCluster sets the Cluster field's value.
 25003  func (s *EnableSnapshotCopyOutput) SetCluster(v *Cluster) *EnableSnapshotCopyOutput {
 25004  	s.Cluster = v
 25005  	return s
 25006  }
 25007  
 25008  // Describes a connection endpoint.
 25009  type 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".
 25027  func (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".
 25036  func (s Endpoint) GoString() string {
 25037  	return s.String()
 25038  }
 25039  
 25040  // SetAddress sets the Address field's value.
 25041  func (s *Endpoint) SetAddress(v string) *Endpoint {
 25042  	s.Address = &v
 25043  	return s
 25044  }
 25045  
 25046  // SetPort sets the Port field's value.
 25047  func (s *Endpoint) SetPort(v int64) *Endpoint {
 25048  	s.Port = &v
 25049  	return s
 25050  }
 25051  
 25052  // SetVpcEndpoints sets the VpcEndpoints field's value.
 25053  func (s *Endpoint) SetVpcEndpoints(v []*VpcEndpoint) *Endpoint {
 25054  	s.VpcEndpoints = v
 25055  	return s
 25056  }
 25057  
 25058  // Describes a Redshift-managed VPC endpoint.
 25059  type 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".
 25099  func (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".
 25108  func (s EndpointAccess) GoString() string {
 25109  	return s.String()
 25110  }
 25111  
 25112  // SetAddress sets the Address field's value.
 25113  func (s *EndpointAccess) SetAddress(v string) *EndpointAccess {
 25114  	s.Address = &v
 25115  	return s
 25116  }
 25117  
 25118  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 25119  func (s *EndpointAccess) SetClusterIdentifier(v string) *EndpointAccess {
 25120  	s.ClusterIdentifier = &v
 25121  	return s
 25122  }
 25123  
 25124  // SetEndpointCreateTime sets the EndpointCreateTime field's value.
 25125  func (s *EndpointAccess) SetEndpointCreateTime(v time.Time) *EndpointAccess {
 25126  	s.EndpointCreateTime = &v
 25127  	return s
 25128  }
 25129  
 25130  // SetEndpointName sets the EndpointName field's value.
 25131  func (s *EndpointAccess) SetEndpointName(v string) *EndpointAccess {
 25132  	s.EndpointName = &v
 25133  	return s
 25134  }
 25135  
 25136  // SetEndpointStatus sets the EndpointStatus field's value.
 25137  func (s *EndpointAccess) SetEndpointStatus(v string) *EndpointAccess {
 25138  	s.EndpointStatus = &v
 25139  	return s
 25140  }
 25141  
 25142  // SetPort sets the Port field's value.
 25143  func (s *EndpointAccess) SetPort(v int64) *EndpointAccess {
 25144  	s.Port = &v
 25145  	return s
 25146  }
 25147  
 25148  // SetResourceOwner sets the ResourceOwner field's value.
 25149  func (s *EndpointAccess) SetResourceOwner(v string) *EndpointAccess {
 25150  	s.ResourceOwner = &v
 25151  	return s
 25152  }
 25153  
 25154  // SetSubnetGroupName sets the SubnetGroupName field's value.
 25155  func (s *EndpointAccess) SetSubnetGroupName(v string) *EndpointAccess {
 25156  	s.SubnetGroupName = &v
 25157  	return s
 25158  }
 25159  
 25160  // SetVpcEndpoint sets the VpcEndpoint field's value.
 25161  func (s *EndpointAccess) SetVpcEndpoint(v *VpcEndpoint) *EndpointAccess {
 25162  	s.VpcEndpoint = v
 25163  	return s
 25164  }
 25165  
 25166  // SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
 25167  func (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.
 25174  type 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".
 25211  func (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".
 25220  func (s EndpointAuthorization) GoString() string {
 25221  	return s.String()
 25222  }
 25223  
 25224  // SetAllowedAllVPCs sets the AllowedAllVPCs field's value.
 25225  func (s *EndpointAuthorization) SetAllowedAllVPCs(v bool) *EndpointAuthorization {
 25226  	s.AllowedAllVPCs = &v
 25227  	return s
 25228  }
 25229  
 25230  // SetAllowedVPCs sets the AllowedVPCs field's value.
 25231  func (s *EndpointAuthorization) SetAllowedVPCs(v []*string) *EndpointAuthorization {
 25232  	s.AllowedVPCs = v
 25233  	return s
 25234  }
 25235  
 25236  // SetAuthorizeTime sets the AuthorizeTime field's value.
 25237  func (s *EndpointAuthorization) SetAuthorizeTime(v time.Time) *EndpointAuthorization {
 25238  	s.AuthorizeTime = &v
 25239  	return s
 25240  }
 25241  
 25242  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 25243  func (s *EndpointAuthorization) SetClusterIdentifier(v string) *EndpointAuthorization {
 25244  	s.ClusterIdentifier = &v
 25245  	return s
 25246  }
 25247  
 25248  // SetClusterStatus sets the ClusterStatus field's value.
 25249  func (s *EndpointAuthorization) SetClusterStatus(v string) *EndpointAuthorization {
 25250  	s.ClusterStatus = &v
 25251  	return s
 25252  }
 25253  
 25254  // SetEndpointCount sets the EndpointCount field's value.
 25255  func (s *EndpointAuthorization) SetEndpointCount(v int64) *EndpointAuthorization {
 25256  	s.EndpointCount = &v
 25257  	return s
 25258  }
 25259  
 25260  // SetGrantee sets the Grantee field's value.
 25261  func (s *EndpointAuthorization) SetGrantee(v string) *EndpointAuthorization {
 25262  	s.Grantee = &v
 25263  	return s
 25264  }
 25265  
 25266  // SetGrantor sets the Grantor field's value.
 25267  func (s *EndpointAuthorization) SetGrantor(v string) *EndpointAuthorization {
 25268  	s.Grantor = &v
 25269  	return s
 25270  }
 25271  
 25272  // SetStatus sets the Status field's value.
 25273  func (s *EndpointAuthorization) SetStatus(v string) *EndpointAuthorization {
 25274  	s.Status = &v
 25275  	return s
 25276  }
 25277  
 25278  // Describes an event.
 25279  type 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".
 25313  func (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".
 25322  func (s Event) GoString() string {
 25323  	return s.String()
 25324  }
 25325  
 25326  // SetDate sets the Date field's value.
 25327  func (s *Event) SetDate(v time.Time) *Event {
 25328  	s.Date = &v
 25329  	return s
 25330  }
 25331  
 25332  // SetEventCategories sets the EventCategories field's value.
 25333  func (s *Event) SetEventCategories(v []*string) *Event {
 25334  	s.EventCategories = v
 25335  	return s
 25336  }
 25337  
 25338  // SetEventId sets the EventId field's value.
 25339  func (s *Event) SetEventId(v string) *Event {
 25340  	s.EventId = &v
 25341  	return s
 25342  }
 25343  
 25344  // SetMessage sets the Message field's value.
 25345  func (s *Event) SetMessage(v string) *Event {
 25346  	s.Message = &v
 25347  	return s
 25348  }
 25349  
 25350  // SetSeverity sets the Severity field's value.
 25351  func (s *Event) SetSeverity(v string) *Event {
 25352  	s.Severity = &v
 25353  	return s
 25354  }
 25355  
 25356  // SetSourceIdentifier sets the SourceIdentifier field's value.
 25357  func (s *Event) SetSourceIdentifier(v string) *Event {
 25358  	s.SourceIdentifier = &v
 25359  	return s
 25360  }
 25361  
 25362  // SetSourceType sets the SourceType field's value.
 25363  func (s *Event) SetSourceType(v string) *Event {
 25364  	s.SourceType = &v
 25365  	return s
 25366  }
 25367  
 25368  // Describes event categories.
 25369  type 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".
 25385  func (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".
 25394  func (s EventCategoriesMap) GoString() string {
 25395  	return s.String()
 25396  }
 25397  
 25398  // SetEvents sets the Events field's value.
 25399  func (s *EventCategoriesMap) SetEvents(v []*EventInfoMap) *EventCategoriesMap {
 25400  	s.Events = v
 25401  	return s
 25402  }
 25403  
 25404  // SetSourceType sets the SourceType field's value.
 25405  func (s *EventCategoriesMap) SetSourceType(v string) *EventCategoriesMap {
 25406  	s.SourceType = &v
 25407  	return s
 25408  }
 25409  
 25410  // Describes event information.
 25411  type 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".
 25434  func (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".
 25443  func (s EventInfoMap) GoString() string {
 25444  	return s.String()
 25445  }
 25446  
 25447  // SetEventCategories sets the EventCategories field's value.
 25448  func (s *EventInfoMap) SetEventCategories(v []*string) *EventInfoMap {
 25449  	s.EventCategories = v
 25450  	return s
 25451  }
 25452  
 25453  // SetEventDescription sets the EventDescription field's value.
 25454  func (s *EventInfoMap) SetEventDescription(v string) *EventInfoMap {
 25455  	s.EventDescription = &v
 25456  	return s
 25457  }
 25458  
 25459  // SetEventId sets the EventId field's value.
 25460  func (s *EventInfoMap) SetEventId(v string) *EventInfoMap {
 25461  	s.EventId = &v
 25462  	return s
 25463  }
 25464  
 25465  // SetSeverity sets the Severity field's value.
 25466  func (s *EventInfoMap) SetSeverity(v string) *EventInfoMap {
 25467  	s.Severity = &v
 25468  	return s
 25469  }
 25470  
 25471  // Describes event subscriptions.
 25472  type 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".
 25534  func (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".
 25543  func (s EventSubscription) GoString() string {
 25544  	return s.String()
 25545  }
 25546  
 25547  // SetCustSubscriptionId sets the CustSubscriptionId field's value.
 25548  func (s *EventSubscription) SetCustSubscriptionId(v string) *EventSubscription {
 25549  	s.CustSubscriptionId = &v
 25550  	return s
 25551  }
 25552  
 25553  // SetCustomerAwsId sets the CustomerAwsId field's value.
 25554  func (s *EventSubscription) SetCustomerAwsId(v string) *EventSubscription {
 25555  	s.CustomerAwsId = &v
 25556  	return s
 25557  }
 25558  
 25559  // SetEnabled sets the Enabled field's value.
 25560  func (s *EventSubscription) SetEnabled(v bool) *EventSubscription {
 25561  	s.Enabled = &v
 25562  	return s
 25563  }
 25564  
 25565  // SetEventCategoriesList sets the EventCategoriesList field's value.
 25566  func (s *EventSubscription) SetEventCategoriesList(v []*string) *EventSubscription {
 25567  	s.EventCategoriesList = v
 25568  	return s
 25569  }
 25570  
 25571  // SetSeverity sets the Severity field's value.
 25572  func (s *EventSubscription) SetSeverity(v string) *EventSubscription {
 25573  	s.Severity = &v
 25574  	return s
 25575  }
 25576  
 25577  // SetSnsTopicArn sets the SnsTopicArn field's value.
 25578  func (s *EventSubscription) SetSnsTopicArn(v string) *EventSubscription {
 25579  	s.SnsTopicArn = &v
 25580  	return s
 25581  }
 25582  
 25583  // SetSourceIdsList sets the SourceIdsList field's value.
 25584  func (s *EventSubscription) SetSourceIdsList(v []*string) *EventSubscription {
 25585  	s.SourceIdsList = v
 25586  	return s
 25587  }
 25588  
 25589  // SetSourceType sets the SourceType field's value.
 25590  func (s *EventSubscription) SetSourceType(v string) *EventSubscription {
 25591  	s.SourceType = &v
 25592  	return s
 25593  }
 25594  
 25595  // SetStatus sets the Status field's value.
 25596  func (s *EventSubscription) SetStatus(v string) *EventSubscription {
 25597  	s.Status = &v
 25598  	return s
 25599  }
 25600  
 25601  // SetSubscriptionCreationTime sets the SubscriptionCreationTime field's value.
 25602  func (s *EventSubscription) SetSubscriptionCreationTime(v time.Time) *EventSubscription {
 25603  	s.SubscriptionCreationTime = &v
 25604  	return s
 25605  }
 25606  
 25607  // SetTags sets the Tags field's value.
 25608  func (s *EventSubscription) SetTags(v []*Tag) *EventSubscription {
 25609  	s.Tags = v
 25610  	return s
 25611  }
 25612  
 25613  // The request parameters to get cluster credentials.
 25614  type 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".
 25709  func (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".
 25718  func (s GetClusterCredentialsInput) GoString() string {
 25719  	return s.String()
 25720  }
 25721  
 25722  // Validate inspects the fields of the type to determine if they are valid.
 25723  func (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.
 25739  func (s *GetClusterCredentialsInput) SetAutoCreate(v bool) *GetClusterCredentialsInput {
 25740  	s.AutoCreate = &v
 25741  	return s
 25742  }
 25743  
 25744  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 25745  func (s *GetClusterCredentialsInput) SetClusterIdentifier(v string) *GetClusterCredentialsInput {
 25746  	s.ClusterIdentifier = &v
 25747  	return s
 25748  }
 25749  
 25750  // SetDbGroups sets the DbGroups field's value.
 25751  func (s *GetClusterCredentialsInput) SetDbGroups(v []*string) *GetClusterCredentialsInput {
 25752  	s.DbGroups = v
 25753  	return s
 25754  }
 25755  
 25756  // SetDbName sets the DbName field's value.
 25757  func (s *GetClusterCredentialsInput) SetDbName(v string) *GetClusterCredentialsInput {
 25758  	s.DbName = &v
 25759  	return s
 25760  }
 25761  
 25762  // SetDbUser sets the DbUser field's value.
 25763  func (s *GetClusterCredentialsInput) SetDbUser(v string) *GetClusterCredentialsInput {
 25764  	s.DbUser = &v
 25765  	return s
 25766  }
 25767  
 25768  // SetDurationSeconds sets the DurationSeconds field's value.
 25769  func (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.
 25776  type 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".
 25804  func (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".
 25813  func (s GetClusterCredentialsOutput) GoString() string {
 25814  	return s.String()
 25815  }
 25816  
 25817  // SetDbPassword sets the DbPassword field's value.
 25818  func (s *GetClusterCredentialsOutput) SetDbPassword(v string) *GetClusterCredentialsOutput {
 25819  	s.DbPassword = &v
 25820  	return s
 25821  }
 25822  
 25823  // SetDbUser sets the DbUser field's value.
 25824  func (s *GetClusterCredentialsOutput) SetDbUser(v string) *GetClusterCredentialsOutput {
 25825  	s.DbUser = &v
 25826  	return s
 25827  }
 25828  
 25829  // SetExpiration sets the Expiration field's value.
 25830  func (s *GetClusterCredentialsOutput) SetExpiration(v time.Time) *GetClusterCredentialsOutput {
 25831  	s.Expiration = &v
 25832  	return s
 25833  }
 25834  
 25835  type 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".
 25856  func (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".
 25865  func (s GetReservedNodeExchangeOfferingsInput) GoString() string {
 25866  	return s.String()
 25867  }
 25868  
 25869  // Validate inspects the fields of the type to determine if they are valid.
 25870  func (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.
 25883  func (s *GetReservedNodeExchangeOfferingsInput) SetMarker(v string) *GetReservedNodeExchangeOfferingsInput {
 25884  	s.Marker = &v
 25885  	return s
 25886  }
 25887  
 25888  // SetMaxRecords sets the MaxRecords field's value.
 25889  func (s *GetReservedNodeExchangeOfferingsInput) SetMaxRecords(v int64) *GetReservedNodeExchangeOfferingsInput {
 25890  	s.MaxRecords = &v
 25891  	return s
 25892  }
 25893  
 25894  // SetReservedNodeId sets the ReservedNodeId field's value.
 25895  func (s *GetReservedNodeExchangeOfferingsInput) SetReservedNodeId(v string) *GetReservedNodeExchangeOfferingsInput {
 25896  	s.ReservedNodeId = &v
 25897  	return s
 25898  }
 25899  
 25900  type 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".
 25920  func (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".
 25929  func (s GetReservedNodeExchangeOfferingsOutput) GoString() string {
 25930  	return s.String()
 25931  }
 25932  
 25933  // SetMarker sets the Marker field's value.
 25934  func (s *GetReservedNodeExchangeOfferingsOutput) SetMarker(v string) *GetReservedNodeExchangeOfferingsOutput {
 25935  	s.Marker = &v
 25936  	return s
 25937  }
 25938  
 25939  // SetReservedNodeOfferings sets the ReservedNodeOfferings field's value.
 25940  func (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.
 25948  type 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".
 25967  func (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".
 25976  func (s HsmClientCertificate) GoString() string {
 25977  	return s.String()
 25978  }
 25979  
 25980  // SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
 25981  func (s *HsmClientCertificate) SetHsmClientCertificateIdentifier(v string) *HsmClientCertificate {
 25982  	s.HsmClientCertificateIdentifier = &v
 25983  	return s
 25984  }
 25985  
 25986  // SetHsmClientCertificatePublicKey sets the HsmClientCertificatePublicKey field's value.
 25987  func (s *HsmClientCertificate) SetHsmClientCertificatePublicKey(v string) *HsmClientCertificate {
 25988  	s.HsmClientCertificatePublicKey = &v
 25989  	return s
 25990  }
 25991  
 25992  // SetTags sets the Tags field's value.
 25993  func (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.
 26001  type 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".
 26026  func (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".
 26035  func (s HsmConfiguration) GoString() string {
 26036  	return s.String()
 26037  }
 26038  
 26039  // SetDescription sets the Description field's value.
 26040  func (s *HsmConfiguration) SetDescription(v string) *HsmConfiguration {
 26041  	s.Description = &v
 26042  	return s
 26043  }
 26044  
 26045  // SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
 26046  func (s *HsmConfiguration) SetHsmConfigurationIdentifier(v string) *HsmConfiguration {
 26047  	s.HsmConfigurationIdentifier = &v
 26048  	return s
 26049  }
 26050  
 26051  // SetHsmIpAddress sets the HsmIpAddress field's value.
 26052  func (s *HsmConfiguration) SetHsmIpAddress(v string) *HsmConfiguration {
 26053  	s.HsmIpAddress = &v
 26054  	return s
 26055  }
 26056  
 26057  // SetHsmPartitionName sets the HsmPartitionName field's value.
 26058  func (s *HsmConfiguration) SetHsmPartitionName(v string) *HsmConfiguration {
 26059  	s.HsmPartitionName = &v
 26060  	return s
 26061  }
 26062  
 26063  // SetTags sets the Tags field's value.
 26064  func (s *HsmConfiguration) SetTags(v []*Tag) *HsmConfiguration {
 26065  	s.Tags = v
 26066  	return s
 26067  }
 26068  
 26069  // Describes the status of changes to HSM settings.
 26070  type 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".
 26093  func (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".
 26102  func (s HsmStatus) GoString() string {
 26103  	return s.String()
 26104  }
 26105  
 26106  // SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
 26107  func (s *HsmStatus) SetHsmClientCertificateIdentifier(v string) *HsmStatus {
 26108  	s.HsmClientCertificateIdentifier = &v
 26109  	return s
 26110  }
 26111  
 26112  // SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
 26113  func (s *HsmStatus) SetHsmConfigurationIdentifier(v string) *HsmStatus {
 26114  	s.HsmConfigurationIdentifier = &v
 26115  	return s
 26116  }
 26117  
 26118  // SetStatus sets the Status field's value.
 26119  func (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.
 26125  type 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".
 26143  func (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".
 26152  func (s IPRange) GoString() string {
 26153  	return s.String()
 26154  }
 26155  
 26156  // SetCIDRIP sets the CIDRIP field's value.
 26157  func (s *IPRange) SetCIDRIP(v string) *IPRange {
 26158  	s.CIDRIP = &v
 26159  	return s
 26160  }
 26161  
 26162  // SetStatus sets the Status field's value.
 26163  func (s *IPRange) SetStatus(v string) *IPRange {
 26164  	s.Status = &v
 26165  	return s
 26166  }
 26167  
 26168  // SetTags sets the Tags field's value.
 26169  func (s *IPRange) SetTags(v []*Tag) *IPRange {
 26170  	s.Tags = v
 26171  	return s
 26172  }
 26173  
 26174  // Describes the status of logging for a cluster.
 26175  type 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".
 26202  func (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".
 26211  func (s LoggingStatus) GoString() string {
 26212  	return s.String()
 26213  }
 26214  
 26215  // SetBucketName sets the BucketName field's value.
 26216  func (s *LoggingStatus) SetBucketName(v string) *LoggingStatus {
 26217  	s.BucketName = &v
 26218  	return s
 26219  }
 26220  
 26221  // SetLastFailureMessage sets the LastFailureMessage field's value.
 26222  func (s *LoggingStatus) SetLastFailureMessage(v string) *LoggingStatus {
 26223  	s.LastFailureMessage = &v
 26224  	return s
 26225  }
 26226  
 26227  // SetLastFailureTime sets the LastFailureTime field's value.
 26228  func (s *LoggingStatus) SetLastFailureTime(v time.Time) *LoggingStatus {
 26229  	s.LastFailureTime = &v
 26230  	return s
 26231  }
 26232  
 26233  // SetLastSuccessfulDeliveryTime sets the LastSuccessfulDeliveryTime field's value.
 26234  func (s *LoggingStatus) SetLastSuccessfulDeliveryTime(v time.Time) *LoggingStatus {
 26235  	s.LastSuccessfulDeliveryTime = &v
 26236  	return s
 26237  }
 26238  
 26239  // SetLoggingEnabled sets the LoggingEnabled field's value.
 26240  func (s *LoggingStatus) SetLoggingEnabled(v bool) *LoggingStatus {
 26241  	s.LoggingEnabled = &v
 26242  	return s
 26243  }
 26244  
 26245  // SetS3KeyPrefix sets the S3KeyPrefix field's value.
 26246  func (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.
 26256  type 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".
 26274  func (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".
 26283  func (s MaintenanceTrack) GoString() string {
 26284  	return s.String()
 26285  }
 26286  
 26287  // SetDatabaseVersion sets the DatabaseVersion field's value.
 26288  func (s *MaintenanceTrack) SetDatabaseVersion(v string) *MaintenanceTrack {
 26289  	s.DatabaseVersion = &v
 26290  	return s
 26291  }
 26292  
 26293  // SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
 26294  func (s *MaintenanceTrack) SetMaintenanceTrackName(v string) *MaintenanceTrack {
 26295  	s.MaintenanceTrackName = &v
 26296  	return s
 26297  }
 26298  
 26299  // SetUpdateTargets sets the UpdateTargets field's value.
 26300  func (s *MaintenanceTrack) SetUpdateTargets(v []*UpdateTarget) *MaintenanceTrack {
 26301  	s.UpdateTargets = v
 26302  	return s
 26303  }
 26304  
 26305  type 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".
 26329  func (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".
 26338  func (s ModifyAquaConfigurationInput) GoString() string {
 26339  	return s.String()
 26340  }
 26341  
 26342  // Validate inspects the fields of the type to determine if they are valid.
 26343  func (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.
 26356  func (s *ModifyAquaConfigurationInput) SetAquaConfigurationStatus(v string) *ModifyAquaConfigurationInput {
 26357  	s.AquaConfigurationStatus = &v
 26358  	return s
 26359  }
 26360  
 26361  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 26362  func (s *ModifyAquaConfigurationInput) SetClusterIdentifier(v string) *ModifyAquaConfigurationInput {
 26363  	s.ClusterIdentifier = &v
 26364  	return s
 26365  }
 26366  
 26367  type 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".
 26379  func (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".
 26388  func (s ModifyAquaConfigurationOutput) GoString() string {
 26389  	return s.String()
 26390  }
 26391  
 26392  // SetAquaConfiguration sets the AquaConfiguration field's value.
 26393  func (s *ModifyAquaConfigurationOutput) SetAquaConfiguration(v *AquaConfiguration) *ModifyAquaConfigurationOutput {
 26394  	s.AquaConfiguration = v
 26395  	return s
 26396  }
 26397  
 26398  type 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".
 26418  func (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".
 26427  func (s ModifyAuthenticationProfileInput) GoString() string {
 26428  	return s.String()
 26429  }
 26430  
 26431  // Validate inspects the fields of the type to determine if they are valid.
 26432  func (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.
 26448  func (s *ModifyAuthenticationProfileInput) SetAuthenticationProfileContent(v string) *ModifyAuthenticationProfileInput {
 26449  	s.AuthenticationProfileContent = &v
 26450  	return s
 26451  }
 26452  
 26453  // SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
 26454  func (s *ModifyAuthenticationProfileInput) SetAuthenticationProfileName(v string) *ModifyAuthenticationProfileInput {
 26455  	s.AuthenticationProfileName = &v
 26456  	return s
 26457  }
 26458  
 26459  type 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".
 26474  func (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".
 26483  func (s ModifyAuthenticationProfileOutput) GoString() string {
 26484  	return s.String()
 26485  }
 26486  
 26487  // SetAuthenticationProfileContent sets the AuthenticationProfileContent field's value.
 26488  func (s *ModifyAuthenticationProfileOutput) SetAuthenticationProfileContent(v string) *ModifyAuthenticationProfileOutput {
 26489  	s.AuthenticationProfileContent = &v
 26490  	return s
 26491  }
 26492  
 26493  // SetAuthenticationProfileName sets the AuthenticationProfileName field's value.
 26494  func (s *ModifyAuthenticationProfileOutput) SetAuthenticationProfileName(v string) *ModifyAuthenticationProfileOutput {
 26495  	s.AuthenticationProfileName = &v
 26496  	return s
 26497  }
 26498  
 26499  type 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".
 26521  func (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".
 26530  func (s ModifyClusterDbRevisionInput) GoString() string {
 26531  	return s.String()
 26532  }
 26533  
 26534  // Validate inspects the fields of the type to determine if they are valid.
 26535  func (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.
 26551  func (s *ModifyClusterDbRevisionInput) SetClusterIdentifier(v string) *ModifyClusterDbRevisionInput {
 26552  	s.ClusterIdentifier = &v
 26553  	return s
 26554  }
 26555  
 26556  // SetRevisionTarget sets the RevisionTarget field's value.
 26557  func (s *ModifyClusterDbRevisionInput) SetRevisionTarget(v string) *ModifyClusterDbRevisionInput {
 26558  	s.RevisionTarget = &v
 26559  	return s
 26560  }
 26561  
 26562  type 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".
 26574  func (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".
 26583  func (s ModifyClusterDbRevisionOutput) GoString() string {
 26584  	return s.String()
 26585  }
 26586  
 26587  // SetCluster sets the Cluster field's value.
 26588  func (s *ModifyClusterDbRevisionOutput) SetCluster(v *Cluster) *ModifyClusterDbRevisionOutput {
 26589  	s.Cluster = v
 26590  	return s
 26591  }
 26592  
 26593  type 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".
 26617  func (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".
 26626  func (s ModifyClusterIamRolesInput) GoString() string {
 26627  	return s.String()
 26628  }
 26629  
 26630  // Validate inspects the fields of the type to determine if they are valid.
 26631  func (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.
 26644  func (s *ModifyClusterIamRolesInput) SetAddIamRoles(v []*string) *ModifyClusterIamRolesInput {
 26645  	s.AddIamRoles = v
 26646  	return s
 26647  }
 26648  
 26649  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 26650  func (s *ModifyClusterIamRolesInput) SetClusterIdentifier(v string) *ModifyClusterIamRolesInput {
 26651  	s.ClusterIdentifier = &v
 26652  	return s
 26653  }
 26654  
 26655  // SetRemoveIamRoles sets the RemoveIamRoles field's value.
 26656  func (s *ModifyClusterIamRolesInput) SetRemoveIamRoles(v []*string) *ModifyClusterIamRolesInput {
 26657  	s.RemoveIamRoles = v
 26658  	return s
 26659  }
 26660  
 26661  type 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".
 26673  func (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".
 26682  func (s ModifyClusterIamRolesOutput) GoString() string {
 26683  	return s.String()
 26684  }
 26685  
 26686  // SetCluster sets the Cluster field's value.
 26687  func (s *ModifyClusterIamRolesOutput) SetCluster(v *Cluster) *ModifyClusterIamRolesOutput {
 26688  	s.Cluster = v
 26689  	return s
 26690  }
 26691  
 26692  type 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".
 26933  func (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".
 26942  func (s ModifyClusterInput) GoString() string {
 26943  	return s.String()
 26944  }
 26945  
 26946  // Validate inspects the fields of the type to determine if they are valid.
 26947  func (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.
 26960  func (s *ModifyClusterInput) SetAllowVersionUpgrade(v bool) *ModifyClusterInput {
 26961  	s.AllowVersionUpgrade = &v
 26962  	return s
 26963  }
 26964  
 26965  // SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
 26966  func (s *ModifyClusterInput) SetAutomatedSnapshotRetentionPeriod(v int64) *ModifyClusterInput {
 26967  	s.AutomatedSnapshotRetentionPeriod = &v
 26968  	return s
 26969  }
 26970  
 26971  // SetAvailabilityZone sets the AvailabilityZone field's value.
 26972  func (s *ModifyClusterInput) SetAvailabilityZone(v string) *ModifyClusterInput {
 26973  	s.AvailabilityZone = &v
 26974  	return s
 26975  }
 26976  
 26977  // SetAvailabilityZoneRelocation sets the AvailabilityZoneRelocation field's value.
 26978  func (s *ModifyClusterInput) SetAvailabilityZoneRelocation(v bool) *ModifyClusterInput {
 26979  	s.AvailabilityZoneRelocation = &v
 26980  	return s
 26981  }
 26982  
 26983  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 26984  func (s *ModifyClusterInput) SetClusterIdentifier(v string) *ModifyClusterInput {
 26985  	s.ClusterIdentifier = &v
 26986  	return s
 26987  }
 26988  
 26989  // SetClusterParameterGroupName sets the ClusterParameterGroupName field's value.
 26990  func (s *ModifyClusterInput) SetClusterParameterGroupName(v string) *ModifyClusterInput {
 26991  	s.ClusterParameterGroupName = &v
 26992  	return s
 26993  }
 26994  
 26995  // SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
 26996  func (s *ModifyClusterInput) SetClusterSecurityGroups(v []*string) *ModifyClusterInput {
 26997  	s.ClusterSecurityGroups = v
 26998  	return s
 26999  }
 27000  
 27001  // SetClusterType sets the ClusterType field's value.
 27002  func (s *ModifyClusterInput) SetClusterType(v string) *ModifyClusterInput {
 27003  	s.ClusterType = &v
 27004  	return s
 27005  }
 27006  
 27007  // SetClusterVersion sets the ClusterVersion field's value.
 27008  func (s *ModifyClusterInput) SetClusterVersion(v string) *ModifyClusterInput {
 27009  	s.ClusterVersion = &v
 27010  	return s
 27011  }
 27012  
 27013  // SetElasticIp sets the ElasticIp field's value.
 27014  func (s *ModifyClusterInput) SetElasticIp(v string) *ModifyClusterInput {
 27015  	s.ElasticIp = &v
 27016  	return s
 27017  }
 27018  
 27019  // SetEncrypted sets the Encrypted field's value.
 27020  func (s *ModifyClusterInput) SetEncrypted(v bool) *ModifyClusterInput {
 27021  	s.Encrypted = &v
 27022  	return s
 27023  }
 27024  
 27025  // SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
 27026  func (s *ModifyClusterInput) SetEnhancedVpcRouting(v bool) *ModifyClusterInput {
 27027  	s.EnhancedVpcRouting = &v
 27028  	return s
 27029  }
 27030  
 27031  // SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
 27032  func (s *ModifyClusterInput) SetHsmClientCertificateIdentifier(v string) *ModifyClusterInput {
 27033  	s.HsmClientCertificateIdentifier = &v
 27034  	return s
 27035  }
 27036  
 27037  // SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
 27038  func (s *ModifyClusterInput) SetHsmConfigurationIdentifier(v string) *ModifyClusterInput {
 27039  	s.HsmConfigurationIdentifier = &v
 27040  	return s
 27041  }
 27042  
 27043  // SetKmsKeyId sets the KmsKeyId field's value.
 27044  func (s *ModifyClusterInput) SetKmsKeyId(v string) *ModifyClusterInput {
 27045  	s.KmsKeyId = &v
 27046  	return s
 27047  }
 27048  
 27049  // SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
 27050  func (s *ModifyClusterInput) SetMaintenanceTrackName(v string) *ModifyClusterInput {
 27051  	s.MaintenanceTrackName = &v
 27052  	return s
 27053  }
 27054  
 27055  // SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
 27056  func (s *ModifyClusterInput) SetManualSnapshotRetentionPeriod(v int64) *ModifyClusterInput {
 27057  	s.ManualSnapshotRetentionPeriod = &v
 27058  	return s
 27059  }
 27060  
 27061  // SetMasterUserPassword sets the MasterUserPassword field's value.
 27062  func (s *ModifyClusterInput) SetMasterUserPassword(v string) *ModifyClusterInput {
 27063  	s.MasterUserPassword = &v
 27064  	return s
 27065  }
 27066  
 27067  // SetNewClusterIdentifier sets the NewClusterIdentifier field's value.
 27068  func (s *ModifyClusterInput) SetNewClusterIdentifier(v string) *ModifyClusterInput {
 27069  	s.NewClusterIdentifier = &v
 27070  	return s
 27071  }
 27072  
 27073  // SetNodeType sets the NodeType field's value.
 27074  func (s *ModifyClusterInput) SetNodeType(v string) *ModifyClusterInput {
 27075  	s.NodeType = &v
 27076  	return s
 27077  }
 27078  
 27079  // SetNumberOfNodes sets the NumberOfNodes field's value.
 27080  func (s *ModifyClusterInput) SetNumberOfNodes(v int64) *ModifyClusterInput {
 27081  	s.NumberOfNodes = &v
 27082  	return s
 27083  }
 27084  
 27085  // SetPort sets the Port field's value.
 27086  func (s *ModifyClusterInput) SetPort(v int64) *ModifyClusterInput {
 27087  	s.Port = &v
 27088  	return s
 27089  }
 27090  
 27091  // SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
 27092  func (s *ModifyClusterInput) SetPreferredMaintenanceWindow(v string) *ModifyClusterInput {
 27093  	s.PreferredMaintenanceWindow = &v
 27094  	return s
 27095  }
 27096  
 27097  // SetPubliclyAccessible sets the PubliclyAccessible field's value.
 27098  func (s *ModifyClusterInput) SetPubliclyAccessible(v bool) *ModifyClusterInput {
 27099  	s.PubliclyAccessible = &v
 27100  	return s
 27101  }
 27102  
 27103  // SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
 27104  func (s *ModifyClusterInput) SetVpcSecurityGroupIds(v []*string) *ModifyClusterInput {
 27105  	s.VpcSecurityGroupIds = v
 27106  	return s
 27107  }
 27108  
 27109  type 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".
 27141  func (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".
 27150  func (s ModifyClusterMaintenanceInput) GoString() string {
 27151  	return s.String()
 27152  }
 27153  
 27154  // Validate inspects the fields of the type to determine if they are valid.
 27155  func (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.
 27168  func (s *ModifyClusterMaintenanceInput) SetClusterIdentifier(v string) *ModifyClusterMaintenanceInput {
 27169  	s.ClusterIdentifier = &v
 27170  	return s
 27171  }
 27172  
 27173  // SetDeferMaintenance sets the DeferMaintenance field's value.
 27174  func (s *ModifyClusterMaintenanceInput) SetDeferMaintenance(v bool) *ModifyClusterMaintenanceInput {
 27175  	s.DeferMaintenance = &v
 27176  	return s
 27177  }
 27178  
 27179  // SetDeferMaintenanceDuration sets the DeferMaintenanceDuration field's value.
 27180  func (s *ModifyClusterMaintenanceInput) SetDeferMaintenanceDuration(v int64) *ModifyClusterMaintenanceInput {
 27181  	s.DeferMaintenanceDuration = &v
 27182  	return s
 27183  }
 27184  
 27185  // SetDeferMaintenanceEndTime sets the DeferMaintenanceEndTime field's value.
 27186  func (s *ModifyClusterMaintenanceInput) SetDeferMaintenanceEndTime(v time.Time) *ModifyClusterMaintenanceInput {
 27187  	s.DeferMaintenanceEndTime = &v
 27188  	return s
 27189  }
 27190  
 27191  // SetDeferMaintenanceIdentifier sets the DeferMaintenanceIdentifier field's value.
 27192  func (s *ModifyClusterMaintenanceInput) SetDeferMaintenanceIdentifier(v string) *ModifyClusterMaintenanceInput {
 27193  	s.DeferMaintenanceIdentifier = &v
 27194  	return s
 27195  }
 27196  
 27197  // SetDeferMaintenanceStartTime sets the DeferMaintenanceStartTime field's value.
 27198  func (s *ModifyClusterMaintenanceInput) SetDeferMaintenanceStartTime(v time.Time) *ModifyClusterMaintenanceInput {
 27199  	s.DeferMaintenanceStartTime = &v
 27200  	return s
 27201  }
 27202  
 27203  type 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".
 27215  func (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".
 27224  func (s ModifyClusterMaintenanceOutput) GoString() string {
 27225  	return s.String()
 27226  }
 27227  
 27228  // SetCluster sets the Cluster field's value.
 27229  func (s *ModifyClusterMaintenanceOutput) SetCluster(v *Cluster) *ModifyClusterMaintenanceOutput {
 27230  	s.Cluster = v
 27231  	return s
 27232  }
 27233  
 27234  type 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".
 27246  func (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".
 27255  func (s ModifyClusterOutput) GoString() string {
 27256  	return s.String()
 27257  }
 27258  
 27259  // SetCluster sets the Cluster field's value.
 27260  func (s *ModifyClusterOutput) SetCluster(v *Cluster) *ModifyClusterOutput {
 27261  	s.Cluster = v
 27262  	return s
 27263  }
 27264  
 27265  // Describes a modify cluster parameter group operation.
 27266  type 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".
 27292  func (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".
 27301  func (s ModifyClusterParameterGroupInput) GoString() string {
 27302  	return s.String()
 27303  }
 27304  
 27305  // Validate inspects the fields of the type to determine if they are valid.
 27306  func (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.
 27322  func (s *ModifyClusterParameterGroupInput) SetParameterGroupName(v string) *ModifyClusterParameterGroupInput {
 27323  	s.ParameterGroupName = &v
 27324  	return s
 27325  }
 27326  
 27327  // SetParameters sets the Parameters field's value.
 27328  func (s *ModifyClusterParameterGroupInput) SetParameters(v []*Parameter) *ModifyClusterParameterGroupInput {
 27329  	s.Parameters = v
 27330  	return s
 27331  }
 27332  
 27333  type 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".
 27360  func (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".
 27369  func (s ModifyClusterSnapshotInput) GoString() string {
 27370  	return s.String()
 27371  }
 27372  
 27373  // Validate inspects the fields of the type to determine if they are valid.
 27374  func (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.
 27387  func (s *ModifyClusterSnapshotInput) SetForce(v bool) *ModifyClusterSnapshotInput {
 27388  	s.Force = &v
 27389  	return s
 27390  }
 27391  
 27392  // SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
 27393  func (s *ModifyClusterSnapshotInput) SetManualSnapshotRetentionPeriod(v int64) *ModifyClusterSnapshotInput {
 27394  	s.ManualSnapshotRetentionPeriod = &v
 27395  	return s
 27396  }
 27397  
 27398  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 27399  func (s *ModifyClusterSnapshotInput) SetSnapshotIdentifier(v string) *ModifyClusterSnapshotInput {
 27400  	s.SnapshotIdentifier = &v
 27401  	return s
 27402  }
 27403  
 27404  type 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".
 27416  func (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".
 27425  func (s ModifyClusterSnapshotOutput) GoString() string {
 27426  	return s.String()
 27427  }
 27428  
 27429  // SetSnapshot sets the Snapshot field's value.
 27430  func (s *ModifyClusterSnapshotOutput) SetSnapshot(v *Snapshot) *ModifyClusterSnapshotOutput {
 27431  	s.Snapshot = v
 27432  	return s
 27433  }
 27434  
 27435  type 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".
 27457  func (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".
 27466  func (s ModifyClusterSnapshotScheduleInput) GoString() string {
 27467  	return s.String()
 27468  }
 27469  
 27470  // Validate inspects the fields of the type to determine if they are valid.
 27471  func (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.
 27484  func (s *ModifyClusterSnapshotScheduleInput) SetClusterIdentifier(v string) *ModifyClusterSnapshotScheduleInput {
 27485  	s.ClusterIdentifier = &v
 27486  	return s
 27487  }
 27488  
 27489  // SetDisassociateSchedule sets the DisassociateSchedule field's value.
 27490  func (s *ModifyClusterSnapshotScheduleInput) SetDisassociateSchedule(v bool) *ModifyClusterSnapshotScheduleInput {
 27491  	s.DisassociateSchedule = &v
 27492  	return s
 27493  }
 27494  
 27495  // SetScheduleIdentifier sets the ScheduleIdentifier field's value.
 27496  func (s *ModifyClusterSnapshotScheduleInput) SetScheduleIdentifier(v string) *ModifyClusterSnapshotScheduleInput {
 27497  	s.ScheduleIdentifier = &v
 27498  	return s
 27499  }
 27500  
 27501  type 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".
 27510  func (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".
 27519  func (s ModifyClusterSnapshotScheduleOutput) GoString() string {
 27520  	return s.String()
 27521  }
 27522  
 27523  type 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".
 27546  func (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".
 27555  func (s ModifyClusterSubnetGroupInput) GoString() string {
 27556  	return s.String()
 27557  }
 27558  
 27559  // Validate inspects the fields of the type to determine if they are valid.
 27560  func (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.
 27576  func (s *ModifyClusterSubnetGroupInput) SetClusterSubnetGroupName(v string) *ModifyClusterSubnetGroupInput {
 27577  	s.ClusterSubnetGroupName = &v
 27578  	return s
 27579  }
 27580  
 27581  // SetDescription sets the Description field's value.
 27582  func (s *ModifyClusterSubnetGroupInput) SetDescription(v string) *ModifyClusterSubnetGroupInput {
 27583  	s.Description = &v
 27584  	return s
 27585  }
 27586  
 27587  // SetSubnetIds sets the SubnetIds field's value.
 27588  func (s *ModifyClusterSubnetGroupInput) SetSubnetIds(v []*string) *ModifyClusterSubnetGroupInput {
 27589  	s.SubnetIds = v
 27590  	return s
 27591  }
 27592  
 27593  type 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".
 27605  func (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".
 27614  func (s ModifyClusterSubnetGroupOutput) GoString() string {
 27615  	return s.String()
 27616  }
 27617  
 27618  // SetClusterSubnetGroup sets the ClusterSubnetGroup field's value.
 27619  func (s *ModifyClusterSubnetGroupOutput) SetClusterSubnetGroup(v *ClusterSubnetGroup) *ModifyClusterSubnetGroupOutput {
 27620  	s.ClusterSubnetGroup = v
 27621  	return s
 27622  }
 27623  
 27624  type 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".
 27642  func (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".
 27651  func (s ModifyEndpointAccessInput) GoString() string {
 27652  	return s.String()
 27653  }
 27654  
 27655  // Validate inspects the fields of the type to determine if they are valid.
 27656  func (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.
 27669  func (s *ModifyEndpointAccessInput) SetEndpointName(v string) *ModifyEndpointAccessInput {
 27670  	s.EndpointName = &v
 27671  	return s
 27672  }
 27673  
 27674  // SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
 27675  func (s *ModifyEndpointAccessInput) SetVpcSecurityGroupIds(v []*string) *ModifyEndpointAccessInput {
 27676  	s.VpcSecurityGroupIds = v
 27677  	return s
 27678  }
 27679  
 27680  // Describes a Redshift-managed VPC endpoint.
 27681  type 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".
 27721  func (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".
 27730  func (s ModifyEndpointAccessOutput) GoString() string {
 27731  	return s.String()
 27732  }
 27733  
 27734  // SetAddress sets the Address field's value.
 27735  func (s *ModifyEndpointAccessOutput) SetAddress(v string) *ModifyEndpointAccessOutput {
 27736  	s.Address = &v
 27737  	return s
 27738  }
 27739  
 27740  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 27741  func (s *ModifyEndpointAccessOutput) SetClusterIdentifier(v string) *ModifyEndpointAccessOutput {
 27742  	s.ClusterIdentifier = &v
 27743  	return s
 27744  }
 27745  
 27746  // SetEndpointCreateTime sets the EndpointCreateTime field's value.
 27747  func (s *ModifyEndpointAccessOutput) SetEndpointCreateTime(v time.Time) *ModifyEndpointAccessOutput {
 27748  	s.EndpointCreateTime = &v
 27749  	return s
 27750  }
 27751  
 27752  // SetEndpointName sets the EndpointName field's value.
 27753  func (s *ModifyEndpointAccessOutput) SetEndpointName(v string) *ModifyEndpointAccessOutput {
 27754  	s.EndpointName = &v
 27755  	return s
 27756  }
 27757  
 27758  // SetEndpointStatus sets the EndpointStatus field's value.
 27759  func (s *ModifyEndpointAccessOutput) SetEndpointStatus(v string) *ModifyEndpointAccessOutput {
 27760  	s.EndpointStatus = &v
 27761  	return s
 27762  }
 27763  
 27764  // SetPort sets the Port field's value.
 27765  func (s *ModifyEndpointAccessOutput) SetPort(v int64) *ModifyEndpointAccessOutput {
 27766  	s.Port = &v
 27767  	return s
 27768  }
 27769  
 27770  // SetResourceOwner sets the ResourceOwner field's value.
 27771  func (s *ModifyEndpointAccessOutput) SetResourceOwner(v string) *ModifyEndpointAccessOutput {
 27772  	s.ResourceOwner = &v
 27773  	return s
 27774  }
 27775  
 27776  // SetSubnetGroupName sets the SubnetGroupName field's value.
 27777  func (s *ModifyEndpointAccessOutput) SetSubnetGroupName(v string) *ModifyEndpointAccessOutput {
 27778  	s.SubnetGroupName = &v
 27779  	return s
 27780  }
 27781  
 27782  // SetVpcEndpoint sets the VpcEndpoint field's value.
 27783  func (s *ModifyEndpointAccessOutput) SetVpcEndpoint(v *VpcEndpoint) *ModifyEndpointAccessOutput {
 27784  	s.VpcEndpoint = v
 27785  	return s
 27786  }
 27787  
 27788  // SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
 27789  func (s *ModifyEndpointAccessOutput) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *ModifyEndpointAccessOutput {
 27790  	s.VpcSecurityGroups = v
 27791  	return s
 27792  }
 27793  
 27794  type 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".
 27849  func (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".
 27858  func (s ModifyEventSubscriptionInput) GoString() string {
 27859  	return s.String()
 27860  }
 27861  
 27862  // Validate inspects the fields of the type to determine if they are valid.
 27863  func (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.
 27876  func (s *ModifyEventSubscriptionInput) SetEnabled(v bool) *ModifyEventSubscriptionInput {
 27877  	s.Enabled = &v
 27878  	return s
 27879  }
 27880  
 27881  // SetEventCategories sets the EventCategories field's value.
 27882  func (s *ModifyEventSubscriptionInput) SetEventCategories(v []*string) *ModifyEventSubscriptionInput {
 27883  	s.EventCategories = v
 27884  	return s
 27885  }
 27886  
 27887  // SetSeverity sets the Severity field's value.
 27888  func (s *ModifyEventSubscriptionInput) SetSeverity(v string) *ModifyEventSubscriptionInput {
 27889  	s.Severity = &v
 27890  	return s
 27891  }
 27892  
 27893  // SetSnsTopicArn sets the SnsTopicArn field's value.
 27894  func (s *ModifyEventSubscriptionInput) SetSnsTopicArn(v string) *ModifyEventSubscriptionInput {
 27895  	s.SnsTopicArn = &v
 27896  	return s
 27897  }
 27898  
 27899  // SetSourceIds sets the SourceIds field's value.
 27900  func (s *ModifyEventSubscriptionInput) SetSourceIds(v []*string) *ModifyEventSubscriptionInput {
 27901  	s.SourceIds = v
 27902  	return s
 27903  }
 27904  
 27905  // SetSourceType sets the SourceType field's value.
 27906  func (s *ModifyEventSubscriptionInput) SetSourceType(v string) *ModifyEventSubscriptionInput {
 27907  	s.SourceType = &v
 27908  	return s
 27909  }
 27910  
 27911  // SetSubscriptionName sets the SubscriptionName field's value.
 27912  func (s *ModifyEventSubscriptionInput) SetSubscriptionName(v string) *ModifyEventSubscriptionInput {
 27913  	s.SubscriptionName = &v
 27914  	return s
 27915  }
 27916  
 27917  type 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".
 27929  func (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".
 27938  func (s ModifyEventSubscriptionOutput) GoString() string {
 27939  	return s.String()
 27940  }
 27941  
 27942  // SetEventSubscription sets the EventSubscription field's value.
 27943  func (s *ModifyEventSubscriptionOutput) SetEventSubscription(v *EventSubscription) *ModifyEventSubscriptionOutput {
 27944  	s.EventSubscription = v
 27945  	return s
 27946  }
 27947  
 27948  type 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".
 27989  func (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".
 27998  func (s ModifyScheduledActionInput) GoString() string {
 27999  	return s.String()
 28000  }
 28001  
 28002  // Validate inspects the fields of the type to determine if they are valid.
 28003  func (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.
 28021  func (s *ModifyScheduledActionInput) SetEnable(v bool) *ModifyScheduledActionInput {
 28022  	s.Enable = &v
 28023  	return s
 28024  }
 28025  
 28026  // SetEndTime sets the EndTime field's value.
 28027  func (s *ModifyScheduledActionInput) SetEndTime(v time.Time) *ModifyScheduledActionInput {
 28028  	s.EndTime = &v
 28029  	return s
 28030  }
 28031  
 28032  // SetIamRole sets the IamRole field's value.
 28033  func (s *ModifyScheduledActionInput) SetIamRole(v string) *ModifyScheduledActionInput {
 28034  	s.IamRole = &v
 28035  	return s
 28036  }
 28037  
 28038  // SetSchedule sets the Schedule field's value.
 28039  func (s *ModifyScheduledActionInput) SetSchedule(v string) *ModifyScheduledActionInput {
 28040  	s.Schedule = &v
 28041  	return s
 28042  }
 28043  
 28044  // SetScheduledActionDescription sets the ScheduledActionDescription field's value.
 28045  func (s *ModifyScheduledActionInput) SetScheduledActionDescription(v string) *ModifyScheduledActionInput {
 28046  	s.ScheduledActionDescription = &v
 28047  	return s
 28048  }
 28049  
 28050  // SetScheduledActionName sets the ScheduledActionName field's value.
 28051  func (s *ModifyScheduledActionInput) SetScheduledActionName(v string) *ModifyScheduledActionInput {
 28052  	s.ScheduledActionName = &v
 28053  	return s
 28054  }
 28055  
 28056  // SetStartTime sets the StartTime field's value.
 28057  func (s *ModifyScheduledActionInput) SetStartTime(v time.Time) *ModifyScheduledActionInput {
 28058  	s.StartTime = &v
 28059  	return s
 28060  }
 28061  
 28062  // SetTargetAction sets the TargetAction field's value.
 28063  func (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.
 28071  type 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".
 28125  func (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".
 28134  func (s ModifyScheduledActionOutput) GoString() string {
 28135  	return s.String()
 28136  }
 28137  
 28138  // SetEndTime sets the EndTime field's value.
 28139  func (s *ModifyScheduledActionOutput) SetEndTime(v time.Time) *ModifyScheduledActionOutput {
 28140  	s.EndTime = &v
 28141  	return s
 28142  }
 28143  
 28144  // SetIamRole sets the IamRole field's value.
 28145  func (s *ModifyScheduledActionOutput) SetIamRole(v string) *ModifyScheduledActionOutput {
 28146  	s.IamRole = &v
 28147  	return s
 28148  }
 28149  
 28150  // SetNextInvocations sets the NextInvocations field's value.
 28151  func (s *ModifyScheduledActionOutput) SetNextInvocations(v []*time.Time) *ModifyScheduledActionOutput {
 28152  	s.NextInvocations = v
 28153  	return s
 28154  }
 28155  
 28156  // SetSchedule sets the Schedule field's value.
 28157  func (s *ModifyScheduledActionOutput) SetSchedule(v string) *ModifyScheduledActionOutput {
 28158  	s.Schedule = &v
 28159  	return s
 28160  }
 28161  
 28162  // SetScheduledActionDescription sets the ScheduledActionDescription field's value.
 28163  func (s *ModifyScheduledActionOutput) SetScheduledActionDescription(v string) *ModifyScheduledActionOutput {
 28164  	s.ScheduledActionDescription = &v
 28165  	return s
 28166  }
 28167  
 28168  // SetScheduledActionName sets the ScheduledActionName field's value.
 28169  func (s *ModifyScheduledActionOutput) SetScheduledActionName(v string) *ModifyScheduledActionOutput {
 28170  	s.ScheduledActionName = &v
 28171  	return s
 28172  }
 28173  
 28174  // SetStartTime sets the StartTime field's value.
 28175  func (s *ModifyScheduledActionOutput) SetStartTime(v time.Time) *ModifyScheduledActionOutput {
 28176  	s.StartTime = &v
 28177  	return s
 28178  }
 28179  
 28180  // SetState sets the State field's value.
 28181  func (s *ModifyScheduledActionOutput) SetState(v string) *ModifyScheduledActionOutput {
 28182  	s.State = &v
 28183  	return s
 28184  }
 28185  
 28186  // SetTargetAction sets the TargetAction field's value.
 28187  func (s *ModifyScheduledActionOutput) SetTargetAction(v *ScheduledActionType) *ModifyScheduledActionOutput {
 28188  	s.TargetAction = v
 28189  	return s
 28190  }
 28191  
 28192  type 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".
 28240  func (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".
 28249  func (s ModifySnapshotCopyRetentionPeriodInput) GoString() string {
 28250  	return s.String()
 28251  }
 28252  
 28253  // Validate inspects the fields of the type to determine if they are valid.
 28254  func (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.
 28270  func (s *ModifySnapshotCopyRetentionPeriodInput) SetClusterIdentifier(v string) *ModifySnapshotCopyRetentionPeriodInput {
 28271  	s.ClusterIdentifier = &v
 28272  	return s
 28273  }
 28274  
 28275  // SetManual sets the Manual field's value.
 28276  func (s *ModifySnapshotCopyRetentionPeriodInput) SetManual(v bool) *ModifySnapshotCopyRetentionPeriodInput {
 28277  	s.Manual = &v
 28278  	return s
 28279  }
 28280  
 28281  // SetRetentionPeriod sets the RetentionPeriod field's value.
 28282  func (s *ModifySnapshotCopyRetentionPeriodInput) SetRetentionPeriod(v int64) *ModifySnapshotCopyRetentionPeriodInput {
 28283  	s.RetentionPeriod = &v
 28284  	return s
 28285  }
 28286  
 28287  type 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".
 28299  func (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".
 28308  func (s ModifySnapshotCopyRetentionPeriodOutput) GoString() string {
 28309  	return s.String()
 28310  }
 28311  
 28312  // SetCluster sets the Cluster field's value.
 28313  func (s *ModifySnapshotCopyRetentionPeriodOutput) SetCluster(v *Cluster) *ModifySnapshotCopyRetentionPeriodOutput {
 28314  	s.Cluster = v
 28315  	return s
 28316  }
 28317  
 28318  type 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".
 28338  func (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".
 28347  func (s ModifySnapshotScheduleInput) GoString() string {
 28348  	return s.String()
 28349  }
 28350  
 28351  // Validate inspects the fields of the type to determine if they are valid.
 28352  func (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.
 28368  func (s *ModifySnapshotScheduleInput) SetScheduleDefinitions(v []*string) *ModifySnapshotScheduleInput {
 28369  	s.ScheduleDefinitions = v
 28370  	return s
 28371  }
 28372  
 28373  // SetScheduleIdentifier sets the ScheduleIdentifier field's value.
 28374  func (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.
 28381  type 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".
 28411  func (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".
 28420  func (s ModifySnapshotScheduleOutput) GoString() string {
 28421  	return s.String()
 28422  }
 28423  
 28424  // SetAssociatedClusterCount sets the AssociatedClusterCount field's value.
 28425  func (s *ModifySnapshotScheduleOutput) SetAssociatedClusterCount(v int64) *ModifySnapshotScheduleOutput {
 28426  	s.AssociatedClusterCount = &v
 28427  	return s
 28428  }
 28429  
 28430  // SetAssociatedClusters sets the AssociatedClusters field's value.
 28431  func (s *ModifySnapshotScheduleOutput) SetAssociatedClusters(v []*ClusterAssociatedToSchedule) *ModifySnapshotScheduleOutput {
 28432  	s.AssociatedClusters = v
 28433  	return s
 28434  }
 28435  
 28436  // SetNextInvocations sets the NextInvocations field's value.
 28437  func (s *ModifySnapshotScheduleOutput) SetNextInvocations(v []*time.Time) *ModifySnapshotScheduleOutput {
 28438  	s.NextInvocations = v
 28439  	return s
 28440  }
 28441  
 28442  // SetScheduleDefinitions sets the ScheduleDefinitions field's value.
 28443  func (s *ModifySnapshotScheduleOutput) SetScheduleDefinitions(v []*string) *ModifySnapshotScheduleOutput {
 28444  	s.ScheduleDefinitions = v
 28445  	return s
 28446  }
 28447  
 28448  // SetScheduleDescription sets the ScheduleDescription field's value.
 28449  func (s *ModifySnapshotScheduleOutput) SetScheduleDescription(v string) *ModifySnapshotScheduleOutput {
 28450  	s.ScheduleDescription = &v
 28451  	return s
 28452  }
 28453  
 28454  // SetScheduleIdentifier sets the ScheduleIdentifier field's value.
 28455  func (s *ModifySnapshotScheduleOutput) SetScheduleIdentifier(v string) *ModifySnapshotScheduleOutput {
 28456  	s.ScheduleIdentifier = &v
 28457  	return s
 28458  }
 28459  
 28460  // SetTags sets the Tags field's value.
 28461  func (s *ModifySnapshotScheduleOutput) SetTags(v []*Tag) *ModifySnapshotScheduleOutput {
 28462  	s.Tags = v
 28463  	return s
 28464  }
 28465  
 28466  type 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".
 28487  func (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".
 28496  func (s ModifyUsageLimitInput) GoString() string {
 28497  	return s.String()
 28498  }
 28499  
 28500  // Validate inspects the fields of the type to determine if they are valid.
 28501  func (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.
 28514  func (s *ModifyUsageLimitInput) SetAmount(v int64) *ModifyUsageLimitInput {
 28515  	s.Amount = &v
 28516  	return s
 28517  }
 28518  
 28519  // SetBreachAction sets the BreachAction field's value.
 28520  func (s *ModifyUsageLimitInput) SetBreachAction(v string) *ModifyUsageLimitInput {
 28521  	s.BreachAction = &v
 28522  	return s
 28523  }
 28524  
 28525  // SetUsageLimitId sets the UsageLimitId field's value.
 28526  func (s *ModifyUsageLimitInput) SetUsageLimitId(v string) *ModifyUsageLimitInput {
 28527  	s.UsageLimitId = &v
 28528  	return s
 28529  }
 28530  
 28531  // Describes a usage limit object for a cluster.
 28532  type 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".
 28575  func (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".
 28584  func (s ModifyUsageLimitOutput) GoString() string {
 28585  	return s.String()
 28586  }
 28587  
 28588  // SetAmount sets the Amount field's value.
 28589  func (s *ModifyUsageLimitOutput) SetAmount(v int64) *ModifyUsageLimitOutput {
 28590  	s.Amount = &v
 28591  	return s
 28592  }
 28593  
 28594  // SetBreachAction sets the BreachAction field's value.
 28595  func (s *ModifyUsageLimitOutput) SetBreachAction(v string) *ModifyUsageLimitOutput {
 28596  	s.BreachAction = &v
 28597  	return s
 28598  }
 28599  
 28600  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 28601  func (s *ModifyUsageLimitOutput) SetClusterIdentifier(v string) *ModifyUsageLimitOutput {
 28602  	s.ClusterIdentifier = &v
 28603  	return s
 28604  }
 28605  
 28606  // SetFeatureType sets the FeatureType field's value.
 28607  func (s *ModifyUsageLimitOutput) SetFeatureType(v string) *ModifyUsageLimitOutput {
 28608  	s.FeatureType = &v
 28609  	return s
 28610  }
 28611  
 28612  // SetLimitType sets the LimitType field's value.
 28613  func (s *ModifyUsageLimitOutput) SetLimitType(v string) *ModifyUsageLimitOutput {
 28614  	s.LimitType = &v
 28615  	return s
 28616  }
 28617  
 28618  // SetPeriod sets the Period field's value.
 28619  func (s *ModifyUsageLimitOutput) SetPeriod(v string) *ModifyUsageLimitOutput {
 28620  	s.Period = &v
 28621  	return s
 28622  }
 28623  
 28624  // SetTags sets the Tags field's value.
 28625  func (s *ModifyUsageLimitOutput) SetTags(v []*Tag) *ModifyUsageLimitOutput {
 28626  	s.Tags = v
 28627  	return s
 28628  }
 28629  
 28630  // SetUsageLimitId sets the UsageLimitId field's value.
 28631  func (s *ModifyUsageLimitOutput) SetUsageLimitId(v string) *ModifyUsageLimitOutput {
 28632  	s.UsageLimitId = &v
 28633  	return s
 28634  }
 28635  
 28636  // Describes a network interface.
 28637  type 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".
 28658  func (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".
 28667  func (s NetworkInterface) GoString() string {
 28668  	return s.String()
 28669  }
 28670  
 28671  // SetAvailabilityZone sets the AvailabilityZone field's value.
 28672  func (s *NetworkInterface) SetAvailabilityZone(v string) *NetworkInterface {
 28673  	s.AvailabilityZone = &v
 28674  	return s
 28675  }
 28676  
 28677  // SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
 28678  func (s *NetworkInterface) SetNetworkInterfaceId(v string) *NetworkInterface {
 28679  	s.NetworkInterfaceId = &v
 28680  	return s
 28681  }
 28682  
 28683  // SetPrivateIpAddress sets the PrivateIpAddress field's value.
 28684  func (s *NetworkInterface) SetPrivateIpAddress(v string) *NetworkInterface {
 28685  	s.PrivateIpAddress = &v
 28686  	return s
 28687  }
 28688  
 28689  // SetSubnetId sets the SubnetId field's value.
 28690  func (s *NetworkInterface) SetSubnetId(v string) *NetworkInterface {
 28691  	s.SubnetId = &v
 28692  	return s
 28693  }
 28694  
 28695  // A list of node configurations.
 28696  type 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".
 28717  func (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".
 28726  func (s NodeConfigurationOption) GoString() string {
 28727  	return s.String()
 28728  }
 28729  
 28730  // SetEstimatedDiskUtilizationPercent sets the EstimatedDiskUtilizationPercent field's value.
 28731  func (s *NodeConfigurationOption) SetEstimatedDiskUtilizationPercent(v float64) *NodeConfigurationOption {
 28732  	s.EstimatedDiskUtilizationPercent = &v
 28733  	return s
 28734  }
 28735  
 28736  // SetMode sets the Mode field's value.
 28737  func (s *NodeConfigurationOption) SetMode(v string) *NodeConfigurationOption {
 28738  	s.Mode = &v
 28739  	return s
 28740  }
 28741  
 28742  // SetNodeType sets the NodeType field's value.
 28743  func (s *NodeConfigurationOption) SetNodeType(v string) *NodeConfigurationOption {
 28744  	s.NodeType = &v
 28745  	return s
 28746  }
 28747  
 28748  // SetNumberOfNodes sets the NumberOfNodes field's value.
 28749  func (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.
 28755  type 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".
 28779  func (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".
 28788  func (s NodeConfigurationOptionsFilter) GoString() string {
 28789  	return s.String()
 28790  }
 28791  
 28792  // SetName sets the Name field's value.
 28793  func (s *NodeConfigurationOptionsFilter) SetName(v string) *NodeConfigurationOptionsFilter {
 28794  	s.Name = &v
 28795  	return s
 28796  }
 28797  
 28798  // SetOperator sets the Operator field's value.
 28799  func (s *NodeConfigurationOptionsFilter) SetOperator(v string) *NodeConfigurationOptionsFilter {
 28800  	s.Operator = &v
 28801  	return s
 28802  }
 28803  
 28804  // SetValues sets the Values field's value.
 28805  func (s *NodeConfigurationOptionsFilter) SetValues(v []*string) *NodeConfigurationOptionsFilter {
 28806  	s.Values = v
 28807  	return s
 28808  }
 28809  
 28810  // Describes an orderable cluster option.
 28811  type 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".
 28832  func (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".
 28841  func (s OrderableClusterOption) GoString() string {
 28842  	return s.String()
 28843  }
 28844  
 28845  // SetAvailabilityZones sets the AvailabilityZones field's value.
 28846  func (s *OrderableClusterOption) SetAvailabilityZones(v []*AvailabilityZone) *OrderableClusterOption {
 28847  	s.AvailabilityZones = v
 28848  	return s
 28849  }
 28850  
 28851  // SetClusterType sets the ClusterType field's value.
 28852  func (s *OrderableClusterOption) SetClusterType(v string) *OrderableClusterOption {
 28853  	s.ClusterType = &v
 28854  	return s
 28855  }
 28856  
 28857  // SetClusterVersion sets the ClusterVersion field's value.
 28858  func (s *OrderableClusterOption) SetClusterVersion(v string) *OrderableClusterOption {
 28859  	s.ClusterVersion = &v
 28860  	return s
 28861  }
 28862  
 28863  // SetNodeType sets the NodeType field's value.
 28864  func (s *OrderableClusterOption) SetNodeType(v string) *OrderableClusterOption {
 28865  	s.NodeType = &v
 28866  	return s
 28867  }
 28868  
 28869  // Describes a parameter in a cluster parameter group.
 28870  type 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".
 28913  func (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".
 28922  func (s Parameter) GoString() string {
 28923  	return s.String()
 28924  }
 28925  
 28926  // SetAllowedValues sets the AllowedValues field's value.
 28927  func (s *Parameter) SetAllowedValues(v string) *Parameter {
 28928  	s.AllowedValues = &v
 28929  	return s
 28930  }
 28931  
 28932  // SetApplyType sets the ApplyType field's value.
 28933  func (s *Parameter) SetApplyType(v string) *Parameter {
 28934  	s.ApplyType = &v
 28935  	return s
 28936  }
 28937  
 28938  // SetDataType sets the DataType field's value.
 28939  func (s *Parameter) SetDataType(v string) *Parameter {
 28940  	s.DataType = &v
 28941  	return s
 28942  }
 28943  
 28944  // SetDescription sets the Description field's value.
 28945  func (s *Parameter) SetDescription(v string) *Parameter {
 28946  	s.Description = &v
 28947  	return s
 28948  }
 28949  
 28950  // SetIsModifiable sets the IsModifiable field's value.
 28951  func (s *Parameter) SetIsModifiable(v bool) *Parameter {
 28952  	s.IsModifiable = &v
 28953  	return s
 28954  }
 28955  
 28956  // SetMinimumEngineVersion sets the MinimumEngineVersion field's value.
 28957  func (s *Parameter) SetMinimumEngineVersion(v string) *Parameter {
 28958  	s.MinimumEngineVersion = &v
 28959  	return s
 28960  }
 28961  
 28962  // SetParameterName sets the ParameterName field's value.
 28963  func (s *Parameter) SetParameterName(v string) *Parameter {
 28964  	s.ParameterName = &v
 28965  	return s
 28966  }
 28967  
 28968  // SetParameterValue sets the ParameterValue field's value.
 28969  func (s *Parameter) SetParameterValue(v string) *Parameter {
 28970  	s.ParameterValue = &v
 28971  	return s
 28972  }
 28973  
 28974  // SetSource sets the Source field's value.
 28975  func (s *Parameter) SetSource(v string) *Parameter {
 28976  	s.Source = &v
 28977  	return s
 28978  }
 28979  
 28980  // Describes a partner integration.
 28981  type 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".
 29009  func (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".
 29018  func (s PartnerIntegrationInfo) GoString() string {
 29019  	return s.String()
 29020  }
 29021  
 29022  // SetCreatedAt sets the CreatedAt field's value.
 29023  func (s *PartnerIntegrationInfo) SetCreatedAt(v time.Time) *PartnerIntegrationInfo {
 29024  	s.CreatedAt = &v
 29025  	return s
 29026  }
 29027  
 29028  // SetDatabaseName sets the DatabaseName field's value.
 29029  func (s *PartnerIntegrationInfo) SetDatabaseName(v string) *PartnerIntegrationInfo {
 29030  	s.DatabaseName = &v
 29031  	return s
 29032  }
 29033  
 29034  // SetPartnerName sets the PartnerName field's value.
 29035  func (s *PartnerIntegrationInfo) SetPartnerName(v string) *PartnerIntegrationInfo {
 29036  	s.PartnerName = &v
 29037  	return s
 29038  }
 29039  
 29040  // SetStatus sets the Status field's value.
 29041  func (s *PartnerIntegrationInfo) SetStatus(v string) *PartnerIntegrationInfo {
 29042  	s.Status = &v
 29043  	return s
 29044  }
 29045  
 29046  // SetStatusMessage sets the StatusMessage field's value.
 29047  func (s *PartnerIntegrationInfo) SetStatusMessage(v string) *PartnerIntegrationInfo {
 29048  	s.StatusMessage = &v
 29049  	return s
 29050  }
 29051  
 29052  // SetUpdatedAt sets the UpdatedAt field's value.
 29053  func (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.
 29060  type 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".
 29074  func (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".
 29083  func (s PauseClusterInput) GoString() string {
 29084  	return s.String()
 29085  }
 29086  
 29087  // Validate inspects the fields of the type to determine if they are valid.
 29088  func (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.
 29101  func (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.
 29108  type 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".
 29122  func (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".
 29131  func (s PauseClusterMessage) GoString() string {
 29132  	return s.String()
 29133  }
 29134  
 29135  // Validate inspects the fields of the type to determine if they are valid.
 29136  func (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.
 29149  func (s *PauseClusterMessage) SetClusterIdentifier(v string) *PauseClusterMessage {
 29150  	s.ClusterIdentifier = &v
 29151  	return s
 29152  }
 29153  
 29154  type 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".
 29166  func (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".
 29175  func (s PauseClusterOutput) GoString() string {
 29176  	return s.String()
 29177  }
 29178  
 29179  // SetCluster sets the Cluster field's value.
 29180  func (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.
 29187  type 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".
 29239  func (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".
 29248  func (s PendingModifiedValues) GoString() string {
 29249  	return s.String()
 29250  }
 29251  
 29252  // SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
 29253  func (s *PendingModifiedValues) SetAutomatedSnapshotRetentionPeriod(v int64) *PendingModifiedValues {
 29254  	s.AutomatedSnapshotRetentionPeriod = &v
 29255  	return s
 29256  }
 29257  
 29258  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 29259  func (s *PendingModifiedValues) SetClusterIdentifier(v string) *PendingModifiedValues {
 29260  	s.ClusterIdentifier = &v
 29261  	return s
 29262  }
 29263  
 29264  // SetClusterType sets the ClusterType field's value.
 29265  func (s *PendingModifiedValues) SetClusterType(v string) *PendingModifiedValues {
 29266  	s.ClusterType = &v
 29267  	return s
 29268  }
 29269  
 29270  // SetClusterVersion sets the ClusterVersion field's value.
 29271  func (s *PendingModifiedValues) SetClusterVersion(v string) *PendingModifiedValues {
 29272  	s.ClusterVersion = &v
 29273  	return s
 29274  }
 29275  
 29276  // SetEncryptionType sets the EncryptionType field's value.
 29277  func (s *PendingModifiedValues) SetEncryptionType(v string) *PendingModifiedValues {
 29278  	s.EncryptionType = &v
 29279  	return s
 29280  }
 29281  
 29282  // SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
 29283  func (s *PendingModifiedValues) SetEnhancedVpcRouting(v bool) *PendingModifiedValues {
 29284  	s.EnhancedVpcRouting = &v
 29285  	return s
 29286  }
 29287  
 29288  // SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
 29289  func (s *PendingModifiedValues) SetMaintenanceTrackName(v string) *PendingModifiedValues {
 29290  	s.MaintenanceTrackName = &v
 29291  	return s
 29292  }
 29293  
 29294  // SetMasterUserPassword sets the MasterUserPassword field's value.
 29295  func (s *PendingModifiedValues) SetMasterUserPassword(v string) *PendingModifiedValues {
 29296  	s.MasterUserPassword = &v
 29297  	return s
 29298  }
 29299  
 29300  // SetNodeType sets the NodeType field's value.
 29301  func (s *PendingModifiedValues) SetNodeType(v string) *PendingModifiedValues {
 29302  	s.NodeType = &v
 29303  	return s
 29304  }
 29305  
 29306  // SetNumberOfNodes sets the NumberOfNodes field's value.
 29307  func (s *PendingModifiedValues) SetNumberOfNodes(v int64) *PendingModifiedValues {
 29308  	s.NumberOfNodes = &v
 29309  	return s
 29310  }
 29311  
 29312  // SetPubliclyAccessible sets the PubliclyAccessible field's value.
 29313  func (s *PendingModifiedValues) SetPubliclyAccessible(v bool) *PendingModifiedValues {
 29314  	s.PubliclyAccessible = &v
 29315  	return s
 29316  }
 29317  
 29318  type 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".
 29337  func (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".
 29346  func (s PurchaseReservedNodeOfferingInput) GoString() string {
 29347  	return s.String()
 29348  }
 29349  
 29350  // Validate inspects the fields of the type to determine if they are valid.
 29351  func (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.
 29364  func (s *PurchaseReservedNodeOfferingInput) SetNodeCount(v int64) *PurchaseReservedNodeOfferingInput {
 29365  	s.NodeCount = &v
 29366  	return s
 29367  }
 29368  
 29369  // SetReservedNodeOfferingId sets the ReservedNodeOfferingId field's value.
 29370  func (s *PurchaseReservedNodeOfferingInput) SetReservedNodeOfferingId(v string) *PurchaseReservedNodeOfferingInput {
 29371  	s.ReservedNodeOfferingId = &v
 29372  	return s
 29373  }
 29374  
 29375  type 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".
 29388  func (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".
 29397  func (s PurchaseReservedNodeOfferingOutput) GoString() string {
 29398  	return s.String()
 29399  }
 29400  
 29401  // SetReservedNode sets the ReservedNode field's value.
 29402  func (s *PurchaseReservedNodeOfferingOutput) SetReservedNode(v *ReservedNode) *PurchaseReservedNodeOfferingOutput {
 29403  	s.ReservedNode = v
 29404  	return s
 29405  }
 29406  
 29407  type 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".
 29421  func (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".
 29430  func (s RebootClusterInput) GoString() string {
 29431  	return s.String()
 29432  }
 29433  
 29434  // Validate inspects the fields of the type to determine if they are valid.
 29435  func (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.
 29448  func (s *RebootClusterInput) SetClusterIdentifier(v string) *RebootClusterInput {
 29449  	s.ClusterIdentifier = &v
 29450  	return s
 29451  }
 29452  
 29453  type 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".
 29465  func (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".
 29474  func (s RebootClusterOutput) GoString() string {
 29475  	return s.String()
 29476  }
 29477  
 29478  // SetCluster sets the Cluster field's value.
 29479  func (s *RebootClusterOutput) SetCluster(v *Cluster) *RebootClusterOutput {
 29480  	s.Cluster = v
 29481  	return s
 29482  }
 29483  
 29484  // Describes a recurring charge.
 29485  type 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".
 29501  func (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".
 29510  func (s RecurringCharge) GoString() string {
 29511  	return s.String()
 29512  }
 29513  
 29514  // SetRecurringChargeAmount sets the RecurringChargeAmount field's value.
 29515  func (s *RecurringCharge) SetRecurringChargeAmount(v float64) *RecurringCharge {
 29516  	s.RecurringChargeAmount = &v
 29517  	return s
 29518  }
 29519  
 29520  // SetRecurringChargeFrequency sets the RecurringChargeFrequency field's value.
 29521  func (s *RecurringCharge) SetRecurringChargeFrequency(v string) *RecurringCharge {
 29522  	s.RecurringChargeFrequency = &v
 29523  	return s
 29524  }
 29525  
 29526  type 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".
 29540  func (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".
 29549  func (s RejectDataShareInput) GoString() string {
 29550  	return s.String()
 29551  }
 29552  
 29553  // Validate inspects the fields of the type to determine if they are valid.
 29554  func (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.
 29567  func (s *RejectDataShareInput) SetDataShareArn(v string) *RejectDataShareInput {
 29568  	s.DataShareArn = &v
 29569  	return s
 29570  }
 29571  
 29572  type 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".
 29598  func (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".
 29607  func (s RejectDataShareOutput) GoString() string {
 29608  	return s.String()
 29609  }
 29610  
 29611  // SetAllowPubliclyAccessibleConsumers sets the AllowPubliclyAccessibleConsumers field's value.
 29612  func (s *RejectDataShareOutput) SetAllowPubliclyAccessibleConsumers(v bool) *RejectDataShareOutput {
 29613  	s.AllowPubliclyAccessibleConsumers = &v
 29614  	return s
 29615  }
 29616  
 29617  // SetDataShareArn sets the DataShareArn field's value.
 29618  func (s *RejectDataShareOutput) SetDataShareArn(v string) *RejectDataShareOutput {
 29619  	s.DataShareArn = &v
 29620  	return s
 29621  }
 29622  
 29623  // SetDataShareAssociations sets the DataShareAssociations field's value.
 29624  func (s *RejectDataShareOutput) SetDataShareAssociations(v []*DataShareAssociation) *RejectDataShareOutput {
 29625  	s.DataShareAssociations = v
 29626  	return s
 29627  }
 29628  
 29629  // SetProducerArn sets the ProducerArn field's value.
 29630  func (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.
 29637  type 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".
 29701  func (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".
 29710  func (s ReservedNode) GoString() string {
 29711  	return s.String()
 29712  }
 29713  
 29714  // SetCurrencyCode sets the CurrencyCode field's value.
 29715  func (s *ReservedNode) SetCurrencyCode(v string) *ReservedNode {
 29716  	s.CurrencyCode = &v
 29717  	return s
 29718  }
 29719  
 29720  // SetDuration sets the Duration field's value.
 29721  func (s *ReservedNode) SetDuration(v int64) *ReservedNode {
 29722  	s.Duration = &v
 29723  	return s
 29724  }
 29725  
 29726  // SetFixedPrice sets the FixedPrice field's value.
 29727  func (s *ReservedNode) SetFixedPrice(v float64) *ReservedNode {
 29728  	s.FixedPrice = &v
 29729  	return s
 29730  }
 29731  
 29732  // SetNodeCount sets the NodeCount field's value.
 29733  func (s *ReservedNode) SetNodeCount(v int64) *ReservedNode {
 29734  	s.NodeCount = &v
 29735  	return s
 29736  }
 29737  
 29738  // SetNodeType sets the NodeType field's value.
 29739  func (s *ReservedNode) SetNodeType(v string) *ReservedNode {
 29740  	s.NodeType = &v
 29741  	return s
 29742  }
 29743  
 29744  // SetOfferingType sets the OfferingType field's value.
 29745  func (s *ReservedNode) SetOfferingType(v string) *ReservedNode {
 29746  	s.OfferingType = &v
 29747  	return s
 29748  }
 29749  
 29750  // SetRecurringCharges sets the RecurringCharges field's value.
 29751  func (s *ReservedNode) SetRecurringCharges(v []*RecurringCharge) *ReservedNode {
 29752  	s.RecurringCharges = v
 29753  	return s
 29754  }
 29755  
 29756  // SetReservedNodeId sets the ReservedNodeId field's value.
 29757  func (s *ReservedNode) SetReservedNodeId(v string) *ReservedNode {
 29758  	s.ReservedNodeId = &v
 29759  	return s
 29760  }
 29761  
 29762  // SetReservedNodeOfferingId sets the ReservedNodeOfferingId field's value.
 29763  func (s *ReservedNode) SetReservedNodeOfferingId(v string) *ReservedNode {
 29764  	s.ReservedNodeOfferingId = &v
 29765  	return s
 29766  }
 29767  
 29768  // SetReservedNodeOfferingType sets the ReservedNodeOfferingType field's value.
 29769  func (s *ReservedNode) SetReservedNodeOfferingType(v string) *ReservedNode {
 29770  	s.ReservedNodeOfferingType = &v
 29771  	return s
 29772  }
 29773  
 29774  // SetStartTime sets the StartTime field's value.
 29775  func (s *ReservedNode) SetStartTime(v time.Time) *ReservedNode {
 29776  	s.StartTime = &v
 29777  	return s
 29778  }
 29779  
 29780  // SetState sets the State field's value.
 29781  func (s *ReservedNode) SetState(v string) *ReservedNode {
 29782  	s.State = &v
 29783  	return s
 29784  }
 29785  
 29786  // SetUsagePrice sets the UsagePrice field's value.
 29787  func (s *ReservedNode) SetUsagePrice(v float64) *ReservedNode {
 29788  	s.UsagePrice = &v
 29789  	return s
 29790  }
 29791  
 29792  // Describes a reserved node offering.
 29793  type 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".
 29833  func (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".
 29842  func (s ReservedNodeOffering) GoString() string {
 29843  	return s.String()
 29844  }
 29845  
 29846  // SetCurrencyCode sets the CurrencyCode field's value.
 29847  func (s *ReservedNodeOffering) SetCurrencyCode(v string) *ReservedNodeOffering {
 29848  	s.CurrencyCode = &v
 29849  	return s
 29850  }
 29851  
 29852  // SetDuration sets the Duration field's value.
 29853  func (s *ReservedNodeOffering) SetDuration(v int64) *ReservedNodeOffering {
 29854  	s.Duration = &v
 29855  	return s
 29856  }
 29857  
 29858  // SetFixedPrice sets the FixedPrice field's value.
 29859  func (s *ReservedNodeOffering) SetFixedPrice(v float64) *ReservedNodeOffering {
 29860  	s.FixedPrice = &v
 29861  	return s
 29862  }
 29863  
 29864  // SetNodeType sets the NodeType field's value.
 29865  func (s *ReservedNodeOffering) SetNodeType(v string) *ReservedNodeOffering {
 29866  	s.NodeType = &v
 29867  	return s
 29868  }
 29869  
 29870  // SetOfferingType sets the OfferingType field's value.
 29871  func (s *ReservedNodeOffering) SetOfferingType(v string) *ReservedNodeOffering {
 29872  	s.OfferingType = &v
 29873  	return s
 29874  }
 29875  
 29876  // SetRecurringCharges sets the RecurringCharges field's value.
 29877  func (s *ReservedNodeOffering) SetRecurringCharges(v []*RecurringCharge) *ReservedNodeOffering {
 29878  	s.RecurringCharges = v
 29879  	return s
 29880  }
 29881  
 29882  // SetReservedNodeOfferingId sets the ReservedNodeOfferingId field's value.
 29883  func (s *ReservedNodeOffering) SetReservedNodeOfferingId(v string) *ReservedNodeOffering {
 29884  	s.ReservedNodeOfferingId = &v
 29885  	return s
 29886  }
 29887  
 29888  // SetReservedNodeOfferingType sets the ReservedNodeOfferingType field's value.
 29889  func (s *ReservedNodeOffering) SetReservedNodeOfferingType(v string) *ReservedNodeOffering {
 29890  	s.ReservedNodeOfferingType = &v
 29891  	return s
 29892  }
 29893  
 29894  // SetUsagePrice sets the UsagePrice field's value.
 29895  func (s *ReservedNodeOffering) SetUsagePrice(v float64) *ReservedNodeOffering {
 29896  	s.UsagePrice = &v
 29897  	return s
 29898  }
 29899  
 29900  type 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".
 29926  func (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".
 29935  func (s ResetClusterParameterGroupInput) GoString() string {
 29936  	return s.String()
 29937  }
 29938  
 29939  // Validate inspects the fields of the type to determine if they are valid.
 29940  func (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.
 29953  func (s *ResetClusterParameterGroupInput) SetParameterGroupName(v string) *ResetClusterParameterGroupInput {
 29954  	s.ParameterGroupName = &v
 29955  	return s
 29956  }
 29957  
 29958  // SetParameters sets the Parameters field's value.
 29959  func (s *ResetClusterParameterGroupInput) SetParameters(v []*Parameter) *ResetClusterParameterGroupInput {
 29960  	s.Parameters = v
 29961  	return s
 29962  }
 29963  
 29964  // SetResetAllParameters sets the ResetAllParameters field's value.
 29965  func (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.
 29972  type 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".
 30002  func (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".
 30011  func (s ResizeClusterInput) GoString() string {
 30012  	return s.String()
 30013  }
 30014  
 30015  // Validate inspects the fields of the type to determine if they are valid.
 30016  func (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.
 30029  func (s *ResizeClusterInput) SetClassic(v bool) *ResizeClusterInput {
 30030  	s.Classic = &v
 30031  	return s
 30032  }
 30033  
 30034  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 30035  func (s *ResizeClusterInput) SetClusterIdentifier(v string) *ResizeClusterInput {
 30036  	s.ClusterIdentifier = &v
 30037  	return s
 30038  }
 30039  
 30040  // SetClusterType sets the ClusterType field's value.
 30041  func (s *ResizeClusterInput) SetClusterType(v string) *ResizeClusterInput {
 30042  	s.ClusterType = &v
 30043  	return s
 30044  }
 30045  
 30046  // SetNodeType sets the NodeType field's value.
 30047  func (s *ResizeClusterInput) SetNodeType(v string) *ResizeClusterInput {
 30048  	s.NodeType = &v
 30049  	return s
 30050  }
 30051  
 30052  // SetNumberOfNodes sets the NumberOfNodes field's value.
 30053  func (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.
 30060  type 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".
 30090  func (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".
 30099  func (s ResizeClusterMessage) GoString() string {
 30100  	return s.String()
 30101  }
 30102  
 30103  // Validate inspects the fields of the type to determine if they are valid.
 30104  func (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.
 30117  func (s *ResizeClusterMessage) SetClassic(v bool) *ResizeClusterMessage {
 30118  	s.Classic = &v
 30119  	return s
 30120  }
 30121  
 30122  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 30123  func (s *ResizeClusterMessage) SetClusterIdentifier(v string) *ResizeClusterMessage {
 30124  	s.ClusterIdentifier = &v
 30125  	return s
 30126  }
 30127  
 30128  // SetClusterType sets the ClusterType field's value.
 30129  func (s *ResizeClusterMessage) SetClusterType(v string) *ResizeClusterMessage {
 30130  	s.ClusterType = &v
 30131  	return s
 30132  }
 30133  
 30134  // SetNodeType sets the NodeType field's value.
 30135  func (s *ResizeClusterMessage) SetNodeType(v string) *ResizeClusterMessage {
 30136  	s.NodeType = &v
 30137  	return s
 30138  }
 30139  
 30140  // SetNumberOfNodes sets the NumberOfNodes field's value.
 30141  func (s *ResizeClusterMessage) SetNumberOfNodes(v int64) *ResizeClusterMessage {
 30142  	s.NumberOfNodes = &v
 30143  	return s
 30144  }
 30145  
 30146  type 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".
 30158  func (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".
 30167  func (s ResizeClusterOutput) GoString() string {
 30168  	return s.String()
 30169  }
 30170  
 30171  // SetCluster sets the Cluster field's value.
 30172  func (s *ResizeClusterOutput) SetCluster(v *Cluster) *ResizeClusterOutput {
 30173  	s.Cluster = v
 30174  	return s
 30175  }
 30176  
 30177  // Describes a resize operation.
 30178  type 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".
 30193  func (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".
 30202  func (s ResizeInfo) GoString() string {
 30203  	return s.String()
 30204  }
 30205  
 30206  // SetAllowCancelResize sets the AllowCancelResize field's value.
 30207  func (s *ResizeInfo) SetAllowCancelResize(v bool) *ResizeInfo {
 30208  	s.AllowCancelResize = &v
 30209  	return s
 30210  }
 30211  
 30212  // SetResizeType sets the ResizeType field's value.
 30213  func (s *ResizeInfo) SetResizeType(v string) *ResizeInfo {
 30214  	s.ResizeType = &v
 30215  	return s
 30216  }
 30217  
 30218  type 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".
 30437  func (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".
 30446  func (s RestoreFromClusterSnapshotInput) GoString() string {
 30447  	return s.String()
 30448  }
 30449  
 30450  // Validate inspects the fields of the type to determine if they are valid.
 30451  func (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.
 30467  func (s *RestoreFromClusterSnapshotInput) SetAdditionalInfo(v string) *RestoreFromClusterSnapshotInput {
 30468  	s.AdditionalInfo = &v
 30469  	return s
 30470  }
 30471  
 30472  // SetAllowVersionUpgrade sets the AllowVersionUpgrade field's value.
 30473  func (s *RestoreFromClusterSnapshotInput) SetAllowVersionUpgrade(v bool) *RestoreFromClusterSnapshotInput {
 30474  	s.AllowVersionUpgrade = &v
 30475  	return s
 30476  }
 30477  
 30478  // SetAquaConfigurationStatus sets the AquaConfigurationStatus field's value.
 30479  func (s *RestoreFromClusterSnapshotInput) SetAquaConfigurationStatus(v string) *RestoreFromClusterSnapshotInput {
 30480  	s.AquaConfigurationStatus = &v
 30481  	return s
 30482  }
 30483  
 30484  // SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value.
 30485  func (s *RestoreFromClusterSnapshotInput) SetAutomatedSnapshotRetentionPeriod(v int64) *RestoreFromClusterSnapshotInput {
 30486  	s.AutomatedSnapshotRetentionPeriod = &v
 30487  	return s
 30488  }
 30489  
 30490  // SetAvailabilityZone sets the AvailabilityZone field's value.
 30491  func (s *RestoreFromClusterSnapshotInput) SetAvailabilityZone(v string) *RestoreFromClusterSnapshotInput {
 30492  	s.AvailabilityZone = &v
 30493  	return s
 30494  }
 30495  
 30496  // SetAvailabilityZoneRelocation sets the AvailabilityZoneRelocation field's value.
 30497  func (s *RestoreFromClusterSnapshotInput) SetAvailabilityZoneRelocation(v bool) *RestoreFromClusterSnapshotInput {
 30498  	s.AvailabilityZoneRelocation = &v
 30499  	return s
 30500  }
 30501  
 30502  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 30503  func (s *RestoreFromClusterSnapshotInput) SetClusterIdentifier(v string) *RestoreFromClusterSnapshotInput {
 30504  	s.ClusterIdentifier = &v
 30505  	return s
 30506  }
 30507  
 30508  // SetClusterParameterGroupName sets the ClusterParameterGroupName field's value.
 30509  func (s *RestoreFromClusterSnapshotInput) SetClusterParameterGroupName(v string) *RestoreFromClusterSnapshotInput {
 30510  	s.ClusterParameterGroupName = &v
 30511  	return s
 30512  }
 30513  
 30514  // SetClusterSecurityGroups sets the ClusterSecurityGroups field's value.
 30515  func (s *RestoreFromClusterSnapshotInput) SetClusterSecurityGroups(v []*string) *RestoreFromClusterSnapshotInput {
 30516  	s.ClusterSecurityGroups = v
 30517  	return s
 30518  }
 30519  
 30520  // SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value.
 30521  func (s *RestoreFromClusterSnapshotInput) SetClusterSubnetGroupName(v string) *RestoreFromClusterSnapshotInput {
 30522  	s.ClusterSubnetGroupName = &v
 30523  	return s
 30524  }
 30525  
 30526  // SetElasticIp sets the ElasticIp field's value.
 30527  func (s *RestoreFromClusterSnapshotInput) SetElasticIp(v string) *RestoreFromClusterSnapshotInput {
 30528  	s.ElasticIp = &v
 30529  	return s
 30530  }
 30531  
 30532  // SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
 30533  func (s *RestoreFromClusterSnapshotInput) SetEnhancedVpcRouting(v bool) *RestoreFromClusterSnapshotInput {
 30534  	s.EnhancedVpcRouting = &v
 30535  	return s
 30536  }
 30537  
 30538  // SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value.
 30539  func (s *RestoreFromClusterSnapshotInput) SetHsmClientCertificateIdentifier(v string) *RestoreFromClusterSnapshotInput {
 30540  	s.HsmClientCertificateIdentifier = &v
 30541  	return s
 30542  }
 30543  
 30544  // SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value.
 30545  func (s *RestoreFromClusterSnapshotInput) SetHsmConfigurationIdentifier(v string) *RestoreFromClusterSnapshotInput {
 30546  	s.HsmConfigurationIdentifier = &v
 30547  	return s
 30548  }
 30549  
 30550  // SetIamRoles sets the IamRoles field's value.
 30551  func (s *RestoreFromClusterSnapshotInput) SetIamRoles(v []*string) *RestoreFromClusterSnapshotInput {
 30552  	s.IamRoles = v
 30553  	return s
 30554  }
 30555  
 30556  // SetKmsKeyId sets the KmsKeyId field's value.
 30557  func (s *RestoreFromClusterSnapshotInput) SetKmsKeyId(v string) *RestoreFromClusterSnapshotInput {
 30558  	s.KmsKeyId = &v
 30559  	return s
 30560  }
 30561  
 30562  // SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
 30563  func (s *RestoreFromClusterSnapshotInput) SetMaintenanceTrackName(v string) *RestoreFromClusterSnapshotInput {
 30564  	s.MaintenanceTrackName = &v
 30565  	return s
 30566  }
 30567  
 30568  // SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
 30569  func (s *RestoreFromClusterSnapshotInput) SetManualSnapshotRetentionPeriod(v int64) *RestoreFromClusterSnapshotInput {
 30570  	s.ManualSnapshotRetentionPeriod = &v
 30571  	return s
 30572  }
 30573  
 30574  // SetNodeType sets the NodeType field's value.
 30575  func (s *RestoreFromClusterSnapshotInput) SetNodeType(v string) *RestoreFromClusterSnapshotInput {
 30576  	s.NodeType = &v
 30577  	return s
 30578  }
 30579  
 30580  // SetNumberOfNodes sets the NumberOfNodes field's value.
 30581  func (s *RestoreFromClusterSnapshotInput) SetNumberOfNodes(v int64) *RestoreFromClusterSnapshotInput {
 30582  	s.NumberOfNodes = &v
 30583  	return s
 30584  }
 30585  
 30586  // SetOwnerAccount sets the OwnerAccount field's value.
 30587  func (s *RestoreFromClusterSnapshotInput) SetOwnerAccount(v string) *RestoreFromClusterSnapshotInput {
 30588  	s.OwnerAccount = &v
 30589  	return s
 30590  }
 30591  
 30592  // SetPort sets the Port field's value.
 30593  func (s *RestoreFromClusterSnapshotInput) SetPort(v int64) *RestoreFromClusterSnapshotInput {
 30594  	s.Port = &v
 30595  	return s
 30596  }
 30597  
 30598  // SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
 30599  func (s *RestoreFromClusterSnapshotInput) SetPreferredMaintenanceWindow(v string) *RestoreFromClusterSnapshotInput {
 30600  	s.PreferredMaintenanceWindow = &v
 30601  	return s
 30602  }
 30603  
 30604  // SetPubliclyAccessible sets the PubliclyAccessible field's value.
 30605  func (s *RestoreFromClusterSnapshotInput) SetPubliclyAccessible(v bool) *RestoreFromClusterSnapshotInput {
 30606  	s.PubliclyAccessible = &v
 30607  	return s
 30608  }
 30609  
 30610  // SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
 30611  func (s *RestoreFromClusterSnapshotInput) SetSnapshotClusterIdentifier(v string) *RestoreFromClusterSnapshotInput {
 30612  	s.SnapshotClusterIdentifier = &v
 30613  	return s
 30614  }
 30615  
 30616  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 30617  func (s *RestoreFromClusterSnapshotInput) SetSnapshotIdentifier(v string) *RestoreFromClusterSnapshotInput {
 30618  	s.SnapshotIdentifier = &v
 30619  	return s
 30620  }
 30621  
 30622  // SetSnapshotScheduleIdentifier sets the SnapshotScheduleIdentifier field's value.
 30623  func (s *RestoreFromClusterSnapshotInput) SetSnapshotScheduleIdentifier(v string) *RestoreFromClusterSnapshotInput {
 30624  	s.SnapshotScheduleIdentifier = &v
 30625  	return s
 30626  }
 30627  
 30628  // SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
 30629  func (s *RestoreFromClusterSnapshotInput) SetVpcSecurityGroupIds(v []*string) *RestoreFromClusterSnapshotInput {
 30630  	s.VpcSecurityGroupIds = v
 30631  	return s
 30632  }
 30633  
 30634  type 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".
 30646  func (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".
 30655  func (s RestoreFromClusterSnapshotOutput) GoString() string {
 30656  	return s.String()
 30657  }
 30658  
 30659  // SetCluster sets the Cluster field's value.
 30660  func (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.
 30667  type 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".
 30703  func (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".
 30712  func (s RestoreStatus) GoString() string {
 30713  	return s.String()
 30714  }
 30715  
 30716  // SetCurrentRestoreRateInMegaBytesPerSecond sets the CurrentRestoreRateInMegaBytesPerSecond field's value.
 30717  func (s *RestoreStatus) SetCurrentRestoreRateInMegaBytesPerSecond(v float64) *RestoreStatus {
 30718  	s.CurrentRestoreRateInMegaBytesPerSecond = &v
 30719  	return s
 30720  }
 30721  
 30722  // SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
 30723  func (s *RestoreStatus) SetElapsedTimeInSeconds(v int64) *RestoreStatus {
 30724  	s.ElapsedTimeInSeconds = &v
 30725  	return s
 30726  }
 30727  
 30728  // SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value.
 30729  func (s *RestoreStatus) SetEstimatedTimeToCompletionInSeconds(v int64) *RestoreStatus {
 30730  	s.EstimatedTimeToCompletionInSeconds = &v
 30731  	return s
 30732  }
 30733  
 30734  // SetProgressInMegaBytes sets the ProgressInMegaBytes field's value.
 30735  func (s *RestoreStatus) SetProgressInMegaBytes(v int64) *RestoreStatus {
 30736  	s.ProgressInMegaBytes = &v
 30737  	return s
 30738  }
 30739  
 30740  // SetSnapshotSizeInMegaBytes sets the SnapshotSizeInMegaBytes field's value.
 30741  func (s *RestoreStatus) SetSnapshotSizeInMegaBytes(v int64) *RestoreStatus {
 30742  	s.SnapshotSizeInMegaBytes = &v
 30743  	return s
 30744  }
 30745  
 30746  // SetStatus sets the Status field's value.
 30747  func (s *RestoreStatus) SetStatus(v string) *RestoreStatus {
 30748  	s.Status = &v
 30749  	return s
 30750  }
 30751  
 30752  type 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".
 30803  func (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".
 30812  func (s RestoreTableFromClusterSnapshotInput) GoString() string {
 30813  	return s.String()
 30814  }
 30815  
 30816  // Validate inspects the fields of the type to determine if they are valid.
 30817  func (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.
 30842  func (s *RestoreTableFromClusterSnapshotInput) SetClusterIdentifier(v string) *RestoreTableFromClusterSnapshotInput {
 30843  	s.ClusterIdentifier = &v
 30844  	return s
 30845  }
 30846  
 30847  // SetEnableCaseSensitiveIdentifier sets the EnableCaseSensitiveIdentifier field's value.
 30848  func (s *RestoreTableFromClusterSnapshotInput) SetEnableCaseSensitiveIdentifier(v bool) *RestoreTableFromClusterSnapshotInput {
 30849  	s.EnableCaseSensitiveIdentifier = &v
 30850  	return s
 30851  }
 30852  
 30853  // SetNewTableName sets the NewTableName field's value.
 30854  func (s *RestoreTableFromClusterSnapshotInput) SetNewTableName(v string) *RestoreTableFromClusterSnapshotInput {
 30855  	s.NewTableName = &v
 30856  	return s
 30857  }
 30858  
 30859  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 30860  func (s *RestoreTableFromClusterSnapshotInput) SetSnapshotIdentifier(v string) *RestoreTableFromClusterSnapshotInput {
 30861  	s.SnapshotIdentifier = &v
 30862  	return s
 30863  }
 30864  
 30865  // SetSourceDatabaseName sets the SourceDatabaseName field's value.
 30866  func (s *RestoreTableFromClusterSnapshotInput) SetSourceDatabaseName(v string) *RestoreTableFromClusterSnapshotInput {
 30867  	s.SourceDatabaseName = &v
 30868  	return s
 30869  }
 30870  
 30871  // SetSourceSchemaName sets the SourceSchemaName field's value.
 30872  func (s *RestoreTableFromClusterSnapshotInput) SetSourceSchemaName(v string) *RestoreTableFromClusterSnapshotInput {
 30873  	s.SourceSchemaName = &v
 30874  	return s
 30875  }
 30876  
 30877  // SetSourceTableName sets the SourceTableName field's value.
 30878  func (s *RestoreTableFromClusterSnapshotInput) SetSourceTableName(v string) *RestoreTableFromClusterSnapshotInput {
 30879  	s.SourceTableName = &v
 30880  	return s
 30881  }
 30882  
 30883  // SetTargetDatabaseName sets the TargetDatabaseName field's value.
 30884  func (s *RestoreTableFromClusterSnapshotInput) SetTargetDatabaseName(v string) *RestoreTableFromClusterSnapshotInput {
 30885  	s.TargetDatabaseName = &v
 30886  	return s
 30887  }
 30888  
 30889  // SetTargetSchemaName sets the TargetSchemaName field's value.
 30890  func (s *RestoreTableFromClusterSnapshotInput) SetTargetSchemaName(v string) *RestoreTableFromClusterSnapshotInput {
 30891  	s.TargetSchemaName = &v
 30892  	return s
 30893  }
 30894  
 30895  type 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".
 30907  func (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".
 30916  func (s RestoreTableFromClusterSnapshotOutput) GoString() string {
 30917  	return s.String()
 30918  }
 30919  
 30920  // SetTableRestoreStatus sets the TableRestoreStatus field's value.
 30921  func (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.
 30928  type 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".
 30942  func (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".
 30951  func (s ResumeClusterInput) GoString() string {
 30952  	return s.String()
 30953  }
 30954  
 30955  // Validate inspects the fields of the type to determine if they are valid.
 30956  func (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.
 30969  func (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.
 30976  type 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".
 30990  func (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".
 30999  func (s ResumeClusterMessage) GoString() string {
 31000  	return s.String()
 31001  }
 31002  
 31003  // Validate inspects the fields of the type to determine if they are valid.
 31004  func (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.
 31017  func (s *ResumeClusterMessage) SetClusterIdentifier(v string) *ResumeClusterMessage {
 31018  	s.ClusterIdentifier = &v
 31019  	return s
 31020  }
 31021  
 31022  type 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".
 31034  func (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".
 31043  func (s ResumeClusterOutput) GoString() string {
 31044  	return s.String()
 31045  }
 31046  
 31047  // SetCluster sets the Cluster field's value.
 31048  func (s *ResumeClusterOutput) SetCluster(v *Cluster) *ResumeClusterOutput {
 31049  	s.Cluster = v
 31050  	return s
 31051  }
 31052  
 31053  // Describes a RevisionTarget.
 31054  type 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".
 31074  func (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".
 31083  func (s RevisionTarget) GoString() string {
 31084  	return s.String()
 31085  }
 31086  
 31087  // SetDatabaseRevision sets the DatabaseRevision field's value.
 31088  func (s *RevisionTarget) SetDatabaseRevision(v string) *RevisionTarget {
 31089  	s.DatabaseRevision = &v
 31090  	return s
 31091  }
 31092  
 31093  // SetDatabaseRevisionReleaseDate sets the DatabaseRevisionReleaseDate field's value.
 31094  func (s *RevisionTarget) SetDatabaseRevisionReleaseDate(v time.Time) *RevisionTarget {
 31095  	s.DatabaseRevisionReleaseDate = &v
 31096  	return s
 31097  }
 31098  
 31099  // SetDescription sets the Description field's value.
 31100  func (s *RevisionTarget) SetDescription(v string) *RevisionTarget {
 31101  	s.Description = &v
 31102  	return s
 31103  }
 31104  
 31105  type 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".
 31137  func (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".
 31146  func (s RevokeClusterSecurityGroupIngressInput) GoString() string {
 31147  	return s.String()
 31148  }
 31149  
 31150  // Validate inspects the fields of the type to determine if they are valid.
 31151  func (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.
 31164  func (s *RevokeClusterSecurityGroupIngressInput) SetCIDRIP(v string) *RevokeClusterSecurityGroupIngressInput {
 31165  	s.CIDRIP = &v
 31166  	return s
 31167  }
 31168  
 31169  // SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value.
 31170  func (s *RevokeClusterSecurityGroupIngressInput) SetClusterSecurityGroupName(v string) *RevokeClusterSecurityGroupIngressInput {
 31171  	s.ClusterSecurityGroupName = &v
 31172  	return s
 31173  }
 31174  
 31175  // SetEC2SecurityGroupName sets the EC2SecurityGroupName field's value.
 31176  func (s *RevokeClusterSecurityGroupIngressInput) SetEC2SecurityGroupName(v string) *RevokeClusterSecurityGroupIngressInput {
 31177  	s.EC2SecurityGroupName = &v
 31178  	return s
 31179  }
 31180  
 31181  // SetEC2SecurityGroupOwnerId sets the EC2SecurityGroupOwnerId field's value.
 31182  func (s *RevokeClusterSecurityGroupIngressInput) SetEC2SecurityGroupOwnerId(v string) *RevokeClusterSecurityGroupIngressInput {
 31183  	s.EC2SecurityGroupOwnerId = &v
 31184  	return s
 31185  }
 31186  
 31187  type 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".
 31199  func (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".
 31208  func (s RevokeClusterSecurityGroupIngressOutput) GoString() string {
 31209  	return s.String()
 31210  }
 31211  
 31212  // SetClusterSecurityGroup sets the ClusterSecurityGroup field's value.
 31213  func (s *RevokeClusterSecurityGroupIngressOutput) SetClusterSecurityGroup(v *ClusterSecurityGroup) *RevokeClusterSecurityGroupIngressOutput {
 31214  	s.ClusterSecurityGroup = v
 31215  	return s
 31216  }
 31217  
 31218  type 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".
 31240  func (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".
 31249  func (s RevokeEndpointAccessInput) GoString() string {
 31250  	return s.String()
 31251  }
 31252  
 31253  // SetAccount sets the Account field's value.
 31254  func (s *RevokeEndpointAccessInput) SetAccount(v string) *RevokeEndpointAccessInput {
 31255  	s.Account = &v
 31256  	return s
 31257  }
 31258  
 31259  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 31260  func (s *RevokeEndpointAccessInput) SetClusterIdentifier(v string) *RevokeEndpointAccessInput {
 31261  	s.ClusterIdentifier = &v
 31262  	return s
 31263  }
 31264  
 31265  // SetForce sets the Force field's value.
 31266  func (s *RevokeEndpointAccessInput) SetForce(v bool) *RevokeEndpointAccessInput {
 31267  	s.Force = &v
 31268  	return s
 31269  }
 31270  
 31271  // SetVpcIds sets the VpcIds field's value.
 31272  func (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.
 31279  type 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".
 31316  func (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".
 31325  func (s RevokeEndpointAccessOutput) GoString() string {
 31326  	return s.String()
 31327  }
 31328  
 31329  // SetAllowedAllVPCs sets the AllowedAllVPCs field's value.
 31330  func (s *RevokeEndpointAccessOutput) SetAllowedAllVPCs(v bool) *RevokeEndpointAccessOutput {
 31331  	s.AllowedAllVPCs = &v
 31332  	return s
 31333  }
 31334  
 31335  // SetAllowedVPCs sets the AllowedVPCs field's value.
 31336  func (s *RevokeEndpointAccessOutput) SetAllowedVPCs(v []*string) *RevokeEndpointAccessOutput {
 31337  	s.AllowedVPCs = v
 31338  	return s
 31339  }
 31340  
 31341  // SetAuthorizeTime sets the AuthorizeTime field's value.
 31342  func (s *RevokeEndpointAccessOutput) SetAuthorizeTime(v time.Time) *RevokeEndpointAccessOutput {
 31343  	s.AuthorizeTime = &v
 31344  	return s
 31345  }
 31346  
 31347  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 31348  func (s *RevokeEndpointAccessOutput) SetClusterIdentifier(v string) *RevokeEndpointAccessOutput {
 31349  	s.ClusterIdentifier = &v
 31350  	return s
 31351  }
 31352  
 31353  // SetClusterStatus sets the ClusterStatus field's value.
 31354  func (s *RevokeEndpointAccessOutput) SetClusterStatus(v string) *RevokeEndpointAccessOutput {
 31355  	s.ClusterStatus = &v
 31356  	return s
 31357  }
 31358  
 31359  // SetEndpointCount sets the EndpointCount field's value.
 31360  func (s *RevokeEndpointAccessOutput) SetEndpointCount(v int64) *RevokeEndpointAccessOutput {
 31361  	s.EndpointCount = &v
 31362  	return s
 31363  }
 31364  
 31365  // SetGrantee sets the Grantee field's value.
 31366  func (s *RevokeEndpointAccessOutput) SetGrantee(v string) *RevokeEndpointAccessOutput {
 31367  	s.Grantee = &v
 31368  	return s
 31369  }
 31370  
 31371  // SetGrantor sets the Grantor field's value.
 31372  func (s *RevokeEndpointAccessOutput) SetGrantor(v string) *RevokeEndpointAccessOutput {
 31373  	s.Grantor = &v
 31374  	return s
 31375  }
 31376  
 31377  // SetStatus sets the Status field's value.
 31378  func (s *RevokeEndpointAccessOutput) SetStatus(v string) *RevokeEndpointAccessOutput {
 31379  	s.Status = &v
 31380  	return s
 31381  }
 31382  
 31383  type 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".
 31408  func (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".
 31417  func (s RevokeSnapshotAccessInput) GoString() string {
 31418  	return s.String()
 31419  }
 31420  
 31421  // Validate inspects the fields of the type to determine if they are valid.
 31422  func (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.
 31438  func (s *RevokeSnapshotAccessInput) SetAccountWithRestoreAccess(v string) *RevokeSnapshotAccessInput {
 31439  	s.AccountWithRestoreAccess = &v
 31440  	return s
 31441  }
 31442  
 31443  // SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
 31444  func (s *RevokeSnapshotAccessInput) SetSnapshotClusterIdentifier(v string) *RevokeSnapshotAccessInput {
 31445  	s.SnapshotClusterIdentifier = &v
 31446  	return s
 31447  }
 31448  
 31449  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 31450  func (s *RevokeSnapshotAccessInput) SetSnapshotIdentifier(v string) *RevokeSnapshotAccessInput {
 31451  	s.SnapshotIdentifier = &v
 31452  	return s
 31453  }
 31454  
 31455  type 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".
 31467  func (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".
 31476  func (s RevokeSnapshotAccessOutput) GoString() string {
 31477  	return s.String()
 31478  }
 31479  
 31480  // SetSnapshot sets the Snapshot field's value.
 31481  func (s *RevokeSnapshotAccessOutput) SetSnapshot(v *Snapshot) *RevokeSnapshotAccessOutput {
 31482  	s.Snapshot = v
 31483  	return s
 31484  }
 31485  
 31486  type 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".
 31503  func (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".
 31512  func (s RotateEncryptionKeyInput) GoString() string {
 31513  	return s.String()
 31514  }
 31515  
 31516  // Validate inspects the fields of the type to determine if they are valid.
 31517  func (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.
 31530  func (s *RotateEncryptionKeyInput) SetClusterIdentifier(v string) *RotateEncryptionKeyInput {
 31531  	s.ClusterIdentifier = &v
 31532  	return s
 31533  }
 31534  
 31535  type 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".
 31547  func (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".
 31556  func (s RotateEncryptionKeyOutput) GoString() string {
 31557  	return s.String()
 31558  }
 31559  
 31560  // SetCluster sets the Cluster field's value.
 31561  func (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.
 31569  type 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".
 31623  func (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".
 31632  func (s ScheduledAction) GoString() string {
 31633  	return s.String()
 31634  }
 31635  
 31636  // SetEndTime sets the EndTime field's value.
 31637  func (s *ScheduledAction) SetEndTime(v time.Time) *ScheduledAction {
 31638  	s.EndTime = &v
 31639  	return s
 31640  }
 31641  
 31642  // SetIamRole sets the IamRole field's value.
 31643  func (s *ScheduledAction) SetIamRole(v string) *ScheduledAction {
 31644  	s.IamRole = &v
 31645  	return s
 31646  }
 31647  
 31648  // SetNextInvocations sets the NextInvocations field's value.
 31649  func (s *ScheduledAction) SetNextInvocations(v []*time.Time) *ScheduledAction {
 31650  	s.NextInvocations = v
 31651  	return s
 31652  }
 31653  
 31654  // SetSchedule sets the Schedule field's value.
 31655  func (s *ScheduledAction) SetSchedule(v string) *ScheduledAction {
 31656  	s.Schedule = &v
 31657  	return s
 31658  }
 31659  
 31660  // SetScheduledActionDescription sets the ScheduledActionDescription field's value.
 31661  func (s *ScheduledAction) SetScheduledActionDescription(v string) *ScheduledAction {
 31662  	s.ScheduledActionDescription = &v
 31663  	return s
 31664  }
 31665  
 31666  // SetScheduledActionName sets the ScheduledActionName field's value.
 31667  func (s *ScheduledAction) SetScheduledActionName(v string) *ScheduledAction {
 31668  	s.ScheduledActionName = &v
 31669  	return s
 31670  }
 31671  
 31672  // SetStartTime sets the StartTime field's value.
 31673  func (s *ScheduledAction) SetStartTime(v time.Time) *ScheduledAction {
 31674  	s.StartTime = &v
 31675  	return s
 31676  }
 31677  
 31678  // SetState sets the State field's value.
 31679  func (s *ScheduledAction) SetState(v string) *ScheduledAction {
 31680  	s.State = &v
 31681  	return s
 31682  }
 31683  
 31684  // SetTargetAction sets the TargetAction field's value.
 31685  func (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.
 31691  type 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".
 31711  func (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".
 31720  func (s ScheduledActionFilter) GoString() string {
 31721  	return s.String()
 31722  }
 31723  
 31724  // Validate inspects the fields of the type to determine if they are valid.
 31725  func (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.
 31741  func (s *ScheduledActionFilter) SetName(v string) *ScheduledActionFilter {
 31742  	s.Name = &v
 31743  	return s
 31744  }
 31745  
 31746  // SetValues sets the Values field's value.
 31747  func (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.
 31754  type 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".
 31772  func (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".
 31781  func (s ScheduledActionType) GoString() string {
 31782  	return s.String()
 31783  }
 31784  
 31785  // Validate inspects the fields of the type to determine if they are valid.
 31786  func (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.
 31811  func (s *ScheduledActionType) SetPauseCluster(v *PauseClusterMessage) *ScheduledActionType {
 31812  	s.PauseCluster = v
 31813  	return s
 31814  }
 31815  
 31816  // SetResizeCluster sets the ResizeCluster field's value.
 31817  func (s *ScheduledActionType) SetResizeCluster(v *ResizeClusterMessage) *ScheduledActionType {
 31818  	s.ResizeCluster = v
 31819  	return s
 31820  }
 31821  
 31822  // SetResumeCluster sets the ResumeCluster field's value.
 31823  func (s *ScheduledActionType) SetResumeCluster(v *ResumeClusterMessage) *ScheduledActionType {
 31824  	s.ResumeCluster = v
 31825  	return s
 31826  }
 31827  
 31828  // Describes a snapshot.
 31829  type 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".
 31974  func (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".
 31983  func (s Snapshot) GoString() string {
 31984  	return s.String()
 31985  }
 31986  
 31987  // SetAccountsWithRestoreAccess sets the AccountsWithRestoreAccess field's value.
 31988  func (s *Snapshot) SetAccountsWithRestoreAccess(v []*AccountWithRestoreAccess) *Snapshot {
 31989  	s.AccountsWithRestoreAccess = v
 31990  	return s
 31991  }
 31992  
 31993  // SetActualIncrementalBackupSizeInMegaBytes sets the ActualIncrementalBackupSizeInMegaBytes field's value.
 31994  func (s *Snapshot) SetActualIncrementalBackupSizeInMegaBytes(v float64) *Snapshot {
 31995  	s.ActualIncrementalBackupSizeInMegaBytes = &v
 31996  	return s
 31997  }
 31998  
 31999  // SetAvailabilityZone sets the AvailabilityZone field's value.
 32000  func (s *Snapshot) SetAvailabilityZone(v string) *Snapshot {
 32001  	s.AvailabilityZone = &v
 32002  	return s
 32003  }
 32004  
 32005  // SetBackupProgressInMegaBytes sets the BackupProgressInMegaBytes field's value.
 32006  func (s *Snapshot) SetBackupProgressInMegaBytes(v float64) *Snapshot {
 32007  	s.BackupProgressInMegaBytes = &v
 32008  	return s
 32009  }
 32010  
 32011  // SetClusterCreateTime sets the ClusterCreateTime field's value.
 32012  func (s *Snapshot) SetClusterCreateTime(v time.Time) *Snapshot {
 32013  	s.ClusterCreateTime = &v
 32014  	return s
 32015  }
 32016  
 32017  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 32018  func (s *Snapshot) SetClusterIdentifier(v string) *Snapshot {
 32019  	s.ClusterIdentifier = &v
 32020  	return s
 32021  }
 32022  
 32023  // SetClusterVersion sets the ClusterVersion field's value.
 32024  func (s *Snapshot) SetClusterVersion(v string) *Snapshot {
 32025  	s.ClusterVersion = &v
 32026  	return s
 32027  }
 32028  
 32029  // SetCurrentBackupRateInMegaBytesPerSecond sets the CurrentBackupRateInMegaBytesPerSecond field's value.
 32030  func (s *Snapshot) SetCurrentBackupRateInMegaBytesPerSecond(v float64) *Snapshot {
 32031  	s.CurrentBackupRateInMegaBytesPerSecond = &v
 32032  	return s
 32033  }
 32034  
 32035  // SetDBName sets the DBName field's value.
 32036  func (s *Snapshot) SetDBName(v string) *Snapshot {
 32037  	s.DBName = &v
 32038  	return s
 32039  }
 32040  
 32041  // SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value.
 32042  func (s *Snapshot) SetElapsedTimeInSeconds(v int64) *Snapshot {
 32043  	s.ElapsedTimeInSeconds = &v
 32044  	return s
 32045  }
 32046  
 32047  // SetEncrypted sets the Encrypted field's value.
 32048  func (s *Snapshot) SetEncrypted(v bool) *Snapshot {
 32049  	s.Encrypted = &v
 32050  	return s
 32051  }
 32052  
 32053  // SetEncryptedWithHSM sets the EncryptedWithHSM field's value.
 32054  func (s *Snapshot) SetEncryptedWithHSM(v bool) *Snapshot {
 32055  	s.EncryptedWithHSM = &v
 32056  	return s
 32057  }
 32058  
 32059  // SetEngineFullVersion sets the EngineFullVersion field's value.
 32060  func (s *Snapshot) SetEngineFullVersion(v string) *Snapshot {
 32061  	s.EngineFullVersion = &v
 32062  	return s
 32063  }
 32064  
 32065  // SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value.
 32066  func (s *Snapshot) SetEnhancedVpcRouting(v bool) *Snapshot {
 32067  	s.EnhancedVpcRouting = &v
 32068  	return s
 32069  }
 32070  
 32071  // SetEstimatedSecondsToCompletion sets the EstimatedSecondsToCompletion field's value.
 32072  func (s *Snapshot) SetEstimatedSecondsToCompletion(v int64) *Snapshot {
 32073  	s.EstimatedSecondsToCompletion = &v
 32074  	return s
 32075  }
 32076  
 32077  // SetKmsKeyId sets the KmsKeyId field's value.
 32078  func (s *Snapshot) SetKmsKeyId(v string) *Snapshot {
 32079  	s.KmsKeyId = &v
 32080  	return s
 32081  }
 32082  
 32083  // SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
 32084  func (s *Snapshot) SetMaintenanceTrackName(v string) *Snapshot {
 32085  	s.MaintenanceTrackName = &v
 32086  	return s
 32087  }
 32088  
 32089  // SetManualSnapshotRemainingDays sets the ManualSnapshotRemainingDays field's value.
 32090  func (s *Snapshot) SetManualSnapshotRemainingDays(v int64) *Snapshot {
 32091  	s.ManualSnapshotRemainingDays = &v
 32092  	return s
 32093  }
 32094  
 32095  // SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value.
 32096  func (s *Snapshot) SetManualSnapshotRetentionPeriod(v int64) *Snapshot {
 32097  	s.ManualSnapshotRetentionPeriod = &v
 32098  	return s
 32099  }
 32100  
 32101  // SetMasterUsername sets the MasterUsername field's value.
 32102  func (s *Snapshot) SetMasterUsername(v string) *Snapshot {
 32103  	s.MasterUsername = &v
 32104  	return s
 32105  }
 32106  
 32107  // SetNodeType sets the NodeType field's value.
 32108  func (s *Snapshot) SetNodeType(v string) *Snapshot {
 32109  	s.NodeType = &v
 32110  	return s
 32111  }
 32112  
 32113  // SetNumberOfNodes sets the NumberOfNodes field's value.
 32114  func (s *Snapshot) SetNumberOfNodes(v int64) *Snapshot {
 32115  	s.NumberOfNodes = &v
 32116  	return s
 32117  }
 32118  
 32119  // SetOwnerAccount sets the OwnerAccount field's value.
 32120  func (s *Snapshot) SetOwnerAccount(v string) *Snapshot {
 32121  	s.OwnerAccount = &v
 32122  	return s
 32123  }
 32124  
 32125  // SetPort sets the Port field's value.
 32126  func (s *Snapshot) SetPort(v int64) *Snapshot {
 32127  	s.Port = &v
 32128  	return s
 32129  }
 32130  
 32131  // SetRestorableNodeTypes sets the RestorableNodeTypes field's value.
 32132  func (s *Snapshot) SetRestorableNodeTypes(v []*string) *Snapshot {
 32133  	s.RestorableNodeTypes = v
 32134  	return s
 32135  }
 32136  
 32137  // SetSnapshotCreateTime sets the SnapshotCreateTime field's value.
 32138  func (s *Snapshot) SetSnapshotCreateTime(v time.Time) *Snapshot {
 32139  	s.SnapshotCreateTime = &v
 32140  	return s
 32141  }
 32142  
 32143  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 32144  func (s *Snapshot) SetSnapshotIdentifier(v string) *Snapshot {
 32145  	s.SnapshotIdentifier = &v
 32146  	return s
 32147  }
 32148  
 32149  // SetSnapshotRetentionStartTime sets the SnapshotRetentionStartTime field's value.
 32150  func (s *Snapshot) SetSnapshotRetentionStartTime(v time.Time) *Snapshot {
 32151  	s.SnapshotRetentionStartTime = &v
 32152  	return s
 32153  }
 32154  
 32155  // SetSnapshotType sets the SnapshotType field's value.
 32156  func (s *Snapshot) SetSnapshotType(v string) *Snapshot {
 32157  	s.SnapshotType = &v
 32158  	return s
 32159  }
 32160  
 32161  // SetSourceRegion sets the SourceRegion field's value.
 32162  func (s *Snapshot) SetSourceRegion(v string) *Snapshot {
 32163  	s.SourceRegion = &v
 32164  	return s
 32165  }
 32166  
 32167  // SetStatus sets the Status field's value.
 32168  func (s *Snapshot) SetStatus(v string) *Snapshot {
 32169  	s.Status = &v
 32170  	return s
 32171  }
 32172  
 32173  // SetTags sets the Tags field's value.
 32174  func (s *Snapshot) SetTags(v []*Tag) *Snapshot {
 32175  	s.Tags = v
 32176  	return s
 32177  }
 32178  
 32179  // SetTotalBackupSizeInMegaBytes sets the TotalBackupSizeInMegaBytes field's value.
 32180  func (s *Snapshot) SetTotalBackupSizeInMegaBytes(v float64) *Snapshot {
 32181  	s.TotalBackupSizeInMegaBytes = &v
 32182  	return s
 32183  }
 32184  
 32185  // SetVpcId sets the VpcId field's value.
 32186  func (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.
 32198  type 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".
 32217  func (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".
 32226  func (s SnapshotCopyGrant) GoString() string {
 32227  	return s.String()
 32228  }
 32229  
 32230  // SetKmsKeyId sets the KmsKeyId field's value.
 32231  func (s *SnapshotCopyGrant) SetKmsKeyId(v string) *SnapshotCopyGrant {
 32232  	s.KmsKeyId = &v
 32233  	return s
 32234  }
 32235  
 32236  // SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value.
 32237  func (s *SnapshotCopyGrant) SetSnapshotCopyGrantName(v string) *SnapshotCopyGrant {
 32238  	s.SnapshotCopyGrantName = &v
 32239  	return s
 32240  }
 32241  
 32242  // SetTags sets the Tags field's value.
 32243  func (s *SnapshotCopyGrant) SetTags(v []*Tag) *SnapshotCopyGrant {
 32244  	s.Tags = v
 32245  	return s
 32246  }
 32247  
 32248  // Describes the errors returned by a snapshot.
 32249  type 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".
 32270  func (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".
 32279  func (s SnapshotErrorMessage) GoString() string {
 32280  	return s.String()
 32281  }
 32282  
 32283  // SetFailureCode sets the FailureCode field's value.
 32284  func (s *SnapshotErrorMessage) SetFailureCode(v string) *SnapshotErrorMessage {
 32285  	s.FailureCode = &v
 32286  	return s
 32287  }
 32288  
 32289  // SetFailureReason sets the FailureReason field's value.
 32290  func (s *SnapshotErrorMessage) SetFailureReason(v string) *SnapshotErrorMessage {
 32291  	s.FailureReason = &v
 32292  	return s
 32293  }
 32294  
 32295  // SetSnapshotClusterIdentifier sets the SnapshotClusterIdentifier field's value.
 32296  func (s *SnapshotErrorMessage) SetSnapshotClusterIdentifier(v string) *SnapshotErrorMessage {
 32297  	s.SnapshotClusterIdentifier = &v
 32298  	return s
 32299  }
 32300  
 32301  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 32302  func (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.
 32309  type 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".
 32339  func (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".
 32348  func (s SnapshotSchedule) GoString() string {
 32349  	return s.String()
 32350  }
 32351  
 32352  // SetAssociatedClusterCount sets the AssociatedClusterCount field's value.
 32353  func (s *SnapshotSchedule) SetAssociatedClusterCount(v int64) *SnapshotSchedule {
 32354  	s.AssociatedClusterCount = &v
 32355  	return s
 32356  }
 32357  
 32358  // SetAssociatedClusters sets the AssociatedClusters field's value.
 32359  func (s *SnapshotSchedule) SetAssociatedClusters(v []*ClusterAssociatedToSchedule) *SnapshotSchedule {
 32360  	s.AssociatedClusters = v
 32361  	return s
 32362  }
 32363  
 32364  // SetNextInvocations sets the NextInvocations field's value.
 32365  func (s *SnapshotSchedule) SetNextInvocations(v []*time.Time) *SnapshotSchedule {
 32366  	s.NextInvocations = v
 32367  	return s
 32368  }
 32369  
 32370  // SetScheduleDefinitions sets the ScheduleDefinitions field's value.
 32371  func (s *SnapshotSchedule) SetScheduleDefinitions(v []*string) *SnapshotSchedule {
 32372  	s.ScheduleDefinitions = v
 32373  	return s
 32374  }
 32375  
 32376  // SetScheduleDescription sets the ScheduleDescription field's value.
 32377  func (s *SnapshotSchedule) SetScheduleDescription(v string) *SnapshotSchedule {
 32378  	s.ScheduleDescription = &v
 32379  	return s
 32380  }
 32381  
 32382  // SetScheduleIdentifier sets the ScheduleIdentifier field's value.
 32383  func (s *SnapshotSchedule) SetScheduleIdentifier(v string) *SnapshotSchedule {
 32384  	s.ScheduleIdentifier = &v
 32385  	return s
 32386  }
 32387  
 32388  // SetTags sets the Tags field's value.
 32389  func (s *SnapshotSchedule) SetTags(v []*Tag) *SnapshotSchedule {
 32390  	s.Tags = v
 32391  	return s
 32392  }
 32393  
 32394  // Describes a sorting entity
 32395  type 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".
 32412  func (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".
 32421  func (s SnapshotSortingEntity) GoString() string {
 32422  	return s.String()
 32423  }
 32424  
 32425  // Validate inspects the fields of the type to determine if they are valid.
 32426  func (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.
 32439  func (s *SnapshotSortingEntity) SetAttribute(v string) *SnapshotSortingEntity {
 32440  	s.Attribute = &v
 32441  	return s
 32442  }
 32443  
 32444  // SetSortOrder sets the SortOrder field's value.
 32445  func (s *SnapshotSortingEntity) SetSortOrder(v string) *SnapshotSortingEntity {
 32446  	s.SortOrder = &v
 32447  	return s
 32448  }
 32449  
 32450  // Describes a subnet.
 32451  type 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".
 32469  func (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".
 32478  func (s Subnet) GoString() string {
 32479  	return s.String()
 32480  }
 32481  
 32482  // SetSubnetAvailabilityZone sets the SubnetAvailabilityZone field's value.
 32483  func (s *Subnet) SetSubnetAvailabilityZone(v *AvailabilityZone) *Subnet {
 32484  	s.SubnetAvailabilityZone = v
 32485  	return s
 32486  }
 32487  
 32488  // SetSubnetIdentifier sets the SubnetIdentifier field's value.
 32489  func (s *Subnet) SetSubnetIdentifier(v string) *Subnet {
 32490  	s.SubnetIdentifier = &v
 32491  	return s
 32492  }
 32493  
 32494  // SetSubnetStatus sets the SubnetStatus field's value.
 32495  func (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.
 32501  type 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".
 32513  func (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".
 32522  func (s SupportedOperation) GoString() string {
 32523  	return s.String()
 32524  }
 32525  
 32526  // SetOperationName sets the OperationName field's value.
 32527  func (s *SupportedOperation) SetOperationName(v string) *SupportedOperation {
 32528  	s.OperationName = &v
 32529  	return s
 32530  }
 32531  
 32532  // A list of supported platforms for orderable clusters.
 32533  type 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".
 32544  func (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".
 32553  func (s SupportedPlatform) GoString() string {
 32554  	return s.String()
 32555  }
 32556  
 32557  // SetName sets the Name field's value.
 32558  func (s *SupportedPlatform) SetName(v string) *SupportedPlatform {
 32559  	s.Name = &v
 32560  	return s
 32561  }
 32562  
 32563  // Describes the status of a RestoreTableFromClusterSnapshot operation.
 32564  type 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".
 32620  func (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".
 32629  func (s TableRestoreStatus) GoString() string {
 32630  	return s.String()
 32631  }
 32632  
 32633  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 32634  func (s *TableRestoreStatus) SetClusterIdentifier(v string) *TableRestoreStatus {
 32635  	s.ClusterIdentifier = &v
 32636  	return s
 32637  }
 32638  
 32639  // SetMessage sets the Message field's value.
 32640  func (s *TableRestoreStatus) SetMessage(v string) *TableRestoreStatus {
 32641  	s.Message = &v
 32642  	return s
 32643  }
 32644  
 32645  // SetNewTableName sets the NewTableName field's value.
 32646  func (s *TableRestoreStatus) SetNewTableName(v string) *TableRestoreStatus {
 32647  	s.NewTableName = &v
 32648  	return s
 32649  }
 32650  
 32651  // SetProgressInMegaBytes sets the ProgressInMegaBytes field's value.
 32652  func (s *TableRestoreStatus) SetProgressInMegaBytes(v int64) *TableRestoreStatus {
 32653  	s.ProgressInMegaBytes = &v
 32654  	return s
 32655  }
 32656  
 32657  // SetRequestTime sets the RequestTime field's value.
 32658  func (s *TableRestoreStatus) SetRequestTime(v time.Time) *TableRestoreStatus {
 32659  	s.RequestTime = &v
 32660  	return s
 32661  }
 32662  
 32663  // SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
 32664  func (s *TableRestoreStatus) SetSnapshotIdentifier(v string) *TableRestoreStatus {
 32665  	s.SnapshotIdentifier = &v
 32666  	return s
 32667  }
 32668  
 32669  // SetSourceDatabaseName sets the SourceDatabaseName field's value.
 32670  func (s *TableRestoreStatus) SetSourceDatabaseName(v string) *TableRestoreStatus {
 32671  	s.SourceDatabaseName = &v
 32672  	return s
 32673  }
 32674  
 32675  // SetSourceSchemaName sets the SourceSchemaName field's value.
 32676  func (s *TableRestoreStatus) SetSourceSchemaName(v string) *TableRestoreStatus {
 32677  	s.SourceSchemaName = &v
 32678  	return s
 32679  }
 32680  
 32681  // SetSourceTableName sets the SourceTableName field's value.
 32682  func (s *TableRestoreStatus) SetSourceTableName(v string) *TableRestoreStatus {
 32683  	s.SourceTableName = &v
 32684  	return s
 32685  }
 32686  
 32687  // SetStatus sets the Status field's value.
 32688  func (s *TableRestoreStatus) SetStatus(v string) *TableRestoreStatus {
 32689  	s.Status = &v
 32690  	return s
 32691  }
 32692  
 32693  // SetTableRestoreRequestId sets the TableRestoreRequestId field's value.
 32694  func (s *TableRestoreStatus) SetTableRestoreRequestId(v string) *TableRestoreStatus {
 32695  	s.TableRestoreRequestId = &v
 32696  	return s
 32697  }
 32698  
 32699  // SetTargetDatabaseName sets the TargetDatabaseName field's value.
 32700  func (s *TableRestoreStatus) SetTargetDatabaseName(v string) *TableRestoreStatus {
 32701  	s.TargetDatabaseName = &v
 32702  	return s
 32703  }
 32704  
 32705  // SetTargetSchemaName sets the TargetSchemaName field's value.
 32706  func (s *TableRestoreStatus) SetTargetSchemaName(v string) *TableRestoreStatus {
 32707  	s.TargetSchemaName = &v
 32708  	return s
 32709  }
 32710  
 32711  // SetTotalDataInMegaBytes sets the TotalDataInMegaBytes field's value.
 32712  func (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.
 32718  type 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".
 32733  func (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".
 32742  func (s Tag) GoString() string {
 32743  	return s.String()
 32744  }
 32745  
 32746  // SetKey sets the Key field's value.
 32747  func (s *Tag) SetKey(v string) *Tag {
 32748  	s.Key = &v
 32749  	return s
 32750  }
 32751  
 32752  // SetValue sets the Value field's value.
 32753  func (s *Tag) SetValue(v string) *Tag {
 32754  	s.Value = &v
 32755  	return s
 32756  }
 32757  
 32758  // A tag and its associated resource.
 32759  type 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".
 32801  func (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".
 32810  func (s TaggedResource) GoString() string {
 32811  	return s.String()
 32812  }
 32813  
 32814  // SetResourceName sets the ResourceName field's value.
 32815  func (s *TaggedResource) SetResourceName(v string) *TaggedResource {
 32816  	s.ResourceName = &v
 32817  	return s
 32818  }
 32819  
 32820  // SetResourceType sets the ResourceType field's value.
 32821  func (s *TaggedResource) SetResourceType(v string) *TaggedResource {
 32822  	s.ResourceType = &v
 32823  	return s
 32824  }
 32825  
 32826  // SetTag sets the Tag field's value.
 32827  func (s *TaggedResource) SetTag(v *Tag) *TaggedResource {
 32828  	s.Tag = v
 32829  	return s
 32830  }
 32831  
 32832  type 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".
 32870  func (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".
 32879  func (s UpdatePartnerStatusInput) GoString() string {
 32880  	return s.String()
 32881  }
 32882  
 32883  // Validate inspects the fields of the type to determine if they are valid.
 32884  func (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.
 32912  func (s *UpdatePartnerStatusInput) SetAccountId(v string) *UpdatePartnerStatusInput {
 32913  	s.AccountId = &v
 32914  	return s
 32915  }
 32916  
 32917  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 32918  func (s *UpdatePartnerStatusInput) SetClusterIdentifier(v string) *UpdatePartnerStatusInput {
 32919  	s.ClusterIdentifier = &v
 32920  	return s
 32921  }
 32922  
 32923  // SetDatabaseName sets the DatabaseName field's value.
 32924  func (s *UpdatePartnerStatusInput) SetDatabaseName(v string) *UpdatePartnerStatusInput {
 32925  	s.DatabaseName = &v
 32926  	return s
 32927  }
 32928  
 32929  // SetPartnerName sets the PartnerName field's value.
 32930  func (s *UpdatePartnerStatusInput) SetPartnerName(v string) *UpdatePartnerStatusInput {
 32931  	s.PartnerName = &v
 32932  	return s
 32933  }
 32934  
 32935  // SetStatus sets the Status field's value.
 32936  func (s *UpdatePartnerStatusInput) SetStatus(v string) *UpdatePartnerStatusInput {
 32937  	s.Status = &v
 32938  	return s
 32939  }
 32940  
 32941  // SetStatusMessage sets the StatusMessage field's value.
 32942  func (s *UpdatePartnerStatusInput) SetStatusMessage(v string) *UpdatePartnerStatusInput {
 32943  	s.StatusMessage = &v
 32944  	return s
 32945  }
 32946  
 32947  type 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".
 32962  func (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".
 32971  func (s UpdatePartnerStatusOutput) GoString() string {
 32972  	return s.String()
 32973  }
 32974  
 32975  // SetDatabaseName sets the DatabaseName field's value.
 32976  func (s *UpdatePartnerStatusOutput) SetDatabaseName(v string) *UpdatePartnerStatusOutput {
 32977  	s.DatabaseName = &v
 32978  	return s
 32979  }
 32980  
 32981  // SetPartnerName sets the PartnerName field's value.
 32982  func (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.
 32988  type 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".
 33006  func (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".
 33015  func (s UpdateTarget) GoString() string {
 33016  	return s.String()
 33017  }
 33018  
 33019  // SetDatabaseVersion sets the DatabaseVersion field's value.
 33020  func (s *UpdateTarget) SetDatabaseVersion(v string) *UpdateTarget {
 33021  	s.DatabaseVersion = &v
 33022  	return s
 33023  }
 33024  
 33025  // SetMaintenanceTrackName sets the MaintenanceTrackName field's value.
 33026  func (s *UpdateTarget) SetMaintenanceTrackName(v string) *UpdateTarget {
 33027  	s.MaintenanceTrackName = &v
 33028  	return s
 33029  }
 33030  
 33031  // SetSupportedOperations sets the SupportedOperations field's value.
 33032  func (s *UpdateTarget) SetSupportedOperations(v []*SupportedOperation) *UpdateTarget {
 33033  	s.SupportedOperations = v
 33034  	return s
 33035  }
 33036  
 33037  // Describes a usage limit object for a cluster.
 33038  type 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".
 33081  func (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".
 33090  func (s UsageLimit) GoString() string {
 33091  	return s.String()
 33092  }
 33093  
 33094  // SetAmount sets the Amount field's value.
 33095  func (s *UsageLimit) SetAmount(v int64) *UsageLimit {
 33096  	s.Amount = &v
 33097  	return s
 33098  }
 33099  
 33100  // SetBreachAction sets the BreachAction field's value.
 33101  func (s *UsageLimit) SetBreachAction(v string) *UsageLimit {
 33102  	s.BreachAction = &v
 33103  	return s
 33104  }
 33105  
 33106  // SetClusterIdentifier sets the ClusterIdentifier field's value.
 33107  func (s *UsageLimit) SetClusterIdentifier(v string) *UsageLimit {
 33108  	s.ClusterIdentifier = &v
 33109  	return s
 33110  }
 33111  
 33112  // SetFeatureType sets the FeatureType field's value.
 33113  func (s *UsageLimit) SetFeatureType(v string) *UsageLimit {
 33114  	s.FeatureType = &v
 33115  	return s
 33116  }
 33117  
 33118  // SetLimitType sets the LimitType field's value.
 33119  func (s *UsageLimit) SetLimitType(v string) *UsageLimit {
 33120  	s.LimitType = &v
 33121  	return s
 33122  }
 33123  
 33124  // SetPeriod sets the Period field's value.
 33125  func (s *UsageLimit) SetPeriod(v string) *UsageLimit {
 33126  	s.Period = &v
 33127  	return s
 33128  }
 33129  
 33130  // SetTags sets the Tags field's value.
 33131  func (s *UsageLimit) SetTags(v []*Tag) *UsageLimit {
 33132  	s.Tags = v
 33133  	return s
 33134  }
 33135  
 33136  // SetUsageLimitId sets the UsageLimitId field's value.
 33137  func (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.
 33144  type 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".
 33164  func (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".
 33173  func (s VpcEndpoint) GoString() string {
 33174  	return s.String()
 33175  }
 33176  
 33177  // SetNetworkInterfaces sets the NetworkInterfaces field's value.
 33178  func (s *VpcEndpoint) SetNetworkInterfaces(v []*NetworkInterface) *VpcEndpoint {
 33179  	s.NetworkInterfaces = v
 33180  	return s
 33181  }
 33182  
 33183  // SetVpcEndpointId sets the VpcEndpointId field's value.
 33184  func (s *VpcEndpoint) SetVpcEndpointId(v string) *VpcEndpoint {
 33185  	s.VpcEndpointId = &v
 33186  	return s
 33187  }
 33188  
 33189  // SetVpcId sets the VpcId field's value.
 33190  func (s *VpcEndpoint) SetVpcId(v string) *VpcEndpoint {
 33191  	s.VpcId = &v
 33192  	return s
 33193  }
 33194  
 33195  // Describes the members of a VPC security group.
 33196  type 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".
 33211  func (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".
 33220  func (s VpcSecurityGroupMembership) GoString() string {
 33221  	return s.String()
 33222  }
 33223  
 33224  // SetStatus sets the Status field's value.
 33225  func (s *VpcSecurityGroupMembership) SetStatus(v string) *VpcSecurityGroupMembership {
 33226  	s.Status = &v
 33227  	return s
 33228  }
 33229  
 33230  // SetVpcSecurityGroupId sets the VpcSecurityGroupId field's value.
 33231  func (s *VpcSecurityGroupMembership) SetVpcSecurityGroupId(v string) *VpcSecurityGroupMembership {
 33232  	s.VpcSecurityGroupId = &v
 33233  	return s
 33234  }
 33235  
 33236  const (
 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
 33248  func ActionType_Values() []string {
 33249  	return []string{
 33250  		ActionTypeRestoreCluster,
 33251  		ActionTypeRecommendNodeConfig,
 33252  		ActionTypeResizeCluster,
 33253  	}
 33254  }
 33255  
 33256  const (
 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
 33268  func AquaConfigurationStatus_Values() []string {
 33269  	return []string{
 33270  		AquaConfigurationStatusEnabled,
 33271  		AquaConfigurationStatusDisabled,
 33272  		AquaConfigurationStatusAuto,
 33273  	}
 33274  }
 33275  
 33276  const (
 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
 33288  func AquaStatus_Values() []string {
 33289  	return []string{
 33290  		AquaStatusEnabled,
 33291  		AquaStatusDisabled,
 33292  		AquaStatusApplying,
 33293  	}
 33294  }
 33295  
 33296  const (
 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
 33305  func AuthorizationStatus_Values() []string {
 33306  	return []string{
 33307  		AuthorizationStatusAuthorized,
 33308  		AuthorizationStatusRevoking,
 33309  	}
 33310  }
 33311  
 33312  const (
 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
 33333  func DataShareStatus_Values() []string {
 33334  	return []string{
 33335  		DataShareStatusActive,
 33336  		DataShareStatusPendingAuthorization,
 33337  		DataShareStatusAuthorized,
 33338  		DataShareStatusDeauthorized,
 33339  		DataShareStatusRejected,
 33340  		DataShareStatusAvailable,
 33341  	}
 33342  }
 33343  
 33344  const (
 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
 33353  func DataShareStatusForConsumer_Values() []string {
 33354  	return []string{
 33355  		DataShareStatusForConsumerActive,
 33356  		DataShareStatusForConsumerAvailable,
 33357  	}
 33358  }
 33359  
 33360  const (
 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
 33378  func DataShareStatusForProducer_Values() []string {
 33379  	return []string{
 33380  		DataShareStatusForProducerActive,
 33381  		DataShareStatusForProducerAuthorized,
 33382  		DataShareStatusForProducerPendingAuthorization,
 33383  		DataShareStatusForProducerDeauthorized,
 33384  		DataShareStatusForProducerRejected,
 33385  	}
 33386  }
 33387  
 33388  const (
 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
 33397  func Mode_Values() []string {
 33398  	return []string{
 33399  		ModeStandard,
 33400  		ModeHighPerformance,
 33401  	}
 33402  }
 33403  
 33404  const (
 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
 33419  func NodeConfigurationOptionsFilterName_Values() []string {
 33420  	return []string{
 33421  		NodeConfigurationOptionsFilterNameNodeType,
 33422  		NodeConfigurationOptionsFilterNameNumberOfNodes,
 33423  		NodeConfigurationOptionsFilterNameEstimatedDiskUtilizationPercent,
 33424  		NodeConfigurationOptionsFilterNameMode,
 33425  	}
 33426  }
 33427  
 33428  const (
 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
 33452  func OperatorType_Values() []string {
 33453  	return []string{
 33454  		OperatorTypeEq,
 33455  		OperatorTypeLt,
 33456  		OperatorTypeGt,
 33457  		OperatorTypeLe,
 33458  		OperatorTypeGe,
 33459  		OperatorTypeIn,
 33460  		OperatorTypeBetween,
 33461  	}
 33462  }
 33463  
 33464  const (
 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
 33473  func ParameterApplyType_Values() []string {
 33474  	return []string{
 33475  		ParameterApplyTypeStatic,
 33476  		ParameterApplyTypeDynamic,
 33477  	}
 33478  }
 33479  
 33480  const (
 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
 33495  func PartnerIntegrationStatus_Values() []string {
 33496  	return []string{
 33497  		PartnerIntegrationStatusActive,
 33498  		PartnerIntegrationStatusInactive,
 33499  		PartnerIntegrationStatusRuntimeFailure,
 33500  		PartnerIntegrationStatusConnectionFailure,
 33501  	}
 33502  }
 33503  
 33504  const (
 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
 33513  func ReservedNodeOfferingType_Values() []string {
 33514  	return []string{
 33515  		ReservedNodeOfferingTypeRegular,
 33516  		ReservedNodeOfferingTypeUpgradable,
 33517  	}
 33518  }
 33519  
 33520  const (
 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
 33532  func ScheduleState_Values() []string {
 33533  	return []string{
 33534  		ScheduleStateModifying,
 33535  		ScheduleStateActive,
 33536  		ScheduleStateFailed,
 33537  	}
 33538  }
 33539  
 33540  const (
 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
 33549  func ScheduledActionFilterName_Values() []string {
 33550  	return []string{
 33551  		ScheduledActionFilterNameClusterIdentifier,
 33552  		ScheduledActionFilterNameIamRole,
 33553  	}
 33554  }
 33555  
 33556  const (
 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
 33565  func ScheduledActionState_Values() []string {
 33566  	return []string{
 33567  		ScheduledActionStateActive,
 33568  		ScheduledActionStateDisabled,
 33569  	}
 33570  }
 33571  
 33572  const (
 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
 33584  func ScheduledActionTypeValues_Values() []string {
 33585  	return []string{
 33586  		ScheduledActionTypeValuesResizeCluster,
 33587  		ScheduledActionTypeValuesPauseCluster,
 33588  		ScheduledActionTypeValuesResumeCluster,
 33589  	}
 33590  }
 33591  
 33592  const (
 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
 33604  func SnapshotAttributeToSortBy_Values() []string {
 33605  	return []string{
 33606  		SnapshotAttributeToSortBySourceType,
 33607  		SnapshotAttributeToSortByTotalSize,
 33608  		SnapshotAttributeToSortByCreateTime,
 33609  	}
 33610  }
 33611  
 33612  const (
 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
 33621  func SortByOrder_Values() []string {
 33622  	return []string{
 33623  		SortByOrderAsc,
 33624  		SortByOrderDesc,
 33625  	}
 33626  }
 33627  
 33628  const (
 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
 33646  func SourceType_Values() []string {
 33647  	return []string{
 33648  		SourceTypeCluster,
 33649  		SourceTypeClusterParameterGroup,
 33650  		SourceTypeClusterSecurityGroup,
 33651  		SourceTypeClusterSnapshot,
 33652  		SourceTypeScheduledAction,
 33653  	}
 33654  }
 33655  
 33656  const (
 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
 33674  func TableRestoreStatusType_Values() []string {
 33675  	return []string{
 33676  		TableRestoreStatusTypePending,
 33677  		TableRestoreStatusTypeInProgress,
 33678  		TableRestoreStatusTypeSucceeded,
 33679  		TableRestoreStatusTypeFailed,
 33680  		TableRestoreStatusTypeCanceled,
 33681  	}
 33682  }
 33683  
 33684  const (
 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
 33696  func UsageLimitBreachAction_Values() []string {
 33697  	return []string{
 33698  		UsageLimitBreachActionLog,
 33699  		UsageLimitBreachActionEmitMetric,
 33700  		UsageLimitBreachActionDisable,
 33701  	}
 33702  }
 33703  
 33704  const (
 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
 33713  func UsageLimitFeatureType_Values() []string {
 33714  	return []string{
 33715  		UsageLimitFeatureTypeSpectrum,
 33716  		UsageLimitFeatureTypeConcurrencyScaling,
 33717  	}
 33718  }
 33719  
 33720  const (
 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
 33729  func UsageLimitLimitType_Values() []string {
 33730  	return []string{
 33731  		UsageLimitLimitTypeTime,
 33732  		UsageLimitLimitTypeDataScanned,
 33733  	}
 33734  }
 33735  
 33736  const (
 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
 33748  func UsageLimitPeriod_Values() []string {
 33749  	return []string{
 33750  		UsageLimitPeriodDaily,
 33751  		UsageLimitPeriodWeekly,
 33752  		UsageLimitPeriodMonthly,
 33753  	}
 33754  }