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

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

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

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



/**
 * Container for the configuration of an OpenSearch Service domain.
 */
public class DomainConfig private constructor(builder: Builder) {
    /**
     * Specifies the access policies for the domain.
     */
    public val accessPolicies: aws.sdk.kotlin.services.opensearch.model.AccessPoliciesStatus? = builder.accessPolicies
    /**
     * Key-value pairs to specify advanced configuration options. For more information, see [Advanced options](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options).
     */
    public val advancedOptions: aws.sdk.kotlin.services.opensearch.model.AdvancedOptionsStatus? = builder.advancedOptions
    /**
     * Container for fine-grained access control settings for the domain.
     */
    public val advancedSecurityOptions: aws.sdk.kotlin.services.opensearch.model.AdvancedSecurityOptionsStatus? = builder.advancedSecurityOptions
    /**
     * Container for Auto-Tune settings for the domain.
     */
    public val autoTuneOptions: aws.sdk.kotlin.services.opensearch.model.AutoTuneOptionsStatus? = builder.autoTuneOptions
    /**
     * Container for information about the progress of an existing configuration change.
     */
    public val changeProgressDetails: aws.sdk.kotlin.services.opensearch.model.ChangeProgressDetails? = builder.changeProgressDetails
    /**
     * Container for the cluster configuration of a the domain.
     */
    public val clusterConfig: aws.sdk.kotlin.services.opensearch.model.ClusterConfigStatus? = builder.clusterConfig
    /**
     * Container for Amazon Cognito options for the domain.
     */
    public val cognitoOptions: aws.sdk.kotlin.services.opensearch.model.CognitoOptionsStatus? = builder.cognitoOptions
    /**
     * Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.
     */
    public val domainEndpointOptions: aws.sdk.kotlin.services.opensearch.model.DomainEndpointOptionsStatus? = builder.domainEndpointOptions
    /**
     * Container for EBS options configured for the domain.
     */
    public val ebsOptions: aws.sdk.kotlin.services.opensearch.model.EbsOptionsStatus? = builder.ebsOptions
    /**
     * Key-value pairs to enable encryption at rest.
     */
    public val encryptionAtRestOptions: aws.sdk.kotlin.services.opensearch.model.EncryptionAtRestOptionsStatus? = builder.encryptionAtRestOptions
    /**
     * The OpenSearch or Elasticsearch version that the domain is running.
     */
    public val engineVersion: aws.sdk.kotlin.services.opensearch.model.VersionStatus? = builder.engineVersion
    /**
     * The type of IP addresses supported by the endpoint for the domain.
     */
    public val ipAddressType: aws.sdk.kotlin.services.opensearch.model.IpAddressTypeStatus? = builder.ipAddressType
    /**
     * Key-value pairs to configure log publishing.
     */
    public val logPublishingOptions: aws.sdk.kotlin.services.opensearch.model.LogPublishingOptionsStatus? = builder.logPublishingOptions
    /**
     * Whether node-to-node encryption is enabled or disabled.
     */
    public val nodeToNodeEncryptionOptions: aws.sdk.kotlin.services.opensearch.model.NodeToNodeEncryptionOptionsStatus? = builder.nodeToNodeEncryptionOptions
    /**
     * Container for off-peak window options for the domain.
     */
    public val offPeakWindowOptions: aws.sdk.kotlin.services.opensearch.model.OffPeakWindowOptionsStatus? = builder.offPeakWindowOptions
    /**
     * DEPRECATED. Container for parameters required to configure automated snapshots of domain indexes.
     */
    public val snapshotOptions: aws.sdk.kotlin.services.opensearch.model.SnapshotOptionsStatus? = builder.snapshotOptions
    /**
     * Software update options for the domain.
     */
    public val softwareUpdateOptions: aws.sdk.kotlin.services.opensearch.model.SoftwareUpdateOptionsStatus? = builder.softwareUpdateOptions
    /**
     * The current VPC options for the domain and the status of any updates to their configuration.
     */
    public val vpcOptions: aws.sdk.kotlin.services.opensearch.model.VpcDerivedInfoStatus? = builder.vpcOptions

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

    override fun toString(): kotlin.String = buildString {
        append("DomainConfig(")
        append("accessPolicies=$accessPolicies,")
        append("advancedOptions=$advancedOptions,")
        append("advancedSecurityOptions=$advancedSecurityOptions,")
        append("autoTuneOptions=$autoTuneOptions,")
        append("changeProgressDetails=$changeProgressDetails,")
        append("clusterConfig=$clusterConfig,")
        append("cognitoOptions=$cognitoOptions,")
        append("domainEndpointOptions=$domainEndpointOptions,")
        append("ebsOptions=$ebsOptions,")
        append("encryptionAtRestOptions=$encryptionAtRestOptions,")
        append("engineVersion=$engineVersion,")
        append("ipAddressType=$ipAddressType,")
        append("logPublishingOptions=$logPublishingOptions,")
        append("nodeToNodeEncryptionOptions=$nodeToNodeEncryptionOptions,")
        append("offPeakWindowOptions=$offPeakWindowOptions,")
        append("snapshotOptions=$snapshotOptions,")
        append("softwareUpdateOptions=$softwareUpdateOptions,")
        append("vpcOptions=$vpcOptions")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = accessPolicies?.hashCode() ?: 0
        result = 31 * result + (advancedOptions?.hashCode() ?: 0)
        result = 31 * result + (advancedSecurityOptions?.hashCode() ?: 0)
        result = 31 * result + (autoTuneOptions?.hashCode() ?: 0)
        result = 31 * result + (changeProgressDetails?.hashCode() ?: 0)
        result = 31 * result + (clusterConfig?.hashCode() ?: 0)
        result = 31 * result + (cognitoOptions?.hashCode() ?: 0)
        result = 31 * result + (domainEndpointOptions?.hashCode() ?: 0)
        result = 31 * result + (ebsOptions?.hashCode() ?: 0)
        result = 31 * result + (encryptionAtRestOptions?.hashCode() ?: 0)
        result = 31 * result + (engineVersion?.hashCode() ?: 0)
        result = 31 * result + (ipAddressType?.hashCode() ?: 0)
        result = 31 * result + (logPublishingOptions?.hashCode() ?: 0)
        result = 31 * result + (nodeToNodeEncryptionOptions?.hashCode() ?: 0)
        result = 31 * result + (offPeakWindowOptions?.hashCode() ?: 0)
        result = 31 * result + (snapshotOptions?.hashCode() ?: 0)
        result = 31 * result + (softwareUpdateOptions?.hashCode() ?: 0)
        result = 31 * result + (vpcOptions?.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 DomainConfig

        if (accessPolicies != other.accessPolicies) return false
        if (advancedOptions != other.advancedOptions) return false
        if (advancedSecurityOptions != other.advancedSecurityOptions) return false
        if (autoTuneOptions != other.autoTuneOptions) return false
        if (changeProgressDetails != other.changeProgressDetails) return false
        if (clusterConfig != other.clusterConfig) return false
        if (cognitoOptions != other.cognitoOptions) return false
        if (domainEndpointOptions != other.domainEndpointOptions) return false
        if (ebsOptions != other.ebsOptions) return false
        if (encryptionAtRestOptions != other.encryptionAtRestOptions) return false
        if (engineVersion != other.engineVersion) return false
        if (ipAddressType != other.ipAddressType) return false
        if (logPublishingOptions != other.logPublishingOptions) return false
        if (nodeToNodeEncryptionOptions != other.nodeToNodeEncryptionOptions) return false
        if (offPeakWindowOptions != other.offPeakWindowOptions) return false
        if (snapshotOptions != other.snapshotOptions) return false
        if (softwareUpdateOptions != other.softwareUpdateOptions) return false
        if (vpcOptions != other.vpcOptions) return false

        return true
    }

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

    public class Builder {
        /**
         * Specifies the access policies for the domain.
         */
        public var accessPolicies: aws.sdk.kotlin.services.opensearch.model.AccessPoliciesStatus? = null
        /**
         * Key-value pairs to specify advanced configuration options. For more information, see [Advanced options](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options).
         */
        public var advancedOptions: aws.sdk.kotlin.services.opensearch.model.AdvancedOptionsStatus? = null
        /**
         * Container for fine-grained access control settings for the domain.
         */
        public var advancedSecurityOptions: aws.sdk.kotlin.services.opensearch.model.AdvancedSecurityOptionsStatus? = null
        /**
         * Container for Auto-Tune settings for the domain.
         */
        public var autoTuneOptions: aws.sdk.kotlin.services.opensearch.model.AutoTuneOptionsStatus? = null
        /**
         * Container for information about the progress of an existing configuration change.
         */
        public var changeProgressDetails: aws.sdk.kotlin.services.opensearch.model.ChangeProgressDetails? = null
        /**
         * Container for the cluster configuration of a the domain.
         */
        public var clusterConfig: aws.sdk.kotlin.services.opensearch.model.ClusterConfigStatus? = null
        /**
         * Container for Amazon Cognito options for the domain.
         */
        public var cognitoOptions: aws.sdk.kotlin.services.opensearch.model.CognitoOptionsStatus? = null
        /**
         * Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.
         */
        public var domainEndpointOptions: aws.sdk.kotlin.services.opensearch.model.DomainEndpointOptionsStatus? = null
        /**
         * Container for EBS options configured for the domain.
         */
        public var ebsOptions: aws.sdk.kotlin.services.opensearch.model.EbsOptionsStatus? = null
        /**
         * Key-value pairs to enable encryption at rest.
         */
        public var encryptionAtRestOptions: aws.sdk.kotlin.services.opensearch.model.EncryptionAtRestOptionsStatus? = null
        /**
         * The OpenSearch or Elasticsearch version that the domain is running.
         */
        public var engineVersion: aws.sdk.kotlin.services.opensearch.model.VersionStatus? = null
        /**
         * The type of IP addresses supported by the endpoint for the domain.
         */
        public var ipAddressType: aws.sdk.kotlin.services.opensearch.model.IpAddressTypeStatus? = null
        /**
         * Key-value pairs to configure log publishing.
         */
        public var logPublishingOptions: aws.sdk.kotlin.services.opensearch.model.LogPublishingOptionsStatus? = null
        /**
         * Whether node-to-node encryption is enabled or disabled.
         */
        public var nodeToNodeEncryptionOptions: aws.sdk.kotlin.services.opensearch.model.NodeToNodeEncryptionOptionsStatus? = null
        /**
         * Container for off-peak window options for the domain.
         */
        public var offPeakWindowOptions: aws.sdk.kotlin.services.opensearch.model.OffPeakWindowOptionsStatus? = null
        /**
         * DEPRECATED. Container for parameters required to configure automated snapshots of domain indexes.
         */
        public var snapshotOptions: aws.sdk.kotlin.services.opensearch.model.SnapshotOptionsStatus? = null
        /**
         * Software update options for the domain.
         */
        public var softwareUpdateOptions: aws.sdk.kotlin.services.opensearch.model.SoftwareUpdateOptionsStatus? = null
        /**
         * The current VPC options for the domain and the status of any updates to their configuration.
         */
        public var vpcOptions: aws.sdk.kotlin.services.opensearch.model.VpcDerivedInfoStatus? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.opensearch.model.DomainConfig) : this() {
            this.accessPolicies = x.accessPolicies
            this.advancedOptions = x.advancedOptions
            this.advancedSecurityOptions = x.advancedSecurityOptions
            this.autoTuneOptions = x.autoTuneOptions
            this.changeProgressDetails = x.changeProgressDetails
            this.clusterConfig = x.clusterConfig
            this.cognitoOptions = x.cognitoOptions
            this.domainEndpointOptions = x.domainEndpointOptions
            this.ebsOptions = x.ebsOptions
            this.encryptionAtRestOptions = x.encryptionAtRestOptions
            this.engineVersion = x.engineVersion
            this.ipAddressType = x.ipAddressType
            this.logPublishingOptions = x.logPublishingOptions
            this.nodeToNodeEncryptionOptions = x.nodeToNodeEncryptionOptions
            this.offPeakWindowOptions = x.offPeakWindowOptions
            this.snapshotOptions = x.snapshotOptions
            this.softwareUpdateOptions = x.softwareUpdateOptions
            this.vpcOptions = x.vpcOptions
        }

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

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.AccessPoliciesStatus] inside the given [block]
         */
        public fun accessPolicies(block: aws.sdk.kotlin.services.opensearch.model.AccessPoliciesStatus.Builder.() -> kotlin.Unit) {
            this.accessPolicies = aws.sdk.kotlin.services.opensearch.model.AccessPoliciesStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.AdvancedOptionsStatus] inside the given [block]
         */
        public fun advancedOptions(block: aws.sdk.kotlin.services.opensearch.model.AdvancedOptionsStatus.Builder.() -> kotlin.Unit) {
            this.advancedOptions = aws.sdk.kotlin.services.opensearch.model.AdvancedOptionsStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.AdvancedSecurityOptionsStatus] inside the given [block]
         */
        public fun advancedSecurityOptions(block: aws.sdk.kotlin.services.opensearch.model.AdvancedSecurityOptionsStatus.Builder.() -> kotlin.Unit) {
            this.advancedSecurityOptions = aws.sdk.kotlin.services.opensearch.model.AdvancedSecurityOptionsStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.AutoTuneOptionsStatus] inside the given [block]
         */
        public fun autoTuneOptions(block: aws.sdk.kotlin.services.opensearch.model.AutoTuneOptionsStatus.Builder.() -> kotlin.Unit) {
            this.autoTuneOptions = aws.sdk.kotlin.services.opensearch.model.AutoTuneOptionsStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.ChangeProgressDetails] inside the given [block]
         */
        public fun changeProgressDetails(block: aws.sdk.kotlin.services.opensearch.model.ChangeProgressDetails.Builder.() -> kotlin.Unit) {
            this.changeProgressDetails = aws.sdk.kotlin.services.opensearch.model.ChangeProgressDetails.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.ClusterConfigStatus] inside the given [block]
         */
        public fun clusterConfig(block: aws.sdk.kotlin.services.opensearch.model.ClusterConfigStatus.Builder.() -> kotlin.Unit) {
            this.clusterConfig = aws.sdk.kotlin.services.opensearch.model.ClusterConfigStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.CognitoOptionsStatus] inside the given [block]
         */
        public fun cognitoOptions(block: aws.sdk.kotlin.services.opensearch.model.CognitoOptionsStatus.Builder.() -> kotlin.Unit) {
            this.cognitoOptions = aws.sdk.kotlin.services.opensearch.model.CognitoOptionsStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.DomainEndpointOptionsStatus] inside the given [block]
         */
        public fun domainEndpointOptions(block: aws.sdk.kotlin.services.opensearch.model.DomainEndpointOptionsStatus.Builder.() -> kotlin.Unit) {
            this.domainEndpointOptions = aws.sdk.kotlin.services.opensearch.model.DomainEndpointOptionsStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.EbsOptionsStatus] inside the given [block]
         */
        public fun ebsOptions(block: aws.sdk.kotlin.services.opensearch.model.EbsOptionsStatus.Builder.() -> kotlin.Unit) {
            this.ebsOptions = aws.sdk.kotlin.services.opensearch.model.EbsOptionsStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.EncryptionAtRestOptionsStatus] inside the given [block]
         */
        public fun encryptionAtRestOptions(block: aws.sdk.kotlin.services.opensearch.model.EncryptionAtRestOptionsStatus.Builder.() -> kotlin.Unit) {
            this.encryptionAtRestOptions = aws.sdk.kotlin.services.opensearch.model.EncryptionAtRestOptionsStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.VersionStatus] inside the given [block]
         */
        public fun engineVersion(block: aws.sdk.kotlin.services.opensearch.model.VersionStatus.Builder.() -> kotlin.Unit) {
            this.engineVersion = aws.sdk.kotlin.services.opensearch.model.VersionStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.IpAddressTypeStatus] inside the given [block]
         */
        public fun ipAddressType(block: aws.sdk.kotlin.services.opensearch.model.IpAddressTypeStatus.Builder.() -> kotlin.Unit) {
            this.ipAddressType = aws.sdk.kotlin.services.opensearch.model.IpAddressTypeStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.LogPublishingOptionsStatus] inside the given [block]
         */
        public fun logPublishingOptions(block: aws.sdk.kotlin.services.opensearch.model.LogPublishingOptionsStatus.Builder.() -> kotlin.Unit) {
            this.logPublishingOptions = aws.sdk.kotlin.services.opensearch.model.LogPublishingOptionsStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.NodeToNodeEncryptionOptionsStatus] inside the given [block]
         */
        public fun nodeToNodeEncryptionOptions(block: aws.sdk.kotlin.services.opensearch.model.NodeToNodeEncryptionOptionsStatus.Builder.() -> kotlin.Unit) {
            this.nodeToNodeEncryptionOptions = aws.sdk.kotlin.services.opensearch.model.NodeToNodeEncryptionOptionsStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.OffPeakWindowOptionsStatus] inside the given [block]
         */
        public fun offPeakWindowOptions(block: aws.sdk.kotlin.services.opensearch.model.OffPeakWindowOptionsStatus.Builder.() -> kotlin.Unit) {
            this.offPeakWindowOptions = aws.sdk.kotlin.services.opensearch.model.OffPeakWindowOptionsStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.SnapshotOptionsStatus] inside the given [block]
         */
        public fun snapshotOptions(block: aws.sdk.kotlin.services.opensearch.model.SnapshotOptionsStatus.Builder.() -> kotlin.Unit) {
            this.snapshotOptions = aws.sdk.kotlin.services.opensearch.model.SnapshotOptionsStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.SoftwareUpdateOptionsStatus] inside the given [block]
         */
        public fun softwareUpdateOptions(block: aws.sdk.kotlin.services.opensearch.model.SoftwareUpdateOptionsStatus.Builder.() -> kotlin.Unit) {
            this.softwareUpdateOptions = aws.sdk.kotlin.services.opensearch.model.SoftwareUpdateOptionsStatus.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.opensearch.model.VpcDerivedInfoStatus] inside the given [block]
         */
        public fun vpcOptions(block: aws.sdk.kotlin.services.opensearch.model.VpcDerivedInfoStatus.Builder.() -> kotlin.Unit) {
            this.vpcOptions = aws.sdk.kotlin.services.opensearch.model.VpcDerivedInfoStatus.invoke(block)
        }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy