/** * 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 Lightsail { namespace Model { /** *

Describes information about ports for an Amazon Lightsail * instance.

See Also:

AWS * API Reference

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

The first port in a range of open ports on an instance.

Allowed * ports:

  • TCP and UDP - 0 to 65535

    *
  • ICMP - The ICMP type for IPv4 addresses. For example, specify * 8 as the fromPort (ICMP type), and -1 as * the toPort (ICMP code), to enable ICMP Ping. For more information, * see Control * Messages on Wikipedia.

  • ICMPv6 - The ICMP type for * IPv6 addresses. For example, specify 128 as the * fromPort (ICMPv6 type), and 0 as toPort * (ICMPv6 code). For more information, see Internet * Control Message Protocol for IPv6.

*/ inline int GetFromPort() const{ return m_fromPort; } /** *

The first port in a range of open ports on an instance.

Allowed * ports:

  • TCP and UDP - 0 to 65535

    *
  • ICMP - The ICMP type for IPv4 addresses. For example, specify * 8 as the fromPort (ICMP type), and -1 as * the toPort (ICMP code), to enable ICMP Ping. For more information, * see Control * Messages on Wikipedia.

  • ICMPv6 - The ICMP type for * IPv6 addresses. For example, specify 128 as the * fromPort (ICMPv6 type), and 0 as toPort * (ICMPv6 code). For more information, see Internet * Control Message Protocol for IPv6.

*/ inline bool FromPortHasBeenSet() const { return m_fromPortHasBeenSet; } /** *

The first port in a range of open ports on an instance.

Allowed * ports:

  • TCP and UDP - 0 to 65535

    *
  • ICMP - The ICMP type for IPv4 addresses. For example, specify * 8 as the fromPort (ICMP type), and -1 as * the toPort (ICMP code), to enable ICMP Ping. For more information, * see Control * Messages on Wikipedia.

  • ICMPv6 - The ICMP type for * IPv6 addresses. For example, specify 128 as the * fromPort (ICMPv6 type), and 0 as toPort * (ICMPv6 code). For more information, see Internet * Control Message Protocol for IPv6.

*/ inline void SetFromPort(int value) { m_fromPortHasBeenSet = true; m_fromPort = value; } /** *

The first port in a range of open ports on an instance.

Allowed * ports:

  • TCP and UDP - 0 to 65535

    *
  • ICMP - The ICMP type for IPv4 addresses. For example, specify * 8 as the fromPort (ICMP type), and -1 as * the toPort (ICMP code), to enable ICMP Ping. For more information, * see Control * Messages on Wikipedia.

  • ICMPv6 - The ICMP type for * IPv6 addresses. For example, specify 128 as the * fromPort (ICMPv6 type), and 0 as toPort * (ICMPv6 code). For more information, see Internet * Control Message Protocol for IPv6.

*/ inline InstancePortInfo& WithFromPort(int value) { SetFromPort(value); return *this;} /** *

The last port in a range of open ports on an instance.

Allowed * ports:

  • TCP and UDP - 0 to 65535

    *
  • ICMP - The ICMP code for IPv4 addresses. For example, specify * 8 as the fromPort (ICMP type), and -1 as * the toPort (ICMP code), to enable ICMP Ping. For more information, * see Control * Messages on Wikipedia.

  • ICMPv6 - The ICMP code for * IPv6 addresses. For example, specify 128 as the * fromPort (ICMPv6 type), and 0 as toPort * (ICMPv6 code). For more information, see Internet * Control Message Protocol for IPv6.

*/ inline int GetToPort() const{ return m_toPort; } /** *

The last port in a range of open ports on an instance.

Allowed * ports:

  • TCP and UDP - 0 to 65535

    *
  • ICMP - The ICMP code for IPv4 addresses. For example, specify * 8 as the fromPort (ICMP type), and -1 as * the toPort (ICMP code), to enable ICMP Ping. For more information, * see Control * Messages on Wikipedia.

  • ICMPv6 - The ICMP code for * IPv6 addresses. For example, specify 128 as the * fromPort (ICMPv6 type), and 0 as toPort * (ICMPv6 code). For more information, see Internet * Control Message Protocol for IPv6.

*/ inline bool ToPortHasBeenSet() const { return m_toPortHasBeenSet; } /** *

The last port in a range of open ports on an instance.

Allowed * ports:

  • TCP and UDP - 0 to 65535

    *
  • ICMP - The ICMP code for IPv4 addresses. For example, specify * 8 as the fromPort (ICMP type), and -1 as * the toPort (ICMP code), to enable ICMP Ping. For more information, * see Control * Messages on Wikipedia.

  • ICMPv6 - The ICMP code for * IPv6 addresses. For example, specify 128 as the * fromPort (ICMPv6 type), and 0 as toPort * (ICMPv6 code). For more information, see Internet * Control Message Protocol for IPv6.

*/ inline void SetToPort(int value) { m_toPortHasBeenSet = true; m_toPort = value; } /** *

The last port in a range of open ports on an instance.

Allowed * ports:

  • TCP and UDP - 0 to 65535

    *
  • ICMP - The ICMP code for IPv4 addresses. For example, specify * 8 as the fromPort (ICMP type), and -1 as * the toPort (ICMP code), to enable ICMP Ping. For more information, * see Control * Messages on Wikipedia.

  • ICMPv6 - The ICMP code for * IPv6 addresses. For example, specify 128 as the * fromPort (ICMPv6 type), and 0 as toPort * (ICMPv6 code). For more information, see Internet * Control Message Protocol for IPv6.

*/ inline InstancePortInfo& WithToPort(int value) { SetToPort(value); return *this;} /** *

The IP protocol name.

The name can be one of the following:

    *
  • tcp - Transmission Control Protocol (TCP) provides * reliable, ordered, and error-checked delivery of streamed data between * applications running on hosts communicating by an IP network. If you have an * application that doesn't require reliable data stream service, use UDP * instead.

  • all - All transport layer protocol * types. For more general information, see Transport layer on * Wikipedia.

  • udp - With User Datagram * Protocol (UDP), computer applications can send messages (or datagrams) to other * hosts on an Internet Protocol (IP) network. Prior communications are not * required to set up transmission channels or data paths. Applications that don't * require reliable data stream service can use UDP, which provides a * connectionless datagram service that emphasizes reduced latency over * reliability. If you do require reliable data stream service, use TCP * instead.

  • icmp - Internet Control Message * Protocol (ICMP) is used to send error messages and operational information * indicating success or failure when communicating with an instance. For example, * an error is indicated when an instance could not be reached. When you specify * icmp as the protocol, you must specify the ICMP type * using the fromPort parameter, and ICMP code using the * toPort parameter.

*/ inline const NetworkProtocol& GetProtocol() const{ return m_protocol; } /** *

The IP protocol name.

The name can be one of the following:

    *
  • tcp - Transmission Control Protocol (TCP) provides * reliable, ordered, and error-checked delivery of streamed data between * applications running on hosts communicating by an IP network. If you have an * application that doesn't require reliable data stream service, use UDP * instead.

  • all - All transport layer protocol * types. For more general information, see Transport layer on * Wikipedia.

  • udp - With User Datagram * Protocol (UDP), computer applications can send messages (or datagrams) to other * hosts on an Internet Protocol (IP) network. Prior communications are not * required to set up transmission channels or data paths. Applications that don't * require reliable data stream service can use UDP, which provides a * connectionless datagram service that emphasizes reduced latency over * reliability. If you do require reliable data stream service, use TCP * instead.

  • icmp - Internet Control Message * Protocol (ICMP) is used to send error messages and operational information * indicating success or failure when communicating with an instance. For example, * an error is indicated when an instance could not be reached. When you specify * icmp as the protocol, you must specify the ICMP type * using the fromPort parameter, and ICMP code using the * toPort parameter.

*/ inline bool ProtocolHasBeenSet() const { return m_protocolHasBeenSet; } /** *

The IP protocol name.

The name can be one of the following:

    *
  • tcp - Transmission Control Protocol (TCP) provides * reliable, ordered, and error-checked delivery of streamed data between * applications running on hosts communicating by an IP network. If you have an * application that doesn't require reliable data stream service, use UDP * instead.

  • all - All transport layer protocol * types. For more general information, see Transport layer on * Wikipedia.

  • udp - With User Datagram * Protocol (UDP), computer applications can send messages (or datagrams) to other * hosts on an Internet Protocol (IP) network. Prior communications are not * required to set up transmission channels or data paths. Applications that don't * require reliable data stream service can use UDP, which provides a * connectionless datagram service that emphasizes reduced latency over * reliability. If you do require reliable data stream service, use TCP * instead.

  • icmp - Internet Control Message * Protocol (ICMP) is used to send error messages and operational information * indicating success or failure when communicating with an instance. For example, * an error is indicated when an instance could not be reached. When you specify * icmp as the protocol, you must specify the ICMP type * using the fromPort parameter, and ICMP code using the * toPort parameter.

*/ inline void SetProtocol(const NetworkProtocol& value) { m_protocolHasBeenSet = true; m_protocol = value; } /** *

The IP protocol name.

The name can be one of the following:

    *
  • tcp - Transmission Control Protocol (TCP) provides * reliable, ordered, and error-checked delivery of streamed data between * applications running on hosts communicating by an IP network. If you have an * application that doesn't require reliable data stream service, use UDP * instead.

  • all - All transport layer protocol * types. For more general information, see Transport layer on * Wikipedia.

  • udp - With User Datagram * Protocol (UDP), computer applications can send messages (or datagrams) to other * hosts on an Internet Protocol (IP) network. Prior communications are not * required to set up transmission channels or data paths. Applications that don't * require reliable data stream service can use UDP, which provides a * connectionless datagram service that emphasizes reduced latency over * reliability. If you do require reliable data stream service, use TCP * instead.

  • icmp - Internet Control Message * Protocol (ICMP) is used to send error messages and operational information * indicating success or failure when communicating with an instance. For example, * an error is indicated when an instance could not be reached. When you specify * icmp as the protocol, you must specify the ICMP type * using the fromPort parameter, and ICMP code using the * toPort parameter.

*/ inline void SetProtocol(NetworkProtocol&& value) { m_protocolHasBeenSet = true; m_protocol = std::move(value); } /** *

The IP protocol name.

The name can be one of the following:

    *
  • tcp - Transmission Control Protocol (TCP) provides * reliable, ordered, and error-checked delivery of streamed data between * applications running on hosts communicating by an IP network. If you have an * application that doesn't require reliable data stream service, use UDP * instead.

  • all - All transport layer protocol * types. For more general information, see Transport layer on * Wikipedia.

  • udp - With User Datagram * Protocol (UDP), computer applications can send messages (or datagrams) to other * hosts on an Internet Protocol (IP) network. Prior communications are not * required to set up transmission channels or data paths. Applications that don't * require reliable data stream service can use UDP, which provides a * connectionless datagram service that emphasizes reduced latency over * reliability. If you do require reliable data stream service, use TCP * instead.

  • icmp - Internet Control Message * Protocol (ICMP) is used to send error messages and operational information * indicating success or failure when communicating with an instance. For example, * an error is indicated when an instance could not be reached. When you specify * icmp as the protocol, you must specify the ICMP type * using the fromPort parameter, and ICMP code using the * toPort parameter.

*/ inline InstancePortInfo& WithProtocol(const NetworkProtocol& value) { SetProtocol(value); return *this;} /** *

The IP protocol name.

The name can be one of the following:

    *
  • tcp - Transmission Control Protocol (TCP) provides * reliable, ordered, and error-checked delivery of streamed data between * applications running on hosts communicating by an IP network. If you have an * application that doesn't require reliable data stream service, use UDP * instead.

  • all - All transport layer protocol * types. For more general information, see Transport layer on * Wikipedia.

  • udp - With User Datagram * Protocol (UDP), computer applications can send messages (or datagrams) to other * hosts on an Internet Protocol (IP) network. Prior communications are not * required to set up transmission channels or data paths. Applications that don't * require reliable data stream service can use UDP, which provides a * connectionless datagram service that emphasizes reduced latency over * reliability. If you do require reliable data stream service, use TCP * instead.

  • icmp - Internet Control Message * Protocol (ICMP) is used to send error messages and operational information * indicating success or failure when communicating with an instance. For example, * an error is indicated when an instance could not be reached. When you specify * icmp as the protocol, you must specify the ICMP type * using the fromPort parameter, and ICMP code using the * toPort parameter.

*/ inline InstancePortInfo& WithProtocol(NetworkProtocol&& value) { SetProtocol(std::move(value)); return *this;} /** *

The location from which access is allowed. For example, Anywhere * (0.0.0.0/0), or Custom if a specific IP address or range of * IP addresses is allowed.

*/ inline const Aws::String& GetAccessFrom() const{ return m_accessFrom; } /** *

The location from which access is allowed. For example, Anywhere * (0.0.0.0/0), or Custom if a specific IP address or range of * IP addresses is allowed.

*/ inline bool AccessFromHasBeenSet() const { return m_accessFromHasBeenSet; } /** *

The location from which access is allowed. For example, Anywhere * (0.0.0.0/0), or Custom if a specific IP address or range of * IP addresses is allowed.

*/ inline void SetAccessFrom(const Aws::String& value) { m_accessFromHasBeenSet = true; m_accessFrom = value; } /** *

The location from which access is allowed. For example, Anywhere * (0.0.0.0/0), or Custom if a specific IP address or range of * IP addresses is allowed.

*/ inline void SetAccessFrom(Aws::String&& value) { m_accessFromHasBeenSet = true; m_accessFrom = std::move(value); } /** *

The location from which access is allowed. For example, Anywhere * (0.0.0.0/0), or Custom if a specific IP address or range of * IP addresses is allowed.

*/ inline void SetAccessFrom(const char* value) { m_accessFromHasBeenSet = true; m_accessFrom.assign(value); } /** *

The location from which access is allowed. For example, Anywhere * (0.0.0.0/0), or Custom if a specific IP address or range of * IP addresses is allowed.

*/ inline InstancePortInfo& WithAccessFrom(const Aws::String& value) { SetAccessFrom(value); return *this;} /** *

The location from which access is allowed. For example, Anywhere * (0.0.0.0/0), or Custom if a specific IP address or range of * IP addresses is allowed.

*/ inline InstancePortInfo& WithAccessFrom(Aws::String&& value) { SetAccessFrom(std::move(value)); return *this;} /** *

The location from which access is allowed. For example, Anywhere * (0.0.0.0/0), or Custom if a specific IP address or range of * IP addresses is allowed.

*/ inline InstancePortInfo& WithAccessFrom(const char* value) { SetAccessFrom(value); return *this;} /** *

The type of access (Public or Private).

*/ inline const PortAccessType& GetAccessType() const{ return m_accessType; } /** *

The type of access (Public or Private).

*/ inline bool AccessTypeHasBeenSet() const { return m_accessTypeHasBeenSet; } /** *

The type of access (Public or Private).

*/ inline void SetAccessType(const PortAccessType& value) { m_accessTypeHasBeenSet = true; m_accessType = value; } /** *

The type of access (Public or Private).

*/ inline void SetAccessType(PortAccessType&& value) { m_accessTypeHasBeenSet = true; m_accessType = std::move(value); } /** *

The type of access (Public or Private).

*/ inline InstancePortInfo& WithAccessType(const PortAccessType& value) { SetAccessType(value); return *this;} /** *

The type of access (Public or Private).

*/ inline InstancePortInfo& WithAccessType(PortAccessType&& value) { SetAccessType(std::move(value)); return *this;} /** *

The common name of the port information.

*/ inline const Aws::String& GetCommonName() const{ return m_commonName; } /** *

The common name of the port information.

*/ inline bool CommonNameHasBeenSet() const { return m_commonNameHasBeenSet; } /** *

The common name of the port information.

*/ inline void SetCommonName(const Aws::String& value) { m_commonNameHasBeenSet = true; m_commonName = value; } /** *

The common name of the port information.

*/ inline void SetCommonName(Aws::String&& value) { m_commonNameHasBeenSet = true; m_commonName = std::move(value); } /** *

The common name of the port information.

*/ inline void SetCommonName(const char* value) { m_commonNameHasBeenSet = true; m_commonName.assign(value); } /** *

The common name of the port information.

*/ inline InstancePortInfo& WithCommonName(const Aws::String& value) { SetCommonName(value); return *this;} /** *

The common name of the port information.

*/ inline InstancePortInfo& WithCommonName(Aws::String&& value) { SetCommonName(std::move(value)); return *this;} /** *

The common name of the port information.

*/ inline InstancePortInfo& WithCommonName(const char* value) { SetCommonName(value); return *this;} /** *

The access direction (inbound or outbound).

*

Lightsail currently supports only inbound access * direction.

*/ inline const AccessDirection& GetAccessDirection() const{ return m_accessDirection; } /** *

The access direction (inbound or outbound).

*

Lightsail currently supports only inbound access * direction.

*/ inline bool AccessDirectionHasBeenSet() const { return m_accessDirectionHasBeenSet; } /** *

The access direction (inbound or outbound).

*

Lightsail currently supports only inbound access * direction.

*/ inline void SetAccessDirection(const AccessDirection& value) { m_accessDirectionHasBeenSet = true; m_accessDirection = value; } /** *

The access direction (inbound or outbound).

*

Lightsail currently supports only inbound access * direction.

*/ inline void SetAccessDirection(AccessDirection&& value) { m_accessDirectionHasBeenSet = true; m_accessDirection = std::move(value); } /** *

The access direction (inbound or outbound).

*

Lightsail currently supports only inbound access * direction.

*/ inline InstancePortInfo& WithAccessDirection(const AccessDirection& value) { SetAccessDirection(value); return *this;} /** *

The access direction (inbound or outbound).

*

Lightsail currently supports only inbound access * direction.

*/ inline InstancePortInfo& WithAccessDirection(AccessDirection&& value) { SetAccessDirection(std::move(value)); return *this;} /** *

The IPv4 address, or range of IPv4 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol.

*

The ipv6Cidrs parameter lists the IPv6 addresses that are * allowed to connect to an instance.

For more information about * CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline const Aws::Vector& GetCidrs() const{ return m_cidrs; } /** *

The IPv4 address, or range of IPv4 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol.

*

The ipv6Cidrs parameter lists the IPv6 addresses that are * allowed to connect to an instance.

For more information about * CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline bool CidrsHasBeenSet() const { return m_cidrsHasBeenSet; } /** *

The IPv4 address, or range of IPv4 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol.

*

The ipv6Cidrs parameter lists the IPv6 addresses that are * allowed to connect to an instance.

For more information about * CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline void SetCidrs(const Aws::Vector& value) { m_cidrsHasBeenSet = true; m_cidrs = value; } /** *

The IPv4 address, or range of IPv4 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol.

*

The ipv6Cidrs parameter lists the IPv6 addresses that are * allowed to connect to an instance.

For more information about * CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline void SetCidrs(Aws::Vector&& value) { m_cidrsHasBeenSet = true; m_cidrs = std::move(value); } /** *

The IPv4 address, or range of IPv4 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol.

*

The ipv6Cidrs parameter lists the IPv6 addresses that are * allowed to connect to an instance.

For more information about * CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline InstancePortInfo& WithCidrs(const Aws::Vector& value) { SetCidrs(value); return *this;} /** *

The IPv4 address, or range of IPv4 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol.

*

The ipv6Cidrs parameter lists the IPv6 addresses that are * allowed to connect to an instance.

For more information about * CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline InstancePortInfo& WithCidrs(Aws::Vector&& value) { SetCidrs(std::move(value)); return *this;} /** *

The IPv4 address, or range of IPv4 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol.

*

The ipv6Cidrs parameter lists the IPv6 addresses that are * allowed to connect to an instance.

For more information about * CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline InstancePortInfo& AddCidrs(const Aws::String& value) { m_cidrsHasBeenSet = true; m_cidrs.push_back(value); return *this; } /** *

The IPv4 address, or range of IPv4 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol.

*

The ipv6Cidrs parameter lists the IPv6 addresses that are * allowed to connect to an instance.

For more information about * CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline InstancePortInfo& AddCidrs(Aws::String&& value) { m_cidrsHasBeenSet = true; m_cidrs.push_back(std::move(value)); return *this; } /** *

The IPv4 address, or range of IPv4 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol.

*

The ipv6Cidrs parameter lists the IPv6 addresses that are * allowed to connect to an instance.

For more information about * CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline InstancePortInfo& AddCidrs(const char* value) { m_cidrsHasBeenSet = true; m_cidrs.push_back(value); return *this; } /** *

The IPv6 address, or range of IPv6 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol. Only * devices with an IPv6 address can connect to an instance through IPv6; otherwise, * IPv4 should be used.

The cidrs parameter lists the * IPv4 addresses that are allowed to connect to an instance.

For * more information about CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline const Aws::Vector& GetIpv6Cidrs() const{ return m_ipv6Cidrs; } /** *

The IPv6 address, or range of IPv6 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol. Only * devices with an IPv6 address can connect to an instance through IPv6; otherwise, * IPv4 should be used.

The cidrs parameter lists the * IPv4 addresses that are allowed to connect to an instance.

For * more information about CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline bool Ipv6CidrsHasBeenSet() const { return m_ipv6CidrsHasBeenSet; } /** *

The IPv6 address, or range of IPv6 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol. Only * devices with an IPv6 address can connect to an instance through IPv6; otherwise, * IPv4 should be used.

The cidrs parameter lists the * IPv4 addresses that are allowed to connect to an instance.

For * more information about CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline void SetIpv6Cidrs(const Aws::Vector& value) { m_ipv6CidrsHasBeenSet = true; m_ipv6Cidrs = value; } /** *

The IPv6 address, or range of IPv6 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol. Only * devices with an IPv6 address can connect to an instance through IPv6; otherwise, * IPv4 should be used.

The cidrs parameter lists the * IPv4 addresses that are allowed to connect to an instance.

For * more information about CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline void SetIpv6Cidrs(Aws::Vector&& value) { m_ipv6CidrsHasBeenSet = true; m_ipv6Cidrs = std::move(value); } /** *

The IPv6 address, or range of IPv6 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol. Only * devices with an IPv6 address can connect to an instance through IPv6; otherwise, * IPv4 should be used.

The cidrs parameter lists the * IPv4 addresses that are allowed to connect to an instance.

For * more information about CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline InstancePortInfo& WithIpv6Cidrs(const Aws::Vector& value) { SetIpv6Cidrs(value); return *this;} /** *

The IPv6 address, or range of IPv6 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol. Only * devices with an IPv6 address can connect to an instance through IPv6; otherwise, * IPv4 should be used.

The cidrs parameter lists the * IPv4 addresses that are allowed to connect to an instance.

For * more information about CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline InstancePortInfo& WithIpv6Cidrs(Aws::Vector&& value) { SetIpv6Cidrs(std::move(value)); return *this;} /** *

The IPv6 address, or range of IPv6 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol. Only * devices with an IPv6 address can connect to an instance through IPv6; otherwise, * IPv4 should be used.

The cidrs parameter lists the * IPv4 addresses that are allowed to connect to an instance.

For * more information about CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline InstancePortInfo& AddIpv6Cidrs(const Aws::String& value) { m_ipv6CidrsHasBeenSet = true; m_ipv6Cidrs.push_back(value); return *this; } /** *

The IPv6 address, or range of IPv6 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol. Only * devices with an IPv6 address can connect to an instance through IPv6; otherwise, * IPv4 should be used.

The cidrs parameter lists the * IPv4 addresses that are allowed to connect to an instance.

For * more information about CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline InstancePortInfo& AddIpv6Cidrs(Aws::String&& value) { m_ipv6CidrsHasBeenSet = true; m_ipv6Cidrs.push_back(std::move(value)); return *this; } /** *

The IPv6 address, or range of IPv6 addresses (in CIDR notation) that are * allowed to connect to an instance through the ports, and the protocol. Only * devices with an IPv6 address can connect to an instance through IPv6; otherwise, * IPv4 should be used.

The cidrs parameter lists the * IPv4 addresses that are allowed to connect to an instance.

For * more information about CIDR block notation, see Classless * Inter-Domain Routing on Wikipedia.

*/ inline InstancePortInfo& AddIpv6Cidrs(const char* value) { m_ipv6CidrsHasBeenSet = true; m_ipv6Cidrs.push_back(value); return *this; } /** *

An alias that defines access for a preconfigured range of IP addresses.

*

The only alias currently supported is lightsail-connect, which * allows IP addresses of the browser-based RDP/SSH client in the Lightsail console * to connect to your instance.

*/ inline const Aws::Vector& GetCidrListAliases() const{ return m_cidrListAliases; } /** *

An alias that defines access for a preconfigured range of IP addresses.

*

The only alias currently supported is lightsail-connect, which * allows IP addresses of the browser-based RDP/SSH client in the Lightsail console * to connect to your instance.

*/ inline bool CidrListAliasesHasBeenSet() const { return m_cidrListAliasesHasBeenSet; } /** *

An alias that defines access for a preconfigured range of IP addresses.

*

The only alias currently supported is lightsail-connect, which * allows IP addresses of the browser-based RDP/SSH client in the Lightsail console * to connect to your instance.

*/ inline void SetCidrListAliases(const Aws::Vector& value) { m_cidrListAliasesHasBeenSet = true; m_cidrListAliases = value; } /** *

An alias that defines access for a preconfigured range of IP addresses.

*

The only alias currently supported is lightsail-connect, which * allows IP addresses of the browser-based RDP/SSH client in the Lightsail console * to connect to your instance.

*/ inline void SetCidrListAliases(Aws::Vector&& value) { m_cidrListAliasesHasBeenSet = true; m_cidrListAliases = std::move(value); } /** *

An alias that defines access for a preconfigured range of IP addresses.

*

The only alias currently supported is lightsail-connect, which * allows IP addresses of the browser-based RDP/SSH client in the Lightsail console * to connect to your instance.

*/ inline InstancePortInfo& WithCidrListAliases(const Aws::Vector& value) { SetCidrListAliases(value); return *this;} /** *

An alias that defines access for a preconfigured range of IP addresses.

*

The only alias currently supported is lightsail-connect, which * allows IP addresses of the browser-based RDP/SSH client in the Lightsail console * to connect to your instance.

*/ inline InstancePortInfo& WithCidrListAliases(Aws::Vector&& value) { SetCidrListAliases(std::move(value)); return *this;} /** *

An alias that defines access for a preconfigured range of IP addresses.

*

The only alias currently supported is lightsail-connect, which * allows IP addresses of the browser-based RDP/SSH client in the Lightsail console * to connect to your instance.

*/ inline InstancePortInfo& AddCidrListAliases(const Aws::String& value) { m_cidrListAliasesHasBeenSet = true; m_cidrListAliases.push_back(value); return *this; } /** *

An alias that defines access for a preconfigured range of IP addresses.

*

The only alias currently supported is lightsail-connect, which * allows IP addresses of the browser-based RDP/SSH client in the Lightsail console * to connect to your instance.

*/ inline InstancePortInfo& AddCidrListAliases(Aws::String&& value) { m_cidrListAliasesHasBeenSet = true; m_cidrListAliases.push_back(std::move(value)); return *this; } /** *

An alias that defines access for a preconfigured range of IP addresses.

*

The only alias currently supported is lightsail-connect, which * allows IP addresses of the browser-based RDP/SSH client in the Lightsail console * to connect to your instance.

*/ inline InstancePortInfo& AddCidrListAliases(const char* value) { m_cidrListAliasesHasBeenSet = true; m_cidrListAliases.push_back(value); return *this; } private: int m_fromPort; bool m_fromPortHasBeenSet = false; int m_toPort; bool m_toPortHasBeenSet = false; NetworkProtocol m_protocol; bool m_protocolHasBeenSet = false; Aws::String m_accessFrom; bool m_accessFromHasBeenSet = false; PortAccessType m_accessType; bool m_accessTypeHasBeenSet = false; Aws::String m_commonName; bool m_commonNameHasBeenSet = false; AccessDirection m_accessDirection; bool m_accessDirectionHasBeenSet = false; Aws::Vector m_cidrs; bool m_cidrsHasBeenSet = false; Aws::Vector m_ipv6Cidrs; bool m_ipv6CidrsHasBeenSet = false; Aws::Vector m_cidrListAliases; bool m_cidrListAliasesHasBeenSet = false; }; } // namespace Model } // namespace Lightsail } // namespace Aws