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

com.pulumi.gcp.bigtable.kotlin.inputs.InstanceClusterAutoscalingConfigArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 8.12.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.bigtable.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.bigtable.inputs.InstanceClusterAutoscalingConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Int
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property cpuTarget The target CPU utilization for autoscaling, in percentage. Must be between 10 and 80.
 * @property maxNodes The maximum number of nodes for autoscaling.
 * @property minNodes The minimum number of nodes for autoscaling.
 * @property storageTarget The target storage utilization for autoscaling, in GB, for each node in a cluster. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16 TiB) for an HDD cluster. If not set, whatever is already set for the cluster will not change, or if the cluster is just being created, it will use the default value of 2560 for SSD clusters and 8192 for HDD clusters.
 * !> **Warning**: Only one of `autoscaling_config` or `num_nodes` should be set for a cluster. If both are set, `num_nodes` is ignored. If none is set, autoscaling will be disabled and sized to the current node count.
 */
public data class InstanceClusterAutoscalingConfigArgs(
    public val cpuTarget: Output,
    public val maxNodes: Output,
    public val minNodes: Output,
    public val storageTarget: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.bigtable.inputs.InstanceClusterAutoscalingConfigArgs =
        com.pulumi.gcp.bigtable.inputs.InstanceClusterAutoscalingConfigArgs.builder()
            .cpuTarget(cpuTarget.applyValue({ args0 -> args0 }))
            .maxNodes(maxNodes.applyValue({ args0 -> args0 }))
            .minNodes(minNodes.applyValue({ args0 -> args0 }))
            .storageTarget(storageTarget?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [InstanceClusterAutoscalingConfigArgs].
 */
@PulumiTagMarker
public class InstanceClusterAutoscalingConfigArgsBuilder internal constructor() {
    private var cpuTarget: Output? = null

    private var maxNodes: Output? = null

    private var minNodes: Output? = null

    private var storageTarget: Output? = null

    /**
     * @param value The target CPU utilization for autoscaling, in percentage. Must be between 10 and 80.
     */
    @JvmName("ddcnpvoboswcekgf")
    public suspend fun cpuTarget(`value`: Output) {
        this.cpuTarget = value
    }

    /**
     * @param value The maximum number of nodes for autoscaling.
     */
    @JvmName("kycaetroscnqgknl")
    public suspend fun maxNodes(`value`: Output) {
        this.maxNodes = value
    }

    /**
     * @param value The minimum number of nodes for autoscaling.
     */
    @JvmName("ohmefhfshovdtkyj")
    public suspend fun minNodes(`value`: Output) {
        this.minNodes = value
    }

    /**
     * @param value The target storage utilization for autoscaling, in GB, for each node in a cluster. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16 TiB) for an HDD cluster. If not set, whatever is already set for the cluster will not change, or if the cluster is just being created, it will use the default value of 2560 for SSD clusters and 8192 for HDD clusters.
     * !> **Warning**: Only one of `autoscaling_config` or `num_nodes` should be set for a cluster. If both are set, `num_nodes` is ignored. If none is set, autoscaling will be disabled and sized to the current node count.
     */
    @JvmName("btfffluogxlrxhwn")
    public suspend fun storageTarget(`value`: Output) {
        this.storageTarget = value
    }

    /**
     * @param value The target CPU utilization for autoscaling, in percentage. Must be between 10 and 80.
     */
    @JvmName("bwtdlggheboccros")
    public suspend fun cpuTarget(`value`: Int) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.cpuTarget = mapped
    }

    /**
     * @param value The maximum number of nodes for autoscaling.
     */
    @JvmName("rllpvirkrerbheld")
    public suspend fun maxNodes(`value`: Int) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.maxNodes = mapped
    }

    /**
     * @param value The minimum number of nodes for autoscaling.
     */
    @JvmName("srifnqpyuivolwoo")
    public suspend fun minNodes(`value`: Int) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.minNodes = mapped
    }

    /**
     * @param value The target storage utilization for autoscaling, in GB, for each node in a cluster. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16 TiB) for an HDD cluster. If not set, whatever is already set for the cluster will not change, or if the cluster is just being created, it will use the default value of 2560 for SSD clusters and 8192 for HDD clusters.
     * !> **Warning**: Only one of `autoscaling_config` or `num_nodes` should be set for a cluster. If both are set, `num_nodes` is ignored. If none is set, autoscaling will be disabled and sized to the current node count.
     */
    @JvmName("kbbmuekmpvdqtfds")
    public suspend fun storageTarget(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageTarget = mapped
    }

    internal fun build(): InstanceClusterAutoscalingConfigArgs = InstanceClusterAutoscalingConfigArgs(
        cpuTarget = cpuTarget ?: throw PulumiNullFieldException("cpuTarget"),
        maxNodes = maxNodes ?: throw PulumiNullFieldException("maxNodes"),
        minNodes = minNodes ?: throw PulumiNullFieldException("minNodes"),
        storageTarget = storageTarget,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy