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