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

com.pulumi.aws.autoscaling.kotlin.inputs.PolicyPredictiveScalingConfigurationMetricSpecificationArgs.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: 6.57.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.autoscaling.kotlin.inputs

import com.pulumi.aws.autoscaling.inputs.PolicyPredictiveScalingConfigurationMetricSpecificationArgs.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 Customized capacity metric specification. The field is only valid when you use `customized_load_metric_specification`
 * @property customizedLoadMetricSpecification Customized load metric specification.
 * @property customizedScalingMetricSpecification Customized scaling metric specification.
 * @property predefinedLoadMetricSpecification Predefined load metric specification.
 * @property predefinedMetricPairSpecification Metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
 * @property predefinedScalingMetricSpecification Predefined scaling metric specification.
 * @property targetValue Target value for the metric.
 */
public data class PolicyPredictiveScalingConfigurationMetricSpecificationArgs(
    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.aws.autoscaling.inputs.PolicyPredictiveScalingConfigurationMetricSpecificationArgs =
        com.pulumi.aws.autoscaling.inputs.PolicyPredictiveScalingConfigurationMetricSpecificationArgs.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 [PolicyPredictiveScalingConfigurationMetricSpecificationArgs].
 */
@PulumiTagMarker
public class PolicyPredictiveScalingConfigurationMetricSpecificationArgsBuilder 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 Customized capacity metric specification. The field is only valid when you use `customized_load_metric_specification`
     */
    @JvmName("yfbkipgavoastvav")
    public suspend fun customizedCapacityMetricSpecification(`value`: Output) {
        this.customizedCapacityMetricSpecification = value
    }

    /**
     * @param value Customized load metric specification.
     */
    @JvmName("plmuohxpfyclqfah")
    public suspend fun customizedLoadMetricSpecification(`value`: Output) {
        this.customizedLoadMetricSpecification = value
    }

    /**
     * @param value Customized scaling metric specification.
     */
    @JvmName("btdaqwlhqwxdncan")
    public suspend fun customizedScalingMetricSpecification(`value`: Output) {
        this.customizedScalingMetricSpecification = value
    }

    /**
     * @param value Predefined load metric specification.
     */
    @JvmName("rveutgogsikwhexu")
    public suspend fun predefinedLoadMetricSpecification(`value`: Output) {
        this.predefinedLoadMetricSpecification = value
    }

    /**
     * @param value Metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
     */
    @JvmName("xiporynyrdtvvohx")
    public suspend fun predefinedMetricPairSpecification(`value`: Output) {
        this.predefinedMetricPairSpecification = value
    }

    /**
     * @param value Predefined scaling metric specification.
     */
    @JvmName("nbsvaaftvfbmhwek")
    public suspend fun predefinedScalingMetricSpecification(`value`: Output) {
        this.predefinedScalingMetricSpecification = value
    }

    /**
     * @param value Target value for the metric.
     */
    @JvmName("rpjwbfkegbibmuoc")
    public suspend fun targetValue(`value`: Output) {
        this.targetValue = value
    }

    /**
     * @param value Customized capacity metric specification. The field is only valid when you use `customized_load_metric_specification`
     */
    @JvmName("hjusjykxsnkldbil")
    public suspend fun customizedCapacityMetricSpecification(`value`: PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customizedCapacityMetricSpecification = mapped
    }

    /**
     * @param argument Customized capacity metric specification. The field is only valid when you use `customized_load_metric_specification`
     */
    @JvmName("jrayxytdrxvoubrg")
    public suspend fun customizedCapacityMetricSpecification(argument: suspend PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped =
            PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.customizedCapacityMetricSpecification = mapped
    }

    /**
     * @param value Customized load metric specification.
     */
    @JvmName("lnriaamqwbrlnqpp")
    public suspend fun customizedLoadMetricSpecification(`value`: PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customizedLoadMetricSpecification = mapped
    }

    /**
     * @param argument Customized load metric specification.
     */
    @JvmName("ichkailwydpghsow")
    public suspend fun customizedLoadMetricSpecification(argument: suspend PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped =
            PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.customizedLoadMetricSpecification = mapped
    }

    /**
     * @param value Customized scaling metric specification.
     */
    @JvmName("xnxqlsxectdfqthn")
    public suspend fun customizedScalingMetricSpecification(`value`: PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customizedScalingMetricSpecification = mapped
    }

    /**
     * @param argument Customized scaling metric specification.
     */
    @JvmName("qpyhbmvkbswnsaib")
    public suspend fun customizedScalingMetricSpecification(argument: suspend PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped =
            PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.customizedScalingMetricSpecification = mapped
    }

    /**
     * @param value Predefined load metric specification.
     */
    @JvmName("jkepmwounbcuwstt")
    public suspend fun predefinedLoadMetricSpecification(`value`: PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.predefinedLoadMetricSpecification = mapped
    }

    /**
     * @param argument Predefined load metric specification.
     */
    @JvmName("ycnblypwlnvkohrq")
    public suspend fun predefinedLoadMetricSpecification(argument: suspend PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped =
            PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.predefinedLoadMetricSpecification = mapped
    }

    /**
     * @param value Metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
     */
    @JvmName("nnwivkwljgowgrbg")
    public suspend fun predefinedMetricPairSpecification(`value`: PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecificationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.predefinedMetricPairSpecification = mapped
    }

    /**
     * @param argument Metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
     */
    @JvmName("cetqgnruvmvchuwm")
    public suspend fun predefinedMetricPairSpecification(argument: suspend PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped =
            PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecificationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.predefinedMetricPairSpecification = mapped
    }

    /**
     * @param value Predefined scaling metric specification.
     */
    @JvmName("nnwtwwyvghfjkheh")
    public suspend fun predefinedScalingMetricSpecification(`value`: PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecificationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.predefinedScalingMetricSpecification = mapped
    }

    /**
     * @param argument Predefined scaling metric specification.
     */
    @JvmName("ivhwpfbsoxepumnf")
    public suspend fun predefinedScalingMetricSpecification(argument: suspend PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped =
            PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecificationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.predefinedScalingMetricSpecification = mapped
    }

    /**
     * @param value Target value for the metric.
     */
    @JvmName("gfpnalxsoxltghbr")
    public suspend fun targetValue(`value`: Double) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.targetValue = mapped
    }

    internal fun build(): PolicyPredictiveScalingConfigurationMetricSpecificationArgs =
        PolicyPredictiveScalingConfigurationMetricSpecificationArgs(
            customizedCapacityMetricSpecification = customizedCapacityMetricSpecification,
            customizedLoadMetricSpecification = customizedLoadMetricSpecification,
            customizedScalingMetricSpecification = customizedScalingMetricSpecification,
            predefinedLoadMetricSpecification = predefinedLoadMetricSpecification,
            predefinedMetricPairSpecification = predefinedMetricPairSpecification,
            predefinedScalingMetricSpecification = predefinedScalingMetricSpecification,
            targetValue = targetValue ?: throw PulumiNullFieldException("targetValue"),
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy