#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct InstanceNetworkInterface {
pub association: ::std::option::Option<crate::types::InstanceNetworkInterfaceAssociation>,
pub attachment: ::std::option::Option<crate::types::InstanceNetworkInterfaceAttachment>,
pub description: ::std::option::Option<::std::string::String>,
pub groups: ::std::option::Option<::std::vec::Vec<crate::types::GroupIdentifier>>,
pub ipv6_addresses: ::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv6Address>>,
pub mac_address: ::std::option::Option<::std::string::String>,
pub network_interface_id: ::std::option::Option<::std::string::String>,
pub owner_id: ::std::option::Option<::std::string::String>,
pub private_dns_name: ::std::option::Option<::std::string::String>,
pub private_ip_address: ::std::option::Option<::std::string::String>,
pub private_ip_addresses: ::std::option::Option<::std::vec::Vec<crate::types::InstancePrivateIpAddress>>,
pub source_dest_check: ::std::option::Option<bool>,
pub status: ::std::option::Option<crate::types::NetworkInterfaceStatus>,
pub subnet_id: ::std::option::Option<::std::string::String>,
pub vpc_id: ::std::option::Option<::std::string::String>,
pub interface_type: ::std::option::Option<::std::string::String>,
pub ipv4_prefixes: ::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv4Prefix>>,
pub ipv6_prefixes: ::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv6Prefix>>,
}
impl InstanceNetworkInterface {
pub fn association(&self) -> ::std::option::Option<&crate::types::InstanceNetworkInterfaceAssociation> {
self.association.as_ref()
}
pub fn attachment(&self) -> ::std::option::Option<&crate::types::InstanceNetworkInterfaceAttachment> {
self.attachment.as_ref()
}
pub fn description(&self) -> ::std::option::Option<&str> {
self.description.as_deref()
}
pub fn groups(&self) -> ::std::option::Option<&[crate::types::GroupIdentifier]> {
self.groups.as_deref()
}
pub fn ipv6_addresses(&self) -> ::std::option::Option<&[crate::types::InstanceIpv6Address]> {
self.ipv6_addresses.as_deref()
}
pub fn mac_address(&self) -> ::std::option::Option<&str> {
self.mac_address.as_deref()
}
pub fn network_interface_id(&self) -> ::std::option::Option<&str> {
self.network_interface_id.as_deref()
}
pub fn owner_id(&self) -> ::std::option::Option<&str> {
self.owner_id.as_deref()
}
pub fn private_dns_name(&self) -> ::std::option::Option<&str> {
self.private_dns_name.as_deref()
}
pub fn private_ip_address(&self) -> ::std::option::Option<&str> {
self.private_ip_address.as_deref()
}
pub fn private_ip_addresses(&self) -> ::std::option::Option<&[crate::types::InstancePrivateIpAddress]> {
self.private_ip_addresses.as_deref()
}
pub fn source_dest_check(&self) -> ::std::option::Option<bool> {
self.source_dest_check
}
pub fn status(&self) -> ::std::option::Option<&crate::types::NetworkInterfaceStatus> {
self.status.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 interface_type(&self) -> ::std::option::Option<&str> {
self.interface_type.as_deref()
}
pub fn ipv4_prefixes(&self) -> ::std::option::Option<&[crate::types::InstanceIpv4Prefix]> {
self.ipv4_prefixes.as_deref()
}
pub fn ipv6_prefixes(&self) -> ::std::option::Option<&[crate::types::InstanceIpv6Prefix]> {
self.ipv6_prefixes.as_deref()
}
}
impl InstanceNetworkInterface {
pub fn builder() -> crate::types::builders::InstanceNetworkInterfaceBuilder {
crate::types::builders::InstanceNetworkInterfaceBuilder::default()
}
}
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct InstanceNetworkInterfaceBuilder {
pub(crate) association: ::std::option::Option<crate::types::InstanceNetworkInterfaceAssociation>,
pub(crate) attachment: ::std::option::Option<crate::types::InstanceNetworkInterfaceAttachment>,
pub(crate) description: ::std::option::Option<::std::string::String>,
pub(crate) groups: ::std::option::Option<::std::vec::Vec<crate::types::GroupIdentifier>>,
pub(crate) ipv6_addresses: ::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv6Address>>,
pub(crate) mac_address: ::std::option::Option<::std::string::String>,
pub(crate) network_interface_id: ::std::option::Option<::std::string::String>,
pub(crate) owner_id: ::std::option::Option<::std::string::String>,
pub(crate) private_dns_name: ::std::option::Option<::std::string::String>,
pub(crate) private_ip_address: ::std::option::Option<::std::string::String>,
pub(crate) private_ip_addresses: ::std::option::Option<::std::vec::Vec<crate::types::InstancePrivateIpAddress>>,
pub(crate) source_dest_check: ::std::option::Option<bool>,
pub(crate) status: ::std::option::Option<crate::types::NetworkInterfaceStatus>,
pub(crate) subnet_id: ::std::option::Option<::std::string::String>,
pub(crate) vpc_id: ::std::option::Option<::std::string::String>,
pub(crate) interface_type: ::std::option::Option<::std::string::String>,
pub(crate) ipv4_prefixes: ::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv4Prefix>>,
pub(crate) ipv6_prefixes: ::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv6Prefix>>,
}
impl InstanceNetworkInterfaceBuilder {
pub fn association(mut self, input: crate::types::InstanceNetworkInterfaceAssociation) -> Self {
self.association = ::std::option::Option::Some(input);
self
}
pub fn set_association(mut self, input: ::std::option::Option<crate::types::InstanceNetworkInterfaceAssociation>) -> Self {
self.association = input;
self
}
pub fn get_association(&self) -> &::std::option::Option<crate::types::InstanceNetworkInterfaceAssociation> {
&self.association
}
pub fn attachment(mut self, input: crate::types::InstanceNetworkInterfaceAttachment) -> Self {
self.attachment = ::std::option::Option::Some(input);
self
}
pub fn set_attachment(mut self, input: ::std::option::Option<crate::types::InstanceNetworkInterfaceAttachment>) -> Self {
self.attachment = input;
self
}
pub fn get_attachment(&self) -> &::std::option::Option<crate::types::InstanceNetworkInterfaceAttachment> {
&self.attachment
}
pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.description = ::std::option::Option::Some(input.into());
self
}
pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.description = input;
self
}
pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
&self.description
}
pub fn groups(mut self, input: crate::types::GroupIdentifier) -> Self {
let mut v = self.groups.unwrap_or_default();
v.push(input);
self.groups = ::std::option::Option::Some(v);
self
}
pub fn set_groups(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::GroupIdentifier>>) -> Self {
self.groups = input;
self
}
pub fn get_groups(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::GroupIdentifier>> {
&self.groups
}
pub fn ipv6_addresses(mut self, input: crate::types::InstanceIpv6Address) -> Self {
let mut v = self.ipv6_addresses.unwrap_or_default();
v.push(input);
self.ipv6_addresses = ::std::option::Option::Some(v);
self
}
pub fn set_ipv6_addresses(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv6Address>>) -> Self {
self.ipv6_addresses = input;
self
}
pub fn get_ipv6_addresses(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv6Address>> {
&self.ipv6_addresses
}
pub fn mac_address(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.mac_address = ::std::option::Option::Some(input.into());
self
}
pub fn set_mac_address(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.mac_address = input;
self
}
pub fn get_mac_address(&self) -> &::std::option::Option<::std::string::String> {
&self.mac_address
}
pub fn network_interface_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.network_interface_id = ::std::option::Option::Some(input.into());
self
}
pub fn set_network_interface_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.network_interface_id = input;
self
}
pub fn get_network_interface_id(&self) -> &::std::option::Option<::std::string::String> {
&self.network_interface_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 private_dns_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.private_dns_name = ::std::option::Option::Some(input.into());
self
}
pub fn set_private_dns_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.private_dns_name = input;
self
}
pub fn get_private_dns_name(&self) -> &::std::option::Option<::std::string::String> {
&self.private_dns_name
}
pub fn private_ip_address(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.private_ip_address = ::std::option::Option::Some(input.into());
self
}
pub fn set_private_ip_address(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.private_ip_address = input;
self
}
pub fn get_private_ip_address(&self) -> &::std::option::Option<::std::string::String> {
&self.private_ip_address
}
pub fn private_ip_addresses(mut self, input: crate::types::InstancePrivateIpAddress) -> Self {
let mut v = self.private_ip_addresses.unwrap_or_default();
v.push(input);
self.private_ip_addresses = ::std::option::Option::Some(v);
self
}
pub fn set_private_ip_addresses(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InstancePrivateIpAddress>>) -> Self {
self.private_ip_addresses = input;
self
}
pub fn get_private_ip_addresses(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InstancePrivateIpAddress>> {
&self.private_ip_addresses
}
pub fn source_dest_check(mut self, input: bool) -> Self {
self.source_dest_check = ::std::option::Option::Some(input);
self
}
pub fn set_source_dest_check(mut self, input: ::std::option::Option<bool>) -> Self {
self.source_dest_check = input;
self
}
pub fn get_source_dest_check(&self) -> &::std::option::Option<bool> {
&self.source_dest_check
}
pub fn status(mut self, input: crate::types::NetworkInterfaceStatus) -> Self {
self.status = ::std::option::Option::Some(input);
self
}
pub fn set_status(mut self, input: ::std::option::Option<crate::types::NetworkInterfaceStatus>) -> Self {
self.status = input;
self
}
pub fn get_status(&self) -> &::std::option::Option<crate::types::NetworkInterfaceStatus> {
&self.status
}
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 interface_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.interface_type = ::std::option::Option::Some(input.into());
self
}
pub fn set_interface_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.interface_type = input;
self
}
pub fn get_interface_type(&self) -> &::std::option::Option<::std::string::String> {
&self.interface_type
}
pub fn ipv4_prefixes(mut self, input: crate::types::InstanceIpv4Prefix) -> Self {
let mut v = self.ipv4_prefixes.unwrap_or_default();
v.push(input);
self.ipv4_prefixes = ::std::option::Option::Some(v);
self
}
pub fn set_ipv4_prefixes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv4Prefix>>) -> Self {
self.ipv4_prefixes = input;
self
}
pub fn get_ipv4_prefixes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv4Prefix>> {
&self.ipv4_prefixes
}
pub fn ipv6_prefixes(mut self, input: crate::types::InstanceIpv6Prefix) -> Self {
let mut v = self.ipv6_prefixes.unwrap_or_default();
v.push(input);
self.ipv6_prefixes = ::std::option::Option::Some(v);
self
}
pub fn set_ipv6_prefixes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv6Prefix>>) -> Self {
self.ipv6_prefixes = input;
self
}
pub fn get_ipv6_prefixes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InstanceIpv6Prefix>> {
&self.ipv6_prefixes
}
pub fn build(self) -> crate::types::InstanceNetworkInterface {
crate::types::InstanceNetworkInterface {
association: self.association,
attachment: self.attachment,
description: self.description,
groups: self.groups,
ipv6_addresses: self.ipv6_addresses,
mac_address: self.mac_address,
network_interface_id: self.network_interface_id,
owner_id: self.owner_id,
private_dns_name: self.private_dns_name,
private_ip_address: self.private_ip_address,
private_ip_addresses: self.private_ip_addresses,
source_dest_check: self.source_dest_check,
status: self.status,
subnet_id: self.subnet_id,
vpc_id: self.vpc_id,
interface_type: self.interface_type,
ipv4_prefixes: self.ipv4_prefixes,
ipv6_prefixes: self.ipv6_prefixes,
}
}
}