#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct PathComponent {
pub sequence_number: ::std::option::Option<i32>,
pub acl_rule: ::std::option::Option<crate::types::AnalysisAclRule>,
pub attached_to: ::std::option::Option<crate::types::AnalysisComponent>,
pub component: ::std::option::Option<crate::types::AnalysisComponent>,
pub destination_vpc: ::std::option::Option<crate::types::AnalysisComponent>,
pub outbound_header: ::std::option::Option<crate::types::AnalysisPacketHeader>,
pub inbound_header: ::std::option::Option<crate::types::AnalysisPacketHeader>,
pub route_table_route: ::std::option::Option<crate::types::AnalysisRouteTableRoute>,
pub security_group_rule: ::std::option::Option<crate::types::AnalysisSecurityGroupRule>,
pub source_vpc: ::std::option::Option<crate::types::AnalysisComponent>,
pub subnet: ::std::option::Option<crate::types::AnalysisComponent>,
pub vpc: ::std::option::Option<crate::types::AnalysisComponent>,
pub additional_details: ::std::option::Option<::std::vec::Vec<crate::types::AdditionalDetail>>,
pub transit_gateway: ::std::option::Option<crate::types::AnalysisComponent>,
pub transit_gateway_route_table_route: ::std::option::Option<crate::types::TransitGatewayRouteTableRoute>,
pub explanations: ::std::option::Option<::std::vec::Vec<crate::types::Explanation>>,
pub elastic_load_balancer_listener: ::std::option::Option<crate::types::AnalysisComponent>,
pub firewall_stateless_rule: ::std::option::Option<crate::types::FirewallStatelessRule>,
pub firewall_stateful_rule: ::std::option::Option<crate::types::FirewallStatefulRule>,
pub service_name: ::std::option::Option<::std::string::String>,
}
impl PathComponent {
pub fn sequence_number(&self) -> ::std::option::Option<i32> {
self.sequence_number
}
pub fn acl_rule(&self) -> ::std::option::Option<&crate::types::AnalysisAclRule> {
self.acl_rule.as_ref()
}
pub fn attached_to(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
self.attached_to.as_ref()
}
pub fn component(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
self.component.as_ref()
}
pub fn destination_vpc(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
self.destination_vpc.as_ref()
}
pub fn outbound_header(&self) -> ::std::option::Option<&crate::types::AnalysisPacketHeader> {
self.outbound_header.as_ref()
}
pub fn inbound_header(&self) -> ::std::option::Option<&crate::types::AnalysisPacketHeader> {
self.inbound_header.as_ref()
}
pub fn route_table_route(&self) -> ::std::option::Option<&crate::types::AnalysisRouteTableRoute> {
self.route_table_route.as_ref()
}
pub fn security_group_rule(&self) -> ::std::option::Option<&crate::types::AnalysisSecurityGroupRule> {
self.security_group_rule.as_ref()
}
pub fn source_vpc(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
self.source_vpc.as_ref()
}
pub fn subnet(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
self.subnet.as_ref()
}
pub fn vpc(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
self.vpc.as_ref()
}
pub fn additional_details(&self) -> &[crate::types::AdditionalDetail] {
self.additional_details.as_deref().unwrap_or_default()
}
pub fn transit_gateway(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
self.transit_gateway.as_ref()
}
pub fn transit_gateway_route_table_route(&self) -> ::std::option::Option<&crate::types::TransitGatewayRouteTableRoute> {
self.transit_gateway_route_table_route.as_ref()
}
pub fn explanations(&self) -> &[crate::types::Explanation] {
self.explanations.as_deref().unwrap_or_default()
}
pub fn elastic_load_balancer_listener(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
self.elastic_load_balancer_listener.as_ref()
}
pub fn firewall_stateless_rule(&self) -> ::std::option::Option<&crate::types::FirewallStatelessRule> {
self.firewall_stateless_rule.as_ref()
}
pub fn firewall_stateful_rule(&self) -> ::std::option::Option<&crate::types::FirewallStatefulRule> {
self.firewall_stateful_rule.as_ref()
}
pub fn service_name(&self) -> ::std::option::Option<&str> {
self.service_name.as_deref()
}
}
impl PathComponent {
pub fn builder() -> crate::types::builders::PathComponentBuilder {
crate::types::builders::PathComponentBuilder::default()
}
}
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct PathComponentBuilder {
pub(crate) sequence_number: ::std::option::Option<i32>,
pub(crate) acl_rule: ::std::option::Option<crate::types::AnalysisAclRule>,
pub(crate) attached_to: ::std::option::Option<crate::types::AnalysisComponent>,
pub(crate) component: ::std::option::Option<crate::types::AnalysisComponent>,
pub(crate) destination_vpc: ::std::option::Option<crate::types::AnalysisComponent>,
pub(crate) outbound_header: ::std::option::Option<crate::types::AnalysisPacketHeader>,
pub(crate) inbound_header: ::std::option::Option<crate::types::AnalysisPacketHeader>,
pub(crate) route_table_route: ::std::option::Option<crate::types::AnalysisRouteTableRoute>,
pub(crate) security_group_rule: ::std::option::Option<crate::types::AnalysisSecurityGroupRule>,
pub(crate) source_vpc: ::std::option::Option<crate::types::AnalysisComponent>,
pub(crate) subnet: ::std::option::Option<crate::types::AnalysisComponent>,
pub(crate) vpc: ::std::option::Option<crate::types::AnalysisComponent>,
pub(crate) additional_details: ::std::option::Option<::std::vec::Vec<crate::types::AdditionalDetail>>,
pub(crate) transit_gateway: ::std::option::Option<crate::types::AnalysisComponent>,
pub(crate) transit_gateway_route_table_route: ::std::option::Option<crate::types::TransitGatewayRouteTableRoute>,
pub(crate) explanations: ::std::option::Option<::std::vec::Vec<crate::types::Explanation>>,
pub(crate) elastic_load_balancer_listener: ::std::option::Option<crate::types::AnalysisComponent>,
pub(crate) firewall_stateless_rule: ::std::option::Option<crate::types::FirewallStatelessRule>,
pub(crate) firewall_stateful_rule: ::std::option::Option<crate::types::FirewallStatefulRule>,
pub(crate) service_name: ::std::option::Option<::std::string::String>,
}
impl PathComponentBuilder {
pub fn sequence_number(mut self, input: i32) -> Self {
self.sequence_number = ::std::option::Option::Some(input);
self
}
pub fn set_sequence_number(mut self, input: ::std::option::Option<i32>) -> Self {
self.sequence_number = input;
self
}
pub fn get_sequence_number(&self) -> &::std::option::Option<i32> {
&self.sequence_number
}
pub fn acl_rule(mut self, input: crate::types::AnalysisAclRule) -> Self {
self.acl_rule = ::std::option::Option::Some(input);
self
}
pub fn set_acl_rule(mut self, input: ::std::option::Option<crate::types::AnalysisAclRule>) -> Self {
self.acl_rule = input;
self
}
pub fn get_acl_rule(&self) -> &::std::option::Option<crate::types::AnalysisAclRule> {
&self.acl_rule
}
pub fn attached_to(mut self, input: crate::types::AnalysisComponent) -> Self {
self.attached_to = ::std::option::Option::Some(input);
self
}
pub fn set_attached_to(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
self.attached_to = input;
self
}
pub fn get_attached_to(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
&self.attached_to
}
pub fn component(mut self, input: crate::types::AnalysisComponent) -> Self {
self.component = ::std::option::Option::Some(input);
self
}
pub fn set_component(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
self.component = input;
self
}
pub fn get_component(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
&self.component
}
pub fn destination_vpc(mut self, input: crate::types::AnalysisComponent) -> Self {
self.destination_vpc = ::std::option::Option::Some(input);
self
}
pub fn set_destination_vpc(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
self.destination_vpc = input;
self
}
pub fn get_destination_vpc(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
&self.destination_vpc
}
pub fn outbound_header(mut self, input: crate::types::AnalysisPacketHeader) -> Self {
self.outbound_header = ::std::option::Option::Some(input);
self
}
pub fn set_outbound_header(mut self, input: ::std::option::Option<crate::types::AnalysisPacketHeader>) -> Self {
self.outbound_header = input;
self
}
pub fn get_outbound_header(&self) -> &::std::option::Option<crate::types::AnalysisPacketHeader> {
&self.outbound_header
}
pub fn inbound_header(mut self, input: crate::types::AnalysisPacketHeader) -> Self {
self.inbound_header = ::std::option::Option::Some(input);
self
}
pub fn set_inbound_header(mut self, input: ::std::option::Option<crate::types::AnalysisPacketHeader>) -> Self {
self.inbound_header = input;
self
}
pub fn get_inbound_header(&self) -> &::std::option::Option<crate::types::AnalysisPacketHeader> {
&self.inbound_header
}
pub fn route_table_route(mut self, input: crate::types::AnalysisRouteTableRoute) -> Self {
self.route_table_route = ::std::option::Option::Some(input);
self
}
pub fn set_route_table_route(mut self, input: ::std::option::Option<crate::types::AnalysisRouteTableRoute>) -> Self {
self.route_table_route = input;
self
}
pub fn get_route_table_route(&self) -> &::std::option::Option<crate::types::AnalysisRouteTableRoute> {
&self.route_table_route
}
pub fn security_group_rule(mut self, input: crate::types::AnalysisSecurityGroupRule) -> Self {
self.security_group_rule = ::std::option::Option::Some(input);
self
}
pub fn set_security_group_rule(mut self, input: ::std::option::Option<crate::types::AnalysisSecurityGroupRule>) -> Self {
self.security_group_rule = input;
self
}
pub fn get_security_group_rule(&self) -> &::std::option::Option<crate::types::AnalysisSecurityGroupRule> {
&self.security_group_rule
}
pub fn source_vpc(mut self, input: crate::types::AnalysisComponent) -> Self {
self.source_vpc = ::std::option::Option::Some(input);
self
}
pub fn set_source_vpc(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
self.source_vpc = input;
self
}
pub fn get_source_vpc(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
&self.source_vpc
}
pub fn subnet(mut self, input: crate::types::AnalysisComponent) -> Self {
self.subnet = ::std::option::Option::Some(input);
self
}
pub fn set_subnet(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
self.subnet = input;
self
}
pub fn get_subnet(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
&self.subnet
}
pub fn vpc(mut self, input: crate::types::AnalysisComponent) -> Self {
self.vpc = ::std::option::Option::Some(input);
self
}
pub fn set_vpc(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
self.vpc = input;
self
}
pub fn get_vpc(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
&self.vpc
}
pub fn additional_details(mut self, input: crate::types::AdditionalDetail) -> Self {
let mut v = self.additional_details.unwrap_or_default();
v.push(input);
self.additional_details = ::std::option::Option::Some(v);
self
}
pub fn set_additional_details(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AdditionalDetail>>) -> Self {
self.additional_details = input;
self
}
pub fn get_additional_details(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AdditionalDetail>> {
&self.additional_details
}
pub fn transit_gateway(mut self, input: crate::types::AnalysisComponent) -> Self {
self.transit_gateway = ::std::option::Option::Some(input);
self
}
pub fn set_transit_gateway(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
self.transit_gateway = input;
self
}
pub fn get_transit_gateway(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
&self.transit_gateway
}
pub fn transit_gateway_route_table_route(mut self, input: crate::types::TransitGatewayRouteTableRoute) -> Self {
self.transit_gateway_route_table_route = ::std::option::Option::Some(input);
self
}
pub fn set_transit_gateway_route_table_route(mut self, input: ::std::option::Option<crate::types::TransitGatewayRouteTableRoute>) -> Self {
self.transit_gateway_route_table_route = input;
self
}
pub fn get_transit_gateway_route_table_route(&self) -> &::std::option::Option<crate::types::TransitGatewayRouteTableRoute> {
&self.transit_gateway_route_table_route
}
pub fn explanations(mut self, input: crate::types::Explanation) -> Self {
let mut v = self.explanations.unwrap_or_default();
v.push(input);
self.explanations = ::std::option::Option::Some(v);
self
}
pub fn set_explanations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Explanation>>) -> Self {
self.explanations = input;
self
}
pub fn get_explanations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Explanation>> {
&self.explanations
}
pub fn elastic_load_balancer_listener(mut self, input: crate::types::AnalysisComponent) -> Self {
self.elastic_load_balancer_listener = ::std::option::Option::Some(input);
self
}
pub fn set_elastic_load_balancer_listener(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
self.elastic_load_balancer_listener = input;
self
}
pub fn get_elastic_load_balancer_listener(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
&self.elastic_load_balancer_listener
}
pub fn firewall_stateless_rule(mut self, input: crate::types::FirewallStatelessRule) -> Self {
self.firewall_stateless_rule = ::std::option::Option::Some(input);
self
}
pub fn set_firewall_stateless_rule(mut self, input: ::std::option::Option<crate::types::FirewallStatelessRule>) -> Self {
self.firewall_stateless_rule = input;
self
}
pub fn get_firewall_stateless_rule(&self) -> &::std::option::Option<crate::types::FirewallStatelessRule> {
&self.firewall_stateless_rule
}
pub fn firewall_stateful_rule(mut self, input: crate::types::FirewallStatefulRule) -> Self {
self.firewall_stateful_rule = ::std::option::Option::Some(input);
self
}
pub fn set_firewall_stateful_rule(mut self, input: ::std::option::Option<crate::types::FirewallStatefulRule>) -> Self {
self.firewall_stateful_rule = input;
self
}
pub fn get_firewall_stateful_rule(&self) -> &::std::option::Option<crate::types::FirewallStatefulRule> {
&self.firewall_stateful_rule
}
pub fn service_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.service_name = ::std::option::Option::Some(input.into());
self
}
pub fn set_service_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.service_name = input;
self
}
pub fn get_service_name(&self) -> &::std::option::Option<::std::string::String> {
&self.service_name
}
pub fn build(self) -> crate::types::PathComponent {
crate::types::PathComponent {
sequence_number: self.sequence_number,
acl_rule: self.acl_rule,
attached_to: self.attached_to,
component: self.component,
destination_vpc: self.destination_vpc,
outbound_header: self.outbound_header,
inbound_header: self.inbound_header,
route_table_route: self.route_table_route,
security_group_rule: self.security_group_rule,
source_vpc: self.source_vpc,
subnet: self.subnet,
vpc: self.vpc,
additional_details: self.additional_details,
transit_gateway: self.transit_gateway,
transit_gateway_route_table_route: self.transit_gateway_route_table_route,
explanations: self.explanations,
elastic_load_balancer_listener: self.elastic_load_balancer_listener,
firewall_stateless_rule: self.firewall_stateless_rule,
firewall_stateful_rule: self.firewall_stateful_rule,
service_name: self.service_name,
}
}
}