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

com.pulumi.googlenative.dialogflow.v2beta1.kotlin.Participant.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.

The newest version!
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.googlenative.dialogflow.v2beta1.kotlin

import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map

/**
 * Builder for [Participant].
 */
@PulumiTagMarker
public class ParticipantResourceBuilder internal constructor() {
    public var name: String? = null

    public var args: ParticipantArgs = ParticipantArgs()

    public var opts: CustomResourceOptions = CustomResourceOptions()

    /**
     * @param name The _unique_ name of the resulting resource.
     */
    public fun name(`value`: String) {
        this.name = value
    }

    /**
     * @param block The arguments to use to populate this resource's properties.
     */
    public suspend fun args(block: suspend ParticipantArgsBuilder.() -> Unit) {
        val builder = ParticipantArgsBuilder()
        block(builder)
        this.args = builder.build()
    }

    /**
     * @param block A bag of options that control this resource's behavior.
     */
    public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
        this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
    }

    internal fun build(): Participant {
        val builtJavaResource =
            com.pulumi.googlenative.dialogflow.v2beta1.Participant(
                this.name,
                this.args.toJava(),
                this.opts.toJava(),
            )
        return Participant(builtJavaResource)
    }
}

/**
 * Creates a new participant in a conversation.
 * Note - this resource's API doesn't support deletion. When deleted, the resource will persist
 * on Google Cloud even though it will be deleted from Pulumi state.
 */
public class Participant internal constructor(
    override val javaResource: com.pulumi.googlenative.dialogflow.v2beta1.Participant,
) : KotlinCustomResource(javaResource, ParticipantMapper) {
    public val conversationId: Output
        get() = javaResource.conversationId().applyValue({ args0 -> args0 })

    /**
     * Optional. Key-value filters on the metadata of documents returned by article suggestion. If specified, article suggestion only returns suggested documents that match all filters in their Document.metadata. Multiple values for a metadata key should be concatenated by comma. For example, filters to match all documents that have 'US' or 'CA' in their market metadata values and 'agent' in their user metadata values will be ``` documents_metadata_filters { key: "market" value: "US,CA" } documents_metadata_filters { key: "user" value: "agent" } ```
     */
    public val documentsMetadataFilters: Output>
        get() = javaResource.documentsMetadataFilters().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.key.to(args0.value)
            }).toMap()
        })

    public val location: Output
        get() = javaResource.location().applyValue({ args0 -> args0 })

    /**
     * Optional. The unique identifier of this participant. Format: `projects//locations//conversations//participants/`.
     */
    public val name: Output
        get() = javaResource.name().applyValue({ args0 -> args0 })

    /**
     * Optional. Obfuscated user id that should be associated with the created participant. You can specify a user id as follows: 1. If you set this field in CreateParticipantRequest or UpdateParticipantRequest, Dialogflow adds the obfuscated user id with the participant. 2. If you set this field in AnalyzeContent or StreamingAnalyzeContent, Dialogflow will update Participant.obfuscated_external_user_id. Dialogflow uses this user id for following purposes: 1) Billing and measurement. If user with the same obfuscated_external_user_id is created in a later conversation, dialogflow will know it's the same user. 2) Agent assist suggestion personalization. For example, Dialogflow can use it to provide personalized smart reply suggestions for this user. Note: * Please never pass raw user ids to Dialogflow. Always obfuscate your user id first. * Dialogflow only accepts a UTF-8 encoded string, e.g., a hex digest of a hash function like SHA-512. * The length of the user id must be <= 256 characters.
     */
    public val obfuscatedExternalUserId: Output
        get() = javaResource.obfuscatedExternalUserId().applyValue({ args0 -> args0 })

    public val project: Output
        get() = javaResource.project().applyValue({ args0 -> args0 })

    /**
     * Immutable. The role this participant plays in the conversation. This field must be set during participant creation and is then immutable.
     */
    public val role: Output
        get() = javaResource.role().applyValue({ args0 -> args0 })
}

public object ParticipantMapper : ResourceMapper {
    override fun supportsMappingOfType(javaResource: Resource): Boolean =
        com.pulumi.googlenative.dialogflow.v2beta1.Participant::class == javaResource::class

    override fun map(javaResource: Resource): Participant = Participant(
        javaResource as
            com.pulumi.googlenative.dialogflow.v2beta1.Participant,
    )
}

/**
 * @see [Participant].
 * @param name The _unique_ name of the resulting resource.
 * @param block Builder for [Participant].
 */
public suspend fun participant(name: String, block: suspend ParticipantResourceBuilder.() -> Unit): Participant {
    val builder = ParticipantResourceBuilder()
    builder.name(name)
    block(builder)
    return builder.build()
}

/**
 * @see [Participant].
 * @param name The _unique_ name of the resulting resource.
 */
public fun participant(name: String): Participant {
    val builder = ParticipantResourceBuilder()
    builder.name(name)
    return builder.build()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy