import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * This resource provides the Tool 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/Tool * * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/generative_ai_agent * * Creates a tool. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as oci from "@pulumi/oci"; * * const testTool = new oci.generativeai.AgentTool("test_tool", { * agentId: testAgent.id, * compartmentId: compartmentId, * description: toolDescription, * toolConfig: { * toolConfigType: toolToolConfigToolConfigType, * agentEndpointId: testAgentEndpoint.id, * apiSchema: { * apiSchemaInputLocationType: toolToolConfigApiSchemaApiSchemaInputLocationType, * bucket: toolToolConfigApiSchemaBucket, * content: toolToolConfigApiSchemaContent, * namespace: toolToolConfigApiSchemaNamespace, * object: toolToolConfigApiSchemaObject, * }, * databaseConnection: { * connectionId: testConnection.id, * connectionType: toolToolConfigDatabaseConnectionConnectionType, * }, * databaseSchema: { * inputLocationType: toolToolConfigDatabaseSchemaInputLocationType, * bucket: toolToolConfigDatabaseSchemaBucket, * content: toolToolConfigDatabaseSchemaContent, * namespace: toolToolConfigDatabaseSchemaNamespace, * prefix: toolToolConfigDatabaseSchemaPrefix, * }, * dialect: toolToolConfigDialect, * embeddingLlmCustomization: { * instruction: toolToolConfigEmbeddingLlmCustomizationInstruction, * llmHyperParameters: toolToolConfigEmbeddingLlmCustomizationLlmHyperParameters, * llmSelection: { * llmSelectionType: toolToolConfigEmbeddingLlmCustomizationLlmSelectionLlmSelectionType, * endpointId: testEndpoint.id, * modelId: testModel.id, * }, * }, * "function": { * description: toolToolConfigFunctionDescription, * name: toolToolConfigFunctionName, * parameters: toolToolConfigFunctionParameters, * }, * generationLlmCustomization: { * instruction: toolToolConfigGenerationLlmCustomizationInstruction, * llmHyperParameters: toolToolConfigGenerationLlmCustomizationLlmHyperParameters, * llmSelection: { * llmSelectionType: toolToolConfigGenerationLlmCustomizationLlmSelectionLlmSelectionType, * endpointId: testEndpoint.id, * modelId: testModel.id, * }, * }, * httpEndpointAuthConfig: { * httpEndpointAuthSources: [{ * httpEndpointAuthScope: toolToolConfigHttpEndpointAuthConfigHttpEndpointAuthSourcesHttpEndpointAuthScope, * httpEndpointAuthScopeConfig: { * httpEndpointAuthScopeConfigType: toolToolConfigHttpEndpointAuthConfigHttpEndpointAuthSourcesHttpEndpointAuthScopeConfigHttpEndpointAuthScopeConfigType, * clientId: testClient.id, * idcsUrl: toolToolConfigHttpEndpointAuthConfigHttpEndpointAuthSourcesHttpEndpointAuthScopeConfigIdcsUrl, * keyLocation: toolToolConfigHttpEndpointAuthConfigHttpEndpointAuthSourcesHttpEndpointAuthScopeConfigKeyLocation, * keyName: testKey.name, * scopeUrl: toolToolConfigHttpEndpointAuthConfigHttpEndpointAuthSourcesHttpEndpointAuthScopeConfigScopeUrl, * vaultSecretId: testSecret.id, * }, * }], * }, * iclExamples: { * inputLocationType: toolToolConfigIclExamplesInputLocationType, * bucket: toolToolConfigIclExamplesBucket, * content: toolToolConfigIclExamplesContent, * namespace: toolToolConfigIclExamplesNamespace, * prefix: toolToolConfigIclExamplesPrefix, * }, * knowledgeBaseConfigs: [{ * knowledgeBaseId: testKnowledgeBase.id, * }], * modelSize: toolToolConfigModelSize, * reasoningLlmCustomization: { * instruction: toolToolConfigReasoningLlmCustomizationInstruction, * llmHyperParameters: toolToolConfigReasoningLlmCustomizationLlmHyperParameters, * llmSelection: { * llmSelectionType: toolToolConfigReasoningLlmCustomizationLlmSelectionLlmSelectionType, * endpointId: testEndpoint.id, * modelId: testModel.id, * }, * }, * rerankingLlmCustomization: { * instruction: toolToolConfigRerankingLlmCustomizationInstruction, * llmHyperParameters: toolToolConfigRerankingLlmCustomizationLlmHyperParameters, * llmSelection: { * llmSelectionType: toolToolConfigRerankingLlmCustomizationLlmSelectionLlmSelectionType, * endpointId: testEndpoint.id, * modelId: testModel.id, * }, * }, * runtimeVersion: toolToolConfigRuntimeVersion, * shouldEnableSelfCorrection: toolToolConfigShouldEnableSelfCorrection === "true", * shouldEnableSqlExecution: toolToolConfigShouldEnableSqlExecution === "true", * subnetId: testSubnet.id, * tableAndColumnDescription: { * inputLocationType: toolToolConfigTableAndColumnDescriptionInputLocationType, * bucket: toolToolConfigTableAndColumnDescriptionBucket, * content: toolToolConfigTableAndColumnDescriptionContent, * namespace: toolToolConfigTableAndColumnDescriptionNamespace, * prefix: toolToolConfigTableAndColumnDescriptionPrefix, * }, * }, * definedTags: { * "Operations.CostCenter": "42", * }, * displayName: toolDisplayName, * freeformTags: { * Department: "Finance", * }, * metadata: toolMetadata, * }); * ``` * * ## Import * * Tools can be imported using the `id`, e.g. * * ```sh * $ pulumi import oci:GenerativeAi/agentTool:AgentTool test_tool "id" * ``` */ export declare class AgentTool extends pulumi.CustomResource { /** * Get an existing AgentTool 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, state?: AgentToolState, opts?: pulumi.CustomResourceOptions): AgentTool; /** * Returns true if the given object is an instance of AgentTool. 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 AgentTool; /** * The OCID of the agent that this Tool is attached to. */ readonly agentId: pulumi.Output; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment. */ readonly compartmentId: pulumi.Output; /** * (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) Description about the Tool. */ readonly description: pulumi.Output; /** * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. */ readonly displayName: pulumi.Output; /** * (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) Key-value pairs to allow additional configurations. */ readonly metadata: pulumi.Output<{ [key: string]: string; }>; /** * The current state of the Tool. */ readonly state: pulumi.Output; /** * 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 Tool 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; /** * The date and time the Tool 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; /** * (Updatable) The configuration and type of Tool. */ readonly toolConfig: pulumi.Output; /** * Create a AgentTool 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: AgentToolArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering AgentTool resources. */ export interface AgentToolState { /** * The OCID of the agent that this Tool is attached to. */ agentId?: pulumi.Input; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment. */ compartmentId?: pulumi.Input; /** * (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; } | undefined>; /** * (Updatable) Description about the Tool. */ description?: pulumi.Input; /** * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. */ displayName?: pulumi.Input; /** * (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; } | undefined>; /** * (Updatable) Key-value pairs to allow additional configurations. */ metadata?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The current state of the Tool. */ state?: pulumi.Input; /** * 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; } | undefined>; /** * The date and time the Tool 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; /** * The date and time the Tool 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; /** * (Updatable) The configuration and type of Tool. */ toolConfig?: pulumi.Input; } /** * The set of arguments for constructing a AgentTool resource. */ export interface AgentToolArgs { /** * The OCID of the agent that this Tool is attached to. */ agentId: pulumi.Input; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment. */ compartmentId: pulumi.Input; /** * (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; } | undefined>; /** * (Updatable) Description about the Tool. */ description: pulumi.Input; /** * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. */ displayName?: pulumi.Input; /** * (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; } | undefined>; /** * (Updatable) Key-value pairs to allow additional configurations. */ metadata?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) The configuration and type of Tool. */ toolConfig: pulumi.Input; } //# sourceMappingURL=agentTool.d.ts.map