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

com.pulumi.awsnative.lex.kotlin.inputs.BotDialogCodeHookInvocationSettingArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.lex.kotlin.inputs

import com.pulumi.awsnative.lex.inputs.BotDialogCodeHookInvocationSettingArgs.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.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * Settings that specify the dialog code hook that is called by Amazon Lex at a step of the conversation.
 * @property enableCodeHookInvocation Indicates whether a Lambda function should be invoked for the dialog.
 * @property invocationLabel A label that indicates the dialog step from which the dialog code hook is happening.
 * @property isActive Determines whether a dialog code hook is used when the intent is activated.
 * @property postCodeHookSpecification Contains the responses and actions that Amazon Lex takes after the Lambda function is complete.
 */
public data class BotDialogCodeHookInvocationSettingArgs(
    public val enableCodeHookInvocation: Output,
    public val invocationLabel: Output? = null,
    public val isActive: Output,
    public val postCodeHookSpecification: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.lex.inputs.BotDialogCodeHookInvocationSettingArgs =
        com.pulumi.awsnative.lex.inputs.BotDialogCodeHookInvocationSettingArgs.builder()
            .enableCodeHookInvocation(enableCodeHookInvocation.applyValue({ args0 -> args0 }))
            .invocationLabel(invocationLabel?.applyValue({ args0 -> args0 }))
            .isActive(isActive.applyValue({ args0 -> args0 }))
            .postCodeHookSpecification(
                postCodeHookSpecification.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [BotDialogCodeHookInvocationSettingArgs].
 */
@PulumiTagMarker
public class BotDialogCodeHookInvocationSettingArgsBuilder internal constructor() {
    private var enableCodeHookInvocation: Output? = null

    private var invocationLabel: Output? = null

    private var isActive: Output? = null

    private var postCodeHookSpecification: Output? =
        null

    /**
     * @param value Indicates whether a Lambda function should be invoked for the dialog.
     */
    @JvmName("espkxawrjmnhyabf")
    public suspend fun enableCodeHookInvocation(`value`: Output) {
        this.enableCodeHookInvocation = value
    }

    /**
     * @param value A label that indicates the dialog step from which the dialog code hook is happening.
     */
    @JvmName("lsymhtrbtdxnigkc")
    public suspend fun invocationLabel(`value`: Output) {
        this.invocationLabel = value
    }

    /**
     * @param value Determines whether a dialog code hook is used when the intent is activated.
     */
    @JvmName("wafcclbjpstxujdn")
    public suspend fun isActive(`value`: Output) {
        this.isActive = value
    }

    /**
     * @param value Contains the responses and actions that Amazon Lex takes after the Lambda function is complete.
     */
    @JvmName("jmskcqfbrimugtbp")
    public suspend fun postCodeHookSpecification(`value`: Output) {
        this.postCodeHookSpecification = value
    }

    /**
     * @param value Indicates whether a Lambda function should be invoked for the dialog.
     */
    @JvmName("adhgxwnvkptavkat")
    public suspend fun enableCodeHookInvocation(`value`: Boolean) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.enableCodeHookInvocation = mapped
    }

    /**
     * @param value A label that indicates the dialog step from which the dialog code hook is happening.
     */
    @JvmName("uubrrnfnfheavvjy")
    public suspend fun invocationLabel(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.invocationLabel = mapped
    }

    /**
     * @param value Determines whether a dialog code hook is used when the intent is activated.
     */
    @JvmName("ruklfgvhiyjofhrm")
    public suspend fun isActive(`value`: Boolean) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.isActive = mapped
    }

    /**
     * @param value Contains the responses and actions that Amazon Lex takes after the Lambda function is complete.
     */
    @JvmName("crynapawkwfkvjlj")
    public suspend fun postCodeHookSpecification(`value`: BotPostDialogCodeHookInvocationSpecificationArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.postCodeHookSpecification = mapped
    }

    /**
     * @param argument Contains the responses and actions that Amazon Lex takes after the Lambda function is complete.
     */
    @JvmName("rpktayyahqehmtpc")
    public suspend fun postCodeHookSpecification(argument: suspend BotPostDialogCodeHookInvocationSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped = BotPostDialogCodeHookInvocationSpecificationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.postCodeHookSpecification = mapped
    }

    internal fun build(): BotDialogCodeHookInvocationSettingArgs =
        BotDialogCodeHookInvocationSettingArgs(
            enableCodeHookInvocation = enableCodeHookInvocation ?: throw
                PulumiNullFieldException("enableCodeHookInvocation"),
            invocationLabel = invocationLabel,
            isActive = isActive ?: throw PulumiNullFieldException("isActive"),
            postCodeHookSpecification = postCodeHookSpecification ?: throw
                PulumiNullFieldException("postCodeHookSpecification"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy