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.
- pulumi_databricks/__init__.py +185 -12
- pulumi_databricks/_inputs.py +30467 -20225
- pulumi_databricks/access_control_rule_set.py +28 -29
- pulumi_databricks/account_federation_policy.py +473 -0
- pulumi_databricks/account_network_policy.py +74 -43
- pulumi_databricks/account_setting_v2.py +759 -0
- pulumi_databricks/aibi_dashboard_embedding_access_policy_setting.py +30 -31
- pulumi_databricks/aibi_dashboard_embedding_approved_domains_setting.py +30 -31
- pulumi_databricks/alert.py +185 -186
- pulumi_databricks/alert_v2.py +369 -211
- pulumi_databricks/app.py +315 -209
- pulumi_databricks/apps_settings_custom_template.py +531 -0
- pulumi_databricks/artifact_allowlist.py +72 -73
- pulumi_databricks/automatic_cluster_update_workspace_setting.py +30 -31
- pulumi_databricks/budget.py +84 -85
- pulumi_databricks/budget_policy.py +75 -53
- pulumi_databricks/catalog.py +544 -225
- pulumi_databricks/catalog_workspace_binding.py +82 -83
- pulumi_databricks/cluster.py +561 -683
- pulumi_databricks/cluster_policy.py +115 -116
- pulumi_databricks/compliance_security_profile_workspace_setting.py +30 -31
- pulumi_databricks/config/__init__.py +1 -1
- pulumi_databricks/config/__init__.pyi +3 -2
- pulumi_databricks/config/vars.py +40 -37
- pulumi_databricks/connection.py +346 -211
- pulumi_databricks/credential.py +262 -263
- pulumi_databricks/custom_app_integration.py +175 -176
- pulumi_databricks/dashboard.py +207 -208
- pulumi_databricks/data_quality_monitor.py +453 -0
- pulumi_databricks/data_quality_refresh.py +492 -0
- pulumi_databricks/database_database_catalog.py +437 -0
- pulumi_databricks/database_instance.py +938 -137
- pulumi_databricks/database_synced_database_table.py +589 -0
- pulumi_databricks/dbfs_file.py +87 -84
- pulumi_databricks/default_namespace_setting.py +30 -31
- pulumi_databricks/directory.py +61 -62
- pulumi_databricks/disable_legacy_access_setting.py +109 -33
- pulumi_databricks/disable_legacy_dbfs_setting.py +58 -39
- pulumi_databricks/disable_legacy_features_setting.py +62 -37
- pulumi_databricks/enhanced_security_monitoring_workspace_setting.py +30 -31
- pulumi_databricks/entitlements.py +148 -149
- pulumi_databricks/entity_tag_assignment.py +409 -0
- pulumi_databricks/external_location.py +276 -290
- pulumi_databricks/external_metadata.py +726 -0
- pulumi_databricks/feature_engineering_feature.py +480 -0
- pulumi_databricks/feature_engineering_materialized_feature.py +397 -0
- pulumi_databricks/file.py +96 -97
- pulumi_databricks/get_account_federation_policies.py +127 -0
- pulumi_databricks/get_account_federation_policy.py +214 -0
- pulumi_databricks/get_account_network_policies.py +36 -7
- pulumi_databricks/get_account_network_policy.py +33 -29
- pulumi_databricks/get_account_setting_v2.py +331 -0
- pulumi_databricks/get_alert_v2.py +100 -84
- pulumi_databricks/get_alerts_v2.py +35 -17
- pulumi_databricks/get_app.py +31 -20
- pulumi_databricks/get_apps.py +26 -15
- pulumi_databricks/get_apps_settings_custom_template.py +207 -0
- pulumi_databricks/get_apps_settings_custom_templates.py +133 -0
- pulumi_databricks/get_aws_assume_role_policy.py +27 -28
- pulumi_databricks/get_aws_bucket_policy.py +39 -40
- pulumi_databricks/get_aws_cross_account_policy.py +47 -48
- pulumi_databricks/get_aws_unity_catalog_assume_role_policy.py +35 -36
- pulumi_databricks/get_aws_unity_catalog_policy.py +35 -36
- pulumi_databricks/get_budget_policies.py +74 -11
- pulumi_databricks/get_budget_policy.py +43 -39
- pulumi_databricks/get_catalog.py +35 -19
- pulumi_databricks/get_catalogs.py +32 -14
- pulumi_databricks/get_cluster.py +41 -25
- pulumi_databricks/get_cluster_policy.py +72 -54
- pulumi_databricks/get_clusters.py +41 -25
- pulumi_databricks/get_current_config.py +23 -24
- pulumi_databricks/get_current_metastore.py +29 -13
- pulumi_databricks/get_current_user.py +17 -18
- pulumi_databricks/get_dashboards.py +34 -15
- pulumi_databricks/get_data_quality_monitor.py +210 -0
- pulumi_databricks/get_data_quality_monitors.py +143 -0
- pulumi_databricks/get_data_quality_refresh.py +270 -0
- pulumi_databricks/get_data_quality_refreshes.py +207 -0
- pulumi_databricks/get_database_database_catalog.py +176 -0
- pulumi_databricks/get_database_database_catalogs.py +120 -0
- pulumi_databricks/get_database_instance.py +274 -50
- pulumi_databricks/get_database_instances.py +35 -11
- pulumi_databricks/get_database_synced_database_table.py +225 -0
- pulumi_databricks/get_database_synced_database_tables.py +120 -0
- pulumi_databricks/get_dbfs_file.py +19 -20
- pulumi_databricks/get_dbfs_file_paths.py +16 -17
- pulumi_databricks/get_directory.py +43 -25
- pulumi_databricks/get_entity_tag_assignment.py +202 -0
- pulumi_databricks/get_entity_tag_assignments.py +187 -0
- pulumi_databricks/get_external_location.py +35 -19
- pulumi_databricks/get_external_locations.py +32 -14
- pulumi_databricks/get_external_metadata.py +292 -0
- pulumi_databricks/get_external_metadatas.py +135 -0
- pulumi_databricks/get_feature_engineering_feature.py +179 -0
- pulumi_databricks/get_feature_engineering_features.py +103 -0
- pulumi_databricks/get_feature_engineering_materialized_feature.py +180 -0
- pulumi_databricks/get_feature_engineering_materialized_features.py +123 -0
- pulumi_databricks/get_functions.py +38 -24
- pulumi_databricks/get_group.py +85 -86
- pulumi_databricks/get_instance_pool.py +10 -11
- pulumi_databricks/get_instance_profiles.py +25 -9
- pulumi_databricks/get_job.py +22 -23
- pulumi_databricks/get_jobs.py +44 -26
- pulumi_databricks/get_materialized_features_feature_tag.py +102 -0
- pulumi_databricks/get_materialized_features_feature_tags.py +133 -0
- pulumi_databricks/get_metastore.py +28 -29
- pulumi_databricks/get_metastores.py +9 -10
- pulumi_databricks/get_mlflow_experiment.py +62 -46
- pulumi_databricks/get_mlflow_model.py +47 -31
- pulumi_databricks/get_mlflow_models.py +32 -14
- pulumi_databricks/get_mws_credentials.py +9 -10
- pulumi_databricks/get_mws_network_connectivity_config.py +40 -41
- pulumi_databricks/get_mws_network_connectivity_configs.py +15 -16
- pulumi_databricks/get_mws_workspaces.py +5 -6
- pulumi_databricks/get_node_type.py +123 -87
- pulumi_databricks/get_notebook.py +37 -38
- pulumi_databricks/get_notebook_paths.py +16 -17
- pulumi_databricks/get_notification_destinations.py +33 -18
- pulumi_databricks/get_online_store.py +36 -27
- pulumi_databricks/get_online_stores.py +33 -13
- pulumi_databricks/get_pipelines.py +49 -31
- pulumi_databricks/get_policy_info.py +338 -0
- pulumi_databricks/get_policy_infos.py +169 -0
- pulumi_databricks/get_quality_monitor_v2.py +21 -18
- pulumi_databricks/get_quality_monitors_v2.py +26 -8
- pulumi_databricks/get_registered_model.py +41 -27
- pulumi_databricks/get_registered_model_versions.py +29 -15
- pulumi_databricks/get_rfa_access_request_destinations.py +126 -0
- pulumi_databricks/get_schema.py +32 -16
- pulumi_databricks/get_schemas.py +38 -20
- pulumi_databricks/get_service_principal.py +80 -58
- pulumi_databricks/get_service_principal_federation_policies.py +151 -0
- pulumi_databricks/get_service_principal_federation_policy.py +220 -0
- pulumi_databricks/get_service_principals.py +16 -17
- pulumi_databricks/get_serving_endpoints.py +23 -9
- pulumi_databricks/get_share.py +130 -32
- pulumi_databricks/get_shares.py +29 -11
- pulumi_databricks/get_spark_version.py +87 -69
- pulumi_databricks/get_sql_warehouse.py +124 -110
- pulumi_databricks/get_sql_warehouses.py +37 -19
- pulumi_databricks/get_storage_credential.py +32 -16
- pulumi_databricks/get_storage_credentials.py +32 -14
- pulumi_databricks/get_table.py +30 -14
- pulumi_databricks/get_tables.py +41 -23
- pulumi_databricks/get_tag_policies.py +139 -0
- pulumi_databricks/get_tag_policy.py +175 -0
- pulumi_databricks/get_user.py +33 -34
- pulumi_databricks/get_views.py +41 -23
- pulumi_databricks/get_volume.py +32 -16
- pulumi_databricks/get_volumes.py +41 -23
- pulumi_databricks/get_workspace_network_option.py +45 -26
- pulumi_databricks/get_workspace_setting_v2.py +331 -0
- pulumi_databricks/get_zones.py +39 -21
- pulumi_databricks/git_credential.py +242 -76
- pulumi_databricks/global_init_script.py +99 -100
- pulumi_databricks/grant.py +215 -212
- pulumi_databricks/grants.py +200 -211
- pulumi_databricks/group.py +176 -177
- pulumi_databricks/group_instance_profile.py +37 -38
- pulumi_databricks/group_member.py +37 -38
- pulumi_databricks/group_role.py +37 -38
- pulumi_databricks/instance_pool.py +168 -169
- pulumi_databricks/instance_profile.py +69 -70
- pulumi_databricks/ip_access_list.py +71 -72
- pulumi_databricks/job.py +426 -346
- pulumi_databricks/lakehouse_monitor.py +199 -200
- pulumi_databricks/library.py +264 -99
- pulumi_databricks/materialized_features_feature_tag.py +213 -0
- pulumi_databricks/metastore.py +254 -255
- pulumi_databricks/metastore_assignment.py +52 -53
- pulumi_databricks/metastore_data_access.py +153 -154
- pulumi_databricks/metastore_provider.py +69 -70
- pulumi_databricks/mlflow_experiment.py +108 -109
- pulumi_databricks/mlflow_model.py +45 -46
- pulumi_databricks/mlflow_webhook.py +75 -76
- pulumi_databricks/model_serving.py +195 -74
- pulumi_databricks/model_serving_provisioned_throughput.py +100 -54
- pulumi_databricks/mount.py +103 -104
- pulumi_databricks/mws_credentials.py +99 -100
- pulumi_databricks/mws_customer_managed_keys.py +75 -76
- pulumi_databricks/mws_log_delivery.py +188 -189
- pulumi_databricks/mws_ncc_binding.py +35 -36
- pulumi_databricks/mws_ncc_private_endpoint_rule.py +312 -289
- pulumi_databricks/mws_network_connectivity_config.py +136 -98
- pulumi_databricks/mws_networks.py +159 -160
- pulumi_databricks/mws_permission_assignment.py +70 -71
- pulumi_databricks/mws_private_access_settings.py +116 -117
- pulumi_databricks/mws_storage_configurations.py +74 -75
- pulumi_databricks/mws_vpc_endpoint.py +149 -150
- pulumi_databricks/mws_workspaces.py +464 -418
- pulumi_databricks/notebook.py +143 -144
- pulumi_databricks/notification_destination.py +38 -39
- pulumi_databricks/obo_token.py +63 -64
- pulumi_databricks/online_store.py +121 -70
- pulumi_databricks/online_table.py +41 -42
- pulumi_databricks/outputs.py +47821 -30802
- pulumi_databricks/permission_assignment.py +298 -57
- pulumi_databricks/permissions.py +523 -362
- pulumi_databricks/pipeline.py +515 -480
- pulumi_databricks/policy_info.py +916 -0
- pulumi_databricks/provider.py +283 -269
- pulumi_databricks/pulumi-plugin.json +1 -1
- pulumi_databricks/quality_monitor.py +263 -217
- pulumi_databricks/quality_monitor_v2.py +49 -46
- pulumi_databricks/query.py +227 -228
- pulumi_databricks/recipient.py +208 -209
- pulumi_databricks/registered_model.py +393 -122
- pulumi_databricks/repo.py +117 -118
- pulumi_databricks/restrict_workspace_admins_setting.py +30 -31
- pulumi_databricks/rfa_access_request_destinations.py +286 -0
- pulumi_databricks/schema.py +159 -160
- pulumi_databricks/secret.py +72 -73
- pulumi_databricks/secret_acl.py +52 -53
- pulumi_databricks/secret_scope.py +55 -56
- pulumi_databricks/service_principal.py +279 -278
- pulumi_databricks/service_principal_federation_policy.py +469 -0
- pulumi_databricks/service_principal_role.py +35 -36
- pulumi_databricks/service_principal_secret.py +156 -157
- pulumi_databricks/share.py +186 -187
- pulumi_databricks/sql_alert.py +98 -99
- pulumi_databricks/sql_dashboard.py +94 -95
- pulumi_databricks/sql_endpoint.py +298 -266
- pulumi_databricks/sql_global_config.py +103 -104
- pulumi_databricks/sql_permissions.py +121 -122
- pulumi_databricks/sql_query.py +150 -151
- pulumi_databricks/sql_table.py +310 -283
- pulumi_databricks/sql_visualization.py +92 -93
- pulumi_databricks/sql_widget.py +91 -88
- pulumi_databricks/storage_credential.py +236 -184
- pulumi_databricks/system_schema.py +50 -51
- pulumi_databricks/table.py +147 -148
- pulumi_databricks/tag_policy.py +357 -0
- pulumi_databricks/token.py +83 -84
- pulumi_databricks/user.py +284 -285
- pulumi_databricks/user_instance_profile.py +35 -36
- pulumi_databricks/user_role.py +35 -36
- pulumi_databricks/vector_search_endpoint.py +117 -118
- pulumi_databricks/vector_search_index.py +86 -87
- pulumi_databricks/volume.py +129 -130
- pulumi_databricks/workspace_binding.py +82 -131
- pulumi_databricks/workspace_conf.py +18 -19
- pulumi_databricks/workspace_file.py +100 -101
- pulumi_databricks/workspace_network_option.py +89 -40
- pulumi_databricks/workspace_setting_v2.py +759 -0
- {pulumi_databricks-1.74.0a1753335781.dist-info → pulumi_databricks-1.77.0.dist-info}/METADATA +1 -1
- pulumi_databricks-1.77.0.dist-info/RECORD +250 -0
- pulumi_databricks/get_recipient_federation_policies.py +0 -83
- pulumi_databricks/get_recipient_federation_policy.py +0 -166
- pulumi_databricks/recipient_federation_policy.py +0 -347
- pulumi_databricks-1.74.0a1753335781.dist-info/RECORD +0 -205
- {pulumi_databricks-1.74.0a1753335781.dist-info → pulumi_databricks-1.77.0.dist-info}/WHEEL +0 -0
- {pulumi_databricks-1.74.0a1753335781.dist-info → pulumi_databricks-1.77.0.dist-info}/top_level.txt +0 -0
pulumi_databricks/grants.py
CHANGED
|
@@ -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[
|
|
27
|
-
credential: Optional[pulumi.Input[
|
|
28
|
-
external_location: Optional[pulumi.Input[
|
|
29
|
-
foreign_connection: Optional[pulumi.Input[
|
|
30
|
-
function: Optional[pulumi.Input[
|
|
31
|
-
metastore: Optional[pulumi.Input[
|
|
32
|
-
model: Optional[pulumi.Input[
|
|
33
|
-
pipeline: Optional[pulumi.Input[
|
|
34
|
-
recipient: Optional[pulumi.Input[
|
|
35
|
-
schema: Optional[pulumi.Input[
|
|
36
|
-
share: Optional[pulumi.Input[
|
|
37
|
-
storage_credential: Optional[pulumi.Input[
|
|
38
|
-
table: Optional[pulumi.Input[
|
|
39
|
-
volume: Optional[pulumi.Input[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
213
|
-
credential: Optional[pulumi.Input[
|
|
214
|
-
external_location: Optional[pulumi.Input[
|
|
215
|
-
foreign_connection: Optional[pulumi.Input[
|
|
216
|
-
function: Optional[pulumi.Input[
|
|
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[
|
|
219
|
-
model: Optional[pulumi.Input[
|
|
220
|
-
pipeline: Optional[pulumi.Input[
|
|
221
|
-
recipient: Optional[pulumi.Input[
|
|
222
|
-
schema: Optional[pulumi.Input[
|
|
223
|
-
share: Optional[pulumi.Input[
|
|
224
|
-
storage_credential: Optional[pulumi.Input[
|
|
225
|
-
table: Optional[pulumi.Input[
|
|
226
|
-
volume: Optional[pulumi.Input[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
404
|
-
credential: Optional[pulumi.Input[
|
|
405
|
-
external_location: Optional[pulumi.Input[
|
|
406
|
-
foreign_connection: Optional[pulumi.Input[
|
|
407
|
-
function: Optional[pulumi.Input[
|
|
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[
|
|
410
|
-
model: Optional[pulumi.Input[
|
|
411
|
-
pipeline: Optional[pulumi.Input[
|
|
412
|
-
recipient: Optional[pulumi.Input[
|
|
413
|
-
schema: Optional[pulumi.Input[
|
|
414
|
-
share: Optional[pulumi.Input[
|
|
415
|
-
storage_credential: Optional[pulumi.Input[
|
|
416
|
-
table: Optional[pulumi.Input[
|
|
417
|
-
volume: Optional[pulumi.Input[
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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[
|
|
1342
|
-
credential: Optional[pulumi.Input[
|
|
1343
|
-
external_location: Optional[pulumi.Input[
|
|
1344
|
-
foreign_connection: Optional[pulumi.Input[
|
|
1345
|
-
function: Optional[pulumi.Input[
|
|
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[
|
|
1348
|
-
model: Optional[pulumi.Input[
|
|
1349
|
-
pipeline: Optional[pulumi.Input[
|
|
1350
|
-
recipient: Optional[pulumi.Input[
|
|
1351
|
-
schema: Optional[pulumi.Input[
|
|
1352
|
-
share: Optional[pulumi.Input[
|
|
1353
|
-
storage_credential: Optional[pulumi.Input[
|
|
1354
|
-
table: Optional[pulumi.Input[
|
|
1355
|
-
volume: Optional[pulumi.Input[
|
|
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[
|
|
1393
|
-
credential: Optional[pulumi.Input[
|
|
1394
|
-
external_location: Optional[pulumi.Input[
|
|
1395
|
-
foreign_connection: Optional[pulumi.Input[
|
|
1396
|
-
function: Optional[pulumi.Input[
|
|
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[
|
|
1399
|
-
model: Optional[pulumi.Input[
|
|
1400
|
-
pipeline: Optional[pulumi.Input[
|
|
1401
|
-
recipient: Optional[pulumi.Input[
|
|
1402
|
-
schema: Optional[pulumi.Input[
|
|
1403
|
-
share: Optional[pulumi.Input[
|
|
1404
|
-
storage_credential: Optional[pulumi.Input[
|
|
1405
|
-
table: Optional[pulumi.Input[
|
|
1406
|
-
volume: Optional[pulumi.Input[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
1497
|
+
def volume(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1509
1498
|
return pulumi.get(self, "volume")
|
|
1510
1499
|
|