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

com.pulumi.awsnative.dynamodb.kotlin.inputs.GlobalTableTargetTrackingScalingPolicyConfigurationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.dynamodb.kotlin.inputs

import com.pulumi.awsnative.dynamodb.inputs.GlobalTableTargetTrackingScalingPolicyConfigurationArgs.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.Double
import kotlin.Int
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property disableScaleIn Indicates whether scale in by the target tracking scaling policy is disabled. The default value is `false` .
 * @property scaleInCooldown The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.
 * @property scaleOutCooldown The amount of time, in seconds, after a scale-out activity completes before another scale-out activity can start.
 * @property targetValue Defines a target value for the scaling policy.
 */
public data class GlobalTableTargetTrackingScalingPolicyConfigurationArgs(
    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.dynamodb.inputs.GlobalTableTargetTrackingScalingPolicyConfigurationArgs =
        com.pulumi.awsnative.dynamodb.inputs.GlobalTableTargetTrackingScalingPolicyConfigurationArgs.builder()
            .disableScaleIn(disableScaleIn?.applyValue({ args0 -> args0 }))
            .scaleInCooldown(scaleInCooldown?.applyValue({ args0 -> args0 }))
            .scaleOutCooldown(scaleOutCooldown?.applyValue({ args0 -> args0 }))
            .targetValue(targetValue.applyValue({ args0 -> args0 })).build()
}

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

    private var scaleInCooldown: Output? = null

    private var scaleOutCooldown: Output? = null

    private var targetValue: Output? = null

    /**
     * @param value Indicates whether scale in by the target tracking scaling policy is disabled. The default value is `false` .
     */
    @JvmName("isybojgfxvhxcobg")
    public suspend fun disableScaleIn(`value`: Output) {
        this.disableScaleIn = value
    }

    /**
     * @param value The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.
     */
    @JvmName("fdejgmuiilfwfbql")
    public suspend fun scaleInCooldown(`value`: Output) {
        this.scaleInCooldown = value
    }

    /**
     * @param value The amount of time, in seconds, after a scale-out activity completes before another scale-out activity can start.
     */
    @JvmName("erwmkfjopyemwrgo")
    public suspend fun scaleOutCooldown(`value`: Output) {
        this.scaleOutCooldown = value
    }

    /**
     * @param value Defines a target value for the scaling policy.
     */
    @JvmName("totihdoulhdfpkxw")
    public suspend fun targetValue(`value`: Output) {
        this.targetValue = value
    }

    /**
     * @param value Indicates whether scale in by the target tracking scaling policy is disabled. The default value is `false` .
     */
    @JvmName("hshqrgjtcnrcwrci")
    public suspend fun disableScaleIn(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.disableScaleIn = mapped
    }

    /**
     * @param value The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.
     */
    @JvmName("xlngvxywdonotwcl")
    public suspend fun scaleInCooldown(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scaleInCooldown = mapped
    }

    /**
     * @param value The amount of time, in seconds, after a scale-out activity completes before another scale-out activity can start.
     */
    @JvmName("chrheqeftyscqoxs")
    public suspend fun scaleOutCooldown(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scaleOutCooldown = mapped
    }

    /**
     * @param value Defines a target value for the scaling policy.
     */
    @JvmName("gpkeppmwpbtvcybf")
    public suspend fun targetValue(`value`: Double) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.targetValue = mapped
    }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy