import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * DataConnector manages the connection to external data sources for all data stores grouped * under a Collection. It's a singleton resource of Collection. The initialization is only * supported through DataConnectorService.SetUpDataConnector method, which will create a new * Collection and initialize its DataConnector. * * To get more information about DataConnector, see: * * * [API documentation](https://cloud.google.com/generative-ai-app-builder/docs/reference/rpc/google.cloud.discoveryengine.v1alpha#dataconnectorservice) * * How-to Guides * * [Introduction](https://cloud.google.com/agentspace/docs/introduction-to-connectors-and-data-stores) * * ## Example Usage * * ### Discoveryengine Dataconnector Servicenow Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const servicenow_basic = new gcp.discoveryengine.DataConnector("servicenow-basic", { * location: "global", * collectionId: "collection-id", * collectionDisplayName: "tf-test-dataconnector-servicenow", * dataSource: "servicenow", * params: { * auth_type: "OAUTH_PASSWORD_GRANT", * instance_uri: "https://gcpconnector1.service-now.com/", * client_id: "SECRET_MANAGER_RESOURCE_NAME", * client_secret: "SECRET_MANAGER_RESOURCE_NAME", * static_ip_enabled: "false", * user_account: "connectorsuserqa@google.com", * password: "SECRET_MANAGER_RESOURCE_NAME", * }, * refreshInterval: "86400s", * incrementalRefreshInterval: "21600s", * entities: [ * { * entityName: "catalog", * params: JSON.stringify({ * inclusion_filters: { * knowledgeBaseSysId: ["123"], * }, * }), * }, * { * entityName: "incident", * params: JSON.stringify({ * inclusion_filters: { * knowledgeBaseSysId: ["123"], * }, * }), * }, * { * entityName: "knowledge_base", * params: JSON.stringify({ * inclusion_filters: { * knowledgeBaseSysId: ["123"], * }, * }), * }, * ], * staticIpEnabled: false, * connectorModes: ["DATA_INGESTION"], * syncMode: "PERIODIC", * }); * ``` * * ## Import * * DataConnector can be imported using any of these accepted formats: * * * `projects/{{project}}/locations/{{location}}/collections/{{collection_id}}/dataConnector` * * * `{{project}}/{{location}}/{{collection_id}}` * * * `{{location}}/{{collection_id}}` * * When using the `pulumi import` command, DataConnector can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:discoveryengine/dataConnector:DataConnector default projects/{{project}}/locations/{{location}}/collections/{{collection_id}}/dataConnector * ``` * * ```sh * $ pulumi import gcp:discoveryengine/dataConnector:DataConnector default {{project}}/{{location}}/{{collection_id}} * ``` * * ```sh * $ pulumi import gcp:discoveryengine/dataConnector:DataConnector default {{location}}/{{collection_id}} * ``` */ export declare class DataConnector extends pulumi.CustomResource { /** * Get an existing DataConnector 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?: DataConnectorState, opts?: pulumi.CustomResourceOptions): DataConnector; /** * Returns true if the given object is an instance of DataConnector. 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 DataConnector; /** * State of the action connector. This reflects whether the action connector * is initializing, active or has encountered errors. The possible value can be: * 'STATE_UNSPECIFIED', 'CREATING', 'ACTIVE', 'FAILED', 'RUNNING', 'WARNING', * 'INITIALIZATION_FAILED', 'UPDATING'. */ readonly actionState: pulumi.Output; /** * Indicates whether full syncs are paused for this connector */ readonly autoRunDisabled: pulumi.Output; /** * User actions that must be completed before the connector can start syncing data. * The possible values can be: 'ALLOWLIST_STATIC_IP', 'ALLOWLIST_IN_SERVICE_ATTACHMENT'. */ readonly blockingReasons: pulumi.Output; /** * The display name of the Collection. * Should be human readable, used to display collections in the Console * Dashboard. UTF-8 encoded string with limit of 1024 characters. */ readonly collectionDisplayName: pulumi.Output; /** * The ID to use for the Collection, which will become the final component * of the Collection's resource name. A new Collection is created as * part of the DataConnector setup. DataConnector is a singleton * resource under Collection, managing all DataStores of the Collection. * This field must conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) * standard with a length limit of 63 characters. Otherwise, an * INVALID_ARGUMENT error is returned. */ readonly collectionId: pulumi.Output; /** * The modes enabled for this connector. The possible value can be: * 'DATA_INGESTION', 'ACTIONS', 'FEDERATED' * 'EUA', 'FEDERATED_AND_EUA'. */ readonly connectorModes: pulumi.Output; /** * The type of connector. Each source can only map to one type. * For example, salesforce, confluence and jira have THIRD_PARTY connector * type. It is not mutable once set by system. The possible value can be: * 'CONNECTOR_TYPE_UNSPECIFIED', 'THIRD_PARTY', 'GCP_FHIR', 'BIG_QUERY', * 'GCS', 'GOOGLE_MAIL', 'GOOGLE_CALENDAR', 'GOOGLE_DRIVE', * 'NATIVE_CLOUD_IDENTITY', 'THIRD_PARTY_FEDERATED', 'THIRD_PARTY_EUA', 'GCNV'. */ readonly connectorType: pulumi.Output; /** * Timestamp when the DataConnector was created. */ readonly createTime: pulumi.Output; /** * The name of the data source. * Supported values: `salesforce`, `jira`, `confluence`, `bigquery`. */ readonly dataSource: pulumi.Output; /** * List of entities from the connected data source to ingest. * Structure is documented below. */ readonly entities: pulumi.Output; /** * The errors from initialization or from the latest connector run. * Structure is documented below. */ readonly errors: pulumi.Output; /** * The refresh interval specifically for incremental data syncs. If unset, * incremental syncs will use the default from env, set to 3hrs. * The minimum is 30 minutes and maximum is 7 days. Applicable to only 3P * connectors. When the refresh interval is * set to the same value as the incremental refresh interval, incremental * sync will be disabled. */ readonly incrementalRefreshInterval: pulumi.Output; /** * Indicates whether incremental syncs are paused for this connector. */ readonly incrementalSyncDisabled: pulumi.Output; /** * Params needed to access the source in the format of json string. */ readonly jsonParams: pulumi.Output; /** * The KMS key to be used to protect the DataStores managed by this connector. * Must be set for requests that need to comply with CMEK Org Policy * protections. * If this field is set and processed successfully, the DataStores created by * this connector will be protected by the KMS key. */ readonly kmsKeyName: pulumi.Output; /** * For periodic connectors only, the last time a data sync was completed. */ readonly lastSyncTime: pulumi.Output; /** * The most recent timestamp when this [DataConnector][] was paused, * affecting all functionalities such as data synchronization. * Pausing a connector has the following effects: * - All functionalities, including data synchronization, are halted. * - Any ongoing data synchronization job will be canceled. * - No future data synchronization runs will be scheduled nor can be * triggered. */ readonly latestPauseTime: 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 full resource name of the Data Connector. * Format: `projects/*/locations/*/collections/*/dataConnector`. */ readonly name: pulumi.Output; /** * Params needed to access the source in the format of String-to-String (Key, Value) pairs. */ readonly params: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The tenant project ID associated with private connectivity connectors. * This project must be allowlisted by in order for the connector to function. */ readonly privateConnectivityProjectId: 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; /** * The real-time sync state. The possible values can be: * 'STATE_UNSPECIFIED', 'CREATING', 'ACTIVE', 'FAILED', 'RUNNING', 'WARNING', * 'INITIALIZATION_FAILED', 'UPDATING'. */ readonly realtimeState: pulumi.Output; /** * The refresh interval for data sync. If duration is set to 0, the data will * be synced in real time. The streaming feature is not supported yet. The * minimum is 30 minutes and maximum is 7 days. When the refresh interval is * set to the same value as the incremental refresh interval, incremental * sync will be disabled. */ readonly refreshInterval: pulumi.Output; /** * The state of connector. The possible value can be: * 'STATE_UNSPECIFIED', 'CREATING', 'ACTIVE', 'FAILED', 'RUNNING', 'WARNING', * 'INITIALIZATION_FAILED', 'UPDATING'. */ readonly state: pulumi.Output; /** * The static IP addresses used by this connector. */ readonly staticIpAddresses: pulumi.Output; /** * Whether customer has enabled static IP addresses for this connector. */ readonly staticIpEnabled: pulumi.Output; /** * The data synchronization mode supported by the data connector. The possible value can be: * 'PERIODIC', 'STREAMING'. */ readonly syncMode: pulumi.Output; /** * Timestamp when the DataConnector was updated. */ readonly updateTime: pulumi.Output; /** * Create a DataConnector 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: DataConnectorArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering DataConnector resources. */ export interface DataConnectorState { /** * State of the action connector. This reflects whether the action connector * is initializing, active or has encountered errors. The possible value can be: * 'STATE_UNSPECIFIED', 'CREATING', 'ACTIVE', 'FAILED', 'RUNNING', 'WARNING', * 'INITIALIZATION_FAILED', 'UPDATING'. */ actionState?: pulumi.Input; /** * Indicates whether full syncs are paused for this connector */ autoRunDisabled?: pulumi.Input; /** * User actions that must be completed before the connector can start syncing data. * The possible values can be: 'ALLOWLIST_STATIC_IP', 'ALLOWLIST_IN_SERVICE_ATTACHMENT'. */ blockingReasons?: pulumi.Input[]>; /** * The display name of the Collection. * Should be human readable, used to display collections in the Console * Dashboard. UTF-8 encoded string with limit of 1024 characters. */ collectionDisplayName?: pulumi.Input; /** * The ID to use for the Collection, which will become the final component * of the Collection's resource name. A new Collection is created as * part of the DataConnector setup. DataConnector is a singleton * resource under Collection, managing all DataStores of the Collection. * This field must conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) * standard with a length limit of 63 characters. Otherwise, an * INVALID_ARGUMENT error is returned. */ collectionId?: pulumi.Input; /** * The modes enabled for this connector. The possible value can be: * 'DATA_INGESTION', 'ACTIONS', 'FEDERATED' * 'EUA', 'FEDERATED_AND_EUA'. */ connectorModes?: pulumi.Input[]>; /** * The type of connector. Each source can only map to one type. * For example, salesforce, confluence and jira have THIRD_PARTY connector * type. It is not mutable once set by system. The possible value can be: * 'CONNECTOR_TYPE_UNSPECIFIED', 'THIRD_PARTY', 'GCP_FHIR', 'BIG_QUERY', * 'GCS', 'GOOGLE_MAIL', 'GOOGLE_CALENDAR', 'GOOGLE_DRIVE', * 'NATIVE_CLOUD_IDENTITY', 'THIRD_PARTY_FEDERATED', 'THIRD_PARTY_EUA', 'GCNV'. */ connectorType?: pulumi.Input; /** * Timestamp when the DataConnector was created. */ createTime?: pulumi.Input; /** * The name of the data source. * Supported values: `salesforce`, `jira`, `confluence`, `bigquery`. */ dataSource?: pulumi.Input; /** * List of entities from the connected data source to ingest. * Structure is documented below. */ entities?: pulumi.Input[]>; /** * The errors from initialization or from the latest connector run. * Structure is documented below. */ errors?: pulumi.Input[]>; /** * The refresh interval specifically for incremental data syncs. If unset, * incremental syncs will use the default from env, set to 3hrs. * The minimum is 30 minutes and maximum is 7 days. Applicable to only 3P * connectors. When the refresh interval is * set to the same value as the incremental refresh interval, incremental * sync will be disabled. */ incrementalRefreshInterval?: pulumi.Input; /** * Indicates whether incremental syncs are paused for this connector. */ incrementalSyncDisabled?: pulumi.Input; /** * Params needed to access the source in the format of json string. */ jsonParams?: pulumi.Input; /** * The KMS key to be used to protect the DataStores managed by this connector. * Must be set for requests that need to comply with CMEK Org Policy * protections. * If this field is set and processed successfully, the DataStores created by * this connector will be protected by the KMS key. */ kmsKeyName?: pulumi.Input; /** * For periodic connectors only, the last time a data sync was completed. */ lastSyncTime?: pulumi.Input; /** * The most recent timestamp when this [DataConnector][] was paused, * affecting all functionalities such as data synchronization. * Pausing a connector has the following effects: * - All functionalities, including data synchronization, are halted. * - Any ongoing data synchronization job will be canceled. * - No future data synchronization runs will be scheduled nor can be * triggered. */ latestPauseTime?: 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 full resource name of the Data Connector. * Format: `projects/*/locations/*/collections/*/dataConnector`. */ name?: pulumi.Input; /** * Params needed to access the source in the format of String-to-String (Key, Value) pairs. */ params?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The tenant project ID associated with private connectivity connectors. * This project must be allowlisted by in order for the connector to function. */ privateConnectivityProjectId?: 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; /** * The real-time sync state. The possible values can be: * 'STATE_UNSPECIFIED', 'CREATING', 'ACTIVE', 'FAILED', 'RUNNING', 'WARNING', * 'INITIALIZATION_FAILED', 'UPDATING'. */ realtimeState?: pulumi.Input; /** * The refresh interval for data sync. If duration is set to 0, the data will * be synced in real time. The streaming feature is not supported yet. The * minimum is 30 minutes and maximum is 7 days. When the refresh interval is * set to the same value as the incremental refresh interval, incremental * sync will be disabled. */ refreshInterval?: pulumi.Input; /** * The state of connector. The possible value can be: * 'STATE_UNSPECIFIED', 'CREATING', 'ACTIVE', 'FAILED', 'RUNNING', 'WARNING', * 'INITIALIZATION_FAILED', 'UPDATING'. */ state?: pulumi.Input; /** * The static IP addresses used by this connector. */ staticIpAddresses?: pulumi.Input[]>; /** * Whether customer has enabled static IP addresses for this connector. */ staticIpEnabled?: pulumi.Input; /** * The data synchronization mode supported by the data connector. The possible value can be: * 'PERIODIC', 'STREAMING'. */ syncMode?: pulumi.Input; /** * Timestamp when the DataConnector was updated. */ updateTime?: pulumi.Input; } /** * The set of arguments for constructing a DataConnector resource. */ export interface DataConnectorArgs { /** * Indicates whether full syncs are paused for this connector */ autoRunDisabled?: pulumi.Input; /** * The display name of the Collection. * Should be human readable, used to display collections in the Console * Dashboard. UTF-8 encoded string with limit of 1024 characters. */ collectionDisplayName: pulumi.Input; /** * The ID to use for the Collection, which will become the final component * of the Collection's resource name. A new Collection is created as * part of the DataConnector setup. DataConnector is a singleton * resource under Collection, managing all DataStores of the Collection. * This field must conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) * standard with a length limit of 63 characters. Otherwise, an * INVALID_ARGUMENT error is returned. */ collectionId: pulumi.Input; /** * The modes enabled for this connector. The possible value can be: * 'DATA_INGESTION', 'ACTIONS', 'FEDERATED' * 'EUA', 'FEDERATED_AND_EUA'. */ connectorModes?: pulumi.Input[]>; /** * The name of the data source. * Supported values: `salesforce`, `jira`, `confluence`, `bigquery`. */ dataSource: pulumi.Input; /** * List of entities from the connected data source to ingest. * Structure is documented below. */ entities?: pulumi.Input[]>; /** * The refresh interval specifically for incremental data syncs. If unset, * incremental syncs will use the default from env, set to 3hrs. * The minimum is 30 minutes and maximum is 7 days. Applicable to only 3P * connectors. When the refresh interval is * set to the same value as the incremental refresh interval, incremental * sync will be disabled. */ incrementalRefreshInterval?: pulumi.Input; /** * Indicates whether incremental syncs are paused for this connector. */ incrementalSyncDisabled?: pulumi.Input; /** * Params needed to access the source in the format of json string. */ jsonParams?: pulumi.Input; /** * The KMS key to be used to protect the DataStores managed by this connector. * Must be set for requests that need to comply with CMEK Org Policy * protections. * If this field is set and processed successfully, the DataStores created by * this connector will be protected by the KMS key. */ 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; /** * Params needed to access the source in the format of String-to-String (Key, Value) pairs. */ params?: pulumi.Input<{ [key: string]: 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; /** * The refresh interval for data sync. If duration is set to 0, the data will * be synced in real time. The streaming feature is not supported yet. The * minimum is 30 minutes and maximum is 7 days. When the refresh interval is * set to the same value as the incremental refresh interval, incremental * sync will be disabled. */ refreshInterval: pulumi.Input; /** * Whether customer has enabled static IP addresses for this connector. */ staticIpEnabled?: pulumi.Input; /** * The data synchronization mode supported by the data connector. The possible value can be: * 'PERIODIC', 'STREAMING'. */ syncMode?: pulumi.Input; }