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

com.pulumi.googlenative.container.v1beta1.kotlin.inputs.StandardRolloutPolicyArgs.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.

The newest version!
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.googlenative.container.v1beta1.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.container.v1beta1.inputs.StandardRolloutPolicyArgs.builder
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

/**
 * Standard rollout policy is the default policy for blue-green.
 * @property batchNodeCount Number of blue nodes to drain in a batch.
 * @property batchPercentage Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].
 * @property batchSoakDuration Soak time after each batch gets drained. Default to zero.
 */
public data class StandardRolloutPolicyArgs(
    public val batchNodeCount: Output? = null,
    public val batchPercentage: Output? = null,
    public val batchSoakDuration: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.googlenative.container.v1beta1.inputs.StandardRolloutPolicyArgs = com.pulumi.googlenative.container.v1beta1.inputs.StandardRolloutPolicyArgs.builder()
        .batchNodeCount(batchNodeCount?.applyValue({ args0 -> args0 }))
        .batchPercentage(batchPercentage?.applyValue({ args0 -> args0 }))
        .batchSoakDuration(batchSoakDuration?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [StandardRolloutPolicyArgs].
 */
@PulumiTagMarker
public class StandardRolloutPolicyArgsBuilder internal constructor() {
    private var batchNodeCount: Output? = null

    private var batchPercentage: Output? = null

    private var batchSoakDuration: Output? = null

    /**
     * @param value Number of blue nodes to drain in a batch.
     */
    @JvmName("livnbwlxegauqanh")
    public suspend fun batchNodeCount(`value`: Output) {
        this.batchNodeCount = value
    }

    /**
     * @param value Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].
     */
    @JvmName("kiclqyqajiyanpca")
    public suspend fun batchPercentage(`value`: Output) {
        this.batchPercentage = value
    }

    /**
     * @param value Soak time after each batch gets drained. Default to zero.
     */
    @JvmName("wekyvdsqpfhjmluf")
    public suspend fun batchSoakDuration(`value`: Output) {
        this.batchSoakDuration = value
    }

    /**
     * @param value Number of blue nodes to drain in a batch.
     */
    @JvmName("dsdythtixxnqprjh")
    public suspend fun batchNodeCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.batchNodeCount = mapped
    }

    /**
     * @param value Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].
     */
    @JvmName("oadvfbpopprapvsm")
    public suspend fun batchPercentage(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.batchPercentage = mapped
    }

    /**
     * @param value Soak time after each batch gets drained. Default to zero.
     */
    @JvmName("ysfnsfxkqlakqucp")
    public suspend fun batchSoakDuration(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.batchSoakDuration = mapped
    }

    internal fun build(): StandardRolloutPolicyArgs = StandardRolloutPolicyArgs(
        batchNodeCount = batchNodeCount,
        batchPercentage = batchPercentage,
        batchSoakDuration = batchSoakDuration,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy