com.pulumi.awsnative.autoscaling.kotlin.inputs.ScalingPolicyPredictiveScalingMetricSpecificationArgs.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.autoscaling.kotlin.inputs
import com.pulumi.awsnative.autoscaling.inputs.ScalingPolicyPredictiveScalingMetricSpecificationArgs.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 com.pulumi.kotlin.applySuspend
import kotlin.Double
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName
/**
*
* @property customizedCapacityMetricSpecification The customized capacity metric specification.
* @property customizedLoadMetricSpecification The customized load metric specification.
* @property customizedScalingMetricSpecification The customized scaling metric specification.
* @property predefinedLoadMetricSpecification The predefined load metric specification.
* @property predefinedMetricPairSpecification The predefined metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
* @property predefinedScalingMetricSpecification The predefined scaling metric specification.
* @property targetValue Specifies the target utilization.
* > Some metrics are based on a count instead of a percentage, such as the request count for an Application Load Balancer or the number of messages in an SQS queue. If the scaling policy specifies one of these metrics, specify the target utilization as the optimal average request or message count per instance during any one-minute interval.
*/
public data class ScalingPolicyPredictiveScalingMetricSpecificationArgs(
public val customizedCapacityMetricSpecification: Output? = null,
public val customizedLoadMetricSpecification: Output? = null,
public val customizedScalingMetricSpecification: Output? = null,
public val predefinedLoadMetricSpecification: Output? = null,
public val predefinedMetricPairSpecification: Output? = null,
public val predefinedScalingMetricSpecification: Output? = null,
public val targetValue: Output,
) :
ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.autoscaling.inputs.ScalingPolicyPredictiveScalingMetricSpecificationArgs =
com.pulumi.awsnative.autoscaling.inputs.ScalingPolicyPredictiveScalingMetricSpecificationArgs.builder()
.customizedCapacityMetricSpecification(
customizedCapacityMetricSpecification?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.customizedLoadMetricSpecification(
customizedLoadMetricSpecification?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.customizedScalingMetricSpecification(
customizedScalingMetricSpecification?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.predefinedLoadMetricSpecification(
predefinedLoadMetricSpecification?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.predefinedMetricPairSpecification(
predefinedMetricPairSpecification?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.predefinedScalingMetricSpecification(
predefinedScalingMetricSpecification?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.targetValue(targetValue.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [ScalingPolicyPredictiveScalingMetricSpecificationArgs].
*/
@PulumiTagMarker
public class ScalingPolicyPredictiveScalingMetricSpecificationArgsBuilder internal constructor() {
private var customizedCapacityMetricSpecification:
Output? = null
private var customizedLoadMetricSpecification:
Output? = null
private var customizedScalingMetricSpecification:
Output? = null
private var predefinedLoadMetricSpecification:
Output? = null
private var predefinedMetricPairSpecification:
Output? = null
private var predefinedScalingMetricSpecification:
Output? = null
private var targetValue: Output? = null
/**
* @param value The customized capacity metric specification.
*/
@JvmName("kodslmnbhldfingr")
public suspend fun customizedCapacityMetricSpecification(`value`: Output) {
this.customizedCapacityMetricSpecification = value
}
/**
* @param value The customized load metric specification.
*/
@JvmName("tlydkvckcuuhwrpn")
public suspend fun customizedLoadMetricSpecification(`value`: Output) {
this.customizedLoadMetricSpecification = value
}
/**
* @param value The customized scaling metric specification.
*/
@JvmName("nntxgdsebmavihcb")
public suspend fun customizedScalingMetricSpecification(`value`: Output) {
this.customizedScalingMetricSpecification = value
}
/**
* @param value The predefined load metric specification.
*/
@JvmName("wrqrnytcnmivwarc")
public suspend fun predefinedLoadMetricSpecification(`value`: Output) {
this.predefinedLoadMetricSpecification = value
}
/**
* @param value The predefined metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
*/
@JvmName("mvjcdpjsdbnrviio")
public suspend fun predefinedMetricPairSpecification(`value`: Output) {
this.predefinedMetricPairSpecification = value
}
/**
* @param value The predefined scaling metric specification.
*/
@JvmName("pqppypyfwvhrhvby")
public suspend fun predefinedScalingMetricSpecification(`value`: Output) {
this.predefinedScalingMetricSpecification = value
}
/**
* @param value Specifies the target utilization.
* > Some metrics are based on a count instead of a percentage, such as the request count for an Application Load Balancer or the number of messages in an SQS queue. If the scaling policy specifies one of these metrics, specify the target utilization as the optimal average request or message count per instance during any one-minute interval.
*/
@JvmName("kjelmtokjbkeenjo")
public suspend fun targetValue(`value`: Output) {
this.targetValue = value
}
/**
* @param value The customized capacity metric specification.
*/
@JvmName("rerijisqkeyslysc")
public suspend fun customizedCapacityMetricSpecification(`value`: ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.customizedCapacityMetricSpecification = mapped
}
/**
* @param argument The customized capacity metric specification.
*/
@JvmName("fdnfrjxxcpyjxuix")
public suspend fun customizedCapacityMetricSpecification(argument: suspend ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgsBuilder.() -> Unit) {
val toBeMapped =
ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.customizedCapacityMetricSpecification = mapped
}
/**
* @param value The customized load metric specification.
*/
@JvmName("hdvggloleteuoqgl")
public suspend fun customizedLoadMetricSpecification(`value`: ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.customizedLoadMetricSpecification = mapped
}
/**
* @param argument The customized load metric specification.
*/
@JvmName("pgsmorhuuqnhaudq")
public suspend fun customizedLoadMetricSpecification(argument: suspend ScalingPolicyPredictiveScalingCustomizedLoadMetricArgsBuilder.() -> Unit) {
val toBeMapped = ScalingPolicyPredictiveScalingCustomizedLoadMetricArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.customizedLoadMetricSpecification = mapped
}
/**
* @param value The customized scaling metric specification.
*/
@JvmName("wwxkaqbtsdtgirff")
public suspend fun customizedScalingMetricSpecification(`value`: ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.customizedScalingMetricSpecification = mapped
}
/**
* @param argument The customized scaling metric specification.
*/
@JvmName("ukglyxrosglhognc")
public suspend fun customizedScalingMetricSpecification(argument: suspend ScalingPolicyPredictiveScalingCustomizedScalingMetricArgsBuilder.() -> Unit) {
val toBeMapped =
ScalingPolicyPredictiveScalingCustomizedScalingMetricArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.customizedScalingMetricSpecification = mapped
}
/**
* @param value The predefined load metric specification.
*/
@JvmName("mtmtmrratuddasbw")
public suspend fun predefinedLoadMetricSpecification(`value`: ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.predefinedLoadMetricSpecification = mapped
}
/**
* @param argument The predefined load metric specification.
*/
@JvmName("kmwajogocjcgwluf")
public suspend fun predefinedLoadMetricSpecification(argument: suspend ScalingPolicyPredictiveScalingPredefinedLoadMetricArgsBuilder.() -> Unit) {
val toBeMapped = ScalingPolicyPredictiveScalingPredefinedLoadMetricArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.predefinedLoadMetricSpecification = mapped
}
/**
* @param value The predefined metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
*/
@JvmName("irgkcrbiwgfyqomv")
public suspend fun predefinedMetricPairSpecification(`value`: ScalingPolicyPredictiveScalingPredefinedMetricPairArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.predefinedMetricPairSpecification = mapped
}
/**
* @param argument The predefined metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
*/
@JvmName("fkouandkyslmmtmy")
public suspend fun predefinedMetricPairSpecification(argument: suspend ScalingPolicyPredictiveScalingPredefinedMetricPairArgsBuilder.() -> Unit) {
val toBeMapped = ScalingPolicyPredictiveScalingPredefinedMetricPairArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.predefinedMetricPairSpecification = mapped
}
/**
* @param value The predefined scaling metric specification.
*/
@JvmName("dmqukfruffqnmoje")
public suspend fun predefinedScalingMetricSpecification(`value`: ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.predefinedScalingMetricSpecification = mapped
}
/**
* @param argument The predefined scaling metric specification.
*/
@JvmName("qwqrxklgunhffuii")
public suspend fun predefinedScalingMetricSpecification(argument: suspend ScalingPolicyPredictiveScalingPredefinedScalingMetricArgsBuilder.() -> Unit) {
val toBeMapped =
ScalingPolicyPredictiveScalingPredefinedScalingMetricArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.predefinedScalingMetricSpecification = mapped
}
/**
* @param value Specifies the target utilization.
* > Some metrics are based on a count instead of a percentage, such as the request count for an Application Load Balancer or the number of messages in an SQS queue. If the scaling policy specifies one of these metrics, specify the target utilization as the optimal average request or message count per instance during any one-minute interval.
*/
@JvmName("xqwbblsfcnqhpvbh")
public suspend fun targetValue(`value`: Double) {
val toBeMapped = value
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.targetValue = mapped
}
internal fun build(): ScalingPolicyPredictiveScalingMetricSpecificationArgs =
ScalingPolicyPredictiveScalingMetricSpecificationArgs(
customizedCapacityMetricSpecification = customizedCapacityMetricSpecification,
customizedLoadMetricSpecification = customizedLoadMetricSpecification,
customizedScalingMetricSpecification = customizedScalingMetricSpecification,
predefinedLoadMetricSpecification = predefinedLoadMetricSpecification,
predefinedMetricPairSpecification = predefinedMetricPairSpecification,
predefinedScalingMetricSpecification = predefinedScalingMetricSpecification,
targetValue = targetValue ?: throw PulumiNullFieldException("targetValue"),
)
}