aws_sdk_emrserverless/operation/update_application/
_update_application_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct UpdateApplicationInput {
6    /// <p>The ID of the application to update.</p>
7    pub application_id: ::std::option::Option<::std::string::String>,
8    /// <p>The client idempotency token of the application to update. Its value must be unique for each request.</p>
9    pub client_token: ::std::option::Option<::std::string::String>,
10    /// <p>The capacity to initialize when the application is updated.</p>
11    pub initial_capacity: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>>,
12    /// <p>The maximum capacity to allocate when the application is updated. This is cumulative across all workers at any given point in time during the lifespan of the application. No new resources will be created once any one of the defined limits is hit.</p>
13    pub maximum_capacity: ::std::option::Option<crate::types::MaximumAllowedResources>,
14    /// <p>The configuration for an application to automatically start on job submission.</p>
15    pub auto_start_configuration: ::std::option::Option<crate::types::AutoStartConfig>,
16    /// <p>The configuration for an application to automatically stop after a certain amount of time being idle.</p>
17    pub auto_stop_configuration: ::std::option::Option<crate::types::AutoStopConfig>,
18    /// <p>The network configuration for customer VPC connectivity.</p>
19    pub network_configuration: ::std::option::Option<crate::types::NetworkConfiguration>,
20    /// <p>The CPU architecture of an application.</p>
21    pub architecture: ::std::option::Option<crate::types::Architecture>,
22    /// <p>The image configuration to be used for all worker types. You can either set this parameter or <code>imageConfiguration</code> for each worker type in <code>WorkerTypeSpecificationInput</code>.</p>
23    pub image_configuration: ::std::option::Option<crate::types::ImageConfigurationInput>,
24    /// <p>The key-value pairs that specify worker type to <code>WorkerTypeSpecificationInput</code>. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include <code>Driver</code> and <code>Executor</code> for Spark applications and <code>HiveDriver</code> and <code>TezTask</code> for Hive applications. You can either set image details in this parameter for each worker type, or in <code>imageConfiguration</code> for all worker types.</p>
25    pub worker_type_specifications:
26        ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>>,
27    /// <p>The interactive configuration object that contains new interactive use cases when the application is updated.</p>
28    pub interactive_configuration: ::std::option::Option<crate::types::InteractiveConfiguration>,
29    /// <p>The Amazon EMR release label for the application. You can change the release label to use a different release of Amazon EMR.</p>
30    pub release_label: ::std::option::Option<::std::string::String>,
31    /// <p>The <a href="https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html">Configuration</a> specifications to use when updating an application. Each configuration consists of a classification and properties. This configuration is applied across all the job runs submitted under the application.</p>
32    pub runtime_configuration: ::std::option::Option<::std::vec::Vec<crate::types::Configuration>>,
33    /// <p>The configuration setting for monitoring.</p>
34    pub monitoring_configuration: ::std::option::Option<crate::types::MonitoringConfiguration>,
35    /// <p>The scheduler configuration for batch and streaming jobs running on this application. Supported with release labels emr-7.0.0 and above.</p>
36    pub scheduler_configuration: ::std::option::Option<crate::types::SchedulerConfiguration>,
37    /// <p>Specifies the IAM Identity Center configuration used to enable or disable trusted identity propagation. When provided, this configuration determines how the application interacts with IAM Identity Center for user authentication and access control.</p>
38    pub identity_center_configuration: ::std::option::Option<crate::types::IdentityCenterConfigurationInput>,
39}
40impl UpdateApplicationInput {
41    /// <p>The ID of the application to update.</p>
42    pub fn application_id(&self) -> ::std::option::Option<&str> {
43        self.application_id.as_deref()
44    }
45    /// <p>The client idempotency token of the application to update. Its value must be unique for each request.</p>
46    pub fn client_token(&self) -> ::std::option::Option<&str> {
47        self.client_token.as_deref()
48    }
49    /// <p>The capacity to initialize when the application is updated.</p>
50    pub fn initial_capacity(
51        &self,
52    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>> {
53        self.initial_capacity.as_ref()
54    }
55    /// <p>The maximum capacity to allocate when the application is updated. This is cumulative across all workers at any given point in time during the lifespan of the application. No new resources will be created once any one of the defined limits is hit.</p>
56    pub fn maximum_capacity(&self) -> ::std::option::Option<&crate::types::MaximumAllowedResources> {
57        self.maximum_capacity.as_ref()
58    }
59    /// <p>The configuration for an application to automatically start on job submission.</p>
60    pub fn auto_start_configuration(&self) -> ::std::option::Option<&crate::types::AutoStartConfig> {
61        self.auto_start_configuration.as_ref()
62    }
63    /// <p>The configuration for an application to automatically stop after a certain amount of time being idle.</p>
64    pub fn auto_stop_configuration(&self) -> ::std::option::Option<&crate::types::AutoStopConfig> {
65        self.auto_stop_configuration.as_ref()
66    }
67    /// <p>The network configuration for customer VPC connectivity.</p>
68    pub fn network_configuration(&self) -> ::std::option::Option<&crate::types::NetworkConfiguration> {
69        self.network_configuration.as_ref()
70    }
71    /// <p>The CPU architecture of an application.</p>
72    pub fn architecture(&self) -> ::std::option::Option<&crate::types::Architecture> {
73        self.architecture.as_ref()
74    }
75    /// <p>The image configuration to be used for all worker types. You can either set this parameter or <code>imageConfiguration</code> for each worker type in <code>WorkerTypeSpecificationInput</code>.</p>
76    pub fn image_configuration(&self) -> ::std::option::Option<&crate::types::ImageConfigurationInput> {
77        self.image_configuration.as_ref()
78    }
79    /// <p>The key-value pairs that specify worker type to <code>WorkerTypeSpecificationInput</code>. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include <code>Driver</code> and <code>Executor</code> for Spark applications and <code>HiveDriver</code> and <code>TezTask</code> for Hive applications. You can either set image details in this parameter for each worker type, or in <code>imageConfiguration</code> for all worker types.</p>
80    pub fn worker_type_specifications(
81        &self,
82    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>> {
83        self.worker_type_specifications.as_ref()
84    }
85    /// <p>The interactive configuration object that contains new interactive use cases when the application is updated.</p>
86    pub fn interactive_configuration(&self) -> ::std::option::Option<&crate::types::InteractiveConfiguration> {
87        self.interactive_configuration.as_ref()
88    }
89    /// <p>The Amazon EMR release label for the application. You can change the release label to use a different release of Amazon EMR.</p>
90    pub fn release_label(&self) -> ::std::option::Option<&str> {
91        self.release_label.as_deref()
92    }
93    /// <p>The <a href="https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html">Configuration</a> specifications to use when updating an application. Each configuration consists of a classification and properties. This configuration is applied across all the job runs submitted under the application.</p>
94    ///
95    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.runtime_configuration.is_none()`.
96    pub fn runtime_configuration(&self) -> &[crate::types::Configuration] {
97        self.runtime_configuration.as_deref().unwrap_or_default()
98    }
99    /// <p>The configuration setting for monitoring.</p>
100    pub fn monitoring_configuration(&self) -> ::std::option::Option<&crate::types::MonitoringConfiguration> {
101        self.monitoring_configuration.as_ref()
102    }
103    /// <p>The scheduler configuration for batch and streaming jobs running on this application. Supported with release labels emr-7.0.0 and above.</p>
104    pub fn scheduler_configuration(&self) -> ::std::option::Option<&crate::types::SchedulerConfiguration> {
105        self.scheduler_configuration.as_ref()
106    }
107    /// <p>Specifies the IAM Identity Center configuration used to enable or disable trusted identity propagation. When provided, this configuration determines how the application interacts with IAM Identity Center for user authentication and access control.</p>
108    pub fn identity_center_configuration(&self) -> ::std::option::Option<&crate::types::IdentityCenterConfigurationInput> {
109        self.identity_center_configuration.as_ref()
110    }
111}
112impl UpdateApplicationInput {
113    /// Creates a new builder-style object to manufacture [`UpdateApplicationInput`](crate::operation::update_application::UpdateApplicationInput).
114    pub fn builder() -> crate::operation::update_application::builders::UpdateApplicationInputBuilder {
115        crate::operation::update_application::builders::UpdateApplicationInputBuilder::default()
116    }
117}
118
119/// A builder for [`UpdateApplicationInput`](crate::operation::update_application::UpdateApplicationInput).
120#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
121#[non_exhaustive]
122pub struct UpdateApplicationInputBuilder {
123    pub(crate) application_id: ::std::option::Option<::std::string::String>,
124    pub(crate) client_token: ::std::option::Option<::std::string::String>,
125    pub(crate) initial_capacity: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>>,
126    pub(crate) maximum_capacity: ::std::option::Option<crate::types::MaximumAllowedResources>,
127    pub(crate) auto_start_configuration: ::std::option::Option<crate::types::AutoStartConfig>,
128    pub(crate) auto_stop_configuration: ::std::option::Option<crate::types::AutoStopConfig>,
129    pub(crate) network_configuration: ::std::option::Option<crate::types::NetworkConfiguration>,
130    pub(crate) architecture: ::std::option::Option<crate::types::Architecture>,
131    pub(crate) image_configuration: ::std::option::Option<crate::types::ImageConfigurationInput>,
132    pub(crate) worker_type_specifications:
133        ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>>,
134    pub(crate) interactive_configuration: ::std::option::Option<crate::types::InteractiveConfiguration>,
135    pub(crate) release_label: ::std::option::Option<::std::string::String>,
136    pub(crate) runtime_configuration: ::std::option::Option<::std::vec::Vec<crate::types::Configuration>>,
137    pub(crate) monitoring_configuration: ::std::option::Option<crate::types::MonitoringConfiguration>,
138    pub(crate) scheduler_configuration: ::std::option::Option<crate::types::SchedulerConfiguration>,
139    pub(crate) identity_center_configuration: ::std::option::Option<crate::types::IdentityCenterConfigurationInput>,
140}
141impl UpdateApplicationInputBuilder {
142    /// <p>The ID of the application to update.</p>
143    /// This field is required.
144    pub fn application_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
145        self.application_id = ::std::option::Option::Some(input.into());
146        self
147    }
148    /// <p>The ID of the application to update.</p>
149    pub fn set_application_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
150        self.application_id = input;
151        self
152    }
153    /// <p>The ID of the application to update.</p>
154    pub fn get_application_id(&self) -> &::std::option::Option<::std::string::String> {
155        &self.application_id
156    }
157    /// <p>The client idempotency token of the application to update. Its value must be unique for each request.</p>
158    /// This field is required.
159    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
160        self.client_token = ::std::option::Option::Some(input.into());
161        self
162    }
163    /// <p>The client idempotency token of the application to update. Its value must be unique for each request.</p>
164    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
165        self.client_token = input;
166        self
167    }
168    /// <p>The client idempotency token of the application to update. Its value must be unique for each request.</p>
169    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
170        &self.client_token
171    }
172    /// Adds a key-value pair to `initial_capacity`.
173    ///
174    /// To override the contents of this collection use [`set_initial_capacity`](Self::set_initial_capacity).
175    ///
176    /// <p>The capacity to initialize when the application is updated.</p>
177    pub fn initial_capacity(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::InitialCapacityConfig) -> Self {
178        let mut hash_map = self.initial_capacity.unwrap_or_default();
179        hash_map.insert(k.into(), v);
180        self.initial_capacity = ::std::option::Option::Some(hash_map);
181        self
182    }
183    /// <p>The capacity to initialize when the application is updated.</p>
184    pub fn set_initial_capacity(
185        mut self,
186        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>>,
187    ) -> Self {
188        self.initial_capacity = input;
189        self
190    }
191    /// <p>The capacity to initialize when the application is updated.</p>
192    pub fn get_initial_capacity(
193        &self,
194    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>> {
195        &self.initial_capacity
196    }
197    /// <p>The maximum capacity to allocate when the application is updated. This is cumulative across all workers at any given point in time during the lifespan of the application. No new resources will be created once any one of the defined limits is hit.</p>
198    pub fn maximum_capacity(mut self, input: crate::types::MaximumAllowedResources) -> Self {
199        self.maximum_capacity = ::std::option::Option::Some(input);
200        self
201    }
202    /// <p>The maximum capacity to allocate when the application is updated. This is cumulative across all workers at any given point in time during the lifespan of the application. No new resources will be created once any one of the defined limits is hit.</p>
203    pub fn set_maximum_capacity(mut self, input: ::std::option::Option<crate::types::MaximumAllowedResources>) -> Self {
204        self.maximum_capacity = input;
205        self
206    }
207    /// <p>The maximum capacity to allocate when the application is updated. This is cumulative across all workers at any given point in time during the lifespan of the application. No new resources will be created once any one of the defined limits is hit.</p>
208    pub fn get_maximum_capacity(&self) -> &::std::option::Option<crate::types::MaximumAllowedResources> {
209        &self.maximum_capacity
210    }
211    /// <p>The configuration for an application to automatically start on job submission.</p>
212    pub fn auto_start_configuration(mut self, input: crate::types::AutoStartConfig) -> Self {
213        self.auto_start_configuration = ::std::option::Option::Some(input);
214        self
215    }
216    /// <p>The configuration for an application to automatically start on job submission.</p>
217    pub fn set_auto_start_configuration(mut self, input: ::std::option::Option<crate::types::AutoStartConfig>) -> Self {
218        self.auto_start_configuration = input;
219        self
220    }
221    /// <p>The configuration for an application to automatically start on job submission.</p>
222    pub fn get_auto_start_configuration(&self) -> &::std::option::Option<crate::types::AutoStartConfig> {
223        &self.auto_start_configuration
224    }
225    /// <p>The configuration for an application to automatically stop after a certain amount of time being idle.</p>
226    pub fn auto_stop_configuration(mut self, input: crate::types::AutoStopConfig) -> Self {
227        self.auto_stop_configuration = ::std::option::Option::Some(input);
228        self
229    }
230    /// <p>The configuration for an application to automatically stop after a certain amount of time being idle.</p>
231    pub fn set_auto_stop_configuration(mut self, input: ::std::option::Option<crate::types::AutoStopConfig>) -> Self {
232        self.auto_stop_configuration = input;
233        self
234    }
235    /// <p>The configuration for an application to automatically stop after a certain amount of time being idle.</p>
236    pub fn get_auto_stop_configuration(&self) -> &::std::option::Option<crate::types::AutoStopConfig> {
237        &self.auto_stop_configuration
238    }
239    /// <p>The network configuration for customer VPC connectivity.</p>
240    pub fn network_configuration(mut self, input: crate::types::NetworkConfiguration) -> Self {
241        self.network_configuration = ::std::option::Option::Some(input);
242        self
243    }
244    /// <p>The network configuration for customer VPC connectivity.</p>
245    pub fn set_network_configuration(mut self, input: ::std::option::Option<crate::types::NetworkConfiguration>) -> Self {
246        self.network_configuration = input;
247        self
248    }
249    /// <p>The network configuration for customer VPC connectivity.</p>
250    pub fn get_network_configuration(&self) -> &::std::option::Option<crate::types::NetworkConfiguration> {
251        &self.network_configuration
252    }
253    /// <p>The CPU architecture of an application.</p>
254    pub fn architecture(mut self, input: crate::types::Architecture) -> Self {
255        self.architecture = ::std::option::Option::Some(input);
256        self
257    }
258    /// <p>The CPU architecture of an application.</p>
259    pub fn set_architecture(mut self, input: ::std::option::Option<crate::types::Architecture>) -> Self {
260        self.architecture = input;
261        self
262    }
263    /// <p>The CPU architecture of an application.</p>
264    pub fn get_architecture(&self) -> &::std::option::Option<crate::types::Architecture> {
265        &self.architecture
266    }
267    /// <p>The image configuration to be used for all worker types. You can either set this parameter or <code>imageConfiguration</code> for each worker type in <code>WorkerTypeSpecificationInput</code>.</p>
268    pub fn image_configuration(mut self, input: crate::types::ImageConfigurationInput) -> Self {
269        self.image_configuration = ::std::option::Option::Some(input);
270        self
271    }
272    /// <p>The image configuration to be used for all worker types. You can either set this parameter or <code>imageConfiguration</code> for each worker type in <code>WorkerTypeSpecificationInput</code>.</p>
273    pub fn set_image_configuration(mut self, input: ::std::option::Option<crate::types::ImageConfigurationInput>) -> Self {
274        self.image_configuration = input;
275        self
276    }
277    /// <p>The image configuration to be used for all worker types. You can either set this parameter or <code>imageConfiguration</code> for each worker type in <code>WorkerTypeSpecificationInput</code>.</p>
278    pub fn get_image_configuration(&self) -> &::std::option::Option<crate::types::ImageConfigurationInput> {
279        &self.image_configuration
280    }
281    /// Adds a key-value pair to `worker_type_specifications`.
282    ///
283    /// To override the contents of this collection use [`set_worker_type_specifications`](Self::set_worker_type_specifications).
284    ///
285    /// <p>The key-value pairs that specify worker type to <code>WorkerTypeSpecificationInput</code>. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include <code>Driver</code> and <code>Executor</code> for Spark applications and <code>HiveDriver</code> and <code>TezTask</code> for Hive applications. You can either set image details in this parameter for each worker type, or in <code>imageConfiguration</code> for all worker types.</p>
286    pub fn worker_type_specifications(
287        mut self,
288        k: impl ::std::convert::Into<::std::string::String>,
289        v: crate::types::WorkerTypeSpecificationInput,
290    ) -> Self {
291        let mut hash_map = self.worker_type_specifications.unwrap_or_default();
292        hash_map.insert(k.into(), v);
293        self.worker_type_specifications = ::std::option::Option::Some(hash_map);
294        self
295    }
296    /// <p>The key-value pairs that specify worker type to <code>WorkerTypeSpecificationInput</code>. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include <code>Driver</code> and <code>Executor</code> for Spark applications and <code>HiveDriver</code> and <code>TezTask</code> for Hive applications. You can either set image details in this parameter for each worker type, or in <code>imageConfiguration</code> for all worker types.</p>
297    pub fn set_worker_type_specifications(
298        mut self,
299        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>>,
300    ) -> Self {
301        self.worker_type_specifications = input;
302        self
303    }
304    /// <p>The key-value pairs that specify worker type to <code>WorkerTypeSpecificationInput</code>. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include <code>Driver</code> and <code>Executor</code> for Spark applications and <code>HiveDriver</code> and <code>TezTask</code> for Hive applications. You can either set image details in this parameter for each worker type, or in <code>imageConfiguration</code> for all worker types.</p>
305    pub fn get_worker_type_specifications(
306        &self,
307    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>> {
308        &self.worker_type_specifications
309    }
310    /// <p>The interactive configuration object that contains new interactive use cases when the application is updated.</p>
311    pub fn interactive_configuration(mut self, input: crate::types::InteractiveConfiguration) -> Self {
312        self.interactive_configuration = ::std::option::Option::Some(input);
313        self
314    }
315    /// <p>The interactive configuration object that contains new interactive use cases when the application is updated.</p>
316    pub fn set_interactive_configuration(mut self, input: ::std::option::Option<crate::types::InteractiveConfiguration>) -> Self {
317        self.interactive_configuration = input;
318        self
319    }
320    /// <p>The interactive configuration object that contains new interactive use cases when the application is updated.</p>
321    pub fn get_interactive_configuration(&self) -> &::std::option::Option<crate::types::InteractiveConfiguration> {
322        &self.interactive_configuration
323    }
324    /// <p>The Amazon EMR release label for the application. You can change the release label to use a different release of Amazon EMR.</p>
325    pub fn release_label(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
326        self.release_label = ::std::option::Option::Some(input.into());
327        self
328    }
329    /// <p>The Amazon EMR release label for the application. You can change the release label to use a different release of Amazon EMR.</p>
330    pub fn set_release_label(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
331        self.release_label = input;
332        self
333    }
334    /// <p>The Amazon EMR release label for the application. You can change the release label to use a different release of Amazon EMR.</p>
335    pub fn get_release_label(&self) -> &::std::option::Option<::std::string::String> {
336        &self.release_label
337    }
338    /// Appends an item to `runtime_configuration`.
339    ///
340    /// To override the contents of this collection use [`set_runtime_configuration`](Self::set_runtime_configuration).
341    ///
342    /// <p>The <a href="https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html">Configuration</a> specifications to use when updating an application. Each configuration consists of a classification and properties. This configuration is applied across all the job runs submitted under the application.</p>
343    pub fn runtime_configuration(mut self, input: crate::types::Configuration) -> Self {
344        let mut v = self.runtime_configuration.unwrap_or_default();
345        v.push(input);
346        self.runtime_configuration = ::std::option::Option::Some(v);
347        self
348    }
349    /// <p>The <a href="https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html">Configuration</a> specifications to use when updating an application. Each configuration consists of a classification and properties. This configuration is applied across all the job runs submitted under the application.</p>
350    pub fn set_runtime_configuration(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Configuration>>) -> Self {
351        self.runtime_configuration = input;
352        self
353    }
354    /// <p>The <a href="https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_Configuration.html">Configuration</a> specifications to use when updating an application. Each configuration consists of a classification and properties. This configuration is applied across all the job runs submitted under the application.</p>
355    pub fn get_runtime_configuration(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Configuration>> {
356        &self.runtime_configuration
357    }
358    /// <p>The configuration setting for monitoring.</p>
359    pub fn monitoring_configuration(mut self, input: crate::types::MonitoringConfiguration) -> Self {
360        self.monitoring_configuration = ::std::option::Option::Some(input);
361        self
362    }
363    /// <p>The configuration setting for monitoring.</p>
364    pub fn set_monitoring_configuration(mut self, input: ::std::option::Option<crate::types::MonitoringConfiguration>) -> Self {
365        self.monitoring_configuration = input;
366        self
367    }
368    /// <p>The configuration setting for monitoring.</p>
369    pub fn get_monitoring_configuration(&self) -> &::std::option::Option<crate::types::MonitoringConfiguration> {
370        &self.monitoring_configuration
371    }
372    /// <p>The scheduler configuration for batch and streaming jobs running on this application. Supported with release labels emr-7.0.0 and above.</p>
373    pub fn scheduler_configuration(mut self, input: crate::types::SchedulerConfiguration) -> Self {
374        self.scheduler_configuration = ::std::option::Option::Some(input);
375        self
376    }
377    /// <p>The scheduler configuration for batch and streaming jobs running on this application. Supported with release labels emr-7.0.0 and above.</p>
378    pub fn set_scheduler_configuration(mut self, input: ::std::option::Option<crate::types::SchedulerConfiguration>) -> Self {
379        self.scheduler_configuration = input;
380        self
381    }
382    /// <p>The scheduler configuration for batch and streaming jobs running on this application. Supported with release labels emr-7.0.0 and above.</p>
383    pub fn get_scheduler_configuration(&self) -> &::std::option::Option<crate::types::SchedulerConfiguration> {
384        &self.scheduler_configuration
385    }
386    /// <p>Specifies the IAM Identity Center configuration used to enable or disable trusted identity propagation. When provided, this configuration determines how the application interacts with IAM Identity Center for user authentication and access control.</p>
387    pub fn identity_center_configuration(mut self, input: crate::types::IdentityCenterConfigurationInput) -> Self {
388        self.identity_center_configuration = ::std::option::Option::Some(input);
389        self
390    }
391    /// <p>Specifies the IAM Identity Center configuration used to enable or disable trusted identity propagation. When provided, this configuration determines how the application interacts with IAM Identity Center for user authentication and access control.</p>
392    pub fn set_identity_center_configuration(mut self, input: ::std::option::Option<crate::types::IdentityCenterConfigurationInput>) -> Self {
393        self.identity_center_configuration = input;
394        self
395    }
396    /// <p>Specifies the IAM Identity Center configuration used to enable or disable trusted identity propagation. When provided, this configuration determines how the application interacts with IAM Identity Center for user authentication and access control.</p>
397    pub fn get_identity_center_configuration(&self) -> &::std::option::Option<crate::types::IdentityCenterConfigurationInput> {
398        &self.identity_center_configuration
399    }
400    /// Consumes the builder and constructs a [`UpdateApplicationInput`](crate::operation::update_application::UpdateApplicationInput).
401    pub fn build(
402        self,
403    ) -> ::std::result::Result<crate::operation::update_application::UpdateApplicationInput, ::aws_smithy_types::error::operation::BuildError> {
404        ::std::result::Result::Ok(crate::operation::update_application::UpdateApplicationInput {
405            application_id: self.application_id,
406            client_token: self.client_token,
407            initial_capacity: self.initial_capacity,
408            maximum_capacity: self.maximum_capacity,
409            auto_start_configuration: self.auto_start_configuration,
410            auto_stop_configuration: self.auto_stop_configuration,
411            network_configuration: self.network_configuration,
412            architecture: self.architecture,
413            image_configuration: self.image_configuration,
414            worker_type_specifications: self.worker_type_specifications,
415            interactive_configuration: self.interactive_configuration,
416            release_label: self.release_label,
417            runtime_configuration: self.runtime_configuration,
418            monitoring_configuration: self.monitoring_configuration,
419            scheduler_configuration: self.scheduler_configuration,
420            identity_center_configuration: self.identity_center_configuration,
421        })
422    }
423}