pulumi-databricks 1.77.0a1762276204__py3-none-any.whl → 1.78.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 (48) hide show
  1. pulumi_databricks/_inputs.py +117 -120
  2. pulumi_databricks/account_federation_policy.py +24 -0
  3. pulumi_databricks/account_network_policy.py +50 -0
  4. pulumi_databricks/alert_v2.py +72 -0
  5. pulumi_databricks/app.py +64 -0
  6. pulumi_databricks/apps_settings_custom_template.py +66 -0
  7. pulumi_databricks/catalog.py +7 -7
  8. pulumi_databricks/cluster_policy.py +120 -0
  9. pulumi_databricks/config/__init__.pyi +4 -0
  10. pulumi_databricks/config/vars.py +8 -0
  11. pulumi_databricks/database_synced_database_table.py +212 -0
  12. pulumi_databricks/external_location.py +131 -7
  13. pulumi_databricks/file.py +2 -2
  14. pulumi_databricks/get_aws_assume_role_policy.py +14 -14
  15. pulumi_databricks/get_aws_bucket_policy.py +10 -10
  16. pulumi_databricks/get_aws_unity_catalog_assume_role_policy.py +10 -10
  17. pulumi_databricks/get_aws_unity_catalog_policy.py +10 -10
  18. pulumi_databricks/get_cluster.py +54 -0
  19. pulumi_databricks/get_current_config.py +4 -4
  20. pulumi_databricks/get_metastore.py +6 -6
  21. pulumi_databricks/get_notebook.py +20 -1
  22. pulumi_databricks/get_service_principals.py +64 -0
  23. pulumi_databricks/instance_profile.py +0 -182
  24. pulumi_databricks/metastore.py +81 -7
  25. pulumi_databricks/metastore_data_access.py +48 -0
  26. pulumi_databricks/mlflow_webhook.py +4 -4
  27. pulumi_databricks/mws_credentials.py +10 -10
  28. pulumi_databricks/mws_customer_managed_keys.py +0 -288
  29. pulumi_databricks/mws_log_delivery.py +146 -0
  30. pulumi_databricks/mws_storage_configurations.py +16 -16
  31. pulumi_databricks/mws_vpc_endpoint.py +56 -56
  32. pulumi_databricks/mws_workspaces.py +85 -51
  33. pulumi_databricks/notebook.py +49 -0
  34. pulumi_databricks/outputs.py +99 -76
  35. pulumi_databricks/permission_assignment.py +49 -0
  36. pulumi_databricks/permissions.py +6 -6
  37. pulumi_databricks/provider.py +36 -1
  38. pulumi_databricks/pulumi-plugin.json +1 -1
  39. pulumi_databricks/recipient.py +74 -0
  40. pulumi_databricks/registered_model.py +7 -7
  41. pulumi_databricks/schema.py +7 -7
  42. pulumi_databricks/service_principal_federation_policy.py +28 -0
  43. pulumi_databricks/sql_table.py +7 -7
  44. pulumi_databricks/volume.py +7 -7
  45. {pulumi_databricks-1.77.0a1762276204.dist-info → pulumi_databricks-1.78.0.dist-info}/METADATA +1 -1
  46. {pulumi_databricks-1.77.0a1762276204.dist-info → pulumi_databricks-1.78.0.dist-info}/RECORD +48 -48
  47. {pulumi_databricks-1.77.0a1762276204.dist-info → pulumi_databricks-1.78.0.dist-info}/WHEEL +0 -0
  48. {pulumi_databricks-1.77.0a1762276204.dist-info → pulumi_databricks-1.78.0.dist-info}/top_level.txt +0 -0
