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

com.pulumi.awsnative.evidently.kotlin.LaunchArgs.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: 1.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.evidently.kotlin

import com.pulumi.awsnative.evidently.LaunchArgs.builder
import com.pulumi.awsnative.evidently.kotlin.inputs.LaunchExecutionStatusObjectArgs
import com.pulumi.awsnative.evidently.kotlin.inputs.LaunchExecutionStatusObjectArgsBuilder
import com.pulumi.awsnative.evidently.kotlin.inputs.LaunchGroupObjectArgs
import com.pulumi.awsnative.evidently.kotlin.inputs.LaunchGroupObjectArgsBuilder
import com.pulumi.awsnative.evidently.kotlin.inputs.LaunchMetricDefinitionObjectArgs
import com.pulumi.awsnative.evidently.kotlin.inputs.LaunchMetricDefinitionObjectArgsBuilder
import com.pulumi.awsnative.evidently.kotlin.inputs.LaunchStepConfigArgs
import com.pulumi.awsnative.evidently.kotlin.inputs.LaunchStepConfigArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
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

/**
 * Resource Type definition for AWS::Evidently::Launch.
 * @property description An optional description for the launch.
 * @property executionStatus Start or Stop Launch Launch. Default is not started.
 * @property groups An array of structures that contains the feature and variations that are to be used for the launch. You can up to five launch groups in a launch.
 * @property metricMonitors An array of structures that define the metrics that will be used to monitor the launch performance. You can have up to three metric monitors in the array.
 * @property name The name for the launch. It can include up to 127 characters.
 * @property project The name or ARN of the project that you want to create the launch in.
 * @property randomizationSalt When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served. This randomization ID is a combination of the entity ID and `randomizationSalt` . If you omit `randomizationSalt` , Evidently uses the launch name as the `randomizationsSalt` .
 * @property scheduledSplitsConfig An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch.
 * @property tags An array of key-value pairs to apply to this resource.
 */
