pulumi-databricks 1.74.0a1753335781__py3-none-any.whl → 1.77.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 (252) hide show
  1. pulumi_databricks/__init__.py +185 -12
  2. pulumi_databricks/_inputs.py +30467 -20225
  3. pulumi_databricks/access_control_rule_set.py +28 -29
  4. pulumi_databricks/account_federation_policy.py +473 -0
  5. pulumi_databricks/account_network_policy.py +74 -43
  6. pulumi_databricks/account_setting_v2.py +759 -0
  7. pulumi_databricks/aibi_dashboard_embedding_access_policy_setting.py +30 -31
  8. pulumi_databricks/aibi_dashboard_embedding_approved_domains_setting.py +30 -31
  9. pulumi_databricks/alert.py +185 -186
  10. pulumi_databricks/alert_v2.py +369 -211
  11. pulumi_databricks/app.py +315 -209
  12. pulumi_databricks/apps_settings_custom_template.py +531 -0
  13. pulumi_databricks/artifact_allowlist.py +72 -73
  14. pulumi_databricks/automatic_cluster_update_workspace_setting.py +30 -31
  15. pulumi_databricks/budget.py +84 -85
  16. pulumi_databricks/budget_policy.py +75 -53
  17. pulumi_databricks/catalog.py +544 -225
  18. pulumi_databricks/catalog_workspace_binding.py +82 -83
  19. pulumi_databricks/cluster.py +561 -683
  20. pulumi_databricks/cluster_policy.py +115 -116
  21. pulumi_databricks/compliance_security_profile_workspace_setting.py +30 -31
  22. pulumi_databricks/config/__init__.py +1 -1
  23. pulumi_databricks/config/__init__.pyi +3 -2
  24. pulumi_databricks/config/vars.py +40 -37
  25. pulumi_databricks/connection.py +346 -211
  26. pulumi_databricks/credential.py +262 -263
  27. pulumi_databricks/custom_app_integration.py +175 -176
  28. pulumi_databricks/dashboard.py +207 -208
  29. pulumi_databricks/data_quality_monitor.py +453 -0
  30. pulumi_databricks/data_quality_refresh.py +492 -0
  31. pulumi_databricks/database_database_catalog.py +437 -0
  32. pulumi_databricks/database_instance.py +938 -137
  33. pulumi_databricks/database_synced_database_table.py +589 -0
  34. pulumi_databricks/dbfs_file.py +87 -84
  35. pulumi_databricks/default_namespace_setting.py +30 -31
  36. pulumi_databricks/directory.py +61 -62
  37. pulumi_databricks/disable_legacy_access_setting.py +109 -33
  38. pulumi_databricks/disable_legacy_dbfs_setting.py +58 -39
  39. pulumi_databricks/disable_legacy_features_setting.py +62 -37
  40. pulumi_databricks/enhanced_security_monitoring_workspace_setting.py +30 -31
  41. pulumi_databricks/entitlements.py +148 -149
  42. pulumi_databricks/entity_tag_assignment.py +409 -0
  43. pulumi_databricks/external_location.py +276 -290
  44. pulumi_databricks/external_metadata.py +726 -0
  45. pulumi_databricks/feature_engineering_feature.py +480 -0
  46. pulumi_databricks/feature_engineering_materialized_feature.py +397 -0
  47. pulumi_databricks/file.py +96 -97
  48. pulumi_databricks/get_account_federation_policies.py +127 -0
  49. pulumi_databricks/get_account_federation_policy.py +214 -0
  50. pulumi_databricks/get_account_network_policies.py +36 -7
  51. pulumi_databricks/get_account_network_policy.py +33 -29
  52. pulumi_databricks/get_account_setting_v2.py +331 -0
  53. pulumi_databricks/get_alert_v2.py +100 -84
  54. pulumi_databricks/get_alerts_v2.py +35 -17
  55. pulumi_databricks/get_app.py +31 -20
  56. pulumi_databricks/get_apps.py +26 -15
  57. pulumi_databricks/get_apps_settings_custom_template.py +207 -0
  58. pulumi_databricks/get_apps_settings_custom_templates.py +133 -0
  59. pulumi_databricks/get_aws_assume_role_policy.py +27 -28
  60. pulumi_databricks/get_aws_bucket_policy.py +39 -40
  61. pulumi_databricks/get_aws_cross_account_policy.py +47 -48
  62. pulumi_databricks/get_aws_unity_catalog_assume_role_policy.py +35 -36
  63. pulumi_databricks/get_aws_unity_catalog_policy.py +35 -36
  64. pulumi_databricks/get_budget_policies.py +74 -11
  65. pulumi_databricks/get_budget_policy.py +43 -39
  66. pulumi_databricks/get_catalog.py +35 -19
  67. pulumi_databricks/get_catalogs.py +32 -14
  68. pulumi_databricks/get_cluster.py +41 -25
  69. pulumi_databricks/get_cluster_policy.py +72 -54
  70. pulumi_databricks/get_clusters.py +41 -25
  71. pulumi_databricks/get_current_config.py +23 -24
  72. pulumi_databricks/get_current_metastore.py +29 -13
  73. pulumi_databricks/get_current_user.py +17 -18
  74. pulumi_databricks/get_dashboards.py +34 -15
  75. pulumi_databricks/get_data_quality_monitor.py +210 -0
  76. pulumi_databricks/get_data_quality_monitors.py +143 -0
  77. pulumi_databricks/get_data_quality_refresh.py +270 -0
  78. pulumi_databricks/get_data_quality_refreshes.py +207 -0
  79. pulumi_databricks/get_database_database_catalog.py +176 -0
  80. pulumi_databricks/get_database_database_catalogs.py +120 -0
  81. pulumi_databricks/get_database_instance.py +274 -50
  82. pulumi_databricks/get_database_instances.py +35 -11
  83. pulumi_databricks/get_database_synced_database_table.py +225 -0
  84. pulumi_databricks/get_database_synced_database_tables.py +120 -0
  85. pulumi_databricks/get_dbfs_file.py +19 -20
  86. pulumi_databricks/get_dbfs_file_paths.py +16 -17
  87. pulumi_databricks/get_directory.py +43 -25
  88. pulumi_databricks/get_entity_tag_assignment.py +202 -0
  89. pulumi_databricks/get_entity_tag_assignments.py +187 -0
  90. pulumi_databricks/get_external_location.py +35 -19
  91. pulumi_databricks/get_external_locations.py +32 -14
  92. pulumi_databricks/get_external_metadata.py +292 -0
  93. pulumi_databricks/get_external_metadatas.py +135 -0
  94. pulumi_databricks/get_feature_engineering_feature.py +179 -0
  95. pulumi_databricks/get_feature_engineering_features.py +103 -0
  96. pulumi_databricks/get_feature_engineering_materialized_feature.py +180 -0
  97. pulumi_databricks/get_feature_engineering_materialized_features.py +123 -0
  98. pulumi_databricks/get_functions.py +38 -24
  99. pulumi_databricks/get_group.py +85 -86
  100. pulumi_databricks/get_instance_pool.py +10 -11
  101. pulumi_databricks/get_instance_profiles.py +25 -9
  102. pulumi_databricks/get_job.py +22 -23
  103. pulumi_databricks/get_jobs.py +44 -26
  104. pulumi_databricks/get_materialized_features_feature_tag.py +102 -0
  105. pulumi_databricks/get_materialized_features_feature_tags.py +133 -0
  106. pulumi_databricks/get_metastore.py +28 -29
  107. pulumi_databricks/get_metastores.py +9 -10
  108. pulumi_databricks/get_mlflow_experiment.py +62 -46
  109. pulumi_databricks/get_mlflow_model.py +47 -31
  110. pulumi_databricks/get_mlflow_models.py +32 -14
  111. pulumi_databricks/get_mws_credentials.py +9 -10
  112. pulumi_databricks/get_mws_network_connectivity_config.py +40 -41
  113. pulumi_databricks/get_mws_network_connectivity_configs.py +15 -16
  114. pulumi_databricks/get_mws_workspaces.py +5 -6
  115. pulumi_databricks/get_node_type.py +123 -87
  116. pulumi_databricks/get_notebook.py +37 -38
  117. pulumi_databricks/get_notebook_paths.py +16 -17
  118. pulumi_databricks/get_notification_destinations.py +33 -18
  119. pulumi_databricks/get_online_store.py +36 -27
  120. pulumi_databricks/get_online_stores.py +33 -13
  121. pulumi_databricks/get_pipelines.py +49 -31
  122. pulumi_databricks/get_policy_info.py +338 -0
  123. pulumi_databricks/get_policy_infos.py +169 -0
  124. pulumi_databricks/get_quality_monitor_v2.py +21 -18
  125. pulumi_databricks/get_quality_monitors_v2.py +26 -8
  126. pulumi_databricks/get_registered_model.py +41 -27
  127. pulumi_databricks/get_registered_model_versions.py +29 -15
  128. pulumi_databricks/get_rfa_access_request_destinations.py +126 -0
  129. pulumi_databricks/get_schema.py +32 -16
  130. pulumi_databricks/get_schemas.py +38 -20
  131. pulumi_databricks/get_service_principal.py +80 -58
  132. pulumi_databricks/get_service_principal_federation_policies.py +151 -0
  133. pulumi_databricks/get_service_principal_federation_policy.py +220 -0
  134. pulumi_databricks/get_service_principals.py +16 -17
  135. pulumi_databricks/get_serving_endpoints.py +23 -9
  136. pulumi_databricks/get_share.py +130 -32
  137. pulumi_databricks/get_shares.py +29 -11
  138. pulumi_databricks/get_spark_version.py +87 -69
  139. pulumi_databricks/get_sql_warehouse.py +124 -110
  140. pulumi_databricks/get_sql_warehouses.py +37 -19
  141. pulumi_databricks/get_storage_credential.py +32 -16
  142. pulumi_databricks/get_storage_credentials.py +32 -14
  143. pulumi_databricks/get_table.py +30 -14
  144. pulumi_databricks/get_tables.py +41 -23
  145. pulumi_databricks/get_tag_policies.py +139 -0
  146. pulumi_databricks/get_tag_policy.py +175 -0
  147. pulumi_databricks/get_user.py +33 -34
  148. pulumi_databricks/get_views.py +41 -23
  149. pulumi_databricks/get_volume.py +32 -16
  150. pulumi_databricks/get_volumes.py +41 -23
  151. pulumi_databricks/get_workspace_network_option.py +45 -26
  152. pulumi_databricks/get_workspace_setting_v2.py +331 -0
  153. pulumi_databricks/get_zones.py +39 -21
  154. pulumi_databricks/git_credential.py +242 -76
  155. pulumi_databricks/global_init_script.py +99 -100
  156. pulumi_databricks/grant.py +215 -212
  157. pulumi_databricks/grants.py +200 -211
  158. pulumi_databricks/group.py +176 -177
  159. pulumi_databricks/group_instance_profile.py +37 -38
  160. pulumi_databricks/group_member.py +37 -38
  161. pulumi_databricks/group_role.py +37 -38
  162. pulumi_databricks/instance_pool.py +168 -169
  163. pulumi_databricks/instance_profile.py +69 -70
  164. pulumi_databricks/ip_access_list.py +71 -72
  165. pulumi_databricks/job.py +426 -346
  166. pulumi_databricks/lakehouse_monitor.py +199 -200
  167. pulumi_databricks/library.py +264 -99
  168. pulumi_databricks/materialized_features_feature_tag.py +213 -0
  169. pulumi_databricks/metastore.py +254 -255
  170. pulumi_databricks/metastore_assignment.py +52 -53
  171. pulumi_databricks/metastore_data_access.py +153 -154
  172. pulumi_databricks/metastore_provider.py +69 -70
  173. pulumi_databricks/mlflow_experiment.py +108 -109
  174. pulumi_databricks/mlflow_model.py +45 -46
  175. pulumi_databricks/mlflow_webhook.py +75 -76
  176. pulumi_databricks/model_serving.py +195 -74
  177. pulumi_databricks/model_serving_provisioned_throughput.py +100 -54
  178. pulumi_databricks/mount.py +103 -104
  179. pulumi_databricks/mws_credentials.py +99 -100
  180. pulumi_databricks/mws_customer_managed_keys.py +75 -76
  181. pulumi_databricks/mws_log_delivery.py +188 -189
  182. pulumi_databricks/mws_ncc_binding.py +35 -36
  183. pulumi_databricks/mws_ncc_private_endpoint_rule.py +312 -289
  184. pulumi_databricks/mws_network_connectivity_config.py +136 -98
  185. pulumi_databricks/mws_networks.py +159 -160
  186. pulumi_databricks/mws_permission_assignment.py +70 -71
  187. pulumi_databricks/mws_private_access_settings.py +116 -117
  188. pulumi_databricks/mws_storage_configurations.py +74 -75
  189. pulumi_databricks/mws_vpc_endpoint.py +149 -150
  190. pulumi_databricks/mws_workspaces.py +464 -418
  191. pulumi_databricks/notebook.py +143 -144
  192. pulumi_databricks/notification_destination.py +38 -39
  193. pulumi_databricks/obo_token.py +63 -64
  194. pulumi_databricks/online_store.py +121 -70
  195. pulumi_databricks/online_table.py +41 -42
  196. pulumi_databricks/outputs.py +47821 -30802
  197. pulumi_databricks/permission_assignment.py +298 -57
  198. pulumi_databricks/permissions.py +523 -362
  199. pulumi_databricks/pipeline.py +515 -480
  200. pulumi_databricks/policy_info.py +916 -0
  201. pulumi_databricks/provider.py +283 -269
  202. pulumi_databricks/pulumi-plugin.json +1 -1
  203. pulumi_databricks/quality_monitor.py +263 -217
  204. pulumi_databricks/quality_monitor_v2.py +49 -46
  205. pulumi_databricks/query.py +227 -228
  206. pulumi_databricks/recipient.py +208 -209
  207. pulumi_databricks/registered_model.py +393 -122
  208. pulumi_databricks/repo.py +117 -118
  209. pulumi_databricks/restrict_workspace_admins_setting.py +30 -31
  210. pulumi_databricks/rfa_access_request_destinations.py +286 -0
  211. pulumi_databricks/schema.py +159 -160
  212. pulumi_databricks/secret.py +72 -73
  213. pulumi_databricks/secret_acl.py +52 -53
  214. pulumi_databricks/secret_scope.py +55 -56
  215. pulumi_databricks/service_principal.py +279 -278
  216. pulumi_databricks/service_principal_federation_policy.py +469 -0
  217. pulumi_databricks/service_principal_role.py +35 -36
  218. pulumi_databricks/service_principal_secret.py +156 -157
  219. pulumi_databricks/share.py +186 -187
  220. pulumi_databricks/sql_alert.py +98 -99
  221. pulumi_databricks/sql_dashboard.py +94 -95
  222. pulumi_databricks/sql_endpoint.py +298 -266
  223. pulumi_databricks/sql_global_config.py +103 -104
  224. pulumi_databricks/sql_permissions.py +121 -122
  225. pulumi_databricks/sql_query.py +150 -151
  226. pulumi_databricks/sql_table.py +310 -283
  227. pulumi_databricks/sql_visualization.py +92 -93
  228. pulumi_databricks/sql_widget.py +91 -88
  229. pulumi_databricks/storage_credential.py +236 -184
  230. pulumi_databricks/system_schema.py +50 -51
  231. pulumi_databricks/table.py +147 -148
  232. pulumi_databricks/tag_policy.py +357 -0
  233. pulumi_databricks/token.py +83 -84
  234. pulumi_databricks/user.py +284 -285
  235. pulumi_databricks/user_instance_profile.py +35 -36
  236. pulumi_databricks/user_role.py +35 -36
  237. pulumi_databricks/vector_search_endpoint.py +117 -118
  238. pulumi_databricks/vector_search_index.py +86 -87
  239. pulumi_databricks/volume.py +129 -130
  240. pulumi_databricks/workspace_binding.py +82 -131
  241. pulumi_databricks/workspace_conf.py +18 -19
  242. pulumi_databricks/workspace_file.py +100 -101
  243. pulumi_databricks/workspace_network_option.py +89 -40
  244. pulumi_databricks/workspace_setting_v2.py +759 -0
  245. {pulumi_databricks-1.74.0a1753335781.dist-info → pulumi_databricks-1.77.0.dist-info}/METADATA +1 -1
  246. pulumi_databricks-1.77.0.dist-info/RECORD +250 -0
  247. pulumi_databricks/get_recipient_federation_policies.py +0 -83
  248. pulumi_databricks/get_recipient_federation_policy.py +0 -166
  249. pulumi_databricks/recipient_federation_policy.py +0 -347
  250. pulumi_databricks-1.74.0a1753335781.dist-info/RECORD +0 -205
  251. {pulumi_databricks-1.74.0a1753335781.dist-info → pulumi_databricks-1.77.0.dist-info}/WHEEL +0 -0
  252. {pulumi_databricks-1.74.0a1753335781.dist-info → pulumi_databricks-1.77.0.dist-info}/top_level.txt +0 -0