@@ -549,6 +549,7 @@ __all__ = [
549
549
  'MwsWorkspacesGcpManagedNetworkConfig',
550
550
  'MwsWorkspacesGkeConfig',
551
551
  'MwsWorkspacesToken',
552
+ 'NotebookProviderConfig',
552
553
  'NotificationDestinationConfig',
553
554
  'NotificationDestinationConfigEmail',
554
555
  'NotificationDestinationConfigGenericWebhook',
@@ -566,6 +567,7 @@ __all__ = [
566
567
  'OnlineTableStatusProvisioningStatusInitialPipelineSyncProgress',
567
568
  'OnlineTableStatusTriggeredUpdateStatus',
568
569
  'OnlineTableStatusTriggeredUpdateStatusTriggeredUpdateProgress',
570
+ 'PermissionAssignmentProviderConfig',
569
571
  'PermissionsAccessControl',
570
572
  'PipelineCluster',
571
573
  'PipelineClusterAutoscale',
@@ -1270,6 +1272,7 @@ __all__ = [
1270
1272
  'GetMwsNetworkConnectivityConfigEgressConfigTargetRulesAzurePrivateEndpointRuleResult',
1271
1273
  'GetNodeTypeProviderConfigResult',
1272
1274
  'GetNotebookPathsNotebookPathListResult',
1275
+ 'GetNotebookProviderConfigResult',
1273
1276
  'GetNotificationDestinationsNotificationDestinationResult',
1274
1277
  'GetNotificationDestinationsProviderConfigResult',
1275
1278
  'GetOnlineStoresOnlineStoreResult',
@@ -5928,26 +5931,9 @@ class ClusterDockerImage(dict):
5928
5931
  basic_auth: Optional['outputs.ClusterDockerImageBasicAuth'] = None):
5929
5932
  """
5930
5933
  :param _builtins.str url: URL for the Docker image
5931
- :param 'ClusterDockerImageBasicAuthArgs' basic_auth: `basic_auth.username` and `basic_auth.password` for Docker repository. Docker registry credentials are encrypted when they are stored in Databricks internal storage and when they are passed to a registry upon fetching Docker images at cluster launch. However, other authenticated and authorized API users of this workspace can access the username and password.
5934
+ :param 'ClusterDockerImageBasicAuthArgs' basic_auth: `basic_auth.username` and `basic_auth.password` for Docker repository. Docker registry credentials are encrypted when they are stored in Databricks internal storage and when they are passed to a registry upon fetching Docker images at cluster launch. For better security, these credentials should be stored in the secret scope and referred using secret path syntax: `{{secrets/scope/key}}`, otherwise other users of the workspace may access them via UI/API.
5932
5935
 
5933
5936
  Example usage with azurerm_container_registry and docker_registry_image, that you can adapt to your specific use-case:
5934
-
5935
- ```python
5936
- import pulumi
5937
- import pulumi_databricks as databricks
5938
- import pulumi_docker as docker
5939
-
5940
- this = docker.index.RegistryImage("this",
5941
- build=[{}],
5942
- name=f{this_azurerm_container_registry.login_server}/sample:latest)
5943
- this_cluster = databricks.Cluster("this", docker_image={
5944
- "url": this["name"],
5945
- "basic_auth": {
5946
- "username": this_azurerm_container_registry["adminUsername"],
5947
- "password": this_azurerm_container_registry["adminPassword"],
5948
- },
5949
- })
5950
- ```
5951
5937
  """
5952
5938
  pulumi.set(__self__, "url", url)
5953
5939
  if basic_auth is not None:
@@ -5965,26 +5951,9 @@ class ClusterDockerImage(dict):
5965
5951
  @pulumi.getter(name="basicAuth")
5966
5952
  def basic_auth(self) -> Optional['outputs.ClusterDockerImageBasicAuth']:
5967
5953
  """
5968
- `basic_auth.username` and `basic_auth.password` for Docker repository. Docker registry credentials are encrypted when they are stored in Databricks internal storage and when they are passed to a registry upon fetching Docker images at cluster launch. However, other authenticated and authorized API users of this workspace can access the username and password.
5954
+ `basic_auth.username` and `basic_auth.password` for Docker repository. Docker registry credentials are encrypted when they are stored in Databricks internal storage and when they are passed to a registry upon fetching Docker images at cluster launch. For better security, these credentials should be stored in the secret scope and referred using secret path syntax: `{{secrets/scope/key}}`, otherwise other users of the workspace may access them via UI/API.
5969
5955
 
5970
5956
  Example usage with azurerm_container_registry and docker_registry_image, that you can adapt to your specific use-case:
5971
-
5972
- ```python
5973
- import pulumi
5974
- import pulumi_databricks as databricks
5975
- import pulumi_docker as docker
5976
-
5977
- this = docker.index.RegistryImage("this",
5978
- build=[{}],
5979
- name=f{this_azurerm_container_registry.login_server}/sample:latest)
5980
- this_cluster = databricks.Cluster("this", docker_image={
5981
- "url": this["name"],
5982
- "basic_auth": {
5983
- "username": this_azurerm_container_registry["adminUsername"],
5984
- "password": this_azurerm_container_registry["adminPassword"],
5985
- },
5986
- })
5987
- ```
5988
5957
  """
5989
5958
  return pulumi.get(self, "basic_auth")
5990
5959
 
@@ -10747,26 +10716,9 @@ class InstancePoolPreloadedDockerImage(dict):
10747
10716
  basic_auth: Optional['outputs.InstancePoolPreloadedDockerImageBasicAuth'] = None):
10748
10717
  """
10749
10718
  :param _builtins.str url: URL for the Docker image
10750
- :param 'InstancePoolPreloadedDockerImageBasicAuthArgs' basic_auth: `basic_auth.username` and `basic_auth.password` for Docker repository. Docker registry credentials are encrypted when they are stored in Databricks internal storage and when they are passed to a registry upon fetching Docker images at cluster launch. However, other authenticated and authorized API users of this workspace can access the username and password.
10719
+ :param 'InstancePoolPreloadedDockerImageBasicAuthArgs' basic_auth: `basic_auth.username` and `basic_auth.password` for Docker repository. Docker registry credentials are encrypted when they are stored in Databricks internal storage and when they are passed to a registry upon fetching Docker images at cluster launch. For better security, these credentials should be stored in the secret scope and referred using secret path syntax: `{{secrets/scope/key}}`, otherwise other users of the workspace may access them via UI/API.
10751
10720
 
10752
10721
  Example usage with azurerm_container_registry and docker_registry_image, that you can adapt to your specific use-case:
10753
-
10754
- ```python
10755
- import pulumi
10756
- import pulumi_databricks as databricks
10757
- import pulumi_docker as docker
10758
-
10759
- this = docker.index.RegistryImage("this",
10760
- build=[{}],
10761
- name=f{this_azurerm_container_registry.login_server}/sample:latest)
10762
- this_instance_pool = databricks.InstancePool("this", preloaded_docker_images=[{
10763
- "url": this["name"],
10764
- "basic_auth": {
10765
- "username": this_azurerm_container_registry["adminUsername"],
10766
- "password": this_azurerm_container_registry["adminPassword"],
10767
- },
10768
- }])
10769
- ```
10770
10722
  """
10771
10723
  pulumi.set(__self__, "url", url)
10772
10724
  if basic_auth is not None:
@@ -10784,26 +10736,9 @@ class InstancePoolPreloadedDockerImage(dict):
10784
10736
  @pulumi.getter(name="basicAuth")
10785
10737
  def basic_auth(self) -> Optional['outputs.InstancePoolPreloadedDockerImageBasicAuth']:
10786
10738
  """
10787
- `basic_auth.username` and `basic_auth.password` for Docker repository. Docker registry credentials are encrypted when they are stored in Databricks internal storage and when they are passed to a registry upon fetching Docker images at cluster launch. However, other authenticated and authorized API users of this workspace can access the username and password.
10739
+ `basic_auth.username` and `basic_auth.password` for Docker repository. Docker registry credentials are encrypted when they are stored in Databricks internal storage and when they are passed to a registry upon fetching Docker images at cluster launch. For better security, these credentials should be stored in the secret scope and referred using secret path syntax: `{{secrets/scope/key}}`, otherwise other users of the workspace may access them via UI/API.
10788
10740
 
10789
10741
  Example usage with azurerm_container_registry and docker_registry_image, that you can adapt to your specific use-case:
10790
-
10791
- ```python
10792
- import pulumi
10793
- import pulumi_databricks as databricks
10794
- import pulumi_docker as docker
10795
-
10796
- this = docker.index.RegistryImage("this",
10797
- build=[{}],
10798
- name=f{this_azurerm_container_registry.login_server}/sample:latest)
10799
- this_instance_pool = databricks.InstancePool("this", preloaded_docker_images=[{
10800
- "url": this["name"],
10801
- "basic_auth": {
10802
- "username": this_azurerm_container_registry["adminUsername"],
10803
- "password": this_azurerm_container_registry["adminPassword"],
10804
- },
10805
- }])
10806
- ```
10807
10742
  """
10808
10743
  return pulumi.get(self, "basic_auth")
10809
10744
 
@@ -30073,13 +30008,13 @@ class MwsNetworksGcpNetworkInfo(dict):
30073
30008
 
30074
30009
  @_builtins.property
30075
30010
  @pulumi.getter(name="podIpRangeName")
30076
- @_utilities.deprecated("""gcp_network_info.pod_ip_range_name is deprecated and will be removed in a future release. For more information, review the documentation at https://registry.terraform.io/providers/databricks/databricks/1.96.0/docs/guides/gcp-workspace#creating-a-vpc""")
30011
+ @_utilities.deprecated("""gcp_network_info.pod_ip_range_name is deprecated and will be removed in a future release. For more information, review the documentation at https://registry.terraform.io/providers/databricks/databricks/1.97.0/docs/guides/gcp-workspace#creating-a-vpc""")
30077
30012
  def pod_ip_range_name(self) -> Optional[_builtins.str]:
30078
30013
  return pulumi.get(self, "pod_ip_range_name")
30079
30014
 
30080
30015
  @_builtins.property
30081
30016
  @pulumi.getter(name="serviceIpRangeName")
30082
- @_utilities.deprecated("""gcp_network_info.service_ip_range_name is deprecated and will be removed in a future release. For more information, review the documentation at https://registry.terraform.io/providers/databricks/databricks/1.96.0/docs/guides/gcp-workspace#creating-a-vpc""")
30017
+ @_utilities.deprecated("""gcp_network_info.service_ip_range_name is deprecated and will be removed in a future release. For more information, review the documentation at https://registry.terraform.io/providers/databricks/databricks/1.97.0/docs/guides/gcp-workspace#creating-a-vpc""")
30083
30018
  def service_ip_range_name(self) -> Optional[_builtins.str]:
30084
30019
  return pulumi.get(self, "service_ip_range_name")
30085
30020
 
@@ -30351,13 +30286,13 @@ class MwsWorkspacesGcpManagedNetworkConfig(dict):
30351
30286
 
30352
30287
  @_builtins.property
30353
30288
  @pulumi.getter(name="gkeClusterPodIpRange")
30354
- @_utilities.deprecated("""gcp_managed_network_config.gke_cluster_pod_ip_range is deprecated and will be removed in a future release. For more information, review the documentation at https://registry.terraform.io/providers/databricks/databricks/1.96.0/docs/guides/gcp-workspace#creating-a-databricks-workspace""")
30289
+ @_utilities.deprecated("""gcp_managed_network_config.gke_cluster_pod_ip_range is deprecated and will be removed in a future release. For more information, review the documentation at https://registry.terraform.io/providers/databricks/databricks/1.97.0/docs/guides/gcp-workspace#creating-a-databricks-workspace""")
30355
30290
  def gke_cluster_pod_ip_range(self) -> Optional[_builtins.str]:
30356
30291
  return pulumi.get(self, "gke_cluster_pod_ip_range")
30357
30292
 
30358
30293
  @_builtins.property
30359
30294
  @pulumi.getter(name="gkeClusterServiceIpRange")
30360
- @_utilities.deprecated("""gcp_managed_network_config.gke_cluster_service_ip_range is deprecated and will be removed in a future release. For more information, review the documentation at https://registry.terraform.io/providers/databricks/databricks/1.96.0/docs/guides/gcp-workspace#creating-a-databricks-workspace""")
30295
+ @_utilities.deprecated("""gcp_managed_network_config.gke_cluster_service_ip_range is deprecated and will be removed in a future release. For more information, review the documentation at https://registry.terraform.io/providers/databricks/databricks/1.97.0/docs/guides/gcp-workspace#creating-a-databricks-workspace""")
30361
30296
  def gke_cluster_service_ip_range(self) -> Optional[_builtins.str]:
30362
30297
  return pulumi.get(self, "gke_cluster_service_ip_range")
30363
30298
 
@@ -30470,6 +30405,41 @@ class MwsWorkspacesToken(dict):
30470
30405
  return pulumi.get(self, "token_value")
30471
30406
 
30472
30407
 
30408
+ @pulumi.output_type
30409
+ class NotebookProviderConfig(dict):
30410
+ @staticmethod
30411
+ def __key_warning(key: str):
30412
+ suggest = None
30413
+ if key == "workspaceId":
30414
+ suggest = "workspace_id"
30415
+
30416
+ if suggest:
30417
+ pulumi.log.warn(f"Key '{key}' not found in NotebookProviderConfig. Access the value via the '{suggest}' property getter instead.")
30418
+
30419
+ def __getitem__(self, key: str) -> Any:
30420
+ NotebookProviderConfig.__key_warning(key)
30421
+ return super().__getitem__(key)
30422
+
30423
+ def get(self, key: str, default = None) -> Any:
30424
+ NotebookProviderConfig.__key_warning(key)
30425
+ return super().get(key, default)
30426
+
30427
+ def __init__(__self__, *,
30428
+ workspace_id: _builtins.str):
30429
+ """
30430
+ :param _builtins.str workspace_id: Workspace ID which the resource belongs to. This workspace must be part of the account which the provider is configured with.
30431
+ """
30432
+ pulumi.set(__self__, "workspace_id", workspace_id)
30433
+
30434
+ @_builtins.property
30435
+ @pulumi.getter(name="workspaceId")
30436
+ def workspace_id(self) -> _builtins.str:
30437
+ """
30438
+ Workspace ID which the resource belongs to. This workspace must be part of the account which the provider is configured with.
30439
+ """
30440
+ return pulumi.get(self, "workspace_id")
30441
+
30442
+
30473
30443
  @pulumi.output_type
30474
30444
  class NotificationDestinationConfig(dict):
30475
30445
  @staticmethod
@@ -31539,6 +31509,41 @@ class OnlineTableStatusTriggeredUpdateStatusTriggeredUpdateProgress(dict):
31539
31509
  return pulumi.get(self, "total_row_count")
31540
31510
 
31541
31511
 
31512
+ @pulumi.output_type
31513
+ class PermissionAssignmentProviderConfig(dict):
31514
+ @staticmethod
31515
+ def __key_warning(key: str):
31516
+ suggest = None
31517
+ if key == "workspaceId":
31518
+ suggest = "workspace_id"
31519
+
31520
+ if suggest:
31521
+ pulumi.log.warn(f"Key '{key}' not found in PermissionAssignmentProviderConfig. Access the value via the '{suggest}' property getter instead.")
31522
+
31523
+ def __getitem__(self, key: str) -> Any:
31524
+ PermissionAssignmentProviderConfig.__key_warning(key)
31525
+ return super().__getitem__(key)
31526
+
31527
+ def get(self, key: str, default = None) -> Any:
31528
+ PermissionAssignmentProviderConfig.__key_warning(key)
31529
+ return super().get(key, default)
31530
+
31531
+ def __init__(__self__, *,
31532
+ workspace_id: _builtins.str):
31533
+ """
31534
+ :param _builtins.str workspace_id: Workspace ID which the resource belongs to. This workspace must be part of the account which the provider is configured with.
31535
+ """
31536
+ pulumi.set(__self__, "workspace_id", workspace_id)
31537
+
31538
+ @_builtins.property
31539
+ @pulumi.getter(name="workspaceId")
31540
+ def workspace_id(self) -> _builtins.str:
31541
+ """
31542
+ Workspace ID which the resource belongs to. This workspace must be part of the account which the provider is configured with.
31543
+ """
31544
+ return pulumi.get(self, "workspace_id")
31545
+
31546
+
31542
31547
  @pulumi.output_type
31543
31548
  class PermissionsAccessControl(dict):
31544
31549
  @staticmethod
@@ -62973,6 +62978,24 @@ class GetNotebookPathsNotebookPathListResult(dict):
62973
62978
  return pulumi.get(self, "path")
62974
62979
 
62975
62980
 
62981
+ @pulumi.output_type
62982
+ class GetNotebookProviderConfigResult(dict):
62983
+ def __init__(__self__, *,
62984
+ workspace_id: _builtins.str):
62985
+ """
62986
+ :param _builtins.str workspace_id: Workspace ID which the resource belongs to. This workspace must be part of the account which the provider is configured with.
62987
+ """
62988
+ pulumi.set(__self__, "workspace_id", workspace_id)
62989
+
62990
+ @_builtins.property
62991
+ @pulumi.getter(name="workspaceId")
62992
+ def workspace_id(self) -> _builtins.str:
62993
+ """
62994
+ Workspace ID which the resource belongs to. This workspace must be part of the account which the provider is configured with.
62995
+ """
62996
+ return pulumi.get(self, "workspace_id")
62997
+
62998
+
62976
62999
  @pulumi.output_type
62977
63000
  class GetNotificationDestinationsNotificationDestinationResult(dict):
62978
63001
  def __init__(__self__, *,
@@ -13,6 +13,8 @@ if sys.version_info >= (3, 11):
13
13
  else:
14
14
  from typing_extensions import NotRequired, TypedDict, TypeAlias
15
15
  from . import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
16
18
 
17
19
  __all__ = ['PermissionAssignmentArgs', 'PermissionAssignment']
18
20
 
@@ -22,6 +24,7 @@ class PermissionAssignmentArgs:
22
24
  permissions: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
23
25
  group_name: Optional[pulumi.Input[_builtins.str]] = None,
24
26
  principal_id: Optional[pulumi.Input[_builtins.str]] = None,
27
+ provider_config: Optional[pulumi.Input['PermissionAssignmentProviderConfigArgs']] = None,
25
28
  service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
26
29
  user_name: Optional[pulumi.Input[_builtins.str]] = None):
27
30
  """
@@ -31,6 +34,7 @@ class PermissionAssignmentArgs:
31
34
  * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
32
35
  :param pulumi.Input[_builtins.str] group_name: the group name to assign to a workspace.
33
36
  :param pulumi.Input[_builtins.str] principal_id: Databricks ID of the user, service principal, or group. The principal ID can be retrieved using the account-level SCIM API, or using databricks_user, ServicePrincipal or Group data sources with account API (and has to be an account admin). A more sensible approach is to retrieve the list of `principal_id` as outputs from another Pulumi stack.
37
+ :param pulumi.Input['PermissionAssignmentProviderConfigArgs'] provider_config: Configure the provider for management through account provider. This block consists of the following fields:
34
38
  :param pulumi.Input[_builtins.str] service_principal_name: the application ID of service principal to assign to a workspace.
35
39
  :param pulumi.Input[_builtins.str] user_name: the user name (email) to assign to a workspace.
36
40
  """
@@ -39,6 +43,8 @@ class PermissionAssignmentArgs:
39
43
  pulumi.set(__self__, "group_name", group_name)
40
44
  if principal_id is not None:
41
45
  pulumi.set(__self__, "principal_id", principal_id)
46
+ if provider_config is not None:
47
+ pulumi.set(__self__, "provider_config", provider_config)
42
48
  if service_principal_name is not None:
43
49
  pulumi.set(__self__, "service_principal_name", service_principal_name)
44
50
  if user_name is not None:
@@ -82,6 +88,18 @@ class PermissionAssignmentArgs:
82
88
  def principal_id(self, value: Optional[pulumi.Input[_builtins.str]]):
83
89
  pulumi.set(self, "principal_id", value)
84
90
 
91
+ @_builtins.property
92
+ @pulumi.getter(name="providerConfig")
93
+ def provider_config(self) -> Optional[pulumi.Input['PermissionAssignmentProviderConfigArgs']]:
94
+ """
95
+ Configure the provider for management through account provider. This block consists of the following fields:
96
+ """
97
+ return pulumi.get(self, "provider_config")
98
+
99
+ @provider_config.setter
100
+ def provider_config(self, value: Optional[pulumi.Input['PermissionAssignmentProviderConfigArgs']]):
101
+ pulumi.set(self, "provider_config", value)
102
+
85
103
  @_builtins.property
86
104
  @pulumi.getter(name="servicePrincipalName")
87
105
  def service_principal_name(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -114,6 +132,7 @@ class _PermissionAssignmentState:
114
132
  group_name: Optional[pulumi.Input[_builtins.str]] = None,
115
133
  permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
116
134
  principal_id: Optional[pulumi.Input[_builtins.str]] = None,
135
+ provider_config: Optional[pulumi.Input['PermissionAssignmentProviderConfigArgs']] = None,
117
136
  service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
118
137
  user_name: Optional[pulumi.Input[_builtins.str]] = None):
119
138
  """
@@ -124,6 +143,7 @@ class _PermissionAssignmentState:
124
143
  * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
125
144
  * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
126
145
  :param pulumi.Input[_builtins.str] principal_id: Databricks ID of the user, service principal, or group. The principal ID can be retrieved using the account-level SCIM API, or using databricks_user, ServicePrincipal or Group data sources with account API (and has to be an account admin). A more sensible approach is to retrieve the list of `principal_id` as outputs from another Pulumi stack.
146
+ :param pulumi.Input['PermissionAssignmentProviderConfigArgs'] provider_config: Configure the provider for management through account provider. This block consists of the following fields:
127
147
  :param pulumi.Input[_builtins.str] service_principal_name: the application ID of service principal to assign to a workspace.
128
148
  :param pulumi.Input[_builtins.str] user_name: the user name (email) to assign to a workspace.
129
149
  """
@@ -135,6 +155,8 @@ class _PermissionAssignmentState:
135
155
  pulumi.set(__self__, "permissions", permissions)
136
156
  if principal_id is not None:
137
157
  pulumi.set(__self__, "principal_id", principal_id)
158
+ if provider_config is not None:
159
+ pulumi.set(__self__, "provider_config", provider_config)
138
160
  if service_principal_name is not None:
139
161
  pulumi.set(__self__, "service_principal_name", service_principal_name)
140
162
  if user_name is not None:
@@ -190,6 +212,18 @@ class _PermissionAssignmentState:
190
212
  def principal_id(self, value: Optional[pulumi.Input[_builtins.str]]):
191
213
  pulumi.set(self, "principal_id", value)
192
214
 
215
+ @_builtins.property
216
+ @pulumi.getter(name="providerConfig")
217
+ def provider_config(self) -> Optional[pulumi.Input['PermissionAssignmentProviderConfigArgs']]:
218
+ """
219
+ Configure the provider for management through account provider. This block consists of the following fields:
220
+ """
221
+ return pulumi.get(self, "provider_config")
222
+
223
+ @provider_config.setter
224
+ def provider_config(self, value: Optional[pulumi.Input['PermissionAssignmentProviderConfigArgs']]):
225
+ pulumi.set(self, "provider_config", value)
226
+
193
227
  @_builtins.property
194
228
  @pulumi.getter(name="servicePrincipalName")
195
229
  def service_principal_name(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -224,6 +258,7 @@ class PermissionAssignment(pulumi.CustomResource):
224
258
  group_name: Optional[pulumi.Input[_builtins.str]] = None,
225
259
  permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
226
260
  principal_id: Optional[pulumi.Input[_builtins.str]] = None,
261
+ provider_config: Optional[pulumi.Input[Union['PermissionAssignmentProviderConfigArgs', 'PermissionAssignmentProviderConfigArgsDict']]] = None,
227
262
  service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
228
263
  user_name: Optional[pulumi.Input[_builtins.str]] = None,
229
264
  __props__=None):
@@ -351,6 +386,7 @@ class PermissionAssignment(pulumi.CustomResource):
351
386
  * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
352
387
  * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
353
388
  :param pulumi.Input[_builtins.str] principal_id: Databricks ID of the user, service principal, or group. The principal ID can be retrieved using the account-level SCIM API, or using databricks_user, ServicePrincipal or Group data sources with account API (and has to be an account admin). A more sensible approach is to retrieve the list of `principal_id` as outputs from another Pulumi stack.
389
+ :param pulumi.Input[Union['PermissionAssignmentProviderConfigArgs', 'PermissionAssignmentProviderConfigArgsDict']] provider_config: Configure the provider for management through account provider. This block consists of the following fields:
354
390
  :param pulumi.Input[_builtins.str] service_principal_name: the application ID of service principal to assign to a workspace.
355
391
  :param pulumi.Input[_builtins.str] user_name: the user name (email) to assign to a workspace.
356
392
  """
@@ -495,6 +531,7 @@ class PermissionAssignment(pulumi.CustomResource):
495
531
  group_name: Optional[pulumi.Input[_builtins.str]] = None,
496
532
  permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
497
533
  principal_id: Optional[pulumi.Input[_builtins.str]] = None,
534
+ provider_config: Optional[pulumi.Input[Union['PermissionAssignmentProviderConfigArgs', 'PermissionAssignmentProviderConfigArgsDict']]] = None,
498
535
  service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
499
536
  user_name: Optional[pulumi.Input[_builtins.str]] = None,
500
537
  __props__=None):
@@ -511,6 +548,7 @@ class PermissionAssignment(pulumi.CustomResource):
511
548
  raise TypeError("Missing required property 'permissions'")
512
549
  __props__.__dict__["permissions"] = permissions
513
550
  __props__.__dict__["principal_id"] = principal_id
551
+ __props__.__dict__["provider_config"] = provider_config
514
552
  __props__.__dict__["service_principal_name"] = service_principal_name
515
553
  __props__.__dict__["user_name"] = user_name
516
554
  __props__.__dict__["display_name"] = None
@@ -528,6 +566,7 @@ class PermissionAssignment(pulumi.CustomResource):
528
566
  group_name: Optional[pulumi.Input[_builtins.str]] = None,
529
567
  permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
530
568
  principal_id: Optional[pulumi.Input[_builtins.str]] = None,
569
+ provider_config: Optional[pulumi.Input[Union['PermissionAssignmentProviderConfigArgs', 'PermissionAssignmentProviderConfigArgsDict']]] = None,
531
570
  service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
532
571
  user_name: Optional[pulumi.Input[_builtins.str]] = None) -> 'PermissionAssignment':
533
572
  """
@@ -543,6 +582,7 @@ class PermissionAssignment(pulumi.CustomResource):
543
582
  * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
544
583
  * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
545
584
  :param pulumi.Input[_builtins.str] principal_id: Databricks ID of the user, service principal, or group. The principal ID can be retrieved using the account-level SCIM API, or using databricks_user, ServicePrincipal or Group data sources with account API (and has to be an account admin). A more sensible approach is to retrieve the list of `principal_id` as outputs from another Pulumi stack.
585
+ :param pulumi.Input[Union['PermissionAssignmentProviderConfigArgs', 'PermissionAssignmentProviderConfigArgsDict']] provider_config: Configure the provider for management through account provider. This block consists of the following fields:
546
586
  :param pulumi.Input[_builtins.str] service_principal_name: the application ID of service principal to assign to a workspace.
547
587
  :param pulumi.Input[_builtins.str] user_name: the user name (email) to assign to a workspace.
548
588
  """
@@ -554,6 +594,7 @@ class PermissionAssignment(pulumi.CustomResource):
554
594
  __props__.__dict__["group_name"] = group_name
555
595
  __props__.__dict__["permissions"] = permissions
556
596
  __props__.__dict__["principal_id"] = principal_id
597
+ __props__.__dict__["provider_config"] = provider_config
557
598
  __props__.__dict__["service_principal_name"] = service_principal_name
558
599
  __props__.__dict__["user_name"] = user_name
559
600
  return PermissionAssignment(resource_name, opts=opts, __props__=__props__)
@@ -592,6 +633,14 @@ class PermissionAssignment(pulumi.CustomResource):
592
633
  """
593
634
  return pulumi.get(self, "principal_id")
594
635
 
636
+ @_builtins.property
637
+ @pulumi.getter(name="providerConfig")
638
+ def provider_config(self) -> pulumi.Output[Optional['outputs.PermissionAssignmentProviderConfig']]:
639
+ """
640
+ Configure the provider for management through account provider. This block consists of the following fields:
641
+ """
642
+ return pulumi.get(self, "provider_config")
643
+
595
644
  @_builtins.property
596
645
  @pulumi.getter(name="servicePrincipalName")
597
646
  def service_principal_name(self) -> pulumi.Output[_builtins.str]:
@@ -941,12 +941,12 @@ class Permissions(pulumi.CustomResource):
941
941
  eng = databricks.Group("eng", display_name="Engineering")
942
942
  ldp_demo = databricks.Notebook("ldp_demo",
943
943
  content_base64=std.base64encode(input=\"\"\"import dlt
944
- json_path = "/databricks-datasets/wikipedia-datasets/data-001/clickstream/raw-uncompressed-json/2015_2_clickstream.json"
944
+ json_path = \\"/databricks-datasets/wikipedia-datasets/data-001/clickstream/raw-uncompressed-json/2015_2_clickstream.json\\"
945
945
  @dlt.table(
946
- comment="The raw wikipedia clickstream dataset, ingested from /databricks-datasets."
946
+ comment=\\"The raw wikipedia clickstream dataset, ingested from /databricks-datasets.\\"
947
947
  )
948
948
  def clickstream_raw():
949
- return (spark.read.format("json").load(json_path))
949
+ return (spark.read.format(\\"json\\").load(json_path))
950
950
  \"\"\").result,
951
951
  language="PYTHON",
952
952
  path=f"{me.home}/ldp_demo")
@@ -1778,12 +1778,12 @@ class Permissions(pulumi.CustomResource):
1778
1778
  eng = databricks.Group("eng", display_name="Engineering")
1779
1779
  ldp_demo = databricks.Notebook("ldp_demo",
1780
1780
  content_base64=std.base64encode(input=\"\"\"import dlt
1781
- json_path = "/databricks-datasets/wikipedia-datasets/data-001/clickstream/raw-uncompressed-json/2015_2_clickstream.json"
1781
+ json_path = \\"/databricks-datasets/wikipedia-datasets/data-001/clickstream/raw-uncompressed-json/2015_2_clickstream.json\\"
1782
1782
  @dlt.table(
1783
- comment="The raw wikipedia clickstream dataset, ingested from /databricks-datasets."
1783
+ comment=\\"The raw wikipedia clickstream dataset, ingested from /databricks-datasets.\\"
1784
1784
  )
1785
1785
  def clickstream_raw():
1786
- return (spark.read.format("json").load(json_path))
1786
+ return (spark.read.format(\\"json\\").load(json_path))
1787
1787
  \"\"\").result,
1788
1788
  language="PYTHON",
1789
1789
  path=f"{me.home}/ldp_demo")
@@ -39,6 +39,7 @@ class ProviderArgs:
39
39
  databricks_id_token_filepath: Optional[pulumi.Input[_builtins.str]] = None,
40
40
  debug_headers: Optional[pulumi.Input[_builtins.bool]] = None,
41
41
  debug_truncate_bytes: Optional[pulumi.Input[_builtins.int]] = None,
42
+ experimental_is_unified_host: Optional[pulumi.Input[_builtins.bool]] = None,
42
43
  google_credentials: Optional[pulumi.Input[_builtins.str]] = None,
43
44
  google_service_account: Optional[pulumi.Input[_builtins.str]] = None,
44
45
  host: Optional[pulumi.Input[_builtins.str]] = None,
@@ -54,7 +55,8 @@ class ProviderArgs:
54
55
  skip_verify: Optional[pulumi.Input[_builtins.bool]] = None,
55
56
  token: Optional[pulumi.Input[_builtins.str]] = None,
56
57
  username: Optional[pulumi.Input[_builtins.str]] = None,
57
- warehouse_id: Optional[pulumi.Input[_builtins.str]] = None):
58
+ warehouse_id: Optional[pulumi.Input[_builtins.str]] = None,
59
+ workspace_id: Optional[pulumi.Input[_builtins.str]] = None):
58
60
  """
59
61
  The set of arguments for constructing a Provider resource.
60
62
  """
@@ -98,6 +100,8 @@ class ProviderArgs:
98
100
  pulumi.set(__self__, "debug_headers", debug_headers)
99
101
  if debug_truncate_bytes is not None:
100
102
  pulumi.set(__self__, "debug_truncate_bytes", debug_truncate_bytes)
103
+ if experimental_is_unified_host is not None:
104
+ pulumi.set(__self__, "experimental_is_unified_host", experimental_is_unified_host)
101
105
  if google_credentials is not None:
102
106
  pulumi.set(__self__, "google_credentials", google_credentials)
103
107
  if google_service_account is not None:
@@ -130,6 +134,8 @@ class ProviderArgs:
130
134
  pulumi.set(__self__, "username", username)
131
135
  if warehouse_id is not None:
132
136
  pulumi.set(__self__, "warehouse_id", warehouse_id)
137
+ if workspace_id is not None:
138
+ pulumi.set(__self__, "workspace_id", workspace_id)
133
139
 
134
140
  @_builtins.property
135
141
  @pulumi.getter(name="accountId")
@@ -311,6 +317,15 @@ class ProviderArgs:
311
317
  def debug_truncate_bytes(self, value: Optional[pulumi.Input[_builtins.int]]):
312
318
  pulumi.set(self, "debug_truncate_bytes", value)
313
319
 
320
+ @_builtins.property
321
+ @pulumi.getter(name="experimentalIsUnifiedHost")
322
+ def experimental_is_unified_host(self) -> Optional[pulumi.Input[_builtins.bool]]:
323
+ return pulumi.get(self, "experimental_is_unified_host")
324
+
325
+ @experimental_is_unified_host.setter
326
+ def experimental_is_unified_host(self, value: Optional[pulumi.Input[_builtins.bool]]):
327
+ pulumi.set(self, "experimental_is_unified_host", value)
328
+
314
329
  @_builtins.property
315
330
  @pulumi.getter(name="googleCredentials")
316
331
  def google_credentials(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -455,6 +470,15 @@ class ProviderArgs:
455
470
  def warehouse_id(self, value: Optional[pulumi.Input[_builtins.str]]):
456
471
  pulumi.set(self, "warehouse_id", value)
457
472
 
473
+ @_builtins.property
474
+ @pulumi.getter(name="workspaceId")
475
+ def workspace_id(self) -> Optional[pulumi.Input[_builtins.str]]:
476
+ return pulumi.get(self, "workspace_id")
477
+
478
+ @workspace_id.setter
479
+ def workspace_id(self, value: Optional[pulumi.Input[_builtins.str]]):
480
+ pulumi.set(self, "workspace_id", value)
481
+
458
482
 
459
483
  @pulumi.type_token("pulumi:providers:databricks")
460
484
  class Provider(pulumi.ProviderResource):
@@ -482,6 +506,7 @@ class Provider(pulumi.ProviderResource):
482
506
  databricks_id_token_filepath: Optional[pulumi.Input[_builtins.str]] = None,
483
507
  debug_headers: Optional[pulumi.Input[_builtins.bool]] = None,
484
508
  debug_truncate_bytes: Optional[pulumi.Input[_builtins.int]] = None,
509
+ experimental_is_unified_host: Optional[pulumi.Input[_builtins.bool]] = None,
485
510
  google_credentials: Optional[pulumi.Input[_builtins.str]] = None,
486
511
  google_service_account: Optional[pulumi.Input[_builtins.str]] = None,
487
512
  host: Optional[pulumi.Input[_builtins.str]] = None,
@@ -498,6 +523,7 @@ class Provider(pulumi.ProviderResource):
498
523
  token: Optional[pulumi.Input[_builtins.str]] = None,
499
524
  username: Optional[pulumi.Input[_builtins.str]] = None,
500
525
  warehouse_id: Optional[pulumi.Input[_builtins.str]] = None,
526
+ workspace_id: Optional[pulumi.Input[_builtins.str]] = None,
501
527
  __props__=None):
502
528
  """
503
529
  The provider type for the databricks package. By default, resources use package-wide configuration
@@ -555,6 +581,7 @@ class Provider(pulumi.ProviderResource):
555
581
  databricks_id_token_filepath: Optional[pulumi.Input[_builtins.str]] = None,
556
582
  debug_headers: Optional[pulumi.Input[_builtins.bool]] = None,
557
583
  debug_truncate_bytes: Optional[pulumi.Input[_builtins.int]] = None,
584
+ experimental_is_unified_host: Optional[pulumi.Input[_builtins.bool]] = None,
558
585
  google_credentials: Optional[pulumi.Input[_builtins.str]] = None,
559
586
  google_service_account: Optional[pulumi.Input[_builtins.str]] = None,
560
587
  host: Optional[pulumi.Input[_builtins.str]] = None,
@@ -571,6 +598,7 @@ class Provider(pulumi.ProviderResource):
571
598
  token: Optional[pulumi.Input[_builtins.str]] = None,
572
599
  username: Optional[pulumi.Input[_builtins.str]] = None,
573
600
  warehouse_id: Optional[pulumi.Input[_builtins.str]] = None,
601
+ workspace_id: Optional[pulumi.Input[_builtins.str]] = None,
574
602
  __props__=None):
575
603
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
576
604
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -600,6 +628,7 @@ class Provider(pulumi.ProviderResource):
600
628
  __props__.__dict__["databricks_id_token_filepath"] = databricks_id_token_filepath
601
629
  __props__.__dict__["debug_headers"] = pulumi.Output.from_input(debug_headers).apply(pulumi.runtime.to_json) if debug_headers is not None else None
602
630
  __props__.__dict__["debug_truncate_bytes"] = pulumi.Output.from_input(debug_truncate_bytes).apply(pulumi.runtime.to_json) if debug_truncate_bytes is not None else None
631
+ __props__.__dict__["experimental_is_unified_host"] = pulumi.Output.from_input(experimental_is_unified_host).apply(pulumi.runtime.to_json) if experimental_is_unified_host is not None else None
603
632
  __props__.__dict__["google_credentials"] = None if google_credentials is None else pulumi.Output.secret(google_credentials)
604
633
  __props__.__dict__["google_service_account"] = google_service_account
605
634
  __props__.__dict__["host"] = host
@@ -616,6 +645,7 @@ class Provider(pulumi.ProviderResource):
616
645
  __props__.__dict__["token"] = None if token is None else pulumi.Output.secret(token)
617
646
  __props__.__dict__["username"] = username
618
647
  __props__.__dict__["warehouse_id"] = warehouse_id
648
+ __props__.__dict__["workspace_id"] = workspace_id
619
649
  secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["azureClientSecret", "clientSecret", "googleCredentials", "metadataServiceUrl", "password", "token"])
620
650
  opts = pulumi.ResourceOptions.merge(opts, secret_opts)
621
651
  super(Provider, __self__).__init__(
@@ -764,6 +794,11 @@ class Provider(pulumi.ProviderResource):
764
794
  def warehouse_id(self) -> pulumi.Output[Optional[_builtins.str]]:
765
795
  return pulumi.get(self, "warehouse_id")
766
796
 
797
+ @_builtins.property
798
+ @pulumi.getter(name="workspaceId")
799
+ def workspace_id(self) -> pulumi.Output[Optional[_builtins.str]]:
800
+ return pulumi.get(self, "workspace_id")
801
+
767
802
  @pulumi.output_type
768
803
  class TerraformConfigResult:
769
804
  def __init__(__self__, result=None):
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
3
  "name": "databricks",
4
- "version": "1.77.0-alpha.1762276204"
4
+ "version": "1.78.0"
5
5
  }