databricks-sdk 0.21.0__py3-none-any.whl → 0.23.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.
Potentially problematic release.
This version of databricks-sdk might be problematic. Click here for more details.
- databricks/sdk/mixins/compute.py +2 -2
- databricks/sdk/service/catalog.py +237 -88
- databricks/sdk/service/dashboards.py +304 -10
- databricks/sdk/service/iam.py +1 -0
- databricks/sdk/service/serving.py +19 -14
- databricks/sdk/service/settings.py +4 -4
- databricks/sdk/service/sharing.py +22 -3
- databricks/sdk/service/sql.py +3 -3
- databricks/sdk/service/vectorsearch.py +8 -1
- databricks/sdk/version.py +1 -1
- {databricks_sdk-0.21.0.dist-info → databricks_sdk-0.23.0.dist-info}/METADATA +1 -1
- {databricks_sdk-0.21.0.dist-info → databricks_sdk-0.23.0.dist-info}/RECORD +16 -16
- {databricks_sdk-0.21.0.dist-info → databricks_sdk-0.23.0.dist-info}/LICENSE +0 -0
- {databricks_sdk-0.21.0.dist-info → databricks_sdk-0.23.0.dist-info}/NOTICE +0 -0
- {databricks_sdk-0.21.0.dist-info → databricks_sdk-0.23.0.dist-info}/WHEEL +0 -0
- {databricks_sdk-0.21.0.dist-info → databricks_sdk-0.23.0.dist-info}/top_level.txt +0 -0
|
@@ -275,7 +275,24 @@ class AssignResponse:
|
|
|
275
275
|
|
|
276
276
|
|
|
277
277
|
@dataclass
|
|
278
|
-
class
|
|
278
|
+
class AwsIamRoleRequest:
|
|
279
|
+
role_arn: str
|
|
280
|
+
"""The Amazon Resource Name (ARN) of the AWS IAM role for S3 data access."""
|
|
281
|
+
|
|
282
|
+
def as_dict(self) -> dict:
|
|
283
|
+
"""Serializes the AwsIamRoleRequest into a dictionary suitable for use as a JSON request body."""
|
|
284
|
+
body = {}
|
|
285
|
+
if self.role_arn is not None: body['role_arn'] = self.role_arn
|
|
286
|
+
return body
|
|
287
|
+
|
|
288
|
+
@classmethod
|
|
289
|
+
def from_dict(cls, d: Dict[str, any]) -> AwsIamRoleRequest:
|
|
290
|
+
"""Deserializes the AwsIamRoleRequest from a dictionary."""
|
|
291
|
+
return cls(role_arn=d.get('role_arn', None))
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
@dataclass
|
|
295
|
+
class AwsIamRoleResponse:
|
|
279
296
|
role_arn: str
|
|
280
297
|
"""The Amazon Resource Name (ARN) of the AWS IAM role for S3 data access."""
|
|
281
298
|
|
|
@@ -287,7 +304,7 @@ class AwsIamRole:
|
|
|
287
304
|
that is going to assume the AWS IAM role."""
|
|
288
305
|
|
|
289
306
|
def as_dict(self) -> dict:
|
|
290
|
-
"""Serializes the
|
|
307
|
+
"""Serializes the AwsIamRoleResponse into a dictionary suitable for use as a JSON request body."""
|
|
291
308
|
body = {}
|
|
292
309
|
if self.external_id is not None: body['external_id'] = self.external_id
|
|
293
310
|
if self.role_arn is not None: body['role_arn'] = self.role_arn
|
|
@@ -295,8 +312,8 @@ class AwsIamRole:
|
|
|
295
312
|
return body
|
|
296
313
|
|
|
297
314
|
@classmethod
|
|
298
|
-
def from_dict(cls, d: Dict[str, any]) ->
|
|
299
|
-
"""Deserializes the
|
|
315
|
+
def from_dict(cls, d: Dict[str, any]) -> AwsIamRoleResponse:
|
|
316
|
+
"""Deserializes the AwsIamRoleResponse from a dictionary."""
|
|
300
317
|
return cls(external_id=d.get('external_id', None),
|
|
301
318
|
role_arn=d.get('role_arn', None),
|
|
302
319
|
unity_catalog_iam_arn=d.get('unity_catalog_iam_arn', None))
|
|
@@ -378,7 +395,8 @@ class CancelRefreshResponse:
|
|
|
378
395
|
@dataclass
|
|
379
396
|
class CatalogInfo:
|
|
380
397
|
browse_only: Optional[bool] = None
|
|
381
|
-
"""
|
|
398
|
+
"""Indicates whether the principal is limited to retrieving metadata for the associated object
|
|
399
|
+
through the BROWSE privilege when include_browse is enabled in the request."""
|
|
382
400
|
|
|
383
401
|
catalog_type: Optional[CatalogType] = None
|
|
384
402
|
"""The type of the catalog."""
|
|
@@ -1252,7 +1270,7 @@ class CreateMonitor:
|
|
|
1252
1270
|
inference_log: Optional[MonitorInferenceLogProfileType] = None
|
|
1253
1271
|
"""Configuration for monitoring inference logs."""
|
|
1254
1272
|
|
|
1255
|
-
notifications: Optional[
|
|
1273
|
+
notifications: Optional[MonitorNotificationsConfig] = None
|
|
1256
1274
|
"""The notification settings for the monitor."""
|
|
1257
1275
|
|
|
1258
1276
|
schedule: Optional[MonitorCronSchedule] = None
|
|
@@ -1286,7 +1304,7 @@ class CreateMonitor:
|
|
|
1286
1304
|
body['data_classification_config'] = self.data_classification_config.as_dict()
|
|
1287
1305
|
if self.full_name is not None: body['full_name'] = self.full_name
|
|
1288
1306
|
if self.inference_log: body['inference_log'] = self.inference_log.as_dict()
|
|
1289
|
-
if self.notifications: body['notifications'] =
|
|
1307
|
+
if self.notifications: body['notifications'] = self.notifications.as_dict()
|
|
1290
1308
|
if self.output_schema_name is not None: body['output_schema_name'] = self.output_schema_name
|
|
1291
1309
|
if self.schedule: body['schedule'] = self.schedule.as_dict()
|
|
1292
1310
|
if self.skip_builtin_dashboard is not None:
|
|
@@ -1307,7 +1325,7 @@ class CreateMonitor:
|
|
|
1307
1325
|
MonitorDataClassificationConfig),
|
|
1308
1326
|
full_name=d.get('full_name', None),
|
|
1309
1327
|
inference_log=_from_dict(d, 'inference_log', MonitorInferenceLogProfileType),
|
|
1310
|
-
notifications=
|
|
1328
|
+
notifications=_from_dict(d, 'notifications', MonitorNotificationsConfig),
|
|
1311
1329
|
output_schema_name=d.get('output_schema_name', None),
|
|
1312
1330
|
schedule=_from_dict(d, 'schedule', MonitorCronSchedule),
|
|
1313
1331
|
skip_builtin_dashboard=d.get('skip_builtin_dashboard', None),
|
|
@@ -1317,6 +1335,29 @@ class CreateMonitor:
|
|
|
1317
1335
|
warehouse_id=d.get('warehouse_id', None))
|
|
1318
1336
|
|
|
1319
1337
|
|
|
1338
|
+
@dataclass
|
|
1339
|
+
class CreateOnlineTableRequest:
|
|
1340
|
+
"""Online Table information."""
|
|
1341
|
+
|
|
1342
|
+
name: Optional[str] = None
|
|
1343
|
+
"""Full three-part (catalog, schema, table) name of the table."""
|
|
1344
|
+
|
|
1345
|
+
spec: Optional[OnlineTableSpec] = None
|
|
1346
|
+
"""Specification of the online table."""
|
|
1347
|
+
|
|
1348
|
+
def as_dict(self) -> dict:
|
|
1349
|
+
"""Serializes the CreateOnlineTableRequest into a dictionary suitable for use as a JSON request body."""
|
|
1350
|
+
body = {}
|
|
1351
|
+
if self.name is not None: body['name'] = self.name
|
|
1352
|
+
if self.spec: body['spec'] = self.spec.as_dict()
|
|
1353
|
+
return body
|
|
1354
|
+
|
|
1355
|
+
@classmethod
|
|
1356
|
+
def from_dict(cls, d: Dict[str, any]) -> CreateOnlineTableRequest:
|
|
1357
|
+
"""Deserializes the CreateOnlineTableRequest from a dictionary."""
|
|
1358
|
+
return cls(name=d.get('name', None), spec=_from_dict(d, 'spec', OnlineTableSpec))
|
|
1359
|
+
|
|
1360
|
+
|
|
1320
1361
|
@dataclass
|
|
1321
1362
|
class CreateRegisteredModelRequest:
|
|
1322
1363
|
catalog_name: str
|
|
@@ -1410,7 +1451,7 @@ class CreateStorageCredential:
|
|
|
1410
1451
|
name: str
|
|
1411
1452
|
"""The credential name. The name must be unique within the metastore."""
|
|
1412
1453
|
|
|
1413
|
-
aws_iam_role: Optional[
|
|
1454
|
+
aws_iam_role: Optional[AwsIamRoleRequest] = None
|
|
1414
1455
|
"""The AWS IAM role configuration."""
|
|
1415
1456
|
|
|
1416
1457
|
azure_managed_identity: Optional[AzureManagedIdentity] = None
|
|
@@ -1453,7 +1494,7 @@ class CreateStorageCredential:
|
|
|
1453
1494
|
@classmethod
|
|
1454
1495
|
def from_dict(cls, d: Dict[str, any]) -> CreateStorageCredential:
|
|
1455
1496
|
"""Deserializes the CreateStorageCredential from a dictionary."""
|
|
1456
|
-
return cls(aws_iam_role=_from_dict(d, 'aws_iam_role',
|
|
1497
|
+
return cls(aws_iam_role=_from_dict(d, 'aws_iam_role', AwsIamRoleRequest),
|
|
1457
1498
|
azure_managed_identity=_from_dict(d, 'azure_managed_identity', AzureManagedIdentity),
|
|
1458
1499
|
azure_service_principal=_from_dict(d, 'azure_service_principal', AzureServicePrincipal),
|
|
1459
1500
|
cloudflare_api_token=_from_dict(d, 'cloudflare_api_token', CloudflareApiToken),
|
|
@@ -1879,6 +1920,10 @@ class ExternalLocationInfo:
|
|
|
1879
1920
|
access_point: Optional[str] = None
|
|
1880
1921
|
"""The AWS access point to use when accesing s3 for this external location."""
|
|
1881
1922
|
|
|
1923
|
+
browse_only: Optional[bool] = None
|
|
1924
|
+
"""Indicates whether the principal is limited to retrieving metadata for the associated object
|
|
1925
|
+
through the BROWSE privilege when include_browse is enabled in the request."""
|
|
1926
|
+
|
|
1882
1927
|
comment: Optional[str] = None
|
|
1883
1928
|
"""User-provided free-form text description."""
|
|
1884
1929
|
|
|
@@ -1922,6 +1967,7 @@ class ExternalLocationInfo:
|
|
|
1922
1967
|
"""Serializes the ExternalLocationInfo into a dictionary suitable for use as a JSON request body."""
|
|
1923
1968
|
body = {}
|
|
1924
1969
|
if self.access_point is not None: body['access_point'] = self.access_point
|
|
1970
|
+
if self.browse_only is not None: body['browse_only'] = self.browse_only
|
|
1925
1971
|
if self.comment is not None: body['comment'] = self.comment
|
|
1926
1972
|
if self.created_at is not None: body['created_at'] = self.created_at
|
|
1927
1973
|
if self.created_by is not None: body['created_by'] = self.created_by
|
|
@@ -1941,6 +1987,7 @@ class ExternalLocationInfo:
|
|
|
1941
1987
|
def from_dict(cls, d: Dict[str, any]) -> ExternalLocationInfo:
|
|
1942
1988
|
"""Deserializes the ExternalLocationInfo from a dictionary."""
|
|
1943
1989
|
return cls(access_point=d.get('access_point', None),
|
|
1990
|
+
browse_only=d.get('browse_only', None),
|
|
1944
1991
|
comment=d.get('comment', None),
|
|
1945
1992
|
created_at=d.get('created_at', None),
|
|
1946
1993
|
created_by=d.get('created_by', None),
|
|
@@ -2039,6 +2086,10 @@ class FunctionDependency:
|
|
|
2039
2086
|
|
|
2040
2087
|
@dataclass
|
|
2041
2088
|
class FunctionInfo:
|
|
2089
|
+
browse_only: Optional[bool] = None
|
|
2090
|
+
"""Indicates whether the principal is limited to retrieving metadata for the associated object
|
|
2091
|
+
through the BROWSE privilege when include_browse is enabled in the request."""
|
|
2092
|
+
|
|
2042
2093
|
catalog_name: Optional[str] = None
|
|
2043
2094
|
"""Name of parent catalog."""
|
|
2044
2095
|
|
|
@@ -2131,6 +2182,7 @@ class FunctionInfo:
|
|
|
2131
2182
|
def as_dict(self) -> dict:
|
|
2132
2183
|
"""Serializes the FunctionInfo into a dictionary suitable for use as a JSON request body."""
|
|
2133
2184
|
body = {}
|
|
2185
|
+
if self.browse_only is not None: body['browse_only'] = self.browse_only
|
|
2134
2186
|
if self.catalog_name is not None: body['catalog_name'] = self.catalog_name
|
|
2135
2187
|
if self.comment is not None: body['comment'] = self.comment
|
|
2136
2188
|
if self.created_at is not None: body['created_at'] = self.created_at
|
|
@@ -2165,7 +2217,8 @@ class FunctionInfo:
|
|
|
2165
2217
|
@classmethod
|
|
2166
2218
|
def from_dict(cls, d: Dict[str, any]) -> FunctionInfo:
|
|
2167
2219
|
"""Deserializes the FunctionInfo from a dictionary."""
|
|
2168
|
-
return cls(
|
|
2220
|
+
return cls(browse_only=d.get('browse_only', None),
|
|
2221
|
+
catalog_name=d.get('catalog_name', None),
|
|
2169
2222
|
comment=d.get('comment', None),
|
|
2170
2223
|
created_at=d.get('created_at', None),
|
|
2171
2224
|
created_by=d.get('created_by', None),
|
|
@@ -2899,6 +2952,10 @@ class MetastoreInfoDeltaSharingScope(Enum):
|
|
|
2899
2952
|
|
|
2900
2953
|
@dataclass
|
|
2901
2954
|
class ModelVersionInfo:
|
|
2955
|
+
browse_only: Optional[bool] = None
|
|
2956
|
+
"""Indicates whether the principal is limited to retrieving metadata for the associated object
|
|
2957
|
+
through the BROWSE privilege when include_browse is enabled in the request."""
|
|
2958
|
+
|
|
2902
2959
|
catalog_name: Optional[str] = None
|
|
2903
2960
|
"""The name of the catalog containing the model version"""
|
|
2904
2961
|
|
|
@@ -2955,6 +3012,7 @@ class ModelVersionInfo:
|
|
|
2955
3012
|
def as_dict(self) -> dict:
|
|
2956
3013
|
"""Serializes the ModelVersionInfo into a dictionary suitable for use as a JSON request body."""
|
|
2957
3014
|
body = {}
|
|
3015
|
+
if self.browse_only is not None: body['browse_only'] = self.browse_only
|
|
2958
3016
|
if self.catalog_name is not None: body['catalog_name'] = self.catalog_name
|
|
2959
3017
|
if self.comment is not None: body['comment'] = self.comment
|
|
2960
3018
|
if self.created_at is not None: body['created_at'] = self.created_at
|
|
@@ -2978,7 +3036,8 @@ class ModelVersionInfo:
|
|
|
2978
3036
|
@classmethod
|
|
2979
3037
|
def from_dict(cls, d: Dict[str, any]) -> ModelVersionInfo:
|
|
2980
3038
|
"""Deserializes the ModelVersionInfo from a dictionary."""
|
|
2981
|
-
return cls(
|
|
3039
|
+
return cls(browse_only=d.get('browse_only', None),
|
|
3040
|
+
catalog_name=d.get('catalog_name', None),
|
|
2982
3041
|
comment=d.get('comment', None),
|
|
2983
3042
|
created_at=d.get('created_at', None),
|
|
2984
3043
|
created_by=d.get('created_by', None),
|
|
@@ -3112,7 +3171,8 @@ class MonitorDataClassificationConfig:
|
|
|
3112
3171
|
@dataclass
|
|
3113
3172
|
class MonitorDestinations:
|
|
3114
3173
|
email_addresses: Optional[List[str]] = None
|
|
3115
|
-
"""The list of email addresses to send the notification to.
|
|
3174
|
+
"""The list of email addresses to send the notification to. A maximum of 5 email addresses is
|
|
3175
|
+
supported."""
|
|
3116
3176
|
|
|
3117
3177
|
def as_dict(self) -> dict:
|
|
3118
3178
|
"""Serializes the MonitorDestinations into a dictionary suitable for use as a JSON request body."""
|
|
@@ -3213,7 +3273,7 @@ class MonitorInfo:
|
|
|
3213
3273
|
monitor_version: Optional[str] = None
|
|
3214
3274
|
"""The version of the monitor config (e.g. 1,2,3). If negative, the monitor may be corrupted."""
|
|
3215
3275
|
|
|
3216
|
-
notifications: Optional[
|
|
3276
|
+
notifications: Optional[MonitorNotificationsConfig] = None
|
|
3217
3277
|
"""The notification settings for the monitor."""
|
|
3218
3278
|
|
|
3219
3279
|
output_schema_name: Optional[str] = None
|
|
@@ -3258,7 +3318,7 @@ class MonitorInfo:
|
|
|
3258
3318
|
if self.latest_monitor_failure_msg is not None:
|
|
3259
3319
|
body['latest_monitor_failure_msg'] = self.latest_monitor_failure_msg
|
|
3260
3320
|
if self.monitor_version is not None: body['monitor_version'] = self.monitor_version
|
|
3261
|
-
if self.notifications: body['notifications'] =
|
|
3321
|
+
if self.notifications: body['notifications'] = self.notifications.as_dict()
|
|
3262
3322
|
if self.output_schema_name is not None: body['output_schema_name'] = self.output_schema_name
|
|
3263
3323
|
if self.profile_metrics_table_name is not None:
|
|
3264
3324
|
body['profile_metrics_table_name'] = self.profile_metrics_table_name
|
|
@@ -3283,7 +3343,7 @@ class MonitorInfo:
|
|
|
3283
3343
|
inference_log=_from_dict(d, 'inference_log', MonitorInferenceLogProfileType),
|
|
3284
3344
|
latest_monitor_failure_msg=d.get('latest_monitor_failure_msg', None),
|
|
3285
3345
|
monitor_version=d.get('monitor_version', None),
|
|
3286
|
-
notifications=
|
|
3346
|
+
notifications=_from_dict(d, 'notifications', MonitorNotificationsConfig),
|
|
3287
3347
|
output_schema_name=d.get('output_schema_name', None),
|
|
3288
3348
|
profile_metrics_table_name=d.get('profile_metrics_table_name', None),
|
|
3289
3349
|
schedule=_from_dict(d, 'schedule', MonitorCronSchedule),
|
|
@@ -3858,6 +3918,10 @@ class RegisteredModelInfo:
|
|
|
3858
3918
|
aliases: Optional[List[RegisteredModelAlias]] = None
|
|
3859
3919
|
"""List of aliases associated with the registered model"""
|
|
3860
3920
|
|
|
3921
|
+
browse_only: Optional[bool] = None
|
|
3922
|
+
"""Indicates whether the principal is limited to retrieving metadata for the associated object
|
|
3923
|
+
through the BROWSE privilege when include_browse is enabled in the request."""
|
|
3924
|
+
|
|
3861
3925
|
catalog_name: Optional[str] = None
|
|
3862
3926
|
"""The name of the catalog where the schema and the registered model reside"""
|
|
3863
3927
|
|
|
@@ -3898,6 +3962,7 @@ class RegisteredModelInfo:
|
|
|
3898
3962
|
"""Serializes the RegisteredModelInfo into a dictionary suitable for use as a JSON request body."""
|
|
3899
3963
|
body = {}
|
|
3900
3964
|
if self.aliases: body['aliases'] = [v.as_dict() for v in self.aliases]
|
|
3965
|
+
if self.browse_only is not None: body['browse_only'] = self.browse_only
|
|
3901
3966
|
if self.catalog_name is not None: body['catalog_name'] = self.catalog_name
|
|
3902
3967
|
if self.comment is not None: body['comment'] = self.comment
|
|
3903
3968
|
if self.created_at is not None: body['created_at'] = self.created_at
|
|
@@ -3916,6 +3981,7 @@ class RegisteredModelInfo:
|
|
|
3916
3981
|
def from_dict(cls, d: Dict[str, any]) -> RegisteredModelInfo:
|
|
3917
3982
|
"""Deserializes the RegisteredModelInfo from a dictionary."""
|
|
3918
3983
|
return cls(aliases=_repeated_dict(d, 'aliases', RegisteredModelAlias),
|
|
3984
|
+
browse_only=d.get('browse_only', None),
|
|
3919
3985
|
catalog_name=d.get('catalog_name', None),
|
|
3920
3986
|
comment=d.get('comment', None),
|
|
3921
3987
|
created_at=d.get('created_at', None),
|
|
@@ -3932,6 +3998,10 @@ class RegisteredModelInfo:
|
|
|
3932
3998
|
|
|
3933
3999
|
@dataclass
|
|
3934
4000
|
class SchemaInfo:
|
|
4001
|
+
browse_only: Optional[bool] = None
|
|
4002
|
+
"""Indicates whether the principal is limited to retrieving metadata for the associated object
|
|
4003
|
+
through the BROWSE privilege when include_browse is enabled in the request."""
|
|
4004
|
+
|
|
3935
4005
|
catalog_name: Optional[str] = None
|
|
3936
4006
|
"""Name of parent catalog."""
|
|
3937
4007
|
|
|
@@ -3982,6 +4052,7 @@ class SchemaInfo:
|
|
|
3982
4052
|
def as_dict(self) -> dict:
|
|
3983
4053
|
"""Serializes the SchemaInfo into a dictionary suitable for use as a JSON request body."""
|
|
3984
4054
|
body = {}
|
|
4055
|
+
if self.browse_only is not None: body['browse_only'] = self.browse_only
|
|
3985
4056
|
if self.catalog_name is not None: body['catalog_name'] = self.catalog_name
|
|
3986
4057
|
if self.catalog_type is not None: body['catalog_type'] = self.catalog_type
|
|
3987
4058
|
if self.comment is not None: body['comment'] = self.comment
|
|
@@ -4007,7 +4078,8 @@ class SchemaInfo:
|
|
|
4007
4078
|
@classmethod
|
|
4008
4079
|
def from_dict(cls, d: Dict[str, any]) -> SchemaInfo:
|
|
4009
4080
|
"""Deserializes the SchemaInfo from a dictionary."""
|
|
4010
|
-
return cls(
|
|
4081
|
+
return cls(browse_only=d.get('browse_only', None),
|
|
4082
|
+
catalog_name=d.get('catalog_name', None),
|
|
4011
4083
|
catalog_type=d.get('catalog_type', None),
|
|
4012
4084
|
comment=d.get('comment', None),
|
|
4013
4085
|
created_at=d.get('created_at', None),
|
|
@@ -4132,7 +4204,7 @@ class SseEncryptionDetailsAlgorithm(Enum):
|
|
|
4132
4204
|
|
|
4133
4205
|
@dataclass
|
|
4134
4206
|
class StorageCredentialInfo:
|
|
4135
|
-
aws_iam_role: Optional[
|
|
4207
|
+
aws_iam_role: Optional[AwsIamRoleResponse] = None
|
|
4136
4208
|
"""The AWS IAM role configuration."""
|
|
4137
4209
|
|
|
4138
4210
|
azure_managed_identity: Optional[AzureManagedIdentity] = None
|
|
@@ -4207,7 +4279,7 @@ class StorageCredentialInfo:
|
|
|
4207
4279
|
@classmethod
|
|
4208
4280
|
def from_dict(cls, d: Dict[str, any]) -> StorageCredentialInfo:
|
|
4209
4281
|
"""Deserializes the StorageCredentialInfo from a dictionary."""
|
|
4210
|
-
return cls(aws_iam_role=_from_dict(d, 'aws_iam_role',
|
|
4282
|
+
return cls(aws_iam_role=_from_dict(d, 'aws_iam_role', AwsIamRoleResponse),
|
|
4211
4283
|
azure_managed_identity=_from_dict(d, 'azure_managed_identity', AzureManagedIdentity),
|
|
4212
4284
|
azure_service_principal=_from_dict(d, 'azure_service_principal', AzureServicePrincipal),
|
|
4213
4285
|
cloudflare_api_token=_from_dict(d, 'cloudflare_api_token', CloudflareApiToken),
|
|
@@ -4328,6 +4400,10 @@ class TableInfo:
|
|
|
4328
4400
|
access_point: Optional[str] = None
|
|
4329
4401
|
"""The AWS access point to use when accesing s3 for this external location."""
|
|
4330
4402
|
|
|
4403
|
+
browse_only: Optional[bool] = None
|
|
4404
|
+
"""Indicates whether the principal is limited to retrieving metadata for the associated object
|
|
4405
|
+
through the BROWSE privilege when include_browse is enabled in the request."""
|
|
4406
|
+
|
|
4331
4407
|
catalog_name: Optional[str] = None
|
|
4332
4408
|
"""Name of parent catalog."""
|
|
4333
4409
|
|
|
@@ -4425,6 +4501,7 @@ class TableInfo:
|
|
|
4425
4501
|
"""Serializes the TableInfo into a dictionary suitable for use as a JSON request body."""
|
|
4426
4502
|
body = {}
|
|
4427
4503
|
if self.access_point is not None: body['access_point'] = self.access_point
|
|
4504
|
+
if self.browse_only is not None: body['browse_only'] = self.browse_only
|
|
4428
4505
|
if self.catalog_name is not None: body['catalog_name'] = self.catalog_name
|
|
4429
4506
|
if self.columns: body['columns'] = [v.as_dict() for v in self.columns]
|
|
4430
4507
|
if self.comment is not None: body['comment'] = self.comment
|
|
@@ -4468,6 +4545,7 @@ class TableInfo:
|
|
|
4468
4545
|
def from_dict(cls, d: Dict[str, any]) -> TableInfo:
|
|
4469
4546
|
"""Deserializes the TableInfo from a dictionary."""
|
|
4470
4547
|
return cls(access_point=d.get('access_point', None),
|
|
4548
|
+
browse_only=d.get('browse_only', None),
|
|
4471
4549
|
catalog_name=d.get('catalog_name', None),
|
|
4472
4550
|
columns=_repeated_dict(d, 'columns', ColumnInfo),
|
|
4473
4551
|
comment=d.get('comment', None),
|
|
@@ -4929,7 +5007,7 @@ class UpdateMonitor:
|
|
|
4929
5007
|
inference_log: Optional[MonitorInferenceLogProfileType] = None
|
|
4930
5008
|
"""Configuration for monitoring inference logs."""
|
|
4931
5009
|
|
|
4932
|
-
notifications: Optional[
|
|
5010
|
+
notifications: Optional[MonitorNotificationsConfig] = None
|
|
4933
5011
|
"""The notification settings for the monitor."""
|
|
4934
5012
|
|
|
4935
5013
|
schedule: Optional[MonitorCronSchedule] = None
|
|
@@ -4955,7 +5033,7 @@ class UpdateMonitor:
|
|
|
4955
5033
|
body['data_classification_config'] = self.data_classification_config.as_dict()
|
|
4956
5034
|
if self.full_name is not None: body['full_name'] = self.full_name
|
|
4957
5035
|
if self.inference_log: body['inference_log'] = self.inference_log.as_dict()
|
|
4958
|
-
if self.notifications: body['notifications'] =
|
|
5036
|
+
if self.notifications: body['notifications'] = self.notifications.as_dict()
|
|
4959
5037
|
if self.output_schema_name is not None: body['output_schema_name'] = self.output_schema_name
|
|
4960
5038
|
if self.schedule: body['schedule'] = self.schedule.as_dict()
|
|
4961
5039
|
if self.slicing_exprs: body['slicing_exprs'] = [v for v in self.slicing_exprs]
|
|
@@ -4972,7 +5050,7 @@ class UpdateMonitor:
|
|
|
4972
5050
|
MonitorDataClassificationConfig),
|
|
4973
5051
|
full_name=d.get('full_name', None),
|
|
4974
5052
|
inference_log=_from_dict(d, 'inference_log', MonitorInferenceLogProfileType),
|
|
4975
|
-
notifications=
|
|
5053
|
+
notifications=_from_dict(d, 'notifications', MonitorNotificationsConfig),
|
|
4976
5054
|
output_schema_name=d.get('output_schema_name', None),
|
|
4977
5055
|
schedule=_from_dict(d, 'schedule', MonitorCronSchedule),
|
|
4978
5056
|
slicing_exprs=d.get('slicing_exprs', None),
|
|
@@ -5099,7 +5177,7 @@ class UpdateSchema:
|
|
|
5099
5177
|
|
|
5100
5178
|
@dataclass
|
|
5101
5179
|
class UpdateStorageCredential:
|
|
5102
|
-
aws_iam_role: Optional[
|
|
5180
|
+
aws_iam_role: Optional[AwsIamRoleRequest] = None
|
|
5103
5181
|
"""The AWS IAM role configuration."""
|
|
5104
5182
|
|
|
5105
5183
|
azure_managed_identity: Optional[AzureManagedIdentity] = None
|
|
@@ -5157,7 +5235,7 @@ class UpdateStorageCredential:
|
|
|
5157
5235
|
@classmethod
|
|
5158
5236
|
def from_dict(cls, d: Dict[str, any]) -> UpdateStorageCredential:
|
|
5159
5237
|
"""Deserializes the UpdateStorageCredential from a dictionary."""
|
|
5160
|
-
return cls(aws_iam_role=_from_dict(d, 'aws_iam_role',
|
|
5238
|
+
return cls(aws_iam_role=_from_dict(d, 'aws_iam_role', AwsIamRoleRequest),
|
|
5161
5239
|
azure_managed_identity=_from_dict(d, 'azure_managed_identity', AzureManagedIdentity),
|
|
5162
5240
|
azure_service_principal=_from_dict(d, 'azure_service_principal', AzureServicePrincipal),
|
|
5163
5241
|
cloudflare_api_token=_from_dict(d, 'cloudflare_api_token', CloudflareApiToken),
|
|
@@ -5265,7 +5343,7 @@ class UpdateWorkspaceBindingsParameters:
|
|
|
5265
5343
|
|
|
5266
5344
|
@dataclass
|
|
5267
5345
|
class ValidateStorageCredential:
|
|
5268
|
-
aws_iam_role: Optional[
|
|
5346
|
+
aws_iam_role: Optional[AwsIamRoleRequest] = None
|
|
5269
5347
|
"""The AWS IAM role configuration."""
|
|
5270
5348
|
|
|
5271
5349
|
azure_managed_identity: Optional[AzureManagedIdentity] = None
|
|
@@ -5313,7 +5391,7 @@ class ValidateStorageCredential:
|
|
|
5313
5391
|
@classmethod
|
|
5314
5392
|
def from_dict(cls, d: Dict[str, any]) -> ValidateStorageCredential:
|
|
5315
5393
|
"""Deserializes the ValidateStorageCredential from a dictionary."""
|
|
5316
|
-
return cls(aws_iam_role=_from_dict(d, 'aws_iam_role',
|
|
5394
|
+
return cls(aws_iam_role=_from_dict(d, 'aws_iam_role', AwsIamRoleRequest),
|
|
5317
5395
|
azure_managed_identity=_from_dict(d, 'azure_managed_identity', AzureManagedIdentity),
|
|
5318
5396
|
azure_service_principal=_from_dict(d, 'azure_service_principal', AzureServicePrincipal),
|
|
5319
5397
|
cloudflare_api_token=_from_dict(d, 'cloudflare_api_token', CloudflareApiToken),
|
|
@@ -5390,34 +5468,15 @@ class ValidationResultResult(Enum):
|
|
|
5390
5468
|
SKIP = 'SKIP'
|
|
5391
5469
|
|
|
5392
5470
|
|
|
5393
|
-
@dataclass
|
|
5394
|
-
class ViewData:
|
|
5395
|
-
"""Online Table information."""
|
|
5396
|
-
|
|
5397
|
-
name: Optional[str] = None
|
|
5398
|
-
"""Full three-part (catalog, schema, table) name of the table."""
|
|
5399
|
-
|
|
5400
|
-
spec: Optional[OnlineTableSpec] = None
|
|
5401
|
-
"""Specification of the online table."""
|
|
5402
|
-
|
|
5403
|
-
def as_dict(self) -> dict:
|
|
5404
|
-
"""Serializes the ViewData into a dictionary suitable for use as a JSON request body."""
|
|
5405
|
-
body = {}
|
|
5406
|
-
if self.name is not None: body['name'] = self.name
|
|
5407
|
-
if self.spec: body['spec'] = self.spec.as_dict()
|
|
5408
|
-
return body
|
|
5409
|
-
|
|
5410
|
-
@classmethod
|
|
5411
|
-
def from_dict(cls, d: Dict[str, any]) -> ViewData:
|
|
5412
|
-
"""Deserializes the ViewData from a dictionary."""
|
|
5413
|
-
return cls(name=d.get('name', None), spec=_from_dict(d, 'spec', OnlineTableSpec))
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
5471
|
@dataclass
|
|
5417
5472
|
class VolumeInfo:
|
|
5418
5473
|
access_point: Optional[str] = None
|
|
5419
5474
|
"""The AWS access point to use when accesing s3 for this external location."""
|
|
5420
5475
|
|
|
5476
|
+
browse_only: Optional[bool] = None
|
|
5477
|
+
"""Indicates whether the principal is limited to retrieving metadata for the associated object
|
|
5478
|
+
through the BROWSE privilege when include_browse is enabled in the request."""
|
|
5479
|
+
|
|
5421
5480
|
catalog_name: Optional[str] = None
|
|
5422
5481
|
"""The name of the catalog where the schema and the volume are"""
|
|
5423
5482
|
|
|
@@ -5464,6 +5523,7 @@ class VolumeInfo:
|
|
|
5464
5523
|
"""Serializes the VolumeInfo into a dictionary suitable for use as a JSON request body."""
|
|
5465
5524
|
body = {}
|
|
5466
5525
|
if self.access_point is not None: body['access_point'] = self.access_point
|
|
5526
|
+
if self.browse_only is not None: body['browse_only'] = self.browse_only
|
|
5467
5527
|
if self.catalog_name is not None: body['catalog_name'] = self.catalog_name
|
|
5468
5528
|
if self.comment is not None: body['comment'] = self.comment
|
|
5469
5529
|
if self.created_at is not None: body['created_at'] = self.created_at
|
|
@@ -5485,6 +5545,7 @@ class VolumeInfo:
|
|
|
5485
5545
|
def from_dict(cls, d: Dict[str, any]) -> VolumeInfo:
|
|
5486
5546
|
"""Deserializes the VolumeInfo from a dictionary."""
|
|
5487
5547
|
return cls(access_point=d.get('access_point', None),
|
|
5548
|
+
browse_only=d.get('browse_only', None),
|
|
5488
5549
|
catalog_name=d.get('catalog_name', None),
|
|
5489
5550
|
comment=d.get('comment', None),
|
|
5490
5551
|
created_at=d.get('created_at', None),
|
|
@@ -6046,7 +6107,7 @@ class CatalogsAPI:
|
|
|
6046
6107
|
|
|
6047
6108
|
self._api.do('DELETE', f'/api/2.1/unity-catalog/catalogs/{name}', query=query, headers=headers)
|
|
6048
6109
|
|
|
6049
|
-
def get(self, name: str) -> CatalogInfo:
|
|
6110
|
+
def get(self, name: str, *, include_browse: Optional[bool] = None) -> CatalogInfo:
|
|
6050
6111
|
"""Get a catalog.
|
|
6051
6112
|
|
|
6052
6113
|
Gets the specified catalog in a metastore. The caller must be a metastore admin, the owner of the
|
|
@@ -6054,16 +6115,21 @@ class CatalogsAPI:
|
|
|
6054
6115
|
|
|
6055
6116
|
:param name: str
|
|
6056
6117
|
The name of the catalog.
|
|
6118
|
+
:param include_browse: bool (optional)
|
|
6119
|
+
Whether to include catalogs in the response for which the principal can only access selective
|
|
6120
|
+
metadata for
|
|
6057
6121
|
|
|
6058
6122
|
:returns: :class:`CatalogInfo`
|
|
6059
6123
|
"""
|
|
6060
6124
|
|
|
6125
|
+
query = {}
|
|
6126
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
6061
6127
|
headers = {'Accept': 'application/json', }
|
|
6062
6128
|
|
|
6063
|
-
res = self._api.do('GET', f'/api/2.1/unity-catalog/catalogs/{name}', headers=headers)
|
|
6129
|
+
res = self._api.do('GET', f'/api/2.1/unity-catalog/catalogs/{name}', query=query, headers=headers)
|
|
6064
6130
|
return CatalogInfo.from_dict(res)
|
|
6065
6131
|
|
|
6066
|
-
def list(self) -> Iterator[CatalogInfo]:
|
|
6132
|
+
def list(self, *, include_browse: Optional[bool] = None) -> Iterator[CatalogInfo]:
|
|
6067
6133
|
"""List catalogs.
|
|
6068
6134
|
|
|
6069
6135
|
Gets an array of catalogs in the metastore. If the caller is the metastore admin, all catalogs will be
|
|
@@ -6071,12 +6137,18 @@ class CatalogsAPI:
|
|
|
6071
6137
|
**USE_CATALOG** privilege) will be retrieved. There is no guarantee of a specific ordering of the
|
|
6072
6138
|
elements in the array.
|
|
6073
6139
|
|
|
6140
|
+
:param include_browse: bool (optional)
|
|
6141
|
+
Whether to include catalogs in the response for which the principal can only access selective
|
|
6142
|
+
metadata for
|
|
6143
|
+
|
|
6074
6144
|
:returns: Iterator over :class:`CatalogInfo`
|
|
6075
6145
|
"""
|
|
6076
6146
|
|
|
6147
|
+
query = {}
|
|
6148
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
6077
6149
|
headers = {'Accept': 'application/json', }
|
|
6078
6150
|
|
|
6079
|
-
json = self._api.do('GET', '/api/2.1/unity-catalog/catalogs', headers=headers)
|
|
6151
|
+
json = self._api.do('GET', '/api/2.1/unity-catalog/catalogs', query=query, headers=headers)
|
|
6080
6152
|
parsed = ListCatalogsResponse.from_dict(json).catalogs
|
|
6081
6153
|
return parsed if parsed is not None else []
|
|
6082
6154
|
|
|
@@ -6343,7 +6415,7 @@ class ExternalLocationsAPI:
|
|
|
6343
6415
|
query=query,
|
|
6344
6416
|
headers=headers)
|
|
6345
6417
|
|
|
6346
|
-
def get(self, name: str) -> ExternalLocationInfo:
|
|
6418
|
+
def get(self, name: str, *, include_browse: Optional[bool] = None) -> ExternalLocationInfo:
|
|
6347
6419
|
"""Get an external location.
|
|
6348
6420
|
|
|
6349
6421
|
Gets an external location from the metastore. The caller must be either a metastore admin, the owner
|
|
@@ -6351,26 +6423,37 @@ class ExternalLocationsAPI:
|
|
|
6351
6423
|
|
|
6352
6424
|
:param name: str
|
|
6353
6425
|
Name of the external location.
|
|
6426
|
+
:param include_browse: bool (optional)
|
|
6427
|
+
Whether to include external locations in the response for which the principal can only access
|
|
6428
|
+
selective metadata for
|
|
6354
6429
|
|
|
6355
6430
|
:returns: :class:`ExternalLocationInfo`
|
|
6356
6431
|
"""
|
|
6357
6432
|
|
|
6433
|
+
query = {}
|
|
6434
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
6358
6435
|
headers = {'Accept': 'application/json', }
|
|
6359
6436
|
|
|
6360
|
-
res = self._api.do('GET',
|
|
6437
|
+
res = self._api.do('GET',
|
|
6438
|
+
f'/api/2.1/unity-catalog/external-locations/{name}',
|
|
6439
|
+
query=query,
|
|
6440
|
+
headers=headers)
|
|
6361
6441
|
return ExternalLocationInfo.from_dict(res)
|
|
6362
6442
|
|
|
6363
6443
|
def list(self,
|
|
6364
6444
|
*,
|
|
6445
|
+
include_browse: Optional[bool] = None,
|
|
6365
6446
|
max_results: Optional[int] = None,
|
|
6366
6447
|
page_token: Optional[str] = None) -> Iterator[ExternalLocationInfo]:
|
|
6367
6448
|
"""List external locations.
|
|
6368
6449
|
|
|
6369
6450
|
Gets an array of external locations (__ExternalLocationInfo__ objects) from the metastore. The caller
|
|
6370
6451
|
must be a metastore admin, the owner of the external location, or a user that has some privilege on
|
|
6371
|
-
the external location.
|
|
6372
|
-
elements in the array. For paginated request, elements are ordered by their name.
|
|
6452
|
+
the external location. There is no guarantee of a specific ordering of the elements in the array.
|
|
6373
6453
|
|
|
6454
|
+
:param include_browse: bool (optional)
|
|
6455
|
+
Whether to include external locations in the response for which the principal can only access
|
|
6456
|
+
selective metadata for
|
|
6374
6457
|
:param max_results: int (optional)
|
|
6375
6458
|
Maximum number of external locations to return. If not set, all the external locations are returned
|
|
6376
6459
|
(not recommended). - when set to a value greater than 0, the page length is the minimum of this
|
|
@@ -6383,6 +6466,7 @@ class ExternalLocationsAPI:
|
|
|
6383
6466
|
"""
|
|
6384
6467
|
|
|
6385
6468
|
query = {}
|
|
6469
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
6386
6470
|
if max_results is not None: query['max_results'] = max_results
|
|
6387
6471
|
if page_token is not None: query['page_token'] = page_token
|
|
6388
6472
|
headers = {'Accept': 'application/json', }
|
|
@@ -6518,7 +6602,7 @@ class FunctionsAPI:
|
|
|
6518
6602
|
|
|
6519
6603
|
self._api.do('DELETE', f'/api/2.1/unity-catalog/functions/{name}', query=query, headers=headers)
|
|
6520
6604
|
|
|
6521
|
-
def get(self, name: str) -> FunctionInfo:
|
|
6605
|
+
def get(self, name: str, *, include_browse: Optional[bool] = None) -> FunctionInfo:
|
|
6522
6606
|
"""Get a function.
|
|
6523
6607
|
|
|
6524
6608
|
Gets a function from within a parent catalog and schema. For the fetch to succeed, the user must
|
|
@@ -6531,19 +6615,25 @@ class FunctionsAPI:
|
|
|
6531
6615
|
:param name: str
|
|
6532
6616
|
The fully-qualified name of the function (of the form
|
|
6533
6617
|
__catalog_name__.__schema_name__.__function__name__).
|
|
6618
|
+
:param include_browse: bool (optional)
|
|
6619
|
+
Whether to include functions in the response for which the principal can only access selective
|
|
6620
|
+
metadata for
|
|
6534
6621
|
|
|
6535
6622
|
:returns: :class:`FunctionInfo`
|
|
6536
6623
|
"""
|
|
6537
6624
|
|
|
6625
|
+
query = {}
|
|
6626
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
6538
6627
|
headers = {'Accept': 'application/json', }
|
|
6539
6628
|
|
|
6540
|
-
res = self._api.do('GET', f'/api/2.1/unity-catalog/functions/{name}', headers=headers)
|
|
6629
|
+
res = self._api.do('GET', f'/api/2.1/unity-catalog/functions/{name}', query=query, headers=headers)
|
|
6541
6630
|
return FunctionInfo.from_dict(res)
|
|
6542
6631
|
|
|
6543
6632
|
def list(self,
|
|
6544
6633
|
catalog_name: str,
|
|
6545
6634
|
schema_name: str,
|
|
6546
6635
|
*,
|
|
6636
|
+
include_browse: Optional[bool] = None,
|
|
6547
6637
|
max_results: Optional[int] = None,
|
|
6548
6638
|
page_token: Optional[str] = None) -> Iterator[FunctionInfo]:
|
|
6549
6639
|
"""List functions.
|
|
@@ -6551,14 +6641,16 @@ class FunctionsAPI:
|
|
|
6551
6641
|
List functions within the specified parent catalog and schema. If the user is a metastore admin, all
|
|
6552
6642
|
functions are returned in the output list. Otherwise, the user must have the **USE_CATALOG** privilege
|
|
6553
6643
|
on the catalog and the **USE_SCHEMA** privilege on the schema, and the output list contains only
|
|
6554
|
-
functions for which either the user has the **EXECUTE** privilege or the user is the owner.
|
|
6555
|
-
|
|
6556
|
-
paginated request, elements are ordered by their name.
|
|
6644
|
+
functions for which either the user has the **EXECUTE** privilege or the user is the owner. There is
|
|
6645
|
+
no guarantee of a specific ordering of the elements in the array.
|
|
6557
6646
|
|
|
6558
6647
|
:param catalog_name: str
|
|
6559
6648
|
Name of parent catalog for functions of interest.
|
|
6560
6649
|
:param schema_name: str
|
|
6561
6650
|
Parent schema of functions.
|
|
6651
|
+
:param include_browse: bool (optional)
|
|
6652
|
+
Whether to include functions in the response for which the principal can only access selective
|
|
6653
|
+
metadata for
|
|
6562
6654
|
:param max_results: int (optional)
|
|
6563
6655
|
Maximum number of functions to return. If not set, all the functions are returned (not recommended).
|
|
6564
6656
|
- when set to a value greater than 0, the page length is the minimum of this value and a server
|
|
@@ -6572,6 +6664,7 @@ class FunctionsAPI:
|
|
|
6572
6664
|
|
|
6573
6665
|
query = {}
|
|
6574
6666
|
if catalog_name is not None: query['catalog_name'] = catalog_name
|
|
6667
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
6575
6668
|
if max_results is not None: query['max_results'] = max_results
|
|
6576
6669
|
if page_token is not None: query['page_token'] = page_token
|
|
6577
6670
|
if schema_name is not None: query['schema_name'] = schema_name
|
|
@@ -6760,7 +6853,7 @@ class LakehouseMonitorsAPI:
|
|
|
6760
6853
|
custom_metrics: Optional[List[MonitorCustomMetric]] = None,
|
|
6761
6854
|
data_classification_config: Optional[MonitorDataClassificationConfig] = None,
|
|
6762
6855
|
inference_log: Optional[MonitorInferenceLogProfileType] = None,
|
|
6763
|
-
notifications: Optional[
|
|
6856
|
+
notifications: Optional[MonitorNotificationsConfig] = None,
|
|
6764
6857
|
schedule: Optional[MonitorCronSchedule] = None,
|
|
6765
6858
|
skip_builtin_dashboard: Optional[bool] = None,
|
|
6766
6859
|
slicing_exprs: Optional[List[str]] = None,
|
|
@@ -6795,7 +6888,7 @@ class LakehouseMonitorsAPI:
|
|
|
6795
6888
|
The data classification config for the monitor.
|
|
6796
6889
|
:param inference_log: :class:`MonitorInferenceLogProfileType` (optional)
|
|
6797
6890
|
Configuration for monitoring inference logs.
|
|
6798
|
-
:param notifications:
|
|
6891
|
+
:param notifications: :class:`MonitorNotificationsConfig` (optional)
|
|
6799
6892
|
The notification settings for the monitor.
|
|
6800
6893
|
:param schedule: :class:`MonitorCronSchedule` (optional)
|
|
6801
6894
|
The schedule for automatically updating and refreshing metric tables.
|
|
@@ -6822,7 +6915,7 @@ class LakehouseMonitorsAPI:
|
|
|
6822
6915
|
if data_classification_config is not None:
|
|
6823
6916
|
body['data_classification_config'] = data_classification_config.as_dict()
|
|
6824
6917
|
if inference_log is not None: body['inference_log'] = inference_log.as_dict()
|
|
6825
|
-
if notifications is not None: body['notifications'] =
|
|
6918
|
+
if notifications is not None: body['notifications'] = notifications.as_dict()
|
|
6826
6919
|
if output_schema_name is not None: body['output_schema_name'] = output_schema_name
|
|
6827
6920
|
if schedule is not None: body['schedule'] = schedule.as_dict()
|
|
6828
6921
|
if skip_builtin_dashboard is not None: body['skip_builtin_dashboard'] = skip_builtin_dashboard
|
|
@@ -6974,7 +7067,7 @@ class LakehouseMonitorsAPI:
|
|
|
6974
7067
|
custom_metrics: Optional[List[MonitorCustomMetric]] = None,
|
|
6975
7068
|
data_classification_config: Optional[MonitorDataClassificationConfig] = None,
|
|
6976
7069
|
inference_log: Optional[MonitorInferenceLogProfileType] = None,
|
|
6977
|
-
notifications: Optional[
|
|
7070
|
+
notifications: Optional[MonitorNotificationsConfig] = None,
|
|
6978
7071
|
schedule: Optional[MonitorCronSchedule] = None,
|
|
6979
7072
|
slicing_exprs: Optional[List[str]] = None,
|
|
6980
7073
|
snapshot: Optional[MonitorSnapshotProfileType] = None,
|
|
@@ -7007,7 +7100,7 @@ class LakehouseMonitorsAPI:
|
|
|
7007
7100
|
The data classification config for the monitor.
|
|
7008
7101
|
:param inference_log: :class:`MonitorInferenceLogProfileType` (optional)
|
|
7009
7102
|
Configuration for monitoring inference logs.
|
|
7010
|
-
:param notifications:
|
|
7103
|
+
:param notifications: :class:`MonitorNotificationsConfig` (optional)
|
|
7011
7104
|
The notification settings for the monitor.
|
|
7012
7105
|
:param schedule: :class:`MonitorCronSchedule` (optional)
|
|
7013
7106
|
The schedule for automatically updating and refreshing metric tables.
|
|
@@ -7028,7 +7121,7 @@ class LakehouseMonitorsAPI:
|
|
|
7028
7121
|
if data_classification_config is not None:
|
|
7029
7122
|
body['data_classification_config'] = data_classification_config.as_dict()
|
|
7030
7123
|
if inference_log is not None: body['inference_log'] = inference_log.as_dict()
|
|
7031
|
-
if notifications is not None: body['notifications'] =
|
|
7124
|
+
if notifications is not None: body['notifications'] = notifications.as_dict()
|
|
7032
7125
|
if output_schema_name is not None: body['output_schema_name'] = output_schema_name
|
|
7033
7126
|
if schedule is not None: body['schedule'] = schedule.as_dict()
|
|
7034
7127
|
if slicing_exprs is not None: body['slicing_exprs'] = [v for v in slicing_exprs]
|
|
@@ -7335,7 +7428,11 @@ class ModelVersionsAPI:
|
|
|
7335
7428
|
f'/api/2.1/unity-catalog/models/{full_name}/versions/{version}',
|
|
7336
7429
|
headers=headers)
|
|
7337
7430
|
|
|
7338
|
-
def get(self,
|
|
7431
|
+
def get(self,
|
|
7432
|
+
full_name: str,
|
|
7433
|
+
version: int,
|
|
7434
|
+
*,
|
|
7435
|
+
include_browse: Optional[bool] = None) -> RegisteredModelInfo:
|
|
7339
7436
|
"""Get a Model Version.
|
|
7340
7437
|
|
|
7341
7438
|
Get a model version.
|
|
@@ -7348,14 +7445,20 @@ class ModelVersionsAPI:
|
|
|
7348
7445
|
The three-level (fully qualified) name of the model version
|
|
7349
7446
|
:param version: int
|
|
7350
7447
|
The integer version number of the model version
|
|
7448
|
+
:param include_browse: bool (optional)
|
|
7449
|
+
Whether to include model versions in the response for which the principal can only access selective
|
|
7450
|
+
metadata for
|
|
7351
7451
|
|
|
7352
7452
|
:returns: :class:`RegisteredModelInfo`
|
|
7353
7453
|
"""
|
|
7354
7454
|
|
|
7455
|
+
query = {}
|
|
7456
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
7355
7457
|
headers = {'Accept': 'application/json', }
|
|
7356
7458
|
|
|
7357
7459
|
res = self._api.do('GET',
|
|
7358
7460
|
f'/api/2.1/unity-catalog/models/{full_name}/versions/{version}',
|
|
7461
|
+
query=query,
|
|
7359
7462
|
headers=headers)
|
|
7360
7463
|
return RegisteredModelInfo.from_dict(res)
|
|
7361
7464
|
|
|
@@ -7386,6 +7489,7 @@ class ModelVersionsAPI:
|
|
|
7386
7489
|
def list(self,
|
|
7387
7490
|
full_name: str,
|
|
7388
7491
|
*,
|
|
7492
|
+
include_browse: Optional[bool] = None,
|
|
7389
7493
|
max_results: Optional[int] = None,
|
|
7390
7494
|
page_token: Optional[str] = None) -> Iterator[ModelVersionInfo]:
|
|
7391
7495
|
"""List Model Versions.
|
|
@@ -7403,6 +7507,9 @@ class ModelVersionsAPI:
|
|
|
7403
7507
|
|
|
7404
7508
|
:param full_name: str
|
|
7405
7509
|
The full three-level name of the registered model under which to list model versions
|
|
7510
|
+
:param include_browse: bool (optional)
|
|
7511
|
+
Whether to include model versions in the response for which the principal can only access selective
|
|
7512
|
+
metadata for
|
|
7406
7513
|
:param max_results: int (optional)
|
|
7407
7514
|
Maximum number of model versions to return. If not set, the page length is set to a server
|
|
7408
7515
|
configured value (100, as of 1/3/2024). - when set to a value greater than 0, the page length is the
|
|
@@ -7416,6 +7523,7 @@ class ModelVersionsAPI:
|
|
|
7416
7523
|
"""
|
|
7417
7524
|
|
|
7418
7525
|
query = {}
|
|
7526
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
7419
7527
|
if max_results is not None: query['max_results'] = max_results
|
|
7420
7528
|
if page_token is not None: query['page_token'] = page_token
|
|
7421
7529
|
headers = {'Accept': 'application/json', }
|
|
@@ -7635,7 +7743,7 @@ class RegisteredModelsAPI:
|
|
|
7635
7743
|
|
|
7636
7744
|
self._api.do('DELETE', f'/api/2.1/unity-catalog/models/{full_name}/aliases/{alias}', headers=headers)
|
|
7637
7745
|
|
|
7638
|
-
def get(self, full_name: str) -> RegisteredModelInfo:
|
|
7746
|
+
def get(self, full_name: str, *, include_browse: Optional[bool] = None) -> RegisteredModelInfo:
|
|
7639
7747
|
"""Get a Registered Model.
|
|
7640
7748
|
|
|
7641
7749
|
Get a registered model.
|
|
@@ -7646,18 +7754,24 @@ class RegisteredModelsAPI:
|
|
|
7646
7754
|
|
|
7647
7755
|
:param full_name: str
|
|
7648
7756
|
The three-level (fully qualified) name of the registered model
|
|
7757
|
+
:param include_browse: bool (optional)
|
|
7758
|
+
Whether to include registered models in the response for which the principal can only access
|
|
7759
|
+
selective metadata for
|
|
7649
7760
|
|
|
7650
7761
|
:returns: :class:`RegisteredModelInfo`
|
|
7651
7762
|
"""
|
|
7652
7763
|
|
|
7764
|
+
query = {}
|
|
7765
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
7653
7766
|
headers = {'Accept': 'application/json', }
|
|
7654
7767
|
|
|
7655
|
-
res = self._api.do('GET', f'/api/2.1/unity-catalog/models/{full_name}', headers=headers)
|
|
7768
|
+
res = self._api.do('GET', f'/api/2.1/unity-catalog/models/{full_name}', query=query, headers=headers)
|
|
7656
7769
|
return RegisteredModelInfo.from_dict(res)
|
|
7657
7770
|
|
|
7658
7771
|
def list(self,
|
|
7659
7772
|
*,
|
|
7660
7773
|
catalog_name: Optional[str] = None,
|
|
7774
|
+
include_browse: Optional[bool] = None,
|
|
7661
7775
|
max_results: Optional[int] = None,
|
|
7662
7776
|
page_token: Optional[str] = None,
|
|
7663
7777
|
schema_name: Optional[str] = None) -> Iterator[RegisteredModelInfo]:
|
|
@@ -7677,6 +7791,9 @@ class RegisteredModelsAPI:
|
|
|
7677
7791
|
:param catalog_name: str (optional)
|
|
7678
7792
|
The identifier of the catalog under which to list registered models. If specified, schema_name must
|
|
7679
7793
|
be specified.
|
|
7794
|
+
:param include_browse: bool (optional)
|
|
7795
|
+
Whether to include registered models in the response for which the principal can only access
|
|
7796
|
+
selective metadata for
|
|
7680
7797
|
:param max_results: int (optional)
|
|
7681
7798
|
Max number of registered models to return. If catalog and schema are unspecified, max_results must
|
|
7682
7799
|
be specified. If max_results is unspecified, we return all results, starting from the page specified
|
|
@@ -7692,6 +7809,7 @@ class RegisteredModelsAPI:
|
|
|
7692
7809
|
|
|
7693
7810
|
query = {}
|
|
7694
7811
|
if catalog_name is not None: query['catalog_name'] = catalog_name
|
|
7812
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
7695
7813
|
if max_results is not None: query['max_results'] = max_results
|
|
7696
7814
|
if page_token is not None: query['page_token'] = page_token
|
|
7697
7815
|
if schema_name is not None: query['schema_name'] = schema_name
|
|
@@ -7832,7 +7950,7 @@ class SchemasAPI:
|
|
|
7832
7950
|
|
|
7833
7951
|
self._api.do('DELETE', f'/api/2.1/unity-catalog/schemas/{full_name}', headers=headers)
|
|
7834
7952
|
|
|
7835
|
-
def get(self, full_name: str) -> SchemaInfo:
|
|
7953
|
+
def get(self, full_name: str, *, include_browse: Optional[bool] = None) -> SchemaInfo:
|
|
7836
7954
|
"""Get a schema.
|
|
7837
7955
|
|
|
7838
7956
|
Gets the specified schema within the metastore. The caller must be a metastore admin, the owner of the
|
|
@@ -7840,30 +7958,38 @@ class SchemasAPI:
|
|
|
7840
7958
|
|
|
7841
7959
|
:param full_name: str
|
|
7842
7960
|
Full name of the schema.
|
|
7961
|
+
:param include_browse: bool (optional)
|
|
7962
|
+
Whether to include schemas in the response for which the principal can only access selective
|
|
7963
|
+
metadata for
|
|
7843
7964
|
|
|
7844
7965
|
:returns: :class:`SchemaInfo`
|
|
7845
7966
|
"""
|
|
7846
7967
|
|
|
7968
|
+
query = {}
|
|
7969
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
7847
7970
|
headers = {'Accept': 'application/json', }
|
|
7848
7971
|
|
|
7849
|
-
res = self._api.do('GET', f'/api/2.1/unity-catalog/schemas/{full_name}', headers=headers)
|
|
7972
|
+
res = self._api.do('GET', f'/api/2.1/unity-catalog/schemas/{full_name}', query=query, headers=headers)
|
|
7850
7973
|
return SchemaInfo.from_dict(res)
|
|
7851
7974
|
|
|
7852
7975
|
def list(self,
|
|
7853
7976
|
catalog_name: str,
|
|
7854
7977
|
*,
|
|
7978
|
+
include_browse: Optional[bool] = None,
|
|
7855
7979
|
max_results: Optional[int] = None,
|
|
7856
7980
|
page_token: Optional[str] = None) -> Iterator[SchemaInfo]:
|
|
7857
7981
|
"""List schemas.
|
|
7858
7982
|
|
|
7859
7983
|
Gets an array of schemas for a catalog in the metastore. If the caller is the metastore admin or the
|
|
7860
7984
|
owner of the parent catalog, all schemas for the catalog will be retrieved. Otherwise, only schemas
|
|
7861
|
-
owned by the caller (or for which the caller has the **USE_SCHEMA** privilege) will be retrieved.
|
|
7862
|
-
|
|
7863
|
-
paginated request, elements are ordered by their name.
|
|
7985
|
+
owned by the caller (or for which the caller has the **USE_SCHEMA** privilege) will be retrieved.
|
|
7986
|
+
There is no guarantee of a specific ordering of the elements in the array.
|
|
7864
7987
|
|
|
7865
7988
|
:param catalog_name: str
|
|
7866
7989
|
Parent catalog for schemas of interest.
|
|
7990
|
+
:param include_browse: bool (optional)
|
|
7991
|
+
Whether to include schemas in the response for which the principal can only access selective
|
|
7992
|
+
metadata for
|
|
7867
7993
|
:param max_results: int (optional)
|
|
7868
7994
|
Maximum number of schemas to return. If not set, all the schemas are returned (not recommended). -
|
|
7869
7995
|
when set to a value greater than 0, the page length is the minimum of this value and a server
|
|
@@ -7877,6 +8003,7 @@ class SchemasAPI:
|
|
|
7877
8003
|
|
|
7878
8004
|
query = {}
|
|
7879
8005
|
if catalog_name is not None: query['catalog_name'] = catalog_name
|
|
8006
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
7880
8007
|
if max_results is not None: query['max_results'] = max_results
|
|
7881
8008
|
if page_token is not None: query['page_token'] = page_token
|
|
7882
8009
|
headers = {'Accept': 'application/json', }
|
|
@@ -7951,7 +8078,7 @@ class StorageCredentialsAPI:
|
|
|
7951
8078
|
def create(self,
|
|
7952
8079
|
name: str,
|
|
7953
8080
|
*,
|
|
7954
|
-
aws_iam_role: Optional[
|
|
8081
|
+
aws_iam_role: Optional[AwsIamRoleRequest] = None,
|
|
7955
8082
|
azure_managed_identity: Optional[AzureManagedIdentity] = None,
|
|
7956
8083
|
azure_service_principal: Optional[AzureServicePrincipal] = None,
|
|
7957
8084
|
cloudflare_api_token: Optional[CloudflareApiToken] = None,
|
|
@@ -7965,7 +8092,7 @@ class StorageCredentialsAPI:
|
|
|
7965
8092
|
|
|
7966
8093
|
:param name: str
|
|
7967
8094
|
The credential name. The name must be unique within the metastore.
|
|
7968
|
-
:param aws_iam_role: :class:`
|
|
8095
|
+
:param aws_iam_role: :class:`AwsIamRoleRequest` (optional)
|
|
7969
8096
|
The AWS IAM role configuration.
|
|
7970
8097
|
:param azure_managed_identity: :class:`AzureManagedIdentity` (optional)
|
|
7971
8098
|
The Azure managed identity configuration.
|
|
@@ -8050,9 +8177,8 @@ class StorageCredentialsAPI:
|
|
|
8050
8177
|
|
|
8051
8178
|
Gets an array of storage credentials (as __StorageCredentialInfo__ objects). The array is limited to
|
|
8052
8179
|
only those storage credentials the caller has permission to access. If the caller is a metastore
|
|
8053
|
-
admin, retrieval of credentials is unrestricted.
|
|
8054
|
-
|
|
8055
|
-
name.
|
|
8180
|
+
admin, retrieval of credentials is unrestricted. There is no guarantee of a specific ordering of the
|
|
8181
|
+
elements in the array.
|
|
8056
8182
|
|
|
8057
8183
|
:param max_results: int (optional)
|
|
8058
8184
|
Maximum number of storage credentials to return. If not set, all the storage credentials are
|
|
@@ -8086,7 +8212,7 @@ class StorageCredentialsAPI:
|
|
|
8086
8212
|
def update(self,
|
|
8087
8213
|
name: str,
|
|
8088
8214
|
*,
|
|
8089
|
-
aws_iam_role: Optional[
|
|
8215
|
+
aws_iam_role: Optional[AwsIamRoleRequest] = None,
|
|
8090
8216
|
azure_managed_identity: Optional[AzureManagedIdentity] = None,
|
|
8091
8217
|
azure_service_principal: Optional[AzureServicePrincipal] = None,
|
|
8092
8218
|
cloudflare_api_token: Optional[CloudflareApiToken] = None,
|
|
@@ -8103,7 +8229,7 @@ class StorageCredentialsAPI:
|
|
|
8103
8229
|
|
|
8104
8230
|
:param name: str
|
|
8105
8231
|
Name of the storage credential.
|
|
8106
|
-
:param aws_iam_role: :class:`
|
|
8232
|
+
:param aws_iam_role: :class:`AwsIamRoleRequest` (optional)
|
|
8107
8233
|
The AWS IAM role configuration.
|
|
8108
8234
|
:param azure_managed_identity: :class:`AzureManagedIdentity` (optional)
|
|
8109
8235
|
The Azure managed identity configuration.
|
|
@@ -8153,7 +8279,7 @@ class StorageCredentialsAPI:
|
|
|
8153
8279
|
|
|
8154
8280
|
def validate(self,
|
|
8155
8281
|
*,
|
|
8156
|
-
aws_iam_role: Optional[
|
|
8282
|
+
aws_iam_role: Optional[AwsIamRoleRequest] = None,
|
|
8157
8283
|
azure_managed_identity: Optional[AzureManagedIdentity] = None,
|
|
8158
8284
|
azure_service_principal: Optional[AzureServicePrincipal] = None,
|
|
8159
8285
|
cloudflare_api_token: Optional[CloudflareApiToken] = None,
|
|
@@ -8174,7 +8300,7 @@ class StorageCredentialsAPI:
|
|
|
8174
8300
|
The caller must be a metastore admin or the storage credential owner or have the
|
|
8175
8301
|
**CREATE_EXTERNAL_LOCATION** privilege on the metastore and the storage credential.
|
|
8176
8302
|
|
|
8177
|
-
:param aws_iam_role: :class:`
|
|
8303
|
+
:param aws_iam_role: :class:`AwsIamRoleRequest` (optional)
|
|
8178
8304
|
The AWS IAM role configuration.
|
|
8179
8305
|
:param azure_managed_identity: :class:`AzureManagedIdentity` (optional)
|
|
8180
8306
|
The Azure managed identity configuration.
|
|
@@ -8414,7 +8540,11 @@ class TablesAPI:
|
|
|
8414
8540
|
res = self._api.do('GET', f'/api/2.1/unity-catalog/tables/{full_name}/exists', headers=headers)
|
|
8415
8541
|
return TableExistsResponse.from_dict(res)
|
|
8416
8542
|
|
|
8417
|
-
def get(self,
|
|
8543
|
+
def get(self,
|
|
8544
|
+
full_name: str,
|
|
8545
|
+
*,
|
|
8546
|
+
include_browse: Optional[bool] = None,
|
|
8547
|
+
include_delta_metadata: Optional[bool] = None) -> TableInfo:
|
|
8418
8548
|
"""Get a table.
|
|
8419
8549
|
|
|
8420
8550
|
Gets a table from the metastore for a specific catalog and schema. The caller must satisfy one of the
|
|
@@ -8425,6 +8555,9 @@ class TablesAPI:
|
|
|
8425
8555
|
|
|
8426
8556
|
:param full_name: str
|
|
8427
8557
|
Full name of the table.
|
|
8558
|
+
:param include_browse: bool (optional)
|
|
8559
|
+
Whether to include tables in the response for which the principal can only access selective metadata
|
|
8560
|
+
for
|
|
8428
8561
|
:param include_delta_metadata: bool (optional)
|
|
8429
8562
|
Whether delta metadata should be included in the response.
|
|
8430
8563
|
|
|
@@ -8432,6 +8565,7 @@ class TablesAPI:
|
|
|
8432
8565
|
"""
|
|
8433
8566
|
|
|
8434
8567
|
query = {}
|
|
8568
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
8435
8569
|
if include_delta_metadata is not None: query['include_delta_metadata'] = include_delta_metadata
|
|
8436
8570
|
headers = {'Accept': 'application/json', }
|
|
8437
8571
|
|
|
@@ -8442,6 +8576,7 @@ class TablesAPI:
|
|
|
8442
8576
|
catalog_name: str,
|
|
8443
8577
|
schema_name: str,
|
|
8444
8578
|
*,
|
|
8579
|
+
include_browse: Optional[bool] = None,
|
|
8445
8580
|
include_delta_metadata: Optional[bool] = None,
|
|
8446
8581
|
max_results: Optional[int] = None,
|
|
8447
8582
|
omit_columns: Optional[bool] = None,
|
|
@@ -8459,6 +8594,9 @@ class TablesAPI:
|
|
|
8459
8594
|
Name of parent catalog for tables of interest.
|
|
8460
8595
|
:param schema_name: str
|
|
8461
8596
|
Parent schema of tables.
|
|
8597
|
+
:param include_browse: bool (optional)
|
|
8598
|
+
Whether to include tables in the response for which the principal can only access selective metadata
|
|
8599
|
+
for
|
|
8462
8600
|
:param include_delta_metadata: bool (optional)
|
|
8463
8601
|
Whether delta metadata should be included in the response.
|
|
8464
8602
|
:param max_results: int (optional)
|
|
@@ -8478,6 +8616,7 @@ class TablesAPI:
|
|
|
8478
8616
|
|
|
8479
8617
|
query = {}
|
|
8480
8618
|
if catalog_name is not None: query['catalog_name'] = catalog_name
|
|
8619
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
8481
8620
|
if include_delta_metadata is not None: query['include_delta_metadata'] = include_delta_metadata
|
|
8482
8621
|
if max_results is not None: query['max_results'] = max_results
|
|
8483
8622
|
if omit_columns is not None: query['omit_columns'] = omit_columns
|
|
@@ -8657,6 +8796,7 @@ class VolumesAPI:
|
|
|
8657
8796
|
catalog_name: str,
|
|
8658
8797
|
schema_name: str,
|
|
8659
8798
|
*,
|
|
8799
|
+
include_browse: Optional[bool] = None,
|
|
8660
8800
|
max_results: Optional[int] = None,
|
|
8661
8801
|
page_token: Optional[str] = None) -> Iterator[VolumeInfo]:
|
|
8662
8802
|
"""List Volumes.
|
|
@@ -8675,6 +8815,9 @@ class VolumesAPI:
|
|
|
8675
8815
|
The identifier of the catalog
|
|
8676
8816
|
:param schema_name: str
|
|
8677
8817
|
The identifier of the schema
|
|
8818
|
+
:param include_browse: bool (optional)
|
|
8819
|
+
Whether to include volumes in the response for which the principal can only access selective
|
|
8820
|
+
metadata for
|
|
8678
8821
|
:param max_results: int (optional)
|
|
8679
8822
|
Maximum number of volumes to return (page length).
|
|
8680
8823
|
|
|
@@ -8696,6 +8839,7 @@ class VolumesAPI:
|
|
|
8696
8839
|
|
|
8697
8840
|
query = {}
|
|
8698
8841
|
if catalog_name is not None: query['catalog_name'] = catalog_name
|
|
8842
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
8699
8843
|
if max_results is not None: query['max_results'] = max_results
|
|
8700
8844
|
if page_token is not None: query['page_token'] = page_token
|
|
8701
8845
|
if schema_name is not None: query['schema_name'] = schema_name
|
|
@@ -8710,7 +8854,7 @@ class VolumesAPI:
|
|
|
8710
8854
|
return
|
|
8711
8855
|
query['page_token'] = json['next_page_token']
|
|
8712
8856
|
|
|
8713
|
-
def read(self, name: str) -> VolumeInfo:
|
|
8857
|
+
def read(self, name: str, *, include_browse: Optional[bool] = None) -> VolumeInfo:
|
|
8714
8858
|
"""Get a Volume.
|
|
8715
8859
|
|
|
8716
8860
|
Gets a volume from the metastore for a specific catalog and schema.
|
|
@@ -8721,13 +8865,18 @@ class VolumesAPI:
|
|
|
8721
8865
|
|
|
8722
8866
|
:param name: str
|
|
8723
8867
|
The three-level (fully qualified) name of the volume
|
|
8868
|
+
:param include_browse: bool (optional)
|
|
8869
|
+
Whether to include volumes in the response for which the principal can only access selective
|
|
8870
|
+
metadata for
|
|
8724
8871
|
|
|
8725
8872
|
:returns: :class:`VolumeInfo`
|
|
8726
8873
|
"""
|
|
8727
8874
|
|
|
8875
|
+
query = {}
|
|
8876
|
+
if include_browse is not None: query['include_browse'] = include_browse
|
|
8728
8877
|
headers = {'Accept': 'application/json', }
|
|
8729
8878
|
|
|
8730
|
-
res = self._api.do('GET', f'/api/2.1/unity-catalog/volumes/{name}', headers=headers)
|
|
8879
|
+
res = self._api.do('GET', f'/api/2.1/unity-catalog/volumes/{name}', query=query, headers=headers)
|
|
8731
8880
|
return VolumeInfo.from_dict(res)
|
|
8732
8881
|
|
|
8733
8882
|
def update(self,
|