databricks-sdk 0.29.0__py3-none-any.whl → 0.30.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 +67 -19
- databricks/sdk/config.py +61 -75
- databricks/sdk/core.py +16 -9
- databricks/sdk/credentials_provider.py +15 -15
- databricks/sdk/data_plane.py +65 -0
- databricks/sdk/mixins/files.py +12 -4
- databricks/sdk/service/apps.py +977 -0
- databricks/sdk/service/billing.py +602 -218
- databricks/sdk/service/catalog.py +131 -34
- databricks/sdk/service/compute.py +494 -81
- databricks/sdk/service/dashboards.py +608 -5
- databricks/sdk/service/iam.py +99 -88
- databricks/sdk/service/jobs.py +34 -15
- databricks/sdk/service/marketplace.py +2 -122
- databricks/sdk/service/oauth2.py +127 -70
- databricks/sdk/service/pipelines.py +72 -52
- databricks/sdk/service/serving.py +303 -750
- databricks/sdk/service/settings.py +423 -4
- databricks/sdk/service/sharing.py +235 -25
- databricks/sdk/service/sql.py +2417 -566
- databricks/sdk/useragent.py +144 -0
- databricks/sdk/version.py +1 -1
- {databricks_sdk-0.29.0.dist-info → databricks_sdk-0.30.0.dist-info}/METADATA +36 -16
- {databricks_sdk-0.29.0.dist-info → databricks_sdk-0.30.0.dist-info}/RECORD +28 -25
- {databricks_sdk-0.29.0.dist-info → databricks_sdk-0.30.0.dist-info}/WHEEL +1 -1
- {databricks_sdk-0.29.0.dist-info → databricks_sdk-0.30.0.dist-info}/LICENSE +0 -0
- {databricks_sdk-0.29.0.dist-info → databricks_sdk-0.30.0.dist-info}/NOTICE +0 -0
- {databricks_sdk-0.29.0.dist-info → databricks_sdk-0.30.0.dist-info}/top_level.txt +0 -0
databricks/sdk/service/iam.py
CHANGED
|
@@ -132,16 +132,16 @@ class DeleteResponse:
|
|
|
132
132
|
|
|
133
133
|
|
|
134
134
|
@dataclass
|
|
135
|
-
class
|
|
135
|
+
class DeleteWorkspacePermissionAssignmentResponse:
|
|
136
136
|
|
|
137
137
|
def as_dict(self) -> dict:
|
|
138
|
-
"""Serializes the
|
|
138
|
+
"""Serializes the DeleteWorkspacePermissionAssignmentResponse into a dictionary suitable for use as a JSON request body."""
|
|
139
139
|
body = {}
|
|
140
140
|
return body
|
|
141
141
|
|
|
142
142
|
@classmethod
|
|
143
|
-
def from_dict(cls, d: Dict[str, any]) ->
|
|
144
|
-
"""Deserializes the
|
|
143
|
+
def from_dict(cls, d: Dict[str, any]) -> DeleteWorkspacePermissionAssignmentResponse:
|
|
144
|
+
"""Deserializes the DeleteWorkspacePermissionAssignmentResponse from a dictionary."""
|
|
145
145
|
return cls()
|
|
146
146
|
|
|
147
147
|
|
|
@@ -406,6 +406,56 @@ class ListUsersResponse:
|
|
|
406
406
|
total_results=d.get('totalResults', None))
|
|
407
407
|
|
|
408
408
|
|
|
409
|
+
@dataclass
|
|
410
|
+
class MigratePermissionsRequest:
|
|
411
|
+
workspace_id: int
|
|
412
|
+
"""WorkspaceId of the associated workspace where the permission migration will occur."""
|
|
413
|
+
|
|
414
|
+
from_workspace_group_name: str
|
|
415
|
+
"""The name of the workspace group that permissions will be migrated from."""
|
|
416
|
+
|
|
417
|
+
to_account_group_name: str
|
|
418
|
+
"""The name of the account group that permissions will be migrated to."""
|
|
419
|
+
|
|
420
|
+
size: Optional[int] = None
|
|
421
|
+
"""The maximum number of permissions that will be migrated."""
|
|
422
|
+
|
|
423
|
+
def as_dict(self) -> dict:
|
|
424
|
+
"""Serializes the MigratePermissionsRequest into a dictionary suitable for use as a JSON request body."""
|
|
425
|
+
body = {}
|
|
426
|
+
if self.from_workspace_group_name is not None:
|
|
427
|
+
body['from_workspace_group_name'] = self.from_workspace_group_name
|
|
428
|
+
if self.size is not None: body['size'] = self.size
|
|
429
|
+
if self.to_account_group_name is not None: body['to_account_group_name'] = self.to_account_group_name
|
|
430
|
+
if self.workspace_id is not None: body['workspace_id'] = self.workspace_id
|
|
431
|
+
return body
|
|
432
|
+
|
|
433
|
+
@classmethod
|
|
434
|
+
def from_dict(cls, d: Dict[str, any]) -> MigratePermissionsRequest:
|
|
435
|
+
"""Deserializes the MigratePermissionsRequest from a dictionary."""
|
|
436
|
+
return cls(from_workspace_group_name=d.get('from_workspace_group_name', None),
|
|
437
|
+
size=d.get('size', None),
|
|
438
|
+
to_account_group_name=d.get('to_account_group_name', None),
|
|
439
|
+
workspace_id=d.get('workspace_id', None))
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
@dataclass
|
|
443
|
+
class MigratePermissionsResponse:
|
|
444
|
+
permissions_migrated: Optional[int] = None
|
|
445
|
+
"""Number of permissions migrated."""
|
|
446
|
+
|
|
447
|
+
def as_dict(self) -> dict:
|
|
448
|
+
"""Serializes the MigratePermissionsResponse into a dictionary suitable for use as a JSON request body."""
|
|
449
|
+
body = {}
|
|
450
|
+
if self.permissions_migrated is not None: body['permissions_migrated'] = self.permissions_migrated
|
|
451
|
+
return body
|
|
452
|
+
|
|
453
|
+
@classmethod
|
|
454
|
+
def from_dict(cls, d: Dict[str, any]) -> MigratePermissionsResponse:
|
|
455
|
+
"""Deserializes the MigratePermissionsResponse from a dictionary."""
|
|
456
|
+
return cls(permissions_migrated=d.get('permissions_migrated', None))
|
|
457
|
+
|
|
458
|
+
|
|
409
459
|
@dataclass
|
|
410
460
|
class Name:
|
|
411
461
|
family_name: Optional[str] = None
|
|
@@ -723,6 +773,9 @@ class Permission:
|
|
|
723
773
|
|
|
724
774
|
@dataclass
|
|
725
775
|
class PermissionAssignment:
|
|
776
|
+
"""The output format for existing workspace PermissionAssignment records, which contains some info
|
|
777
|
+
for user consumption."""
|
|
778
|
+
|
|
726
779
|
error: Optional[str] = None
|
|
727
780
|
"""Error response associated with a workspace permission assignment, if any."""
|
|
728
781
|
|
|
@@ -777,6 +830,7 @@ class PermissionLevel(Enum):
|
|
|
777
830
|
CAN_MANAGE_PRODUCTION_VERSIONS = 'CAN_MANAGE_PRODUCTION_VERSIONS'
|
|
778
831
|
CAN_MANAGE_RUN = 'CAN_MANAGE_RUN'
|
|
779
832
|
CAN_MANAGE_STAGING_VERSIONS = 'CAN_MANAGE_STAGING_VERSIONS'
|
|
833
|
+
CAN_MONITOR = 'CAN_MONITOR'
|
|
780
834
|
CAN_QUERY = 'CAN_QUERY'
|
|
781
835
|
CAN_READ = 'CAN_READ'
|
|
782
836
|
CAN_RESTART = 'CAN_RESTART'
|
|
@@ -787,57 +841,6 @@ class PermissionLevel(Enum):
|
|
|
787
841
|
IS_OWNER = 'IS_OWNER'
|
|
788
842
|
|
|
789
843
|
|
|
790
|
-
@dataclass
|
|
791
|
-
class PermissionMigrationRequest:
|
|
792
|
-
workspace_id: int
|
|
793
|
-
"""WorkspaceId of the associated workspace where the permission migration will occur. Both
|
|
794
|
-
workspace group and account group must be in this workspace."""
|
|
795
|
-
|
|
796
|
-
from_workspace_group_name: str
|
|
797
|
-
"""The name of the workspace group that permissions will be migrated from."""
|
|
798
|
-
|
|
799
|
-
to_account_group_name: str
|
|
800
|
-
"""The name of the account group that permissions will be migrated to."""
|
|
801
|
-
|
|
802
|
-
size: Optional[int] = None
|
|
803
|
-
"""The maximum number of permissions that will be migrated."""
|
|
804
|
-
|
|
805
|
-
def as_dict(self) -> dict:
|
|
806
|
-
"""Serializes the PermissionMigrationRequest into a dictionary suitable for use as a JSON request body."""
|
|
807
|
-
body = {}
|
|
808
|
-
if self.from_workspace_group_name is not None:
|
|
809
|
-
body['from_workspace_group_name'] = self.from_workspace_group_name
|
|
810
|
-
if self.size is not None: body['size'] = self.size
|
|
811
|
-
if self.to_account_group_name is not None: body['to_account_group_name'] = self.to_account_group_name
|
|
812
|
-
if self.workspace_id is not None: body['workspace_id'] = self.workspace_id
|
|
813
|
-
return body
|
|
814
|
-
|
|
815
|
-
@classmethod
|
|
816
|
-
def from_dict(cls, d: Dict[str, any]) -> PermissionMigrationRequest:
|
|
817
|
-
"""Deserializes the PermissionMigrationRequest from a dictionary."""
|
|
818
|
-
return cls(from_workspace_group_name=d.get('from_workspace_group_name', None),
|
|
819
|
-
size=d.get('size', None),
|
|
820
|
-
to_account_group_name=d.get('to_account_group_name', None),
|
|
821
|
-
workspace_id=d.get('workspace_id', None))
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
@dataclass
|
|
825
|
-
class PermissionMigrationResponse:
|
|
826
|
-
permissions_migrated: Optional[int] = None
|
|
827
|
-
"""Number of permissions migrated."""
|
|
828
|
-
|
|
829
|
-
def as_dict(self) -> dict:
|
|
830
|
-
"""Serializes the PermissionMigrationResponse into a dictionary suitable for use as a JSON request body."""
|
|
831
|
-
body = {}
|
|
832
|
-
if self.permissions_migrated is not None: body['permissions_migrated'] = self.permissions_migrated
|
|
833
|
-
return body
|
|
834
|
-
|
|
835
|
-
@classmethod
|
|
836
|
-
def from_dict(cls, d: Dict[str, any]) -> PermissionMigrationResponse:
|
|
837
|
-
"""Deserializes the PermissionMigrationResponse from a dictionary."""
|
|
838
|
-
return cls(permissions_migrated=d.get('permissions_migrated', None))
|
|
839
|
-
|
|
840
|
-
|
|
841
844
|
@dataclass
|
|
842
845
|
class PermissionOutput:
|
|
843
846
|
description: Optional[str] = None
|
|
@@ -888,9 +891,9 @@ class PermissionsRequest:
|
|
|
888
891
|
"""The id of the request object."""
|
|
889
892
|
|
|
890
893
|
request_object_type: Optional[str] = None
|
|
891
|
-
"""The type of the request object. Can be one of the following: authorization, clusters,
|
|
892
|
-
cluster-policies, directories, experiments, files, instance-pools, jobs,
|
|
893
|
-
registered-models, repos, serving-endpoints, or warehouses."""
|
|
894
|
+
"""The type of the request object. Can be one of the following: alerts, authorization, clusters,
|
|
895
|
+
cluster-policies, dbsql-dashboards, directories, experiments, files, instance-pools, jobs,
|
|
896
|
+
notebooks, pipelines, queries, registered-models, repos, serving-endpoints, or warehouses."""
|
|
894
897
|
|
|
895
898
|
def as_dict(self) -> dict:
|
|
896
899
|
"""Serializes the PermissionsRequest into a dictionary suitable for use as a JSON request body."""
|
|
@@ -911,6 +914,8 @@ class PermissionsRequest:
|
|
|
911
914
|
|
|
912
915
|
@dataclass
|
|
913
916
|
class PrincipalOutput:
|
|
917
|
+
"""Information about the principal assigned to the workspace."""
|
|
918
|
+
|
|
914
919
|
display_name: Optional[str] = None
|
|
915
920
|
"""The display name of the principal."""
|
|
916
921
|
|
|
@@ -1134,16 +1139,18 @@ class UpdateRuleSetRequest:
|
|
|
1134
1139
|
|
|
1135
1140
|
@dataclass
|
|
1136
1141
|
class UpdateWorkspaceAssignments:
|
|
1137
|
-
permissions: List[WorkspacePermission]
|
|
1138
|
-
"""Array of permissions assignments to update on the workspace.
|
|
1139
|
-
|
|
1142
|
+
permissions: Optional[List[WorkspacePermission]] = None
|
|
1143
|
+
"""Array of permissions assignments to update on the workspace. Valid values are "USER" and "ADMIN"
|
|
1144
|
+
(case-sensitive). If both "USER" and "ADMIN" are provided, "ADMIN" takes precedence. Other
|
|
1145
|
+
values will be ignored. Note that excluding this field, or providing unsupported values, will
|
|
1146
|
+
have the same effect as providing an empty list, which will result in the deletion of all
|
|
1140
1147
|
permissions for the principal."""
|
|
1141
1148
|
|
|
1142
1149
|
principal_id: Optional[int] = None
|
|
1143
1150
|
"""The ID of the user, service principal, or group."""
|
|
1144
1151
|
|
|
1145
1152
|
workspace_id: Optional[int] = None
|
|
1146
|
-
"""The workspace ID."""
|
|
1153
|
+
"""The workspace ID for the account."""
|
|
1147
1154
|
|
|
1148
1155
|
def as_dict(self) -> dict:
|
|
1149
1156
|
"""Serializes the UpdateWorkspaceAssignments into a dictionary suitable for use as a JSON request body."""
|
|
@@ -2495,7 +2502,7 @@ class GroupsAPI:
|
|
|
2495
2502
|
|
|
2496
2503
|
|
|
2497
2504
|
class PermissionMigrationAPI:
|
|
2498
|
-
"""
|
|
2505
|
+
"""APIs for migrating acl permissions, used only by the ucx tool: https://github.com/databrickslabs/ucx"""
|
|
2499
2506
|
|
|
2500
2507
|
def __init__(self, api_client):
|
|
2501
2508
|
self._api = api_client
|
|
@@ -2505,14 +2512,11 @@ class PermissionMigrationAPI:
|
|
|
2505
2512
|
from_workspace_group_name: str,
|
|
2506
2513
|
to_account_group_name: str,
|
|
2507
2514
|
*,
|
|
2508
|
-
size: Optional[int] = None) ->
|
|
2515
|
+
size: Optional[int] = None) -> MigratePermissionsResponse:
|
|
2509
2516
|
"""Migrate Permissions.
|
|
2510
2517
|
|
|
2511
|
-
Migrate a batch of permissions from a workspace local group to an account group.
|
|
2512
|
-
|
|
2513
2518
|
:param workspace_id: int
|
|
2514
|
-
WorkspaceId of the associated workspace where the permission migration will occur.
|
|
2515
|
-
group and account group must be in this workspace.
|
|
2519
|
+
WorkspaceId of the associated workspace where the permission migration will occur.
|
|
2516
2520
|
:param from_workspace_group_name: str
|
|
2517
2521
|
The name of the workspace group that permissions will be migrated from.
|
|
2518
2522
|
:param to_account_group_name: str
|
|
@@ -2520,7 +2524,7 @@ class PermissionMigrationAPI:
|
|
|
2520
2524
|
:param size: int (optional)
|
|
2521
2525
|
The maximum number of permissions that will be migrated.
|
|
2522
2526
|
|
|
2523
|
-
:returns: :class:`
|
|
2527
|
+
:returns: :class:`MigratePermissionsResponse`
|
|
2524
2528
|
"""
|
|
2525
2529
|
body = {}
|
|
2526
2530
|
if from_workspace_group_name is not None:
|
|
@@ -2531,13 +2535,15 @@ class PermissionMigrationAPI:
|
|
|
2531
2535
|
headers = {'Accept': 'application/json', 'Content-Type': 'application/json', }
|
|
2532
2536
|
|
|
2533
2537
|
res = self._api.do('POST', '/api/2.0/permissionmigration', body=body, headers=headers)
|
|
2534
|
-
return
|
|
2538
|
+
return MigratePermissionsResponse.from_dict(res)
|
|
2535
2539
|
|
|
2536
2540
|
|
|
2537
2541
|
class PermissionsAPI:
|
|
2538
2542
|
"""Permissions API are used to create read, write, edit, update and manage access for various users on
|
|
2539
2543
|
different objects and endpoints.
|
|
2540
2544
|
|
|
2545
|
+
* **[Apps permissions](:service:apps)** — Manage which users can manage or use apps.
|
|
2546
|
+
|
|
2541
2547
|
* **[Cluster permissions](:service:clusters)** — Manage which users can manage, restart, or attach to
|
|
2542
2548
|
clusters.
|
|
2543
2549
|
|
|
@@ -2573,7 +2579,7 @@ class PermissionsAPI:
|
|
|
2573
2579
|
* **[Token permissions](:service:tokenmanagement)** — Manage which users can create or use tokens.
|
|
2574
2580
|
|
|
2575
2581
|
* **[Workspace object permissions](:service:workspace)** — Manage which users can read, run, edit, or
|
|
2576
|
-
manage directories, files, and
|
|
2582
|
+
manage alerts, dbsql-dashboards, directories, files, notebooks and queries.
|
|
2577
2583
|
|
|
2578
2584
|
For the mapping of the required permissions for specific actions or abilities and other important
|
|
2579
2585
|
information, see [Access Control].
|
|
@@ -2593,9 +2599,9 @@ class PermissionsAPI:
|
|
|
2593
2599
|
object.
|
|
2594
2600
|
|
|
2595
2601
|
:param request_object_type: str
|
|
2596
|
-
The type of the request object. Can be one of the following: authorization, clusters,
|
|
2597
|
-
cluster-policies, directories, experiments, files, instance-pools, jobs,
|
|
2598
|
-
registered-models, repos, serving-endpoints, or warehouses.
|
|
2602
|
+
The type of the request object. Can be one of the following: alerts, authorization, clusters,
|
|
2603
|
+
cluster-policies, dbsql-dashboards, directories, experiments, files, instance-pools, jobs,
|
|
2604
|
+
notebooks, pipelines, queries, registered-models, repos, serving-endpoints, or warehouses.
|
|
2599
2605
|
:param request_object_id: str
|
|
2600
2606
|
The id of the request object.
|
|
2601
2607
|
|
|
@@ -2641,9 +2647,9 @@ class PermissionsAPI:
|
|
|
2641
2647
|
object.
|
|
2642
2648
|
|
|
2643
2649
|
:param request_object_type: str
|
|
2644
|
-
The type of the request object. Can be one of the following: authorization, clusters,
|
|
2645
|
-
cluster-policies, directories, experiments, files, instance-pools, jobs,
|
|
2646
|
-
registered-models, repos, serving-endpoints, or warehouses.
|
|
2650
|
+
The type of the request object. Can be one of the following: alerts, authorization, clusters,
|
|
2651
|
+
cluster-policies, dbsql-dashboards, directories, experiments, files, instance-pools, jobs,
|
|
2652
|
+
notebooks, pipelines, queries, registered-models, repos, serving-endpoints, or warehouses.
|
|
2647
2653
|
:param request_object_id: str
|
|
2648
2654
|
The id of the request object.
|
|
2649
2655
|
:param access_control_list: List[:class:`AccessControlRequest`] (optional)
|
|
@@ -2672,9 +2678,9 @@ class PermissionsAPI:
|
|
|
2672
2678
|
root object.
|
|
2673
2679
|
|
|
2674
2680
|
:param request_object_type: str
|
|
2675
|
-
The type of the request object. Can be one of the following: authorization, clusters,
|
|
2676
|
-
cluster-policies, directories, experiments, files, instance-pools, jobs,
|
|
2677
|
-
registered-models, repos, serving-endpoints, or warehouses.
|
|
2681
|
+
The type of the request object. Can be one of the following: alerts, authorization, clusters,
|
|
2682
|
+
cluster-policies, dbsql-dashboards, directories, experiments, files, instance-pools, jobs,
|
|
2683
|
+
notebooks, pipelines, queries, registered-models, repos, serving-endpoints, or warehouses.
|
|
2678
2684
|
:param request_object_id: str
|
|
2679
2685
|
The id of the request object.
|
|
2680
2686
|
:param access_control_list: List[:class:`AccessControlRequest`] (optional)
|
|
@@ -3313,7 +3319,7 @@ class WorkspaceAssignmentAPI:
|
|
|
3313
3319
|
principal.
|
|
3314
3320
|
|
|
3315
3321
|
:param workspace_id: int
|
|
3316
|
-
The workspace ID.
|
|
3322
|
+
The workspace ID for the account.
|
|
3317
3323
|
:param principal_id: int
|
|
3318
3324
|
The ID of the user, service principal, or group.
|
|
3319
3325
|
|
|
@@ -3366,21 +3372,26 @@ class WorkspaceAssignmentAPI:
|
|
|
3366
3372
|
parsed = PermissionAssignments.from_dict(json).permission_assignments
|
|
3367
3373
|
return parsed if parsed is not None else []
|
|
3368
3374
|
|
|
3369
|
-
def update(self,
|
|
3370
|
-
|
|
3375
|
+
def update(self,
|
|
3376
|
+
workspace_id: int,
|
|
3377
|
+
principal_id: int,
|
|
3378
|
+
*,
|
|
3379
|
+
permissions: Optional[List[WorkspacePermission]] = None) -> PermissionAssignment:
|
|
3371
3380
|
"""Create or update permissions assignment.
|
|
3372
3381
|
|
|
3373
3382
|
Creates or updates the workspace permissions assignment in a given account and workspace for the
|
|
3374
3383
|
specified principal.
|
|
3375
3384
|
|
|
3376
3385
|
:param workspace_id: int
|
|
3377
|
-
The workspace ID.
|
|
3386
|
+
The workspace ID for the account.
|
|
3378
3387
|
:param principal_id: int
|
|
3379
3388
|
The ID of the user, service principal, or group.
|
|
3380
|
-
:param permissions: List[:class:`WorkspacePermission`]
|
|
3381
|
-
Array of permissions assignments to update on the workspace.
|
|
3382
|
-
|
|
3383
|
-
|
|
3389
|
+
:param permissions: List[:class:`WorkspacePermission`] (optional)
|
|
3390
|
+
Array of permissions assignments to update on the workspace. Valid values are "USER" and "ADMIN"
|
|
3391
|
+
(case-sensitive). If both "USER" and "ADMIN" are provided, "ADMIN" takes precedence. Other values
|
|
3392
|
+
will be ignored. Note that excluding this field, or providing unsupported values, will have the same
|
|
3393
|
+
effect as providing an empty list, which will result in the deletion of all permissions for the
|
|
3394
|
+
principal.
|
|
3384
3395
|
|
|
3385
3396
|
:returns: :class:`PermissionAssignment`
|
|
3386
3397
|
"""
|
databricks/sdk/service/jobs.py
CHANGED
|
@@ -15,7 +15,7 @@ from ._internal import Wait, _enum, _from_dict, _repeated_dict
|
|
|
15
15
|
|
|
16
16
|
_LOG = logging.getLogger('databricks.sdk')
|
|
17
17
|
|
|
18
|
-
from databricks.sdk.service import compute
|
|
18
|
+
from databricks.sdk.service import compute
|
|
19
19
|
|
|
20
20
|
# all definitions in this file are in alphabetical order
|
|
21
21
|
|
|
@@ -469,7 +469,7 @@ class Continuous:
|
|
|
469
469
|
|
|
470
470
|
@dataclass
|
|
471
471
|
class CreateJob:
|
|
472
|
-
access_control_list: Optional[List[
|
|
472
|
+
access_control_list: Optional[List[JobAccessControlRequest]] = None
|
|
473
473
|
"""List of permissions to set on the job."""
|
|
474
474
|
|
|
475
475
|
continuous: Optional[Continuous] = None
|
|
@@ -480,7 +480,7 @@ class CreateJob:
|
|
|
480
480
|
"""Deployment information for jobs managed by external sources."""
|
|
481
481
|
|
|
482
482
|
description: Optional[str] = None
|
|
483
|
-
"""An optional description for the job. The maximum length is
|
|
483
|
+
"""An optional description for the job. The maximum length is 27700 characters in UTF-8 encoding."""
|
|
484
484
|
|
|
485
485
|
edit_mode: Optional[JobEditMode] = None
|
|
486
486
|
"""Edit mode of the job.
|
|
@@ -603,7 +603,7 @@ class CreateJob:
|
|
|
603
603
|
@classmethod
|
|
604
604
|
def from_dict(cls, d: Dict[str, any]) -> CreateJob:
|
|
605
605
|
"""Deserializes the CreateJob from a dictionary."""
|
|
606
|
-
return cls(access_control_list=_repeated_dict(d, 'access_control_list',
|
|
606
|
+
return cls(access_control_list=_repeated_dict(d, 'access_control_list', JobAccessControlRequest),
|
|
607
607
|
continuous=_from_dict(d, 'continuous', Continuous),
|
|
608
608
|
deployment=_from_dict(d, 'deployment', JobDeployment),
|
|
609
609
|
description=d.get('description', None),
|
|
@@ -1601,7 +1601,7 @@ class JobSettings:
|
|
|
1601
1601
|
"""Deployment information for jobs managed by external sources."""
|
|
1602
1602
|
|
|
1603
1603
|
description: Optional[str] = None
|
|
1604
|
-
"""An optional description for the job. The maximum length is
|
|
1604
|
+
"""An optional description for the job. The maximum length is 27700 characters in UTF-8 encoding."""
|
|
1605
1605
|
|
|
1606
1606
|
edit_mode: Optional[JobEditMode] = None
|
|
1607
1607
|
"""Edit mode of the job.
|
|
@@ -2055,7 +2055,6 @@ class PeriodicTriggerConfigurationTimeUnit(Enum):
|
|
|
2055
2055
|
|
|
2056
2056
|
DAYS = 'DAYS'
|
|
2057
2057
|
HOURS = 'HOURS'
|
|
2058
|
-
TIME_UNIT_UNSPECIFIED = 'TIME_UNIT_UNSPECIFIED'
|
|
2059
2058
|
WEEKS = 'WEEKS'
|
|
2060
2059
|
|
|
2061
2060
|
|
|
@@ -2615,6 +2614,9 @@ class Run:
|
|
|
2615
2614
|
Note: dbt and SQL File tasks support only version-controlled sources. If dbt or SQL File tasks
|
|
2616
2615
|
are used, `git_source` must be defined on the job."""
|
|
2617
2616
|
|
|
2617
|
+
iterations: Optional[List[RunTask]] = None
|
|
2618
|
+
"""Only populated by for-each iterations. The parent for-each task is located in tasks array."""
|
|
2619
|
+
|
|
2618
2620
|
job_clusters: Optional[List[JobCluster]] = None
|
|
2619
2621
|
"""A list of job cluster specifications that can be shared and reused by tasks of this job.
|
|
2620
2622
|
Libraries cannot be declared in a shared job cluster. You must declare dependent libraries in
|
|
@@ -2626,6 +2628,9 @@ class Run:
|
|
|
2626
2628
|
job_parameters: Optional[List[JobParameter]] = None
|
|
2627
2629
|
"""Job-level parameters used in the run"""
|
|
2628
2630
|
|
|
2631
|
+
next_page_token: Optional[str] = None
|
|
2632
|
+
"""A token that can be used to list the next page of sub-resources."""
|
|
2633
|
+
|
|
2629
2634
|
number_in_job: Optional[int] = None
|
|
2630
2635
|
"""A unique identifier for this job run. This is set to the same value as `run_id`."""
|
|
2631
2636
|
|
|
@@ -2636,6 +2641,9 @@ class Run:
|
|
|
2636
2641
|
overriding_parameters: Optional[RunParameters] = None
|
|
2637
2642
|
"""The parameters used for this run."""
|
|
2638
2643
|
|
|
2644
|
+
prev_page_token: Optional[str] = None
|
|
2645
|
+
"""A token that can be used to list the previous page of sub-resources."""
|
|
2646
|
+
|
|
2639
2647
|
queue_duration: Optional[int] = None
|
|
2640
2648
|
"""The time in milliseconds that the run has spent in the queue."""
|
|
2641
2649
|
|
|
@@ -2709,13 +2717,16 @@ class Run:
|
|
|
2709
2717
|
if self.end_time is not None: body['end_time'] = self.end_time
|
|
2710
2718
|
if self.execution_duration is not None: body['execution_duration'] = self.execution_duration
|
|
2711
2719
|
if self.git_source: body['git_source'] = self.git_source.as_dict()
|
|
2720
|
+
if self.iterations: body['iterations'] = [v.as_dict() for v in self.iterations]
|
|
2712
2721
|
if self.job_clusters: body['job_clusters'] = [v.as_dict() for v in self.job_clusters]
|
|
2713
2722
|
if self.job_id is not None: body['job_id'] = self.job_id
|
|
2714
2723
|
if self.job_parameters: body['job_parameters'] = [v.as_dict() for v in self.job_parameters]
|
|
2724
|
+
if self.next_page_token is not None: body['next_page_token'] = self.next_page_token
|
|
2715
2725
|
if self.number_in_job is not None: body['number_in_job'] = self.number_in_job
|
|
2716
2726
|
if self.original_attempt_run_id is not None:
|
|
2717
2727
|
body['original_attempt_run_id'] = self.original_attempt_run_id
|
|
2718
2728
|
if self.overriding_parameters: body['overriding_parameters'] = self.overriding_parameters.as_dict()
|
|
2729
|
+
if self.prev_page_token is not None: body['prev_page_token'] = self.prev_page_token
|
|
2719
2730
|
if self.queue_duration is not None: body['queue_duration'] = self.queue_duration
|
|
2720
2731
|
if self.repair_history: body['repair_history'] = [v.as_dict() for v in self.repair_history]
|
|
2721
2732
|
if self.run_duration is not None: body['run_duration'] = self.run_duration
|
|
@@ -2744,12 +2755,15 @@ class Run:
|
|
|
2744
2755
|
end_time=d.get('end_time', None),
|
|
2745
2756
|
execution_duration=d.get('execution_duration', None),
|
|
2746
2757
|
git_source=_from_dict(d, 'git_source', GitSource),
|
|
2758
|
+
iterations=_repeated_dict(d, 'iterations', RunTask),
|
|
2747
2759
|
job_clusters=_repeated_dict(d, 'job_clusters', JobCluster),
|
|
2748
2760
|
job_id=d.get('job_id', None),
|
|
2749
2761
|
job_parameters=_repeated_dict(d, 'job_parameters', JobParameter),
|
|
2762
|
+
next_page_token=d.get('next_page_token', None),
|
|
2750
2763
|
number_in_job=d.get('number_in_job', None),
|
|
2751
2764
|
original_attempt_run_id=d.get('original_attempt_run_id', None),
|
|
2752
2765
|
overriding_parameters=_from_dict(d, 'overriding_parameters', RunParameters),
|
|
2766
|
+
prev_page_token=d.get('prev_page_token', None),
|
|
2753
2767
|
queue_duration=d.get('queue_duration', None),
|
|
2754
2768
|
repair_history=_repeated_dict(d, 'repair_history', RepairHistoryItem),
|
|
2755
2769
|
run_duration=d.get('run_duration', None),
|
|
@@ -4188,7 +4202,7 @@ class SqlTaskSubscription:
|
|
|
4188
4202
|
|
|
4189
4203
|
@dataclass
|
|
4190
4204
|
class SubmitRun:
|
|
4191
|
-
access_control_list: Optional[List[
|
|
4205
|
+
access_control_list: Optional[List[JobAccessControlRequest]] = None
|
|
4192
4206
|
"""List of permissions to set on the job."""
|
|
4193
4207
|
|
|
4194
4208
|
email_notifications: Optional[JobEmailNotifications] = None
|
|
@@ -4268,7 +4282,7 @@ class SubmitRun:
|
|
|
4268
4282
|
@classmethod
|
|
4269
4283
|
def from_dict(cls, d: Dict[str, any]) -> SubmitRun:
|
|
4270
4284
|
"""Deserializes the SubmitRun from a dictionary."""
|
|
4271
|
-
return cls(access_control_list=_repeated_dict(d, 'access_control_list',
|
|
4285
|
+
return cls(access_control_list=_repeated_dict(d, 'access_control_list', JobAccessControlRequest),
|
|
4272
4286
|
email_notifications=_from_dict(d, 'email_notifications', JobEmailNotifications),
|
|
4273
4287
|
environments=_repeated_dict(d, 'environments', JobEnvironment),
|
|
4274
4288
|
git_source=_from_dict(d, 'git_source', GitSource),
|
|
@@ -5157,7 +5171,7 @@ class JobsAPI:
|
|
|
5157
5171
|
|
|
5158
5172
|
def create(self,
|
|
5159
5173
|
*,
|
|
5160
|
-
access_control_list: Optional[List[
|
|
5174
|
+
access_control_list: Optional[List[JobAccessControlRequest]] = None,
|
|
5161
5175
|
continuous: Optional[Continuous] = None,
|
|
5162
5176
|
deployment: Optional[JobDeployment] = None,
|
|
5163
5177
|
description: Optional[str] = None,
|
|
@@ -5184,7 +5198,7 @@ class JobsAPI:
|
|
|
5184
5198
|
|
|
5185
5199
|
Create a new job.
|
|
5186
5200
|
|
|
5187
|
-
:param access_control_list: List[:class:`
|
|
5201
|
+
:param access_control_list: List[:class:`JobAccessControlRequest`] (optional)
|
|
5188
5202
|
List of permissions to set on the job.
|
|
5189
5203
|
:param continuous: :class:`Continuous` (optional)
|
|
5190
5204
|
An optional continuous property for this job. The continuous property will ensure that there is
|
|
@@ -5192,7 +5206,7 @@ class JobsAPI:
|
|
|
5192
5206
|
:param deployment: :class:`JobDeployment` (optional)
|
|
5193
5207
|
Deployment information for jobs managed by external sources.
|
|
5194
5208
|
:param description: str (optional)
|
|
5195
|
-
An optional description for the job. The maximum length is
|
|
5209
|
+
An optional description for the job. The maximum length is 27700 characters in UTF-8 encoding.
|
|
5196
5210
|
:param edit_mode: :class:`JobEditMode` (optional)
|
|
5197
5211
|
Edit mode of the job.
|
|
5198
5212
|
|
|
@@ -5402,7 +5416,8 @@ class JobsAPI:
|
|
|
5402
5416
|
run_id: int,
|
|
5403
5417
|
*,
|
|
5404
5418
|
include_history: Optional[bool] = None,
|
|
5405
|
-
include_resolved_values: Optional[bool] = None
|
|
5419
|
+
include_resolved_values: Optional[bool] = None,
|
|
5420
|
+
page_token: Optional[str] = None) -> Run:
|
|
5406
5421
|
"""Get a single job run.
|
|
5407
5422
|
|
|
5408
5423
|
Retrieve the metadata of a run.
|
|
@@ -5413,6 +5428,9 @@ class JobsAPI:
|
|
|
5413
5428
|
Whether to include the repair history in the response.
|
|
5414
5429
|
:param include_resolved_values: bool (optional)
|
|
5415
5430
|
Whether to include resolved parameter values in the response.
|
|
5431
|
+
:param page_token: str (optional)
|
|
5432
|
+
To list the next page or the previous page of job tasks, set this field to the value of the
|
|
5433
|
+
`next_page_token` or `prev_page_token` returned in the GetJob response.
|
|
5416
5434
|
|
|
5417
5435
|
:returns: :class:`Run`
|
|
5418
5436
|
"""
|
|
@@ -5420,6 +5438,7 @@ class JobsAPI:
|
|
|
5420
5438
|
query = {}
|
|
5421
5439
|
if include_history is not None: query['include_history'] = include_history
|
|
5422
5440
|
if include_resolved_values is not None: query['include_resolved_values'] = include_resolved_values
|
|
5441
|
+
if page_token is not None: query['page_token'] = page_token
|
|
5423
5442
|
if run_id is not None: query['run_id'] = run_id
|
|
5424
5443
|
headers = {'Accept': 'application/json', }
|
|
5425
5444
|
|
|
@@ -5927,7 +5946,7 @@ class JobsAPI:
|
|
|
5927
5946
|
|
|
5928
5947
|
def submit(self,
|
|
5929
5948
|
*,
|
|
5930
|
-
access_control_list: Optional[List[
|
|
5949
|
+
access_control_list: Optional[List[JobAccessControlRequest]] = None,
|
|
5931
5950
|
email_notifications: Optional[JobEmailNotifications] = None,
|
|
5932
5951
|
environments: Optional[List[JobEnvironment]] = None,
|
|
5933
5952
|
git_source: Optional[GitSource] = None,
|
|
@@ -5946,7 +5965,7 @@ class JobsAPI:
|
|
|
5946
5965
|
Runs submitted using this endpoint don’t display in the UI. Use the `jobs/runs/get` API to check the
|
|
5947
5966
|
run state after the job is submitted.
|
|
5948
5967
|
|
|
5949
|
-
:param access_control_list: List[:class:`
|
|
5968
|
+
:param access_control_list: List[:class:`JobAccessControlRequest`] (optional)
|
|
5950
5969
|
List of permissions to set on the job.
|
|
5951
5970
|
:param email_notifications: :class:`JobEmailNotifications` (optional)
|
|
5952
5971
|
An optional set of email addresses notified when the run begins or completes.
|
|
@@ -6021,7 +6040,7 @@ class JobsAPI:
|
|
|
6021
6040
|
def submit_and_wait(
|
|
6022
6041
|
self,
|
|
6023
6042
|
*,
|
|
6024
|
-
access_control_list: Optional[List[
|
|
6043
|
+
access_control_list: Optional[List[JobAccessControlRequest]] = None,
|
|
6025
6044
|
email_notifications: Optional[JobEmailNotifications] = None,
|
|
6026
6045
|
environments: Optional[List[JobEnvironment]] = None,
|
|
6027
6046
|
git_source: Optional[GitSource] = None,
|