All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.aws.sdk.kotlin.services.route53resolver.model.CreateResolverEndpointRequest.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.route53resolver.model



public class CreateResolverEndpointRequest private constructor(builder: Builder) {
    /**
     * A unique string that identifies the request and that allows failed requests to be retried without the risk of running the operation twice. `CreatorRequestId` can be any unique string, for example, a date/time stamp.
     */
    public val creatorRequestId: kotlin.String? = builder.creatorRequestId
    /**
     * Specify the applicable value:
     * + `INBOUND`: Resolver forwards DNS queries to the DNS service for a VPC from your network
     * + `OUTBOUND`: Resolver forwards DNS queries from the DNS service for a VPC to your network
     */
    public val direction: aws.sdk.kotlin.services.route53resolver.model.ResolverEndpointDirection? = builder.direction
    /**
     * The subnets and IP addresses in your VPC that DNS queries originate from (for outbound endpoints) or that you forward DNS queries to (for inbound endpoints). The subnet ID uniquely identifies a VPC.
     */
    public val ipAddresses: List? = builder.ipAddresses
    /**
     * A friendly name that lets you easily find a configuration in the Resolver dashboard in the Route 53 console.
     */
    public val name: kotlin.String? = builder.name
    /**
     * The Amazon Resource Name (ARN) of the Outpost. If you specify this, you must also specify a value for the `PreferredInstanceType`.
     */
    public val outpostArn: kotlin.String? = builder.outpostArn
    /**
     * The instance type. If you specify this, you must also specify a value for the `OutpostArn`.
     */
    public val preferredInstanceType: kotlin.String? = builder.preferredInstanceType
    /**
     * For the endpoint type you can choose either IPv4, IPv6, or dual-stack. A dual-stack endpoint means that it will resolve via both IPv4 and IPv6. This endpoint type is applied to all IP addresses.
     */
    public val resolverEndpointType: aws.sdk.kotlin.services.route53resolver.model.ResolverEndpointType? = builder.resolverEndpointType
    /**
     * The ID of one or more security groups that you want to use to control access to this VPC. The security group that you specify must include one or more inbound rules (for inbound Resolver endpoints) or outbound rules (for outbound Resolver endpoints). Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port that you're using for DNS queries on your network.
     */
    public val securityGroupIds: List? = builder.securityGroupIds
    /**
     * A list of the tag keys and values that you want to associate with the endpoint.
     */
    public val tags: List? = builder.tags

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.route53resolver.model.CreateResolverEndpointRequest = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("CreateResolverEndpointRequest(")
        append("creatorRequestId=$creatorRequestId,")
        append("direction=$direction,")
        append("ipAddresses=$ipAddresses,")
        append("name=$name,")
        append("outpostArn=$outpostArn,")
        append("preferredInstanceType=$preferredInstanceType,")
        append("resolverEndpointType=$resolverEndpointType,")
        append("securityGroupIds=$securityGroupIds,")
        append("tags=$tags")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = creatorRequestId?.hashCode() ?: 0
        result = 31 * result + (direction?.hashCode() ?: 0)
        result = 31 * result + (ipAddresses?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (outpostArn?.hashCode() ?: 0)
        result = 31 * result + (preferredInstanceType?.hashCode() ?: 0)
        result = 31 * result + (resolverEndpointType?.hashCode() ?: 0)
        result = 31 * result + (securityGroupIds?.hashCode() ?: 0)
        result = 31 * result + (tags?.hashCode() ?: 0)
        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 CreateResolverEndpointRequest

        if (creatorRequestId != other.creatorRequestId) return false
        if (direction != other.direction) return false
        if (ipAddresses != other.ipAddresses) return false
        if (name != other.name) return false
        if (outpostArn != other.outpostArn) return false
        if (preferredInstanceType != other.preferredInstanceType) return false
        if (resolverEndpointType != other.resolverEndpointType) return false
        if (securityGroupIds != other.securityGroupIds) return false
        if (tags != other.tags) return false

        return true
    }

    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.route53resolver.model.CreateResolverEndpointRequest = Builder(this).apply(block).build()

    public class Builder {
        /**
         * A unique string that identifies the request and that allows failed requests to be retried without the risk of running the operation twice. `CreatorRequestId` can be any unique string, for example, a date/time stamp.
         */
        public var creatorRequestId: kotlin.String? = null
        /**
         * Specify the applicable value:
         * + `INBOUND`: Resolver forwards DNS queries to the DNS service for a VPC from your network
         * + `OUTBOUND`: Resolver forwards DNS queries from the DNS service for a VPC to your network
         */
        public var direction: aws.sdk.kotlin.services.route53resolver.model.ResolverEndpointDirection? = null
        /**
         * The subnets and IP addresses in your VPC that DNS queries originate from (for outbound endpoints) or that you forward DNS queries to (for inbound endpoints). The subnet ID uniquely identifies a VPC.
         */
        public var ipAddresses: List? = null
        /**
         * A friendly name that lets you easily find a configuration in the Resolver dashboard in the Route 53 console.
         */
        public var name: kotlin.String? = null
        /**
         * The Amazon Resource Name (ARN) of the Outpost. If you specify this, you must also specify a value for the `PreferredInstanceType`.
         */
        public var outpostArn: kotlin.String? = null
        /**
         * The instance type. If you specify this, you must also specify a value for the `OutpostArn`.
         */
        public var preferredInstanceType: kotlin.String? = null
        /**
         * For the endpoint type you can choose either IPv4, IPv6, or dual-stack. A dual-stack endpoint means that it will resolve via both IPv4 and IPv6. This endpoint type is applied to all IP addresses.
         */
        public var resolverEndpointType: aws.sdk.kotlin.services.route53resolver.model.ResolverEndpointType? = null
        /**
         * The ID of one or more security groups that you want to use to control access to this VPC. The security group that you specify must include one or more inbound rules (for inbound Resolver endpoints) or outbound rules (for outbound Resolver endpoints). Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port that you're using for DNS queries on your network.
         */
        public var securityGroupIds: List? = null
        /**
         * A list of the tag keys and values that you want to associate with the endpoint.
         */
        public var tags: List? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.route53resolver.model.CreateResolverEndpointRequest) : this() {
            this.creatorRequestId = x.creatorRequestId
            this.direction = x.direction
            this.ipAddresses = x.ipAddresses
            this.name = x.name
            this.outpostArn = x.outpostArn
            this.preferredInstanceType = x.preferredInstanceType
            this.resolverEndpointType = x.resolverEndpointType
            this.securityGroupIds = x.securityGroupIds
            this.tags = x.tags
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.route53resolver.model.CreateResolverEndpointRequest = CreateResolverEndpointRequest(this)

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy