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

Describes a parameter in a cluster parameter group.

See Also:

* AWS * API Reference

*/ class Parameter { public: AWS_REDSHIFT_API Parameter(); AWS_REDSHIFT_API Parameter(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_REDSHIFT_API Parameter& 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 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;} /** *

The value of the parameter. If ParameterName is * wlm_json_configuration, then the maximum size of * ParameterValue is 8000 characters.

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

The value of the parameter. If ParameterName is * wlm_json_configuration, then the maximum size of * ParameterValue is 8000 characters.

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

The value of the parameter. If ParameterName is * wlm_json_configuration, then the maximum size of * ParameterValue is 8000 characters.

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

The value of the parameter. If ParameterName is * wlm_json_configuration, then the maximum size of * ParameterValue is 8000 characters.

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

The value of the parameter. If ParameterName is * wlm_json_configuration, then the maximum size of * ParameterValue is 8000 characters.

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

The value of the parameter. If ParameterName is * wlm_json_configuration, then the maximum size of * ParameterValue is 8000 characters.

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

The value of the parameter. If ParameterName is * wlm_json_configuration, then the maximum size of * ParameterValue is 8000 characters.

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

The value of the parameter. If ParameterName is * wlm_json_configuration, then the maximum size of * ParameterValue is 8000 characters.

*/ inline Parameter& WithParameterValue(const char* value) { SetParameterValue(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;} /** *

The source of the parameter value, such as "engine-default" or "user".

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

The source of the parameter value, such as "engine-default" or "user".

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

The source of the parameter value, such as "engine-default" or "user".

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

The source of the parameter value, such as "engine-default" or "user".

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

The source of the parameter value, such as "engine-default" or "user".

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

The source of the parameter value, such as "engine-default" or "user".

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

The source of the parameter value, such as "engine-default" or "user".

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

The source of the parameter value, such as "engine-default" or "user".

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

The data type of the parameter.

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

The data type of the parameter.

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

The data type of the parameter.

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

The data type of the parameter.

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

The data type of the parameter.

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

The data type of the parameter.

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

The data type of the parameter.

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

The data type of the parameter.

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

The valid range of values for the parameter.

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

The valid range of values for the parameter.

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

The valid range of values for the parameter.

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

The valid range of values for the parameter.

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

The valid range of values for the parameter.

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

The valid range of values for the parameter.

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

The valid range of values for the parameter.

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

The valid range of values for the parameter.

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

Specifies how to apply the WLM configuration parameter. Some properties can * be applied dynamically, while other properties require that any associated * clusters be rebooted for the configuration changes to be applied. For more * information about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

*/ inline const ParameterApplyType& GetApplyType() const{ return m_applyType; } /** *

Specifies how to apply the WLM configuration parameter. Some properties can * be applied dynamically, while other properties require that any associated * clusters be rebooted for the configuration changes to be applied. For more * information about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

*/ inline bool ApplyTypeHasBeenSet() const { return m_applyTypeHasBeenSet; } /** *

Specifies how to apply the WLM configuration parameter. Some properties can * be applied dynamically, while other properties require that any associated * clusters be rebooted for the configuration changes to be applied. For more * information about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

*/ inline void SetApplyType(const ParameterApplyType& value) { m_applyTypeHasBeenSet = true; m_applyType = value; } /** *

Specifies how to apply the WLM configuration parameter. Some properties can * be applied dynamically, while other properties require that any associated * clusters be rebooted for the configuration changes to be applied. For more * information about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

*/ inline void SetApplyType(ParameterApplyType&& value) { m_applyTypeHasBeenSet = true; m_applyType = std::move(value); } /** *

Specifies how to apply the WLM configuration parameter. Some properties can * be applied dynamically, while other properties require that any associated * clusters be rebooted for the configuration changes to be applied. For more * information about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

*/ inline Parameter& WithApplyType(const ParameterApplyType& value) { SetApplyType(value); return *this;} /** *

Specifies how to apply the WLM configuration parameter. Some properties can * be applied dynamically, while other properties require that any associated * clusters be rebooted for the configuration changes to be applied. For more * information about parameters and parameter groups, go to Amazon * Redshift Parameter Groups in the Amazon Redshift Cluster Management * Guide.

*/ inline Parameter& WithApplyType(ParameterApplyType&& value) { SetApplyType(std::move(value)); return *this;} /** *

If true, the parameter can be modified. Some parameters have * security or operational implications that prevent them from being changed.

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

If true, the parameter can be modified. Some parameters have * security or operational implications that prevent them from being changed.

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

If true, the parameter can be modified. Some parameters have * security or operational implications that prevent them from being changed.

*/ inline void SetIsModifiable(bool value) { m_isModifiableHasBeenSet = true; m_isModifiable = value; } /** *

If true, the parameter can be modified. Some parameters have * security or operational implications that prevent them from being changed.

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

The earliest engine version to which the parameter can apply.

*/ inline const Aws::String& GetMinimumEngineVersion() const{ return m_minimumEngineVersion; } /** *

The earliest engine version to which the parameter can apply.

*/ inline bool MinimumEngineVersionHasBeenSet() const { return m_minimumEngineVersionHasBeenSet; } /** *

The earliest engine version to which the parameter can apply.

*/ inline void SetMinimumEngineVersion(const Aws::String& value) { m_minimumEngineVersionHasBeenSet = true; m_minimumEngineVersion = value; } /** *

The earliest engine version to which the parameter can apply.

*/ inline void SetMinimumEngineVersion(Aws::String&& value) { m_minimumEngineVersionHasBeenSet = true; m_minimumEngineVersion = std::move(value); } /** *

The earliest engine version to which the parameter can apply.

*/ inline void SetMinimumEngineVersion(const char* value) { m_minimumEngineVersionHasBeenSet = true; m_minimumEngineVersion.assign(value); } /** *

The earliest engine version to which the parameter can apply.

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

The earliest engine version to which the parameter can apply.

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

The earliest engine version to which the parameter can apply.

*/ inline Parameter& WithMinimumEngineVersion(const char* value) { SetMinimumEngineVersion(value); return *this;} private: Aws::String m_parameterName; bool m_parameterNameHasBeenSet = false; Aws::String m_parameterValue; bool m_parameterValueHasBeenSet = 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; ParameterApplyType m_applyType; bool m_applyTypeHasBeenSet = false; bool m_isModifiable; bool m_isModifiableHasBeenSet = false; Aws::String m_minimumEngineVersion; bool m_minimumEngineVersionHasBeenSet = false; }; } // namespace Model } // namespace Redshift } // namespace Aws