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

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

package com.pulumi.awsnative.qbusiness.kotlin

import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.qbusiness.WebExperienceArgs.builder
import com.pulumi.awsnative.qbusiness.kotlin.enums.WebExperienceSamplePromptsControlMode
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

/**
 * Definition of AWS::QBusiness::WebExperience Resource Type
 * @property applicationId The identifier of the Amazon Q Business web experience.
 * @property roleArn The Amazon Resource Name (ARN) of the service role attached to your web experience.
 * > You must provide this value if you're using IAM Identity Center to manage end user access to your application. If you're using legacy identity management to manage user access, you don't need to provide this value.
 * @property samplePromptsControlMode Determines whether sample prompts are enabled in the web experience for an end user.
 * @property subtitle A subtitle to personalize your Amazon Q Business web experience.
 * @property tags A list of key-value pairs that identify or categorize your Amazon Q Business web experience. You can also use tags to help control access to the web experience. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
 * @property title The title for your Amazon Q Business web experience.
 * @property welcomeMessage A message in an Amazon Q Business web experience.
 */
public data class WebExperienceArgs(
    public val applicationId: Output? = null,
    public val roleArn: Output? = null,
    public val samplePromptsControlMode: Output? = null,
    public val subtitle: Output? = null,
    public val tags: Output>? = null,
    public val title: Output? = null,
    public val welcomeMessage: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.qbusiness.WebExperienceArgs =
        com.pulumi.awsnative.qbusiness.WebExperienceArgs.builder()
            .applicationId(applicationId?.applyValue({ args0 -> args0 }))
            .roleArn(roleArn?.applyValue({ args0 -> args0 }))
            .samplePromptsControlMode(
                samplePromptsControlMode?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .subtitle(subtitle?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .title(title?.applyValue({ args0 -> args0 }))
            .welcomeMessage(welcomeMessage?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [WebExperienceArgs].
 */
@PulumiTagMarker
public class WebExperienceArgsBuilder internal constructor() {
    private var applicationId: Output? = null

    private var roleArn: Output? = null

    private var samplePromptsControlMode: Output? = null

    private var subtitle: Output? = null

    private var tags: Output>? = null

    private var title: Output? = null

    private var welcomeMessage: Output? = null

    /**
     * @param value The identifier of the Amazon Q Business web experience.
     */
    @JvmName("nqtlpxonnirurrnu")
    public suspend fun applicationId(`value`: Output) {
        this.applicationId = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the service role attached to your web experience.
     * > You must provide this value if you're using IAM Identity Center to manage end user access to your application. If you're using legacy identity management to manage user access, you don't need to provide this value.
     */
    @JvmName("drwydhnrhlejjcbc")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = value
    }

    /**
     * @param value Determines whether sample prompts are enabled in the web experience for an end user.
     */
    @JvmName("ylefawqbgciqpouj")
    public suspend fun samplePromptsControlMode(`value`: Output) {
        this.samplePromptsControlMode = value
    }

    /**
     * @param value A subtitle to personalize your Amazon Q Business web experience.
     */
    @JvmName("uhaupsqkcptafujk")
    public suspend fun subtitle(`value`: Output) {
        this.subtitle = value
    }

    /**
     * @param value A list of key-value pairs that identify or categorize your Amazon Q Business web experience. You can also use tags to help control access to the web experience. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("dkkwnyckslmauduf")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values A list of key-value pairs that identify or categorize your Amazon Q Business web experience. You can also use tags to help control access to the web experience. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("yjftykccfaxjdkho")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The title for your Amazon Q Business web experience.
     */
    @JvmName("xcxeppkqvchieanf")
    public suspend fun title(`value`: Output) {
        this.title = value
    }

    /**
     * @param value A message in an Amazon Q Business web experience.
     */
    @JvmName("ckgawjfmoclvxfgj")
    public suspend fun welcomeMessage(`value`: Output) {
        this.welcomeMessage = value
    }

    /**
     * @param value The identifier of the Amazon Q Business web experience.
     */
    @JvmName("afjjobsoqxkkaawe")
    public suspend fun applicationId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.applicationId = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the service role attached to your web experience.
     * > You must provide this value if you're using IAM Identity Center to manage end user access to your application. If you're using legacy identity management to manage user access, you don't need to provide this value.
     */
    @JvmName("quitckbjowvvqqri")
    public suspend fun roleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.roleArn = mapped
    }

    /**
     * @param value Determines whether sample prompts are enabled in the web experience for an end user.
     */
    @JvmName("syilwuesqhwvymuq")
    public suspend fun samplePromptsControlMode(`value`: WebExperienceSamplePromptsControlMode?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.samplePromptsControlMode = mapped
    }

    /**
     * @param value A subtitle to personalize your Amazon Q Business web experience.
     */
    @JvmName("rpagnmhfnrhipndc")
    public suspend fun subtitle(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subtitle = mapped
    }

    /**
     * @param value A list of key-value pairs that identify or categorize your Amazon Q Business web experience. You can also use tags to help control access to the web experience. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("mygudobwuugymeiw")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument A list of key-value pairs that identify or categorize your Amazon Q Business web experience. You can also use tags to help control access to the web experience. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("yemmgwwqdigkrqhs")
    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 A list of key-value pairs that identify or categorize your Amazon Q Business web experience. You can also use tags to help control access to the web experience. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("cinvdkveutorxgpb")
    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 A list of key-value pairs that identify or categorize your Amazon Q Business web experience. You can also use tags to help control access to the web experience. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("geudqrivelotqlrt")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values A list of key-value pairs that identify or categorize your Amazon Q Business web experience. You can also use tags to help control access to the web experience. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("grhcdtxleyjpbmwx")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The title for your Amazon Q Business web experience.
     */
    @JvmName("osxqqxoiwfrnsqcn")
    public suspend fun title(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.title = mapped
    }

    /**
     * @param value A message in an Amazon Q Business web experience.
     */
    @JvmName("mrnaewcgcpqodmrs")
    public suspend fun welcomeMessage(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.welcomeMessage = mapped
    }

    internal fun build(): WebExperienceArgs = WebExperienceArgs(
        applicationId = applicationId,
        roleArn = roleArn,
        samplePromptsControlMode = samplePromptsControlMode,
        subtitle = subtitle,
        tags = tags,
        title = title,
        welcomeMessage = welcomeMessage,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy