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

com.pulumi.googlenative.dialogflow.v2beta1.ParticipantArgs Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.googlenative.dialogflow.v2beta1;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.dialogflow.v2beta1.enums.ParticipantRole;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ParticipantArgs extends com.pulumi.resources.ResourceArgs {

    public static final ParticipantArgs Empty = new ParticipantArgs();

    @Import(name="conversationId", required=true)
    private Output conversationId;

    public Output conversationId() {
        return this.conversationId;
    }

    /**
     * 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" }```
     * 
     */
    @Import(name="documentsMetadataFilters")
    private @Nullable Output> documentsMetadataFilters;

    /**
     * @return 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 Optional>> documentsMetadataFilters() {
        return Optional.ofNullable(this.documentsMetadataFilters);
    }

    @Import(name="location")
    private @Nullable Output location;

    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Optional. The unique identifier of this participant. Format: `projects//locations//conversations//participants/`.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Optional. The unique identifier of this participant. Format: `projects//locations//conversations//participants/`.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * 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.
     * 
     */
    @Import(name="obfuscatedExternalUserId")
    private @Nullable Output obfuscatedExternalUserId;

    /**
     * @return 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 Optional> obfuscatedExternalUserId() {
        return Optional.ofNullable(this.obfuscatedExternalUserId);
    }

    @Import(name="project")
    private @Nullable Output project;

    public Optional> project() {
        return Optional.ofNullable(this.project);
    }

    /**
     * Immutable. The role this participant plays in the conversation. This field must be set during participant creation and is then immutable.
     * 
     */
    @Import(name="role")
    private @Nullable Output role;

    /**
     * @return Immutable. The role this participant plays in the conversation. This field must be set during participant creation and is then immutable.
     * 
     */
    public Optional> role() {
        return Optional.ofNullable(this.role);
    }

    private ParticipantArgs() {}

    private ParticipantArgs(ParticipantArgs $) {
        this.conversationId = $.conversationId;
        this.documentsMetadataFilters = $.documentsMetadataFilters;
        this.location = $.location;
        this.name = $.name;
        this.obfuscatedExternalUserId = $.obfuscatedExternalUserId;
        this.project = $.project;
        this.role = $.role;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(ParticipantArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private ParticipantArgs $;

        public Builder() {
            $ = new ParticipantArgs();
        }

        public Builder(ParticipantArgs defaults) {
            $ = new ParticipantArgs(Objects.requireNonNull(defaults));
        }

        public Builder conversationId(Output conversationId) {
            $.conversationId = conversationId;
            return this;
        }

        public Builder conversationId(String conversationId) {
            return conversationId(Output.of(conversationId));
        }

        /**
         * @param documentsMetadataFilters 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" }```
         * 
         * @return builder
         * 
         */
        public Builder documentsMetadataFilters(@Nullable Output> documentsMetadataFilters) {
            $.documentsMetadataFilters = documentsMetadataFilters;
            return this;
        }

        /**
         * @param documentsMetadataFilters 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" }```
         * 
         * @return builder
         * 
         */
        public Builder documentsMetadataFilters(Map documentsMetadataFilters) {
            return documentsMetadataFilters(Output.of(documentsMetadataFilters));
        }

        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param name Optional. The unique identifier of this participant. Format: `projects//locations//conversations//participants/`.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Optional. The unique identifier of this participant. Format: `projects//locations//conversations//participants/`.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param obfuscatedExternalUserId 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.
         * 
         * @return builder
         * 
         */
        public Builder obfuscatedExternalUserId(@Nullable Output obfuscatedExternalUserId) {
            $.obfuscatedExternalUserId = obfuscatedExternalUserId;
            return this;
        }

        /**
         * @param obfuscatedExternalUserId 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.
         * 
         * @return builder
         * 
         */
        public Builder obfuscatedExternalUserId(String obfuscatedExternalUserId) {
            return obfuscatedExternalUserId(Output.of(obfuscatedExternalUserId));
        }

        public Builder project(@Nullable Output project) {
            $.project = project;
            return this;
        }

        public Builder project(String project) {
            return project(Output.of(project));
        }

        /**
         * @param role Immutable. The role this participant plays in the conversation. This field must be set during participant creation and is then immutable.
         * 
         * @return builder
         * 
         */
        public Builder role(@Nullable Output role) {
            $.role = role;
            return this;
        }

        /**
         * @param role Immutable. The role this participant plays in the conversation. This field must be set during participant creation and is then immutable.
         * 
         * @return builder
         * 
         */
        public Builder role(ParticipantRole role) {
            return role(Output.of(role));
        }

        public ParticipantArgs build() {
            $.conversationId = Objects.requireNonNull($.conversationId, "expected parameter 'conversationId' to be non-null");
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy