@pulumi/databricks
Version:
A Pulumi package for creating and managing databricks cloud resources.
302 lines (301 loc) • 10.8 kB
TypeScript
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>;
}