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

com.pulumi.awsnative.opensearchservice.kotlin.inputs.DomainClusterConfigArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.opensearchservice.kotlin.inputs

import com.pulumi.awsnative.opensearchservice.inputs.DomainClusterConfigArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property coldStorageOptions Container for cold storage configuration options.
 * @property dedicatedMasterCount The number of instances to use for the master node. If you specify this property, you must specify `true` for the `DedicatedMasterEnabled` property.
 * @property dedicatedMasterEnabled Indicates whether to use a dedicated master node for the OpenSearch Service domain. A dedicated master node is a cluster node that performs cluster management tasks, but doesn't hold data or respond to data upload requests. Dedicated master nodes offload cluster management tasks to increase the stability of your search clusters. See [Dedicated master nodes in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-dedicatedmasternodes.html) .
 * @property dedicatedMasterType The hardware configuration of the computer that hosts the dedicated master node, such as `m3.medium.search` . If you specify this property, you must specify `true` for the `DedicatedMasterEnabled` property. For valid values, see [Supported instance types in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) .
 * @property instanceCount The number of data nodes (instances) to use in the OpenSearch Service domain.
 * @property instanceType The instance type for your data nodes, such as `m3.medium.search` . For valid values, see [Supported instance types in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) .
 * @property multiAzWithStandbyEnabled Indicates whether Multi-AZ with Standby deployment option is enabled. For more information, see [Multi-AZ with Standby](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html#managedomains-za-standby) .
 * @property warmCount The number of warm nodes in the cluster.
 * @property warmEnabled Whether to enable UltraWarm storage for the cluster. See [UltraWarm storage for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ultrawarm.html) .
 * @property warmType The instance type for the cluster's warm nodes.
 * @property zoneAwarenessConfig Specifies zone awareness configuration options. Only use if `ZoneAwarenessEnabled` is `true` .
 * @property zoneAwarenessEnabled Indicates whether to enable zone awareness for the OpenSearch Service domain. When you enable zone awareness, OpenSearch Service allocates the nodes and replica index shards that belong to a cluster across two Availability Zones (AZs) in the same region to prevent data loss and minimize downtime in the event of node or data center failure. Don't enable zone awareness if your cluster has no replica index shards or is a single-node cluster. For more information, see [Configuring a multi-AZ domain in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html) .
 */
public data class DomainClusterConfigArgs(
    public val coldStorageOptions: Output? = null,
    public val dedicatedMasterCount: Output? = null,
    public val dedicatedMasterEnabled: Output? = null,
    public val dedicatedMasterType: Output? = null,
    public val instanceCount: Output? = null,
    public val instanceType: Output? = null,
    public val multiAzWithStandbyEnabled: Output? = null,
    public val warmCount: Output? = null,
    public val warmEnabled: Output? = null,
    public val warmType: Output? = null,
    public val zoneAwarenessConfig: Output? = null,
    public val zoneAwarenessEnabled: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.opensearchservice.inputs.DomainClusterConfigArgs =
        com.pulumi.awsnative.opensearchservice.inputs.DomainClusterConfigArgs.builder()
            .coldStorageOptions(
                coldStorageOptions?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .dedicatedMasterCount(dedicatedMasterCount?.applyValue({ args0 -> args0 }))
            .dedicatedMasterEnabled(dedicatedMasterEnabled?.applyValue({ args0 -> args0 }))
            .dedicatedMasterType(dedicatedMasterType?.applyValue({ args0 -> args0 }))
            .instanceCount(instanceCount?.applyValue({ args0 -> args0 }))
            .instanceType(instanceType?.applyValue({ args0 -> args0 }))
            .multiAzWithStandbyEnabled(multiAzWithStandbyEnabled?.applyValue({ args0 -> args0 }))
            .warmCount(warmCount?.applyValue({ args0 -> args0 }))
            .warmEnabled(warmEnabled?.applyValue({ args0 -> args0 }))
            .warmType(warmType?.applyValue({ args0 -> args0 }))
            .zoneAwarenessConfig(
                zoneAwarenessConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .zoneAwarenessEnabled(zoneAwarenessEnabled?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [DomainClusterConfigArgs].
 */
@PulumiTagMarker
public class DomainClusterConfigArgsBuilder internal constructor() {
    private var coldStorageOptions: Output? = null

    private var dedicatedMasterCount: Output? = null

    private var dedicatedMasterEnabled: Output? = null

    private var dedicatedMasterType: Output? = null

    private var instanceCount: Output? = null

    private var instanceType: Output? = null

    private var multiAzWithStandbyEnabled: Output? = null

    private var warmCount: Output? = null

    private var warmEnabled: Output? = null

    private var warmType: Output? = null

    private var zoneAwarenessConfig: Output? = null

    private var zoneAwarenessEnabled: Output? = null

    /**
     * @param value Container for cold storage configuration options.
     */
    @JvmName("gvnjsjvorwppdnsy")
    public suspend fun coldStorageOptions(`value`: Output) {
        this.coldStorageOptions = value
    }

    /**
     * @param value The number of instances to use for the master node. If you specify this property, you must specify `true` for the `DedicatedMasterEnabled` property.
     */
    @JvmName("tuxowdosyhopxihd")
    public suspend fun dedicatedMasterCount(`value`: Output) {
        this.dedicatedMasterCount = value
    }

    /**
     * @param value Indicates whether to use a dedicated master node for the OpenSearch Service domain. A dedicated master node is a cluster node that performs cluster management tasks, but doesn't hold data or respond to data upload requests. Dedicated master nodes offload cluster management tasks to increase the stability of your search clusters. See [Dedicated master nodes in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-dedicatedmasternodes.html) .
     */
    @JvmName("exbqjygriqmsreyl")
    public suspend fun dedicatedMasterEnabled(`value`: Output) {
        this.dedicatedMasterEnabled = value
    }

    /**
     * @param value The hardware configuration of the computer that hosts the dedicated master node, such as `m3.medium.search` . If you specify this property, you must specify `true` for the `DedicatedMasterEnabled` property. For valid values, see [Supported instance types in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) .
     */
    @JvmName("nxsuumblegrqedto")
    public suspend fun dedicatedMasterType(`value`: Output) {
        this.dedicatedMasterType = value
    }

    /**
     * @param value The number of data nodes (instances) to use in the OpenSearch Service domain.
     */
    @JvmName("mqdycatcmjclmqut")
    public suspend fun instanceCount(`value`: Output) {
        this.instanceCount = value
    }

    /**
     * @param value The instance type for your data nodes, such as `m3.medium.search` . For valid values, see [Supported instance types in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) .
     */
    @JvmName("ffcgnyawkytkjesl")
    public suspend fun instanceType(`value`: Output) {
        this.instanceType = value
    }

    /**
     * @param value Indicates whether Multi-AZ with Standby deployment option is enabled. For more information, see [Multi-AZ with Standby](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html#managedomains-za-standby) .
     */
    @JvmName("lrqwnobwkltjsnxt")
    public suspend fun multiAzWithStandbyEnabled(`value`: Output) {
        this.multiAzWithStandbyEnabled = value
    }

    /**
     * @param value The number of warm nodes in the cluster.
     */
    @JvmName("jwqcethyodouanac")
    public suspend fun warmCount(`value`: Output) {
        this.warmCount = value
    }

    /**
     * @param value Whether to enable UltraWarm storage for the cluster. See [UltraWarm storage for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ultrawarm.html) .
     */
    @JvmName("waeitfxhvwuwksik")
    public suspend fun warmEnabled(`value`: Output) {
        this.warmEnabled = value
    }

    /**
     * @param value The instance type for the cluster's warm nodes.
     */
    @JvmName("lomqnnfmljjjpdnd")
    public suspend fun warmType(`value`: Output) {
        this.warmType = value
    }

    /**
     * @param value Specifies zone awareness configuration options. Only use if `ZoneAwarenessEnabled` is `true` .
     */
    @JvmName("fimteowjcndxaagy")
    public suspend fun zoneAwarenessConfig(`value`: Output) {
        this.zoneAwarenessConfig = value
    }

    /**
     * @param value Indicates whether to enable zone awareness for the OpenSearch Service domain. When you enable zone awareness, OpenSearch Service allocates the nodes and replica index shards that belong to a cluster across two Availability Zones (AZs) in the same region to prevent data loss and minimize downtime in the event of node or data center failure. Don't enable zone awareness if your cluster has no replica index shards or is a single-node cluster. For more information, see [Configuring a multi-AZ domain in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html) .
     */
    @JvmName("frrqqelegceammph")
    public suspend fun zoneAwarenessEnabled(`value`: Output) {
        this.zoneAwarenessEnabled = value
    }

    /**
     * @param value Container for cold storage configuration options.
     */
    @JvmName("dgjrygncneqnrxed")
    public suspend fun coldStorageOptions(`value`: DomainColdStorageOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.coldStorageOptions = mapped
    }

    /**
     * @param argument Container for cold storage configuration options.
     */
    @JvmName("qvxlhynlyqiycucv")
    public suspend fun coldStorageOptions(argument: suspend DomainColdStorageOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = DomainColdStorageOptionsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.coldStorageOptions = mapped
    }

    /**
     * @param value The number of instances to use for the master node. If you specify this property, you must specify `true` for the `DedicatedMasterEnabled` property.
     */
    @JvmName("runspxogtxpkpjye")
    public suspend fun dedicatedMasterCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dedicatedMasterCount = mapped
    }

    /**
     * @param value Indicates whether to use a dedicated master node for the OpenSearch Service domain. A dedicated master node is a cluster node that performs cluster management tasks, but doesn't hold data or respond to data upload requests. Dedicated master nodes offload cluster management tasks to increase the stability of your search clusters. See [Dedicated master nodes in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-dedicatedmasternodes.html) .
     */
    @JvmName("ofrnlebkgygwpadk")
    public suspend fun dedicatedMasterEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dedicatedMasterEnabled = mapped
    }

    /**
     * @param value The hardware configuration of the computer that hosts the dedicated master node, such as `m3.medium.search` . If you specify this property, you must specify `true` for the `DedicatedMasterEnabled` property. For valid values, see [Supported instance types in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) .
     */
    @JvmName("ondeopkicpijivqk")
    public suspend fun dedicatedMasterType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dedicatedMasterType = mapped
    }

    /**
     * @param value The number of data nodes (instances) to use in the OpenSearch Service domain.
     */
    @JvmName("bolrwdsucigyhgrf")
    public suspend fun instanceCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceCount = mapped
    }

    /**
     * @param value The instance type for your data nodes, such as `m3.medium.search` . For valid values, see [Supported instance types in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html) .
     */
    @JvmName("fpkkccabbhtddqrp")
    public suspend fun instanceType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceType = mapped
    }

    /**
     * @param value Indicates whether Multi-AZ with Standby deployment option is enabled. For more information, see [Multi-AZ with Standby](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html#managedomains-za-standby) .
     */
    @JvmName("leqngkpsulthlpky")
    public suspend fun multiAzWithStandbyEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.multiAzWithStandbyEnabled = mapped
    }

    /**
     * @param value The number of warm nodes in the cluster.
     */
    @JvmName("skqocaekxgfbqiyv")
    public suspend fun warmCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.warmCount = mapped
    }

    /**
     * @param value Whether to enable UltraWarm storage for the cluster. See [UltraWarm storage for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ultrawarm.html) .
     */
    @JvmName("tvposiwhaqoqwcfx")
    public suspend fun warmEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.warmEnabled = mapped
    }

    /**
     * @param value The instance type for the cluster's warm nodes.
     */
    @JvmName("nmpacufynjekqasq")
    public suspend fun warmType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.warmType = mapped
    }

    /**
     * @param value Specifies zone awareness configuration options. Only use if `ZoneAwarenessEnabled` is `true` .
     */
    @JvmName("emgtjccbidalxalp")
    public suspend fun zoneAwarenessConfig(`value`: DomainZoneAwarenessConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.zoneAwarenessConfig = mapped
    }

    /**
     * @param argument Specifies zone awareness configuration options. Only use if `ZoneAwarenessEnabled` is `true` .
     */
    @JvmName("sikxnqpykhqhmkcb")
    public suspend fun zoneAwarenessConfig(argument: suspend DomainZoneAwarenessConfigArgsBuilder.() -> Unit) {
        val toBeMapped = DomainZoneAwarenessConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.zoneAwarenessConfig = mapped
    }

    /**
     * @param value Indicates whether to enable zone awareness for the OpenSearch Service domain. When you enable zone awareness, OpenSearch Service allocates the nodes and replica index shards that belong to a cluster across two Availability Zones (AZs) in the same region to prevent data loss and minimize downtime in the event of node or data center failure. Don't enable zone awareness if your cluster has no replica index shards or is a single-node cluster. For more information, see [Configuring a multi-AZ domain in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html) .
     */
    @JvmName("qqtcytoxbpsomvpa")
    public suspend fun zoneAwarenessEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.zoneAwarenessEnabled = mapped
    }

    internal fun build(): DomainClusterConfigArgs = DomainClusterConfigArgs(
        coldStorageOptions = coldStorageOptions,
        dedicatedMasterCount = dedicatedMasterCount,
        dedicatedMasterEnabled = dedicatedMasterEnabled,
        dedicatedMasterType = dedicatedMasterType,
        instanceCount = instanceCount,
        instanceType = instanceType,
        multiAzWithStandbyEnabled = multiAzWithStandbyEnabled,
        warmCount = warmCount,
        warmEnabled = warmEnabled,
        warmType = warmType,
        zoneAwarenessConfig = zoneAwarenessConfig,
        zoneAwarenessEnabled = zoneAwarenessEnabled,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy