/** * 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 EMR { namespace Model { /** *

Amazon EMR releases 4.x or later.

An optional * configuration specification to be used when provisioning cluster instances, * which can include configurations for applications and software bundled with * Amazon EMR. A configuration consists of a classification, properties, and * optional nested configurations. A classification refers to an * application-specific configuration file. Properties are the settings you want to * change in that file. For more information, see Configuring * Applications.

See Also:

AWS * API Reference

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

The classification within a configuration.

*/ inline const Aws::String& GetClassification() const{ return m_classification; } /** *

The classification within a configuration.

*/ inline bool ClassificationHasBeenSet() const { return m_classificationHasBeenSet; } /** *

The classification within a configuration.

*/ inline void SetClassification(const Aws::String& value) { m_classificationHasBeenSet = true; m_classification = value; } /** *

The classification within a configuration.

*/ inline void SetClassification(Aws::String&& value) { m_classificationHasBeenSet = true; m_classification = std::move(value); } /** *

The classification within a configuration.

*/ inline void SetClassification(const char* value) { m_classificationHasBeenSet = true; m_classification.assign(value); } /** *

The classification within a configuration.

*/ inline Configuration& WithClassification(const Aws::String& value) { SetClassification(value); return *this;} /** *

The classification within a configuration.

*/ inline Configuration& WithClassification(Aws::String&& value) { SetClassification(std::move(value)); return *this;} /** *

The classification within a configuration.

*/ inline Configuration& WithClassification(const char* value) { SetClassification(value); return *this;} /** *

A list of additional configurations to apply within a configuration * object.

*/ inline const Aws::Vector& GetConfigurations() const{ return m_configurations; } /** *

A list of additional configurations to apply within a configuration * object.

*/ inline bool ConfigurationsHasBeenSet() const { return m_configurationsHasBeenSet; } /** *

A list of additional configurations to apply within a configuration * object.

*/ inline void SetConfigurations(const Aws::Vector& value) { m_configurationsHasBeenSet = true; m_configurations = value; } /** *

A list of additional configurations to apply within a configuration * object.

*/ inline void SetConfigurations(Aws::Vector&& value) { m_configurationsHasBeenSet = true; m_configurations = std::move(value); } /** *

A list of additional configurations to apply within a configuration * object.

*/ inline Configuration& WithConfigurations(const Aws::Vector& value) { SetConfigurations(value); return *this;} /** *

A list of additional configurations to apply within a configuration * object.

*/ inline Configuration& WithConfigurations(Aws::Vector&& value) { SetConfigurations(std::move(value)); return *this;} /** *

A list of additional configurations to apply within a configuration * object.

*/ inline Configuration& AddConfigurations(const Configuration& value) { m_configurationsHasBeenSet = true; m_configurations.push_back(value); return *this; } /** *

A list of additional configurations to apply within a configuration * object.

*/ inline Configuration& AddConfigurations(Configuration&& value) { m_configurationsHasBeenSet = true; m_configurations.push_back(std::move(value)); return *this; } /** *

A set of properties specified within a configuration classification.

*/ inline const Aws::Map& GetProperties() const{ return m_properties; } /** *

A set of properties specified within a configuration classification.

*/ inline bool PropertiesHasBeenSet() const { return m_propertiesHasBeenSet; } /** *

A set of properties specified within a configuration classification.

*/ inline void SetProperties(const Aws::Map& value) { m_propertiesHasBeenSet = true; m_properties = value; } /** *

A set of properties specified within a configuration classification.

*/ inline void SetProperties(Aws::Map&& value) { m_propertiesHasBeenSet = true; m_properties = std::move(value); } /** *

A set of properties specified within a configuration classification.

*/ inline Configuration& WithProperties(const Aws::Map& value) { SetProperties(value); return *this;} /** *

A set of properties specified within a configuration classification.

*/ inline Configuration& WithProperties(Aws::Map&& value) { SetProperties(std::move(value)); return *this;} /** *

A set of properties specified within a configuration classification.

*/ inline Configuration& AddProperties(const Aws::String& key, const Aws::String& value) { m_propertiesHasBeenSet = true; m_properties.emplace(key, value); return *this; } /** *

A set of properties specified within a configuration classification.

*/ inline Configuration& AddProperties(Aws::String&& key, const Aws::String& value) { m_propertiesHasBeenSet = true; m_properties.emplace(std::move(key), value); return *this; } /** *

A set of properties specified within a configuration classification.

*/ inline Configuration& AddProperties(const Aws::String& key, Aws::String&& value) { m_propertiesHasBeenSet = true; m_properties.emplace(key, std::move(value)); return *this; } /** *

A set of properties specified within a configuration classification.

*/ inline Configuration& AddProperties(Aws::String&& key, Aws::String&& value) { m_propertiesHasBeenSet = true; m_properties.emplace(std::move(key), std::move(value)); return *this; } /** *

A set of properties specified within a configuration classification.

*/ inline Configuration& AddProperties(const char* key, Aws::String&& value) { m_propertiesHasBeenSet = true; m_properties.emplace(key, std::move(value)); return *this; } /** *

A set of properties specified within a configuration classification.

*/ inline Configuration& AddProperties(Aws::String&& key, const char* value) { m_propertiesHasBeenSet = true; m_properties.emplace(std::move(key), value); return *this; } /** *

A set of properties specified within a configuration classification.

*/ inline Configuration& AddProperties(const char* key, const char* value) { m_propertiesHasBeenSet = true; m_properties.emplace(key, value); return *this; } private: Aws::String m_classification; bool m_classificationHasBeenSet = false; Aws::Vector m_configurations; bool m_configurationsHasBeenSet = false; Aws::Map m_properties; bool m_propertiesHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws