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



/**
 * 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 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
    /**
     * The type of IP addresses supported by the endpoint for the domain.
     */
    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("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 + (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 (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()

    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 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
        /**
         * The type of IP addresses supported by the endpoint for the domain.
         */
        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.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.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