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

An update that you can apply to your MemoryDB clusters.

See * Also:

AWS * API Reference

*/ class ServiceUpdate { public: AWS_MEMORYDB_API ServiceUpdate(); AWS_MEMORYDB_API ServiceUpdate(Aws::Utils::Json::JsonView jsonValue); AWS_MEMORYDB_API ServiceUpdate& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_MEMORYDB_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of the cluster to which the service update applies

*/ inline const Aws::String& GetClusterName() const{ return m_clusterName; } /** *

The name of the cluster to which the service update applies

*/ inline bool ClusterNameHasBeenSet() const { return m_clusterNameHasBeenSet; } /** *

The name of the cluster to which the service update applies

*/ inline void SetClusterName(const Aws::String& value) { m_clusterNameHasBeenSet = true; m_clusterName = value; } /** *

The name of the cluster to which the service update applies

*/ inline void SetClusterName(Aws::String&& value) { m_clusterNameHasBeenSet = true; m_clusterName = std::move(value); } /** *

The name of the cluster to which the service update applies

*/ inline void SetClusterName(const char* value) { m_clusterNameHasBeenSet = true; m_clusterName.assign(value); } /** *

The name of the cluster to which the service update applies

*/ inline ServiceUpdate& WithClusterName(const Aws::String& value) { SetClusterName(value); return *this;} /** *

The name of the cluster to which the service update applies

*/ inline ServiceUpdate& WithClusterName(Aws::String&& value) { SetClusterName(std::move(value)); return *this;} /** *

The name of the cluster to which the service update applies

*/ inline ServiceUpdate& WithClusterName(const char* value) { SetClusterName(value); return *this;} /** *

The unique ID of the service update

*/ inline const Aws::String& GetServiceUpdateName() const{ return m_serviceUpdateName; } /** *

The unique ID of the service update

*/ inline bool ServiceUpdateNameHasBeenSet() const { return m_serviceUpdateNameHasBeenSet; } /** *

The unique ID of the service update

*/ inline void SetServiceUpdateName(const Aws::String& value) { m_serviceUpdateNameHasBeenSet = true; m_serviceUpdateName = value; } /** *

The unique ID of the service update

*/ inline void SetServiceUpdateName(Aws::String&& value) { m_serviceUpdateNameHasBeenSet = true; m_serviceUpdateName = std::move(value); } /** *

The unique ID of the service update

*/ inline void SetServiceUpdateName(const char* value) { m_serviceUpdateNameHasBeenSet = true; m_serviceUpdateName.assign(value); } /** *

The unique ID of the service update

*/ inline ServiceUpdate& WithServiceUpdateName(const Aws::String& value) { SetServiceUpdateName(value); return *this;} /** *

The unique ID of the service update

*/ inline ServiceUpdate& WithServiceUpdateName(Aws::String&& value) { SetServiceUpdateName(std::move(value)); return *this;} /** *

The unique ID of the service update

*/ inline ServiceUpdate& WithServiceUpdateName(const char* value) { SetServiceUpdateName(value); return *this;} /** *

The date when the service update is initially available

*/ inline const Aws::Utils::DateTime& GetReleaseDate() const{ return m_releaseDate; } /** *

The date when the service update is initially available

*/ inline bool ReleaseDateHasBeenSet() const { return m_releaseDateHasBeenSet; } /** *

The date when the service update is initially available

*/ inline void SetReleaseDate(const Aws::Utils::DateTime& value) { m_releaseDateHasBeenSet = true; m_releaseDate = value; } /** *

The date when the service update is initially available

*/ inline void SetReleaseDate(Aws::Utils::DateTime&& value) { m_releaseDateHasBeenSet = true; m_releaseDate = std::move(value); } /** *

The date when the service update is initially available

*/ inline ServiceUpdate& WithReleaseDate(const Aws::Utils::DateTime& value) { SetReleaseDate(value); return *this;} /** *

The date when the service update is initially available

*/ inline ServiceUpdate& WithReleaseDate(Aws::Utils::DateTime&& value) { SetReleaseDate(std::move(value)); return *this;} /** *

Provides details of the service update

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

Provides details of the service update

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

Provides details of the service update

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

Provides details of the service update

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

Provides details of the service update

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

Provides details of the service update

*/ inline ServiceUpdate& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

Provides details of the service update

*/ inline ServiceUpdate& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

Provides details of the service update

*/ inline ServiceUpdate& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The status of the service update

*/ inline const ServiceUpdateStatus& GetStatus() const{ return m_status; } /** *

The status of the service update

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The status of the service update

*/ inline void SetStatus(const ServiceUpdateStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The status of the service update

*/ inline void SetStatus(ServiceUpdateStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The status of the service update

*/ inline ServiceUpdate& WithStatus(const ServiceUpdateStatus& value) { SetStatus(value); return *this;} /** *

The status of the service update

*/ inline ServiceUpdate& WithStatus(ServiceUpdateStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

Reflects the nature of the service update

*/ inline const ServiceUpdateType& GetType() const{ return m_type; } /** *

Reflects the nature of the service update

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

Reflects the nature of the service update

*/ inline void SetType(const ServiceUpdateType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

Reflects the nature of the service update

*/ inline void SetType(ServiceUpdateType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

Reflects the nature of the service update

*/ inline ServiceUpdate& WithType(const ServiceUpdateType& value) { SetType(value); return *this;} /** *

Reflects the nature of the service update

*/ inline ServiceUpdate& WithType(ServiceUpdateType&& value) { SetType(std::move(value)); return *this;} /** *

A list of nodes updated by the service update

*/ inline const Aws::String& GetNodesUpdated() const{ return m_nodesUpdated; } /** *

A list of nodes updated by the service update

*/ inline bool NodesUpdatedHasBeenSet() const { return m_nodesUpdatedHasBeenSet; } /** *

A list of nodes updated by the service update

*/ inline void SetNodesUpdated(const Aws::String& value) { m_nodesUpdatedHasBeenSet = true; m_nodesUpdated = value; } /** *

A list of nodes updated by the service update

*/ inline void SetNodesUpdated(Aws::String&& value) { m_nodesUpdatedHasBeenSet = true; m_nodesUpdated = std::move(value); } /** *

A list of nodes updated by the service update

*/ inline void SetNodesUpdated(const char* value) { m_nodesUpdatedHasBeenSet = true; m_nodesUpdated.assign(value); } /** *

A list of nodes updated by the service update

*/ inline ServiceUpdate& WithNodesUpdated(const Aws::String& value) { SetNodesUpdated(value); return *this;} /** *

A list of nodes updated by the service update

*/ inline ServiceUpdate& WithNodesUpdated(Aws::String&& value) { SetNodesUpdated(std::move(value)); return *this;} /** *

A list of nodes updated by the service update

*/ inline ServiceUpdate& WithNodesUpdated(const char* value) { SetNodesUpdated(value); return *this;} /** *

The date at which the service update will be automatically applied

*/ inline const Aws::Utils::DateTime& GetAutoUpdateStartDate() const{ return m_autoUpdateStartDate; } /** *

The date at which the service update will be automatically applied

*/ inline bool AutoUpdateStartDateHasBeenSet() const { return m_autoUpdateStartDateHasBeenSet; } /** *

The date at which the service update will be automatically applied

*/ inline void SetAutoUpdateStartDate(const Aws::Utils::DateTime& value) { m_autoUpdateStartDateHasBeenSet = true; m_autoUpdateStartDate = value; } /** *

The date at which the service update will be automatically applied

*/ inline void SetAutoUpdateStartDate(Aws::Utils::DateTime&& value) { m_autoUpdateStartDateHasBeenSet = true; m_autoUpdateStartDate = std::move(value); } /** *

The date at which the service update will be automatically applied

*/ inline ServiceUpdate& WithAutoUpdateStartDate(const Aws::Utils::DateTime& value) { SetAutoUpdateStartDate(value); return *this;} /** *

The date at which the service update will be automatically applied

*/ inline ServiceUpdate& WithAutoUpdateStartDate(Aws::Utils::DateTime&& value) { SetAutoUpdateStartDate(std::move(value)); return *this;} private: Aws::String m_clusterName; bool m_clusterNameHasBeenSet = false; Aws::String m_serviceUpdateName; bool m_serviceUpdateNameHasBeenSet = false; Aws::Utils::DateTime m_releaseDate; bool m_releaseDateHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; ServiceUpdateStatus m_status; bool m_statusHasBeenSet = false; ServiceUpdateType m_type; bool m_typeHasBeenSet = false; Aws::String m_nodesUpdated; bool m_nodesUpdatedHasBeenSet = false; Aws::Utils::DateTime m_autoUpdateStartDate; bool m_autoUpdateStartDateHasBeenSet = false; }; } // namespace Model } // namespace MemoryDB } // namespace Aws