import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Agent Endpoint resource in Oracle Cloud Infrastructure Generative Ai Agent service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/generative-ai-agents/latest/AgentEndpoint
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/generative_ai_agent
 *
 * Creates an endpoint.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testAgentEndpoint = new oci.generativeai.AgentAgentEndpoint("test_agent_endpoint", {
 *     agentId: testAgent.id,
 *     compartmentId: compartmentId,
 *     contentModerationConfig: {
 *         shouldEnableOnInput: agentEndpointContentModerationConfigShouldEnableOnInput === "true",
 *         shouldEnableOnOutput: agentEndpointContentModerationConfigShouldEnableOnOutput === "true",
 *     },
 *     definedTags: {
 *         "Operations.CostCenter": "42",
 *     },
 *     description: agentEndpointDescription,
 *     displayName: agentEndpointDisplayName,
 *     freeformTags: {
 *         Department: "Finance",
 *     },
 *     guardrailConfig: {
 *         contentModerationConfig: {
 *             inputGuardrailMode: agentEndpointGuardrailConfigContentModerationConfigInputGuardrailMode,
 *             outputGuardrailMode: agentEndpointGuardrailConfigContentModerationConfigOutputGuardrailMode,
 *         },
 *         personallyIdentifiableInformationConfig: {
 *             inputGuardrailMode: agentEndpointGuardrailConfigPersonallyIdentifiableInformationConfigInputGuardrailMode,
 *             outputGuardrailMode: agentEndpointGuardrailConfigPersonallyIdentifiableInformationConfigOutputGuardrailMode,
 *         },
 *         promptInjectionConfig: {
 *             inputGuardrailMode: agentEndpointGuardrailConfigPromptInjectionConfigInputGuardrailMode,
 *         },
 *     },
 *     humanInputConfig: {
 *         shouldEnableHumanInput: agentEndpointHumanInputConfigShouldEnableHumanInput === "true",
 *     },
 *     metadata: agentEndpointMetadata,
 *     outputConfig: {
 *         outputLocation: {
 *             bucket: agentEndpointOutputConfigOutputLocationBucket,
 *             namespace: agentEndpointOutputConfigOutputLocationNamespace,
 *             outputLocationType: agentEndpointOutputConfigOutputLocationOutputLocationType,
 *             prefix: agentEndpointOutputConfigOutputLocationPrefix,
 *         },
 *         retentionPeriodInMinutes: Number(agentEndpointOutputConfigRetentionPeriodInMinutes),
 *     },
 *     provisionedCapacityConfig: {
 *         provisionedCapacityId: testProvisionedCapacity.id,
 *         platformRuntimeConfig: {
 *             platformRuntimeConfigType: agentEndpointProvisionedCapacityConfigPlatformRuntimeConfigPlatformRuntimeConfigType,
 *             version: agentEndpointProvisionedCapacityConfigPlatformRuntimeConfigVersion,
 *         },
 *         toolRuntimeConfigs: [{
 *             toolRuntimeConfigType: agentEndpointProvisionedCapacityConfigToolRuntimeConfigsToolRuntimeConfigType,
 *             version: agentEndpointProvisionedCapacityConfigToolRuntimeConfigsVersion,
 *         }],
 *     },
 *     sessionConfig: {
 *         idleTimeoutInSeconds: Number(agentEndpointSessionConfigIdleTimeoutInSeconds),
 *     },
 *     shouldEnableCitation: agentEndpointShouldEnableCitation === "true",
 *     shouldEnableMultiLanguage: agentEndpointShouldEnableMultiLanguage === "true",
 *     shouldEnableSession: agentEndpointShouldEnableSession === "true",
 *     shouldEnableTrace: agentEndpointShouldEnableTrace === "true",
 * });
 * ```
 *
 * ## Import
 *
 * AgentEndpoints can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:GenerativeAi/agentAgentEndpoint:AgentAgentEndpoint test_agent_endpoint "id"
 * ```
 */
