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