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.

Files changed (41) hide show
  1. databricks/sdk/__init__.py +121 -104
  2. databricks/sdk/core.py +76 -16
  3. databricks/sdk/dbutils.py +18 -17
  4. databricks/sdk/mixins/compute.py +6 -6
  5. databricks/sdk/mixins/dbfs.py +6 -6
  6. databricks/sdk/oauth.py +28 -14
  7. databricks/sdk/service/{unitycatalog.py → catalog.py} +375 -1146
  8. databricks/sdk/service/{clusters.py → compute.py} +2176 -61
  9. databricks/sdk/service/{dbfs.py → files.py} +6 -6
  10. databricks/sdk/service/{scim.py → iam.py} +567 -27
  11. databricks/sdk/service/jobs.py +44 -34
  12. databricks/sdk/service/{mlflow.py → ml.py} +976 -1071
  13. databricks/sdk/service/oauth2.py +3 -3
  14. databricks/sdk/service/pipelines.py +46 -30
  15. databricks/sdk/service/{deployment.py → provisioning.py} +47 -29
  16. databricks/sdk/service/settings.py +849 -0
  17. databricks/sdk/service/sharing.py +1176 -0
  18. databricks/sdk/service/sql.py +15 -15
  19. databricks/sdk/service/workspace.py +917 -22
  20. databricks/sdk/version.py +1 -1
  21. {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/METADATA +3 -1
  22. databricks_sdk-0.1.1.dist-info/RECORD +37 -0
  23. databricks/sdk/service/clusterpolicies.py +0 -399
  24. databricks/sdk/service/commands.py +0 -478
  25. databricks/sdk/service/gitcredentials.py +0 -202
  26. databricks/sdk/service/globalinitscripts.py +0 -262
  27. databricks/sdk/service/instancepools.py +0 -757
  28. databricks/sdk/service/ipaccesslists.py +0 -340
  29. databricks/sdk/service/libraries.py +0 -282
  30. databricks/sdk/service/permissions.py +0 -470
  31. databricks/sdk/service/repos.py +0 -250
  32. databricks/sdk/service/secrets.py +0 -472
  33. databricks/sdk/service/tokenmanagement.py +0 -182
  34. databricks/sdk/service/tokens.py +0 -137
  35. databricks/sdk/service/workspaceconf.py +0 -50
  36. databricks_sdk-0.0.7.dist-info/RECORD +0 -48
  37. /databricks/sdk/service/{endpoints.py → serving.py} +0 -0
  38. {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/LICENSE +0 -0
  39. {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/NOTICE +0 -0
  40. {databricks_sdk-0.0.7.dist-info → databricks_sdk-0.1.1.dist-info}/WHEEL +0 -0
  41. {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)