import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Data store is a collection of websites and documents used to find answers for * end-user's questions in Discovery Engine (a.k.a. Vertex AI Search and * Conversation). * * To get more information about DataStore, see: * * * [API documentation](https://cloud.google.com/generative-ai-app-builder/docs/reference/rest/v1/projects.locations.collections.dataStores) * * How-to Guides * * [Create a search data store](https://cloud.google.com/generative-ai-app-builder/docs/create-data-store-es) * * ## Example Usage * * ### Discoveryengine Datastore Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const basic = new gcp.discoveryengine.DataStore("basic", { * location: "global", * dataStoreId: "data-store-id", * displayName: "tf-test-structured-datastore", * industryVertical: "GENERIC", * contentConfig: "NO_CONTENT", * solutionTypes: ["SOLUTION_TYPE_SEARCH"], * createAdvancedSiteSearch: false, * skipDefaultSchemaCreation: false, * }); * ``` * ### Discoveryengine Datastore Kms Key Name * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const kmsKeyName = new gcp.discoveryengine.DataStore("kms_key_name", { * location: "us", * dataStoreId: "data-store-id", * displayName: "tf-test-structured-datastore", * industryVertical: "GENERIC", * contentConfig: "NO_CONTENT", * solutionTypes: ["SOLUTION_TYPE_SEARCH"], * kmsKeyName: "kms-key", * createAdvancedSiteSearch: false, * skipDefaultSchemaCreation: false, * }); * ``` * ### Discoveryengine Datastore Document Processing Config * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const documentProcessingConfig = new gcp.discoveryengine.DataStore("document_processing_config", { * location: "global", * dataStoreId: "data-store-id", * displayName: "tf-test-structured-datastore", * industryVertical: "GENERIC", * contentConfig: "NO_CONTENT", * solutionTypes: ["SOLUTION_TYPE_SEARCH"], * createAdvancedSiteSearch: false, * documentProcessingConfig: { * defaultParsingConfig: { * digitalParsingConfig: {}, * }, * parsingConfigOverrides: [{ * fileType: "pdf", * ocrParsingConfig: { * useNativeText: true, * }, * }], * }, * }); * ``` * ### Discoveryengine Datastore Advanced Site Search Config * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const advancedSiteSearchConfig = new gcp.discoveryengine.DataStore("advanced_site_search_config", { * location: "global", * dataStoreId: "data-store-id", * displayName: "tf-test-advanced-site-search-config-datastore", * industryVertical: "GENERIC", * contentConfig: "PUBLIC_WEBSITE", * solutionTypes: ["SOLUTION_TYPE_CHAT"], * createAdvancedSiteSearch: true, * skipDefaultSchemaCreation: false, * advancedSiteSearchConfig: { * disableInitialIndex: true, * disableAutomaticRefresh: true, * }, * }); * ``` * * ## Import * * DataStore can be imported using any of these accepted formats: * * * `projects/{{project}}/locations/{{location}}/collections/default_collection/dataStores/{{data_store_id}}` * * * `{{project}}/{{location}}/{{data_store_id}}` * * * `{{location}}/{{data_store_id}}` * * When using the `pulumi import` command, DataStore can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:discoveryengine/dataStore:DataStore default projects/{{project}}/locations/{{location}}/collections/default_collection/dataStores/{{data_store_id}} * ``` * * ```sh * $ pulumi import gcp:discoveryengine/dataStore:DataStore default {{project}}/{{location}}/{{data_store_id}} * ``` * * ```sh * $ pulumi import gcp:discoveryengine/dataStore:DataStore default {{location}}/{{data_store_id}} * ``` */ export declare class DataStore extends pulumi.CustomResource { /** * Get an existing DataStore 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?: DataStoreState, opts?: pulumi.CustomResourceOptions): DataStore; /** * Returns true if the given object is an instance of DataStore. 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 DataStore; /** * Configuration data for advance site search. * Structure is documented below. */ readonly advancedSiteSearchConfig: pulumi.Output; /** * The content config of the data store. * Possible values are: `NO_CONTENT`, `CONTENT_REQUIRED`, `PUBLIC_WEBSITE`. */ readonly contentConfig: pulumi.Output; /** * If true, an advanced data store for site search will be created. If the * data store is not configured as site search (GENERIC vertical and * PUBLIC_WEBSITE contentConfig), this flag will be ignored. */ readonly createAdvancedSiteSearch: pulumi.Output; /** * Timestamp when the DataStore was created. */ readonly createTime: pulumi.Output; /** * The unique id of the data store. */ readonly dataStoreId: pulumi.Output; /** * The id of the default Schema associated with this data store. */ readonly defaultSchemaId: pulumi.Output; /** * The display name of the data store. This field must be a UTF-8 encoded * string with a length limit of 128 characters. */ readonly displayName: pulumi.Output; /** * Configuration for Document understanding and enrichment. * Structure is documented below. */ readonly documentProcessingConfig: pulumi.Output; /** * The industry vertical that the data store registers. * Possible values are: `GENERIC`, `MEDIA`, `HEALTHCARE_FHIR`. */ readonly industryVertical: pulumi.Output; /** * KMS key resource name which will be used to encrypt resources: * `/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId}` * The KMS key to be used to protect this DataStore at creation time. Must be * set for requests that need to comply with CMEK Org Policy protections. * If this field is set and processed successfully, the DataStore will be * protected by the KMS key, as indicated in the cmekConfig field. */ readonly kmsKeyName: pulumi.Output; /** * The geographic location where the data store should reside. The value can * only be one of "global", "us" and "eu". */ readonly location: pulumi.Output; /** * The unique full resource name of the data store. Values are of the format * `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}`. * This field must be a UTF-8 encoded string with a length limit of 1024 * characters. */ readonly name: pulumi.Output; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ readonly project: pulumi.Output; /** * A boolean flag indicating whether to skip the default schema creation for * the data store. Only enable this flag if you are certain that the default * schema is incompatible with your use case. * If set to true, you must manually create a schema for the data store * before any documents can be ingested. * This flag cannot be specified if `data_store.starting_schema` is * specified. */ readonly skipDefaultSchemaCreation: pulumi.Output; /** * The solutions that the data store enrolls. * Each value may be one of: `SOLUTION_TYPE_RECOMMENDATION`, `SOLUTION_TYPE_SEARCH`, `SOLUTION_TYPE_CHAT`, `SOLUTION_TYPE_GENERATIVE_CHAT`. */ readonly solutionTypes: pulumi.Output; /** * Create a DataStore 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: DataStoreArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering DataStore resources. */ export interface DataStoreState { /** * Configuration data for advance site search. * Structure is documented below. */ advancedSiteSearchConfig?: pulumi.Input; /** * The content config of the data store. * Possible values are: `NO_CONTENT`, `CONTENT_REQUIRED`, `PUBLIC_WEBSITE`. */ contentConfig?: pulumi.Input; /** * If true, an advanced data store for site search will be created. If the * data store is not configured as site search (GENERIC vertical and * PUBLIC_WEBSITE contentConfig), this flag will be ignored. */ createAdvancedSiteSearch?: pulumi.Input; /** * Timestamp when the DataStore was created. */ createTime?: pulumi.Input; /** * The unique id of the data store. */ dataStoreId?: pulumi.Input; /** * The id of the default Schema associated with this data store. */ defaultSchemaId?: pulumi.Input; /** * The display name of the data store. This field must be a UTF-8 encoded * string with a length limit of 128 characters. */ displayName?: pulumi.Input; /** * Configuration for Document understanding and enrichment. * Structure is documented below. */ documentProcessingConfig?: pulumi.Input; /** * The industry vertical that the data store registers. * Possible values are: `GENERIC`, `MEDIA`, `HEALTHCARE_FHIR`. */ industryVertical?: pulumi.Input; /** * KMS key resource name which will be used to encrypt resources: * `/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId}` * The KMS key to be used to protect this DataStore at creation time. Must be * set for requests that need to comply with CMEK Org Policy protections. * If this field is set and processed successfully, the DataStore will be * protected by the KMS key, as indicated in the cmekConfig field. */ kmsKeyName?: pulumi.Input; /** * The geographic location where the data store should reside. The value can * only be one of "global", "us" and "eu". */ location?: pulumi.Input; /** * The unique full resource name of the data store. Values are of the format * `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}`. * This field must be a UTF-8 encoded string with a length limit of 1024 * characters. */ name?: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input; /** * A boolean flag indicating whether to skip the default schema creation for * the data store. Only enable this flag if you are certain that the default * schema is incompatible with your use case. * If set to true, you must manually create a schema for the data store * before any documents can be ingested. * This flag cannot be specified if `data_store.starting_schema` is * specified. */ skipDefaultSchemaCreation?: pulumi.Input; /** * The solutions that the data store enrolls. * Each value may be one of: `SOLUTION_TYPE_RECOMMENDATION`, `SOLUTION_TYPE_SEARCH`, `SOLUTION_TYPE_CHAT`, `SOLUTION_TYPE_GENERATIVE_CHAT`. */ solutionTypes?: pulumi.Input[]>; } /** * The set of arguments for constructing a DataStore resource. */ export interface DataStoreArgs { /** * Configuration data for advance site search. * Structure is documented below. */ advancedSiteSearchConfig?: pulumi.Input; /** * The content config of the data store. * Possible values are: `NO_CONTENT`, `CONTENT_REQUIRED`, `PUBLIC_WEBSITE`. */ contentConfig: pulumi.Input; /** * If true, an advanced data store for site search will be created. If the * data store is not configured as site search (GENERIC vertical and * PUBLIC_WEBSITE contentConfig), this flag will be ignored. */ createAdvancedSiteSearch?: pulumi.Input; /** * The unique id of the data store. */ dataStoreId: pulumi.Input; /** * The display name of the data store. This field must be a UTF-8 encoded * string with a length limit of 128 characters. */ displayName: pulumi.Input; /** * Configuration for Document understanding and enrichment. * Structure is documented below. */ documentProcessingConfig?: pulumi.Input; /** * The industry vertical that the data store registers. * Possible values are: `GENERIC`, `MEDIA`, `HEALTHCARE_FHIR`. */ industryVertical: pulumi.Input; /** * KMS key resource name which will be used to encrypt resources: * `/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId}` * The KMS key to be used to protect this DataStore at creation time. Must be * set for requests that need to comply with CMEK Org Policy protections. * If this field is set and processed successfully, the DataStore will be * protected by the KMS key, as indicated in the cmekConfig field. */ kmsKeyName?: pulumi.Input; /** * The geographic location where the data store should reside. The value can * only be one of "global", "us" and "eu". */ location: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input; /** * A boolean flag indicating whether to skip the default schema creation for * the data store. Only enable this flag if you are certain that the default * schema is incompatible with your use case. * If set to true, you must manually create a schema for the data store * before any documents can be ingested. * This flag cannot be specified if `data_store.starting_schema` is * specified. */ skipDefaultSchemaCreation?: pulumi.Input; /** * The solutions that the data store enrolls. * Each value may be one of: `SOLUTION_TYPE_RECOMMENDATION`, `SOLUTION_TYPE_SEARCH`, `SOLUTION_TYPE_CHAT`, `SOLUTION_TYPE_GENERATIVE_CHAT`. */ solutionTypes?: pulumi.Input[]>; }