/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.lightsail.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *

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

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class PortInfo implements Serializable, Cloneable, StructuredPojo { /** *

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

*

* Allowed ports: *

* */ private Integer fromPort; /** *

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

*

* Allowed ports: *

* */ private Integer toPort; /** *

* The IP protocol name. *

*

* The name can be one of the following: *

* */ private String protocol; /** *

* 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. *

*
*

* Examples: *

* *

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

*/ private java.util.List 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. *

* *

* 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. *

*/ private java.util.List ipv6Cidrs; /** *

* 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. *

*/ private java.util.List cidrListAliases; /** *

* 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. *

    *
  • *
* * @param 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. *

    *
  • */ public void setFromPort(Integer fromPort) { this.fromPort = 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. *

      *
    • *
    * * @return 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. *

      *
    • */ public Integer getFromPort() { return this.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. *

        *
      • *
      * * @param 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. *

        *
      • * @return Returns a reference to this object so that method calls can be chained together. */ public PortInfo withFromPort(Integer fromPort) { setFromPort(fromPort); 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. *

          *
        • *
        * * @param 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. *

          *
        • */ public void setToPort(Integer toPort) { this.toPort = 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. *

            *
          • *
          * * @return 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. *

            *
          • */ public Integer getToPort() { return this.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. *

              *
            • *
            * * @param 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. *

              *
            • * @return Returns a reference to this object so that method calls can be chained together. */ public PortInfo withToPort(Integer toPort) { setToPort(toPort); 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. *

                *
              • *
              * * @param 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. *

                *
              • * @see NetworkProtocol */ public void setProtocol(String protocol) { this.protocol = 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. *

                  *
                • *
                * * @return 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. *

                  *
                • * @see NetworkProtocol */ public String getProtocol() { return this.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. *

                    *
                  • *
                  * * @param 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. *

                    *
                  • * @return Returns a reference to this object so that method calls can be chained together. * @see NetworkProtocol */ public PortInfo withProtocol(String protocol) { setProtocol(protocol); 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. *

                      *
                    • *
                    * * @param 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. *

                      *
                    • * @see NetworkProtocol */ public void setProtocol(NetworkProtocol protocol) { withProtocol(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. *

                        *
                      • *
                      * * @param 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. *

                        *
                      • * @return Returns a reference to this object so that method calls can be chained together. * @see NetworkProtocol */ public PortInfo withProtocol(NetworkProtocol protocol) { this.protocol = protocol.toString(); 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. *

                        *
                        *

                        * 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 on Wikipedia. *

                        * * @return 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. *

                        *
                        *

                        * 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 on Wikipedia. */ public java.util.List getCidrs() { return 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. *

                        *
                        *

                        * 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 on Wikipedia. *

                        * * @param 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. *

                        *
                        *

                        * 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 on Wikipedia. */ public void setCidrs(java.util.Collection cidrs) { if (cidrs == null) { this.cidrs = null; return; } this.cidrs = new java.util.ArrayList(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. *

                        *
                        *

                        * 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 on Wikipedia. *

                        *

                        * NOTE: This method appends the values to the existing list (if any). Use * {@link #setCidrs(java.util.Collection)} or {@link #withCidrs(java.util.Collection)} if you want to override the * existing values. *

                        * * @param 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. *

                        *
                        *

                        * 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 on Wikipedia. * @return Returns a reference to this object so that method calls can be chained together. */ public PortInfo withCidrs(String... cidrs) { if (this.cidrs == null) { setCidrs(new java.util.ArrayList(cidrs.length)); } for (String ele : cidrs) { this.cidrs.add(ele); } 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. *

                        *
                        *

                        * 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 on Wikipedia. *

                        * * @param 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. *

                        *
                        *

                        * 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 on Wikipedia. * @return Returns a reference to this object so that method calls can be chained together. */ public PortInfo withCidrs(java.util.Collection cidrs) { setCidrs(cidrs); 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. *

                        * * @return 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. */ public java.util.List getIpv6Cidrs() { return 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. *

                        * * @param 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. */ public void setIpv6Cidrs(java.util.Collection ipv6Cidrs) { if (ipv6Cidrs == null) { this.ipv6Cidrs = null; return; } this.ipv6Cidrs = new java.util.ArrayList(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. *

                        *

                        * NOTE: This method appends the values to the existing list (if any). Use * {@link #setIpv6Cidrs(java.util.Collection)} or {@link #withIpv6Cidrs(java.util.Collection)} if you want to * override the existing values. *

                        * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public PortInfo withIpv6Cidrs(String... ipv6Cidrs) { if (this.ipv6Cidrs == null) { setIpv6Cidrs(new java.util.ArrayList(ipv6Cidrs.length)); } for (String ele : ipv6Cidrs) { this.ipv6Cidrs.add(ele); } 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. *

                        * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public PortInfo withIpv6Cidrs(java.util.Collection ipv6Cidrs) { setIpv6Cidrs(ipv6Cidrs); 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. *

                        * * @return 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. */ public java.util.List getCidrListAliases() { return 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. *

                        * * @param 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. */ public void setCidrListAliases(java.util.Collection cidrListAliases) { if (cidrListAliases == null) { this.cidrListAliases = null; return; } this.cidrListAliases = new java.util.ArrayList(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. *

                        *

                        * NOTE: This method appends the values to the existing list (if any). Use * {@link #setCidrListAliases(java.util.Collection)} or {@link #withCidrListAliases(java.util.Collection)} if you * want to override the existing values. *

                        * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public PortInfo withCidrListAliases(String... cidrListAliases) { if (this.cidrListAliases == null) { setCidrListAliases(new java.util.ArrayList(cidrListAliases.length)); } for (String ele : cidrListAliases) { this.cidrListAliases.add(ele); } 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. *

                        * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public PortInfo withCidrListAliases(java.util.Collection cidrListAliases) { setCidrListAliases(cidrListAliases); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getFromPort() != null) sb.append("FromPort: ").append(getFromPort()).append(","); if (getToPort() != null) sb.append("ToPort: ").append(getToPort()).append(","); if (getProtocol() != null) sb.append("Protocol: ").append(getProtocol()).append(","); if (getCidrs() != null) sb.append("Cidrs: ").append(getCidrs()).append(","); if (getIpv6Cidrs() != null) sb.append("Ipv6Cidrs: ").append(getIpv6Cidrs()).append(","); if (getCidrListAliases() != null) sb.append("CidrListAliases: ").append(getCidrListAliases()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof PortInfo == false) return false; PortInfo other = (PortInfo) obj; if (other.getFromPort() == null ^ this.getFromPort() == null) return false; if (other.getFromPort() != null && other.getFromPort().equals(this.getFromPort()) == false) return false; if (other.getToPort() == null ^ this.getToPort() == null) return false; if (other.getToPort() != null && other.getToPort().equals(this.getToPort()) == false) return false; if (other.getProtocol() == null ^ this.getProtocol() == null) return false; if (other.getProtocol() != null && other.getProtocol().equals(this.getProtocol()) == false) return false; if (other.getCidrs() == null ^ this.getCidrs() == null) return false; if (other.getCidrs() != null && other.getCidrs().equals(this.getCidrs()) == false) return false; if (other.getIpv6Cidrs() == null ^ this.getIpv6Cidrs() == null) return false; if (other.getIpv6Cidrs() != null && other.getIpv6Cidrs().equals(this.getIpv6Cidrs()) == false) return false; if (other.getCidrListAliases() == null ^ this.getCidrListAliases() == null) return false; if (other.getCidrListAliases() != null && other.getCidrListAliases().equals(this.getCidrListAliases()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getFromPort() == null) ? 0 : getFromPort().hashCode()); hashCode = prime * hashCode + ((getToPort() == null) ? 0 : getToPort().hashCode()); hashCode = prime * hashCode + ((getProtocol() == null) ? 0 : getProtocol().hashCode()); hashCode = prime * hashCode + ((getCidrs() == null) ? 0 : getCidrs().hashCode()); hashCode = prime * hashCode + ((getIpv6Cidrs() == null) ? 0 : getIpv6Cidrs().hashCode()); hashCode = prime * hashCode + ((getCidrListAliases() == null) ? 0 : getCidrListAliases().hashCode()); return hashCode; } @Override public PortInfo clone() { try { return (PortInfo) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.lightsail.model.transform.PortInfoMarshaller.getInstance().marshall(this, protocolMarshaller); } }