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.
Files changed (86) hide show
  1. pulumi_databricks/__init__.py +23 -0
  2. pulumi_databricks/_inputs.py +1630 -181
  3. pulumi_databricks/access_control_rule_set.py +81 -0
  4. pulumi_databricks/account_federation_policy.py +24 -0
  5. pulumi_databricks/account_network_policy.py +50 -0
  6. pulumi_databricks/account_setting_v2.py +181 -12
  7. pulumi_databricks/alert_v2.py +74 -2
  8. pulumi_databricks/app.py +71 -7
  9. pulumi_databricks/apps_settings_custom_template.py +102 -0
  10. pulumi_databricks/catalog.py +8 -8
  11. pulumi_databricks/cluster_policy.py +120 -0
  12. pulumi_databricks/config/__init__.pyi +4 -0
  13. pulumi_databricks/config/vars.py +8 -0
  14. pulumi_databricks/credential.py +7 -7
  15. pulumi_databricks/dashboard.py +94 -0
  16. pulumi_databricks/data_quality_monitor.py +2 -2
  17. pulumi_databricks/data_quality_refresh.py +78 -2
  18. pulumi_databricks/database_synced_database_table.py +212 -0
  19. pulumi_databricks/external_location.py +131 -7
  20. pulumi_databricks/feature_engineering_feature.py +52 -19
  21. pulumi_databricks/feature_engineering_kafka_config.py +463 -0
  22. pulumi_databricks/feature_engineering_materialized_feature.py +47 -0
  23. pulumi_databricks/file.py +2 -2
  24. pulumi_databricks/get_account_setting_v2.py +16 -16
  25. pulumi_databricks/get_alert_v2.py +2 -2
  26. pulumi_databricks/get_alerts_v2.py +2 -2
  27. pulumi_databricks/get_aws_assume_role_policy.py +14 -14
  28. pulumi_databricks/get_aws_bucket_policy.py +10 -10
  29. pulumi_databricks/get_aws_unity_catalog_assume_role_policy.py +10 -10
  30. pulumi_databricks/get_aws_unity_catalog_policy.py +10 -10
  31. pulumi_databricks/get_cluster.py +54 -0
  32. pulumi_databricks/get_current_config.py +4 -4
  33. pulumi_databricks/get_dashboards.py +32 -0
  34. pulumi_databricks/get_data_quality_monitor.py +2 -2
  35. pulumi_databricks/get_data_quality_monitors.py +2 -2
  36. pulumi_databricks/get_data_quality_refresh.py +2 -2
  37. pulumi_databricks/get_data_quality_refreshes.py +2 -2
  38. pulumi_databricks/get_feature_engineering_feature.py +12 -1
  39. pulumi_databricks/get_feature_engineering_kafka_config.py +182 -0
  40. pulumi_databricks/get_feature_engineering_kafka_configs.py +103 -0
  41. pulumi_databricks/get_feature_engineering_materialized_feature.py +16 -2
  42. pulumi_databricks/get_metastore.py +6 -6
  43. pulumi_databricks/get_notebook.py +20 -1
  44. pulumi_databricks/get_policy_info.py +36 -2
  45. pulumi_databricks/get_policy_infos.py +34 -2
  46. pulumi_databricks/get_service_principals.py +93 -7
  47. pulumi_databricks/get_spark_version.py +2 -2
  48. pulumi_databricks/get_tag_policies.py +2 -2
  49. pulumi_databricks/get_tag_policy.py +2 -2
  50. pulumi_databricks/get_users.py +194 -0
  51. pulumi_databricks/get_workspace_entity_tag_assignment.py +180 -0
  52. pulumi_databricks/get_workspace_entity_tag_assignments.py +171 -0
  53. pulumi_databricks/get_workspace_setting_v2.py +16 -16
  54. pulumi_databricks/instance_profile.py +0 -182
  55. pulumi_databricks/lakehouse_monitor.py +2 -2
  56. pulumi_databricks/metastore.py +81 -7
  57. pulumi_databricks/metastore_data_access.py +48 -0
  58. pulumi_databricks/mlflow_webhook.py +4 -4
  59. pulumi_databricks/mws_credentials.py +10 -10
  60. pulumi_databricks/mws_customer_managed_keys.py +0 -288
  61. pulumi_databricks/mws_log_delivery.py +146 -0
  62. pulumi_databricks/mws_storage_configurations.py +16 -16
  63. pulumi_databricks/mws_vpc_endpoint.py +56 -56
  64. pulumi_databricks/mws_workspaces.py +115 -55
  65. pulumi_databricks/notebook.py +49 -0
  66. pulumi_databricks/outputs.py +2017 -240
  67. pulumi_databricks/permission_assignment.py +49 -0
  68. pulumi_databricks/permissions.py +6 -6
  69. pulumi_databricks/pipeline.py +7 -7
  70. pulumi_databricks/policy_info.py +122 -2
  71. pulumi_databricks/provider.py +36 -1
  72. pulumi_databricks/pulumi-plugin.json +1 -1
  73. pulumi_databricks/recipient.py +74 -0
  74. pulumi_databricks/registered_model.py +7 -7
  75. pulumi_databricks/rfa_access_request_destinations.py +86 -19
  76. pulumi_databricks/schema.py +7 -7
  77. pulumi_databricks/service_principal_federation_policy.py +28 -0
  78. pulumi_databricks/sql_table.py +7 -7
  79. pulumi_databricks/tag_policy.py +2 -2
  80. pulumi_databricks/volume.py +7 -7
  81. pulumi_databricks/workspace_entity_tag_assignment.py +375 -0
  82. pulumi_databricks/workspace_setting_v2.py +181 -12
  83. {pulumi_databricks-1.78.0a1762407761.dist-info → pulumi_databricks-1.79.0.dist-info}/METADATA +1 -1
  84. {pulumi_databricks-1.78.0a1762407761.dist-info → pulumi_databricks-1.79.0.dist-info}/RECORD +86 -79
  85. {pulumi_databricks-1.78.0a1762407761.dist-info → pulumi_databricks-1.79.0.dist-info}/WHEEL +0 -0
  86. {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`, `LIQUID`.
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`, `LIQUID`.
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`, `LIQUID`.
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`, `LIQUID`.
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`, `LIQUID`.
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`, `LIQUID`.
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`, `LIQUID`.
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.
@@ -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[Optional['outputs.CatalogProvisioningInfo']]:
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
+
@@ -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
+
@@ -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