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

commonMain.aws.sdk.kotlin.services.opensearch.model.DomainEndpointOptions.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.opensearch.model



/**
 * Options to configure a custom endpoint for an OpenSearch Service domain.
 */
public class DomainEndpointOptions private constructor(builder: Builder) {
    /**
     * The fully qualified URL for the custom endpoint.
     */
    public val customEndpoint: kotlin.String? = builder.customEndpoint
    /**
     * The ARN for your security certificate, managed in Amazon Web Services Certificate Manager (ACM).
     */
    public val customEndpointCertificateArn: kotlin.String? = builder.customEndpointCertificateArn
    /**
     * Whether to enable a custom endpoint for the domain.
     */
    public val customEndpointEnabled: kotlin.Boolean? = builder.customEndpointEnabled
    /**
     * True to require that all traffic to the domain arrive over HTTPS.
     */
    public val enforceHttps: kotlin.Boolean? = builder.enforceHttps
    /**
     * Specify the TLS security policy to apply to the HTTPS endpoint of the domain. The policy can be one of the following values:
     * + **Policy-Min-TLS-1-0-2019-07:** TLS security policy which supports TLS version 1.0 to TLS version 1.2
     * + **Policy-Min-TLS-1-2-2019-07:** TLS security policy which supports only TLS version 1.2
     * + **Policy-Min-TLS-1-0-2023-10:** TLS security policy which supports TLS version 1.0 to TLS version 1.3
     * + **Policy-Min-TLS-1-2-2023-10:** TLS security policy which supports TLS version 1.2 to TLS version 1.3 with perfect forward secrecy cipher suites
     */
    public val tlsSecurityPolicy: aws.sdk.kotlin.services.opensearch.model.TlsSecurityPolicy? = builder.tlsSecurityPolicy

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

    override fun toString(): kotlin.String = buildString {
        append("DomainEndpointOptions(")
        append("customEndpoint=$customEndpoint,")
        append("customEndpointCertificateArn=$customEndpointCertificateArn,")
        append("customEndpointEnabled=$customEndpointEnabled,")
        append("enforceHttps=$enforceHttps,")
        append("tlsSecurityPolicy=$tlsSecurityPolicy")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = customEndpoint?.hashCode() ?: 0
        result = 31 * result + (customEndpointCertificateArn?.hashCode() ?: 0)
        result = 31 * result + (customEndpointEnabled?.hashCode() ?: 0)
        result = 31 * result + (enforceHttps?.hashCode() ?: 0)
        result = 31 * result + (tlsSecurityPolicy?.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 DomainEndpointOptions

        if (customEndpoint != other.customEndpoint) return false
        if (customEndpointCertificateArn != other.customEndpointCertificateArn) return false
        if (customEndpointEnabled != other.customEndpointEnabled) return false
        if (enforceHttps != other.enforceHttps) return false
        if (tlsSecurityPolicy != other.tlsSecurityPolicy) return false

        return true
    }

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

    public class Builder {
        /**
         * The fully qualified URL for the custom endpoint.
         */
        public var customEndpoint: kotlin.String? = null
        /**
         * The ARN for your security certificate, managed in Amazon Web Services Certificate Manager (ACM).
         */
        public var customEndpointCertificateArn: kotlin.String? = null
        /**
         * Whether to enable a custom endpoint for the domain.
         */
        public var customEndpointEnabled: kotlin.Boolean? = null
        /**
         * True to require that all traffic to the domain arrive over HTTPS.
         */
        public var enforceHttps: kotlin.Boolean? = null
        /**
         * Specify the TLS security policy to apply to the HTTPS endpoint of the domain. The policy can be one of the following values:
         * + **Policy-Min-TLS-1-0-2019-07:** TLS security policy which supports TLS version 1.0 to TLS version 1.2
         * + **Policy-Min-TLS-1-2-2019-07:** TLS security policy which supports only TLS version 1.2
         * + **Policy-Min-TLS-1-0-2023-10:** TLS security policy which supports TLS version 1.0 to TLS version 1.3
         * + **Policy-Min-TLS-1-2-2023-10:** TLS security policy which supports TLS version 1.2 to TLS version 1.3 with perfect forward secrecy cipher suites
         */
        public var tlsSecurityPolicy: aws.sdk.kotlin.services.opensearch.model.TlsSecurityPolicy? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.opensearch.model.DomainEndpointOptions) : this() {
            this.customEndpoint = x.customEndpoint
            this.customEndpointCertificateArn = x.customEndpointCertificateArn
            this.customEndpointEnabled = x.customEndpointEnabled
            this.enforceHttps = x.enforceHttps
            this.tlsSecurityPolicy = x.tlsSecurityPolicy
        }

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy