aws_sdk_athena/types/
_work_group_configuration_updates.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>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.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct WorkGroupConfigurationUpdates {
7    /// <p>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 <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.</p>
8    pub enforce_work_group_configuration: ::std::option::Option<bool>,
9    /// <p>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.</p>
10    pub result_configuration_updates: ::std::option::Option<crate::types::ResultConfigurationUpdates>,
11    /// <p>Updates configuration information for managed query results in the workgroup.</p>
12    pub managed_query_results_configuration_updates: ::std::option::Option<crate::types::ManagedQueryResultsConfigurationUpdates>,
13    /// <p>Indicates whether this workgroup enables publishing metrics to Amazon CloudWatch.</p>
14    pub publish_cloud_watch_metrics_enabled: ::std::option::Option<bool>,
15    /// <p>The upper limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan.</p>
16    pub bytes_scanned_cutoff_per_query: ::std::option::Option<i64>,
17    /// <p>Indicates that the data usage control limit per query is removed. <code>WorkGroupConfiguration$BytesScannedCutoffPerQuery</code></p>
18    pub remove_bytes_scanned_cutoff_per_query: ::std::option::Option<bool>,
19    /// <p>If set to <code>true</code>, allows members assigned to a workgroup to specify Amazon S3 Requester Pays buckets in queries. If set to <code>false</code>, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is <code>false</code>. For more information about Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester Pays Buckets</a> in the <i>Amazon Simple Storage Service Developer Guide</i>.</p>
20    pub requester_pays_enabled: ::std::option::Option<bool>,
21    /// <p>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 <code>AmazonAthenaPreviewFunctionality</code> workgroup run on the preview engine regardless of this setting.</p>
22    pub engine_version: ::std::option::Option<crate::types::EngineVersion>,
23    /// <p>Removes content encryption configuration from an Apache Spark-enabled Athena workgroup.</p>
24    pub remove_customer_content_encryption_configuration: ::std::option::Option<bool>,
25    /// <p>Contains a user defined string in JSON format for a Spark-enabled workgroup.</p>
26    pub additional_configuration: ::std::option::Option<::std::string::String>,
27    /// <p>The ARN of the execution role used to access user resources for Spark sessions and Identity Center enabled workgroups. This property applies only to Spark enabled workgroups and Identity Center enabled workgroups.</p>
28    pub execution_role: ::std::option::Option<::std::string::String>,
29    /// <p>Specifies the customer managed KMS key that is used to encrypt the user's data stores in Athena. When an Amazon Web Services managed key is used, this value is null. This setting does not apply to Athena SQL workgroups.</p>
30    pub customer_content_encryption_configuration: ::std::option::Option<crate::types::CustomerContentEncryptionConfiguration>,
31    /// <p>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.</p>
32    /// <p>The <code>EnforceWorkGroupConfiguration</code> setting takes precedence over the <code>EnableMinimumEncryptionConfiguration</code> flag. This means that if <code>EnforceWorkGroupConfiguration</code> is true, the <code>EnableMinimumEncryptionConfiguration</code> flag is ignored, and the workgroup configuration for encryption is used.</p>
33    pub enable_minimum_encryption_configuration: ::std::option::Option<bool>,
34    /// <p>Specifies whether Amazon S3 access grants are enabled for query results.</p>
35    pub query_results_s3_access_grants_configuration: ::std::option::Option<crate::types::QueryResultsS3AccessGrantsConfiguration>,
36    /// <p>Contains the configuration settings for managed log persistence, delivering logs to Amazon S3 buckets, Amazon CloudWatch log groups etc.</p>
37    pub monitoring_configuration: ::std::option::Option<crate::types::MonitoringConfiguration>,
38    /// <p>Contains data processing unit (DPU) configuration settings and parameter mappings for a notebook engine.</p>
39    pub engine_configuration: ::std::option::Option<crate::types::EngineConfiguration>,
40}
41impl WorkGroupConfigurationUpdates {
42    /// <p>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 <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.</p>
43    pub fn enforce_work_group_configuration(&self) -> ::std::option::Option<bool> {
44        self.enforce_work_group_configuration
45    }
46    /// <p>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.</p>
47    pub fn result_configuration_updates(&self) -> ::std::option::Option<&crate::types::ResultConfigurationUpdates> {
48        self.result_configuration_updates.as_ref()
49    }
50    /// <p>Updates configuration information for managed query results in the workgroup.</p>
51    pub fn managed_query_results_configuration_updates(&self) -> ::std::option::Option<&crate::types::ManagedQueryResultsConfigurationUpdates> {
52        self.managed_query_results_configuration_updates.as_ref()
53    }
54    /// <p>Indicates whether this workgroup enables publishing metrics to Amazon CloudWatch.</p>
55    pub fn publish_cloud_watch_metrics_enabled(&self) -> ::std::option::Option<bool> {
56        self.publish_cloud_watch_metrics_enabled
57    }
58    /// <p>The upper limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan.</p>
59    pub fn bytes_scanned_cutoff_per_query(&self) -> ::std::option::Option<i64> {
60        self.bytes_scanned_cutoff_per_query
61    }
62    /// <p>Indicates that the data usage control limit per query is removed. <code>WorkGroupConfiguration$BytesScannedCutoffPerQuery</code></p>
63    pub fn remove_bytes_scanned_cutoff_per_query(&self) -> ::std::option::Option<bool> {
64        self.remove_bytes_scanned_cutoff_per_query
65    }
66    /// <p>If set to <code>true</code>, allows members assigned to a workgroup to specify Amazon S3 Requester Pays buckets in queries. If set to <code>false</code>, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is <code>false</code>. For more information about Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester Pays Buckets</a> in the <i>Amazon Simple Storage Service Developer Guide</i>.</p>
67    pub fn requester_pays_enabled(&self) -> ::std::option::Option<bool> {
68        self.requester_pays_enabled
69    }
70    /// <p>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 <code>AmazonAthenaPreviewFunctionality</code> workgroup run on the preview engine regardless of this setting.</p>
71    pub fn engine_version(&self) -> ::std::option::Option<&crate::types::EngineVersion> {
72        self.engine_version.as_ref()
73    }
74    /// <p>Removes content encryption configuration from an Apache Spark-enabled Athena workgroup.</p>
75    pub fn remove_customer_content_encryption_configuration(&self) -> ::std::option::Option<bool> {
76        self.remove_customer_content_encryption_configuration
77    }
78    /// <p>Contains a user defined string in JSON format for a Spark-enabled workgroup.</p>
79    pub fn additional_configuration(&self) -> ::std::option::Option<&str> {
80        self.additional_configuration.as_deref()
81    }
82    /// <p>The ARN of the execution role used to access user resources for Spark sessions and Identity Center enabled workgroups. This property applies only to Spark enabled workgroups and Identity Center enabled workgroups.</p>
83    pub fn execution_role(&self) -> ::std::option::Option<&str> {
84        self.execution_role.as_deref()
85    }
86    /// <p>Specifies the customer managed KMS key that is used to encrypt the user's data stores in Athena. When an Amazon Web Services managed key is used, this value is null. This setting does not apply to Athena SQL workgroups.</p>
87    pub fn customer_content_encryption_configuration(&self) -> ::std::option::Option<&crate::types::CustomerContentEncryptionConfiguration> {
88        self.customer_content_encryption_configuration.as_ref()
89    }
90    /// <p>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.</p>
91    /// <p>The <code>EnforceWorkGroupConfiguration</code> setting takes precedence over the <code>EnableMinimumEncryptionConfiguration</code> flag. This means that if <code>EnforceWorkGroupConfiguration</code> is true, the <code>EnableMinimumEncryptionConfiguration</code> flag is ignored, and the workgroup configuration for encryption is used.</p>
92    pub fn enable_minimum_encryption_configuration(&self) -> ::std::option::Option<bool> {
93        self.enable_minimum_encryption_configuration
94    }
95    /// <p>Specifies whether Amazon S3 access grants are enabled for query results.</p>
96    pub fn query_results_s3_access_grants_configuration(&self) -> ::std::option::Option<&crate::types::QueryResultsS3AccessGrantsConfiguration> {
97        self.query_results_s3_access_grants_configuration.as_ref()
98    }
99    /// <p>Contains the configuration settings for managed log persistence, delivering logs to Amazon S3 buckets, Amazon CloudWatch log groups etc.</p>
100    pub fn monitoring_configuration(&self) -> ::std::option::Option<&crate::types::MonitoringConfiguration> {
101        self.monitoring_configuration.as_ref()
102    }
103    /// <p>Contains data processing unit (DPU) configuration settings and parameter mappings for a notebook engine.</p>
104    pub fn engine_configuration(&self) -> ::std::option::Option<&crate::types::EngineConfiguration> {
105        self.engine_configuration.as_ref()
106    }
107}
108impl WorkGroupConfigurationUpdates {
109    /// Creates a new builder-style object to manufacture [`WorkGroupConfigurationUpdates`](crate::types::WorkGroupConfigurationUpdates).
110    pub fn builder() -> crate::types::builders::WorkGroupConfigurationUpdatesBuilder {
111        crate::types::builders::WorkGroupConfigurationUpdatesBuilder::default()
112    }
113}
114
115/// A builder for [`WorkGroupConfigurationUpdates`](crate::types::WorkGroupConfigurationUpdates).
116#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
117#[non_exhaustive]
118pub struct WorkGroupConfigurationUpdatesBuilder {
119    pub(crate) enforce_work_group_configuration: ::std::option::Option<bool>,
120    pub(crate) result_configuration_updates: ::std::option::Option<crate::types::ResultConfigurationUpdates>,
121    pub(crate) managed_query_results_configuration_updates: ::std::option::Option<crate::types::ManagedQueryResultsConfigurationUpdates>,
122    pub(crate) publish_cloud_watch_metrics_enabled: ::std::option::Option<bool>,
123    pub(crate) bytes_scanned_cutoff_per_query: ::std::option::Option<i64>,
124    pub(crate) remove_bytes_scanned_cutoff_per_query: ::std::option::Option<bool>,
125    pub(crate) requester_pays_enabled: ::std::option::Option<bool>,
126    pub(crate) engine_version: ::std::option::Option<crate::types::EngineVersion>,
127    pub(crate) remove_customer_content_encryption_configuration: ::std::option::Option<bool>,
128    pub(crate) additional_configuration: ::std::option::Option<::std::string::String>,
129    pub(crate) execution_role: ::std::option::Option<::std::string::String>,
130    pub(crate) customer_content_encryption_configuration: ::std::option::Option<crate::types::CustomerContentEncryptionConfiguration>,
131    pub(crate) enable_minimum_encryption_configuration: ::std::option::Option<bool>,
132    pub(crate) query_results_s3_access_grants_configuration: ::std::option::Option<crate::types::QueryResultsS3AccessGrantsConfiguration>,
133    pub(crate) monitoring_configuration: ::std::option::Option<crate::types::MonitoringConfiguration>,
134    pub(crate) engine_configuration: ::std::option::Option<crate::types::EngineConfiguration>,
135}
136impl WorkGroupConfigurationUpdatesBuilder {
137    /// <p>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 <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.</p>
138    pub fn enforce_work_group_configuration(mut self, input: bool) -> Self {
139        self.enforce_work_group_configuration = ::std::option::Option::Some(input);
140        self
141    }
142    /// <p>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 <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.</p>
143    pub fn set_enforce_work_group_configuration(mut self, input: ::std::option::Option<bool>) -> Self {
144        self.enforce_work_group_configuration = input;
145        self
146    }
147    /// <p>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 <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.</p>
148    pub fn get_enforce_work_group_configuration(&self) -> &::std::option::Option<bool> {
149        &self.enforce_work_group_configuration
150    }
151    /// <p>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.</p>
152    pub fn result_configuration_updates(mut self, input: crate::types::ResultConfigurationUpdates) -> Self {
153        self.result_configuration_updates = ::std::option::Option::Some(input);
154        self
155    }
156    /// <p>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.</p>
157    pub fn set_result_configuration_updates(mut self, input: ::std::option::Option<crate::types::ResultConfigurationUpdates>) -> Self {
158        self.result_configuration_updates = input;
159        self
160    }
161    /// <p>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.</p>
162    pub fn get_result_configuration_updates(&self) -> &::std::option::Option<crate::types::ResultConfigurationUpdates> {
163        &self.result_configuration_updates
164    }
165    /// <p>Updates configuration information for managed query results in the workgroup.</p>
166    pub fn managed_query_results_configuration_updates(mut self, input: crate::types::ManagedQueryResultsConfigurationUpdates) -> Self {
167        self.managed_query_results_configuration_updates = ::std::option::Option::Some(input);
168        self
169    }
170    /// <p>Updates configuration information for managed query results in the workgroup.</p>
171    pub fn set_managed_query_results_configuration_updates(
172        mut self,
173        input: ::std::option::Option<crate::types::ManagedQueryResultsConfigurationUpdates>,
174    ) -> Self {
175        self.managed_query_results_configuration_updates = input;
176        self
177    }
178    /// <p>Updates configuration information for managed query results in the workgroup.</p>
179    pub fn get_managed_query_results_configuration_updates(&self) -> &::std::option::Option<crate::types::ManagedQueryResultsConfigurationUpdates> {
180        &self.managed_query_results_configuration_updates
181    }
182    /// <p>Indicates whether this workgroup enables publishing metrics to Amazon CloudWatch.</p>
183    pub fn publish_cloud_watch_metrics_enabled(mut self, input: bool) -> Self {
184        self.publish_cloud_watch_metrics_enabled = ::std::option::Option::Some(input);
185        self
186    }
187    /// <p>Indicates whether this workgroup enables publishing metrics to Amazon CloudWatch.</p>
188    pub fn set_publish_cloud_watch_metrics_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
189        self.publish_cloud_watch_metrics_enabled = input;
190        self
191    }
192    /// <p>Indicates whether this workgroup enables publishing metrics to Amazon CloudWatch.</p>
193    pub fn get_publish_cloud_watch_metrics_enabled(&self) -> &::std::option::Option<bool> {
194        &self.publish_cloud_watch_metrics_enabled
195    }
196    /// <p>The upper limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan.</p>
197    pub fn bytes_scanned_cutoff_per_query(mut self, input: i64) -> Self {
198        self.bytes_scanned_cutoff_per_query = ::std::option::Option::Some(input);
199        self
200    }
201    /// <p>The upper limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan.</p>
202    pub fn set_bytes_scanned_cutoff_per_query(mut self, input: ::std::option::Option<i64>) -> Self {
203        self.bytes_scanned_cutoff_per_query = input;
204        self
205    }
206    /// <p>The upper limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan.</p>
207    pub fn get_bytes_scanned_cutoff_per_query(&self) -> &::std::option::Option<i64> {
208        &self.bytes_scanned_cutoff_per_query
209    }
210    /// <p>Indicates that the data usage control limit per query is removed. <code>WorkGroupConfiguration$BytesScannedCutoffPerQuery</code></p>
211    pub fn remove_bytes_scanned_cutoff_per_query(mut self, input: bool) -> Self {
212        self.remove_bytes_scanned_cutoff_per_query = ::std::option::Option::Some(input);
213        self
214    }
215    /// <p>Indicates that the data usage control limit per query is removed. <code>WorkGroupConfiguration$BytesScannedCutoffPerQuery</code></p>
216    pub fn set_remove_bytes_scanned_cutoff_per_query(mut self, input: ::std::option::Option<bool>) -> Self {
217        self.remove_bytes_scanned_cutoff_per_query = input;
218        self
219    }
220    /// <p>Indicates that the data usage control limit per query is removed. <code>WorkGroupConfiguration$BytesScannedCutoffPerQuery</code></p>
221    pub fn get_remove_bytes_scanned_cutoff_per_query(&self) -> &::std::option::Option<bool> {
222        &self.remove_bytes_scanned_cutoff_per_query
223    }
224    /// <p>If set to <code>true</code>, allows members assigned to a workgroup to specify Amazon S3 Requester Pays buckets in queries. If set to <code>false</code>, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is <code>false</code>. For more information about Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester Pays Buckets</a> in the <i>Amazon Simple Storage Service Developer Guide</i>.</p>
225    pub fn requester_pays_enabled(mut self, input: bool) -> Self {
226        self.requester_pays_enabled = ::std::option::Option::Some(input);
227        self
228    }
229    /// <p>If set to <code>true</code>, allows members assigned to a workgroup to specify Amazon S3 Requester Pays buckets in queries. If set to <code>false</code>, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is <code>false</code>. For more information about Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester Pays Buckets</a> in the <i>Amazon Simple Storage Service Developer Guide</i>.</p>
230    pub fn set_requester_pays_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
231        self.requester_pays_enabled = input;
232        self
233    }
234    /// <p>If set to <code>true</code>, allows members assigned to a workgroup to specify Amazon S3 Requester Pays buckets in queries. If set to <code>false</code>, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is <code>false</code>. For more information about Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester Pays Buckets</a> in the <i>Amazon Simple Storage Service Developer Guide</i>.</p>
235    pub fn get_requester_pays_enabled(&self) -> &::std::option::Option<bool> {
236        &self.requester_pays_enabled
237    }
238    /// <p>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 <code>AmazonAthenaPreviewFunctionality</code> workgroup run on the preview engine regardless of this setting.</p>
239    pub fn engine_version(mut self, input: crate::types::EngineVersion) -> Self {
240        self.engine_version = ::std::option::Option::Some(input);
241        self
242    }
243    /// <p>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 <code>AmazonAthenaPreviewFunctionality</code> workgroup run on the preview engine regardless of this setting.</p>
244    pub fn set_engine_version(mut self, input: ::std::option::Option<crate::types::EngineVersion>) -> Self {
245        self.engine_version = input;
246        self
247    }
248    /// <p>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 <code>AmazonAthenaPreviewFunctionality</code> workgroup run on the preview engine regardless of this setting.</p>
249    pub fn get_engine_version(&self) -> &::std::option::Option<crate::types::EngineVersion> {
250        &self.engine_version
251    }
252    /// <p>Removes content encryption configuration from an Apache Spark-enabled Athena workgroup.</p>
253    pub fn remove_customer_content_encryption_configuration(mut self, input: bool) -> Self {
254        self.remove_customer_content_encryption_configuration = ::std::option::Option::Some(input);
255        self
256    }
257    /// <p>Removes content encryption configuration from an Apache Spark-enabled Athena workgroup.</p>
258    pub fn set_remove_customer_content_encryption_configuration(mut self, input: ::std::option::Option<bool>) -> Self {
259        self.remove_customer_content_encryption_configuration = input;
260        self
261    }
262    /// <p>Removes content encryption configuration from an Apache Spark-enabled Athena workgroup.</p>
263    pub fn get_remove_customer_content_encryption_configuration(&self) -> &::std::option::Option<bool> {
264        &self.remove_customer_content_encryption_configuration
265    }
266    /// <p>Contains a user defined string in JSON format for a Spark-enabled workgroup.</p>
267    pub fn additional_configuration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
268        self.additional_configuration = ::std::option::Option::Some(input.into());
269        self
270    }
271    /// <p>Contains a user defined string in JSON format for a Spark-enabled workgroup.</p>
272    pub fn set_additional_configuration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
273        self.additional_configuration = input;
274        self
275    }
276    /// <p>Contains a user defined string in JSON format for a Spark-enabled workgroup.</p>
277    pub fn get_additional_configuration(&self) -> &::std::option::Option<::std::string::String> {
278        &self.additional_configuration
279    }
280    /// <p>The ARN of the execution role used to access user resources for Spark sessions and Identity Center enabled workgroups. This property applies only to Spark enabled workgroups and Identity Center enabled workgroups.</p>
281    pub fn execution_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
282        self.execution_role = ::std::option::Option::Some(input.into());
283        self
284    }
285    /// <p>The ARN of the execution role used to access user resources for Spark sessions and Identity Center enabled workgroups. This property applies only to Spark enabled workgroups and Identity Center enabled workgroups.</p>
286    pub fn set_execution_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
287        self.execution_role = input;
288        self
289    }
290    /// <p>The ARN of the execution role used to access user resources for Spark sessions and Identity Center enabled workgroups. This property applies only to Spark enabled workgroups and Identity Center enabled workgroups.</p>
291    pub fn get_execution_role(&self) -> &::std::option::Option<::std::string::String> {
292        &self.execution_role
293    }
294    /// <p>Specifies the customer managed KMS key that is used to encrypt the user's data stores in Athena. When an Amazon Web Services managed key is used, this value is null. This setting does not apply to Athena SQL workgroups.</p>
295    pub fn customer_content_encryption_configuration(mut self, input: crate::types::CustomerContentEncryptionConfiguration) -> Self {
296        self.customer_content_encryption_configuration = ::std::option::Option::Some(input);
297        self
298    }
299    /// <p>Specifies the customer managed KMS key that is used to encrypt the user's data stores in Athena. When an Amazon Web Services managed key is used, this value is null. This setting does not apply to Athena SQL workgroups.</p>
300    pub fn set_customer_content_encryption_configuration(
301        mut self,
302        input: ::std::option::Option<crate::types::CustomerContentEncryptionConfiguration>,
303    ) -> Self {
304        self.customer_content_encryption_configuration = input;
305        self
306    }
307    /// <p>Specifies the customer managed KMS key that is used to encrypt the user's data stores in Athena. When an Amazon Web Services managed key is used, this value is null. This setting does not apply to Athena SQL workgroups.</p>
308    pub fn get_customer_content_encryption_configuration(&self) -> &::std::option::Option<crate::types::CustomerContentEncryptionConfiguration> {
309        &self.customer_content_encryption_configuration
310    }
311    /// <p>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.</p>
312    /// <p>The <code>EnforceWorkGroupConfiguration</code> setting takes precedence over the <code>EnableMinimumEncryptionConfiguration</code> flag. This means that if <code>EnforceWorkGroupConfiguration</code> is true, the <code>EnableMinimumEncryptionConfiguration</code> flag is ignored, and the workgroup configuration for encryption is used.</p>
313    pub fn enable_minimum_encryption_configuration(mut self, input: bool) -> Self {
314        self.enable_minimum_encryption_configuration = ::std::option::Option::Some(input);
315        self
316    }
317    /// <p>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.</p>
318    /// <p>The <code>EnforceWorkGroupConfiguration</code> setting takes precedence over the <code>EnableMinimumEncryptionConfiguration</code> flag. This means that if <code>EnforceWorkGroupConfiguration</code> is true, the <code>EnableMinimumEncryptionConfiguration</code> flag is ignored, and the workgroup configuration for encryption is used.</p>
319    pub fn set_enable_minimum_encryption_configuration(mut self, input: ::std::option::Option<bool>) -> Self {
320        self.enable_minimum_encryption_configuration = input;
321        self
322    }
323    /// <p>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.</p>
324    /// <p>The <code>EnforceWorkGroupConfiguration</code> setting takes precedence over the <code>EnableMinimumEncryptionConfiguration</code> flag. This means that if <code>EnforceWorkGroupConfiguration</code> is true, the <code>EnableMinimumEncryptionConfiguration</code> flag is ignored, and the workgroup configuration for encryption is used.</p>
325    pub fn get_enable_minimum_encryption_configuration(&self) -> &::std::option::Option<bool> {
326        &self.enable_minimum_encryption_configuration
327    }
328    /// <p>Specifies whether Amazon S3 access grants are enabled for query results.</p>
329    pub fn query_results_s3_access_grants_configuration(mut self, input: crate::types::QueryResultsS3AccessGrantsConfiguration) -> Self {
330        self.query_results_s3_access_grants_configuration = ::std::option::Option::Some(input);
331        self
332    }
333    /// <p>Specifies whether Amazon S3 access grants are enabled for query results.</p>
334    pub fn set_query_results_s3_access_grants_configuration(
335        mut self,
336        input: ::std::option::Option<crate::types::QueryResultsS3AccessGrantsConfiguration>,
337    ) -> Self {
338        self.query_results_s3_access_grants_configuration = input;
339        self
340    }
341    /// <p>Specifies whether Amazon S3 access grants are enabled for query results.</p>
342    pub fn get_query_results_s3_access_grants_configuration(&self) -> &::std::option::Option<crate::types::QueryResultsS3AccessGrantsConfiguration> {
343        &self.query_results_s3_access_grants_configuration
344    }
345    /// <p>Contains the configuration settings for managed log persistence, delivering logs to Amazon S3 buckets, Amazon CloudWatch log groups etc.</p>
346    pub fn monitoring_configuration(mut self, input: crate::types::MonitoringConfiguration) -> Self {
347        self.monitoring_configuration = ::std::option::Option::Some(input);
348        self
349    }
350    /// <p>Contains the configuration settings for managed log persistence, delivering logs to Amazon S3 buckets, Amazon CloudWatch log groups etc.</p>
351    pub fn set_monitoring_configuration(mut self, input: ::std::option::Option<crate::types::MonitoringConfiguration>) -> Self {
352        self.monitoring_configuration = input;
353        self
354    }
355    /// <p>Contains the configuration settings for managed log persistence, delivering logs to Amazon S3 buckets, Amazon CloudWatch log groups etc.</p>
356    pub fn get_monitoring_configuration(&self) -> &::std::option::Option<crate::types::MonitoringConfiguration> {
357        &self.monitoring_configuration
358    }
359    /// <p>Contains data processing unit (DPU) configuration settings and parameter mappings for a notebook engine.</p>
360    pub fn engine_configuration(mut self, input: crate::types::EngineConfiguration) -> Self {
361        self.engine_configuration = ::std::option::Option::Some(input);
362        self
363    }
364    /// <p>Contains data processing unit (DPU) configuration settings and parameter mappings for a notebook engine.</p>
365    pub fn set_engine_configuration(mut self, input: ::std::option::Option<crate::types::EngineConfiguration>) -> Self {
366        self.engine_configuration = input;
367        self
368    }
369    /// <p>Contains data processing unit (DPU) configuration settings and parameter mappings for a notebook engine.</p>
370    pub fn get_engine_configuration(&self) -> &::std::option::Option<crate::types::EngineConfiguration> {
371        &self.engine_configuration
372    }
373    /// Consumes the builder and constructs a [`WorkGroupConfigurationUpdates`](crate::types::WorkGroupConfigurationUpdates).
374    pub fn build(self) -> crate::types::WorkGroupConfigurationUpdates {
375        crate::types::WorkGroupConfigurationUpdates {
376            enforce_work_group_configuration: self.enforce_work_group_configuration,
377            result_configuration_updates: self.result_configuration_updates,
378            managed_query_results_configuration_updates: self.managed_query_results_configuration_updates,
379            publish_cloud_watch_metrics_enabled: self.publish_cloud_watch_metrics_enabled,
380            bytes_scanned_cutoff_per_query: self.bytes_scanned_cutoff_per_query,
381            remove_bytes_scanned_cutoff_per_query: self.remove_bytes_scanned_cutoff_per_query,
382            requester_pays_enabled: self.requester_pays_enabled,
383            engine_version: self.engine_version,
384            remove_customer_content_encryption_configuration: self.remove_customer_content_encryption_configuration,
385            additional_configuration: self.additional_configuration,
386            execution_role: self.execution_role,
387            customer_content_encryption_configuration: self.customer_content_encryption_configuration,
388            enable_minimum_encryption_configuration: self.enable_minimum_encryption_configuration,
389            query_results_s3_access_grants_configuration: self.query_results_s3_access_grants_configuration,
390            monitoring_configuration: self.monitoring_configuration,
391            engine_configuration: self.engine_configuration,
392        }
393    }
394}