aws_sdk_emrserverless/operation/create_application/
_create_application_input.rs1#[allow(missing_docs)] #[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct CreateApplicationInput {
6    pub name: ::std::option::Option<::std::string::String>,
8    pub release_label: ::std::option::Option<::std::string::String>,
10    pub r#type: ::std::option::Option<::std::string::String>,
12    pub client_token: ::std::option::Option<::std::string::String>,
14    pub initial_capacity: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>>,
16    pub maximum_capacity: ::std::option::Option<crate::types::MaximumAllowedResources>,
18    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
20    pub auto_start_configuration: ::std::option::Option<crate::types::AutoStartConfig>,
22    pub auto_stop_configuration: ::std::option::Option<crate::types::AutoStopConfig>,
24    pub network_configuration: ::std::option::Option<crate::types::NetworkConfiguration>,
26    pub architecture: ::std::option::Option<crate::types::Architecture>,
28    pub image_configuration: ::std::option::Option<crate::types::ImageConfigurationInput>,
30    pub worker_type_specifications:
32        ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>>,
33    pub runtime_configuration: ::std::option::Option<::std::vec::Vec<crate::types::Configuration>>,
35    pub monitoring_configuration: ::std::option::Option<crate::types::MonitoringConfiguration>,
37    pub interactive_configuration: ::std::option::Option<crate::types::InteractiveConfiguration>,
39    pub scheduler_configuration: ::std::option::Option<crate::types::SchedulerConfiguration>,
41}
42impl CreateApplicationInput {
43    pub fn name(&self) -> ::std::option::Option<&str> {
45        self.name.as_deref()
46    }
47    pub fn release_label(&self) -> ::std::option::Option<&str> {
49        self.release_label.as_deref()
50    }
51    pub fn r#type(&self) -> ::std::option::Option<&str> {
53        self.r#type.as_deref()
54    }
55    pub fn client_token(&self) -> ::std::option::Option<&str> {
57        self.client_token.as_deref()
58    }
59    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    pub fn maximum_capacity(&self) -> ::std::option::Option<&crate::types::MaximumAllowedResources> {
67        self.maximum_capacity.as_ref()
68    }
69    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
71        self.tags.as_ref()
72    }
73    pub fn auto_start_configuration(&self) -> ::std::option::Option<&crate::types::AutoStartConfig> {
75        self.auto_start_configuration.as_ref()
76    }
77    pub fn auto_stop_configuration(&self) -> ::std::option::Option<&crate::types::AutoStopConfig> {
79        self.auto_stop_configuration.as_ref()
80    }
81    pub fn network_configuration(&self) -> ::std::option::Option<&crate::types::NetworkConfiguration> {
83        self.network_configuration.as_ref()
84    }
85    pub fn architecture(&self) -> ::std::option::Option<&crate::types::Architecture> {
87        self.architecture.as_ref()
88    }
89    pub fn image_configuration(&self) -> ::std::option::Option<&crate::types::ImageConfigurationInput> {
91        self.image_configuration.as_ref()
92    }
93    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    pub fn runtime_configuration(&self) -> &[crate::types::Configuration] {
103        self.runtime_configuration.as_deref().unwrap_or_default()
104    }
105    pub fn monitoring_configuration(&self) -> ::std::option::Option<&crate::types::MonitoringConfiguration> {
107        self.monitoring_configuration.as_ref()
108    }
109    pub fn interactive_configuration(&self) -> ::std::option::Option<&crate::types::InteractiveConfiguration> {
111        self.interactive_configuration.as_ref()
112    }
113    pub fn scheduler_configuration(&self) -> ::std::option::Option<&crate::types::SchedulerConfiguration> {
115        self.scheduler_configuration.as_ref()
116    }
117}
118impl CreateApplicationInput {
119    pub fn builder() -> crate::operation::create_application::builders::CreateApplicationInputBuilder {
121        crate::operation::create_application::builders::CreateApplicationInputBuilder::default()
122    }
123}
124
125#[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    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    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
156        self.name = input;
157        self
158    }
159    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
161        &self.name
162    }
163    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    pub fn set_release_label(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
171        self.release_label = input;
172        self
173    }
174    pub fn get_release_label(&self) -> &::std::option::Option<::std::string::String> {
176        &self.release_label
177    }
178    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    pub fn set_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
186        self.r#type = input;
187        self
188    }
189    pub fn get_type(&self) -> &::std::option::Option<::std::string::String> {
191        &self.r#type
192    }
193    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    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
201        self.client_token = input;
202        self
203    }
204    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
206        &self.client_token
207    }
208    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    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    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    pub fn maximum_capacity(mut self, input: crate::types::MaximumAllowedResources) -> Self {
235        self.maximum_capacity = ::std::option::Option::Some(input);
236        self
237    }
238    pub fn set_maximum_capacity(mut self, input: ::std::option::Option<crate::types::MaximumAllowedResources>) -> Self {
240        self.maximum_capacity = input;
241        self
242    }
243    pub fn get_maximum_capacity(&self) -> &::std::option::Option<crate::types::MaximumAllowedResources> {
245        &self.maximum_capacity
246    }
247    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    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    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
265        &self.tags
266    }
267    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    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    pub fn get_auto_start_configuration(&self) -> &::std::option::Option<crate::types::AutoStartConfig> {
279        &self.auto_start_configuration
280    }
281    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    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    pub fn get_auto_stop_configuration(&self) -> &::std::option::Option<crate::types::AutoStopConfig> {
293        &self.auto_stop_configuration
294    }
295    pub fn network_configuration(mut self, input: crate::types::NetworkConfiguration) -> Self {
297        self.network_configuration = ::std::option::Option::Some(input);
298        self
299    }
300    pub fn set_network_configuration(mut self, input: ::std::option::Option<crate::types::NetworkConfiguration>) -> Self {
302        self.network_configuration = input;
303        self
304    }
305    pub fn get_network_configuration(&self) -> &::std::option::Option<crate::types::NetworkConfiguration> {
307        &self.network_configuration
308    }
309    pub fn architecture(mut self, input: crate::types::Architecture) -> Self {
311        self.architecture = ::std::option::Option::Some(input);
312        self
313    }
314    pub fn set_architecture(mut self, input: ::std::option::Option<crate::types::Architecture>) -> Self {
316        self.architecture = input;
317        self
318    }
319    pub fn get_architecture(&self) -> &::std::option::Option<crate::types::Architecture> {
321        &self.architecture
322    }
323    pub fn image_configuration(mut self, input: crate::types::ImageConfigurationInput) -> Self {
325        self.image_configuration = ::std::option::Option::Some(input);
326        self
327    }
328    pub fn set_image_configuration(mut self, input: ::std::option::Option<crate::types::ImageConfigurationInput>) -> Self {
330        self.image_configuration = input;
331        self
332    }
333    pub fn get_image_configuration(&self) -> &::std::option::Option<crate::types::ImageConfigurationInput> {
335        &self.image_configuration
336    }
337    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    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    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    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    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    pub fn get_runtime_configuration(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Configuration>> {
384        &self.runtime_configuration
385    }
386    pub fn monitoring_configuration(mut self, input: crate::types::MonitoringConfiguration) -> Self {
388        self.monitoring_configuration = ::std::option::Option::Some(input);
389        self
390    }
391    pub fn set_monitoring_configuration(mut self, input: ::std::option::Option<crate::types::MonitoringConfiguration>) -> Self {
393        self.monitoring_configuration = input;
394        self
395    }
396    pub fn get_monitoring_configuration(&self) -> &::std::option::Option<crate::types::MonitoringConfiguration> {
398        &self.monitoring_configuration
399    }
400    pub fn interactive_configuration(mut self, input: crate::types::InteractiveConfiguration) -> Self {
402        self.interactive_configuration = ::std::option::Option::Some(input);
403        self
404    }
405    pub fn set_interactive_configuration(mut self, input: ::std::option::Option<crate::types::InteractiveConfiguration>) -> Self {
407        self.interactive_configuration = input;
408        self
409    }
410    pub fn get_interactive_configuration(&self) -> &::std::option::Option<crate::types::InteractiveConfiguration> {
412        &self.interactive_configuration
413    }
414    pub fn scheduler_configuration(mut self, input: crate::types::SchedulerConfiguration) -> Self {
416        self.scheduler_configuration = ::std::option::Option::Some(input);
417        self
418    }
419    pub fn set_scheduler_configuration(mut self, input: ::std::option::Option<crate::types::SchedulerConfiguration>) -> Self {
421        self.scheduler_configuration = input;
422        self
423    }
424    pub fn get_scheduler_configuration(&self) -> &::std::option::Option<crate::types::SchedulerConfiguration> {
426        &self.scheduler_configuration
427    }
428    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}