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

The configuration information that will be updated for this workgroup, which * includes the location in Amazon S3 where query and calculation results are * stored, the encryption option, if any, used for query results, whether the * Amazon CloudWatch Metrics are enabled for the workgroup, whether the workgroup * settings override the client-side settings, and the data usage limit for the * amount of bytes scanned per query, if it is specified.

See Also:

* AWS * API Reference

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

If set to "true", the settings for the workgroup override client-side * settings. If set to "false" client-side settings are used. For more information, * see Workgroup * Settings Override Client-Side Settings.

*/ inline bool GetEnforceWorkGroupConfiguration() const{ return m_enforceWorkGroupConfiguration; } /** *

If set to "true", the settings for the workgroup override client-side * settings. If set to "false" client-side settings are used. For more information, * see Workgroup * Settings Override Client-Side Settings.

*/ inline bool EnforceWorkGroupConfigurationHasBeenSet() const { return m_enforceWorkGroupConfigurationHasBeenSet; } /** *

If set to "true", the settings for the workgroup override client-side * settings. If set to "false" client-side settings are used. For more information, * see Workgroup * Settings Override Client-Side Settings.

*/ inline void SetEnforceWorkGroupConfiguration(bool value) { m_enforceWorkGroupConfigurationHasBeenSet = true; m_enforceWorkGroupConfiguration = value; } /** *

If set to "true", the settings for the workgroup override client-side * settings. If set to "false" client-side settings are used. For more information, * see Workgroup * Settings Override Client-Side Settings.

*/ inline WorkGroupConfigurationUpdates& WithEnforceWorkGroupConfiguration(bool value) { SetEnforceWorkGroupConfiguration(value); return *this;} /** *

The result configuration information about the queries in this workgroup that * will be updated. Includes the updated results location and an updated option for * encrypting query results.

*/ inline const ResultConfigurationUpdates& GetResultConfigurationUpdates() const{ return m_resultConfigurationUpdates; } /** *

The result configuration information about the queries in this workgroup that * will be updated. Includes the updated results location and an updated option for * encrypting query results.

*/ inline bool ResultConfigurationUpdatesHasBeenSet() const { return m_resultConfigurationUpdatesHasBeenSet; } /** *

The result configuration information about the queries in this workgroup that * will be updated. Includes the updated results location and an updated option for * encrypting query results.

*/ inline void SetResultConfigurationUpdates(const ResultConfigurationUpdates& value) { m_resultConfigurationUpdatesHasBeenSet = true; m_resultConfigurationUpdates = value; } /** *

The result configuration information about the queries in this workgroup that * will be updated. Includes the updated results location and an updated option for * encrypting query results.

*/ inline void SetResultConfigurationUpdates(ResultConfigurationUpdates&& value) { m_resultConfigurationUpdatesHasBeenSet = true; m_resultConfigurationUpdates = std::move(value); } /** *

The result configuration information about the queries in this workgroup that * will be updated. Includes the updated results location and an updated option for * encrypting query results.

*/ inline WorkGroupConfigurationUpdates& WithResultConfigurationUpdates(const ResultConfigurationUpdates& value) { SetResultConfigurationUpdates(value); return *this;} /** *

The result configuration information about the queries in this workgroup that * will be updated. Includes the updated results location and an updated option for * encrypting query results.

*/ inline WorkGroupConfigurationUpdates& WithResultConfigurationUpdates(ResultConfigurationUpdates&& value) { SetResultConfigurationUpdates(std::move(value)); return *this;} /** *

Indicates whether this workgroup enables publishing metrics to Amazon * CloudWatch.

*/ inline bool GetPublishCloudWatchMetricsEnabled() const{ return m_publishCloudWatchMetricsEnabled; } /** *

Indicates whether this workgroup enables publishing metrics to Amazon * CloudWatch.

*/ inline bool PublishCloudWatchMetricsEnabledHasBeenSet() const { return m_publishCloudWatchMetricsEnabledHasBeenSet; } /** *

Indicates whether this workgroup enables publishing metrics to Amazon * CloudWatch.

*/ inline void SetPublishCloudWatchMetricsEnabled(bool value) { m_publishCloudWatchMetricsEnabledHasBeenSet = true; m_publishCloudWatchMetricsEnabled = value; } /** *

Indicates whether this workgroup enables publishing metrics to Amazon * CloudWatch.

*/ inline WorkGroupConfigurationUpdates& WithPublishCloudWatchMetricsEnabled(bool value) { SetPublishCloudWatchMetricsEnabled(value); return *this;} /** *

The upper limit (cutoff) for the amount of bytes a single query in a * workgroup is allowed to scan.

*/ inline long long GetBytesScannedCutoffPerQuery() const{ return m_bytesScannedCutoffPerQuery; } /** *

The upper limit (cutoff) for the amount of bytes a single query in a * workgroup is allowed to scan.

*/ inline bool BytesScannedCutoffPerQueryHasBeenSet() const { return m_bytesScannedCutoffPerQueryHasBeenSet; } /** *

The upper limit (cutoff) for the amount of bytes a single query in a * workgroup is allowed to scan.

*/ inline void SetBytesScannedCutoffPerQuery(long long value) { m_bytesScannedCutoffPerQueryHasBeenSet = true; m_bytesScannedCutoffPerQuery = value; } /** *

The upper limit (cutoff) for the amount of bytes a single query in a * workgroup is allowed to scan.

*/ inline WorkGroupConfigurationUpdates& WithBytesScannedCutoffPerQuery(long long value) { SetBytesScannedCutoffPerQuery(value); return *this;} /** *

Indicates that the data usage control limit per query is removed. * WorkGroupConfiguration$BytesScannedCutoffPerQuery

*/ inline bool GetRemoveBytesScannedCutoffPerQuery() const{ return m_removeBytesScannedCutoffPerQuery; } /** *

Indicates that the data usage control limit per query is removed. * WorkGroupConfiguration$BytesScannedCutoffPerQuery

*/ inline bool RemoveBytesScannedCutoffPerQueryHasBeenSet() const { return m_removeBytesScannedCutoffPerQueryHasBeenSet; } /** *

Indicates that the data usage control limit per query is removed. * WorkGroupConfiguration$BytesScannedCutoffPerQuery

*/ inline void SetRemoveBytesScannedCutoffPerQuery(bool value) { m_removeBytesScannedCutoffPerQueryHasBeenSet = true; m_removeBytesScannedCutoffPerQuery = value; } /** *

Indicates that the data usage control limit per query is removed. * WorkGroupConfiguration$BytesScannedCutoffPerQuery

*/ inline WorkGroupConfigurationUpdates& WithRemoveBytesScannedCutoffPerQuery(bool value) { SetRemoveBytesScannedCutoffPerQuery(value); return *this;} /** *

If set to true, allows members assigned to a workgroup to * specify Amazon S3 Requester Pays buckets in queries. If set to * false, workgroup members cannot query data from Requester Pays * buckets, and queries that retrieve data from Requester Pays buckets cause an * error. The default is false. For more information about Requester * Pays buckets, see Requester * Pays Buckets in the Amazon Simple Storage Service Developer * Guide.

*/ inline bool GetRequesterPaysEnabled() const{ return m_requesterPaysEnabled; } /** *

If set to true, allows members assigned to a workgroup to * specify Amazon S3 Requester Pays buckets in queries. If set to * false, workgroup members cannot query data from Requester Pays * buckets, and queries that retrieve data from Requester Pays buckets cause an * error. The default is false. For more information about Requester * Pays buckets, see Requester * Pays Buckets in the Amazon Simple Storage Service Developer * Guide.

*/ inline bool RequesterPaysEnabledHasBeenSet() const { return m_requesterPaysEnabledHasBeenSet; } /** *

If set to true, allows members assigned to a workgroup to * specify Amazon S3 Requester Pays buckets in queries. If set to * false, workgroup members cannot query data from Requester Pays * buckets, and queries that retrieve data from Requester Pays buckets cause an * error. The default is false. For more information about Requester * Pays buckets, see Requester * Pays Buckets in the Amazon Simple Storage Service Developer * Guide.

*/ inline void SetRequesterPaysEnabled(bool value) { m_requesterPaysEnabledHasBeenSet = true; m_requesterPaysEnabled = value; } /** *

If set to true, allows members assigned to a workgroup to * specify Amazon S3 Requester Pays buckets in queries. If set to * false, workgroup members cannot query data from Requester Pays * buckets, and queries that retrieve data from Requester Pays buckets cause an * error. The default is false. For more information about Requester * Pays buckets, see Requester * Pays Buckets in the Amazon Simple Storage Service Developer * Guide.

*/ inline WorkGroupConfigurationUpdates& WithRequesterPaysEnabled(bool value) { SetRequesterPaysEnabled(value); return *this;} /** *

The engine version requested when a workgroup is updated. After the update, * all queries on the workgroup run on the requested engine version. If no value * was previously set, the default is Auto. Queries on the * AmazonAthenaPreviewFunctionality workgroup run on the preview * engine regardless of this setting.

*/ inline const EngineVersion& GetEngineVersion() const{ return m_engineVersion; } /** *

The engine version requested when a workgroup is updated. After the update, * all queries on the workgroup run on the requested engine version. If no value * was previously set, the default is Auto. Queries on the * AmazonAthenaPreviewFunctionality workgroup run on the preview * engine regardless of this setting.

*/ inline bool EngineVersionHasBeenSet() const { return m_engineVersionHasBeenSet; } /** *

The engine version requested when a workgroup is updated. After the update, * all queries on the workgroup run on the requested engine version. If no value * was previously set, the default is Auto. Queries on the * AmazonAthenaPreviewFunctionality workgroup run on the preview * engine regardless of this setting.

*/ inline void SetEngineVersion(const EngineVersion& value) { m_engineVersionHasBeenSet = true; m_engineVersion = value; } /** *

The engine version requested when a workgroup is updated. After the update, * all queries on the workgroup run on the requested engine version. If no value * was previously set, the default is Auto. Queries on the * AmazonAthenaPreviewFunctionality workgroup run on the preview * engine regardless of this setting.

*/ inline void SetEngineVersion(EngineVersion&& value) { m_engineVersionHasBeenSet = true; m_engineVersion = std::move(value); } /** *

The engine version requested when a workgroup is updated. After the update, * all queries on the workgroup run on the requested engine version. If no value * was previously set, the default is Auto. Queries on the * AmazonAthenaPreviewFunctionality workgroup run on the preview * engine regardless of this setting.

*/ inline WorkGroupConfigurationUpdates& WithEngineVersion(const EngineVersion& value) { SetEngineVersion(value); return *this;} /** *

The engine version requested when a workgroup is updated. After the update, * all queries on the workgroup run on the requested engine version. If no value * was previously set, the default is Auto. Queries on the * AmazonAthenaPreviewFunctionality workgroup run on the preview * engine regardless of this setting.

*/ inline WorkGroupConfigurationUpdates& WithEngineVersion(EngineVersion&& value) { SetEngineVersion(std::move(value)); return *this;} /** *

Removes content encryption configuration from an Apache Spark-enabled Athena * workgroup.

*/ inline bool GetRemoveCustomerContentEncryptionConfiguration() const{ return m_removeCustomerContentEncryptionConfiguration; } /** *

Removes content encryption configuration from an Apache Spark-enabled Athena * workgroup.

*/ inline bool RemoveCustomerContentEncryptionConfigurationHasBeenSet() const { return m_removeCustomerContentEncryptionConfigurationHasBeenSet; } /** *

Removes content encryption configuration from an Apache Spark-enabled Athena * workgroup.

*/ inline void SetRemoveCustomerContentEncryptionConfiguration(bool value) { m_removeCustomerContentEncryptionConfigurationHasBeenSet = true; m_removeCustomerContentEncryptionConfiguration = value; } /** *

Removes content encryption configuration from an Apache Spark-enabled Athena * workgroup.

*/ inline WorkGroupConfigurationUpdates& WithRemoveCustomerContentEncryptionConfiguration(bool value) { SetRemoveCustomerContentEncryptionConfiguration(value); return *this;} /** *

Contains a user defined string in JSON format for a Spark-enabled * workgroup.

*/ inline const Aws::String& GetAdditionalConfiguration() const{ return m_additionalConfiguration; } /** *

Contains a user defined string in JSON format for a Spark-enabled * workgroup.

*/ inline bool AdditionalConfigurationHasBeenSet() const { return m_additionalConfigurationHasBeenSet; } /** *

Contains a user defined string in JSON format for a Spark-enabled * workgroup.

*/ inline void SetAdditionalConfiguration(const Aws::String& value) { m_additionalConfigurationHasBeenSet = true; m_additionalConfiguration = value; } /** *

Contains a user defined string in JSON format for a Spark-enabled * workgroup.

*/ inline void SetAdditionalConfiguration(Aws::String&& value) { m_additionalConfigurationHasBeenSet = true; m_additionalConfiguration = std::move(value); } /** *

Contains a user defined string in JSON format for a Spark-enabled * workgroup.

*/ inline void SetAdditionalConfiguration(const char* value) { m_additionalConfigurationHasBeenSet = true; m_additionalConfiguration.assign(value); } /** *

Contains a user defined string in JSON format for a Spark-enabled * workgroup.

*/ inline WorkGroupConfigurationUpdates& WithAdditionalConfiguration(const Aws::String& value) { SetAdditionalConfiguration(value); return *this;} /** *

Contains a user defined string in JSON format for a Spark-enabled * workgroup.

*/ inline WorkGroupConfigurationUpdates& WithAdditionalConfiguration(Aws::String&& value) { SetAdditionalConfiguration(std::move(value)); return *this;} /** *

Contains a user defined string in JSON format for a Spark-enabled * workgroup.

*/ inline WorkGroupConfigurationUpdates& WithAdditionalConfiguration(const char* value) { SetAdditionalConfiguration(value); return *this;} /** *

Contains the ARN of the execution role for the workgroup

*/ inline const Aws::String& GetExecutionRole() const{ return m_executionRole; } /** *

Contains the ARN of the execution role for the workgroup

*/ inline bool ExecutionRoleHasBeenSet() const { return m_executionRoleHasBeenSet; } /** *

Contains the ARN of the execution role for the workgroup

*/ inline void SetExecutionRole(const Aws::String& value) { m_executionRoleHasBeenSet = true; m_executionRole = value; } /** *

Contains the ARN of the execution role for the workgroup

*/ inline void SetExecutionRole(Aws::String&& value) { m_executionRoleHasBeenSet = true; m_executionRole = std::move(value); } /** *

Contains the ARN of the execution role for the workgroup

*/ inline void SetExecutionRole(const char* value) { m_executionRoleHasBeenSet = true; m_executionRole.assign(value); } /** *

Contains the ARN of the execution role for the workgroup

*/ inline WorkGroupConfigurationUpdates& WithExecutionRole(const Aws::String& value) { SetExecutionRole(value); return *this;} /** *

Contains the ARN of the execution role for the workgroup

*/ inline WorkGroupConfigurationUpdates& WithExecutionRole(Aws::String&& value) { SetExecutionRole(std::move(value)); return *this;} /** *

Contains the ARN of the execution role for the workgroup

*/ inline WorkGroupConfigurationUpdates& WithExecutionRole(const char* value) { SetExecutionRole(value); return *this;} inline const CustomerContentEncryptionConfiguration& GetCustomerContentEncryptionConfiguration() const{ return m_customerContentEncryptionConfiguration; } inline bool CustomerContentEncryptionConfigurationHasBeenSet() const { return m_customerContentEncryptionConfigurationHasBeenSet; } inline void SetCustomerContentEncryptionConfiguration(const CustomerContentEncryptionConfiguration& value) { m_customerContentEncryptionConfigurationHasBeenSet = true; m_customerContentEncryptionConfiguration = value; } inline void SetCustomerContentEncryptionConfiguration(CustomerContentEncryptionConfiguration&& value) { m_customerContentEncryptionConfigurationHasBeenSet = true; m_customerContentEncryptionConfiguration = std::move(value); } inline WorkGroupConfigurationUpdates& WithCustomerContentEncryptionConfiguration(const CustomerContentEncryptionConfiguration& value) { SetCustomerContentEncryptionConfiguration(value); return *this;} inline WorkGroupConfigurationUpdates& WithCustomerContentEncryptionConfiguration(CustomerContentEncryptionConfiguration&& value) { SetCustomerContentEncryptionConfiguration(std::move(value)); return *this;} /** *

Enforces a minimal level of encryption for the workgroup for query and * calculation results that are written to Amazon S3. When enabled, workgroup users * can set encryption only to the minimum level set by the administrator or higher * when they submit queries. This setting does not apply to Spark-enabled * workgroups.

The EnforceWorkGroupConfiguration setting takes * precedence over the EnableMinimumEncryptionConfiguration flag. This * means that if EnforceWorkGroupConfiguration is true, the * EnableMinimumEncryptionConfiguration flag is ignored, and the * workgroup configuration for encryption is used.

*/ inline bool GetEnableMinimumEncryptionConfiguration() const{ return m_enableMinimumEncryptionConfiguration; } /** *

Enforces a minimal level of encryption for the workgroup for query and * calculation results that are written to Amazon S3. When enabled, workgroup users * can set encryption only to the minimum level set by the administrator or higher * when they submit queries. This setting does not apply to Spark-enabled * workgroups.

The EnforceWorkGroupConfiguration setting takes * precedence over the EnableMinimumEncryptionConfiguration flag. This * means that if EnforceWorkGroupConfiguration is true, the * EnableMinimumEncryptionConfiguration flag is ignored, and the * workgroup configuration for encryption is used.

*/ inline bool EnableMinimumEncryptionConfigurationHasBeenSet() const { return m_enableMinimumEncryptionConfigurationHasBeenSet; } /** *

Enforces a minimal level of encryption for the workgroup for query and * calculation results that are written to Amazon S3. When enabled, workgroup users * can set encryption only to the minimum level set by the administrator or higher * when they submit queries. This setting does not apply to Spark-enabled * workgroups.

The EnforceWorkGroupConfiguration setting takes * precedence over the EnableMinimumEncryptionConfiguration flag. This * means that if EnforceWorkGroupConfiguration is true, the * EnableMinimumEncryptionConfiguration flag is ignored, and the * workgroup configuration for encryption is used.

*/ inline void SetEnableMinimumEncryptionConfiguration(bool value) { m_enableMinimumEncryptionConfigurationHasBeenSet = true; m_enableMinimumEncryptionConfiguration = value; } /** *

Enforces a minimal level of encryption for the workgroup for query and * calculation results that are written to Amazon S3. When enabled, workgroup users * can set encryption only to the minimum level set by the administrator or higher * when they submit queries. This setting does not apply to Spark-enabled * workgroups.

The EnforceWorkGroupConfiguration setting takes * precedence over the EnableMinimumEncryptionConfiguration flag. This * means that if EnforceWorkGroupConfiguration is true, the * EnableMinimumEncryptionConfiguration flag is ignored, and the * workgroup configuration for encryption is used.

*/ inline WorkGroupConfigurationUpdates& WithEnableMinimumEncryptionConfiguration(bool value) { SetEnableMinimumEncryptionConfiguration(value); return *this;} private: bool m_enforceWorkGroupConfiguration; bool m_enforceWorkGroupConfigurationHasBeenSet = false; ResultConfigurationUpdates m_resultConfigurationUpdates; bool m_resultConfigurationUpdatesHasBeenSet = false; bool m_publishCloudWatchMetricsEnabled; bool m_publishCloudWatchMetricsEnabledHasBeenSet = false; long long m_bytesScannedCutoffPerQuery; bool m_bytesScannedCutoffPerQueryHasBeenSet = false; bool m_removeBytesScannedCutoffPerQuery; bool m_removeBytesScannedCutoffPerQueryHasBeenSet = false; bool m_requesterPaysEnabled; bool m_requesterPaysEnabledHasBeenSet = false; EngineVersion m_engineVersion; bool m_engineVersionHasBeenSet = false; bool m_removeCustomerContentEncryptionConfiguration; bool m_removeCustomerContentEncryptionConfigurationHasBeenSet = false; Aws::String m_additionalConfiguration; bool m_additionalConfigurationHasBeenSet = false; Aws::String m_executionRole; bool m_executionRoleHasBeenSet = false; CustomerContentEncryptionConfiguration m_customerContentEncryptionConfiguration; bool m_customerContentEncryptionConfigurationHasBeenSet = false; bool m_enableMinimumEncryptionConfiguration; bool m_enableMinimumEncryptionConfigurationHasBeenSet = false; }; } // namespace Model } // namespace Athena } // namespace Aws