/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Redshift { namespace Model { /** *

See Also:

AWS * API Reference

*/ class ModifyClusterRequest : public RedshiftRequest { public: AWS_REDSHIFT_API ModifyClusterRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "ModifyCluster"; } AWS_REDSHIFT_API Aws::String SerializePayload() const override; protected: AWS_REDSHIFT_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The unique identifier of the cluster to be modified.

Example: * examplecluster

*/ inline const Aws::String& GetClusterIdentifier() const{ return m_clusterIdentifier; } /** *

The unique identifier of the cluster to be modified.

Example: * examplecluster

*/ inline bool ClusterIdentifierHasBeenSet() const { return m_clusterIdentifierHasBeenSet; } /** *

The unique identifier of the cluster to be modified.

Example: * examplecluster

*/ inline void SetClusterIdentifier(const Aws::String& value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier = value; } /** *

The unique identifier of the cluster to be modified.

Example: * examplecluster

*/ inline void SetClusterIdentifier(Aws::String&& value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier = std::move(value); } /** *

The unique identifier of the cluster to be modified.

Example: * examplecluster

*/ inline void SetClusterIdentifier(const char* value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier.assign(value); } /** *

The unique identifier of the cluster to be modified.

Example: * examplecluster

*/ inline ModifyClusterRequest& WithClusterIdentifier(const Aws::String& value) { SetClusterIdentifier(value); return *this;} /** *

The unique identifier of the cluster to be modified.

Example: * examplecluster

*/ inline ModifyClusterRequest& WithClusterIdentifier(Aws::String&& value) { SetClusterIdentifier(std::move(value)); return *this;} /** *

The unique identifier of the cluster to be modified.

Example: * examplecluster

*/ inline ModifyClusterRequest& WithClusterIdentifier(const char* value) { SetClusterIdentifier(value); return *this;} /** *

The new cluster type.

When you submit your cluster resize request, * your existing cluster goes into a read-only mode. After Amazon Redshift * provisions a new cluster based on your resize requirements, there will be outage * for a period while the old cluster is deleted and your connection is switched to * the new cluster. You can use DescribeResize to track the progress of the * resize request.

Valid Values: multi-node | single-node *

*/ inline const Aws::String& GetClusterType() const{ return m_clusterType; } /** *

The new cluster type.

When you submit your cluster resize request, * your existing cluster goes into a read-only mode. After Amazon Redshift * provisions a new cluster based on your resize requirements, there will be outage * for a period while the old cluster is deleted and your connection is switched to * the new cluster. You can use DescribeResize to track the progress of the * resize request.

Valid Values: multi-node | single-node *

*/ inline bool ClusterTypeHasBeenSet() const { return m_clusterTypeHasBeenSet; } /** *

The new cluster type.

When you submit your cluster resize request, * your existing cluster goes into a read-only mode. After Amazon Redshift * provisions a new cluster based on your resize requirements, there will be outage * for a period while the old cluster is deleted and your connection is switched to * the new cluster. You can use DescribeResize to track the progress of the * resize request.

Valid Values: multi-node | single-node *

*/ inline void SetClusterType(const Aws::String& value) { m_clusterTypeHasBeenSet = true; m_clusterType = value; } /** *

The new cluster type.

When you submit your cluster resize request, * your existing cluster goes into a read-only mode. After Amazon Redshift * provisions a new cluster based on your resize requirements, there will be outage * for a period while the old cluster is deleted and your connection is switched to * the new cluster. You can use DescribeResize to track the progress of the * resize request.

Valid Values: multi-node | single-node *

*/ inline void SetClusterType(Aws::String&& value) { m_clusterTypeHasBeenSet = true; m_clusterType = std::move(value); } /** *

The new cluster type.

When you submit your cluster resize request, * your existing cluster goes into a read-only mode. After Amazon Redshift * provisions a new cluster based on your resize requirements, there will be outage * for a period while the old cluster is deleted and your connection is switched to * the new cluster. You can use DescribeResize to track the progress of the * resize request.

Valid Values: multi-node | single-node *

*/ inline void SetClusterType(const char* value) { m_clusterTypeHasBeenSet = true; m_clusterType.assign(value); } /** *

The new cluster type.

When you submit your cluster resize request, * your existing cluster goes into a read-only mode. After Amazon Redshift * provisions a new cluster based on your resize requirements, there will be outage * for a period while the old cluster is deleted and your connection is switched to * the new cluster. You can use DescribeResize to track the progress of the * resize request.

Valid Values: multi-node | single-node *

*/ inline ModifyClusterRequest& WithClusterType(const Aws::String& value) { SetClusterType(value); return *this;} /** *

The new cluster type.

When you submit your cluster resize request, * your existing cluster goes into a read-only mode. After Amazon Redshift * provisions a new cluster based on your resize requirements, there will be outage * for a period while the old cluster is deleted and your connection is switched to * the new cluster. You can use DescribeResize to track the progress of the * resize request.

Valid Values: multi-node | single-node *

*/ inline ModifyClusterRequest& WithClusterType(Aws::String&& value) { SetClusterType(std::move(value)); return *this;} /** *

The new cluster type.

When you submit your cluster resize request, * your existing cluster goes into a read-only mode. After Amazon Redshift * provisions a new cluster based on your resize requirements, there will be outage * for a period while the old cluster is deleted and your connection is switched to * the new cluster. You can use DescribeResize to track the progress of the * resize request.

Valid Values: multi-node | single-node *

*/ inline ModifyClusterRequest& WithClusterType(const char* value) { SetClusterType(value); return *this;} /** *

The new node type of the cluster. If you specify a new node type, you must * also specify the number of nodes parameter.

For more information about * resizing clusters, go to Resizing * Clusters in Amazon Redshift in the Amazon Redshift Cluster Management * Guide.

Valid Values: ds2.xlarge | * ds2.8xlarge | dc1.large | dc1.8xlarge | * dc2.large | dc2.8xlarge | ra3.xlplus | * ra3.4xlarge | ra3.16xlarge

*/ inline const Aws::String& GetNodeType() const{ return m_nodeType; } /** *

The new node type of the cluster. If you specify a new node type, you must * also specify the number of nodes parameter.

For more information about * resizing clusters, go to Resizing * Clusters in Amazon Redshift in the Amazon Redshift Cluster Management * Guide.

Valid Values: ds2.xlarge | * ds2.8xlarge | dc1.large | dc1.8xlarge | * dc2.large | dc2.8xlarge | ra3.xlplus | * ra3.4xlarge | ra3.16xlarge

*/ inline bool NodeTypeHasBeenSet() const { return m_nodeTypeHasBeenSet; } /** *

The new node type of the cluster. If you specify a new node type, you must * also specify the number of nodes parameter.

For more information about * resizing clusters, go to Resizing * Clusters in Amazon Redshift in the Amazon Redshift Cluster Management * Guide.

Valid Values: ds2.xlarge | * ds2.8xlarge | dc1.large | dc1.8xlarge | * dc2.large | dc2.8xlarge | ra3.xlplus | * ra3.4xlarge | ra3.16xlarge

*/ inline void SetNodeType(const Aws::String& value) { m_nodeTypeHasBeenSet = true; m_nodeType = value; } /** *

The new node type of the cluster. If you specify a new node type, you must * also specify the number of nodes parameter.

For more information about * resizing clusters, go to Resizing * Clusters in Amazon Redshift in the Amazon Redshift Cluster Management * Guide.

Valid Values: ds2.xlarge | * ds2.8xlarge | dc1.large | dc1.8xlarge | * dc2.large | dc2.8xlarge | ra3.xlplus | * ra3.4xlarge | ra3.16xlarge

*/ inline void SetNodeType(Aws::String&& value) { m_nodeTypeHasBeenSet = true; m_nodeType = std::move(value); } /** *

The new node type of the cluster. If you specify a new node type, you must * also specify the number of nodes parameter.

For more information about * resizing clusters, go to Resizing * Clusters in Amazon Redshift in the Amazon Redshift Cluster Management * Guide.

Valid Values: ds2.xlarge | * ds2.8xlarge | dc1.large | dc1.8xlarge | * dc2.large | dc2.8xlarge | ra3.xlplus | * ra3.4xlarge | ra3.16xlarge

*/ inline void SetNodeType(const char* value) { m_nodeTypeHasBeenSet = true; m_nodeType.assign(value); } /** *

The new node type of the cluster. If you specify a new node type, you must * also specify the number of nodes parameter.

For more information about * resizing clusters, go to Resizing * Clusters in Amazon Redshift in the Amazon Redshift Cluster Management * Guide.

Valid Values: ds2.xlarge | * ds2.8xlarge | dc1.large | dc1.8xlarge | * dc2.large | dc2.8xlarge | ra3.xlplus | * ra3.4xlarge | ra3.16xlarge

*/ inline ModifyClusterRequest& WithNodeType(const Aws::String& value) { SetNodeType(value); return *this;} /** *

The new node type of the cluster. If you specify a new node type, you must * also specify the number of nodes parameter.

For more information about * resizing clusters, go to Resizing * Clusters in Amazon Redshift in the Amazon Redshift Cluster Management * Guide.

Valid Values: ds2.xlarge | * ds2.8xlarge | dc1.large | dc1.8xlarge | * dc2.large | dc2.8xlarge | ra3.xlplus | * ra3.4xlarge | ra3.16xlarge

*/ inline ModifyClusterRequest& WithNodeType(Aws::String&& value) { SetNodeType(std::move(value)); return *this;} /** *

The new node type of the cluster. If you specify a new node type, you must * also specify the number of nodes parameter.

For more information about * resizing clusters, go to Resizing * Clusters in Amazon Redshift in the Amazon Redshift Cluster Management * Guide.

Valid Values: ds2.xlarge | * ds2.8xlarge | dc1.large | dc1.8xlarge | * dc2.large | dc2.8xlarge | ra3.xlplus | * ra3.4xlarge | ra3.16xlarge

*/ inline ModifyClusterRequest& WithNodeType(const char* value) { SetNodeType(value); return *this;} /** *

The new number of nodes of the cluster. If you specify a new number of nodes, * you must also specify the node type parameter.

For more information * about resizing clusters, go to Resizing * Clusters in Amazon Redshift in the Amazon Redshift Cluster Management * Guide.

Valid Values: Integer greater than 0.

*/ inline int GetNumberOfNodes() const{ return m_numberOfNodes; } /** *

The new number of nodes of the cluster. If you specify a new number of nodes, * you must also specify the node type parameter.

For more information * about resizing clusters, go to Resizing * Clusters in Amazon Redshift in the Amazon Redshift Cluster Management * Guide.

Valid Values: Integer greater than 0.

*/ inline bool NumberOfNodesHasBeenSet() const { return m_numberOfNodesHasBeenSet; } /** *

The new number of nodes of the cluster. If you specify a new number of nodes, * you must also specify the node type parameter.

For more information * about resizing clusters, go to Resizing * Clusters in Amazon Redshift in the Amazon Redshift Cluster Management * Guide.

Valid Values: Integer greater than 0.

*/ inline void SetNumberOfNodes(int value) { m_numberOfNodesHasBeenSet = true; m_numberOfNodes = value; } /** *

The new number of nodes of the cluster. If you specify a new number of nodes, * you must also specify the node type parameter.

For more information * about resizing clusters, go to Resizing * Clusters in Amazon Redshift in the Amazon Redshift Cluster Management * Guide.

Valid Values: Integer greater than 0.

*/ inline ModifyClusterRequest& WithNumberOfNodes(int value) { SetNumberOfNodes(value); return *this;} /** *

A list of cluster security groups to be authorized on this cluster. This * change is asynchronously applied as soon as possible.

Security groups * currently associated with the cluster, and not in the list of groups to apply, * will be revoked from the cluster.

Constraints:

  • Must be 1 * to 255 alphanumeric characters or hyphens

  • First character must * be a letter

  • Cannot end with a hyphen or contain two * consecutive hyphens

*/ inline const Aws::Vector& GetClusterSecurityGroups() const{ return m_clusterSecurityGroups; } /** *

A list of cluster security groups to be authorized on this cluster. This * change is asynchronously applied as soon as possible.

Security groups * currently associated with the cluster, and not in the list of groups to apply, * will be revoked from the cluster.

Constraints:

  • Must be 1 * to 255 alphanumeric characters or hyphens

  • First character must * be a letter

  • Cannot end with a hyphen or contain two * consecutive hyphens

*/ inline bool ClusterSecurityGroupsHasBeenSet() const { return m_clusterSecurityGroupsHasBeenSet; } /** *

A list of cluster security groups to be authorized on this cluster. This * change is asynchronously applied as soon as possible.

Security groups * currently associated with the cluster, and not in the list of groups to apply, * will be revoked from the cluster.

Constraints:

  • Must be 1 * to 255 alphanumeric characters or hyphens

  • First character must * be a letter

  • Cannot end with a hyphen or contain two * consecutive hyphens

*/ inline void SetClusterSecurityGroups(const Aws::Vector& value) { m_clusterSecurityGroupsHasBeenSet = true; m_clusterSecurityGroups = value; } /** *

A list of cluster security groups to be authorized on this cluster. This * change is asynchronously applied as soon as possible.

Security groups * currently associated with the cluster, and not in the list of groups to apply, * will be revoked from the cluster.

Constraints:

  • Must be 1 * to 255 alphanumeric characters or hyphens

  • First character must * be a letter

  • Cannot end with a hyphen or contain two * consecutive hyphens

*/ inline void SetClusterSecurityGroups(Aws::Vector&& value) { m_clusterSecurityGroupsHasBeenSet = true; m_clusterSecurityGroups = std::move(value); } /** *

A list of cluster security groups to be authorized on this cluster. This * change is asynchronously applied as soon as possible.

Security groups * currently associated with the cluster, and not in the list of groups to apply, * will be revoked from the cluster.

Constraints:

  • Must be 1 * to 255 alphanumeric characters or hyphens

  • First character must * be a letter

  • Cannot end with a hyphen or contain two * consecutive hyphens

*/ inline ModifyClusterRequest& WithClusterSecurityGroups(const Aws::Vector& value) { SetClusterSecurityGroups(value); return *this;} /** *

A list of cluster security groups to be authorized on this cluster. This * change is asynchronously applied as soon as possible.

Security groups * currently associated with the cluster, and not in the list of groups to apply, * will be revoked from the cluster.

Constraints:

  • Must be 1 * to 255 alphanumeric characters or hyphens

  • First character must * be a letter

  • Cannot end with a hyphen or contain two * consecutive hyphens

*/ inline ModifyClusterRequest& WithClusterSecurityGroups(Aws::Vector&& value) { SetClusterSecurityGroups(std::move(value)); return *this;} /** *

A list of cluster security groups to be authorized on this cluster. This * change is asynchronously applied as soon as possible.

Security groups * currently associated with the cluster, and not in the list of groups to apply, * will be revoked from the cluster.

Constraints:

  • Must be 1 * to 255 alphanumeric characters or hyphens

  • First character must * be a letter

  • Cannot end with a hyphen or contain two * consecutive hyphens

*/ inline ModifyClusterRequest& AddClusterSecurityGroups(const Aws::String& value) { m_clusterSecurityGroupsHasBeenSet = true; m_clusterSecurityGroups.push_back(value); return *this; } /** *

A list of cluster security groups to be authorized on this cluster. This * change is asynchronously applied as soon as possible.

Security groups * currently associated with the cluster, and not in the list of groups to apply, * will be revoked from the cluster.

Constraints:

  • Must be 1 * to 255 alphanumeric characters or hyphens

  • First character must * be a letter

  • Cannot end with a hyphen or contain two * consecutive hyphens

*/ inline ModifyClusterRequest& AddClusterSecurityGroups(Aws::String&& value) { m_clusterSecurityGroupsHasBeenSet = true; m_clusterSecurityGroups.push_back(std::move(value)); return *this; } /** *

A list of cluster security groups to be authorized on this cluster. This * change is asynchronously applied as soon as possible.

Security groups * currently associated with the cluster, and not in the list of groups to apply, * will be revoked from the cluster.

Constraints:

  • Must be 1 * to 255 alphanumeric characters or hyphens

  • First character must * be a letter

  • Cannot end with a hyphen or contain two * consecutive hyphens

*/ inline ModifyClusterRequest& AddClusterSecurityGroups(const char* value) { m_clusterSecurityGroupsHasBeenSet = true; m_clusterSecurityGroups.push_back(value); return *this; } /** *

A list of virtual private cloud (VPC) security groups to be associated with * the cluster. This change is asynchronously applied as soon as possible.

*/ inline const Aws::Vector& GetVpcSecurityGroupIds() const{ return m_vpcSecurityGroupIds; } /** *

A list of virtual private cloud (VPC) security groups to be associated with * the cluster. This change is asynchronously applied as soon as possible.

*/ inline bool VpcSecurityGroupIdsHasBeenSet() const { return m_vpcSecurityGroupIdsHasBeenSet; } /** *

A list of virtual private cloud (VPC) security groups to be associated with * the cluster. This change is asynchronously applied as soon as possible.

*/ inline void SetVpcSecurityGroupIds(const Aws::Vector& value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds = value; } /** *

A list of virtual private cloud (VPC) security groups to be associated with * the cluster. This change is asynchronously applied as soon as possible.

*/ inline void SetVpcSecurityGroupIds(Aws::Vector&& value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds = std::move(value); } /** *

A list of virtual private cloud (VPC) security groups to be associated with * the cluster. This change is asynchronously applied as soon as possible.

*/ inline ModifyClusterRequest& WithVpcSecurityGroupIds(const Aws::Vector& value) { SetVpcSecurityGroupIds(value); return *this;} /** *

A list of virtual private cloud (VPC) security groups to be associated with * the cluster. This change is asynchronously applied as soon as possible.

*/ inline ModifyClusterRequest& WithVpcSecurityGroupIds(Aws::Vector&& value) { SetVpcSecurityGroupIds(std::move(value)); return *this;} /** *

A list of virtual private cloud (VPC) security groups to be associated with * the cluster. This change is asynchronously applied as soon as possible.

*/ inline ModifyClusterRequest& AddVpcSecurityGroupIds(const Aws::String& value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds.push_back(value); return *this; } /** *

A list of virtual private cloud (VPC) security groups to be associated with * the cluster. This change is asynchronously applied as soon as possible.

*/ inline ModifyClusterRequest& AddVpcSecurityGroupIds(Aws::String&& value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds.push_back(std::move(value)); return *this; } /** *

A list of virtual private cloud (VPC) security groups to be associated with * the cluster. This change is asynchronously applied as soon as possible.

*/ inline ModifyClusterRequest& AddVpcSecurityGroupIds(const char* value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds.push_back(value); return *this; } /** *

The new password for the cluster admin user. This change is asynchronously * applied as soon as possible. Between the time of the request and the completion * of the request, the MasterUserPassword element exists in the * PendingModifiedValues element of the operation response.

*

Operations never return the password, so this operation provides a way * to regain access to the admin user account for a cluster if the password is * lost.

Default: Uses existing setting.

Constraints:

*
  • Must be between 8 and 64 characters in length.

  • *

    Must contain at least one uppercase letter.

  • Must contain at * least one lowercase letter.

  • Must contain one number.

  • *
  • Can be any printable ASCII character (ASCII code 33-126) except * ' (single quote), " (double quote), \, * /, or @.

*/ inline const Aws::String& GetMasterUserPassword() const{ return m_masterUserPassword; } /** *

The new password for the cluster admin user. This change is asynchronously * applied as soon as possible. Between the time of the request and the completion * of the request, the MasterUserPassword element exists in the * PendingModifiedValues element of the operation response.

*

Operations never return the password, so this operation provides a way * to regain access to the admin user account for a cluster if the password is * lost.

Default: Uses existing setting.

Constraints:

*
  • Must be between 8 and 64 characters in length.

  • *

    Must contain at least one uppercase letter.

  • Must contain at * least one lowercase letter.

  • Must contain one number.

  • *
  • Can be any printable ASCII character (ASCII code 33-126) except * ' (single quote), " (double quote), \, * /, or @.

*/ inline bool MasterUserPasswordHasBeenSet() const { return m_masterUserPasswordHasBeenSet; } /** *

The new password for the cluster admin user. This change is asynchronously * applied as soon as possible. Between the time of the request and the completion * of the request, the MasterUserPassword element exists in the * PendingModifiedValues element of the operation response.

*

Operations never return the password, so this operation provides a way * to regain access to the admin user account for a cluster if the password is * lost.

Default: Uses existing setting.

Constraints:

*
  • Must be between 8 and 64 characters in length.

  • *

    Must contain at least one uppercase letter.

  • Must contain at * least one lowercase letter.

  • Must contain one number.

  • *
  • Can be any printable ASCII character (ASCII code 33-126) except * ' (single quote), " (double quote), \, * /, or @.

*/ inline void SetMasterUserPassword(const Aws::String& value) { m_masterUserPasswordHasBeenSet = true; m_masterUserPassword = value; } /** *

The new password for the cluster admin user. This change is asynchronously * applied as soon as possible. Between the time of the request and the completion * of the request, the MasterUserPassword element exists in the * PendingModifiedValues element of the operation response.

*

Operations never return the password, so this operation provides a way * to regain access to the admin user account for a cluster if the password is * lost.

Default: Uses existing setting.

Constraints:

*
  • Must be between 8 and 64 characters in length.

  • *

    Must contain at least one uppercase letter.

  • Must contain at * least one lowercase letter.

  • Must contain one number.

  • *
  • Can be any printable ASCII character (ASCII code 33-126) except * ' (single quote), " (double quote), \, * /, or @.

*/ inline void SetMasterUserPassword(Aws::String&& value) { m_masterUserPasswordHasBeenSet = true; m_masterUserPassword = std::move(value); } /** *

The new password for the cluster admin user. This change is asynchronously * applied as soon as possible. Between the time of the request and the completion * of the request, the MasterUserPassword element exists in the * PendingModifiedValues element of the operation response.

*

Operations never return the password, so this operation provides a way * to regain access to the admin user account for a cluster if the password is * lost.

Default: Uses existing setting.

Constraints:

*
  • Must be between 8 and 64 characters in length.

  • *

    Must contain at least one uppercase letter.

  • Must contain at * least one lowercase letter.

  • Must contain one number.

  • *
  • Can be any printable ASCII character (ASCII code 33-126) except * ' (single quote), " (double quote), \, * /, or @.

*/ inline void SetMasterUserPassword(const char* value) { m_masterUserPasswordHasBeenSet = true; m_masterUserPassword.assign(value); } /** *

The new password for the cluster admin user. This change is asynchronously * applied as soon as possible. Between the time of the request and the completion * of the request, the MasterUserPassword element exists in the * PendingModifiedValues element of the operation response.

*

Operations never return the password, so this operation provides a way * to regain access to the admin user account for a cluster if the password is * lost.

Default: Uses existing setting.

Constraints:

*
  • Must be between 8 and 64 characters in length.

  • *

    Must contain at least one uppercase letter.

  • Must contain at * least one lowercase letter.

  • Must contain one number.

  • *
  • Can be any printable ASCII character (ASCII code 33-126) except * ' (single quote), " (double quote), \, * /, or @.

*/ inline ModifyClusterRequest& WithMasterUserPassword(const Aws::String& value) { SetMasterUserPassword(value); return *this;} /** *

The new password for the cluster admin user. This change is asynchronously * applied as soon as possible. Between the time of the request and the completion * of the request, the MasterUserPassword element exists in the * PendingModifiedValues element of the operation response.

*

Operations never return the password, so this operation provides a way * to regain access to the admin user account for a cluster if the password is * lost.

Default: Uses existing setting.

Constraints:

*
  • Must be between 8 and 64 characters in length.

  • *

    Must contain at least one uppercase letter.

  • Must contain at * least one lowercase letter.

  • Must contain one number.

  • *
  • Can be any printable ASCII character (ASCII code 33-126) except * ' (single quote), " (double quote), \, * /, or @.

*/ inline ModifyClusterRequest& WithMasterUserPassword(Aws::String&& value) { SetMasterUserPassword(std::move(value)); return *this;} /** *

The new password for the cluster admin user. This change is asynchronously * applied as soon as possible. Between the time of the request and the completion * of the request, the MasterUserPassword element exists in the * PendingModifiedValues element of the operation response.

*

Operations never return the password, so this operation provides a way * to regain access to the admin user account for a cluster if the password is * lost.

Default: Uses existing setting.

Constraints:

*
  • Must be between 8 and 64 characters in length.

  • *

    Must contain at least one uppercase letter.

  • Must contain at * least one lowercase letter.

  • Must contain one number.

  • *
  • Can be any printable ASCII character (ASCII code 33-126) except * ' (single quote), " (double quote), \, * /, or @.

*/ inline ModifyClusterRequest& WithMasterUserPassword(const char* value) { SetMasterUserPassword(value); return *this;} /** *

The name of the cluster parameter group to apply to this cluster. This change * is applied only after the cluster is rebooted. To reboot a cluster use * RebootCluster.

Default: Uses existing setting.

*

Constraints: The cluster parameter group must be in the same parameter group * family that matches the cluster version.

*/ inline const Aws::String& GetClusterParameterGroupName() const{ return m_clusterParameterGroupName; } /** *

The name of the cluster parameter group to apply to this cluster. This change * is applied only after the cluster is rebooted. To reboot a cluster use * RebootCluster.

Default: Uses existing setting.

*

Constraints: The cluster parameter group must be in the same parameter group * family that matches the cluster version.

*/ inline bool ClusterParameterGroupNameHasBeenSet() const { return m_clusterParameterGroupNameHasBeenSet; } /** *

The name of the cluster parameter group to apply to this cluster. This change * is applied only after the cluster is rebooted. To reboot a cluster use * RebootCluster.

Default: Uses existing setting.

*

Constraints: The cluster parameter group must be in the same parameter group * family that matches the cluster version.

*/ inline void SetClusterParameterGroupName(const Aws::String& value) { m_clusterParameterGroupNameHasBeenSet = true; m_clusterParameterGroupName = value; } /** *

The name of the cluster parameter group to apply to this cluster. This change * is applied only after the cluster is rebooted. To reboot a cluster use * RebootCluster.

Default: Uses existing setting.

*

Constraints: The cluster parameter group must be in the same parameter group * family that matches the cluster version.

*/ inline void SetClusterParameterGroupName(Aws::String&& value) { m_clusterParameterGroupNameHasBeenSet = true; m_clusterParameterGroupName = std::move(value); } /** *

The name of the cluster parameter group to apply to this cluster. This change * is applied only after the cluster is rebooted. To reboot a cluster use * RebootCluster.

Default: Uses existing setting.

*

Constraints: The cluster parameter group must be in the same parameter group * family that matches the cluster version.

*/ inline void SetClusterParameterGroupName(const char* value) { m_clusterParameterGroupNameHasBeenSet = true; m_clusterParameterGroupName.assign(value); } /** *

The name of the cluster parameter group to apply to this cluster. This change * is applied only after the cluster is rebooted. To reboot a cluster use * RebootCluster.

Default: Uses existing setting.

*

Constraints: The cluster parameter group must be in the same parameter group * family that matches the cluster version.

*/ inline ModifyClusterRequest& WithClusterParameterGroupName(const Aws::String& value) { SetClusterParameterGroupName(value); return *this;} /** *

The name of the cluster parameter group to apply to this cluster. This change * is applied only after the cluster is rebooted. To reboot a cluster use * RebootCluster.

Default: Uses existing setting.

*

Constraints: The cluster parameter group must be in the same parameter group * family that matches the cluster version.

*/ inline ModifyClusterRequest& WithClusterParameterGroupName(Aws::String&& value) { SetClusterParameterGroupName(std::move(value)); return *this;} /** *

The name of the cluster parameter group to apply to this cluster. This change * is applied only after the cluster is rebooted. To reboot a cluster use * RebootCluster.

Default: Uses existing setting.

*

Constraints: The cluster parameter group must be in the same parameter group * family that matches the cluster version.

*/ inline ModifyClusterRequest& WithClusterParameterGroupName(const char* value) { SetClusterParameterGroupName(value); return *this;} /** *

The number of days that automated snapshots are retained. If the value is 0, * automated snapshots are disabled. Even if automated snapshots are disabled, you * can still create manual snapshots when you want with * CreateClusterSnapshot.

If you decrease the automated snapshot * retention period from its current value, existing automated snapshots that fall * outside of the new retention period will be immediately deleted.

You * can't disable automated snapshots for RA3 node types. Set the automated * retention period from 1-35 days.

Default: Uses existing setting.

*

Constraints: Must be a value from 0 to 35.

*/ inline int GetAutomatedSnapshotRetentionPeriod() const{ return m_automatedSnapshotRetentionPeriod; } /** *

The number of days that automated snapshots are retained. If the value is 0, * automated snapshots are disabled. Even if automated snapshots are disabled, you * can still create manual snapshots when you want with * CreateClusterSnapshot.

If you decrease the automated snapshot * retention period from its current value, existing automated snapshots that fall * outside of the new retention period will be immediately deleted.

You * can't disable automated snapshots for RA3 node types. Set the automated * retention period from 1-35 days.

Default: Uses existing setting.

*

Constraints: Must be a value from 0 to 35.

*/ inline bool AutomatedSnapshotRetentionPeriodHasBeenSet() const { return m_automatedSnapshotRetentionPeriodHasBeenSet; } /** *

The number of days that automated snapshots are retained. If the value is 0, * automated snapshots are disabled. Even if automated snapshots are disabled, you * can still create manual snapshots when you want with * CreateClusterSnapshot.

If you decrease the automated snapshot * retention period from its current value, existing automated snapshots that fall * outside of the new retention period will be immediately deleted.

You * can't disable automated snapshots for RA3 node types. Set the automated * retention period from 1-35 days.

Default: Uses existing setting.

*

Constraints: Must be a value from 0 to 35.

*/ inline void SetAutomatedSnapshotRetentionPeriod(int value) { m_automatedSnapshotRetentionPeriodHasBeenSet = true; m_automatedSnapshotRetentionPeriod = value; } /** *

The number of days that automated snapshots are retained. If the value is 0, * automated snapshots are disabled. Even if automated snapshots are disabled, you * can still create manual snapshots when you want with * CreateClusterSnapshot.

If you decrease the automated snapshot * retention period from its current value, existing automated snapshots that fall * outside of the new retention period will be immediately deleted.

You * can't disable automated snapshots for RA3 node types. Set the automated * retention period from 1-35 days.

Default: Uses existing setting.

*

Constraints: Must be a value from 0 to 35.

*/ inline ModifyClusterRequest& WithAutomatedSnapshotRetentionPeriod(int value) { SetAutomatedSnapshotRetentionPeriod(value); return *this;} /** *

The default for number of days that a newly created manual snapshot is * retained. If the value is -1, the manual snapshot is retained indefinitely. This * value doesn't retroactively change the retention periods of existing manual * snapshots.

The value must be either -1 or an integer between 1 and * 3,653.

The default value is -1.

*/ inline int GetManualSnapshotRetentionPeriod() const{ return m_manualSnapshotRetentionPeriod; } /** *

The default for number of days that a newly created manual snapshot is * retained. If the value is -1, the manual snapshot is retained indefinitely. This * value doesn't retroactively change the retention periods of existing manual * snapshots.

The value must be either -1 or an integer between 1 and * 3,653.

The default value is -1.

*/ inline bool ManualSnapshotRetentionPeriodHasBeenSet() const { return m_manualSnapshotRetentionPeriodHasBeenSet; } /** *

The default for number of days that a newly created manual snapshot is * retained. If the value is -1, the manual snapshot is retained indefinitely. This * value doesn't retroactively change the retention periods of existing manual * snapshots.

The value must be either -1 or an integer between 1 and * 3,653.

The default value is -1.

*/ inline void SetManualSnapshotRetentionPeriod(int value) { m_manualSnapshotRetentionPeriodHasBeenSet = true; m_manualSnapshotRetentionPeriod = value; } /** *

The default for number of days that a newly created manual snapshot is * retained. If the value is -1, the manual snapshot is retained indefinitely. This * value doesn't retroactively change the retention periods of existing manual * snapshots.

The value must be either -1 or an integer between 1 and * 3,653.

The default value is -1.

*/ inline ModifyClusterRequest& WithManualSnapshotRetentionPeriod(int value) { SetManualSnapshotRetentionPeriod(value); return *this;} /** *

The weekly time range (in UTC) during which system maintenance can occur, if * necessary. If system maintenance is necessary during the window, it may result * in an outage.

This maintenance window change is made immediately. If the * new maintenance window indicates the current time, there must be at least 120 * minutes between the current time and end of the window in order to ensure that * pending changes are applied.

Default: Uses existing setting.

*

Format: ddd:hh24:mi-ddd:hh24:mi, for example * wed:07:30-wed:08:00.

Valid Days: Mon | Tue | Wed | Thu | Fri * | Sat | Sun

Constraints: Must be at least 30 minutes.

*/ inline const Aws::String& GetPreferredMaintenanceWindow() const{ return m_preferredMaintenanceWindow; } /** *

The weekly time range (in UTC) during which system maintenance can occur, if * necessary. If system maintenance is necessary during the window, it may result * in an outage.

This maintenance window change is made immediately. If the * new maintenance window indicates the current time, there must be at least 120 * minutes between the current time and end of the window in order to ensure that * pending changes are applied.

Default: Uses existing setting.

*

Format: ddd:hh24:mi-ddd:hh24:mi, for example * wed:07:30-wed:08:00.

Valid Days: Mon | Tue | Wed | Thu | Fri * | Sat | Sun

Constraints: Must be at least 30 minutes.

*/ inline bool PreferredMaintenanceWindowHasBeenSet() const { return m_preferredMaintenanceWindowHasBeenSet; } /** *

The weekly time range (in UTC) during which system maintenance can occur, if * necessary. If system maintenance is necessary during the window, it may result * in an outage.

This maintenance window change is made immediately. If the * new maintenance window indicates the current time, there must be at least 120 * minutes between the current time and end of the window in order to ensure that * pending changes are applied.

Default: Uses existing setting.

*

Format: ddd:hh24:mi-ddd:hh24:mi, for example * wed:07:30-wed:08:00.

Valid Days: Mon | Tue | Wed | Thu | Fri * | Sat | Sun

Constraints: Must be at least 30 minutes.

*/ inline void SetPreferredMaintenanceWindow(const Aws::String& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = value; } /** *

The weekly time range (in UTC) during which system maintenance can occur, if * necessary. If system maintenance is necessary during the window, it may result * in an outage.

This maintenance window change is made immediately. If the * new maintenance window indicates the current time, there must be at least 120 * minutes between the current time and end of the window in order to ensure that * pending changes are applied.

Default: Uses existing setting.

*

Format: ddd:hh24:mi-ddd:hh24:mi, for example * wed:07:30-wed:08:00.

Valid Days: Mon | Tue | Wed | Thu | Fri * | Sat | Sun

Constraints: Must be at least 30 minutes.

*/ inline void SetPreferredMaintenanceWindow(Aws::String&& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = std::move(value); } /** *

The weekly time range (in UTC) during which system maintenance can occur, if * necessary. If system maintenance is necessary during the window, it may result * in an outage.

This maintenance window change is made immediately. If the * new maintenance window indicates the current time, there must be at least 120 * minutes between the current time and end of the window in order to ensure that * pending changes are applied.

Default: Uses existing setting.

*

Format: ddd:hh24:mi-ddd:hh24:mi, for example * wed:07:30-wed:08:00.

Valid Days: Mon | Tue | Wed | Thu | Fri * | Sat | Sun

Constraints: Must be at least 30 minutes.

*/ inline void SetPreferredMaintenanceWindow(const char* value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow.assign(value); } /** *

The weekly time range (in UTC) during which system maintenance can occur, if * necessary. If system maintenance is necessary during the window, it may result * in an outage.

This maintenance window change is made immediately. If the * new maintenance window indicates the current time, there must be at least 120 * minutes between the current time and end of the window in order to ensure that * pending changes are applied.

Default: Uses existing setting.

*

Format: ddd:hh24:mi-ddd:hh24:mi, for example * wed:07:30-wed:08:00.

Valid Days: Mon | Tue | Wed | Thu | Fri * | Sat | Sun

Constraints: Must be at least 30 minutes.

*/ inline ModifyClusterRequest& WithPreferredMaintenanceWindow(const Aws::String& value) { SetPreferredMaintenanceWindow(value); return *this;} /** *

The weekly time range (in UTC) during which system maintenance can occur, if * necessary. If system maintenance is necessary during the window, it may result * in an outage.

This maintenance window change is made immediately. If the * new maintenance window indicates the current time, there must be at least 120 * minutes between the current time and end of the window in order to ensure that * pending changes are applied.

Default: Uses existing setting.

*

Format: ddd:hh24:mi-ddd:hh24:mi, for example * wed:07:30-wed:08:00.

Valid Days: Mon | Tue | Wed | Thu | Fri * | Sat | Sun

Constraints: Must be at least 30 minutes.

*/ inline ModifyClusterRequest& WithPreferredMaintenanceWindow(Aws::String&& value) { SetPreferredMaintenanceWindow(std::move(value)); return *this;} /** *

The weekly time range (in UTC) during which system maintenance can occur, if * necessary. If system maintenance is necessary during the window, it may result * in an outage.

This maintenance window change is made immediately. If the * new maintenance window indicates the current time, there must be at least 120 * minutes between the current time and end of the window in order to ensure that * pending changes are applied.

Default: Uses existing setting.

*

Format: ddd:hh24:mi-ddd:hh24:mi, for example * wed:07:30-wed:08:00.

Valid Days: Mon | Tue | Wed | Thu | Fri * | Sat | Sun

Constraints: Must be at least 30 minutes.

*/ inline ModifyClusterRequest& WithPreferredMaintenanceWindow(const char* value) { SetPreferredMaintenanceWindow(value); return *this;} /** *

The new version number of the Amazon Redshift engine to upgrade to.

*

For major version upgrades, if a non-default cluster parameter group is * currently in use, a new cluster parameter group in the cluster parameter group * family for the new version must be specified. The new cluster parameter group * can be the default for that cluster parameter group family. For more information * about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

Example: 1.0

*/ inline const Aws::String& GetClusterVersion() const{ return m_clusterVersion; } /** *

The new version number of the Amazon Redshift engine to upgrade to.

*

For major version upgrades, if a non-default cluster parameter group is * currently in use, a new cluster parameter group in the cluster parameter group * family for the new version must be specified. The new cluster parameter group * can be the default for that cluster parameter group family. For more information * about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

Example: 1.0

*/ inline bool ClusterVersionHasBeenSet() const { return m_clusterVersionHasBeenSet; } /** *

The new version number of the Amazon Redshift engine to upgrade to.

*

For major version upgrades, if a non-default cluster parameter group is * currently in use, a new cluster parameter group in the cluster parameter group * family for the new version must be specified. The new cluster parameter group * can be the default for that cluster parameter group family. For more information * about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

Example: 1.0

*/ inline void SetClusterVersion(const Aws::String& value) { m_clusterVersionHasBeenSet = true; m_clusterVersion = value; } /** *

The new version number of the Amazon Redshift engine to upgrade to.

*

For major version upgrades, if a non-default cluster parameter group is * currently in use, a new cluster parameter group in the cluster parameter group * family for the new version must be specified. The new cluster parameter group * can be the default for that cluster parameter group family. For more information * about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

Example: 1.0

*/ inline void SetClusterVersion(Aws::String&& value) { m_clusterVersionHasBeenSet = true; m_clusterVersion = std::move(value); } /** *

The new version number of the Amazon Redshift engine to upgrade to.

*

For major version upgrades, if a non-default cluster parameter group is * currently in use, a new cluster parameter group in the cluster parameter group * family for the new version must be specified. The new cluster parameter group * can be the default for that cluster parameter group family. For more information * about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

Example: 1.0

*/ inline void SetClusterVersion(const char* value) { m_clusterVersionHasBeenSet = true; m_clusterVersion.assign(value); } /** *

The new version number of the Amazon Redshift engine to upgrade to.

*

For major version upgrades, if a non-default cluster parameter group is * currently in use, a new cluster parameter group in the cluster parameter group * family for the new version must be specified. The new cluster parameter group * can be the default for that cluster parameter group family. For more information * about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

Example: 1.0

*/ inline ModifyClusterRequest& WithClusterVersion(const Aws::String& value) { SetClusterVersion(value); return *this;} /** *

The new version number of the Amazon Redshift engine to upgrade to.

*

For major version upgrades, if a non-default cluster parameter group is * currently in use, a new cluster parameter group in the cluster parameter group * family for the new version must be specified. The new cluster parameter group * can be the default for that cluster parameter group family. For more information * about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

Example: 1.0

*/ inline ModifyClusterRequest& WithClusterVersion(Aws::String&& value) { SetClusterVersion(std::move(value)); return *this;} /** *

The new version number of the Amazon Redshift engine to upgrade to.

*

For major version upgrades, if a non-default cluster parameter group is * currently in use, a new cluster parameter group in the cluster parameter group * family for the new version must be specified. The new cluster parameter group * can be the default for that cluster parameter group family. For more information * about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

Example: 1.0

*/ inline ModifyClusterRequest& WithClusterVersion(const char* value) { SetClusterVersion(value); return *this;} /** *

If true, major version upgrades will be applied automatically to * the cluster during the maintenance window.

Default: false *

*/ inline bool GetAllowVersionUpgrade() const{ return m_allowVersionUpgrade; } /** *

If true, major version upgrades will be applied automatically to * the cluster during the maintenance window.

Default: false *

*/ inline bool AllowVersionUpgradeHasBeenSet() const { return m_allowVersionUpgradeHasBeenSet; } /** *

If true, major version upgrades will be applied automatically to * the cluster during the maintenance window.

Default: false *

*/ inline void SetAllowVersionUpgrade(bool value) { m_allowVersionUpgradeHasBeenSet = true; m_allowVersionUpgrade = value; } /** *

If true, major version upgrades will be applied automatically to * the cluster during the maintenance window.

Default: false *

*/ inline ModifyClusterRequest& WithAllowVersionUpgrade(bool value) { SetAllowVersionUpgrade(value); return *this;} /** *

Specifies the name of the HSM client certificate the Amazon Redshift cluster * uses to retrieve the data encryption keys stored in an HSM.

*/ inline const Aws::String& GetHsmClientCertificateIdentifier() const{ return m_hsmClientCertificateIdentifier; } /** *

Specifies the name of the HSM client certificate the Amazon Redshift cluster * uses to retrieve the data encryption keys stored in an HSM.

*/ inline bool HsmClientCertificateIdentifierHasBeenSet() const { return m_hsmClientCertificateIdentifierHasBeenSet; } /** *

Specifies the name of the HSM client certificate the Amazon Redshift cluster * uses to retrieve the data encryption keys stored in an HSM.

*/ inline void SetHsmClientCertificateIdentifier(const Aws::String& value) { m_hsmClientCertificateIdentifierHasBeenSet = true; m_hsmClientCertificateIdentifier = value; } /** *

Specifies the name of the HSM client certificate the Amazon Redshift cluster * uses to retrieve the data encryption keys stored in an HSM.

*/ inline void SetHsmClientCertificateIdentifier(Aws::String&& value) { m_hsmClientCertificateIdentifierHasBeenSet = true; m_hsmClientCertificateIdentifier = std::move(value); } /** *

Specifies the name of the HSM client certificate the Amazon Redshift cluster * uses to retrieve the data encryption keys stored in an HSM.

*/ inline void SetHsmClientCertificateIdentifier(const char* value) { m_hsmClientCertificateIdentifierHasBeenSet = true; m_hsmClientCertificateIdentifier.assign(value); } /** *

Specifies the name of the HSM client certificate the Amazon Redshift cluster * uses to retrieve the data encryption keys stored in an HSM.

*/ inline ModifyClusterRequest& WithHsmClientCertificateIdentifier(const Aws::String& value) { SetHsmClientCertificateIdentifier(value); return *this;} /** *

Specifies the name of the HSM client certificate the Amazon Redshift cluster * uses to retrieve the data encryption keys stored in an HSM.

*/ inline ModifyClusterRequest& WithHsmClientCertificateIdentifier(Aws::String&& value) { SetHsmClientCertificateIdentifier(std::move(value)); return *this;} /** *

Specifies the name of the HSM client certificate the Amazon Redshift cluster * uses to retrieve the data encryption keys stored in an HSM.

*/ inline ModifyClusterRequest& WithHsmClientCertificateIdentifier(const char* value) { SetHsmClientCertificateIdentifier(value); return *this;} /** *

Specifies the name of the HSM configuration that contains the information the * Amazon Redshift cluster can use to retrieve and store keys in an HSM.

*/ inline const Aws::String& GetHsmConfigurationIdentifier() const{ return m_hsmConfigurationIdentifier; } /** *

Specifies the name of the HSM configuration that contains the information the * Amazon Redshift cluster can use to retrieve and store keys in an HSM.

*/ inline bool HsmConfigurationIdentifierHasBeenSet() const { return m_hsmConfigurationIdentifierHasBeenSet; } /** *

Specifies the name of the HSM configuration that contains the information the * Amazon Redshift cluster can use to retrieve and store keys in an HSM.

*/ inline void SetHsmConfigurationIdentifier(const Aws::String& value) { m_hsmConfigurationIdentifierHasBeenSet = true; m_hsmConfigurationIdentifier = value; } /** *

Specifies the name of the HSM configuration that contains the information the * Amazon Redshift cluster can use to retrieve and store keys in an HSM.

*/ inline void SetHsmConfigurationIdentifier(Aws::String&& value) { m_hsmConfigurationIdentifierHasBeenSet = true; m_hsmConfigurationIdentifier = std::move(value); } /** *

Specifies the name of the HSM configuration that contains the information the * Amazon Redshift cluster can use to retrieve and store keys in an HSM.

*/ inline void SetHsmConfigurationIdentifier(const char* value) { m_hsmConfigurationIdentifierHasBeenSet = true; m_hsmConfigurationIdentifier.assign(value); } /** *

Specifies the name of the HSM configuration that contains the information the * Amazon Redshift cluster can use to retrieve and store keys in an HSM.

*/ inline ModifyClusterRequest& WithHsmConfigurationIdentifier(const Aws::String& value) { SetHsmConfigurationIdentifier(value); return *this;} /** *

Specifies the name of the HSM configuration that contains the information the * Amazon Redshift cluster can use to retrieve and store keys in an HSM.

*/ inline ModifyClusterRequest& WithHsmConfigurationIdentifier(Aws::String&& value) { SetHsmConfigurationIdentifier(std::move(value)); return *this;} /** *

Specifies the name of the HSM configuration that contains the information the * Amazon Redshift cluster can use to retrieve and store keys in an HSM.

*/ inline ModifyClusterRequest& WithHsmConfigurationIdentifier(const char* value) { SetHsmConfigurationIdentifier(value); return *this;} /** *

The new identifier for the cluster.

Constraints:

  • Must * contain from 1 to 63 alphanumeric characters or hyphens.

  • *

    Alphabetic characters must be lowercase.

  • First character * must be a letter.

  • Cannot end with a hyphen or contain two * consecutive hyphens.

  • Must be unique for all clusters within an * Amazon Web Services account.

Example: * examplecluster

*/ inline const Aws::String& GetNewClusterIdentifier() const{ return m_newClusterIdentifier; } /** *

The new identifier for the cluster.

Constraints:

  • Must * contain from 1 to 63 alphanumeric characters or hyphens.

  • *

    Alphabetic characters must be lowercase.

  • First character * must be a letter.

  • Cannot end with a hyphen or contain two * consecutive hyphens.

  • Must be unique for all clusters within an * Amazon Web Services account.

Example: * examplecluster

*/ inline bool NewClusterIdentifierHasBeenSet() const { return m_newClusterIdentifierHasBeenSet; } /** *

The new identifier for the cluster.

Constraints:

  • Must * contain from 1 to 63 alphanumeric characters or hyphens.

  • *

    Alphabetic characters must be lowercase.

  • First character * must be a letter.

  • Cannot end with a hyphen or contain two * consecutive hyphens.

  • Must be unique for all clusters within an * Amazon Web Services account.

Example: * examplecluster

*/ inline void SetNewClusterIdentifier(const Aws::String& value) { m_newClusterIdentifierHasBeenSet = true; m_newClusterIdentifier = value; } /** *

The new identifier for the cluster.

Constraints:

  • Must * contain from 1 to 63 alphanumeric characters or hyphens.

  • *

    Alphabetic characters must be lowercase.

  • First character * must be a letter.

  • Cannot end with a hyphen or contain two * consecutive hyphens.

  • Must be unique for all clusters within an * Amazon Web Services account.

Example: * examplecluster

*/ inline void SetNewClusterIdentifier(Aws::String&& value) { m_newClusterIdentifierHasBeenSet = true; m_newClusterIdentifier = std::move(value); } /** *

The new identifier for the cluster.

Constraints:

  • Must * contain from 1 to 63 alphanumeric characters or hyphens.

  • *

    Alphabetic characters must be lowercase.

  • First character * must be a letter.

  • Cannot end with a hyphen or contain two * consecutive hyphens.

  • Must be unique for all clusters within an * Amazon Web Services account.

Example: * examplecluster

*/ inline void SetNewClusterIdentifier(const char* value) { m_newClusterIdentifierHasBeenSet = true; m_newClusterIdentifier.assign(value); } /** *

The new identifier for the cluster.

Constraints:

  • Must * contain from 1 to 63 alphanumeric characters or hyphens.

  • *

    Alphabetic characters must be lowercase.

  • First character * must be a letter.

  • Cannot end with a hyphen or contain two * consecutive hyphens.

  • Must be unique for all clusters within an * Amazon Web Services account.

Example: * examplecluster

*/ inline ModifyClusterRequest& WithNewClusterIdentifier(const Aws::String& value) { SetNewClusterIdentifier(value); return *this;} /** *

The new identifier for the cluster.

Constraints:

  • Must * contain from 1 to 63 alphanumeric characters or hyphens.

  • *

    Alphabetic characters must be lowercase.

  • First character * must be a letter.

  • Cannot end with a hyphen or contain two * consecutive hyphens.

  • Must be unique for all clusters within an * Amazon Web Services account.

Example: * examplecluster

*/ inline ModifyClusterRequest& WithNewClusterIdentifier(Aws::String&& value) { SetNewClusterIdentifier(std::move(value)); return *this;} /** *

The new identifier for the cluster.

Constraints:

  • Must * contain from 1 to 63 alphanumeric characters or hyphens.

  • *

    Alphabetic characters must be lowercase.

  • First character * must be a letter.

  • Cannot end with a hyphen or contain two * consecutive hyphens.

  • Must be unique for all clusters within an * Amazon Web Services account.

Example: * examplecluster

*/ inline ModifyClusterRequest& WithNewClusterIdentifier(const char* value) { SetNewClusterIdentifier(value); return *this;} /** *

If true, the cluster can be accessed from a public network. Only * clusters in VPCs can be set to be publicly available.

*/ inline bool GetPubliclyAccessible() const{ return m_publiclyAccessible; } /** *

If true, the cluster can be accessed from a public network. Only * clusters in VPCs can be set to be publicly available.

*/ inline bool PubliclyAccessibleHasBeenSet() const { return m_publiclyAccessibleHasBeenSet; } /** *

If true, the cluster can be accessed from a public network. Only * clusters in VPCs can be set to be publicly available.

*/ inline void SetPubliclyAccessible(bool value) { m_publiclyAccessibleHasBeenSet = true; m_publiclyAccessible = value; } /** *

If true, the cluster can be accessed from a public network. Only * clusters in VPCs can be set to be publicly available.

*/ inline ModifyClusterRequest& WithPubliclyAccessible(bool value) { SetPubliclyAccessible(value); return *this;} /** *

The Elastic IP (EIP) address for the cluster.

Constraints: The cluster * must be provisioned in EC2-VPC and publicly-accessible through an Internet * gateway. For more information about provisioning clusters in EC2-VPC, go to Supported * Platforms to Launch Your Cluster in the Amazon Redshift Cluster Management * Guide.

*/ inline const Aws::String& GetElasticIp() const{ return m_elasticIp; } /** *

The Elastic IP (EIP) address for the cluster.

Constraints: The cluster * must be provisioned in EC2-VPC and publicly-accessible through an Internet * gateway. For more information about provisioning clusters in EC2-VPC, go to Supported * Platforms to Launch Your Cluster in the Amazon Redshift Cluster Management * Guide.

*/ inline bool ElasticIpHasBeenSet() const { return m_elasticIpHasBeenSet; } /** *

The Elastic IP (EIP) address for the cluster.

Constraints: The cluster * must be provisioned in EC2-VPC and publicly-accessible through an Internet * gateway. For more information about provisioning clusters in EC2-VPC, go to Supported * Platforms to Launch Your Cluster in the Amazon Redshift Cluster Management * Guide.

*/ inline void SetElasticIp(const Aws::String& value) { m_elasticIpHasBeenSet = true; m_elasticIp = value; } /** *

The Elastic IP (EIP) address for the cluster.

Constraints: The cluster * must be provisioned in EC2-VPC and publicly-accessible through an Internet * gateway. For more information about provisioning clusters in EC2-VPC, go to Supported * Platforms to Launch Your Cluster in the Amazon Redshift Cluster Management * Guide.

*/ inline void SetElasticIp(Aws::String&& value) { m_elasticIpHasBeenSet = true; m_elasticIp = std::move(value); } /** *

The Elastic IP (EIP) address for the cluster.

Constraints: The cluster * must be provisioned in EC2-VPC and publicly-accessible through an Internet * gateway. For more information about provisioning clusters in EC2-VPC, go to Supported * Platforms to Launch Your Cluster in the Amazon Redshift Cluster Management * Guide.

*/ inline void SetElasticIp(const char* value) { m_elasticIpHasBeenSet = true; m_elasticIp.assign(value); } /** *

The Elastic IP (EIP) address for the cluster.

Constraints: The cluster * must be provisioned in EC2-VPC and publicly-accessible through an Internet * gateway. For more information about provisioning clusters in EC2-VPC, go to Supported * Platforms to Launch Your Cluster in the Amazon Redshift Cluster Management * Guide.

*/ inline ModifyClusterRequest& WithElasticIp(const Aws::String& value) { SetElasticIp(value); return *this;} /** *

The Elastic IP (EIP) address for the cluster.

Constraints: The cluster * must be provisioned in EC2-VPC and publicly-accessible through an Internet * gateway. For more information about provisioning clusters in EC2-VPC, go to Supported * Platforms to Launch Your Cluster in the Amazon Redshift Cluster Management * Guide.

*/ inline ModifyClusterRequest& WithElasticIp(Aws::String&& value) { SetElasticIp(std::move(value)); return *this;} /** *

The Elastic IP (EIP) address for the cluster.

Constraints: The cluster * must be provisioned in EC2-VPC and publicly-accessible through an Internet * gateway. For more information about provisioning clusters in EC2-VPC, go to Supported * Platforms to Launch Your Cluster in the Amazon Redshift Cluster Management * Guide.

*/ inline ModifyClusterRequest& WithElasticIp(const char* value) { SetElasticIp(value); return *this;} /** *

An option that specifies whether to create the cluster with enhanced VPC * routing enabled. To create a cluster that uses enhanced VPC routing, the cluster * must be in a VPC. For more information, see Enhanced * VPC Routing in the Amazon Redshift Cluster Management Guide.

If this * option is true, enhanced VPC routing is enabled.

Default: * false

*/ inline bool GetEnhancedVpcRouting() const{ return m_enhancedVpcRouting; } /** *

An option that specifies whether to create the cluster with enhanced VPC * routing enabled. To create a cluster that uses enhanced VPC routing, the cluster * must be in a VPC. For more information, see Enhanced * VPC Routing in the Amazon Redshift Cluster Management Guide.

If this * option is true, enhanced VPC routing is enabled.

Default: * false

*/ inline bool EnhancedVpcRoutingHasBeenSet() const { return m_enhancedVpcRoutingHasBeenSet; } /** *

An option that specifies whether to create the cluster with enhanced VPC * routing enabled. To create a cluster that uses enhanced VPC routing, the cluster * must be in a VPC. For more information, see Enhanced * VPC Routing in the Amazon Redshift Cluster Management Guide.

If this * option is true, enhanced VPC routing is enabled.

Default: * false

*/ inline void SetEnhancedVpcRouting(bool value) { m_enhancedVpcRoutingHasBeenSet = true; m_enhancedVpcRouting = value; } /** *

An option that specifies whether to create the cluster with enhanced VPC * routing enabled. To create a cluster that uses enhanced VPC routing, the cluster * must be in a VPC. For more information, see Enhanced * VPC Routing in the Amazon Redshift Cluster Management Guide.

If this * option is true, enhanced VPC routing is enabled.

Default: * false

*/ inline ModifyClusterRequest& WithEnhancedVpcRouting(bool value) { SetEnhancedVpcRouting(value); return *this;} /** *

The name for the maintenance track that you want to assign for the cluster. * This name change is asynchronous. The new track name stays in the * PendingModifiedValues for the cluster until the next maintenance * window. When the maintenance track changes, the cluster is switched to the * latest cluster release available for the maintenance track. At this point, the * maintenance track name is applied.

*/ inline const Aws::String& GetMaintenanceTrackName() const{ return m_maintenanceTrackName; } /** *

The name for the maintenance track that you want to assign for the cluster. * This name change is asynchronous. The new track name stays in the * PendingModifiedValues for the cluster until the next maintenance * window. When the maintenance track changes, the cluster is switched to the * latest cluster release available for the maintenance track. At this point, the * maintenance track name is applied.

*/ inline bool MaintenanceTrackNameHasBeenSet() const { return m_maintenanceTrackNameHasBeenSet; } /** *

The name for the maintenance track that you want to assign for the cluster. * This name change is asynchronous. The new track name stays in the * PendingModifiedValues for the cluster until the next maintenance * window. When the maintenance track changes, the cluster is switched to the * latest cluster release available for the maintenance track. At this point, the * maintenance track name is applied.

*/ inline void SetMaintenanceTrackName(const Aws::String& value) { m_maintenanceTrackNameHasBeenSet = true; m_maintenanceTrackName = value; } /** *

The name for the maintenance track that you want to assign for the cluster. * This name change is asynchronous. The new track name stays in the * PendingModifiedValues for the cluster until the next maintenance * window. When the maintenance track changes, the cluster is switched to the * latest cluster release available for the maintenance track. At this point, the * maintenance track name is applied.

*/ inline void SetMaintenanceTrackName(Aws::String&& value) { m_maintenanceTrackNameHasBeenSet = true; m_maintenanceTrackName = std::move(value); } /** *

The name for the maintenance track that you want to assign for the cluster. * This name change is asynchronous. The new track name stays in the * PendingModifiedValues for the cluster until the next maintenance * window. When the maintenance track changes, the cluster is switched to the * latest cluster release available for the maintenance track. At this point, the * maintenance track name is applied.

*/ inline void SetMaintenanceTrackName(const char* value) { m_maintenanceTrackNameHasBeenSet = true; m_maintenanceTrackName.assign(value); } /** *

The name for the maintenance track that you want to assign for the cluster. * This name change is asynchronous. The new track name stays in the * PendingModifiedValues for the cluster until the next maintenance * window. When the maintenance track changes, the cluster is switched to the * latest cluster release available for the maintenance track. At this point, the * maintenance track name is applied.

*/ inline ModifyClusterRequest& WithMaintenanceTrackName(const Aws::String& value) { SetMaintenanceTrackName(value); return *this;} /** *

The name for the maintenance track that you want to assign for the cluster. * This name change is asynchronous. The new track name stays in the * PendingModifiedValues for the cluster until the next maintenance * window. When the maintenance track changes, the cluster is switched to the * latest cluster release available for the maintenance track. At this point, the * maintenance track name is applied.

*/ inline ModifyClusterRequest& WithMaintenanceTrackName(Aws::String&& value) { SetMaintenanceTrackName(std::move(value)); return *this;} /** *

The name for the maintenance track that you want to assign for the cluster. * This name change is asynchronous. The new track name stays in the * PendingModifiedValues for the cluster until the next maintenance * window. When the maintenance track changes, the cluster is switched to the * latest cluster release available for the maintenance track. At this point, the * maintenance track name is applied.

*/ inline ModifyClusterRequest& WithMaintenanceTrackName(const char* value) { SetMaintenanceTrackName(value); return *this;} /** *

Indicates whether the cluster is encrypted. If the value is encrypted (true) * and you provide a value for the KmsKeyId parameter, we encrypt the * cluster with the provided KmsKeyId. If you don't provide a * KmsKeyId, we encrypt with the default key.

If the value is * not encrypted (false), then the cluster is decrypted.

*/ inline bool GetEncrypted() const{ return m_encrypted; } /** *

Indicates whether the cluster is encrypted. If the value is encrypted (true) * and you provide a value for the KmsKeyId parameter, we encrypt the * cluster with the provided KmsKeyId. If you don't provide a * KmsKeyId, we encrypt with the default key.

If the value is * not encrypted (false), then the cluster is decrypted.

*/ inline bool EncryptedHasBeenSet() const { return m_encryptedHasBeenSet; } /** *

Indicates whether the cluster is encrypted. If the value is encrypted (true) * and you provide a value for the KmsKeyId parameter, we encrypt the * cluster with the provided KmsKeyId. If you don't provide a * KmsKeyId, we encrypt with the default key.

If the value is * not encrypted (false), then the cluster is decrypted.

*/ inline void SetEncrypted(bool value) { m_encryptedHasBeenSet = true; m_encrypted = value; } /** *

Indicates whether the cluster is encrypted. If the value is encrypted (true) * and you provide a value for the KmsKeyId parameter, we encrypt the * cluster with the provided KmsKeyId. If you don't provide a * KmsKeyId, we encrypt with the default key.

If the value is * not encrypted (false), then the cluster is decrypted.

*/ inline ModifyClusterRequest& WithEncrypted(bool value) { SetEncrypted(value); return *this;} /** *

The Key Management Service (KMS) key ID of the encryption key that you want * to use to encrypt data in the cluster.

*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

The Key Management Service (KMS) key ID of the encryption key that you want * to use to encrypt data in the cluster.

*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

The Key Management Service (KMS) key ID of the encryption key that you want * to use to encrypt data in the cluster.

*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

The Key Management Service (KMS) key ID of the encryption key that you want * to use to encrypt data in the cluster.

*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

The Key Management Service (KMS) key ID of the encryption key that you want * to use to encrypt data in the cluster.

*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

The Key Management Service (KMS) key ID of the encryption key that you want * to use to encrypt data in the cluster.

*/ inline ModifyClusterRequest& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

The Key Management Service (KMS) key ID of the encryption key that you want * to use to encrypt data in the cluster.

*/ inline ModifyClusterRequest& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

The Key Management Service (KMS) key ID of the encryption key that you want * to use to encrypt data in the cluster.

*/ inline ModifyClusterRequest& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} /** *

The option to enable relocation for an Amazon Redshift cluster between * Availability Zones after the cluster modification is complete.

*/ inline bool GetAvailabilityZoneRelocation() const{ return m_availabilityZoneRelocation; } /** *

The option to enable relocation for an Amazon Redshift cluster between * Availability Zones after the cluster modification is complete.

*/ inline bool AvailabilityZoneRelocationHasBeenSet() const { return m_availabilityZoneRelocationHasBeenSet; } /** *

The option to enable relocation for an Amazon Redshift cluster between * Availability Zones after the cluster modification is complete.

*/ inline void SetAvailabilityZoneRelocation(bool value) { m_availabilityZoneRelocationHasBeenSet = true; m_availabilityZoneRelocation = value; } /** *

The option to enable relocation for an Amazon Redshift cluster between * Availability Zones after the cluster modification is complete.

*/ inline ModifyClusterRequest& WithAvailabilityZoneRelocation(bool value) { SetAvailabilityZoneRelocation(value); return *this;} /** *

The option to initiate relocation for an Amazon Redshift cluster to the * target Availability Zone.

*/ inline const Aws::String& GetAvailabilityZone() const{ return m_availabilityZone; } /** *

The option to initiate relocation for an Amazon Redshift cluster to the * target Availability Zone.

*/ inline bool AvailabilityZoneHasBeenSet() const { return m_availabilityZoneHasBeenSet; } /** *

The option to initiate relocation for an Amazon Redshift cluster to the * target Availability Zone.

*/ inline void SetAvailabilityZone(const Aws::String& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = value; } /** *

The option to initiate relocation for an Amazon Redshift cluster to the * target Availability Zone.

*/ inline void SetAvailabilityZone(Aws::String&& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = std::move(value); } /** *

The option to initiate relocation for an Amazon Redshift cluster to the * target Availability Zone.

*/ inline void SetAvailabilityZone(const char* value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone.assign(value); } /** *

The option to initiate relocation for an Amazon Redshift cluster to the * target Availability Zone.

*/ inline ModifyClusterRequest& WithAvailabilityZone(const Aws::String& value) { SetAvailabilityZone(value); return *this;} /** *

The option to initiate relocation for an Amazon Redshift cluster to the * target Availability Zone.

*/ inline ModifyClusterRequest& WithAvailabilityZone(Aws::String&& value) { SetAvailabilityZone(std::move(value)); return *this;} /** *

The option to initiate relocation for an Amazon Redshift cluster to the * target Availability Zone.

*/ inline ModifyClusterRequest& WithAvailabilityZone(const char* value) { SetAvailabilityZone(value); return *this;} /** *

The option to change the port of an Amazon Redshift cluster.

*/ inline int GetPort() const{ return m_port; } /** *

The option to change the port of an Amazon Redshift cluster.

*/ inline bool PortHasBeenSet() const { return m_portHasBeenSet; } /** *

The option to change the port of an Amazon Redshift cluster.

*/ inline void SetPort(int value) { m_portHasBeenSet = true; m_port = value; } /** *

The option to change the port of an Amazon Redshift cluster.

*/ inline ModifyClusterRequest& WithPort(int value) { SetPort(value); return *this;} private: Aws::String m_clusterIdentifier; bool m_clusterIdentifierHasBeenSet = false; Aws::String m_clusterType; bool m_clusterTypeHasBeenSet = false; Aws::String m_nodeType; bool m_nodeTypeHasBeenSet = false; int m_numberOfNodes; bool m_numberOfNodesHasBeenSet = false; Aws::Vector m_clusterSecurityGroups; bool m_clusterSecurityGroupsHasBeenSet = false; Aws::Vector m_vpcSecurityGroupIds; bool m_vpcSecurityGroupIdsHasBeenSet = false; Aws::String m_masterUserPassword; bool m_masterUserPasswordHasBeenSet = false; Aws::String m_clusterParameterGroupName; bool m_clusterParameterGroupNameHasBeenSet = false; int m_automatedSnapshotRetentionPeriod; bool m_automatedSnapshotRetentionPeriodHasBeenSet = false; int m_manualSnapshotRetentionPeriod; bool m_manualSnapshotRetentionPeriodHasBeenSet = false; Aws::String m_preferredMaintenanceWindow; bool m_preferredMaintenanceWindowHasBeenSet = false; Aws::String m_clusterVersion; bool m_clusterVersionHasBeenSet = false; bool m_allowVersionUpgrade; bool m_allowVersionUpgradeHasBeenSet = false; Aws::String m_hsmClientCertificateIdentifier; bool m_hsmClientCertificateIdentifierHasBeenSet = false; Aws::String m_hsmConfigurationIdentifier; bool m_hsmConfigurationIdentifierHasBeenSet = false; Aws::String m_newClusterIdentifier; bool m_newClusterIdentifierHasBeenSet = false; bool m_publiclyAccessible; bool m_publiclyAccessibleHasBeenSet = false; Aws::String m_elasticIp; bool m_elasticIpHasBeenSet = false; bool m_enhancedVpcRouting; bool m_enhancedVpcRoutingHasBeenSet = false; Aws::String m_maintenanceTrackName; bool m_maintenanceTrackNameHasBeenSet = false; bool m_encrypted; bool m_encryptedHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; bool m_availabilityZoneRelocation; bool m_availabilityZoneRelocationHasBeenSet = false; Aws::String m_availabilityZone; bool m_availabilityZoneHasBeenSet = false; int m_port; bool m_portHasBeenSet = false; }; } // namespace Model } // namespace Redshift } // namespace Aws