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<pulumi.ID>, 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<string>;
    /**
     * Indicates whether full syncs are paused for this connector
     */
    readonly autoRunDisabled: pulumi.Output<boolean | undefined>;
    /**
     * 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<string[]>;
    /**
     * 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<string>;
    /**
     * 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<string>;
    /**
     * The modes enabled for this connector. The possible value can be:
     * 'DATA_INGESTION', 'ACTIONS', 'FEDERATED'
     * 'EUA', 'FEDERATED_AND_EUA'.
     */
    readonly connectorModes: pulumi.Output<string[] | undefined>;
    /**
     * 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<string>;
    /**
     * Timestamp when the DataConnector was created.
     */
    readonly createTime: pulumi.Output<string>;
    /**
     * The name of the data source.
     * Supported values: `salesforce`, `jira`, `confluence`, `bigquery`.
     */
    readonly dataSource: pulumi.Output<string>;
    /**
     * List of entities from the connected data source to ingest.
     * Structure is documented below.
     */
    readonly entities: pulumi.Output<outputs.discoveryengine.DataConnectorEntity[] | undefined>;
    /**
     * The errors from initialization or from the latest connector run.
     * Structure is documented below.
     */
    readonly errors: pulumi.Output<outputs.discoveryengine.DataConnectorError[]>;
    /**
     * 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<string | undefined>;
    /**
     * Indicates whether incremental syncs are paused for this connector.
     */
    readonly incrementalSyncDisabled: pulumi.Output<boolean | undefined>;
    /**
     * Params needed to access the source in the format of json string.
     */
    readonly jsonParams: pulumi.Output<string | undefined>;
    /**
     * 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<string | undefined>;
    /**
     * For periodic connectors only, the last time a data sync was completed.
     */
    readonly lastSyncTime: pulumi.Output<string>;
    /**
     * 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<string>;
    /**
     * The geographic location where the data store should reside. The value can
     * only be one of "global", "us" and "eu".
     */
    readonly location: pulumi.Output<string>;
    /**
     * The full resource name of the Data Connector.
     * Format: `projects/*&#47;locations/*&#47;collections/*&#47;dataConnector`.
     */
    readonly name: pulumi.Output<string>;
    /**
     * 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<string>;
    /**
     * 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>;
    /**
     * The real-time sync state. The possible values can be:
     * 'STATE_UNSPECIFIED', 'CREATING', 'ACTIVE', 'FAILED', 'RUNNING', 'WARNING',
     * 'INITIALIZATION_FAILED', 'UPDATING'.
     */
    readonly realtimeState: pulumi.Output<string>;
    /**
     * 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<string>;
    /**
     * The state of connector. The possible value can be:
     * 'STATE_UNSPECIFIED', 'CREATING', 'ACTIVE', 'FAILED', 'RUNNING', 'WARNING',
     * 'INITIALIZATION_FAILED', 'UPDATING'.
     */
    readonly state: pulumi.Output<string>;
    /**
     * The static IP addresses used by this connector.
     */
    readonly staticIpAddresses: pulumi.Output<string[]>;
    /**
     * Whether customer has enabled static IP addresses for this connector.
     */
    readonly staticIpEnabled: pulumi.Output<boolean | undefined>;
    /**
     * The data synchronization mode supported by the data connector. The possible value can be:
     * 'PERIODIC', 'STREAMING'.
     */
    readonly syncMode: pulumi.Output<string | undefined>;
    /**
     * Timestamp when the DataConnector was updated.
     */
    readonly updateTime: pulumi.Output<string>;
    /**
     * 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<string>;
    /**
     * Indicates whether full syncs are paused for this connector
     */
    autoRunDisabled?: pulumi.Input<boolean>;
    /**
     * 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<pulumi.Input<string>[]>;
    /**
     * 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<string>;
    /**
     * 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<string>;
    /**
     * The modes enabled for this connector. The possible value can be:
     * 'DATA_INGESTION', 'ACTIONS', 'FEDERATED'
     * 'EUA', 'FEDERATED_AND_EUA'.
     */
    connectorModes?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * 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<string>;
    /**
     * Timestamp when the DataConnector was created.
     */
    createTime?: pulumi.Input<string>;
    /**
     * The name of the data source.
     * Supported values: `salesforce`, `jira`, `confluence`, `bigquery`.
     */
    dataSource?: pulumi.Input<string>;
    /**
     * List of entities from the connected data source to ingest.
     * Structure is documented below.
     */
    entities?: pulumi.Input<pulumi.Input<inputs.discoveryengine.DataConnectorEntity>[]>;
    /**
     * The errors from initialization or from the latest connector run.
     * Structure is documented below.
     */
    errors?: pulumi.Input<pulumi.Input<inputs.discoveryengine.DataConnectorError>[]>;
    /**
     * 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<string>;
    /**
     * Indicates whether incremental syncs are paused for this connector.
     */
    incrementalSyncDisabled?: pulumi.Input<boolean>;
    /**
     * Params needed to access the source in the format of json string.
     */
    jsonParams?: pulumi.Input<string>;
    /**
     * 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<string>;
    /**
     * For periodic connectors only, the last time a data sync was completed.
     */
    lastSyncTime?: pulumi.Input<string>;
    /**
     * 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<string>;
    /**
     * The geographic location where the data store should reside. The value can
     * only be one of "global", "us" and "eu".
     */
    location?: pulumi.Input<string>;
    /**
     * The full resource name of the Data Connector.
     * Format: `projects/*&#47;locations/*&#47;collections/*&#47;dataConnector`.
     */
    name?: pulumi.Input<string>;
    /**
     * Params needed to access the source in the format of String-to-String (Key, Value) pairs.
     */
    params?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * 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<string>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string>;
    /**
     * The real-time sync state. The possible values can be:
     * 'STATE_UNSPECIFIED', 'CREATING', 'ACTIVE', 'FAILED', 'RUNNING', 'WARNING',
     * 'INITIALIZATION_FAILED', 'UPDATING'.
     */
    realtimeState?: pulumi.Input<string>;
    /**
     * 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<string>;
    /**
     * The state of connector. The possible value can be:
     * 'STATE_UNSPECIFIED', 'CREATING', 'ACTIVE', 'FAILED', 'RUNNING', 'WARNING',
     * 'INITIALIZATION_FAILED', 'UPDATING'.
     */
    state?: pulumi.Input<string>;
    /**
     * The static IP addresses used by this connector.
     */
    staticIpAddresses?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Whether customer has enabled static IP addresses for this connector.
     */
    staticIpEnabled?: pulumi.Input<boolean>;
    /**
     * The data synchronization mode supported by the data connector. The possible value can be:
     * 'PERIODIC', 'STREAMING'.
     */
    syncMode?: pulumi.Input<string>;
    /**
     * Timestamp when the DataConnector was updated.
     */
    updateTime?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a DataConnector resource.
 */
export interface DataConnectorArgs {
    /**
     * Indicates whether full syncs are paused for this connector
     */
    autoRunDisabled?: pulumi.Input<boolean>;
    /**
     * 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<string>;
    /**
     * 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<string>;
    /**
     * The modes enabled for this connector. The possible value can be:
     * 'DATA_INGESTION', 'ACTIONS', 'FEDERATED'
     * 'EUA', 'FEDERATED_AND_EUA'.
     */
    connectorModes?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The name of the data source.
     * Supported values: `salesforce`, `jira`, `confluence`, `bigquery`.
     */
    dataSource: pulumi.Input<string>;
    /**
     * List of entities from the connected data source to ingest.
     * Structure is documented below.
     */
    entities?: pulumi.Input<pulumi.Input<inputs.discoveryengine.DataConnectorEntity>[]>;
    /**
     * 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<string>;
    /**
     * Indicates whether incremental syncs are paused for this connector.
     */
    incrementalSyncDisabled?: pulumi.Input<boolean>;
    /**
     * Params needed to access the source in the format of json string.
     */
    jsonParams?: pulumi.Input<string>;
    /**
     * 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<string>;
    /**
     * The geographic location where the data store should reside. The value can
     * only be one of "global", "us" and "eu".
     */
    location: pulumi.Input<string>;
    /**
     * Params needed to access the source in the format of String-to-String (Key, Value) pairs.
     */
    params?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string>;
    /**
     * 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<string>;
    /**
     * Whether customer has enabled static IP addresses for this connector.
     */
    staticIpEnabled?: pulumi.Input<boolean>;
    /**
     * The data synchronization mode supported by the data connector. The possible value can be:
     * 'PERIODIC', 'STREAMING'.
     */
    syncMode?: pulumi.Input<string>;
}
