/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace DAX { namespace Model { /** *

Describes an individual setting that controls some aspect of DAX * behavior.

See Also:

AWS API * Reference

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

The name of the parameter.

*/ inline const Aws::String& GetParameterName() const{ return m_parameterName; } /** *

The name of the parameter.

*/ inline bool ParameterNameHasBeenSet() const { return m_parameterNameHasBeenSet; } /** *

The name of the parameter.

*/ inline void SetParameterName(const Aws::String& value) { m_parameterNameHasBeenSet = true; m_parameterName = value; } /** *

The name of the parameter.

*/ inline void SetParameterName(Aws::String&& value) { m_parameterNameHasBeenSet = true; m_parameterName = std::move(value); } /** *

The name of the parameter.

*/ inline void SetParameterName(const char* value) { m_parameterNameHasBeenSet = true; m_parameterName.assign(value); } /** *

The name of the parameter.

*/ inline Parameter& WithParameterName(const Aws::String& value) { SetParameterName(value); return *this;} /** *

The name of the parameter.

*/ inline Parameter& WithParameterName(Aws::String&& value) { SetParameterName(std::move(value)); return *this;} /** *

The name of the parameter.

*/ inline Parameter& WithParameterName(const char* value) { SetParameterName(value); return *this;} /** *

Determines whether the parameter can be applied to any nodes, or only nodes * of a particular type.

*/ inline const ParameterType& GetParameterType() const{ return m_parameterType; } /** *

Determines whether the parameter can be applied to any nodes, or only nodes * of a particular type.

*/ inline bool ParameterTypeHasBeenSet() const { return m_parameterTypeHasBeenSet; } /** *

Determines whether the parameter can be applied to any nodes, or only nodes * of a particular type.

*/ inline void SetParameterType(const ParameterType& value) { m_parameterTypeHasBeenSet = true; m_parameterType = value; } /** *

Determines whether the parameter can be applied to any nodes, or only nodes * of a particular type.

*/ inline void SetParameterType(ParameterType&& value) { m_parameterTypeHasBeenSet = true; m_parameterType = std::move(value); } /** *

Determines whether the parameter can be applied to any nodes, or only nodes * of a particular type.

*/ inline Parameter& WithParameterType(const ParameterType& value) { SetParameterType(value); return *this;} /** *

Determines whether the parameter can be applied to any nodes, or only nodes * of a particular type.

*/ inline Parameter& WithParameterType(ParameterType&& value) { SetParameterType(std::move(value)); return *this;} /** *

The value for the parameter.

*/ inline const Aws::String& GetParameterValue() const{ return m_parameterValue; } /** *

The value for the parameter.

*/ inline bool ParameterValueHasBeenSet() const { return m_parameterValueHasBeenSet; } /** *

The value for the parameter.

*/ inline void SetParameterValue(const Aws::String& value) { m_parameterValueHasBeenSet = true; m_parameterValue = value; } /** *

The value for the parameter.

*/ inline void SetParameterValue(Aws::String&& value) { m_parameterValueHasBeenSet = true; m_parameterValue = std::move(value); } /** *

The value for the parameter.

*/ inline void SetParameterValue(const char* value) { m_parameterValueHasBeenSet = true; m_parameterValue.assign(value); } /** *

The value for the parameter.

*/ inline Parameter& WithParameterValue(const Aws::String& value) { SetParameterValue(value); return *this;} /** *

The value for the parameter.

*/ inline Parameter& WithParameterValue(Aws::String&& value) { SetParameterValue(std::move(value)); return *this;} /** *

The value for the parameter.

*/ inline Parameter& WithParameterValue(const char* value) { SetParameterValue(value); return *this;} /** *

A list of node types, and specific parameter values for each node.

*/ inline const Aws::Vector& GetNodeTypeSpecificValues() const{ return m_nodeTypeSpecificValues; } /** *

A list of node types, and specific parameter values for each node.

*/ inline bool NodeTypeSpecificValuesHasBeenSet() const { return m_nodeTypeSpecificValuesHasBeenSet; } /** *

A list of node types, and specific parameter values for each node.

*/ inline void SetNodeTypeSpecificValues(const Aws::Vector& value) { m_nodeTypeSpecificValuesHasBeenSet = true; m_nodeTypeSpecificValues = value; } /** *

A list of node types, and specific parameter values for each node.

*/ inline void SetNodeTypeSpecificValues(Aws::Vector&& value) { m_nodeTypeSpecificValuesHasBeenSet = true; m_nodeTypeSpecificValues = std::move(value); } /** *

A list of node types, and specific parameter values for each node.

*/ inline Parameter& WithNodeTypeSpecificValues(const Aws::Vector& value) { SetNodeTypeSpecificValues(value); return *this;} /** *

A list of node types, and specific parameter values for each node.

*/ inline Parameter& WithNodeTypeSpecificValues(Aws::Vector&& value) { SetNodeTypeSpecificValues(std::move(value)); return *this;} /** *

A list of node types, and specific parameter values for each node.

*/ inline Parameter& AddNodeTypeSpecificValues(const NodeTypeSpecificValue& value) { m_nodeTypeSpecificValuesHasBeenSet = true; m_nodeTypeSpecificValues.push_back(value); return *this; } /** *

A list of node types, and specific parameter values for each node.

*/ inline Parameter& AddNodeTypeSpecificValues(NodeTypeSpecificValue&& value) { m_nodeTypeSpecificValuesHasBeenSet = true; m_nodeTypeSpecificValues.push_back(std::move(value)); return *this; } /** *

A description of the parameter

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

A description of the parameter

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

A description of the parameter

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

A description of the parameter

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

A description of the parameter

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

A description of the parameter

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

A description of the parameter

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

A description of the parameter

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

How the parameter is defined. For example, system denotes a * system-defined parameter.

*/ inline const Aws::String& GetSource() const{ return m_source; } /** *

How the parameter is defined. For example, system denotes a * system-defined parameter.

*/ inline bool SourceHasBeenSet() const { return m_sourceHasBeenSet; } /** *

How the parameter is defined. For example, system denotes a * system-defined parameter.

*/ inline void SetSource(const Aws::String& value) { m_sourceHasBeenSet = true; m_source = value; } /** *

How the parameter is defined. For example, system denotes a * system-defined parameter.

*/ inline void SetSource(Aws::String&& value) { m_sourceHasBeenSet = true; m_source = std::move(value); } /** *

How the parameter is defined. For example, system denotes a * system-defined parameter.

*/ inline void SetSource(const char* value) { m_sourceHasBeenSet = true; m_source.assign(value); } /** *

How the parameter is defined. For example, system denotes a * system-defined parameter.

*/ inline Parameter& WithSource(const Aws::String& value) { SetSource(value); return *this;} /** *

How the parameter is defined. For example, system denotes a * system-defined parameter.

*/ inline Parameter& WithSource(Aws::String&& value) { SetSource(std::move(value)); return *this;} /** *

How the parameter is defined. For example, system denotes a * system-defined parameter.

*/ inline Parameter& WithSource(const char* value) { SetSource(value); return *this;} /** *

The data type of the parameter. For example, integer:

*/ inline const Aws::String& GetDataType() const{ return m_dataType; } /** *

The data type of the parameter. For example, integer:

*/ inline bool DataTypeHasBeenSet() const { return m_dataTypeHasBeenSet; } /** *

The data type of the parameter. For example, integer:

*/ inline void SetDataType(const Aws::String& value) { m_dataTypeHasBeenSet = true; m_dataType = value; } /** *

The data type of the parameter. For example, integer:

*/ inline void SetDataType(Aws::String&& value) { m_dataTypeHasBeenSet = true; m_dataType = std::move(value); } /** *

The data type of the parameter. For example, integer:

*/ inline void SetDataType(const char* value) { m_dataTypeHasBeenSet = true; m_dataType.assign(value); } /** *

The data type of the parameter. For example, integer:

*/ inline Parameter& WithDataType(const Aws::String& value) { SetDataType(value); return *this;} /** *

The data type of the parameter. For example, integer:

*/ inline Parameter& WithDataType(Aws::String&& value) { SetDataType(std::move(value)); return *this;} /** *

The data type of the parameter. For example, integer:

*/ inline Parameter& WithDataType(const char* value) { SetDataType(value); return *this;} /** *

A range of values within which the parameter can be set.

*/ inline const Aws::String& GetAllowedValues() const{ return m_allowedValues; } /** *

A range of values within which the parameter can be set.

*/ inline bool AllowedValuesHasBeenSet() const { return m_allowedValuesHasBeenSet; } /** *

A range of values within which the parameter can be set.

*/ inline void SetAllowedValues(const Aws::String& value) { m_allowedValuesHasBeenSet = true; m_allowedValues = value; } /** *

A range of values within which the parameter can be set.

*/ inline void SetAllowedValues(Aws::String&& value) { m_allowedValuesHasBeenSet = true; m_allowedValues = std::move(value); } /** *

A range of values within which the parameter can be set.

*/ inline void SetAllowedValues(const char* value) { m_allowedValuesHasBeenSet = true; m_allowedValues.assign(value); } /** *

A range of values within which the parameter can be set.

*/ inline Parameter& WithAllowedValues(const Aws::String& value) { SetAllowedValues(value); return *this;} /** *

A range of values within which the parameter can be set.

*/ inline Parameter& WithAllowedValues(Aws::String&& value) { SetAllowedValues(std::move(value)); return *this;} /** *

A range of values within which the parameter can be set.

*/ inline Parameter& WithAllowedValues(const char* value) { SetAllowedValues(value); return *this;} /** *

Whether the customer is allowed to modify the parameter.

*/ inline const IsModifiable& GetIsModifiable() const{ return m_isModifiable; } /** *

Whether the customer is allowed to modify the parameter.

*/ inline bool IsModifiableHasBeenSet() const { return m_isModifiableHasBeenSet; } /** *

Whether the customer is allowed to modify the parameter.

*/ inline void SetIsModifiable(const IsModifiable& value) { m_isModifiableHasBeenSet = true; m_isModifiable = value; } /** *

Whether the customer is allowed to modify the parameter.

*/ inline void SetIsModifiable(IsModifiable&& value) { m_isModifiableHasBeenSet = true; m_isModifiable = std::move(value); } /** *

Whether the customer is allowed to modify the parameter.

*/ inline Parameter& WithIsModifiable(const IsModifiable& value) { SetIsModifiable(value); return *this;} /** *

Whether the customer is allowed to modify the parameter.

*/ inline Parameter& WithIsModifiable(IsModifiable&& value) { SetIsModifiable(std::move(value)); return *this;} /** *

The conditions under which changes to this parameter can be applied. For * example, requires-reboot indicates that a new value for this * parameter will only take effect if a node is rebooted.

*/ inline const ChangeType& GetChangeType() const{ return m_changeType; } /** *

The conditions under which changes to this parameter can be applied. For * example, requires-reboot indicates that a new value for this * parameter will only take effect if a node is rebooted.

*/ inline bool ChangeTypeHasBeenSet() const { return m_changeTypeHasBeenSet; } /** *

The conditions under which changes to this parameter can be applied. For * example, requires-reboot indicates that a new value for this * parameter will only take effect if a node is rebooted.

*/ inline void SetChangeType(const ChangeType& value) { m_changeTypeHasBeenSet = true; m_changeType = value; } /** *

The conditions under which changes to this parameter can be applied. For * example, requires-reboot indicates that a new value for this * parameter will only take effect if a node is rebooted.

*/ inline void SetChangeType(ChangeType&& value) { m_changeTypeHasBeenSet = true; m_changeType = std::move(value); } /** *

The conditions under which changes to this parameter can be applied. For * example, requires-reboot indicates that a new value for this * parameter will only take effect if a node is rebooted.

*/ inline Parameter& WithChangeType(const ChangeType& value) { SetChangeType(value); return *this;} /** *

The conditions under which changes to this parameter can be applied. For * example, requires-reboot indicates that a new value for this * parameter will only take effect if a node is rebooted.

*/ inline Parameter& WithChangeType(ChangeType&& value) { SetChangeType(std::move(value)); return *this;} private: Aws::String m_parameterName; bool m_parameterNameHasBeenSet = false; ParameterType m_parameterType; bool m_parameterTypeHasBeenSet = false; Aws::String m_parameterValue; bool m_parameterValueHasBeenSet = false; Aws::Vector m_nodeTypeSpecificValues; bool m_nodeTypeSpecificValuesHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_source; bool m_sourceHasBeenSet = false; Aws::String m_dataType; bool m_dataTypeHasBeenSet = false; Aws::String m_allowedValues; bool m_allowedValuesHasBeenSet = false; IsModifiable m_isModifiable; bool m_isModifiableHasBeenSet = false; ChangeType m_changeType; bool m_changeTypeHasBeenSet = false; }; } // namespace Model } // namespace DAX } // namespace Aws