
commonMain.aws.sdk.kotlin.services.lightsail.model.PortInfo.kt Maven / Gradle / Ivy
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.lightsail.model
import aws.smithy.kotlin.runtime.SdkDsl
/**
* Describes ports to open on an instance, the IP addresses allowed to connect to the instance through the ports, and the protocol.
*/
public class PortInfo private constructor(builder: Builder) {
/**
* 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 val cidrListAliases: List? = builder.cidrListAliases
/**
* 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](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) on *Wikipedia*.
*/
public val cidrs: List? = builder.cidrs
/**
* 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](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#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](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6).
*/
public val fromPort: kotlin.Int = builder.fromPort
/**
* 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](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) on *Wikipedia*.
*/
public val ipv6Cidrs: List? = builder.ipv6Cidrs
/**
* 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](https://en.wikipedia.org/wiki/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.
* + `icmp6` - Internet Control Message Protocol (ICMP) for IPv6. When you specify `icmp6` as the `protocol`, you must specify the ICMP type using the `fromPort` parameter, and ICMP code using the `toPort` parameter.
*/
public val protocol: aws.sdk.kotlin.services.lightsail.model.NetworkProtocol? = builder.protocol
/**
* 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](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#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](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6).
*/
public val toPort: kotlin.Int = builder.toPort
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.lightsail.model.PortInfo = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("PortInfo(")
append("cidrListAliases=$cidrListAliases,")
append("cidrs=$cidrs,")
append("fromPort=$fromPort,")
append("ipv6Cidrs=$ipv6Cidrs,")
append("protocol=$protocol,")
append("toPort=$toPort")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = cidrListAliases?.hashCode() ?: 0
result = 31 * result + (cidrs?.hashCode() ?: 0)
result = 31 * result + (fromPort)
result = 31 * result + (ipv6Cidrs?.hashCode() ?: 0)
result = 31 * result + (protocol?.hashCode() ?: 0)
result = 31 * result + (toPort)
return result
}
override fun equals(other: kotlin.Any?): kotlin.Boolean {
if (this === other) return true
if (other == null || this::class != other::class) return false
other as PortInfo
if (cidrListAliases != other.cidrListAliases) return false
if (cidrs != other.cidrs) return false
if (fromPort != other.fromPort) return false
if (ipv6Cidrs != other.ipv6Cidrs) return false
if (protocol != other.protocol) return false
if (toPort != other.toPort) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.lightsail.model.PortInfo = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* 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 var cidrListAliases: List? = null
/**
* 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](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) on *Wikipedia*.
*/
public var cidrs: List? = null
/**
* 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](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#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](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6).
*/
public var fromPort: kotlin.Int = 0
/**
* 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](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) on *Wikipedia*.
*/
public var ipv6Cidrs: List? = null
/**
* 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](https://en.wikipedia.org/wiki/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.
* + `icmp6` - Internet Control Message Protocol (ICMP) for IPv6. When you specify `icmp6` as the `protocol`, you must specify the ICMP type using the `fromPort` parameter, and ICMP code using the `toPort` parameter.
*/
public var protocol: aws.sdk.kotlin.services.lightsail.model.NetworkProtocol? = null
/**
* 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](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#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](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6).
*/
public var toPort: kotlin.Int = 0
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.lightsail.model.PortInfo) : this() {
this.cidrListAliases = x.cidrListAliases
this.cidrs = x.cidrs
this.fromPort = x.fromPort
this.ipv6Cidrs = x.ipv6Cidrs
this.protocol = x.protocol
this.toPort = x.toPort
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.lightsail.model.PortInfo = PortInfo(this)
internal fun correctErrors(): Builder {
return this
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy