com.pulumi.awsnative.cassandra.kotlin.inputs.TableTargetTrackingScalingPolicyConfigurationArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-aws-native-kotlin Show documentation
Show all versions of pulumi-aws-native-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@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"),
)
}