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

Describes a cluster.

See Also:

AWS * API Reference

*/ class Cluster { public: AWS_REDSHIFT_API Cluster(); AWS_REDSHIFT_API Cluster(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_REDSHIFT_API Cluster& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_REDSHIFT_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_REDSHIFT_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The unique identifier of the cluster.

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

The unique identifier of the cluster.

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

The unique identifier of the cluster.

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

The unique identifier of the cluster.

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

The unique identifier of the cluster.

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

The unique identifier of the cluster.

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

The unique identifier of the cluster.

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

The unique identifier of the cluster.

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

The node type for the nodes in the cluster.

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

The node type for the nodes in the cluster.

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

The node type for the nodes in the cluster.

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

The node type for the nodes in the cluster.

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

The node type for the nodes in the cluster.

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

The node type for the nodes in the cluster.

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

The node type for the nodes in the cluster.

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

The node type for the nodes in the cluster.

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

The current state of the cluster. Possible values are the following:

*
  • available

  • available, * prep-for-resize

  • available, * resize-cleanup

  • cancelling-resize

    *
  • creating

  • deleting *

  • final-snapshot

  • * hardware-failure

  • incompatible-hsm *

  • incompatible-network

  • * incompatible-parameters

  • * incompatible-restore

  • modifying *

  • paused

  • * rebooting

  • renaming

  • *

    resizing

  • rotating-keys

    *
  • storage-full

  • * updating-hsm

*/ inline const Aws::String& GetClusterStatus() const{ return m_clusterStatus; } /** *

The current state of the cluster. Possible values are the following:

*
  • available

  • available, * prep-for-resize

  • available, * resize-cleanup

  • cancelling-resize

    *
  • creating

  • deleting *

  • final-snapshot

  • * hardware-failure

  • incompatible-hsm *

  • incompatible-network

  • * incompatible-parameters

  • * incompatible-restore

  • modifying *

  • paused

  • * rebooting

  • renaming

  • *

    resizing

  • rotating-keys

    *
  • storage-full

  • * updating-hsm

*/ inline bool ClusterStatusHasBeenSet() const { return m_clusterStatusHasBeenSet; } /** *

The current state of the cluster. Possible values are the following:

*
  • available

  • available, * prep-for-resize

  • available, * resize-cleanup

  • cancelling-resize

    *
  • creating

  • deleting *

  • final-snapshot

  • * hardware-failure

  • incompatible-hsm *

  • incompatible-network

  • * incompatible-parameters

  • * incompatible-restore

  • modifying *

  • paused

  • * rebooting

  • renaming

  • *

    resizing

  • rotating-keys

    *
  • storage-full

  • * updating-hsm

*/ inline void SetClusterStatus(const Aws::String& value) { m_clusterStatusHasBeenSet = true; m_clusterStatus = value; } /** *

The current state of the cluster. Possible values are the following:

*
  • available

  • available, * prep-for-resize

  • available, * resize-cleanup

  • cancelling-resize

    *
  • creating

  • deleting *

  • final-snapshot

  • * hardware-failure

  • incompatible-hsm *

  • incompatible-network

  • * incompatible-parameters

  • * incompatible-restore

  • modifying *

  • paused

  • * rebooting

  • renaming

  • *

    resizing

  • rotating-keys

    *
  • storage-full

  • * updating-hsm

*/ inline void SetClusterStatus(Aws::String&& value) { m_clusterStatusHasBeenSet = true; m_clusterStatus = std::move(value); } /** *

The current state of the cluster. Possible values are the following:

*
  • available

  • available, * prep-for-resize

  • available, * resize-cleanup

  • cancelling-resize

    *
  • creating

  • deleting *

  • final-snapshot

  • * hardware-failure

  • incompatible-hsm *

  • incompatible-network

  • * incompatible-parameters

  • * incompatible-restore

  • modifying *

  • paused

  • * rebooting

  • renaming

  • *

    resizing

  • rotating-keys

    *
  • storage-full

  • * updating-hsm

*/ inline void SetClusterStatus(const char* value) { m_clusterStatusHasBeenSet = true; m_clusterStatus.assign(value); } /** *

The current state of the cluster. Possible values are the following:

*
  • available

  • available, * prep-for-resize

  • available, * resize-cleanup

  • cancelling-resize

    *
  • creating

  • deleting *

  • final-snapshot

  • * hardware-failure

  • incompatible-hsm *

  • incompatible-network

  • * incompatible-parameters

  • * incompatible-restore

  • modifying *

  • paused

  • * rebooting

  • renaming

  • *

    resizing

  • rotating-keys

    *
  • storage-full

  • * updating-hsm

*/ inline Cluster& WithClusterStatus(const Aws::String& value) { SetClusterStatus(value); return *this;} /** *

The current state of the cluster. Possible values are the following:

*
  • available

  • available, * prep-for-resize

  • available, * resize-cleanup

  • cancelling-resize

    *
  • creating

  • deleting *

  • final-snapshot

  • * hardware-failure

  • incompatible-hsm *

  • incompatible-network

  • * incompatible-parameters

  • * incompatible-restore

  • modifying *

  • paused

  • * rebooting

  • renaming

  • *

    resizing

  • rotating-keys

    *
  • storage-full

  • * updating-hsm

*/ inline Cluster& WithClusterStatus(Aws::String&& value) { SetClusterStatus(std::move(value)); return *this;} /** *

The current state of the cluster. Possible values are the following:

*
  • available

  • available, * prep-for-resize

  • available, * resize-cleanup

  • cancelling-resize

    *
  • creating

  • deleting *

  • final-snapshot

  • * hardware-failure

  • incompatible-hsm *

  • incompatible-network

  • * incompatible-parameters

  • * incompatible-restore

  • modifying *

  • paused

  • * rebooting

  • renaming

  • *

    resizing

  • rotating-keys

    *
  • storage-full

  • * updating-hsm

*/ inline Cluster& WithClusterStatus(const char* value) { SetClusterStatus(value); return *this;} /** *

The availability status of the cluster for queries. Possible values are the * following:

  • Available - The cluster is available for queries. *

  • Unavailable - The cluster is not available for queries.

    *
  • Maintenance - The cluster is intermittently available for queries * due to maintenance activities.

  • Modifying - The cluster is * intermittently available for queries due to changes that modify the cluster.

    *
  • Failed - The cluster failed and is not available for queries.

    *
*/ inline const Aws::String& GetClusterAvailabilityStatus() const{ return m_clusterAvailabilityStatus; } /** *

The availability status of the cluster for queries. Possible values are the * following:

  • Available - The cluster is available for queries. *

  • Unavailable - The cluster is not available for queries.

    *
  • Maintenance - The cluster is intermittently available for queries * due to maintenance activities.

  • Modifying - The cluster is * intermittently available for queries due to changes that modify the cluster.

    *
  • Failed - The cluster failed and is not available for queries.

    *
*/ inline bool ClusterAvailabilityStatusHasBeenSet() const { return m_clusterAvailabilityStatusHasBeenSet; } /** *

The availability status of the cluster for queries. Possible values are the * following:

  • Available - The cluster is available for queries. *

  • Unavailable - The cluster is not available for queries.

    *
  • Maintenance - The cluster is intermittently available for queries * due to maintenance activities.

  • Modifying - The cluster is * intermittently available for queries due to changes that modify the cluster.

    *
  • Failed - The cluster failed and is not available for queries.

    *
*/ inline void SetClusterAvailabilityStatus(const Aws::String& value) { m_clusterAvailabilityStatusHasBeenSet = true; m_clusterAvailabilityStatus = value; } /** *

The availability status of the cluster for queries. Possible values are the * following:

  • Available - The cluster is available for queries. *

  • Unavailable - The cluster is not available for queries.

    *
  • Maintenance - The cluster is intermittently available for queries * due to maintenance activities.

  • Modifying - The cluster is * intermittently available for queries due to changes that modify the cluster.

    *
  • Failed - The cluster failed and is not available for queries.

    *
*/ inline void SetClusterAvailabilityStatus(Aws::String&& value) { m_clusterAvailabilityStatusHasBeenSet = true; m_clusterAvailabilityStatus = std::move(value); } /** *

The availability status of the cluster for queries. Possible values are the * following:

  • Available - The cluster is available for queries. *

  • Unavailable - The cluster is not available for queries.

    *
  • Maintenance - The cluster is intermittently available for queries * due to maintenance activities.

  • Modifying - The cluster is * intermittently available for queries due to changes that modify the cluster.

    *
  • Failed - The cluster failed and is not available for queries.

    *
*/ inline void SetClusterAvailabilityStatus(const char* value) { m_clusterAvailabilityStatusHasBeenSet = true; m_clusterAvailabilityStatus.assign(value); } /** *

The availability status of the cluster for queries. Possible values are the * following:

  • Available - The cluster is available for queries. *

  • Unavailable - The cluster is not available for queries.

    *
  • Maintenance - The cluster is intermittently available for queries * due to maintenance activities.

  • Modifying - The cluster is * intermittently available for queries due to changes that modify the cluster.

    *
  • Failed - The cluster failed and is not available for queries.

    *
*/ inline Cluster& WithClusterAvailabilityStatus(const Aws::String& value) { SetClusterAvailabilityStatus(value); return *this;} /** *

The availability status of the cluster for queries. Possible values are the * following:

  • Available - The cluster is available for queries. *

  • Unavailable - The cluster is not available for queries.

    *
  • Maintenance - The cluster is intermittently available for queries * due to maintenance activities.

  • Modifying - The cluster is * intermittently available for queries due to changes that modify the cluster.

    *
  • Failed - The cluster failed and is not available for queries.

    *
*/ inline Cluster& WithClusterAvailabilityStatus(Aws::String&& value) { SetClusterAvailabilityStatus(std::move(value)); return *this;} /** *

The availability status of the cluster for queries. Possible values are the * following:

  • Available - The cluster is available for queries. *

  • Unavailable - The cluster is not available for queries.

    *
  • Maintenance - The cluster is intermittently available for queries * due to maintenance activities.

  • Modifying - The cluster is * intermittently available for queries due to changes that modify the cluster.

    *
  • Failed - The cluster failed and is not available for queries.

    *
*/ inline Cluster& WithClusterAvailabilityStatus(const char* value) { SetClusterAvailabilityStatus(value); return *this;} /** *

The status of a modify operation, if any, initiated for the cluster.

*/ inline const Aws::String& GetModifyStatus() const{ return m_modifyStatus; } /** *

The status of a modify operation, if any, initiated for the cluster.

*/ inline bool ModifyStatusHasBeenSet() const { return m_modifyStatusHasBeenSet; } /** *

The status of a modify operation, if any, initiated for the cluster.

*/ inline void SetModifyStatus(const Aws::String& value) { m_modifyStatusHasBeenSet = true; m_modifyStatus = value; } /** *

The status of a modify operation, if any, initiated for the cluster.

*/ inline void SetModifyStatus(Aws::String&& value) { m_modifyStatusHasBeenSet = true; m_modifyStatus = std::move(value); } /** *

The status of a modify operation, if any, initiated for the cluster.

*/ inline void SetModifyStatus(const char* value) { m_modifyStatusHasBeenSet = true; m_modifyStatus.assign(value); } /** *

The status of a modify operation, if any, initiated for the cluster.

*/ inline Cluster& WithModifyStatus(const Aws::String& value) { SetModifyStatus(value); return *this;} /** *

The status of a modify operation, if any, initiated for the cluster.

*/ inline Cluster& WithModifyStatus(Aws::String&& value) { SetModifyStatus(std::move(value)); return *this;} /** *

The status of a modify operation, if any, initiated for the cluster.

*/ inline Cluster& WithModifyStatus(const char* value) { SetModifyStatus(value); return *this;} /** *

The admin user name for the cluster. This name is used to connect to the * database that is specified in the DBName parameter.

*/ inline const Aws::String& GetMasterUsername() const{ return m_masterUsername; } /** *

The admin user name for the cluster. This name is used to connect to the * database that is specified in the DBName parameter.

*/ inline bool MasterUsernameHasBeenSet() const { return m_masterUsernameHasBeenSet; } /** *

The admin user name for the cluster. This name is used to connect to the * database that is specified in the DBName parameter.

*/ inline void SetMasterUsername(const Aws::String& value) { m_masterUsernameHasBeenSet = true; m_masterUsername = value; } /** *

The admin user name for the cluster. This name is used to connect to the * database that is specified in the DBName parameter.

*/ inline void SetMasterUsername(Aws::String&& value) { m_masterUsernameHasBeenSet = true; m_masterUsername = std::move(value); } /** *

The admin user name for the cluster. This name is used to connect to the * database that is specified in the DBName parameter.

*/ inline void SetMasterUsername(const char* value) { m_masterUsernameHasBeenSet = true; m_masterUsername.assign(value); } /** *

The admin user name for the cluster. This name is used to connect to the * database that is specified in the DBName parameter.

*/ inline Cluster& WithMasterUsername(const Aws::String& value) { SetMasterUsername(value); return *this;} /** *

The admin user name for the cluster. This name is used to connect to the * database that is specified in the DBName parameter.

*/ inline Cluster& WithMasterUsername(Aws::String&& value) { SetMasterUsername(std::move(value)); return *this;} /** *

The admin user name for the cluster. This name is used to connect to the * database that is specified in the DBName parameter.

*/ inline Cluster& WithMasterUsername(const char* value) { SetMasterUsername(value); return *this;} /** *

The name of the initial database that was created when the cluster was * created. This same name is returned for the life of the cluster. If an initial * database was not specified, a database named devdev was created by * default.

*/ inline const Aws::String& GetDBName() const{ return m_dBName; } /** *

The name of the initial database that was created when the cluster was * created. This same name is returned for the life of the cluster. If an initial * database was not specified, a database named devdev was created by * default.

*/ inline bool DBNameHasBeenSet() const { return m_dBNameHasBeenSet; } /** *

The name of the initial database that was created when the cluster was * created. This same name is returned for the life of the cluster. If an initial * database was not specified, a database named devdev was created by * default.

*/ inline void SetDBName(const Aws::String& value) { m_dBNameHasBeenSet = true; m_dBName = value; } /** *

The name of the initial database that was created when the cluster was * created. This same name is returned for the life of the cluster. If an initial * database was not specified, a database named devdev was created by * default.

*/ inline void SetDBName(Aws::String&& value) { m_dBNameHasBeenSet = true; m_dBName = std::move(value); } /** *

The name of the initial database that was created when the cluster was * created. This same name is returned for the life of the cluster. If an initial * database was not specified, a database named devdev was created by * default.

*/ inline void SetDBName(const char* value) { m_dBNameHasBeenSet = true; m_dBName.assign(value); } /** *

The name of the initial database that was created when the cluster was * created. This same name is returned for the life of the cluster. If an initial * database was not specified, a database named devdev was created by * default.

*/ inline Cluster& WithDBName(const Aws::String& value) { SetDBName(value); return *this;} /** *

The name of the initial database that was created when the cluster was * created. This same name is returned for the life of the cluster. If an initial * database was not specified, a database named devdev was created by * default.

*/ inline Cluster& WithDBName(Aws::String&& value) { SetDBName(std::move(value)); return *this;} /** *

The name of the initial database that was created when the cluster was * created. This same name is returned for the life of the cluster. If an initial * database was not specified, a database named devdev was created by * default.

*/ inline Cluster& WithDBName(const char* value) { SetDBName(value); return *this;} /** *

The connection endpoint.

*/ inline const Endpoint& GetEndpoint() const{ return m_endpoint; } /** *

The connection endpoint.

*/ inline bool EndpointHasBeenSet() const { return m_endpointHasBeenSet; } /** *

The connection endpoint.

*/ inline void SetEndpoint(const Endpoint& value) { m_endpointHasBeenSet = true; m_endpoint = value; } /** *

The connection endpoint.

*/ inline void SetEndpoint(Endpoint&& value) { m_endpointHasBeenSet = true; m_endpoint = std::move(value); } /** *

The connection endpoint.

*/ inline Cluster& WithEndpoint(const Endpoint& value) { SetEndpoint(value); return *this;} /** *

The connection endpoint.

*/ inline Cluster& WithEndpoint(Endpoint&& value) { SetEndpoint(std::move(value)); return *this;} /** *

The date and time that the cluster was created.

*/ inline const Aws::Utils::DateTime& GetClusterCreateTime() const{ return m_clusterCreateTime; } /** *

The date and time that the cluster was created.

*/ inline bool ClusterCreateTimeHasBeenSet() const { return m_clusterCreateTimeHasBeenSet; } /** *

The date and time that the cluster was created.

*/ inline void SetClusterCreateTime(const Aws::Utils::DateTime& value) { m_clusterCreateTimeHasBeenSet = true; m_clusterCreateTime = value; } /** *

The date and time that the cluster was created.

*/ inline void SetClusterCreateTime(Aws::Utils::DateTime&& value) { m_clusterCreateTimeHasBeenSet = true; m_clusterCreateTime = std::move(value); } /** *

The date and time that the cluster was created.

*/ inline Cluster& WithClusterCreateTime(const Aws::Utils::DateTime& value) { SetClusterCreateTime(value); return *this;} /** *

The date and time that the cluster was created.

*/ inline Cluster& WithClusterCreateTime(Aws::Utils::DateTime&& value) { SetClusterCreateTime(std::move(value)); return *this;} /** *

The number of days that automatic cluster snapshots are retained.

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

The number of days that automatic cluster snapshots are retained.

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

The number of days that automatic cluster snapshots are retained.

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

The number of days that automatic cluster snapshots are retained.

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

The default number of days to retain a manual snapshot. If the value is -1, * the snapshot is retained indefinitely. This setting doesn't change the retention * period of existing snapshots.

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

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

The default number of days to retain a manual snapshot. If the value is -1, * the snapshot is retained indefinitely. This setting doesn't change the retention * period of existing snapshots.

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

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

The default number of days to retain a manual snapshot. If the value is -1, * the snapshot is retained indefinitely. This setting doesn't change the retention * period of existing snapshots.

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

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

The default number of days to retain a manual snapshot. If the value is -1, * the snapshot is retained indefinitely. This setting doesn't change the retention * period of existing snapshots.

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

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

A list of cluster security group that are associated with the cluster. Each * security group is represented by an element that contains * ClusterSecurityGroup.Name and * ClusterSecurityGroup.Status subelements.

Cluster security * groups are used when the cluster is not created in an Amazon Virtual Private * Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which * are listed by the VpcSecurityGroups parameter.

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

A list of cluster security group that are associated with the cluster. Each * security group is represented by an element that contains * ClusterSecurityGroup.Name and * ClusterSecurityGroup.Status subelements.

Cluster security * groups are used when the cluster is not created in an Amazon Virtual Private * Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which * are listed by the VpcSecurityGroups parameter.

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

A list of cluster security group that are associated with the cluster. Each * security group is represented by an element that contains * ClusterSecurityGroup.Name and * ClusterSecurityGroup.Status subelements.

Cluster security * groups are used when the cluster is not created in an Amazon Virtual Private * Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which * are listed by the VpcSecurityGroups parameter.

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

A list of cluster security group that are associated with the cluster. Each * security group is represented by an element that contains * ClusterSecurityGroup.Name and * ClusterSecurityGroup.Status subelements.

Cluster security * groups are used when the cluster is not created in an Amazon Virtual Private * Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which * are listed by the VpcSecurityGroups parameter.

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

A list of cluster security group that are associated with the cluster. Each * security group is represented by an element that contains * ClusterSecurityGroup.Name and * ClusterSecurityGroup.Status subelements.

Cluster security * groups are used when the cluster is not created in an Amazon Virtual Private * Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which * are listed by the VpcSecurityGroups parameter.

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

A list of cluster security group that are associated with the cluster. Each * security group is represented by an element that contains * ClusterSecurityGroup.Name and * ClusterSecurityGroup.Status subelements.

Cluster security * groups are used when the cluster is not created in an Amazon Virtual Private * Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which * are listed by the VpcSecurityGroups parameter.

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

A list of cluster security group that are associated with the cluster. Each * security group is represented by an element that contains * ClusterSecurityGroup.Name and * ClusterSecurityGroup.Status subelements.

Cluster security * groups are used when the cluster is not created in an Amazon Virtual Private * Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which * are listed by the VpcSecurityGroups parameter.

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

A list of cluster security group that are associated with the cluster. Each * security group is represented by an element that contains * ClusterSecurityGroup.Name and * ClusterSecurityGroup.Status subelements.

Cluster security * groups are used when the cluster is not created in an Amazon Virtual Private * Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which * are listed by the VpcSecurityGroups parameter.

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

A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are * associated with the cluster. This parameter is returned only if the cluster is * in a VPC.

*/ inline const Aws::Vector& GetVpcSecurityGroups() const{ return m_vpcSecurityGroups; } /** *

A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are * associated with the cluster. This parameter is returned only if the cluster is * in a VPC.

*/ inline bool VpcSecurityGroupsHasBeenSet() const { return m_vpcSecurityGroupsHasBeenSet; } /** *

A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are * associated with the cluster. This parameter is returned only if the cluster is * in a VPC.

*/ inline void SetVpcSecurityGroups(const Aws::Vector& value) { m_vpcSecurityGroupsHasBeenSet = true; m_vpcSecurityGroups = value; } /** *

A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are * associated with the cluster. This parameter is returned only if the cluster is * in a VPC.

*/ inline void SetVpcSecurityGroups(Aws::Vector&& value) { m_vpcSecurityGroupsHasBeenSet = true; m_vpcSecurityGroups = std::move(value); } /** *

A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are * associated with the cluster. This parameter is returned only if the cluster is * in a VPC.

*/ inline Cluster& WithVpcSecurityGroups(const Aws::Vector& value) { SetVpcSecurityGroups(value); return *this;} /** *

A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are * associated with the cluster. This parameter is returned only if the cluster is * in a VPC.

*/ inline Cluster& WithVpcSecurityGroups(Aws::Vector&& value) { SetVpcSecurityGroups(std::move(value)); return *this;} /** *

A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are * associated with the cluster. This parameter is returned only if the cluster is * in a VPC.

*/ inline Cluster& AddVpcSecurityGroups(const VpcSecurityGroupMembership& value) { m_vpcSecurityGroupsHasBeenSet = true; m_vpcSecurityGroups.push_back(value); return *this; } /** *

A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are * associated with the cluster. This parameter is returned only if the cluster is * in a VPC.

*/ inline Cluster& AddVpcSecurityGroups(VpcSecurityGroupMembership&& value) { m_vpcSecurityGroupsHasBeenSet = true; m_vpcSecurityGroups.push_back(std::move(value)); return *this; } /** *

The list of cluster parameter groups that are associated with this cluster. * Each parameter group in the list is returned with its status.

*/ inline const Aws::Vector& GetClusterParameterGroups() const{ return m_clusterParameterGroups; } /** *

The list of cluster parameter groups that are associated with this cluster. * Each parameter group in the list is returned with its status.

*/ inline bool ClusterParameterGroupsHasBeenSet() const { return m_clusterParameterGroupsHasBeenSet; } /** *

The list of cluster parameter groups that are associated with this cluster. * Each parameter group in the list is returned with its status.

*/ inline void SetClusterParameterGroups(const Aws::Vector& value) { m_clusterParameterGroupsHasBeenSet = true; m_clusterParameterGroups = value; } /** *

The list of cluster parameter groups that are associated with this cluster. * Each parameter group in the list is returned with its status.

*/ inline void SetClusterParameterGroups(Aws::Vector&& value) { m_clusterParameterGroupsHasBeenSet = true; m_clusterParameterGroups = std::move(value); } /** *

The list of cluster parameter groups that are associated with this cluster. * Each parameter group in the list is returned with its status.

*/ inline Cluster& WithClusterParameterGroups(const Aws::Vector& value) { SetClusterParameterGroups(value); return *this;} /** *

The list of cluster parameter groups that are associated with this cluster. * Each parameter group in the list is returned with its status.

*/ inline Cluster& WithClusterParameterGroups(Aws::Vector&& value) { SetClusterParameterGroups(std::move(value)); return *this;} /** *

The list of cluster parameter groups that are associated with this cluster. * Each parameter group in the list is returned with its status.

*/ inline Cluster& AddClusterParameterGroups(const ClusterParameterGroupStatus& value) { m_clusterParameterGroupsHasBeenSet = true; m_clusterParameterGroups.push_back(value); return *this; } /** *

The list of cluster parameter groups that are associated with this cluster. * Each parameter group in the list is returned with its status.

*/ inline Cluster& AddClusterParameterGroups(ClusterParameterGroupStatus&& value) { m_clusterParameterGroupsHasBeenSet = true; m_clusterParameterGroups.push_back(std::move(value)); return *this; } /** *

The name of the subnet group that is associated with the cluster. This * parameter is valid only when the cluster is in a VPC.

*/ inline const Aws::String& GetClusterSubnetGroupName() const{ return m_clusterSubnetGroupName; } /** *

The name of the subnet group that is associated with the cluster. This * parameter is valid only when the cluster is in a VPC.

*/ inline bool ClusterSubnetGroupNameHasBeenSet() const { return m_clusterSubnetGroupNameHasBeenSet; } /** *

The name of the subnet group that is associated with the cluster. This * parameter is valid only when the cluster is in a VPC.

*/ inline void SetClusterSubnetGroupName(const Aws::String& value) { m_clusterSubnetGroupNameHasBeenSet = true; m_clusterSubnetGroupName = value; } /** *

The name of the subnet group that is associated with the cluster. This * parameter is valid only when the cluster is in a VPC.

*/ inline void SetClusterSubnetGroupName(Aws::String&& value) { m_clusterSubnetGroupNameHasBeenSet = true; m_clusterSubnetGroupName = std::move(value); } /** *

The name of the subnet group that is associated with the cluster. This * parameter is valid only when the cluster is in a VPC.

*/ inline void SetClusterSubnetGroupName(const char* value) { m_clusterSubnetGroupNameHasBeenSet = true; m_clusterSubnetGroupName.assign(value); } /** *

The name of the subnet group that is associated with the cluster. This * parameter is valid only when the cluster is in a VPC.

*/ inline Cluster& WithClusterSubnetGroupName(const Aws::String& value) { SetClusterSubnetGroupName(value); return *this;} /** *

The name of the subnet group that is associated with the cluster. This * parameter is valid only when the cluster is in a VPC.

*/ inline Cluster& WithClusterSubnetGroupName(Aws::String&& value) { SetClusterSubnetGroupName(std::move(value)); return *this;} /** *

The name of the subnet group that is associated with the cluster. This * parameter is valid only when the cluster is in a VPC.

*/ inline Cluster& WithClusterSubnetGroupName(const char* value) { SetClusterSubnetGroupName(value); return *this;} /** *

The identifier of the VPC the cluster is in, if the cluster is in a VPC.

*/ inline const Aws::String& GetVpcId() const{ return m_vpcId; } /** *

The identifier of the VPC the cluster is in, if the cluster is in a VPC.

*/ inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; } /** *

The identifier of the VPC the cluster is in, if the cluster is in a VPC.

*/ inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; } /** *

The identifier of the VPC the cluster is in, if the cluster is in a VPC.

*/ inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); } /** *

The identifier of the VPC the cluster is in, if the cluster is in a VPC.

*/ inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); } /** *

The identifier of the VPC the cluster is in, if the cluster is in a VPC.

*/ inline Cluster& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;} /** *

The identifier of the VPC the cluster is in, if the cluster is in a VPC.

*/ inline Cluster& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;} /** *

The identifier of the VPC the cluster is in, if the cluster is in a VPC.

*/ inline Cluster& WithVpcId(const char* value) { SetVpcId(value); return *this;} /** *

The name of the Availability Zone in which the cluster is located.

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

The name of the Availability Zone in which the cluster is located.

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

The name of the Availability Zone in which the cluster is located.

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

The name of the Availability Zone in which the cluster is located.

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

The name of the Availability Zone in which the cluster is located.

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

The name of the Availability Zone in which the cluster is located.

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

The name of the Availability Zone in which the cluster is located.

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

The name of the Availability Zone in which the cluster is located.

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

The weekly time range, in Universal Coordinated Time (UTC), during which * system maintenance can occur.

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

The weekly time range, in Universal Coordinated Time (UTC), during which * system maintenance can occur.

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

The weekly time range, in Universal Coordinated Time (UTC), during which * system maintenance can occur.

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

The weekly time range, in Universal Coordinated Time (UTC), during which * system maintenance can occur.

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

The weekly time range, in Universal Coordinated Time (UTC), during which * system maintenance can occur.

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

The weekly time range, in Universal Coordinated Time (UTC), during which * system maintenance can occur.

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

The weekly time range, in Universal Coordinated Time (UTC), during which * system maintenance can occur.

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

The weekly time range, in Universal Coordinated Time (UTC), during which * system maintenance can occur.

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

A value that, if present, indicates that changes to the cluster are pending. * Specific pending changes are identified by subelements.

*/ inline const PendingModifiedValues& GetPendingModifiedValues() const{ return m_pendingModifiedValues; } /** *

A value that, if present, indicates that changes to the cluster are pending. * Specific pending changes are identified by subelements.

*/ inline bool PendingModifiedValuesHasBeenSet() const { return m_pendingModifiedValuesHasBeenSet; } /** *

A value that, if present, indicates that changes to the cluster are pending. * Specific pending changes are identified by subelements.

*/ inline void SetPendingModifiedValues(const PendingModifiedValues& value) { m_pendingModifiedValuesHasBeenSet = true; m_pendingModifiedValues = value; } /** *

A value that, if present, indicates that changes to the cluster are pending. * Specific pending changes are identified by subelements.

*/ inline void SetPendingModifiedValues(PendingModifiedValues&& value) { m_pendingModifiedValuesHasBeenSet = true; m_pendingModifiedValues = std::move(value); } /** *

A value that, if present, indicates that changes to the cluster are pending. * Specific pending changes are identified by subelements.

*/ inline Cluster& WithPendingModifiedValues(const PendingModifiedValues& value) { SetPendingModifiedValues(value); return *this;} /** *

A value that, if present, indicates that changes to the cluster are pending. * Specific pending changes are identified by subelements.

*/ inline Cluster& WithPendingModifiedValues(PendingModifiedValues&& value) { SetPendingModifiedValues(std::move(value)); return *this;} /** *

The version ID of the Amazon Redshift engine that is running on the * cluster.

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

The version ID of the Amazon Redshift engine that is running on the * cluster.

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

The version ID of the Amazon Redshift engine that is running on the * cluster.

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

The version ID of the Amazon Redshift engine that is running on the * cluster.

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

The version ID of the Amazon Redshift engine that is running on the * cluster.

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

The version ID of the Amazon Redshift engine that is running on the * cluster.

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

The version ID of the Amazon Redshift engine that is running on the * cluster.

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

The version ID of the Amazon Redshift engine that is running on the * cluster.

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

A boolean value that, if true, indicates that major version * upgrades will be applied automatically to the cluster during the maintenance * window.

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

A boolean value that, if true, indicates that major version * upgrades will be applied automatically to the cluster during the maintenance * window.

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

A boolean value that, if true, indicates that major version * upgrades will be applied automatically to the cluster during the maintenance * window.

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

A boolean value that, if true, indicates that major version * upgrades will be applied automatically to the cluster during the maintenance * window.

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

The number of compute nodes in the cluster.

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

The number of compute nodes in the cluster.

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

The number of compute nodes in the cluster.

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

The number of compute nodes in the cluster.

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

A boolean value that, if true, indicates that the cluster can be * accessed from a public network.

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

A boolean value that, if true, indicates that the cluster can be * accessed from a public network.

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

A boolean value that, if true, indicates that the cluster can be * accessed from a public network.

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

A boolean value that, if true, indicates that the cluster can be * accessed from a public network.

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

A boolean value that, if true, indicates that data in the * cluster is encrypted at rest.

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

A boolean value that, if true, indicates that data in the * cluster is encrypted at rest.

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

A boolean value that, if true, indicates that data in the * cluster is encrypted at rest.

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

A boolean value that, if true, indicates that data in the * cluster is encrypted at rest.

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

A value that describes the status of a cluster restore action. This parameter * returns null if the cluster was not created by restoring a snapshot.

*/ inline const RestoreStatus& GetRestoreStatus() const{ return m_restoreStatus; } /** *

A value that describes the status of a cluster restore action. This parameter * returns null if the cluster was not created by restoring a snapshot.

*/ inline bool RestoreStatusHasBeenSet() const { return m_restoreStatusHasBeenSet; } /** *

A value that describes the status of a cluster restore action. This parameter * returns null if the cluster was not created by restoring a snapshot.

*/ inline void SetRestoreStatus(const RestoreStatus& value) { m_restoreStatusHasBeenSet = true; m_restoreStatus = value; } /** *

A value that describes the status of a cluster restore action. This parameter * returns null if the cluster was not created by restoring a snapshot.

*/ inline void SetRestoreStatus(RestoreStatus&& value) { m_restoreStatusHasBeenSet = true; m_restoreStatus = std::move(value); } /** *

A value that describes the status of a cluster restore action. This parameter * returns null if the cluster was not created by restoring a snapshot.

*/ inline Cluster& WithRestoreStatus(const RestoreStatus& value) { SetRestoreStatus(value); return *this;} /** *

A value that describes the status of a cluster restore action. This parameter * returns null if the cluster was not created by restoring a snapshot.

*/ inline Cluster& WithRestoreStatus(RestoreStatus&& value) { SetRestoreStatus(std::move(value)); return *this;} /** *

*/ inline const DataTransferProgress& GetDataTransferProgress() const{ return m_dataTransferProgress; } /** *

*/ inline bool DataTransferProgressHasBeenSet() const { return m_dataTransferProgressHasBeenSet; } /** *

*/ inline void SetDataTransferProgress(const DataTransferProgress& value) { m_dataTransferProgressHasBeenSet = true; m_dataTransferProgress = value; } /** *

*/ inline void SetDataTransferProgress(DataTransferProgress&& value) { m_dataTransferProgressHasBeenSet = true; m_dataTransferProgress = std::move(value); } /** *

*/ inline Cluster& WithDataTransferProgress(const DataTransferProgress& value) { SetDataTransferProgress(value); return *this;} /** *

*/ inline Cluster& WithDataTransferProgress(DataTransferProgress&& value) { SetDataTransferProgress(std::move(value)); return *this;} /** *

A value that reports whether the Amazon Redshift cluster has finished * applying any hardware security module (HSM) settings changes specified in a * modify cluster command.

Values: active, applying

*/ inline const HsmStatus& GetHsmStatus() const{ return m_hsmStatus; } /** *

A value that reports whether the Amazon Redshift cluster has finished * applying any hardware security module (HSM) settings changes specified in a * modify cluster command.

Values: active, applying

*/ inline bool HsmStatusHasBeenSet() const { return m_hsmStatusHasBeenSet; } /** *

A value that reports whether the Amazon Redshift cluster has finished * applying any hardware security module (HSM) settings changes specified in a * modify cluster command.

Values: active, applying

*/ inline void SetHsmStatus(const HsmStatus& value) { m_hsmStatusHasBeenSet = true; m_hsmStatus = value; } /** *

A value that reports whether the Amazon Redshift cluster has finished * applying any hardware security module (HSM) settings changes specified in a * modify cluster command.

Values: active, applying

*/ inline void SetHsmStatus(HsmStatus&& value) { m_hsmStatusHasBeenSet = true; m_hsmStatus = std::move(value); } /** *

A value that reports whether the Amazon Redshift cluster has finished * applying any hardware security module (HSM) settings changes specified in a * modify cluster command.

Values: active, applying

*/ inline Cluster& WithHsmStatus(const HsmStatus& value) { SetHsmStatus(value); return *this;} /** *

A value that reports whether the Amazon Redshift cluster has finished * applying any hardware security module (HSM) settings changes specified in a * modify cluster command.

Values: active, applying

*/ inline Cluster& WithHsmStatus(HsmStatus&& value) { SetHsmStatus(std::move(value)); return *this;} /** *

A value that returns the destination region and retention period that are * configured for cross-region snapshot copy.

*/ inline const ClusterSnapshotCopyStatus& GetClusterSnapshotCopyStatus() const{ return m_clusterSnapshotCopyStatus; } /** *

A value that returns the destination region and retention period that are * configured for cross-region snapshot copy.

*/ inline bool ClusterSnapshotCopyStatusHasBeenSet() const { return m_clusterSnapshotCopyStatusHasBeenSet; } /** *

A value that returns the destination region and retention period that are * configured for cross-region snapshot copy.

*/ inline void SetClusterSnapshotCopyStatus(const ClusterSnapshotCopyStatus& value) { m_clusterSnapshotCopyStatusHasBeenSet = true; m_clusterSnapshotCopyStatus = value; } /** *

A value that returns the destination region and retention period that are * configured for cross-region snapshot copy.

*/ inline void SetClusterSnapshotCopyStatus(ClusterSnapshotCopyStatus&& value) { m_clusterSnapshotCopyStatusHasBeenSet = true; m_clusterSnapshotCopyStatus = std::move(value); } /** *

A value that returns the destination region and retention period that are * configured for cross-region snapshot copy.

*/ inline Cluster& WithClusterSnapshotCopyStatus(const ClusterSnapshotCopyStatus& value) { SetClusterSnapshotCopyStatus(value); return *this;} /** *

A value that returns the destination region and retention period that are * configured for cross-region snapshot copy.

*/ inline Cluster& WithClusterSnapshotCopyStatus(ClusterSnapshotCopyStatus&& value) { SetClusterSnapshotCopyStatus(std::move(value)); return *this;} /** *

The public key for the cluster.

*/ inline const Aws::String& GetClusterPublicKey() const{ return m_clusterPublicKey; } /** *

The public key for the cluster.

*/ inline bool ClusterPublicKeyHasBeenSet() const { return m_clusterPublicKeyHasBeenSet; } /** *

The public key for the cluster.

*/ inline void SetClusterPublicKey(const Aws::String& value) { m_clusterPublicKeyHasBeenSet = true; m_clusterPublicKey = value; } /** *

The public key for the cluster.

*/ inline void SetClusterPublicKey(Aws::String&& value) { m_clusterPublicKeyHasBeenSet = true; m_clusterPublicKey = std::move(value); } /** *

The public key for the cluster.

*/ inline void SetClusterPublicKey(const char* value) { m_clusterPublicKeyHasBeenSet = true; m_clusterPublicKey.assign(value); } /** *

The public key for the cluster.

*/ inline Cluster& WithClusterPublicKey(const Aws::String& value) { SetClusterPublicKey(value); return *this;} /** *

The public key for the cluster.

*/ inline Cluster& WithClusterPublicKey(Aws::String&& value) { SetClusterPublicKey(std::move(value)); return *this;} /** *

The public key for the cluster.

*/ inline Cluster& WithClusterPublicKey(const char* value) { SetClusterPublicKey(value); return *this;} /** *

The nodes in the cluster.

*/ inline const Aws::Vector& GetClusterNodes() const{ return m_clusterNodes; } /** *

The nodes in the cluster.

*/ inline bool ClusterNodesHasBeenSet() const { return m_clusterNodesHasBeenSet; } /** *

The nodes in the cluster.

*/ inline void SetClusterNodes(const Aws::Vector& value) { m_clusterNodesHasBeenSet = true; m_clusterNodes = value; } /** *

The nodes in the cluster.

*/ inline void SetClusterNodes(Aws::Vector&& value) { m_clusterNodesHasBeenSet = true; m_clusterNodes = std::move(value); } /** *

The nodes in the cluster.

*/ inline Cluster& WithClusterNodes(const Aws::Vector& value) { SetClusterNodes(value); return *this;} /** *

The nodes in the cluster.

*/ inline Cluster& WithClusterNodes(Aws::Vector&& value) { SetClusterNodes(std::move(value)); return *this;} /** *

The nodes in the cluster.

*/ inline Cluster& AddClusterNodes(const ClusterNode& value) { m_clusterNodesHasBeenSet = true; m_clusterNodes.push_back(value); return *this; } /** *

The nodes in the cluster.

*/ inline Cluster& AddClusterNodes(ClusterNode&& value) { m_clusterNodesHasBeenSet = true; m_clusterNodes.push_back(std::move(value)); return *this; } /** *

The status of the elastic IP (EIP) address.

*/ inline const ElasticIpStatus& GetElasticIpStatus() const{ return m_elasticIpStatus; } /** *

The status of the elastic IP (EIP) address.

*/ inline bool ElasticIpStatusHasBeenSet() const { return m_elasticIpStatusHasBeenSet; } /** *

The status of the elastic IP (EIP) address.

*/ inline void SetElasticIpStatus(const ElasticIpStatus& value) { m_elasticIpStatusHasBeenSet = true; m_elasticIpStatus = value; } /** *

The status of the elastic IP (EIP) address.

*/ inline void SetElasticIpStatus(ElasticIpStatus&& value) { m_elasticIpStatusHasBeenSet = true; m_elasticIpStatus = std::move(value); } /** *

The status of the elastic IP (EIP) address.

*/ inline Cluster& WithElasticIpStatus(const ElasticIpStatus& value) { SetElasticIpStatus(value); return *this;} /** *

The status of the elastic IP (EIP) address.

*/ inline Cluster& WithElasticIpStatus(ElasticIpStatus&& value) { SetElasticIpStatus(std::move(value)); return *this;} /** *

The specific revision number of the database in the cluster.

*/ inline const Aws::String& GetClusterRevisionNumber() const{ return m_clusterRevisionNumber; } /** *

The specific revision number of the database in the cluster.

*/ inline bool ClusterRevisionNumberHasBeenSet() const { return m_clusterRevisionNumberHasBeenSet; } /** *

The specific revision number of the database in the cluster.

*/ inline void SetClusterRevisionNumber(const Aws::String& value) { m_clusterRevisionNumberHasBeenSet = true; m_clusterRevisionNumber = value; } /** *

The specific revision number of the database in the cluster.

*/ inline void SetClusterRevisionNumber(Aws::String&& value) { m_clusterRevisionNumberHasBeenSet = true; m_clusterRevisionNumber = std::move(value); } /** *

The specific revision number of the database in the cluster.

*/ inline void SetClusterRevisionNumber(const char* value) { m_clusterRevisionNumberHasBeenSet = true; m_clusterRevisionNumber.assign(value); } /** *

The specific revision number of the database in the cluster.

*/ inline Cluster& WithClusterRevisionNumber(const Aws::String& value) { SetClusterRevisionNumber(value); return *this;} /** *

The specific revision number of the database in the cluster.

*/ inline Cluster& WithClusterRevisionNumber(Aws::String&& value) { SetClusterRevisionNumber(std::move(value)); return *this;} /** *

The specific revision number of the database in the cluster.

*/ inline Cluster& WithClusterRevisionNumber(const char* value) { SetClusterRevisionNumber(value); return *this;} /** *

The list of tags for the cluster.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The list of tags for the cluster.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The list of tags for the cluster.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The list of tags for the cluster.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The list of tags for the cluster.

*/ inline Cluster& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The list of tags for the cluster.

*/ inline Cluster& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The list of tags for the cluster.

*/ inline Cluster& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The list of tags for the cluster.

*/ inline Cluster& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The Key Management Service (KMS) key ID of the encryption key used 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 used to encrypt * data in the cluster.

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

The Key Management Service (KMS) key ID of the encryption key used 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 used 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 used 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 used to encrypt * data in the cluster.

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

The Key Management Service (KMS) key ID of the encryption key used to encrypt * data in the cluster.

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

The Key Management Service (KMS) key ID of the encryption key used to encrypt * data in the cluster.

*/ inline Cluster& WithKmsKeyId(const char* value) { SetKmsKeyId(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 Cluster& WithEnhancedVpcRouting(bool value) { SetEnhancedVpcRouting(value); return *this;} /** *

A list of Identity and Access Management (IAM) roles that can be used by the * cluster to access other Amazon Web Services services.

*/ inline const Aws::Vector& GetIamRoles() const{ return m_iamRoles; } /** *

A list of Identity and Access Management (IAM) roles that can be used by the * cluster to access other Amazon Web Services services.

*/ inline bool IamRolesHasBeenSet() const { return m_iamRolesHasBeenSet; } /** *

A list of Identity and Access Management (IAM) roles that can be used by the * cluster to access other Amazon Web Services services.

*/ inline void SetIamRoles(const Aws::Vector& value) { m_iamRolesHasBeenSet = true; m_iamRoles = value; } /** *

A list of Identity and Access Management (IAM) roles that can be used by the * cluster to access other Amazon Web Services services.

*/ inline void SetIamRoles(Aws::Vector&& value) { m_iamRolesHasBeenSet = true; m_iamRoles = std::move(value); } /** *

A list of Identity and Access Management (IAM) roles that can be used by the * cluster to access other Amazon Web Services services.

*/ inline Cluster& WithIamRoles(const Aws::Vector& value) { SetIamRoles(value); return *this;} /** *

A list of Identity and Access Management (IAM) roles that can be used by the * cluster to access other Amazon Web Services services.

*/ inline Cluster& WithIamRoles(Aws::Vector&& value) { SetIamRoles(std::move(value)); return *this;} /** *

A list of Identity and Access Management (IAM) roles that can be used by the * cluster to access other Amazon Web Services services.

*/ inline Cluster& AddIamRoles(const ClusterIamRole& value) { m_iamRolesHasBeenSet = true; m_iamRoles.push_back(value); return *this; } /** *

A list of Identity and Access Management (IAM) roles that can be used by the * cluster to access other Amazon Web Services services.

*/ inline Cluster& AddIamRoles(ClusterIamRole&& value) { m_iamRolesHasBeenSet = true; m_iamRoles.push_back(std::move(value)); return *this; } /** *

Cluster operations that are waiting to be started.

*/ inline const Aws::Vector& GetPendingActions() const{ return m_pendingActions; } /** *

Cluster operations that are waiting to be started.

*/ inline bool PendingActionsHasBeenSet() const { return m_pendingActionsHasBeenSet; } /** *

Cluster operations that are waiting to be started.

*/ inline void SetPendingActions(const Aws::Vector& value) { m_pendingActionsHasBeenSet = true; m_pendingActions = value; } /** *

Cluster operations that are waiting to be started.

*/ inline void SetPendingActions(Aws::Vector&& value) { m_pendingActionsHasBeenSet = true; m_pendingActions = std::move(value); } /** *

Cluster operations that are waiting to be started.

*/ inline Cluster& WithPendingActions(const Aws::Vector& value) { SetPendingActions(value); return *this;} /** *

Cluster operations that are waiting to be started.

*/ inline Cluster& WithPendingActions(Aws::Vector&& value) { SetPendingActions(std::move(value)); return *this;} /** *

Cluster operations that are waiting to be started.

*/ inline Cluster& AddPendingActions(const Aws::String& value) { m_pendingActionsHasBeenSet = true; m_pendingActions.push_back(value); return *this; } /** *

Cluster operations that are waiting to be started.

*/ inline Cluster& AddPendingActions(Aws::String&& value) { m_pendingActionsHasBeenSet = true; m_pendingActions.push_back(std::move(value)); return *this; } /** *

Cluster operations that are waiting to be started.

*/ inline Cluster& AddPendingActions(const char* value) { m_pendingActionsHasBeenSet = true; m_pendingActions.push_back(value); return *this; } /** *

The name of the maintenance track for the cluster.

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

The name of the maintenance track for the cluster.

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

The name of the maintenance track for the cluster.

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

The name of the maintenance track for the cluster.

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

The name of the maintenance track for the cluster.

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

The name of the maintenance track for the cluster.

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

The name of the maintenance track for the cluster.

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

The name of the maintenance track for the cluster.

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

The number of nodes that you can resize the cluster to with the elastic * resize method.

*/ inline const Aws::String& GetElasticResizeNumberOfNodeOptions() const{ return m_elasticResizeNumberOfNodeOptions; } /** *

The number of nodes that you can resize the cluster to with the elastic * resize method.

*/ inline bool ElasticResizeNumberOfNodeOptionsHasBeenSet() const { return m_elasticResizeNumberOfNodeOptionsHasBeenSet; } /** *

The number of nodes that you can resize the cluster to with the elastic * resize method.

*/ inline void SetElasticResizeNumberOfNodeOptions(const Aws::String& value) { m_elasticResizeNumberOfNodeOptionsHasBeenSet = true; m_elasticResizeNumberOfNodeOptions = value; } /** *

The number of nodes that you can resize the cluster to with the elastic * resize method.

*/ inline void SetElasticResizeNumberOfNodeOptions(Aws::String&& value) { m_elasticResizeNumberOfNodeOptionsHasBeenSet = true; m_elasticResizeNumberOfNodeOptions = std::move(value); } /** *

The number of nodes that you can resize the cluster to with the elastic * resize method.

*/ inline void SetElasticResizeNumberOfNodeOptions(const char* value) { m_elasticResizeNumberOfNodeOptionsHasBeenSet = true; m_elasticResizeNumberOfNodeOptions.assign(value); } /** *

The number of nodes that you can resize the cluster to with the elastic * resize method.

*/ inline Cluster& WithElasticResizeNumberOfNodeOptions(const Aws::String& value) { SetElasticResizeNumberOfNodeOptions(value); return *this;} /** *

The number of nodes that you can resize the cluster to with the elastic * resize method.

*/ inline Cluster& WithElasticResizeNumberOfNodeOptions(Aws::String&& value) { SetElasticResizeNumberOfNodeOptions(std::move(value)); return *this;} /** *

The number of nodes that you can resize the cluster to with the elastic * resize method.

*/ inline Cluster& WithElasticResizeNumberOfNodeOptions(const char* value) { SetElasticResizeNumberOfNodeOptions(value); return *this;} /** *

Describes a group of DeferredMaintenanceWindow objects.

*/ inline const Aws::Vector& GetDeferredMaintenanceWindows() const{ return m_deferredMaintenanceWindows; } /** *

Describes a group of DeferredMaintenanceWindow objects.

*/ inline bool DeferredMaintenanceWindowsHasBeenSet() const { return m_deferredMaintenanceWindowsHasBeenSet; } /** *

Describes a group of DeferredMaintenanceWindow objects.

*/ inline void SetDeferredMaintenanceWindows(const Aws::Vector& value) { m_deferredMaintenanceWindowsHasBeenSet = true; m_deferredMaintenanceWindows = value; } /** *

Describes a group of DeferredMaintenanceWindow objects.

*/ inline void SetDeferredMaintenanceWindows(Aws::Vector&& value) { m_deferredMaintenanceWindowsHasBeenSet = true; m_deferredMaintenanceWindows = std::move(value); } /** *

Describes a group of DeferredMaintenanceWindow objects.

*/ inline Cluster& WithDeferredMaintenanceWindows(const Aws::Vector& value) { SetDeferredMaintenanceWindows(value); return *this;} /** *

Describes a group of DeferredMaintenanceWindow objects.

*/ inline Cluster& WithDeferredMaintenanceWindows(Aws::Vector&& value) { SetDeferredMaintenanceWindows(std::move(value)); return *this;} /** *

Describes a group of DeferredMaintenanceWindow objects.

*/ inline Cluster& AddDeferredMaintenanceWindows(const DeferredMaintenanceWindow& value) { m_deferredMaintenanceWindowsHasBeenSet = true; m_deferredMaintenanceWindows.push_back(value); return *this; } /** *

Describes a group of DeferredMaintenanceWindow objects.

*/ inline Cluster& AddDeferredMaintenanceWindows(DeferredMaintenanceWindow&& value) { m_deferredMaintenanceWindowsHasBeenSet = true; m_deferredMaintenanceWindows.push_back(std::move(value)); return *this; } /** *

A unique identifier for the cluster snapshot schedule.

*/ inline const Aws::String& GetSnapshotScheduleIdentifier() const{ return m_snapshotScheduleIdentifier; } /** *

A unique identifier for the cluster snapshot schedule.

*/ inline bool SnapshotScheduleIdentifierHasBeenSet() const { return m_snapshotScheduleIdentifierHasBeenSet; } /** *

A unique identifier for the cluster snapshot schedule.

*/ inline void SetSnapshotScheduleIdentifier(const Aws::String& value) { m_snapshotScheduleIdentifierHasBeenSet = true; m_snapshotScheduleIdentifier = value; } /** *

A unique identifier for the cluster snapshot schedule.

*/ inline void SetSnapshotScheduleIdentifier(Aws::String&& value) { m_snapshotScheduleIdentifierHasBeenSet = true; m_snapshotScheduleIdentifier = std::move(value); } /** *

A unique identifier for the cluster snapshot schedule.

*/ inline void SetSnapshotScheduleIdentifier(const char* value) { m_snapshotScheduleIdentifierHasBeenSet = true; m_snapshotScheduleIdentifier.assign(value); } /** *

A unique identifier for the cluster snapshot schedule.

*/ inline Cluster& WithSnapshotScheduleIdentifier(const Aws::String& value) { SetSnapshotScheduleIdentifier(value); return *this;} /** *

A unique identifier for the cluster snapshot schedule.

*/ inline Cluster& WithSnapshotScheduleIdentifier(Aws::String&& value) { SetSnapshotScheduleIdentifier(std::move(value)); return *this;} /** *

A unique identifier for the cluster snapshot schedule.

*/ inline Cluster& WithSnapshotScheduleIdentifier(const char* value) { SetSnapshotScheduleIdentifier(value); return *this;} /** *

The current state of the cluster snapshot schedule.

*/ inline const ScheduleState& GetSnapshotScheduleState() const{ return m_snapshotScheduleState; } /** *

The current state of the cluster snapshot schedule.

*/ inline bool SnapshotScheduleStateHasBeenSet() const { return m_snapshotScheduleStateHasBeenSet; } /** *

The current state of the cluster snapshot schedule.

*/ inline void SetSnapshotScheduleState(const ScheduleState& value) { m_snapshotScheduleStateHasBeenSet = true; m_snapshotScheduleState = value; } /** *

The current state of the cluster snapshot schedule.

*/ inline void SetSnapshotScheduleState(ScheduleState&& value) { m_snapshotScheduleStateHasBeenSet = true; m_snapshotScheduleState = std::move(value); } /** *

The current state of the cluster snapshot schedule.

*/ inline Cluster& WithSnapshotScheduleState(const ScheduleState& value) { SetSnapshotScheduleState(value); return *this;} /** *

The current state of the cluster snapshot schedule.

*/ inline Cluster& WithSnapshotScheduleState(ScheduleState&& value) { SetSnapshotScheduleState(std::move(value)); return *this;} /** *

The date and time when the next snapshot is expected to be taken for clusters * with a valid snapshot schedule and backups enabled.

*/ inline const Aws::Utils::DateTime& GetExpectedNextSnapshotScheduleTime() const{ return m_expectedNextSnapshotScheduleTime; } /** *

The date and time when the next snapshot is expected to be taken for clusters * with a valid snapshot schedule and backups enabled.

*/ inline bool ExpectedNextSnapshotScheduleTimeHasBeenSet() const { return m_expectedNextSnapshotScheduleTimeHasBeenSet; } /** *

The date and time when the next snapshot is expected to be taken for clusters * with a valid snapshot schedule and backups enabled.

*/ inline void SetExpectedNextSnapshotScheduleTime(const Aws::Utils::DateTime& value) { m_expectedNextSnapshotScheduleTimeHasBeenSet = true; m_expectedNextSnapshotScheduleTime = value; } /** *

The date and time when the next snapshot is expected to be taken for clusters * with a valid snapshot schedule and backups enabled.

*/ inline void SetExpectedNextSnapshotScheduleTime(Aws::Utils::DateTime&& value) { m_expectedNextSnapshotScheduleTimeHasBeenSet = true; m_expectedNextSnapshotScheduleTime = std::move(value); } /** *

The date and time when the next snapshot is expected to be taken for clusters * with a valid snapshot schedule and backups enabled.

*/ inline Cluster& WithExpectedNextSnapshotScheduleTime(const Aws::Utils::DateTime& value) { SetExpectedNextSnapshotScheduleTime(value); return *this;} /** *

The date and time when the next snapshot is expected to be taken for clusters * with a valid snapshot schedule and backups enabled.

*/ inline Cluster& WithExpectedNextSnapshotScheduleTime(Aws::Utils::DateTime&& value) { SetExpectedNextSnapshotScheduleTime(std::move(value)); return *this;} /** *

The status of next expected snapshot for clusters having a valid snapshot * schedule and backups enabled. Possible values are the following:

  • *

    OnTrack - The next snapshot is expected to be taken on time.

  • *

    Pending - The next snapshot is pending to be taken.

*/ inline const Aws::String& GetExpectedNextSnapshotScheduleTimeStatus() const{ return m_expectedNextSnapshotScheduleTimeStatus; } /** *

The status of next expected snapshot for clusters having a valid snapshot * schedule and backups enabled. Possible values are the following:

  • *

    OnTrack - The next snapshot is expected to be taken on time.

  • *

    Pending - The next snapshot is pending to be taken.

*/ inline bool ExpectedNextSnapshotScheduleTimeStatusHasBeenSet() const { return m_expectedNextSnapshotScheduleTimeStatusHasBeenSet; } /** *

The status of next expected snapshot for clusters having a valid snapshot * schedule and backups enabled. Possible values are the following:

  • *

    OnTrack - The next snapshot is expected to be taken on time.

  • *

    Pending - The next snapshot is pending to be taken.

*/ inline void SetExpectedNextSnapshotScheduleTimeStatus(const Aws::String& value) { m_expectedNextSnapshotScheduleTimeStatusHasBeenSet = true; m_expectedNextSnapshotScheduleTimeStatus = value; } /** *

The status of next expected snapshot for clusters having a valid snapshot * schedule and backups enabled. Possible values are the following:

  • *

    OnTrack - The next snapshot is expected to be taken on time.

  • *

    Pending - The next snapshot is pending to be taken.

*/ inline void SetExpectedNextSnapshotScheduleTimeStatus(Aws::String&& value) { m_expectedNextSnapshotScheduleTimeStatusHasBeenSet = true; m_expectedNextSnapshotScheduleTimeStatus = std::move(value); } /** *

The status of next expected snapshot for clusters having a valid snapshot * schedule and backups enabled. Possible values are the following:

  • *

    OnTrack - The next snapshot is expected to be taken on time.

  • *

    Pending - The next snapshot is pending to be taken.

*/ inline void SetExpectedNextSnapshotScheduleTimeStatus(const char* value) { m_expectedNextSnapshotScheduleTimeStatusHasBeenSet = true; m_expectedNextSnapshotScheduleTimeStatus.assign(value); } /** *

The status of next expected snapshot for clusters having a valid snapshot * schedule and backups enabled. Possible values are the following:

  • *

    OnTrack - The next snapshot is expected to be taken on time.

  • *

    Pending - The next snapshot is pending to be taken.

*/ inline Cluster& WithExpectedNextSnapshotScheduleTimeStatus(const Aws::String& value) { SetExpectedNextSnapshotScheduleTimeStatus(value); return *this;} /** *

The status of next expected snapshot for clusters having a valid snapshot * schedule and backups enabled. Possible values are the following:

  • *

    OnTrack - The next snapshot is expected to be taken on time.

  • *

    Pending - The next snapshot is pending to be taken.

*/ inline Cluster& WithExpectedNextSnapshotScheduleTimeStatus(Aws::String&& value) { SetExpectedNextSnapshotScheduleTimeStatus(std::move(value)); return *this;} /** *

The status of next expected snapshot for clusters having a valid snapshot * schedule and backups enabled. Possible values are the following:

  • *

    OnTrack - The next snapshot is expected to be taken on time.

  • *

    Pending - The next snapshot is pending to be taken.

*/ inline Cluster& WithExpectedNextSnapshotScheduleTimeStatus(const char* value) { SetExpectedNextSnapshotScheduleTimeStatus(value); return *this;} /** *

The date and time in UTC when system maintenance can begin.

*/ inline const Aws::Utils::DateTime& GetNextMaintenanceWindowStartTime() const{ return m_nextMaintenanceWindowStartTime; } /** *

The date and time in UTC when system maintenance can begin.

*/ inline bool NextMaintenanceWindowStartTimeHasBeenSet() const { return m_nextMaintenanceWindowStartTimeHasBeenSet; } /** *

The date and time in UTC when system maintenance can begin.

*/ inline void SetNextMaintenanceWindowStartTime(const Aws::Utils::DateTime& value) { m_nextMaintenanceWindowStartTimeHasBeenSet = true; m_nextMaintenanceWindowStartTime = value; } /** *

The date and time in UTC when system maintenance can begin.

*/ inline void SetNextMaintenanceWindowStartTime(Aws::Utils::DateTime&& value) { m_nextMaintenanceWindowStartTimeHasBeenSet = true; m_nextMaintenanceWindowStartTime = std::move(value); } /** *

The date and time in UTC when system maintenance can begin.

*/ inline Cluster& WithNextMaintenanceWindowStartTime(const Aws::Utils::DateTime& value) { SetNextMaintenanceWindowStartTime(value); return *this;} /** *

The date and time in UTC when system maintenance can begin.

*/ inline Cluster& WithNextMaintenanceWindowStartTime(Aws::Utils::DateTime&& value) { SetNextMaintenanceWindowStartTime(std::move(value)); return *this;} /** *

Returns the following:

  • AllowCancelResize: a boolean value * indicating if the resize operation can be cancelled.

  • *

    ResizeType: Returns ClassicResize

*/ inline const ResizeInfo& GetResizeInfo() const{ return m_resizeInfo; } /** *

Returns the following:

  • AllowCancelResize: a boolean value * indicating if the resize operation can be cancelled.

  • *

    ResizeType: Returns ClassicResize

*/ inline bool ResizeInfoHasBeenSet() const { return m_resizeInfoHasBeenSet; } /** *

Returns the following:

  • AllowCancelResize: a boolean value * indicating if the resize operation can be cancelled.

  • *

    ResizeType: Returns ClassicResize

*/ inline void SetResizeInfo(const ResizeInfo& value) { m_resizeInfoHasBeenSet = true; m_resizeInfo = value; } /** *

Returns the following:

  • AllowCancelResize: a boolean value * indicating if the resize operation can be cancelled.

  • *

    ResizeType: Returns ClassicResize

*/ inline void SetResizeInfo(ResizeInfo&& value) { m_resizeInfoHasBeenSet = true; m_resizeInfo = std::move(value); } /** *

Returns the following:

  • AllowCancelResize: a boolean value * indicating if the resize operation can be cancelled.

  • *

    ResizeType: Returns ClassicResize

*/ inline Cluster& WithResizeInfo(const ResizeInfo& value) { SetResizeInfo(value); return *this;} /** *

Returns the following:

  • AllowCancelResize: a boolean value * indicating if the resize operation can be cancelled.

  • *

    ResizeType: Returns ClassicResize

*/ inline Cluster& WithResizeInfo(ResizeInfo&& value) { SetResizeInfo(std::move(value)); return *this;} /** *

Describes the status of the Availability Zone relocation operation.

*/ inline const Aws::String& GetAvailabilityZoneRelocationStatus() const{ return m_availabilityZoneRelocationStatus; } /** *

Describes the status of the Availability Zone relocation operation.

*/ inline bool AvailabilityZoneRelocationStatusHasBeenSet() const { return m_availabilityZoneRelocationStatusHasBeenSet; } /** *

Describes the status of the Availability Zone relocation operation.

*/ inline void SetAvailabilityZoneRelocationStatus(const Aws::String& value) { m_availabilityZoneRelocationStatusHasBeenSet = true; m_availabilityZoneRelocationStatus = value; } /** *

Describes the status of the Availability Zone relocation operation.

*/ inline void SetAvailabilityZoneRelocationStatus(Aws::String&& value) { m_availabilityZoneRelocationStatusHasBeenSet = true; m_availabilityZoneRelocationStatus = std::move(value); } /** *

Describes the status of the Availability Zone relocation operation.

*/ inline void SetAvailabilityZoneRelocationStatus(const char* value) { m_availabilityZoneRelocationStatusHasBeenSet = true; m_availabilityZoneRelocationStatus.assign(value); } /** *

Describes the status of the Availability Zone relocation operation.

*/ inline Cluster& WithAvailabilityZoneRelocationStatus(const Aws::String& value) { SetAvailabilityZoneRelocationStatus(value); return *this;} /** *

Describes the status of the Availability Zone relocation operation.

*/ inline Cluster& WithAvailabilityZoneRelocationStatus(Aws::String&& value) { SetAvailabilityZoneRelocationStatus(std::move(value)); return *this;} /** *

Describes the status of the Availability Zone relocation operation.

*/ inline Cluster& WithAvailabilityZoneRelocationStatus(const char* value) { SetAvailabilityZoneRelocationStatus(value); return *this;} /** *

The namespace Amazon Resource Name (ARN) of the cluster.

*/ inline const Aws::String& GetClusterNamespaceArn() const{ return m_clusterNamespaceArn; } /** *

The namespace Amazon Resource Name (ARN) of the cluster.

*/ inline bool ClusterNamespaceArnHasBeenSet() const { return m_clusterNamespaceArnHasBeenSet; } /** *

The namespace Amazon Resource Name (ARN) of the cluster.

*/ inline void SetClusterNamespaceArn(const Aws::String& value) { m_clusterNamespaceArnHasBeenSet = true; m_clusterNamespaceArn = value; } /** *

The namespace Amazon Resource Name (ARN) of the cluster.

*/ inline void SetClusterNamespaceArn(Aws::String&& value) { m_clusterNamespaceArnHasBeenSet = true; m_clusterNamespaceArn = std::move(value); } /** *

The namespace Amazon Resource Name (ARN) of the cluster.

*/ inline void SetClusterNamespaceArn(const char* value) { m_clusterNamespaceArnHasBeenSet = true; m_clusterNamespaceArn.assign(value); } /** *

The namespace Amazon Resource Name (ARN) of the cluster.

*/ inline Cluster& WithClusterNamespaceArn(const Aws::String& value) { SetClusterNamespaceArn(value); return *this;} /** *

The namespace Amazon Resource Name (ARN) of the cluster.

*/ inline Cluster& WithClusterNamespaceArn(Aws::String&& value) { SetClusterNamespaceArn(std::move(value)); return *this;} /** *

The namespace Amazon Resource Name (ARN) of the cluster.

*/ inline Cluster& WithClusterNamespaceArn(const char* value) { SetClusterNamespaceArn(value); return *this;} /** *

The total storage capacity of the cluster in megabytes.

*/ inline long long GetTotalStorageCapacityInMegaBytes() const{ return m_totalStorageCapacityInMegaBytes; } /** *

The total storage capacity of the cluster in megabytes.

*/ inline bool TotalStorageCapacityInMegaBytesHasBeenSet() const { return m_totalStorageCapacityInMegaBytesHasBeenSet; } /** *

The total storage capacity of the cluster in megabytes.

*/ inline void SetTotalStorageCapacityInMegaBytes(long long value) { m_totalStorageCapacityInMegaBytesHasBeenSet = true; m_totalStorageCapacityInMegaBytes = value; } /** *

The total storage capacity of the cluster in megabytes.

*/ inline Cluster& WithTotalStorageCapacityInMegaBytes(long long value) { SetTotalStorageCapacityInMegaBytes(value); return *this;} /** *

This field is retired. Amazon Redshift automatically determines whether to * use AQUA (Advanced Query Accelerator).

*/ inline const AquaConfiguration& GetAquaConfiguration() const{ return m_aquaConfiguration; } /** *

This field is retired. Amazon Redshift automatically determines whether to * use AQUA (Advanced Query Accelerator).

*/ inline bool AquaConfigurationHasBeenSet() const { return m_aquaConfigurationHasBeenSet; } /** *

This field is retired. Amazon Redshift automatically determines whether to * use AQUA (Advanced Query Accelerator).

*/ inline void SetAquaConfiguration(const AquaConfiguration& value) { m_aquaConfigurationHasBeenSet = true; m_aquaConfiguration = value; } /** *

This field is retired. Amazon Redshift automatically determines whether to * use AQUA (Advanced Query Accelerator).

*/ inline void SetAquaConfiguration(AquaConfiguration&& value) { m_aquaConfigurationHasBeenSet = true; m_aquaConfiguration = std::move(value); } /** *

This field is retired. Amazon Redshift automatically determines whether to * use AQUA (Advanced Query Accelerator).

*/ inline Cluster& WithAquaConfiguration(const AquaConfiguration& value) { SetAquaConfiguration(value); return *this;} /** *

This field is retired. Amazon Redshift automatically determines whether to * use AQUA (Advanced Query Accelerator).

*/ inline Cluster& WithAquaConfiguration(AquaConfiguration&& value) { SetAquaConfiguration(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the IAM role set as default for the * cluster.

*/ inline const Aws::String& GetDefaultIamRoleArn() const{ return m_defaultIamRoleArn; } /** *

The Amazon Resource Name (ARN) for the IAM role set as default for the * cluster.

*/ inline bool DefaultIamRoleArnHasBeenSet() const { return m_defaultIamRoleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the IAM role set as default for the * cluster.

*/ inline void SetDefaultIamRoleArn(const Aws::String& value) { m_defaultIamRoleArnHasBeenSet = true; m_defaultIamRoleArn = value; } /** *

The Amazon Resource Name (ARN) for the IAM role set as default for the * cluster.

*/ inline void SetDefaultIamRoleArn(Aws::String&& value) { m_defaultIamRoleArnHasBeenSet = true; m_defaultIamRoleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) for the IAM role set as default for the * cluster.

*/ inline void SetDefaultIamRoleArn(const char* value) { m_defaultIamRoleArnHasBeenSet = true; m_defaultIamRoleArn.assign(value); } /** *

The Amazon Resource Name (ARN) for the IAM role set as default for the * cluster.

*/ inline Cluster& WithDefaultIamRoleArn(const Aws::String& value) { SetDefaultIamRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) for the IAM role set as default for the * cluster.

*/ inline Cluster& WithDefaultIamRoleArn(Aws::String&& value) { SetDefaultIamRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the IAM role set as default for the * cluster.

*/ inline Cluster& WithDefaultIamRoleArn(const char* value) { SetDefaultIamRoleArn(value); return *this;} /** *

The status of the reserved-node exchange request. Statuses include * in-progress and requested.

*/ inline const ReservedNodeExchangeStatus& GetReservedNodeExchangeStatus() const{ return m_reservedNodeExchangeStatus; } /** *

The status of the reserved-node exchange request. Statuses include * in-progress and requested.

*/ inline bool ReservedNodeExchangeStatusHasBeenSet() const { return m_reservedNodeExchangeStatusHasBeenSet; } /** *

The status of the reserved-node exchange request. Statuses include * in-progress and requested.

*/ inline void SetReservedNodeExchangeStatus(const ReservedNodeExchangeStatus& value) { m_reservedNodeExchangeStatusHasBeenSet = true; m_reservedNodeExchangeStatus = value; } /** *

The status of the reserved-node exchange request. Statuses include * in-progress and requested.

*/ inline void SetReservedNodeExchangeStatus(ReservedNodeExchangeStatus&& value) { m_reservedNodeExchangeStatusHasBeenSet = true; m_reservedNodeExchangeStatus = std::move(value); } /** *

The status of the reserved-node exchange request. Statuses include * in-progress and requested.

*/ inline Cluster& WithReservedNodeExchangeStatus(const ReservedNodeExchangeStatus& value) { SetReservedNodeExchangeStatus(value); return *this;} /** *

The status of the reserved-node exchange request. Statuses include * in-progress and requested.

*/ inline Cluster& WithReservedNodeExchangeStatus(ReservedNodeExchangeStatus&& value) { SetReservedNodeExchangeStatus(std::move(value)); return *this;} /** *

The custom domain name associated with the cluster.

*/ inline const Aws::String& GetCustomDomainName() const{ return m_customDomainName; } /** *

The custom domain name associated with the cluster.

*/ inline bool CustomDomainNameHasBeenSet() const { return m_customDomainNameHasBeenSet; } /** *

The custom domain name associated with the cluster.

*/ inline void SetCustomDomainName(const Aws::String& value) { m_customDomainNameHasBeenSet = true; m_customDomainName = value; } /** *

The custom domain name associated with the cluster.

*/ inline void SetCustomDomainName(Aws::String&& value) { m_customDomainNameHasBeenSet = true; m_customDomainName = std::move(value); } /** *

The custom domain name associated with the cluster.

*/ inline void SetCustomDomainName(const char* value) { m_customDomainNameHasBeenSet = true; m_customDomainName.assign(value); } /** *

The custom domain name associated with the cluster.

*/ inline Cluster& WithCustomDomainName(const Aws::String& value) { SetCustomDomainName(value); return *this;} /** *

The custom domain name associated with the cluster.

*/ inline Cluster& WithCustomDomainName(Aws::String&& value) { SetCustomDomainName(std::move(value)); return *this;} /** *

The custom domain name associated with the cluster.

*/ inline Cluster& WithCustomDomainName(const char* value) { SetCustomDomainName(value); return *this;} /** *

The certificate Amazon Resource Name (ARN) for the custom domain name.

*/ inline const Aws::String& GetCustomDomainCertificateArn() const{ return m_customDomainCertificateArn; } /** *

The certificate Amazon Resource Name (ARN) for the custom domain name.

*/ inline bool CustomDomainCertificateArnHasBeenSet() const { return m_customDomainCertificateArnHasBeenSet; } /** *

The certificate Amazon Resource Name (ARN) for the custom domain name.

*/ inline void SetCustomDomainCertificateArn(const Aws::String& value) { m_customDomainCertificateArnHasBeenSet = true; m_customDomainCertificateArn = value; } /** *

The certificate Amazon Resource Name (ARN) for the custom domain name.

*/ inline void SetCustomDomainCertificateArn(Aws::String&& value) { m_customDomainCertificateArnHasBeenSet = true; m_customDomainCertificateArn = std::move(value); } /** *

The certificate Amazon Resource Name (ARN) for the custom domain name.

*/ inline void SetCustomDomainCertificateArn(const char* value) { m_customDomainCertificateArnHasBeenSet = true; m_customDomainCertificateArn.assign(value); } /** *

The certificate Amazon Resource Name (ARN) for the custom domain name.

*/ inline Cluster& WithCustomDomainCertificateArn(const Aws::String& value) { SetCustomDomainCertificateArn(value); return *this;} /** *

The certificate Amazon Resource Name (ARN) for the custom domain name.

*/ inline Cluster& WithCustomDomainCertificateArn(Aws::String&& value) { SetCustomDomainCertificateArn(std::move(value)); return *this;} /** *

The certificate Amazon Resource Name (ARN) for the custom domain name.

*/ inline Cluster& WithCustomDomainCertificateArn(const char* value) { SetCustomDomainCertificateArn(value); return *this;} /** *

The expiration date for the certificate associated with the custom domain * name.

*/ inline const Aws::Utils::DateTime& GetCustomDomainCertificateExpiryDate() const{ return m_customDomainCertificateExpiryDate; } /** *

The expiration date for the certificate associated with the custom domain * name.

*/ inline bool CustomDomainCertificateExpiryDateHasBeenSet() const { return m_customDomainCertificateExpiryDateHasBeenSet; } /** *

The expiration date for the certificate associated with the custom domain * name.

*/ inline void SetCustomDomainCertificateExpiryDate(const Aws::Utils::DateTime& value) { m_customDomainCertificateExpiryDateHasBeenSet = true; m_customDomainCertificateExpiryDate = value; } /** *

The expiration date for the certificate associated with the custom domain * name.

*/ inline void SetCustomDomainCertificateExpiryDate(Aws::Utils::DateTime&& value) { m_customDomainCertificateExpiryDateHasBeenSet = true; m_customDomainCertificateExpiryDate = std::move(value); } /** *

The expiration date for the certificate associated with the custom domain * name.

*/ inline Cluster& WithCustomDomainCertificateExpiryDate(const Aws::Utils::DateTime& value) { SetCustomDomainCertificateExpiryDate(value); return *this;} /** *

The expiration date for the certificate associated with the custom domain * name.

*/ inline Cluster& WithCustomDomainCertificateExpiryDate(Aws::Utils::DateTime&& value) { SetCustomDomainCertificateExpiryDate(std::move(value)); return *this;} private: Aws::String m_clusterIdentifier; bool m_clusterIdentifierHasBeenSet = false; Aws::String m_nodeType; bool m_nodeTypeHasBeenSet = false; Aws::String m_clusterStatus; bool m_clusterStatusHasBeenSet = false; Aws::String m_clusterAvailabilityStatus; bool m_clusterAvailabilityStatusHasBeenSet = false; Aws::String m_modifyStatus; bool m_modifyStatusHasBeenSet = false; Aws::String m_masterUsername; bool m_masterUsernameHasBeenSet = false; Aws::String m_dBName; bool m_dBNameHasBeenSet = false; Endpoint m_endpoint; bool m_endpointHasBeenSet = false; Aws::Utils::DateTime m_clusterCreateTime; bool m_clusterCreateTimeHasBeenSet = false; int m_automatedSnapshotRetentionPeriod; bool m_automatedSnapshotRetentionPeriodHasBeenSet = false; int m_manualSnapshotRetentionPeriod; bool m_manualSnapshotRetentionPeriodHasBeenSet = false; Aws::Vector m_clusterSecurityGroups; bool m_clusterSecurityGroupsHasBeenSet = false; Aws::Vector m_vpcSecurityGroups; bool m_vpcSecurityGroupsHasBeenSet = false; Aws::Vector m_clusterParameterGroups; bool m_clusterParameterGroupsHasBeenSet = false; Aws::String m_clusterSubnetGroupName; bool m_clusterSubnetGroupNameHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; Aws::String m_availabilityZone; bool m_availabilityZoneHasBeenSet = false; Aws::String m_preferredMaintenanceWindow; bool m_preferredMaintenanceWindowHasBeenSet = false; PendingModifiedValues m_pendingModifiedValues; bool m_pendingModifiedValuesHasBeenSet = false; Aws::String m_clusterVersion; bool m_clusterVersionHasBeenSet = false; bool m_allowVersionUpgrade; bool m_allowVersionUpgradeHasBeenSet = false; int m_numberOfNodes; bool m_numberOfNodesHasBeenSet = false; bool m_publiclyAccessible; bool m_publiclyAccessibleHasBeenSet = false; bool m_encrypted; bool m_encryptedHasBeenSet = false; RestoreStatus m_restoreStatus; bool m_restoreStatusHasBeenSet = false; DataTransferProgress m_dataTransferProgress; bool m_dataTransferProgressHasBeenSet = false; HsmStatus m_hsmStatus; bool m_hsmStatusHasBeenSet = false; ClusterSnapshotCopyStatus m_clusterSnapshotCopyStatus; bool m_clusterSnapshotCopyStatusHasBeenSet = false; Aws::String m_clusterPublicKey; bool m_clusterPublicKeyHasBeenSet = false; Aws::Vector m_clusterNodes; bool m_clusterNodesHasBeenSet = false; ElasticIpStatus m_elasticIpStatus; bool m_elasticIpStatusHasBeenSet = false; Aws::String m_clusterRevisionNumber; bool m_clusterRevisionNumberHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; bool m_enhancedVpcRouting; bool m_enhancedVpcRoutingHasBeenSet = false; Aws::Vector m_iamRoles; bool m_iamRolesHasBeenSet = false; Aws::Vector m_pendingActions; bool m_pendingActionsHasBeenSet = false; Aws::String m_maintenanceTrackName; bool m_maintenanceTrackNameHasBeenSet = false; Aws::String m_elasticResizeNumberOfNodeOptions; bool m_elasticResizeNumberOfNodeOptionsHasBeenSet = false; Aws::Vector m_deferredMaintenanceWindows; bool m_deferredMaintenanceWindowsHasBeenSet = false; Aws::String m_snapshotScheduleIdentifier; bool m_snapshotScheduleIdentifierHasBeenSet = false; ScheduleState m_snapshotScheduleState; bool m_snapshotScheduleStateHasBeenSet = false; Aws::Utils::DateTime m_expectedNextSnapshotScheduleTime; bool m_expectedNextSnapshotScheduleTimeHasBeenSet = false; Aws::String m_expectedNextSnapshotScheduleTimeStatus; bool m_expectedNextSnapshotScheduleTimeStatusHasBeenSet = false; Aws::Utils::DateTime m_nextMaintenanceWindowStartTime; bool m_nextMaintenanceWindowStartTimeHasBeenSet = false; ResizeInfo m_resizeInfo; bool m_resizeInfoHasBeenSet = false; Aws::String m_availabilityZoneRelocationStatus; bool m_availabilityZoneRelocationStatusHasBeenSet = false; Aws::String m_clusterNamespaceArn; bool m_clusterNamespaceArnHasBeenSet = false; long long m_totalStorageCapacityInMegaBytes; bool m_totalStorageCapacityInMegaBytesHasBeenSet = false; AquaConfiguration m_aquaConfiguration; bool m_aquaConfigurationHasBeenSet = false; Aws::String m_defaultIamRoleArn; bool m_defaultIamRoleArnHasBeenSet = false; ReservedNodeExchangeStatus m_reservedNodeExchangeStatus; bool m_reservedNodeExchangeStatusHasBeenSet = false; Aws::String m_customDomainName; bool m_customDomainNameHasBeenSet = false; Aws::String m_customDomainCertificateArn; bool m_customDomainCertificateArnHasBeenSet = false; Aws::Utils::DateTime m_customDomainCertificateExpiryDate; bool m_customDomainCertificateExpiryDateHasBeenSet = false; }; } // namespace Model } // namespace Redshift } // namespace Aws