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

com.pulumi.awsnative.cassandra.kotlin.inputs.TableTargetTrackingScalingPolicyConfigurationArgs.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: 0.122.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.cassandra.kotlin.inputs

import com.pulumi.awsnative.cassandra.inputs.TableTargetTrackingScalingPolicyConfigurationArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Int
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Represents configuration for target tracking scaling policy.
 * @property disableScaleIn Specifies if `scale-in` is enabled.
 * When auto scaling automatically decreases capacity for a table, the table *scales in* . When scaling policies are set, they can't scale in the table lower than its minimum capacity.
 * @property scaleInCooldown Specifies a `scale-in` cool down period.
 * A cooldown period in seconds between scaling activities that lets the table stabilize before another scaling activity starts.
 * @property scaleOutCooldown Specifies a scale out cool down period.
 * A cooldown period in seconds between scaling activities that lets the table stabilize before another scaling activity starts.
 * @property targetValue Specifies the target value for the target tracking auto scaling policy.
 * Amazon Keyspaces auto scaling scales up capacity automatically when traffic exceeds this target utilization rate, and then back down when it falls below the target. This ensures that the ratio of consumed capacity to provisioned capacity stays at or near this value. You define `targetValue` as a percentage. An `integer` between 20 and 90.
 */
public data class TableTargetTrackingScalingPolicyConfigurationArgs(
    public val disableScaleIn: Output? = null,
    public val scaleInCooldown: Output? = null,
    public val scaleOutCooldown: Output? = null,
    public val targetValue: Output,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.cassandra.inputs.TableTargetTrackingScalingPolicyConfigurationArgs =
        com.pulumi.awsnative.cassandra.inputs.TableTargetTrackingScalingPolicyConfigurationArgs.builder()
            .disableScaleIn(disableScaleIn?.applyValue({ args0 -> args0 }))
            .scaleInCooldown(scaleInCooldown?.applyValue({ args0 -> args0 }))
            .scaleOutCooldown(scaleOutCooldown?.applyValue({ args0 -> args0 }))
            .targetValue(targetValue.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [TableTargetTrackingScalingPolicyConfigurationArgs].
 */
@PulumiTagMarker
public class TableTargetTrackingScalingPolicyConfigurationArgsBuilder internal constructor() {
    private var disableScaleIn: Output? = null

    private var scaleInCooldown: Output? = null

    private var scaleOutCooldown: Output? = null

    private var targetValue: Output? = null

    /**
     * @param value Specifies if `scale-in` is enabled.
     * When auto scaling automatically decreases capacity for a table, the table *scales in* . When scaling policies are set, they can't scale in the table lower than its minimum capacity.
     */
    @JvmName("emywhgkrtjivsmvp")
    public suspend fun disableScaleIn(`value`: Output) {
        this.disableScaleIn = value
    }

    /**
     * @param value Specifies a `scale-in` cool down period.
     * A cooldown period in seconds between scaling activities that lets the table stabilize before another scaling activity starts.
     */
    @JvmName("pkxudwhkeeacaokd")
    public suspend fun scaleInCooldown(`value`: Output) {
        this.scaleInCooldown = value
    }

    /**
     * @param value Specifies a scale out cool down period.
     * A cooldown period in seconds between scaling activities that lets the table stabilize before another scaling activity starts.
     */
    @JvmName("aqwpbhqoycteqtuf")
    public suspend fun scaleOutCooldown(`value`: Output) {
        this.scaleOutCooldown = value
    }

    /**
     * @param value Specifies the target value for the target tracking auto scaling policy.
     * Amazon Keyspaces auto scaling scales up capacity automatically when traffic exceeds this target utilization rate, and then back down when it falls below the target. This ensures that the ratio of consumed capacity to provisioned capacity stays at or near this value. You define `targetValue` as a percentage. An `integer` between 20 and 90.
     */
    @JvmName("qarxiyaqqrmeqifv")
    public suspend fun targetValue(`value`: Output) {
        this.targetValue = value
    }

    /**
     * @param value Specifies if `scale-in` is enabled.
     * When auto scaling automatically decreases capacity for a table, the table *scales in* . When scaling policies are set, they can't scale in the table lower than its minimum capacity.
     */
    @JvmName("sighjwquardrcwrx")
    public suspend fun disableScaleIn(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.disableScaleIn = mapped
    }

    /**
     * @param value Specifies a `scale-in` cool down period.
     * A cooldown period in seconds between scaling activities that lets the table stabilize before another scaling activity starts.
     */
    @JvmName("yebjryufqcmfuckb")
    public suspend fun scaleInCooldown(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scaleInCooldown = mapped
    }

    /**
     * @param value Specifies a scale out cool down period.
     * A cooldown period in seconds between scaling activities that lets the table stabilize before another scaling activity starts.
     */
    @JvmName("mfnjsdhofbxltkcc")
    public suspend fun scaleOutCooldown(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scaleOutCooldown = mapped
    }

    /**
     * @param value Specifies the target value for the target tracking auto scaling policy.
     * Amazon Keyspaces auto scaling scales up capacity automatically when traffic exceeds this target utilization rate, and then back down when it falls below the target. This ensures that the ratio of consumed capacity to provisioned capacity stays at or near this value. You define `targetValue` as a percentage. An `integer` between 20 and 90.
     */
    @JvmName("rrecopyqcjtvgjxn")
    public suspend fun targetValue(`value`: Int) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.targetValue = mapped
    }

    internal fun build(): TableTargetTrackingScalingPolicyConfigurationArgs =
        TableTargetTrackingScalingPolicyConfigurationArgs(
            disableScaleIn = disableScaleIn,
            scaleInCooldown = scaleInCooldown,
            scaleOutCooldown = scaleOutCooldown,
            targetValue = targetValue ?: throw PulumiNullFieldException("targetValue"),
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy