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

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

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

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

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Container for the request parameters to the `UpdateDomain` operation.
 */
public class UpdateDomainConfigRequest private constructor(builder: Builder) {
    /**
     * Identity and Access Management (IAM) access policy as a JSON-formatted string.
     */
    public val accessPolicies: kotlin.String? = builder.accessPolicies
    /**
     * Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:
     * + `"rest.action.multi.allow_explicit_index": "true" | "false"` - Note the use of a string rather than a boolean. Specifies whether explicit references to indexes are allowed inside the body of HTTP requests. If you want to configure access policies for domain sub-resources, such as specific indexes and domain APIs, you must disable this property. Default is true.
     * + `"indices.fielddata.cache.size": "80" ` - Note the use of a string rather than a boolean. Specifies the percentage of heap space allocated to field data. Default is unbounded.
     * + `"indices.query.bool.max_clause_count": "1024"` - Note the use of a string rather than a boolean. Specifies the maximum number of clauses allowed in a Lucene boolean query. Default is 1,024. Queries with more than the permitted number of clauses result in a `TooManyClauses` error.
     *
     * For more information, see [Advanced cluster parameters](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options).
     */
    public val advancedOptions: Map? = builder.advancedOptions
    /**
     * Options for fine-grained access control.
     */
    public val advancedSecurityOptions: aws.sdk.kotlin.services.opensearch.model.AdvancedSecurityOptionsInput? = builder.advancedSecurityOptions
    /**
     * Options for all machine learning features for the specified domain.
     */
    public val aimlOptions: aws.sdk.kotlin.services.opensearch.model.AimlOptionsInput? = builder.aimlOptions
    /**
     * Options for Auto-Tune.
     */
    public val autoTuneOptions: aws.sdk.kotlin.services.opensearch.model.AutoTuneOptions? = builder.autoTuneOptions
    /**
     * Changes that you want to make to the cluster configuration, such as the instance type and number of EC2 instances.
     */
    public val clusterConfig: aws.sdk.kotlin.services.opensearch.model.ClusterConfig? = builder.clusterConfig
    /**
     * Key-value pairs to configure Amazon Cognito authentication for OpenSearch Dashboards.
     */
    public val cognitoOptions: aws.sdk.kotlin.services.opensearch.model.CognitoOptions? = 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.DomainEndpointOptions? = builder.domainEndpointOptions
    /**
     * The name of the domain that you're updating.
     */
    public val domainName: kotlin.String? = builder.domainName
    /**
     * This flag, when set to True, specifies whether the `UpdateDomain` request should return the results of a dry run analysis without actually applying the change. A dry run determines what type of deployment the update will cause.
     */
    public val dryRun: kotlin.Boolean? = builder.dryRun
    /**
     * The type of dry run to perform.
     * + `Basic` only returns the type of deployment (blue/green or dynamic) that the update will cause.
     * + `Verbose` runs an additional check to validate the changes you're making. For more information, see [Validating a domain update](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-configuration-changes#validation-check).
     */
    public val dryRunMode: aws.sdk.kotlin.services.opensearch.model.DryRunMode? = builder.dryRunMode
    /**
     * The type and size of the EBS volume to attach to instances in the domain.
     */
    public val ebsOptions: aws.sdk.kotlin.services.opensearch.model.EbsOptions? = builder.ebsOptions
    /**
     * Encryption at rest options for the domain.
     */
    public val encryptionAtRestOptions: aws.sdk.kotlin.services.opensearch.model.EncryptionAtRestOptions? = builder.encryptionAtRestOptions
    /**
     * Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain resources across IPv4 and IPv6 address types, and is the recommended option. If your IP address type is currently set to dual stack, you can't change it.
     */
    public val ipAddressType: aws.sdk.kotlin.services.opensearch.model.IpAddressType? = builder.ipAddressType
    /**
     * Options to publish OpenSearch logs to Amazon CloudWatch Logs.
     */
    public val logPublishingOptions: Map? = builder.logPublishingOptions
    /**
     * Node-to-node encryption options for the domain.
     */
    public val nodeToNodeEncryptionOptions: aws.sdk.kotlin.services.opensearch.model.NodeToNodeEncryptionOptions? = builder.nodeToNodeEncryptionOptions
    /**
     * Off-peak window options for the domain.
     */
    public val offPeakWindowOptions: aws.sdk.kotlin.services.opensearch.model.OffPeakWindowOptions? = builder.offPeakWindowOptions
    /**
     * Option to set the time, in UTC format, for the daily automated snapshot. Default value is `0` hours.
     */
    public val snapshotOptions: aws.sdk.kotlin.services.opensearch.model.SnapshotOptions? = builder.snapshotOptions
    /**
     * Service software update options for the domain.
     */
    public val softwareUpdateOptions: aws.sdk.kotlin.services.opensearch.model.SoftwareUpdateOptions? = builder.softwareUpdateOptions
    /**
     * Options to specify the subnets and security groups for a VPC endpoint. For more information, see [Launching your Amazon OpenSearch Service domains using a VPC](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html).
     */
    public val vpcOptions: aws.sdk.kotlin.services.opensearch.model.VpcOptions? = builder.vpcOptions

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

