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

com.pulumi.awsnative.lex.kotlin.BotArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.lex.kotlin

import com.pulumi.awsnative.lex.BotArgs.builder
import com.pulumi.awsnative.lex.kotlin.inputs.BotLocaleArgs
import com.pulumi.awsnative.lex.kotlin.inputs.BotLocaleArgsBuilder
import com.pulumi.awsnative.lex.kotlin.inputs.BotS3LocationArgs
import com.pulumi.awsnative.lex.kotlin.inputs.BotS3LocationArgsBuilder
import com.pulumi.awsnative.lex.kotlin.inputs.BotTagArgs
import com.pulumi.awsnative.lex.kotlin.inputs.BotTagArgsBuilder
import com.pulumi.awsnative.lex.kotlin.inputs.BotTestBotAliasSettingsArgs
import com.pulumi.awsnative.lex.kotlin.inputs.BotTestBotAliasSettingsArgsBuilder
import com.pulumi.awsnative.lex.kotlin.inputs.DataPrivacyPropertiesArgs
import com.pulumi.awsnative.lex.kotlin.inputs.DataPrivacyPropertiesArgsBuilder
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.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Amazon Lex conversational bot performing automated tasks such as ordering a pizza, booking a hotel, and so on.
 * @property autoBuildBotLocales Specifies whether to build the bot locales after bot creation completes.
 * @property botFileS3Location The Amazon S3 location of files used to import a bot. The files must be in the import format specified in [JSON format for importing and exporting](https://docs.aws.amazon.com/lexv2/latest/dg/import-export-format.html) in the *Amazon Lex developer guide.*
 * @property botLocales List of bot locales
 * @property botTags A list of tags to add to the bot, which can only be added at bot creation.
 * @property dataPrivacy Data privacy setting of the Bot.
 * @property description The description of the version.
 * @property idleSessionTtlInSeconds IdleSessionTTLInSeconds of the resource
 * @property name The name of the bot locale.
 * @property roleArn The Amazon Resource Name (ARN) of the IAM role used to build and run the bot.
 * @property testBotAliasSettings Specifies configuration settings for the alias used to test the bot. If the `TestBotAliasSettings` property is not specified, the settings are configured with default values.
 * @property testBotAliasTags A list of tags to add to the test alias for a bot, , which can only be added at bot/bot alias creation.
 */
public data class BotArgs(
    public val autoBuildBotLocales: Output? = null,
    public val botFileS3Location: Output? = null,
    public val botLocales: Output>? = null,
    public val botTags: Output>? = null,
    public val dataPrivacy: Output? = null,
    public val description: Output? = null,
    public val idleSessionTtlInSeconds: Output? = null,
    public val name: Output? = null,
    public val roleArn: Output? = null,
    public val testBotAliasSettings: Output? = null,
    public val testBotAliasTags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.lex.BotArgs =
        com.pulumi.awsnative.lex.BotArgs.builder()
            .autoBuildBotLocales(autoBuildBotLocales?.applyValue({ args0 -> args0 }))
            .botFileS3Location(botFileS3Location?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .botLocales(
                botLocales?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .botTags(
                botTags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .dataPrivacy(dataPrivacy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .description(description?.applyValue({ args0 -> args0 }))
            .idleSessionTtlInSeconds(idleSessionTtlInSeconds?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .roleArn(roleArn?.applyValue({ args0 -> args0 }))
            .testBotAliasSettings(
                testBotAliasSettings?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .testBotAliasTags(
                testBotAliasTags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [BotArgs].
 */
@PulumiTagMarker
public class BotArgsBuilder internal constructor() {
    private var autoBuildBotLocales: Output? = null

    private var botFileS3Location: Output? = null

    private var botLocales: Output>? = null

    private var botTags: Output>? = null

    private var dataPrivacy: Output? = null

    private var description: Output? = null

    private var idleSessionTtlInSeconds: Output? = null

    private var name: Output? = null

    private var roleArn: Output? = null

    private var testBotAliasSettings: Output? = null

    private var testBotAliasTags: Output>? = null

    /**
     * @param value Specifies whether to build the bot locales after bot creation completes.
     */
    @JvmName("tgnlxuxtiqosheey")
    public suspend fun autoBuildBotLocales(`value`: Output) {
        this.autoBuildBotLocales = value
    }

    /**
     * @param value The Amazon S3 location of files used to import a bot. The files must be in the import format specified in [JSON format for importing and exporting](https://docs.aws.amazon.com/lexv2/latest/dg/import-export-format.html) in the *Amazon Lex developer guide.*
     */
    @JvmName("vbhnrnbskknwpwqm")
    public suspend fun botFileS3Location(`value`: Output) {
        this.botFileS3Location = value
    }

    /**
     * @param value List of bot locales
     */
    @JvmName("fhesycjhvnhdmrsh")
    public suspend fun botLocales(`value`: Output>) {
        this.botLocales = value
    }

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

    /**
     * @param values List of bot locales
     */
    @JvmName("fhbricpocbkmxgen")
    public suspend fun botLocales(values: List>) {
        this.botLocales = Output.all(values)
    }

    /**
     * @param value A list of tags to add to the bot, which can only be added at bot creation.
     */
    @JvmName("ptedjafyqdttfawv")
    public suspend fun botTags(`value`: Output>) {
        this.botTags = value
    }

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

    /**
     * @param values A list of tags to add to the bot, which can only be added at bot creation.
     */
    @JvmName("huhvfyxuopwxedim")
    public suspend fun botTags(values: List>) {
        this.botTags = Output.all(values)
    }

    /**
     * @param value Data privacy setting of the Bot.
     */
    @JvmName("ahbakjalfnjpqmrk")
    public suspend fun dataPrivacy(`value`: Output) {
        this.dataPrivacy = value
    }

    /**
     * @param value The description of the version.
     */
    @JvmName("dljainrccvwldqok")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value IdleSessionTTLInSeconds of the resource
     */
    @JvmName("lugcfpbmqpfrdqdh")
    public suspend fun idleSessionTtlInSeconds(`value`: Output) {
        this.idleSessionTtlInSeconds = value
    }

    /**
     * @param value The name of the bot locale.
     */
    @JvmName("vgtppduphowafana")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the IAM role used to build and run the bot.
     */
    @JvmName("qpssbfrkcyctppoy")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = value
    }

    /**
     * @param value Specifies configuration settings for the alias used to test the bot. If the `TestBotAliasSettings` property is not specified, the settings are configured with default values.
     */
    @JvmName("sqguudvilagcflqe")
    public suspend fun testBotAliasSettings(`value`: Output) {
        this.testBotAliasSettings = value
    }

    /**
     * @param value A list of tags to add to the test alias for a bot, , which can only be added at bot/bot alias creation.
     */
    @JvmName("eybjgdniehanqvcg")
    public suspend fun testBotAliasTags(`value`: Output>) {
        this.testBotAliasTags = value
    }

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

    /**
     * @param values A list of tags to add to the test alias for a bot, , which can only be added at bot/bot alias creation.
     */
    @JvmName("qumiiebyhtvlnfio")
    public suspend fun testBotAliasTags(values: List>) {
        this.testBotAliasTags = Output.all(values)
    }

    /**
     * @param value Specifies whether to build the bot locales after bot creation completes.
     */
    @JvmName("akwwdpegeobftxyp")
    public suspend fun autoBuildBotLocales(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoBuildBotLocales = mapped
    }

    /**
     * @param value The Amazon S3 location of files used to import a bot. The files must be in the import format specified in [JSON format for importing and exporting](https://docs.aws.amazon.com/lexv2/latest/dg/import-export-format.html) in the *Amazon Lex developer guide.*
     */
    @JvmName("bvdhegppculvucwt")
    public suspend fun botFileS3Location(`value`: BotS3LocationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.botFileS3Location = mapped
    }

    /**
     * @param argument The Amazon S3 location of files used to import a bot. The files must be in the import format specified in [JSON format for importing and exporting](https://docs.aws.amazon.com/lexv2/latest/dg/import-export-format.html) in the *Amazon Lex developer guide.*
     */
    @JvmName("pgphxxlegimqvgyx")
    public suspend fun botFileS3Location(argument: suspend BotS3LocationArgsBuilder.() -> Unit) {
        val toBeMapped = BotS3LocationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.botFileS3Location = mapped
    }

    /**
     * @param value List of bot locales
     */
    @JvmName("bonvhocvkegulofg")
    public suspend fun botLocales(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.botLocales = mapped
    }

    /**
     * @param argument List of bot locales
     */
    @JvmName("ipgacbbrwkkhkojb")
    public suspend fun botLocales(argument: List Unit>) {
        val toBeMapped = argument.toList().map { BotLocaleArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.botLocales = mapped
    }

    /**
     * @param argument List of bot locales
     */
    @JvmName("ovumyludlfmgvsjh")
    public suspend fun botLocales(vararg argument: suspend BotLocaleArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { BotLocaleArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.botLocales = mapped
    }

    /**
     * @param argument List of bot locales
     */
    @JvmName("shgjkqnynfcockna")
    public suspend fun botLocales(argument: suspend BotLocaleArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(BotLocaleArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.botLocales = mapped
    }

    /**
     * @param values List of bot locales
     */
    @JvmName("wpmgxoqndgwvghyy")
    public suspend fun botLocales(vararg values: BotLocaleArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.botLocales = mapped
    }

    /**
     * @param value A list of tags to add to the bot, which can only be added at bot creation.
     */
    @JvmName("hyuhecpsbxqmkeqa")
    public suspend fun botTags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.botTags = mapped
    }

    /**
     * @param argument A list of tags to add to the bot, which can only be added at bot creation.
     */
    @JvmName("oshagqdttwfttror")
    public suspend fun botTags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { BotTagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.botTags = mapped
    }

    /**
     * @param argument A list of tags to add to the bot, which can only be added at bot creation.
     */
    @JvmName("dwpouqypvfnmppgs")
    public suspend fun botTags(vararg argument: suspend BotTagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { BotTagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.botTags = mapped
    }

    /**
     * @param argument A list of tags to add to the bot, which can only be added at bot creation.
     */
    @JvmName("pgwoynbxitasplnm")
    public suspend fun botTags(argument: suspend BotTagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(BotTagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.botTags = mapped
    }

    /**
     * @param values A list of tags to add to the bot, which can only be added at bot creation.
     */
    @JvmName("rmqdjswyrdbkjnrl")
    public suspend fun botTags(vararg values: BotTagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.botTags = mapped
    }

    /**
     * @param value Data privacy setting of the Bot.
     */
    @JvmName("ulthsabbhhyitlcm")
    public suspend fun dataPrivacy(`value`: DataPrivacyPropertiesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataPrivacy = mapped
    }

    /**
     * @param argument Data privacy setting of the Bot.
     */
    @JvmName("wobbxlpxskfgrrwl")
    public suspend fun dataPrivacy(argument: suspend DataPrivacyPropertiesArgsBuilder.() -> Unit) {
        val toBeMapped = DataPrivacyPropertiesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.dataPrivacy = mapped
    }

    /**
     * @param value The description of the version.
     */
    @JvmName("patvrdysgtidsvsj")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value IdleSessionTTLInSeconds of the resource
     */
    @JvmName("hnmatxxtkdeuvfqe")
    public suspend fun idleSessionTtlInSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.idleSessionTtlInSeconds = mapped
    }

    /**
     * @param value The name of the bot locale.
     */
    @JvmName("ropuaxnpfwjgyhag")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the IAM role used to build and run the bot.
     */
    @JvmName("bbrqtyrutspxxfdw")
    public suspend fun roleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.roleArn = mapped
    }

    /**
     * @param value Specifies configuration settings for the alias used to test the bot. If the `TestBotAliasSettings` property is not specified, the settings are configured with default values.
     */
    @JvmName("udtuoxbconnuyyye")
    public suspend fun testBotAliasSettings(`value`: BotTestBotAliasSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.testBotAliasSettings = mapped
    }

    /**
     * @param argument Specifies configuration settings for the alias used to test the bot. If the `TestBotAliasSettings` property is not specified, the settings are configured with default values.
     */
    @JvmName("bgprlywbhaqfqesl")
    public suspend fun testBotAliasSettings(argument: suspend BotTestBotAliasSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = BotTestBotAliasSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.testBotAliasSettings = mapped
    }

    /**
     * @param value A list of tags to add to the test alias for a bot, , which can only be added at bot/bot alias creation.
     */
    @JvmName("qojwnlvfvcmthxqr")
    public suspend fun testBotAliasTags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.testBotAliasTags = mapped
    }

    /**
     * @param argument A list of tags to add to the test alias for a bot, , which can only be added at bot/bot alias creation.
     */
    @JvmName("ydlndijnnhidpxil")
    public suspend fun testBotAliasTags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { BotTagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.testBotAliasTags = mapped
    }

    /**
     * @param argument A list of tags to add to the test alias for a bot, , which can only be added at bot/bot alias creation.
     */
    @JvmName("rcccatoiwxswaksk")
    public suspend fun testBotAliasTags(vararg argument: suspend BotTagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { BotTagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.testBotAliasTags = mapped
    }

    /**
     * @param argument A list of tags to add to the test alias for a bot, , which can only be added at bot/bot alias creation.
     */
    @JvmName("ppoewyoxwqikycjk")
    public suspend fun testBotAliasTags(argument: suspend BotTagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(BotTagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.testBotAliasTags = mapped
    }

    /**
     * @param values A list of tags to add to the test alias for a bot, , which can only be added at bot/bot alias creation.
     */
    @JvmName("uxoywmxnxinfoyqb")
    public suspend fun testBotAliasTags(vararg values: BotTagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.testBotAliasTags = mapped
    }

    internal fun build(): BotArgs = BotArgs(
        autoBuildBotLocales = autoBuildBotLocales,
        botFileS3Location = botFileS3Location,
        botLocales = botLocales,
        botTags = botTags,
        dataPrivacy = dataPrivacy,
        description = description,
        idleSessionTtlInSeconds = idleSessionTtlInSeconds,
        name = name,
        roleArn = roleArn,
        testBotAliasSettings = testBotAliasSettings,
        testBotAliasTags = testBotAliasTags,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy