import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * A conversation profile configures a set of parameters that control the suggestions made to an agent. These parameters control the suggestions that are surfaced during runtime. Each profile configures either a Dialogflow virtual agent or a human agent for a conversation.
 *
 * To get more information about ConversationProfile, see:
 *
 * * [API documentation](https://cloud.google.com/dialogflow/docs/reference/rest/v2beta1/projects/conversationProfiles)
 * * How-to Guides
 *     * [Official Documentation](https://cloud.google.com/dialogflow/docs/)
 *
 * ## Example Usage
 *
 * ### Dialogflow Conversation Profile Basic
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const basicAgent = new gcp.diagflow.Agent("basic_agent", {
 *     displayName: "example_agent",
 *     defaultLanguageCode: "en-us",
 *     timeZone: "America/New_York",
 * });
 * const basicProfile = new gcp.diagflow.ConversationProfile("basic_profile", {
 *     displayName: "dialogflow-profile",
 *     location: "global",
 *     automatedAgentConfig: {
 *         agent: pulumi.interpolate`projects/${basicAgent.id}/locations/global/agent/environments/draft`,
 *     },
 *     humanAgentAssistantConfig: {
 *         messageAnalysisConfig: {
 *             enableEntityExtraction: true,
 *             enableSentimentAnalysis: true,
 *         },
 *     },
 * });
 * ```
 * ### Dialogflow Conversation Profile Recognition Result Notification
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const recognitionResultNotificationProfileTopic = new gcp.pubsub.Topic("recognition_result_notification_profile", {name: "recognition-result-notification"});
 * const recognitionResultNotificationProfile = new gcp.diagflow.ConversationProfile("recognition_result_notification_profile", {
 *     displayName: "dialogflow-profile",
 *     location: "global",
 *     newRecognitionResultNotificationConfig: {
 *         topic: recognitionResultNotificationProfileTopic.id,
 *         messageFormat: "JSON",
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * ConversationProfile can be imported using any of these accepted formats:
 *
 * * `{{name}}`
 *
 * When using the `pulumi import` command, ConversationProfile can be imported using one of the formats above. For example:
 *
 * ```sh
 * $ pulumi import gcp:diagflow/conversationProfile:ConversationProfile default {{name}}
 * ```
 */
export declare class ConversationProfile extends pulumi.CustomResource {
    /**
     * Get an existing ConversationProfile resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ConversationProfileState, opts?: pulumi.CustomResourceOptions): ConversationProfile;
    /**
     * Returns true if the given object is an instance of ConversationProfile.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is ConversationProfile;
    /**
     * Configuration for an automated agent to use with this profile
     * Structure is documented below.
     */
    readonly automatedAgentConfig: pulumi.Output<outputs.diagflow.ConversationProfileAutomatedAgentConfig | undefined>;
    /**
     * Required. Human readable name for this profile. Max length 1024 bytes.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * Configuration for connecting to a live agent
     * Structure is documented below.
     */
    readonly humanAgentAssistantConfig: pulumi.Output<outputs.diagflow.ConversationProfileHumanAgentAssistantConfig | undefined>;
    /**
     * Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation.
     * Structure is documented below.
     */
    readonly humanAgentHandoffConfig: pulumi.Output<outputs.diagflow.ConversationProfileHumanAgentHandoffConfig | undefined>;
    /**
     * Language code for the conversation profile. This should be a BCP-47 language tag.
     */
    readonly languageCode: pulumi.Output<string>;
    /**
     * desc
     */
    readonly location: pulumi.Output<string>;
    /**
     * Defines logging behavior for conversation lifecycle events.
     * Structure is documented below.
     */
    readonly loggingConfig: pulumi.Output<outputs.diagflow.ConversationProfileLoggingConfig | undefined>;
    /**
     * name
     */
    readonly name: pulumi.Output<string>;
    /**
     * Pub/Sub topic on which to publish new agent assistant events.
     * Expects the format "projects/<Project ID>/locations/<Location ID>/topics/<Topic ID>"
     * Structure is documented below.
     */
    readonly newMessageEventNotificationConfig: pulumi.Output<outputs.diagflow.ConversationProfileNewMessageEventNotificationConfig | undefined>;
    /**
     * Optional. Configuration for publishing transcription intermediate results. Event will be sent in format of ConversationEvent. If configured, the following information will be populated as ConversationEvent Pub/Sub message attributes: - "participantId" - "participantRole" - "messageId"
     * Structure is documented below.
     */
    readonly newRecognitionResultNotificationConfig: pulumi.Output<outputs.diagflow.ConversationProfileNewRecognitionResultNotificationConfig | undefined>;
    /**
     * Pub/Sub topic on which to publish new agent assistant events.
     * Expects the format "projects/<Project ID>/locations/<Location ID>/topics/<Topic ID>"
     * Structure is documented below.
     */
    readonly notificationConfig: pulumi.Output<outputs.diagflow.ConversationProfileNotificationConfig | undefined>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    readonly project: pulumi.Output<string>;
    /**
     * Name of the CX SecuritySettings reference for the agent.
     */
    readonly securitySettings: pulumi.Output<string | undefined>;
    /**
     * Settings for speech transcription.
     * Structure is documented below.
     */
    readonly sttConfig: pulumi.Output<outputs.diagflow.ConversationProfileSttConfig | undefined>;
    /**
     * The time zone of this conversational profile.
     */
    readonly timeZone: pulumi.Output<string | undefined>;
    /**
     * Configuration for Text-to-Speech synthesization. If agent defines synthesization options as well, agent settings overrides the option here.
     * Structure is documented below.
     */
    readonly ttsConfig: pulumi.Output<outputs.diagflow.ConversationProfileTtsConfig | undefined>;
    /**
     * Create a ConversationProfile resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: ConversationProfileArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering ConversationProfile resources.
 */
export interface ConversationProfileState {
    /**
     * Configuration for an automated agent to use with this profile
     * Structure is documented below.
     */
    automatedAgentConfig?: pulumi.Input<inputs.diagflow.ConversationProfileAutomatedAgentConfig>;
    /**
     * Required. Human readable name for this profile. Max length 1024 bytes.
     */
    displayName?: pulumi.Input<string>;
    /**
     * Configuration for connecting to a live agent
     * Structure is documented below.
     */
    humanAgentAssistantConfig?: pulumi.Input<inputs.diagflow.ConversationProfileHumanAgentAssistantConfig>;
    /**
     * Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation.
     * Structure is documented below.
     */
    humanAgentHandoffConfig?: pulumi.Input<inputs.diagflow.ConversationProfileHumanAgentHandoffConfig>;
    /**
     * Language code for the conversation profile. This should be a BCP-47 language tag.
     */
    languageCode?: pulumi.Input<string>;
    /**
     * desc
     */
    location?: pulumi.Input<string>;
    /**
     * Defines logging behavior for conversation lifecycle events.
     * Structure is documented below.
     */
    loggingConfig?: pulumi.Input<inputs.diagflow.ConversationProfileLoggingConfig>;
    /**
     * name
     */
    name?: pulumi.Input<string>;
    /**
     * Pub/Sub topic on which to publish new agent assistant events.
     * Expects the format "projects/<Project ID>/locations/<Location ID>/topics/<Topic ID>"
     * Structure is documented below.
     */
    newMessageEventNotificationConfig?: pulumi.Input<inputs.diagflow.ConversationProfileNewMessageEventNotificationConfig>;
    /**
     * Optional. Configuration for publishing transcription intermediate results. Event will be sent in format of ConversationEvent. If configured, the following information will be populated as ConversationEvent Pub/Sub message attributes: - "participantId" - "participantRole" - "messageId"
     * Structure is documented below.
     */
    newRecognitionResultNotificationConfig?: pulumi.Input<inputs.diagflow.ConversationProfileNewRecognitionResultNotificationConfig>;
    /**
     * Pub/Sub topic on which to publish new agent assistant events.
     * Expects the format "projects/<Project ID>/locations/<Location ID>/topics/<Topic ID>"
     * Structure is documented below.
     */
    notificationConfig?: pulumi.Input<inputs.diagflow.ConversationProfileNotificationConfig>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string>;
    /**
     * Name of the CX SecuritySettings reference for the agent.
     */
    securitySettings?: pulumi.Input<string>;
    /**
     * Settings for speech transcription.
     * Structure is documented below.
     */
    sttConfig?: pulumi.Input<inputs.diagflow.ConversationProfileSttConfig>;
    /**
     * The time zone of this conversational profile.
     */
    timeZone?: pulumi.Input<string>;
    /**
     * Configuration for Text-to-Speech synthesization. If agent defines synthesization options as well, agent settings overrides the option here.
     * Structure is documented below.
     */
    ttsConfig?: pulumi.Input<inputs.diagflow.ConversationProfileTtsConfig>;
}
/**
 * The set of arguments for constructing a ConversationProfile resource.
 */
export interface ConversationProfileArgs {
    /**
     * Configuration for an automated agent to use with this profile
     * Structure is documented below.
     */
    automatedAgentConfig?: pulumi.Input<inputs.diagflow.ConversationProfileAutomatedAgentConfig>;
    /**
     * Required. Human readable name for this profile. Max length 1024 bytes.
     */
    displayName: pulumi.Input<string>;
    /**
     * Configuration for connecting to a live agent
     * Structure is documented below.
     */
    humanAgentAssistantConfig?: pulumi.Input<inputs.diagflow.ConversationProfileHumanAgentAssistantConfig>;
    /**
     * Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation.
     * Structure is documented below.
     */
    humanAgentHandoffConfig?: pulumi.Input<inputs.diagflow.ConversationProfileHumanAgentHandoffConfig>;
    /**
     * Language code for the conversation profile. This should be a BCP-47 language tag.
     */
    languageCode?: pulumi.Input<string>;
    /**
     * desc
     */
    location: pulumi.Input<string>;
    /**
     * Defines logging behavior for conversation lifecycle events.
     * Structure is documented below.
     */
    loggingConfig?: pulumi.Input<inputs.diagflow.ConversationProfileLoggingConfig>;
    /**
     * Pub/Sub topic on which to publish new agent assistant events.
     * Expects the format "projects/<Project ID>/locations/<Location ID>/topics/<Topic ID>"
     * Structure is documented below.
     */
    newMessageEventNotificationConfig?: pulumi.Input<inputs.diagflow.ConversationProfileNewMessageEventNotificationConfig>;
    /**
     * Optional. Configuration for publishing transcription intermediate results. Event will be sent in format of ConversationEvent. If configured, the following information will be populated as ConversationEvent Pub/Sub message attributes: - "participantId" - "participantRole" - "messageId"
     * Structure is documented below.
     */
    newRecognitionResultNotificationConfig?: pulumi.Input<inputs.diagflow.ConversationProfileNewRecognitionResultNotificationConfig>;
    /**
     * Pub/Sub topic on which to publish new agent assistant events.
     * Expects the format "projects/<Project ID>/locations/<Location ID>/topics/<Topic ID>"
     * Structure is documented below.
     */
    notificationConfig?: pulumi.Input<inputs.diagflow.ConversationProfileNotificationConfig>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string>;
    /**
     * Name of the CX SecuritySettings reference for the agent.
     */
    securitySettings?: pulumi.Input<string>;
    /**
     * Settings for speech transcription.
     * Structure is documented below.
     */
    sttConfig?: pulumi.Input<inputs.diagflow.ConversationProfileSttConfig>;
    /**
     * The time zone of this conversational profile.
     */
    timeZone?: pulumi.Input<string>;
    /**
     * Configuration for Text-to-Speech synthesization. If agent defines synthesization options as well, agent settings overrides the option here.
     * Structure is documented below.
     */
    ttsConfig?: pulumi.Input<inputs.diagflow.ConversationProfileTtsConfig>;
}
