/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes a path component.

See Also:

AWS * API Reference

*/ class PathComponent { public: AWS_EC2_API PathComponent(); AWS_EC2_API PathComponent(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API PathComponent& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The sequence number.

*/ inline int GetSequenceNumber() const{ return m_sequenceNumber; } /** *

The sequence number.

*/ inline bool SequenceNumberHasBeenSet() const { return m_sequenceNumberHasBeenSet; } /** *

The sequence number.

*/ inline void SetSequenceNumber(int value) { m_sequenceNumberHasBeenSet = true; m_sequenceNumber = value; } /** *

The sequence number.

*/ inline PathComponent& WithSequenceNumber(int value) { SetSequenceNumber(value); return *this;} /** *

The network ACL rule.

*/ inline const AnalysisAclRule& GetAclRule() const{ return m_aclRule; } /** *

The network ACL rule.

*/ inline bool AclRuleHasBeenSet() const { return m_aclRuleHasBeenSet; } /** *

The network ACL rule.

*/ inline void SetAclRule(const AnalysisAclRule& value) { m_aclRuleHasBeenSet = true; m_aclRule = value; } /** *

The network ACL rule.

*/ inline void SetAclRule(AnalysisAclRule&& value) { m_aclRuleHasBeenSet = true; m_aclRule = std::move(value); } /** *

The network ACL rule.

*/ inline PathComponent& WithAclRule(const AnalysisAclRule& value) { SetAclRule(value); return *this;} /** *

The network ACL rule.

*/ inline PathComponent& WithAclRule(AnalysisAclRule&& value) { SetAclRule(std::move(value)); return *this;} /** *

The resource to which the path component is attached.

*/ inline const AnalysisComponent& GetAttachedTo() const{ return m_attachedTo; } /** *

The resource to which the path component is attached.

*/ inline bool AttachedToHasBeenSet() const { return m_attachedToHasBeenSet; } /** *

The resource to which the path component is attached.

*/ inline void SetAttachedTo(const AnalysisComponent& value) { m_attachedToHasBeenSet = true; m_attachedTo = value; } /** *

The resource to which the path component is attached.

*/ inline void SetAttachedTo(AnalysisComponent&& value) { m_attachedToHasBeenSet = true; m_attachedTo = std::move(value); } /** *

The resource to which the path component is attached.

*/ inline PathComponent& WithAttachedTo(const AnalysisComponent& value) { SetAttachedTo(value); return *this;} /** *

The resource to which the path component is attached.

*/ inline PathComponent& WithAttachedTo(AnalysisComponent&& value) { SetAttachedTo(std::move(value)); return *this;} /** *

The component.

*/ inline const AnalysisComponent& GetComponent() const{ return m_component; } /** *

The component.

*/ inline bool ComponentHasBeenSet() const { return m_componentHasBeenSet; } /** *

The component.

*/ inline void SetComponent(const AnalysisComponent& value) { m_componentHasBeenSet = true; m_component = value; } /** *

The component.

*/ inline void SetComponent(AnalysisComponent&& value) { m_componentHasBeenSet = true; m_component = std::move(value); } /** *

The component.

*/ inline PathComponent& WithComponent(const AnalysisComponent& value) { SetComponent(value); return *this;} /** *

The component.

*/ inline PathComponent& WithComponent(AnalysisComponent&& value) { SetComponent(std::move(value)); return *this;} /** *

The destination VPC.

*/ inline const AnalysisComponent& GetDestinationVpc() const{ return m_destinationVpc; } /** *

The destination VPC.

*/ inline bool DestinationVpcHasBeenSet() const { return m_destinationVpcHasBeenSet; } /** *

The destination VPC.

*/ inline void SetDestinationVpc(const AnalysisComponent& value) { m_destinationVpcHasBeenSet = true; m_destinationVpc = value; } /** *

The destination VPC.

*/ inline void SetDestinationVpc(AnalysisComponent&& value) { m_destinationVpcHasBeenSet = true; m_destinationVpc = std::move(value); } /** *

The destination VPC.

*/ inline PathComponent& WithDestinationVpc(const AnalysisComponent& value) { SetDestinationVpc(value); return *this;} /** *

The destination VPC.

*/ inline PathComponent& WithDestinationVpc(AnalysisComponent&& value) { SetDestinationVpc(std::move(value)); return *this;} /** *

The outbound header.

*/ inline const AnalysisPacketHeader& GetOutboundHeader() const{ return m_outboundHeader; } /** *

The outbound header.

*/ inline bool OutboundHeaderHasBeenSet() const { return m_outboundHeaderHasBeenSet; } /** *

The outbound header.

*/ inline void SetOutboundHeader(const AnalysisPacketHeader& value) { m_outboundHeaderHasBeenSet = true; m_outboundHeader = value; } /** *

The outbound header.

*/ inline void SetOutboundHeader(AnalysisPacketHeader&& value) { m_outboundHeaderHasBeenSet = true; m_outboundHeader = std::move(value); } /** *

The outbound header.

*/ inline PathComponent& WithOutboundHeader(const AnalysisPacketHeader& value) { SetOutboundHeader(value); return *this;} /** *

The outbound header.

*/ inline PathComponent& WithOutboundHeader(AnalysisPacketHeader&& value) { SetOutboundHeader(std::move(value)); return *this;} /** *

The inbound header.

*/ inline const AnalysisPacketHeader& GetInboundHeader() const{ return m_inboundHeader; } /** *

The inbound header.

*/ inline bool InboundHeaderHasBeenSet() const { return m_inboundHeaderHasBeenSet; } /** *

The inbound header.

*/ inline void SetInboundHeader(const AnalysisPacketHeader& value) { m_inboundHeaderHasBeenSet = true; m_inboundHeader = value; } /** *

The inbound header.

*/ inline void SetInboundHeader(AnalysisPacketHeader&& value) { m_inboundHeaderHasBeenSet = true; m_inboundHeader = std::move(value); } /** *

The inbound header.

*/ inline PathComponent& WithInboundHeader(const AnalysisPacketHeader& value) { SetInboundHeader(value); return *this;} /** *

The inbound header.

*/ inline PathComponent& WithInboundHeader(AnalysisPacketHeader&& value) { SetInboundHeader(std::move(value)); return *this;} /** *

The route table route.

*/ inline const AnalysisRouteTableRoute& GetRouteTableRoute() const{ return m_routeTableRoute; } /** *

The route table route.

*/ inline bool RouteTableRouteHasBeenSet() const { return m_routeTableRouteHasBeenSet; } /** *

The route table route.

*/ inline void SetRouteTableRoute(const AnalysisRouteTableRoute& value) { m_routeTableRouteHasBeenSet = true; m_routeTableRoute = value; } /** *

The route table route.

*/ inline void SetRouteTableRoute(AnalysisRouteTableRoute&& value) { m_routeTableRouteHasBeenSet = true; m_routeTableRoute = std::move(value); } /** *

The route table route.

*/ inline PathComponent& WithRouteTableRoute(const AnalysisRouteTableRoute& value) { SetRouteTableRoute(value); return *this;} /** *

The route table route.

*/ inline PathComponent& WithRouteTableRoute(AnalysisRouteTableRoute&& value) { SetRouteTableRoute(std::move(value)); return *this;} /** *

The security group rule.

*/ inline const AnalysisSecurityGroupRule& GetSecurityGroupRule() const{ return m_securityGroupRule; } /** *

The security group rule.

*/ inline bool SecurityGroupRuleHasBeenSet() const { return m_securityGroupRuleHasBeenSet; } /** *

The security group rule.

*/ inline void SetSecurityGroupRule(const AnalysisSecurityGroupRule& value) { m_securityGroupRuleHasBeenSet = true; m_securityGroupRule = value; } /** *

The security group rule.

*/ inline void SetSecurityGroupRule(AnalysisSecurityGroupRule&& value) { m_securityGroupRuleHasBeenSet = true; m_securityGroupRule = std::move(value); } /** *

The security group rule.

*/ inline PathComponent& WithSecurityGroupRule(const AnalysisSecurityGroupRule& value) { SetSecurityGroupRule(value); return *this;} /** *

The security group rule.

*/ inline PathComponent& WithSecurityGroupRule(AnalysisSecurityGroupRule&& value) { SetSecurityGroupRule(std::move(value)); return *this;} /** *

The source VPC.

*/ inline const AnalysisComponent& GetSourceVpc() const{ return m_sourceVpc; } /** *

The source VPC.

*/ inline bool SourceVpcHasBeenSet() const { return m_sourceVpcHasBeenSet; } /** *

The source VPC.

*/ inline void SetSourceVpc(const AnalysisComponent& value) { m_sourceVpcHasBeenSet = true; m_sourceVpc = value; } /** *

The source VPC.

*/ inline void SetSourceVpc(AnalysisComponent&& value) { m_sourceVpcHasBeenSet = true; m_sourceVpc = std::move(value); } /** *

The source VPC.

*/ inline PathComponent& WithSourceVpc(const AnalysisComponent& value) { SetSourceVpc(value); return *this;} /** *

The source VPC.

*/ inline PathComponent& WithSourceVpc(AnalysisComponent&& value) { SetSourceVpc(std::move(value)); return *this;} /** *

The subnet.

*/ inline const AnalysisComponent& GetSubnet() const{ return m_subnet; } /** *

The subnet.

*/ inline bool SubnetHasBeenSet() const { return m_subnetHasBeenSet; } /** *

The subnet.

*/ inline void SetSubnet(const AnalysisComponent& value) { m_subnetHasBeenSet = true; m_subnet = value; } /** *

The subnet.

*/ inline void SetSubnet(AnalysisComponent&& value) { m_subnetHasBeenSet = true; m_subnet = std::move(value); } /** *

The subnet.

*/ inline PathComponent& WithSubnet(const AnalysisComponent& value) { SetSubnet(value); return *this;} /** *

The subnet.

*/ inline PathComponent& WithSubnet(AnalysisComponent&& value) { SetSubnet(std::move(value)); return *this;} /** *

The component VPC.

*/ inline const AnalysisComponent& GetVpc() const{ return m_vpc; } /** *

The component VPC.

*/ inline bool VpcHasBeenSet() const { return m_vpcHasBeenSet; } /** *

The component VPC.

*/ inline void SetVpc(const AnalysisComponent& value) { m_vpcHasBeenSet = true; m_vpc = value; } /** *

The component VPC.

*/ inline void SetVpc(AnalysisComponent&& value) { m_vpcHasBeenSet = true; m_vpc = std::move(value); } /** *

The component VPC.

*/ inline PathComponent& WithVpc(const AnalysisComponent& value) { SetVpc(value); return *this;} /** *

The component VPC.

*/ inline PathComponent& WithVpc(AnalysisComponent&& value) { SetVpc(std::move(value)); return *this;} /** *

The additional details.

*/ inline const Aws::Vector& GetAdditionalDetails() const{ return m_additionalDetails; } /** *

The additional details.

*/ inline bool AdditionalDetailsHasBeenSet() const { return m_additionalDetailsHasBeenSet; } /** *

The additional details.

*/ inline void SetAdditionalDetails(const Aws::Vector& value) { m_additionalDetailsHasBeenSet = true; m_additionalDetails = value; } /** *

The additional details.

*/ inline void SetAdditionalDetails(Aws::Vector&& value) { m_additionalDetailsHasBeenSet = true; m_additionalDetails = std::move(value); } /** *

The additional details.

*/ inline PathComponent& WithAdditionalDetails(const Aws::Vector& value) { SetAdditionalDetails(value); return *this;} /** *

The additional details.

*/ inline PathComponent& WithAdditionalDetails(Aws::Vector&& value) { SetAdditionalDetails(std::move(value)); return *this;} /** *

The additional details.

*/ inline PathComponent& AddAdditionalDetails(const AdditionalDetail& value) { m_additionalDetailsHasBeenSet = true; m_additionalDetails.push_back(value); return *this; } /** *

The additional details.

*/ inline PathComponent& AddAdditionalDetails(AdditionalDetail&& value) { m_additionalDetailsHasBeenSet = true; m_additionalDetails.push_back(std::move(value)); return *this; } /** *

The transit gateway.

*/ inline const AnalysisComponent& GetTransitGateway() const{ return m_transitGateway; } /** *

The transit gateway.

*/ inline bool TransitGatewayHasBeenSet() const { return m_transitGatewayHasBeenSet; } /** *

The transit gateway.

*/ inline void SetTransitGateway(const AnalysisComponent& value) { m_transitGatewayHasBeenSet = true; m_transitGateway = value; } /** *

The transit gateway.

*/ inline void SetTransitGateway(AnalysisComponent&& value) { m_transitGatewayHasBeenSet = true; m_transitGateway = std::move(value); } /** *

The transit gateway.

*/ inline PathComponent& WithTransitGateway(const AnalysisComponent& value) { SetTransitGateway(value); return *this;} /** *

The transit gateway.

*/ inline PathComponent& WithTransitGateway(AnalysisComponent&& value) { SetTransitGateway(std::move(value)); return *this;} /** *

The route in a transit gateway route table.

*/ inline const TransitGatewayRouteTableRoute& GetTransitGatewayRouteTableRoute() const{ return m_transitGatewayRouteTableRoute; } /** *

The route in a transit gateway route table.

*/ inline bool TransitGatewayRouteTableRouteHasBeenSet() const { return m_transitGatewayRouteTableRouteHasBeenSet; } /** *

The route in a transit gateway route table.

*/ inline void SetTransitGatewayRouteTableRoute(const TransitGatewayRouteTableRoute& value) { m_transitGatewayRouteTableRouteHasBeenSet = true; m_transitGatewayRouteTableRoute = value; } /** *

The route in a transit gateway route table.

*/ inline void SetTransitGatewayRouteTableRoute(TransitGatewayRouteTableRoute&& value) { m_transitGatewayRouteTableRouteHasBeenSet = true; m_transitGatewayRouteTableRoute = std::move(value); } /** *

The route in a transit gateway route table.

*/ inline PathComponent& WithTransitGatewayRouteTableRoute(const TransitGatewayRouteTableRoute& value) { SetTransitGatewayRouteTableRoute(value); return *this;} /** *

The route in a transit gateway route table.

*/ inline PathComponent& WithTransitGatewayRouteTableRoute(TransitGatewayRouteTableRoute&& value) { SetTransitGatewayRouteTableRoute(std::move(value)); return *this;} /** *

The explanation codes.

*/ inline const Aws::Vector& GetExplanations() const{ return m_explanations; } /** *

The explanation codes.

*/ inline bool ExplanationsHasBeenSet() const { return m_explanationsHasBeenSet; } /** *

The explanation codes.

*/ inline void SetExplanations(const Aws::Vector& value) { m_explanationsHasBeenSet = true; m_explanations = value; } /** *

The explanation codes.

*/ inline void SetExplanations(Aws::Vector&& value) { m_explanationsHasBeenSet = true; m_explanations = std::move(value); } /** *

The explanation codes.

*/ inline PathComponent& WithExplanations(const Aws::Vector& value) { SetExplanations(value); return *this;} /** *

The explanation codes.

*/ inline PathComponent& WithExplanations(Aws::Vector&& value) { SetExplanations(std::move(value)); return *this;} /** *

The explanation codes.

*/ inline PathComponent& AddExplanations(const Explanation& value) { m_explanationsHasBeenSet = true; m_explanations.push_back(value); return *this; } /** *

The explanation codes.

*/ inline PathComponent& AddExplanations(Explanation&& value) { m_explanationsHasBeenSet = true; m_explanations.push_back(std::move(value)); return *this; } /** *

The load balancer listener.

*/ inline const AnalysisComponent& GetElasticLoadBalancerListener() const{ return m_elasticLoadBalancerListener; } /** *

The load balancer listener.

*/ inline bool ElasticLoadBalancerListenerHasBeenSet() const { return m_elasticLoadBalancerListenerHasBeenSet; } /** *

The load balancer listener.

*/ inline void SetElasticLoadBalancerListener(const AnalysisComponent& value) { m_elasticLoadBalancerListenerHasBeenSet = true; m_elasticLoadBalancerListener = value; } /** *

The load balancer listener.

*/ inline void SetElasticLoadBalancerListener(AnalysisComponent&& value) { m_elasticLoadBalancerListenerHasBeenSet = true; m_elasticLoadBalancerListener = std::move(value); } /** *

The load balancer listener.

*/ inline PathComponent& WithElasticLoadBalancerListener(const AnalysisComponent& value) { SetElasticLoadBalancerListener(value); return *this;} /** *

The load balancer listener.

*/ inline PathComponent& WithElasticLoadBalancerListener(AnalysisComponent&& value) { SetElasticLoadBalancerListener(std::move(value)); return *this;} /** *

The Network Firewall stateless rule.

*/ inline const FirewallStatelessRule& GetFirewallStatelessRule() const{ return m_firewallStatelessRule; } /** *

The Network Firewall stateless rule.

*/ inline bool FirewallStatelessRuleHasBeenSet() const { return m_firewallStatelessRuleHasBeenSet; } /** *

The Network Firewall stateless rule.

*/ inline void SetFirewallStatelessRule(const FirewallStatelessRule& value) { m_firewallStatelessRuleHasBeenSet = true; m_firewallStatelessRule = value; } /** *

The Network Firewall stateless rule.

*/ inline void SetFirewallStatelessRule(FirewallStatelessRule&& value) { m_firewallStatelessRuleHasBeenSet = true; m_firewallStatelessRule = std::move(value); } /** *

The Network Firewall stateless rule.

*/ inline PathComponent& WithFirewallStatelessRule(const FirewallStatelessRule& value) { SetFirewallStatelessRule(value); return *this;} /** *

The Network Firewall stateless rule.

*/ inline PathComponent& WithFirewallStatelessRule(FirewallStatelessRule&& value) { SetFirewallStatelessRule(std::move(value)); return *this;} /** *

The Network Firewall stateful rule.

*/ inline const FirewallStatefulRule& GetFirewallStatefulRule() const{ return m_firewallStatefulRule; } /** *

The Network Firewall stateful rule.

*/ inline bool FirewallStatefulRuleHasBeenSet() const { return m_firewallStatefulRuleHasBeenSet; } /** *

The Network Firewall stateful rule.

*/ inline void SetFirewallStatefulRule(const FirewallStatefulRule& value) { m_firewallStatefulRuleHasBeenSet = true; m_firewallStatefulRule = value; } /** *

The Network Firewall stateful rule.

*/ inline void SetFirewallStatefulRule(FirewallStatefulRule&& value) { m_firewallStatefulRuleHasBeenSet = true; m_firewallStatefulRule = std::move(value); } /** *

The Network Firewall stateful rule.

*/ inline PathComponent& WithFirewallStatefulRule(const FirewallStatefulRule& value) { SetFirewallStatefulRule(value); return *this;} /** *

The Network Firewall stateful rule.

*/ inline PathComponent& WithFirewallStatefulRule(FirewallStatefulRule&& value) { SetFirewallStatefulRule(std::move(value)); return *this;} /** *

The name of the VPC endpoint service.

*/ inline const Aws::String& GetServiceName() const{ return m_serviceName; } /** *

The name of the VPC endpoint service.

*/ inline bool ServiceNameHasBeenSet() const { return m_serviceNameHasBeenSet; } /** *

The name of the VPC endpoint service.

*/ inline void SetServiceName(const Aws::String& value) { m_serviceNameHasBeenSet = true; m_serviceName = value; } /** *

The name of the VPC endpoint service.

*/ inline void SetServiceName(Aws::String&& value) { m_serviceNameHasBeenSet = true; m_serviceName = std::move(value); } /** *

The name of the VPC endpoint service.

*/ inline void SetServiceName(const char* value) { m_serviceNameHasBeenSet = true; m_serviceName.assign(value); } /** *

The name of the VPC endpoint service.

*/ inline PathComponent& WithServiceName(const Aws::String& value) { SetServiceName(value); return *this;} /** *

The name of the VPC endpoint service.

*/ inline PathComponent& WithServiceName(Aws::String&& value) { SetServiceName(std::move(value)); return *this;} /** *

The name of the VPC endpoint service.

*/ inline PathComponent& WithServiceName(const char* value) { SetServiceName(value); return *this;} private: int m_sequenceNumber; bool m_sequenceNumberHasBeenSet = false; AnalysisAclRule m_aclRule; bool m_aclRuleHasBeenSet = false; AnalysisComponent m_attachedTo; bool m_attachedToHasBeenSet = false; AnalysisComponent m_component; bool m_componentHasBeenSet = false; AnalysisComponent m_destinationVpc; bool m_destinationVpcHasBeenSet = false; AnalysisPacketHeader m_outboundHeader; bool m_outboundHeaderHasBeenSet = false; AnalysisPacketHeader m_inboundHeader; bool m_inboundHeaderHasBeenSet = false; AnalysisRouteTableRoute m_routeTableRoute; bool m_routeTableRouteHasBeenSet = false; AnalysisSecurityGroupRule m_securityGroupRule; bool m_securityGroupRuleHasBeenSet = false; AnalysisComponent m_sourceVpc; bool m_sourceVpcHasBeenSet = false; AnalysisComponent m_subnet; bool m_subnetHasBeenSet = false; AnalysisComponent m_vpc; bool m_vpcHasBeenSet = false; Aws::Vector m_additionalDetails; bool m_additionalDetailsHasBeenSet = false; AnalysisComponent m_transitGateway; bool m_transitGatewayHasBeenSet = false; TransitGatewayRouteTableRoute m_transitGatewayRouteTableRoute; bool m_transitGatewayRouteTableRouteHasBeenSet = false; Aws::Vector m_explanations; bool m_explanationsHasBeenSet = false; AnalysisComponent m_elasticLoadBalancerListener; bool m_elasticLoadBalancerListenerHasBeenSet = false; FirewallStatelessRule m_firewallStatelessRule; bool m_firewallStatelessRuleHasBeenSet = false; FirewallStatefulRule m_firewallStatefulRule; bool m_firewallStatefulRuleHasBeenSet = false; Aws::String m_serviceName; bool m_serviceNameHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws