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

Contains data processing unit (DPU) configuration settings and parameter * mappings for a notebook engine.

See Also:

AWS * API Reference

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

The number of DPUs to use for the coordinator. A coordinator is a special * executor that orchestrates processing work and manages other executors in a * notebook session. The default is 1.

*/ inline int GetCoordinatorDpuSize() const{ return m_coordinatorDpuSize; } /** *

The number of DPUs to use for the coordinator. A coordinator is a special * executor that orchestrates processing work and manages other executors in a * notebook session. The default is 1.

*/ inline bool CoordinatorDpuSizeHasBeenSet() const { return m_coordinatorDpuSizeHasBeenSet; } /** *

The number of DPUs to use for the coordinator. A coordinator is a special * executor that orchestrates processing work and manages other executors in a * notebook session. The default is 1.

*/ inline void SetCoordinatorDpuSize(int value) { m_coordinatorDpuSizeHasBeenSet = true; m_coordinatorDpuSize = value; } /** *

The number of DPUs to use for the coordinator. A coordinator is a special * executor that orchestrates processing work and manages other executors in a * notebook session. The default is 1.

*/ inline EngineConfiguration& WithCoordinatorDpuSize(int value) { SetCoordinatorDpuSize(value); return *this;} /** *

The maximum number of DPUs that can run concurrently.

*/ inline int GetMaxConcurrentDpus() const{ return m_maxConcurrentDpus; } /** *

The maximum number of DPUs that can run concurrently.

*/ inline bool MaxConcurrentDpusHasBeenSet() const { return m_maxConcurrentDpusHasBeenSet; } /** *

The maximum number of DPUs that can run concurrently.

*/ inline void SetMaxConcurrentDpus(int value) { m_maxConcurrentDpusHasBeenSet = true; m_maxConcurrentDpus = value; } /** *

The maximum number of DPUs that can run concurrently.

*/ inline EngineConfiguration& WithMaxConcurrentDpus(int value) { SetMaxConcurrentDpus(value); return *this;} /** *

The default number of DPUs to use for executors. An executor is the smallest * unit of compute that a notebook session can request from Athena. The default is * 1.

*/ inline int GetDefaultExecutorDpuSize() const{ return m_defaultExecutorDpuSize; } /** *

The default number of DPUs to use for executors. An executor is the smallest * unit of compute that a notebook session can request from Athena. The default is * 1.

*/ inline bool DefaultExecutorDpuSizeHasBeenSet() const { return m_defaultExecutorDpuSizeHasBeenSet; } /** *

The default number of DPUs to use for executors. An executor is the smallest * unit of compute that a notebook session can request from Athena. The default is * 1.

*/ inline void SetDefaultExecutorDpuSize(int value) { m_defaultExecutorDpuSizeHasBeenSet = true; m_defaultExecutorDpuSize = value; } /** *

The default number of DPUs to use for executors. An executor is the smallest * unit of compute that a notebook session can request from Athena. The default is * 1.

*/ inline EngineConfiguration& WithDefaultExecutorDpuSize(int value) { SetDefaultExecutorDpuSize(value); return *this;} /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline const Aws::Map& GetAdditionalConfigs() const{ return m_additionalConfigs; } /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline bool AdditionalConfigsHasBeenSet() const { return m_additionalConfigsHasBeenSet; } /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline void SetAdditionalConfigs(const Aws::Map& value) { m_additionalConfigsHasBeenSet = true; m_additionalConfigs = value; } /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline void SetAdditionalConfigs(Aws::Map&& value) { m_additionalConfigsHasBeenSet = true; m_additionalConfigs = std::move(value); } /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline EngineConfiguration& WithAdditionalConfigs(const Aws::Map& value) { SetAdditionalConfigs(value); return *this;} /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline EngineConfiguration& WithAdditionalConfigs(Aws::Map&& value) { SetAdditionalConfigs(std::move(value)); return *this;} /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline EngineConfiguration& AddAdditionalConfigs(const Aws::String& key, const Aws::String& value) { m_additionalConfigsHasBeenSet = true; m_additionalConfigs.emplace(key, value); return *this; } /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline EngineConfiguration& AddAdditionalConfigs(Aws::String&& key, const Aws::String& value) { m_additionalConfigsHasBeenSet = true; m_additionalConfigs.emplace(std::move(key), value); return *this; } /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline EngineConfiguration& AddAdditionalConfigs(const Aws::String& key, Aws::String&& value) { m_additionalConfigsHasBeenSet = true; m_additionalConfigs.emplace(key, std::move(value)); return *this; } /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline EngineConfiguration& AddAdditionalConfigs(Aws::String&& key, Aws::String&& value) { m_additionalConfigsHasBeenSet = true; m_additionalConfigs.emplace(std::move(key), std::move(value)); return *this; } /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline EngineConfiguration& AddAdditionalConfigs(const char* key, Aws::String&& value) { m_additionalConfigsHasBeenSet = true; m_additionalConfigs.emplace(key, std::move(value)); return *this; } /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline EngineConfiguration& AddAdditionalConfigs(Aws::String&& key, const char* value) { m_additionalConfigsHasBeenSet = true; m_additionalConfigs.emplace(std::move(key), value); return *this; } /** *

Contains additional notebook engine MAP<string, string> * parameter mappings in the form of key-value pairs. To specify an Athena notebook * that the Jupyter server will download and serve, specify a value for the * StartSessionRequest$NotebookVersion field, and then add a key named * NotebookId to AdditionalConfigs that has the value of * the Athena notebook ID.

*/ inline EngineConfiguration& AddAdditionalConfigs(const char* key, const char* value) { m_additionalConfigsHasBeenSet = true; m_additionalConfigs.emplace(key, value); return *this; } /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline const Aws::Map& GetSparkProperties() const{ return m_sparkProperties; } /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline bool SparkPropertiesHasBeenSet() const { return m_sparkPropertiesHasBeenSet; } /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline void SetSparkProperties(const Aws::Map& value) { m_sparkPropertiesHasBeenSet = true; m_sparkProperties = value; } /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline void SetSparkProperties(Aws::Map&& value) { m_sparkPropertiesHasBeenSet = true; m_sparkProperties = std::move(value); } /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline EngineConfiguration& WithSparkProperties(const Aws::Map& value) { SetSparkProperties(value); return *this;} /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline EngineConfiguration& WithSparkProperties(Aws::Map&& value) { SetSparkProperties(std::move(value)); return *this;} /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline EngineConfiguration& AddSparkProperties(const Aws::String& key, const Aws::String& value) { m_sparkPropertiesHasBeenSet = true; m_sparkProperties.emplace(key, value); return *this; } /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline EngineConfiguration& AddSparkProperties(Aws::String&& key, const Aws::String& value) { m_sparkPropertiesHasBeenSet = true; m_sparkProperties.emplace(std::move(key), value); return *this; } /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline EngineConfiguration& AddSparkProperties(const Aws::String& key, Aws::String&& value) { m_sparkPropertiesHasBeenSet = true; m_sparkProperties.emplace(key, std::move(value)); return *this; } /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline EngineConfiguration& AddSparkProperties(Aws::String&& key, Aws::String&& value) { m_sparkPropertiesHasBeenSet = true; m_sparkProperties.emplace(std::move(key), std::move(value)); return *this; } /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline EngineConfiguration& AddSparkProperties(const char* key, Aws::String&& value) { m_sparkPropertiesHasBeenSet = true; m_sparkProperties.emplace(key, std::move(value)); return *this; } /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline EngineConfiguration& AddSparkProperties(Aws::String&& key, const char* value) { m_sparkPropertiesHasBeenSet = true; m_sparkProperties.emplace(std::move(key), value); return *this; } /** *

Specifies custom jar files and Spark properties for use cases like cluster * encryption, table formats, and general Spark tuning.

*/ inline EngineConfiguration& AddSparkProperties(const char* key, const char* value) { m_sparkPropertiesHasBeenSet = true; m_sparkProperties.emplace(key, value); return *this; } private: int m_coordinatorDpuSize; bool m_coordinatorDpuSizeHasBeenSet = false; int m_maxConcurrentDpus; bool m_maxConcurrentDpusHasBeenSet = false; int m_defaultExecutorDpuSize; bool m_defaultExecutorDpuSizeHasBeenSet = false; Aws::Map m_additionalConfigs; bool m_additionalConfigsHasBeenSet = false; Aws::Map m_sparkProperties; bool m_sparkPropertiesHasBeenSet = false; }; } // namespace Model } // namespace Athena } // namespace Aws