    override fun toString(): kotlin.String = buildString {
        append("UpdateDomainConfigRequest(")
        append("accessPolicies=$accessPolicies,")
        append("advancedOptions=$advancedOptions,")
        append("advancedSecurityOptions=$advancedSecurityOptions,")
        append("aimlOptions=$aimlOptions,")
        append("autoTuneOptions=$autoTuneOptions,")
        append("clusterConfig=$clusterConfig,")
        append("cognitoOptions=$cognitoOptions,")
        append("domainEndpointOptions=$domainEndpointOptions,")
        append("domainName=$domainName,")
        append("dryRun=$dryRun,")
        append("dryRunMode=$dryRunMode,")
        append("ebsOptions=$ebsOptions,")
        append("encryptionAtRestOptions=$encryptionAtRestOptions,")
        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 + (aimlOptions?.hashCode() ?: 0)
        result = 31 * result + (autoTuneOptions?.hashCode() ?: 0)
        result = 31 * result + (clusterConfig?.hashCode() ?: 0)
        result = 31 * result + (cognitoOptions?.hashCode() ?: 0)
        result = 31 * result + (domainEndpointOptions?.hashCode() ?: 0)
        result = 31 * result + (domainName?.hashCode() ?: 0)
        result = 31 * result + (dryRun?.hashCode() ?: 0)
        result = 31 * result + (dryRunMode?.hashCode() ?: 0)
        result = 31 * result + (ebsOptions?.hashCode() ?: 0)
        result = 31 * result + (encryptionAtRestOptions?.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 UpdateDomainConfigRequest

        if (accessPolicies != other.accessPolicies) return false
        if (advancedOptions != other.advancedOptions) return false
        if (advancedSecurityOptions != other.advancedSecurityOptions) return false
        if (aimlOptions != other.aimlOptions) return false
        if (autoTuneOptions != other.autoTuneOptions) return false
        if (clusterConfig != other.clusterConfig) return false
        if (cognitoOptions != other.cognitoOptions) return false
        if (domainEndpointOptions != other.domainEndpointOptions) return false
        if (domainName != other.domainName) return false
        if (dryRun != other.dryRun) return false
        if (dryRunMode != other.dryRunMode) return false
        if (ebsOptions != other.ebsOptions) return false
        if (encryptionAtRestOptions != other.encryptionAtRestOptions) 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.UpdateDomainConfigRequest = Builder(this).apply(block).build()

    @SdkDsl
    public class Builder {
        /**
         * Identity and Access Management (IAM) access policy as a JSON-formatted string.
         */
        public var accessPolicies: kotlin.String? = null
        /**
         * Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:
         * + `"rest.action.multi.allow_explicit_index": "true" | "false"` - Note the use of a string rather than a boolean. Specifies whether explicit references to indexes are allowed inside the body of HTTP requests. If you want to configure access policies for domain sub-resources, such as specific indexes and domain APIs, you must disable this property. Default is true.
         * + `"indices.fielddata.cache.size": "80" ` - Note the use of a string rather than a boolean. Specifies the percentage of heap space allocated to field data. Default is unbounded.
         * + `"indices.query.bool.max_clause_count": "1024"` - Note the use of a string rather than a boolean. Specifies the maximum number of clauses allowed in a Lucene boolean query. Default is 1,024. Queries with more than the permitted number of clauses result in a `TooManyClauses` error.
         *
         * For more information, see [Advanced cluster parameters](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options).
         */
        public var advancedOptions: Map? = null
        /**
         * Options for fine-grained access control.
         */
        public var advancedSecurityOptions: aws.sdk.kotlin.services.opensearch.model.AdvancedSecurityOptionsInput? = null
        /**
         * Options for all machine learning features for the specified domain.
         */
        public var aimlOptions: aws.sdk.kotlin.services.opensearch.model.AimlOptionsInput? = null
        /**
         * Options for Auto-Tune.
         */
        public var autoTuneOptions: aws.sdk.kotlin.services.opensearch.model.AutoTuneOptions? = null
        /**
         * Changes that you want to make to the cluster configuration, such as the instance type and number of EC2 instances.
         */
        public var clusterConfig: aws.sdk.kotlin.services.opensearch.model.ClusterConfig? = null
        /**
         * Key-value pairs to configure Amazon Cognito authentication for OpenSearch Dashboards.
         */
        public var cognitoOptions: aws.sdk.kotlin.services.opensearch.model.CognitoOptions? = 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.DomainEndpointOptions? = null
        /**
         * The name of the domain that you're updating.
         */
        public var domainName: kotlin.String? = null
        /**
         * This flag, when set to True, specifies whether the `UpdateDomain` request should return the results of a dry run analysis without actually applying the change. A dry run determines what type of deployment the update will cause.
         */
        public var dryRun: kotlin.Boolean? = null
        /**
         * The type of dry run to perform.
         * + `Basic` only returns the type of deployment (blue/green or dynamic) that the update will cause.
         * + `Verbose` runs an additional check to validate the changes you're making. For more information, see [Validating a domain update](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-configuration-changes#validation-check).
         */
        public var dryRunMode: aws.sdk.kotlin.services.opensearch.model.DryRunMode? = null
        /**
         * The type and size of the EBS volume to attach to instances in the domain.
         */
        public var ebsOptions: aws.sdk.kotlin.services.opensearch.model.EbsOptions? = null
        /**
         * Encryption at rest options for the domain.
         */
        public var encryptionAtRestOptions: aws.sdk.kotlin.services.opensearch.model.EncryptionAtRestOptions? = null
        /**
         * Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain resources across IPv4 and IPv6 address types, and is the recommended option. If your IP address type is currently set to dual stack, you can't change it.
         */
        public var ipAddressType: aws.sdk.kotlin.services.opensearch.model.IpAddressType? = null
        /**
         * Options to publish OpenSearch logs to Amazon CloudWatch Logs.
         */
        public var logPublishingOptions: Map? = null
        /**
         * Node-to-node encryption options for the domain.
         */
        public var nodeToNodeEncryptionOptions: aws.sdk.kotlin.services.opensearch.model.NodeToNodeEncryptionOptions? = null
        /**
         * Off-peak window options for the domain.
         */
        public var offPeakWindowOptions: aws.sdk.kotlin.services.opensearch.model.OffPeakWindowOptions? = null
        /**
         * Option to set the time, in UTC format, for the daily automated snapshot. Default value is `0` hours.
         */
        public var snapshotOptions: aws.sdk.kotlin.services.opensearch.model.SnapshotOptions? = null
        /**
         * Service software update options for the domain.
         */
        public var softwareUpdateOptions: aws.sdk.kotlin.services.opensearch.model.SoftwareUpdateOptions? = null
        /**
         * Options to specify the subnets and security groups for a VPC endpoint. For more information, see [Launching your Amazon OpenSearch Service domains using a VPC](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html).
         */
        public var vpcOptions: aws.sdk.kotlin.services.opensearch.model.VpcOptions? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.opensearch.model.UpdateDomainConfigRequest) : this() {
            this.accessPolicies = x.accessPolicies
            this.advancedOptions = x.advancedOptions
            this.advancedSecurityOptions = x.advancedSecurityOptions
            this.aimlOptions = x.aimlOptions
            this.autoTuneOptions = x.autoTuneOptions
            this.clusterConfig = x.clusterConfig
            this.cognitoOptions = x.cognitoOptions
            this.domainEndpointOptions = x.domainEndpointOptions
            this.domainName = x.domainName
            this.dryRun = x.dryRun
            this.dryRunMode = x.dryRunMode
            this.ebsOptions = x.ebsOptions
            this.encryptionAtRestOptions = x.encryptionAtRestOptions
            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.UpdateDomainConfigRequest = UpdateDomainConfigRequest(this)

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

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

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

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

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

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

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

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

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

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

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

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy