#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Subnet {
pub availability_zone: ::std::option::Option<::std::string::String>,
pub availability_zone_id: ::std::option::Option<::std::string::String>,
pub available_ip_address_count: ::std::option::Option<i32>,
pub cidr_block: ::std::option::Option<::std::string::String>,
pub default_for_az: ::std::option::Option<bool>,
pub enable_lni_at_device_index: ::std::option::Option<i32>,
pub map_public_ip_on_launch: ::std::option::Option<bool>,
pub map_customer_owned_ip_on_launch: ::std::option::Option<bool>,
pub customer_owned_ipv4_pool: ::std::option::Option<::std::string::String>,
pub state: ::std::option::Option<crate::types::SubnetState>,
pub subnet_id: ::std::option::Option<::std::string::String>,
pub vpc_id: ::std::option::Option<::std::string::String>,
pub owner_id: ::std::option::Option<::std::string::String>,
pub assign_ipv6_address_on_creation: ::std::option::Option<bool>,
pub ipv6_cidr_block_association_set: ::std::option::Option<::std::vec::Vec<crate::types::SubnetIpv6CidrBlockAssociation>>,
pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
pub subnet_arn: ::std::option::Option<::std::string::String>,
pub outpost_arn: ::std::option::Option<::std::string::String>,
pub enable_dns64: ::std::option::Option<bool>,
pub ipv6_native: ::std::option::Option<bool>,
pub private_dns_name_options_on_launch: ::std::option::Option<crate::types::PrivateDnsNameOptionsOnLaunch>,
}
impl Subnet {
pub fn availability_zone(&self) -> ::std::option::Option<&str> {
self.availability_zone.as_deref()
}
pub fn availability_zone_id(&self) -> ::std::option::Option<&str> {
self.availability_zone_id.as_deref()
}
pub fn available_ip_address_count(&self) -> ::std::option::Option<i32> {
self.available_ip_address_count
}
pub fn cidr_block(&self) -> ::std::option::Option<&str> {
self.cidr_block.as_deref()
}
pub fn default_for_az(&self) -> ::std::option::Option<bool> {
self.default_for_az
}
pub fn enable_lni_at_device_index(&self) -> ::std::option::Option<i32> {
self.enable_lni_at_device_index
}
pub fn map_public_ip_on_launch(&self) -> ::std::option::Option<bool> {
self.map_public_ip_on_launch
}
pub fn map_customer_owned_ip_on_launch(&self) -> ::std::option::Option<bool> {
self.map_customer_owned_ip_on_launch
}
pub fn customer_owned_ipv4_pool(&self) -> ::std::option::Option<&str> {
self.customer_owned_ipv4_pool.as_deref()
}
pub fn state(&self) -> ::std::option::Option<&crate::types::SubnetState> {
self.state.as_ref()
}
pub fn subnet_id(&self) -> ::std::option::Option<&str> {
self.subnet_id.as_deref()
}
pub fn vpc_id(&self) -> ::std::option::Option<&str> {
self.vpc_id.as_deref()
}
pub fn owner_id(&self) -> ::std::option::Option<&str> {
self.owner_id.as_deref()
}
pub fn assign_ipv6_address_on_creation(&self) -> ::std::option::Option<bool> {
self.assign_ipv6_address_on_creation
}
pub fn ipv6_cidr_block_association_set(&self) -> ::std::option::Option<&[crate::types::SubnetIpv6CidrBlockAssociation]> {
self.ipv6_cidr_block_association_set.as_deref()
}
pub fn tags(&self) -> ::std::option::Option<&[crate::types::Tag]> {
self.tags.as_deref()
}
pub fn subnet_arn(&self) -> ::std::option::Option<&str> {
self.subnet_arn.as_deref()
}
pub fn outpost_arn(&self) -> ::std::option::Option<&str> {
self.outpost_arn.as_deref()
}
pub fn enable_dns64(&self) -> ::std::option::Option<bool> {
self.enable_dns64
}
pub fn ipv6_native(&self) -> ::std::option::Option<bool> {
self.ipv6_native
}
pub fn private_dns_name_options_on_launch(&self) -> ::std::option::Option<&crate::types::PrivateDnsNameOptionsOnLaunch> {
self.private_dns_name_options_on_launch.as_ref()
}
}
impl Subnet {
pub fn builder() -> crate::types::builders::SubnetBuilder {
crate::types::builders::SubnetBuilder::default()
}
}
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct SubnetBuilder {
pub(crate) availability_zone: ::std::option::Option<::std::string::String>,
pub(crate) availability_zone_id: ::std::option::Option<::std::string::String>,
pub(crate) available_ip_address_count: ::std::option::Option<i32>,
pub(crate) cidr_block: ::std::option::Option<::std::string::String>,
pub(crate) default_for_az: ::std::option::Option<bool>,
pub(crate) enable_lni_at_device_index: ::std::option::Option<i32>,
pub(crate) map_public_ip_on_launch: ::std::option::Option<bool>,
pub(crate) map_customer_owned_ip_on_launch: ::std::option::Option<bool>,
pub(crate) customer_owned_ipv4_pool: ::std::option::Option<::std::string::String>,
pub(crate) state: ::std::option::Option<crate::types::SubnetState>,
pub(crate) subnet_id: ::std::option::Option<::std::string::String>,
pub(crate) vpc_id: ::std::option::Option<::std::string::String>,
pub(crate) owner_id: ::std::option::Option<::std::string::String>,
pub(crate) assign_ipv6_address_on_creation: ::std::option::Option<bool>,
pub(crate) ipv6_cidr_block_association_set: ::std::option::Option<::std::vec::Vec<crate::types::SubnetIpv6CidrBlockAssociation>>,
pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
pub(crate) subnet_arn: ::std::option::Option<::std::string::String>,
pub(crate) outpost_arn: ::std::option::Option<::std::string::String>,
pub(crate) enable_dns64: ::std::option::Option<bool>,
pub(crate) ipv6_native: ::std::option::Option<bool>,
pub(crate) private_dns_name_options_on_launch: ::std::option::Option<crate::types::PrivateDnsNameOptionsOnLaunch>,
}
impl SubnetBuilder {
pub fn availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.availability_zone = ::std::option::Option::Some(input.into());
self
}
pub fn set_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.availability_zone = input;
self
}
pub fn get_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
&self.availability_zone
}
pub fn availability_zone_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.availability_zone_id = ::std::option::Option::Some(input.into());
self
}
pub fn set_availability_zone_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.availability_zone_id = input;
self
}
pub fn get_availability_zone_id(&self) -> &::std::option::Option<::std::string::String> {
&self.availability_zone_id
}
pub fn available_ip_address_count(mut self, input: i32) -> Self {
self.available_ip_address_count = ::std::option::Option::Some(input);
self
}
pub fn set_available_ip_address_count(mut self, input: ::std::option::Option<i32>) -> Self {
self.available_ip_address_count = input;
self
}
pub fn get_available_ip_address_count(&self) -> &::std::option::Option<i32> {
&self.available_ip_address_count
}
pub fn cidr_block(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.cidr_block = ::std::option::Option::Some(input.into());
self
}
pub fn set_cidr_block(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.cidr_block = input;
self
}
pub fn get_cidr_block(&self) -> &::std::option::Option<::std::string::String> {
&self.cidr_block
}
pub fn default_for_az(mut self, input: bool) -> Self {
self.default_for_az = ::std::option::Option::Some(input);
self
}
pub fn set_default_for_az(mut self, input: ::std::option::Option<bool>) -> Self {
self.default_for_az = input;
self
}
pub fn get_default_for_az(&self) -> &::std::option::Option<bool> {
&self.default_for_az
}
pub fn enable_lni_at_device_index(mut self, input: i32) -> Self {
self.enable_lni_at_device_index = ::std::option::Option::Some(input);
self
}
pub fn set_enable_lni_at_device_index(mut self, input: ::std::option::Option<i32>) -> Self {
self.enable_lni_at_device_index = input;
self
}
pub fn get_enable_lni_at_device_index(&self) -> &::std::option::Option<i32> {
&self.enable_lni_at_device_index
}
pub fn map_public_ip_on_launch(mut self, input: bool) -> Self {
self.map_public_ip_on_launch = ::std::option::Option::Some(input);
self
}
pub fn set_map_public_ip_on_launch(mut self, input: ::std::option::Option<bool>) -> Self {
self.map_public_ip_on_launch = input;
self
}
pub fn get_map_public_ip_on_launch(&self) -> &::std::option::Option<bool> {
&self.map_public_ip_on_launch
}
pub fn map_customer_owned_ip_on_launch(mut self, input: bool) -> Self {
self.map_customer_owned_ip_on_launch = ::std::option::Option::Some(input);
self
}
pub fn set_map_customer_owned_ip_on_launch(mut self, input: ::std::option::Option<bool>) -> Self {
self.map_customer_owned_ip_on_launch = input;
self
}
pub fn get_map_customer_owned_ip_on_launch(&self) -> &::std::option::Option<bool> {
&self.map_customer_owned_ip_on_launch
}
pub fn customer_owned_ipv4_pool(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.customer_owned_ipv4_pool = ::std::option::Option::Some(input.into());
self
}
pub fn set_customer_owned_ipv4_pool(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.customer_owned_ipv4_pool = input;
self
}
pub fn get_customer_owned_ipv4_pool(&self) -> &::std::option::Option<::std::string::String> {
&self.customer_owned_ipv4_pool
}
pub fn state(mut self, input: crate::types::SubnetState) -> Self {
self.state = ::std::option::Option::Some(input);
self
}
pub fn set_state(mut self, input: ::std::option::Option<crate::types::SubnetState>) -> Self {
self.state = input;
self
}
pub fn get_state(&self) -> &::std::option::Option<crate::types::SubnetState> {
&self.state
}
pub fn subnet_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.subnet_id = ::std::option::Option::Some(input.into());
self
}
pub fn set_subnet_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.subnet_id = input;
self
}
pub fn get_subnet_id(&self) -> &::std::option::Option<::std::string::String> {
&self.subnet_id
}
pub fn vpc_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.vpc_id = ::std::option::Option::Some(input.into());
self
}
pub fn set_vpc_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.vpc_id = input;
self
}
pub fn get_vpc_id(&self) -> &::std::option::Option<::std::string::String> {
&self.vpc_id
}
pub fn owner_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.owner_id = ::std::option::Option::Some(input.into());
self
}
pub fn set_owner_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.owner_id = input;
self
}
pub fn get_owner_id(&self) -> &::std::option::Option<::std::string::String> {
&self.owner_id
}
pub fn assign_ipv6_address_on_creation(mut self, input: bool) -> Self {
self.assign_ipv6_address_on_creation = ::std::option::Option::Some(input);
self
}
pub fn set_assign_ipv6_address_on_creation(mut self, input: ::std::option::Option<bool>) -> Self {
self.assign_ipv6_address_on_creation = input;
self
}
pub fn get_assign_ipv6_address_on_creation(&self) -> &::std::option::Option<bool> {
&self.assign_ipv6_address_on_creation
}
pub fn ipv6_cidr_block_association_set(mut self, input: crate::types::SubnetIpv6CidrBlockAssociation) -> Self {
let mut v = self.ipv6_cidr_block_association_set.unwrap_or_default();
v.push(input);
self.ipv6_cidr_block_association_set = ::std::option::Option::Some(v);
self
}
pub fn set_ipv6_cidr_block_association_set(
mut self,
input: ::std::option::Option<::std::vec::Vec<crate::types::SubnetIpv6CidrBlockAssociation>>,
) -> Self {
self.ipv6_cidr_block_association_set = input;
self
}
pub fn get_ipv6_cidr_block_association_set(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::SubnetIpv6CidrBlockAssociation>> {
&self.ipv6_cidr_block_association_set
}
pub fn tags(mut self, input: crate::types::Tag) -> Self {
let mut v = self.tags.unwrap_or_default();
v.push(input);
self.tags = ::std::option::Option::Some(v);
self
}
pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
self.tags = input;
self
}
pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
&self.tags
}
pub fn subnet_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.subnet_arn = ::std::option::Option::Some(input.into());
self
}
pub fn set_subnet_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.subnet_arn = input;
self
}
pub fn get_subnet_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.subnet_arn
}
pub fn outpost_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.outpost_arn = ::std::option::Option::Some(input.into());
self
}
pub fn set_outpost_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.outpost_arn = input;
self
}
pub fn get_outpost_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.outpost_arn
}
pub fn enable_dns64(mut self, input: bool) -> Self {
self.enable_dns64 = ::std::option::Option::Some(input);
self
}
pub fn set_enable_dns64(mut self, input: ::std::option::Option<bool>) -> Self {
self.enable_dns64 = input;
self
}
pub fn get_enable_dns64(&self) -> &::std::option::Option<bool> {
&self.enable_dns64
}
pub fn ipv6_native(mut self, input: bool) -> Self {
self.ipv6_native = ::std::option::Option::Some(input);
self
}
pub fn set_ipv6_native(mut self, input: ::std::option::Option<bool>) -> Self {
self.ipv6_native = input;
self
}
pub fn get_ipv6_native(&self) -> &::std::option::Option<bool> {
&self.ipv6_native
}
pub fn private_dns_name_options_on_launch(mut self, input: crate::types::PrivateDnsNameOptionsOnLaunch) -> Self {
self.private_dns_name_options_on_launch = ::std::option::Option::Some(input);
self
}
pub fn set_private_dns_name_options_on_launch(mut self, input: ::std::option::Option<crate::types::PrivateDnsNameOptionsOnLaunch>) -> Self {
self.private_dns_name_options_on_launch = input;
self
}
pub fn get_private_dns_name_options_on_launch(&self) -> &::std::option::Option<crate::types::PrivateDnsNameOptionsOnLaunch> {
&self.private_dns_name_options_on_launch
}
pub fn build(self) -> crate::types::Subnet {
crate::types::Subnet {
availability_zone: self.availability_zone,
availability_zone_id: self.availability_zone_id,
available_ip_address_count: self.available_ip_address_count,
cidr_block: self.cidr_block,
default_for_az: self.default_for_az,
enable_lni_at_device_index: self.enable_lni_at_device_index,
map_public_ip_on_launch: self.map_public_ip_on_launch,
map_customer_owned_ip_on_launch: self.map_customer_owned_ip_on_launch,
customer_owned_ipv4_pool: self.customer_owned_ipv4_pool,
state: self.state,
subnet_id: self.subnet_id,
vpc_id: self.vpc_id,
owner_id: self.owner_id,
assign_ipv6_address_on_creation: self.assign_ipv6_address_on_creation,
ipv6_cidr_block_association_set: self.ipv6_cidr_block_association_set,
tags: self.tags,
subnet_arn: self.subnet_arn,
outpost_arn: self.outpost_arn,
enable_dns64: self.enable_dns64,
ipv6_native: self.ipv6_native,
private_dns_name_options_on_launch: self.private_dns_name_options_on_launch,
}
}
}