@@ -2,8 +2,7 @@
2
2
  # *** WARNING: this file was generated by pulumi-language-python. ***
3
3
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
 
5
- import builtins
6
- import copy
5
+ import builtins as _builtins
7
6
  import warnings
8
7
  import sys
9
8
  import pulumi
@@ -20,88 +19,201 @@ __all__ = ['PermissionAssignmentArgs', 'PermissionAssignment']
20
19
  @pulumi.input_type
21
20
  class PermissionAssignmentArgs:
22
21
  def __init__(__self__, *,
23
- permissions: pulumi.Input[Sequence[pulumi.Input[builtins.str]]],
24
- principal_id: pulumi.Input[builtins.str]):
22
+ permissions: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
23
+ group_name: Optional[pulumi.Input[_builtins.str]] = None,
24
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
25
+ service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
26
+ user_name: Optional[pulumi.Input[_builtins.str]] = None):
25
27
  """
26
28
  The set of arguments for constructing a PermissionAssignment resource.
27
- :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] permissions: The list of workspace permissions to assign to the principal:
28
- * `"USER"` - Can access the workspace with basic privileges.
29
- * `"ADMIN"` - Can access the workspace and has workspace admin privileges to manage users and groups, workspace configurations, and more.
30
- :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.
29
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: The list of workspace permissions to assign to the principal:
30
+ * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
31
+ * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
32
+ :param pulumi.Input[_builtins.str] group_name: the group name to assign to a workspace.
33
+ :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.
34
+ :param pulumi.Input[_builtins.str] service_principal_name: the application ID of service principal to assign to a workspace.
35
+ :param pulumi.Input[_builtins.str] user_name: the user name (email) to assign to a workspace.
31
36
  """
