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.

@@ -132,16 +132,16 @@ class DeleteResponse:
132
132
 
133
133
 
134
134
  @dataclass
135
- class DeleteWorkspaceAssignments:
135
+ class DeleteWorkspacePermissionAssignmentResponse:
136
136
 
137
137
  def as_dict(self) -> dict:
138
- """Serializes the DeleteWorkspaceAssignments into a dictionary suitable for use as a JSON request body."""
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]) -> DeleteWorkspaceAssignments:
144
- """Deserializes the DeleteWorkspaceAssignments from a dictionary."""
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, notebooks, pipelines,
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. Note that excluding this field will
1139
- have the same effect as providing an empty list which will result in the deletion of all
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
- """This spec contains undocumented permission migration APIs used in https://github.com/databrickslabs/ucx."""
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) -> PermissionMigrationResponse:
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. Both workspace
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:`PermissionMigrationResponse`
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 PermissionMigrationResponse.from_dict(res)
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 notebooks.
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, notebooks, pipelines,
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, notebooks, pipelines,
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, notebooks, pipelines,
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, workspace_id: int, principal_id: int,
3370
- permissions: List[WorkspacePermission]) -> PermissionAssignment:
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. Note that excluding this field will
3382
- have the same effect as providing an empty list which will result in the deletion of all permissions
3383
- for the principal.
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
  """
@@ -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, iam
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[iam.AccessControlRequest]] = None
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 1024 characters in UTF-8 encoding."""
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', iam.AccessControlRequest),
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 1024 characters in UTF-8 encoding."""
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[iam.AccessControlRequest]] = None
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', iam.AccessControlRequest),
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[iam.AccessControlRequest]] = None,
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:`AccessControlRequest`] (optional)
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 1024 characters in UTF-8 encoding.
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) -> Run:
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[iam.AccessControlRequest]] = None,
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:`AccessControlRequest`] (optional)
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[iam.AccessControlRequest]] = None,
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,