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}