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
@@ -23,20 +22,20 @@ __all__ = ['GrantsArgs', 'Grants']
23
22
  class GrantsArgs:
24
23
  def __init__(__self__, *,
25
24
  grants: pulumi.Input[Sequence[pulumi.Input['GrantsGrantArgs']]],
26
- catalog: Optional[pulumi.Input[builtins.str]] = None,
27
- credential: Optional[pulumi.Input[builtins.str]] = None,
28
- external_location: Optional[pulumi.Input[builtins.str]] = None,
29
- foreign_connection: Optional[pulumi.Input[builtins.str]] = None,
30
- function: Optional[pulumi.Input[builtins.str]] = None,
31
- metastore: Optional[pulumi.Input[builtins.str]] = None,
32
- model: Optional[pulumi.Input[builtins.str]] = None,
33
- pipeline: Optional[pulumi.Input[builtins.str]] = None,
34
- recipient: Optional[pulumi.Input[builtins.str]] = None,
35
- schema: Optional[pulumi.Input[builtins.str]] = None,
36
- share: Optional[pulumi.Input[builtins.str]] = None,
37
- storage_credential: Optional[pulumi.Input[builtins.str]] = None,
38
- table: Optional[pulumi.Input[builtins.str]] = None,
39
- volume: Optional[pulumi.Input[builtins.str]] = None):
25
+ catalog: Optional[pulumi.Input[_builtins.str]] = None,
26
+ credential: Optional[pulumi.Input[_builtins.str]] = None,
27
+ external_location: Optional[pulumi.Input[_builtins.str]] = None,
28
+ foreign_connection: Optional[pulumi.Input[_builtins.str]] = None,
29
+ function: Optional[pulumi.Input[_builtins.str]] = None,
30
+ metastore: Optional[pulumi.Input[_builtins.str]] = None,
31
+ model: Optional[pulumi.Input[_builtins.str]] = None,
32
+ pipeline: Optional[pulumi.Input[_builtins.str]] = None,
33
+ recipient: Optional[pulumi.Input[_builtins.str]] = None,
34
+ schema: Optional[pulumi.Input[_builtins.str]] = None,
35
+ share: Optional[pulumi.Input[_builtins.str]] = None,
36
+ storage_credential: Optional[pulumi.Input[_builtins.str]] = None,
37
+ table: Optional[pulumi.Input[_builtins.str]] = None,
38
+ volume: Optional[pulumi.Input[_builtins.str]] = None):
40
39
  """
41
40
  The set of arguments for constructing a Grants resource.
42
41
  """
@@ -70,7 +69,7 @@ class GrantsArgs:
70
69
  if volume is not None:
71
70
  pulumi.set(__self__, "volume", volume)
72
71
 
73
- @property
72
+ @_builtins.property
74
73
  @pulumi.getter
75
74
  def grants(self) -> pulumi.Input[Sequence[pulumi.Input['GrantsGrantArgs']]]:
76
75
  return pulumi.get(self, "grants")
@@ -79,151 +78,151 @@ class GrantsArgs:
79
78
  def grants(self, value: pulumi.Input[Sequence[pulumi.Input['GrantsGrantArgs']]]):
80
79
  pulumi.set(self, "grants", value)
81
80
 
82
- @property
81
+ @_builtins.property
83
82
  @pulumi.getter
84
- def catalog(self) -> Optional[pulumi.Input[builtins.str]]:
83
+ def catalog(self) -> Optional[pulumi.Input[_builtins.str]]:
85
84
  return pulumi.get(self, "catalog")
86
85
 
87
86
  @catalog.setter
88
- def catalog(self, value: Optional[pulumi.Input[builtins.str]]):
87
+ def catalog(self, value: Optional[pulumi.Input[_builtins.str]]):
89
88
  pulumi.set(self, "catalog", value)
90
89
 
91
- @property
90
+ @_builtins.property
92
91
  @pulumi.getter
93
- def credential(self) -> Optional[pulumi.Input[builtins.str]]:
92
+ def credential(self) -> Optional[pulumi.Input[_builtins.str]]:
94
93
  return pulumi.get(self, "credential")
95
94
 
96
95
  @credential.setter
97
- def credential(self, value: Optional[pulumi.Input[builtins.str]]):
96
+ def credential(self, value: Optional[pulumi.Input[_builtins.str]]):
98
97
  pulumi.set(self, "credential", value)
99
98
 
100
- @property
99
+ @_builtins.property
101
100
  @pulumi.getter(name="externalLocation")
102
- def external_location(self) -> Optional[pulumi.Input[builtins.str]]:
101
+ def external_location(self) -> Optional[pulumi.Input[_builtins.str]]:
103
102
  return pulumi.get(self, "external_location")
104
103
 
105
104
  @external_location.setter
106
- def external_location(self, value: Optional[pulumi.Input[builtins.str]]):
105
+ def external_location(self, value: Optional[pulumi.Input[_builtins.str]]):
107
106
  pulumi.set(self, "external_location", value)
108
107
 
109
- @property
108
+ @_builtins.property
110
109
  @pulumi.getter(name="foreignConnection")
111
- def foreign_connection(self) -> Optional[pulumi.Input[builtins.str]]:
110
+ def foreign_connection(self) -> Optional[pulumi.Input[_builtins.str]]:
112
111
  return pulumi.get(self, "foreign_connection")
113
112
 
114
113
  @foreign_connection.setter
115
- def foreign_connection(self, value: Optional[pulumi.Input[builtins.str]]):
114
+ def foreign_connection(self, value: Optional[pulumi.Input[_builtins.str]]):
116
115
  pulumi.set(self, "foreign_connection", value)
117
116
 
118
- @property
117
+ @_builtins.property
119
118
  @pulumi.getter
120
- def function(self) -> Optional[pulumi.Input[builtins.str]]:
119
+ def function(self) -> Optional[pulumi.Input[_builtins.str]]:
121
120
  return pulumi.get(self, "function")
122
121
 
123
122
  @function.setter
124
- def function(self, value: Optional[pulumi.Input[builtins.str]]):
123
+ def function(self, value: Optional[pulumi.Input[_builtins.str]]):
125
124
  pulumi.set(self, "function", value)
126
125
 
127
- @property
126
+ @_builtins.property
128
127
  @pulumi.getter
129
- def metastore(self) -> Optional[pulumi.Input[builtins.str]]:
128
+ def metastore(self) -> Optional[pulumi.Input[_builtins.str]]:
130
129
  return pulumi.get(self, "metastore")
131
130
 
132
131
  @metastore.setter
133
- def metastore(self, value: Optional[pulumi.Input[builtins.str]]):
132
+ def metastore(self, value: Optional[pulumi.Input[_builtins.str]]):
134
133
  pulumi.set(self, "metastore", value)
135
134
 
136
- @property
135
+ @_builtins.property
137
136
  @pulumi.getter
138
- def model(self) -> Optional[pulumi.Input[builtins.str]]:
137
+ def model(self) -> Optional[pulumi.Input[_builtins.str]]:
139
138
  return pulumi.get(self, "model")
140
139
 
141
140
  @model.setter
142
- def model(self, value: Optional[pulumi.Input[builtins.str]]):
141
+ def model(self, value: Optional[pulumi.Input[_builtins.str]]):
143
142
  pulumi.set(self, "model", value)
144
143
 
145
- @property
144
+ @_builtins.property
146
145
  @pulumi.getter
147
- def pipeline(self) -> Optional[pulumi.Input[builtins.str]]:
146
+ def pipeline(self) -> Optional[pulumi.Input[_builtins.str]]:
148
147
  return pulumi.get(self, "pipeline")
149
148
 
150
149
  @pipeline.setter
151
- def pipeline(self, value: Optional[pulumi.Input[builtins.str]]):
150
+ def pipeline(self, value: Optional[pulumi.Input[_builtins.str]]):
152
151
  pulumi.set(self, "pipeline", value)
153
152
 
154
- @property
153
+ @_builtins.property
155
154
  @pulumi.getter
156
- def recipient(self) -> Optional[pulumi.Input[builtins.str]]:
155
+ def recipient(self) -> Optional[pulumi.Input[_builtins.str]]:
157
156
  return pulumi.get(self, "recipient")
158
157
 
159
158
  @recipient.setter
160
- def recipient(self, value: Optional[pulumi.Input[builtins.str]]):
159
+ def recipient(self, value: Optional[pulumi.Input[_builtins.str]]):
161
160
  pulumi.set(self, "recipient", value)
162
161
 
163
- @property
162
+ @_builtins.property
164
163
  @pulumi.getter
165
- def schema(self) -> Optional[pulumi.Input[builtins.str]]:
164
+ def schema(self) -> Optional[pulumi.Input[_builtins.str]]:
166
165
  return pulumi.get(self, "schema")
167
166
 
168
167
  @schema.setter
169
- def schema(self, value: Optional[pulumi.Input[builtins.str]]):
168
+ def schema(self, value: Optional[pulumi.Input[_builtins.str]]):
170
169
  pulumi.set(self, "schema", value)
171
170
 
172
- @property
171
+ @_builtins.property
173
172
  @pulumi.getter
174
- def share(self) -> Optional[pulumi.Input[builtins.str]]:
173
+ def share(self) -> Optional[pulumi.Input[_builtins.str]]:
175
174
  return pulumi.get(self, "share")
176
175
 
177
176
  @share.setter
178
- def share(self, value: Optional[pulumi.Input[builtins.str]]):
177
+ def share(self, value: Optional[pulumi.Input[_builtins.str]]):
179
178
  pulumi.set(self, "share", value)
180
179
 
181
- @property
180
+ @_builtins.property
182
181
  @pulumi.getter(name="storageCredential")
183
- def storage_credential(self) -> Optional[pulumi.Input[builtins.str]]:
182
+ def storage_credential(self) -> Optional[pulumi.Input[_builtins.str]]:
184
183
  return pulumi.get(self, "storage_credential")
185
184
 
186
185
  @storage_credential.setter
187
- def storage_credential(self, value: Optional[pulumi.Input[builtins.str]]):
186
+ def storage_credential(self, value: Optional[pulumi.Input[_builtins.str]]):
188
187
  pulumi.set(self, "storage_credential", value)
189
188
 
190
- @property
189
+ @_builtins.property
191
190
  @pulumi.getter
192
- def table(self) -> Optional[pulumi.Input[builtins.str]]:
191
+ def table(self) -> Optional[pulumi.Input[_builtins.str]]:
193
192
  return pulumi.get(self, "table")
194
193
 
195
194
  @table.setter
196
- def table(self, value: Optional[pulumi.Input[builtins.str]]):
195
+ def table(self, value: Optional[pulumi.Input[_builtins.str]]):
197
196
  pulumi.set(self, "table", value)
198
197
 
199
- @property
198
+ @_builtins.property
200
199
  @pulumi.getter
201
- def volume(self) -> Optional[pulumi.Input[builtins.str]]:
200
+ def volume(self) -> Optional[pulumi.Input[_builtins.str]]:
202
201
  return pulumi.get(self, "volume")
203
202
 
204
203
  @volume.setter
205
- def volume(self, value: Optional[pulumi.Input[builtins.str]]):
204
+ def volume(self, value: Optional[pulumi.Input[_builtins.str]]):
206
205
  pulumi.set(self, "volume", value)
207
206
 
208
207
 
209
208
  @pulumi.input_type
210
209
  class _GrantsState:
211
210
  def __init__(__self__, *,
212
- catalog: Optional[pulumi.Input[builtins.str]] = None,
213
- credential: Optional[pulumi.Input[builtins.str]] = None,
214
- external_location: Optional[pulumi.Input[builtins.str]] = None,
215
- foreign_connection: Optional[pulumi.Input[builtins.str]] = None,
216
- function: Optional[pulumi.Input[builtins.str]] = None,
211
+ catalog: Optional[pulumi.Input[_builtins.str]] = None,
212
+ credential: Optional[pulumi.Input[_builtins.str]] = None,
213
+ external_location: Optional[pulumi.Input[_builtins.str]] = None,
214
+ foreign_connection: Optional[pulumi.Input[_builtins.str]] = None,
215
+ function: Optional[pulumi.Input[_builtins.str]] = None,
217
216
  grants: Optional[pulumi.Input[Sequence[pulumi.Input['GrantsGrantArgs']]]] = None,
218
- metastore: Optional[pulumi.Input[builtins.str]] = None,
219
- model: Optional[pulumi.Input[builtins.str]] = None,
220
- pipeline: Optional[pulumi.Input[builtins.str]] = None,
221
- recipient: Optional[pulumi.Input[builtins.str]] = None,
222
- schema: Optional[pulumi.Input[builtins.str]] = None,
223
- share: Optional[pulumi.Input[builtins.str]] = None,
224
- storage_credential: Optional[pulumi.Input[builtins.str]] = None,
225
- table: Optional[pulumi.Input[builtins.str]] = None,
226
- volume: Optional[pulumi.Input[builtins.str]] = None):
217
+ metastore: Optional[pulumi.Input[_builtins.str]] = None,
218
+ model: Optional[pulumi.Input[_builtins.str]] = None,
219
+ pipeline: Optional[pulumi.Input[_builtins.str]] = None,
220
+ recipient: Optional[pulumi.Input[_builtins.str]] = None,
221
+ schema: Optional[pulumi.Input[_builtins.str]] = None,
222
+ share: Optional[pulumi.Input[_builtins.str]] = None,
223
+ storage_credential: Optional[pulumi.Input[_builtins.str]] = None,
224
+ table: Optional[pulumi.Input[_builtins.str]] = None,
225
+ volume: Optional[pulumi.Input[_builtins.str]] = None):
227
226
  """
228
227
  Input properties used for looking up and filtering Grants resources.
229
228
  """
@@ -258,52 +257,52 @@ class _GrantsState:
258
257
  if volume is not None:
259
258
  pulumi.set(__self__, "volume", volume)
260
259
 
261
- @property
260
+ @_builtins.property
262
261
  @pulumi.getter
263
- def catalog(self) -> Optional[pulumi.Input[builtins.str]]:
262
+ def catalog(self) -> Optional[pulumi.Input[_builtins.str]]:
264
263
  return pulumi.get(self, "catalog")
265
264
 
266
265
  @catalog.setter
267
- def catalog(self, value: Optional[pulumi.Input[builtins.str]]):
266
+ def catalog(self, value: Optional[pulumi.Input[_builtins.str]]):
268
267
  pulumi.set(self, "catalog", value)
269
268
 
270
- @property
269
+ @_builtins.property
271
270
  @pulumi.getter
272
- def credential(self) -> Optional[pulumi.Input[builtins.str]]:
271
+ def credential(self) -> Optional[pulumi.Input[_builtins.str]]:
273
272
  return pulumi.get(self, "credential")
274
273
 
275
274
  @credential.setter
276
- def credential(self, value: Optional[pulumi.Input[builtins.str]]):
275
+ def credential(self, value: Optional[pulumi.Input[_builtins.str]]):
277
276
  pulumi.set(self, "credential", value)
278
277
 
279
- @property
278
+ @_builtins.property
280
279
  @pulumi.getter(name="externalLocation")
281
- def external_location(self) -> Optional[pulumi.Input[builtins.str]]:
280
+ def external_location(self) -> Optional[pulumi.Input[_builtins.str]]:
282
281
  return pulumi.get(self, "external_location")
283
282
 
284
283
  @external_location.setter
285
- def external_location(self, value: Optional[pulumi.Input[builtins.str]]):
284
+ def external_location(self, value: Optional[pulumi.Input[_builtins.str]]):
286
285
  pulumi.set(self, "external_location", value)
287
286
 
288
- @property
287
+ @_builtins.property
289
288
  @pulumi.getter(name="foreignConnection")
290
- def foreign_connection(self) -> Optional[pulumi.Input[builtins.str]]:
289
+ def foreign_connection(self) -> Optional[pulumi.Input[_builtins.str]]:
291
290
  return pulumi.get(self, "foreign_connection")
292
291
 
293
292
  @foreign_connection.setter
294
- def foreign_connection(self, value: Optional[pulumi.Input[builtins.str]]):
293
+ def foreign_connection(self, value: Optional[pulumi.Input[_builtins.str]]):
295
294
  pulumi.set(self, "foreign_connection", value)
296
295
 
297
- @property
296
+ @_builtins.property
298
297
  @pulumi.getter
299
- def function(self) -> Optional[pulumi.Input[builtins.str]]:
298
+ def function(self) -> Optional[pulumi.Input[_builtins.str]]:
300
299
  return pulumi.get(self, "function")
301
300
 
302
301
  @function.setter
303
- def function(self, value: Optional[pulumi.Input[builtins.str]]):
302
+ def function(self, value: Optional[pulumi.Input[_builtins.str]]):
304
303
  pulumi.set(self, "function", value)
305
304
 
306
- @property
305
+ @_builtins.property
307
306
  @pulumi.getter
