@pulumi/databricks 1.77.0 → 1.78.0-alpha.1762486781
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accountFederationPolicy.d.ts +13 -0
- package/accountFederationPolicy.js +13 -0
- package/accountFederationPolicy.js.map +1 -1
- package/accountNetworkPolicy.d.ts +26 -0
- package/accountNetworkPolicy.js +26 -0
- package/accountNetworkPolicy.js.map +1 -1
- package/alertV2.d.ts +37 -0
- package/alertV2.js +37 -0
- package/alertV2.js.map +1 -1
- package/app.d.ts +33 -0
- package/app.js +33 -0
- package/app.js.map +1 -1
- package/appsSettingsCustomTemplate.d.ts +34 -0
- package/appsSettingsCustomTemplate.js +34 -0
- package/appsSettingsCustomTemplate.js.map +1 -1
- package/catalog.d.ts +3 -3
- package/clusterPolicy.d.ts +63 -0
- package/clusterPolicy.js +63 -0
- package/clusterPolicy.js.map +1 -1
- package/config/vars.d.ts +2 -0
- package/config/vars.js +12 -0
- package/config/vars.js.map +1 -1
- package/databaseSyncedDatabaseTable.d.ts +113 -0
- package/databaseSyncedDatabaseTable.js +113 -0
- package/databaseSyncedDatabaseTable.js.map +1 -1
- package/externalLocation.d.ts +75 -3
- package/externalLocation.js +72 -0
- package/externalLocation.js.map +1 -1
- package/file.d.ts +1 -1
- package/file.js +1 -1
- package/getAwsAssumeRolePolicy.d.ts +10 -10
- package/getAwsAssumeRolePolicy.js +10 -10
- package/getAwsBucketPolicy.d.ts +12 -12
- package/getAwsBucketPolicy.js +12 -12
- package/getAwsUnityCatalogAssumeRolePolicy.d.ts +10 -10
- package/getAwsUnityCatalogAssumeRolePolicy.js +10 -10
- package/getAwsUnityCatalogPolicy.d.ts +10 -10
- package/getAwsUnityCatalogPolicy.js +10 -10
- package/getCluster.d.ts +62 -0
- package/getCluster.js +62 -0
- package/getCluster.js.map +1 -1
- package/getCurrentConfig.d.ts +4 -4
- package/getCurrentConfig.js +4 -4
- package/getMetastore.d.ts +4 -4
- package/getMetastore.js +4 -4
- package/getNotebook.d.ts +11 -0
- package/getNotebook.js +2 -0
- package/getNotebook.js.map +1 -1
- package/getServicePrincipals.d.ts +88 -0
- package/getServicePrincipals.js +88 -0
- package/getServicePrincipals.js.map +1 -1
- package/instanceProfile.d.ts +0 -107
- package/instanceProfile.js +0 -107
- package/instanceProfile.js.map +1 -1
- package/metastore.d.ts +46 -3
- package/metastore.js +43 -0
- package/metastore.js.map +1 -1
- package/metastoreDataAccess.d.ts +28 -0
- package/metastoreDataAccess.js +28 -0
- package/metastoreDataAccess.js.map +1 -1
- package/mlflowWebhook.d.ts +2 -2
- package/mlflowWebhook.js +2 -2
- package/mwsCredentials.d.ts +4 -4
- package/mwsCredentials.js +4 -4
- package/mwsCustomerManagedKeys.d.ts +0 -152
- package/mwsCustomerManagedKeys.js +0 -152
- package/mwsCustomerManagedKeys.js.map +1 -1
- package/mwsLogDelivery.d.ts +90 -0
- package/mwsLogDelivery.js +90 -0
- package/mwsLogDelivery.js.map +1 -1
- package/mwsStorageConfigurations.d.ts +5 -5
- package/mwsStorageConfigurations.js +5 -5
- package/mwsVpcEndpoint.d.ts +5 -5
- package/mwsVpcEndpoint.js +5 -5
- package/mwsWorkspaces.d.ts +24 -21
- package/mwsWorkspaces.js +20 -18
- package/mwsWorkspaces.js.map +1 -1
- package/notebook.d.ts +14 -0
- package/notebook.js +2 -0
- package/notebook.js.map +1 -1
- package/package.json +2 -2
- package/permissionAssignment.d.ts +14 -0
- package/permissionAssignment.js +2 -0
- package/permissionAssignment.js.map +1 -1
- package/permissions.d.ts +3 -3
- package/permissions.js +3 -3
- package/provider.d.ts +3 -0
- package/provider.js +2 -0
- package/provider.js.map +1 -1
- package/recipient.d.ts +41 -0
- package/recipient.js +41 -0
- package/recipient.js.map +1 -1
- package/registeredModel.d.ts +3 -3
- package/schema.d.ts +3 -3
- package/servicePrincipalFederationPolicy.d.ts +15 -0
- package/servicePrincipalFederationPolicy.js +15 -0
- package/servicePrincipalFederationPolicy.js.map +1 -1
- package/sqlTable.d.ts +3 -3
- package/types/input.d.ts +30 -42
- package/types/output.d.ts +24 -42
- package/volume.d.ts +3 -3
|
@@ -3,6 +3,50 @@ import * as pulumi from "@pulumi/pulumi";
|
|
|
3
3
|
* Retrieves `applicationIds` of all databricks.ServicePrincipal based on their `displayName`
|
|
4
4
|
*
|
|
5
5
|
* > This data source can be used with an account or workspace-level provider.
|
|
6
|
+
*
|
|
7
|
+
* ## Example Usage
|
|
8
|
+
*
|
|
9
|
+
* Adding all service principals of which display name contains `my-spn` to admin group
|
|
10
|
+
*
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
13
|
+
* import * as databricks from "@pulumi/databricks";
|
|
14
|
+
* import * as std from "@pulumi/std";
|
|
15
|
+
*
|
|
16
|
+
* export = async () => {
|
|
17
|
+
* const admins = await databricks.getGroup({
|
|
18
|
+
* displayName: "admins",
|
|
19
|
+
* });
|
|
20
|
+
* const spns = await databricks.getServicePrincipals({
|
|
21
|
+
* displayNameContains: "my-spn",
|
|
22
|
+
* });
|
|
23
|
+
* const spn = .reduce((__obj, [__key, __value]) => ({ ...__obj, [__key]: await databricks.getServicePrincipal({
|
|
24
|
+
* applicationId: __value,
|
|
25
|
+
* }) }));
|
|
26
|
+
* const myMemberSpn: databricks.GroupMember[] = [];
|
|
27
|
+
* for (const range of std.toset({
|
|
28
|
+
* input: spns.applicationIds,
|
|
29
|
+
* }).result.map((v, k) => ({key: k, value: v}))) {
|
|
30
|
+
* myMemberSpn.push(new databricks.GroupMember(`my_member_spn-${range.key}`, {
|
|
31
|
+
* groupId: admins.id,
|
|
32
|
+
* memberId: spn[range.value].spId,
|
|
33
|
+
* }));
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* ## Related Resources
|
|
39
|
+
*
|
|
40
|
+
* The following resources are used in the same context:
|
|
41
|
+
*
|
|
42
|
+
* - End to end workspace management guide.
|
|
43
|
+
* - databricks.getCurrentUser data to retrieve information about databricks.User or databricks_service_principal, that is calling Databricks REST API.
|
|
44
|
+
* - databricks.Group to manage [Account-level](https://docs.databricks.com/aws/en/admin/users-groups/groups) or [Workspace-level](https://docs.databricks.com/aws/en/admin/users-groups/workspace-local-groups) groups.
|
|
45
|
+
* - databricks.Group data to retrieve information about databricks.Group members, entitlements and instance profiles.
|
|
46
|
+
* - databricks.GroupInstanceProfile to attach databricks.InstanceProfile (AWS) to databricks_group.
|
|
47
|
+
* - databricks.GroupMember to attach users and groups as group members.
|
|
48
|
+
* - databricks.Permissions to manage [access control](https://docs.databricks.com/security/access-control/index.html) in Databricks workspace.
|
|
49
|
+
* - databricksService principal to manage service principals
|
|
6
50
|
*/
|
|
7
51
|
export declare function getServicePrincipals(args?: GetServicePrincipalsArgs, opts?: pulumi.InvokeOptions): Promise<GetServicePrincipalsResult>;
|
|
8
52
|
/**
|
|
@@ -36,6 +80,50 @@ export interface GetServicePrincipalsResult {
|
|
|
36
80
|
* Retrieves `applicationIds` of all databricks.ServicePrincipal based on their `displayName`
|
|
37
81
|
*
|
|
38
82
|
* > This data source can be used with an account or workspace-level provider.
|
|
83
|
+
*
|
|
84
|
+
* ## Example Usage
|
|
85
|
+
*
|
|
86
|
+
* Adding all service principals of which display name contains `my-spn` to admin group
|
|
87
|
+
*
|
|
88
|
+
* ```typescript
|
|
89
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
90
|
+
* import * as databricks from "@pulumi/databricks";
|
|
91
|
+
* import * as std from "@pulumi/std";
|
|
92
|
+
*
|
|
93
|
+
* export = async () => {
|
|
94
|
+
* const admins = await databricks.getGroup({
|
|
95
|
+
* displayName: "admins",
|
|
96
|
+
* });
|
|
97
|
+
* const spns = await databricks.getServicePrincipals({
|
|
98
|
+
* displayNameContains: "my-spn",
|
|
99
|
+
* });
|
|
100
|
+
* const spn = .reduce((__obj, [__key, __value]) => ({ ...__obj, [__key]: await databricks.getServicePrincipal({
|
|
101
|
+
* applicationId: __value,
|
|
102
|
+
* }) }));
|
|
103
|
+
* const myMemberSpn: databricks.GroupMember[] = [];
|
|
104
|
+
* for (const range of std.toset({
|
|
105
|
+
* input: spns.applicationIds,
|
|
106
|
+
* }).result.map((v, k) => ({key: k, value: v}))) {
|
|
107
|
+
* myMemberSpn.push(new databricks.GroupMember(`my_member_spn-${range.key}`, {
|
|
108
|
+
* groupId: admins.id,
|
|
109
|
+
* memberId: spn[range.value].spId,
|
|
110
|
+
* }));
|
|
111
|
+
* }
|
|
112
|
+
* }
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* ## Related Resources
|
|
116
|
+
*
|
|
117
|
+
* The following resources are used in the same context:
|
|
118
|
+
*
|
|
119
|
+
* - End to end workspace management guide.
|
|
120
|
+
* - databricks.getCurrentUser data to retrieve information about databricks.User or databricks_service_principal, that is calling Databricks REST API.
|
|
121
|
+
* - databricks.Group to manage [Account-level](https://docs.databricks.com/aws/en/admin/users-groups/groups) or [Workspace-level](https://docs.databricks.com/aws/en/admin/users-groups/workspace-local-groups) groups.
|
|
122
|
+
* - databricks.Group data to retrieve information about databricks.Group members, entitlements and instance profiles.
|
|
123
|
+
* - databricks.GroupInstanceProfile to attach databricks.InstanceProfile (AWS) to databricks_group.
|
|
124
|
+
* - databricks.GroupMember to attach users and groups as group members.
|
|
125
|
+
* - databricks.Permissions to manage [access control](https://docs.databricks.com/security/access-control/index.html) in Databricks workspace.
|
|
126
|
+
* - databricksService principal to manage service principals
|
|
39
127
|
*/
|
|
40
128
|
export declare function getServicePrincipalsOutput(args?: GetServicePrincipalsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetServicePrincipalsResult>;
|
|
41
129
|
/**
|
package/getServicePrincipals.js
CHANGED
|
@@ -9,6 +9,50 @@ const utilities = require("./utilities");
|
|
|
9
9
|
* Retrieves `applicationIds` of all databricks.ServicePrincipal based on their `displayName`
|
|
10
10
|
*
|
|
11
11
|
* > This data source can be used with an account or workspace-level provider.
|
|
12
|
+
*
|
|
13
|
+
* ## Example Usage
|
|
14
|
+
*
|
|
15
|
+
* Adding all service principals of which display name contains `my-spn` to admin group
|
|
16
|
+
*
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
19
|
+
* import * as databricks from "@pulumi/databricks";
|
|
20
|
+
* import * as std from "@pulumi/std";
|
|
21
|
+
*
|
|
22
|
+
* export = async () => {
|
|
23
|
+
* const admins = await databricks.getGroup({
|
|
24
|
+
* displayName: "admins",
|
|
25
|
+
* });
|
|
26
|
+
* const spns = await databricks.getServicePrincipals({
|
|
27
|
+
* displayNameContains: "my-spn",
|
|
28
|
+
* });
|
|
29
|
+
* const spn = .reduce((__obj, [__key, __value]) => ({ ...__obj, [__key]: await databricks.getServicePrincipal({
|
|
30
|
+
* applicationId: __value,
|
|
31
|
+
* }) }));
|
|
32
|
+
* const myMemberSpn: databricks.GroupMember[] = [];
|
|
33
|
+
* for (const range of std.toset({
|
|
34
|
+
* input: spns.applicationIds,
|
|
35
|
+
* }).result.map((v, k) => ({key: k, value: v}))) {
|
|
36
|
+
* myMemberSpn.push(new databricks.GroupMember(`my_member_spn-${range.key}`, {
|
|
37
|
+
* groupId: admins.id,
|
|
38
|
+
* memberId: spn[range.value].spId,
|
|
39
|
+
* }));
|
|
40
|
+
* }
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* ## Related Resources
|
|
45
|
+
*
|
|
46
|
+
* The following resources are used in the same context:
|
|
47
|
+
*
|
|
48
|
+
* - End to end workspace management guide.
|
|
49
|
+
* - databricks.getCurrentUser data to retrieve information about databricks.User or databricks_service_principal, that is calling Databricks REST API.
|
|
50
|
+
* - databricks.Group to manage [Account-level](https://docs.databricks.com/aws/en/admin/users-groups/groups) or [Workspace-level](https://docs.databricks.com/aws/en/admin/users-groups/workspace-local-groups) groups.
|
|
51
|
+
* - databricks.Group data to retrieve information about databricks.Group members, entitlements and instance profiles.
|
|
52
|
+
* - databricks.GroupInstanceProfile to attach databricks.InstanceProfile (AWS) to databricks_group.
|
|
53
|
+
* - databricks.GroupMember to attach users and groups as group members.
|
|
54
|
+
* - databricks.Permissions to manage [access control](https://docs.databricks.com/security/access-control/index.html) in Databricks workspace.
|
|
55
|
+
* - databricksService principal to manage service principals
|
|
12
56
|
*/
|
|
13
57
|
function getServicePrincipals(args, opts) {
|
|
14
58
|
args = args || {};
|
|
@@ -23,6 +67,50 @@ exports.getServicePrincipals = getServicePrincipals;
|
|
|
23
67
|
* Retrieves `applicationIds` of all databricks.ServicePrincipal based on their `displayName`
|
|
24
68
|
*
|
|
25
69
|
* > This data source can be used with an account or workspace-level provider.
|
|
70
|
+
*
|
|
71
|
+
* ## Example Usage
|
|
72
|
+
*
|
|
73
|
+
* Adding all service principals of which display name contains `my-spn` to admin group
|
|
74
|
+
*
|
|
75
|
+
* ```typescript
|
|
76
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
77
|
+
* import * as databricks from "@pulumi/databricks";
|
|
78
|
+
* import * as std from "@pulumi/std";
|
|
79
|
+
*
|
|
80
|
+
* export = async () => {
|
|
81
|
+
* const admins = await databricks.getGroup({
|
|
82
|
+
* displayName: "admins",
|
|
83
|
+
* });
|
|
84
|
+
* const spns = await databricks.getServicePrincipals({
|
|
85
|
+
* displayNameContains: "my-spn",
|
|
86
|
+
* });
|
|
87
|
+
* const spn = .reduce((__obj, [__key, __value]) => ({ ...__obj, [__key]: await databricks.getServicePrincipal({
|
|
88
|
+
* applicationId: __value,
|
|
89
|
+
* }) }));
|
|
90
|
+
* const myMemberSpn: databricks.GroupMember[] = [];
|
|
91
|
+
* for (const range of std.toset({
|
|
92
|
+
* input: spns.applicationIds,
|
|
93
|
+
* }).result.map((v, k) => ({key: k, value: v}))) {
|
|
94
|
+
* myMemberSpn.push(new databricks.GroupMember(`my_member_spn-${range.key}`, {
|
|
95
|
+
* groupId: admins.id,
|
|
96
|
+
* memberId: spn[range.value].spId,
|
|
97
|
+
* }));
|
|
98
|
+
* }
|
|
99
|
+
* }
|
|
100
|
+
* ```
|
|
101
|
+
*
|
|
102
|
+
* ## Related Resources
|
|
103
|
+
*
|
|
104
|
+
* The following resources are used in the same context:
|
|
105
|
+
*
|
|
106
|
+
* - End to end workspace management guide.
|
|
107
|
+
* - databricks.getCurrentUser data to retrieve information about databricks.User or databricks_service_principal, that is calling Databricks REST API.
|
|
108
|
+
* - databricks.Group to manage [Account-level](https://docs.databricks.com/aws/en/admin/users-groups/groups) or [Workspace-level](https://docs.databricks.com/aws/en/admin/users-groups/workspace-local-groups) groups.
|
|
109
|
+
* - databricks.Group data to retrieve information about databricks.Group members, entitlements and instance profiles.
|
|
110
|
+
* - databricks.GroupInstanceProfile to attach databricks.InstanceProfile (AWS) to databricks_group.
|
|
111
|
+
* - databricks.GroupMember to attach users and groups as group members.
|
|
112
|
+
* - databricks.Permissions to manage [access control](https://docs.databricks.com/security/access-control/index.html) in Databricks workspace.
|
|
113
|
+
* - databricksService principal to manage service principals
|
|
26
114
|
*/
|
|
27
115
|
function getServicePrincipalsOutput(args, opts) {
|
|
28
116
|
args = args || {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getServicePrincipals.js","sourceRoot":"","sources":["../getServicePrincipals.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC
|
|
1
|
+
{"version":3,"file":"getServicePrincipals.js","sourceRoot":"","sources":["../getServicePrincipals.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,SAAgB,oBAAoB,CAAC,IAA+B,EAAE,IAA2B;IAC7F,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,4DAA4D,EAAE;QACvF,gBAAgB,EAAE,IAAI,CAAC,cAAc;QACrC,qBAAqB,EAAE,IAAI,CAAC,mBAAmB;KAClD,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AAPD,oDAOC;AA8BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,SAAgB,0BAA0B,CAAC,IAAqC,EAAE,IAAiC;IAC/G,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,4DAA4D,EAAE;QAC7F,gBAAgB,EAAE,IAAI,CAAC,cAAc;QACrC,qBAAqB,EAAE,IAAI,CAAC,mBAAmB;KAClD,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AAPD,gEAOC"}
|
package/instanceProfile.d.ts
CHANGED
|
@@ -6,73 +6,6 @@ import * as pulumi from "@pulumi/pulumi";
|
|
|
6
6
|
*
|
|
7
7
|
* > Please switch to databricks.StorageCredential with Unity Catalog to manage storage credentials, which provides a better and faster way for managing credential security.
|
|
8
8
|
*
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import * as pulumi from "@pulumi/pulumi";
|
|
11
|
-
* import * as aws from "@pulumi/aws";
|
|
12
|
-
* import * as databricks from "@pulumi/databricks";
|
|
13
|
-
*
|
|
14
|
-
* const config = new pulumi.Config();
|
|
15
|
-
* // Role that you've specified on https://accounts.cloud.databricks.com/#aws
|
|
16
|
-
* const crossaccountRoleName = config.require("crossaccountRoleName");
|
|
17
|
-
* const assumeRoleForEc2 = aws.iam.getPolicyDocument({
|
|
18
|
-
* statements: [{
|
|
19
|
-
* effect: "Allow",
|
|
20
|
-
* actions: ["sts:AssumeRole"],
|
|
21
|
-
* principals: [{
|
|
22
|
-
* identifiers: ["ec2.amazonaws.com"],
|
|
23
|
-
* type: "Service",
|
|
24
|
-
* }],
|
|
25
|
-
* }],
|
|
26
|
-
* });
|
|
27
|
-
* const roleForS3Access = new aws.iam.Role("role_for_s3_access", {
|
|
28
|
-
* name: "shared-ec2-role-for-s3",
|
|
29
|
-
* description: "Role for shared access",
|
|
30
|
-
* assumeRolePolicy: assumeRoleForEc2.then(assumeRoleForEc2 => assumeRoleForEc2.json),
|
|
31
|
-
* });
|
|
32
|
-
* const passRoleForS3Access = aws.iam.getPolicyDocumentOutput({
|
|
33
|
-
* statements: [{
|
|
34
|
-
* effect: "Allow",
|
|
35
|
-
* actions: ["iam:PassRole"],
|
|
36
|
-
* resources: [roleForS3Access.arn],
|
|
37
|
-
* }],
|
|
38
|
-
* });
|
|
39
|
-
* const passRoleForS3AccessPolicy = new aws.iam.Policy("pass_role_for_s3_access", {
|
|
40
|
-
* name: "shared-pass-role-for-s3-access",
|
|
41
|
-
* path: "/",
|
|
42
|
-
* policy: passRoleForS3Access.apply(passRoleForS3Access => passRoleForS3Access.json),
|
|
43
|
-
* });
|
|
44
|
-
* const crossAccount = new aws.iam.RolePolicyAttachment("cross_account", {
|
|
45
|
-
* policyArn: passRoleForS3AccessPolicy.arn,
|
|
46
|
-
* role: crossaccountRoleName,
|
|
47
|
-
* });
|
|
48
|
-
* const shared = new aws.iam.InstanceProfile("shared", {
|
|
49
|
-
* name: "shared-instance-profile",
|
|
50
|
-
* role: roleForS3Access.name,
|
|
51
|
-
* });
|
|
52
|
-
* const sharedInstanceProfile = new databricks.InstanceProfile("shared", {instanceProfileArn: shared.arn});
|
|
53
|
-
* const latest = databricks.getSparkVersion({});
|
|
54
|
-
* const smallest = databricks.getNodeType({
|
|
55
|
-
* localDisk: true,
|
|
56
|
-
* });
|
|
57
|
-
* const _this = new databricks.Cluster("this", {
|
|
58
|
-
* clusterName: "Shared Autoscaling",
|
|
59
|
-
* sparkVersion: latest.then(latest => latest.id),
|
|
60
|
-
* nodeTypeId: smallest.then(smallest => smallest.id),
|
|
61
|
-
* autoterminationMinutes: 20,
|
|
62
|
-
* autoscale: {
|
|
63
|
-
* minWorkers: 1,
|
|
64
|
-
* maxWorkers: 50,
|
|
65
|
-
* },
|
|
66
|
-
* awsAttributes: {
|
|
67
|
-
* instanceProfileArn: sharedInstanceProfile.id,
|
|
68
|
-
* availability: "SPOT",
|
|
69
|
-
* zoneId: "us-east-1",
|
|
70
|
-
* firstOnDemand: 1,
|
|
71
|
-
* spotBidPricePercent: 100,
|
|
72
|
-
* },
|
|
73
|
-
* });
|
|
74
|
-
* ```
|
|
75
|
-
*
|
|
76
9
|
* ## Usage with Cluster Policies
|
|
77
10
|
*
|
|
78
11
|
* It is advised to keep all common configurations in Cluster Policies to maintain control of the environments launched, so `databricks.Cluster` above could be replaced with `databricks.ClusterPolicy`:
|
|
@@ -110,46 +43,6 @@ import * as pulumi from "@pulumi/pulumi";
|
|
|
110
43
|
* });
|
|
111
44
|
* ```
|
|
112
45
|
*
|
|
113
|
-
* ## Usage with Databricks SQL serverless
|
|
114
|
-
*
|
|
115
|
-
* When the instance profile ARN and its associated IAM role ARN don't match and the instance profile is intended for use with Databricks SQL serverless, the `iamRoleArn` parameter can be specified.
|
|
116
|
-
*
|
|
117
|
-
* ```typescript
|
|
118
|
-
* import * as pulumi from "@pulumi/pulumi";
|
|
119
|
-
* import * as aws from "@pulumi/aws";
|
|
120
|
-
* import * as databricks from "@pulumi/databricks";
|
|
121
|
-
*
|
|
122
|
-
* const sqlServerlessAssumeRole = aws.iam.getPolicyDocument({
|
|
123
|
-
* statements: [{
|
|
124
|
-
* actions: ["sts:AssumeRole"],
|
|
125
|
-
* principals: [{
|
|
126
|
-
* type: "AWS",
|
|
127
|
-
* identifiers: ["arn:aws:iam::790110701330:role/serverless-customer-resource-role"],
|
|
128
|
-
* }],
|
|
129
|
-
* conditions: [{
|
|
130
|
-
* test: "StringEquals",
|
|
131
|
-
* variable: "sts:ExternalID",
|
|
132
|
-
* values: [
|
|
133
|
-
* "databricks-serverless-<YOUR_WORKSPACE_ID1>",
|
|
134
|
-
* "databricks-serverless-<YOUR_WORKSPACE_ID2>",
|
|
135
|
-
* ],
|
|
136
|
-
* }],
|
|
137
|
-
* }],
|
|
138
|
-
* });
|
|
139
|
-
* const _this = new aws.iam.Role("this", {
|
|
140
|
-
* name: "my-databricks-sql-serverless-role",
|
|
141
|
-
* assumeRolePolicy: sqlServerlessAssumeRole.then(sqlServerlessAssumeRole => sqlServerlessAssumeRole.json),
|
|
142
|
-
* });
|
|
143
|
-
* const thisInstanceProfile = new aws.iam.InstanceProfile("this", {
|
|
144
|
-
* name: "my-databricks-sql-serverless-instance-profile",
|
|
145
|
-
* role: _this.name,
|
|
146
|
-
* });
|
|
147
|
-
* const thisInstanceProfile2 = new databricks.InstanceProfile("this", {
|
|
148
|
-
* instanceProfileArn: thisInstanceProfile.arn,
|
|
149
|
-
* iamRoleArn: _this.arn,
|
|
150
|
-
* });
|
|
151
|
-
* ```
|
|
152
|
-
*
|
|
153
46
|
* ## Import
|
|
154
47
|
*
|
|
155
48
|
* The resource instance profile can be imported using the ARN of it
|
package/instanceProfile.js
CHANGED
|
@@ -12,73 +12,6 @@ const utilities = require("./utilities");
|
|
|
12
12
|
*
|
|
13
13
|
* > Please switch to databricks.StorageCredential with Unity Catalog to manage storage credentials, which provides a better and faster way for managing credential security.
|
|
14
14
|
*
|
|
15
|
-
* ```typescript
|
|
16
|
-
* import * as pulumi from "@pulumi/pulumi";
|
|
17
|
-
* import * as aws from "@pulumi/aws";
|
|
18
|
-
* import * as databricks from "@pulumi/databricks";
|
|
19
|
-
*
|
|
20
|
-
* const config = new pulumi.Config();
|
|
21
|
-
* // Role that you've specified on https://accounts.cloud.databricks.com/#aws
|
|
22
|
-
* const crossaccountRoleName = config.require("crossaccountRoleName");
|
|
23
|
-
* const assumeRoleForEc2 = aws.iam.getPolicyDocument({
|
|
24
|
-
* statements: [{
|
|
25
|
-
* effect: "Allow",
|
|
26
|
-
* actions: ["sts:AssumeRole"],
|
|
27
|
-
* principals: [{
|
|
28
|
-
* identifiers: ["ec2.amazonaws.com"],
|
|
29
|
-
* type: "Service",
|
|
30
|
-
* }],
|
|
31
|
-
* }],
|
|
32
|
-
* });
|
|
33
|
-
* const roleForS3Access = new aws.iam.Role("role_for_s3_access", {
|
|
34
|
-
* name: "shared-ec2-role-for-s3",
|
|
35
|
-
* description: "Role for shared access",
|
|
36
|
-
* assumeRolePolicy: assumeRoleForEc2.then(assumeRoleForEc2 => assumeRoleForEc2.json),
|
|
37
|
-
* });
|
|
38
|
-
* const passRoleForS3Access = aws.iam.getPolicyDocumentOutput({
|
|
39
|
-
* statements: [{
|
|
40
|
-
* effect: "Allow",
|
|
41
|
-
* actions: ["iam:PassRole"],
|
|
42
|
-
* resources: [roleForS3Access.arn],
|
|
43
|
-
* }],
|
|
44
|
-
* });
|
|
45
|
-
* const passRoleForS3AccessPolicy = new aws.iam.Policy("pass_role_for_s3_access", {
|
|
46
|
-
* name: "shared-pass-role-for-s3-access",
|
|
47
|
-
* path: "/",
|
|
48
|
-
* policy: passRoleForS3Access.apply(passRoleForS3Access => passRoleForS3Access.json),
|
|
49
|
-
* });
|
|
50
|
-
* const crossAccount = new aws.iam.RolePolicyAttachment("cross_account", {
|
|
51
|
-
* policyArn: passRoleForS3AccessPolicy.arn,
|
|
52
|
-
* role: crossaccountRoleName,
|
|
53
|
-
* });
|
|
54
|
-
* const shared = new aws.iam.InstanceProfile("shared", {
|
|
55
|
-
* name: "shared-instance-profile",
|
|
56
|
-
* role: roleForS3Access.name,
|
|
57
|
-
* });
|
|
58
|
-
* const sharedInstanceProfile = new databricks.InstanceProfile("shared", {instanceProfileArn: shared.arn});
|
|
59
|
-
* const latest = databricks.getSparkVersion({});
|
|
60
|
-
* const smallest = databricks.getNodeType({
|
|
61
|
-
* localDisk: true,
|
|
62
|
-
* });
|
|
63
|
-
* const _this = new databricks.Cluster("this", {
|
|
64
|
-
* clusterName: "Shared Autoscaling",
|
|
65
|
-
* sparkVersion: latest.then(latest => latest.id),
|
|
66
|
-
* nodeTypeId: smallest.then(smallest => smallest.id),
|
|
67
|
-
* autoterminationMinutes: 20,
|
|
68
|
-
* autoscale: {
|
|
69
|
-
* minWorkers: 1,
|
|
70
|
-
* maxWorkers: 50,
|
|
71
|
-
* },
|
|
72
|
-
* awsAttributes: {
|
|
73
|
-
* instanceProfileArn: sharedInstanceProfile.id,
|
|
74
|
-
* availability: "SPOT",
|
|
75
|
-
* zoneId: "us-east-1",
|
|
76
|
-
* firstOnDemand: 1,
|
|
77
|
-
* spotBidPricePercent: 100,
|
|
78
|
-
* },
|
|
79
|
-
* });
|
|
80
|
-
* ```
|
|
81
|
-
*
|
|
82
15
|
* ## Usage with Cluster Policies
|
|
83
16
|
*
|
|
84
17
|
* It is advised to keep all common configurations in Cluster Policies to maintain control of the environments launched, so `databricks.Cluster` above could be replaced with `databricks.ClusterPolicy`:
|
|
@@ -116,46 +49,6 @@ const utilities = require("./utilities");
|
|
|
116
49
|
* });
|
|
117
50
|
* ```
|
|
118
51
|
*
|
|
119
|
-
* ## Usage with Databricks SQL serverless
|
|
120
|
-
*
|
|
121
|
-
* When the instance profile ARN and its associated IAM role ARN don't match and the instance profile is intended for use with Databricks SQL serverless, the `iamRoleArn` parameter can be specified.
|
|
122
|
-
*
|
|
123
|
-
* ```typescript
|
|
124
|
-
* import * as pulumi from "@pulumi/pulumi";
|
|
125
|
-
* import * as aws from "@pulumi/aws";
|
|
126
|
-
* import * as databricks from "@pulumi/databricks";
|
|
127
|
-
*
|
|
128
|
-
* const sqlServerlessAssumeRole = aws.iam.getPolicyDocument({
|
|
129
|
-
* statements: [{
|
|
130
|
-
* actions: ["sts:AssumeRole"],
|
|
131
|
-
* principals: [{
|
|
132
|
-
* type: "AWS",
|
|
133
|
-
* identifiers: ["arn:aws:iam::790110701330:role/serverless-customer-resource-role"],
|
|
134
|
-
* }],
|
|
135
|
-
* conditions: [{
|
|
136
|
-
* test: "StringEquals",
|
|
137
|
-
* variable: "sts:ExternalID",
|
|
138
|
-
* values: [
|
|
139
|
-
* "databricks-serverless-<YOUR_WORKSPACE_ID1>",
|
|
140
|
-
* "databricks-serverless-<YOUR_WORKSPACE_ID2>",
|
|
141
|
-
* ],
|
|
142
|
-
* }],
|
|
143
|
-
* }],
|
|
144
|
-
* });
|
|
145
|
-
* const _this = new aws.iam.Role("this", {
|
|
146
|
-
* name: "my-databricks-sql-serverless-role",
|
|
147
|
-
* assumeRolePolicy: sqlServerlessAssumeRole.then(sqlServerlessAssumeRole => sqlServerlessAssumeRole.json),
|
|
148
|
-
* });
|
|
149
|
-
* const thisInstanceProfile = new aws.iam.InstanceProfile("this", {
|
|
150
|
-
* name: "my-databricks-sql-serverless-instance-profile",
|
|
151
|
-
* role: _this.name,
|
|
152
|
-
* });
|
|
153
|
-
* const thisInstanceProfile2 = new databricks.InstanceProfile("this", {
|
|
154
|
-
* instanceProfileArn: thisInstanceProfile.arn,
|
|
155
|
-
* iamRoleArn: _this.arn,
|
|
156
|
-
* });
|
|
157
|
-
* ```
|
|
158
|
-
*
|
|
159
52
|
* ## Import
|
|
160
53
|
*
|
|
161
54
|
* The resource instance profile can be imported using the ARN of it
|
package/instanceProfile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instanceProfile.js","sourceRoot":"","sources":["../instanceProfile.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC
|
|
1
|
+
{"version":3,"file":"instanceProfile.js","sourceRoot":"","sources":["../instanceProfile.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,MAAa,eAAgB,SAAQ,MAAM,CAAC,cAAc;IACtD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA4B,EAAE,IAAmC;QAC1H,OAAO,IAAI,eAAe,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,eAAe,CAAC,YAAY,CAAC;IAChE,CAAC;IA2BD,YAAY,IAAY,EAAE,WAAwD,EAAE,IAAmC;QACnH,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA+C,CAAC;YAC9D,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,oBAAoB,CAAC,GAAG,KAAK,EAAE,kBAAkB,CAAC;YACjE,cAAc,CAAC,uBAAuB,CAAC,GAAG,KAAK,EAAE,qBAAqB,CAAC;YACvE,cAAc,CAAC,gBAAgB,CAAC,GAAG,KAAK,EAAE,cAAc,CAAC;SAC5D;aAAM;YACH,MAAM,IAAI,GAAG,WAA8C,CAAC;YAC5D,IAAI,IAAI,EAAE,kBAAkB,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;aACrE;YACD,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,oBAAoB,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC;YAChE,cAAc,CAAC,uBAAuB,CAAC,GAAG,IAAI,EAAE,qBAAqB,CAAC;YACtE,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC;SAC3D;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;;AA1EL,0CA2EC;AA7DG,gBAAgB;AACO,4BAAY,GAAG,kDAAkD,CAAC"}
|
package/metastore.d.ts
CHANGED
|
@@ -31,6 +31,49 @@ import * as pulumi from "@pulumi/pulumi";
|
|
|
31
31
|
*
|
|
32
32
|
* For Azure
|
|
33
33
|
*
|
|
34
|
+
* ```typescript
|
|
35
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
36
|
+
* import * as databricks from "@pulumi/databricks";
|
|
37
|
+
* import * as std from "@pulumi/std";
|
|
38
|
+
*
|
|
39
|
+
* const _this = new databricks.Metastore("this", {
|
|
40
|
+
* name: "primary",
|
|
41
|
+
* storageRoot: std.format({
|
|
42
|
+
* input: "abfss://%s@%s.dfs.core.windows.net/",
|
|
43
|
+
* args: [
|
|
44
|
+
* unityCatalog.name,
|
|
45
|
+
* unityCatalogAzurermStorageAccount.name,
|
|
46
|
+
* ],
|
|
47
|
+
* }).then(invoke => invoke.result),
|
|
48
|
+
* owner: "uc admins",
|
|
49
|
+
* region: "eastus",
|
|
50
|
+
* forceDestroy: true,
|
|
51
|
+
* });
|
|
52
|
+
* const thisMetastoreAssignment = new databricks.MetastoreAssignment("this", {
|
|
53
|
+
* metastoreId: _this.id,
|
|
54
|
+
* workspaceId: workspaceId,
|
|
55
|
+
* });
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* For GCP
|
|
59
|
+
*
|
|
60
|
+
* ```typescript
|
|
61
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
62
|
+
* import * as databricks from "@pulumi/databricks";
|
|
63
|
+
*
|
|
64
|
+
* const _this = new databricks.Metastore("this", {
|
|
65
|
+
* name: "primary",
|
|
66
|
+
* storageRoot: `gs://${unityMetastore.name}`,
|
|
67
|
+
* owner: "uc admins",
|
|
68
|
+
* region: us_east1,
|
|
69
|
+
* forceDestroy: true,
|
|
70
|
+
* });
|
|
71
|
+
* const thisMetastoreAssignment = new databricks.MetastoreAssignment("this", {
|
|
72
|
+
* metastoreId: _this.id,
|
|
73
|
+
* workspaceId: workspaceId,
|
|
74
|
+
* });
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
34
77
|
* ## Import
|
|
35
78
|
*
|
|
36
79
|
* This resource can be imported by ID:
|
|
@@ -104,7 +147,7 @@ export declare class Metastore extends pulumi.CustomResource {
|
|
|
104
147
|
*/
|
|
105
148
|
readonly region: pulumi.Output<string>;
|
|
106
149
|
/**
|
|
107
|
-
* Path on cloud storage account, where managed `databricks.Table` are stored. Change forces creation of a new resource. If no `storageRoot` is defined for the metastore, each catalog must have a `storageRoot` defined.
|
|
150
|
+
* Path on cloud storage account, where managed `databricks.Table` are stored. If the URL contains special characters, such as space, `&`, etc., they should be percent-encoded (space > `%20`, etc.). Change forces creation of a new resource. If no `storageRoot` is defined for the metastore, each catalog must have a `storageRoot` defined.
|
|
108
151
|
*/
|
|
109
152
|
readonly storageRoot: pulumi.Output<string | undefined>;
|
|
110
153
|
readonly storageRootCredentialId: pulumi.Output<string | undefined>;
|
|
@@ -158,7 +201,7 @@ export interface MetastoreState {
|
|
|
158
201
|
*/
|
|
159
202
|
region?: pulumi.Input<string>;
|
|
160
203
|
/**
|
|
161
|
-
* Path on cloud storage account, where managed `databricks.Table` are stored. Change forces creation of a new resource. If no `storageRoot` is defined for the metastore, each catalog must have a `storageRoot` defined.
|
|
204
|
+
* Path on cloud storage account, where managed `databricks.Table` are stored. If the URL contains special characters, such as space, `&`, etc., they should be percent-encoded (space > `%20`, etc.). Change forces creation of a new resource. If no `storageRoot` is defined for the metastore, each catalog must have a `storageRoot` defined.
|
|
162
205
|
*/
|
|
163
206
|
storageRoot?: pulumi.Input<string>;
|
|
164
207
|
storageRootCredentialId?: pulumi.Input<string>;
|
|
@@ -204,7 +247,7 @@ export interface MetastoreArgs {
|
|
|
204
247
|
*/
|
|
205
248
|
region?: pulumi.Input<string>;
|
|
206
249
|
/**
|
|
207
|
-
* Path on cloud storage account, where managed `databricks.Table` are stored. Change forces creation of a new resource. If no `storageRoot` is defined for the metastore, each catalog must have a `storageRoot` defined.
|
|
250
|
+
* Path on cloud storage account, where managed `databricks.Table` are stored. If the URL contains special characters, such as space, `&`, etc., they should be percent-encoded (space > `%20`, etc.). Change forces creation of a new resource. If no `storageRoot` is defined for the metastore, each catalog must have a `storageRoot` defined.
|
|
208
251
|
*/
|
|
209
252
|
storageRoot?: pulumi.Input<string>;
|
|
210
253
|
storageRootCredentialId?: pulumi.Input<string>;
|
package/metastore.js
CHANGED
|
@@ -37,6 +37,49 @@ const utilities = require("./utilities");
|
|
|
37
37
|
*
|
|
38
38
|
* For Azure
|
|
39
39
|
*
|
|
40
|
+
* ```typescript
|
|
41
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
42
|
+
* import * as databricks from "@pulumi/databricks";
|
|
43
|
+
* import * as std from "@pulumi/std";
|
|
44
|
+
*
|
|
45
|
+
* const _this = new databricks.Metastore("this", {
|
|
46
|
+
* name: "primary",
|
|
47
|
+
* storageRoot: std.format({
|
|
48
|
+
* input: "abfss://%s@%s.dfs.core.windows.net/",
|
|
49
|
+
* args: [
|
|
50
|
+
* unityCatalog.name,
|
|
51
|
+
* unityCatalogAzurermStorageAccount.name,
|
|
52
|
+
* ],
|
|
53
|
+
* }).then(invoke => invoke.result),
|
|
54
|
+
* owner: "uc admins",
|
|
55
|
+
* region: "eastus",
|
|
56
|
+
* forceDestroy: true,
|
|
57
|
+
* });
|
|
58
|
+
* const thisMetastoreAssignment = new databricks.MetastoreAssignment("this", {
|
|
59
|
+
* metastoreId: _this.id,
|
|
60
|
+
* workspaceId: workspaceId,
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* For GCP
|
|
65
|
+
*
|
|
66
|
+
* ```typescript
|
|
67
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
68
|
+
* import * as databricks from "@pulumi/databricks";
|
|
69
|
+
*
|
|
70
|
+
* const _this = new databricks.Metastore("this", {
|
|
71
|
+
* name: "primary",
|
|
72
|
+
* storageRoot: `gs://${unityMetastore.name}`,
|
|
73
|
+
* owner: "uc admins",
|
|
74
|
+
* region: us_east1,
|
|
75
|
+
* forceDestroy: true,
|
|
76
|
+
* });
|
|
77
|
+
* const thisMetastoreAssignment = new databricks.MetastoreAssignment("this", {
|
|
78
|
+
* metastoreId: _this.id,
|
|
79
|
+
* workspaceId: workspaceId,
|
|
80
|
+
* });
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
40
83
|
* ## Import
|
|
41
84
|
*
|
|
42
85
|
* This resource can be imported by ID:
|
package/metastore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metastore.js","sourceRoot":"","sources":["../metastore.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC
|
|
1
|
+
{"version":3,"file":"metastore.js","sourceRoot":"","sources":["../metastore.ts"],"names":[],"mappings":"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"}
|
package/metastoreDataAccess.d.ts
CHANGED
|
@@ -33,6 +33,34 @@ import * as outputs from "./types/output";
|
|
|
33
33
|
*
|
|
34
34
|
* For Azure using managed identity as credential (recommended)
|
|
35
35
|
*
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
38
|
+
* import * as databricks from "@pulumi/databricks";
|
|
39
|
+
* import * as std from "@pulumi/std";
|
|
40
|
+
*
|
|
41
|
+
* const _this = new databricks.Metastore("this", {
|
|
42
|
+
* name: "primary",
|
|
43
|
+
* storageRoot: std.format({
|
|
44
|
+
* input: "abfss://%s@%s.dfs.core.windows.net/",
|
|
45
|
+
* args: [
|
|
46
|
+
* unityCatalog.name,
|
|
47
|
+
* unityCatalogAzurermStorageAccount.name,
|
|
48
|
+
* ],
|
|
49
|
+
* }).then(invoke => invoke.result),
|
|
50
|
+
* owner: "uc admins",
|
|
51
|
+
* region: "eastus",
|
|
52
|
+
* forceDestroy: true,
|
|
53
|
+
* });
|
|
54
|
+
* const thisMetastoreDataAccess = new databricks.MetastoreDataAccess("this", {
|
|
55
|
+
* metastoreId: _this.id,
|
|
56
|
+
* name: "mi_dac",
|
|
57
|
+
* azureManagedIdentity: {
|
|
58
|
+
* accessConnectorId: accessConnectorId,
|
|
59
|
+
* },
|
|
60
|
+
* isDefault: true,
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
36
64
|
* ## Import
|
|
37
65
|
*
|
|
38
66
|
* This resource can be imported by combination of metastore id and the data access name.
|