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    /// <p>The configuration object that enables job level cost allocation.</p>
40    pub job_level_cost_allocation_configuration: ::std::option::Option<crate::types::JobLevelCostAllocationConfiguration>,
41}
42impl UpdateApplicationInput {
43    /// <p>The ID of the application to update.</p>
44    pub fn application_id(&self) -> ::std::option::Option<&str> {
45        self.application_id.as_deref()
46    }
47    /// <p>The client idempotency token of the application to update. Its value must be unique for each request.</p>
48    pub fn client_token(&self) -> ::std::option::Option<&str> {
49        self.client_token.as_deref()
50    }
51    /// <p>The capacity to initialize when the application is updated.</p>
52    pub fn initial_capacity(
53        &self,
54    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>> {
55        self.initial_capacity.as_ref()
56    }
57    /// <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>
58    pub fn maximum_capacity(&self) -> ::std::option::Option<&crate::types::MaximumAllowedResources> {
59        self.maximum_capacity.as_ref()
60    }
61    /// <p>The configuration for an application to automatically start on job submission.</p>
62    pub fn auto_start_configuration(&self) -> ::std::option::Option<&crate::types::AutoStartConfig> {
63        self.auto_start_configuration.as_ref()
64    }
65    /// <p>The configuration for an application to automatically stop after a certain amount of time being idle.</p>
66    pub fn auto_stop_configuration(&self) -> ::std::option::Option<&crate::types::AutoStopConfig> {
67        self.auto_stop_configuration.as_ref()
68    }
69    /// <p>The network configuration for customer VPC connectivity.</p>
70    pub fn network_configuration(&self) -> ::std::option::Option<&crate::types::NetworkConfiguration> {
71        self.network_configuration.as_ref()
72    }
73    /// <p>The CPU architecture of an application.</p>
74    pub fn architecture(&self) -> ::std::option::Option<&crate::types::Architecture> {
75        self.architecture.as_ref()
76    }
77    /// <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>
78    pub fn image_configuration(&self) -> ::std::option::Option<&crate::types::ImageConfigurationInput> {
79        self.image_configuration.as_ref()
80    }
81    /// <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>
82    pub fn worker_type_specifications(
83        &self,
84    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>> {
85        self.worker_type_specifications.as_ref()
86    }
87    /// <p>The interactive configuration object that contains new interactive use cases when the application is updated.</p>
88    pub fn interactive_configuration(&self) -> ::std::option::Option<&crate::types::InteractiveConfiguration> {
89        self.interactive_configuration.as_ref()
90    }
91    /// <p>The Amazon EMR release label for the application. You can change the release label to use a different release of Amazon EMR.</p>
92    pub fn release_label(&self) -> ::std::option::Option<&str> {
93        self.release_label.as_deref()
94    }
95    /// <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>
96    ///
97    /// 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()`.
98    pub fn runtime_configuration(&self) -> &[crate::types::Configuration] {
99        self.runtime_configuration.as_deref().unwrap_or_default()
100    }
101    /// <p>The configuration setting for monitoring.</p>
102    pub fn monitoring_configuration(&self) -> ::std::option::Option<&crate::types::MonitoringConfiguration> {
103        self.monitoring_configuration.as_ref()
104    }
105    /// <p>The scheduler configuration for batch and streaming jobs running on this application. Supported with release labels emr-7.0.0 and above.</p>
106    pub fn scheduler_configuration(&self) -> ::std::option::Option<&crate::types::SchedulerConfiguration> {
107        self.scheduler_configuration.as_ref()
108    }
109    /// <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>
110    pub fn identity_center_configuration(&self) -> ::std::option::Option<&crate::types::IdentityCenterConfigurationInput> {
111        self.identity_center_configuration.as_ref()
112    }
113    /// <p>The configuration object that enables job level cost allocation.</p>
114    pub fn job_level_cost_allocation_configuration(&self) -> ::std::option::Option<&crate::types::JobLevelCostAllocationConfiguration> {
115        self.job_level_cost_allocation_configuration.as_ref()
116    }
117}
118impl UpdateApplicationInput {
119    /// Creates a new builder-style object to manufacture [`UpdateApplicationInput`](crate::operation::update_application::UpdateApplicationInput).
120    pub fn builder() -> crate::operation::update_application::builders::UpdateApplicationInputBuilder {
121        crate::operation::update_application::builders::UpdateApplicationInputBuilder::default()
122    }
123}
124
125/// A builder for [`UpdateApplicationInput`](crate::operation::update_application::UpdateApplicationInput).
126#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
127#[non_exhaustive]
128pub struct UpdateApplicationInputBuilder {
129    pub(crate) application_id: ::std::option::Option<::std::string::String>,
130    pub(crate) client_token: ::std::option::Option<::std::string::String>,
131    pub(crate) initial_capacity: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>>,
132    pub(crate) maximum_capacity: ::std::option::Option<crate::types::MaximumAllowedResources>,
133    pub(crate) auto_start_configuration: ::std::option::Option<crate::types::AutoStartConfig>,
134    pub(crate) auto_stop_configuration: ::std::option::Option<crate::types::AutoStopConfig>,
135    pub(crate) network_configuration: ::std::option::Option<crate::types::NetworkConfiguration>,
136    pub(crate) architecture: ::std::option::Option<crate::types::Architecture>,
137    pub(crate) image_configuration: ::std::option::Option<crate::types::ImageConfigurationInput>,
138    pub(crate) worker_type_specifications:
139        ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>>,
140    pub(crate) interactive_configuration: ::std::option::Option<crate::types::InteractiveConfiguration>,
141    pub(crate) release_label: ::std::option::Option<::std::string::String>,
142    pub(crate) runtime_configuration: ::std::option::Option<::std::vec::Vec<crate::types::Configuration>>,
143    pub(crate) monitoring_configuration: ::std::option::Option<crate::types::MonitoringConfiguration>,
144    pub(crate) scheduler_configuration: ::std::option::Option<crate::types::SchedulerConfiguration>,
145    pub(crate) identity_center_configuration: ::std::option::Option<crate::types::IdentityCenterConfigurationInput>,
146    pub(crate) job_level_cost_allocation_configuration: ::std::option::Option<crate::types::JobLevelCostAllocationConfiguration>,
147}
148impl UpdateApplicationInputBuilder {
149    /// <p>The ID of the application to update.</p>
150    /// This field is required.
151    pub fn application_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
152        self.application_id = ::std::option::Option::Some(input.into());
153        self
154    }
155    /// <p>The ID of the application to update.</p>
156    pub fn set_application_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
157        self.application_id = input;
158        self
159    }
160    /// <p>The ID of the application to update.</p>
161    pub fn get_application_id(&self) -> &::std::option::Option<::std::string::String> {
162        &self.application_id
163    }
164    /// <p>The client idempotency token of the application to update. Its value must be unique for each request.</p>
165    /// This field is required.
166    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
167        self.client_token = ::std::option::Option::Some(input.into());
168        self
169    }
170    /// <p>The client idempotency token of the application to update. Its value must be unique for each request.</p>
171    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
172        self.client_token = input;
173        self
174    }
175    /// <p>The client idempotency token of the application to update. Its value must be unique for each request.</p>
176    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
177        &self.client_token
178    }
179    /// Adds a key-value pair to `initial_capacity`.
180    ///
181    /// To override the contents of this collection use [`set_initial_capacity`](Self::set_initial_capacity).
182    ///
183    /// <p>The capacity to initialize when the application is updated.</p>
184    pub fn initial_capacity(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::InitialCapacityConfig) -> Self {
185        let mut hash_map = self.initial_capacity.unwrap_or_default();
186        hash_map.insert(k.into(), v);
187        self.initial_capacity = ::std::option::Option::Some(hash_map);
188        self
189    }
190    /// <p>The capacity to initialize when the application is updated.</p>
191    pub fn set_initial_capacity(
192        mut self,
193        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>>,
194    ) -> Self {
195        self.initial_capacity = input;
196        self
197    }
198    /// <p>The capacity to initialize when the application is updated.</p>
199    pub fn get_initial_capacity(
200        &self,
201    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>> {
202        &self.initial_capacity
203    }
204    /// <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>
205    pub fn maximum_capacity(mut self, input: crate::types::MaximumAllowedResources) -> Self {
206        self.maximum_capacity = ::std::option::Option::Some(input);
207        self
208    }
209    /// <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>
210    pub fn set_maximum_capacity(mut self, input: ::std::option::Option<crate::types::MaximumAllowedResources>) -> Self {
211        self.maximum_capacity = input;
212        self
213    }
214    /// <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>
215    pub fn get_maximum_capacity(&self) -> &::std::option::Option<crate::types::MaximumAllowedResources> {
216        &self.maximum_capacity
217    }
218    /// <p>The configuration for an application to automatically start on job submission.</p>
219    pub fn auto_start_configuration(mut self, input: crate::types::AutoStartConfig) -> Self {
220        self.auto_start_configuration = ::std::option::Option::Some(input);
221        self
222    }
223    /// <p>The configuration for an application to automatically start on job submission.</p>
224    pub fn set_auto_start_configuration(mut self, input: ::std::option::Option<crate::types::AutoStartConfig>) -> Self {
225        self.auto_start_configuration = input;
226        self
227    }
228    /// <p>The configuration for an application to automatically start on job submission.</p>
229    pub fn get_auto_start_configuration(&self) -> &::std::option::Option<crate::types::AutoStartConfig> {
230        &self.auto_start_configuration
231    }
232    /// <p>The configuration for an application to automatically stop after a certain amount of time being idle.</p>
233    pub fn auto_stop_configuration(mut self, input: crate::types::AutoStopConfig) -> Self {
234        self.auto_stop_configuration = ::std::option::Option::Some(input);
235        self
236    }
237    /// <p>The configuration for an application to automatically stop after a certain amount of time being idle.</p>
238    pub fn set_auto_stop_configuration(mut self, input: ::std::option::Option<crate::types::AutoStopConfig>) -> Self {
239        self.auto_stop_configuration = input;
240        self
241    }
242    /// <p>The configuration for an application to automatically stop after a certain amount of time being idle.</p>
243    pub fn get_auto_stop_configuration(&self) -> &::std::option::Option<crate::types::AutoStopConfig> {
244        &self.auto_stop_configuration
245    }
246    /// <p>The network configuration for customer VPC connectivity.</p>
247    pub fn network_configuration(mut self, input: crate::types::NetworkConfiguration) -> Self {
248        self.network_configuration = ::std::option::Option::Some(input);
249        self
250    }
251    /// <p>The network configuration for customer VPC connectivity.</p>
252    pub fn set_network_configuration(mut self, input: ::std::option::Option<crate::types::NetworkConfiguration>) -> Self {
253        self.network_configuration = input;
254        self
255    }
256    /// <p>The network configuration for customer VPC connectivity.</p>
257    pub fn get_network_configuration(&self) -> &::std::option::Option<crate::types::NetworkConfiguration> {
258        &self.network_configuration
259    }
260    /// <p>The CPU architecture of an application.</p>
261    pub fn architecture(mut self, input: crate::types::Architecture) -> Self {
262        self.architecture = ::std::option::Option::Some(input);
263        self
264    }
265    /// <p>The CPU architecture of an application.</p>
266    pub fn set_architecture(mut self, input: ::std::option::Option<crate::types::Architecture>) -> Self {
267        self.architecture = input;
268        self
269    }
270    /// <p>The CPU architecture of an application.</p>
271    pub fn get_architecture(&self) -> &::std::option::Option<crate::types::Architecture> {
272        &self.architecture
273    }
274    /// <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>
275    pub fn image_configuration(mut self, input: crate::types::ImageConfigurationInput) -> Self {
276        self.image_configuration = ::std::option::Option::Some(input);
277        self
278    }
279    /// <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>
280    pub fn set_image_configuration(mut self, input: ::std::option::Option<crate::types::ImageConfigurationInput>) -> Self {
281        self.image_configuration = input;
282        self
283    }
284    /// <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>
285    pub fn get_image_configuration(&self) -> &::std::option::Option<crate::types::ImageConfigurationInput> {
286        &self.image_configuration
287    }
288    /// Adds a key-value pair to `worker_type_specifications`.
289    ///
290    /// To override the contents of this collection use [`set_worker_type_specifications`](Self::set_worker_type_specifications).
291    ///
292    /// <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>
293    pub fn worker_type_specifications(
294        mut self,
295        k: impl ::std::convert::Into<::std::string::String>,
296        v: crate::types::WorkerTypeSpecificationInput,
297    ) -> Self {
298        let mut hash_map = self.worker_type_specifications.unwrap_or_default();
299        hash_map.insert(k.into(), v);
300        self.worker_type_specifications = ::std::option::Option::Some(hash_map);
301        self
302    }
303    /// <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>
304    pub fn set_worker_type_specifications(
305        mut self,
306        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>>,
307    ) -> Self {
308        self.worker_type_specifications = input;
309        self
310    }
311    /// <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>
312    pub fn get_worker_type_specifications(
313        &self,
314    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>> {
315        &self.worker_type_specifications
316    }
317    /// <p>The interactive configuration object that contains new interactive use cases when the application is updated.</p>
318    pub fn interactive_configuration(mut self, input: crate::types::InteractiveConfiguration) -> Self {
319        self.interactive_configuration = ::std::option::Option::Some(input);
320        self
321    }
322    /// <p>The interactive configuration object that contains new interactive use cases when the application is updated.</p>
323    pub fn set_interactive_configuration(mut self, input: ::std::option::Option<crate::types::InteractiveConfiguration>) -> Self {
324        self.interactive_configuration = input;
325        self
326    }
327    /// <p>The interactive configuration object that contains new interactive use cases when the application is updated.</p>
328    pub fn get_interactive_configuration(&self) -> &::std::option::Option<crate::types::InteractiveConfiguration> {
329        &self.interactive_configuration
330    }
331    /// <p>The Amazon EMR release label for the application. You can change the release label to use a different release of Amazon EMR.</p>
332    pub fn release_label(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
333        self.release_label = ::std::option::Option::Some(input.into());
334        self
335    }
336    /// <p>The Amazon EMR release label for the application. You can change the release label to use a different release of Amazon EMR.</p>
337    pub fn set_release_label(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
338        self.release_label = input;
339        self
340    }
341    /// <p>The Amazon EMR release label for the application. You can change the release label to use a different release of Amazon EMR.</p>
342    pub fn get_release_label(&self) -> &::std::option::Option<::std::string::String> {
343        &self.release_label
344    }
345    /// Appends an item to `runtime_configuration`.
346    ///
347    /// To override the contents of this collection use [`set_runtime_configuration`](Self::set_runtime_configuration).
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 runtime_configuration(mut self, input: crate::types::Configuration) -> Self {
351        let mut v = self.runtime_configuration.unwrap_or_default();
352        v.push(input);
353        self.runtime_configuration = ::std::option::Option::Some(v);
354        self
355    }
356    /// <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>
357    pub fn set_runtime_configuration(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Configuration>>) -> Self {
358        self.runtime_configuration = input;
359        self
360    }
361    /// <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>
362    pub fn get_runtime_configuration(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Configuration>> {
363        &self.runtime_configuration
364    }
365    /// <p>The configuration setting for monitoring.</p>
366    pub fn monitoring_configuration(mut self, input: crate::types::MonitoringConfiguration) -> Self {
367        self.monitoring_configuration = ::std::option::Option::Some(input);
368        self
369    }
370    /// <p>The configuration setting for monitoring.</p>
371    pub fn set_monitoring_configuration(mut self, input: ::std::option::Option<crate::types::MonitoringConfiguration>) -> Self {
372        self.monitoring_configuration = input;
373        self
374    }
375    /// <p>The configuration setting for monitoring.</p>
376    pub fn get_monitoring_configuration(&self) -> &::std::option::Option<crate::types::MonitoringConfiguration> {
377        &self.monitoring_configuration
378    }
379    /// <p>The scheduler configuration for batch and streaming jobs running on this application. Supported with release labels emr-7.0.0 and above.</p>
380    pub fn scheduler_configuration(mut self, input: crate::types::SchedulerConfiguration) -> Self {
381        self.scheduler_configuration = ::std::option::Option::Some(input);
382        self
383    }
384    /// <p>The scheduler configuration for batch and streaming jobs running on this application. Supported with release labels emr-7.0.0 and above.</p>
385    pub fn set_scheduler_configuration(mut self, input: ::std::option::Option<crate::types::SchedulerConfiguration>) -> Self {
386        self.scheduler_configuration = input;
387        self
388    }
389    /// <p>The scheduler configuration for batch and streaming jobs running on this application. Supported with release labels emr-7.0.0 and above.</p>
390    pub fn get_scheduler_configuration(&self) -> &::std::option::Option<crate::types::SchedulerConfiguration> {
391        &self.scheduler_configuration
392    }
393    /// <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>
394    pub fn identity_center_configuration(mut self, input: crate::types::IdentityCenterConfigurationInput) -> Self {
395        self.identity_center_configuration = ::std::option::Option::Some(input);
396        self
397    }
398    /// <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>
399    pub fn set_identity_center_configuration(mut self, input: ::std::option::Option<crate::types::IdentityCenterConfigurationInput>) -> Self {
400        self.identity_center_configuration = input;
401        self
402    }
403    /// <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>
404    pub fn get_identity_center_configuration(&self) -> &::std::option::Option<crate::types::IdentityCenterConfigurationInput> {
405        &self.identity_center_configuration
406    }
407    /// <p>The configuration object that enables job level cost allocation.</p>
408    pub fn job_level_cost_allocation_configuration(mut self, input: crate::types::JobLevelCostAllocationConfiguration) -> Self {
409        self.job_level_cost_allocation_configuration = ::std::option::Option::Some(input);
410        self
411    }
412    /// <p>The configuration object that enables job level cost allocation.</p>
413    pub fn set_job_level_cost_allocation_configuration(
414        mut self,
415        input: ::std::option::Option<crate::types::JobLevelCostAllocationConfiguration>,
416    ) -> Self {
417        self.job_level_cost_allocation_configuration = input;
418        self
419    }
420    /// <p>The configuration object that enables job level cost allocation.</p>
421    pub fn get_job_level_cost_allocation_configuration(&self) -> &::std::option::Option<crate::types::JobLevelCostAllocationConfiguration> {
422        &self.job_level_cost_allocation_configuration
423    }
424    /// Consumes the builder and constructs a [`UpdateApplicationInput`](crate::operation::update_application::UpdateApplicationInput).
425    pub fn build(
426        self,
427    ) -> ::std::result::Result<crate::operation::update_application::UpdateApplicationInput, ::aws_smithy_types::error::operation::BuildError> {
428        ::std::result::Result::Ok(crate::operation::update_application::UpdateApplicationInput {
429            application_id: self.application_id,
430            client_token: self.client_token,
431            initial_capacity: self.initial_capacity,
432            maximum_capacity: self.maximum_capacity,
433            auto_start_configuration: self.auto_start_configuration,
434            auto_stop_configuration: self.auto_stop_configuration,
435            network_configuration: self.network_configuration,
436            architecture: self.architecture,
437            image_configuration: self.image_configuration,
438            worker_type_specifications: self.worker_type_specifications,
439            interactive_configuration: self.interactive_configuration,
440            release_label: self.release_label,
441            runtime_configuration: self.runtime_configuration,
442            monitoring_configuration: self.monitoring_configuration,
443            scheduler_configuration: self.scheduler_configuration,
444            identity_center_configuration: self.identity_center_configuration,
445            job_level_cost_allocation_configuration: self.job_level_cost_allocation_configuration,
446        })
447    }
448}