databricks-sdk 0.67.0__py3-none-any.whl → 0.68.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/__init__.py +8 -0
- databricks/sdk/_base_client.py +4 -1
- databricks/sdk/common/lro.py +17 -0
- databricks/sdk/common/types/__init__.py +0 -0
- databricks/sdk/common/types/fieldmask.py +39 -0
- databricks/sdk/credentials_provider.py +61 -12
- databricks/sdk/dbutils.py +5 -1
- databricks/sdk/errors/parser.py +8 -3
- databricks/sdk/mixins/files.py +1 -0
- databricks/sdk/oidc_token_supplier.py +80 -0
- databricks/sdk/retries.py +102 -2
- databricks/sdk/service/_internal.py +93 -1
- databricks/sdk/service/agentbricks.py +1 -1
- databricks/sdk/service/apps.py +264 -1
- databricks/sdk/service/billing.py +2 -3
- databricks/sdk/service/catalog.py +1026 -540
- databricks/sdk/service/cleanrooms.py +3 -3
- databricks/sdk/service/compute.py +21 -33
- databricks/sdk/service/dashboards.py +7 -3
- databricks/sdk/service/database.py +3 -2
- databricks/sdk/service/dataquality.py +1145 -0
- databricks/sdk/service/files.py +2 -1
- databricks/sdk/service/iam.py +2 -1
- databricks/sdk/service/iamv2.py +1 -1
- databricks/sdk/service/jobs.py +6 -9
- databricks/sdk/service/marketplace.py +3 -1
- databricks/sdk/service/ml.py +3 -1
- databricks/sdk/service/oauth2.py +1 -1
- databricks/sdk/service/pipelines.py +5 -6
- databricks/sdk/service/provisioning.py +544 -655
- databricks/sdk/service/qualitymonitorv2.py +1 -1
- databricks/sdk/service/serving.py +3 -1
- databricks/sdk/service/settings.py +5 -2
- databricks/sdk/service/settingsv2.py +1 -1
- databricks/sdk/service/sharing.py +12 -3
- databricks/sdk/service/sql.py +305 -70
- databricks/sdk/service/tags.py +1 -1
- databricks/sdk/service/vectorsearch.py +3 -1
- databricks/sdk/service/workspace.py +70 -17
- databricks/sdk/version.py +1 -1
- {databricks_sdk-0.67.0.dist-info → databricks_sdk-0.68.0.dist-info}/METADATA +4 -2
- databricks_sdk-0.68.0.dist-info/RECORD +83 -0
- databricks_sdk-0.67.0.dist-info/RECORD +0 -79
- {databricks_sdk-0.67.0.dist-info → databricks_sdk-0.68.0.dist-info}/WHEEL +0 -0
- {databricks_sdk-0.67.0.dist-info → databricks_sdk-0.68.0.dist-info}/licenses/LICENSE +0 -0
- {databricks_sdk-0.67.0.dist-info → databricks_sdk-0.68.0.dist-info}/licenses/NOTICE +0 -0
- {databricks_sdk-0.67.0.dist-info → databricks_sdk-0.68.0.dist-info}/top_level.txt +0 -0
|
@@ -10,8 +10,10 @@ from datetime import timedelta
|
|
|
10
10
|
from enum import Enum
|
|
11
11
|
from typing import Any, Callable, Dict, Iterator, List, Optional
|
|
12
12
|
|
|
13
|
+
from databricks.sdk.service._internal import (Wait, _enum, _from_dict,
|
|
14
|
+
_repeated_dict, _repeated_enum)
|
|
15
|
+
|
|
13
16
|
from ..errors import OperationFailed
|
|
14
|
-
from ._internal import Wait, _enum, _from_dict, _repeated_dict, _repeated_enum
|
|
15
17
|
|
|
16
18
|
_LOG = logging.getLogger("databricks.sdk")
|
|
17
19
|
|
|
@@ -63,8 +65,191 @@ class AccessRequestDestinations:
|
|
|
63
65
|
)
|
|
64
66
|
|
|
65
67
|
|
|
68
|
+
@dataclass
|
|
69
|
+
class AccountsCreateMetastoreAssignmentResponse:
|
|
70
|
+
"""The metastore assignment was successfully created."""
|
|
71
|
+
|
|
72
|
+
def as_dict(self) -> dict:
|
|
73
|
+
"""Serializes the AccountsCreateMetastoreAssignmentResponse into a dictionary suitable for use as a JSON request body."""
|
|
74
|
+
body = {}
|
|
75
|
+
return body
|
|
76
|
+
|
|
77
|
+
def as_shallow_dict(self) -> dict:
|
|
78
|
+
"""Serializes the AccountsCreateMetastoreAssignmentResponse into a shallow dictionary of its immediate attributes."""
|
|
79
|
+
body = {}
|
|
80
|
+
return body
|
|
81
|
+
|
|
82
|
+
@classmethod
|
|
83
|
+
def from_dict(cls, d: Dict[str, Any]) -> AccountsCreateMetastoreAssignmentResponse:
|
|
84
|
+
"""Deserializes the AccountsCreateMetastoreAssignmentResponse from a dictionary."""
|
|
85
|
+
return cls()
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
@dataclass
|
|
89
|
+
class AccountsCreateMetastoreResponse:
|
|
90
|
+
metastore_info: Optional[MetastoreInfo] = None
|
|
91
|
+
|
|
92
|
+
def as_dict(self) -> dict:
|
|
93
|
+
"""Serializes the AccountsCreateMetastoreResponse into a dictionary suitable for use as a JSON request body."""
|
|
94
|
+
body = {}
|
|
95
|
+
if self.metastore_info:
|
|
96
|
+
body["metastore_info"] = self.metastore_info.as_dict()
|
|
97
|
+
return body
|
|
98
|
+
|
|
99
|
+
def as_shallow_dict(self) -> dict:
|
|
100
|
+
"""Serializes the AccountsCreateMetastoreResponse into a shallow dictionary of its immediate attributes."""
|
|
101
|
+
body = {}
|
|
102
|
+
if self.metastore_info:
|
|
103
|
+
body["metastore_info"] = self.metastore_info
|
|
104
|
+
return body
|
|
105
|
+
|
|
106
|
+
@classmethod
|
|
107
|
+
def from_dict(cls, d: Dict[str, Any]) -> AccountsCreateMetastoreResponse:
|
|
108
|
+
"""Deserializes the AccountsCreateMetastoreResponse from a dictionary."""
|
|
109
|
+
return cls(metastore_info=_from_dict(d, "metastore_info", MetastoreInfo))
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
@dataclass
|
|
113
|
+
class AccountsCreateStorageCredentialInfo:
|
|
114
|
+
credential_info: Optional[StorageCredentialInfo] = None
|
|
115
|
+
|
|
116
|
+
def as_dict(self) -> dict:
|
|
117
|
+
"""Serializes the AccountsCreateStorageCredentialInfo into a dictionary suitable for use as a JSON request body."""
|
|
118
|
+
body = {}
|
|
119
|
+
if self.credential_info:
|
|
120
|
+
body["credential_info"] = self.credential_info.as_dict()
|
|
121
|
+
return body
|
|
122
|
+
|
|
123
|
+
def as_shallow_dict(self) -> dict:
|
|
124
|
+
"""Serializes the AccountsCreateStorageCredentialInfo into a shallow dictionary of its immediate attributes."""
|
|
125
|
+
body = {}
|
|
126
|
+
if self.credential_info:
|
|
127
|
+
body["credential_info"] = self.credential_info
|
|
128
|
+
return body
|
|
129
|
+
|
|
130
|
+
@classmethod
|
|
131
|
+
def from_dict(cls, d: Dict[str, Any]) -> AccountsCreateStorageCredentialInfo:
|
|
132
|
+
"""Deserializes the AccountsCreateStorageCredentialInfo from a dictionary."""
|
|
133
|
+
return cls(credential_info=_from_dict(d, "credential_info", StorageCredentialInfo))
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
@dataclass
|
|
137
|
+
class AccountsDeleteMetastoreAssignmentResponse:
|
|
138
|
+
"""The metastore assignment was successfully deleted."""
|
|
139
|
+
|
|
140
|
+
def as_dict(self) -> dict:
|
|
141
|
+
"""Serializes the AccountsDeleteMetastoreAssignmentResponse into a dictionary suitable for use as a JSON request body."""
|
|
142
|
+
body = {}
|
|
143
|
+
return body
|
|
144
|
+
|
|
145
|
+
def as_shallow_dict(self) -> dict:
|
|
146
|
+
"""Serializes the AccountsDeleteMetastoreAssignmentResponse into a shallow dictionary of its immediate attributes."""
|
|
147
|
+
body = {}
|
|
148
|
+
return body
|
|
149
|
+
|
|
150
|
+
@classmethod
|
|
151
|
+
def from_dict(cls, d: Dict[str, Any]) -> AccountsDeleteMetastoreAssignmentResponse:
|
|
152
|
+
"""Deserializes the AccountsDeleteMetastoreAssignmentResponse from a dictionary."""
|
|
153
|
+
return cls()
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
@dataclass
|
|
157
|
+
class AccountsDeleteMetastoreResponse:
|
|
158
|
+
"""The metastore was successfully deleted."""
|
|
159
|
+
|
|
160
|
+
def as_dict(self) -> dict:
|
|
161
|
+
"""Serializes the AccountsDeleteMetastoreResponse into a dictionary suitable for use as a JSON request body."""
|
|
162
|
+
body = {}
|
|
163
|
+
return body
|
|
164
|
+
|
|
165
|
+
def as_shallow_dict(self) -> dict:
|
|
166
|
+
"""Serializes the AccountsDeleteMetastoreResponse into a shallow dictionary of its immediate attributes."""
|
|
167
|
+
body = {}
|
|
168
|
+
return body
|
|
169
|
+
|
|
170
|
+
@classmethod
|
|
171
|
+
def from_dict(cls, d: Dict[str, Any]) -> AccountsDeleteMetastoreResponse:
|
|
172
|
+
"""Deserializes the AccountsDeleteMetastoreResponse from a dictionary."""
|
|
173
|
+
return cls()
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
@dataclass
|
|
177
|
+
class AccountsDeleteStorageCredentialResponse:
|
|
178
|
+
"""The storage credential was successfully deleted."""
|
|
179
|
+
|
|
180
|
+
def as_dict(self) -> dict:
|
|
181
|
+
"""Serializes the AccountsDeleteStorageCredentialResponse into a dictionary suitable for use as a JSON request body."""
|
|
182
|
+
body = {}
|
|
183
|
+
return body
|
|
184
|
+
|
|
185
|
+
def as_shallow_dict(self) -> dict:
|
|
186
|
+
"""Serializes the AccountsDeleteStorageCredentialResponse into a shallow dictionary of its immediate attributes."""
|
|
187
|
+
body = {}
|
|
188
|
+
return body
|
|
189
|
+
|
|
190
|
+
@classmethod
|
|
191
|
+
def from_dict(cls, d: Dict[str, Any]) -> AccountsDeleteStorageCredentialResponse:
|
|
192
|
+
"""Deserializes the AccountsDeleteStorageCredentialResponse from a dictionary."""
|
|
193
|
+
return cls()
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
@dataclass
|
|
197
|
+
class AccountsGetMetastoreResponse:
|
|
198
|
+
"""The metastore was successfully returned."""
|
|
199
|
+
|
|
200
|
+
metastore_info: Optional[MetastoreInfo] = None
|
|
201
|
+
|
|
202
|
+
def as_dict(self) -> dict:
|
|
203
|
+
"""Serializes the AccountsGetMetastoreResponse into a dictionary suitable for use as a JSON request body."""
|
|
204
|
+
body = {}
|
|
205
|
+
if self.metastore_info:
|
|
206
|
+
body["metastore_info"] = self.metastore_info.as_dict()
|
|
207
|
+
return body
|
|
208
|
+
|
|
209
|
+
def as_shallow_dict(self) -> dict:
|
|
210
|
+
"""Serializes the AccountsGetMetastoreResponse into a shallow dictionary of its immediate attributes."""
|
|
211
|
+
body = {}
|
|
212
|
+
if self.metastore_info:
|
|
213
|
+
body["metastore_info"] = self.metastore_info
|
|
214
|
+
return body
|
|
215
|
+
|
|
216
|
+
@classmethod
|
|
217
|
+
def from_dict(cls, d: Dict[str, Any]) -> AccountsGetMetastoreResponse:
|
|
218
|
+
"""Deserializes the AccountsGetMetastoreResponse from a dictionary."""
|
|
219
|
+
return cls(metastore_info=_from_dict(d, "metastore_info", MetastoreInfo))
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
@dataclass
|
|
223
|
+
class AccountsListMetastoresResponse:
|
|
224
|
+
"""Metastores were returned successfully."""
|
|
225
|
+
|
|
226
|
+
metastores: Optional[List[MetastoreInfo]] = None
|
|
227
|
+
"""An array of metastore information objects."""
|
|
228
|
+
|
|
229
|
+
def as_dict(self) -> dict:
|
|
230
|
+
"""Serializes the AccountsListMetastoresResponse into a dictionary suitable for use as a JSON request body."""
|
|
231
|
+
body = {}
|
|
232
|
+
if self.metastores:
|
|
233
|
+
body["metastores"] = [v.as_dict() for v in self.metastores]
|
|
234
|
+
return body
|
|
235
|
+
|
|
236
|
+
def as_shallow_dict(self) -> dict:
|
|
237
|
+
"""Serializes the AccountsListMetastoresResponse into a shallow dictionary of its immediate attributes."""
|
|
238
|
+
body = {}
|
|
239
|
+
if self.metastores:
|
|
240
|
+
body["metastores"] = self.metastores
|
|
241
|
+
return body
|
|
242
|
+
|
|
243
|
+
@classmethod
|
|
244
|
+
def from_dict(cls, d: Dict[str, Any]) -> AccountsListMetastoresResponse:
|
|
245
|
+
"""Deserializes the AccountsListMetastoresResponse from a dictionary."""
|
|
246
|
+
return cls(metastores=_repeated_dict(d, "metastores", MetastoreInfo))
|
|
247
|
+
|
|
248
|
+
|
|
66
249
|
@dataclass
|
|
67
250
|
class AccountsMetastoreAssignment:
|
|
251
|
+
"""The workspace metastore assignment was successfully returned."""
|
|
252
|
+
|
|
68
253
|
metastore_assignment: Optional[MetastoreAssignment] = None
|
|
69
254
|
|
|
70
255
|
def as_dict(self) -> dict:
|
|
@@ -88,50 +273,100 @@ class AccountsMetastoreAssignment:
|
|
|
88
273
|
|
|
89
274
|
|
|
90
275
|
@dataclass
|
|
91
|
-
class
|
|
276
|
+
class AccountsStorageCredentialInfo:
|
|
277
|
+
"""The storage credential was successfully retrieved."""
|
|
278
|
+
|
|
279
|
+
credential_info: Optional[StorageCredentialInfo] = None
|
|
280
|
+
|
|
281
|
+
def as_dict(self) -> dict:
|
|
282
|
+
"""Serializes the AccountsStorageCredentialInfo into a dictionary suitable for use as a JSON request body."""
|
|
283
|
+
body = {}
|
|
284
|
+
if self.credential_info:
|
|
285
|
+
body["credential_info"] = self.credential_info.as_dict()
|
|
286
|
+
return body
|
|
287
|
+
|
|
288
|
+
def as_shallow_dict(self) -> dict:
|
|
289
|
+
"""Serializes the AccountsStorageCredentialInfo into a shallow dictionary of its immediate attributes."""
|
|
290
|
+
body = {}
|
|
291
|
+
if self.credential_info:
|
|
292
|
+
body["credential_info"] = self.credential_info
|
|
293
|
+
return body
|
|
294
|
+
|
|
295
|
+
@classmethod
|
|
296
|
+
def from_dict(cls, d: Dict[str, Any]) -> AccountsStorageCredentialInfo:
|
|
297
|
+
"""Deserializes the AccountsStorageCredentialInfo from a dictionary."""
|
|
298
|
+
return cls(credential_info=_from_dict(d, "credential_info", StorageCredentialInfo))
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
@dataclass
|
|
302
|
+
class AccountsUpdateMetastoreAssignmentResponse:
|
|
303
|
+
"""The metastore assignment was successfully updated."""
|
|
304
|
+
|
|
305
|
+
def as_dict(self) -> dict:
|
|
306
|
+
"""Serializes the AccountsUpdateMetastoreAssignmentResponse into a dictionary suitable for use as a JSON request body."""
|
|
307
|
+
body = {}
|
|
308
|
+
return body
|
|
309
|
+
|
|
310
|
+
def as_shallow_dict(self) -> dict:
|
|
311
|
+
"""Serializes the AccountsUpdateMetastoreAssignmentResponse into a shallow dictionary of its immediate attributes."""
|
|
312
|
+
body = {}
|
|
313
|
+
return body
|
|
314
|
+
|
|
315
|
+
@classmethod
|
|
316
|
+
def from_dict(cls, d: Dict[str, Any]) -> AccountsUpdateMetastoreAssignmentResponse:
|
|
317
|
+
"""Deserializes the AccountsUpdateMetastoreAssignmentResponse from a dictionary."""
|
|
318
|
+
return cls()
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
@dataclass
|
|
322
|
+
class AccountsUpdateMetastoreResponse:
|
|
323
|
+
"""The metastore update request succeeded."""
|
|
324
|
+
|
|
92
325
|
metastore_info: Optional[MetastoreInfo] = None
|
|
93
326
|
|
|
94
327
|
def as_dict(self) -> dict:
|
|
95
|
-
"""Serializes the
|
|
328
|
+
"""Serializes the AccountsUpdateMetastoreResponse into a dictionary suitable for use as a JSON request body."""
|
|
96
329
|
body = {}
|
|
97
330
|
if self.metastore_info:
|
|
98
331
|
body["metastore_info"] = self.metastore_info.as_dict()
|
|
99
332
|
return body
|
|
100
333
|
|
|
101
334
|
def as_shallow_dict(self) -> dict:
|
|
102
|
-
"""Serializes the
|
|
335
|
+
"""Serializes the AccountsUpdateMetastoreResponse into a shallow dictionary of its immediate attributes."""
|
|
103
336
|
body = {}
|
|
104
337
|
if self.metastore_info:
|
|
105
338
|
body["metastore_info"] = self.metastore_info
|
|
106
339
|
return body
|
|
107
340
|
|
|
108
341
|
@classmethod
|
|
109
|
-
def from_dict(cls, d: Dict[str, Any]) ->
|
|
110
|
-
"""Deserializes the
|
|
342
|
+
def from_dict(cls, d: Dict[str, Any]) -> AccountsUpdateMetastoreResponse:
|
|
343
|
+
"""Deserializes the AccountsUpdateMetastoreResponse from a dictionary."""
|
|
111
344
|
return cls(metastore_info=_from_dict(d, "metastore_info", MetastoreInfo))
|
|
112
345
|
|
|
113
346
|
|
|
114
347
|
@dataclass
|
|
115
|
-
class
|
|
348
|
+
class AccountsUpdateStorageCredentialResponse:
|
|
349
|
+
"""The storage credential was successfully updated."""
|
|
350
|
+
|
|
116
351
|
credential_info: Optional[StorageCredentialInfo] = None
|
|
117
352
|
|
|
118
353
|
def as_dict(self) -> dict:
|
|
119
|
-
"""Serializes the
|
|
354
|
+
"""Serializes the AccountsUpdateStorageCredentialResponse into a dictionary suitable for use as a JSON request body."""
|
|
120
355
|
body = {}
|
|
121
356
|
if self.credential_info:
|
|
122
357
|
body["credential_info"] = self.credential_info.as_dict()
|
|
123
358
|
return body
|
|
124
359
|
|
|
125
360
|
def as_shallow_dict(self) -> dict:
|
|
126
|
-
"""Serializes the
|
|
361
|
+
"""Serializes the AccountsUpdateStorageCredentialResponse into a shallow dictionary of its immediate attributes."""
|
|
127
362
|
body = {}
|
|
128
363
|
if self.credential_info:
|
|
129
364
|
body["credential_info"] = self.credential_info
|
|
130
365
|
return body
|
|
131
366
|
|
|
132
367
|
@classmethod
|
|
133
|
-
def from_dict(cls, d: Dict[str, Any]) ->
|
|
134
|
-
"""Deserializes the
|
|
368
|
+
def from_dict(cls, d: Dict[str, Any]) -> AccountsUpdateStorageCredentialResponse:
|
|
369
|
+
"""Deserializes the AccountsUpdateStorageCredentialResponse from a dictionary."""
|
|
135
370
|
return cls(credential_info=_from_dict(d, "credential_info", StorageCredentialInfo))
|
|
136
371
|
|
|
137
372
|
|
|
@@ -1666,58 +1901,185 @@ class CreateAccessRequestResponse:
|
|
|
1666
1901
|
|
|
1667
1902
|
|
|
1668
1903
|
@dataclass
|
|
1669
|
-
class
|
|
1904
|
+
class CreateAccountsMetastore:
|
|
1670
1905
|
name: str
|
|
1671
|
-
"""
|
|
1672
|
-
|
|
1673
|
-
catalog_name: str
|
|
1674
|
-
"""Name of parent catalog."""
|
|
1675
|
-
|
|
1676
|
-
schema_name: str
|
|
1677
|
-
"""Name of parent schema relative to its parent catalog."""
|
|
1906
|
+
"""The user-specified name of the metastore."""
|
|
1678
1907
|
|
|
1679
|
-
|
|
1908
|
+
region: Optional[str] = None
|
|
1909
|
+
"""Cloud region which the metastore serves (e.g., `us-west-2`, `westus`)."""
|
|
1680
1910
|
|
|
1681
|
-
|
|
1682
|
-
"""
|
|
1911
|
+
storage_root: Optional[str] = None
|
|
1912
|
+
"""The storage root URL for metastore"""
|
|
1683
1913
|
|
|
1684
|
-
|
|
1685
|
-
|
|
1914
|
+
def as_dict(self) -> dict:
|
|
1915
|
+
"""Serializes the CreateAccountsMetastore into a dictionary suitable for use as a JSON request body."""
|
|
1916
|
+
body = {}
|
|
1917
|
+
if self.name is not None:
|
|
1918
|
+
body["name"] = self.name
|
|
1919
|
+
if self.region is not None:
|
|
1920
|
+
body["region"] = self.region
|
|
1921
|
+
if self.storage_root is not None:
|
|
1922
|
+
body["storage_root"] = self.storage_root
|
|
1923
|
+
return body
|
|
1686
1924
|
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1925
|
+
def as_shallow_dict(self) -> dict:
|
|
1926
|
+
"""Serializes the CreateAccountsMetastore into a shallow dictionary of its immediate attributes."""
|
|
1927
|
+
body = {}
|
|
1928
|
+
if self.name is not None:
|
|
1929
|
+
body["name"] = self.name
|
|
1930
|
+
if self.region is not None:
|
|
1931
|
+
body["region"] = self.region
|
|
1932
|
+
if self.storage_root is not None:
|
|
1933
|
+
body["storage_root"] = self.storage_root
|
|
1934
|
+
return body
|
|
1692
1935
|
|
|
1693
|
-
|
|
1694
|
-
|
|
1936
|
+
@classmethod
|
|
1937
|
+
def from_dict(cls, d: Dict[str, Any]) -> CreateAccountsMetastore:
|
|
1938
|
+
"""Deserializes the CreateAccountsMetastore from a dictionary."""
|
|
1939
|
+
return cls(name=d.get("name", None), region=d.get("region", None), storage_root=d.get("storage_root", None))
|
|
1695
1940
|
|
|
1696
|
-
parameter_style: CreateFunctionParameterStyle
|
|
1697
|
-
"""Function parameter style. **S** is the value for SQL."""
|
|
1698
1941
|
|
|
1699
|
-
|
|
1700
|
-
|
|
1942
|
+
@dataclass
|
|
1943
|
+
class CreateAccountsStorageCredential:
|
|
1944
|
+
name: str
|
|
1945
|
+
"""The credential name. The name must be unique among storage and service credentials within the
|
|
1946
|
+
metastore."""
|
|
1701
1947
|
|
|
1702
|
-
|
|
1703
|
-
"""
|
|
1948
|
+
aws_iam_role: Optional[AwsIamRoleRequest] = None
|
|
1949
|
+
"""The AWS IAM role configuration."""
|
|
1704
1950
|
|
|
1705
|
-
|
|
1706
|
-
"""
|
|
1951
|
+
azure_managed_identity: Optional[AzureManagedIdentityRequest] = None
|
|
1952
|
+
"""The Azure managed identity configuration."""
|
|
1707
1953
|
|
|
1708
|
-
|
|
1709
|
-
"""
|
|
1954
|
+
azure_service_principal: Optional[AzureServicePrincipal] = None
|
|
1955
|
+
"""The Azure service principal configuration."""
|
|
1710
1956
|
|
|
1711
|
-
|
|
1712
|
-
"""
|
|
1957
|
+
cloudflare_api_token: Optional[CloudflareApiToken] = None
|
|
1958
|
+
"""The Cloudflare API token configuration."""
|
|
1713
1959
|
|
|
1714
1960
|
comment: Optional[str] = None
|
|
1715
|
-
"""
|
|
1961
|
+
"""Comment associated with the credential."""
|
|
1716
1962
|
|
|
1717
|
-
|
|
1718
|
-
"""
|
|
1963
|
+
databricks_gcp_service_account: Optional[DatabricksGcpServiceAccountRequest] = None
|
|
1964
|
+
"""The Databricks managed GCP service account configuration."""
|
|
1719
1965
|
|
|
1720
|
-
|
|
1966
|
+
read_only: Optional[bool] = None
|
|
1967
|
+
"""Whether the credential is usable only for read operations. Only applicable when purpose is
|
|
1968
|
+
**STORAGE**."""
|
|
1969
|
+
|
|
1970
|
+
def as_dict(self) -> dict:
|
|
1971
|
+
"""Serializes the CreateAccountsStorageCredential into a dictionary suitable for use as a JSON request body."""
|
|
1972
|
+
body = {}
|
|
1973
|
+
if self.aws_iam_role:
|
|
1974
|
+
body["aws_iam_role"] = self.aws_iam_role.as_dict()
|
|
1975
|
+
if self.azure_managed_identity:
|
|
1976
|
+
body["azure_managed_identity"] = self.azure_managed_identity.as_dict()
|
|
1977
|
+
if self.azure_service_principal:
|
|
1978
|
+
body["azure_service_principal"] = self.azure_service_principal.as_dict()
|
|
1979
|
+
if self.cloudflare_api_token:
|
|
1980
|
+
body["cloudflare_api_token"] = self.cloudflare_api_token.as_dict()
|
|
1981
|
+
if self.comment is not None:
|
|
1982
|
+
body["comment"] = self.comment
|
|
1983
|
+
if self.databricks_gcp_service_account:
|
|
1984
|
+
body["databricks_gcp_service_account"] = self.databricks_gcp_service_account.as_dict()
|
|
1985
|
+
if self.name is not None:
|
|
1986
|
+
body["name"] = self.name
|
|
1987
|
+
if self.read_only is not None:
|
|
1988
|
+
body["read_only"] = self.read_only
|
|
1989
|
+
return body
|
|
1990
|
+
|
|
1991
|
+
def as_shallow_dict(self) -> dict:
|
|
1992
|
+
"""Serializes the CreateAccountsStorageCredential into a shallow dictionary of its immediate attributes."""
|
|
1993
|
+
body = {}
|
|
1994
|
+
if self.aws_iam_role:
|
|
1995
|
+
body["aws_iam_role"] = self.aws_iam_role
|
|
1996
|
+
if self.azure_managed_identity:
|
|
1997
|
+
body["azure_managed_identity"] = self.azure_managed_identity
|
|
1998
|
+
if self.azure_service_principal:
|
|
1999
|
+
body["azure_service_principal"] = self.azure_service_principal
|
|
2000
|
+
if self.cloudflare_api_token:
|
|
2001
|
+
body["cloudflare_api_token"] = self.cloudflare_api_token
|
|
2002
|
+
if self.comment is not None:
|
|
2003
|
+
body["comment"] = self.comment
|
|
2004
|
+
if self.databricks_gcp_service_account:
|
|
2005
|
+
body["databricks_gcp_service_account"] = self.databricks_gcp_service_account
|
|
2006
|
+
if self.name is not None:
|
|
2007
|
+
body["name"] = self.name
|
|
2008
|
+
if self.read_only is not None:
|
|
2009
|
+
body["read_only"] = self.read_only
|
|
2010
|
+
return body
|
|
2011
|
+
|
|
2012
|
+
@classmethod
|
|
2013
|
+
def from_dict(cls, d: Dict[str, Any]) -> CreateAccountsStorageCredential:
|
|
2014
|
+
"""Deserializes the CreateAccountsStorageCredential from a dictionary."""
|
|
2015
|
+
return cls(
|
|
2016
|
+
aws_iam_role=_from_dict(d, "aws_iam_role", AwsIamRoleRequest),
|
|
2017
|
+
azure_managed_identity=_from_dict(d, "azure_managed_identity", AzureManagedIdentityRequest),
|
|
2018
|
+
azure_service_principal=_from_dict(d, "azure_service_principal", AzureServicePrincipal),
|
|
2019
|
+
cloudflare_api_token=_from_dict(d, "cloudflare_api_token", CloudflareApiToken),
|
|
2020
|
+
comment=d.get("comment", None),
|
|
2021
|
+
databricks_gcp_service_account=_from_dict(
|
|
2022
|
+
d, "databricks_gcp_service_account", DatabricksGcpServiceAccountRequest
|
|
2023
|
+
),
|
|
2024
|
+
name=d.get("name", None),
|
|
2025
|
+
read_only=d.get("read_only", None),
|
|
2026
|
+
)
|
|
2027
|
+
|
|
2028
|
+
|
|
2029
|
+
@dataclass
|
|
2030
|
+
class CreateFunction:
|
|
2031
|
+
name: str
|
|
2032
|
+
"""Name of function, relative to parent schema."""
|
|
2033
|
+
|
|
2034
|
+
catalog_name: str
|
|
2035
|
+
"""Name of parent Catalog."""
|
|
2036
|
+
|
|
2037
|
+
schema_name: str
|
|
2038
|
+
"""Name of parent Schema relative to its parent Catalog."""
|
|
2039
|
+
|
|
2040
|
+
input_params: FunctionParameterInfos
|
|
2041
|
+
"""Function input parameters."""
|
|
2042
|
+
|
|
2043
|
+
data_type: ColumnTypeName
|
|
2044
|
+
"""Scalar function return data type."""
|
|
2045
|
+
|
|
2046
|
+
full_data_type: str
|
|
2047
|
+
"""Pretty printed function data type."""
|
|
2048
|
+
|
|
2049
|
+
routine_body: CreateFunctionRoutineBody
|
|
2050
|
+
"""Function language. When **EXTERNAL** is used, the language of the routine function should be
|
|
2051
|
+
specified in the **external_language** field, and the **return_params** of the function cannot
|
|
2052
|
+
be used (as **TABLE** return type is not supported), and the **sql_data_access** field must be
|
|
2053
|
+
**NO_SQL**."""
|
|
2054
|
+
|
|
2055
|
+
routine_definition: str
|
|
2056
|
+
"""Function body."""
|
|
2057
|
+
|
|
2058
|
+
parameter_style: CreateFunctionParameterStyle
|
|
2059
|
+
"""Function parameter style. **S** is the value for SQL."""
|
|
2060
|
+
|
|
2061
|
+
is_deterministic: bool
|
|
2062
|
+
"""Whether the function is deterministic."""
|
|
2063
|
+
|
|
2064
|
+
sql_data_access: CreateFunctionSqlDataAccess
|
|
2065
|
+
"""Function SQL data access."""
|
|
2066
|
+
|
|
2067
|
+
is_null_call: bool
|
|
2068
|
+
"""Function null call."""
|
|
2069
|
+
|
|
2070
|
+
security_type: CreateFunctionSecurityType
|
|
2071
|
+
"""Function security type."""
|
|
2072
|
+
|
|
2073
|
+
specific_name: str
|
|
2074
|
+
"""Specific name of the function; Reserved for future use."""
|
|
2075
|
+
|
|
2076
|
+
comment: Optional[str] = None
|
|
2077
|
+
"""User-provided free-form text description."""
|
|
2078
|
+
|
|
2079
|
+
external_language: Optional[str] = None
|
|
2080
|
+
"""External function language."""
|
|
2081
|
+
|
|
2082
|
+
external_name: Optional[str] = None
|
|
1721
2083
|
"""External function name."""
|
|
1722
2084
|
|
|
1723
2085
|
properties: Optional[str] = None
|
|
@@ -1727,7 +2089,7 @@ class CreateFunction:
|
|
|
1727
2089
|
"""Table function return parameters."""
|
|
1728
2090
|
|
|
1729
2091
|
routine_dependencies: Optional[DependencyList] = None
|
|
1730
|
-
"""
|
|
2092
|
+
"""function dependencies."""
|
|
1731
2093
|
|
|
1732
2094
|
sql_path: Optional[str] = None
|
|
1733
2095
|
"""List of schemes whose objects can be referenced without qualification."""
|
|
@@ -1855,74 +2217,28 @@ class CreateFunction:
|
|
|
1855
2217
|
|
|
1856
2218
|
|
|
1857
2219
|
class CreateFunctionParameterStyle(Enum):
|
|
1858
|
-
"""Function parameter style. **S** is the value for SQL."""
|
|
1859
2220
|
|
|
1860
2221
|
S = "S"
|
|
1861
2222
|
|
|
1862
2223
|
|
|
1863
2224
|
class CreateFunctionRoutineBody(Enum):
|
|
1864
|
-
"""Function language. When **EXTERNAL** is used, the language of the routine function should be
|
|
1865
|
-
specified in the __external_language__ field, and the __return_params__ of the function cannot
|
|
1866
|
-
be used (as **TABLE** return type is not supported), and the __sql_data_access__ field must be
|
|
1867
|
-
**NO_SQL**."""
|
|
1868
2225
|
|
|
1869
2226
|
EXTERNAL = "EXTERNAL"
|
|
1870
2227
|
SQL = "SQL"
|
|
1871
2228
|
|
|
1872
2229
|
|
|
1873
2230
|
class CreateFunctionSecurityType(Enum):
|
|
1874
|
-
"""The security type of the function."""
|
|
1875
2231
|
|
|
1876
2232
|
DEFINER = "DEFINER"
|
|
1877
2233
|
|
|
1878
2234
|
|
|
1879
2235
|
class CreateFunctionSqlDataAccess(Enum):
|
|
1880
|
-
"""Function SQL data access."""
|
|
1881
2236
|
|
|
1882
2237
|
CONTAINS_SQL = "CONTAINS_SQL"
|
|
1883
2238
|
NO_SQL = "NO_SQL"
|
|
1884
2239
|
READS_SQL_DATA = "READS_SQL_DATA"
|
|
1885
2240
|
|
|
1886
2241
|
|
|
1887
|
-
@dataclass
|
|
1888
|
-
class CreateMetastore:
|
|
1889
|
-
name: str
|
|
1890
|
-
"""The user-specified name of the metastore."""
|
|
1891
|
-
|
|
1892
|
-
region: Optional[str] = None
|
|
1893
|
-
"""Cloud region which the metastore serves (e.g., `us-west-2`, `westus`)."""
|
|
1894
|
-
|
|
1895
|
-
storage_root: Optional[str] = None
|
|
1896
|
-
"""The storage root URL for metastore"""
|
|
1897
|
-
|
|
1898
|
-
def as_dict(self) -> dict:
|
|
1899
|
-
"""Serializes the CreateMetastore into a dictionary suitable for use as a JSON request body."""
|
|
1900
|
-
body = {}
|
|
1901
|
-
if self.name is not None:
|
|
1902
|
-
body["name"] = self.name
|
|
1903
|
-
if self.region is not None:
|
|
1904
|
-
body["region"] = self.region
|
|
1905
|
-
if self.storage_root is not None:
|
|
1906
|
-
body["storage_root"] = self.storage_root
|
|
1907
|
-
return body
|
|
1908
|
-
|
|
1909
|
-
def as_shallow_dict(self) -> dict:
|
|
1910
|
-
"""Serializes the CreateMetastore into a shallow dictionary of its immediate attributes."""
|
|
1911
|
-
body = {}
|
|
1912
|
-
if self.name is not None:
|
|
1913
|
-
body["name"] = self.name
|
|
1914
|
-
if self.region is not None:
|
|
1915
|
-
body["region"] = self.region
|
|
1916
|
-
if self.storage_root is not None:
|
|
1917
|
-
body["storage_root"] = self.storage_root
|
|
1918
|
-
return body
|
|
1919
|
-
|
|
1920
|
-
@classmethod
|
|
1921
|
-
def from_dict(cls, d: Dict[str, Any]) -> CreateMetastore:
|
|
1922
|
-
"""Deserializes the CreateMetastore from a dictionary."""
|
|
1923
|
-
return cls(name=d.get("name", None), region=d.get("region", None), storage_root=d.get("storage_root", None))
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
2242
|
@dataclass
|
|
1927
2243
|
class CreateMetastoreAssignment:
|
|
1928
2244
|
metastore_id: str
|
|
@@ -2026,119 +2342,6 @@ class CreateRequestExternalLineage:
|
|
|
2026
2342
|
)
|
|
2027
2343
|
|
|
2028
2344
|
|
|
2029
|
-
@dataclass
|
|
2030
|
-
class CreateResponse:
|
|
2031
|
-
def as_dict(self) -> dict:
|
|
2032
|
-
"""Serializes the CreateResponse into a dictionary suitable for use as a JSON request body."""
|
|
2033
|
-
body = {}
|
|
2034
|
-
return body
|
|
2035
|
-
|
|
2036
|
-
def as_shallow_dict(self) -> dict:
|
|
2037
|
-
"""Serializes the CreateResponse into a shallow dictionary of its immediate attributes."""
|
|
2038
|
-
body = {}
|
|
2039
|
-
return body
|
|
2040
|
-
|
|
2041
|
-
@classmethod
|
|
2042
|
-
def from_dict(cls, d: Dict[str, Any]) -> CreateResponse:
|
|
2043
|
-
"""Deserializes the CreateResponse from a dictionary."""
|
|
2044
|
-
return cls()
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
@dataclass
|
|
2048
|
-
class CreateStorageCredential:
|
|
2049
|
-
name: str
|
|
2050
|
-
"""The credential name. The name must be unique among storage and service credentials within the
|
|
2051
|
-
metastore."""
|
|
2052
|
-
|
|
2053
|
-
aws_iam_role: Optional[AwsIamRoleRequest] = None
|
|
2054
|
-
"""The AWS IAM role configuration."""
|
|
2055
|
-
|
|
2056
|
-
azure_managed_identity: Optional[AzureManagedIdentityRequest] = None
|
|
2057
|
-
"""The Azure managed identity configuration."""
|
|
2058
|
-
|
|
2059
|
-
azure_service_principal: Optional[AzureServicePrincipal] = None
|
|
2060
|
-
"""The Azure service principal configuration."""
|
|
2061
|
-
|
|
2062
|
-
cloudflare_api_token: Optional[CloudflareApiToken] = None
|
|
2063
|
-
"""The Cloudflare API token configuration."""
|
|
2064
|
-
|
|
2065
|
-
comment: Optional[str] = None
|
|
2066
|
-
"""Comment associated with the credential."""
|
|
2067
|
-
|
|
2068
|
-
databricks_gcp_service_account: Optional[DatabricksGcpServiceAccountRequest] = None
|
|
2069
|
-
"""The Databricks managed GCP service account configuration."""
|
|
2070
|
-
|
|
2071
|
-
read_only: Optional[bool] = None
|
|
2072
|
-
"""Whether the credential is usable only for read operations. Only applicable when purpose is
|
|
2073
|
-
**STORAGE**."""
|
|
2074
|
-
|
|
2075
|
-
skip_validation: Optional[bool] = None
|
|
2076
|
-
"""Supplying true to this argument skips validation of the created credential."""
|
|
2077
|
-
|
|
2078
|
-
def as_dict(self) -> dict:
|
|
2079
|
-
"""Serializes the CreateStorageCredential into a dictionary suitable for use as a JSON request body."""
|
|
2080
|
-
body = {}
|
|
2081
|
-
if self.aws_iam_role:
|
|
2082
|
-
body["aws_iam_role"] = self.aws_iam_role.as_dict()
|
|
2083
|
-
if self.azure_managed_identity:
|
|
2084
|
-
body["azure_managed_identity"] = self.azure_managed_identity.as_dict()
|
|
2085
|
-
if self.azure_service_principal:
|
|
2086
|
-
body["azure_service_principal"] = self.azure_service_principal.as_dict()
|
|
2087
|
-
if self.cloudflare_api_token:
|
|
2088
|
-
body["cloudflare_api_token"] = self.cloudflare_api_token.as_dict()
|
|
2089
|
-
if self.comment is not None:
|
|
2090
|
-
body["comment"] = self.comment
|
|
2091
|
-
if self.databricks_gcp_service_account:
|
|
2092
|
-
body["databricks_gcp_service_account"] = self.databricks_gcp_service_account.as_dict()
|
|
2093
|
-
if self.name is not None:
|
|
2094
|
-
body["name"] = self.name
|
|
2095
|
-
if self.read_only is not None:
|
|
2096
|
-
body["read_only"] = self.read_only
|
|
2097
|
-
if self.skip_validation is not None:
|
|
2098
|
-
body["skip_validation"] = self.skip_validation
|
|
2099
|
-
return body
|
|
2100
|
-
|
|
2101
|
-
def as_shallow_dict(self) -> dict:
|
|
2102
|
-
"""Serializes the CreateStorageCredential into a shallow dictionary of its immediate attributes."""
|
|
2103
|
-
body = {}
|
|
2104
|
-
if self.aws_iam_role:
|
|
2105
|
-
body["aws_iam_role"] = self.aws_iam_role
|
|
2106
|
-
if self.azure_managed_identity:
|
|
2107
|
-
body["azure_managed_identity"] = self.azure_managed_identity
|
|
2108
|
-
if self.azure_service_principal:
|
|
2109
|
-
body["azure_service_principal"] = self.azure_service_principal
|
|
2110
|
-
if self.cloudflare_api_token:
|
|
2111
|
-
body["cloudflare_api_token"] = self.cloudflare_api_token
|
|
2112
|
-
if self.comment is not None:
|
|
2113
|
-
body["comment"] = self.comment
|
|
2114
|
-
if self.databricks_gcp_service_account:
|
|
2115
|
-
body["databricks_gcp_service_account"] = self.databricks_gcp_service_account
|
|
2116
|
-
if self.name is not None:
|
|
2117
|
-
body["name"] = self.name
|
|
2118
|
-
if self.read_only is not None:
|
|
2119
|
-
body["read_only"] = self.read_only
|
|
2120
|
-
if self.skip_validation is not None:
|
|
2121
|
-
body["skip_validation"] = self.skip_validation
|
|
2122
|
-
return body
|
|
2123
|
-
|
|
2124
|
-
@classmethod
|
|
2125
|
-
def from_dict(cls, d: Dict[str, Any]) -> CreateStorageCredential:
|
|
2126
|
-
"""Deserializes the CreateStorageCredential from a dictionary."""
|
|
2127
|
-
return cls(
|
|
2128
|
-
aws_iam_role=_from_dict(d, "aws_iam_role", AwsIamRoleRequest),
|
|
2129
|
-
azure_managed_identity=_from_dict(d, "azure_managed_identity", AzureManagedIdentityRequest),
|
|
2130
|
-
azure_service_principal=_from_dict(d, "azure_service_principal", AzureServicePrincipal),
|
|
2131
|
-
cloudflare_api_token=_from_dict(d, "cloudflare_api_token", CloudflareApiToken),
|
|
2132
|
-
comment=d.get("comment", None),
|
|
2133
|
-
databricks_gcp_service_account=_from_dict(
|
|
2134
|
-
d, "databricks_gcp_service_account", DatabricksGcpServiceAccountRequest
|
|
2135
|
-
),
|
|
2136
|
-
name=d.get("name", None),
|
|
2137
|
-
read_only=d.get("read_only", None),
|
|
2138
|
-
skip_validation=d.get("skip_validation", None),
|
|
2139
|
-
)
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
2345
|
@dataclass
|
|
2143
2346
|
class CredentialDependency:
|
|
2144
2347
|
"""A credential that is dependent on a SQL object."""
|
|
@@ -4143,7 +4346,7 @@ class FunctionInfo:
|
|
|
4143
4346
|
through the BROWSE privilege when include_browse is enabled in the request."""
|
|
4144
4347
|
|
|
4145
4348
|
catalog_name: Optional[str] = None
|
|
4146
|
-
"""Name of parent
|
|
4349
|
+
"""Name of parent Catalog."""
|
|
4147
4350
|
|
|
4148
4351
|
comment: Optional[str] = None
|
|
4149
4352
|
"""User-provided free-form text description."""
|
|
@@ -4167,12 +4370,13 @@ class FunctionInfo:
|
|
|
4167
4370
|
"""Pretty printed function data type."""
|
|
4168
4371
|
|
|
4169
4372
|
full_name: Optional[str] = None
|
|
4170
|
-
"""Full name of
|
|
4373
|
+
"""Full name of Function, in form of **catalog_name**.**schema_name**.**function_name**"""
|
|
4171
4374
|
|
|
4172
4375
|
function_id: Optional[str] = None
|
|
4173
4376
|
"""Id of Function, relative to parent schema."""
|
|
4174
4377
|
|
|
4175
4378
|
input_params: Optional[FunctionParameterInfos] = None
|
|
4379
|
+
"""Function input parameters."""
|
|
4176
4380
|
|
|
4177
4381
|
is_deterministic: Optional[bool] = None
|
|
4178
4382
|
"""Whether the function is deterministic."""
|
|
@@ -4187,7 +4391,7 @@ class FunctionInfo:
|
|
|
4187
4391
|
"""Name of function, relative to parent schema."""
|
|
4188
4392
|
|
|
4189
4393
|
owner: Optional[str] = None
|
|
4190
|
-
"""Username of current owner of function."""
|
|
4394
|
+
"""Username of current owner of the function."""
|
|
4191
4395
|
|
|
4192
4396
|
parameter_style: Optional[FunctionInfoParameterStyle] = None
|
|
4193
4397
|
"""Function parameter style. **S** is the value for SQL."""
|
|
@@ -4200,18 +4404,18 @@ class FunctionInfo:
|
|
|
4200
4404
|
|
|
4201
4405
|
routine_body: Optional[FunctionInfoRoutineBody] = None
|
|
4202
4406
|
"""Function language. When **EXTERNAL** is used, the language of the routine function should be
|
|
4203
|
-
specified in the
|
|
4204
|
-
be used (as **TABLE** return type is not supported), and the
|
|
4407
|
+
specified in the **external_language** field, and the **return_params** of the function cannot
|
|
4408
|
+
be used (as **TABLE** return type is not supported), and the **sql_data_access** field must be
|
|
4205
4409
|
**NO_SQL**."""
|
|
4206
4410
|
|
|
4207
4411
|
routine_definition: Optional[str] = None
|
|
4208
4412
|
"""Function body."""
|
|
4209
4413
|
|
|
4210
4414
|
routine_dependencies: Optional[DependencyList] = None
|
|
4211
|
-
"""
|
|
4415
|
+
"""function dependencies."""
|
|
4212
4416
|
|
|
4213
4417
|
schema_name: Optional[str] = None
|
|
4214
|
-
"""Name of parent
|
|
4418
|
+
"""Name of parent Schema relative to its parent Catalog."""
|
|
4215
4419
|
|
|
4216
4420
|
security_type: Optional[FunctionInfoSecurityType] = None
|
|
4217
4421
|
"""Function security type."""
|
|
@@ -4226,10 +4430,10 @@ class FunctionInfo:
|
|
|
4226
4430
|
"""List of schemes whose objects can be referenced without qualification."""
|
|
4227
4431
|
|
|
4228
4432
|
updated_at: Optional[int] = None
|
|
4229
|
-
"""Time at which this function was
|
|
4433
|
+
"""Time at which this function was last modified, in epoch milliseconds."""
|
|
4230
4434
|
|
|
4231
4435
|
updated_by: Optional[str] = None
|
|
4232
|
-
"""Username of user who last modified function."""
|
|
4436
|
+
"""Username of user who last modified the function."""
|
|
4233
4437
|
|
|
4234
4438
|
def as_dict(self) -> dict:
|
|
4235
4439
|
"""Serializes the FunctionInfo into a dictionary suitable for use as a JSON request body."""
|
|
@@ -4399,29 +4603,22 @@ class FunctionInfo:
|
|
|
4399
4603
|
|
|
4400
4604
|
|
|
4401
4605
|
class FunctionInfoParameterStyle(Enum):
|
|
4402
|
-
"""Function parameter style. **S** is the value for SQL."""
|
|
4403
4606
|
|
|
4404
4607
|
S = "S"
|
|
4405
4608
|
|
|
4406
4609
|
|
|
4407
4610
|
class FunctionInfoRoutineBody(Enum):
|
|
4408
|
-
"""Function language. When **EXTERNAL** is used, the language of the routine function should be
|
|
4409
|
-
specified in the __external_language__ field, and the __return_params__ of the function cannot
|
|
4410
|
-
be used (as **TABLE** return type is not supported), and the __sql_data_access__ field must be
|
|
4411
|
-
**NO_SQL**."""
|
|
4412
4611
|
|
|
4413
4612
|
EXTERNAL = "EXTERNAL"
|
|
4414
4613
|
SQL = "SQL"
|
|
4415
4614
|
|
|
4416
4615
|
|
|
4417
4616
|
class FunctionInfoSecurityType(Enum):
|
|
4418
|
-
"""The security type of the function."""
|
|
4419
4617
|
|
|
4420
4618
|
DEFINER = "DEFINER"
|
|
4421
4619
|
|
|
4422
4620
|
|
|
4423
4621
|
class FunctionInfoSqlDataAccess(Enum):
|
|
4424
|
-
"""Function SQL data access."""
|
|
4425
4622
|
|
|
4426
4623
|
CONTAINS_SQL = "CONTAINS_SQL"
|
|
4427
4624
|
NO_SQL = "NO_SQL"
|
|
@@ -4431,12 +4628,13 @@ class FunctionInfoSqlDataAccess(Enum):
|
|
|
4431
4628
|
@dataclass
|
|
4432
4629
|
class FunctionParameterInfo:
|
|
4433
4630
|
name: str
|
|
4434
|
-
"""Name of
|
|
4631
|
+
"""Name of Parameter."""
|
|
4435
4632
|
|
|
4436
4633
|
type_text: str
|
|
4437
4634
|
"""Full data type spec, SQL/catalogString text."""
|
|
4438
4635
|
|
|
4439
4636
|
type_name: ColumnTypeName
|
|
4637
|
+
"""Name of type (INT, STRUCT, MAP, etc.)"""
|
|
4440
4638
|
|
|
4441
4639
|
position: int
|
|
4442
4640
|
"""Ordinal position of column (starting at position 0)."""
|
|
@@ -4448,8 +4646,10 @@ class FunctionParameterInfo:
|
|
|
4448
4646
|
"""Default value of the parameter."""
|
|
4449
4647
|
|
|
4450
4648
|
parameter_mode: Optional[FunctionParameterMode] = None
|
|
4649
|
+
"""Function parameter mode."""
|
|
4451
4650
|
|
|
4452
4651
|
parameter_type: Optional[FunctionParameterType] = None
|
|
4652
|
+
"""Function parameter type."""
|
|
4453
4653
|
|
|
4454
4654
|
type_interval_type: Optional[str] = None
|
|
4455
4655
|
"""Format of IntervalType."""
|
|
@@ -4543,7 +4743,6 @@ class FunctionParameterInfo:
|
|
|
4543
4743
|
@dataclass
|
|
4544
4744
|
class FunctionParameterInfos:
|
|
4545
4745
|
parameters: Optional[List[FunctionParameterInfo]] = None
|
|
4546
|
-
"""The array of __FunctionParameterInfo__ definitions of the function's parameters."""
|
|
4547
4746
|
|
|
4548
4747
|
def as_dict(self) -> dict:
|
|
4549
4748
|
"""Serializes the FunctionParameterInfos into a dictionary suitable for use as a JSON request body."""
|
|
@@ -4566,13 +4765,11 @@ class FunctionParameterInfos:
|
|
|
4566
4765
|
|
|
4567
4766
|
|
|
4568
4767
|
class FunctionParameterMode(Enum):
|
|
4569
|
-
"""The mode of the function parameter."""
|
|
4570
4768
|
|
|
4571
4769
|
IN = "IN"
|
|
4572
4770
|
|
|
4573
4771
|
|
|
4574
4772
|
class FunctionParameterType(Enum):
|
|
4575
|
-
"""The type of function parameter."""
|
|
4576
4773
|
|
|
4577
4774
|
COLUMN = "COLUMN"
|
|
4578
4775
|
PARAM = "PARAM"
|
|
@@ -5153,7 +5350,7 @@ class LineageDirection(Enum):
|
|
|
5153
5350
|
|
|
5154
5351
|
@dataclass
|
|
5155
5352
|
class ListAccountMetastoreAssignmentsResponse:
|
|
5156
|
-
"""The
|
|
5353
|
+
"""The metastore assignments were successfully returned."""
|
|
5157
5354
|
|
|
5158
5355
|
workspace_ids: Optional[List[int]] = None
|
|
5159
5356
|
|
|
@@ -5179,6 +5376,8 @@ class ListAccountMetastoreAssignmentsResponse:
|
|
|
5179
5376
|
|
|
5180
5377
|
@dataclass
|
|
5181
5378
|
class ListAccountStorageCredentialsResponse:
|
|
5379
|
+
"""The metastore storage credentials were successfully returned."""
|
|
5380
|
+
|
|
5182
5381
|
storage_credentials: Optional[List[StorageCredentialInfo]] = None
|
|
5183
5382
|
"""An array of metastore storage credentials."""
|
|
5184
5383
|
|
|
@@ -5896,7 +6095,8 @@ class MetastoreAssignment:
|
|
|
5896
6095
|
"""The unique ID of the metastore."""
|
|
5897
6096
|
|
|
5898
6097
|
default_catalog_name: Optional[str] = None
|
|
5899
|
-
"""The name of the default catalog in the metastore."
|
|
6098
|
+
"""The name of the default catalog in the metastore. This field is deprecated. Please use "Default
|
|
6099
|
+
Namespace API" to configure the default catalog for a Databricks workspace."""
|
|
5900
6100
|
|
|
5901
6101
|
def as_dict(self) -> dict:
|
|
5902
6102
|
"""Serializes the MetastoreAssignment into a dictionary suitable for use as a JSON request body."""
|
|
@@ -6113,10 +6313,6 @@ class ModelVersionInfo:
|
|
|
6113
6313
|
aliases: Optional[List[RegisteredModelAlias]] = None
|
|
6114
6314
|
"""List of aliases associated with the model version"""
|
|
6115
6315
|
|
|
6116
|
-
browse_only: Optional[bool] = None
|
|
6117
|
-
"""Indicates whether the principal is limited to retrieving metadata for the associated object
|
|
6118
|
-
through the BROWSE privilege when include_browse is enabled in the request."""
|
|
6119
|
-
|
|
6120
6316
|
catalog_name: Optional[str] = None
|
|
6121
6317
|
"""The name of the catalog containing the model version"""
|
|
6122
6318
|
|
|
@@ -6175,8 +6371,6 @@ class ModelVersionInfo:
|
|
|
6175
6371
|
body = {}
|
|
6176
6372
|
if self.aliases:
|
|
6177
6373
|
body["aliases"] = [v.as_dict() for v in self.aliases]
|
|
6178
|
-
if self.browse_only is not None:
|
|
6179
|
-
body["browse_only"] = self.browse_only
|
|
6180
6374
|
if self.catalog_name is not None:
|
|
6181
6375
|
body["catalog_name"] = self.catalog_name
|
|
6182
6376
|
if self.comment is not None:
|
|
@@ -6218,8 +6412,6 @@ class ModelVersionInfo:
|
|
|
6218
6412
|
body = {}
|
|
6219
6413
|
if self.aliases:
|
|
6220
6414
|
body["aliases"] = self.aliases
|
|
6221
|
-
if self.browse_only is not None:
|
|
6222
|
-
body["browse_only"] = self.browse_only
|
|
6223
6415
|
if self.catalog_name is not None:
|
|
6224
6416
|
body["catalog_name"] = self.catalog_name
|
|
6225
6417
|
if self.comment is not None:
|
|
@@ -6261,7 +6453,6 @@ class ModelVersionInfo:
|
|
|
6261
6453
|
"""Deserializes the ModelVersionInfo from a dictionary."""
|
|
6262
6454
|
return cls(
|
|
6263
6455
|
aliases=_repeated_dict(d, "aliases", RegisteredModelAlias),
|
|
6264
|
-
browse_only=d.get("browse_only", None),
|
|
6265
6456
|
catalog_name=d.get("catalog_name", None),
|
|
6266
6457
|
comment=d.get("comment", None),
|
|
6267
6458
|
created_at=d.get("created_at", None),
|
|
@@ -6283,11 +6474,9 @@ class ModelVersionInfo:
|
|
|
6283
6474
|
|
|
6284
6475
|
|
|
6285
6476
|
class ModelVersionInfoStatus(Enum):
|
|
6286
|
-
"""Current status of the model version. Newly created model versions start in PENDING_REGISTRATION
|
|
6287
|
-
status, then move to READY status once the model version files are uploaded and the model
|
|
6288
|
-
version is finalized. Only model versions in READY status can be loaded for inference or served."""
|
|
6289
6477
|
|
|
6290
6478
|
FAILED_REGISTRATION = "FAILED_REGISTRATION"
|
|
6479
|
+
MODEL_VERSION_STATUS_UNKNOWN = "MODEL_VERSION_STATUS_UNKNOWN"
|
|
6291
6480
|
PENDING_REGISTRATION = "PENDING_REGISTRATION"
|
|
6292
6481
|
READY = "READY"
|
|
6293
6482
|
|
|
@@ -8125,11 +8314,21 @@ class RegenerateDashboardResponse:
|
|
|
8125
8314
|
|
|
8126
8315
|
@dataclass
|
|
8127
8316
|
class RegisteredModelAlias:
|
|
8128
|
-
"""Registered model alias."""
|
|
8129
|
-
|
|
8130
8317
|
alias_name: Optional[str] = None
|
|
8131
8318
|
"""Name of the alias, e.g. 'champion' or 'latest_stable'"""
|
|
8132
8319
|
|
|
8320
|
+
catalog_name: Optional[str] = None
|
|
8321
|
+
"""The name of the catalog containing the model version"""
|
|
8322
|
+
|
|
8323
|
+
id: Optional[str] = None
|
|
8324
|
+
"""The unique identifier of the alias"""
|
|
8325
|
+
|
|
8326
|
+
model_name: Optional[str] = None
|
|
8327
|
+
"""The name of the parent registered model of the model version, relative to parent schema"""
|
|
8328
|
+
|
|
8329
|
+
schema_name: Optional[str] = None
|
|
8330
|
+
"""The name of the schema containing the model version, relative to parent catalog"""
|
|
8331
|
+
|
|
8133
8332
|
version_num: Optional[int] = None
|
|
8134
8333
|
"""Integer version number of the model version to which this alias points."""
|
|
8135
8334
|
|
|
@@ -8138,6 +8337,14 @@ class RegisteredModelAlias:
|
|
|
8138
8337
|
body = {}
|
|
8139
8338
|
if self.alias_name is not None:
|
|
8140
8339
|
body["alias_name"] = self.alias_name
|
|
8340
|
+
if self.catalog_name is not None:
|
|
8341
|
+
body["catalog_name"] = self.catalog_name
|
|
8342
|
+
if self.id is not None:
|
|
8343
|
+
body["id"] = self.id
|
|
8344
|
+
if self.model_name is not None:
|
|
8345
|
+
body["model_name"] = self.model_name
|
|
8346
|
+
if self.schema_name is not None:
|
|
8347
|
+
body["schema_name"] = self.schema_name
|
|
8141
8348
|
if self.version_num is not None:
|
|
8142
8349
|
body["version_num"] = self.version_num
|
|
8143
8350
|
return body
|
|
@@ -8147,6 +8354,14 @@ class RegisteredModelAlias:
|
|
|
8147
8354
|
body = {}
|
|
8148
8355
|
if self.alias_name is not None:
|
|
8149
8356
|
body["alias_name"] = self.alias_name
|
|
8357
|
+
if self.catalog_name is not None:
|
|
8358
|
+
body["catalog_name"] = self.catalog_name
|
|
8359
|
+
if self.id is not None:
|
|
8360
|
+
body["id"] = self.id
|
|
8361
|
+
if self.model_name is not None:
|
|
8362
|
+
body["model_name"] = self.model_name
|
|
8363
|
+
if self.schema_name is not None:
|
|
8364
|
+
body["schema_name"] = self.schema_name
|
|
8150
8365
|
if self.version_num is not None:
|
|
8151
8366
|
body["version_num"] = self.version_num
|
|
8152
8367
|
return body
|
|
@@ -8154,7 +8369,14 @@ class RegisteredModelAlias:
|
|
|
8154
8369
|
@classmethod
|
|
8155
8370
|
def from_dict(cls, d: Dict[str, Any]) -> RegisteredModelAlias:
|
|
8156
8371
|
"""Deserializes the RegisteredModelAlias from a dictionary."""
|
|
8157
|
-
return cls(
|
|
8372
|
+
return cls(
|
|
8373
|
+
alias_name=d.get("alias_name", None),
|
|
8374
|
+
catalog_name=d.get("catalog_name", None),
|
|
8375
|
+
id=d.get("id", None),
|
|
8376
|
+
model_name=d.get("model_name", None),
|
|
8377
|
+
schema_name=d.get("schema_name", None),
|
|
8378
|
+
version_num=d.get("version_num", None),
|
|
8379
|
+
)
|
|
8158
8380
|
|
|
8159
8381
|
|
|
8160
8382
|
@dataclass
|
|
@@ -8540,7 +8762,7 @@ class Securable:
|
|
|
8540
8762
|
|
|
8541
8763
|
|
|
8542
8764
|
class SecurableKind(Enum):
|
|
8543
|
-
"""Latest kind:
|
|
8765
|
+
"""Latest kind: CONNECTION_REDSHIFT_IAM = 265; Next id:266"""
|
|
8544
8766
|
|
|
8545
8767
|
TABLE_DB_STORAGE = "TABLE_DB_STORAGE"
|
|
8546
8768
|
TABLE_DELTA = "TABLE_DELTA"
|
|
@@ -9636,50 +9858,7 @@ class UnassignResponse:
|
|
|
9636
9858
|
|
|
9637
9859
|
|
|
9638
9860
|
@dataclass
|
|
9639
|
-
class
|
|
9640
|
-
def as_dict(self) -> dict:
|
|
9641
|
-
"""Serializes the UpdateAssignmentResponse into a dictionary suitable for use as a JSON request body."""
|
|
9642
|
-
body = {}
|
|
9643
|
-
return body
|
|
9644
|
-
|
|
9645
|
-
def as_shallow_dict(self) -> dict:
|
|
9646
|
-
"""Serializes the UpdateAssignmentResponse into a shallow dictionary of its immediate attributes."""
|
|
9647
|
-
body = {}
|
|
9648
|
-
return body
|
|
9649
|
-
|
|
9650
|
-
@classmethod
|
|
9651
|
-
def from_dict(cls, d: Dict[str, Any]) -> UpdateAssignmentResponse:
|
|
9652
|
-
"""Deserializes the UpdateAssignmentResponse from a dictionary."""
|
|
9653
|
-
return cls()
|
|
9654
|
-
|
|
9655
|
-
|
|
9656
|
-
@dataclass
|
|
9657
|
-
class UpdateCatalogWorkspaceBindingsResponse:
|
|
9658
|
-
workspaces: Optional[List[int]] = None
|
|
9659
|
-
"""A list of workspace IDs"""
|
|
9660
|
-
|
|
9661
|
-
def as_dict(self) -> dict:
|
|
9662
|
-
"""Serializes the UpdateCatalogWorkspaceBindingsResponse into a dictionary suitable for use as a JSON request body."""
|
|
9663
|
-
body = {}
|
|
9664
|
-
if self.workspaces:
|
|
9665
|
-
body["workspaces"] = [v for v in self.workspaces]
|
|
9666
|
-
return body
|
|
9667
|
-
|
|
9668
|
-
def as_shallow_dict(self) -> dict:
|
|
9669
|
-
"""Serializes the UpdateCatalogWorkspaceBindingsResponse into a shallow dictionary of its immediate attributes."""
|
|
9670
|
-
body = {}
|
|
9671
|
-
if self.workspaces:
|
|
9672
|
-
body["workspaces"] = self.workspaces
|
|
9673
|
-
return body
|
|
9674
|
-
|
|
9675
|
-
@classmethod
|
|
9676
|
-
def from_dict(cls, d: Dict[str, Any]) -> UpdateCatalogWorkspaceBindingsResponse:
|
|
9677
|
-
"""Deserializes the UpdateCatalogWorkspaceBindingsResponse from a dictionary."""
|
|
9678
|
-
return cls(workspaces=d.get("workspaces", None))
|
|
9679
|
-
|
|
9680
|
-
|
|
9681
|
-
@dataclass
|
|
9682
|
-
class UpdateMetastore:
|
|
9861
|
+
class UpdateAccountsMetastore:
|
|
9683
9862
|
delta_sharing_organization_name: Optional[str] = None
|
|
9684
9863
|
"""The organization name of a Delta Sharing entity, to be used in Databricks-to-Databricks Delta
|
|
9685
9864
|
Sharing as the official name."""
|
|
@@ -9690,12 +9869,6 @@ class UpdateMetastore:
|
|
|
9690
9869
|
delta_sharing_scope: Optional[DeltaSharingScopeEnum] = None
|
|
9691
9870
|
"""The scope of Delta Sharing enabled for the metastore."""
|
|
9692
9871
|
|
|
9693
|
-
id: Optional[str] = None
|
|
9694
|
-
"""Unique ID of the metastore."""
|
|
9695
|
-
|
|
9696
|
-
new_name: Optional[str] = None
|
|
9697
|
-
"""New name for the metastore."""
|
|
9698
|
-
|
|
9699
9872
|
owner: Optional[str] = None
|
|
9700
9873
|
"""The owner of the metastore."""
|
|
9701
9874
|
|
|
@@ -9706,7 +9879,7 @@ class UpdateMetastore:
|
|
|
9706
9879
|
"""UUID of storage credential to access the metastore storage_root."""
|
|
9707
9880
|
|
|
9708
9881
|
def as_dict(self) -> dict:
|
|
9709
|
-
"""Serializes the
|
|
9882
|
+
"""Serializes the UpdateAccountsMetastore into a dictionary suitable for use as a JSON request body."""
|
|
9710
9883
|
body = {}
|
|
9711
9884
|
if self.delta_sharing_organization_name is not None:
|
|
9712
9885
|
body["delta_sharing_organization_name"] = self.delta_sharing_organization_name
|
|
@@ -9716,10 +9889,6 @@ class UpdateMetastore:
|
|
|
9716
9889
|
)
|
|
9717
9890
|
if self.delta_sharing_scope is not None:
|
|
9718
9891
|
body["delta_sharing_scope"] = self.delta_sharing_scope.value
|
|
9719
|
-
if self.id is not None:
|
|
9720
|
-
body["id"] = self.id
|
|
9721
|
-
if self.new_name is not None:
|
|
9722
|
-
body["new_name"] = self.new_name
|
|
9723
9892
|
if self.owner is not None:
|
|
9724
9893
|
body["owner"] = self.owner
|
|
9725
9894
|
if self.privilege_model_version is not None:
|
|
@@ -9729,7 +9898,7 @@ class UpdateMetastore:
|
|
|
9729
9898
|
return body
|
|
9730
9899
|
|
|
9731
9900
|
def as_shallow_dict(self) -> dict:
|
|
9732
|
-
"""Serializes the
|
|
9901
|
+
"""Serializes the UpdateAccountsMetastore into a shallow dictionary of its immediate attributes."""
|
|
9733
9902
|
body = {}
|
|
9734
9903
|
if self.delta_sharing_organization_name is not None:
|
|
9735
9904
|
body["delta_sharing_organization_name"] = self.delta_sharing_organization_name
|
|
@@ -9739,10 +9908,6 @@ class UpdateMetastore:
|
|
|
9739
9908
|
)
|
|
9740
9909
|
if self.delta_sharing_scope is not None:
|
|
9741
9910
|
body["delta_sharing_scope"] = self.delta_sharing_scope
|
|
9742
|
-
if self.id is not None:
|
|
9743
|
-
body["id"] = self.id
|
|
9744
|
-
if self.new_name is not None:
|
|
9745
|
-
body["new_name"] = self.new_name
|
|
9746
9911
|
if self.owner is not None:
|
|
9747
9912
|
body["owner"] = self.owner
|
|
9748
9913
|
if self.privilege_model_version is not None:
|
|
@@ -9752,22 +9917,157 @@ class UpdateMetastore:
|
|
|
9752
9917
|
return body
|
|
9753
9918
|
|
|
9754
9919
|
@classmethod
|
|
9755
|
-
def from_dict(cls, d: Dict[str, Any]) ->
|
|
9756
|
-
"""Deserializes the
|
|
9920
|
+
def from_dict(cls, d: Dict[str, Any]) -> UpdateAccountsMetastore:
|
|
9921
|
+
"""Deserializes the UpdateAccountsMetastore from a dictionary."""
|
|
9757
9922
|
return cls(
|
|
9758
9923
|
delta_sharing_organization_name=d.get("delta_sharing_organization_name", None),
|
|
9759
9924
|
delta_sharing_recipient_token_lifetime_in_seconds=d.get(
|
|
9760
9925
|
"delta_sharing_recipient_token_lifetime_in_seconds", None
|
|
9761
9926
|
),
|
|
9762
9927
|
delta_sharing_scope=_enum(d, "delta_sharing_scope", DeltaSharingScopeEnum),
|
|
9763
|
-
id=d.get("id", None),
|
|
9764
|
-
new_name=d.get("new_name", None),
|
|
9765
9928
|
owner=d.get("owner", None),
|
|
9766
9929
|
privilege_model_version=d.get("privilege_model_version", None),
|
|
9767
9930
|
storage_root_credential_id=d.get("storage_root_credential_id", None),
|
|
9768
9931
|
)
|
|
9769
9932
|
|
|
9770
9933
|
|
|
9934
|
+
@dataclass
|
|
9935
|
+
class UpdateAccountsStorageCredential:
|
|
9936
|
+
aws_iam_role: Optional[AwsIamRoleRequest] = None
|
|
9937
|
+
"""The AWS IAM role configuration."""
|
|
9938
|
+
|
|
9939
|
+
azure_managed_identity: Optional[AzureManagedIdentityResponse] = None
|
|
9940
|
+
"""The Azure managed identity configuration."""
|
|
9941
|
+
|
|
9942
|
+
azure_service_principal: Optional[AzureServicePrincipal] = None
|
|
9943
|
+
"""The Azure service principal configuration."""
|
|
9944
|
+
|
|
9945
|
+
cloudflare_api_token: Optional[CloudflareApiToken] = None
|
|
9946
|
+
"""The Cloudflare API token configuration."""
|
|
9947
|
+
|
|
9948
|
+
comment: Optional[str] = None
|
|
9949
|
+
"""Comment associated with the credential."""
|
|
9950
|
+
|
|
9951
|
+
databricks_gcp_service_account: Optional[DatabricksGcpServiceAccountRequest] = None
|
|
9952
|
+
"""The Databricks managed GCP service account configuration."""
|
|
9953
|
+
|
|
9954
|
+
isolation_mode: Optional[IsolationMode] = None
|
|
9955
|
+
"""Whether the current securable is accessible from all workspaces or a specific set of workspaces."""
|
|
9956
|
+
|
|
9957
|
+
owner: Optional[str] = None
|
|
9958
|
+
"""Username of current owner of credential."""
|
|
9959
|
+
|
|
9960
|
+
read_only: Optional[bool] = None
|
|
9961
|
+
"""Whether the credential is usable only for read operations. Only applicable when purpose is
|
|
9962
|
+
**STORAGE**."""
|
|
9963
|
+
|
|
9964
|
+
def as_dict(self) -> dict:
|
|
9965
|
+
"""Serializes the UpdateAccountsStorageCredential into a dictionary suitable for use as a JSON request body."""
|
|
9966
|
+
body = {}
|
|
9967
|
+
if self.aws_iam_role:
|
|
9968
|
+
body["aws_iam_role"] = self.aws_iam_role.as_dict()
|
|
9969
|
+
if self.azure_managed_identity:
|
|
9970
|
+
body["azure_managed_identity"] = self.azure_managed_identity.as_dict()
|
|
9971
|
+
if self.azure_service_principal:
|
|
9972
|
+
body["azure_service_principal"] = self.azure_service_principal.as_dict()
|
|
9973
|
+
if self.cloudflare_api_token:
|
|
9974
|
+
body["cloudflare_api_token"] = self.cloudflare_api_token.as_dict()
|
|
9975
|
+
if self.comment is not None:
|
|
9976
|
+
body["comment"] = self.comment
|
|
9977
|
+
if self.databricks_gcp_service_account:
|
|
9978
|
+
body["databricks_gcp_service_account"] = self.databricks_gcp_service_account.as_dict()
|
|
9979
|
+
if self.isolation_mode is not None:
|
|
9980
|
+
body["isolation_mode"] = self.isolation_mode.value
|
|
9981
|
+
if self.owner is not None:
|
|
9982
|
+
body["owner"] = self.owner
|
|
9983
|
+
if self.read_only is not None:
|
|
9984
|
+
body["read_only"] = self.read_only
|
|
9985
|
+
return body
|
|
9986
|
+
|
|
9987
|
+
def as_shallow_dict(self) -> dict:
|
|
9988
|
+
"""Serializes the UpdateAccountsStorageCredential into a shallow dictionary of its immediate attributes."""
|
|
9989
|
+
body = {}
|
|
9990
|
+
if self.aws_iam_role:
|
|
9991
|
+
body["aws_iam_role"] = self.aws_iam_role
|
|
9992
|
+
if self.azure_managed_identity:
|
|
9993
|
+
body["azure_managed_identity"] = self.azure_managed_identity
|
|
9994
|
+
if self.azure_service_principal:
|
|
9995
|
+
body["azure_service_principal"] = self.azure_service_principal
|
|
9996
|
+
if self.cloudflare_api_token:
|
|
9997
|
+
body["cloudflare_api_token"] = self.cloudflare_api_token
|
|
9998
|
+
if self.comment is not None:
|
|
9999
|
+
body["comment"] = self.comment
|
|
10000
|
+
if self.databricks_gcp_service_account:
|
|
10001
|
+
body["databricks_gcp_service_account"] = self.databricks_gcp_service_account
|
|
10002
|
+
if self.isolation_mode is not None:
|
|
10003
|
+
body["isolation_mode"] = self.isolation_mode
|
|
10004
|
+
if self.owner is not None:
|
|
10005
|
+
body["owner"] = self.owner
|
|
10006
|
+
if self.read_only is not None:
|
|
10007
|
+
body["read_only"] = self.read_only
|
|
10008
|
+
return body
|
|
10009
|
+
|
|
10010
|
+
@classmethod
|
|
10011
|
+
def from_dict(cls, d: Dict[str, Any]) -> UpdateAccountsStorageCredential:
|
|
10012
|
+
"""Deserializes the UpdateAccountsStorageCredential from a dictionary."""
|
|
10013
|
+
return cls(
|
|
10014
|
+
aws_iam_role=_from_dict(d, "aws_iam_role", AwsIamRoleRequest),
|
|
10015
|
+
azure_managed_identity=_from_dict(d, "azure_managed_identity", AzureManagedIdentityResponse),
|
|
10016
|
+
azure_service_principal=_from_dict(d, "azure_service_principal", AzureServicePrincipal),
|
|
10017
|
+
cloudflare_api_token=_from_dict(d, "cloudflare_api_token", CloudflareApiToken),
|
|
10018
|
+
comment=d.get("comment", None),
|
|
10019
|
+
databricks_gcp_service_account=_from_dict(
|
|
10020
|
+
d, "databricks_gcp_service_account", DatabricksGcpServiceAccountRequest
|
|
10021
|
+
),
|
|
10022
|
+
isolation_mode=_enum(d, "isolation_mode", IsolationMode),
|
|
10023
|
+
owner=d.get("owner", None),
|
|
10024
|
+
read_only=d.get("read_only", None),
|
|
10025
|
+
)
|
|
10026
|
+
|
|
10027
|
+
|
|
10028
|
+
@dataclass
|
|
10029
|
+
class UpdateAssignmentResponse:
|
|
10030
|
+
def as_dict(self) -> dict:
|
|
10031
|
+
"""Serializes the UpdateAssignmentResponse into a dictionary suitable for use as a JSON request body."""
|
|
10032
|
+
body = {}
|
|
10033
|
+
return body
|
|
10034
|
+
|
|
10035
|
+
def as_shallow_dict(self) -> dict:
|
|
10036
|
+
"""Serializes the UpdateAssignmentResponse into a shallow dictionary of its immediate attributes."""
|
|
10037
|
+
body = {}
|
|
10038
|
+
return body
|
|
10039
|
+
|
|
10040
|
+
@classmethod
|
|
10041
|
+
def from_dict(cls, d: Dict[str, Any]) -> UpdateAssignmentResponse:
|
|
10042
|
+
"""Deserializes the UpdateAssignmentResponse from a dictionary."""
|
|
10043
|
+
return cls()
|
|
10044
|
+
|
|
10045
|
+
|
|
10046
|
+
@dataclass
|
|
10047
|
+
class UpdateCatalogWorkspaceBindingsResponse:
|
|
10048
|
+
workspaces: Optional[List[int]] = None
|
|
10049
|
+
"""A list of workspace IDs"""
|
|
10050
|
+
|
|
10051
|
+
def as_dict(self) -> dict:
|
|
10052
|
+
"""Serializes the UpdateCatalogWorkspaceBindingsResponse into a dictionary suitable for use as a JSON request body."""
|
|
10053
|
+
body = {}
|
|
10054
|
+
if self.workspaces:
|
|
10055
|
+
body["workspaces"] = [v for v in self.workspaces]
|
|
10056
|
+
return body
|
|
10057
|
+
|
|
10058
|
+
def as_shallow_dict(self) -> dict:
|
|
10059
|
+
"""Serializes the UpdateCatalogWorkspaceBindingsResponse into a shallow dictionary of its immediate attributes."""
|
|
10060
|
+
body = {}
|
|
10061
|
+
if self.workspaces:
|
|
10062
|
+
body["workspaces"] = self.workspaces
|
|
10063
|
+
return body
|
|
10064
|
+
|
|
10065
|
+
@classmethod
|
|
10066
|
+
def from_dict(cls, d: Dict[str, Any]) -> UpdateCatalogWorkspaceBindingsResponse:
|
|
10067
|
+
"""Deserializes the UpdateCatalogWorkspaceBindingsResponse from a dictionary."""
|
|
10068
|
+
return cls(workspaces=d.get("workspaces", None))
|
|
10069
|
+
|
|
10070
|
+
|
|
9771
10071
|
@dataclass
|
|
9772
10072
|
class UpdateMetastoreAssignment:
|
|
9773
10073
|
default_catalog_name: Optional[str] = None
|
|
@@ -9860,184 +10160,58 @@ class UpdateRequestExternalLineage:
|
|
|
9860
10160
|
if self.columns:
|
|
9861
10161
|
body["columns"] = [v.as_dict() for v in self.columns]
|
|
9862
10162
|
if self.id is not None:
|
|
9863
|
-
body["id"] = self.id
|
|
9864
|
-
if self.properties:
|
|
9865
|
-
body["properties"] = self.properties
|
|
9866
|
-
if self.source:
|
|
9867
|
-
body["source"] = self.source.as_dict()
|
|
9868
|
-
if self.target:
|
|
9869
|
-
body["target"] = self.target.as_dict()
|
|
9870
|
-
return body
|
|
9871
|
-
|
|
9872
|
-
def as_shallow_dict(self) -> dict:
|
|
9873
|
-
"""Serializes the UpdateRequestExternalLineage into a shallow dictionary of its immediate attributes."""
|
|
9874
|
-
body = {}
|
|
9875
|
-
if self.columns:
|
|
9876
|
-
body["columns"] = self.columns
|
|
9877
|
-
if self.id is not None:
|
|
9878
|
-
body["id"] = self.id
|
|
9879
|
-
if self.properties:
|
|
9880
|
-
body["properties"] = self.properties
|
|
9881
|
-
if self.source:
|
|
9882
|
-
body["source"] = self.source
|
|
9883
|
-
if self.target:
|
|
9884
|
-
body["target"] = self.target
|
|
9885
|
-
return body
|
|
9886
|
-
|
|
9887
|
-
@classmethod
|
|
9888
|
-
def from_dict(cls, d: Dict[str, Any]) -> UpdateRequestExternalLineage:
|
|
9889
|
-
"""Deserializes the UpdateRequestExternalLineage from a dictionary."""
|
|
9890
|
-
return cls(
|
|
9891
|
-
columns=_repeated_dict(d, "columns", ColumnRelationship),
|
|
9892
|
-
id=d.get("id", None),
|
|
9893
|
-
properties=d.get("properties", None),
|
|
9894
|
-
source=_from_dict(d, "source", ExternalLineageObject),
|
|
9895
|
-
target=_from_dict(d, "target", ExternalLineageObject),
|
|
9896
|
-
)
|
|
9897
|
-
|
|
9898
|
-
|
|
9899
|
-
@dataclass
|
|
9900
|
-
class UpdateResponse:
|
|
9901
|
-
def as_dict(self) -> dict:
|
|
9902
|
-
"""Serializes the UpdateResponse into a dictionary suitable for use as a JSON request body."""
|
|
9903
|
-
body = {}
|
|
9904
|
-
return body
|
|
9905
|
-
|
|
9906
|
-
def as_shallow_dict(self) -> dict:
|
|
9907
|
-
"""Serializes the UpdateResponse into a shallow dictionary of its immediate attributes."""
|
|
9908
|
-
body = {}
|
|
9909
|
-
return body
|
|
9910
|
-
|
|
9911
|
-
@classmethod
|
|
9912
|
-
def from_dict(cls, d: Dict[str, Any]) -> UpdateResponse:
|
|
9913
|
-
"""Deserializes the UpdateResponse from a dictionary."""
|
|
9914
|
-
return cls()
|
|
9915
|
-
|
|
9916
|
-
|
|
9917
|
-
@dataclass
|
|
9918
|
-
class UpdateStorageCredential:
|
|
9919
|
-
aws_iam_role: Optional[AwsIamRoleRequest] = None
|
|
9920
|
-
"""The AWS IAM role configuration."""
|
|
9921
|
-
|
|
9922
|
-
azure_managed_identity: Optional[AzureManagedIdentityResponse] = None
|
|
9923
|
-
"""The Azure managed identity configuration."""
|
|
9924
|
-
|
|
9925
|
-
azure_service_principal: Optional[AzureServicePrincipal] = None
|
|
9926
|
-
"""The Azure service principal configuration."""
|
|
9927
|
-
|
|
9928
|
-
cloudflare_api_token: Optional[CloudflareApiToken] = None
|
|
9929
|
-
"""The Cloudflare API token configuration."""
|
|
9930
|
-
|
|
9931
|
-
comment: Optional[str] = None
|
|
9932
|
-
"""Comment associated with the credential."""
|
|
9933
|
-
|
|
9934
|
-
databricks_gcp_service_account: Optional[DatabricksGcpServiceAccountRequest] = None
|
|
9935
|
-
"""The Databricks managed GCP service account configuration."""
|
|
9936
|
-
|
|
9937
|
-
force: Optional[bool] = None
|
|
9938
|
-
"""Force update even if there are dependent external locations or external tables."""
|
|
9939
|
-
|
|
9940
|
-
isolation_mode: Optional[IsolationMode] = None
|
|
9941
|
-
"""Whether the current securable is accessible from all workspaces or a specific set of workspaces."""
|
|
9942
|
-
|
|
9943
|
-
name: Optional[str] = None
|
|
9944
|
-
"""Name of the storage credential."""
|
|
9945
|
-
|
|
9946
|
-
new_name: Optional[str] = None
|
|
9947
|
-
"""New name for the storage credential."""
|
|
10163
|
+
body["id"] = self.id
|
|
10164
|
+
if self.properties:
|
|
10165
|
+
body["properties"] = self.properties
|
|
10166
|
+
if self.source:
|
|
10167
|
+
body["source"] = self.source.as_dict()
|
|
10168
|
+
if self.target:
|
|
10169
|
+
body["target"] = self.target.as_dict()
|
|
10170
|
+
return body
|
|
9948
10171
|
|
|
9949
|
-
|
|
9950
|
-
|
|
10172
|
+
def as_shallow_dict(self) -> dict:
|
|
10173
|
+
"""Serializes the UpdateRequestExternalLineage into a shallow dictionary of its immediate attributes."""
|
|
10174
|
+
body = {}
|
|
10175
|
+
if self.columns:
|
|
10176
|
+
body["columns"] = self.columns
|
|
10177
|
+
if self.id is not None:
|
|
10178
|
+
body["id"] = self.id
|
|
10179
|
+
if self.properties:
|
|
10180
|
+
body["properties"] = self.properties
|
|
10181
|
+
if self.source:
|
|
10182
|
+
body["source"] = self.source
|
|
10183
|
+
if self.target:
|
|
10184
|
+
body["target"] = self.target
|
|
10185
|
+
return body
|
|
9951
10186
|
|
|
9952
|
-
|
|
9953
|
-
|
|
9954
|
-
|
|
10187
|
+
@classmethod
|
|
10188
|
+
def from_dict(cls, d: Dict[str, Any]) -> UpdateRequestExternalLineage:
|
|
10189
|
+
"""Deserializes the UpdateRequestExternalLineage from a dictionary."""
|
|
10190
|
+
return cls(
|
|
10191
|
+
columns=_repeated_dict(d, "columns", ColumnRelationship),
|
|
10192
|
+
id=d.get("id", None),
|
|
10193
|
+
properties=d.get("properties", None),
|
|
10194
|
+
source=_from_dict(d, "source", ExternalLineageObject),
|
|
10195
|
+
target=_from_dict(d, "target", ExternalLineageObject),
|
|
10196
|
+
)
|
|
9955
10197
|
|
|
9956
|
-
skip_validation: Optional[bool] = None
|
|
9957
|
-
"""Supplying true to this argument skips validation of the updated credential."""
|
|
9958
10198
|
|
|
10199
|
+
@dataclass
|
|
10200
|
+
class UpdateResponse:
|
|
9959
10201
|
def as_dict(self) -> dict:
|
|
9960
|
-
"""Serializes the
|
|
10202
|
+
"""Serializes the UpdateResponse into a dictionary suitable for use as a JSON request body."""
|
|
9961
10203
|
body = {}
|
|
9962
|
-
if self.aws_iam_role:
|
|
9963
|
-
body["aws_iam_role"] = self.aws_iam_role.as_dict()
|
|
9964
|
-
if self.azure_managed_identity:
|
|
9965
|
-
body["azure_managed_identity"] = self.azure_managed_identity.as_dict()
|
|
9966
|
-
if self.azure_service_principal:
|
|
9967
|
-
body["azure_service_principal"] = self.azure_service_principal.as_dict()
|
|
9968
|
-
if self.cloudflare_api_token:
|
|
9969
|
-
body["cloudflare_api_token"] = self.cloudflare_api_token.as_dict()
|
|
9970
|
-
if self.comment is not None:
|
|
9971
|
-
body["comment"] = self.comment
|
|
9972
|
-
if self.databricks_gcp_service_account:
|
|
9973
|
-
body["databricks_gcp_service_account"] = self.databricks_gcp_service_account.as_dict()
|
|
9974
|
-
if self.force is not None:
|
|
9975
|
-
body["force"] = self.force
|
|
9976
|
-
if self.isolation_mode is not None:
|
|
9977
|
-
body["isolation_mode"] = self.isolation_mode.value
|
|
9978
|
-
if self.name is not None:
|
|
9979
|
-
body["name"] = self.name
|
|
9980
|
-
if self.new_name is not None:
|
|
9981
|
-
body["new_name"] = self.new_name
|
|
9982
|
-
if self.owner is not None:
|
|
9983
|
-
body["owner"] = self.owner
|
|
9984
|
-
if self.read_only is not None:
|
|
9985
|
-
body["read_only"] = self.read_only
|
|
9986
|
-
if self.skip_validation is not None:
|
|
9987
|
-
body["skip_validation"] = self.skip_validation
|
|
9988
10204
|
return body
|
|
9989
10205
|
|
|
9990
10206
|
def as_shallow_dict(self) -> dict:
|
|
9991
|
-
"""Serializes the
|
|
10207
|
+
"""Serializes the UpdateResponse into a shallow dictionary of its immediate attributes."""
|
|
9992
10208
|
body = {}
|
|
9993
|
-
if self.aws_iam_role:
|
|
9994
|
-
body["aws_iam_role"] = self.aws_iam_role
|
|
9995
|
-
if self.azure_managed_identity:
|
|
9996
|
-
body["azure_managed_identity"] = self.azure_managed_identity
|
|
9997
|
-
if self.azure_service_principal:
|
|
9998
|
-
body["azure_service_principal"] = self.azure_service_principal
|
|
9999
|
-
if self.cloudflare_api_token:
|
|
10000
|
-
body["cloudflare_api_token"] = self.cloudflare_api_token
|
|
10001
|
-
if self.comment is not None:
|
|
10002
|
-
body["comment"] = self.comment
|
|
10003
|
-
if self.databricks_gcp_service_account:
|
|
10004
|
-
body["databricks_gcp_service_account"] = self.databricks_gcp_service_account
|
|
10005
|
-
if self.force is not None:
|
|
10006
|
-
body["force"] = self.force
|
|
10007
|
-
if self.isolation_mode is not None:
|
|
10008
|
-
body["isolation_mode"] = self.isolation_mode
|
|
10009
|
-
if self.name is not None:
|
|
10010
|
-
body["name"] = self.name
|
|
10011
|
-
if self.new_name is not None:
|
|
10012
|
-
body["new_name"] = self.new_name
|
|
10013
|
-
if self.owner is not None:
|
|
10014
|
-
body["owner"] = self.owner
|
|
10015
|
-
if self.read_only is not None:
|
|
10016
|
-
body["read_only"] = self.read_only
|
|
10017
|
-
if self.skip_validation is not None:
|
|
10018
|
-
body["skip_validation"] = self.skip_validation
|
|
10019
10209
|
return body
|
|
10020
10210
|
|
|
10021
10211
|
@classmethod
|
|
10022
|
-
def from_dict(cls, d: Dict[str, Any]) ->
|
|
10023
|
-
"""Deserializes the
|
|
10024
|
-
return cls(
|
|
10025
|
-
aws_iam_role=_from_dict(d, "aws_iam_role", AwsIamRoleRequest),
|
|
10026
|
-
azure_managed_identity=_from_dict(d, "azure_managed_identity", AzureManagedIdentityResponse),
|
|
10027
|
-
azure_service_principal=_from_dict(d, "azure_service_principal", AzureServicePrincipal),
|
|
10028
|
-
cloudflare_api_token=_from_dict(d, "cloudflare_api_token", CloudflareApiToken),
|
|
10029
|
-
comment=d.get("comment", None),
|
|
10030
|
-
databricks_gcp_service_account=_from_dict(
|
|
10031
|
-
d, "databricks_gcp_service_account", DatabricksGcpServiceAccountRequest
|
|
10032
|
-
),
|
|
10033
|
-
force=d.get("force", None),
|
|
10034
|
-
isolation_mode=_enum(d, "isolation_mode", IsolationMode),
|
|
10035
|
-
name=d.get("name", None),
|
|
10036
|
-
new_name=d.get("new_name", None),
|
|
10037
|
-
owner=d.get("owner", None),
|
|
10038
|
-
read_only=d.get("read_only", None),
|
|
10039
|
-
skip_validation=d.get("skip_validation", None),
|
|
10040
|
-
)
|
|
10212
|
+
def from_dict(cls, d: Dict[str, Any]) -> UpdateResponse:
|
|
10213
|
+
"""Deserializes the UpdateResponse from a dictionary."""
|
|
10214
|
+
return cls()
|
|
10041
10215
|
|
|
10042
10216
|
|
|
10043
10217
|
@dataclass
|
|
@@ -10415,7 +10589,7 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10415
10589
|
|
|
10416
10590
|
def create(
|
|
10417
10591
|
self, workspace_id: int, metastore_id: str, *, metastore_assignment: Optional[CreateMetastoreAssignment] = None
|
|
10418
|
-
):
|
|
10592
|
+
) -> AccountsCreateMetastoreAssignmentResponse:
|
|
10419
10593
|
"""Creates an assignment to a metastore for a workspace
|
|
10420
10594
|
|
|
10421
10595
|
:param workspace_id: int
|
|
@@ -10424,7 +10598,7 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10424
10598
|
Unity Catalog metastore ID
|
|
10425
10599
|
:param metastore_assignment: :class:`CreateMetastoreAssignment` (optional)
|
|
10426
10600
|
|
|
10427
|
-
|
|
10601
|
+
:returns: :class:`AccountsCreateMetastoreAssignmentResponse`
|
|
10428
10602
|
"""
|
|
10429
10603
|
body = {}
|
|
10430
10604
|
if metastore_assignment is not None:
|
|
@@ -10434,14 +10608,15 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10434
10608
|
"Content-Type": "application/json",
|
|
10435
10609
|
}
|
|
10436
10610
|
|
|
10437
|
-
self._api.do(
|
|
10611
|
+
res = self._api.do(
|
|
10438
10612
|
"POST",
|
|
10439
10613
|
f"/api/2.0/accounts/{self._api.account_id}/workspaces/{workspace_id}/metastores/{metastore_id}",
|
|
10440
10614
|
body=body,
|
|
10441
10615
|
headers=headers,
|
|
10442
10616
|
)
|
|
10617
|
+
return AccountsCreateMetastoreAssignmentResponse.from_dict(res)
|
|
10443
10618
|
|
|
10444
|
-
def delete(self, workspace_id: int, metastore_id: str):
|
|
10619
|
+
def delete(self, workspace_id: int, metastore_id: str) -> AccountsDeleteMetastoreAssignmentResponse:
|
|
10445
10620
|
"""Deletes a metastore assignment to a workspace, leaving the workspace with no metastore.
|
|
10446
10621
|
|
|
10447
10622
|
:param workspace_id: int
|
|
@@ -10449,23 +10624,24 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10449
10624
|
:param metastore_id: str
|
|
10450
10625
|
Unity Catalog metastore ID
|
|
10451
10626
|
|
|
10452
|
-
|
|
10627
|
+
:returns: :class:`AccountsDeleteMetastoreAssignmentResponse`
|
|
10453
10628
|
"""
|
|
10454
10629
|
|
|
10455
10630
|
headers = {
|
|
10456
10631
|
"Accept": "application/json",
|
|
10457
10632
|
}
|
|
10458
10633
|
|
|
10459
|
-
self._api.do(
|
|
10634
|
+
res = self._api.do(
|
|
10460
10635
|
"DELETE",
|
|
10461
10636
|
f"/api/2.0/accounts/{self._api.account_id}/workspaces/{workspace_id}/metastores/{metastore_id}",
|
|
10462
10637
|
headers=headers,
|
|
10463
10638
|
)
|
|
10639
|
+
return AccountsDeleteMetastoreAssignmentResponse.from_dict(res)
|
|
10464
10640
|
|
|
10465
10641
|
def get(self, workspace_id: int) -> AccountsMetastoreAssignment:
|
|
10466
10642
|
"""Gets the metastore assignment, if any, for the workspace specified by ID. If the workspace is assigned
|
|
10467
|
-
a metastore, the
|
|
10468
|
-
will not be found and a 404 returned.
|
|
10643
|
+
a metastore, the mapping will be returned. If no metastore is assigned to the workspace, the
|
|
10644
|
+
assignment will not be found and a 404 returned.
|
|
10469
10645
|
|
|
10470
10646
|
:param workspace_id: int
|
|
10471
10647
|
Workspace ID.
|
|
@@ -10503,7 +10679,7 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10503
10679
|
|
|
10504
10680
|
def update(
|
|
10505
10681
|
self, workspace_id: int, metastore_id: str, *, metastore_assignment: Optional[UpdateMetastoreAssignment] = None
|
|
10506
|
-
):
|
|
10682
|
+
) -> AccountsUpdateMetastoreAssignmentResponse:
|
|
10507
10683
|
"""Updates an assignment to a metastore for a workspace. Currently, only the default catalog may be
|
|
10508
10684
|
updated.
|
|
10509
10685
|
|
|
@@ -10513,7 +10689,7 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10513
10689
|
Unity Catalog metastore ID
|
|
10514
10690
|
:param metastore_assignment: :class:`UpdateMetastoreAssignment` (optional)
|
|
10515
10691
|
|
|
10516
|
-
|
|
10692
|
+
:returns: :class:`AccountsUpdateMetastoreAssignmentResponse`
|
|
10517
10693
|
"""
|
|
10518
10694
|
body = {}
|
|
10519
10695
|
if metastore_assignment is not None:
|
|
@@ -10523,12 +10699,13 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10523
10699
|
"Content-Type": "application/json",
|
|
10524
10700
|
}
|
|
10525
10701
|
|
|
10526
|
-
self._api.do(
|
|
10702
|
+
res = self._api.do(
|
|
10527
10703
|
"PUT",
|
|
10528
10704
|
f"/api/2.0/accounts/{self._api.account_id}/workspaces/{workspace_id}/metastores/{metastore_id}",
|
|
10529
10705
|
body=body,
|
|
10530
10706
|
headers=headers,
|
|
10531
10707
|
)
|
|
10708
|
+
return AccountsUpdateMetastoreAssignmentResponse.from_dict(res)
|
|
10532
10709
|
|
|
10533
10710
|
|
|
10534
10711
|
class AccountMetastoresAPI:
|
|
@@ -10538,12 +10715,12 @@ class AccountMetastoresAPI:
|
|
|
10538
10715
|
def __init__(self, api_client):
|
|
10539
10716
|
self._api = api_client
|
|
10540
10717
|
|
|
10541
|
-
def create(self, *, metastore_info: Optional[
|
|
10718
|
+
def create(self, *, metastore_info: Optional[CreateAccountsMetastore] = None) -> AccountsCreateMetastoreResponse:
|
|
10542
10719
|
"""Creates a Unity Catalog metastore.
|
|
10543
10720
|
|
|
10544
|
-
:param metastore_info: :class:`
|
|
10721
|
+
:param metastore_info: :class:`CreateAccountsMetastore` (optional)
|
|
10545
10722
|
|
|
10546
|
-
:returns: :class:`
|
|
10723
|
+
:returns: :class:`AccountsCreateMetastoreResponse`
|
|
10547
10724
|
"""
|
|
10548
10725
|
body = {}
|
|
10549
10726
|
if metastore_info is not None:
|
|
@@ -10554,9 +10731,9 @@ class AccountMetastoresAPI:
|
|
|
10554
10731
|
}
|
|
10555
10732
|
|
|
10556
10733
|
res = self._api.do("POST", f"/api/2.0/accounts/{self._api.account_id}/metastores", body=body, headers=headers)
|
|
10557
|
-
return
|
|
10734
|
+
return AccountsCreateMetastoreResponse.from_dict(res)
|
|
10558
10735
|
|
|
10559
|
-
def delete(self, metastore_id: str, *, force: Optional[bool] = None):
|
|
10736
|
+
def delete(self, metastore_id: str, *, force: Optional[bool] = None) -> AccountsDeleteMetastoreResponse:
|
|
10560
10737
|
"""Deletes a Unity Catalog metastore for an account, both specified by ID.
|
|
10561
10738
|
|
|
10562
10739
|
:param metastore_id: str
|
|
@@ -10564,7 +10741,7 @@ class AccountMetastoresAPI:
|
|
|
10564
10741
|
:param force: bool (optional)
|
|
10565
10742
|
Force deletion even if the metastore is not empty. Default is false.
|
|
10566
10743
|
|
|
10567
|
-
|
|
10744
|
+
:returns: :class:`AccountsDeleteMetastoreResponse`
|
|
10568
10745
|
"""
|
|
10569
10746
|
|
|
10570
10747
|
query = {}
|
|
@@ -10574,20 +10751,21 @@ class AccountMetastoresAPI:
|
|
|
10574
10751
|
"Accept": "application/json",
|
|
10575
10752
|
}
|
|
10576
10753
|
|
|
10577
|
-
self._api.do(
|
|
10754
|
+
res = self._api.do(
|
|
10578
10755
|
"DELETE",
|
|
10579
10756
|
f"/api/2.0/accounts/{self._api.account_id}/metastores/{metastore_id}",
|
|
10580
10757
|
query=query,
|
|
10581
10758
|
headers=headers,
|
|
10582
10759
|
)
|
|
10760
|
+
return AccountsDeleteMetastoreResponse.from_dict(res)
|
|
10583
10761
|
|
|
10584
|
-
def get(self, metastore_id: str) ->
|
|
10762
|
+
def get(self, metastore_id: str) -> AccountsGetMetastoreResponse:
|
|
10585
10763
|
"""Gets a Unity Catalog metastore from an account, both specified by ID.
|
|
10586
10764
|
|
|
10587
10765
|
:param metastore_id: str
|
|
10588
10766
|
Unity Catalog metastore ID
|
|
10589
10767
|
|
|
10590
|
-
:returns: :class:`
|
|
10768
|
+
:returns: :class:`AccountsGetMetastoreResponse`
|
|
10591
10769
|
"""
|
|
10592
10770
|
|
|
10593
10771
|
headers = {
|
|
@@ -10597,7 +10775,7 @@ class AccountMetastoresAPI:
|
|
|
10597
10775
|
res = self._api.do(
|
|
10598
10776
|
"GET", f"/api/2.0/accounts/{self._api.account_id}/metastores/{metastore_id}", headers=headers
|
|
10599
10777
|
)
|
|
10600
|
-
return
|
|
10778
|
+
return AccountsGetMetastoreResponse.from_dict(res)
|
|
10601
10779
|
|
|
10602
10780
|
def list(self) -> Iterator[MetastoreInfo]:
|
|
10603
10781
|
"""Gets all Unity Catalog metastores associated with an account specified by ID.
|
|
@@ -10611,17 +10789,20 @@ class AccountMetastoresAPI:
|
|
|
10611
10789
|
}
|
|
10612
10790
|
|
|
10613
10791
|
json = self._api.do("GET", f"/api/2.0/accounts/{self._api.account_id}/metastores", headers=headers)
|
|
10614
|
-
parsed =
|
|
10792
|
+
parsed = AccountsListMetastoresResponse.from_dict(json).metastores
|
|
10615
10793
|
return parsed if parsed is not None else []
|
|
10616
10794
|
|
|
10617
|
-
def update(
|
|
10795
|
+
def update(
|
|
10796
|
+
self, metastore_id: str, *, metastore_info: Optional[UpdateAccountsMetastore] = None
|
|
10797
|
+
) -> AccountsUpdateMetastoreResponse:
|
|
10618
10798
|
"""Updates an existing Unity Catalog metastore.
|
|
10619
10799
|
|
|
10620
10800
|
:param metastore_id: str
|
|
10621
10801
|
Unity Catalog metastore ID
|
|
10622
|
-
:param metastore_info: :class:`
|
|
10802
|
+
:param metastore_info: :class:`UpdateAccountsMetastore` (optional)
|
|
10803
|
+
Properties of the metastore to change.
|
|
10623
10804
|
|
|
10624
|
-
:returns: :class:`
|
|
10805
|
+
:returns: :class:`AccountsUpdateMetastoreResponse`
|
|
10625
10806
|
"""
|
|
10626
10807
|
body = {}
|
|
10627
10808
|
if metastore_info is not None:
|
|
@@ -10634,7 +10815,7 @@ class AccountMetastoresAPI:
|
|
|
10634
10815
|
res = self._api.do(
|
|
10635
10816
|
"PUT", f"/api/2.0/accounts/{self._api.account_id}/metastores/{metastore_id}", body=body, headers=headers
|
|
10636
10817
|
)
|
|
10637
|
-
return
|
|
10818
|
+
return AccountsUpdateMetastoreResponse.from_dict(res)
|
|
10638
10819
|
|
|
10639
10820
|
|
|
10640
10821
|
class AccountStorageCredentialsAPI:
|
|
@@ -10644,25 +10825,33 @@ class AccountStorageCredentialsAPI:
|
|
|
10644
10825
|
self._api = api_client
|
|
10645
10826
|
|
|
10646
10827
|
def create(
|
|
10647
|
-
self,
|
|
10648
|
-
|
|
10649
|
-
|
|
10650
|
-
|
|
10651
|
-
|
|
10652
|
-
|
|
10828
|
+
self,
|
|
10829
|
+
metastore_id: str,
|
|
10830
|
+
*,
|
|
10831
|
+
credential_info: Optional[CreateAccountsStorageCredential] = None,
|
|
10832
|
+
skip_validation: Optional[bool] = None,
|
|
10833
|
+
) -> AccountsCreateStorageCredentialInfo:
|
|
10834
|
+
"""Creates a new storage credential. The request object is specific to the cloud: - **AwsIamRole** for
|
|
10835
|
+
AWS credentials - **AzureServicePrincipal** for Azure credentials - **GcpServiceAccountKey** for GCP
|
|
10836
|
+
credentials
|
|
10653
10837
|
|
|
10654
|
-
The caller must be a metastore admin and have the
|
|
10838
|
+
The caller must be a metastore admin and have the `CREATE_STORAGE_CREDENTIAL` privilege on the
|
|
10655
10839
|
metastore.
|
|
10656
10840
|
|
|
10657
10841
|
:param metastore_id: str
|
|
10658
10842
|
Unity Catalog metastore ID
|
|
10659
|
-
:param credential_info: :class:`
|
|
10843
|
+
:param credential_info: :class:`CreateAccountsStorageCredential` (optional)
|
|
10844
|
+
:param skip_validation: bool (optional)
|
|
10845
|
+
Optional, default false. Supplying true to this argument skips validation of the created set of
|
|
10846
|
+
credentials.
|
|
10660
10847
|
|
|
10661
|
-
:returns: :class:`
|
|
10848
|
+
:returns: :class:`AccountsCreateStorageCredentialInfo`
|
|
10662
10849
|
"""
|
|
10663
10850
|
body = {}
|
|
10664
10851
|
if credential_info is not None:
|
|
10665
10852
|
body["credential_info"] = credential_info.as_dict()
|
|
10853
|
+
if skip_validation is not None:
|
|
10854
|
+
body["skip_validation"] = skip_validation
|
|
10666
10855
|
headers = {
|
|
10667
10856
|
"Accept": "application/json",
|
|
10668
10857
|
"Content-Type": "application/json",
|
|
@@ -10674,9 +10863,11 @@ class AccountStorageCredentialsAPI:
|
|
|
10674
10863
|
body=body,
|
|
10675
10864
|
headers=headers,
|
|
10676
10865
|
)
|
|
10677
|
-
return
|
|
10866
|
+
return AccountsCreateStorageCredentialInfo.from_dict(res)
|
|
10678
10867
|
|
|
10679
|
-
def delete(
|
|
10868
|
+
def delete(
|
|
10869
|
+
self, metastore_id: str, storage_credential_name: str, *, force: Optional[bool] = None
|
|
10870
|
+
) -> AccountsDeleteStorageCredentialResponse:
|
|
10680
10871
|
"""Deletes a storage credential from the metastore. The caller must be an owner of the storage
|
|
10681
10872
|
credential.
|
|
10682
10873
|
|
|
@@ -10687,7 +10878,7 @@ class AccountStorageCredentialsAPI:
|
|
|
10687
10878
|
:param force: bool (optional)
|
|
10688
10879
|
Force deletion even if the Storage Credential is not empty. Default is false.
|
|
10689
10880
|
|
|
10690
|
-
|
|
10881
|
+
:returns: :class:`AccountsDeleteStorageCredentialResponse`
|
|
10691
10882
|
"""
|
|
10692
10883
|
|
|
10693
10884
|
query = {}
|
|
@@ -10697,12 +10888,13 @@ class AccountStorageCredentialsAPI:
|
|
|
10697
10888
|
"Accept": "application/json",
|
|
10698
10889
|
}
|
|
10699
10890
|
|
|
10700
|
-
self._api.do(
|
|
10891
|
+
res = self._api.do(
|
|
10701
10892
|
"DELETE",
|
|
10702
10893
|
f"/api/2.0/accounts/{self._api.account_id}/metastores/{metastore_id}/storage-credentials/{storage_credential_name}",
|
|
10703
10894
|
query=query,
|
|
10704
10895
|
headers=headers,
|
|
10705
10896
|
)
|
|
10897
|
+
return AccountsDeleteStorageCredentialResponse.from_dict(res)
|
|
10706
10898
|
|
|
10707
10899
|
def get(self, metastore_id: str, storage_credential_name: str) -> AccountsStorageCredentialInfo:
|
|
10708
10900
|
"""Gets a storage credential from the metastore. The caller must be a metastore admin, the owner of the
|
|
@@ -10711,7 +10903,7 @@ class AccountStorageCredentialsAPI:
|
|
|
10711
10903
|
:param metastore_id: str
|
|
10712
10904
|
Unity Catalog metastore ID
|
|
10713
10905
|
:param storage_credential_name: str
|
|
10714
|
-
Name of the storage credential.
|
|
10906
|
+
Required. Name of the storage credential.
|
|
10715
10907
|
|
|
10716
10908
|
:returns: :class:`AccountsStorageCredentialInfo`
|
|
10717
10909
|
"""
|
|
@@ -10753,22 +10945,27 @@ class AccountStorageCredentialsAPI:
|
|
|
10753
10945
|
metastore_id: str,
|
|
10754
10946
|
storage_credential_name: str,
|
|
10755
10947
|
*,
|
|
10756
|
-
credential_info: Optional[
|
|
10757
|
-
|
|
10948
|
+
credential_info: Optional[UpdateAccountsStorageCredential] = None,
|
|
10949
|
+
skip_validation: Optional[bool] = None,
|
|
10950
|
+
) -> AccountsUpdateStorageCredentialResponse:
|
|
10758
10951
|
"""Updates a storage credential on the metastore. The caller must be the owner of the storage credential.
|
|
10759
|
-
If the caller is a metastore admin, only the
|
|
10952
|
+
If the caller is a metastore admin, only the **owner** credential can be changed.
|
|
10760
10953
|
|
|
10761
10954
|
:param metastore_id: str
|
|
10762
10955
|
Unity Catalog metastore ID
|
|
10763
10956
|
:param storage_credential_name: str
|
|
10764
10957
|
Name of the storage credential.
|
|
10765
|
-
:param credential_info: :class:`
|
|
10958
|
+
:param credential_info: :class:`UpdateAccountsStorageCredential` (optional)
|
|
10959
|
+
:param skip_validation: bool (optional)
|
|
10960
|
+
Optional. Supplying true to this argument skips validation of the updated set of credentials.
|
|
10766
10961
|
|
|
10767
|
-
:returns: :class:`
|
|
10962
|
+
:returns: :class:`AccountsUpdateStorageCredentialResponse`
|
|
10768
10963
|
"""
|
|
10769
10964
|
body = {}
|
|
10770
10965
|
if credential_info is not None:
|
|
10771
10966
|
body["credential_info"] = credential_info.as_dict()
|
|
10967
|
+
if skip_validation is not None:
|
|
10968
|
+
body["skip_validation"] = skip_validation
|
|
10772
10969
|
headers = {
|
|
10773
10970
|
"Accept": "application/json",
|
|
10774
10971
|
"Content-Type": "application/json",
|
|
@@ -10780,7 +10977,7 @@ class AccountStorageCredentialsAPI:
|
|
|
10780
10977
|
body=body,
|
|
10781
10978
|
headers=headers,
|
|
10782
10979
|
)
|
|
10783
|
-
return
|
|
10980
|
+
return AccountsUpdateStorageCredentialResponse.from_dict(res)
|
|
10784
10981
|
|
|
10785
10982
|
|
|
10786
10983
|
class ArtifactAllowlistsAPI:
|
|
@@ -10973,6 +11170,7 @@ class CatalogsAPI:
|
|
|
10973
11170
|
self,
|
|
10974
11171
|
*,
|
|
10975
11172
|
include_browse: Optional[bool] = None,
|
|
11173
|
+
include_unbound: Optional[bool] = None,
|
|
10976
11174
|
max_results: Optional[int] = None,
|
|
10977
11175
|
page_token: Optional[str] = None,
|
|
10978
11176
|
) -> Iterator[CatalogInfo]:
|
|
@@ -10981,9 +11179,20 @@ class CatalogsAPI:
|
|
|
10981
11179
|
**USE_CATALOG** privilege) will be retrieved. There is no guarantee of a specific ordering of the
|
|
10982
11180
|
elements in the array.
|
|
10983
11181
|
|
|
11182
|
+
NOTE: we recommend using max_results=0 to use the paginated version of this API. Unpaginated calls
|
|
11183
|
+
will be deprecated soon.
|
|
11184
|
+
|
|
11185
|
+
PAGINATION BEHAVIOR: When using pagination (max_results >= 0), a page may contain zero results while
|
|
11186
|
+
still providing a next_page_token. Clients must continue reading pages until next_page_token is
|
|
11187
|
+
absent, which is the only indication that the end of results has been reached. This behavior follows
|
|
11188
|
+
Google AIP-158 guidelines.
|
|
11189
|
+
|
|
10984
11190
|
:param include_browse: bool (optional)
|
|
10985
11191
|
Whether to include catalogs in the response for which the principal can only access selective
|
|
10986
11192
|
metadata for
|
|
11193
|
+
:param include_unbound: bool (optional)
|
|
11194
|
+
Whether to include catalogs not bound to the workspace. Effective only if the user has permission to
|
|
11195
|
+
update the catalog–workspace binding.
|
|
10987
11196
|
:param max_results: int (optional)
|
|
10988
11197
|
Maximum number of catalogs to return. - when set to 0, the page length is set to a server configured
|
|
10989
11198
|
value (recommended); - when set to a value greater than 0, the page length is the minimum of this
|
|
@@ -11001,6 +11210,8 @@ class CatalogsAPI:
|
|
|
11001
11210
|
query = {}
|
|
11002
11211
|
if include_browse is not None:
|
|
11003
11212
|
query["include_browse"] = include_browse
|
|
11213
|
+
if include_unbound is not None:
|
|
11214
|
+
query["include_unbound"] = include_unbound
|
|
11004
11215
|
if max_results is not None:
|
|
11005
11216
|
query["max_results"] = max_results
|
|
11006
11217
|
if page_token is not None:
|
|
@@ -11174,6 +11385,14 @@ class ConnectionsAPI:
|
|
|
11174
11385
|
def list(self, *, max_results: Optional[int] = None, page_token: Optional[str] = None) -> Iterator[ConnectionInfo]:
|
|
11175
11386
|
"""List all connections.
|
|
11176
11387
|
|
|
11388
|
+
NOTE: we recommend using max_results=0 to use the paginated version of this API. Unpaginated calls
|
|
11389
|
+
will be deprecated soon.
|
|
11390
|
+
|
|
11391
|
+
PAGINATION BEHAVIOR: When using pagination (max_results >= 0), a page may contain zero results while
|
|
11392
|
+
still providing a next_page_token. Clients must continue reading pages until next_page_token is
|
|
11393
|
+
absent, which is the only indication that the end of results has been reached. This behavior follows
|
|
11394
|
+
Google AIP-158 guidelines.
|
|
11395
|
+
|
|
11177
11396
|
:param max_results: int (optional)
|
|
11178
11397
|
Maximum number of connections to return. - If not set, all connections are returned (not
|
|
11179
11398
|
recommended). - when set to a value greater than 0, the page length is the minimum of this value and
|
|
@@ -11390,6 +11609,7 @@ class CredentialsAPI:
|
|
|
11390
11609
|
def list_credentials(
|
|
11391
11610
|
self,
|
|
11392
11611
|
*,
|
|
11612
|
+
include_unbound: Optional[bool] = None,
|
|
11393
11613
|
max_results: Optional[int] = None,
|
|
11394
11614
|
page_token: Optional[str] = None,
|
|
11395
11615
|
purpose: Optional[CredentialPurpose] = None,
|
|
@@ -11400,6 +11620,9 @@ class CredentialsAPI:
|
|
|
11400
11620
|
is a metastore admin, retrieval of credentials is unrestricted. There is no guarantee of a specific
|
|
11401
11621
|
ordering of the elements in the array.
|
|
11402
11622
|
|
|
11623
|
+
:param include_unbound: bool (optional)
|
|
11624
|
+
Whether to include credentials not bound to the workspace. Effective only if the user has permission
|
|
11625
|
+
to update the credential–workspace binding.
|
|
11403
11626
|
:param max_results: int (optional)
|
|
11404
11627
|
Maximum number of credentials to return. - If not set, the default max page size is used. - When set
|
|
11405
11628
|
to a value greater than 0, the page length is the minimum of this value and a server-configured
|
|
@@ -11414,6 +11637,8 @@ class CredentialsAPI:
|
|
|
11414
11637
|
"""
|
|
11415
11638
|
|
|
11416
11639
|
query = {}
|
|
11640
|
+
if include_unbound is not None:
|
|
11641
|
+
query["include_unbound"] = include_unbound
|
|
11417
11642
|
if max_results is not None:
|
|
11418
11643
|
query["max_results"] = max_results
|
|
11419
11644
|
if page_token is not None:
|
|
@@ -12037,6 +12262,7 @@ class ExternalLocationsAPI:
|
|
|
12037
12262
|
self,
|
|
12038
12263
|
*,
|
|
12039
12264
|
include_browse: Optional[bool] = None,
|
|
12265
|
+
include_unbound: Optional[bool] = None,
|
|
12040
12266
|
max_results: Optional[int] = None,
|
|
12041
12267
|
page_token: Optional[str] = None,
|
|
12042
12268
|
) -> Iterator[ExternalLocationInfo]:
|
|
@@ -12044,9 +12270,20 @@ class ExternalLocationsAPI:
|
|
|
12044
12270
|
must be a metastore admin, the owner of the external location, or a user that has some privilege on
|
|
12045
12271
|
the external location. There is no guarantee of a specific ordering of the elements in the array.
|
|
12046
12272
|
|
|
12273
|
+
NOTE: we recommend using max_results=0 to use the paginated version of this API. Unpaginated calls
|
|
12274
|
+
will be deprecated soon.
|
|
12275
|
+
|
|
12276
|
+
PAGINATION BEHAVIOR: When using pagination (max_results >= 0), a page may contain zero results while
|
|
12277
|
+
still providing a next_page_token. Clients must continue reading pages until next_page_token is
|
|
12278
|
+
absent, which is the only indication that the end of results has been reached. This behavior follows
|
|
12279
|
+
Google AIP-158 guidelines.
|
|
12280
|
+
|
|
12047
12281
|
:param include_browse: bool (optional)
|
|
12048
12282
|
Whether to include external locations in the response for which the principal can only access
|
|
12049
12283
|
selective metadata for
|
|
12284
|
+
:param include_unbound: bool (optional)
|
|
12285
|
+
Whether to include external locations not bound to the workspace. Effective only if the user has
|
|
12286
|
+
permission to update the location–workspace binding.
|
|
12050
12287
|
:param max_results: int (optional)
|
|
12051
12288
|
Maximum number of external locations to return. If not set, all the external locations are returned
|
|
12052
12289
|
(not recommended). - when set to a value greater than 0, the page length is the minimum of this
|
|
@@ -12061,6 +12298,8 @@ class ExternalLocationsAPI:
|
|
|
12061
12298
|
query = {}
|
|
12062
12299
|
if include_browse is not None:
|
|
12063
12300
|
query["include_browse"] = include_browse
|
|
12301
|
+
if include_unbound is not None:
|
|
12302
|
+
query["include_unbound"] = include_unbound
|
|
12064
12303
|
if max_results is not None:
|
|
12065
12304
|
query["max_results"] = max_results
|
|
12066
12305
|
if page_token is not None:
|
|
@@ -12346,7 +12585,7 @@ class FunctionsAPI:
|
|
|
12346
12585
|
|
|
12347
12586
|
:param name: str
|
|
12348
12587
|
The fully-qualified name of the function (of the form
|
|
12349
|
-
__catalog_name__.__schema_name__.__function__name__).
|
|
12588
|
+
__catalog_name__.__schema_name__.__function__name__) .
|
|
12350
12589
|
:param force: bool (optional)
|
|
12351
12590
|
Force deletion even if the function is notempty.
|
|
12352
12591
|
|
|
@@ -12356,9 +12595,7 @@ class FunctionsAPI:
|
|
|
12356
12595
|
query = {}
|
|
12357
12596
|
if force is not None:
|
|
12358
12597
|
query["force"] = force
|
|
12359
|
-
headers = {
|
|
12360
|
-
"Accept": "application/json",
|
|
12361
|
-
}
|
|
12598
|
+
headers = {}
|
|
12362
12599
|
|
|
12363
12600
|
self._api.do("DELETE", f"/api/2.1/unity-catalog/functions/{name}", query=query, headers=headers)
|
|
12364
12601
|
|
|
@@ -12405,6 +12642,14 @@ class FunctionsAPI:
|
|
|
12405
12642
|
functions for which either the user has the **EXECUTE** privilege or the user is the owner. There is
|
|
12406
12643
|
no guarantee of a specific ordering of the elements in the array.
|
|
12407
12644
|
|
|
12645
|
+
NOTE: we recommend using max_results=0 to use the paginated version of this API. Unpaginated calls
|
|
12646
|
+
will be deprecated soon.
|
|
12647
|
+
|
|
12648
|
+
PAGINATION BEHAVIOR: When using pagination (max_results >= 0), a page may contain zero results while
|
|
12649
|
+
still providing a next_page_token. Clients must continue reading pages until next_page_token is
|
|
12650
|
+
absent, which is the only indication that the end of results has been reached. This behavior follows
|
|
12651
|
+
Google AIP-158 guidelines.
|
|
12652
|
+
|
|
12408
12653
|
:param catalog_name: str
|
|
12409
12654
|
Name of parent catalog for functions of interest.
|
|
12410
12655
|
:param schema_name: str
|
|
@@ -12459,7 +12704,7 @@ class FunctionsAPI:
|
|
|
12459
12704
|
The fully-qualified name of the function (of the form
|
|
12460
12705
|
__catalog_name__.__schema_name__.__function__name__).
|
|
12461
12706
|
:param owner: str (optional)
|
|
12462
|
-
Username of current owner of function.
|
|
12707
|
+
Username of current owner of the function.
|
|
12463
12708
|
|
|
12464
12709
|
:returns: :class:`FunctionInfo`
|
|
12465
12710
|
"""
|
|
@@ -12749,6 +12994,14 @@ class MetastoresAPI:
|
|
|
12749
12994
|
"""Gets an array of the available metastores (as __MetastoreInfo__ objects). The caller must be an admin
|
|
12750
12995
|
to retrieve this info. There is no guarantee of a specific ordering of the elements in the array.
|
|
12751
12996
|
|
|
12997
|
+
NOTE: we recommend using max_results=0 to use the paginated version of this API. Unpaginated calls
|
|
12998
|
+
will be deprecated soon.
|
|
12999
|
+
|
|
13000
|
+
PAGINATION BEHAVIOR: When using pagination (max_results >= 0), a page may contain zero results while
|
|
13001
|
+
still providing a next_page_token. Clients must continue reading pages until next_page_token is
|
|
13002
|
+
absent, which is the only indication that the end of results has been reached. This behavior follows
|
|
13003
|
+
Google AIP-158 guidelines.
|
|
13004
|
+
|
|
12752
13005
|
:param max_results: int (optional)
|
|
12753
13006
|
Maximum number of metastores to return. - when set to a value greater than 0, the page length is the
|
|
12754
13007
|
minimum of this value and a server configured value; - when set to 0, the page length is set to a
|
|
@@ -13069,7 +13322,29 @@ class ModelVersionsAPI:
|
|
|
13069
13322
|
return
|
|
13070
13323
|
query["page_token"] = json["next_page_token"]
|
|
13071
13324
|
|
|
13072
|
-
def update(
|
|
13325
|
+
def update(
|
|
13326
|
+
self,
|
|
13327
|
+
full_name: str,
|
|
13328
|
+
version: int,
|
|
13329
|
+
*,
|
|
13330
|
+
aliases: Optional[List[RegisteredModelAlias]] = None,
|
|
13331
|
+
catalog_name: Optional[str] = None,
|
|
13332
|
+
comment: Optional[str] = None,
|
|
13333
|
+
created_at: Optional[int] = None,
|
|
13334
|
+
created_by: Optional[str] = None,
|
|
13335
|
+
id: Optional[str] = None,
|
|
13336
|
+
metastore_id: Optional[str] = None,
|
|
13337
|
+
model_name: Optional[str] = None,
|
|
13338
|
+
model_version_dependencies: Optional[DependencyList] = None,
|
|
13339
|
+
run_id: Optional[str] = None,
|
|
13340
|
+
run_workspace_id: Optional[int] = None,
|
|
13341
|
+
schema_name: Optional[str] = None,
|
|
13342
|
+
source: Optional[str] = None,
|
|
13343
|
+
status: Optional[ModelVersionInfoStatus] = None,
|
|
13344
|
+
storage_location: Optional[str] = None,
|
|
13345
|
+
updated_at: Optional[int] = None,
|
|
13346
|
+
updated_by: Optional[str] = None,
|
|
13347
|
+
) -> ModelVersionInfo:
|
|
13073
13348
|
"""Updates the specified model version.
|
|
13074
13349
|
|
|
13075
13350
|
The caller must be a metastore admin or an owner of the parent registered model. For the latter case,
|
|
@@ -13082,14 +13357,80 @@ class ModelVersionsAPI:
|
|
|
13082
13357
|
The three-level (fully qualified) name of the model version
|
|
13083
13358
|
:param version: int
|
|
13084
13359
|
The integer version number of the model version
|
|
13360
|
+
:param aliases: List[:class:`RegisteredModelAlias`] (optional)
|
|
13361
|
+
List of aliases associated with the model version
|
|
13362
|
+
:param catalog_name: str (optional)
|
|
13363
|
+
The name of the catalog containing the model version
|
|
13085
13364
|
:param comment: str (optional)
|
|
13086
13365
|
The comment attached to the model version
|
|
13366
|
+
:param created_at: int (optional)
|
|
13367
|
+
:param created_by: str (optional)
|
|
13368
|
+
The identifier of the user who created the model version
|
|
13369
|
+
:param id: str (optional)
|
|
13370
|
+
The unique identifier of the model version
|
|
13371
|
+
:param metastore_id: str (optional)
|
|
13372
|
+
The unique identifier of the metastore containing the model version
|
|
13373
|
+
:param model_name: str (optional)
|
|
13374
|
+
The name of the parent registered model of the model version, relative to parent schema
|
|
13375
|
+
:param model_version_dependencies: :class:`DependencyList` (optional)
|
|
13376
|
+
Model version dependencies, for feature-store packaged models
|
|
13377
|
+
:param run_id: str (optional)
|
|
13378
|
+
MLflow run ID used when creating the model version, if ``source`` was generated by an experiment run
|
|
13379
|
+
stored in an MLflow tracking server
|
|
13380
|
+
:param run_workspace_id: int (optional)
|
|
13381
|
+
ID of the Databricks workspace containing the MLflow run that generated this model version, if
|
|
13382
|
+
applicable
|
|
13383
|
+
:param schema_name: str (optional)
|
|
13384
|
+
The name of the schema containing the model version, relative to parent catalog
|
|
13385
|
+
:param source: str (optional)
|
|
13386
|
+
URI indicating the location of the source artifacts (files) for the model version
|
|
13387
|
+
:param status: :class:`ModelVersionInfoStatus` (optional)
|
|
13388
|
+
Current status of the model version. Newly created model versions start in PENDING_REGISTRATION
|
|
13389
|
+
status, then move to READY status once the model version files are uploaded and the model version is
|
|
13390
|
+
finalized. Only model versions in READY status can be loaded for inference or served.
|
|
13391
|
+
:param storage_location: str (optional)
|
|
13392
|
+
The storage location on the cloud under which model version data files are stored
|
|
13393
|
+
:param updated_at: int (optional)
|
|
13394
|
+
:param updated_by: str (optional)
|
|
13395
|
+
The identifier of the user who updated the model version last time
|
|
13087
13396
|
|
|
13088
13397
|
:returns: :class:`ModelVersionInfo`
|
|
13089
13398
|
"""
|
|
13090
13399
|
body = {}
|
|
13400
|
+
if aliases is not None:
|
|
13401
|
+
body["aliases"] = [v.as_dict() for v in aliases]
|
|
13402
|
+
if catalog_name is not None:
|
|
13403
|
+
body["catalog_name"] = catalog_name
|
|
13091
13404
|
if comment is not None:
|
|
13092
13405
|
body["comment"] = comment
|
|
13406
|
+
if created_at is not None:
|
|
13407
|
+
body["created_at"] = created_at
|
|
13408
|
+
if created_by is not None:
|
|
13409
|
+
body["created_by"] = created_by
|
|
13410
|
+
if id is not None:
|
|
13411
|
+
body["id"] = id
|
|
13412
|
+
if metastore_id is not None:
|
|
13413
|
+
body["metastore_id"] = metastore_id
|
|
13414
|
+
if model_name is not None:
|
|
13415
|
+
body["model_name"] = model_name
|
|
13416
|
+
if model_version_dependencies is not None:
|
|
13417
|
+
body["model_version_dependencies"] = model_version_dependencies.as_dict()
|
|
13418
|
+
if run_id is not None:
|
|
13419
|
+
body["run_id"] = run_id
|
|
13420
|
+
if run_workspace_id is not None:
|
|
13421
|
+
body["run_workspace_id"] = run_workspace_id
|
|
13422
|
+
if schema_name is not None:
|
|
13423
|
+
body["schema_name"] = schema_name
|
|
13424
|
+
if source is not None:
|
|
13425
|
+
body["source"] = source
|
|
13426
|
+
if status is not None:
|
|
13427
|
+
body["status"] = status.value
|
|
13428
|
+
if storage_location is not None:
|
|
13429
|
+
body["storage_location"] = storage_location
|
|
13430
|
+
if updated_at is not None:
|
|
13431
|
+
body["updated_at"] = updated_at
|
|
13432
|
+
if updated_by is not None:
|
|
13433
|
+
body["updated_by"] = updated_by
|
|
13093
13434
|
headers = {
|
|
13094
13435
|
"Accept": "application/json",
|
|
13095
13436
|
"Content-Type": "application/json",
|
|
@@ -13797,20 +14138,29 @@ class RegisteredModelsAPI:
|
|
|
13797
14138
|
new model version, or update permissions on the registered model, users must be owners of the registered
|
|
13798
14139
|
model.
|
|
13799
14140
|
|
|
13800
|
-
Note: The securable type for models is
|
|
13801
|
-
|
|
14141
|
+
Note: The securable type for models is FUNCTION. When using REST APIs (e.g. tagging, grants) that specify
|
|
14142
|
+
a securable type, use FUNCTION as the securable type."""
|
|
13802
14143
|
|
|
13803
14144
|
def __init__(self, api_client):
|
|
13804
14145
|
self._api = api_client
|
|
13805
14146
|
|
|
13806
14147
|
def create(
|
|
13807
14148
|
self,
|
|
13808
|
-
catalog_name: str,
|
|
13809
|
-
schema_name: str,
|
|
13810
|
-
name: str,
|
|
13811
14149
|
*,
|
|
14150
|
+
aliases: Optional[List[RegisteredModelAlias]] = None,
|
|
14151
|
+
browse_only: Optional[bool] = None,
|
|
14152
|
+
catalog_name: Optional[str] = None,
|
|
13812
14153
|
comment: Optional[str] = None,
|
|
14154
|
+
created_at: Optional[int] = None,
|
|
14155
|
+
created_by: Optional[str] = None,
|
|
14156
|
+
full_name: Optional[str] = None,
|
|
14157
|
+
metastore_id: Optional[str] = None,
|
|
14158
|
+
name: Optional[str] = None,
|
|
14159
|
+
owner: Optional[str] = None,
|
|
14160
|
+
schema_name: Optional[str] = None,
|
|
13813
14161
|
storage_location: Optional[str] = None,
|
|
14162
|
+
updated_at: Optional[int] = None,
|
|
14163
|
+
updated_by: Optional[str] = None,
|
|
13814
14164
|
) -> RegisteredModelInfo:
|
|
13815
14165
|
"""Creates a new registered model in Unity Catalog.
|
|
13816
14166
|
|
|
@@ -13822,30 +14172,67 @@ class RegisteredModelsAPI:
|
|
|
13822
14172
|
**USE_CATALOG** privilege on the parent catalog and the **USE_SCHEMA** privilege on the parent schema.
|
|
13823
14173
|
- The caller must have the **CREATE MODEL** or **CREATE FUNCTION** privilege on the parent schema.
|
|
13824
14174
|
|
|
13825
|
-
:param
|
|
14175
|
+
:param aliases: List[:class:`RegisteredModelAlias`] (optional)
|
|
14176
|
+
List of aliases associated with the registered model
|
|
14177
|
+
:param browse_only: bool (optional)
|
|
14178
|
+
Indicates whether the principal is limited to retrieving metadata for the associated object through
|
|
14179
|
+
the BROWSE privilege when include_browse is enabled in the request.
|
|
14180
|
+
:param catalog_name: str (optional)
|
|
13826
14181
|
The name of the catalog where the schema and the registered model reside
|
|
13827
|
-
:param schema_name: str
|
|
13828
|
-
The name of the schema where the registered model resides
|
|
13829
|
-
:param name: str
|
|
13830
|
-
The name of the registered model
|
|
13831
14182
|
:param comment: str (optional)
|
|
13832
14183
|
The comment attached to the registered model
|
|
14184
|
+
:param created_at: int (optional)
|
|
14185
|
+
Creation timestamp of the registered model in milliseconds since the Unix epoch
|
|
14186
|
+
:param created_by: str (optional)
|
|
14187
|
+
The identifier of the user who created the registered model
|
|
14188
|
+
:param full_name: str (optional)
|
|
14189
|
+
The three-level (fully qualified) name of the registered model
|
|
14190
|
+
:param metastore_id: str (optional)
|
|
14191
|
+
The unique identifier of the metastore
|
|
14192
|
+
:param name: str (optional)
|
|
14193
|
+
The name of the registered model
|
|
14194
|
+
:param owner: str (optional)
|
|
14195
|
+
The identifier of the user who owns the registered model
|
|
14196
|
+
:param schema_name: str (optional)
|
|
14197
|
+
The name of the schema where the registered model resides
|
|
13833
14198
|
:param storage_location: str (optional)
|
|
13834
14199
|
The storage location on the cloud under which model version data files are stored
|
|
14200
|
+
:param updated_at: int (optional)
|
|
14201
|
+
Last-update timestamp of the registered model in milliseconds since the Unix epoch
|
|
14202
|
+
:param updated_by: str (optional)
|
|
14203
|
+
The identifier of the user who updated the registered model last time
|
|
13835
14204
|
|
|
13836
14205
|
:returns: :class:`RegisteredModelInfo`
|
|
13837
14206
|
"""
|
|
13838
14207
|
body = {}
|
|
14208
|
+
if aliases is not None:
|
|
14209
|
+
body["aliases"] = [v.as_dict() for v in aliases]
|
|
14210
|
+
if browse_only is not None:
|
|
14211
|
+
body["browse_only"] = browse_only
|
|
13839
14212
|
if catalog_name is not None:
|
|
13840
14213
|
body["catalog_name"] = catalog_name
|
|
13841
14214
|
if comment is not None:
|
|
13842
14215
|
body["comment"] = comment
|
|
14216
|
+
if created_at is not None:
|
|
14217
|
+
body["created_at"] = created_at
|
|
14218
|
+
if created_by is not None:
|
|
14219
|
+
body["created_by"] = created_by
|
|
14220
|
+
if full_name is not None:
|
|
14221
|
+
body["full_name"] = full_name
|
|
14222
|
+
if metastore_id is not None:
|
|
14223
|
+
body["metastore_id"] = metastore_id
|
|
13843
14224
|
if name is not None:
|
|
13844
14225
|
body["name"] = name
|
|
14226
|
+
if owner is not None:
|
|
14227
|
+
body["owner"] = owner
|
|
13845
14228
|
if schema_name is not None:
|
|
13846
14229
|
body["schema_name"] = schema_name
|
|
13847
14230
|
if storage_location is not None:
|
|
13848
14231
|
body["storage_location"] = storage_location
|
|
14232
|
+
if updated_at is not None:
|
|
14233
|
+
body["updated_at"] = updated_at
|
|
14234
|
+
if updated_by is not None:
|
|
14235
|
+
body["updated_by"] = updated_by
|
|
13849
14236
|
headers = {
|
|
13850
14237
|
"Accept": "application/json",
|
|
13851
14238
|
"Content-Type": "application/json",
|
|
@@ -14003,7 +14390,7 @@ class RegisteredModelsAPI:
|
|
|
14003
14390
|
**USE_SCHEMA** privilege on the parent schema.
|
|
14004
14391
|
|
|
14005
14392
|
:param full_name: str
|
|
14006
|
-
|
|
14393
|
+
The three-level (fully qualified) name of the registered model
|
|
14007
14394
|
:param alias: str
|
|
14008
14395
|
The name of the alias
|
|
14009
14396
|
:param version_num: int
|
|
@@ -14028,9 +14415,20 @@ class RegisteredModelsAPI:
|
|
|
14028
14415
|
self,
|
|
14029
14416
|
full_name: str,
|
|
14030
14417
|
*,
|
|
14418
|
+
aliases: Optional[List[RegisteredModelAlias]] = None,
|
|
14419
|
+
browse_only: Optional[bool] = None,
|
|
14420
|
+
catalog_name: Optional[str] = None,
|
|
14031
14421
|
comment: Optional[str] = None,
|
|
14422
|
+
created_at: Optional[int] = None,
|
|
14423
|
+
created_by: Optional[str] = None,
|
|
14424
|
+
metastore_id: Optional[str] = None,
|
|
14425
|
+
name: Optional[str] = None,
|
|
14032
14426
|
new_name: Optional[str] = None,
|
|
14033
14427
|
owner: Optional[str] = None,
|
|
14428
|
+
schema_name: Optional[str] = None,
|
|
14429
|
+
storage_location: Optional[str] = None,
|
|
14430
|
+
updated_at: Optional[int] = None,
|
|
14431
|
+
updated_by: Optional[str] = None,
|
|
14034
14432
|
) -> RegisteredModelInfo:
|
|
14035
14433
|
"""Updates the specified registered model.
|
|
14036
14434
|
|
|
@@ -14042,22 +14440,67 @@ class RegisteredModelsAPI:
|
|
|
14042
14440
|
|
|
14043
14441
|
:param full_name: str
|
|
14044
14442
|
The three-level (fully qualified) name of the registered model
|
|
14443
|
+
:param aliases: List[:class:`RegisteredModelAlias`] (optional)
|
|
14444
|
+
List of aliases associated with the registered model
|
|
14445
|
+
:param browse_only: bool (optional)
|
|
14446
|
+
Indicates whether the principal is limited to retrieving metadata for the associated object through
|
|
14447
|
+
the BROWSE privilege when include_browse is enabled in the request.
|
|
14448
|
+
:param catalog_name: str (optional)
|
|
14449
|
+
The name of the catalog where the schema and the registered model reside
|
|
14045
14450
|
:param comment: str (optional)
|
|
14046
14451
|
The comment attached to the registered model
|
|
14452
|
+
:param created_at: int (optional)
|
|
14453
|
+
Creation timestamp of the registered model in milliseconds since the Unix epoch
|
|
14454
|
+
:param created_by: str (optional)
|
|
14455
|
+
The identifier of the user who created the registered model
|
|
14456
|
+
:param metastore_id: str (optional)
|
|
14457
|
+
The unique identifier of the metastore
|
|
14458
|
+
:param name: str (optional)
|
|
14459
|
+
The name of the registered model
|
|
14047
14460
|
:param new_name: str (optional)
|
|
14048
14461
|
New name for the registered model.
|
|
14049
14462
|
:param owner: str (optional)
|
|
14050
14463
|
The identifier of the user who owns the registered model
|
|
14464
|
+
:param schema_name: str (optional)
|
|
14465
|
+
The name of the schema where the registered model resides
|
|
14466
|
+
:param storage_location: str (optional)
|
|
14467
|
+
The storage location on the cloud under which model version data files are stored
|
|
14468
|
+
:param updated_at: int (optional)
|
|
14469
|
+
Last-update timestamp of the registered model in milliseconds since the Unix epoch
|
|
14470
|
+
:param updated_by: str (optional)
|
|
14471
|
+
The identifier of the user who updated the registered model last time
|
|
14051
14472
|
|
|
14052
14473
|
:returns: :class:`RegisteredModelInfo`
|
|
14053
14474
|
"""
|
|
14054
14475
|
body = {}
|
|
14476
|
+
if aliases is not None:
|
|
14477
|
+
body["aliases"] = [v.as_dict() for v in aliases]
|
|
14478
|
+
if browse_only is not None:
|
|
14479
|
+
body["browse_only"] = browse_only
|
|
14480
|
+
if catalog_name is not None:
|
|
14481
|
+
body["catalog_name"] = catalog_name
|
|
14055
14482
|
if comment is not None:
|
|
14056
14483
|
body["comment"] = comment
|
|
14484
|
+
if created_at is not None:
|
|
14485
|
+
body["created_at"] = created_at
|
|
14486
|
+
if created_by is not None:
|
|
14487
|
+
body["created_by"] = created_by
|
|
14488
|
+
if metastore_id is not None:
|
|
14489
|
+
body["metastore_id"] = metastore_id
|
|
14490
|
+
if name is not None:
|
|
14491
|
+
body["name"] = name
|
|
14057
14492
|
if new_name is not None:
|
|
14058
14493
|
body["new_name"] = new_name
|
|
14059
14494
|
if owner is not None:
|
|
14060
14495
|
body["owner"] = owner
|
|
14496
|
+
if schema_name is not None:
|
|
14497
|
+
body["schema_name"] = schema_name
|
|
14498
|
+
if storage_location is not None:
|
|
14499
|
+
body["storage_location"] = storage_location
|
|
14500
|
+
if updated_at is not None:
|
|
14501
|
+
body["updated_at"] = updated_at
|
|
14502
|
+
if updated_by is not None:
|
|
14503
|
+
body["updated_by"] = updated_by
|
|
14061
14504
|
headers = {
|
|
14062
14505
|
"Accept": "application/json",
|
|
14063
14506
|
"Content-Type": "application/json",
|
|
@@ -14356,6 +14799,14 @@ class SchemasAPI:
|
|
|
14356
14799
|
owned by the caller (or for which the caller has the **USE_SCHEMA** privilege) will be retrieved.
|
|
14357
14800
|
There is no guarantee of a specific ordering of the elements in the array.
|
|
14358
14801
|
|
|
14802
|
+
NOTE: we recommend using max_results=0 to use the paginated version of this API. Unpaginated calls
|
|
14803
|
+
will be deprecated soon.
|
|
14804
|
+
|
|
14805
|
+
PAGINATION BEHAVIOR: When using pagination (max_results >= 0), a page may contain zero results while
|
|
14806
|
+
still providing a next_page_token. Clients must continue reading pages until next_page_token is
|
|
14807
|
+
absent, which is the only indication that the end of results has been reached. This behavior follows
|
|
14808
|
+
Google AIP-158 guidelines.
|
|
14809
|
+
|
|
14359
14810
|
:param catalog_name: str
|
|
14360
14811
|
Parent catalog for schemas of interest.
|
|
14361
14812
|
:param include_browse: bool (optional)
|
|
@@ -14567,13 +15018,28 @@ class StorageCredentialsAPI:
|
|
|
14567
15018
|
return StorageCredentialInfo.from_dict(res)
|
|
14568
15019
|
|
|
14569
15020
|
def list(
|
|
14570
|
-
self,
|
|
15021
|
+
self,
|
|
15022
|
+
*,
|
|
15023
|
+
include_unbound: Optional[bool] = None,
|
|
15024
|
+
max_results: Optional[int] = None,
|
|
15025
|
+
page_token: Optional[str] = None,
|
|
14571
15026
|
) -> Iterator[StorageCredentialInfo]:
|
|
14572
15027
|
"""Gets an array of storage credentials (as __StorageCredentialInfo__ objects). The array is limited to
|
|
14573
15028
|
only those storage credentials the caller has permission to access. If the caller is a metastore
|
|
14574
15029
|
admin, retrieval of credentials is unrestricted. There is no guarantee of a specific ordering of the
|
|
14575
15030
|
elements in the array.
|
|
14576
15031
|
|
|
15032
|
+
NOTE: we recommend using max_results=0 to use the paginated version of this API. Unpaginated calls
|
|
15033
|
+
will be deprecated soon.
|
|
15034
|
+
|
|
15035
|
+
PAGINATION BEHAVIOR: When using pagination (max_results >= 0), a page may contain zero results while
|
|
15036
|
+
still providing a next_page_token. Clients must continue reading pages until next_page_token is
|
|
15037
|
+
absent, which is the only indication that the end of results has been reached. This behavior follows
|
|
15038
|
+
Google AIP-158 guidelines.
|
|
15039
|
+
|
|
15040
|
+
:param include_unbound: bool (optional)
|
|
15041
|
+
Whether to include credentials not bound to the workspace. Effective only if the user has permission
|
|
15042
|
+
to update the credential–workspace binding.
|
|
14577
15043
|
:param max_results: int (optional)
|
|
14578
15044
|
Maximum number of storage credentials to return. If not set, all the storage credentials are
|
|
14579
15045
|
returned (not recommended). - when set to a value greater than 0, the page length is the minimum of
|
|
@@ -14587,6 +15053,8 @@ class StorageCredentialsAPI:
|
|
|
14587
15053
|
"""
|
|
14588
15054
|
|
|
14589
15055
|
query = {}
|
|
15056
|
+
if include_unbound is not None:
|
|
15057
|
+
query["include_unbound"] = include_unbound
|
|
14590
15058
|
if max_results is not None:
|
|
14591
15059
|
query["max_results"] = max_results
|
|
14592
15060
|
if page_token is not None:
|
|
@@ -14822,6 +15290,14 @@ class SystemSchemasAPI:
|
|
|
14822
15290
|
"""Gets an array of system schemas for a metastore. The caller must be an account admin or a metastore
|
|
14823
15291
|
admin.
|
|
14824
15292
|
|
|
15293
|
+
NOTE: we recommend using max_results=0 to use the paginated version of this API. Unpaginated calls
|
|
15294
|
+
will be deprecated soon.
|
|
15295
|
+
|
|
15296
|
+
PAGINATION BEHAVIOR: When using pagination (max_results >= 0), a page may contain zero results while
|
|
15297
|
+
still providing a next_page_token. Clients must continue reading pages until next_page_token is
|
|
15298
|
+
absent, which is the only indication that the end of results has been reached. This behavior follows
|
|
15299
|
+
Google AIP-158 guidelines.
|
|
15300
|
+
|
|
14825
15301
|
:param metastore_id: str
|
|
14826
15302
|
The ID for the metastore in which the system schema resides.
|
|
14827
15303
|
:param max_results: int (optional)
|
|
@@ -15118,6 +15594,14 @@ class TablesAPI:
|
|
|
15118
15594
|
catalog and the **USE_SCHEMA** privilege on the parent schema. There is no guarantee of a specific
|
|
15119
15595
|
ordering of the elements in the array.
|
|
15120
15596
|
|
|
15597
|
+
NOTE: we recommend using max_results=0 to use the paginated version of this API. Unpaginated calls
|
|
15598
|
+
will be deprecated soon.
|
|
15599
|
+
|
|
15600
|
+
PAGINATION BEHAVIOR: When using pagination (max_results >= 0), a page may contain zero results while
|
|
15601
|
+
still providing a next_page_token. Clients must continue reading pages until next_page_token is
|
|
15602
|
+
absent, which is the only indication that the end of results has been reached. This behavior follows
|
|
15603
|
+
Google AIP-158 guidelines.
|
|
15604
|
+
|
|
15121
15605
|
:param catalog_name: str
|
|
15122
15606
|
Name of parent catalog for tables of interest.
|
|
15123
15607
|
:param schema_name: str
|
|
@@ -15746,9 +16230,11 @@ class WorkspaceBindingsAPI:
|
|
|
15746
16230
|
:param securable_name: str
|
|
15747
16231
|
The name of the securable.
|
|
15748
16232
|
:param add: List[:class:`WorkspaceBinding`] (optional)
|
|
15749
|
-
List of workspace bindings.
|
|
16233
|
+
List of workspace bindings to add. If a binding for the workspace already exists with a different
|
|
16234
|
+
binding_type, adding it again with a new binding_type will update the existing binding (e.g., from
|
|
16235
|
+
READ_WRITE to READ_ONLY).
|
|
15750
16236
|
:param remove: List[:class:`WorkspaceBinding`] (optional)
|
|
15751
|
-
List of workspace bindings.
|
|
16237
|
+
List of workspace bindings to remove.
|
|
15752
16238
|
|
|
15753
16239
|
:returns: :class:`UpdateWorkspaceBindingsResponse`
|
|
15754
16240
|
"""
|