/** * 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 namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace Redshift { namespace Model { /** *

Describes a ClusterDbRevision.

See Also:

AWS * API Reference

*/ class ClusterDbRevision { public: AWS_REDSHIFT_API ClusterDbRevision(); AWS_REDSHIFT_API ClusterDbRevision(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_REDSHIFT_API ClusterDbRevision& 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 ClusterDbRevision& WithClusterIdentifier(const Aws::String& value) { SetClusterIdentifier(value); return *this;} /** *

The unique identifier of the cluster.

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

The unique identifier of the cluster.

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

A string representing the current cluster version.

*/ inline const Aws::String& GetCurrentDatabaseRevision() const{ return m_currentDatabaseRevision; } /** *

A string representing the current cluster version.

*/ inline bool CurrentDatabaseRevisionHasBeenSet() const { return m_currentDatabaseRevisionHasBeenSet; } /** *

A string representing the current cluster version.

*/ inline void SetCurrentDatabaseRevision(const Aws::String& value) { m_currentDatabaseRevisionHasBeenSet = true; m_currentDatabaseRevision = value; } /** *

A string representing the current cluster version.

*/ inline void SetCurrentDatabaseRevision(Aws::String&& value) { m_currentDatabaseRevisionHasBeenSet = true; m_currentDatabaseRevision = std::move(value); } /** *

A string representing the current cluster version.

*/ inline void SetCurrentDatabaseRevision(const char* value) { m_currentDatabaseRevisionHasBeenSet = true; m_currentDatabaseRevision.assign(value); } /** *

A string representing the current cluster version.

*/ inline ClusterDbRevision& WithCurrentDatabaseRevision(const Aws::String& value) { SetCurrentDatabaseRevision(value); return *this;} /** *

A string representing the current cluster version.

*/ inline ClusterDbRevision& WithCurrentDatabaseRevision(Aws::String&& value) { SetCurrentDatabaseRevision(std::move(value)); return *this;} /** *

A string representing the current cluster version.

*/ inline ClusterDbRevision& WithCurrentDatabaseRevision(const char* value) { SetCurrentDatabaseRevision(value); return *this;} /** *

The date on which the database revision was released.

*/ inline const Aws::Utils::DateTime& GetDatabaseRevisionReleaseDate() const{ return m_databaseRevisionReleaseDate; } /** *

The date on which the database revision was released.

*/ inline bool DatabaseRevisionReleaseDateHasBeenSet() const { return m_databaseRevisionReleaseDateHasBeenSet; } /** *

The date on which the database revision was released.

*/ inline void SetDatabaseRevisionReleaseDate(const Aws::Utils::DateTime& value) { m_databaseRevisionReleaseDateHasBeenSet = true; m_databaseRevisionReleaseDate = value; } /** *

The date on which the database revision was released.

*/ inline void SetDatabaseRevisionReleaseDate(Aws::Utils::DateTime&& value) { m_databaseRevisionReleaseDateHasBeenSet = true; m_databaseRevisionReleaseDate = std::move(value); } /** *

The date on which the database revision was released.

*/ inline ClusterDbRevision& WithDatabaseRevisionReleaseDate(const Aws::Utils::DateTime& value) { SetDatabaseRevisionReleaseDate(value); return *this;} /** *

The date on which the database revision was released.

*/ inline ClusterDbRevision& WithDatabaseRevisionReleaseDate(Aws::Utils::DateTime&& value) { SetDatabaseRevisionReleaseDate(std::move(value)); return *this;} /** *

A list of RevisionTarget objects, where each object describes * the database revision that a cluster can be updated to.

*/ inline const Aws::Vector& GetRevisionTargets() const{ return m_revisionTargets; } /** *

A list of RevisionTarget objects, where each object describes * the database revision that a cluster can be updated to.

*/ inline bool RevisionTargetsHasBeenSet() const { return m_revisionTargetsHasBeenSet; } /** *

A list of RevisionTarget objects, where each object describes * the database revision that a cluster can be updated to.

*/ inline void SetRevisionTargets(const Aws::Vector& value) { m_revisionTargetsHasBeenSet = true; m_revisionTargets = value; } /** *

A list of RevisionTarget objects, where each object describes * the database revision that a cluster can be updated to.

*/ inline void SetRevisionTargets(Aws::Vector&& value) { m_revisionTargetsHasBeenSet = true; m_revisionTargets = std::move(value); } /** *

A list of RevisionTarget objects, where each object describes * the database revision that a cluster can be updated to.

*/ inline ClusterDbRevision& WithRevisionTargets(const Aws::Vector& value) { SetRevisionTargets(value); return *this;} /** *

A list of RevisionTarget objects, where each object describes * the database revision that a cluster can be updated to.

*/ inline ClusterDbRevision& WithRevisionTargets(Aws::Vector&& value) { SetRevisionTargets(std::move(value)); return *this;} /** *

A list of RevisionTarget objects, where each object describes * the database revision that a cluster can be updated to.

*/ inline ClusterDbRevision& AddRevisionTargets(const RevisionTarget& value) { m_revisionTargetsHasBeenSet = true; m_revisionTargets.push_back(value); return *this; } /** *

A list of RevisionTarget objects, where each object describes * the database revision that a cluster can be updated to.

*/ inline ClusterDbRevision& AddRevisionTargets(RevisionTarget&& value) { m_revisionTargetsHasBeenSet = true; m_revisionTargets.push_back(std::move(value)); return *this; } private: Aws::String m_clusterIdentifier; bool m_clusterIdentifierHasBeenSet = false; Aws::String m_currentDatabaseRevision; bool m_currentDatabaseRevisionHasBeenSet = false; Aws::Utils::DateTime m_databaseRevisionReleaseDate; bool m_databaseRevisionReleaseDateHasBeenSet = false; Aws::Vector m_revisionTargets; bool m_revisionTargetsHasBeenSet = false; }; } // namespace Model } // namespace Redshift } // namespace Aws