import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * A single question to be scored by the Insights QA feature.
 *
 * ## Example Usage
 *
 * ## Import
 *
 * QaQuestion can be imported using any of these accepted formats:
 *
 * * `projects/{{project}}/locations/{{location}}/qaScorecards/{{qa_scorecard}}/revisions/{{revision}}/qaQuestions/{{name}}`
 * * `{{project}}/{{location}}/{{qa_scorecard}}/{{revision}}/{{name}}`
 * * `{{location}}/{{qa_scorecard}}/{{revision}}/{{name}}`
 *
 * When using the `pulumi import` command, QaQuestion can be imported using one of the formats above. For example:
 *
 * ```sh
 * $ pulumi import gcp:contactcenterinsights/qaQuestion:QaQuestion default projects/{{project}}/locations/{{location}}/qaScorecards/{{qa_scorecard}}/revisions/{{revision}}/qaQuestions/{{name}}
 * $ pulumi import gcp:contactcenterinsights/qaQuestion:QaQuestion default {{project}}/{{location}}/{{qa_scorecard}}/{{revision}}/{{name}}
 * $ pulumi import gcp:contactcenterinsights/qaQuestion:QaQuestion default {{location}}/{{qa_scorecard}}/{{revision}}/{{name}}
 * ```
 */
export declare class QaQuestion extends pulumi.CustomResource {
    /**
     * Get an existing QaQuestion 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?: QaQuestionState, opts?: pulumi.CustomResourceOptions): QaQuestion;
    /**
     * Returns true if the given object is an instance of QaQuestion.  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 QaQuestion;
    /**
     * Short, descriptive string, used in the UI where it's not practical
     * to display the full question body. E.g., "Greeting".
     */
    readonly abbreviation: pulumi.Output<string | undefined>;
    /**
     * A list of valid answers to the question, which the LLM must choose from.
     * Structure is documented below.
     */
    readonly answerChoices: pulumi.Output<outputs.contactcenterinsights.QaQuestionAnswerChoice[] | undefined>;
    /**
     * Instructions describing how to determine the answer.
     */
    readonly answerInstructions: pulumi.Output<string | undefined>;
    /**
     * The time at which this question was created.
     */
    readonly createTime: pulumi.Output<string>;
    /**
     * Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
     * When a 'terraform destroy' or 'pulumi up' would delete the resource,
     * the command will fail if this field is set to "PREVENT" in Terraform state.
     * When set to "ABANDON", the command will remove the resource from Terraform
     * management without updating or deleting the resource in the API.
     * When set to "DELETE", deleting the resource is allowed.
     */
    readonly deletionPolicy: pulumi.Output<string>;
    /**
     * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
     */
    readonly location: pulumi.Output<string>;
    /**
     * A wrapper representing metrics calculated against a test-set on a LLM that
     * was fine tuned for this question.
     * Structure is documented below.
     */
    readonly metrics: pulumi.Output<outputs.contactcenterinsights.QaQuestionMetrics | undefined>;
    /**
     * Identifier. The resource name of the question.
     * Format:
     * projects/{project}/locations/{location}/qaScorecards/{qa_scorecard}/revisions/{revision}/qaQuestions/{qa_question}
     */
    readonly name: pulumi.Output<string>;
    /**
     * Defines the order of the question within its parent scorecard revision.
     */
    readonly order: pulumi.Output<number | undefined>;
    /**
     * Configuration for a predefined question. This field will only be set if the
     * Question Type is predefined.
     * Structure is documented below.
     */
    readonly predefinedQuestionConfig: pulumi.Output<outputs.contactcenterinsights.QaQuestionPredefinedQuestionConfig | 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>;
    /**
     * Options for configuring the data used to generate the QA question.
     * Structure is documented below.
     */
    readonly qaQuestionDataOptions: pulumi.Output<outputs.contactcenterinsights.QaQuestionQaQuestionDataOptions | undefined>;
    /**
     * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
     */
    readonly qaScorecard: pulumi.Output<string>;
    /**
     * Question text. E.g., "Did the agent greet the customer?"
     */
    readonly questionBody: pulumi.Output<string | undefined>;
    /**
     * The type of question.
     * Possible values:
     * CUSTOMIZABLE
     * PREDEFINED
     */
    readonly questionType: pulumi.Output<string | undefined>;
    /**
     * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
     */
    readonly revision: pulumi.Output<string>;
    /**
     * Questions are tagged for categorization and scoring. Tags can either be:
     * - Default Tags: These are predefined categories. They are identified by
     * their string value (e.g., "BUSINESS", "COMPLIANCE", and "CUSTOMER").
     * - Custom Tags: These are user-defined categories. They are identified by
     * their full resource name (e.g.,
     * projects/{project}/locations/{location}/qaQuestionTags/{qa_question_tag}).
     * Both default and custom tags are used to group questions and to influence
     * the scoring of each question.
     */
    readonly tags: pulumi.Output<string[] | undefined>;
    /**
     * Metadata about the tuning operation for the question. Will only be set if a
     * scorecard containing this question has been tuned.
     * Structure is documented below.
     */
    readonly tuningMetadata: pulumi.Output<outputs.contactcenterinsights.QaQuestionTuningMetadata | undefined>;
    /**
     * The most recent time at which the question was updated.
     */
    readonly updateTime: pulumi.Output<string>;
    /**
     * Create a QaQuestion 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: QaQuestionArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering QaQuestion resources.
 */
export interface QaQuestionState {
    /**
     * Short, descriptive string, used in the UI where it's not practical
     * to display the full question body. E.g., "Greeting".
     */
    abbreviation?: pulumi.Input<string | undefined>;
    /**
     * A list of valid answers to the question, which the LLM must choose from.
     * Structure is documented below.
     */
    answerChoices?: pulumi.Input<pulumi.Input<inputs.contactcenterinsights.QaQuestionAnswerChoice>[] | undefined>;
    /**
     * Instructions describing how to determine the answer.
     */
    answerInstructions?: pulumi.Input<string | undefined>;
    /**
     * The time at which this question was created.
     */
    createTime?: pulumi.Input<string | undefined>;
    /**
     * Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
     * When a 'terraform destroy' or 'pulumi up' would delete the resource,
     * the command will fail if this field is set to "PREVENT" in Terraform state.
     * When set to "ABANDON", the command will remove the resource from Terraform
     * management without updating or deleting the resource in the API.
     * When set to "DELETE", deleting the resource is allowed.
     */
    deletionPolicy?: pulumi.Input<string | undefined>;
    /**
     * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * A wrapper representing metrics calculated against a test-set on a LLM that
     * was fine tuned for this question.
     * Structure is documented below.
     */
    metrics?: pulumi.Input<inputs.contactcenterinsights.QaQuestionMetrics | undefined>;
    /**
     * Identifier. The resource name of the question.
     * Format:
     * projects/{project}/locations/{location}/qaScorecards/{qa_scorecard}/revisions/{revision}/qaQuestions/{qa_question}
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Defines the order of the question within its parent scorecard revision.
     */
    order?: pulumi.Input<number | undefined>;
    /**
     * Configuration for a predefined question. This field will only be set if the
     * Question Type is predefined.
     * Structure is documented below.
     */
    predefinedQuestionConfig?: pulumi.Input<inputs.contactcenterinsights.QaQuestionPredefinedQuestionConfig | undefined>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string | undefined>;
    /**
     * Options for configuring the data used to generate the QA question.
     * Structure is documented below.
     */
    qaQuestionDataOptions?: pulumi.Input<inputs.contactcenterinsights.QaQuestionQaQuestionDataOptions | undefined>;
    /**
     * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
     */
    qaScorecard?: pulumi.Input<string | undefined>;
    /**
     * Question text. E.g., "Did the agent greet the customer?"
     */
    questionBody?: pulumi.Input<string | undefined>;
    /**
     * The type of question.
     * Possible values:
     * CUSTOMIZABLE
     * PREDEFINED
     */
    questionType?: pulumi.Input<string | undefined>;
    /**
     * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
     */
    revision?: pulumi.Input<string | undefined>;
    /**
     * Questions are tagged for categorization and scoring. Tags can either be:
     * - Default Tags: These are predefined categories. They are identified by
     * their string value (e.g., "BUSINESS", "COMPLIANCE", and "CUSTOMER").
     * - Custom Tags: These are user-defined categories. They are identified by
     * their full resource name (e.g.,
     * projects/{project}/locations/{location}/qaQuestionTags/{qa_question_tag}).
     * Both default and custom tags are used to group questions and to influence
     * the scoring of each question.
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Metadata about the tuning operation for the question. Will only be set if a
     * scorecard containing this question has been tuned.
     * Structure is documented below.
     */
    tuningMetadata?: pulumi.Input<inputs.contactcenterinsights.QaQuestionTuningMetadata | undefined>;
    /**
     * The most recent time at which the question was updated.
     */
    updateTime?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a QaQuestion resource.
 */
export interface QaQuestionArgs {
    /**
     * Short, descriptive string, used in the UI where it's not practical
     * to display the full question body. E.g., "Greeting".
     */
    abbreviation?: pulumi.Input<string | undefined>;
    /**
     * A list of valid answers to the question, which the LLM must choose from.
     * Structure is documented below.
     */
    answerChoices?: pulumi.Input<pulumi.Input<inputs.contactcenterinsights.QaQuestionAnswerChoice>[] | undefined>;
    /**
     * Instructions describing how to determine the answer.
     */
    answerInstructions?: pulumi.Input<string | undefined>;
    /**
     * Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
     * When a 'terraform destroy' or 'pulumi up' would delete the resource,
     * the command will fail if this field is set to "PREVENT" in Terraform state.
     * When set to "ABANDON", the command will remove the resource from Terraform
     * management without updating or deleting the resource in the API.
     * When set to "DELETE", deleting the resource is allowed.
     */
    deletionPolicy?: pulumi.Input<string | undefined>;
    /**
     * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
     */
    location: pulumi.Input<string>;
    /**
     * A wrapper representing metrics calculated against a test-set on a LLM that
     * was fine tuned for this question.
     * Structure is documented below.
     */
    metrics?: pulumi.Input<inputs.contactcenterinsights.QaQuestionMetrics | undefined>;
    /**
     * Defines the order of the question within its parent scorecard revision.
     */
    order?: pulumi.Input<number | undefined>;
    /**
     * Configuration for a predefined question. This field will only be set if the
     * Question Type is predefined.
     * Structure is documented below.
     */
    predefinedQuestionConfig?: pulumi.Input<inputs.contactcenterinsights.QaQuestionPredefinedQuestionConfig | undefined>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string | undefined>;
    /**
     * Options for configuring the data used to generate the QA question.
     * Structure is documented below.
     */
    qaQuestionDataOptions?: pulumi.Input<inputs.contactcenterinsights.QaQuestionQaQuestionDataOptions | undefined>;
    /**
     * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
     */
    qaScorecard: pulumi.Input<string>;
    /**
     * Question text. E.g., "Did the agent greet the customer?"
     */
    questionBody?: pulumi.Input<string | undefined>;
    /**
     * The type of question.
     * Possible values:
     * CUSTOMIZABLE
     * PREDEFINED
     */
    questionType?: pulumi.Input<string | undefined>;
    /**
     * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
     */
    revision: pulumi.Input<string>;
    /**
     * Questions are tagged for categorization and scoring. Tags can either be:
     * - Default Tags: These are predefined categories. They are identified by
     * their string value (e.g., "BUSINESS", "COMPLIANCE", and "CUSTOMER").
     * - Custom Tags: These are user-defined categories. They are identified by
     * their full resource name (e.g.,
     * projects/{project}/locations/{location}/qaQuestionTags/{qa_question_tag}).
     * Both default and custom tags are used to group questions and to influence
     * the scoring of each question.
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Metadata about the tuning operation for the question. Will only be set if a
     * scorecard containing this question has been tuned.
     * Structure is documented below.
     */
    tuningMetadata?: pulumi.Input<inputs.contactcenterinsights.QaQuestionTuningMetadata | undefined>;
}
//# sourceMappingURL=qaQuestion.d.ts.map