32
37
  pulumi.set(__self__, "permissions", permissions)
33
- pulumi.set(__self__, "principal_id", principal_id)
38
+ if group_name is not None:
39
+ pulumi.set(__self__, "group_name", group_name)
40
+ if principal_id is not None:
41
+ pulumi.set(__self__, "principal_id", principal_id)
42
+ if service_principal_name is not None:
43
+ pulumi.set(__self__, "service_principal_name", service_principal_name)
44
+ if user_name is not None:
45
+ pulumi.set(__self__, "user_name", user_name)
34
46
 
35
- @property
47
+ @_builtins.property
36
48
  @pulumi.getter
37
- def permissions(self) -> pulumi.Input[Sequence[pulumi.Input[builtins.str]]]:
49
+ def permissions(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
38
50
  """
39
51
  The list of workspace permissions to assign to the principal:
40
- * `"USER"` - Can access the workspace with basic privileges.
41
- * `"ADMIN"` - Can access the workspace and has workspace admin privileges to manage users and groups, workspace configurations, and more.
52
+ * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
53
+ * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
42
54
  """
43
55
  return pulumi.get(self, "permissions")
44
56
 
45
57
  @permissions.setter
46
- def permissions(self, value: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]):
58
+ def permissions(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
47
59
  pulumi.set(self, "permissions", value)
48
60
 
49
- @property
61
+ @_builtins.property
62
+ @pulumi.getter(name="groupName")
63
+ def group_name(self) -> Optional[pulumi.Input[_builtins.str]]:
64
+ """
65
+ the group name to assign to a workspace.
66
+ """
67
+ return pulumi.get(self, "group_name")
68
+
69
+ @group_name.setter
70
+ def group_name(self, value: Optional[pulumi.Input[_builtins.str]]):
71
+ pulumi.set(self, "group_name", value)
72
+
73
+ @_builtins.property
50
74
  @pulumi.getter(name="principalId")
51
- def principal_id(self) -> pulumi.Input[builtins.str]:
75
+ def principal_id(self) -> Optional[pulumi.Input[_builtins.str]]:
52
76
  """
53
77
  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.
54
78
  """
55
79
  return pulumi.get(self, "principal_id")
56
80
 
57
81
  @principal_id.setter
58
- def principal_id(self, value: pulumi.Input[builtins.str]):
82
+ def principal_id(self, value: Optional[pulumi.Input[_builtins.str]]):
59
83
  pulumi.set(self, "principal_id", value)
60
84
 
85
+ @_builtins.property
86
+ @pulumi.getter(name="servicePrincipalName")
87
+ def service_principal_name(self) -> Optional[pulumi.Input[_builtins.str]]:
88
+ """
89
+ the application ID of service principal to assign to a workspace.
90
+ """
91
+ return pulumi.get(self, "service_principal_name")
92
+
93
+ @service_principal_name.setter
94
+ def service_principal_name(self, value: Optional[pulumi.Input[_builtins.str]]):
95
+ pulumi.set(self, "service_principal_name", value)
96
+
97
+ @_builtins.property
98
+ @pulumi.getter(name="userName")
99
+ def user_name(self) -> Optional[pulumi.Input[_builtins.str]]:
100
+ """
101
+ the user name (email) to assign to a workspace.
102
+ """
103
+ return pulumi.get(self, "user_name")
104
+
105
+ @user_name.setter
106
+ def user_name(self, value: Optional[pulumi.Input[_builtins.str]]):
107
+ pulumi.set(self, "user_name", value)
108
+
61
109
 
62
110
  @pulumi.input_type
63
111
  class _PermissionAssignmentState:
64
112
  def __init__(__self__, *,
65
- permissions: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
66
- principal_id: Optional[pulumi.Input[builtins.str]] = None):
113
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
114
+ group_name: Optional[pulumi.Input[_builtins.str]] = None,
115
+ permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
116
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
117
+ service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
118
+ user_name: Optional[pulumi.Input[_builtins.str]] = None):
67
119
  """
68
120
  Input properties used for looking up and filtering PermissionAssignment resources.
69
- :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] permissions: The list of workspace permissions to assign to the principal:
70
- * `"USER"` - Can access the workspace with basic privileges.
71
- * `"ADMIN"` - Can access the workspace and has workspace admin privileges to manage users and groups, workspace configurations, and more.
72
- :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.
121
+ :param pulumi.Input[_builtins.str] display_name: the display name of the assigned principal.
122
+ :param pulumi.Input[_builtins.str] group_name: the group name to assign to a workspace.
123
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: The list of workspace permissions to assign to the principal:
124
+ * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
125
+ * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
126
+ :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.
127
+ :param pulumi.Input[_builtins.str] service_principal_name: the application ID of service principal to assign to a workspace.
128
+ :param pulumi.Input[_builtins.str] user_name: the user name (email) to assign to a workspace.
73
129
  """
130
+ if display_name is not None:
131
+ pulumi.set(__self__, "display_name", display_name)
132
+ if group_name is not None:
133
+ pulumi.set(__self__, "group_name", group_name)
74
134
  if permissions is not None:
75
135
  pulumi.set(__self__, "permissions", permissions)
76
136
  if principal_id is not None:
77
137
  pulumi.set(__self__, "principal_id", principal_id)
138
+ if service_principal_name is not None:
139
+ pulumi.set(__self__, "service_principal_name", service_principal_name)
140
+ if user_name is not None:
141
+ pulumi.set(__self__, "user_name", user_name)
142
+
143
+ @_builtins.property
144
+ @pulumi.getter(name="displayName")
145
+ def display_name(self) -> Optional[pulumi.Input[_builtins.str]]:
146
+ """
147
+ the display name of the assigned principal.
148
+ """
149
+ return pulumi.get(self, "display_name")
150
+
151
+ @display_name.setter
152
+ def display_name(self, value: Optional[pulumi.Input[_builtins.str]]):
153
+ pulumi.set(self, "display_name", value)
154
+
155
+ @_builtins.property
156
+ @pulumi.getter(name="groupName")
157
+ def group_name(self) -> Optional[pulumi.Input[_builtins.str]]:
158
+ """
159
+ the group name to assign to a workspace.
160
+ """
161
+ return pulumi.get(self, "group_name")
162
+
163
+ @group_name.setter
164
+ def group_name(self, value: Optional[pulumi.Input[_builtins.str]]):
165
+ pulumi.set(self, "group_name", value)
78
166
 
79
- @property
167
+ @_builtins.property
80
168
  @pulumi.getter
81
- def permissions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
169
+ def permissions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
82
170
  """
83
171
  The list of workspace permissions to assign to the principal:
84
- * `"USER"` - Can access the workspace with basic privileges.
85
- * `"ADMIN"` - Can access the workspace and has workspace admin privileges to manage users and groups, workspace configurations, and more.
172
+ * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
173
+ * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
86
174
  """
87
175
  return pulumi.get(self, "permissions")
88
176
 
89
177
  @permissions.setter
90
- def permissions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
178
+ def permissions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
91
179
  pulumi.set(self, "permissions", value)
92
180
 
93
- @property
181
+ @_builtins.property
94
182
  @pulumi.getter(name="principalId")
95
- def principal_id(self) -> Optional[pulumi.Input[builtins.str]]:
183
+ def principal_id(self) -> Optional[pulumi.Input[_builtins.str]]:
96
184
  """
97
185
  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.
98
186
  """
99
187
  return pulumi.get(self, "principal_id")
100
188
 
101
189
  @principal_id.setter
102
- def principal_id(self, value: Optional[pulumi.Input[builtins.str]]):
190
+ def principal_id(self, value: Optional[pulumi.Input[_builtins.str]]):
103
191
  pulumi.set(self, "principal_id", value)