public data class LaunchArgs(
    public val description: Output? = null,
    public val executionStatus: Output? = null,
    public val groups: Output>? = null,
    public val metricMonitors: Output>? = null,
    public val name: Output? = null,
    public val project: Output? = null,
    public val randomizationSalt: Output? = null,
    public val scheduledSplitsConfig: Output>? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.evidently.LaunchArgs =
        com.pulumi.awsnative.evidently.LaunchArgs.builder()
            .description(description?.applyValue({ args0 -> args0 }))
            .executionStatus(executionStatus?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .groups(groups?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .metricMonitors(
                metricMonitors?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .project(project?.applyValue({ args0 -> args0 }))
            .randomizationSalt(randomizationSalt?.applyValue({ args0 -> args0 }))
            .scheduledSplitsConfig(
                scheduledSplitsConfig?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [LaunchArgs].
 */
@PulumiTagMarker
public class LaunchArgsBuilder internal constructor() {
    private var description: Output? = null

    private var executionStatus: Output? = null

    private var groups: Output>? = null

    private var metricMonitors: Output>? = null

    private var name: Output? = null

    private var project: Output? = null

    private var randomizationSalt: Output? = null

    private var scheduledSplitsConfig: Output>? = null

    private var tags: Output>? = null

    /**
     * @param value An optional description for the launch.
     */
    @JvmName("undygllgbegmateu")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value Start or Stop Launch Launch. Default is not started.
     */
    @JvmName("lguvrbybmwodxvll")
    public suspend fun executionStatus(`value`: Output) {
        this.executionStatus = value
    }

    /**
     * @param value An array of structures that contains the feature and variations that are to be used for the launch. You can up to five launch groups in a launch.
     */
    @JvmName("whclstyesolqjotr")
    public suspend fun groups(`value`: Output>) {
        this.groups = value
    }

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

    /**
     * @param values An array of structures that contains the feature and variations that are to be used for the launch. You can up to five launch groups in a launch.
     */
    @JvmName("ncnhknvlbldwiono")
    public suspend fun groups(values: List>) {
        this.groups = Output.all(values)
    }

    /**
     * @param value An array of structures that define the metrics that will be used to monitor the launch performance. You can have up to three metric monitors in the array.
     */
    @JvmName("lopujqrepkuhmkbp")
    public suspend fun metricMonitors(`value`: Output>) {
        this.metricMonitors = value
    }

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

    /**
     * @param values An array of structures that define the metrics that will be used to monitor the launch performance. You can have up to three metric monitors in the array.
     */
    @JvmName("pffaxnmiietasidx")
    public suspend fun metricMonitors(values: List>) {
        this.metricMonitors = Output.all(values)
    }

    /**
     * @param value The name for the launch. It can include up to 127 characters.
     */
    @JvmName("qhomadbjgpxpwrgr")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The name or ARN of the project that you want to create the launch in.
     */
    @JvmName("giwqbitxosndxeou")
    public suspend fun project(`value`: Output) {
        this.project = value
    }

    /**
     * @param value When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served. This randomization ID is a combination of the entity ID and `randomizationSalt` . If you omit `randomizationSalt` , Evidently uses the launch name as the `randomizationsSalt` .
     */
    @JvmName("tlewxrxkinmxecue")
    public suspend fun randomizationSalt(`value`: Output) {
        this.randomizationSalt = value
    }

    /**
     * @param value An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch.
     */
    @JvmName("rcxrqnqicwmwfkqn")
    public suspend fun scheduledSplitsConfig(`value`: Output>) {
        this.scheduledSplitsConfig = value
    }

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

    /**
     * @param values An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch.
     */
    @JvmName("aadftcawlbjsmelj")
    public suspend fun scheduledSplitsConfig(values: List>) {
        this.scheduledSplitsConfig = Output.all(values)
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("ptisvktmceatpvtw")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("kifwcsslcmetgumr")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value An optional description for the launch.
     */
    @JvmName("awrwrvoupfrhfksm")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value Start or Stop Launch Launch. Default is not started.
     */
    @JvmName("enyfqjivhdefkpis")
    public suspend fun executionStatus(`value`: LaunchExecutionStatusObjectArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.executionStatus = mapped
    }

    /**
     * @param argument Start or Stop Launch Launch. Default is not started.
     */
    @JvmName("sphtnnriktqmctak")
    public suspend fun executionStatus(argument: suspend LaunchExecutionStatusObjectArgsBuilder.() -> Unit) {
        val toBeMapped = LaunchExecutionStatusObjectArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.executionStatus = mapped
    }

    /**
     * @param value An array of structures that contains the feature and variations that are to be used for the launch. You can up to five launch groups in a launch.
     */
    @JvmName("sywesnkrawmgnabm")
    public suspend fun groups(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.groups = mapped
    }

    /**
     * @param argument An array of structures that contains the feature and variations that are to be used for the launch. You can up to five launch groups in a launch.
     */
    @JvmName("ptkjhukkcoaifrkx")
    public suspend fun groups(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            LaunchGroupObjectArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.groups = mapped
    }

    /**
     * @param argument An array of structures that contains the feature and variations that are to be used for the launch. You can up to five launch groups in a launch.
     */
    @JvmName("etebypeenhmlcvrx")
    public suspend fun groups(vararg argument: suspend LaunchGroupObjectArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            LaunchGroupObjectArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.groups = mapped
    }

    /**
     * @param argument An array of structures that contains the feature and variations that are to be used for the launch. You can up to five launch groups in a launch.
     */
    @JvmName("urgwsciqbwdovfai")
    public suspend fun groups(argument: suspend LaunchGroupObjectArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(LaunchGroupObjectArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.groups = mapped
    }

    /**
     * @param values An array of structures that contains the feature and variations that are to be used for the launch. You can up to five launch groups in a launch.
     */
    @JvmName("khgklwyrpjkvrxod")
    public suspend fun groups(vararg values: LaunchGroupObjectArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.groups = mapped
    }

    /**
     * @param value An array of structures that define the metrics that will be used to monitor the launch performance. You can have up to three metric monitors in the array.
     */
    @JvmName("jagycncxvabechae")
    public suspend fun metricMonitors(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.metricMonitors = mapped
    }

    /**
     * @param argument An array of structures that define the metrics that will be used to monitor the launch performance. You can have up to three metric monitors in the array.
     */
    @JvmName("anvtrblcbegpjvcn")
    public suspend fun metricMonitors(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            LaunchMetricDefinitionObjectArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.metricMonitors = mapped
    }

    /**
     * @param argument An array of structures that define the metrics that will be used to monitor the launch performance. You can have up to three metric monitors in the array.
     */
    @JvmName("phevsqnxtuppbagd")
    public suspend fun metricMonitors(vararg argument: suspend LaunchMetricDefinitionObjectArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            LaunchMetricDefinitionObjectArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.metricMonitors = mapped
    }

    /**
     * @param argument An array of structures that define the metrics that will be used to monitor the launch performance. You can have up to three metric monitors in the array.
     */
    @JvmName("sbbhiurcvfwimqtn")
    public suspend fun metricMonitors(argument: suspend LaunchMetricDefinitionObjectArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            LaunchMetricDefinitionObjectArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.metricMonitors = mapped
    }

    /**
     * @param values An array of structures that define the metrics that will be used to monitor the launch performance. You can have up to three metric monitors in the array.
     */
    @JvmName("dkwemxbgtmoqwdmq")
    public suspend fun metricMonitors(vararg values: LaunchMetricDefinitionObjectArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.metricMonitors = mapped
    }

    /**
     * @param value The name for the launch. It can include up to 127 characters.
     */
    @JvmName("jrusvvajwddaucyh")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The name or ARN of the project that you want to create the launch in.
     */
    @JvmName("ejlhkserwanumkii")
    public suspend fun project(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.project = mapped
    }

    /**
     * @param value When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served. This randomization ID is a combination of the entity ID and `randomizationSalt` . If you omit `randomizationSalt` , Evidently uses the launch name as the `randomizationsSalt` .
     */
    @JvmName("ogrfbkphjfobfgfl")
    public suspend fun randomizationSalt(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.randomizationSalt = mapped
    }

    /**
     * @param value An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch.
     */
    @JvmName("ngaanoxrvkiftxvk")
    public suspend fun scheduledSplitsConfig(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scheduledSplitsConfig = mapped
    }

    /**
     * @param argument An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch.
     */
    @JvmName("rsdrepbglgyesxpu")
    public suspend fun scheduledSplitsConfig(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            LaunchStepConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.scheduledSplitsConfig = mapped
    }

    /**
     * @param argument An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch.
     */
    @JvmName("ivjybxuwvisuygsp")
    public suspend fun scheduledSplitsConfig(vararg argument: suspend LaunchStepConfigArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            LaunchStepConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.scheduledSplitsConfig = mapped
    }

    /**
     * @param argument An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch.
     */
    @JvmName("oygrlfqlfqnjvyey")
    public suspend fun scheduledSplitsConfig(argument: suspend LaunchStepConfigArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(LaunchStepConfigArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.scheduledSplitsConfig = mapped
    }

    /**
     * @param values An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch.
     */
    @JvmName("udjrywaghsmaduli")
    public suspend fun scheduledSplitsConfig(vararg values: LaunchStepConfigArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scheduledSplitsConfig = mapped
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("oyqajgdyswyfnbek")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("qrrmdclysthldwmo")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("nxsehgvkcsybclsc")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("afoxjiekbcgqaldx")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("uuksvyqcaoruelhu")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): LaunchArgs = LaunchArgs(
        description = description,
        executionStatus = executionStatus,
        groups = groups,
        metricMonitors = metricMonitors,
        name = name,
        project = project,
        randomizationSalt = randomizationSalt,
        scheduledSplitsConfig = scheduledSplitsConfig,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy