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 pub identity_center_configuration: ::std::option::Option<crate::types::IdentityCenterConfigurationInput>,
43 pub job_level_cost_allocation_configuration: ::std::option::Option<crate::types::JobLevelCostAllocationConfiguration>,
45}
46impl CreateApplicationInput {
47 pub fn name(&self) -> ::std::option::Option<&str> {
49 self.name.as_deref()
50 }
51 pub fn release_label(&self) -> ::std::option::Option<&str> {
53 self.release_label.as_deref()
54 }
55 pub fn r#type(&self) -> ::std::option::Option<&str> {
57 self.r#type.as_deref()
58 }
59 pub fn client_token(&self) -> ::std::option::Option<&str> {
61 self.client_token.as_deref()
62 }
63 pub fn initial_capacity(
65 &self,
66 ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>> {
67 self.initial_capacity.as_ref()
68 }
69 pub fn maximum_capacity(&self) -> ::std::option::Option<&crate::types::MaximumAllowedResources> {
71 self.maximum_capacity.as_ref()
72 }
73 pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
75 self.tags.as_ref()
76 }
77 pub fn auto_start_configuration(&self) -> ::std::option::Option<&crate::types::AutoStartConfig> {
79 self.auto_start_configuration.as_ref()
80 }
81 pub fn auto_stop_configuration(&self) -> ::std::option::Option<&crate::types::AutoStopConfig> {
83 self.auto_stop_configuration.as_ref()
84 }
85 pub fn network_configuration(&self) -> ::std::option::Option<&crate::types::NetworkConfiguration> {
87 self.network_configuration.as_ref()
88 }
89 pub fn architecture(&self) -> ::std::option::Option<&crate::types::Architecture> {
91 self.architecture.as_ref()
92 }
93 pub fn image_configuration(&self) -> ::std::option::Option<&crate::types::ImageConfigurationInput> {
95 self.image_configuration.as_ref()
96 }
97 pub fn worker_type_specifications(
99 &self,
100 ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>> {
101 self.worker_type_specifications.as_ref()
102 }
103 pub fn runtime_configuration(&self) -> &[crate::types::Configuration] {
107 self.runtime_configuration.as_deref().unwrap_or_default()
108 }
109 pub fn monitoring_configuration(&self) -> ::std::option::Option<&crate::types::MonitoringConfiguration> {
111 self.monitoring_configuration.as_ref()
112 }
113 pub fn interactive_configuration(&self) -> ::std::option::Option<&crate::types::InteractiveConfiguration> {
115 self.interactive_configuration.as_ref()
116 }
117 pub fn scheduler_configuration(&self) -> ::std::option::Option<&crate::types::SchedulerConfiguration> {
119 self.scheduler_configuration.as_ref()
120 }
121 pub fn identity_center_configuration(&self) -> ::std::option::Option<&crate::types::IdentityCenterConfigurationInput> {
123 self.identity_center_configuration.as_ref()
124 }
125 pub fn job_level_cost_allocation_configuration(&self) -> ::std::option::Option<&crate::types::JobLevelCostAllocationConfiguration> {
127 self.job_level_cost_allocation_configuration.as_ref()
128 }
129}
130impl CreateApplicationInput {
131 pub fn builder() -> crate::operation::create_application::builders::CreateApplicationInputBuilder {
133 crate::operation::create_application::builders::CreateApplicationInputBuilder::default()
134 }
135}
136
137#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
139#[non_exhaustive]
140pub struct CreateApplicationInputBuilder {
141 pub(crate) name: ::std::option::Option<::std::string::String>,
142 pub(crate) release_label: ::std::option::Option<::std::string::String>,
143 pub(crate) r#type: ::std::option::Option<::std::string::String>,
144 pub(crate) client_token: ::std::option::Option<::std::string::String>,
145 pub(crate) initial_capacity: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>>,
146 pub(crate) maximum_capacity: ::std::option::Option<crate::types::MaximumAllowedResources>,
147 pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
148 pub(crate) auto_start_configuration: ::std::option::Option<crate::types::AutoStartConfig>,
149 pub(crate) auto_stop_configuration: ::std::option::Option<crate::types::AutoStopConfig>,
150 pub(crate) network_configuration: ::std::option::Option<crate::types::NetworkConfiguration>,
151 pub(crate) architecture: ::std::option::Option<crate::types::Architecture>,
152 pub(crate) image_configuration: ::std::option::Option<crate::types::ImageConfigurationInput>,
153 pub(crate) worker_type_specifications:
154 ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>>,
155 pub(crate) runtime_configuration: ::std::option::Option<::std::vec::Vec<crate::types::Configuration>>,
156 pub(crate) monitoring_configuration: ::std::option::Option<crate::types::MonitoringConfiguration>,
157 pub(crate) interactive_configuration: ::std::option::Option<crate::types::InteractiveConfiguration>,
158 pub(crate) scheduler_configuration: ::std::option::Option<crate::types::SchedulerConfiguration>,
159 pub(crate) identity_center_configuration: ::std::option::Option<crate::types::IdentityCenterConfigurationInput>,
160 pub(crate) job_level_cost_allocation_configuration: ::std::option::Option<crate::types::JobLevelCostAllocationConfiguration>,
161}
162impl CreateApplicationInputBuilder {
163 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
165 self.name = ::std::option::Option::Some(input.into());
166 self
167 }
168 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
170 self.name = input;
171 self
172 }
173 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
175 &self.name
176 }
177 pub fn release_label(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
180 self.release_label = ::std::option::Option::Some(input.into());
181 self
182 }
183 pub fn set_release_label(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
185 self.release_label = input;
186 self
187 }
188 pub fn get_release_label(&self) -> &::std::option::Option<::std::string::String> {
190 &self.release_label
191 }
192 pub fn r#type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
195 self.r#type = ::std::option::Option::Some(input.into());
196 self
197 }
198 pub fn set_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
200 self.r#type = input;
201 self
202 }
203 pub fn get_type(&self) -> &::std::option::Option<::std::string::String> {
205 &self.r#type
206 }
207 pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
210 self.client_token = ::std::option::Option::Some(input.into());
211 self
212 }
213 pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
215 self.client_token = input;
216 self
217 }
218 pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
220 &self.client_token
221 }
222 pub fn initial_capacity(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::InitialCapacityConfig) -> Self {
228 let mut hash_map = self.initial_capacity.unwrap_or_default();
229 hash_map.insert(k.into(), v);
230 self.initial_capacity = ::std::option::Option::Some(hash_map);
231 self
232 }
233 pub fn set_initial_capacity(
235 mut self,
236 input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>>,
237 ) -> Self {
238 self.initial_capacity = input;
239 self
240 }
241 pub fn get_initial_capacity(
243 &self,
244 ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>> {
245 &self.initial_capacity
246 }
247 pub fn maximum_capacity(mut self, input: crate::types::MaximumAllowedResources) -> Self {
249 self.maximum_capacity = ::std::option::Option::Some(input);
250 self
251 }
252 pub fn set_maximum_capacity(mut self, input: ::std::option::Option<crate::types::MaximumAllowedResources>) -> Self {
254 self.maximum_capacity = input;
255 self
256 }
257 pub fn get_maximum_capacity(&self) -> &::std::option::Option<crate::types::MaximumAllowedResources> {
259 &self.maximum_capacity
260 }
261 pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
267 let mut hash_map = self.tags.unwrap_or_default();
268 hash_map.insert(k.into(), v.into());
269 self.tags = ::std::option::Option::Some(hash_map);
270 self
271 }
272 pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
274 self.tags = input;
275 self
276 }
277 pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
279 &self.tags
280 }
281 pub fn auto_start_configuration(mut self, input: crate::types::AutoStartConfig) -> Self {
283 self.auto_start_configuration = ::std::option::Option::Some(input);
284 self
285 }
286 pub fn set_auto_start_configuration(mut self, input: ::std::option::Option<crate::types::AutoStartConfig>) -> Self {
288 self.auto_start_configuration = input;
289 self
290 }
291 pub fn get_auto_start_configuration(&self) -> &::std::option::Option<crate::types::AutoStartConfig> {
293 &self.auto_start_configuration
294 }
295 pub fn auto_stop_configuration(mut self, input: crate::types::AutoStopConfig) -> Self {
297 self.auto_stop_configuration = ::std::option::Option::Some(input);
298 self
299 }
300 pub fn set_auto_stop_configuration(mut self, input: ::std::option::Option<crate::types::AutoStopConfig>) -> Self {
302 self.auto_stop_configuration = input;
303 self
304 }
305 pub fn get_auto_stop_configuration(&self) -> &::std::option::Option<crate::types::AutoStopConfig> {
307 &self.auto_stop_configuration
308 }
309 pub fn network_configuration(mut self, input: crate::types::NetworkConfiguration) -> Self {
311 self.network_configuration = ::std::option::Option::Some(input);
312 self
313 }
314 pub fn set_network_configuration(mut self, input: ::std::option::Option<crate::types::NetworkConfiguration>) -> Self {
316 self.network_configuration = input;
317 self
318 }
319 pub fn get_network_configuration(&self) -> &::std::option::Option<crate::types::NetworkConfiguration> {
321 &self.network_configuration
322 }
323 pub fn architecture(mut self, input: crate::types::Architecture) -> Self {
325 self.architecture = ::std::option::Option::Some(input);
326 self
327 }
328 pub fn set_architecture(mut self, input: ::std::option::Option<crate::types::Architecture>) -> Self {
330 self.architecture = input;
331 self
332 }
333 pub fn get_architecture(&self) -> &::std::option::Option<crate::types::Architecture> {
335 &self.architecture
336 }
337 pub fn image_configuration(mut self, input: crate::types::ImageConfigurationInput) -> Self {
339 self.image_configuration = ::std::option::Option::Some(input);
340 self
341 }
342 pub fn set_image_configuration(mut self, input: ::std::option::Option<crate::types::ImageConfigurationInput>) -> Self {
344 self.image_configuration = input;
345 self
346 }
347 pub fn get_image_configuration(&self) -> &::std::option::Option<crate::types::ImageConfigurationInput> {
349 &self.image_configuration
350 }
351 pub fn worker_type_specifications(
357 mut self,
358 k: impl ::std::convert::Into<::std::string::String>,
359 v: crate::types::WorkerTypeSpecificationInput,
360 ) -> Self {
361 let mut hash_map = self.worker_type_specifications.unwrap_or_default();
362 hash_map.insert(k.into(), v);
363 self.worker_type_specifications = ::std::option::Option::Some(hash_map);
364 self
365 }
366 pub fn set_worker_type_specifications(
368 mut self,
369 input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>>,
370 ) -> Self {
371 self.worker_type_specifications = input;
372 self
373 }
374 pub fn get_worker_type_specifications(
376 &self,
377 ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecificationInput>> {
378 &self.worker_type_specifications
379 }
380 pub fn runtime_configuration(mut self, input: crate::types::Configuration) -> Self {
386 let mut v = self.runtime_configuration.unwrap_or_default();
387 v.push(input);
388 self.runtime_configuration = ::std::option::Option::Some(v);
389 self
390 }
391 pub fn set_runtime_configuration(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Configuration>>) -> Self {
393 self.runtime_configuration = input;
394 self
395 }
396 pub fn get_runtime_configuration(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Configuration>> {
398 &self.runtime_configuration
399 }
400 pub fn monitoring_configuration(mut self, input: crate::types::MonitoringConfiguration) -> Self {
402 self.monitoring_configuration = ::std::option::Option::Some(input);
403 self
404 }
405 pub fn set_monitoring_configuration(mut self, input: ::std::option::Option<crate::types::MonitoringConfiguration>) -> Self {
407 self.monitoring_configuration = input;
408 self
409 }
410 pub fn get_monitoring_configuration(&self) -> &::std::option::Option<crate::types::MonitoringConfiguration> {
412 &self.monitoring_configuration
413 }
414 pub fn interactive_configuration(mut self, input: crate::types::InteractiveConfiguration) -> Self {
416 self.interactive_configuration = ::std::option::Option::Some(input);
417 self
418 }
419 pub fn set_interactive_configuration(mut self, input: ::std::option::Option<crate::types::InteractiveConfiguration>) -> Self {
421 self.interactive_configuration = input;
422 self
423 }
424 pub fn get_interactive_configuration(&self) -> &::std::option::Option<crate::types::InteractiveConfiguration> {
426 &self.interactive_configuration
427 }
428 pub fn scheduler_configuration(mut self, input: crate::types::SchedulerConfiguration) -> Self {
430 self.scheduler_configuration = ::std::option::Option::Some(input);
431 self
432 }
433 pub fn set_scheduler_configuration(mut self, input: ::std::option::Option<crate::types::SchedulerConfiguration>) -> Self {
435 self.scheduler_configuration = input;
436 self
437 }
438 pub fn get_scheduler_configuration(&self) -> &::std::option::Option<crate::types::SchedulerConfiguration> {
440 &self.scheduler_configuration
441 }
442 pub fn identity_center_configuration(mut self, input: crate::types::IdentityCenterConfigurationInput) -> Self {
444 self.identity_center_configuration = ::std::option::Option::Some(input);
445 self
446 }
447 pub fn set_identity_center_configuration(mut self, input: ::std::option::Option<crate::types::IdentityCenterConfigurationInput>) -> Self {
449 self.identity_center_configuration = input;
450 self
451 }
452 pub fn get_identity_center_configuration(&self) -> &::std::option::Option<crate::types::IdentityCenterConfigurationInput> {
454 &self.identity_center_configuration
455 }
456 pub fn job_level_cost_allocation_configuration(mut self, input: crate::types::JobLevelCostAllocationConfiguration) -> Self {
458 self.job_level_cost_allocation_configuration = ::std::option::Option::Some(input);
459 self
460 }
461 pub fn set_job_level_cost_allocation_configuration(
463 mut self,
464 input: ::std::option::Option<crate::types::JobLevelCostAllocationConfiguration>,
465 ) -> Self {
466 self.job_level_cost_allocation_configuration = input;
467 self
468 }
469 pub fn get_job_level_cost_allocation_configuration(&self) -> &::std::option::Option<crate::types::JobLevelCostAllocationConfiguration> {
471 &self.job_level_cost_allocation_configuration
472 }
473 pub fn build(
475 self,
476 ) -> ::std::result::Result<crate::operation::create_application::CreateApplicationInput, ::aws_smithy_types::error::operation::BuildError> {
477 ::std::result::Result::Ok(crate::operation::create_application::CreateApplicationInput {
478 name: self.name,
479 release_label: self.release_label,
480 r#type: self.r#type,
481 client_token: self.client_token,
482 initial_capacity: self.initial_capacity,
483 maximum_capacity: self.maximum_capacity,
484 tags: self.tags,
485 auto_start_configuration: self.auto_start_configuration,
486 auto_stop_configuration: self.auto_stop_configuration,
487 network_configuration: self.network_configuration,
488 architecture: self.architecture,
489 image_configuration: self.image_configuration,
490 worker_type_specifications: self.worker_type_specifications,
491 runtime_configuration: self.runtime_configuration,
492 monitoring_configuration: self.monitoring_configuration,
493 interactive_configuration: self.interactive_configuration,
494 scheduler_configuration: self.scheduler_configuration,
495 identity_center_configuration: self.identity_center_configuration,
496 job_level_cost_allocation_configuration: self.job_level_cost_allocation_configuration,
497 })
498 }
499}