databricks-sdk 0.66.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 +10 -3
- 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 +1030 -537
- databricks/sdk/service/cleanrooms.py +3 -3
- databricks/sdk/service/compute.py +21 -33
- databricks/sdk/service/dashboards.py +51 -3
- databricks/sdk/service/database.py +99 -8
- databricks/sdk/service/dataquality.py +1145 -0
- databricks/sdk/service/files.py +2 -1
- databricks/sdk/service/iam.py +6 -5
- 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 +59 -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.66.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.66.0.dist-info/RECORD +0 -79
- {databricks_sdk-0.66.0.dist-info → databricks_sdk-0.68.0.dist-info}/WHEEL +0 -0
- {databricks_sdk-0.66.0.dist-info → databricks_sdk-0.68.0.dist-info}/licenses/LICENSE +0 -0
- {databricks_sdk-0.66.0.dist-info → databricks_sdk-0.68.0.dist-info}/licenses/NOTICE +0 -0
- {databricks_sdk-0.66.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
|
|
|
@@ -7856,6 +8045,7 @@ class Privilege(Enum):
|
|
|
7856
8045
|
CREATE_VOLUME = "CREATE_VOLUME"
|
|
7857
8046
|
EXECUTE = "EXECUTE"
|
|
7858
8047
|
EXECUTE_CLEAN_ROOM_TASK = "EXECUTE_CLEAN_ROOM_TASK"
|
|
8048
|
+
EXTERNAL_USE_SCHEMA = "EXTERNAL_USE_SCHEMA"
|
|
7859
8049
|
MANAGE = "MANAGE"
|
|
7860
8050
|
MANAGE_ALLOWLIST = "MANAGE_ALLOWLIST"
|
|
7861
8051
|
MODIFY = "MODIFY"
|
|
@@ -8124,11 +8314,21 @@ class RegenerateDashboardResponse:
|
|
|
8124
8314
|
|
|
8125
8315
|
@dataclass
|
|
8126
8316
|
class RegisteredModelAlias:
|
|
8127
|
-
"""Registered model alias."""
|
|
8128
|
-
|
|
8129
8317
|
alias_name: Optional[str] = None
|
|
8130
8318
|
"""Name of the alias, e.g. 'champion' or 'latest_stable'"""
|
|
8131
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
|
+
|
|
8132
8332
|
version_num: Optional[int] = None
|
|
8133
8333
|
"""Integer version number of the model version to which this alias points."""
|
|
8134
8334
|
|
|
@@ -8137,6 +8337,14 @@ class RegisteredModelAlias:
|
|
|
8137
8337
|
body = {}
|
|
8138
8338
|
if self.alias_name is not None:
|
|
8139
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
|
|
8140
8348
|
if self.version_num is not None:
|
|
8141
8349
|
body["version_num"] = self.version_num
|
|
8142
8350
|
return body
|
|
@@ -8146,6 +8354,14 @@ class RegisteredModelAlias:
|
|
|
8146
8354
|
body = {}
|
|
8147
8355
|
if self.alias_name is not None:
|
|
8148
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
|
|
8149
8365
|
if self.version_num is not None:
|
|
8150
8366
|
body["version_num"] = self.version_num
|
|
8151
8367
|
return body
|
|
@@ -8153,7 +8369,14 @@ class RegisteredModelAlias:
|
|
|
8153
8369
|
@classmethod
|
|
8154
8370
|
def from_dict(cls, d: Dict[str, Any]) -> RegisteredModelAlias:
|
|
8155
8371
|
"""Deserializes the RegisteredModelAlias from a dictionary."""
|
|
8156
|
-
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
|
+
)
|
|
8157
8380
|
|
|
8158
8381
|
|
|
8159
8382
|
@dataclass
|
|
@@ -8539,7 +8762,7 @@ class Securable:
|
|
|
8539
8762
|
|
|
8540
8763
|
|
|
8541
8764
|
class SecurableKind(Enum):
|
|
8542
|
-
"""Latest kind:
|
|
8765
|
+
"""Latest kind: CONNECTION_REDSHIFT_IAM = 265; Next id:266"""
|
|
8543
8766
|
|
|
8544
8767
|
TABLE_DB_STORAGE = "TABLE_DB_STORAGE"
|
|
8545
8768
|
TABLE_DELTA = "TABLE_DELTA"
|
|
@@ -9003,6 +9226,7 @@ class SystemType(Enum):
|
|
|
9003
9226
|
SAP = "SAP"
|
|
9004
9227
|
SERVICENOW = "SERVICENOW"
|
|
9005
9228
|
SNOWFLAKE = "SNOWFLAKE"
|
|
9229
|
+
STREAM_NATIVE = "STREAM_NATIVE"
|
|
9006
9230
|
TABLEAU = "TABLEAU"
|
|
9007
9231
|
TERADATA = "TERADATA"
|
|
9008
9232
|
WORKDAY = "WORKDAY"
|
|
@@ -9634,50 +9858,7 @@ class UnassignResponse:
|
|
|
9634
9858
|
|
|
9635
9859
|
|
|
9636
9860
|
@dataclass
|
|
9637
|
-
class
|
|
9638
|
-
def as_dict(self) -> dict:
|
|
9639
|
-
"""Serializes the UpdateAssignmentResponse into a dictionary suitable for use as a JSON request body."""
|
|
9640
|
-
body = {}
|
|
9641
|
-
return body
|
|
9642
|
-
|
|
9643
|
-
def as_shallow_dict(self) -> dict:
|
|
9644
|
-
"""Serializes the UpdateAssignmentResponse into a shallow dictionary of its immediate attributes."""
|
|
9645
|
-
body = {}
|
|
9646
|
-
return body
|
|
9647
|
-
|
|
9648
|
-
@classmethod
|
|
9649
|
-
def from_dict(cls, d: Dict[str, Any]) -> UpdateAssignmentResponse:
|
|
9650
|
-
"""Deserializes the UpdateAssignmentResponse from a dictionary."""
|
|
9651
|
-
return cls()
|
|
9652
|
-
|
|
9653
|
-
|
|
9654
|
-
@dataclass
|
|
9655
|
-
class UpdateCatalogWorkspaceBindingsResponse:
|
|
9656
|
-
workspaces: Optional[List[int]] = None
|
|
9657
|
-
"""A list of workspace IDs"""
|
|
9658
|
-
|
|
9659
|
-
def as_dict(self) -> dict:
|
|
9660
|
-
"""Serializes the UpdateCatalogWorkspaceBindingsResponse into a dictionary suitable for use as a JSON request body."""
|
|
9661
|
-
body = {}
|
|
9662
|
-
if self.workspaces:
|
|
9663
|
-
body["workspaces"] = [v for v in self.workspaces]
|
|
9664
|
-
return body
|
|
9665
|
-
|
|
9666
|
-
def as_shallow_dict(self) -> dict:
|
|
9667
|
-
"""Serializes the UpdateCatalogWorkspaceBindingsResponse into a shallow dictionary of its immediate attributes."""
|
|
9668
|
-
body = {}
|
|
9669
|
-
if self.workspaces:
|
|
9670
|
-
body["workspaces"] = self.workspaces
|
|
9671
|
-
return body
|
|
9672
|
-
|
|
9673
|
-
@classmethod
|
|
9674
|
-
def from_dict(cls, d: Dict[str, Any]) -> UpdateCatalogWorkspaceBindingsResponse:
|
|
9675
|
-
"""Deserializes the UpdateCatalogWorkspaceBindingsResponse from a dictionary."""
|
|
9676
|
-
return cls(workspaces=d.get("workspaces", None))
|
|
9677
|
-
|
|
9678
|
-
|
|
9679
|
-
@dataclass
|
|
9680
|
-
class UpdateMetastore:
|
|
9861
|
+
class UpdateAccountsMetastore:
|
|
9681
9862
|
delta_sharing_organization_name: Optional[str] = None
|
|
9682
9863
|
"""The organization name of a Delta Sharing entity, to be used in Databricks-to-Databricks Delta
|
|
9683
9864
|
Sharing as the official name."""
|
|
@@ -9688,12 +9869,6 @@ class UpdateMetastore:
|
|
|
9688
9869
|
delta_sharing_scope: Optional[DeltaSharingScopeEnum] = None
|
|
9689
9870
|
"""The scope of Delta Sharing enabled for the metastore."""
|
|
9690
9871
|
|
|
9691
|
-
id: Optional[str] = None
|
|
9692
|
-
"""Unique ID of the metastore."""
|
|
9693
|
-
|
|
9694
|
-
new_name: Optional[str] = None
|
|
9695
|
-
"""New name for the metastore."""
|
|
9696
|
-
|
|
9697
9872
|
owner: Optional[str] = None
|
|
9698
9873
|
"""The owner of the metastore."""
|
|
9699
9874
|
|
|
@@ -9704,7 +9879,7 @@ class UpdateMetastore:
|
|
|
9704
9879
|
"""UUID of storage credential to access the metastore storage_root."""
|
|
9705
9880
|
|
|
9706
9881
|
def as_dict(self) -> dict:
|
|
9707
|
-
"""Serializes the
|
|
9882
|
+
"""Serializes the UpdateAccountsMetastore into a dictionary suitable for use as a JSON request body."""
|
|
9708
9883
|
body = {}
|
|
9709
9884
|
if self.delta_sharing_organization_name is not None:
|
|
9710
9885
|
body["delta_sharing_organization_name"] = self.delta_sharing_organization_name
|
|
@@ -9714,10 +9889,6 @@ class UpdateMetastore:
|
|
|
9714
9889
|
)
|
|
9715
9890
|
if self.delta_sharing_scope is not None:
|
|
9716
9891
|
body["delta_sharing_scope"] = self.delta_sharing_scope.value
|
|
9717
|
-
if self.id is not None:
|
|
9718
|
-
body["id"] = self.id
|
|
9719
|
-
if self.new_name is not None:
|
|
9720
|
-
body["new_name"] = self.new_name
|
|
9721
9892
|
if self.owner is not None:
|
|
9722
9893
|
body["owner"] = self.owner
|
|
9723
9894
|
if self.privilege_model_version is not None:
|
|
@@ -9727,7 +9898,7 @@ class UpdateMetastore:
|
|
|
9727
9898
|
return body
|
|
9728
9899
|
|
|
9729
9900
|
def as_shallow_dict(self) -> dict:
|
|
9730
|
-
"""Serializes the
|
|
9901
|
+
"""Serializes the UpdateAccountsMetastore into a shallow dictionary of its immediate attributes."""
|
|
9731
9902
|
body = {}
|
|
9732
9903
|
if self.delta_sharing_organization_name is not None:
|
|
9733
9904
|
body["delta_sharing_organization_name"] = self.delta_sharing_organization_name
|
|
@@ -9737,10 +9908,6 @@ class UpdateMetastore:
|
|
|
9737
9908
|
)
|
|
9738
9909
|
if self.delta_sharing_scope is not None:
|
|
9739
9910
|
body["delta_sharing_scope"] = self.delta_sharing_scope
|
|
9740
|
-
if self.id is not None:
|
|
9741
|
-
body["id"] = self.id
|
|
9742
|
-
if self.new_name is not None:
|
|
9743
|
-
body["new_name"] = self.new_name
|
|
9744
9911
|
if self.owner is not None:
|
|
9745
9912
|
body["owner"] = self.owner
|
|
9746
9913
|
if self.privilege_model_version is not None:
|
|
@@ -9750,22 +9917,157 @@ class UpdateMetastore:
|
|
|
9750
9917
|
return body
|
|
9751
9918
|
|
|
9752
9919
|
@classmethod
|
|
9753
|
-
def from_dict(cls, d: Dict[str, Any]) ->
|
|
9754
|
-
"""Deserializes the
|
|
9920
|
+
def from_dict(cls, d: Dict[str, Any]) -> UpdateAccountsMetastore:
|
|
9921
|
+
"""Deserializes the UpdateAccountsMetastore from a dictionary."""
|
|
9755
9922
|
return cls(
|
|
9756
9923
|
delta_sharing_organization_name=d.get("delta_sharing_organization_name", None),
|
|
9757
9924
|
delta_sharing_recipient_token_lifetime_in_seconds=d.get(
|
|
9758
9925
|
"delta_sharing_recipient_token_lifetime_in_seconds", None
|
|
9759
9926
|
),
|
|
9760
9927
|
delta_sharing_scope=_enum(d, "delta_sharing_scope", DeltaSharingScopeEnum),
|
|
9761
|
-
id=d.get("id", None),
|
|
9762
|
-
new_name=d.get("new_name", None),
|
|
9763
9928
|
owner=d.get("owner", None),
|
|
9764
9929
|
privilege_model_version=d.get("privilege_model_version", None),
|
|
9765
9930
|
storage_root_credential_id=d.get("storage_root_credential_id", None),
|
|
9766
9931
|
)
|
|
9767
9932
|
|
|
9768
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
|
+
|
|
9769
10071
|
@dataclass
|
|
9770
10072
|
class UpdateMetastoreAssignment:
|
|
9771
10073
|
default_catalog_name: Optional[str] = None
|
|
@@ -9868,174 +10170,48 @@ class UpdateRequestExternalLineage:
|
|
|
9868
10170
|
return body
|
|
9869
10171
|
|
|
9870
10172
|
def as_shallow_dict(self) -> dict:
|
|
9871
|
-
"""Serializes the UpdateRequestExternalLineage into a shallow dictionary of its immediate attributes."""
|
|
9872
|
-
body = {}
|
|
9873
|
-
if self.columns:
|
|
9874
|
-
body["columns"] = self.columns
|
|
9875
|
-
if self.id is not None:
|
|
9876
|
-
body["id"] = self.id
|
|
9877
|
-
if self.properties:
|
|
9878
|
-
body["properties"] = self.properties
|
|
9879
|
-
if self.source:
|
|
9880
|
-
body["source"] = self.source
|
|
9881
|
-
if self.target:
|
|
9882
|
-
body["target"] = self.target
|
|
9883
|
-
return body
|
|
9884
|
-
|
|
9885
|
-
@classmethod
|
|
9886
|
-
def from_dict(cls, d: Dict[str, Any]) -> UpdateRequestExternalLineage:
|
|
9887
|
-
"""Deserializes the UpdateRequestExternalLineage from a dictionary."""
|
|
9888
|
-
return cls(
|
|
9889
|
-
columns=_repeated_dict(d, "columns", ColumnRelationship),
|
|
9890
|
-
id=d.get("id", None),
|
|
9891
|
-
properties=d.get("properties", None),
|
|
9892
|
-
source=_from_dict(d, "source", ExternalLineageObject),
|
|
9893
|
-
target=_from_dict(d, "target", ExternalLineageObject),
|
|
9894
|
-
)
|
|
9895
|
-
|
|
9896
|
-
|
|
9897
|
-
@dataclass
|
|
9898
|
-
class UpdateResponse:
|
|
9899
|
-
def as_dict(self) -> dict:
|
|
9900
|
-
"""Serializes the UpdateResponse into a dictionary suitable for use as a JSON request body."""
|
|
9901
|
-
body = {}
|
|
9902
|
-
return body
|
|
9903
|
-
|
|
9904
|
-
def as_shallow_dict(self) -> dict:
|
|
9905
|
-
"""Serializes the UpdateResponse into a shallow dictionary of its immediate attributes."""
|
|
9906
|
-
body = {}
|
|
9907
|
-
return body
|
|
9908
|
-
|
|
9909
|
-
@classmethod
|
|
9910
|
-
def from_dict(cls, d: Dict[str, Any]) -> UpdateResponse:
|
|
9911
|
-
"""Deserializes the UpdateResponse from a dictionary."""
|
|
9912
|
-
return cls()
|
|
9913
|
-
|
|
9914
|
-
|
|
9915
|
-
@dataclass
|
|
9916
|
-
class UpdateStorageCredential:
|
|
9917
|
-
aws_iam_role: Optional[AwsIamRoleRequest] = None
|
|
9918
|
-
"""The AWS IAM role configuration."""
|
|
9919
|
-
|
|
9920
|
-
azure_managed_identity: Optional[AzureManagedIdentityResponse] = None
|
|
9921
|
-
"""The Azure managed identity configuration."""
|
|
9922
|
-
|
|
9923
|
-
azure_service_principal: Optional[AzureServicePrincipal] = None
|
|
9924
|
-
"""The Azure service principal configuration."""
|
|
9925
|
-
|
|
9926
|
-
cloudflare_api_token: Optional[CloudflareApiToken] = None
|
|
9927
|
-
"""The Cloudflare API token configuration."""
|
|
9928
|
-
|
|
9929
|
-
comment: Optional[str] = None
|
|
9930
|
-
"""Comment associated with the credential."""
|
|
9931
|
-
|
|
9932
|
-
databricks_gcp_service_account: Optional[DatabricksGcpServiceAccountRequest] = None
|
|
9933
|
-
"""The Databricks managed GCP service account configuration."""
|
|
9934
|
-
|
|
9935
|
-
force: Optional[bool] = None
|
|
9936
|
-
"""Force update even if there are dependent external locations or external tables."""
|
|
9937
|
-
|
|
9938
|
-
isolation_mode: Optional[IsolationMode] = None
|
|
9939
|
-
"""Whether the current securable is accessible from all workspaces or a specific set of workspaces."""
|
|
9940
|
-
|
|
9941
|
-
name: Optional[str] = None
|
|
9942
|
-
"""Name of the storage credential."""
|
|
9943
|
-
|
|
9944
|
-
new_name: Optional[str] = None
|
|
9945
|
-
"""New name for the storage credential."""
|
|
9946
|
-
|
|
9947
|
-
owner: Optional[str] = None
|
|
9948
|
-
"""Username of current owner of credential."""
|
|
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
|
|
9949
10186
|
|
|
9950
|
-
|
|
9951
|
-
|
|
9952
|
-
|
|
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
|
+
)
|
|
9953
10197
|
|
|
9954
|
-
skip_validation: Optional[bool] = None
|
|
9955
|
-
"""Supplying true to this argument skips validation of the updated credential."""
|
|
9956
10198
|
|
|
10199
|
+
@dataclass
|
|
10200
|
+
class UpdateResponse:
|
|
9957
10201
|
def as_dict(self) -> dict:
|
|
9958
|
-
"""Serializes the
|
|
10202
|
+
"""Serializes the UpdateResponse into a dictionary suitable for use as a JSON request body."""
|
|
9959
10203
|
body = {}
|
|
9960
|
-
if self.aws_iam_role:
|
|
9961
|
-
body["aws_iam_role"] = self.aws_iam_role.as_dict()
|
|
9962
|
-
if self.azure_managed_identity:
|
|
9963
|
-
body["azure_managed_identity"] = self.azure_managed_identity.as_dict()
|
|
9964
|
-
if self.azure_service_principal:
|
|
9965
|
-
body["azure_service_principal"] = self.azure_service_principal.as_dict()
|
|
9966
|
-
if self.cloudflare_api_token:
|
|
9967
|
-
body["cloudflare_api_token"] = self.cloudflare_api_token.as_dict()
|
|
9968
|
-
if self.comment is not None:
|
|
9969
|
-
body["comment"] = self.comment
|
|
9970
|
-
if self.databricks_gcp_service_account:
|
|
9971
|
-
body["databricks_gcp_service_account"] = self.databricks_gcp_service_account.as_dict()
|
|
9972
|
-
if self.force is not None:
|
|
9973
|
-
body["force"] = self.force
|
|
9974
|
-
if self.isolation_mode is not None:
|
|
9975
|
-
body["isolation_mode"] = self.isolation_mode.value
|
|
9976
|
-
if self.name is not None:
|
|
9977
|
-
body["name"] = self.name
|
|
9978
|
-
if self.new_name is not None:
|
|
9979
|
-
body["new_name"] = self.new_name
|
|
9980
|
-
if self.owner is not None:
|
|
9981
|
-
body["owner"] = self.owner
|
|
9982
|
-
if self.read_only is not None:
|
|
9983
|
-
body["read_only"] = self.read_only
|
|
9984
|
-
if self.skip_validation is not None:
|
|
9985
|
-
body["skip_validation"] = self.skip_validation
|
|
9986
10204
|
return body
|
|
9987
10205
|
|
|
9988
10206
|
def as_shallow_dict(self) -> dict:
|
|
9989
|
-
"""Serializes the
|
|
10207
|
+
"""Serializes the UpdateResponse into a shallow dictionary of its immediate attributes."""
|
|
9990
10208
|
body = {}
|
|
9991
|
-
if self.aws_iam_role:
|
|
9992
|
-
body["aws_iam_role"] = self.aws_iam_role
|
|
9993
|
-
if self.azure_managed_identity:
|
|
9994
|
-
body["azure_managed_identity"] = self.azure_managed_identity
|
|
9995
|
-
if self.azure_service_principal:
|
|
9996
|
-
body["azure_service_principal"] = self.azure_service_principal
|
|
9997
|
-
if self.cloudflare_api_token:
|
|
9998
|
-
body["cloudflare_api_token"] = self.cloudflare_api_token
|
|
9999
|
-
if self.comment is not None:
|
|
10000
|
-
body["comment"] = self.comment
|
|
10001
|
-
if self.databricks_gcp_service_account:
|
|
10002
|
-
body["databricks_gcp_service_account"] = self.databricks_gcp_service_account
|
|
10003
|
-
if self.force is not None:
|
|
10004
|
-
body["force"] = self.force
|
|
10005
|
-
if self.isolation_mode is not None:
|
|
10006
|
-
body["isolation_mode"] = self.isolation_mode
|
|
10007
|
-
if self.name is not None:
|
|
10008
|
-
body["name"] = self.name
|
|
10009
|
-
if self.new_name is not None:
|
|
10010
|
-
body["new_name"] = self.new_name
|
|
10011
|
-
if self.owner is not None:
|
|
10012
|
-
body["owner"] = self.owner
|
|
10013
|
-
if self.read_only is not None:
|
|
10014
|
-
body["read_only"] = self.read_only
|
|
10015
|
-
if self.skip_validation is not None:
|
|
10016
|
-
body["skip_validation"] = self.skip_validation
|
|
10017
10209
|
return body
|
|
10018
10210
|
|
|
10019
10211
|
@classmethod
|
|
10020
|
-
def from_dict(cls, d: Dict[str, Any]) ->
|
|
10021
|
-
"""Deserializes the
|
|
10022
|
-
return cls(
|
|
10023
|
-
aws_iam_role=_from_dict(d, "aws_iam_role", AwsIamRoleRequest),
|
|
10024
|
-
azure_managed_identity=_from_dict(d, "azure_managed_identity", AzureManagedIdentityResponse),
|
|
10025
|
-
azure_service_principal=_from_dict(d, "azure_service_principal", AzureServicePrincipal),
|
|
10026
|
-
cloudflare_api_token=_from_dict(d, "cloudflare_api_token", CloudflareApiToken),
|
|
10027
|
-
comment=d.get("comment", None),
|
|
10028
|
-
databricks_gcp_service_account=_from_dict(
|
|
10029
|
-
d, "databricks_gcp_service_account", DatabricksGcpServiceAccountRequest
|
|
10030
|
-
),
|
|
10031
|
-
force=d.get("force", None),
|
|
10032
|
-
isolation_mode=_enum(d, "isolation_mode", IsolationMode),
|
|
10033
|
-
name=d.get("name", None),
|
|
10034
|
-
new_name=d.get("new_name", None),
|
|
10035
|
-
owner=d.get("owner", None),
|
|
10036
|
-
read_only=d.get("read_only", None),
|
|
10037
|
-
skip_validation=d.get("skip_validation", None),
|
|
10038
|
-
)
|
|
10212
|
+
def from_dict(cls, d: Dict[str, Any]) -> UpdateResponse:
|
|
10213
|
+
"""Deserializes the UpdateResponse from a dictionary."""
|
|
10214
|
+
return cls()
|
|
10039
10215
|
|
|
10040
10216
|
|
|
10041
10217
|
@dataclass
|
|
@@ -10249,6 +10425,11 @@ class VolumeInfo:
|
|
|
10249
10425
|
"""The unique identifier of the volume"""
|
|
10250
10426
|
|
|
10251
10427
|
volume_type: Optional[VolumeType] = None
|
|
10428
|
+
"""The type of the volume. An external volume is located in the specified external location. A
|
|
10429
|
+
managed volume is located in the default location which is specified by the parent schema, or
|
|
10430
|
+
the parent catalog, or the Metastore. [Learn more]
|
|
10431
|
+
|
|
10432
|
+
[Learn more]: https://docs.databricks.com/aws/en/volumes/managed-vs-external"""
|
|
10252
10433
|
|
|
10253
10434
|
def as_dict(self) -> dict:
|
|
10254
10435
|
"""Serializes the VolumeInfo into a dictionary suitable for use as a JSON request body."""
|
|
@@ -10353,11 +10534,6 @@ class VolumeInfo:
|
|
|
10353
10534
|
|
|
10354
10535
|
|
|
10355
10536
|
class VolumeType(Enum):
|
|
10356
|
-
"""The type of the volume. An external volume is located in the specified external location. A
|
|
10357
|
-
managed volume is located in the default location which is specified by the parent schema, or
|
|
10358
|
-
the parent catalog, or the Metastore. [Learn more]
|
|
10359
|
-
|
|
10360
|
-
[Learn more]: https://docs.databricks.com/aws/en/volumes/managed-vs-external"""
|
|
10361
10537
|
|
|
10362
10538
|
EXTERNAL = "EXTERNAL"
|
|
10363
10539
|
MANAGED = "MANAGED"
|
|
@@ -10413,7 +10589,7 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10413
10589
|
|
|
10414
10590
|
def create(
|
|
10415
10591
|
self, workspace_id: int, metastore_id: str, *, metastore_assignment: Optional[CreateMetastoreAssignment] = None
|
|
10416
|
-
):
|
|
10592
|
+
) -> AccountsCreateMetastoreAssignmentResponse:
|
|
10417
10593
|
"""Creates an assignment to a metastore for a workspace
|
|
10418
10594
|
|
|
10419
10595
|
:param workspace_id: int
|
|
@@ -10422,7 +10598,7 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10422
10598
|
Unity Catalog metastore ID
|
|
10423
10599
|
:param metastore_assignment: :class:`CreateMetastoreAssignment` (optional)
|
|
10424
10600
|
|
|
10425
|
-
|
|
10601
|
+
:returns: :class:`AccountsCreateMetastoreAssignmentResponse`
|
|
10426
10602
|
"""
|
|
10427
10603
|
body = {}
|
|
10428
10604
|
if metastore_assignment is not None:
|
|
@@ -10432,14 +10608,15 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10432
10608
|
"Content-Type": "application/json",
|
|
10433
10609
|
}
|
|
10434
10610
|
|
|
10435
|
-
self._api.do(
|
|
10611
|
+
res = self._api.do(
|
|
10436
10612
|
"POST",
|
|
10437
10613
|
f"/api/2.0/accounts/{self._api.account_id}/workspaces/{workspace_id}/metastores/{metastore_id}",
|
|
10438
10614
|
body=body,
|
|
10439
10615
|
headers=headers,
|
|
10440
10616
|
)
|
|
10617
|
+
return AccountsCreateMetastoreAssignmentResponse.from_dict(res)
|
|
10441
10618
|
|
|
10442
|
-
def delete(self, workspace_id: int, metastore_id: str):
|
|
10619
|
+
def delete(self, workspace_id: int, metastore_id: str) -> AccountsDeleteMetastoreAssignmentResponse:
|
|
10443
10620
|
"""Deletes a metastore assignment to a workspace, leaving the workspace with no metastore.
|
|
10444
10621
|
|
|
10445
10622
|
:param workspace_id: int
|
|
@@ -10447,23 +10624,24 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10447
10624
|
:param metastore_id: str
|
|
10448
10625
|
Unity Catalog metastore ID
|
|
10449
10626
|
|
|
10450
|
-
|
|
10627
|
+
:returns: :class:`AccountsDeleteMetastoreAssignmentResponse`
|
|
10451
10628
|
"""
|
|
10452
10629
|
|
|
10453
10630
|
headers = {
|
|
10454
10631
|
"Accept": "application/json",
|
|
10455
10632
|
}
|
|
10456
10633
|
|
|
10457
|
-
self._api.do(
|
|
10634
|
+
res = self._api.do(
|
|
10458
10635
|
"DELETE",
|
|
10459
10636
|
f"/api/2.0/accounts/{self._api.account_id}/workspaces/{workspace_id}/metastores/{metastore_id}",
|
|
10460
10637
|
headers=headers,
|
|
10461
10638
|
)
|
|
10639
|
+
return AccountsDeleteMetastoreAssignmentResponse.from_dict(res)
|
|
10462
10640
|
|
|
10463
10641
|
def get(self, workspace_id: int) -> AccountsMetastoreAssignment:
|
|
10464
10642
|
"""Gets the metastore assignment, if any, for the workspace specified by ID. If the workspace is assigned
|
|
10465
|
-
a metastore, the
|
|
10466
|
-
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.
|
|
10467
10645
|
|
|
10468
10646
|
:param workspace_id: int
|
|
10469
10647
|
Workspace ID.
|
|
@@ -10501,7 +10679,7 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10501
10679
|
|
|
10502
10680
|
def update(
|
|
10503
10681
|
self, workspace_id: int, metastore_id: str, *, metastore_assignment: Optional[UpdateMetastoreAssignment] = None
|
|
10504
|
-
):
|
|
10682
|
+
) -> AccountsUpdateMetastoreAssignmentResponse:
|
|
10505
10683
|
"""Updates an assignment to a metastore for a workspace. Currently, only the default catalog may be
|
|
10506
10684
|
updated.
|
|
10507
10685
|
|
|
@@ -10511,7 +10689,7 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10511
10689
|
Unity Catalog metastore ID
|
|
10512
10690
|
:param metastore_assignment: :class:`UpdateMetastoreAssignment` (optional)
|
|
10513
10691
|
|
|
10514
|
-
|
|
10692
|
+
:returns: :class:`AccountsUpdateMetastoreAssignmentResponse`
|
|
10515
10693
|
"""
|
|
10516
10694
|
body = {}
|
|
10517
10695
|
if metastore_assignment is not None:
|
|
@@ -10521,12 +10699,13 @@ class AccountMetastoreAssignmentsAPI:
|
|
|
10521
10699
|
"Content-Type": "application/json",
|
|
10522
10700
|
}
|
|
10523
10701
|
|
|
10524
|
-
self._api.do(
|
|
10702
|
+
res = self._api.do(
|
|
10525
10703
|
"PUT",
|
|
10526
10704
|
f"/api/2.0/accounts/{self._api.account_id}/workspaces/{workspace_id}/metastores/{metastore_id}",
|
|
10527
10705
|
body=body,
|
|
10528
10706
|
headers=headers,
|
|
10529
10707
|
)
|
|
10708
|
+
return AccountsUpdateMetastoreAssignmentResponse.from_dict(res)
|
|
10530
10709
|
|
|
10531
10710
|
|
|
10532
10711
|
class AccountMetastoresAPI:
|
|
@@ -10536,12 +10715,12 @@ class AccountMetastoresAPI:
|
|
|
10536
10715
|
def __init__(self, api_client):
|
|
10537
10716
|
self._api = api_client
|
|
10538
10717
|
|
|
10539
|
-
def create(self, *, metastore_info: Optional[
|
|
10718
|
+
def create(self, *, metastore_info: Optional[CreateAccountsMetastore] = None) -> AccountsCreateMetastoreResponse:
|
|
10540
10719
|
"""Creates a Unity Catalog metastore.
|
|
10541
10720
|
|
|
10542
|
-
:param metastore_info: :class:`
|
|
10721
|
+
:param metastore_info: :class:`CreateAccountsMetastore` (optional)
|
|
10543
10722
|
|
|
10544
|
-
:returns: :class:`
|
|
10723
|
+
:returns: :class:`AccountsCreateMetastoreResponse`
|
|
10545
10724
|
"""
|
|
10546
10725
|
body = {}
|
|
10547
10726
|
if metastore_info is not None:
|
|
@@ -10552,9 +10731,9 @@ class AccountMetastoresAPI:
|
|
|
10552
10731
|
}
|
|
10553
10732
|
|
|
10554
10733
|
res = self._api.do("POST", f"/api/2.0/accounts/{self._api.account_id}/metastores", body=body, headers=headers)
|
|
10555
|
-
return
|
|
10734
|
+
return AccountsCreateMetastoreResponse.from_dict(res)
|
|
10556
10735
|
|
|
10557
|
-
def delete(self, metastore_id: str, *, force: Optional[bool] = None):
|
|
10736
|
+
def delete(self, metastore_id: str, *, force: Optional[bool] = None) -> AccountsDeleteMetastoreResponse:
|
|
10558
10737
|
"""Deletes a Unity Catalog metastore for an account, both specified by ID.
|
|
10559
10738
|
|
|
10560
10739
|
:param metastore_id: str
|
|
@@ -10562,7 +10741,7 @@ class AccountMetastoresAPI:
|
|
|
10562
10741
|
:param force: bool (optional)
|
|
10563
10742
|
Force deletion even if the metastore is not empty. Default is false.
|
|
10564
10743
|
|
|
10565
|
-
|
|
10744
|
+
:returns: :class:`AccountsDeleteMetastoreResponse`
|
|
10566
10745
|
"""
|
|
10567
10746
|
|
|
10568
10747
|
query = {}
|
|
@@ -10572,20 +10751,21 @@ class AccountMetastoresAPI:
|
|
|
10572
10751
|
"Accept": "application/json",
|
|
10573
10752
|
}
|
|
10574
10753
|
|
|
10575
|
-
self._api.do(
|
|
10754
|
+
res = self._api.do(
|
|
10576
10755
|
"DELETE",
|
|
10577
10756
|
f"/api/2.0/accounts/{self._api.account_id}/metastores/{metastore_id}",
|
|
10578
10757
|
query=query,
|
|
10579
10758
|
headers=headers,
|
|
10580
10759
|
)
|
|
10760
|
+
return AccountsDeleteMetastoreResponse.from_dict(res)
|
|
10581
10761
|
|
|
10582
|
-
def get(self, metastore_id: str) ->
|
|
10762
|
+
def get(self, metastore_id: str) -> AccountsGetMetastoreResponse:
|
|
10583
10763
|
"""Gets a Unity Catalog metastore from an account, both specified by ID.
|
|
10584
10764
|
|
|
10585
10765
|
:param metastore_id: str
|
|
10586
10766
|
Unity Catalog metastore ID
|
|
10587
10767
|
|
|
10588
|
-
:returns: :class:`
|
|
10768
|
+
:returns: :class:`AccountsGetMetastoreResponse`
|
|
10589
10769
|
"""
|
|
10590
10770
|
|
|
10591
10771
|
headers = {
|
|
@@ -10595,7 +10775,7 @@ class AccountMetastoresAPI:
|
|
|
10595
10775
|
res = self._api.do(
|
|
10596
10776
|
"GET", f"/api/2.0/accounts/{self._api.account_id}/metastores/{metastore_id}", headers=headers
|
|
10597
10777
|
)
|
|
10598
|
-
return
|
|
10778
|
+
return AccountsGetMetastoreResponse.from_dict(res)
|
|
10599
10779
|
|
|
10600
10780
|
def list(self) -> Iterator[MetastoreInfo]:
|
|
10601
10781
|
"""Gets all Unity Catalog metastores associated with an account specified by ID.
|
|
@@ -10609,17 +10789,20 @@ class AccountMetastoresAPI:
|
|
|
10609
10789
|
}
|
|
10610
10790
|
|
|
10611
10791
|
json = self._api.do("GET", f"/api/2.0/accounts/{self._api.account_id}/metastores", headers=headers)
|
|
10612
|
-
parsed =
|
|
10792
|
+
parsed = AccountsListMetastoresResponse.from_dict(json).metastores
|
|
10613
10793
|
return parsed if parsed is not None else []
|
|
10614
10794
|
|
|
10615
|
-
def update(
|
|
10795
|
+
def update(
|
|
10796
|
+
self, metastore_id: str, *, metastore_info: Optional[UpdateAccountsMetastore] = None
|
|
10797
|
+
) -> AccountsUpdateMetastoreResponse:
|
|
10616
10798
|
"""Updates an existing Unity Catalog metastore.
|
|
10617
10799
|
|
|
10618
10800
|
:param metastore_id: str
|
|
10619
10801
|
Unity Catalog metastore ID
|
|
10620
|
-
:param metastore_info: :class:`
|
|
10802
|
+
:param metastore_info: :class:`UpdateAccountsMetastore` (optional)
|
|
10803
|
+
Properties of the metastore to change.
|
|
10621
10804
|
|
|
10622
|
-
:returns: :class:`
|
|
10805
|
+
:returns: :class:`AccountsUpdateMetastoreResponse`
|
|
10623
10806
|
"""
|
|
10624
10807
|
body = {}
|
|
10625
10808
|
if metastore_info is not None:
|
|
@@ -10632,7 +10815,7 @@ class AccountMetastoresAPI:
|
|
|
10632
10815
|
res = self._api.do(
|
|
10633
10816
|
"PUT", f"/api/2.0/accounts/{self._api.account_id}/metastores/{metastore_id}", body=body, headers=headers
|
|
10634
10817
|
)
|
|
10635
|
-
return
|
|
10818
|
+
return AccountsUpdateMetastoreResponse.from_dict(res)
|
|
10636
10819
|
|
|
10637
10820
|
|
|
10638
10821
|
class AccountStorageCredentialsAPI:
|
|
@@ -10642,25 +10825,33 @@ class AccountStorageCredentialsAPI:
|
|
|
10642
10825
|
self._api = api_client
|
|
10643
10826
|
|
|
10644
10827
|
def create(
|
|
10645
|
-
self,
|
|
10646
|
-
|
|
10647
|
-
|
|
10648
|
-
|
|
10649
|
-
|
|
10650
|
-
|
|
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
|
|
10651
10837
|
|
|
10652
|
-
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
|
|
10653
10839
|
metastore.
|
|
10654
10840
|
|
|
10655
10841
|
:param metastore_id: str
|
|
10656
10842
|
Unity Catalog metastore ID
|
|
10657
|
-
: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.
|
|
10658
10847
|
|
|
10659
|
-
:returns: :class:`
|
|
10848
|
+
:returns: :class:`AccountsCreateStorageCredentialInfo`
|
|
10660
10849
|
"""
|
|
10661
10850
|
body = {}
|
|
10662
10851
|
if credential_info is not None:
|
|
10663
10852
|
body["credential_info"] = credential_info.as_dict()
|
|
10853
|
+
if skip_validation is not None:
|
|
10854
|
+
body["skip_validation"] = skip_validation
|
|
10664
10855
|
headers = {
|
|
10665
10856
|
"Accept": "application/json",
|
|
10666
10857
|
"Content-Type": "application/json",
|
|
@@ -10672,9 +10863,11 @@ class AccountStorageCredentialsAPI:
|
|
|
10672
10863
|
body=body,
|
|
10673
10864
|
headers=headers,
|
|
10674
10865
|
)
|
|
10675
|
-
return
|
|
10866
|
+
return AccountsCreateStorageCredentialInfo.from_dict(res)
|
|
10676
10867
|
|
|
10677
|
-
def delete(
|
|
10868
|
+
def delete(
|
|
10869
|
+
self, metastore_id: str, storage_credential_name: str, *, force: Optional[bool] = None
|
|
10870
|
+
) -> AccountsDeleteStorageCredentialResponse:
|
|
10678
10871
|
"""Deletes a storage credential from the metastore. The caller must be an owner of the storage
|
|
10679
10872
|
credential.
|
|
10680
10873
|
|
|
@@ -10685,7 +10878,7 @@ class AccountStorageCredentialsAPI:
|
|
|
10685
10878
|
:param force: bool (optional)
|
|
10686
10879
|
Force deletion even if the Storage Credential is not empty. Default is false.
|
|
10687
10880
|
|
|
10688
|
-
|
|
10881
|
+
:returns: :class:`AccountsDeleteStorageCredentialResponse`
|
|
10689
10882
|
"""
|
|
10690
10883
|
|
|
10691
10884
|
query = {}
|
|
@@ -10695,12 +10888,13 @@ class AccountStorageCredentialsAPI:
|
|
|
10695
10888
|
"Accept": "application/json",
|
|
10696
10889
|
}
|
|
10697
10890
|
|
|
10698
|
-
self._api.do(
|
|
10891
|
+
res = self._api.do(
|
|
10699
10892
|
"DELETE",
|
|
10700
10893
|
f"/api/2.0/accounts/{self._api.account_id}/metastores/{metastore_id}/storage-credentials/{storage_credential_name}",
|
|
10701
10894
|
query=query,
|
|
10702
10895
|
headers=headers,
|
|
10703
10896
|
)
|
|
10897
|
+
return AccountsDeleteStorageCredentialResponse.from_dict(res)
|
|
10704
10898
|
|
|
10705
10899
|
def get(self, metastore_id: str, storage_credential_name: str) -> AccountsStorageCredentialInfo:
|
|
10706
10900
|
"""Gets a storage credential from the metastore. The caller must be a metastore admin, the owner of the
|
|
@@ -10709,7 +10903,7 @@ class AccountStorageCredentialsAPI:
|
|
|
10709
10903
|
:param metastore_id: str
|
|
10710
10904
|
Unity Catalog metastore ID
|
|
10711
10905
|
:param storage_credential_name: str
|
|
10712
|
-
Name of the storage credential.
|
|
10906
|
+
Required. Name of the storage credential.
|
|
10713
10907
|
|
|
10714
10908
|
:returns: :class:`AccountsStorageCredentialInfo`
|
|
10715
10909
|
"""
|
|
@@ -10751,22 +10945,27 @@ class AccountStorageCredentialsAPI:
|
|
|
10751
10945
|
metastore_id: str,
|
|
10752
10946
|
storage_credential_name: str,
|
|
10753
10947
|
*,
|
|
10754
|
-
credential_info: Optional[
|
|
10755
|
-
|
|
10948
|
+
credential_info: Optional[UpdateAccountsStorageCredential] = None,
|
|
10949
|
+
skip_validation: Optional[bool] = None,
|
|
10950
|
+
) -> AccountsUpdateStorageCredentialResponse:
|
|
10756
10951
|
"""Updates a storage credential on the metastore. The caller must be the owner of the storage credential.
|
|
10757
|
-
If the caller is a metastore admin, only the
|
|
10952
|
+
If the caller is a metastore admin, only the **owner** credential can be changed.
|
|
10758
10953
|
|
|
10759
10954
|
:param metastore_id: str
|
|
10760
10955
|
Unity Catalog metastore ID
|
|
10761
10956
|
:param storage_credential_name: str
|
|
10762
10957
|
Name of the storage credential.
|
|
10763
|
-
: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.
|
|
10764
10961
|
|
|
10765
|
-
:returns: :class:`
|
|
10962
|
+
:returns: :class:`AccountsUpdateStorageCredentialResponse`
|
|
10766
10963
|
"""
|
|
10767
10964
|
body = {}
|
|
10768
10965
|
if credential_info is not None:
|
|
10769
10966
|
body["credential_info"] = credential_info.as_dict()
|
|
10967
|
+
if skip_validation is not None:
|
|
10968
|
+
body["skip_validation"] = skip_validation
|
|
10770
10969
|
headers = {
|
|
10771
10970
|
"Accept": "application/json",
|
|
10772
10971
|
"Content-Type": "application/json",
|
|
@@ -10778,7 +10977,7 @@ class AccountStorageCredentialsAPI:
|
|
|
10778
10977
|
body=body,
|
|
10779
10978
|
headers=headers,
|
|
10780
10979
|
)
|
|
10781
|
-
return
|
|
10980
|
+
return AccountsUpdateStorageCredentialResponse.from_dict(res)
|
|
10782
10981
|
|
|
10783
10982
|
|
|
10784
10983
|
class ArtifactAllowlistsAPI:
|
|
@@ -10971,6 +11170,7 @@ class CatalogsAPI:
|
|
|
10971
11170
|
self,
|
|
10972
11171
|
*,
|
|
10973
11172
|
include_browse: Optional[bool] = None,
|
|
11173
|
+
include_unbound: Optional[bool] = None,
|
|
10974
11174
|
max_results: Optional[int] = None,
|
|
10975
11175
|
page_token: Optional[str] = None,
|
|
10976
11176
|
) -> Iterator[CatalogInfo]:
|
|
@@ -10979,9 +11179,20 @@ class CatalogsAPI:
|
|
|
10979
11179
|
**USE_CATALOG** privilege) will be retrieved. There is no guarantee of a specific ordering of the
|
|
10980
11180
|
elements in the array.
|
|
10981
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
|
+
|
|
10982
11190
|
:param include_browse: bool (optional)
|
|
10983
11191
|
Whether to include catalogs in the response for which the principal can only access selective
|
|
10984
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.
|
|
10985
11196
|
:param max_results: int (optional)
|
|
10986
11197
|
Maximum number of catalogs to return. - when set to 0, the page length is set to a server configured
|
|
10987
11198
|
value (recommended); - when set to a value greater than 0, the page length is the minimum of this
|
|
@@ -10999,6 +11210,8 @@ class CatalogsAPI:
|
|
|
10999
11210
|
query = {}
|
|
11000
11211
|
if include_browse is not None:
|
|
11001
11212
|
query["include_browse"] = include_browse
|
|
11213
|
+
if include_unbound is not None:
|
|
11214
|
+
query["include_unbound"] = include_unbound
|
|
11002
11215
|
if max_results is not None:
|
|
11003
11216
|
query["max_results"] = max_results
|
|
11004
11217
|
if page_token is not None:
|
|
@@ -11172,6 +11385,14 @@ class ConnectionsAPI:
|
|
|
11172
11385
|
def list(self, *, max_results: Optional[int] = None, page_token: Optional[str] = None) -> Iterator[ConnectionInfo]:
|
|
11173
11386
|
"""List all connections.
|
|
11174
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
|
+
|
|
11175
11396
|
:param max_results: int (optional)
|
|
11176
11397
|
Maximum number of connections to return. - If not set, all connections are returned (not
|
|
11177
11398
|
recommended). - when set to a value greater than 0, the page length is the minimum of this value and
|
|
@@ -11388,6 +11609,7 @@ class CredentialsAPI:
|
|
|
11388
11609
|
def list_credentials(
|
|
11389
11610
|
self,
|
|
11390
11611
|
*,
|
|
11612
|
+
include_unbound: Optional[bool] = None,
|
|
11391
11613
|
max_results: Optional[int] = None,
|
|
11392
11614
|
page_token: Optional[str] = None,
|
|
11393
11615
|
purpose: Optional[CredentialPurpose] = None,
|
|
@@ -11398,6 +11620,9 @@ class CredentialsAPI:
|
|
|
11398
11620
|
is a metastore admin, retrieval of credentials is unrestricted. There is no guarantee of a specific
|
|
11399
11621
|
ordering of the elements in the array.
|
|
11400
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.
|
|
11401
11626
|
:param max_results: int (optional)
|
|
11402
11627
|
Maximum number of credentials to return. - If not set, the default max page size is used. - When set
|
|
11403
11628
|
to a value greater than 0, the page length is the minimum of this value and a server-configured
|
|
@@ -11412,6 +11637,8 @@ class CredentialsAPI:
|
|
|
11412
11637
|
"""
|
|
11413
11638
|
|
|
11414
11639
|
query = {}
|
|
11640
|
+
if include_unbound is not None:
|
|
11641
|
+
query["include_unbound"] = include_unbound
|
|
11415
11642
|
if max_results is not None:
|
|
11416
11643
|
query["max_results"] = max_results
|
|
11417
11644
|
if page_token is not None:
|
|
@@ -12035,6 +12262,7 @@ class ExternalLocationsAPI:
|
|
|
12035
12262
|
self,
|
|
12036
12263
|
*,
|
|
12037
12264
|
include_browse: Optional[bool] = None,
|
|
12265
|
+
include_unbound: Optional[bool] = None,
|
|
12038
12266
|
max_results: Optional[int] = None,
|
|
12039
12267
|
page_token: Optional[str] = None,
|
|
12040
12268
|
) -> Iterator[ExternalLocationInfo]:
|
|
@@ -12042,9 +12270,20 @@ class ExternalLocationsAPI:
|
|
|
12042
12270
|
must be a metastore admin, the owner of the external location, or a user that has some privilege on
|
|
12043
12271
|
the external location. There is no guarantee of a specific ordering of the elements in the array.
|
|
12044
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
|
+
|
|
12045
12281
|
:param include_browse: bool (optional)
|
|
12046
12282
|
Whether to include external locations in the response for which the principal can only access
|
|
12047
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.
|
|
12048
12287
|
:param max_results: int (optional)
|
|
12049
12288
|
Maximum number of external locations to return. If not set, all the external locations are returned
|
|
12050
12289
|
(not recommended). - when set to a value greater than 0, the page length is the minimum of this
|
|
@@ -12059,6 +12298,8 @@ class ExternalLocationsAPI:
|
|
|
12059
12298
|
query = {}
|
|
12060
12299
|
if include_browse is not None:
|
|
12061
12300
|
query["include_browse"] = include_browse
|
|
12301
|
+
if include_unbound is not None:
|
|
12302
|
+
query["include_unbound"] = include_unbound
|
|
12062
12303
|
if max_results is not None:
|
|
12063
12304
|
query["max_results"] = max_results
|
|
12064
12305
|
if page_token is not None:
|
|
@@ -12344,7 +12585,7 @@ class FunctionsAPI:
|
|
|
12344
12585
|
|
|
12345
12586
|
:param name: str
|
|
12346
12587
|
The fully-qualified name of the function (of the form
|
|
12347
|
-
__catalog_name__.__schema_name__.__function__name__).
|
|
12588
|
+
__catalog_name__.__schema_name__.__function__name__) .
|
|
12348
12589
|
:param force: bool (optional)
|
|
12349
12590
|
Force deletion even if the function is notempty.
|
|
12350
12591
|
|
|
@@ -12354,9 +12595,7 @@ class FunctionsAPI:
|
|
|
12354
12595
|
query = {}
|
|
12355
12596
|
if force is not None:
|
|
12356
12597
|
query["force"] = force
|
|
12357
|
-
headers = {
|
|
12358
|
-
"Accept": "application/json",
|
|
12359
|
-
}
|
|
12598
|
+
headers = {}
|
|
12360
12599
|
|
|
12361
12600
|
self._api.do("DELETE", f"/api/2.1/unity-catalog/functions/{name}", query=query, headers=headers)
|
|
12362
12601
|
|
|
@@ -12403,6 +12642,14 @@ class FunctionsAPI:
|
|
|
12403
12642
|
functions for which either the user has the **EXECUTE** privilege or the user is the owner. There is
|
|
12404
12643
|
no guarantee of a specific ordering of the elements in the array.
|
|
12405
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
|
+
|
|
12406
12653
|
:param catalog_name: str
|
|
12407
12654
|
Name of parent catalog for functions of interest.
|
|
12408
12655
|
:param schema_name: str
|
|
@@ -12457,7 +12704,7 @@ class FunctionsAPI:
|
|
|
12457
12704
|
The fully-qualified name of the function (of the form
|
|
12458
12705
|
__catalog_name__.__schema_name__.__function__name__).
|
|
12459
12706
|
:param owner: str (optional)
|
|
12460
|
-
Username of current owner of function.
|
|
12707
|
+
Username of current owner of the function.
|
|
12461
12708
|
|
|
12462
12709
|
:returns: :class:`FunctionInfo`
|
|
12463
12710
|
"""
|
|
@@ -12747,6 +12994,14 @@ class MetastoresAPI:
|
|
|
12747
12994
|
"""Gets an array of the available metastores (as __MetastoreInfo__ objects). The caller must be an admin
|
|
12748
12995
|
to retrieve this info. There is no guarantee of a specific ordering of the elements in the array.
|
|
12749
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
|
+
|
|
12750
13005
|
:param max_results: int (optional)
|
|
12751
13006
|
Maximum number of metastores to return. - when set to a value greater than 0, the page length is the
|
|
12752
13007
|
minimum of this value and a server configured value; - when set to 0, the page length is set to a
|
|
@@ -13067,7 +13322,29 @@ class ModelVersionsAPI:
|
|
|
13067
13322
|
return
|
|
13068
13323
|
query["page_token"] = json["next_page_token"]
|
|
13069
13324
|
|
|
13070
|
-
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:
|
|
13071
13348
|
"""Updates the specified model version.
|
|
13072
13349
|
|
|
13073
13350
|
The caller must be a metastore admin or an owner of the parent registered model. For the latter case,
|
|
@@ -13080,14 +13357,80 @@ class ModelVersionsAPI:
|
|
|
13080
13357
|
The three-level (fully qualified) name of the model version
|
|
13081
13358
|
:param version: int
|
|
13082
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
|
|
13083
13364
|
:param comment: str (optional)
|
|
13084
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
|
|
13085
13396
|
|
|
13086
13397
|
:returns: :class:`ModelVersionInfo`
|
|
13087
13398
|
"""
|
|
13088
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
|
|
13089
13404
|
if comment is not None:
|
|
13090
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
|
|
13091
13434
|
headers = {
|
|
13092
13435
|
"Accept": "application/json",
|
|
13093
13436
|
"Content-Type": "application/json",
|
|
@@ -13795,20 +14138,29 @@ class RegisteredModelsAPI:
|
|
|
13795
14138
|
new model version, or update permissions on the registered model, users must be owners of the registered
|
|
13796
14139
|
model.
|
|
13797
14140
|
|
|
13798
|
-
Note: The securable type for models is
|
|
13799
|
-
|
|
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."""
|
|
13800
14143
|
|
|
13801
14144
|
def __init__(self, api_client):
|
|
13802
14145
|
self._api = api_client
|
|
13803
14146
|
|
|
13804
14147
|
def create(
|
|
13805
14148
|
self,
|
|
13806
|
-
catalog_name: str,
|
|
13807
|
-
schema_name: str,
|
|
13808
|
-
name: str,
|
|
13809
14149
|
*,
|
|
14150
|
+
aliases: Optional[List[RegisteredModelAlias]] = None,
|
|
14151
|
+
browse_only: Optional[bool] = None,
|
|
14152
|
+
catalog_name: Optional[str] = None,
|
|
13810
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,
|
|
13811
14161
|
storage_location: Optional[str] = None,
|
|
14162
|
+
updated_at: Optional[int] = None,
|
|
14163
|
+
updated_by: Optional[str] = None,
|
|
13812
14164
|
) -> RegisteredModelInfo:
|
|
13813
14165
|
"""Creates a new registered model in Unity Catalog.
|
|
13814
14166
|
|
|
@@ -13820,30 +14172,67 @@ class RegisteredModelsAPI:
|
|
|
13820
14172
|
**USE_CATALOG** privilege on the parent catalog and the **USE_SCHEMA** privilege on the parent schema.
|
|
13821
14173
|
- The caller must have the **CREATE MODEL** or **CREATE FUNCTION** privilege on the parent schema.
|
|
13822
14174
|
|
|
13823
|
-
: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)
|
|
13824
14181
|
The name of the catalog where the schema and the registered model reside
|
|
13825
|
-
:param schema_name: str
|
|
13826
|
-
The name of the schema where the registered model resides
|
|
13827
|
-
:param name: str
|
|
13828
|
-
The name of the registered model
|
|
13829
14182
|
:param comment: str (optional)
|
|
13830
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
|
|
13831
14198
|
:param storage_location: str (optional)
|
|
13832
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
|
|
13833
14204
|
|
|
13834
14205
|
:returns: :class:`RegisteredModelInfo`
|
|
13835
14206
|
"""
|
|
13836
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
|
|
13837
14212
|
if catalog_name is not None:
|
|
13838
14213
|
body["catalog_name"] = catalog_name
|
|
13839
14214
|
if comment is not None:
|
|
13840
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
|
|
13841
14224
|
if name is not None:
|
|
13842
14225
|
body["name"] = name
|
|
14226
|
+
if owner is not None:
|
|
14227
|
+
body["owner"] = owner
|
|
13843
14228
|
if schema_name is not None:
|
|
13844
14229
|
body["schema_name"] = schema_name
|
|
13845
14230
|
if storage_location is not None:
|
|
13846
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
|
|
13847
14236
|
headers = {
|
|
13848
14237
|
"Accept": "application/json",
|
|
13849
14238
|
"Content-Type": "application/json",
|
|
@@ -14001,7 +14390,7 @@ class RegisteredModelsAPI:
|
|
|
14001
14390
|
**USE_SCHEMA** privilege on the parent schema.
|
|
14002
14391
|
|
|
14003
14392
|
:param full_name: str
|
|
14004
|
-
|
|
14393
|
+
The three-level (fully qualified) name of the registered model
|
|
14005
14394
|
:param alias: str
|
|
14006
14395
|
The name of the alias
|
|
14007
14396
|
:param version_num: int
|
|
@@ -14026,9 +14415,20 @@ class RegisteredModelsAPI:
|
|
|
14026
14415
|
self,
|
|
14027
14416
|
full_name: str,
|
|
14028
14417
|
*,
|
|
14418
|
+
aliases: Optional[List[RegisteredModelAlias]] = None,
|
|
14419
|
+
browse_only: Optional[bool] = None,
|
|
14420
|
+
catalog_name: Optional[str] = None,
|
|
14029
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,
|
|
14030
14426
|
new_name: Optional[str] = None,
|
|
14031
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,
|
|
14032
14432
|
) -> RegisteredModelInfo:
|
|
14033
14433
|
"""Updates the specified registered model.
|
|
14034
14434
|
|
|
@@ -14040,22 +14440,67 @@ class RegisteredModelsAPI:
|
|
|
14040
14440
|
|
|
14041
14441
|
:param full_name: str
|
|
14042
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
|
|
14043
14450
|
:param comment: str (optional)
|
|
14044
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
|
|
14045
14460
|
:param new_name: str (optional)
|
|
14046
14461
|
New name for the registered model.
|
|
14047
14462
|
:param owner: str (optional)
|
|
14048
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
|
|
14049
14472
|
|
|
14050
14473
|
:returns: :class:`RegisteredModelInfo`
|
|
14051
14474
|
"""
|
|
14052
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
|
|
14053
14482
|
if comment is not None:
|
|
14054
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
|
|
14055
14492
|
if new_name is not None:
|
|
14056
14493
|
body["new_name"] = new_name
|
|
14057
14494
|
if owner is not None:
|
|
14058
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
|
|
14059
14504
|
headers = {
|
|
14060
14505
|
"Accept": "application/json",
|
|
14061
14506
|
"Content-Type": "application/json",
|
|
@@ -14354,6 +14799,14 @@ class SchemasAPI:
|
|
|
14354
14799
|
owned by the caller (or for which the caller has the **USE_SCHEMA** privilege) will be retrieved.
|
|
14355
14800
|
There is no guarantee of a specific ordering of the elements in the array.
|
|
14356
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
|
+
|
|
14357
14810
|
:param catalog_name: str
|
|
14358
14811
|
Parent catalog for schemas of interest.
|
|
14359
14812
|
:param include_browse: bool (optional)
|
|
@@ -14565,13 +15018,28 @@ class StorageCredentialsAPI:
|
|
|
14565
15018
|
return StorageCredentialInfo.from_dict(res)
|
|
14566
15019
|
|
|
14567
15020
|
def list(
|
|
14568
|
-
self,
|
|
15021
|
+
self,
|
|
15022
|
+
*,
|
|
15023
|
+
include_unbound: Optional[bool] = None,
|
|
15024
|
+
max_results: Optional[int] = None,
|
|
15025
|
+
page_token: Optional[str] = None,
|
|
14569
15026
|
) -> Iterator[StorageCredentialInfo]:
|
|
14570
15027
|
"""Gets an array of storage credentials (as __StorageCredentialInfo__ objects). The array is limited to
|
|
14571
15028
|
only those storage credentials the caller has permission to access. If the caller is a metastore
|
|
14572
15029
|
admin, retrieval of credentials is unrestricted. There is no guarantee of a specific ordering of the
|
|
14573
15030
|
elements in the array.
|
|
14574
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.
|
|
14575
15043
|
:param max_results: int (optional)
|
|
14576
15044
|
Maximum number of storage credentials to return. If not set, all the storage credentials are
|
|
14577
15045
|
returned (not recommended). - when set to a value greater than 0, the page length is the minimum of
|
|
@@ -14585,6 +15053,8 @@ class StorageCredentialsAPI:
|
|
|
14585
15053
|
"""
|
|
14586
15054
|
|
|
14587
15055
|
query = {}
|
|
15056
|
+
if include_unbound is not None:
|
|
15057
|
+
query["include_unbound"] = include_unbound
|
|
14588
15058
|
if max_results is not None:
|
|
14589
15059
|
query["max_results"] = max_results
|
|
14590
15060
|
if page_token is not None:
|
|
@@ -14820,6 +15290,14 @@ class SystemSchemasAPI:
|
|
|
14820
15290
|
"""Gets an array of system schemas for a metastore. The caller must be an account admin or a metastore
|
|
14821
15291
|
admin.
|
|
14822
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
|
+
|
|
14823
15301
|
:param metastore_id: str
|
|
14824
15302
|
The ID for the metastore in which the system schema resides.
|
|
14825
15303
|
:param max_results: int (optional)
|
|
@@ -15116,6 +15594,14 @@ class TablesAPI:
|
|
|
15116
15594
|
catalog and the **USE_SCHEMA** privilege on the parent schema. There is no guarantee of a specific
|
|
15117
15595
|
ordering of the elements in the array.
|
|
15118
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
|
+
|
|
15119
15605
|
:param catalog_name: str
|
|
15120
15606
|
Name of parent catalog for tables of interest.
|
|
15121
15607
|
:param schema_name: str
|
|
@@ -15424,6 +15910,11 @@ class VolumesAPI:
|
|
|
15424
15910
|
:param name: str
|
|
15425
15911
|
The name of the volume
|
|
15426
15912
|
:param volume_type: :class:`VolumeType`
|
|
15913
|
+
The type of the volume. An external volume is located in the specified external location. A managed
|
|
15914
|
+
volume is located in the default location which is specified by the parent schema, or the parent
|
|
15915
|
+
catalog, or the Metastore. [Learn more]
|
|
15916
|
+
|
|
15917
|
+
[Learn more]: https://docs.databricks.com/aws/en/volumes/managed-vs-external
|
|
15427
15918
|
:param comment: str (optional)
|
|
15428
15919
|
The comment attached to the volume
|
|
15429
15920
|
:param storage_location: str (optional)
|
|
@@ -15482,7 +15973,7 @@ class VolumesAPI:
|
|
|
15482
15973
|
|
|
15483
15974
|
The returned volumes are filtered based on the privileges of the calling user. For example, the
|
|
15484
15975
|
metastore admin is able to list all the volumes. A regular user needs to be the owner or have the
|
|
15485
|
-
**READ VOLUME** privilege on the volume to
|
|
15976
|
+
**READ VOLUME** privilege on the volume to receive the volumes in the response. For the latter case,
|
|
15486
15977
|
the caller must also be the owner or have the **USE_CATALOG** privilege on the parent catalog and the
|
|
15487
15978
|
**USE_SCHEMA** privilege on the parent schema.
|
|
15488
15979
|
|
|
@@ -15739,9 +16230,11 @@ class WorkspaceBindingsAPI:
|
|
|
15739
16230
|
:param securable_name: str
|
|
15740
16231
|
The name of the securable.
|
|
15741
16232
|
:param add: List[:class:`WorkspaceBinding`] (optional)
|
|
15742
|
-
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).
|
|
15743
16236
|
:param remove: List[:class:`WorkspaceBinding`] (optional)
|
|
15744
|
-
List of workspace bindings.
|
|
16237
|
+
List of workspace bindings to remove.
|
|
15745
16238
|
|
|
15746
16239
|
:returns: :class:`UpdateWorkspaceBindingsResponse`
|
|
15747
16240
|
"""
|