class Aws::Lightsail::Types::PortInfo

Describes ports to open on an instance, the IP addresses allowed to connect to the instance through the ports, and the protocol.

@note When making an API call, you may pass PortInfo

data as a hash:

    {
      from_port: 1,
      to_port: 1,
      protocol: "tcp", # accepts tcp, all, udp, icmp
      cidrs: ["string"],
      ipv6_cidrs: ["string"],
      cidr_list_aliases: ["string"],
    }

@!attribute [rw] from_port

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][1] 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][2].

[1]: https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Control_messages
[2]: https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6
@return [Integer]

@!attribute [rw] to_port

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][1] 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][2].

[1]: https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Control_messages
[2]: https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6
@return [Integer]

@!attribute [rw] 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][1] 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.

[1]: https://en.wikipedia.org/wiki/Transport_layer
@return [String]

@!attribute [rw] 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.

<note markdown="1"> The `ipv6Cidrs` parameter lists the IPv6 addresses that are allowed
to connect to an instance.

 </note>

Examples:

* To allow the IP address `192.0.2.44`, specify `192.0.2.44` or
  `192.0.2.44/32`.

* To allow the IP addresses `192.0.2.0` to `192.0.2.255`, specify
  `192.0.2.0/24`.

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

[1]: https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation
@return [Array<String>]

@!attribute [rw] ipv6_cidrs

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.

<note markdown="1"> The `cidrs` parameter lists the IPv4 addresses that are allowed to
connect to an instance.

 </note>

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

[1]: https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation
@return [Array<String>]

@!attribute [rw] cidr_list_aliases

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.
@return [Array<String>]

@see docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/PortInfo AWS API Documentation

Constants

SENSITIVE