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