/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace GlobalAccelerator { namespace Model { /** *

Returns the ports and associated IP addresses and ports of Amazon EC2 * instances in your virtual private cloud (VPC) subnets. Custom routing is a port * mapping protocol in Global Accelerator that statically associates port ranges * with VPC subnets, which allows Global Accelerator to route to specific instances * and ports within one or more subnets.

See Also:

AWS * API Reference

*/ class PortMapping { public: AWS_GLOBALACCELERATOR_API PortMapping(); AWS_GLOBALACCELERATOR_API PortMapping(Aws::Utils::Json::JsonView jsonValue); AWS_GLOBALACCELERATOR_API PortMapping& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_GLOBALACCELERATOR_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The accelerator port.

*/ inline int GetAcceleratorPort() const{ return m_acceleratorPort; } /** *

The accelerator port.

*/ inline bool AcceleratorPortHasBeenSet() const { return m_acceleratorPortHasBeenSet; } /** *

The accelerator port.

*/ inline void SetAcceleratorPort(int value) { m_acceleratorPortHasBeenSet = true; m_acceleratorPort = value; } /** *

The accelerator port.

*/ inline PortMapping& WithAcceleratorPort(int value) { SetAcceleratorPort(value); return *this;} /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline const Aws::String& GetEndpointGroupArn() const{ return m_endpointGroupArn; } /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline bool EndpointGroupArnHasBeenSet() const { return m_endpointGroupArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline void SetEndpointGroupArn(const Aws::String& value) { m_endpointGroupArnHasBeenSet = true; m_endpointGroupArn = value; } /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline void SetEndpointGroupArn(Aws::String&& value) { m_endpointGroupArnHasBeenSet = true; m_endpointGroupArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline void SetEndpointGroupArn(const char* value) { m_endpointGroupArnHasBeenSet = true; m_endpointGroupArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline PortMapping& WithEndpointGroupArn(const Aws::String& value) { SetEndpointGroupArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline PortMapping& WithEndpointGroupArn(Aws::String&& value) { SetEndpointGroupArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline PortMapping& WithEndpointGroupArn(const char* value) { SetEndpointGroupArn(value); return *this;} /** *

The IP address of the VPC subnet (the subnet ID).

*/ inline const Aws::String& GetEndpointId() const{ return m_endpointId; } /** *

The IP address of the VPC subnet (the subnet ID).

*/ inline bool EndpointIdHasBeenSet() const { return m_endpointIdHasBeenSet; } /** *

The IP address of the VPC subnet (the subnet ID).

*/ inline void SetEndpointId(const Aws::String& value) { m_endpointIdHasBeenSet = true; m_endpointId = value; } /** *

The IP address of the VPC subnet (the subnet ID).

*/ inline void SetEndpointId(Aws::String&& value) { m_endpointIdHasBeenSet = true; m_endpointId = std::move(value); } /** *

The IP address of the VPC subnet (the subnet ID).

*/ inline void SetEndpointId(const char* value) { m_endpointIdHasBeenSet = true; m_endpointId.assign(value); } /** *

The IP address of the VPC subnet (the subnet ID).

*/ inline PortMapping& WithEndpointId(const Aws::String& value) { SetEndpointId(value); return *this;} /** *

The IP address of the VPC subnet (the subnet ID).

*/ inline PortMapping& WithEndpointId(Aws::String&& value) { SetEndpointId(std::move(value)); return *this;} /** *

The IP address of the VPC subnet (the subnet ID).

*/ inline PortMapping& WithEndpointId(const char* value) { SetEndpointId(value); return *this;} /** *

The EC2 instance IP address and port number in the virtual private cloud * (VPC) subnet.

*/ inline const SocketAddress& GetDestinationSocketAddress() const{ return m_destinationSocketAddress; } /** *

The EC2 instance IP address and port number in the virtual private cloud * (VPC) subnet.

*/ inline bool DestinationSocketAddressHasBeenSet() const { return m_destinationSocketAddressHasBeenSet; } /** *

The EC2 instance IP address and port number in the virtual private cloud * (VPC) subnet.

*/ inline void SetDestinationSocketAddress(const SocketAddress& value) { m_destinationSocketAddressHasBeenSet = true; m_destinationSocketAddress = value; } /** *

The EC2 instance IP address and port number in the virtual private cloud * (VPC) subnet.

*/ inline void SetDestinationSocketAddress(SocketAddress&& value) { m_destinationSocketAddressHasBeenSet = true; m_destinationSocketAddress = std::move(value); } /** *

The EC2 instance IP address and port number in the virtual private cloud * (VPC) subnet.

*/ inline PortMapping& WithDestinationSocketAddress(const SocketAddress& value) { SetDestinationSocketAddress(value); return *this;} /** *

The EC2 instance IP address and port number in the virtual private cloud * (VPC) subnet.

*/ inline PortMapping& WithDestinationSocketAddress(SocketAddress&& value) { SetDestinationSocketAddress(std::move(value)); return *this;} /** *

The protocols supported by the endpoint group.

*/ inline const Aws::Vector& GetProtocols() const{ return m_protocols; } /** *

The protocols supported by the endpoint group.

*/ inline bool ProtocolsHasBeenSet() const { return m_protocolsHasBeenSet; } /** *

The protocols supported by the endpoint group.

*/ inline void SetProtocols(const Aws::Vector& value) { m_protocolsHasBeenSet = true; m_protocols = value; } /** *

The protocols supported by the endpoint group.

*/ inline void SetProtocols(Aws::Vector&& value) { m_protocolsHasBeenSet = true; m_protocols = std::move(value); } /** *

The protocols supported by the endpoint group.

*/ inline PortMapping& WithProtocols(const Aws::Vector& value) { SetProtocols(value); return *this;} /** *

The protocols supported by the endpoint group.

*/ inline PortMapping& WithProtocols(Aws::Vector&& value) { SetProtocols(std::move(value)); return *this;} /** *

The protocols supported by the endpoint group.

*/ inline PortMapping& AddProtocols(const CustomRoutingProtocol& value) { m_protocolsHasBeenSet = true; m_protocols.push_back(value); return *this; } /** *

The protocols supported by the endpoint group.

*/ inline PortMapping& AddProtocols(CustomRoutingProtocol&& value) { m_protocolsHasBeenSet = true; m_protocols.push_back(std::move(value)); return *this; } /** *

Indicates whether or not a port mapping destination can receive traffic. The * value is either ALLOW, if traffic is allowed to the destination, or DENY, if * traffic is not allowed to the destination.

*/ inline const CustomRoutingDestinationTrafficState& GetDestinationTrafficState() const{ return m_destinationTrafficState; } /** *

Indicates whether or not a port mapping destination can receive traffic. The * value is either ALLOW, if traffic is allowed to the destination, or DENY, if * traffic is not allowed to the destination.

*/ inline bool DestinationTrafficStateHasBeenSet() const { return m_destinationTrafficStateHasBeenSet; } /** *

Indicates whether or not a port mapping destination can receive traffic. The * value is either ALLOW, if traffic is allowed to the destination, or DENY, if * traffic is not allowed to the destination.

*/ inline void SetDestinationTrafficState(const CustomRoutingDestinationTrafficState& value) { m_destinationTrafficStateHasBeenSet = true; m_destinationTrafficState = value; } /** *

Indicates whether or not a port mapping destination can receive traffic. The * value is either ALLOW, if traffic is allowed to the destination, or DENY, if * traffic is not allowed to the destination.

*/ inline void SetDestinationTrafficState(CustomRoutingDestinationTrafficState&& value) { m_destinationTrafficStateHasBeenSet = true; m_destinationTrafficState = std::move(value); } /** *

Indicates whether or not a port mapping destination can receive traffic. The * value is either ALLOW, if traffic is allowed to the destination, or DENY, if * traffic is not allowed to the destination.

*/ inline PortMapping& WithDestinationTrafficState(const CustomRoutingDestinationTrafficState& value) { SetDestinationTrafficState(value); return *this;} /** *

Indicates whether or not a port mapping destination can receive traffic. The * value is either ALLOW, if traffic is allowed to the destination, or DENY, if * traffic is not allowed to the destination.

*/ inline PortMapping& WithDestinationTrafficState(CustomRoutingDestinationTrafficState&& value) { SetDestinationTrafficState(std::move(value)); return *this;} private: int m_acceleratorPort; bool m_acceleratorPortHasBeenSet = false; Aws::String m_endpointGroupArn; bool m_endpointGroupArnHasBeenSet = false; Aws::String m_endpointId; bool m_endpointIdHasBeenSet = false; SocketAddress m_destinationSocketAddress; bool m_destinationSocketAddressHasBeenSet = false; Aws::Vector m_protocols; bool m_protocolsHasBeenSet = false; CustomRoutingDestinationTrafficState m_destinationTrafficState; bool m_destinationTrafficStateHasBeenSet = false; }; } // namespace Model } // namespace GlobalAccelerator } // namespace Aws