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/grant.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
|
|
@@ -20,22 +19,22 @@ __all__ = ['GrantArgs', 'Grant']
|
|
|
20
19
|
@pulumi.input_type
|
|
21
20
|
class GrantArgs:
|
|
22
21
|
def __init__(__self__, *,
|
|
23
|
-
principal: pulumi.Input[
|
|
24
|
-
privileges: pulumi.Input[Sequence[pulumi.Input[
|
|
25
|
-
catalog: Optional[pulumi.Input[
|
|
26
|
-
credential: Optional[pulumi.Input[
|
|
27
|
-
external_location: Optional[pulumi.Input[
|
|
28
|
-
foreign_connection: Optional[pulumi.Input[
|
|
29
|
-
function: Optional[pulumi.Input[
|
|
30
|
-
metastore: Optional[pulumi.Input[
|
|
31
|
-
model: Optional[pulumi.Input[
|
|
32
|
-
pipeline: Optional[pulumi.Input[
|
|
33
|
-
recipient: Optional[pulumi.Input[
|
|
34
|
-
schema: Optional[pulumi.Input[
|
|
35
|
-
share: Optional[pulumi.Input[
|
|
36
|
-
storage_credential: Optional[pulumi.Input[
|
|
37
|
-
table: Optional[pulumi.Input[
|
|
38
|
-
volume: Optional[pulumi.Input[
|
|
22
|
+
principal: pulumi.Input[_builtins.str],
|
|
23
|
+
privileges: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
|
|
24
|
+
catalog: Optional[pulumi.Input[_builtins.str]] = None,
|
|
25
|
+
credential: Optional[pulumi.Input[_builtins.str]] = None,
|
|
26
|
+
external_location: Optional[pulumi.Input[_builtins.str]] = None,
|
|
27
|
+
foreign_connection: Optional[pulumi.Input[_builtins.str]] = None,
|
|
28
|
+
function: Optional[pulumi.Input[_builtins.str]] = None,
|
|
29
|
+
metastore: Optional[pulumi.Input[_builtins.str]] = None,
|
|
30
|
+
model: Optional[pulumi.Input[_builtins.str]] = None,
|
|
31
|
+
pipeline: Optional[pulumi.Input[_builtins.str]] = None,
|
|
32
|
+
recipient: Optional[pulumi.Input[_builtins.str]] = None,
|
|
33
|
+
schema: Optional[pulumi.Input[_builtins.str]] = None,
|
|
34
|
+
share: Optional[pulumi.Input[_builtins.str]] = None,
|
|
35
|
+
storage_credential: Optional[pulumi.Input[_builtins.str]] = None,
|
|
36
|
+
table: Optional[pulumi.Input[_builtins.str]] = None,
|
|
37
|
+
volume: Optional[pulumi.Input[_builtins.str]] = None):
|
|
39
38
|
"""
|
|
40
39
|
The set of arguments for constructing a Grant resource.
|
|
41
40
|
"""
|
|
@@ -70,170 +69,170 @@ class GrantArgs:
|
|
|
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
|
-
def principal(self) -> pulumi.Input[
|
|
74
|
+
def principal(self) -> pulumi.Input[_builtins.str]:
|
|
76
75
|
return pulumi.get(self, "principal")
|
|
77
76
|
|
|
78
77
|
@principal.setter
|
|
79
|
-
def principal(self, value: pulumi.Input[
|
|
78
|
+
def principal(self, value: pulumi.Input[_builtins.str]):
|
|
80
79
|
pulumi.set(self, "principal", value)
|
|
81
80
|
|
|
82
|
-
@property
|
|
81
|
+
@_builtins.property
|
|
83
82
|
@pulumi.getter
|
|
84
|
-
def privileges(self) -> pulumi.Input[Sequence[pulumi.Input[
|
|
83
|
+
def privileges(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
|
|
85
84
|
return pulumi.get(self, "privileges")
|
|
86
85
|
|
|
87
86
|
@privileges.setter
|
|
88
|
-
def privileges(self, value: pulumi.Input[Sequence[pulumi.Input[
|
|
87
|
+
def privileges(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
|
|
89
88
|
pulumi.set(self, "privileges", value)
|
|
90
89
|
|
|
91
|
-
@property
|
|
90
|
+
@_builtins.property
|
|
92
91
|
@pulumi.getter
|
|
93
|
-
def catalog(self) -> Optional[pulumi.Input[
|
|
92
|
+
def catalog(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
94
93
|
return pulumi.get(self, "catalog")
|
|
95
94
|
|
|
96
95
|
@catalog.setter
|
|
97
|
-
def catalog(self, value: Optional[pulumi.Input[
|
|
96
|
+
def catalog(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
98
97
|
pulumi.set(self, "catalog", value)
|
|
99
98
|
|
|
100
|
-
@property
|
|
99
|
+
@_builtins.property
|
|
101
100
|
@pulumi.getter
|
|
102
|
-
def credential(self) -> Optional[pulumi.Input[
|
|
101
|
+
def credential(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
103
102
|
return pulumi.get(self, "credential")
|
|
104
103
|
|
|
105
104
|
@credential.setter
|
|
106
|
-
def credential(self, value: Optional[pulumi.Input[
|
|
105
|
+
def credential(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
107
106
|
pulumi.set(self, "credential", value)
|
|
108
107
|
|
|
109
|
-
@property
|
|
108
|
+
@_builtins.property
|
|
110
109
|
@pulumi.getter(name="externalLocation")
|
|
111
|
-
def external_location(self) -> Optional[pulumi.Input[
|
|
110
|
+
def external_location(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
112
111
|
return pulumi.get(self, "external_location")
|
|
113
112
|
|
|
114
113
|
@external_location.setter
|
|
115
|
-
def external_location(self, value: Optional[pulumi.Input[
|
|
114
|
+
def external_location(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
116
115
|
pulumi.set(self, "external_location", value)
|
|
117
116
|
|
|
118
|
-
@property
|
|
117
|
+
@_builtins.property
|
|
119
118
|
@pulumi.getter(name="foreignConnection")
|
|
120
|
-
def foreign_connection(self) -> Optional[pulumi.Input[
|
|
119
|
+
def foreign_connection(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
121
120
|
return pulumi.get(self, "foreign_connection")
|
|
122
121
|
|
|
123
122
|
@foreign_connection.setter
|
|
124
|
-
def foreign_connection(self, value: Optional[pulumi.Input[
|
|
123
|
+
def foreign_connection(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
125
124
|
pulumi.set(self, "foreign_connection", value)
|
|
126
125
|
|
|
127
|
-
@property
|
|
126
|
+
@_builtins.property
|
|
128
127
|
@pulumi.getter
|
|
129
|
-
def function(self) -> Optional[pulumi.Input[
|
|
128
|
+
def function(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
130
129
|
return pulumi.get(self, "function")
|
|
131
130
|
|
|
132
131
|
@function.setter
|
|
133
|
-
def function(self, value: Optional[pulumi.Input[
|
|
132
|
+
def function(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
134
133
|
pulumi.set(self, "function", value)
|
|
135
134
|
|
|
136
|
-
@property
|
|
135
|
+
@_builtins.property
|
|
137
136
|
@pulumi.getter
|
|
138
|
-
def metastore(self) -> Optional[pulumi.Input[
|
|
137
|
+
def metastore(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
139
138
|
return pulumi.get(self, "metastore")
|
|
140
139
|
|
|
141
140
|
@metastore.setter
|
|
142
|
-
def metastore(self, value: Optional[pulumi.Input[
|
|
141
|
+
def metastore(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
143
142
|
pulumi.set(self, "metastore", value)
|
|
144
143
|
|
|
145
|
-
@property
|
|
144
|
+
@_builtins.property
|
|
146
145
|
@pulumi.getter
|
|
147
|
-
def model(self) -> Optional[pulumi.Input[
|
|
146
|
+
def model(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
148
147
|
return pulumi.get(self, "model")
|
|
149
148
|
|
|
150
149
|
@model.setter
|
|
151
|
-
def model(self, value: Optional[pulumi.Input[
|
|
150
|
+
def model(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
152
151
|
pulumi.set(self, "model", value)
|
|
153
152
|
|
|
154
|
-
@property
|
|
153
|
+
@_builtins.property
|
|
155
154
|
@pulumi.getter
|
|
156
|
-
def pipeline(self) -> Optional[pulumi.Input[
|
|
155
|
+
def pipeline(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
157
156
|
return pulumi.get(self, "pipeline")
|
|
158
157
|
|
|
159
158
|
@pipeline.setter
|
|
160
|
-
def pipeline(self, value: Optional[pulumi.Input[
|
|
159
|
+
def pipeline(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
161
160
|
pulumi.set(self, "pipeline", value)
|
|
162
161
|
|
|
163
|
-
@property
|
|
162
|
+
@_builtins.property
|
|
164
163
|
@pulumi.getter
|
|
165
|
-
def recipient(self) -> Optional[pulumi.Input[
|
|
164
|
+
def recipient(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
166
165
|
return pulumi.get(self, "recipient")
|
|
167
166
|
|
|
168
167
|
@recipient.setter
|
|
169
|
-
def recipient(self, value: Optional[pulumi.Input[
|
|
168
|
+
def recipient(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
170
169
|
pulumi.set(self, "recipient", value)
|
|
171
170
|
|
|
172
|
-
@property
|
|
171
|
+
@_builtins.property
|
|
173
172
|
@pulumi.getter
|
|
174
|
-
def schema(self) -> Optional[pulumi.Input[
|
|
173
|
+
def schema(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
175
174
|
return pulumi.get(self, "schema")
|
|
176
175
|
|
|
177
176
|
@schema.setter
|
|
178
|
-
def schema(self, value: Optional[pulumi.Input[
|
|
177
|
+
def schema(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
179
178
|
pulumi.set(self, "schema", value)
|
|
180
179
|
|
|
181
|
-
@property
|
|
180
|
+
@_builtins.property
|
|
182
181
|
@pulumi.getter
|
|
183
|
-
def share(self) -> Optional[pulumi.Input[
|
|
182
|
+
def share(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
184
183
|
return pulumi.get(self, "share")
|
|
185
184
|
|
|
186
185
|
@share.setter
|
|
187
|
-
def share(self, value: Optional[pulumi.Input[
|
|
186
|
+
def share(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
188
187
|
pulumi.set(self, "share", value)
|
|
189
188
|
|
|
190
|
-
@property
|
|
189
|
+
@_builtins.property
|
|
191
190
|
@pulumi.getter(name="storageCredential")
|
|
192
|
-
def storage_credential(self) -> Optional[pulumi.Input[
|
|
191
|
+
def storage_credential(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
193
192
|
return pulumi.get(self, "storage_credential")
|
|
194
193
|
|
|
195
194
|
@storage_credential.setter
|
|
196
|
-
def storage_credential(self, value: Optional[pulumi.Input[
|
|
195
|
+
def storage_credential(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
197
196
|
pulumi.set(self, "storage_credential", value)
|
|
198
197
|
|
|
199
|
-
@property
|
|
198
|
+
@_builtins.property
|
|
200
199
|
@pulumi.getter
|
|
201
|
-
def table(self) -> Optional[pulumi.Input[
|
|
200
|
+
def table(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
202
201
|
return pulumi.get(self, "table")
|
|
203
202
|
|
|
204
203
|
@table.setter
|
|
205
|
-
def table(self, value: Optional[pulumi.Input[
|
|
204
|
+
def table(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
206
205
|
pulumi.set(self, "table", value)
|
|
207
206
|
|
|
208
|
-
@property
|
|
207
|
+
@_builtins.property
|
|
209
208
|
@pulumi.getter
|
|
210
|
-
def volume(self) -> Optional[pulumi.Input[
|
|
209
|
+
def volume(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
211
210
|
return pulumi.get(self, "volume")
|
|
212
211
|
|
|
213
212
|
@volume.setter
|
|
214
|
-
def volume(self, value: Optional[pulumi.Input[
|
|
213
|
+
def volume(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
215
214
|
pulumi.set(self, "volume", value)
|
|
216
215
|
|
|
217
216
|
|
|
218
217
|
@pulumi.input_type
|
|
219
218
|
class _GrantState:
|
|
220
219
|
def __init__(__self__, *,
|
|
221
|
-
catalog: Optional[pulumi.Input[
|
|
222
|
-
credential: Optional[pulumi.Input[
|
|
223
|
-
external_location: Optional[pulumi.Input[
|
|
224
|
-
foreign_connection: Optional[pulumi.Input[
|
|
225
|
-
function: Optional[pulumi.Input[
|
|
226
|
-
metastore: Optional[pulumi.Input[
|
|
227
|
-
model: Optional[pulumi.Input[
|
|
228
|
-
pipeline: Optional[pulumi.Input[
|
|
229
|
-
principal: Optional[pulumi.Input[
|
|
230
|
-
privileges: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
231
|
-
recipient: Optional[pulumi.Input[
|
|
232
|
-
schema: Optional[pulumi.Input[
|
|
233
|
-
share: Optional[pulumi.Input[
|
|
234
|
-
storage_credential: Optional[pulumi.Input[
|
|
235
|
-
table: Optional[pulumi.Input[
|
|
236
|
-
volume: Optional[pulumi.Input[
|
|
220
|
+
catalog: Optional[pulumi.Input[_builtins.str]] = None,
|
|
221
|
+
credential: Optional[pulumi.Input[_builtins.str]] = None,
|
|
222
|
+
external_location: Optional[pulumi.Input[_builtins.str]] = None,
|
|
223
|
+
foreign_connection: Optional[pulumi.Input[_builtins.str]] = None,
|
|
224
|
+
function: Optional[pulumi.Input[_builtins.str]] = None,
|
|
225
|
+
metastore: Optional[pulumi.Input[_builtins.str]] = None,
|
|
226
|
+
model: Optional[pulumi.Input[_builtins.str]] = None,
|
|
227
|
+
pipeline: Optional[pulumi.Input[_builtins.str]] = None,
|
|
228
|
+
principal: Optional[pulumi.Input[_builtins.str]] = None,
|
|
229
|
+
privileges: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
230
|
+
recipient: Optional[pulumi.Input[_builtins.str]] = None,
|
|
231
|
+
schema: Optional[pulumi.Input[_builtins.str]] = None,
|
|
232
|
+
share: Optional[pulumi.Input[_builtins.str]] = None,
|
|
233
|
+
storage_credential: Optional[pulumi.Input[_builtins.str]] = None,
|
|
234
|
+
table: Optional[pulumi.Input[_builtins.str]] = None,
|
|
235
|
+
volume: Optional[pulumi.Input[_builtins.str]] = None):
|
|
237
236
|
"""
|
|
238
237
|
Input properties used for looking up and filtering Grant resources.
|
|
239
238
|
"""
|
|
@@ -270,148 +269,148 @@ class _GrantState:
|
|
|
270
269
|
if volume is not None:
|
|
271
270
|
pulumi.set(__self__, "volume", volume)
|
|
272
271
|
|
|
273
|
-
@property
|
|
272
|
+
@_builtins.property
|
|
274
273
|
@pulumi.getter
|
|
275
|
-
def catalog(self) -> Optional[pulumi.Input[
|
|
274
|
+
def catalog(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
276
275
|
return pulumi.get(self, "catalog")
|
|
277
276
|
|
|
278
277
|
@catalog.setter
|
|
279
|
-
def catalog(self, value: Optional[pulumi.Input[
|
|
278
|
+
def catalog(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
280
279
|
pulumi.set(self, "catalog", value)
|
|
281
280
|
|
|
282
|
-
@property
|
|
281
|
+
@_builtins.property
|
|
283
282
|
@pulumi.getter
|
|
284
|
-
def credential(self) -> Optional[pulumi.Input[
|
|
283
|
+
def credential(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
285
284
|
return pulumi.get(self, "credential")
|
|
286
285
|
|
|
287
286
|
@credential.setter
|
|
288
|
-
def credential(self, value: Optional[pulumi.Input[
|
|
287
|
+
def credential(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
289
288
|
pulumi.set(self, "credential", value)
|
|
290
289
|
|
|
291
|
-
@property
|
|
290
|
+
@_builtins.property
|
|
292
291
|
@pulumi.getter(name="externalLocation")
|
|
293
|
-
def external_location(self) -> Optional[pulumi.Input[
|
|
292
|
+
def external_location(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
294
293
|
return pulumi.get(self, "external_location")
|
|
295
294
|
|
|
296
295
|
@external_location.setter
|
|
297
|
-
def external_location(self, value: Optional[pulumi.Input[
|
|
296
|
+
def external_location(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
298
297
|
pulumi.set(self, "external_location", value)
|
|
299
298
|
|
|
300
|
-
@property
|
|
299
|
+
@_builtins.property
|
|
301
300
|
@pulumi.getter(name="foreignConnection")
|
|
302
|
-
def foreign_connection(self) -> Optional[pulumi.Input[
|
|
301
|
+
def foreign_connection(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
303
302
|
return pulumi.get(self, "foreign_connection")
|
|
304
303
|
|
|
305
304
|
@foreign_connection.setter
|
|
306
|
-
def foreign_connection(self, value: Optional[pulumi.Input[
|
|
305
|
+
def foreign_connection(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
307
306
|
pulumi.set(self, "foreign_connection", value)
|
|
308
307
|
|
|
309
|
-
@property
|
|
308
|
+
@_builtins.property
|
|
310
309
|
@pulumi.getter
|
|
311
|
-
def function(self) -> Optional[pulumi.Input[
|
|
310
|
+
def function(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
312
311
|
return pulumi.get(self, "function")
|
|
313
312
|
|
|
314
313
|
@function.setter
|
|
315
|
-
def function(self, value: Optional[pulumi.Input[
|
|
314
|
+
def function(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
316
315
|
pulumi.set(self, "function", value)
|
|
317
316
|
|
|
318
|
-
@property
|
|
317
|
+
@_builtins.property
|
|
319
318
|
@pulumi.getter
|
|
320
|
-
def metastore(self) -> Optional[pulumi.Input[
|
|
319
|
+
def metastore(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
321
320
|
return pulumi.get(self, "metastore")
|
|
322
321
|
|
|
323
322
|
@metastore.setter
|
|
324
|
-
def metastore(self, value: Optional[pulumi.Input[
|
|
323
|
+
def metastore(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
325
324
|
pulumi.set(self, "metastore", value)
|
|
326
325
|
|
|
327
|
-
@property
|
|
326
|
+
@_builtins.property
|
|
328
327
|
@pulumi.getter
|
|
329
|
-
def model(self) -> Optional[pulumi.Input[
|
|
328
|
+
def model(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
330
329
|
return pulumi.get(self, "model")
|
|
331
330
|
|
|
332
331
|
@model.setter
|
|
333
|
-
def model(self, value: Optional[pulumi.Input[
|
|
332
|
+
def model(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
334
333
|
pulumi.set(self, "model", value)
|
|
335
334
|
|
|
336
|
-
@property
|
|
335
|
+
@_builtins.property
|
|
337
336
|
@pulumi.getter
|
|
338
|
-
def pipeline(self) -> Optional[pulumi.Input[
|
|
337
|
+
def pipeline(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
339
338
|
return pulumi.get(self, "pipeline")
|
|
340
339
|
|
|
341
340
|
@pipeline.setter
|
|
342
|
-
def pipeline(self, value: Optional[pulumi.Input[
|
|
341
|
+
def pipeline(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
343
342
|
pulumi.set(self, "pipeline", value)
|
|
344
343
|
|
|
345
|
-
@property
|
|
344
|
+
@_builtins.property
|
|
346
345
|
@pulumi.getter
|
|
347
|
-
def principal(self) -> Optional[pulumi.Input[
|
|
346
|
+
def principal(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
348
347
|
return pulumi.get(self, "principal")
|
|
349
348
|
|
|
350
349
|
@principal.setter
|
|
351
|
-
def principal(self, value: Optional[pulumi.Input[
|
|
350
|
+
def principal(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
352
351
|
pulumi.set(self, "principal", value)
|
|
353
352
|
|
|
354
|
-
@property
|
|
353
|
+
@_builtins.property
|
|
355
354
|
@pulumi.getter
|
|
356
|
-
def privileges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
355
|
+
def privileges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
357
356
|
return pulumi.get(self, "privileges")
|
|
358
357
|
|
|
359
358
|
@privileges.setter
|
|
360
|
-
def privileges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
359
|
+
def privileges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
361
360
|
pulumi.set(self, "privileges", value)
|
|
362
361
|
|
|
363
|
-
@property
|
|
362
|
+
@_builtins.property
|
|
364
363
|
@pulumi.getter
|
|
365
|
-
def recipient(self) -> Optional[pulumi.Input[
|
|
364
|
+
def recipient(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
366
365
|
return pulumi.get(self, "recipient")
|
|
367
366
|
|
|
368
367
|
@recipient.setter
|
|
369
|
-
def recipient(self, value: Optional[pulumi.Input[
|
|
368
|
+
def recipient(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
370
369
|
pulumi.set(self, "recipient", value)
|
|
371
370
|
|
|
372
|
-
@property
|
|
371
|
+
@_builtins.property
|
|
373
372
|
@pulumi.getter
|
|
374
|
-
def schema(self) -> Optional[pulumi.Input[
|
|
373
|
+
def schema(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
375
374
|
return pulumi.get(self, "schema")
|
|
376
375
|
|
|
377
376
|
@schema.setter
|
|
378
|
-
def schema(self, value: Optional[pulumi.Input[
|
|
377
|
+
def schema(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
379
378
|
pulumi.set(self, "schema", value)
|
|
380
379
|
|
|
381
|
-
@property
|
|
380
|
+
@_builtins.property
|
|
382
381
|
@pulumi.getter
|
|
383
|
-
def share(self) -> Optional[pulumi.Input[
|
|
382
|
+
def share(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
384
383
|
return pulumi.get(self, "share")
|
|
385
384
|
|
|
386
385
|
@share.setter
|
|
387
|
-
def share(self, value: Optional[pulumi.Input[
|
|
386
|
+
def share(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
388
387
|
pulumi.set(self, "share", value)
|
|
389
388
|
|
|
390
|
-
@property
|
|
389
|
+
@_builtins.property
|
|
391
390
|
@pulumi.getter(name="storageCredential")
|
|
392
|
-
def storage_credential(self) -> Optional[pulumi.Input[
|
|
391
|
+
def storage_credential(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
393
392
|
return pulumi.get(self, "storage_credential")
|
|
394
393
|
|
|
395
394
|
@storage_credential.setter
|
|
396
|
-
def storage_credential(self, value: Optional[pulumi.Input[
|
|
395
|
+
def storage_credential(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
397
396
|
pulumi.set(self, "storage_credential", value)
|
|
398
397
|
|
|
399
|
-
@property
|
|
398
|
+
@_builtins.property
|
|
400
399
|
@pulumi.getter
|
|
401
|
-
def table(self) -> Optional[pulumi.Input[
|
|
400
|
+
def table(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
402
401
|
return pulumi.get(self, "table")
|
|
403
402
|
|
|
404
403
|
@table.setter
|
|
405
|
-
def table(self, value: Optional[pulumi.Input[
|
|
404
|
+
def table(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
406
405
|
pulumi.set(self, "table", value)
|
|
407
406
|
|
|
408
|
-
@property
|
|
407
|
+
@_builtins.property
|
|
409
408
|
@pulumi.getter
|
|
410
|
-
def volume(self) -> Optional[pulumi.Input[
|
|
409
|
+
def volume(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
411
410
|
return pulumi.get(self, "volume")
|
|
412
411
|
|
|
413
412
|
@volume.setter
|
|
414
|
-
def volume(self, value: Optional[pulumi.Input[
|
|
413
|
+
def volume(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
415
414
|
pulumi.set(self, "volume", value)
|
|
416
415
|
|
|
417
416
|
|
|
@@ -421,28 +420,30 @@ class Grant(pulumi.CustomResource):
|
|
|
421
420
|
def __init__(__self__,
|
|
422
421
|
resource_name: str,
|
|
423
422
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
424
|
-
catalog: Optional[pulumi.Input[
|
|
425
|
-
credential: Optional[pulumi.Input[
|
|
426
|
-
external_location: Optional[pulumi.Input[
|
|
427
|
-
foreign_connection: Optional[pulumi.Input[
|
|
428
|
-
function: Optional[pulumi.Input[
|
|
429
|
-
metastore: Optional[pulumi.Input[
|
|
430
|
-
model: Optional[pulumi.Input[
|
|
431
|
-
pipeline: Optional[pulumi.Input[
|
|
432
|
-
principal: Optional[pulumi.Input[
|
|
433
|
-
privileges: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
434
|
-
recipient: Optional[pulumi.Input[
|
|
435
|
-
schema: Optional[pulumi.Input[
|
|
436
|
-
share: Optional[pulumi.Input[
|
|
437
|
-
storage_credential: Optional[pulumi.Input[
|
|
438
|
-
table: Optional[pulumi.Input[
|
|
439
|
-
volume: Optional[pulumi.Input[
|
|
423
|
+
catalog: Optional[pulumi.Input[_builtins.str]] = None,
|
|
424
|
+
credential: Optional[pulumi.Input[_builtins.str]] = None,
|
|
425
|
+
external_location: Optional[pulumi.Input[_builtins.str]] = None,
|
|
426
|
+
foreign_connection: Optional[pulumi.Input[_builtins.str]] = None,
|
|
427
|
+
function: Optional[pulumi.Input[_builtins.str]] = None,
|
|
428
|
+
metastore: Optional[pulumi.Input[_builtins.str]] = None,
|
|
429
|
+
model: Optional[pulumi.Input[_builtins.str]] = None,
|
|
430
|
+
pipeline: Optional[pulumi.Input[_builtins.str]] = None,
|
|
431
|
+
principal: Optional[pulumi.Input[_builtins.str]] = None,
|
|
432
|
+
privileges: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
433
|
+
recipient: Optional[pulumi.Input[_builtins.str]] = None,
|
|
434
|
+
schema: Optional[pulumi.Input[_builtins.str]] = None,
|
|
435
|
+
share: Optional[pulumi.Input[_builtins.str]] = None,
|
|
436
|
+
storage_credential: Optional[pulumi.Input[_builtins.str]] = None,
|
|
437
|
+
table: Optional[pulumi.Input[_builtins.str]] = None,
|
|
438
|
+
volume: Optional[pulumi.Input[_builtins.str]] = None,
|
|
440
439
|
__props__=None):
|
|
441
440
|
"""
|
|
442
441
|
> 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)
|
|
443
442
|
|
|
444
443
|
> 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).
|
|
445
444
|
|
|
445
|
+
> This resource is _authoritative_ for grants on securables for a given _singular_ principal. Configuring this resource for a securable will **OVERWRITE** any existing grants for the principal and changes made outside of Pulumi will be reset. Use Grants for authoritative control of all grants on a securable.
|
|
446
|
+
|
|
446
447
|
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.
|
|
447
448
|
|
|
448
449
|
Securable objects are hierarchical and privileges are inherited downward. The highest level object that privileges are inherited from is the catalog. This means that granting a privilege on a catalog or schema automatically grants the privilege to all current and future objects within the catalog or schema. Privileges that are granted on a metastore are not inherited.
|
|
@@ -454,7 +455,7 @@ class Grant(pulumi.CustomResource):
|
|
|
454
455
|
|
|
455
456
|
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)
|
|
456
457
|
|
|
457
|
-
|
|
458
|
+
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`.
|
|
458
459
|
|
|
459
460
|
See Grants for the list of privilege types that apply to each securable object.
|
|
460
461
|
|
|
@@ -852,6 +853,8 @@ class Grant(pulumi.CustomResource):
|
|
|
852
853
|
|
|
853
854
|
> 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).
|
|
854
855
|
|
|
856
|
+
> This resource is _authoritative_ for grants on securables for a given _singular_ principal. Configuring this resource for a securable will **OVERWRITE** any existing grants for the principal and changes made outside of Pulumi will be reset. Use Grants for authoritative control of all grants on a securable.
|
|
857
|
+
|
|
855
858
|
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.
|
|
856
859
|
|
|
857
860
|
Securable objects are hierarchical and privileges are inherited downward. The highest level object that privileges are inherited from is the catalog. This means that granting a privilege on a catalog or schema automatically grants the privilege to all current and future objects within the catalog or schema. Privileges that are granted on a metastore are not inherited.
|
|
@@ -863,7 +866,7 @@ class Grant(pulumi.CustomResource):
|
|
|
863
866
|
|
|
864
867
|
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)
|
|
865
868
|
|
|
866
|
-
|
|
869
|
+
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`.
|
|
867
870
|
|
|
868
871
|
See Grants for the list of privilege types that apply to each securable object.
|
|
869
872
|
|
|
@@ -1262,22 +1265,22 @@ class Grant(pulumi.CustomResource):
|
|
|
1262
1265
|
def _internal_init(__self__,
|
|
1263
1266
|
resource_name: str,
|
|
1264
1267
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
1265
|
-
catalog: Optional[pulumi.Input[
|
|
1266
|
-
credential: Optional[pulumi.Input[
|
|
1267
|
-
external_location: Optional[pulumi.Input[
|
|
1268
|
-
foreign_connection: Optional[pulumi.Input[
|
|
1269
|
-
function: Optional[pulumi.Input[
|
|
1270
|
-
metastore: Optional[pulumi.Input[
|
|
1271
|
-
model: Optional[pulumi.Input[
|
|
1272
|
-
pipeline: Optional[pulumi.Input[
|
|
1273
|
-
principal: Optional[pulumi.Input[
|
|
1274
|
-
privileges: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
1275
|
-
recipient: Optional[pulumi.Input[
|
|
1276
|
-
schema: Optional[pulumi.Input[
|
|
1277
|
-
share: Optional[pulumi.Input[
|
|
1278
|
-
storage_credential: Optional[pulumi.Input[
|
|
1279
|
-
table: Optional[pulumi.Input[
|
|
1280
|
-
volume: Optional[pulumi.Input[
|
|
1268
|
+
catalog: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1269
|
+
credential: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1270
|
+
external_location: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1271
|
+
foreign_connection: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1272
|
+
function: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1273
|
+
metastore: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1274
|
+
model: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1275
|
+
pipeline: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1276
|
+
principal: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1277
|
+
privileges: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
1278
|
+
recipient: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1279
|
+
schema: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1280
|
+
share: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1281
|
+
storage_credential: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1282
|
+
table: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1283
|
+
volume: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1281
1284
|
__props__=None):
|
|
1282
1285
|
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
1283
1286
|
if not isinstance(opts, pulumi.ResourceOptions):
|
|
@@ -1317,22 +1320,22 @@ class Grant(pulumi.CustomResource):
|
|
|
1317
1320
|
def get(resource_name: str,
|
|
1318
1321
|
id: pulumi.Input[str],
|
|
1319
1322
|
opts: Optional[pulumi.ResourceOptions] = None,
|
|
1320
|
-
catalog: Optional[pulumi.Input[
|
|
1321
|
-
credential: Optional[pulumi.Input[
|
|
1322
|
-
external_location: Optional[pulumi.Input[
|
|
1323
|
-
foreign_connection: Optional[pulumi.Input[
|
|
1324
|
-
function: Optional[pulumi.Input[
|
|
1325
|
-
metastore: Optional[pulumi.Input[
|
|
1326
|
-
model: Optional[pulumi.Input[
|
|
1327
|
-
pipeline: Optional[pulumi.Input[
|
|
1328
|
-
principal: Optional[pulumi.Input[
|
|
1329
|
-
privileges: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
1330
|
-
recipient: Optional[pulumi.Input[
|
|
1331
|
-
schema: Optional[pulumi.Input[
|
|
1332
|
-
share: Optional[pulumi.Input[
|
|
1333
|
-
storage_credential: Optional[pulumi.Input[
|
|
1334
|
-
table: Optional[pulumi.Input[
|
|
1335
|
-
volume: Optional[pulumi.Input[
|
|
1323
|
+
catalog: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1324
|
+
credential: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1325
|
+
external_location: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1326
|
+
foreign_connection: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1327
|
+
function: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1328
|
+
metastore: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1329
|
+
model: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1330
|
+
pipeline: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1331
|
+
principal: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1332
|
+
privileges: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
1333
|
+
recipient: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1334
|
+
schema: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1335
|
+
share: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1336
|
+
storage_credential: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1337
|
+
table: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1338
|
+
volume: Optional[pulumi.Input[_builtins.str]] = None) -> 'Grant':
|
|
1336
1339
|
"""
|
|
1337
1340
|
Get an existing Grant resource's state with the given name, id, and optional extra
|
|
1338
1341
|
properties used to qualify the lookup.
|
|
@@ -1363,83 +1366,83 @@ class Grant(pulumi.CustomResource):
|
|
|
1363
1366
|
__props__.__dict__["volume"] = volume
|
|
1364
1367
|
return Grant(resource_name, opts=opts, __props__=__props__)
|
|
1365
1368
|
|
|
1366
|
-
@property
|
|
1369
|
+
@_builtins.property
|
|
1367
1370
|
@pulumi.getter
|
|
1368
|
-
def catalog(self) -> pulumi.Output[Optional[
|
|
1371
|
+
def catalog(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1369
1372
|
return pulumi.get(self, "catalog")
|
|
1370
1373
|
|
|
1371
|
-
@property
|
|
1374
|
+
@_builtins.property
|
|
1372
1375
|
@pulumi.getter
|
|
1373
|
-
def credential(self) -> pulumi.Output[Optional[
|
|
1376
|
+
def credential(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1374
1377
|
return pulumi.get(self, "credential")
|
|
1375
1378
|
|
|
1376
|
-
@property
|
|
1379
|
+
@_builtins.property
|
|
1377
1380
|
@pulumi.getter(name="externalLocation")
|
|
1378
|
-
def external_location(self) -> pulumi.Output[Optional[
|
|
1381
|
+
def external_location(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1379
1382
|
return pulumi.get(self, "external_location")
|
|
1380
1383
|
|
|
1381
|
-
@property
|
|
1384
|
+
@_builtins.property
|
|
1382
1385
|
@pulumi.getter(name="foreignConnection")
|
|
1383
|
-
def foreign_connection(self) -> pulumi.Output[Optional[
|
|
1386
|
+
def foreign_connection(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1384
1387
|
return pulumi.get(self, "foreign_connection")
|
|
1385
1388
|
|
|
1386
|
-
@property
|
|
1389
|
+
@_builtins.property
|
|
1387
1390
|
@pulumi.getter
|
|
1388
|
-
def function(self) -> pulumi.Output[Optional[
|
|
1391
|
+
def function(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1389
1392
|
return pulumi.get(self, "function")
|
|
1390
1393
|
|
|
1391
|
-
@property
|
|
1394
|
+
@_builtins.property
|
|
1392
1395
|
@pulumi.getter
|
|
1393
|
-
def metastore(self) -> pulumi.Output[Optional[
|
|
1396
|
+
def metastore(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1394
1397
|
return pulumi.get(self, "metastore")
|
|
1395
1398
|
|
|
1396
|
-
@property
|
|
1399
|
+
@_builtins.property
|
|
1397
1400
|
@pulumi.getter
|
|
1398
|
-
def model(self) -> pulumi.Output[Optional[
|
|
1401
|
+
def model(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1399
1402
|
return pulumi.get(self, "model")
|
|
1400
1403
|
|
|
1401
|
-
@property
|
|
1404
|
+
@_builtins.property
|
|
1402
1405
|
@pulumi.getter
|
|
1403
|
-
def pipeline(self) -> pulumi.Output[Optional[
|
|
1406
|
+
def pipeline(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1404
1407
|
return pulumi.get(self, "pipeline")
|
|
1405
1408
|
|
|
1406
|
-
@property
|
|
1409
|
+
@_builtins.property
|
|
1407
1410
|
@pulumi.getter
|
|
1408
|
-
def principal(self) -> pulumi.Output[
|
|
1411
|
+
def principal(self) -> pulumi.Output[_builtins.str]:
|
|
1409
1412
|
return pulumi.get(self, "principal")
|
|
1410
1413
|
|
|
1411
|
-
@property
|
|
1414
|
+
@_builtins.property
|
|
1412
1415
|
@pulumi.getter
|
|
1413
|
-
def privileges(self) -> pulumi.Output[Sequence[
|
|
1416
|
+
def privileges(self) -> pulumi.Output[Sequence[_builtins.str]]:
|
|
1414
1417
|
return pulumi.get(self, "privileges")
|
|
1415
1418
|
|
|
1416
|
-
@property
|
|
1419
|
+
@_builtins.property
|
|
1417
1420
|
@pulumi.getter
|
|
1418
|
-
def recipient(self) -> pulumi.Output[Optional[
|
|
1421
|
+
def recipient(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1419
1422
|
return pulumi.get(self, "recipient")
|
|
1420
1423
|
|
|
1421
|
-
@property
|
|
1424
|
+
@_builtins.property
|
|
1422
1425
|
@pulumi.getter
|
|
1423
|
-
def schema(self) -> pulumi.Output[Optional[
|
|
1426
|
+
def schema(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1424
1427
|
return pulumi.get(self, "schema")
|
|
1425
1428
|
|
|
1426
|
-
@property
|
|
1429
|
+
@_builtins.property
|
|
1427
1430
|
@pulumi.getter
|
|
1428
|
-
def share(self) -> pulumi.Output[Optional[
|
|
1431
|
+
def share(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1429
1432
|
return pulumi.get(self, "share")
|
|
1430
1433
|
|
|
1431
|
-
@property
|
|
1434
|
+
@_builtins.property
|
|
1432
1435
|
@pulumi.getter(name="storageCredential")
|
|
1433
|
-
def storage_credential(self) -> pulumi.Output[Optional[
|
|
1436
|
+
def storage_credential(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1434
1437
|
return pulumi.get(self, "storage_credential")
|
|
1435
1438
|
|
|
1436
|
-
@property
|
|
1439
|
+
@_builtins.property
|
|
1437
1440
|
@pulumi.getter
|
|
1438
|
-
def table(self) -> pulumi.Output[Optional[
|
|
1441
|
+
def table(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1439
1442
|
return pulumi.get(self, "table")
|
|
1440
1443
|
|
|
1441
|
-
@property
|
|
1444
|
+
@_builtins.property
|
|
1442
1445
|
@pulumi.getter
|
|
1443
|
-
def volume(self) -> pulumi.Output[Optional[
|
|
1446
|
+
def volume(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1444
1447
|
return pulumi.get(self, "volume")
|
|
1445
1448
|
|