#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Application {
pub application_id: ::std::string::String,
pub name: ::std::option::Option<::std::string::String>,
pub arn: ::std::string::String,
pub release_label: ::std::string::String,
pub r#type: ::std::string::String,
pub state: crate::types::ApplicationState,
pub state_details: ::std::option::Option<::std::string::String>,
pub initial_capacity: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>>,
pub maximum_capacity: ::std::option::Option<crate::types::MaximumAllowedResources>,
pub created_at: ::aws_smithy_types::DateTime,
pub updated_at: ::aws_smithy_types::DateTime,
pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
pub auto_start_configuration: ::std::option::Option<crate::types::AutoStartConfig>,
pub auto_stop_configuration: ::std::option::Option<crate::types::AutoStopConfig>,
pub network_configuration: ::std::option::Option<crate::types::NetworkConfiguration>,
pub architecture: ::std::option::Option<crate::types::Architecture>,
pub image_configuration: ::std::option::Option<crate::types::ImageConfiguration>,
pub worker_type_specifications: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecification>>,
pub runtime_configuration: ::std::option::Option<::std::vec::Vec<crate::types::Configuration>>,
pub monitoring_configuration: ::std::option::Option<crate::types::MonitoringConfiguration>,
pub disk_encryption_configuration: ::std::option::Option<crate::types::DiskEncryptionConfiguration>,
pub interactive_configuration: ::std::option::Option<crate::types::InteractiveConfiguration>,
pub scheduler_configuration: ::std::option::Option<crate::types::SchedulerConfiguration>,
pub identity_center_configuration: ::std::option::Option<crate::types::IdentityCenterConfiguration>,
pub job_level_cost_allocation_configuration: ::std::option::Option<crate::types::JobLevelCostAllocationConfiguration>,
}
impl Application {
pub fn application_id(&self) -> &str {
use std::ops::Deref;
self.application_id.deref()
}
pub fn name(&self) -> ::std::option::Option<&str> {
self.name.as_deref()
}
pub fn arn(&self) -> &str {
use std::ops::Deref;
self.arn.deref()
}
pub fn release_label(&self) -> &str {
use std::ops::Deref;
self.release_label.deref()
}
pub fn r#type(&self) -> &str {
use std::ops::Deref;
self.r#type.deref()
}
pub fn state(&self) -> &crate::types::ApplicationState {
&self.state
}
pub fn state_details(&self) -> ::std::option::Option<&str> {
self.state_details.as_deref()
}
pub fn initial_capacity(
&self,
) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>> {
self.initial_capacity.as_ref()
}
pub fn maximum_capacity(&self) -> ::std::option::Option<&crate::types::MaximumAllowedResources> {
self.maximum_capacity.as_ref()
}
pub fn created_at(&self) -> &::aws_smithy_types::DateTime {
&self.created_at
}
pub fn updated_at(&self) -> &::aws_smithy_types::DateTime {
&self.updated_at
}
pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
self.tags.as_ref()
}
pub fn auto_start_configuration(&self) -> ::std::option::Option<&crate::types::AutoStartConfig> {
self.auto_start_configuration.as_ref()
}
pub fn auto_stop_configuration(&self) -> ::std::option::Option<&crate::types::AutoStopConfig> {
self.auto_stop_configuration.as_ref()
}
pub fn network_configuration(&self) -> ::std::option::Option<&crate::types::NetworkConfiguration> {
self.network_configuration.as_ref()
}
pub fn architecture(&self) -> ::std::option::Option<&crate::types::Architecture> {
self.architecture.as_ref()
}
pub fn image_configuration(&self) -> ::std::option::Option<&crate::types::ImageConfiguration> {
self.image_configuration.as_ref()
}
pub fn worker_type_specifications(
&self,
) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecification>> {
self.worker_type_specifications.as_ref()
}
pub fn runtime_configuration(&self) -> &[crate::types::Configuration] {
self.runtime_configuration.as_deref().unwrap_or_default()
}
pub fn monitoring_configuration(&self) -> ::std::option::Option<&crate::types::MonitoringConfiguration> {
self.monitoring_configuration.as_ref()
}
pub fn disk_encryption_configuration(&self) -> ::std::option::Option<&crate::types::DiskEncryptionConfiguration> {
self.disk_encryption_configuration.as_ref()
}
pub fn interactive_configuration(&self) -> ::std::option::Option<&crate::types::InteractiveConfiguration> {
self.interactive_configuration.as_ref()
}
pub fn scheduler_configuration(&self) -> ::std::option::Option<&crate::types::SchedulerConfiguration> {
self.scheduler_configuration.as_ref()
}
pub fn identity_center_configuration(&self) -> ::std::option::Option<&crate::types::IdentityCenterConfiguration> {
self.identity_center_configuration.as_ref()
}
pub fn job_level_cost_allocation_configuration(&self) -> ::std::option::Option<&crate::types::JobLevelCostAllocationConfiguration> {
self.job_level_cost_allocation_configuration.as_ref()
}
}
impl Application {
pub fn builder() -> crate::types::builders::ApplicationBuilder {
crate::types::builders::ApplicationBuilder::default()
}
}
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct ApplicationBuilder {
pub(crate) application_id: ::std::option::Option<::std::string::String>,
pub(crate) name: ::std::option::Option<::std::string::String>,
pub(crate) arn: ::std::option::Option<::std::string::String>,
pub(crate) release_label: ::std::option::Option<::std::string::String>,
pub(crate) r#type: ::std::option::Option<::std::string::String>,
pub(crate) state: ::std::option::Option<crate::types::ApplicationState>,
pub(crate) state_details: ::std::option::Option<::std::string::String>,
pub(crate) initial_capacity: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>>,
pub(crate) maximum_capacity: ::std::option::Option<crate::types::MaximumAllowedResources>,
pub(crate) created_at: ::std::option::Option<::aws_smithy_types::DateTime>,
pub(crate) updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
pub(crate) auto_start_configuration: ::std::option::Option<crate::types::AutoStartConfig>,
pub(crate) auto_stop_configuration: ::std::option::Option<crate::types::AutoStopConfig>,
pub(crate) network_configuration: ::std::option::Option<crate::types::NetworkConfiguration>,
pub(crate) architecture: ::std::option::Option<crate::types::Architecture>,
pub(crate) image_configuration: ::std::option::Option<crate::types::ImageConfiguration>,
pub(crate) worker_type_specifications:
::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecification>>,
pub(crate) runtime_configuration: ::std::option::Option<::std::vec::Vec<crate::types::Configuration>>,
pub(crate) monitoring_configuration: ::std::option::Option<crate::types::MonitoringConfiguration>,
pub(crate) disk_encryption_configuration: ::std::option::Option<crate::types::DiskEncryptionConfiguration>,
pub(crate) interactive_configuration: ::std::option::Option<crate::types::InteractiveConfiguration>,
pub(crate) scheduler_configuration: ::std::option::Option<crate::types::SchedulerConfiguration>,
pub(crate) identity_center_configuration: ::std::option::Option<crate::types::IdentityCenterConfiguration>,
pub(crate) job_level_cost_allocation_configuration: ::std::option::Option<crate::types::JobLevelCostAllocationConfiguration>,
}
impl ApplicationBuilder {
pub fn application_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.application_id = ::std::option::Option::Some(input.into());
self
}
pub fn set_application_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.application_id = input;
self
}
pub fn get_application_id(&self) -> &::std::option::Option<::std::string::String> {
&self.application_id
}
pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.name = ::std::option::Option::Some(input.into());
self
}
pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.name = input;
self
}
pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
&self.name
}
pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.arn = ::std::option::Option::Some(input.into());
self
}
pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.arn = input;
self
}
pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.arn
}
pub fn release_label(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.release_label = ::std::option::Option::Some(input.into());
self
}
pub fn set_release_label(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.release_label = input;
self
}
pub fn get_release_label(&self) -> &::std::option::Option<::std::string::String> {
&self.release_label
}
pub fn r#type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.r#type = ::std::option::Option::Some(input.into());
self
}
pub fn set_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.r#type = input;
self
}
pub fn get_type(&self) -> &::std::option::Option<::std::string::String> {
&self.r#type
}
pub fn state(mut self, input: crate::types::ApplicationState) -> Self {
self.state = ::std::option::Option::Some(input);
self
}
pub fn set_state(mut self, input: ::std::option::Option<crate::types::ApplicationState>) -> Self {
self.state = input;
self
}
pub fn get_state(&self) -> &::std::option::Option<crate::types::ApplicationState> {
&self.state
}
pub fn state_details(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.state_details = ::std::option::Option::Some(input.into());
self
}
pub fn set_state_details(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.state_details = input;
self
}
pub fn get_state_details(&self) -> &::std::option::Option<::std::string::String> {
&self.state_details
}
pub fn initial_capacity(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::InitialCapacityConfig) -> Self {
let mut hash_map = self.initial_capacity.unwrap_or_default();
hash_map.insert(k.into(), v);
self.initial_capacity = ::std::option::Option::Some(hash_map);
self
}
pub fn set_initial_capacity(
mut self,
input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>>,
) -> Self {
self.initial_capacity = input;
self
}
pub fn get_initial_capacity(
&self,
) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::InitialCapacityConfig>> {
&self.initial_capacity
}
pub fn maximum_capacity(mut self, input: crate::types::MaximumAllowedResources) -> Self {
self.maximum_capacity = ::std::option::Option::Some(input);
self
}
pub fn set_maximum_capacity(mut self, input: ::std::option::Option<crate::types::MaximumAllowedResources>) -> Self {
self.maximum_capacity = input;
self
}
pub fn get_maximum_capacity(&self) -> &::std::option::Option<crate::types::MaximumAllowedResources> {
&self.maximum_capacity
}
pub fn created_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
self.created_at = ::std::option::Option::Some(input);
self
}
pub fn set_created_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
self.created_at = input;
self
}
pub fn get_created_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
&self.created_at
}
pub fn updated_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
self.updated_at = ::std::option::Option::Some(input);
self
}
pub fn set_updated_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
self.updated_at = input;
self
}
pub fn get_updated_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
&self.updated_at
}
pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
let mut hash_map = self.tags.unwrap_or_default();
hash_map.insert(k.into(), v.into());
self.tags = ::std::option::Option::Some(hash_map);
self
}
pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
self.tags = input;
self
}
pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
&self.tags
}
pub fn auto_start_configuration(mut self, input: crate::types::AutoStartConfig) -> Self {
self.auto_start_configuration = ::std::option::Option::Some(input);
self
}
pub fn set_auto_start_configuration(mut self, input: ::std::option::Option<crate::types::AutoStartConfig>) -> Self {
self.auto_start_configuration = input;
self
}
pub fn get_auto_start_configuration(&self) -> &::std::option::Option<crate::types::AutoStartConfig> {
&self.auto_start_configuration
}
pub fn auto_stop_configuration(mut self, input: crate::types::AutoStopConfig) -> Self {
self.auto_stop_configuration = ::std::option::Option::Some(input);
self
}
pub fn set_auto_stop_configuration(mut self, input: ::std::option::Option<crate::types::AutoStopConfig>) -> Self {
self.auto_stop_configuration = input;
self
}
pub fn get_auto_stop_configuration(&self) -> &::std::option::Option<crate::types::AutoStopConfig> {
&self.auto_stop_configuration
}
pub fn network_configuration(mut self, input: crate::types::NetworkConfiguration) -> Self {
self.network_configuration = ::std::option::Option::Some(input);
self
}
pub fn set_network_configuration(mut self, input: ::std::option::Option<crate::types::NetworkConfiguration>) -> Self {
self.network_configuration = input;
self
}
pub fn get_network_configuration(&self) -> &::std::option::Option<crate::types::NetworkConfiguration> {
&self.network_configuration
}
pub fn architecture(mut self, input: crate::types::Architecture) -> Self {
self.architecture = ::std::option::Option::Some(input);
self
}
pub fn set_architecture(mut self, input: ::std::option::Option<crate::types::Architecture>) -> Self {
self.architecture = input;
self
}
pub fn get_architecture(&self) -> &::std::option::Option<crate::types::Architecture> {
&self.architecture
}
pub fn image_configuration(mut self, input: crate::types::ImageConfiguration) -> Self {
self.image_configuration = ::std::option::Option::Some(input);
self
}
pub fn set_image_configuration(mut self, input: ::std::option::Option<crate::types::ImageConfiguration>) -> Self {
self.image_configuration = input;
self
}
pub fn get_image_configuration(&self) -> &::std::option::Option<crate::types::ImageConfiguration> {
&self.image_configuration
}
pub fn worker_type_specifications(
mut self,
k: impl ::std::convert::Into<::std::string::String>,
v: crate::types::WorkerTypeSpecification,
) -> Self {
let mut hash_map = self.worker_type_specifications.unwrap_or_default();
hash_map.insert(k.into(), v);
self.worker_type_specifications = ::std::option::Option::Some(hash_map);
self
}
pub fn set_worker_type_specifications(
mut self,
input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecification>>,
) -> Self {
self.worker_type_specifications = input;
self
}
pub fn get_worker_type_specifications(
&self,
) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::WorkerTypeSpecification>> {
&self.worker_type_specifications
}
pub fn runtime_configuration(mut self, input: crate::types::Configuration) -> Self {
let mut v = self.runtime_configuration.unwrap_or_default();
v.push(input);
self.runtime_configuration = ::std::option::Option::Some(v);
self
}
pub fn set_runtime_configuration(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Configuration>>) -> Self {
self.runtime_configuration = input;
self
}
pub fn get_runtime_configuration(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Configuration>> {
&self.runtime_configuration
}
pub fn monitoring_configuration(mut self, input: crate::types::MonitoringConfiguration) -> Self {
self.monitoring_configuration = ::std::option::Option::Some(input);
self
}
pub fn set_monitoring_configuration(mut self, input: ::std::option::Option<crate::types::MonitoringConfiguration>) -> Self {
self.monitoring_configuration = input;
self
}
pub fn get_monitoring_configuration(&self) -> &::std::option::Option<crate::types::MonitoringConfiguration> {
&self.monitoring_configuration
}
pub fn disk_encryption_configuration(mut self, input: crate::types::DiskEncryptionConfiguration) -> Self {
self.disk_encryption_configuration = ::std::option::Option::Some(input);
self
}
pub fn set_disk_encryption_configuration(mut self, input: ::std::option::Option<crate::types::DiskEncryptionConfiguration>) -> Self {
self.disk_encryption_configuration = input;
self
}
pub fn get_disk_encryption_configuration(&self) -> &::std::option::Option<crate::types::DiskEncryptionConfiguration> {
&self.disk_encryption_configuration
}
pub fn interactive_configuration(mut self, input: crate::types::InteractiveConfiguration) -> Self {
self.interactive_configuration = ::std::option::Option::Some(input);
self
}
pub fn set_interactive_configuration(mut self, input: ::std::option::Option<crate::types::InteractiveConfiguration>) -> Self {
self.interactive_configuration = input;
self
}
pub fn get_interactive_configuration(&self) -> &::std::option::Option<crate::types::InteractiveConfiguration> {
&self.interactive_configuration
}
pub fn scheduler_configuration(mut self, input: crate::types::SchedulerConfiguration) -> Self {
self.scheduler_configuration = ::std::option::Option::Some(input);
self
}
pub fn set_scheduler_configuration(mut self, input: ::std::option::Option<crate::types::SchedulerConfiguration>) -> Self {
self.scheduler_configuration = input;
self
}
pub fn get_scheduler_configuration(&self) -> &::std::option::Option<crate::types::SchedulerConfiguration> {
&self.scheduler_configuration
}
pub fn identity_center_configuration(mut self, input: crate::types::IdentityCenterConfiguration) -> Self {
self.identity_center_configuration = ::std::option::Option::Some(input);
self
}
pub fn set_identity_center_configuration(mut self, input: ::std::option::Option<crate::types::IdentityCenterConfiguration>) -> Self {
self.identity_center_configuration = input;
self
}
pub fn get_identity_center_configuration(&self) -> &::std::option::Option<crate::types::IdentityCenterConfiguration> {
&self.identity_center_configuration
}
pub fn job_level_cost_allocation_configuration(mut self, input: crate::types::JobLevelCostAllocationConfiguration) -> Self {
self.job_level_cost_allocation_configuration = ::std::option::Option::Some(input);
self
}
pub fn set_job_level_cost_allocation_configuration(
mut self,
input: ::std::option::Option<crate::types::JobLevelCostAllocationConfiguration>,
) -> Self {
self.job_level_cost_allocation_configuration = input;
self
}
pub fn get_job_level_cost_allocation_configuration(&self) -> &::std::option::Option<crate::types::JobLevelCostAllocationConfiguration> {
&self.job_level_cost_allocation_configuration
}
pub fn build(self) -> ::std::result::Result<crate::types::Application, ::aws_smithy_types::error::operation::BuildError> {
::std::result::Result::Ok(crate::types::Application {
application_id: self.application_id.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"application_id",
"application_id was not specified but it is required when building Application",
)
})?,
name: self.name,
arn: self.arn.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"arn",
"arn was not specified but it is required when building Application",
)
})?,
release_label: self.release_label.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"release_label",
"release_label was not specified but it is required when building Application",
)
})?,
r#type: self.r#type.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"r#type",
"r#type was not specified but it is required when building Application",
)
})?,
state: self.state.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"state",
"state was not specified but it is required when building Application",
)
})?,
state_details: self.state_details,
initial_capacity: self.initial_capacity,
maximum_capacity: self.maximum_capacity,
created_at: self.created_at.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"created_at",
"created_at was not specified but it is required when building Application",
)
})?,
updated_at: self.updated_at.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"updated_at",
"updated_at was not specified but it is required when building Application",
)
})?,
tags: self.tags,
auto_start_configuration: self.auto_start_configuration,
auto_stop_configuration: self.auto_stop_configuration,
network_configuration: self.network_configuration,
architecture: self.architecture,
image_configuration: self.image_configuration,
worker_type_specifications: self.worker_type_specifications,
runtime_configuration: self.runtime_configuration,
monitoring_configuration: self.monitoring_configuration,
disk_encryption_configuration: self.disk_encryption_configuration,
interactive_configuration: self.interactive_configuration,
scheduler_configuration: self.scheduler_configuration,
identity_center_configuration: self.identity_center_configuration,
job_level_cost_allocation_configuration: self.job_level_cost_allocation_configuration,
})
}
}