UNPKG

@pulumi/databricks

Version:

A Pulumi package for creating and managing databricks cloud resources.

302 lines (301 loc) 10.8 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * > This resource can only be used with a workspace-level provider! * * Lakehouse Federation is the query federation platform for Databricks. Databricks uses Unity Catalog to manage query federation. To make a dataset available for read-only querying using Lakehouse Federation, you create the following: * * - A connection, a securable object in Unity Catalog that specifies a path and credentials for accessing an external database system. * - A foreign catalog * * This resource manages connections in Unity Catalog * * ## Example Usage * * Create a connection to a MySQL database * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as databricks from "@pulumi/databricks"; * * const mysql = new databricks.Connection("mysql", { * name: "mysql_connection", * connectionType: "MYSQL", * comment: "this is a connection to mysql db", * options: { * host: "test.mysql.database.azure.com", * port: "3306", * user: "user", * password: "password", * }, * properties: { * purpose: "testing", * }, * }); * ``` * * Create a connection to a BigQuery database * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as databricks from "@pulumi/databricks"; * * const bigquery = new databricks.Connection("bigquery", { * name: "bq_connection", * connectionType: "BIGQUERY", * comment: "this is a connection to BQ", * options: { * GoogleServiceAccountKeyJson: JSON.stringify({ * type: "service_account", * project_id: "PROJECT_ID", * private_key_id: "KEY_ID", * private_key: `-----BEGIN PRIVATE KEY----- * PRIVATE_KEY * -----END PRIVATE KEY----- * `, * client_email: "SERVICE_ACCOUNT_EMAIL", * client_id: "CLIENT_ID", * auth_uri: "https://accounts.google.com/o/oauth2/auth", * token_uri: "https://accounts.google.com/o/oauth2/token", * auth_provider_x509_cert_url: "https://www.googleapis.com/oauth2/v1/certs", * client_x509_cert_url: "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL", * universe_domain: "googleapis.com", * }), * }, * properties: { * purpose: "testing", * }, * }); * ``` * * Create a connection to builtin Hive Metastore * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as databricks from "@pulumi/databricks"; * * const _this = new databricks.Connection("this", { * name: "hms-builtin", * connectionType: "HIVE_METASTORE", * comment: "This is a connection to builtin HMS", * options: { * builtin: "true", * }, * }); * ``` * * ## Import * * This resource can be imported by `id`: * * bash * * ```sh * $ pulumi import databricks:index/connection:Connection this '<metastore_id>|<name>' * ``` */ export declare class Connection extends pulumi.CustomResource { /** * Get an existing Connection 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?: ConnectionState, opts?: pulumi.CustomResourceOptions): Connection; /** * Returns true if the given object is an instance of Connection. 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 Connection; /** * Free-form text. */ readonly comment: pulumi.Output<string | undefined>; /** * Unique ID of the connection. */ readonly connectionId: pulumi.Output<string>; /** * Connection type. `BIGQUERY` `MYSQL` `POSTGRESQL` `SNOWFLAKE` `REDSHIFT` `SQLDW` `SQLSERVER`, `SALESFORCE`, `HIVE_METASTORE`, `GLUE`, `TERADATA`, `ORACLE` or `DATABRICKS` are supported. Up-to-date list of connection type supported is in the [documentation](https://docs.databricks.com/query-federation/index.html#supported-data-sources) */ readonly connectionType: pulumi.Output<string | undefined>; /** * Time at which this connection was created, in epoch milliseconds. */ readonly createdAt: pulumi.Output<number>; /** * Username of connection creator. */ readonly createdBy: pulumi.Output<string>; /** * The type of credential for this connection. */ readonly credentialType: pulumi.Output<string>; /** * Full name of connection. */ readonly fullName: pulumi.Output<string>; /** * Unique ID of the UC metastore for this connection. */ readonly metastoreId: pulumi.Output<string>; /** * Name of the Connection. */ readonly name: pulumi.Output<string>; /** * The key value of options required by the connection, e.g. `host`, `port`, `user`, `password` or `GoogleServiceAccountKeyJson`. Please consult the [documentation](https://docs.databricks.com/query-federation/index.html#supported-data-sources) for the required option. */ readonly options: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Name of the connection owner. */ readonly owner: pulumi.Output<string>; /** * Free-form connection properties. */ readonly properties: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Object with the status of an asynchronously provisioned resource. */ readonly provisioningInfos: pulumi.Output<outputs.ConnectionProvisioningInfo[]>; readonly readOnly: pulumi.Output<boolean>; readonly securableType: pulumi.Output<string>; /** * Time at which connection this was last modified, in epoch milliseconds. */ readonly updatedAt: pulumi.Output<number>; /** * Username of user who last modified the connection. */ readonly updatedBy: pulumi.Output<string>; /** * URL of the remote data source, extracted from options. */ readonly url: pulumi.Output<string>; /** * Create a Connection 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?: ConnectionArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Connection resources. */ export interface ConnectionState { /** * Free-form text. */ comment?: pulumi.Input<string>; /** * Unique ID of the connection. */ connectionId?: pulumi.Input<string>; /** * Connection type. `BIGQUERY` `MYSQL` `POSTGRESQL` `SNOWFLAKE` `REDSHIFT` `SQLDW` `SQLSERVER`, `SALESFORCE`, `HIVE_METASTORE`, `GLUE`, `TERADATA`, `ORACLE` or `DATABRICKS` are supported. Up-to-date list of connection type supported is in the [documentation](https://docs.databricks.com/query-federation/index.html#supported-data-sources) */ connectionType?: pulumi.Input<string>; /** * Time at which this connection was created, in epoch milliseconds. */ createdAt?: pulumi.Input<number>; /** * Username of connection creator. */ createdBy?: pulumi.Input<string>; /** * The type of credential for this connection. */ credentialType?: pulumi.Input<string>; /** * Full name of connection. */ fullName?: pulumi.Input<string>; /** * Unique ID of the UC metastore for this connection. */ metastoreId?: pulumi.Input<string>; /** * Name of the Connection. */ name?: pulumi.Input<string>; /** * The key value of options required by the connection, e.g. `host`, `port`, `user`, `password` or `GoogleServiceAccountKeyJson`. Please consult the [documentation](https://docs.databricks.com/query-federation/index.html#supported-data-sources) for the required option. */ options?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Name of the connection owner. */ owner?: pulumi.Input<string>; /** * Free-form connection properties. */ properties?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Object with the status of an asynchronously provisioned resource. */ provisioningInfos?: pulumi.Input<pulumi.Input<inputs.ConnectionProvisioningInfo>[]>; readOnly?: pulumi.Input<boolean>; securableType?: pulumi.Input<string>; /** * Time at which connection this was last modified, in epoch milliseconds. */ updatedAt?: pulumi.Input<number>; /** * Username of user who last modified the connection. */ updatedBy?: pulumi.Input<string>; /** * URL of the remote data source, extracted from options. */ url?: pulumi.Input<string>; } /** * The set of arguments for constructing a Connection resource. */ export interface ConnectionArgs { /** * Free-form text. */ comment?: pulumi.Input<string>; /** * Connection type. `BIGQUERY` `MYSQL` `POSTGRESQL` `SNOWFLAKE` `REDSHIFT` `SQLDW` `SQLSERVER`, `SALESFORCE`, `HIVE_METASTORE`, `GLUE`, `TERADATA`, `ORACLE` or `DATABRICKS` are supported. Up-to-date list of connection type supported is in the [documentation](https://docs.databricks.com/query-federation/index.html#supported-data-sources) */ connectionType?: pulumi.Input<string>; /** * Name of the Connection. */ name?: pulumi.Input<string>; /** * The key value of options required by the connection, e.g. `host`, `port`, `user`, `password` or `GoogleServiceAccountKeyJson`. Please consult the [documentation](https://docs.databricks.com/query-federation/index.html#supported-data-sources) for the required option. */ options?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Name of the connection owner. */ owner?: pulumi.Input<string>; /** * Free-form connection properties. */ properties?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; readOnly?: pulumi.Input<boolean>; }