@pulumi/databricks 1.48.0-alpha.1721971593 → 1.48.0-alpha.1722058383

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.
Files changed (150) hide show
  1. package/artifactAllowlist.d.ts +7 -0
  2. package/artifactAllowlist.js +7 -0
  3. package/artifactAllowlist.js.map +1 -1
  4. package/catalog.d.ts +6 -0
  5. package/catalog.js +6 -0
  6. package/catalog.js.map +1 -1
  7. package/catalogWorkspaceBinding.d.ts +12 -0
  8. package/catalogWorkspaceBinding.js +12 -0
  9. package/catalogWorkspaceBinding.js.map +1 -1
  10. package/cluster.d.ts +9 -0
  11. package/cluster.js.map +1 -1
  12. package/dashboard.d.ts +24 -0
  13. package/dashboard.js +24 -0
  14. package/dashboard.js.map +1 -1
  15. package/dbfsFile.d.ts +11 -0
  16. package/dbfsFile.js +2 -0
  17. package/dbfsFile.js.map +1 -1
  18. package/directory.d.ts +38 -0
  19. package/directory.js +29 -0
  20. package/directory.js.map +1 -1
  21. package/file.d.ts +69 -0
  22. package/file.js +69 -0
  23. package/file.js.map +1 -1
  24. package/getCatalog.d.ts +12 -0
  25. package/getCatalog.js +12 -0
  26. package/getCatalog.js.map +1 -1
  27. package/getCatalogs.d.ts +12 -0
  28. package/getCatalogs.js +12 -0
  29. package/getCatalogs.js.map +1 -1
  30. package/getClusters.d.ts +8 -0
  31. package/getClusters.js +8 -0
  32. package/getClusters.js.map +1 -1
  33. package/getCurrentUser.d.ts +4 -4
  34. package/getCurrentUser.js +4 -4
  35. package/getExternalLocation.d.ts +8 -0
  36. package/getExternalLocation.js +8 -0
  37. package/getExternalLocation.js.map +1 -1
  38. package/getExternalLocations.d.ts +8 -0
  39. package/getExternalLocations.js +8 -0
  40. package/getExternalLocations.js.map +1 -1
  41. package/getJobs.d.ts +12 -0
  42. package/getJobs.js +12 -0
  43. package/getJobs.js.map +1 -1
  44. package/getMetastore.d.ts +12 -0
  45. package/getMetastore.js +12 -0
  46. package/getMetastore.js.map +1 -1
  47. package/getMetastores.d.ts +12 -0
  48. package/getMetastores.js +12 -0
  49. package/getMetastores.js.map +1 -1
  50. package/getSchema.d.ts +4 -6
  51. package/getSchema.js +4 -6
  52. package/getSchema.js.map +1 -1
  53. package/getSchemas.d.ts +12 -0
  54. package/getSchemas.js +12 -0
  55. package/getSchemas.js.map +1 -1
  56. package/getShare.d.ts +4 -0
  57. package/getShare.js +4 -0
  58. package/getShare.js.map +1 -1
  59. package/getShares.d.ts +4 -0
  60. package/getShares.js +4 -0
  61. package/getShares.js.map +1 -1
  62. package/getSqlWarehouses.d.ts +8 -0
  63. package/getSqlWarehouses.js +8 -0
  64. package/getSqlWarehouses.js.map +1 -1
  65. package/getStorageCredential.d.ts +8 -0
  66. package/getStorageCredential.js +8 -0
  67. package/getStorageCredential.js.map +1 -1
  68. package/getStorageCredentials.d.ts +8 -0
  69. package/getStorageCredentials.js +8 -0
  70. package/getStorageCredentials.js.map +1 -1
  71. package/getTable.d.ts +12 -0
  72. package/getTable.js +12 -0
  73. package/getTable.js.map +1 -1
  74. package/getTables.d.ts +12 -0
  75. package/getTables.js +12 -0
  76. package/getTables.js.map +1 -1
  77. package/getViews.d.ts +4 -4
  78. package/getViews.js +4 -4
  79. package/getVolume.d.ts +4 -6
  80. package/getVolume.js +4 -6
  81. package/getVolume.js.map +1 -1
  82. package/getVolumes.d.ts +8 -0
  83. package/getVolumes.js +8 -0
  84. package/getVolumes.js.map +1 -1
  85. package/gitCredential.d.ts +23 -0
  86. package/gitCredential.js +23 -0
  87. package/gitCredential.js.map +1 -1
  88. package/globalInitScript.d.ts +11 -0
  89. package/globalInitScript.js +2 -0
  90. package/globalInitScript.js.map +1 -1
  91. package/grant.d.ts +396 -0
  92. package/grant.js +396 -0
  93. package/grant.js.map +1 -1
  94. package/grants.d.ts +433 -0
  95. package/grants.js +433 -0
  96. package/grants.js.map +1 -1
  97. package/group.d.ts +9 -0
  98. package/group.js.map +1 -1
  99. package/job.d.ts +69 -0
  100. package/job.js +69 -0
  101. package/job.js.map +1 -1
  102. package/mlflowWebhook.d.ts +1 -1
  103. package/mlflowWebhook.js +1 -1
  104. package/mwsCustomerManagedKeys.d.ts +9 -0
  105. package/mwsCustomerManagedKeys.js +9 -0
  106. package/mwsCustomerManagedKeys.js.map +1 -1
  107. package/mwsVpcEndpoint.d.ts +192 -0
  108. package/mwsVpcEndpoint.js +192 -0
  109. package/mwsVpcEndpoint.js.map +1 -1
  110. package/notebook.d.ts +11 -0
  111. package/notebook.js +2 -0
  112. package/notebook.js.map +1 -1
  113. package/oboToken.d.ts +64 -0
  114. package/oboToken.js +64 -0
  115. package/oboToken.js.map +1 -1
  116. package/package.json +2 -2
  117. package/permissionAssignment.d.ts +9 -0
  118. package/permissionAssignment.js.map +1 -1
  119. package/permissions.d.ts +684 -18
  120. package/permissions.js +684 -18
  121. package/permissions.js.map +1 -1
  122. package/repo.d.ts +32 -0
  123. package/repo.js +32 -0
  124. package/repo.js.map +1 -1
  125. package/servicePrincipal.d.ts +9 -0
  126. package/servicePrincipal.js.map +1 -1
  127. package/servicePrincipalSecret.d.ts +8 -0
  128. package/servicePrincipalSecret.js +8 -0
  129. package/servicePrincipalSecret.js.map +1 -1
  130. package/share.d.ts +93 -0
  131. package/share.js +93 -0
  132. package/share.js.map +1 -1
  133. package/sqlPermissions.d.ts +15 -3
  134. package/sqlPermissions.js +15 -3
  135. package/sqlPermissions.js.map +1 -1
  136. package/token.d.ts +2 -2
  137. package/token.js +2 -2
  138. package/types/input.d.ts +16 -0
  139. package/types/output.d.ts +16 -0
  140. package/user.d.ts +9 -0
  141. package/user.js.map +1 -1
  142. package/workspaceBinding.d.ts +12 -0
  143. package/workspaceBinding.js +12 -0
  144. package/workspaceBinding.js.map +1 -1
  145. package/workspaceConf.d.ts +4 -0
  146. package/workspaceConf.js +4 -0
  147. package/workspaceConf.js.map +1 -1
  148. package/workspaceFile.d.ts +11 -0
  149. package/workspaceFile.js +2 -0
  150. package/workspaceFile.js.map +1 -1
package/grant.js CHANGED
@@ -6,6 +6,402 @@ exports.Grant = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("./utilities");
8
8
  /**
9
+ * > **Note**
10
+ * This article refers to the privileges and inheritance model in Privilege Model version 1.0. If you created your metastore during the public preview (before August 25, 2022), you can upgrade to Privilege Model version 1.0 following [Upgrade to privilege inheritance](https://docs.databricks.com/data-governance/unity-catalog/hive-metastore.html)
11
+ *
12
+ * > **Note**
13
+ * Unity Catalog APIs are accessible via **workspace-level APIs**. This design may change in the future. Account-level principal grants can be assigned with any valid workspace as the Unity Catalog is decoupled from specific workspaces. More information in [the official documentation](https://docs.databricks.com/data-governance/unity-catalog/index.html).
14
+ *
15
+ * In Unity Catalog all users initially have no access to data. Only Metastore Admins can create objects and can grant/revoke access on individual objects to users and groups. Every securable object in Unity Catalog has an owner. The owner can be any account-level user or group, called principals in general. The principal that creates an object becomes its owner. Owners receive `ALL_PRIVILEGES` on the securable object (e.g., `SELECT` and `MODIFY` on a table), as well as the permission to grant privileges to other principals.
16
+ *
17
+ * Securable objects are hierarchical and privileges are inherited downward. The highest level object that privileges are inherited from is the catalog. This means that granting a privilege on a catalog or schema automatically grants the privilege to all current and future objects within the catalog or schema. Privileges that are granted on a metastore are not inherited.
18
+ *
19
+ * Every `databricks.Grant` resource must have exactly one securable identifier and the following arguments:
20
+ *
21
+ * - `principal` - User name, group name or service principal application ID.
22
+ * - `privileges` - One or more privileges that are specific to a securable type.
23
+ *
24
+ * For the latest list of privilege types that apply to each securable object in Unity Catalog, please refer to the [official documentation](https://docs.databricks.com/en/data-governance/unity-catalog/manage-privileges/privileges.html#privilege-types-by-securable-object-in-unity-catalog)
25
+ *
26
+ * Pulumi will handle any configuration drift for the specified principal on every `pulumi up` run, even when grants are changed outside of Pulumi state.
27
+ *
28
+ * See databricks.Grants for the list of privilege types that apply to each securable object.
29
+ *
30
+ * ## Metastore grants
31
+ *
32
+ * See databricks.Grants Metastore grants for the list of privileges that apply to Metastores.
33
+ *
34
+ * ```typescript
35
+ * import * as pulumi from "@pulumi/pulumi";
36
+ * import * as databricks from "@pulumi/databricks";
37
+ *
38
+ * const sandboxDataEngineers = new databricks.Grant("sandbox_data_engineers", {
39
+ * principal: "Data Engineers",
40
+ * privileges: [
41
+ * "CREATE_CATALOG",
42
+ * "CREATE_EXTERNAL_LOCATION",
43
+ * ],
44
+ * });
45
+ * const sandboxDataSharer = new databricks.Grant("sandbox_data_sharer", {
46
+ * principal: "Data Sharer",
47
+ * privileges: [
48
+ * "CREATE_RECIPIENT",
49
+ * "CREATE_SHARE",
50
+ * ],
51
+ * });
52
+ * ```
53
+ *
54
+ * ## Catalog grants
55
+ *
56
+ * See databricks.Grants Catalog grants for the list of privileges that apply to Catalogs.
57
+ *
58
+ * ```typescript
59
+ * import * as pulumi from "@pulumi/pulumi";
60
+ * import * as databricks from "@pulumi/databricks";
61
+ *
62
+ * const sandbox = new databricks.Catalog("sandbox", {
63
+ * metastoreId: _this.id,
64
+ * name: "sandbox",
65
+ * comment: "this catalog is managed by terraform",
66
+ * properties: {
67
+ * purpose: "testing",
68
+ * },
69
+ * });
70
+ * const sandboxDataScientists = new databricks.Grant("sandbox_data_scientists", {
71
+ * catalog: sandbox.name,
72
+ * principal: "Data Scientists",
73
+ * privileges: [
74
+ * "USE_CATALOG",
75
+ * "USE_SCHEMA",
76
+ * "CREATE_TABLE",
77
+ * "SELECT",
78
+ * ],
79
+ * });
80
+ * const sandboxDataEngineers = new databricks.Grant("sandbox_data_engineers", {
81
+ * catalog: sandbox.name,
82
+ * principal: "Data Engineers",
83
+ * privileges: [
84
+ * "USE_CATALOG",
85
+ * "USE_SCHEMA",
86
+ * "CREATE_SCHEMA",
87
+ * "CREATE_TABLE",
88
+ * "MODIFY",
89
+ * ],
90
+ * });
91
+ * const sandboxDataAnalyst = new databricks.Grant("sandbox_data_analyst", {
92
+ * catalog: sandbox.name,
93
+ * principal: "Data Analyst",
94
+ * privileges: [
95
+ * "USE_CATALOG",
96
+ * "USE_SCHEMA",
97
+ * "SELECT",
98
+ * ],
99
+ * });
100
+ * ```
101
+ *
102
+ * ## Schema grants
103
+ *
104
+ * See databricks.Grants Schema grants for the list of privileges that apply to Schemas.
105
+ *
106
+ * ```typescript
107
+ * import * as pulumi from "@pulumi/pulumi";
108
+ * import * as databricks from "@pulumi/databricks";
109
+ *
110
+ * const things = new databricks.Schema("things", {
111
+ * catalogName: sandbox.id,
112
+ * name: "things",
113
+ * comment: "this schema is managed by terraform",
114
+ * properties: {
115
+ * kind: "various",
116
+ * },
117
+ * });
118
+ * const thingsGrant = new databricks.Grant("things", {
119
+ * schema: things.id,
120
+ * principal: "Data Engineers",
121
+ * privileges: [
122
+ * "USE_SCHEMA",
123
+ * "MODIFY",
124
+ * ],
125
+ * });
126
+ * ```
127
+ *
128
+ * ## Table grants
129
+ *
130
+ * See databricks.Grants Table grants for the list of privileges that apply to Tables.
131
+ *
132
+ * ```typescript
133
+ * import * as pulumi from "@pulumi/pulumi";
134
+ * import * as databricks from "@pulumi/databricks";
135
+ *
136
+ * const customersDataEngineers = new databricks.Grant("customers_data_engineers", {
137
+ * table: "main.reporting.customers",
138
+ * principal: "Data Engineers",
139
+ * privileges: [
140
+ * "MODIFY",
141
+ * "SELECT",
142
+ * ],
143
+ * });
144
+ * const customersDataAnalysts = new databricks.Grant("customers_data_analysts", {
145
+ * table: "main.reporting.customers",
146
+ * principal: "Data Analysts",
147
+ * privileges: ["SELECT"],
148
+ * });
149
+ * ```
150
+ *
151
+ * You can also apply grants dynamically with databricks.getTables data resource:
152
+ *
153
+ * ```typescript
154
+ * import * as pulumi from "@pulumi/pulumi";
155
+ * import * as databricks from "@pulumi/databricks";
156
+ *
157
+ * export = async () => {
158
+ * const things = await databricks.getTables({
159
+ * catalogName: "sandbox",
160
+ * schemaName: "things",
161
+ * });
162
+ * const thingsGrant: databricks.Grant[] = [];
163
+ * for (const range of things.ids.map((v, k) => ({key: k, value: v}))) {
164
+ * thingsGrant.push(new databricks.Grant(`things-${range.key}`, {
165
+ * table: range.value,
166
+ * principal: "sensitive",
167
+ * privileges: [
168
+ * "SELECT",
169
+ * "MODIFY",
170
+ * ],
171
+ * }));
172
+ * }
173
+ * }
174
+ * ```
175
+ *
176
+ * ## View grants
177
+ *
178
+ * See databricks.Grants View grants for the list of privileges that apply to Views.
179
+ *
180
+ * ```typescript
181
+ * import * as pulumi from "@pulumi/pulumi";
182
+ * import * as databricks from "@pulumi/databricks";
183
+ *
184
+ * const customer360 = new databricks.Grant("customer360", {
185
+ * table: "main.reporting.customer360",
186
+ * principal: "Data Analysts",
187
+ * privileges: ["SELECT"],
188
+ * });
189
+ * ```
190
+ *
191
+ * You can also apply grants dynamically with databricks.getViews data resource:
192
+ *
193
+ * ```typescript
194
+ * import * as pulumi from "@pulumi/pulumi";
195
+ * import * as databricks from "@pulumi/databricks";
196
+ *
197
+ * export = async () => {
198
+ * const customers = await databricks.getViews({
199
+ * catalogName: "main",
200
+ * schemaName: "customers",
201
+ * });
202
+ * const customersGrant: databricks.Grant[] = [];
203
+ * for (const range of customers.ids.map((v, k) => ({key: k, value: v}))) {
204
+ * customersGrant.push(new databricks.Grant(`customers-${range.key}`, {
205
+ * table: range.value,
206
+ * principal: "sensitive",
207
+ * privileges: [
208
+ * "SELECT",
209
+ * "MODIFY",
210
+ * ],
211
+ * }));
212
+ * }
213
+ * }
214
+ * ```
215
+ *
216
+ * ## Volume grants
217
+ *
218
+ * See databricks.Grants Volume grants for the list of privileges that apply to Volumes.
219
+ *
220
+ * ```typescript
221
+ * import * as pulumi from "@pulumi/pulumi";
222
+ * import * as databricks from "@pulumi/databricks";
223
+ *
224
+ * const _this = new databricks.Volume("this", {
225
+ * name: "quickstart_volume",
226
+ * catalogName: sandbox.name,
227
+ * schemaName: things.name,
228
+ * volumeType: "EXTERNAL",
229
+ * storageLocation: some.url,
230
+ * comment: "this volume is managed by terraform",
231
+ * });
232
+ * const volume = new databricks.Grant("volume", {
233
+ * volume: _this.id,
234
+ * principal: "Data Engineers",
235
+ * privileges: ["WRITE_VOLUME"],
236
+ * });
237
+ * ```
238
+ *
239
+ * ## Registered model grants
240
+ *
241
+ * See databricks.Grants Registered model grants for the list of privileges that apply to Registered models.
242
+ *
243
+ * ```typescript
244
+ * import * as pulumi from "@pulumi/pulumi";
245
+ * import * as databricks from "@pulumi/databricks";
246
+ *
247
+ * const customersDataEngineers = new databricks.Grant("customers_data_engineers", {
248
+ * model: "main.reporting.customer_model",
249
+ * principal: "Data Engineers",
250
+ * privileges: [
251
+ * "APPLY_TAG",
252
+ * "EXECUTE",
253
+ * ],
254
+ * });
255
+ * const customersDataAnalysts = new databricks.Grant("customers_data_analysts", {
256
+ * model: "main.reporting.customer_model",
257
+ * principal: "Data Analysts",
258
+ * privileges: ["EXECUTE"],
259
+ * });
260
+ * ```
261
+ *
262
+ * ## Function grants
263
+ *
264
+ * See databricks.Grants Function grants for the list of privileges that apply to Registered models.
265
+ *
266
+ * ```typescript
267
+ * import * as pulumi from "@pulumi/pulumi";
268
+ * import * as databricks from "@pulumi/databricks";
269
+ *
270
+ * const udfDataEngineers = new databricks.Grant("udf_data_engineers", {
271
+ * "function": "main.reporting.udf",
272
+ * principal: "Data Engineers",
273
+ * privileges: ["EXECUTE"],
274
+ * });
275
+ * const udfDataAnalysts = new databricks.Grant("udf_data_analysts", {
276
+ * "function": "main.reporting.udf",
277
+ * principal: "Data Analysts",
278
+ * privileges: ["EXECUTE"],
279
+ * });
280
+ * ```
281
+ *
282
+ * ## Storage credential grants
283
+ *
284
+ * See databricks.Grants Storage credential grants for the list of privileges that apply to Storage credentials.
285
+ *
286
+ * ```typescript
287
+ * import * as pulumi from "@pulumi/pulumi";
288
+ * import * as databricks from "@pulumi/databricks";
289
+ *
290
+ * const external = new databricks.StorageCredential("external", {
291
+ * name: externalDataAccess.name,
292
+ * awsIamRole: {
293
+ * roleArn: externalDataAccess.arn,
294
+ * },
295
+ * comment: "Managed by TF",
296
+ * });
297
+ * const externalCreds = new databricks.Grant("external_creds", {
298
+ * storageCredential: external.id,
299
+ * principal: "Data Engineers",
300
+ * privileges: ["CREATE_EXTERNAL_TABLE"],
301
+ * });
302
+ * ```
303
+ *
304
+ * ## External location grants
305
+ *
306
+ * See databricks.Grants External location grants for the list of privileges that apply to External locations.
307
+ *
308
+ * ```typescript
309
+ * import * as pulumi from "@pulumi/pulumi";
310
+ * import * as databricks from "@pulumi/databricks";
311
+ *
312
+ * const some = new databricks.ExternalLocation("some", {
313
+ * name: "external",
314
+ * url: `s3://${externalAwsS3Bucket.id}/some`,
315
+ * credentialName: external.id,
316
+ * comment: "Managed by TF",
317
+ * });
318
+ * const someDataEngineers = new databricks.Grant("some_data_engineers", {
319
+ * externalLocation: some.id,
320
+ * principal: "Data Engineers",
321
+ * privileges: [
322
+ * "CREATE_EXTERNAL_TABLE",
323
+ * "READ_FILES",
324
+ * ],
325
+ * });
326
+ * const someServicePrincipal = new databricks.Grant("some_service_principal", {
327
+ * externalLocation: some.id,
328
+ * principal: mySp.applicationId,
329
+ * privileges: [
330
+ * "USE_SCHEMA",
331
+ * "MODIFY",
332
+ * ],
333
+ * });
334
+ * const someGroup = new databricks.Grant("some_group", {
335
+ * externalLocation: some.id,
336
+ * principal: myGroup.displayName,
337
+ * privileges: [
338
+ * "USE_SCHEMA",
339
+ * "MODIFY",
340
+ * ],
341
+ * });
342
+ * const someUser = new databricks.Grant("some_user", {
343
+ * externalLocation: some.id,
344
+ * principal: myUser.userName,
345
+ * privileges: [
346
+ * "USE_SCHEMA",
347
+ * "MODIFY",
348
+ * ],
349
+ * });
350
+ * ```
351
+ *
352
+ * ## Connection grants
353
+ *
354
+ * See databricks.Grants Connection grants for the list of privileges that apply to Connections.
355
+ *
356
+ * ```typescript
357
+ * import * as pulumi from "@pulumi/pulumi";
358
+ * import * as databricks from "@pulumi/databricks";
359
+ *
360
+ * const mysql = new databricks.Connection("mysql", {
361
+ * name: "mysql_connection",
362
+ * connectionType: "MYSQL",
363
+ * comment: "this is a connection to mysql db",
364
+ * options: {
365
+ * host: "test.mysql.database.azure.com",
366
+ * port: "3306",
367
+ * user: "user",
368
+ * password: "password",
369
+ * },
370
+ * properties: {
371
+ * purpose: "testing",
372
+ * },
373
+ * });
374
+ * const some = new databricks.Grant("some", {
375
+ * foreignConnection: mysql.name,
376
+ * principal: "Data Engineers",
377
+ * privileges: [
378
+ * "CREATE_FOREIGN_CATALOG",
379
+ * "USE_CONNECTION",
380
+ * ],
381
+ * });
382
+ * ```
383
+ *
384
+ * ## Delta Sharing share grants
385
+ *
386
+ * See databricks.Grants Delta Sharing share grants for the list of privileges that apply to Delta Sharing shares.
387
+ *
388
+ * ```typescript
389
+ * import * as pulumi from "@pulumi/pulumi";
390
+ * import * as databricks from "@pulumi/databricks";
391
+ *
392
+ * const some = new databricks.Share("some", {name: "my_share"});
393
+ * const someRecipient = new databricks.Recipient("some", {name: "my_recipient"});
394
+ * const someGrant = new databricks.Grant("some", {
395
+ * share: some.name,
396
+ * principal: someRecipient.name,
397
+ * privileges: ["SELECT"],
398
+ * });
399
+ * ```
400
+ *
401
+ * ## Other access control
402
+ *
403
+ * You can control Databricks General Permissions through databricks.Permissions resource.
404
+ *
9
405
  * ## Import
10
406
  *
11
407
  * The resource can be imported using combination of securable type (`table`, `catalog`, `foreign_connection`, ...), it's name and `principal`:
package/grant.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"grant.js","sourceRoot":"","sources":["../grant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grant.js","sourceRoot":"","sources":["../grant.ts"],"names":[],"mappings":"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"}