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

com.pulumi.azurenative.web.kotlin.inputs.RampUpRuleArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.web.kotlin.inputs

import com.pulumi.azurenative.web.inputs.RampUpRuleArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Double
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Routing rules for ramp up testing. This rule allows to redirect static traffic % to a slot or to gradually change routing % based on performance.
 * @property actionHostName Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net.
 * @property changeDecisionCallbackUrl Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts.
 * https://www.siteextensions.net/packages/TiPCallback/
 * @property changeIntervalInMinutes Specifies interval in minutes to reevaluate ReroutePercentage.
 * @property changeStep In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or
 * MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm
 * can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl.
 * @property maxReroutePercentage Specifies upper boundary below which ReroutePercentage will stay.
 * @property minReroutePercentage Specifies lower boundary above which ReroutePercentage will stay.
 * @property name Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment.
 * @property reroutePercentage Percentage of the traffic which will be redirected to ActionHostName.
 */
public data class RampUpRuleArgs(
    public val actionHostName: Output? = null,
    public val changeDecisionCallbackUrl: Output? = null,
    public val changeIntervalInMinutes: Output? = null,
    public val changeStep: Output? = null,
    public val maxReroutePercentage: Output? = null,
    public val minReroutePercentage: Output? = null,
    public val name: Output? = null,
    public val reroutePercentage: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.web.inputs.RampUpRuleArgs =
        com.pulumi.azurenative.web.inputs.RampUpRuleArgs.builder()
            .actionHostName(actionHostName?.applyValue({ args0 -> args0 }))
            .changeDecisionCallbackUrl(changeDecisionCallbackUrl?.applyValue({ args0 -> args0 }))
            .changeIntervalInMinutes(changeIntervalInMinutes?.applyValue({ args0 -> args0 }))
            .changeStep(changeStep?.applyValue({ args0 -> args0 }))
            .maxReroutePercentage(maxReroutePercentage?.applyValue({ args0 -> args0 }))
            .minReroutePercentage(minReroutePercentage?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .reroutePercentage(reroutePercentage?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [RampUpRuleArgs].
 */
@PulumiTagMarker
public class RampUpRuleArgsBuilder internal constructor() {
    private var actionHostName: Output? = null

    private var changeDecisionCallbackUrl: Output? = null

    private var changeIntervalInMinutes: Output? = null

    private var changeStep: Output? = null

    private var maxReroutePercentage: Output? = null

    private var minReroutePercentage: Output? = null

    private var name: Output? = null

    private var reroutePercentage: Output? = null

    /**
     * @param value Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net.
     */
    @JvmName("ahpwrcnmsqgteaau")
    public suspend fun actionHostName(`value`: Output) {
        this.actionHostName = value
    }

    /**
     * @param value Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts.
     * https://www.siteextensions.net/packages/TiPCallback/
     */
    @JvmName("fwtktuuqxyhpteuk")
    public suspend fun changeDecisionCallbackUrl(`value`: Output) {
        this.changeDecisionCallbackUrl = value
    }

    /**
     * @param value Specifies interval in minutes to reevaluate ReroutePercentage.
     */
    @JvmName("erkhonqndwmxtyme")
    public suspend fun changeIntervalInMinutes(`value`: Output) {
        this.changeIntervalInMinutes = value
    }

    /**
     * @param value In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or
     * MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm
     * can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl.
     */
    @JvmName("ejosaihqdfdgqftl")
    public suspend fun changeStep(`value`: Output) {
        this.changeStep = value
    }

    /**
     * @param value Specifies upper boundary below which ReroutePercentage will stay.
     */
    @JvmName("mjqfmhuciqqcvhod")
    public suspend fun maxReroutePercentage(`value`: Output) {
        this.maxReroutePercentage = value
    }

    /**
     * @param value Specifies lower boundary above which ReroutePercentage will stay.
     */
    @JvmName("saphmmjlytaivbxl")
    public suspend fun minReroutePercentage(`value`: Output) {
        this.minReroutePercentage = value
    }

    /**
     * @param value Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment.
     */
    @JvmName("ojysuvilkhnpjgmy")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Percentage of the traffic which will be redirected to ActionHostName.
     */
    @JvmName("ivbecjcltxaageef")
    public suspend fun reroutePercentage(`value`: Output) {
        this.reroutePercentage = value
    }

    /**
     * @param value Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net.
     */
    @JvmName("lgpwyynykahlbutd")
    public suspend fun actionHostName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.actionHostName = mapped
    }

    /**
     * @param value Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts.
     * https://www.siteextensions.net/packages/TiPCallback/
     */
    @JvmName("ulxwmiymdostqqty")
    public suspend fun changeDecisionCallbackUrl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.changeDecisionCallbackUrl = mapped
    }

    /**
     * @param value Specifies interval in minutes to reevaluate ReroutePercentage.
     */
    @JvmName("kjynokffdkgptxyy")
    public suspend fun changeIntervalInMinutes(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.changeIntervalInMinutes = mapped
    }

    /**
     * @param value In auto ramp up scenario this is the step to add/remove from ReroutePercentage until it reaches \nMinReroutePercentage or
     * MaxReroutePercentage. Site metrics are checked every N minutes specified in ChangeIntervalInMinutes.\nCustom decision algorithm
     * can be provided in TiPCallback site extension which URL can be specified in ChangeDecisionCallbackUrl.
     */
    @JvmName("sffvtenpspkdmdhq")
    public suspend fun changeStep(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.changeStep = mapped
    }

    /**
     * @param value Specifies upper boundary below which ReroutePercentage will stay.
     */
    @JvmName("dpqujhxtcchocdmf")
    public suspend fun maxReroutePercentage(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxReroutePercentage = mapped
    }

    /**
     * @param value Specifies lower boundary above which ReroutePercentage will stay.
     */
    @JvmName("urhqgnyipbvwbjdv")
    public suspend fun minReroutePercentage(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.minReroutePercentage = mapped
    }

    /**
     * @param value Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment.
     */
    @JvmName("bvmioyrxshgkbahl")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Percentage of the traffic which will be redirected to ActionHostName.
     */
    @JvmName("jujnhvvnknokdicx")
    public suspend fun reroutePercentage(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.reroutePercentage = mapped
    }

    internal fun build(): RampUpRuleArgs = RampUpRuleArgs(
        actionHostName = actionHostName,
        changeDecisionCallbackUrl = changeDecisionCallbackUrl,
        changeIntervalInMinutes = changeIntervalInMinutes,
        changeStep = changeStep,
        maxReroutePercentage = maxReroutePercentage,
        minReroutePercentage = minReroutePercentage,
        name = name,
        reroutePercentage = reroutePercentage,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy