databricks-sdk 0.0.7__py3-none-any.whl → 0.1.1__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 +121 -104
- databricks/sdk/core.py +76 -16
- databricks/sdk/dbutils.py +18 -17
- databricks/sdk/mixins/compute.py +6 -6
- databricks/sdk/mixins/dbfs.py +6 -6
- databricks/sdk/oauth.py +28 -14
- databricks/sdk/service/{unitycatalog.py → catalog.py} +375 -1146
- databricks/sdk/service/{clusters.py → compute.py} +2176 -61
- databricks/sdk/service/{dbfs.py → files.py} +6 -6
- databricks/sdk/service/{scim.py → iam.py} +567 -27
- databricks/sdk/service/jobs.py +44 -34
- databricks/sdk/service/{mlflow.py → ml.py} +976 -1071
- databricks/sdk/service/oauth2.py +3 -3
- databricks/sdk/service/pipelines.py +46 -30
- databricks/sdk/service/{deployment.py → provisioning.py} +47 -29
- databricks/sdk/service/settings.py +849 -0
- databricks/sdk/service/sharing.py +1176 -0
- databricks/sdk/service/sql.py +15 -15
- databricks/sdk/service/workspace.py +917 -22
- databricks/sdk/version.py +1 -1
- {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/METADATA +3 -1
- databricks_sdk-0.1.1.dist-info/RECORD +37 -0
- databricks/sdk/service/clusterpolicies.py +0 -399
- databricks/sdk/service/commands.py +0 -478
- databricks/sdk/service/gitcredentials.py +0 -202
- databricks/sdk/service/globalinitscripts.py +0 -262
- databricks/sdk/service/instancepools.py +0 -757
- databricks/sdk/service/ipaccesslists.py +0 -340
- databricks/sdk/service/libraries.py +0 -282
- databricks/sdk/service/permissions.py +0 -470
- databricks/sdk/service/repos.py +0 -250
- databricks/sdk/service/secrets.py +0 -472
- databricks/sdk/service/tokenmanagement.py +0 -182
- databricks/sdk/service/tokens.py +0 -137
- databricks/sdk/service/workspaceconf.py +0 -50
- databricks_sdk-0.0.7.dist-info/RECORD +0 -48
- /databricks/sdk/service/{endpoints.py → serving.py} +0 -0
- {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/LICENSE +0 -0
- {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/NOTICE +0 -0
- {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/WHEEL +0 -0
- {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/top_level.txt +0 -0
|
@@ -1,470 +0,0 @@
|
|
|
1
|
-
# Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
|
|
2
|
-
|
|
3
|
-
import logging
|
|
4
|
-
from dataclasses import dataclass
|
|
5
|
-
from enum import Enum
|
|
6
|
-
from typing import Dict, Iterator, List
|
|
7
|
-
|
|
8
|
-
from ._internal import _enum, _from_dict, _repeated
|
|
9
|
-
|
|
10
|
-
_LOG = logging.getLogger('databricks.sdk')
|
|
11
|
-
|
|
12
|
-
# all definitions in this file are in alphabetical order
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@dataclass
|
|
16
|
-
class AccessControlRequest:
|
|
17
|
-
group_name: str = None
|
|
18
|
-
permission_level: 'PermissionLevel' = None
|
|
19
|
-
service_principal_name: str = None
|
|
20
|
-
user_name: str = None
|
|
21
|
-
|
|
22
|
-
def as_dict(self) -> dict:
|
|
23
|
-
body = {}
|
|
24
|
-
if self.group_name: body['group_name'] = self.group_name
|
|
25
|
-
if self.permission_level: body['permission_level'] = self.permission_level.value
|
|
26
|
-
if self.service_principal_name: body['service_principal_name'] = self.service_principal_name
|
|
27
|
-
if self.user_name: body['user_name'] = self.user_name
|
|
28
|
-
return body
|
|
29
|
-
|
|
30
|
-
@classmethod
|
|
31
|
-
def from_dict(cls, d: Dict[str, any]) -> 'AccessControlRequest':
|
|
32
|
-
return cls(group_name=d.get('group_name', None),
|
|
33
|
-
permission_level=_enum(d, 'permission_level', PermissionLevel),
|
|
34
|
-
service_principal_name=d.get('service_principal_name', None),
|
|
35
|
-
user_name=d.get('user_name', None))
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
@dataclass
|
|
39
|
-
class AccessControlResponse:
|
|
40
|
-
all_permissions: 'List[Permission]' = None
|
|
41
|
-
group_name: str = None
|
|
42
|
-
service_principal_name: str = None
|
|
43
|
-
user_name: str = None
|
|
44
|
-
|
|
45
|
-
def as_dict(self) -> dict:
|
|
46
|
-
body = {}
|
|
47
|
-
if self.all_permissions: body['all_permissions'] = [v.as_dict() for v in self.all_permissions]
|
|
48
|
-
if self.group_name: body['group_name'] = self.group_name
|
|
49
|
-
if self.service_principal_name: body['service_principal_name'] = self.service_principal_name
|
|
50
|
-
if self.user_name: body['user_name'] = self.user_name
|
|
51
|
-
return body
|
|
52
|
-
|
|
53
|
-
@classmethod
|
|
54
|
-
def from_dict(cls, d: Dict[str, any]) -> 'AccessControlResponse':
|
|
55
|
-
return cls(all_permissions=_repeated(d, 'all_permissions', Permission),
|
|
56
|
-
group_name=d.get('group_name', None),
|
|
57
|
-
service_principal_name=d.get('service_principal_name', None),
|
|
58
|
-
user_name=d.get('user_name', None))
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
@dataclass
|
|
62
|
-
class DeleteWorkspaceAssignmentRequest:
|
|
63
|
-
"""Delete permissions assignment"""
|
|
64
|
-
|
|
65
|
-
workspace_id: int
|
|
66
|
-
principal_id: int
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
@dataclass
|
|
70
|
-
class Get:
|
|
71
|
-
"""Get object permissions"""
|
|
72
|
-
|
|
73
|
-
request_object_type: str
|
|
74
|
-
request_object_id: str
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
@dataclass
|
|
78
|
-
class GetPermissionLevels:
|
|
79
|
-
"""Get permission levels"""
|
|
80
|
-
|
|
81
|
-
request_object_type: str
|
|
82
|
-
request_object_id: str
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
@dataclass
|
|
86
|
-
class GetPermissionLevelsResponse:
|
|
87
|
-
permission_levels: 'List[PermissionsDescription]' = None
|
|
88
|
-
|
|
89
|
-
def as_dict(self) -> dict:
|
|
90
|
-
body = {}
|
|
91
|
-
if self.permission_levels: body['permission_levels'] = [v.as_dict() for v in self.permission_levels]
|
|
92
|
-
return body
|
|
93
|
-
|
|
94
|
-
@classmethod
|
|
95
|
-
def from_dict(cls, d: Dict[str, any]) -> 'GetPermissionLevelsResponse':
|
|
96
|
-
return cls(permission_levels=_repeated(d, 'permission_levels', PermissionsDescription))
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
@dataclass
|
|
100
|
-
class GetWorkspaceAssignmentRequest:
|
|
101
|
-
"""List workspace permissions"""
|
|
102
|
-
|
|
103
|
-
workspace_id: int
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
@dataclass
|
|
107
|
-
class ListWorkspaceAssignmentRequest:
|
|
108
|
-
"""Get permission assignments"""
|
|
109
|
-
|
|
110
|
-
workspace_id: int
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
@dataclass
|
|
114
|
-
class ObjectPermissions:
|
|
115
|
-
access_control_list: 'List[AccessControlResponse]' = None
|
|
116
|
-
object_id: str = None
|
|
117
|
-
object_type: str = None
|
|
118
|
-
|
|
119
|
-
def as_dict(self) -> dict:
|
|
120
|
-
body = {}
|
|
121
|
-
if self.access_control_list:
|
|
122
|
-
body['access_control_list'] = [v.as_dict() for v in self.access_control_list]
|
|
123
|
-
if self.object_id: body['object_id'] = self.object_id
|
|
124
|
-
if self.object_type: body['object_type'] = self.object_type
|
|
125
|
-
return body
|
|
126
|
-
|
|
127
|
-
@classmethod
|
|
128
|
-
def from_dict(cls, d: Dict[str, any]) -> 'ObjectPermissions':
|
|
129
|
-
return cls(access_control_list=_repeated(d, 'access_control_list', AccessControlResponse),
|
|
130
|
-
object_id=d.get('object_id', None),
|
|
131
|
-
object_type=d.get('object_type', None))
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
@dataclass
|
|
135
|
-
class Permission:
|
|
136
|
-
inherited: bool = None
|
|
137
|
-
inherited_from_object: 'List[str]' = None
|
|
138
|
-
permission_level: 'PermissionLevel' = None
|
|
139
|
-
|
|
140
|
-
def as_dict(self) -> dict:
|
|
141
|
-
body = {}
|
|
142
|
-
if self.inherited: body['inherited'] = self.inherited
|
|
143
|
-
if self.inherited_from_object: body['inherited_from_object'] = [v for v in self.inherited_from_object]
|
|
144
|
-
if self.permission_level: body['permission_level'] = self.permission_level.value
|
|
145
|
-
return body
|
|
146
|
-
|
|
147
|
-
@classmethod
|
|
148
|
-
def from_dict(cls, d: Dict[str, any]) -> 'Permission':
|
|
149
|
-
return cls(inherited=d.get('inherited', None),
|
|
150
|
-
inherited_from_object=d.get('inherited_from_object', None),
|
|
151
|
-
permission_level=_enum(d, 'permission_level', PermissionLevel))
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
@dataclass
|
|
155
|
-
class PermissionAssignment:
|
|
156
|
-
error: str = None
|
|
157
|
-
permissions: 'List[WorkspacePermission]' = None
|
|
158
|
-
principal: 'PrincipalOutput' = None
|
|
159
|
-
|
|
160
|
-
def as_dict(self) -> dict:
|
|
161
|
-
body = {}
|
|
162
|
-
if self.error: body['error'] = self.error
|
|
163
|
-
if self.permissions: body['permissions'] = [v for v in self.permissions]
|
|
164
|
-
if self.principal: body['principal'] = self.principal.as_dict()
|
|
165
|
-
return body
|
|
166
|
-
|
|
167
|
-
@classmethod
|
|
168
|
-
def from_dict(cls, d: Dict[str, any]) -> 'PermissionAssignment':
|
|
169
|
-
return cls(error=d.get('error', None),
|
|
170
|
-
permissions=d.get('permissions', None),
|
|
171
|
-
principal=_from_dict(d, 'principal', PrincipalOutput))
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
@dataclass
|
|
175
|
-
class PermissionAssignments:
|
|
176
|
-
permission_assignments: 'List[PermissionAssignment]' = None
|
|
177
|
-
|
|
178
|
-
def as_dict(self) -> dict:
|
|
179
|
-
body = {}
|
|
180
|
-
if self.permission_assignments:
|
|
181
|
-
body['permission_assignments'] = [v.as_dict() for v in self.permission_assignments]
|
|
182
|
-
return body
|
|
183
|
-
|
|
184
|
-
@classmethod
|
|
185
|
-
def from_dict(cls, d: Dict[str, any]) -> 'PermissionAssignments':
|
|
186
|
-
return cls(permission_assignments=_repeated(d, 'permission_assignments', PermissionAssignment))
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
class PermissionLevel(Enum):
|
|
190
|
-
"""Permission level"""
|
|
191
|
-
|
|
192
|
-
CAN_ATTACH_TO = 'CAN_ATTACH_TO'
|
|
193
|
-
CAN_BIND = 'CAN_BIND'
|
|
194
|
-
CAN_EDIT = 'CAN_EDIT'
|
|
195
|
-
CAN_EDIT_METADATA = 'CAN_EDIT_METADATA'
|
|
196
|
-
CAN_MANAGE = 'CAN_MANAGE'
|
|
197
|
-
CAN_MANAGE_PRODUCTION_VERSIONS = 'CAN_MANAGE_PRODUCTION_VERSIONS'
|
|
198
|
-
CAN_MANAGE_RUN = 'CAN_MANAGE_RUN'
|
|
199
|
-
CAN_MANAGE_STAGING_VERSIONS = 'CAN_MANAGE_STAGING_VERSIONS'
|
|
200
|
-
CAN_READ = 'CAN_READ'
|
|
201
|
-
CAN_RESTART = 'CAN_RESTART'
|
|
202
|
-
CAN_RUN = 'CAN_RUN'
|
|
203
|
-
CAN_USE = 'CAN_USE'
|
|
204
|
-
CAN_VIEW = 'CAN_VIEW'
|
|
205
|
-
CAN_VIEW_METADATA = 'CAN_VIEW_METADATA'
|
|
206
|
-
IS_OWNER = 'IS_OWNER'
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
@dataclass
|
|
210
|
-
class PermissionOutput:
|
|
211
|
-
description: str = None
|
|
212
|
-
permission_level: 'WorkspacePermission' = None
|
|
213
|
-
|
|
214
|
-
def as_dict(self) -> dict:
|
|
215
|
-
body = {}
|
|
216
|
-
if self.description: body['description'] = self.description
|
|
217
|
-
if self.permission_level: body['permission_level'] = self.permission_level.value
|
|
218
|
-
return body
|
|
219
|
-
|
|
220
|
-
@classmethod
|
|
221
|
-
def from_dict(cls, d: Dict[str, any]) -> 'PermissionOutput':
|
|
222
|
-
return cls(description=d.get('description', None),
|
|
223
|
-
permission_level=_enum(d, 'permission_level', WorkspacePermission))
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
@dataclass
|
|
227
|
-
class PermissionsDescription:
|
|
228
|
-
description: str = None
|
|
229
|
-
permission_level: 'PermissionLevel' = None
|
|
230
|
-
|
|
231
|
-
def as_dict(self) -> dict:
|
|
232
|
-
body = {}
|
|
233
|
-
if self.description: body['description'] = self.description
|
|
234
|
-
if self.permission_level: body['permission_level'] = self.permission_level.value
|
|
235
|
-
return body
|
|
236
|
-
|
|
237
|
-
@classmethod
|
|
238
|
-
def from_dict(cls, d: Dict[str, any]) -> 'PermissionsDescription':
|
|
239
|
-
return cls(description=d.get('description', None),
|
|
240
|
-
permission_level=_enum(d, 'permission_level', PermissionLevel))
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
@dataclass
|
|
244
|
-
class PermissionsRequest:
|
|
245
|
-
request_object_type: str
|
|
246
|
-
request_object_id: str
|
|
247
|
-
access_control_list: 'List[AccessControlRequest]' = None
|
|
248
|
-
|
|
249
|
-
def as_dict(self) -> dict:
|
|
250
|
-
body = {}
|
|
251
|
-
if self.access_control_list:
|
|
252
|
-
body['access_control_list'] = [v.as_dict() for v in self.access_control_list]
|
|
253
|
-
if self.request_object_id: body['request_object_id'] = self.request_object_id
|
|
254
|
-
if self.request_object_type: body['request_object_type'] = self.request_object_type
|
|
255
|
-
return body
|
|
256
|
-
|
|
257
|
-
@classmethod
|
|
258
|
-
def from_dict(cls, d: Dict[str, any]) -> 'PermissionsRequest':
|
|
259
|
-
return cls(access_control_list=_repeated(d, 'access_control_list', AccessControlRequest),
|
|
260
|
-
request_object_id=d.get('request_object_id', None),
|
|
261
|
-
request_object_type=d.get('request_object_type', None))
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
@dataclass
|
|
265
|
-
class PrincipalOutput:
|
|
266
|
-
display_name: str = None
|
|
267
|
-
group_name: str = None
|
|
268
|
-
principal_id: int = None
|
|
269
|
-
service_principal_name: str = None
|
|
270
|
-
user_name: str = None
|
|
271
|
-
|
|
272
|
-
def as_dict(self) -> dict:
|
|
273
|
-
body = {}
|
|
274
|
-
if self.display_name: body['display_name'] = self.display_name
|
|
275
|
-
if self.group_name: body['group_name'] = self.group_name
|
|
276
|
-
if self.principal_id: body['principal_id'] = self.principal_id
|
|
277
|
-
if self.service_principal_name: body['service_principal_name'] = self.service_principal_name
|
|
278
|
-
if self.user_name: body['user_name'] = self.user_name
|
|
279
|
-
return body
|
|
280
|
-
|
|
281
|
-
@classmethod
|
|
282
|
-
def from_dict(cls, d: Dict[str, any]) -> 'PrincipalOutput':
|
|
283
|
-
return cls(display_name=d.get('display_name', None),
|
|
284
|
-
group_name=d.get('group_name', None),
|
|
285
|
-
principal_id=d.get('principal_id', None),
|
|
286
|
-
service_principal_name=d.get('service_principal_name', None),
|
|
287
|
-
user_name=d.get('user_name', None))
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
@dataclass
|
|
291
|
-
class UpdateWorkspaceAssignments:
|
|
292
|
-
permissions: 'List[WorkspacePermission]'
|
|
293
|
-
workspace_id: int
|
|
294
|
-
principal_id: int
|
|
295
|
-
|
|
296
|
-
def as_dict(self) -> dict:
|
|
297
|
-
body = {}
|
|
298
|
-
if self.permissions: body['permissions'] = [v for v in self.permissions]
|
|
299
|
-
if self.principal_id: body['principal_id'] = self.principal_id
|
|
300
|
-
if self.workspace_id: body['workspace_id'] = self.workspace_id
|
|
301
|
-
return body
|
|
302
|
-
|
|
303
|
-
@classmethod
|
|
304
|
-
def from_dict(cls, d: Dict[str, any]) -> 'UpdateWorkspaceAssignments':
|
|
305
|
-
return cls(permissions=d.get('permissions', None),
|
|
306
|
-
principal_id=d.get('principal_id', None),
|
|
307
|
-
workspace_id=d.get('workspace_id', None))
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
class WorkspacePermission(Enum):
|
|
311
|
-
|
|
312
|
-
ADMIN = 'ADMIN'
|
|
313
|
-
UNKNOWN = 'UNKNOWN'
|
|
314
|
-
USER = 'USER'
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
@dataclass
|
|
318
|
-
class WorkspacePermissions:
|
|
319
|
-
permissions: 'List[PermissionOutput]' = None
|
|
320
|
-
|
|
321
|
-
def as_dict(self) -> dict:
|
|
322
|
-
body = {}
|
|
323
|
-
if self.permissions: body['permissions'] = [v.as_dict() for v in self.permissions]
|
|
324
|
-
return body
|
|
325
|
-
|
|
326
|
-
@classmethod
|
|
327
|
-
def from_dict(cls, d: Dict[str, any]) -> 'WorkspacePermissions':
|
|
328
|
-
return cls(permissions=_repeated(d, 'permissions', PermissionOutput))
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
class PermissionsAPI:
|
|
332
|
-
"""Permissions API are used to create read, write, edit, update and manage access for various users on
|
|
333
|
-
different objects and endpoints."""
|
|
334
|
-
|
|
335
|
-
def __init__(self, api_client):
|
|
336
|
-
self._api = api_client
|
|
337
|
-
|
|
338
|
-
def get(self, request_object_type: str, request_object_id: str, **kwargs) -> ObjectPermissions:
|
|
339
|
-
"""Get object permissions.
|
|
340
|
-
|
|
341
|
-
Gets the permission of an object. Objects can inherit permissions from their parent objects or root
|
|
342
|
-
objects."""
|
|
343
|
-
request = kwargs.get('request', None)
|
|
344
|
-
if not request: # request is not given through keyed args
|
|
345
|
-
request = Get(request_object_id=request_object_id, request_object_type=request_object_type)
|
|
346
|
-
|
|
347
|
-
json = self._api.do(
|
|
348
|
-
'GET', f'/api/2.0/permissions/{request.request_object_type}/{request.request_object_id}')
|
|
349
|
-
return ObjectPermissions.from_dict(json)
|
|
350
|
-
|
|
351
|
-
def get_permission_levels(self, request_object_type: str, request_object_id: str,
|
|
352
|
-
**kwargs) -> GetPermissionLevelsResponse:
|
|
353
|
-
"""Get permission levels.
|
|
354
|
-
|
|
355
|
-
Gets the permission levels that a user can have on an object."""
|
|
356
|
-
request = kwargs.get('request', None)
|
|
357
|
-
if not request: # request is not given through keyed args
|
|
358
|
-
request = GetPermissionLevels(request_object_id=request_object_id,
|
|
359
|
-
request_object_type=request_object_type)
|
|
360
|
-
|
|
361
|
-
json = self._api.do(
|
|
362
|
-
'GET',
|
|
363
|
-
f'/api/2.0/permissions/{request.request_object_type}/{request.request_object_id}/permissionLevels'
|
|
364
|
-
)
|
|
365
|
-
return GetPermissionLevelsResponse.from_dict(json)
|
|
366
|
-
|
|
367
|
-
def set(self,
|
|
368
|
-
request_object_type: str,
|
|
369
|
-
request_object_id: str,
|
|
370
|
-
*,
|
|
371
|
-
access_control_list: List[AccessControlRequest] = None,
|
|
372
|
-
**kwargs):
|
|
373
|
-
"""Set permissions.
|
|
374
|
-
|
|
375
|
-
Sets permissions on object. Objects can inherit permissions from their parent objects and root
|
|
376
|
-
objects."""
|
|
377
|
-
request = kwargs.get('request', None)
|
|
378
|
-
if not request: # request is not given through keyed args
|
|
379
|
-
request = PermissionsRequest(access_control_list=access_control_list,
|
|
380
|
-
request_object_id=request_object_id,
|
|
381
|
-
request_object_type=request_object_type)
|
|
382
|
-
body = request.as_dict()
|
|
383
|
-
self._api.do('PUT',
|
|
384
|
-
f'/api/2.0/permissions/{request.request_object_type}/{request.request_object_id}',
|
|
385
|
-
body=body)
|
|
386
|
-
|
|
387
|
-
def update(self,
|
|
388
|
-
request_object_type: str,
|
|
389
|
-
request_object_id: str,
|
|
390
|
-
*,
|
|
391
|
-
access_control_list: List[AccessControlRequest] = None,
|
|
392
|
-
**kwargs):
|
|
393
|
-
"""Update permission.
|
|
394
|
-
|
|
395
|
-
Updates the permissions on an object."""
|
|
396
|
-
request = kwargs.get('request', None)
|
|
397
|
-
if not request: # request is not given through keyed args
|
|
398
|
-
request = PermissionsRequest(access_control_list=access_control_list,
|
|
399
|
-
request_object_id=request_object_id,
|
|
400
|
-
request_object_type=request_object_type)
|
|
401
|
-
body = request.as_dict()
|
|
402
|
-
self._api.do('PATCH',
|
|
403
|
-
f'/api/2.0/permissions/{request.request_object_type}/{request.request_object_id}',
|
|
404
|
-
body=body)
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
class WorkspaceAssignmentAPI:
|
|
408
|
-
"""The Workspace Permission Assignment API allows you to manage workspace permissions for principals in your
|
|
409
|
-
account."""
|
|
410
|
-
|
|
411
|
-
def __init__(self, api_client):
|
|
412
|
-
self._api = api_client
|
|
413
|
-
|
|
414
|
-
def delete(self, workspace_id: int, principal_id: int, **kwargs):
|
|
415
|
-
"""Delete permissions assignment.
|
|
416
|
-
|
|
417
|
-
Deletes the workspace permissions assignment in a given account and workspace for the specified
|
|
418
|
-
principal."""
|
|
419
|
-
request = kwargs.get('request', None)
|
|
420
|
-
if not request: # request is not given through keyed args
|
|
421
|
-
request = DeleteWorkspaceAssignmentRequest(principal_id=principal_id, workspace_id=workspace_id)
|
|
422
|
-
|
|
423
|
-
self._api.do(
|
|
424
|
-
'DELETE',
|
|
425
|
-
f'/api/2.0/accounts/{self._api.account_id}/workspaces/{request.workspace_id}/permissionassignments/principals/{request.principal_id}'
|
|
426
|
-
)
|
|
427
|
-
|
|
428
|
-
def get(self, workspace_id: int, **kwargs) -> WorkspacePermissions:
|
|
429
|
-
"""List workspace permissions.
|
|
430
|
-
|
|
431
|
-
Get an array of workspace permissions for the specified account and workspace."""
|
|
432
|
-
request = kwargs.get('request', None)
|
|
433
|
-
if not request: # request is not given through keyed args
|
|
434
|
-
request = GetWorkspaceAssignmentRequest(workspace_id=workspace_id)
|
|
435
|
-
|
|
436
|
-
json = self._api.do(
|
|
437
|
-
'GET',
|
|
438
|
-
f'/api/2.0/accounts/{self._api.account_id}/workspaces/{request.workspace_id}/permissionassignments/permissions'
|
|
439
|
-
)
|
|
440
|
-
return WorkspacePermissions.from_dict(json)
|
|
441
|
-
|
|
442
|
-
def list(self, workspace_id: int, **kwargs) -> Iterator[PermissionAssignment]:
|
|
443
|
-
"""Get permission assignments.
|
|
444
|
-
|
|
445
|
-
Get the permission assignments for the specified Databricks Account and Databricks Workspace."""
|
|
446
|
-
request = kwargs.get('request', None)
|
|
447
|
-
if not request: # request is not given through keyed args
|
|
448
|
-
request = ListWorkspaceAssignmentRequest(workspace_id=workspace_id)
|
|
449
|
-
|
|
450
|
-
json = self._api.do(
|
|
451
|
-
'GET',
|
|
452
|
-
f'/api/2.0/accounts/{self._api.account_id}/workspaces/{request.workspace_id}/permissionassignments'
|
|
453
|
-
)
|
|
454
|
-
return [PermissionAssignment.from_dict(v) for v in json.get('permission_assignments', [])]
|
|
455
|
-
|
|
456
|
-
def update(self, permissions: List[WorkspacePermission], workspace_id: int, principal_id: int, **kwargs):
|
|
457
|
-
"""Create or update permissions assignment.
|
|
458
|
-
|
|
459
|
-
Creates or updates the workspace permissions assignment in a given account and workspace for the
|
|
460
|
-
specified principal."""
|
|
461
|
-
request = kwargs.get('request', None)
|
|
462
|
-
if not request: # request is not given through keyed args
|
|
463
|
-
request = UpdateWorkspaceAssignments(permissions=permissions,
|
|
464
|
-
principal_id=principal_id,
|
|
465
|
-
workspace_id=workspace_id)
|
|
466
|
-
body = request.as_dict()
|
|
467
|
-
self._api.do(
|
|
468
|
-
'PUT',
|
|
469
|
-
f'/api/2.0/accounts/{self._api.account_id}/workspaces/{request.workspace_id}/permissionassignments/principals/{request.principal_id}',
|
|
470
|
-
body=body)
|