export declare class AgentAgentEndpoint extends pulumi.CustomResource {
    /**
     * Get an existing AgentAgentEndpoint 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?: AgentAgentEndpointState, opts?: pulumi.CustomResourceOptions): AgentAgentEndpoint;
    /**
     * Returns true if the given object is an instance of AgentAgentEndpoint.  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 AgentAgentEndpoint;
    /**
     * The OCID of the agent that this endpoint is associated with.
     */
    readonly agentId: pulumi.Output<string>;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment to create the endpoint in.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * (Updatable) The configuration details about whether to apply the content moderation feature to input and output. Content moderation removes toxic and biased content from responses. It is recommended to use content moderation.
     */
    readonly contentModerationConfig: pulumi.Output<outputs.GenerativeAi.AgentAgentEndpointContentModerationConfig>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Operations.CostCenter": "42"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) An optional description of the endpoint.
     */
    readonly description: pulumi.Output<string>;
    /**
     * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Department": "Finance"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) The configuration details about whether to apply the guardrail checks to input and output.
     */
    readonly guardrailConfig: pulumi.Output<outputs.GenerativeAi.AgentAgentEndpointGuardrailConfig>;
    /**
     * (Updatable) Human Input Configuration for an AgentEndpoint.
     */
    readonly humanInputConfig: pulumi.Output<outputs.GenerativeAi.AgentAgentEndpointHumanInputConfig>;
    /**
     * A message that describes the current state of the endpoint in more detail. For example, can be used to provide actionable information for a resource in the Failed state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * (Updatable) Key-value pairs to allow additional configurations.
     */
    readonly metadata: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) Configuration to store results generated by agent.
     */
    readonly outputConfig: pulumi.Output<outputs.GenerativeAi.AgentAgentEndpointOutputConfig>;
    /**
     * (Updatable) The configuration includes the provisioned capacity id and component runtime (tool versions, and other relevant information).
     */
    readonly provisionedCapacityConfig: pulumi.Output<outputs.GenerativeAi.AgentAgentEndpointProvisionedCapacityConfig>;
    /**
     * (Updatable) Session Configuration on AgentEndpoint.
     */
    readonly sessionConfig: pulumi.Output<outputs.GenerativeAi.AgentAgentEndpointSessionConfig>;
    /**
     * (Updatable) Whether to show citations in the chat result.
     */
    readonly shouldEnableCitation: pulumi.Output<boolean>;
    /**
     * (Updatable) Whether to enable multi-language for chat.
     */
    readonly shouldEnableMultiLanguage: pulumi.Output<boolean>;
    /**
     * Whether or not to enable Session-based chat.
     */
    readonly shouldEnableSession: pulumi.Output<boolean>;
    /**
     * (Updatable) Whether to show traces in the chat result.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly shouldEnableTrace: pulumi.Output<boolean>;
    /**
     * The current state of the endpoint.
     */
    readonly state: pulumi.Output<string>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace.  Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The date and time the AgentEndpoint was created, in the format defined by [RFC 3339](https://tools.ietf.org/html/rfc3339).  Example: `2016-08-25T21:10:29.600Z`
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The date and time the endpoint was updated, in the format defined by [RFC 3339](https://tools.ietf.org/html/rfc3339).  Example: `2016-08-25T21:10:29.600Z`
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Create a AgentAgentEndpoint 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: AgentAgentEndpointArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering AgentAgentEndpoint resources.
 */
export interface AgentAgentEndpointState {
    /**
     * The OCID of the agent that this endpoint is associated with.
     */
    agentId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment to create the endpoint in.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The configuration details about whether to apply the content moderation feature to input and output. Content moderation removes toxic and biased content from responses. It is recommended to use content moderation.
     */
    contentModerationConfig?: pulumi.Input<inputs.GenerativeAi.AgentAgentEndpointContentModerationConfig | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Operations.CostCenter": "42"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) An optional description of the endpoint.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) The configuration details about whether to apply the guardrail checks to input and output.
     */
    guardrailConfig?: pulumi.Input<inputs.GenerativeAi.AgentAgentEndpointGuardrailConfig | undefined>;
    /**
     * (Updatable) Human Input Configuration for an AgentEndpoint.
     */
    humanInputConfig?: pulumi.Input<inputs.GenerativeAi.AgentAgentEndpointHumanInputConfig | undefined>;
    /**
     * A message that describes the current state of the endpoint in more detail. For example, can be used to provide actionable information for a resource in the Failed state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Key-value pairs to allow additional configurations.
     */
    metadata?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Configuration to store results generated by agent.
     */
    outputConfig?: pulumi.Input<inputs.GenerativeAi.AgentAgentEndpointOutputConfig | undefined>;
    /**
     * (Updatable) The configuration includes the provisioned capacity id and component runtime (tool versions, and other relevant information).
     */
    provisionedCapacityConfig?: pulumi.Input<inputs.GenerativeAi.AgentAgentEndpointProvisionedCapacityConfig | undefined>;
    /**
     * (Updatable) Session Configuration on AgentEndpoint.
     */
    sessionConfig?: pulumi.Input<inputs.GenerativeAi.AgentAgentEndpointSessionConfig | undefined>;
    /**
     * (Updatable) Whether to show citations in the chat result.
     */
    shouldEnableCitation?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Whether to enable multi-language for chat.
     */
    shouldEnableMultiLanguage?: pulumi.Input<boolean | undefined>;
    /**
     * Whether or not to enable Session-based chat.
     */
    shouldEnableSession?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Whether to show traces in the chat result.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    shouldEnableTrace?: pulumi.Input<boolean | undefined>;
    /**
     * The current state of the endpoint.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace.  Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The date and time the AgentEndpoint was created, in the format defined by [RFC 3339](https://tools.ietf.org/html/rfc3339).  Example: `2016-08-25T21:10:29.600Z`
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The date and time the endpoint was updated, in the format defined by [RFC 3339](https://tools.ietf.org/html/rfc3339).  Example: `2016-08-25T21:10:29.600Z`
     */
    timeUpdated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a AgentAgentEndpoint resource.
 */
export interface AgentAgentEndpointArgs {
    /**
     * The OCID of the agent that this endpoint is associated with.
     */
    agentId: pulumi.Input<string>;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment to create the endpoint in.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * (Updatable) The configuration details about whether to apply the content moderation feature to input and output. Content moderation removes toxic and biased content from responses. It is recommended to use content moderation.
     */
    contentModerationConfig?: pulumi.Input<inputs.GenerativeAi.AgentAgentEndpointContentModerationConfig | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Operations.CostCenter": "42"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) An optional description of the endpoint.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) The configuration details about whether to apply the guardrail checks to input and output.
     */
    guardrailConfig?: pulumi.Input<inputs.GenerativeAi.AgentAgentEndpointGuardrailConfig | undefined>;
    /**
     * (Updatable) Human Input Configuration for an AgentEndpoint.
     */
    humanInputConfig?: pulumi.Input<inputs.GenerativeAi.AgentAgentEndpointHumanInputConfig | undefined>;
    /**
     * (Updatable) Key-value pairs to allow additional configurations.
     */
    metadata?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Configuration to store results generated by agent.
     */
    outputConfig?: pulumi.Input<inputs.GenerativeAi.AgentAgentEndpointOutputConfig | undefined>;
    /**
     * (Updatable) The configuration includes the provisioned capacity id and component runtime (tool versions, and other relevant information).
     */
    provisionedCapacityConfig?: pulumi.Input<inputs.GenerativeAi.AgentAgentEndpointProvisionedCapacityConfig | undefined>;
    /**
     * (Updatable) Session Configuration on AgentEndpoint.
     */
    sessionConfig?: pulumi.Input<inputs.GenerativeAi.AgentAgentEndpointSessionConfig | undefined>;
    /**
     * (Updatable) Whether to show citations in the chat result.
     */
    shouldEnableCitation?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Whether to enable multi-language for chat.
     */
    shouldEnableMultiLanguage?: pulumi.Input<boolean | undefined>;
    /**
     * Whether or not to enable Session-based chat.
     */
    shouldEnableSession?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Whether to show traces in the chat result.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    shouldEnableTrace?: pulumi.Input<boolean | undefined>;
}
//# sourceMappingURL=agentAgentEndpoint.d.ts.map