104
192
 
193
+ @_builtins.property
194
+ @pulumi.getter(name="servicePrincipalName")
195
+ def service_principal_name(self) -> Optional[pulumi.Input[_builtins.str]]:
196
+ """
197
+ the application ID of service principal to assign to a workspace.
198
+ """
199
+ return pulumi.get(self, "service_principal_name")
200
+
201
+ @service_principal_name.setter
202
+ def service_principal_name(self, value: Optional[pulumi.Input[_builtins.str]]):
203
+ pulumi.set(self, "service_principal_name", value)
204
+
205
+ @_builtins.property
206
+ @pulumi.getter(name="userName")
207
+ def user_name(self) -> Optional[pulumi.Input[_builtins.str]]:
208
+ """
209
+ the user name (email) to assign to a workspace.
210
+ """
211
+ return pulumi.get(self, "user_name")
212
+
213
+ @user_name.setter
214
+ def user_name(self, value: Optional[pulumi.Input[_builtins.str]]):
215
+ pulumi.set(self, "user_name", value)
216
+
105
217
 
106
218
  @pulumi.type_token("databricks:index/permissionAssignment:PermissionAssignment")
107
219
  class PermissionAssignment(pulumi.CustomResource):
@@ -109,16 +221,21 @@ class PermissionAssignment(pulumi.CustomResource):
109
221
  def __init__(__self__,
110
222
  resource_name: str,
111
223
  opts: Optional[pulumi.ResourceOptions] = None,
112
- permissions: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
113
- principal_id: Optional[pulumi.Input[builtins.str]] = None,
224
+ group_name: Optional[pulumi.Input[_builtins.str]] = None,
225
+ permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
226
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
227
+ service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
228
+ user_name: Optional[pulumi.Input[_builtins.str]] = None,
114
229
  __props__=None):
115
230
  """
116
- This resource is used to assign account-level users, service principals and groups to a Databricks workspace.
231
+ 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
117
232
 
118
233
  > This resource can only be used with a workspace-level provider!
119
234
 
120
235
  ## Example Usage
121
236
 
237
+ ### Assign using `principal_id`
238
+
122
239
  In workspace context, adding account-level user to a workspace:
123
240
 
124
241
  ```python
@@ -161,11 +278,46 @@ class PermissionAssignment(pulumi.CustomResource):
161
278
  pulumi.export("databricksGroupId", workspace_level.id)
162
279
  ```
163
280
 
281
+ ### Assign using `user_name`, `group_name`, or `service_principal_name`
282
+
283
+ In workspace context, adding account-level user to a workspace:
284
+
285
+ ```python
286
+ import pulumi
287
+ import pulumi_databricks as databricks
288
+
289
+ add_user = databricks.PermissionAssignment("add_user",
290
+ user_name="me@example.com",
291
+ permissions=["USER"])
292
+ ```
293
+
294
+ In workspace context, adding account-level service principal to a workspace:
295
+
296
+ ```python
297
+ import pulumi
298
+ import pulumi_databricks as databricks
299
+
300
+ add_admin_spn = databricks.PermissionAssignment("add_admin_spn",
301
+ service_principal_name="00000000-0000-0000-0000-000000000000",
302
+ permissions=["ADMIN"])
303
+ ```
304
+
305
+ In workspace context, adding account-level group to a workspace:
306
+
307
+ ```python
308
+ import pulumi
309
+ import pulumi_databricks as databricks
310
+
311
+ this = databricks.PermissionAssignment("this",
312
+ group_name="example-group",
313
+ permissions=["USER"])
314
+ ```
315
+
164
316
  ## Related Resources
165
317
 
166
318
  The following resources are used in the same context:
167
319
 
168
- * Group to manage [groups in Databricks Workspace](https://docs.databricks.com/administration-guide/users-groups/groups.html) or [Account Console](https://accounts.cloud.databricks.com/) (for AWS deployments).
320
+ * Group to manage [Account-level](https://docs.databricks.com/aws/en/admin/users-groups/groups) or [Workspace-level](https://docs.databricks.com/aws/en/admin/users-groups/workspace-local-groups) groups.
169
321
  * Group data to retrieve information about Group members, entitlements and instance profiles.
170
322
  * GroupMember to attach users and groups as group members.
171
323
  * MwsPermissionAssignment to manage permission assignment from an account context
@@ -194,10 +346,13 @@ class PermissionAssignment(pulumi.CustomResource):
194
346
 
195
347
  :param str resource_name: The name of the resource.
196
348
  :param pulumi.ResourceOptions opts: Options for the resource.
197
- :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] permissions: The list of workspace permissions to assign to the principal:
198
- * `"USER"` - Can access the workspace with basic privileges.
199
- * `"ADMIN"` - Can access the workspace and has workspace admin privileges to manage users and groups, workspace configurations, and more.
200
- :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.
349
+ :param pulumi.Input[_builtins.str] group_name: the group name to assign to a workspace.
350
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: The list of workspace permissions to assign to the principal:
351
+ * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
352
+ * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
353
+ :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.
354
+ :param pulumi.Input[_builtins.str] service_principal_name: the application ID of service principal to assign to a workspace.
355
+ :param pulumi.Input[_builtins.str] user_name: the user name (email) to assign to a workspace.
201
356
  """
202
357
  ...
203
358
  @overload
@@ -206,12 +361,14 @@ class PermissionAssignment(pulumi.CustomResource):
206
361
  args: PermissionAssignmentArgs,
207
362
  opts: Optional[pulumi.ResourceOptions] = None):
208
363
  """
209
- This resource is used to assign account-level users, service principals and groups to a Databricks workspace.
364
+ 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
210
365
 
211
366
  > This resource can only be used with a workspace-level provider!
212
367
 
213
368
  ## Example Usage
214
369
 
370
+ ### Assign using `principal_id`
371
+
215
372
  In workspace context, adding account-level user to a workspace:
216
373
 
217
374
  ```python
@@ -254,11 +411,46 @@ class PermissionAssignment(pulumi.CustomResource):
254
411
  pulumi.export("databricksGroupId", workspace_level.id)
255
412
  ```
256
413
 
414
+ ### Assign using `user_name`, `group_name`, or `service_principal_name`
415
+
416
+ In workspace context, adding account-level user to a workspace:
417
+
418
+ ```python
419
+ import pulumi
420
+ import pulumi_databricks as databricks
421
+
422
+ add_user = databricks.PermissionAssignment("add_user",
423
+ user_name="me@example.com",
424
+ permissions=["USER"])
425
+ ```
426
+
427
+ In workspace context, adding account-level service principal to a workspace:
428
+
429
+ ```python
430
+ import pulumi
431
+ import pulumi_databricks as databricks
432
+
433
+ add_admin_spn = databricks.PermissionAssignment("add_admin_spn",
434
+ service_principal_name="00000000-0000-0000-0000-000000000000",
435
+ permissions=["ADMIN"])
436
+ ```
437
+
438
+ In workspace context, adding account-level group to a workspace:
439
+
440
+ ```python
441
+ import pulumi
442
+ import pulumi_databricks as databricks
443
+
444
+ this = databricks.PermissionAssignment("this",
445
+ group_name="example-group",
446
+ permissions=["USER"])
447
+ ```
448
+
257
449
  ## Related Resources
258
450
 
259
451
  The following resources are used in the same context:
260
452
 
261
- * Group to manage [groups in Databricks Workspace](https://docs.databricks.com/administration-guide/users-groups/groups.html) or [Account Console](https://accounts.cloud.databricks.com/) (for AWS deployments).
453
+ * Group to manage [Account-level](https://docs.databricks.com/aws/en/admin/users-groups/groups) or [Workspace-level](https://docs.databricks.com/aws/en/admin/users-groups/workspace-local-groups) groups.
262
454
  * Group data to retrieve information about Group members, entitlements and instance profiles.
263
455
  * GroupMember to attach users and groups as group members.
264
456
  * MwsPermissionAssignment to manage permission assignment from an account context
@@ -300,8 +492,11 @@ class PermissionAssignment(pulumi.CustomResource):
300
492
  def _internal_init(__self__,
301
493
  resource_name: str,
302
494
  opts: Optional[pulumi.ResourceOptions] = None,
303
- permissions: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
304
- principal_id: Optional[pulumi.Input[builtins.str]] = None,
495
+ group_name: Optional[pulumi.Input[_builtins.str]] = None,
496
+ permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
497
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
498
+ service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
499
+ user_name: Optional[pulumi.Input[_builtins.str]] = None,
305
500
  __props__=None):
306
501
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
307
502
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -311,12 +506,14 @@ class PermissionAssignment(pulumi.CustomResource):
311
506
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
312
507
  __props__ = PermissionAssignmentArgs.__new__(PermissionAssignmentArgs)
313
508
 
509
+ __props__.__dict__["group_name"] = group_name
314
510
  if permissions is None and not opts.urn:
315
511
  raise TypeError("Missing required property 'permissions'")
316
512
  __props__.__dict__["permissions"] = permissions
317
- if principal_id is None and not opts.urn:
318
- raise TypeError("Missing required property 'principal_id'")
319
513
  __props__.__dict__["principal_id"] = principal_id
514
+ __props__.__dict__["service_principal_name"] = service_principal_name
515
+ __props__.__dict__["user_name"] = user_name
516
+ __props__.__dict__["display_name"] = None
320
517
  super(PermissionAssignment, __self__).__init__(
321
518
  'databricks:index/permissionAssignment:PermissionAssignment',
322
519
  resource_name,
@@ -327,8 +524,12 @@ class PermissionAssignment(pulumi.CustomResource):
327
524
  def get(resource_name: str,
328
525
  id: pulumi.Input[str],
329
526
  opts: Optional[pulumi.ResourceOptions] = None,
330
- permissions: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
331
- principal_id: Optional[pulumi.Input[builtins.str]] = None) -> 'PermissionAssignment':
527
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
528
+ group_name: Optional[pulumi.Input[_builtins.str]] = None,
529
+ permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
530
+ principal_id: Optional[pulumi.Input[_builtins.str]] = None,
531
+ service_principal_name: Optional[pulumi.Input[_builtins.str]] = None,
532
+ user_name: Optional[pulumi.Input[_builtins.str]] = None) -> 'PermissionAssignment':
332
533
  """
333
534
  Get an existing PermissionAssignment resource's state with the given name, id, and optional extra
334
535
  properties used to qualify the lookup.
@@ -336,34 +537,74 @@ class PermissionAssignment(pulumi.CustomResource):
336
537
  :param str resource_name: The unique name of the resulting resource.
337
538
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
338
539
  :param pulumi.ResourceOptions opts: Options for the resource.
339
- :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] permissions: The list of workspace permissions to assign to the principal:
340
- * `"USER"` - Can access the workspace with basic privileges.
341
- * `"ADMIN"` - Can access the workspace and has workspace admin privileges to manage users and groups, workspace configurations, and more.
342
- :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.
540
+ :param pulumi.Input[_builtins.str] display_name: the display name of the assigned principal.
541
+ :param pulumi.Input[_builtins.str] group_name: the group name to assign to a workspace.
542
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: The list of workspace permissions to assign to the principal:
543
+ * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
544
+ * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
545
+ :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.
546
+ :param pulumi.Input[_builtins.str] service_principal_name: the application ID of service principal to assign to a workspace.
547
+ :param pulumi.Input[_builtins.str] user_name: the user name (email) to assign to a workspace.
343
548
  """
344
549
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
345
550
 
346
551
  __props__ = _PermissionAssignmentState.__new__(_PermissionAssignmentState)
347
552
 
553
+ __props__.__dict__["display_name"] = display_name
554
+ __props__.__dict__["group_name"] = group_name
348
555
  __props__.__dict__["permissions"] = permissions
349
556
  __props__.__dict__["principal_id"] = principal_id
557
+ __props__.__dict__["service_principal_name"] = service_principal_name
558
+ __props__.__dict__["user_name"] = user_name
350
559
  return PermissionAssignment(resource_name, opts=opts, __props__=__props__)
351
560
 
352
- @property
561
+ @_builtins.property
562
+ @pulumi.getter(name="displayName")
563
+ def display_name(self) -> pulumi.Output[_builtins.str]:
564
+ """
565
+ the display name of the assigned principal.
566
+ """
567
+ return pulumi.get(self, "display_name")
568
+
569
+ @_builtins.property
570
+ @pulumi.getter(name="groupName")
571
+ def group_name(self) -> pulumi.Output[_builtins.str]:
572
+ """
573
+ the group name to assign to a workspace.
574
+ """
575
+ return pulumi.get(self, "group_name")
576
+
577
+ @_builtins.property
353
578
  @pulumi.getter
354
- def permissions(self) -> pulumi.Output[Sequence[builtins.str]]:
579
+ def permissions(self) -> pulumi.Output[Sequence[_builtins.str]]:
355
580
  """
356
581
  The list of workspace permissions to assign to the principal:
357
- * `"USER"` - Can access the workspace with basic privileges.
358
- * `"ADMIN"` - Can access the workspace and has workspace admin privileges to manage users and groups, workspace configurations, and more.
582
+ * `"USER"` - Adds principal to the workspace `users` group. This gives basic workspace access.
583
+ * `"ADMIN"` - Adds principal to the workspace `admins` group. This gives workspace admin privileges to manage users and groups, workspace configurations, and more.
359
584
  """
360
585
  return pulumi.get(self, "permissions")
361
586
 
362
- @property
587
+ @_builtins.property
363
588
  @pulumi.getter(name="principalId")
364
- def principal_id(self) -> pulumi.Output[builtins.str]:
589
+ def principal_id(self) -> pulumi.Output[_builtins.str]:
365
590
  """
366
591
  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.
367
592
  """
368
593
  return pulumi.get(self, "principal_id")
369
594
 
595
+ @_builtins.property
596
+ @pulumi.getter(name="servicePrincipalName")
597
+ def service_principal_name(self) -> pulumi.Output[_builtins.str]:
598
+ """
599
+ the application ID of service principal to assign to a workspace.
600
+ """
601
+ return pulumi.get(self, "service_principal_name")
602
+
603
+ @_builtins.property
604
+ @pulumi.getter(name="userName")
605
+ def user_name(self) -> pulumi.Output[_builtins.str]:
606
+ """
607
+ the user name (email) to assign to a workspace.
608
+ """
609
+ return pulumi.get(self, "user_name")
610
+