308
307
  def grants(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GrantsGrantArgs']]]]:
309
308
  return pulumi.get(self, "grants")
@@ -312,85 +311,85 @@ class _GrantsState:
312
311
  def grants(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GrantsGrantArgs']]]]):
313
312
  pulumi.set(self, "grants", value)
314
313
 
315
- @property
314
+ @_builtins.property
316
315
  @pulumi.getter
317
- def metastore(self) -> Optional[pulumi.Input[builtins.str]]:
316
+ def metastore(self) -> Optional[pulumi.Input[_builtins.str]]:
318
317
  return pulumi.get(self, "metastore")
319
318
 
320
319
  @metastore.setter
321
- def metastore(self, value: Optional[pulumi.Input[builtins.str]]):
320
+ def metastore(self, value: Optional[pulumi.Input[_builtins.str]]):
322
321
  pulumi.set(self, "metastore", value)
323
322
 
324
- @property
323
+ @_builtins.property
325
324
  @pulumi.getter
326
- def model(self) -> Optional[pulumi.Input[builtins.str]]:
325
+ def model(self) -> Optional[pulumi.Input[_builtins.str]]:
327
326
  return pulumi.get(self, "model")
328
327
 
329
328
  @model.setter
330
- def model(self, value: Optional[pulumi.Input[builtins.str]]):
329
+ def model(self, value: Optional[pulumi.Input[_builtins.str]]):
331
330
  pulumi.set(self, "model", value)
332
331
 
333
- @property
332
+ @_builtins.property
334
333
  @pulumi.getter
335
- def pipeline(self) -> Optional[pulumi.Input[builtins.str]]:
334
+ def pipeline(self) -> Optional[pulumi.Input[_builtins.str]]:
336
335
  return pulumi.get(self, "pipeline")
337
336
 
338
337
  @pipeline.setter
339
- def pipeline(self, value: Optional[pulumi.Input[builtins.str]]):
338
+ def pipeline(self, value: Optional[pulumi.Input[_builtins.str]]):
340
339
  pulumi.set(self, "pipeline", value)
341
340
 
342
- @property
341
+ @_builtins.property
343
342
  @pulumi.getter
344
- def recipient(self) -> Optional[pulumi.Input[builtins.str]]:
343
+ def recipient(self) -> Optional[pulumi.Input[_builtins.str]]:
345
344
  return pulumi.get(self, "recipient")
346
345
 
347
346
  @recipient.setter
348
- def recipient(self, value: Optional[pulumi.Input[builtins.str]]):
347
+ def recipient(self, value: Optional[pulumi.Input[_builtins.str]]):
349
348
  pulumi.set(self, "recipient", value)
350
349
 
351
- @property
350
+ @_builtins.property
352
351
  @pulumi.getter
353
- def schema(self) -> Optional[pulumi.Input[builtins.str]]:
352
+ def schema(self) -> Optional[pulumi.Input[_builtins.str]]:
354
353
  return pulumi.get(self, "schema")
355
354
 
356
355
  @schema.setter
357
- def schema(self, value: Optional[pulumi.Input[builtins.str]]):
356
+ def schema(self, value: Optional[pulumi.Input[_builtins.str]]):
358
357
  pulumi.set(self, "schema", value)
359
358
 
360
- @property
359
+ @_builtins.property
361
360
  @pulumi.getter
362
- def share(self) -> Optional[pulumi.Input[builtins.str]]:
361
+ def share(self) -> Optional[pulumi.Input[_builtins.str]]:
363
362
  return pulumi.get(self, "share")
364
363
 
365
364
  @share.setter
366
- def share(self, value: Optional[pulumi.Input[builtins.str]]):
365
+ def share(self, value: Optional[pulumi.Input[_builtins.str]]):
367
366
  pulumi.set(self, "share", value)
368
367
 
369
- @property
368
+ @_builtins.property
370
369
  @pulumi.getter(name="storageCredential")
371
- def storage_credential(self) -> Optional[pulumi.Input[builtins.str]]:
370
+ def storage_credential(self) -> Optional[pulumi.Input[_builtins.str]]:
372
371
  return pulumi.get(self, "storage_credential")
373
372
 
374
373
  @storage_credential.setter
375
- def storage_credential(self, value: Optional[pulumi.Input[builtins.str]]):
374
+ def storage_credential(self, value: Optional[pulumi.Input[_builtins.str]]):
376
375
  pulumi.set(self, "storage_credential", value)
377
376
 
378
- @property
377
+ @_builtins.property
379
378
  @pulumi.getter
380
- def table(self) -> Optional[pulumi.Input[builtins.str]]:
379
+ def table(self) -> Optional[pulumi.Input[_builtins.str]]:
381
380
  return pulumi.get(self, "table")
382
381
 
383
382
  @table.setter
384
- def table(self, value: Optional[pulumi.Input[builtins.str]]):
383
+ def table(self, value: Optional[pulumi.Input[_builtins.str]]):
385
384
  pulumi.set(self, "table", value)
386
385
 
387
- @property
386
+ @_builtins.property
388
387
  @pulumi.getter
389
- def volume(self) -> Optional[pulumi.Input[builtins.str]]:
388
+ def volume(self) -> Optional[pulumi.Input[_builtins.str]]:
390
389
  return pulumi.get(self, "volume")
391
390
 
392
391
  @volume.setter
393
- def volume(self, value: Optional[pulumi.Input[builtins.str]]):
392
+ def volume(self, value: Optional[pulumi.Input[_builtins.str]]):
394
393
  pulumi.set(self, "volume", value)
395
394
 
396
395
 
@@ -400,31 +399,28 @@ class Grants(pulumi.CustomResource):
400
399
  def __init__(__self__,
401
400
  resource_name: str,
402
401
  opts: Optional[pulumi.ResourceOptions] = None,
403
- catalog: Optional[pulumi.Input[builtins.str]] = None,
404
- credential: Optional[pulumi.Input[builtins.str]] = None,
405
- external_location: Optional[pulumi.Input[builtins.str]] = None,
406
- foreign_connection: Optional[pulumi.Input[builtins.str]] = None,
407
- function: Optional[pulumi.Input[builtins.str]] = None,
402
+ catalog: Optional[pulumi.Input[_builtins.str]] = None,
403
+ credential: Optional[pulumi.Input[_builtins.str]] = None,
404
+ external_location: Optional[pulumi.Input[_builtins.str]] = None,
405
+ foreign_connection: Optional[pulumi.Input[_builtins.str]] = None,
406
+ function: Optional[pulumi.Input[_builtins.str]] = None,
408
407
  grants: Optional[pulumi.Input[Sequence[pulumi.Input[Union['GrantsGrantArgs', 'GrantsGrantArgsDict']]]]] = None,
409
- metastore: Optional[pulumi.Input[builtins.str]] = None,
410
- model: Optional[pulumi.Input[builtins.str]] = None,
411
- pipeline: Optional[pulumi.Input[builtins.str]] = None,
412
- recipient: Optional[pulumi.Input[builtins.str]] = None,
413
- schema: Optional[pulumi.Input[builtins.str]] = None,
414
- share: Optional[pulumi.Input[builtins.str]] = None,
415
- storage_credential: Optional[pulumi.Input[builtins.str]] = None,
416
- table: Optional[pulumi.Input[builtins.str]] = None,
417
- volume: Optional[pulumi.Input[builtins.str]] = None,
408
+ metastore: Optional[pulumi.Input[_builtins.str]] = None,
409
+ model: Optional[pulumi.Input[_builtins.str]] = None,
410
+ pipeline: Optional[pulumi.Input[_builtins.str]] = None,
411
+ recipient: Optional[pulumi.Input[_builtins.str]] = None,
412
+ schema: Optional[pulumi.Input[_builtins.str]] = None,
413
+ share: Optional[pulumi.Input[_builtins.str]] = None,
414
+ storage_credential: Optional[pulumi.Input[_builtins.str]] = None,
415
+ table: Optional[pulumi.Input[_builtins.str]] = None,
416
+ volume: Optional[pulumi.Input[_builtins.str]] = None,
418
417
  __props__=None):
419
418
  """
420
419
  > This article refers to the privileges and inheritance model in Privilege Model version 1.0. If you created your metastore during the public preview (before August 25, 2022), you can upgrade to Privilege Model version 1.0 following [Upgrade to privilege inheritance](https://docs.databricks.com/data-governance/unity-catalog/hive-metastore.html)
421
420
 
422
421
  > Most of Unity Catalog APIs are only accessible via **workspace-level APIs**. This design may change in the future. Account-level principal grants can be assigned with any valid workspace as the Unity Catalog is decoupled from specific workspaces. More information in [the official documentation](https://docs.databricks.com/data-governance/unity-catalog/index.html).
423
422
 
424
- Two different resources help you manage your Unity Catalog grants for a securable. Each of these resources serves a different use case:
425
-
426
- - databricks_grants: Authoritative. Sets the grants of a securable and *replaces* any existing grants defined inside or outside of Pulumi.
427
- - databricks_grant: Authoritative for a given principal. Updates the grants of a securable to a single principal. Other principals within the grants for the securables are preserved.
423
+ > This resource is _authoritative_ for grants on securables. Configuring this resource for a securable will **OVERWRITE** any existing grants and changes made outside of Pulumi will be reset. Use Grant for more granular grant management.
428
424
 
429
425
  In Unity Catalog all users initially have no access to data. Only Metastore Admins can create objects and can grant/revoke access on individual objects to users and groups. Every securable object in Unity Catalog has an owner. The owner can be any account-level user or group, called principals in general. The principal that creates an object becomes its owner. Owners receive `ALL_PRIVILEGES` on the securable object (e.g., `SELECT` and `MODIFY` on a table), as well as the permission to grant privileges to other principals.
430
426
 
@@ -437,8 +433,6 @@ class Grants(pulumi.CustomResource):
437
433
 
438
434
  For the latest list of privilege types that apply to each securable object in Unity Catalog, please refer to the [official documentation](https://docs.databricks.com/en/data-governance/unity-catalog/manage-privileges/privileges.html#privilege-types-by-securable-object-in-unity-catalog)
439
435
 
440
- Pulumi will handle any configuration drift on every `pulumi up` run, even when grants are changed outside of Pulumi state.
441
-
442
436
  When applying grants using an identity with [`MANAGE` permission](https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/ownership#ownership-versus-the-manage-privilege), their `MANAGE` permission must also be defined, otherwise Pulumi will remove their permissions, leading to errors.
443
437
 
444
438
  Unlike the [SQL specification](https://docs.databricks.com/sql/language-manual/sql-ref-privileges.html#privilege-types), all privileges to be written with underscore instead of space, e.g. `CREATE_TABLE` and not `CREATE TABLE`. Below summarizes which privilege types apply to each securable object in the catalog:
@@ -520,7 +514,7 @@ class Grants(pulumi.CustomResource):
520
514
 
521
515
  ## Schema grants
522
516
 
523
- You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `CREATE_FUNCTION`, `CREATE_TABLE`, `CREATE_VOLUME`, `MANAGE` and `USE_SCHEMA` privileges to *`catalog.schema`* specified in the `schema` attribute. You can also grant `EXECUTE`, `MODIFY`, `REFRESH`, `SELECT`, `READ_VOLUME`, `WRITE_VOLUME` at the schema level to apply them to the pertinent current and future securable objects within the schema:
517
+ You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `CREATE_FUNCTION`, `CREATE_TABLE`, `CREATE_VOLUME`, `MANAGE` and `USE_SCHEMA` privileges to _`catalog.schema`_ specified in the `schema` attribute. You can also grant `EXECUTE`, `MODIFY`, `REFRESH`, `SELECT`, `READ_VOLUME`, `WRITE_VOLUME` at the schema level to apply them to the pertinent current and future securable objects within the schema:
524
518
 
525
519
  ```python
526
520
  import pulumi
@@ -546,7 +540,7 @@ class Grants(pulumi.CustomResource):
546
540
 
547
541
  ## Table grants
548
542
 
549
- You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `MANAGE`, `SELECT` and `MODIFY` privileges to *`catalog.schema.table`* specified in the `table` attribute.
543
+ You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `MANAGE`, `SELECT` and `MODIFY` privileges to _`catalog.schema.table`_ specified in the `table` attribute.
550
544
 
551
545
  ```python
552
546
  import pulumi
@@ -592,7 +586,7 @@ class Grants(pulumi.CustomResource):
592
586
 
593
587
  ## View grants
594
588
 
595
- You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `MANAGE` and `SELECT` privileges to *`catalog.schema.view`* specified in `table` attribute.
589
+ You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `MANAGE` and `SELECT` privileges to _`catalog.schema.view`_ specified in `table` attribute.
596
590
 
597
591
  ```python
598
592
  import pulumi
@@ -629,7 +623,7 @@ class Grants(pulumi.CustomResource):
629
623
 
630
624
  ## Volume grants
631
625
 
632
- You can grant `ALL_PRIVILEGES`, `MANAGE`, `READ_VOLUME` and `WRITE_VOLUME` privileges to *`catalog.schema.volume`* specified in the `volume` attribute.
626
+ You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `MANAGE`, `READ_VOLUME` and `WRITE_VOLUME` privileges to _`catalog.schema.volume`_ specified in the `volume` attribute.
633
627
 
634
628
  ```python
635
629
  import pulumi
@@ -652,7 +646,7 @@ class Grants(pulumi.CustomResource):
652
646
 
653
647
  ## Registered model grants
654
648
 
655
- You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `EXECUTE`, and `MANAGE` privileges to *`catalog.schema.model`* specified in the `model` attribute.
649
+ You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `EXECUTE`, and `MANAGE` privileges to _`catalog.schema.model`_ specified in the `model` attribute.
656
650
 
657
651
  ```python
658
652
  import pulumi
@@ -677,7 +671,7 @@ class Grants(pulumi.CustomResource):
677
671
 
678
672
  ## Function grants
679
673
 
680
- You can grant `ALL_PRIVILEGES`, `EXECUTE`, and `MANAGE` privileges to *`catalog.schema.function`* specified in the `function` attribute.
674
+ You can grant `ALL_PRIVILEGES`, `EXECUTE`, and `MANAGE` privileges to _`catalog.schema.function`_ specified in the `function` attribute.
681
675
 
682
676
  ```python
683
677
  import pulumi
@@ -879,10 +873,7 @@ class Grants(pulumi.CustomResource):
879
873
 
880
874
  > Most of Unity Catalog APIs are only accessible via **workspace-level APIs**. This design may change in the future. Account-level principal grants can be assigned with any valid workspace as the Unity Catalog is decoupled from specific workspaces. More information in [the official documentation](https://docs.databricks.com/data-governance/unity-catalog/index.html).
881
875
 
882
- Two different resources help you manage your Unity Catalog grants for a securable. Each of these resources serves a different use case:
883
-
884
- - databricks_grants: Authoritative. Sets the grants of a securable and *replaces* any existing grants defined inside or outside of Pulumi.
885
- - databricks_grant: Authoritative for a given principal. Updates the grants of a securable to a single principal. Other principals within the grants for the securables are preserved.
876
+ > This resource is _authoritative_ for grants on securables. Configuring this resource for a securable will **OVERWRITE** any existing grants and changes made outside of Pulumi will be reset. Use Grant for more granular grant management.
886
877
 
887
878
  In Unity Catalog all users initially have no access to data. Only Metastore Admins can create objects and can grant/revoke access on individual objects to users and groups. Every securable object in Unity Catalog has an owner. The owner can be any account-level user or group, called principals in general. The principal that creates an object becomes its owner. Owners receive `ALL_PRIVILEGES` on the securable object (e.g., `SELECT` and `MODIFY` on a table), as well as the permission to grant privileges to other principals.
888
879
 
@@ -895,8 +886,6 @@ class Grants(pulumi.CustomResource):
895
886
 
896
887
  For the latest list of privilege types that apply to each securable object in Unity Catalog, please refer to the [official documentation](https://docs.databricks.com/en/data-governance/unity-catalog/manage-privileges/privileges.html#privilege-types-by-securable-object-in-unity-catalog)
897
888
 
898
- Pulumi will handle any configuration drift on every `pulumi up` run, even when grants are changed outside of Pulumi state.
899
-
900
889
  When applying grants using an identity with [`MANAGE` permission](https://docs.databricks.com/aws/en/data-governance/unity-catalog/manage-privileges/ownership#ownership-versus-the-manage-privilege), their `MANAGE` permission must also be defined, otherwise Pulumi will remove their permissions, leading to errors.
901
890
 
902
891
  Unlike the [SQL specification](https://docs.databricks.com/sql/language-manual/sql-ref-privileges.html#privilege-types), all privileges to be written with underscore instead of space, e.g. `CREATE_TABLE` and not `CREATE TABLE`. Below summarizes which privilege types apply to each securable object in the catalog:
@@ -978,7 +967,7 @@ class Grants(pulumi.CustomResource):
978
967
 
979
968
  ## Schema grants
980
969
 
981
- You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `CREATE_FUNCTION`, `CREATE_TABLE`, `CREATE_VOLUME`, `MANAGE` and `USE_SCHEMA` privileges to *`catalog.schema`* specified in the `schema` attribute. You can also grant `EXECUTE`, `MODIFY`, `REFRESH`, `SELECT`, `READ_VOLUME`, `WRITE_VOLUME` at the schema level to apply them to the pertinent current and future securable objects within the schema:
970
+ You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `CREATE_FUNCTION`, `CREATE_TABLE`, `CREATE_VOLUME`, `MANAGE` and `USE_SCHEMA` privileges to _`catalog.schema`_ specified in the `schema` attribute. You can also grant `EXECUTE`, `MODIFY`, `REFRESH`, `SELECT`, `READ_VOLUME`, `WRITE_VOLUME` at the schema level to apply them to the pertinent current and future securable objects within the schema:
982
971
 
983
972
  ```python
984
973
  import pulumi
@@ -1004,7 +993,7 @@ class Grants(pulumi.CustomResource):
1004
993
 
1005
994
  ## Table grants
1006
995
 
1007
- You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `MANAGE`, `SELECT` and `MODIFY` privileges to *`catalog.schema.table`* specified in the `table` attribute.
996
+ You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `MANAGE`, `SELECT` and `MODIFY` privileges to _`catalog.schema.table`_ specified in the `table` attribute.
1008
997
 
1009
998
  ```python
1010
999
  import pulumi
@@ -1050,7 +1039,7 @@ class Grants(pulumi.CustomResource):
1050
1039
 
1051
1040
  ## View grants
1052
1041
 
1053
- You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `MANAGE` and `SELECT` privileges to *`catalog.schema.view`* specified in `table` attribute.
1042
+ You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `MANAGE` and `SELECT` privileges to _`catalog.schema.view`_ specified in `table` attribute.
1054
1043
 
1055
1044
  ```python
1056
1045
  import pulumi
@@ -1087,7 +1076,7 @@ class Grants(pulumi.CustomResource):
1087
1076
 
1088
1077
  ## Volume grants
1089
1078
 
1090
- You can grant `ALL_PRIVILEGES`, `MANAGE`, `READ_VOLUME` and `WRITE_VOLUME` privileges to *`catalog.schema.volume`* specified in the `volume` attribute.
1079
+ You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `MANAGE`, `READ_VOLUME` and `WRITE_VOLUME` privileges to _`catalog.schema.volume`_ specified in the `volume` attribute.
1091
1080
 
1092
1081
  ```python
1093
1082
  import pulumi
@@ -1110,7 +1099,7 @@ class Grants(pulumi.CustomResource):
1110
1099
 
1111
1100
  ## Registered model grants
1112
1101
 
1113
- You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `EXECUTE`, and `MANAGE` privileges to *`catalog.schema.model`* specified in the `model` attribute.
1102
+ You can grant `ALL_PRIVILEGES`, `APPLY_TAG`, `EXECUTE`, and `MANAGE` privileges to _`catalog.schema.model`_ specified in the `model` attribute.
1114
1103
 
1115
1104
  ```python
1116
1105
  import pulumi
@@ -1135,7 +1124,7 @@ class Grants(pulumi.CustomResource):
1135
1124
 
1136
1125
  ## Function grants
1137
1126
 
1138
- You can grant `ALL_PRIVILEGES`, `EXECUTE`, and `MANAGE` privileges to *`catalog.schema.function`* specified in the `function` attribute.
1127
+ You can grant `ALL_PRIVILEGES`, `EXECUTE`, and `MANAGE` privileges to _`catalog.schema.function`_ specified in the `function` attribute.
1139
1128
 
1140
1129
  ```python
1141
1130
  import pulumi
@@ -1338,21 +1327,21 @@ class Grants(pulumi.CustomResource):
1338
1327
  def _internal_init(__self__,
1339
1328
  resource_name: str,
1340
1329
  opts: Optional[pulumi.ResourceOptions] = None,
1341
- catalog: Optional[pulumi.Input[builtins.str]] = None,
1342
- credential: Optional[pulumi.Input[builtins.str]] = None,
1343
- external_location: Optional[pulumi.Input[builtins.str]] = None,
1344
- foreign_connection: Optional[pulumi.Input[builtins.str]] = None,
1345
- function: Optional[pulumi.Input[builtins.str]] = None,
1330
+ catalog: Optional[pulumi.Input[_builtins.str]] = None,
1331
+ credential: Optional[pulumi.Input[_builtins.str]] = None,
1332
+ external_location: Optional[pulumi.Input[_builtins.str]] = None,
1333
+ foreign_connection: Optional[pulumi.Input[_builtins.str]] = None,
1334
+ function: Optional[pulumi.Input[_builtins.str]] = None,
1346
1335
  grants: Optional[pulumi.Input[Sequence[pulumi.Input[Union['GrantsGrantArgs', 'GrantsGrantArgsDict']]]]] = None,
1347
- metastore: Optional[pulumi.Input[builtins.str]] = None,
1348
- model: Optional[pulumi.Input[builtins.str]] = None,
1349
- pipeline: Optional[pulumi.Input[builtins.str]] = None,
1350
- recipient: Optional[pulumi.Input[builtins.str]] = None,
1351
- schema: Optional[pulumi.Input[builtins.str]] = None,
1352
- share: Optional[pulumi.Input[builtins.str]] = None,
1353
- storage_credential: Optional[pulumi.Input[builtins.str]] = None,
1354
- table: Optional[pulumi.Input[builtins.str]] = None,
1355
- volume: Optional[pulumi.Input[builtins.str]] = None,
1336
+ metastore: Optional[pulumi.Input[_builtins.str]] = None,
1337
+ model: Optional[pulumi.Input[_builtins.str]] = None,
1338
+ pipeline: Optional[pulumi.Input[_builtins.str]] = None,
1339
+ recipient: Optional[pulumi.Input[_builtins.str]] = None,
1340
+ schema: Optional[pulumi.Input[_builtins.str]] = None,
1341
+ share: Optional[pulumi.Input[_builtins.str]] = None,
1342
+ storage_credential: Optional[pulumi.Input[_builtins.str]] = None,
1343
+ table: Optional[pulumi.Input[_builtins.str]] = None,
1344
+ volume: Optional[pulumi.Input[_builtins.str]] = None,
1356
1345
  __props__=None):
1357
1346
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1358
1347
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -1389,21 +1378,21 @@ class Grants(pulumi.CustomResource):
1389
1378
  def get(resource_name: str,
1390
1379
  id: pulumi.Input[str],
1391
1380
  opts: Optional[pulumi.ResourceOptions] = None,
1392
- catalog: Optional[pulumi.Input[builtins.str]] = None,
1393
- credential: Optional[pulumi.Input[builtins.str]] = None,
1394
- external_location: Optional[pulumi.Input[builtins.str]] = None,
1395
- foreign_connection: Optional[pulumi.Input[builtins.str]] = None,
1396
- function: Optional[pulumi.Input[builtins.str]] = None,
1381
+ catalog: Optional[pulumi.Input[_builtins.str]] = None,
1382
+ credential: Optional[pulumi.Input[_builtins.str]] = None,
1383
+ external_location: Optional[pulumi.Input[_builtins.str]] = None,
1384
+ foreign_connection: Optional[pulumi.Input[_builtins.str]] = None,
1385
+ function: Optional[pulumi.Input[_builtins.str]] = None,
1397
1386
  grants: Optional[pulumi.Input[Sequence[pulumi.Input[Union['GrantsGrantArgs', 'GrantsGrantArgsDict']]]]] = None,
1398
- metastore: Optional[pulumi.Input[builtins.str]] = None,
1399
- model: Optional[pulumi.Input[builtins.str]] = None,
1400
- pipeline: Optional[pulumi.Input[builtins.str]] = None,
1401
- recipient: Optional[pulumi.Input[builtins.str]] = None,
1402
- schema: Optional[pulumi.Input[builtins.str]] = None,
1403
- share: Optional[pulumi.Input[builtins.str]] = None,
1404
- storage_credential: Optional[pulumi.Input[builtins.str]] = None,
1405
- table: Optional[pulumi.Input[builtins.str]] = None,
1406
- volume: Optional[pulumi.Input[builtins.str]] = None) -> 'Grants':
1387
+ metastore: Optional[pulumi.Input[_builtins.str]] = None,
1388
+ model: Optional[pulumi.Input[_builtins.str]] = None,
1389
+ pipeline: Optional[pulumi.Input[_builtins.str]] = None,
1390
+ recipient: Optional[pulumi.Input[_builtins.str]] = None,
1391
+ schema: Optional[pulumi.Input[_builtins.str]] = None,
1392
+ share: Optional[pulumi.Input[_builtins.str]] = None,
1393
+ storage_credential: Optional[pulumi.Input[_builtins.str]] = None,
1394
+ table: Optional[pulumi.Input[_builtins.str]] = None,
1395
+ volume: Optional[pulumi.Input[_builtins.str]] = None) -> 'Grants':
1407
1396
  """
1408
1397
  Get an existing Grants resource's state with the given name, id, and optional extra
1409
1398
  properties used to qualify the lookup.
@@ -1433,78 +1422,78 @@ class Grants(pulumi.CustomResource):
1433
1422
  __props__.__dict__["volume"] = volume
1434
1423
  return Grants(resource_name, opts=opts, __props__=__props__)
1435
1424
 
1436
- @property
1425
+ @_builtins.property
1437
1426
  @pulumi.getter
1438
- def catalog(self) -> pulumi.Output[Optional[builtins.str]]:
1427
+ def catalog(self) -> pulumi.Output[Optional[_builtins.str]]:
1439
1428
  return pulumi.get(self, "catalog")
1440
1429
 
1441
- @property
1430
+ @_builtins.property
1442
1431
  @pulumi.getter
1443
- def credential(self) -> pulumi.Output[Optional[builtins.str]]:
1432
+ def credential(self) -> pulumi.Output[Optional[_builtins.str]]:
1444
1433
  return pulumi.get(self, "credential")
1445
1434
 
1446
- @property
1435
+ @_builtins.property
1447
1436
  @pulumi.getter(name="externalLocation")
1448
- def external_location(self) -> pulumi.Output[Optional[builtins.str]]:
1437
+ def external_location(self) -> pulumi.Output[Optional[_builtins.str]]:
1449
1438
  return pulumi.get(self, "external_location")
1450
1439
 
1451
- @property
1440
+ @_builtins.property
1452
1441
  @pulumi.getter(name="foreignConnection")
1453
- def foreign_connection(self) -> pulumi.Output[Optional[builtins.str]]:
1442
+ def foreign_connection(self) -> pulumi.Output[Optional[_builtins.str]]:
1454
1443
  return pulumi.get(self, "foreign_connection")
1455
1444
 
1456
- @property
1445
+ @_builtins.property
1457
1446
  @pulumi.getter
1458
- def function(self) -> pulumi.Output[Optional[builtins.str]]:
1447
+ def function(self) -> pulumi.Output[Optional[_builtins.str]]:
1459
1448
  return pulumi.get(self, "function")
1460
1449
 
1461
- @property
1450
+ @_builtins.property
1462
1451
  @pulumi.getter
1463
1452
  def grants(self) -> pulumi.Output[Sequence['outputs.GrantsGrant']]:
1464
1453
  return pulumi.get(self, "grants")
1465
1454
 
1466
- @property
1455
+ @_builtins.property
1467
1456
  @pulumi.getter
1468
- def metastore(self) -> pulumi.Output[Optional[builtins.str]]:
1457
+ def metastore(self) -> pulumi.Output[Optional[_builtins.str]]:
1469
1458
  return pulumi.get(self, "metastore")
1470
1459
 
1471
- @property
1460
+ @_builtins.property
1472
1461
  @pulumi.getter
1473
- def model(self) -> pulumi.Output[Optional[builtins.str]]:
1462
+ def model(self) -> pulumi.Output[Optional[_builtins.str]]:
1474
1463
  return pulumi.get(self, "model")
1475
1464
 
1476
- @property
1465
+ @_builtins.property
1477
1466
  @pulumi.getter
1478
- def pipeline(self) -> pulumi.Output[Optional[builtins.str]]:
1467
+ def pipeline(self) -> pulumi.Output[Optional[_builtins.str]]:
1479
1468
  return pulumi.get(self, "pipeline")
1480
1469
 
1481
- @property
1470
+ @_builtins.property
1482
1471
  @pulumi.getter
1483
- def recipient(self) -> pulumi.Output[Optional[builtins.str]]:
1472
+ def recipient(self) -> pulumi.Output[Optional[_builtins.str]]:
1484
1473
  return pulumi.get(self, "recipient")
1485
1474
 
1486
- @property
1475
+ @_builtins.property
1487
1476
  @pulumi.getter
1488
- def schema(self) -> pulumi.Output[Optional[builtins.str]]:
1477
+ def schema(self) -> pulumi.Output[Optional[_builtins.str]]:
1489
1478
  return pulumi.get(self, "schema")
1490
1479
 
1491
- @property
1480
+ @_builtins.property
1492
1481
  @pulumi.getter
1493
- def share(self) -> pulumi.Output[Optional[builtins.str]]:
1482
+ def share(self) -> pulumi.Output[Optional[_builtins.str]]:
1494
1483
  return pulumi.get(self, "share")
1495
1484
 
1496
- @property
1485
+ @_builtins.property
1497
1486
  @pulumi.getter(name="storageCredential")
1498
- def storage_credential(self) -> pulumi.Output[Optional[builtins.str]]:
1487
+ def storage_credential(self) -> pulumi.Output[Optional[_builtins.str]]:
1499
1488
  return pulumi.get(self, "storage_credential")
1500
1489
 
1501
- @property
1490
+ @_builtins.property
1502
1491
  @pulumi.getter
1503
- def table(self) -> pulumi.Output[Optional[builtins.str]]:
1492
+ def table(self) -> pulumi.Output[Optional[_builtins.str]]:
1504
1493
  return pulumi.get(self, "table")
1505
1494
 
1506
- @property
1495
+ @_builtins.property
1507
1496
  @pulumi.getter
1508
- def volume(self) -> pulumi.Output[Optional[builtins.str]]:
1497
+ def volume(self) -> pulumi.Output[Optional[_builtins.str]]:
1509
1498
  return pulumi.get(self, "volume")
1510
1499