pulumi-databricks 1.77.0a1760375482__py3-none-any.whl → 1.79.0a1762839813__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 (176) hide show
  1. pulumi_databricks/__init__.py +54 -46
  2. pulumi_databricks/_inputs.py +26079 -32918
  3. pulumi_databricks/account_federation_policy.py +44 -16
  4. pulumi_databricks/account_network_policy.py +56 -2
  5. pulumi_databricks/account_setting_v2.py +46 -83
  6. pulumi_databricks/alert_v2.py +168 -134
  7. pulumi_databricks/app.py +153 -0
  8. pulumi_databricks/apps_settings_custom_template.py +75 -52
  9. pulumi_databricks/budget_policy.py +6 -2
  10. pulumi_databricks/catalog.py +65 -23
  11. pulumi_databricks/cluster.py +47 -168
  12. pulumi_databricks/cluster_policy.py +120 -0
  13. pulumi_databricks/config/__init__.pyi +4 -0
  14. pulumi_databricks/config/vars.py +8 -0
  15. pulumi_databricks/data_quality_monitor.py +453 -0
  16. pulumi_databricks/data_quality_refresh.py +492 -0
  17. pulumi_databricks/database_database_catalog.py +9 -52
  18. pulumi_databricks/database_instance.py +271 -120
  19. pulumi_databricks/database_synced_database_table.py +239 -52
  20. pulumi_databricks/entitlements.py +21 -21
  21. pulumi_databricks/entity_tag_assignment.py +83 -52
  22. pulumi_databricks/external_location.py +131 -7
  23. pulumi_databricks/external_metadata.py +16 -59
  24. pulumi_databricks/feature_engineering_feature.py +480 -0
  25. pulumi_databricks/feature_engineering_materialized_feature.py +397 -0
  26. pulumi_databricks/file.py +2 -2
  27. pulumi_databricks/get_account_federation_policies.py +22 -3
  28. pulumi_databricks/get_account_federation_policy.py +12 -27
  29. pulumi_databricks/get_account_network_policies.py +4 -0
  30. pulumi_databricks/get_account_network_policy.py +9 -18
  31. pulumi_databricks/get_account_setting_v2.py +36 -141
  32. pulumi_databricks/get_alert_v2.py +41 -107
  33. pulumi_databricks/get_alerts_v2.py +29 -31
  34. pulumi_databricks/get_app.py +21 -5
  35. pulumi_databricks/get_apps.py +22 -6
  36. pulumi_databricks/get_apps_settings_custom_template.py +11 -55
  37. pulumi_databricks/get_apps_settings_custom_templates.py +25 -21
  38. pulumi_databricks/get_aws_assume_role_policy.py +14 -14
  39. pulumi_databricks/get_aws_bucket_policy.py +10 -10
  40. pulumi_databricks/get_aws_unity_catalog_assume_role_policy.py +10 -10
  41. pulumi_databricks/get_aws_unity_catalog_policy.py +10 -10
  42. pulumi_databricks/get_budget_policies.py +70 -6
  43. pulumi_databricks/get_budget_policy.py +9 -32
  44. pulumi_databricks/get_catalog.py +21 -4
  45. pulumi_databricks/get_catalogs.py +23 -4
  46. pulumi_databricks/get_cluster.py +75 -4
  47. pulumi_databricks/get_cluster_policy.py +23 -4
  48. pulumi_databricks/get_clusters.py +21 -4
  49. pulumi_databricks/get_current_config.py +4 -4
  50. pulumi_databricks/get_current_metastore.py +21 -4
  51. pulumi_databricks/get_dashboards.py +20 -4
  52. pulumi_databricks/get_data_quality_monitor.py +210 -0
  53. pulumi_databricks/get_data_quality_monitors.py +143 -0
  54. pulumi_databricks/get_data_quality_refresh.py +270 -0
  55. pulumi_databricks/get_data_quality_refreshes.py +207 -0
  56. pulumi_databricks/get_database_database_catalog.py +10 -41
  57. pulumi_databricks/get_database_database_catalogs.py +37 -18
  58. pulumi_databricks/get_database_instance.py +93 -99
  59. pulumi_databricks/get_database_instances.py +20 -16
  60. pulumi_databricks/get_database_synced_database_table.py +11 -49
  61. pulumi_databricks/get_database_synced_database_tables.py +42 -23
  62. pulumi_databricks/get_directory.py +20 -1
  63. pulumi_databricks/get_entity_tag_assignment.py +63 -30
  64. pulumi_databricks/get_entity_tag_assignments.py +69 -23
  65. pulumi_databricks/get_external_location.py +21 -4
  66. pulumi_databricks/get_external_locations.py +23 -4
  67. pulumi_databricks/get_external_metadata.py +18 -73
  68. pulumi_databricks/get_external_metadatas.py +22 -16
  69. pulumi_databricks/get_feature_engineering_feature.py +179 -0
  70. pulumi_databricks/get_feature_engineering_features.py +103 -0
  71. pulumi_databricks/get_feature_engineering_materialized_feature.py +180 -0
  72. pulumi_databricks/get_feature_engineering_materialized_features.py +123 -0
  73. pulumi_databricks/get_functions.py +16 -1
  74. pulumi_databricks/get_instance_profiles.py +21 -4
  75. pulumi_databricks/get_jobs.py +23 -4
  76. pulumi_databricks/get_materialized_features_feature_tag.py +7 -32
  77. pulumi_databricks/get_materialized_features_feature_tags.py +50 -18
  78. pulumi_databricks/get_metastore.py +6 -6
  79. pulumi_databricks/get_mlflow_experiment.py +18 -1
  80. pulumi_databricks/get_mlflow_model.py +18 -1
  81. pulumi_databricks/get_mlflow_models.py +23 -4
  82. pulumi_databricks/get_node_type.py +42 -5
  83. pulumi_databricks/get_notebook.py +20 -1
  84. pulumi_databricks/get_notification_destinations.py +17 -1
  85. pulumi_databricks/get_online_store.py +11 -38
  86. pulumi_databricks/get_online_stores.py +20 -18
  87. pulumi_databricks/get_pipelines.py +23 -4
  88. pulumi_databricks/get_policy_info.py +21 -109
  89. pulumi_databricks/get_policy_infos.py +50 -25
  90. pulumi_databricks/get_quality_monitor_v2.py +8 -21
  91. pulumi_databricks/get_quality_monitors_v2.py +23 -25
  92. pulumi_databricks/get_registered_model.py +19 -4
  93. pulumi_databricks/get_registered_model_versions.py +19 -4
  94. pulumi_databricks/get_rfa_access_request_destinations.py +126 -0
  95. pulumi_databricks/get_schema.py +18 -1
  96. pulumi_databricks/get_schemas.py +23 -4
  97. pulumi_databricks/get_service_principal_federation_policies.py +23 -4
  98. pulumi_databricks/get_service_principal_federation_policy.py +15 -24
  99. pulumi_databricks/get_service_principals.py +64 -0
  100. pulumi_databricks/get_serving_endpoints.py +19 -4
  101. pulumi_databricks/get_share.py +117 -18
  102. pulumi_databricks/get_shares.py +22 -3
  103. pulumi_databricks/get_spark_version.py +20 -1
  104. pulumi_databricks/get_sql_warehouse.py +16 -1
  105. pulumi_databricks/get_sql_warehouses.py +20 -1
  106. pulumi_databricks/get_storage_credential.py +18 -1
  107. pulumi_databricks/get_storage_credentials.py +23 -4
  108. pulumi_databricks/get_table.py +18 -1
  109. pulumi_databricks/get_tables.py +20 -1
  110. pulumi_databricks/get_tag_policies.py +55 -23
  111. pulumi_databricks/get_tag_policy.py +60 -40
  112. pulumi_databricks/get_views.py +20 -1
  113. pulumi_databricks/get_volume.py +18 -1
  114. pulumi_databricks/get_volumes.py +20 -1
  115. pulumi_databricks/get_workspace_network_option.py +8 -16
  116. pulumi_databricks/get_workspace_setting_v2.py +41 -163
  117. pulumi_databricks/get_zones.py +20 -1
  118. pulumi_databricks/git_credential.py +54 -7
  119. pulumi_databricks/group.py +21 -21
  120. pulumi_databricks/instance_profile.py +0 -182
  121. pulumi_databricks/job.py +47 -0
  122. pulumi_databricks/library.py +165 -0
  123. pulumi_databricks/materialized_features_feature_tag.py +9 -52
  124. pulumi_databricks/metastore.py +81 -7
  125. pulumi_databricks/metastore_data_access.py +48 -0
  126. pulumi_databricks/mlflow_webhook.py +4 -4
  127. pulumi_databricks/mws_credentials.py +10 -10
  128. pulumi_databricks/mws_customer_managed_keys.py +0 -288
  129. pulumi_databricks/mws_log_delivery.py +146 -0
  130. pulumi_databricks/mws_storage_configurations.py +16 -16
  131. pulumi_databricks/mws_vpc_endpoint.py +56 -56
  132. pulumi_databricks/mws_workspaces.py +146 -65
  133. pulumi_databricks/notebook.py +49 -0
  134. pulumi_databricks/online_store.py +9 -52
  135. pulumi_databricks/outputs.py +11885 -13474
  136. pulumi_databricks/permission_assignment.py +299 -8
  137. pulumi_databricks/permissions.py +6 -6
  138. pulumi_databricks/pipeline.py +37 -3
  139. pulumi_databricks/policy_info.py +9 -52
  140. pulumi_databricks/provider.py +36 -1
  141. pulumi_databricks/pulumi-plugin.json +1 -1
  142. pulumi_databricks/quality_monitor.py +47 -0
  143. pulumi_databricks/quality_monitor_v2.py +9 -52
  144. pulumi_databricks/recipient.py +74 -0
  145. pulumi_databricks/registered_model.py +308 -36
  146. pulumi_databricks/rfa_access_request_destinations.py +286 -0
  147. pulumi_databricks/schema.py +7 -7
  148. pulumi_databricks/service_principal_federation_policy.py +48 -16
  149. pulumi_databricks/share.py +71 -84
  150. pulumi_databricks/sql_table.py +42 -14
  151. pulumi_databricks/storage_credential.py +15 -2
  152. pulumi_databricks/tag_policy.py +111 -54
  153. pulumi_databricks/user.py +21 -21
  154. pulumi_databricks/volume.py +7 -7
  155. pulumi_databricks/workspace_binding.py +0 -48
  156. pulumi_databricks/workspace_network_option.py +6 -2
  157. pulumi_databricks/workspace_setting_v2.py +49 -133
  158. {pulumi_databricks-1.77.0a1760375482.dist-info → pulumi_databricks-1.79.0a1762839813.dist-info}/METADATA +1 -1
  159. pulumi_databricks-1.79.0a1762839813.dist-info/RECORD +250 -0
  160. pulumi_databricks/clean_room_asset.py +0 -938
  161. pulumi_databricks/clean_room_auto_approval_rule.py +0 -473
  162. pulumi_databricks/clean_rooms_clean_room.py +0 -569
  163. pulumi_databricks/get_clean_room_asset.py +0 -416
  164. pulumi_databricks/get_clean_room_asset_revisions_clean_room_asset.py +0 -392
  165. pulumi_databricks/get_clean_room_asset_revisions_clean_room_assets.py +0 -121
  166. pulumi_databricks/get_clean_room_assets.py +0 -146
  167. pulumi_databricks/get_clean_room_auto_approval_rule.py +0 -217
  168. pulumi_databricks/get_clean_room_auto_approval_rules.py +0 -101
  169. pulumi_databricks/get_clean_rooms_clean_room.py +0 -289
  170. pulumi_databricks/get_clean_rooms_clean_rooms.py +0 -125
  171. pulumi_databricks/get_recipient_federation_policies.py +0 -101
  172. pulumi_databricks/get_recipient_federation_policy.py +0 -182
  173. pulumi_databricks/recipient_federation_policy.py +0 -393
  174. pulumi_databricks-1.77.0a1760375482.dist-info/RECORD +0 -250
  175. {pulumi_databricks-1.77.0a1760375482.dist-info → pulumi_databricks-1.79.0a1762839813.dist-info}/WHEEL +0 -0
  176. {pulumi_databricks-1.77.0a1760375482.dist-info → pulumi_databricks-1.79.0a1762839813.dist-info}/top_level.txt +0 -0
@@ -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
 
@@ -20,16 +22,33 @@ __all__ = ['PermissionAssignmentArgs', 'PermissionAssignment']
20
22
  class PermissionAssignmentArgs:
21
23
  def __init__(__self__, *,
22
24
  permissions: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
23
- principal_id: pulumi.Input[_builtins.str]):
25
+ group_name: Optional[pulumi.Input[_builtins.str]] = None,
26
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
27
+ provider_config: Optional[pulumi.Input['PermissionAssignmentProviderConfigArgs']] = None,
28
+ service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
29
+ user_name: Optional[pulumi.Input[_builtins.str]] = None):
24
30
  """
25
31
  The set of arguments for constructing a PermissionAssignment resource.
26
32
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: The list of workspace permissions to assign to the principal:
27
33
  * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
28
34
  * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
35
+ :param pulumi.Input[_builtins.str] group_name: the group name to assign to a workspace.
29
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:
38
+ :param pulumi.Input[_builtins.str] service_principal_name: the application ID of service principal to assign to a workspace.
39
+ :param pulumi.Input[_builtins.str] user_name: the user name (email) to assign to a workspace.
30
40
  """
31
41
  pulumi.set(__self__, "permissions", permissions)
32
- pulumi.set(__self__, "principal_id", principal_id)
42
+ if group_name is not None:
43
+ pulumi.set(__self__, "group_name", group_name)
44
+ if principal_id is not None:
45
+ pulumi.set(__self__, "principal_id", principal_id)
46
+ if provider_config is not None:
47
+ pulumi.set(__self__, "provider_config", provider_config)
48
+ if service_principal_name is not None:
49
+ pulumi.set(__self__, "service_principal_name", service_principal_name)
50
+ if user_name is not None:
51
+ pulumi.set(__self__, "user_name", user_name)
33
52
 
34
53
  @_builtins.property
35
54
  @pulumi.getter
@@ -45,35 +64,127 @@ class PermissionAssignmentArgs:
45
64
  def permissions(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
46
65
  pulumi.set(self, "permissions", value)
47
66
 
67
+ @_builtins.property
68
+ @pulumi.getter(name="groupName")
69
+ def group_name(self) -> Optional[pulumi.Input[_builtins.str]]:
70
+ """
71
+ the group name to assign to a workspace.
72
+ """
73
+ return pulumi.get(self, "group_name")
74
+
75
+ @group_name.setter
76
+ def group_name(self, value: Optional[pulumi.Input[_builtins.str]]):
77
+ pulumi.set(self, "group_name", value)
78
+
48
79
  @_builtins.property
49
80
  @pulumi.getter(name="principalId")
50
- def principal_id(self) -> pulumi.Input[_builtins.str]:
81
+ def principal_id(self) -> Optional[pulumi.Input[_builtins.str]]:
51
82
  """
52
83
  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.
53
84
  """
54
85
  return pulumi.get(self, "principal_id")
55
86
 
56
87
  @principal_id.setter
57
- def principal_id(self, value: pulumi.Input[_builtins.str]):
88
+ def principal_id(self, value: Optional[pulumi.Input[_builtins.str]]):
58
89
  pulumi.set(self, "principal_id", value)
59
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
+
103
+ @_builtins.property
104
+ @pulumi.getter(name="servicePrincipalName")
105
+ def service_principal_name(self) -> Optional[pulumi.Input[_builtins.str]]:
106
+ """
107
+ the application ID of service principal to assign to a workspace.
108
+ """
109
+ return pulumi.get(self, "service_principal_name")
110
+
111
+ @service_principal_name.setter
112
+ def service_principal_name(self, value: Optional[pulumi.Input[_builtins.str]]):
113
+ pulumi.set(self, "service_principal_name", value)
114
+
115
+ @_builtins.property
116
+ @pulumi.getter(name="userName")
117
+ def user_name(self) -> Optional[pulumi.Input[_builtins.str]]:
118
+ """
119
+ the user name (email) to assign to a workspace.
120
+ """
121
+ return pulumi.get(self, "user_name")
122
+
123
+ @user_name.setter
124
+ def user_name(self, value: Optional[pulumi.Input[_builtins.str]]):
125
+ pulumi.set(self, "user_name", value)
126
+
60
127
 
61
128
  @pulumi.input_type
62
129
  class _PermissionAssignmentState:
63
130
  def __init__(__self__, *,
131
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
132
+ group_name: Optional[pulumi.Input[_builtins.str]] = None,
64
133
  permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
65
- principal_id: Optional[pulumi.Input[_builtins.str]] = None):
134
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
135
+ provider_config: Optional[pulumi.Input['PermissionAssignmentProviderConfigArgs']] = None,
136
+ service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
137
+ user_name: Optional[pulumi.Input[_builtins.str]] = None):
66
138
  """
67
139
  Input properties used for looking up and filtering PermissionAssignment resources.
140
+ :param pulumi.Input[_builtins.str] display_name: the display name of the assigned principal.
141
+ :param pulumi.Input[_builtins.str] group_name: the group name to assign to a workspace.
68
142
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: The list of workspace permissions to assign to the principal:
69
143
  * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
70
144
  * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
71
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:
147
+ :param pulumi.Input[_builtins.str] service_principal_name: the application ID of service principal to assign to a workspace.
148
+ :param pulumi.Input[_builtins.str] user_name: the user name (email) to assign to a workspace.
72
149
  """
150
+ if display_name is not None:
151
+ pulumi.set(__self__, "display_name", display_name)
152
+ if group_name is not None:
153
+ pulumi.set(__self__, "group_name", group_name)
73
154
  if permissions is not None:
74
155
  pulumi.set(__self__, "permissions", permissions)
75
156
  if principal_id is not None:
76
157
  pulumi.set(__self__, "principal_id", principal_id)
158
+ if provider_config is not None:
159
+ pulumi.set(__self__, "provider_config", provider_config)
160
+ if service_principal_name is not None:
161
+ pulumi.set(__self__, "service_principal_name", service_principal_name)
162
+ if user_name is not None:
163
+ pulumi.set(__self__, "user_name", user_name)
164
+
165
+ @_builtins.property
166
+ @pulumi.getter(name="displayName")
167
+ def display_name(self) -> Optional[pulumi.Input[_builtins.str]]:
168
+ """
169
+ the display name of the assigned principal.
170
+ """
171
+ return pulumi.get(self, "display_name")
172
+
173
+ @display_name.setter
174
+ def display_name(self, value: Optional[pulumi.Input[_builtins.str]]):
175
+ pulumi.set(self, "display_name", value)
176
+
177
+ @_builtins.property
178
+ @pulumi.getter(name="groupName")
179
+ def group_name(self) -> Optional[pulumi.Input[_builtins.str]]:
180
+ """
181
+ the group name to assign to a workspace.
182
+ """
183
+ return pulumi.get(self, "group_name")
184
+
185
+ @group_name.setter
186
+ def group_name(self, value: Optional[pulumi.Input[_builtins.str]]):
187
+ pulumi.set(self, "group_name", value)
77
188
 
78
189
  @_builtins.property
79
190
  @pulumi.getter
@@ -101,6 +212,42 @@ class _PermissionAssignmentState:
101
212
  def principal_id(self, value: Optional[pulumi.Input[_builtins.str]]):
102
213
  pulumi.set(self, "principal_id", value)
103
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
+
227
+ @_builtins.property
228
+ @pulumi.getter(name="servicePrincipalName")
229
+ def service_principal_name(self) -> Optional[pulumi.Input[_builtins.str]]:
230
+ """
231
+ the application ID of service principal to assign to a workspace.
232
+ """
233
+ return pulumi.get(self, "service_principal_name")
234
+
235
+ @service_principal_name.setter
236
+ def service_principal_name(self, value: Optional[pulumi.Input[_builtins.str]]):
237
+ pulumi.set(self, "service_principal_name", value)
238
+
239
+ @_builtins.property
240
+ @pulumi.getter(name="userName")
241
+ def user_name(self) -> Optional[pulumi.Input[_builtins.str]]:
242
+ """
243
+ the user name (email) to assign to a workspace.
244
+ """
245
+ return pulumi.get(self, "user_name")
246
+
247
+ @user_name.setter
248
+ def user_name(self, value: Optional[pulumi.Input[_builtins.str]]):
249
+ pulumi.set(self, "user_name", value)
250
+
104
251
 
105
252
  @pulumi.type_token("databricks:index/permissionAssignment:PermissionAssignment")
106
253
  class PermissionAssignment(pulumi.CustomResource):
@@ -108,8 +255,12 @@ class PermissionAssignment(pulumi.CustomResource):
108
255
  def __init__(__self__,
109
256
  resource_name: str,
110
257
  opts: Optional[pulumi.ResourceOptions] = None,
258
+ group_name: Optional[pulumi.Input[_builtins.str]] = None,
111
259
  permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
112
260
  principal_id: Optional[pulumi.Input[_builtins.str]] = None,
261
+ provider_config: Optional[pulumi.Input[Union['PermissionAssignmentProviderConfigArgs', 'PermissionAssignmentProviderConfigArgsDict']]] = None,
262
+ service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
263
+ user_name: Optional[pulumi.Input[_builtins.str]] = None,
113
264
  __props__=None):
114
265
  """
115
266
  This resource is used to assign account-level users, service principals and groups to a Databricks workspace. To configure additional entitlements such as cluster creation, please use Entitlements
@@ -118,6 +269,8 @@ class PermissionAssignment(pulumi.CustomResource):
118
269
 
119
270
  ## Example Usage
120
271
 
272
+ ### Assign using `principal_id`
273
+
121
274
  In workspace context, adding account-level user to a workspace:
122
275
 
123
276
  ```python
@@ -160,6 +313,41 @@ class PermissionAssignment(pulumi.CustomResource):
160
313
  pulumi.export("databricksGroupId", workspace_level.id)
161
314
  ```
162
315
 
316
+ ### Assign using `user_name`, `group_name`, or `service_principal_name`
317
+
318
+ In workspace context, adding account-level user to a workspace:
319
+
320
+ ```python
321
+ import pulumi
322
+ import pulumi_databricks as databricks
323
+
324
+ add_user = databricks.PermissionAssignment("add_user",
325
+ user_name="me@example.com",
326
+ permissions=["USER"])
327
+ ```
328
+
329
+ In workspace context, adding account-level service principal to a workspace:
330
+
331
+ ```python
332
+ import pulumi
333
+ import pulumi_databricks as databricks
334
+
335
+ add_admin_spn = databricks.PermissionAssignment("add_admin_spn",
336
+ service_principal_name="00000000-0000-0000-0000-000000000000",
337
+ permissions=["ADMIN"])
338
+ ```
339
+
340
+ In workspace context, adding account-level group to a workspace:
341
+
342
+ ```python
343
+ import pulumi
344
+ import pulumi_databricks as databricks
345
+
346
+ this = databricks.PermissionAssignment("this",
347
+ group_name="example-group",
348
+ permissions=["USER"])
349
+ ```
350
+
163
351
  ## Related Resources
164
352
 
165
353
  The following resources are used in the same context:
@@ -193,10 +381,14 @@ class PermissionAssignment(pulumi.CustomResource):
193
381
 
194
382
  :param str resource_name: The name of the resource.
195
383
  :param pulumi.ResourceOptions opts: Options for the resource.
384
+ :param pulumi.Input[_builtins.str] group_name: the group name to assign to a workspace.
196
385
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: The list of workspace permissions to assign to the principal:
197
386
  * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
198
387
  * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
199
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:
390
+ :param pulumi.Input[_builtins.str] service_principal_name: the application ID of service principal to assign to a workspace.
391
+ :param pulumi.Input[_builtins.str] user_name: the user name (email) to assign to a workspace.
200
392
  """
201
393
  ...
202
394
  @overload
@@ -211,6 +403,8 @@ class PermissionAssignment(pulumi.CustomResource):
211
403
 
212
404
  ## Example Usage
213
405
 
406
+ ### Assign using `principal_id`
407
+
214
408
  In workspace context, adding account-level user to a workspace:
215
409
 
216
410
  ```python
@@ -253,6 +447,41 @@ class PermissionAssignment(pulumi.CustomResource):
253
447
  pulumi.export("databricksGroupId", workspace_level.id)
254
448
  ```
255
449
 
450
+ ### Assign using `user_name`, `group_name`, or `service_principal_name`
451
+
452
+ In workspace context, adding account-level user to a workspace:
453
+
454
+ ```python
455
+ import pulumi
456
+ import pulumi_databricks as databricks
457
+
458
+ add_user = databricks.PermissionAssignment("add_user",
459
+ user_name="me@example.com",
460
+ permissions=["USER"])
461
+ ```
462
+
463
+ In workspace context, adding account-level service principal to a workspace:
464
+
465
+ ```python
466
+ import pulumi
467
+ import pulumi_databricks as databricks
468
+
469
+ add_admin_spn = databricks.PermissionAssignment("add_admin_spn",
470
+ service_principal_name="00000000-0000-0000-0000-000000000000",
471
+ permissions=["ADMIN"])
472
+ ```
473
+
474
+ In workspace context, adding account-level group to a workspace:
475
+
476
+ ```python
477
+ import pulumi
478
+ import pulumi_databricks as databricks
479
+
480
+ this = databricks.PermissionAssignment("this",
481
+ group_name="example-group",
482
+ permissions=["USER"])
483
+ ```
484
+
256
485
  ## Related Resources
257
486
 
258
487
  The following resources are used in the same context:
@@ -299,8 +528,12 @@ class PermissionAssignment(pulumi.CustomResource):
299
528
  def _internal_init(__self__,
300
529
  resource_name: str,
301
530
  opts: Optional[pulumi.ResourceOptions] = None,
531
+ group_name: Optional[pulumi.Input[_builtins.str]] = None,
302
532
  permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
303
533
  principal_id: Optional[pulumi.Input[_builtins.str]] = None,
534
+ provider_config: Optional[pulumi.Input[Union['PermissionAssignmentProviderConfigArgs', 'PermissionAssignmentProviderConfigArgsDict']]] = None,
535
+ service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
536
+ user_name: Optional[pulumi.Input[_builtins.str]] = None,
304
537
  __props__=None):
305
538
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
306
539
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -310,12 +543,15 @@ class PermissionAssignment(pulumi.CustomResource):
310
543
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
311
544
  __props__ = PermissionAssignmentArgs.__new__(PermissionAssignmentArgs)
312
545
 
546
+ __props__.__dict__["group_name"] = group_name
313
547
  if permissions is None and not opts.urn:
314
548
  raise TypeError("Missing required property 'permissions'")
315
549
  __props__.__dict__["permissions"] = permissions
316
- if principal_id is None and not opts.urn:
317
- raise TypeError("Missing required property 'principal_id'")
318
550
  __props__.__dict__["principal_id"] = principal_id
551
+ __props__.__dict__["provider_config"] = provider_config
552
+ __props__.__dict__["service_principal_name"] = service_principal_name
553
+ __props__.__dict__["user_name"] = user_name
554
+ __props__.__dict__["display_name"] = None
319
555
  super(PermissionAssignment, __self__).__init__(
320
556
  'databricks:index/permissionAssignment:PermissionAssignment',
321
557
  resource_name,
@@ -326,8 +562,13 @@ class PermissionAssignment(pulumi.CustomResource):
326
562
  def get(resource_name: str,
327
563
  id: pulumi.Input[str],
328
564
  opts: Optional[pulumi.ResourceOptions] = None,
565
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
566
+ group_name: Optional[pulumi.Input[_builtins.str]] = None,
329
567
  permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
330
- principal_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'PermissionAssignment':
568
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
569
+ provider_config: Optional[pulumi.Input[Union['PermissionAssignmentProviderConfigArgs', 'PermissionAssignmentProviderConfigArgsDict']]] = None,
570
+ service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
571
+ user_name: Optional[pulumi.Input[_builtins.str]] = None) -> 'PermissionAssignment':
331
572
  """
332
573
  Get an existing PermissionAssignment resource's state with the given name, id, and optional extra
333
574
  properties used to qualify the lookup.
@@ -335,19 +576,45 @@ class PermissionAssignment(pulumi.CustomResource):
335
576
  :param str resource_name: The unique name of the resulting resource.
336
577
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
337
578
  :param pulumi.ResourceOptions opts: Options for the resource.
579
+ :param pulumi.Input[_builtins.str] display_name: the display name of the assigned principal.
580
+ :param pulumi.Input[_builtins.str] group_name: the group name to assign to a workspace.
338
581
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: The list of workspace permissions to assign to the principal:
339
582
  * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
340
583
  * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
341
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:
586
+ :param pulumi.Input[_builtins.str] service_principal_name: the application ID of service principal to assign to a workspace.
587
+ :param pulumi.Input[_builtins.str] user_name: the user name (email) to assign to a workspace.
342
588
  """
343
589
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
344
590
 
345
591
  __props__ = _PermissionAssignmentState.__new__(_PermissionAssignmentState)
346
592
 
593
+ __props__.__dict__["display_name"] = display_name
594
+ __props__.__dict__["group_name"] = group_name
347
595
  __props__.__dict__["permissions"] = permissions
348
596
  __props__.__dict__["principal_id"] = principal_id
597
+ __props__.__dict__["provider_config"] = provider_config
598
+ __props__.__dict__["service_principal_name"] = service_principal_name
599
+ __props__.__dict__["user_name"] = user_name
349
600
  return PermissionAssignment(resource_name, opts=opts, __props__=__props__)
350
601
 
602
+ @_builtins.property
603
+ @pulumi.getter(name="displayName")
604
+ def display_name(self) -> pulumi.Output[_builtins.str]:
605
+ """
606
+ the display name of the assigned principal.
607
+ """
608
+ return pulumi.get(self, "display_name")
609
+
610
+ @_builtins.property
611
+ @pulumi.getter(name="groupName")
612
+ def group_name(self) -> pulumi.Output[_builtins.str]:
613
+ """
614
+ the group name to assign to a workspace.
615
+ """
616
+ return pulumi.get(self, "group_name")
617
+
351
618
  @_builtins.property
352
619
  @pulumi.getter
353
620
  def permissions(self) -> pulumi.Output[Sequence[_builtins.str]]:
@@ -366,3 +633,27 @@ class PermissionAssignment(pulumi.CustomResource):
366
633
  """
367
634
  return pulumi.get(self, "principal_id")
368
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
+
644
+ @_builtins.property
645
+ @pulumi.getter(name="servicePrincipalName")
646
+ def service_principal_name(self) -> pulumi.Output[_builtins.str]:
647
+ """
648
+ the application ID of service principal to assign to a workspace.
649
+ """
650
+ return pulumi.get(self, "service_principal_name")
651
+
652
+ @_builtins.property
653
+ @pulumi.getter(name="userName")
654
+ def user_name(self) -> pulumi.Output[_builtins.str]:
655
+ """
656
+ the user name (email) to assign to a workspace.
657
+ """
658
+ return pulumi.get(self, "user_name")
659
+
@@ -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")
@@ -58,7 +58,8 @@ class PipelineArgs:
58
58
  tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
59
59
  target: Optional[pulumi.Input[_builtins.str]] = None,
60
60
  trigger: Optional[pulumi.Input['PipelineTriggerArgs']] = None,
61
- url: Optional[pulumi.Input[_builtins.str]] = None):
61
+ url: Optional[pulumi.Input[_builtins.str]] = None,
62
+ usage_policy_id: Optional[pulumi.Input[_builtins.str]] = None):
62
63
  """
63
64
  The set of arguments for constructing a Pipeline resource.
64
65
  :param pulumi.Input[_builtins.bool] allow_duplicate_names: Optional boolean flag. If false, deployment will fail if name conflicts with that of another pipeline. default is `false`.
@@ -161,6 +162,8 @@ class PipelineArgs:
161
162
  pulumi.set(__self__, "trigger", trigger)
162
163
  if url is not None:
163
164
  pulumi.set(__self__, "url", url)
165
+ if usage_policy_id is not None:
166
+ pulumi.set(__self__, "usage_policy_id", usage_policy_id)
164
167
 
165
168
  @_builtins.property
166
169
  @pulumi.getter(name="allowDuplicateNames")
@@ -573,6 +576,15 @@ class PipelineArgs:
573
576
  def url(self, value: Optional[pulumi.Input[_builtins.str]]):
574
577
  pulumi.set(self, "url", value)
575
578
 
579
+ @_builtins.property
580
+ @pulumi.getter(name="usagePolicyId")
581
+ def usage_policy_id(self) -> Optional[pulumi.Input[_builtins.str]]:
582
+ return pulumi.get(self, "usage_policy_id")
583
+
584
+ @usage_policy_id.setter
585
+ def usage_policy_id(self, value: Optional[pulumi.Input[_builtins.str]]):
586
+ pulumi.set(self, "usage_policy_id", value)
587
+
576
588
 
577
589
  @pulumi.input_type
578
590
  class _PipelineState:
@@ -614,7 +626,8 @@ class _PipelineState:
614
626
  tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
615
627
  target: Optional[pulumi.Input[_builtins.str]] = None,
616
628
  trigger: Optional[pulumi.Input['PipelineTriggerArgs']] = None,
617
- url: Optional[pulumi.Input[_builtins.str]] = None):
629
+ url: Optional[pulumi.Input[_builtins.str]] = None,
630
+ usage_policy_id: Optional[pulumi.Input[_builtins.str]] = None):
618
631
  """
619
632
  Input properties used for looking up and filtering Pipeline resources.
620
633
  :param pulumi.Input[_builtins.bool] allow_duplicate_names: Optional boolean flag. If false, deployment will fail if name conflicts with that of another pipeline. default is `false`.
@@ -717,6 +730,8 @@ class _PipelineState:
717
730
  pulumi.set(__self__, "trigger", trigger)
718
731
  if url is not None:
719
732
  pulumi.set(__self__, "url", url)
733
+ if usage_policy_id is not None:
734
+ pulumi.set(__self__, "usage_policy_id", usage_policy_id)
720
735
 
721
736
  @_builtins.property
722
737
  @pulumi.getter(name="allowDuplicateNames")
@@ -1129,6 +1144,15 @@ class _PipelineState:
1129
1144
  def url(self, value: Optional[pulumi.Input[_builtins.str]]):
1130
1145
  pulumi.set(self, "url", value)
1131
1146
 
1147
+ @_builtins.property
1148
+ @pulumi.getter(name="usagePolicyId")
1149
+ def usage_policy_id(self) -> Optional[pulumi.Input[_builtins.str]]:
1150
+ return pulumi.get(self, "usage_policy_id")
1151
+
1152
+ @usage_policy_id.setter
1153
+ def usage_policy_id(self, value: Optional[pulumi.Input[_builtins.str]]):
1154
+ pulumi.set(self, "usage_policy_id", value)
1155
+
1132
1156
 
1133
1157
  @pulumi.type_token("databricks:index/pipeline:Pipeline")
1134
1158
  class Pipeline(pulumi.CustomResource):
@@ -1174,6 +1198,7 @@ class Pipeline(pulumi.CustomResource):
1174
1198
  target: Optional[pulumi.Input[_builtins.str]] = None,
1175
1199
  trigger: Optional[pulumi.Input[Union['PipelineTriggerArgs', 'PipelineTriggerArgsDict']]] = None,
1176
1200
  url: Optional[pulumi.Input[_builtins.str]] = None,
1201
+ usage_policy_id: Optional[pulumi.Input[_builtins.str]] = None,
1177
1202
  __props__=None):
1178
1203
  """
1179
1204
  Use `Pipeline` to deploy [Lakeflow Declarative Pipelines](https://docs.databricks.com/aws/en/dlt).
@@ -1462,6 +1487,7 @@ class Pipeline(pulumi.CustomResource):
1462
1487
  target: Optional[pulumi.Input[_builtins.str]] = None,
1463
1488
  trigger: Optional[pulumi.Input[Union['PipelineTriggerArgs', 'PipelineTriggerArgsDict']]] = None,
1464
1489
  url: Optional[pulumi.Input[_builtins.str]] = None,
1490
+ usage_policy_id: Optional[pulumi.Input[_builtins.str]] = None,
1465
1491
  __props__=None):
1466
1492
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1467
1493
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -1509,6 +1535,7 @@ class Pipeline(pulumi.CustomResource):
1509
1535
  __props__.__dict__["target"] = target
1510
1536
  __props__.__dict__["trigger"] = trigger
1511
1537
  __props__.__dict__["url"] = url
1538
+ __props__.__dict__["usage_policy_id"] = usage_policy_id
1512
1539
  super(Pipeline, __self__).__init__(
1513
1540
  'databricks:index/pipeline:Pipeline',
1514
1541
  resource_name,
@@ -1556,7 +1583,8 @@ class Pipeline(pulumi.CustomResource):
1556
1583
  tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
1557
1584
  target: Optional[pulumi.Input[_builtins.str]] = None,
1558
1585
  trigger: Optional[pulumi.Input[Union['PipelineTriggerArgs', 'PipelineTriggerArgsDict']]] = None,
1559
- url: Optional[pulumi.Input[_builtins.str]] = None) -> 'Pipeline':
1586
+ url: Optional[pulumi.Input[_builtins.str]] = None,
1587
+ usage_policy_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'Pipeline':
1560
1588
  """
1561
1589
  Get an existing Pipeline resource's state with the given name, id, and optional extra
1562
1590
  properties used to qualify the lookup.
@@ -1630,6 +1658,7 @@ class Pipeline(pulumi.CustomResource):
1630
1658
  __props__.__dict__["target"] = target
1631
1659
  __props__.__dict__["trigger"] = trigger
1632
1660
  __props__.__dict__["url"] = url
1661
+ __props__.__dict__["usage_policy_id"] = usage_policy_id
1633
1662
  return Pipeline(resource_name, opts=opts, __props__=__props__)
1634
1663
 
1635
1664
  @_builtins.property
@@ -1891,3 +1920,8 @@ class Pipeline(pulumi.CustomResource):
1891
1920
  """
1892
1921
  return pulumi.get(self, "url")
1893
1922
 
1923
+ @_builtins.property
1924
+ @pulumi.getter(name="usagePolicyId")
1925
+ def usage_policy_id(self) -> pulumi.Output[Optional[_builtins.str]]:
1926
+ return pulumi.get(self, "usage_policy_id")
1927
+