@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/grants.d.ts CHANGED
@@ -2,6 +2,439 @@ import * as pulumi from "@pulumi/pulumi";
2
2
  import * as inputs from "./types/input";
3
3
  import * as outputs from "./types/output";
4
4
  /**
5
+ * > **Note**
6
+ * 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)
7
+ *
8
+ * > **Note**
9
+ * 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).
10
+ *
11
+ * Two different resources help you manage your Unity Catalog grants for a securable. Each of these resources serves a different use case:
12
+ *
13
+ * - databricks_grants: Authoritative. Sets the grants of a securable and replaces any existing grants defined inside or outside of Pulumi.
14
+ * - databricks_grant: Authoritative for a given principal. Updates the grants of a securable to a single principal. Other principals within the grants for the securables are preserved.
15
+ *
16
+ * 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.
17
+ *
18
+ * 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.
19
+ *
20
+ * Every `databricks.Grants` resource must have exactly one securable identifier and one or more `grant` blocks with the following arguments:
21
+ *
22
+ * - `principal` - User name, group name or service principal application ID.
23
+ * - `privileges` - One or more privileges that are specific to a securable type.
24
+ *
25
+ * 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)
26
+ *
27
+ * Pulumi will handle any configuration drift on every `pulumi up` run, even when grants are changed outside of Pulumi state.
28
+ *
29
+ * Unlike the [SQL specification](https://docs.databricks.com/sql/language-manual/sql-ref-privileges.html#privilege-types), all privileges to be written with underscore instead of space, e.g. `CREATE_TABLE` and not `CREATE TABLE`. Below summarizes which privilege types apply to each securable object in the catalog:
30
+ *
31
+ * ## Metastore grants
32
+ *
33
+ * You can grant `CREATE_CATALOG`, `CREATE_CONNECTION`, `CREATE_EXTERNAL_LOCATION`, `CREATE_PROVIDER`, `CREATE_RECIPIENT`, `CREATE_SHARE`, `CREATE_STORAGE_CREDENTIAL`, `MANAGE_ALLOWLIST`, `SET_SHARE_PERMISSION`, `USE_MARKETPLACE_ASSETS`, `USE_CONNECTION`, `USE_PROVIDER`, `USE_RECIPIENT` and `USE_SHARE` privileges to databricks.Metastore assigned to the workspace.
34
+ *
35
+ * ```typescript
36
+ * import * as pulumi from "@pulumi/pulumi";
37
+ * import * as databricks from "@pulumi/databricks";
38
+ *
39
+ * const sandbox = new databricks.Grants("sandbox", {
40
+ * metastore: "metastore_id",
41
+ * grants: [
42
+ * {
43
+ * principal: "Data Engineers",
44
+ * privileges: [
45
+ * "CREATE_CATALOG",
46
+ * "CREATE_EXTERNAL_LOCATION",
47
+ * ],
48
+ * },
49
+ * {
50
+ * principal: "Data Sharer",
51
+ * privileges: [
52
+ * "CREATE_RECIPIENT",
53
+ * "CREATE_SHARE",
54
+ * ],
55
+ * },
56
+ * ],
57
+ * });
58
+ * ```
59
+ *
60
+ * ## Catalog grants
61
+ *
62
+ * You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `CREATE_CONNECTION`, `CREATE_SCHEMA`, `USE_CATALOG` privileges to databricks.Catalog specified in the `catalog` attribute. You can also grant `CREATE_FUNCTION`, `CREATE_TABLE`, `CREATE_VOLUME`, `EXECUTE`, `MODIFY`, `REFRESH`, `SELECT`, `READ_VOLUME`, `WRITE_VOLUME` and `USE_SCHEMA` at the catalog level to apply them to the pertinent current and future securable objects within the catalog:
63
+ *
64
+ * ```typescript
65
+ * import * as pulumi from "@pulumi/pulumi";
66
+ * import * as databricks from "@pulumi/databricks";
67
+ *
68
+ * const sandbox = new databricks.Catalog("sandbox", {
69
+ * name: "sandbox",
70
+ * comment: "this catalog is managed by terraform",
71
+ * properties: {
72
+ * purpose: "testing",
73
+ * },
74
+ * });
75
+ * const sandboxGrants = new databricks.Grants("sandbox", {
76
+ * catalog: sandbox.name,
77
+ * grants: [
78
+ * {
79
+ * principal: "Data Scientists",
80
+ * privileges: [
81
+ * "USE_CATALOG",
82
+ * "USE_SCHEMA",
83
+ * "CREATE_TABLE",
84
+ * "SELECT",
85
+ * ],
86
+ * },
87
+ * {
88
+ * principal: "Data Engineers",
89
+ * privileges: [
90
+ * "USE_CATALOG",
91
+ * "USE_SCHEMA",
92
+ * "CREATE_SCHEMA",
93
+ * "CREATE_TABLE",
94
+ * "MODIFY",
95
+ * ],
96
+ * },
97
+ * {
98
+ * principal: "Data Analyst",
99
+ * privileges: [
100
+ * "USE_CATALOG",
101
+ * "USE_SCHEMA",
102
+ * "SELECT",
103
+ * ],
104
+ * },
105
+ * ],
106
+ * });
107
+ * ```
108
+ *
109
+ * ## Schema grants
110
+ *
111
+ * You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `CREATE_FUNCTION`, `CREATE_TABLE`, `CREATE_VOLUME` and `USE_SCHEMA` privileges to _`catalog.schema`_ specified in the `schema` attribute. You can also grant `EXECUTE`, `MODIFY`, `REFRESH`, `SELECT`, `READ_VOLUME`, `WRITE_VOLUME` at the schema level to apply them to the pertinent current and future securable objects within the schema:
112
+ *
113
+ * ```typescript
114
+ * import * as pulumi from "@pulumi/pulumi";
115
+ * import * as databricks from "@pulumi/databricks";
116
+ *
117
+ * const things = new databricks.Schema("things", {
118
+ * catalogName: sandbox.id,
119
+ * name: "things",
120
+ * comment: "this schema is managed by terraform",
121
+ * properties: {
122
+ * kind: "various",
123
+ * },
124
+ * });
125
+ * const thingsGrants = new databricks.Grants("things", {
126
+ * schema: things.id,
127
+ * grants: [{
128
+ * principal: "Data Engineers",
129
+ * privileges: [
130
+ * "USE_SCHEMA",
131
+ * "MODIFY",
132
+ * ],
133
+ * }],
134
+ * });
135
+ * ```
136
+ *
137
+ * ## Table grants
138
+ *
139
+ * You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `SELECT` and `MODIFY` privileges to _`catalog.schema.table`_ specified in the `table` attribute.
140
+ *
141
+ * ```typescript
142
+ * import * as pulumi from "@pulumi/pulumi";
143
+ * import * as databricks from "@pulumi/databricks";
144
+ *
145
+ * const customers = new databricks.Grants("customers", {
146
+ * table: "main.reporting.customers",
147
+ * grants: [
148
+ * {
149
+ * principal: "Data Engineers",
150
+ * privileges: [
151
+ * "MODIFY",
152
+ * "SELECT",
153
+ * ],
154
+ * },
155
+ * {
156
+ * principal: "Data Analysts",
157
+ * privileges: ["SELECT"],
158
+ * },
159
+ * ],
160
+ * });
161
+ * ```
162
+ *
163
+ * You can also apply grants dynamically with databricks.getTables data resource:
164
+ *
165
+ * ```typescript
166
+ * import * as pulumi from "@pulumi/pulumi";
167
+ * import * as databricks from "@pulumi/databricks";
168
+ *
169
+ * export = async () => {
170
+ * const things = await databricks.getTables({
171
+ * catalogName: "sandbox",
172
+ * schemaName: "things",
173
+ * });
174
+ * const thingsGrants: databricks.Grants[] = [];
175
+ * for (const range of things.ids.map((v, k) => ({key: k, value: v}))) {
176
+ * thingsGrants.push(new databricks.Grants(`things-${range.key}`, {
177
+ * table: range.value,
178
+ * grants: [{
179
+ * principal: "sensitive",
180
+ * privileges: [
181
+ * "SELECT",
182
+ * "MODIFY",
183
+ * ],
184
+ * }],
185
+ * }));
186
+ * }
187
+ * }
188
+ * ```
189
+ *
190
+ * ## View grants
191
+ *
192
+ * You can grant `ALL_PRIVILEGES`, `APPLY_TAG` and `SELECT` privileges to _`catalog.schema.view`_ specified in `table` attribute.
193
+ *
194
+ * ```typescript
195
+ * import * as pulumi from "@pulumi/pulumi";
196
+ * import * as databricks from "@pulumi/databricks";
197
+ *
198
+ * const customer360 = new databricks.Grants("customer360", {
199
+ * table: "main.reporting.customer360",
200
+ * grants: [{
201
+ * principal: "Data Analysts",
202
+ * privileges: ["SELECT"],
203
+ * }],
204
+ * });
205
+ * ```
206
+ *
207
+ * You can also apply grants dynamically with databricks.getViews data resource:
208
+ *
209
+ * ```typescript
210
+ * import * as pulumi from "@pulumi/pulumi";
211
+ * import * as databricks from "@pulumi/databricks";
212
+ *
213
+ * export = async () => {
214
+ * const customers = await databricks.getViews({
215
+ * catalogName: "main",
216
+ * schemaName: "customers",
217
+ * });
218
+ * const customersGrants: databricks.Grants[] = [];
219
+ * for (const range of customers.ids.map((v, k) => ({key: k, value: v}))) {
220
+ * customersGrants.push(new databricks.Grants(`customers-${range.key}`, {
221
+ * table: range.value,
222
+ * grants: [{
223
+ * principal: "sensitive",
224
+ * privileges: [
225
+ * "SELECT",
226
+ * "MODIFY",
227
+ * ],
228
+ * }],
229
+ * }));
230
+ * }
231
+ * }
232
+ * ```
233
+ *
234
+ * ## Volume grants
235
+ *
236
+ * You can grant `ALL_PRIVILEGES`, `READ_VOLUME` and `WRITE_VOLUME` privileges to _`catalog.schema.volume`_ specified in the `volume` attribute.
237
+ *
238
+ * ```typescript
239
+ * import * as pulumi from "@pulumi/pulumi";
240
+ * import * as databricks from "@pulumi/databricks";
241
+ *
242
+ * const _this = new databricks.Volume("this", {
243
+ * name: "quickstart_volume",
244
+ * catalogName: sandbox.name,
245
+ * schemaName: things.name,
246
+ * volumeType: "EXTERNAL",
247
+ * storageLocation: some.url,
248
+ * comment: "this volume is managed by terraform",
249
+ * });
250
+ * const volume = new databricks.Grants("volume", {
251
+ * volume: _this.id,
252
+ * grants: [{
253
+ * principal: "Data Engineers",
254
+ * privileges: ["WRITE_VOLUME"],
255
+ * }],
256
+ * });
257
+ * ```
258
+ *
259
+ * ## Registered model grants
260
+ *
261
+ * You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, and `EXECUTE` privileges to _`catalog.schema.model`_ specified in the `model` attribute.
262
+ *
263
+ * ```typescript
264
+ * import * as pulumi from "@pulumi/pulumi";
265
+ * import * as databricks from "@pulumi/databricks";
266
+ *
267
+ * const customers = new databricks.Grants("customers", {
268
+ * model: "main.reporting.customer_model",
269
+ * grants: [
270
+ * {
271
+ * principal: "Data Engineers",
272
+ * privileges: [
273
+ * "APPLY_TAG",
274
+ * "EXECUTE",
275
+ * ],
276
+ * },
277
+ * {
278
+ * principal: "Data Analysts",
279
+ * privileges: ["EXECUTE"],
280
+ * },
281
+ * ],
282
+ * });
283
+ * ```
284
+ *
285
+ * ## Function grants
286
+ *
287
+ * You can grant `ALL_PRIVILEGES` and `EXECUTE` privileges to _`catalog.schema.function`_ specified in the `function` attribute.
288
+ *
289
+ * ```typescript
290
+ * import * as pulumi from "@pulumi/pulumi";
291
+ * import * as databricks from "@pulumi/databricks";
292
+ *
293
+ * const udf = new databricks.Grants("udf", {
294
+ * "function": "main.reporting.udf",
295
+ * grants: [
296
+ * {
297
+ * principal: "Data Engineers",
298
+ * privileges: ["EXECUTE"],
299
+ * },
300
+ * {
301
+ * principal: "Data Analysts",
302
+ * privileges: ["EXECUTE"],
303
+ * },
304
+ * ],
305
+ * });
306
+ * ```
307
+ *
308
+ * ## Storage credential grants
309
+ *
310
+ * You can grant `ALL_PRIVILEGES`, `CREATE_EXTERNAL_LOCATION`, `CREATE_EXTERNAL_TABLE`, `READ_FILES` and `WRITE_FILES` privileges to databricks.StorageCredential id specified in `storageCredential` attribute:
311
+ *
312
+ * ```typescript
313
+ * import * as pulumi from "@pulumi/pulumi";
314
+ * import * as databricks from "@pulumi/databricks";
315
+ *
316
+ * const external = new databricks.StorageCredential("external", {
317
+ * name: externalDataAccess.name,
318
+ * awsIamRole: {
319
+ * roleArn: externalDataAccess.arn,
320
+ * },
321
+ * comment: "Managed by TF",
322
+ * });
323
+ * const externalCreds = new databricks.Grants("external_creds", {
324
+ * storageCredential: external.id,
325
+ * grants: [{
326
+ * principal: "Data Engineers",
327
+ * privileges: ["CREATE_EXTERNAL_TABLE"],
328
+ * }],
329
+ * });
330
+ * ```
331
+ *
332
+ * ## External location grants
333
+ *
334
+ * You can grant `ALL_PRIVILEGES`, `CREATE_EXTERNAL_TABLE`, `CREATE_MANAGED_STORAGE`, `CREATE EXTERNAL VOLUME`, `READ_FILES` and `WRITE_FILES` privileges to databricks.ExternalLocation id specified in `externalLocation` attribute:
335
+ *
336
+ * ```typescript
337
+ * import * as pulumi from "@pulumi/pulumi";
338
+ * import * as databricks from "@pulumi/databricks";
339
+ *
340
+ * const some = new databricks.ExternalLocation("some", {
341
+ * name: "external",
342
+ * url: `s3://${externalAwsS3Bucket.id}/some`,
343
+ * credentialName: external.id,
344
+ * comment: "Managed by TF",
345
+ * });
346
+ * const someGrants = new databricks.Grants("some", {
347
+ * externalLocation: some.id,
348
+ * grants: [
349
+ * {
350
+ * principal: "Data Engineers",
351
+ * privileges: [
352
+ * "CREATE_EXTERNAL_TABLE",
353
+ * "READ_FILES",
354
+ * ],
355
+ * },
356
+ * {
357
+ * principal: mySp.applicationId,
358
+ * privileges: [
359
+ * "CREATE_EXTERNAL_TABLE",
360
+ * "READ_FILES",
361
+ * ],
362
+ * },
363
+ * {
364
+ * principal: myGroup.displayName,
365
+ * privileges: [
366
+ * "CREATE_EXTERNAL_TABLE",
367
+ * "READ_FILES",
368
+ * ],
369
+ * },
370
+ * {
371
+ * principal: myUser.userName,
372
+ * privileges: [
373
+ * "CREATE_EXTERNAL_TABLE",
374
+ * "READ_FILES",
375
+ * ],
376
+ * },
377
+ * ],
378
+ * });
379
+ * ```
380
+ *
381
+ * ## Connection grants
382
+ *
383
+ * You can grant `ALL_PRIVILEGES`, `USE_CONNECTION` and `CREATE_FOREIGN_CATALOG` to databricks.Connection specified in `foreignConnection` attribute:
384
+ *
385
+ * ```typescript
386
+ * import * as pulumi from "@pulumi/pulumi";
387
+ * import * as databricks from "@pulumi/databricks";
388
+ *
389
+ * const mysql = new databricks.Connection("mysql", {
390
+ * name: "mysql_connection",
391
+ * connectionType: "MYSQL",
392
+ * comment: "this is a connection to mysql db",
393
+ * options: {
394
+ * host: "test.mysql.database.azure.com",
395
+ * port: "3306",
396
+ * user: "user",
397
+ * password: "password",
398
+ * },
399
+ * properties: {
400
+ * purpose: "testing",
401
+ * },
402
+ * });
403
+ * const some = new databricks.Grants("some", {
404
+ * foreignConnection: mysql.name,
405
+ * grants: [{
406
+ * principal: "Data Engineers",
407
+ * privileges: [
408
+ * "CREATE_FOREIGN_CATALOG",
409
+ * "USE_CONNECTION",
410
+ * ],
411
+ * }],
412
+ * });
413
+ * ```
414
+ *
415
+ * ## Delta Sharing share grants
416
+ *
417
+ * You can grant `SELECT` to databricks.Recipient on databricks.Share name specified in `share` attribute:
418
+ *
419
+ * ```typescript
420
+ * import * as pulumi from "@pulumi/pulumi";
421
+ * import * as databricks from "@pulumi/databricks";
422
+ *
423
+ * const some = new databricks.Share("some", {name: "my_share"});
424
+ * const someRecipient = new databricks.Recipient("some", {name: "my_recipient"});
425
+ * const someGrants = new databricks.Grants("some", {
426
+ * share: some.name,
427
+ * grants: [{
428
+ * principal: someRecipient.name,
429
+ * privileges: ["SELECT"],
430
+ * }],
431
+ * });
432
+ * ```
433
+ *
434
+ * ## Other access control
435
+ *
436
+ * You can control Databricks General Permissions through databricks.Permissions resource.
437
+ *
5
438
  * ## Import
6
439
  *
7
440
  * The resource can be imported using combination of securable type (`table`, `catalog`, `foreign_connection`, ...) and it's name: