pulumi-databricks 1.78.0a1762407761__py3-none-any.whl → 1.79.0__py3-none-any.whl
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.
- pulumi_databricks/__init__.py +23 -0
- pulumi_databricks/_inputs.py +1630 -181
- pulumi_databricks/access_control_rule_set.py +81 -0
- pulumi_databricks/account_federation_policy.py +24 -0
- pulumi_databricks/account_network_policy.py +50 -0
- pulumi_databricks/account_setting_v2.py +181 -12
- pulumi_databricks/alert_v2.py +74 -2
- pulumi_databricks/app.py +71 -7
- pulumi_databricks/apps_settings_custom_template.py +102 -0
- pulumi_databricks/catalog.py +8 -8
- pulumi_databricks/cluster_policy.py +120 -0
- pulumi_databricks/config/__init__.pyi +4 -0
- pulumi_databricks/config/vars.py +8 -0
- pulumi_databricks/credential.py +7 -7
- pulumi_databricks/dashboard.py +94 -0
- pulumi_databricks/data_quality_monitor.py +2 -2
- pulumi_databricks/data_quality_refresh.py +78 -2
- pulumi_databricks/database_synced_database_table.py +212 -0
- pulumi_databricks/external_location.py +131 -7
- pulumi_databricks/feature_engineering_feature.py +52 -19
- pulumi_databricks/feature_engineering_kafka_config.py +463 -0
- pulumi_databricks/feature_engineering_materialized_feature.py +47 -0
- pulumi_databricks/file.py +2 -2
- pulumi_databricks/get_account_setting_v2.py +16 -16
- pulumi_databricks/get_alert_v2.py +2 -2
- pulumi_databricks/get_alerts_v2.py +2 -2
- pulumi_databricks/get_aws_assume_role_policy.py +14 -14
- pulumi_databricks/get_aws_bucket_policy.py +10 -10
- pulumi_databricks/get_aws_unity_catalog_assume_role_policy.py +10 -10
- pulumi_databricks/get_aws_unity_catalog_policy.py +10 -10
- pulumi_databricks/get_cluster.py +54 -0
- pulumi_databricks/get_current_config.py +4 -4
- pulumi_databricks/get_dashboards.py +32 -0
- pulumi_databricks/get_data_quality_monitor.py +2 -2
- pulumi_databricks/get_data_quality_monitors.py +2 -2
- pulumi_databricks/get_data_quality_refresh.py +2 -2
- pulumi_databricks/get_data_quality_refreshes.py +2 -2
- pulumi_databricks/get_feature_engineering_feature.py +12 -1
- pulumi_databricks/get_feature_engineering_kafka_config.py +182 -0
- pulumi_databricks/get_feature_engineering_kafka_configs.py +103 -0
- pulumi_databricks/get_feature_engineering_materialized_feature.py +16 -2
- pulumi_databricks/get_metastore.py +6 -6
- pulumi_databricks/get_notebook.py +20 -1
- pulumi_databricks/get_policy_info.py +36 -2
- pulumi_databricks/get_policy_infos.py +34 -2
- pulumi_databricks/get_service_principals.py +93 -7
- pulumi_databricks/get_spark_version.py +2 -2
- pulumi_databricks/get_tag_policies.py +2 -2
- pulumi_databricks/get_tag_policy.py +2 -2
- pulumi_databricks/get_users.py +194 -0
- pulumi_databricks/get_workspace_entity_tag_assignment.py +180 -0
- pulumi_databricks/get_workspace_entity_tag_assignments.py +171 -0
- pulumi_databricks/get_workspace_setting_v2.py +16 -16
- pulumi_databricks/instance_profile.py +0 -182
- pulumi_databricks/lakehouse_monitor.py +2 -2
- pulumi_databricks/metastore.py +81 -7
- pulumi_databricks/metastore_data_access.py +48 -0
- pulumi_databricks/mlflow_webhook.py +4 -4
- pulumi_databricks/mws_credentials.py +10 -10
- pulumi_databricks/mws_customer_managed_keys.py +0 -288
- pulumi_databricks/mws_log_delivery.py +146 -0
- pulumi_databricks/mws_storage_configurations.py +16 -16
- pulumi_databricks/mws_vpc_endpoint.py +56 -56
- pulumi_databricks/mws_workspaces.py +115 -55
- pulumi_databricks/notebook.py +49 -0
- pulumi_databricks/outputs.py +2017 -240
- pulumi_databricks/permission_assignment.py +49 -0
- pulumi_databricks/permissions.py +6 -6
- pulumi_databricks/pipeline.py +7 -7
- pulumi_databricks/policy_info.py +122 -2
- pulumi_databricks/provider.py +36 -1
- pulumi_databricks/pulumi-plugin.json +1 -1
- pulumi_databricks/recipient.py +74 -0
- pulumi_databricks/registered_model.py +7 -7
- pulumi_databricks/rfa_access_request_destinations.py +86 -19
- pulumi_databricks/schema.py +7 -7
- pulumi_databricks/service_principal_federation_policy.py +28 -0
- pulumi_databricks/sql_table.py +7 -7
- pulumi_databricks/tag_policy.py +2 -2
- pulumi_databricks/volume.py +7 -7
- pulumi_databricks/workspace_entity_tag_assignment.py +375 -0
- pulumi_databricks/workspace_setting_v2.py +181 -12
- {pulumi_databricks-1.78.0a1762407761.dist-info → pulumi_databricks-1.79.0.dist-info}/METADATA +1 -1
- {pulumi_databricks-1.78.0a1762407761.dist-info → pulumi_databricks-1.79.0.dist-info}/RECORD +86 -79
- {pulumi_databricks-1.78.0a1762407761.dist-info → pulumi_databricks-1.79.0.dist-info}/WHEEL +0 -0
- {pulumi_databricks-1.78.0a1762407761.dist-info → pulumi_databricks-1.79.0.dist-info}/top_level.txt +0 -0
pulumi_databricks/app.py
CHANGED
|
@@ -32,7 +32,7 @@ class AppArgs:
|
|
|
32
32
|
"""
|
|
33
33
|
The set of arguments for constructing a App resource.
|
|
34
34
|
:param pulumi.Input[_builtins.str] budget_policy_id: The Budget Policy ID set for this resource.
|
|
35
|
-
:param pulumi.Input[_builtins.str] compute_size: A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE
|
|
35
|
+
:param pulumi.Input[_builtins.str] compute_size: A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE`.
|
|
36
36
|
:param pulumi.Input[_builtins.str] description: The description of the app.
|
|
37
37
|
:param pulumi.Input[_builtins.str] name: The name of the app. The name must contain only lowercase alphanumeric characters and hyphens. It must be unique within the workspace.
|
|
38
38
|
:param pulumi.Input[Sequence[pulumi.Input['AppResourceArgs']]] resources: A list of resources that the app have access to.
|
|
@@ -71,7 +71,7 @@ class AppArgs:
|
|
|
71
71
|
@pulumi.getter(name="computeSize")
|
|
72
72
|
def compute_size(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
73
73
|
"""
|
|
74
|
-
A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE
|
|
74
|
+
A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE`.
|
|
75
75
|
"""
|
|
76
76
|
return pulumi.get(self, "compute_size")
|
|
77
77
|
|
|
@@ -178,7 +178,7 @@ class _AppState:
|
|
|
178
178
|
Input properties used for looking up and filtering App resources.
|
|
179
179
|
:param pulumi.Input['AppAppStatusArgs'] app_status: attribute
|
|
180
180
|
:param pulumi.Input[_builtins.str] budget_policy_id: The Budget Policy ID set for this resource.
|
|
181
|
-
:param pulumi.Input[_builtins.str] compute_size: A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE
|
|
181
|
+
:param pulumi.Input[_builtins.str] compute_size: A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE`.
|
|
182
182
|
:param pulumi.Input['AppComputeStatusArgs'] compute_status: attribute
|
|
183
183
|
:param pulumi.Input[_builtins.str] create_time: The creation time of the app.
|
|
184
184
|
:param pulumi.Input[_builtins.str] creator: The email of the user that created the app.
|
|
@@ -284,7 +284,7 @@ class _AppState:
|
|
|
284
284
|
@pulumi.getter(name="computeSize")
|
|
285
285
|
def compute_size(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
286
286
|
"""
|
|
287
|
-
A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE
|
|
287
|
+
A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE`.
|
|
288
288
|
"""
|
|
289
289
|
return pulumi.get(self, "compute_size")
|
|
290
290
|
|
|
@@ -552,6 +552,38 @@ class App(pulumi.CustomResource):
|
|
|
552
552
|
|
|
553
553
|
## Example Usage
|
|
554
554
|
|
|
555
|
+
```python
|
|
556
|
+
import pulumi
|
|
557
|
+
import pulumi_databricks as databricks
|
|
558
|
+
|
|
559
|
+
this = databricks.App("this",
|
|
560
|
+
name="my-custom-app",
|
|
561
|
+
description="My app",
|
|
562
|
+
resources=[
|
|
563
|
+
{
|
|
564
|
+
"name": "sql-warehouse",
|
|
565
|
+
"sql_warehouse": {
|
|
566
|
+
"id": "e9ca293f79a74b5c",
|
|
567
|
+
"permission": "CAN_MANAGE",
|
|
568
|
+
},
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
"name": "serving-endpoint",
|
|
572
|
+
"serving_endpoint": {
|
|
573
|
+
"name": "databricks-meta-llama-3-1-70b-instruct",
|
|
574
|
+
"permission": "CAN_MANAGE",
|
|
575
|
+
},
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
"name": "job",
|
|
579
|
+
"job": {
|
|
580
|
+
"id": "1234",
|
|
581
|
+
"permission": "CAN_MANAGE",
|
|
582
|
+
},
|
|
583
|
+
},
|
|
584
|
+
])
|
|
585
|
+
```
|
|
586
|
+
|
|
555
587
|
## Related Resources
|
|
556
588
|
|
|
557
589
|
The following resources are used in the same context:
|
|
@@ -586,7 +618,7 @@ class App(pulumi.CustomResource):
|
|
|
586
618
|
:param str resource_name: The name of the resource.
|
|
587
619
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
588
620
|
:param pulumi.Input[_builtins.str] budget_policy_id: The Budget Policy ID set for this resource.
|
|
589
|
-
:param pulumi.Input[_builtins.str] compute_size: A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE
|
|
621
|
+
:param pulumi.Input[_builtins.str] compute_size: A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE`.
|
|
590
622
|
:param pulumi.Input[_builtins.str] description: The description of the app.
|
|
591
623
|
:param pulumi.Input[_builtins.str] name: The name of the app. The name must contain only lowercase alphanumeric characters and hyphens. It must be unique within the workspace.
|
|
592
624
|
:param pulumi.Input[Sequence[pulumi.Input[Union['AppResourceArgs', 'AppResourceArgsDict']]]] resources: A list of resources that the app have access to.
|
|
@@ -605,6 +637,38 @@ class App(pulumi.CustomResource):
|
|
|
605
637
|
|
|
606
638
|
## Example Usage
|
|
607
639
|
|
|
640
|
+
```python
|
|
641
|
+
import pulumi
|
|
642
|
+
import pulumi_databricks as databricks
|
|
643
|
+
|
|
644
|
+
this = databricks.App("this",
|
|
645
|
+
name="my-custom-app",
|
|
646
|
+
description="My app",
|
|
647
|
+
resources=[
|
|
648
|
+
{
|
|
649
|
+
"name": "sql-warehouse",
|
|
650
|
+
"sql_warehouse": {
|
|
651
|
+
"id": "e9ca293f79a74b5c",
|
|
652
|
+
"permission": "CAN_MANAGE",
|
|
653
|
+
},
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"name": "serving-endpoint",
|
|
657
|
+
"serving_endpoint": {
|
|
658
|
+
"name": "databricks-meta-llama-3-1-70b-instruct",
|
|
659
|
+
"permission": "CAN_MANAGE",
|
|
660
|
+
},
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
"name": "job",
|
|
664
|
+
"job": {
|
|
665
|
+
"id": "1234",
|
|
666
|
+
"permission": "CAN_MANAGE",
|
|
667
|
+
},
|
|
668
|
+
},
|
|
669
|
+
])
|
|
670
|
+
```
|
|
671
|
+
|
|
608
672
|
## Related Resources
|
|
609
673
|
|
|
610
674
|
The following resources are used in the same context:
|
|
@@ -737,7 +801,7 @@ class App(pulumi.CustomResource):
|
|
|
737
801
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
738
802
|
:param pulumi.Input[Union['AppAppStatusArgs', 'AppAppStatusArgsDict']] app_status: attribute
|
|
739
803
|
:param pulumi.Input[_builtins.str] budget_policy_id: The Budget Policy ID set for this resource.
|
|
740
|
-
:param pulumi.Input[_builtins.str] compute_size: A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE
|
|
804
|
+
:param pulumi.Input[_builtins.str] compute_size: A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE`.
|
|
741
805
|
:param pulumi.Input[Union['AppComputeStatusArgs', 'AppComputeStatusArgsDict']] compute_status: attribute
|
|
742
806
|
:param pulumi.Input[_builtins.str] create_time: The creation time of the app.
|
|
743
807
|
:param pulumi.Input[_builtins.str] creator: The email of the user that created the app.
|
|
@@ -811,7 +875,7 @@ class App(pulumi.CustomResource):
|
|
|
811
875
|
@pulumi.getter(name="computeSize")
|
|
812
876
|
def compute_size(self) -> pulumi.Output[_builtins.str]:
|
|
813
877
|
"""
|
|
814
|
-
A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE
|
|
878
|
+
A string specifying compute size for the App. Possible values are `MEDIUM`, `LARGE`.
|
|
815
879
|
"""
|
|
816
880
|
return pulumi.get(self, "compute_size")
|
|
817
881
|
|
|
@@ -286,10 +286,61 @@ class AppsSettingsCustomTemplate(pulumi.CustomResource):
|
|
|
286
286
|
|
|
287
287
|
This example creates a custom template that declares required user API scopes.
|
|
288
288
|
|
|
289
|
+
```python
|
|
290
|
+
import pulumi
|
|
291
|
+
import pulumi_databricks as databricks
|
|
292
|
+
|
|
293
|
+
api_scopes_example = databricks.AppsSettingsCustomTemplate("api_scopes_example",
|
|
294
|
+
name="my-api-template",
|
|
295
|
+
description="A template that requests user API scopes",
|
|
296
|
+
git_repo="https://github.com/example/my-app.git",
|
|
297
|
+
path="templates/app",
|
|
298
|
+
git_provider="github",
|
|
299
|
+
manifest={
|
|
300
|
+
"version": 1,
|
|
301
|
+
"name": "my-databricks-app",
|
|
302
|
+
"description": "This app requires the SQL API scope.",
|
|
303
|
+
"user_api_scopes": ["sql"],
|
|
304
|
+
})
|
|
305
|
+
```
|
|
306
|
+
|
|
289
307
|
### Example with Resource Requirements
|
|
290
308
|
|
|
291
309
|
This example defines a template that requests specific workspace resources with permissions granted.
|
|
292
310
|
|
|
311
|
+
```python
|
|
312
|
+
import pulumi
|
|
313
|
+
import pulumi_databricks as databricks
|
|
314
|
+
|
|
315
|
+
resources_example = databricks.AppsSettingsCustomTemplate("resources_example",
|
|
316
|
+
name="my-resource-template",
|
|
317
|
+
description="Template that requires secret and SQL warehouse access",
|
|
318
|
+
git_repo="https://github.com/example/resource-app.git",
|
|
319
|
+
path="resource-template",
|
|
320
|
+
git_provider="github",
|
|
321
|
+
manifest={
|
|
322
|
+
"version": 1,
|
|
323
|
+
"name": "resource-consuming-app",
|
|
324
|
+
"description": "This app requires access to a secret and SQL warehouse.",
|
|
325
|
+
"resource_specs": [
|
|
326
|
+
{
|
|
327
|
+
"name": "my-secret",
|
|
328
|
+
"description": "A secret needed by the app",
|
|
329
|
+
"secret_spec": {
|
|
330
|
+
"permission": "READ",
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"name": "warehouse",
|
|
335
|
+
"description": "Warehouse access",
|
|
336
|
+
"sql_warehouse_spec": {
|
|
337
|
+
"permission": "CAN_USE",
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
],
|
|
341
|
+
})
|
|
342
|
+
```
|
|
343
|
+
|
|
293
344
|
## Import
|
|
294
345
|
|
|
295
346
|
As of Pulumi v1.5, resources can be imported through configuration.
|
|
@@ -357,10 +408,61 @@ class AppsSettingsCustomTemplate(pulumi.CustomResource):
|
|
|
357
408
|
|
|
358
409
|
This example creates a custom template that declares required user API scopes.
|
|
359
410
|
|
|
411
|
+
```python
|
|
412
|
+
import pulumi
|
|
413
|
+
import pulumi_databricks as databricks
|
|
414
|
+
|
|
415
|
+
api_scopes_example = databricks.AppsSettingsCustomTemplate("api_scopes_example",
|
|
416
|
+
name="my-api-template",
|
|
417
|
+
description="A template that requests user API scopes",
|
|
418
|
+
git_repo="https://github.com/example/my-app.git",
|
|
419
|
+
path="templates/app",
|
|
420
|
+
git_provider="github",
|
|
421
|
+
manifest={
|
|
422
|
+
"version": 1,
|
|
423
|
+
"name": "my-databricks-app",
|
|
424
|
+
"description": "This app requires the SQL API scope.",
|
|
425
|
+
"user_api_scopes": ["sql"],
|
|
426
|
+
})
|
|
427
|
+
```
|
|
428
|
+
|
|
360
429
|
### Example with Resource Requirements
|
|
361
430
|
|
|
362
431
|
This example defines a template that requests specific workspace resources with permissions granted.
|
|
363
432
|
|
|
433
|
+
```python
|
|
434
|
+
import pulumi
|
|
435
|
+
import pulumi_databricks as databricks
|
|
436
|
+
|
|
437
|
+
resources_example = databricks.AppsSettingsCustomTemplate("resources_example",
|
|
438
|
+
name="my-resource-template",
|
|
439
|
+
description="Template that requires secret and SQL warehouse access",
|
|
440
|
+
git_repo="https://github.com/example/resource-app.git",
|
|
441
|
+
path="resource-template",
|
|
442
|
+
git_provider="github",
|
|
443
|
+
manifest={
|
|
444
|
+
"version": 1,
|
|
445
|
+
"name": "resource-consuming-app",
|
|
446
|
+
"description": "This app requires access to a secret and SQL warehouse.",
|
|
447
|
+
"resource_specs": [
|
|
448
|
+
{
|
|
449
|
+
"name": "my-secret",
|
|
450
|
+
"description": "A secret needed by the app",
|
|
451
|
+
"secret_spec": {
|
|
452
|
+
"permission": "READ",
|
|
453
|
+
},
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"name": "warehouse",
|
|
457
|
+
"description": "Warehouse access",
|
|
458
|
+
"sql_warehouse_spec": {
|
|
459
|
+
"permission": "CAN_USE",
|
|
460
|
+
},
|
|
461
|
+
},
|
|
462
|
+
],
|
|
463
|
+
})
|
|
464
|
+
```
|
|
465
|
+
|
|
364
466
|
## Import
|
|
365
467
|
|
|
366
468
|
As of Pulumi v1.5, resources can be imported through configuration.
|
pulumi_databricks/catalog.py
CHANGED
|
@@ -51,7 +51,7 @@ class CatalogArgs:
|
|
|
51
51
|
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] properties: Extensible Catalog properties.
|
|
52
52
|
:param pulumi.Input[_builtins.str] provider_name: For Delta Sharing Catalogs: the name of the delta sharing provider. Change forces creation of a new resource.
|
|
53
53
|
:param pulumi.Input[_builtins.str] share_name: For Delta Sharing Catalogs: the name of the share under the share provider. Change forces creation of a new resource.
|
|
54
|
-
:param pulumi.Input[_builtins.str] storage_root: Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
54
|
+
:param pulumi.Input[_builtins.str] storage_root: Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If the URL contains special characters, such as space, `&`, etc., they should be percent-encoded (space > `%20`, etc.). If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
55
55
|
"""
|
|
56
56
|
if browse_only is not None:
|
|
57
57
|
pulumi.set(__self__, "browse_only", browse_only)
|
|
@@ -261,7 +261,7 @@ class CatalogArgs:
|
|
|
261
261
|
@pulumi.getter(name="storageRoot")
|
|
262
262
|
def storage_root(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
263
263
|
"""
|
|
264
|
-
Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
264
|
+
Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If the URL contains special characters, such as space, `&`, etc., they should be percent-encoded (space > `%20`, etc.). If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
265
265
|
"""
|
|
266
266
|
return pulumi.get(self, "storage_root")
|
|
267
267
|
|
|
@@ -316,7 +316,7 @@ class _CatalogState:
|
|
|
316
316
|
:param pulumi.Input[_builtins.str] securable_type: the type of Unity Catalog securable.
|
|
317
317
|
:param pulumi.Input[_builtins.str] share_name: For Delta Sharing Catalogs: the name of the share under the share provider. Change forces creation of a new resource.
|
|
318
318
|
:param pulumi.Input[_builtins.str] storage_location: effective storage Location URL (full path) for managed tables within catalog.
|
|
319
|
-
:param pulumi.Input[_builtins.str] storage_root: Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
319
|
+
:param pulumi.Input[_builtins.str] storage_root: Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If the URL contains special characters, such as space, `&`, etc., they should be percent-encoded (space > `%20`, etc.). If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
320
320
|
:param pulumi.Input[_builtins.int] updated_at: time at which this catalog was last modified, in epoch milliseconds..
|
|
321
321
|
:param pulumi.Input[_builtins.str] updated_by: username of user who last modified catalog.
|
|
322
322
|
"""
|
|
@@ -613,7 +613,7 @@ class _CatalogState:
|
|
|
613
613
|
@pulumi.getter(name="storageRoot")
|
|
614
614
|
def storage_root(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
615
615
|
"""
|
|
616
|
-
Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
616
|
+
Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If the URL contains special characters, such as space, `&`, etc., they should be percent-encoded (space > `%20`, etc.). If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
617
617
|
"""
|
|
618
618
|
return pulumi.get(self, "storage_root")
|
|
619
619
|
|
|
@@ -734,7 +734,7 @@ class Catalog(pulumi.CustomResource):
|
|
|
734
734
|
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] properties: Extensible Catalog properties.
|
|
735
735
|
:param pulumi.Input[_builtins.str] provider_name: For Delta Sharing Catalogs: the name of the delta sharing provider. Change forces creation of a new resource.
|
|
736
736
|
:param pulumi.Input[_builtins.str] share_name: For Delta Sharing Catalogs: the name of the share under the share provider. Change forces creation of a new resource.
|
|
737
|
-
:param pulumi.Input[_builtins.str] storage_root: Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
737
|
+
:param pulumi.Input[_builtins.str] storage_root: Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If the URL contains special characters, such as space, `&`, etc., they should be percent-encoded (space > `%20`, etc.). If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
738
738
|
"""
|
|
739
739
|
...
|
|
740
740
|
@overload
|
|
@@ -915,7 +915,7 @@ class Catalog(pulumi.CustomResource):
|
|
|
915
915
|
:param pulumi.Input[_builtins.str] securable_type: the type of Unity Catalog securable.
|
|
916
916
|
:param pulumi.Input[_builtins.str] share_name: For Delta Sharing Catalogs: the name of the share under the share provider. Change forces creation of a new resource.
|
|
917
917
|
:param pulumi.Input[_builtins.str] storage_location: effective storage Location URL (full path) for managed tables within catalog.
|
|
918
|
-
:param pulumi.Input[_builtins.str] storage_root: Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
918
|
+
:param pulumi.Input[_builtins.str] storage_root: Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If the URL contains special characters, such as space, `&`, etc., they should be percent-encoded (space > `%20`, etc.). If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
919
919
|
:param pulumi.Input[_builtins.int] updated_at: time at which this catalog was last modified, in epoch milliseconds..
|
|
920
920
|
:param pulumi.Input[_builtins.str] updated_by: username of user who last modified catalog.
|
|
921
921
|
"""
|
|
@@ -1078,7 +1078,7 @@ class Catalog(pulumi.CustomResource):
|
|
|
1078
1078
|
|
|
1079
1079
|
@_builtins.property
|
|
1080
1080
|
@pulumi.getter(name="provisioningInfo")
|
|
1081
|
-
def provisioning_info(self) -> pulumi.Output[
|
|
1081
|
+
def provisioning_info(self) -> pulumi.Output['outputs.CatalogProvisioningInfo']:
|
|
1082
1082
|
return pulumi.get(self, "provisioning_info")
|
|
1083
1083
|
|
|
1084
1084
|
@_builtins.property
|
|
@@ -1109,7 +1109,7 @@ class Catalog(pulumi.CustomResource):
|
|
|
1109
1109
|
@pulumi.getter(name="storageRoot")
|
|
1110
1110
|
def storage_root(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1111
1111
|
"""
|
|
1112
|
-
Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
1112
|
+
Managed location of the catalog. Location in cloud storage where data for managed tables will be stored. If the URL contains special characters, such as space, `&`, etc., they should be percent-encoded (space > `%20`, etc.). If not specified, the location will default to the metastore root location. Change forces creation of a new resource.
|
|
1113
1113
|
"""
|
|
1114
1114
|
return pulumi.get(self, "storage_root")
|
|
1115
1115
|
|
|
@@ -298,6 +298,66 @@ class ClusterPolicy(pulumi.CustomResource):
|
|
|
298
298
|
* A user who has both cluster create permission and access to cluster policies can select the Free form policy and policies they have access to.
|
|
299
299
|
* A user that has access to only cluster policies, can select the policies they have access to.
|
|
300
300
|
|
|
301
|
+
## Example Usage
|
|
302
|
+
|
|
303
|
+
Let us take a look at an example of how you can manage two teams: Marketing and Data Engineering. In the following scenario we want the marketing team to have a really good query experience, so we enabled delta cache for them. On the other hand we want the data engineering team to be able to utilize bigger clusters so we increased the dbus per hour that they can spend. This strategy allows your marketing users and data engineering users to use Databricks in a self service manner but have a different experience in regards to security and performance. And down the line if you need to add more global settings you can propagate them through the "base cluster policy".
|
|
304
|
+
|
|
305
|
+
`modules/base-cluster-policy/main.tf` could look like:
|
|
306
|
+
|
|
307
|
+
```python
|
|
308
|
+
import pulumi
|
|
309
|
+
import json
|
|
310
|
+
import pulumi_databricks as databricks
|
|
311
|
+
import pulumi_std as std
|
|
312
|
+
|
|
313
|
+
config = pulumi.Config()
|
|
314
|
+
# Team that performs the work
|
|
315
|
+
team = config.require_object("team")
|
|
316
|
+
# Cluster policy overrides
|
|
317
|
+
policy_overrides = config.require_object("policyOverrides")
|
|
318
|
+
default_policy = {
|
|
319
|
+
"dbus_per_hour": {
|
|
320
|
+
"type": "range",
|
|
321
|
+
"maxValue": 10,
|
|
322
|
+
},
|
|
323
|
+
"autotermination_minutes": {
|
|
324
|
+
"type": "fixed",
|
|
325
|
+
"value": 20,
|
|
326
|
+
"hidden": True,
|
|
327
|
+
},
|
|
328
|
+
"custom_tags.Team": {
|
|
329
|
+
"type": "fixed",
|
|
330
|
+
"value": team,
|
|
331
|
+
},
|
|
332
|
+
}
|
|
333
|
+
fair_use = databricks.ClusterPolicy("fair_use",
|
|
334
|
+
name=f"{team} cluster policy",
|
|
335
|
+
definition=json.dumps(std.merge(input=[
|
|
336
|
+
default_policy,
|
|
337
|
+
policy_overrides,
|
|
338
|
+
]).result),
|
|
339
|
+
libraries=[
|
|
340
|
+
{
|
|
341
|
+
"pypi": {
|
|
342
|
+
"package": "databricks-sdk==0.12.0",
|
|
343
|
+
},
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"maven": {
|
|
347
|
+
"coordinates": "com.oracle.database.jdbc:ojdbc8:XXXX",
|
|
348
|
+
},
|
|
349
|
+
},
|
|
350
|
+
])
|
|
351
|
+
can_use_cluster_policyinstance_profile = databricks.Permissions("can_use_cluster_policyinstance_profile",
|
|
352
|
+
cluster_policy_id=fair_use.id,
|
|
353
|
+
access_controls=[{
|
|
354
|
+
"group_name": team,
|
|
355
|
+
"permission_level": "CAN_USE",
|
|
356
|
+
}])
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
And custom instances of that base policy module for our marketing and data engineering teams would look like:
|
|
360
|
+
|
|
301
361
|
### Overriding the built-in cluster policies
|
|
302
362
|
|
|
303
363
|
You can override built-in cluster policies by creating a `ClusterPolicy` resource with following attributes:
|
|
@@ -405,6 +465,66 @@ class ClusterPolicy(pulumi.CustomResource):
|
|
|
405
465
|
* A user who has both cluster create permission and access to cluster policies can select the Free form policy and policies they have access to.
|
|
406
466
|
* A user that has access to only cluster policies, can select the policies they have access to.
|
|
407
467
|
|
|
468
|
+
## Example Usage
|
|
469
|
+
|
|
470
|
+
Let us take a look at an example of how you can manage two teams: Marketing and Data Engineering. In the following scenario we want the marketing team to have a really good query experience, so we enabled delta cache for them. On the other hand we want the data engineering team to be able to utilize bigger clusters so we increased the dbus per hour that they can spend. This strategy allows your marketing users and data engineering users to use Databricks in a self service manner but have a different experience in regards to security and performance. And down the line if you need to add more global settings you can propagate them through the "base cluster policy".
|
|
471
|
+
|
|
472
|
+
`modules/base-cluster-policy/main.tf` could look like:
|
|
473
|
+
|
|
474
|
+
```python
|
|
475
|
+
import pulumi
|
|
476
|
+
import json
|
|
477
|
+
import pulumi_databricks as databricks
|
|
478
|
+
import pulumi_std as std
|
|
479
|
+
|
|
480
|
+
config = pulumi.Config()
|
|
481
|
+
# Team that performs the work
|
|
482
|
+
team = config.require_object("team")
|
|
483
|
+
# Cluster policy overrides
|
|
484
|
+
policy_overrides = config.require_object("policyOverrides")
|
|
485
|
+
default_policy = {
|
|
486
|
+
"dbus_per_hour": {
|
|
487
|
+
"type": "range",
|
|
488
|
+
"maxValue": 10,
|
|
489
|
+
},
|
|
490
|
+
"autotermination_minutes": {
|
|
491
|
+
"type": "fixed",
|
|
492
|
+
"value": 20,
|
|
493
|
+
"hidden": True,
|
|
494
|
+
},
|
|
495
|
+
"custom_tags.Team": {
|
|
496
|
+
"type": "fixed",
|
|
497
|
+
"value": team,
|
|
498
|
+
},
|
|
499
|
+
}
|
|
500
|
+
fair_use = databricks.ClusterPolicy("fair_use",
|
|
501
|
+
name=f"{team} cluster policy",
|
|
502
|
+
definition=json.dumps(std.merge(input=[
|
|
503
|
+
default_policy,
|
|
504
|
+
policy_overrides,
|
|
505
|
+
]).result),
|
|
506
|
+
libraries=[
|
|
507
|
+
{
|
|
508
|
+
"pypi": {
|
|
509
|
+
"package": "databricks-sdk==0.12.0",
|
|
510
|
+
},
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"maven": {
|
|
514
|
+
"coordinates": "com.oracle.database.jdbc:ojdbc8:XXXX",
|
|
515
|
+
},
|
|
516
|
+
},
|
|
517
|
+
])
|
|
518
|
+
can_use_cluster_policyinstance_profile = databricks.Permissions("can_use_cluster_policyinstance_profile",
|
|
519
|
+
cluster_policy_id=fair_use.id,
|
|
520
|
+
access_controls=[{
|
|
521
|
+
"group_name": team,
|
|
522
|
+
"permission_level": "CAN_USE",
|
|
523
|
+
}])
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
And custom instances of that base policy module for our marketing and data engineering teams would look like:
|
|
527
|
+
|
|
408
528
|
### Overriding the built-in cluster policies
|
|
409
529
|
|
|
410
530
|
You can override built-in cluster policies by creating a `ClusterPolicy` resource with following attributes:
|
|
@@ -54,6 +54,8 @@ debugHeaders: Optional[bool]
|
|
|
54
54
|
|
|
55
55
|
debugTruncateBytes: Optional[int]
|
|
56
56
|
|
|
57
|
+
experimentalIsUnifiedHost: Optional[bool]
|
|
58
|
+
|
|
57
59
|
googleCredentials: Optional[str]
|
|
58
60
|
|
|
59
61
|
googleServiceAccount: Optional[str]
|
|
@@ -86,3 +88,5 @@ username: Optional[str]
|
|
|
86
88
|
|
|
87
89
|
warehouseId: Optional[str]
|
|
88
90
|
|
|
91
|
+
workspaceId: Optional[str]
|
|
92
|
+
|
pulumi_databricks/config/vars.py
CHANGED
|
@@ -100,6 +100,10 @@ class _ExportableConfig(types.ModuleType):
|
|
|
100
100
|
def debug_truncate_bytes(self) -> Optional[int]:
|
|
101
101
|
return __config__.get_int('debugTruncateBytes')
|
|
102
102
|
|
|
103
|
+
@_builtins.property
|
|
104
|
+
def experimental_is_unified_host(self) -> Optional[bool]:
|
|
105
|
+
return __config__.get_bool('experimentalIsUnifiedHost')
|
|
106
|
+
|
|
103
107
|
@_builtins.property
|
|
104
108
|
def google_credentials(self) -> Optional[str]:
|
|
105
109
|
return __config__.get('googleCredentials')
|
|
@@ -164,3 +168,7 @@ class _ExportableConfig(types.ModuleType):
|
|
|
164
168
|
def warehouse_id(self) -> Optional[str]:
|
|
165
169
|
return __config__.get('warehouseId')
|
|
166
170
|
|
|
171
|
+
@_builtins.property
|
|
172
|
+
def workspace_id(self) -> Optional[str]:
|
|
173
|
+
return __config__.get('workspaceId')
|
|
174
|
+
|
pulumi_databricks/credential.py
CHANGED
|
@@ -49,7 +49,7 @@ class CredentialArgs:
|
|
|
49
49
|
:param pulumi.Input[_builtins.str] isolation_mode: Whether the credential is accessible from all workspaces or a specific set of workspaces. Can be `ISOLATION_MODE_ISOLATED` or `ISOLATION_MODE_OPEN`. Setting the credential to `ISOLATION_MODE_ISOLATED` will automatically restrict access to only from the current workspace.
|
|
50
50
|
|
|
51
51
|
`aws_iam_role` optional configuration block for credential details for AWS:
|
|
52
|
-
:param pulumi.Input[_builtins.str] name: Name of Credentials, which must be unique within the databricks_metastore. Change forces creation of a new resource.
|
|
52
|
+
:param pulumi.Input[_builtins.str] name: Name of Credentials, which must be unique within the databricks_metastore. Change of the `name` forces creation of a new resource.
|
|
53
53
|
:param pulumi.Input[_builtins.str] owner: Username/groupname/sp application_id of the credential owner.
|
|
54
54
|
:param pulumi.Input[_builtins.bool] read_only: Indicates whether the credential is only usable for read operations. Only applicable when purpose is `STORAGE`.
|
|
55
55
|
:param pulumi.Input[_builtins.bool] skip_validation: Suppress validation errors if any & force save the credential.
|
|
@@ -229,7 +229,7 @@ class CredentialArgs:
|
|
|
229
229
|
@pulumi.getter
|
|
230
230
|
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
231
231
|
"""
|
|
232
|
-
Name of Credentials, which must be unique within the databricks_metastore. Change forces creation of a new resource.
|
|
232
|
+
Name of Credentials, which must be unique within the databricks_metastore. Change of the `name` forces creation of a new resource.
|
|
233
233
|
"""
|
|
234
234
|
return pulumi.get(self, "name")
|
|
235
235
|
|
|
@@ -333,7 +333,7 @@ class _CredentialState:
|
|
|
333
333
|
:param pulumi.Input[_builtins.str] isolation_mode: Whether the credential is accessible from all workspaces or a specific set of workspaces. Can be `ISOLATION_MODE_ISOLATED` or `ISOLATION_MODE_OPEN`. Setting the credential to `ISOLATION_MODE_ISOLATED` will automatically restrict access to only from the current workspace.
|
|
334
334
|
|
|
335
335
|
`aws_iam_role` optional configuration block for credential details for AWS:
|
|
336
|
-
:param pulumi.Input[_builtins.str] name: Name of Credentials, which must be unique within the databricks_metastore. Change forces creation of a new resource.
|
|
336
|
+
:param pulumi.Input[_builtins.str] name: Name of Credentials, which must be unique within the databricks_metastore. Change of the `name` forces creation of a new resource.
|
|
337
337
|
:param pulumi.Input[_builtins.str] owner: Username/groupname/sp application_id of the credential owner.
|
|
338
338
|
:param pulumi.Input[_builtins.str] purpose: Indicates the purpose of the credential. Can be `SERVICE` or `STORAGE`.
|
|
339
339
|
:param pulumi.Input[_builtins.bool] read_only: Indicates whether the credential is only usable for read operations. Only applicable when purpose is `STORAGE`.
|
|
@@ -517,7 +517,7 @@ class _CredentialState:
|
|
|
517
517
|
@pulumi.getter
|
|
518
518
|
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
519
519
|
"""
|
|
520
|
-
Name of Credentials, which must be unique within the databricks_metastore. Change forces creation of a new resource.
|
|
520
|
+
Name of Credentials, which must be unique within the databricks_metastore. Change of the `name` forces creation of a new resource.
|
|
521
521
|
"""
|
|
522
522
|
return pulumi.get(self, "name")
|
|
523
523
|
|
|
@@ -730,7 +730,7 @@ class Credential(pulumi.CustomResource):
|
|
|
730
730
|
:param pulumi.Input[_builtins.str] isolation_mode: Whether the credential is accessible from all workspaces or a specific set of workspaces. Can be `ISOLATION_MODE_ISOLATED` or `ISOLATION_MODE_OPEN`. Setting the credential to `ISOLATION_MODE_ISOLATED` will automatically restrict access to only from the current workspace.
|
|
731
731
|
|
|
732
732
|
`aws_iam_role` optional configuration block for credential details for AWS:
|
|
733
|
-
:param pulumi.Input[_builtins.str] name: Name of Credentials, which must be unique within the databricks_metastore. Change forces creation of a new resource.
|
|
733
|
+
:param pulumi.Input[_builtins.str] name: Name of Credentials, which must be unique within the databricks_metastore. Change of the `name` forces creation of a new resource.
|
|
734
734
|
:param pulumi.Input[_builtins.str] owner: Username/groupname/sp application_id of the credential owner.
|
|
735
735
|
:param pulumi.Input[_builtins.str] purpose: Indicates the purpose of the credential. Can be `SERVICE` or `STORAGE`.
|
|
736
736
|
:param pulumi.Input[_builtins.bool] read_only: Indicates whether the credential is only usable for read operations. Only applicable when purpose is `STORAGE`.
|
|
@@ -948,7 +948,7 @@ class Credential(pulumi.CustomResource):
|
|
|
948
948
|
:param pulumi.Input[_builtins.str] isolation_mode: Whether the credential is accessible from all workspaces or a specific set of workspaces. Can be `ISOLATION_MODE_ISOLATED` or `ISOLATION_MODE_OPEN`. Setting the credential to `ISOLATION_MODE_ISOLATED` will automatically restrict access to only from the current workspace.
|
|
949
949
|
|
|
950
950
|
`aws_iam_role` optional configuration block for credential details for AWS:
|
|
951
|
-
:param pulumi.Input[_builtins.str] name: Name of Credentials, which must be unique within the databricks_metastore. Change forces creation of a new resource.
|
|
951
|
+
:param pulumi.Input[_builtins.str] name: Name of Credentials, which must be unique within the databricks_metastore. Change of the `name` forces creation of a new resource.
|
|
952
952
|
:param pulumi.Input[_builtins.str] owner: Username/groupname/sp application_id of the credential owner.
|
|
953
953
|
:param pulumi.Input[_builtins.str] purpose: Indicates the purpose of the credential. Can be `SERVICE` or `STORAGE`.
|
|
954
954
|
:param pulumi.Input[_builtins.bool] read_only: Indicates whether the credential is only usable for read operations. Only applicable when purpose is `STORAGE`.
|
|
@@ -1064,7 +1064,7 @@ class Credential(pulumi.CustomResource):
|
|
|
1064
1064
|
@pulumi.getter
|
|
1065
1065
|
def name(self) -> pulumi.Output[_builtins.str]:
|
|
1066
1066
|
"""
|
|
1067
|
-
Name of Credentials, which must be unique within the databricks_metastore. Change forces creation of a new resource.
|
|
1067
|
+
Name of Credentials, which must be unique within the databricks_metastore. Change of the `name` forces creation of a new resource.
|
|
1068
1068
|
"""
|
|
1069
1069
|
return pulumi.get(self, "name")
|
|
1070
1070
|
|