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

com.pulumi.awsnative.evidently.kotlin.inputs.LaunchStepConfigArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.evidently.kotlin.inputs

import com.pulumi.awsnative.evidently.inputs.LaunchStepConfigArgs.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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property groupWeights An array of structures that define how much launch traffic to allocate to each launch group during this step of the launch.
 * @property segmentOverrides An array of structures that you can use to specify different traffic splits for one or more audience *segments* . A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age.
 * For more information, see [Use segments to focus your audience](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html) .
 * @property startTime The date and time to start this step of the launch. Use UTC format, `yyyy-MM-ddTHH:mm:ssZ` . For example, `2025-11-25T23:59:59Z`
 */
public data class LaunchStepConfigArgs(
    public val groupWeights: Output>,
    public val segmentOverrides: Output>? = null,
    public val startTime: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.evidently.inputs.LaunchStepConfigArgs =
        com.pulumi.awsnative.evidently.inputs.LaunchStepConfigArgs.builder()
            .groupWeights(
                groupWeights.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .segmentOverrides(
                segmentOverrides?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .startTime(startTime.applyValue({ args0 -> args0 })).build()
}

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

    private var segmentOverrides: Output>? = null

    private var startTime: Output? = null

    /**
     * @param value An array of structures that define how much launch traffic to allocate to each launch group during this step of the launch.
     */
    @JvmName("kuqmagthxjmmtueg")
    public suspend fun groupWeights(`value`: Output>) {
        this.groupWeights = value
    }

    @JvmName("ajkhwcjvgimebtuc")
    public suspend fun groupWeights(vararg values: Output) {
        this.groupWeights = Output.all(values.asList())
    }

    /**
     * @param values An array of structures that define how much launch traffic to allocate to each launch group during this step of the launch.
     */
    @JvmName("gdqqiqkslktetfoc")
    public suspend fun groupWeights(values: List>) {
        this.groupWeights = Output.all(values)
    }

    /**
     * @param value An array of structures that you can use to specify different traffic splits for one or more audience *segments* . A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age.
     * For more information, see [Use segments to focus your audience](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html) .
     */
    @JvmName("ovovxqjwryrauiyq")
    public suspend fun segmentOverrides(`value`: Output>) {
        this.segmentOverrides = value
    }

    @JvmName("imhrbldjmqbwqdvk")
    public suspend fun segmentOverrides(vararg values: Output) {
        this.segmentOverrides = Output.all(values.asList())
    }

    /**
     * @param values An array of structures that you can use to specify different traffic splits for one or more audience *segments* . A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age.
     * For more information, see [Use segments to focus your audience](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html) .
     */
    @JvmName("abyrqmlbidfcntvj")
    public suspend fun segmentOverrides(values: List>) {
        this.segmentOverrides = Output.all(values)
    }

    /**
     * @param value The date and time to start this step of the launch. Use UTC format, `yyyy-MM-ddTHH:mm:ssZ` . For example, `2025-11-25T23:59:59Z`
     */
    @JvmName("rbmbbwyeopullipb")
    public suspend fun startTime(`value`: Output) {
        this.startTime = value
    }

    /**
     * @param value An array of structures that define how much launch traffic to allocate to each launch group during this step of the launch.
     */
    @JvmName("mhthxndjfhyxuijl")
    public suspend fun groupWeights(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.groupWeights = mapped
    }

    /**
     * @param argument An array of structures that define how much launch traffic to allocate to each launch group during this step of the launch.
     */
    @JvmName("cywvetyinwujbykk")
    public suspend fun groupWeights(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            LaunchGroupToWeightArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.groupWeights = mapped
    }

    /**
     * @param argument An array of structures that define how much launch traffic to allocate to each launch group during this step of the launch.
     */
    @JvmName("umcifmchgynyayfs")
    public suspend fun groupWeights(vararg argument: suspend LaunchGroupToWeightArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            LaunchGroupToWeightArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.groupWeights = mapped
    }

    /**
     * @param argument An array of structures that define how much launch traffic to allocate to each launch group during this step of the launch.
     */
    @JvmName("mjrgirfmxjfxfikg")
    public suspend fun groupWeights(argument: suspend LaunchGroupToWeightArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(LaunchGroupToWeightArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.groupWeights = mapped
    }

    /**
     * @param values An array of structures that define how much launch traffic to allocate to each launch group during this step of the launch.
     */
    @JvmName("cdvqaqxgyjfdkpkq")
    public suspend fun groupWeights(vararg values: LaunchGroupToWeightArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.groupWeights = mapped
    }

    /**
     * @param value An array of structures that you can use to specify different traffic splits for one or more audience *segments* . A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age.
     * For more information, see [Use segments to focus your audience](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html) .
     */
    @JvmName("ofpnapxkxuptgehu")
    public suspend fun segmentOverrides(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.segmentOverrides = mapped
    }

    /**
     * @param argument An array of structures that you can use to specify different traffic splits for one or more audience *segments* . A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age.
     * For more information, see [Use segments to focus your audience](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html) .
     */
    @JvmName("rnthmfjbitlashwd")
    public suspend fun segmentOverrides(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            LaunchSegmentOverrideArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.segmentOverrides = mapped
    }

    /**
     * @param argument An array of structures that you can use to specify different traffic splits for one or more audience *segments* . A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age.
     * For more information, see [Use segments to focus your audience](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html) .
     */
    @JvmName("edrxqsalguxukgfe")
    public suspend fun segmentOverrides(vararg argument: suspend LaunchSegmentOverrideArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            LaunchSegmentOverrideArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.segmentOverrides = mapped
    }

    /**
     * @param argument An array of structures that you can use to specify different traffic splits for one or more audience *segments* . A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age.
     * For more information, see [Use segments to focus your audience](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html) .
     */
    @JvmName("pfaqecwdbpajsxaq")
    public suspend fun segmentOverrides(argument: suspend LaunchSegmentOverrideArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(LaunchSegmentOverrideArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.segmentOverrides = mapped
    }

    /**
     * @param values An array of structures that you can use to specify different traffic splits for one or more audience *segments* . A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age.
     * For more information, see [Use segments to focus your audience](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html) .
     */
    @JvmName("abhtgagecldltmup")
    public suspend fun segmentOverrides(vararg values: LaunchSegmentOverrideArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.segmentOverrides = mapped
    }

    /**
     * @param value The date and time to start this step of the launch. Use UTC format, `yyyy-MM-ddTHH:mm:ssZ` . For example, `2025-11-25T23:59:59Z`
     */
    @JvmName("xdbppvtjxcmeagup")
    public suspend fun startTime(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.startTime = mapped
    }

    internal fun build(): LaunchStepConfigArgs = LaunchStepConfigArgs(
        groupWeights = groupWeights ?: throw PulumiNullFieldException("groupWeights"),
        segmentOverrides = segmentOverrides,
        startTime = startTime ?: throw PulumiNullFieldException("startTime"),
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy