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

Represents an individual node within a DAX cluster.

See Also:

* AWS API * Reference

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

A system-generated identifier for the node.

*/ inline const Aws::String& GetNodeId() const{ return m_nodeId; } /** *

A system-generated identifier for the node.

*/ inline bool NodeIdHasBeenSet() const { return m_nodeIdHasBeenSet; } /** *

A system-generated identifier for the node.

*/ inline void SetNodeId(const Aws::String& value) { m_nodeIdHasBeenSet = true; m_nodeId = value; } /** *

A system-generated identifier for the node.

*/ inline void SetNodeId(Aws::String&& value) { m_nodeIdHasBeenSet = true; m_nodeId = std::move(value); } /** *

A system-generated identifier for the node.

*/ inline void SetNodeId(const char* value) { m_nodeIdHasBeenSet = true; m_nodeId.assign(value); } /** *

A system-generated identifier for the node.

*/ inline Node& WithNodeId(const Aws::String& value) { SetNodeId(value); return *this;} /** *

A system-generated identifier for the node.

*/ inline Node& WithNodeId(Aws::String&& value) { SetNodeId(std::move(value)); return *this;} /** *

A system-generated identifier for the node.

*/ inline Node& WithNodeId(const char* value) { SetNodeId(value); return *this;} /** *

The endpoint for the node, consisting of a DNS name and a port number. Client * applications can connect directly to a node endpoint, if desired (as an * alternative to allowing DAX client software to intelligently route requests and * responses to nodes in the DAX cluster.

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

The endpoint for the node, consisting of a DNS name and a port number. Client * applications can connect directly to a node endpoint, if desired (as an * alternative to allowing DAX client software to intelligently route requests and * responses to nodes in the DAX cluster.

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

The endpoint for the node, consisting of a DNS name and a port number. Client * applications can connect directly to a node endpoint, if desired (as an * alternative to allowing DAX client software to intelligently route requests and * responses to nodes in the DAX cluster.

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

The endpoint for the node, consisting of a DNS name and a port number. Client * applications can connect directly to a node endpoint, if desired (as an * alternative to allowing DAX client software to intelligently route requests and * responses to nodes in the DAX cluster.

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

The endpoint for the node, consisting of a DNS name and a port number. Client * applications can connect directly to a node endpoint, if desired (as an * alternative to allowing DAX client software to intelligently route requests and * responses to nodes in the DAX cluster.

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

The endpoint for the node, consisting of a DNS name and a port number. Client * applications can connect directly to a node endpoint, if desired (as an * alternative to allowing DAX client software to intelligently route requests and * responses to nodes in the DAX cluster.

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

The date and time (in UNIX epoch format) when the node was launched.

*/ inline const Aws::Utils::DateTime& GetNodeCreateTime() const{ return m_nodeCreateTime; } /** *

The date and time (in UNIX epoch format) when the node was launched.

*/ inline bool NodeCreateTimeHasBeenSet() const { return m_nodeCreateTimeHasBeenSet; } /** *

The date and time (in UNIX epoch format) when the node was launched.

*/ inline void SetNodeCreateTime(const Aws::Utils::DateTime& value) { m_nodeCreateTimeHasBeenSet = true; m_nodeCreateTime = value; } /** *

The date and time (in UNIX epoch format) when the node was launched.

*/ inline void SetNodeCreateTime(Aws::Utils::DateTime&& value) { m_nodeCreateTimeHasBeenSet = true; m_nodeCreateTime = std::move(value); } /** *

The date and time (in UNIX epoch format) when the node was launched.

*/ inline Node& WithNodeCreateTime(const Aws::Utils::DateTime& value) { SetNodeCreateTime(value); return *this;} /** *

The date and time (in UNIX epoch format) when the node was launched.

*/ inline Node& WithNodeCreateTime(Aws::Utils::DateTime&& value) { SetNodeCreateTime(std::move(value)); return *this;} /** *

The Availability Zone (AZ) in which the node has been deployed.

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

The Availability Zone (AZ) in which the node has been deployed.

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

The Availability Zone (AZ) in which the node has been deployed.

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

The Availability Zone (AZ) in which the node has been deployed.

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

The Availability Zone (AZ) in which the node has been deployed.

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

The Availability Zone (AZ) in which the node has been deployed.

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

The Availability Zone (AZ) in which the node has been deployed.

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

The Availability Zone (AZ) in which the node has been deployed.

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

The current status of the node. For example: available.

*/ inline const Aws::String& GetNodeStatus() const{ return m_nodeStatus; } /** *

The current status of the node. For example: available.

*/ inline bool NodeStatusHasBeenSet() const { return m_nodeStatusHasBeenSet; } /** *

The current status of the node. For example: available.

*/ inline void SetNodeStatus(const Aws::String& value) { m_nodeStatusHasBeenSet = true; m_nodeStatus = value; } /** *

The current status of the node. For example: available.

*/ inline void SetNodeStatus(Aws::String&& value) { m_nodeStatusHasBeenSet = true; m_nodeStatus = std::move(value); } /** *

The current status of the node. For example: available.

*/ inline void SetNodeStatus(const char* value) { m_nodeStatusHasBeenSet = true; m_nodeStatus.assign(value); } /** *

The current status of the node. For example: available.

*/ inline Node& WithNodeStatus(const Aws::String& value) { SetNodeStatus(value); return *this;} /** *

The current status of the node. For example: available.

*/ inline Node& WithNodeStatus(Aws::String&& value) { SetNodeStatus(std::move(value)); return *this;} /** *

The current status of the node. For example: available.

*/ inline Node& WithNodeStatus(const char* value) { SetNodeStatus(value); return *this;} /** *

The status of the parameter group associated with this node. For example, * in-sync.

*/ inline const Aws::String& GetParameterGroupStatus() const{ return m_parameterGroupStatus; } /** *

The status of the parameter group associated with this node. For example, * in-sync.

*/ inline bool ParameterGroupStatusHasBeenSet() const { return m_parameterGroupStatusHasBeenSet; } /** *

The status of the parameter group associated with this node. For example, * in-sync.

*/ inline void SetParameterGroupStatus(const Aws::String& value) { m_parameterGroupStatusHasBeenSet = true; m_parameterGroupStatus = value; } /** *

The status of the parameter group associated with this node. For example, * in-sync.

*/ inline void SetParameterGroupStatus(Aws::String&& value) { m_parameterGroupStatusHasBeenSet = true; m_parameterGroupStatus = std::move(value); } /** *

The status of the parameter group associated with this node. For example, * in-sync.

*/ inline void SetParameterGroupStatus(const char* value) { m_parameterGroupStatusHasBeenSet = true; m_parameterGroupStatus.assign(value); } /** *

The status of the parameter group associated with this node. For example, * in-sync.

*/ inline Node& WithParameterGroupStatus(const Aws::String& value) { SetParameterGroupStatus(value); return *this;} /** *

The status of the parameter group associated with this node. For example, * in-sync.

*/ inline Node& WithParameterGroupStatus(Aws::String&& value) { SetParameterGroupStatus(std::move(value)); return *this;} /** *

The status of the parameter group associated with this node. For example, * in-sync.

*/ inline Node& WithParameterGroupStatus(const char* value) { SetParameterGroupStatus(value); return *this;} private: Aws::String m_nodeId; bool m_nodeIdHasBeenSet = false; Endpoint m_endpoint; bool m_endpointHasBeenSet = false; Aws::Utils::DateTime m_nodeCreateTime; bool m_nodeCreateTimeHasBeenSet = false; Aws::String m_availabilityZone; bool m_availabilityZoneHasBeenSet = false; Aws::String m_nodeStatus; bool m_nodeStatusHasBeenSet = false; Aws::String m_parameterGroupStatus; bool m_parameterGroupStatusHasBeenSet = false; }; } // namespace Model } // namespace DAX } // namespace Aws