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

com.pulumi.gcp.appengine.kotlin.inputs.EngineSplitTrafficSplitArgs.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: 8.13.1.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.appengine.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.appengine.inputs.EngineSplitTrafficSplitArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 *
 * @property allocations Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
 * - - -
 * @property shardBy Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
 * Possible values are: `UNSPECIFIED`, `COOKIE`, `IP`, `RANDOM`.
 */
public data class EngineSplitTrafficSplitArgs(
    public val allocations: Output>,
    public val shardBy: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.appengine.inputs.EngineSplitTrafficSplitArgs =
        com.pulumi.gcp.appengine.inputs.EngineSplitTrafficSplitArgs.builder()
            .allocations(
                allocations.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .shardBy(shardBy?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [EngineSplitTrafficSplitArgs].
 */
@PulumiTagMarker
public class EngineSplitTrafficSplitArgsBuilder internal constructor() {
    private var allocations: Output>? = null

    private var shardBy: Output? = null

    /**
     * @param value Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
     * - - -
     */
    @JvmName("xofwbikldvkgdajm")
    public suspend fun allocations(`value`: Output>) {
        this.allocations = value
    }

    /**
     * @param value Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
     * Possible values are: `UNSPECIFIED`, `COOKIE`, `IP`, `RANDOM`.
     */
    @JvmName("vhnbpgbulskwccag")
    public suspend fun shardBy(`value`: Output) {
        this.shardBy = value
    }

    /**
     * @param value Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
     * - - -
     */
    @JvmName("ivnbrnbdsaqxaufa")
    public suspend fun allocations(`value`: Map) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allocations = mapped
    }

    /**
     * @param values Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
     * - - -
     */
    @JvmName("mnvblokhbcdvjxis")
    public fun allocations(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allocations = mapped
    }

    /**
     * @param value Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
     * Possible values are: `UNSPECIFIED`, `COOKIE`, `IP`, `RANDOM`.
     */
    @JvmName("thpttllqpurhfgxy")
    public suspend fun shardBy(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.shardBy = mapped
    }

    internal fun build(): EngineSplitTrafficSplitArgs = EngineSplitTrafficSplitArgs(
        allocations = allocations ?: throw PulumiNullFieldException("allocations"),
        shardBy = shardBy,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy