databricks-sdk 0.54.0__py3-none-any.whl → 0.56.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.

Files changed (30) hide show
  1. databricks/sdk/__init__.py +304 -278
  2. databricks/sdk/config.py +15 -4
  3. databricks/sdk/credentials_provider.py +101 -55
  4. databricks/sdk/oauth.py +0 -5
  5. databricks/sdk/oidc.py +206 -0
  6. databricks/sdk/service/aibuilder.py +364 -0
  7. databricks/sdk/service/billing.py +150 -169
  8. databricks/sdk/service/catalog.py +263 -835
  9. databricks/sdk/service/cleanrooms.py +15 -10
  10. databricks/sdk/service/compute.py +12 -22
  11. databricks/sdk/service/dashboards.py +59 -451
  12. databricks/sdk/service/database.py +1256 -0
  13. databricks/sdk/service/files.py +2 -0
  14. databricks/sdk/service/iam.py +6 -6
  15. databricks/sdk/service/jobs.py +238 -0
  16. databricks/sdk/service/ml.py +8 -271
  17. databricks/sdk/service/pipelines.py +45 -1
  18. databricks/sdk/service/provisioning.py +0 -3
  19. databricks/sdk/service/qualitymonitorv2.py +275 -0
  20. databricks/sdk/service/serving.py +76 -4
  21. databricks/sdk/service/settings.py +982 -99
  22. databricks/sdk/service/sharing.py +3 -2
  23. databricks/sdk/service/sql.py +218 -1
  24. databricks/sdk/version.py +1 -1
  25. {databricks_sdk-0.54.0.dist-info → databricks_sdk-0.56.0.dist-info}/METADATA +1 -1
  26. {databricks_sdk-0.54.0.dist-info → databricks_sdk-0.56.0.dist-info}/RECORD +30 -26
  27. {databricks_sdk-0.54.0.dist-info → databricks_sdk-0.56.0.dist-info}/WHEEL +1 -1
  28. {databricks_sdk-0.54.0.dist-info → databricks_sdk-0.56.0.dist-info}/licenses/LICENSE +0 -0
  29. {databricks_sdk-0.54.0.dist-info → databricks_sdk-0.56.0.dist-info}/licenses/NOTICE +0 -0
  30. {databricks_sdk-0.54.0.dist-info → databricks_sdk-0.56.0.dist-info}/top_level.txt +0 -0
@@ -1049,6 +1049,8 @@ class FilesAPI:
1049
1049
  `enable_experimental_files_api_client = True` in your configuration profile or use the environment
1050
1050
  variable `DATABRICKS_ENABLE_EXPERIMENTAL_FILES_API_CLIENT=True`.
1051
1051
 
1052
+ Use of Files API may incur Databricks data transfer charges.
1053
+
1052
1054
  [Unity Catalog volumes]: https://docs.databricks.com/en/connect/unity-catalog/volumes.html"""
1053
1055
 
1054
1056
  def __init__(self, api_client):
@@ -2547,7 +2547,7 @@ class AccountGroupsAPI:
2547
2547
  seen = set()
2548
2548
  query["startIndex"] = 1
2549
2549
  if "count" not in query:
2550
- query["count"] = 100
2550
+ query["count"] = 10000
2551
2551
  while True:
2552
2552
  json = self._api.do(
2553
2553
  "GET", f"/api/2.0/accounts/{self._api.account_id}/scim/v2/Groups", query=query, headers=headers
@@ -2827,7 +2827,7 @@ class AccountServicePrincipalsAPI:
2827
2827
  seen = set()
2828
2828
  query["startIndex"] = 1
2829
2829
  if "count" not in query:
2830
- query["count"] = 100
2830
+ query["count"] = 10000
2831
2831
  while True:
2832
2832
  json = self._api.do(
2833
2833
  "GET",
@@ -3185,7 +3185,7 @@ class AccountUsersAPI:
3185
3185
  seen = set()
3186
3186
  query["startIndex"] = 1
3187
3187
  if "count" not in query:
3188
- query["count"] = 100
3188
+ query["count"] = 10000
3189
3189
  while True:
3190
3190
  json = self._api.do(
3191
3191
  "GET", f"/api/2.0/accounts/{self._api.account_id}/scim/v2/Users", query=query, headers=headers
@@ -3495,7 +3495,7 @@ class GroupsAPI:
3495
3495
  seen = set()
3496
3496
  query["startIndex"] = 1
3497
3497
  if "count" not in query:
3498
- query["count"] = 100
3498
+ query["count"] = 10000
3499
3499
  while True:
3500
3500
  json = self._api.do("GET", "/api/2.0/preview/scim/v2/Groups", query=query, headers=headers)
3501
3501
  if "Resources" in json:
@@ -3955,7 +3955,7 @@ class ServicePrincipalsAPI:
3955
3955
  seen = set()
3956
3956
  query["startIndex"] = 1
3957
3957
  if "count" not in query:
3958
- query["count"] = 100
3958
+ query["count"] = 10000
3959
3959
  while True:
3960
3960
  json = self._api.do("GET", "/api/2.0/preview/scim/v2/ServicePrincipals", query=query, headers=headers)
3961
3961
  if "Resources" in json:
@@ -4324,7 +4324,7 @@ class UsersAPI:
4324
4324
  seen = set()
4325
4325
  query["startIndex"] = 1
4326
4326
  if "count" not in query:
4327
- query["count"] = 100
4327
+ query["count"] = 10000
4328
4328
  while True:
4329
4329
  json = self._api.do("GET", "/api/2.0/preview/scim/v2/Users", query=query, headers=headers)
4330
4330
  if "Resources" in json:
@@ -54,6 +54,9 @@ class BaseJob:
54
54
  """Settings for this job and all of its runs. These settings can be updated using the `resetJob`
55
55
  method."""
56
56
 
57
+ trigger_state: Optional[TriggerStateProto] = None
58
+ """State of the trigger associated with the job."""
59
+
57
60
  def as_dict(self) -> dict:
58
61
  """Serializes the BaseJob into a dictionary suitable for use as a JSON request body."""
59
62
  body = {}
@@ -69,6 +72,8 @@ class BaseJob:
69
72
  body["job_id"] = self.job_id
70
73
  if self.settings:
71
74
  body["settings"] = self.settings.as_dict()
75
+ if self.trigger_state:
76
+ body["trigger_state"] = self.trigger_state.as_dict()
72
77
  return body
73
78
 
74
79
  def as_shallow_dict(self) -> dict:
@@ -86,6 +91,8 @@ class BaseJob:
86
91
  body["job_id"] = self.job_id
87
92
  if self.settings:
88
93
  body["settings"] = self.settings
94
+ if self.trigger_state:
95
+ body["trigger_state"] = self.trigger_state
89
96
  return body
90
97
 
91
98
  @classmethod
@@ -98,6 +105,7 @@ class BaseJob:
98
105
  has_more=d.get("has_more", None),
99
106
  job_id=d.get("job_id", None),
100
107
  settings=_from_dict(d, "settings", JobSettings),
108
+ trigger_state=_from_dict(d, "trigger_state", TriggerStateProto),
101
109
  )
102
110
 
103
111
 
@@ -1389,6 +1397,148 @@ class DashboardTaskOutput:
1389
1397
  return cls(page_snapshots=_repeated_dict(d, "page_snapshots", DashboardPageSnapshot))
1390
1398
 
1391
1399
 
1400
+ @dataclass
1401
+ class DbtCloudJobRunStep:
1402
+ """Format of response retrieved from dbt Cloud, for inclusion in output"""
1403
+
1404
+ index: Optional[int] = None
1405
+ """Orders the steps in the job"""
1406
+
1407
+ logs: Optional[str] = None
1408
+ """Output of the step"""
1409
+
1410
+ name: Optional[str] = None
1411
+ """Name of the step in the job"""
1412
+
1413
+ status: Optional[DbtCloudRunStatus] = None
1414
+ """State of the step"""
1415
+
1416
+ def as_dict(self) -> dict:
1417
+ """Serializes the DbtCloudJobRunStep into a dictionary suitable for use as a JSON request body."""
1418
+ body = {}
1419
+ if self.index is not None:
1420
+ body["index"] = self.index
1421
+ if self.logs is not None:
1422
+ body["logs"] = self.logs
1423
+ if self.name is not None:
1424
+ body["name"] = self.name
1425
+ if self.status is not None:
1426
+ body["status"] = self.status.value
1427
+ return body
1428
+
1429
+ def as_shallow_dict(self) -> dict:
1430
+ """Serializes the DbtCloudJobRunStep into a shallow dictionary of its immediate attributes."""
1431
+ body = {}
1432
+ if self.index is not None:
1433
+ body["index"] = self.index
1434
+ if self.logs is not None:
1435
+ body["logs"] = self.logs
1436
+ if self.name is not None:
1437
+ body["name"] = self.name
1438
+ if self.status is not None:
1439
+ body["status"] = self.status
1440
+ return body
1441
+
1442
+ @classmethod
1443
+ def from_dict(cls, d: Dict[str, Any]) -> DbtCloudJobRunStep:
1444
+ """Deserializes the DbtCloudJobRunStep from a dictionary."""
1445
+ return cls(
1446
+ index=d.get("index", None),
1447
+ logs=d.get("logs", None),
1448
+ name=d.get("name", None),
1449
+ status=_enum(d, "status", DbtCloudRunStatus),
1450
+ )
1451
+
1452
+
1453
+ class DbtCloudRunStatus(Enum):
1454
+ """Response enumeration from calling the dbt Cloud API, for inclusion in output"""
1455
+
1456
+ CANCELLED = "CANCELLED"
1457
+ ERROR = "ERROR"
1458
+ QUEUED = "QUEUED"
1459
+ RUNNING = "RUNNING"
1460
+ STARTING = "STARTING"
1461
+ SUCCESS = "SUCCESS"
1462
+
1463
+
1464
+ @dataclass
1465
+ class DbtCloudTask:
1466
+ connection_resource_name: Optional[str] = None
1467
+ """The resource name of the UC connection that authenticates the dbt Cloud for this task"""
1468
+
1469
+ dbt_cloud_job_id: Optional[int] = None
1470
+ """Id of the dbt Cloud job to be triggered"""
1471
+
1472
+ def as_dict(self) -> dict:
1473
+ """Serializes the DbtCloudTask into a dictionary suitable for use as a JSON request body."""
1474
+ body = {}
1475
+ if self.connection_resource_name is not None:
1476
+ body["connection_resource_name"] = self.connection_resource_name
1477
+ if self.dbt_cloud_job_id is not None:
1478
+ body["dbt_cloud_job_id"] = self.dbt_cloud_job_id
1479
+ return body
1480
+
1481
+ def as_shallow_dict(self) -> dict:
1482
+ """Serializes the DbtCloudTask into a shallow dictionary of its immediate attributes."""
1483
+ body = {}
1484
+ if self.connection_resource_name is not None:
1485
+ body["connection_resource_name"] = self.connection_resource_name
1486
+ if self.dbt_cloud_job_id is not None:
1487
+ body["dbt_cloud_job_id"] = self.dbt_cloud_job_id
1488
+ return body
1489
+
1490
+ @classmethod
1491
+ def from_dict(cls, d: Dict[str, Any]) -> DbtCloudTask:
1492
+ """Deserializes the DbtCloudTask from a dictionary."""
1493
+ return cls(
1494
+ connection_resource_name=d.get("connection_resource_name", None),
1495
+ dbt_cloud_job_id=d.get("dbt_cloud_job_id", None),
1496
+ )
1497
+
1498
+
1499
+ @dataclass
1500
+ class DbtCloudTaskOutput:
1501
+ dbt_cloud_job_run_id: Optional[int] = None
1502
+ """Id of the job run in dbt Cloud"""
1503
+
1504
+ dbt_cloud_job_run_output: Optional[List[DbtCloudJobRunStep]] = None
1505
+ """Steps of the job run as received from dbt Cloud"""
1506
+
1507
+ dbt_cloud_job_run_url: Optional[str] = None
1508
+ """Url where full run details can be viewed"""
1509
+
1510
+ def as_dict(self) -> dict:
1511
+ """Serializes the DbtCloudTaskOutput into a dictionary suitable for use as a JSON request body."""
1512
+ body = {}
1513
+ if self.dbt_cloud_job_run_id is not None:
1514
+ body["dbt_cloud_job_run_id"] = self.dbt_cloud_job_run_id
1515
+ if self.dbt_cloud_job_run_output:
1516
+ body["dbt_cloud_job_run_output"] = [v.as_dict() for v in self.dbt_cloud_job_run_output]
1517
+ if self.dbt_cloud_job_run_url is not None:
1518
+ body["dbt_cloud_job_run_url"] = self.dbt_cloud_job_run_url
1519
+ return body
1520
+
1521
+ def as_shallow_dict(self) -> dict:
1522
+ """Serializes the DbtCloudTaskOutput into a shallow dictionary of its immediate attributes."""
1523
+ body = {}
1524
+ if self.dbt_cloud_job_run_id is not None:
1525
+ body["dbt_cloud_job_run_id"] = self.dbt_cloud_job_run_id
1526
+ if self.dbt_cloud_job_run_output:
1527
+ body["dbt_cloud_job_run_output"] = self.dbt_cloud_job_run_output
1528
+ if self.dbt_cloud_job_run_url is not None:
1529
+ body["dbt_cloud_job_run_url"] = self.dbt_cloud_job_run_url
1530
+ return body
1531
+
1532
+ @classmethod
1533
+ def from_dict(cls, d: Dict[str, Any]) -> DbtCloudTaskOutput:
1534
+ """Deserializes the DbtCloudTaskOutput from a dictionary."""
1535
+ return cls(
1536
+ dbt_cloud_job_run_id=d.get("dbt_cloud_job_run_id", None),
1537
+ dbt_cloud_job_run_output=_repeated_dict(d, "dbt_cloud_job_run_output", DbtCloudJobRunStep),
1538
+ dbt_cloud_job_run_url=d.get("dbt_cloud_job_run_url", None),
1539
+ )
1540
+
1541
+
1392
1542
  @dataclass
1393
1543
  class DbtOutput:
1394
1544
  artifacts_headers: Optional[Dict[str, str]] = None
@@ -1804,6 +1954,31 @@ class FileArrivalTriggerConfiguration:
1804
1954
  )
1805
1955
 
1806
1956
 
1957
+ @dataclass
1958
+ class FileArrivalTriggerState:
1959
+ using_file_events: Optional[bool] = None
1960
+ """Indicates whether the trigger leverages file events to detect file arrivals."""
1961
+
1962
+ def as_dict(self) -> dict:
1963
+ """Serializes the FileArrivalTriggerState into a dictionary suitable for use as a JSON request body."""
1964
+ body = {}
1965
+ if self.using_file_events is not None:
1966
+ body["using_file_events"] = self.using_file_events
1967
+ return body
1968
+
1969
+ def as_shallow_dict(self) -> dict:
1970
+ """Serializes the FileArrivalTriggerState into a shallow dictionary of its immediate attributes."""
1971
+ body = {}
1972
+ if self.using_file_events is not None:
1973
+ body["using_file_events"] = self.using_file_events
1974
+ return body
1975
+
1976
+ @classmethod
1977
+ def from_dict(cls, d: Dict[str, Any]) -> FileArrivalTriggerState:
1978
+ """Deserializes the FileArrivalTriggerState from a dictionary."""
1979
+ return cls(using_file_events=d.get("using_file_events", None))
1980
+
1981
+
1807
1982
  @dataclass
1808
1983
  class ForEachStats:
1809
1984
  error_message_stats: Optional[List[ForEachTaskErrorMessageStats]] = None
@@ -2321,6 +2496,9 @@ class Job:
2321
2496
  """Settings for this job and all of its runs. These settings can be updated using the `resetJob`
2322
2497
  method."""
2323
2498
 
2499
+ trigger_state: Optional[TriggerStateProto] = None
2500
+ """State of the trigger associated with the job."""
2501
+
2324
2502
  def as_dict(self) -> dict:
2325
2503
  """Serializes the Job into a dictionary suitable for use as a JSON request body."""
2326
2504
  body = {}
@@ -2340,6 +2518,8 @@ class Job:
2340
2518
  body["run_as_user_name"] = self.run_as_user_name
2341
2519
  if self.settings:
2342
2520
  body["settings"] = self.settings.as_dict()
2521
+ if self.trigger_state:
2522
+ body["trigger_state"] = self.trigger_state.as_dict()
2343
2523
  return body
2344
2524
 
2345
2525
  def as_shallow_dict(self) -> dict:
@@ -2361,6 +2541,8 @@ class Job:
2361
2541
  body["run_as_user_name"] = self.run_as_user_name
2362
2542
  if self.settings:
2363
2543
  body["settings"] = self.settings
2544
+ if self.trigger_state:
2545
+ body["trigger_state"] = self.trigger_state
2364
2546
  return body
2365
2547
 
2366
2548
  @classmethod
@@ -2375,6 +2557,7 @@ class Job:
2375
2557
  next_page_token=d.get("next_page_token", None),
2376
2558
  run_as_user_name=d.get("run_as_user_name", None),
2377
2559
  settings=_from_dict(d, "settings", JobSettings),
2560
+ trigger_state=_from_dict(d, "trigger_state", TriggerStateProto),
2378
2561
  )
2379
2562
 
2380
2563
 
@@ -5771,6 +5954,8 @@ class RunOutput:
5771
5954
  dashboard_output: Optional[DashboardTaskOutput] = None
5772
5955
  """The output of a dashboard task, if available"""
5773
5956
 
5957
+ dbt_cloud_output: Optional[DbtCloudTaskOutput] = None
5958
+
5774
5959
  dbt_output: Optional[DbtOutput] = None
5775
5960
  """The output of a dbt task, if available."""
5776
5961
 
@@ -5819,6 +6004,8 @@ class RunOutput:
5819
6004
  body["clean_rooms_notebook_output"] = self.clean_rooms_notebook_output.as_dict()
5820
6005
  if self.dashboard_output:
5821
6006
  body["dashboard_output"] = self.dashboard_output.as_dict()
6007
+ if self.dbt_cloud_output:
6008
+ body["dbt_cloud_output"] = self.dbt_cloud_output.as_dict()
5822
6009
  if self.dbt_output:
5823
6010
  body["dbt_output"] = self.dbt_output.as_dict()
5824
6011
  if self.error is not None:
@@ -5848,6 +6035,8 @@ class RunOutput:
5848
6035
  body["clean_rooms_notebook_output"] = self.clean_rooms_notebook_output
5849
6036
  if self.dashboard_output:
5850
6037
  body["dashboard_output"] = self.dashboard_output
6038
+ if self.dbt_cloud_output:
6039
+ body["dbt_cloud_output"] = self.dbt_cloud_output
5851
6040
  if self.dbt_output:
5852
6041
  body["dbt_output"] = self.dbt_output
5853
6042
  if self.error is not None:
@@ -5878,6 +6067,7 @@ class RunOutput:
5878
6067
  d, "clean_rooms_notebook_output", CleanRoomsNotebookTaskCleanRoomsNotebookTaskOutput
5879
6068
  ),
5880
6069
  dashboard_output=_from_dict(d, "dashboard_output", DashboardTaskOutput),
6070
+ dbt_cloud_output=_from_dict(d, "dbt_cloud_output", DbtCloudTaskOutput),
5881
6071
  dbt_output=_from_dict(d, "dbt_output", DbtOutput),
5882
6072
  error=d.get("error", None),
5883
6073
  error_trace=d.get("error_trace", None),
@@ -6197,6 +6387,9 @@ class RunTask:
6197
6387
  dashboard_task: Optional[DashboardTask] = None
6198
6388
  """The task refreshes a dashboard and sends a snapshot to subscribers."""
6199
6389
 
6390
+ dbt_cloud_task: Optional[DbtCloudTask] = None
6391
+ """Task type for dbt cloud"""
6392
+
6200
6393
  dbt_task: Optional[DbtTask] = None
6201
6394
  """The task runs one or more dbt commands when the `dbt_task` field is present. The dbt task
6202
6395
  requires both Databricks SQL and the ability to use a serverless or a pro SQL warehouse."""
@@ -6377,6 +6570,8 @@ class RunTask:
6377
6570
  body["condition_task"] = self.condition_task.as_dict()
6378
6571
  if self.dashboard_task:
6379
6572
  body["dashboard_task"] = self.dashboard_task.as_dict()
6573
+ if self.dbt_cloud_task:
6574
+ body["dbt_cloud_task"] = self.dbt_cloud_task.as_dict()
6380
6575
  if self.dbt_task:
6381
6576
  body["dbt_task"] = self.dbt_task.as_dict()
6382
6577
  if self.depends_on:
@@ -6472,6 +6667,8 @@ class RunTask:
6472
6667
  body["condition_task"] = self.condition_task
6473
6668
  if self.dashboard_task:
6474
6669
  body["dashboard_task"] = self.dashboard_task
6670
+ if self.dbt_cloud_task:
6671
+ body["dbt_cloud_task"] = self.dbt_cloud_task
6475
6672
  if self.dbt_task:
6476
6673
  body["dbt_task"] = self.dbt_task
6477
6674
  if self.depends_on:
@@ -6562,6 +6759,7 @@ class RunTask:
6562
6759
  cluster_instance=_from_dict(d, "cluster_instance", ClusterInstance),
6563
6760
  condition_task=_from_dict(d, "condition_task", RunConditionTask),
6564
6761
  dashboard_task=_from_dict(d, "dashboard_task", DashboardTask),
6762
+ dbt_cloud_task=_from_dict(d, "dbt_cloud_task", DbtCloudTask),
6565
6763
  dbt_task=_from_dict(d, "dbt_task", DbtTask),
6566
6764
  depends_on=_repeated_dict(d, "depends_on", TaskDependency),
6567
6765
  description=d.get("description", None),
@@ -7585,6 +7783,9 @@ class SubmitTask:
7585
7783
  dashboard_task: Optional[DashboardTask] = None
7586
7784
  """The task refreshes a dashboard and sends a snapshot to subscribers."""
7587
7785
 
7786
+ dbt_cloud_task: Optional[DbtCloudTask] = None
7787
+ """Task type for dbt cloud"""
7788
+
7588
7789
  dbt_task: Optional[DbtTask] = None
7589
7790
  """The task runs one or more dbt commands when the `dbt_task` field is present. The dbt task
7590
7791
  requires both Databricks SQL and the ability to use a serverless or a pro SQL warehouse."""
@@ -7695,6 +7896,8 @@ class SubmitTask:
7695
7896
  body["condition_task"] = self.condition_task.as_dict()
7696
7897
  if self.dashboard_task:
7697
7898
  body["dashboard_task"] = self.dashboard_task.as_dict()
7899
+ if self.dbt_cloud_task:
7900
+ body["dbt_cloud_task"] = self.dbt_cloud_task.as_dict()
7698
7901
  if self.dbt_task:
7699
7902
  body["dbt_task"] = self.dbt_task.as_dict()
7700
7903
  if self.depends_on:
@@ -7756,6 +7959,8 @@ class SubmitTask:
7756
7959
  body["condition_task"] = self.condition_task
7757
7960
  if self.dashboard_task:
7758
7961
  body["dashboard_task"] = self.dashboard_task
7962
+ if self.dbt_cloud_task:
7963
+ body["dbt_cloud_task"] = self.dbt_cloud_task
7759
7964
  if self.dbt_task:
7760
7965
  body["dbt_task"] = self.dbt_task
7761
7966
  if self.depends_on:
@@ -7815,6 +8020,7 @@ class SubmitTask:
7815
8020
  clean_rooms_notebook_task=_from_dict(d, "clean_rooms_notebook_task", CleanRoomsNotebookTask),
7816
8021
  condition_task=_from_dict(d, "condition_task", ConditionTask),
7817
8022
  dashboard_task=_from_dict(d, "dashboard_task", DashboardTask),
8023
+ dbt_cloud_task=_from_dict(d, "dbt_cloud_task", DbtCloudTask),
7818
8024
  dbt_task=_from_dict(d, "dbt_task", DbtTask),
7819
8025
  depends_on=_repeated_dict(d, "depends_on", TaskDependency),
7820
8026
  description=d.get("description", None),
@@ -7995,6 +8201,9 @@ class Task:
7995
8201
  dashboard_task: Optional[DashboardTask] = None
7996
8202
  """The task refreshes a dashboard and sends a snapshot to subscribers."""
7997
8203
 
8204
+ dbt_cloud_task: Optional[DbtCloudTask] = None
8205
+ """Task type for dbt cloud"""
8206
+
7998
8207
  dbt_task: Optional[DbtTask] = None
7999
8208
  """The task runs one or more dbt commands when the `dbt_task` field is present. The dbt task
8000
8209
  requires both Databricks SQL and the ability to use a serverless or a pro SQL warehouse."""
@@ -8130,6 +8339,8 @@ class Task:
8130
8339
  body["condition_task"] = self.condition_task.as_dict()
8131
8340
  if self.dashboard_task:
8132
8341
  body["dashboard_task"] = self.dashboard_task.as_dict()
8342
+ if self.dbt_cloud_task:
8343
+ body["dbt_cloud_task"] = self.dbt_cloud_task.as_dict()
8133
8344
  if self.dbt_task:
8134
8345
  body["dbt_task"] = self.dbt_task.as_dict()
8135
8346
  if self.depends_on:
@@ -8201,6 +8412,8 @@ class Task:
8201
8412
  body["condition_task"] = self.condition_task
8202
8413
  if self.dashboard_task:
8203
8414
  body["dashboard_task"] = self.dashboard_task
8415
+ if self.dbt_cloud_task:
8416
+ body["dbt_cloud_task"] = self.dbt_cloud_task
8204
8417
  if self.dbt_task:
8205
8418
  body["dbt_task"] = self.dbt_task
8206
8419
  if self.depends_on:
@@ -8270,6 +8483,7 @@ class Task:
8270
8483
  clean_rooms_notebook_task=_from_dict(d, "clean_rooms_notebook_task", CleanRoomsNotebookTask),
8271
8484
  condition_task=_from_dict(d, "condition_task", ConditionTask),
8272
8485
  dashboard_task=_from_dict(d, "dashboard_task", DashboardTask),
8486
+ dbt_cloud_task=_from_dict(d, "dbt_cloud_task", DbtCloudTask),
8273
8487
  dbt_task=_from_dict(d, "dbt_task", DbtTask),
8274
8488
  depends_on=_repeated_dict(d, "depends_on", TaskDependency),
8275
8489
  description=d.get("description", None),
@@ -8715,6 +8929,30 @@ class TriggerSettings:
8715
8929
  )
8716
8930
 
8717
8931
 
8932
+ @dataclass
8933
+ class TriggerStateProto:
8934
+ file_arrival: Optional[FileArrivalTriggerState] = None
8935
+
8936
+ def as_dict(self) -> dict:
8937
+ """Serializes the TriggerStateProto into a dictionary suitable for use as a JSON request body."""
8938
+ body = {}
8939
+ if self.file_arrival:
8940
+ body["file_arrival"] = self.file_arrival.as_dict()
8941
+ return body
8942
+
8943
+ def as_shallow_dict(self) -> dict:
8944
+ """Serializes the TriggerStateProto into a shallow dictionary of its immediate attributes."""
8945
+ body = {}
8946
+ if self.file_arrival:
8947
+ body["file_arrival"] = self.file_arrival
8948
+ return body
8949
+
8950
+ @classmethod
8951
+ def from_dict(cls, d: Dict[str, Any]) -> TriggerStateProto:
8952
+ """Deserializes the TriggerStateProto from a dictionary."""
8953
+ return cls(file_arrival=_from_dict(d, "file_arrival", FileArrivalTriggerState))
8954
+
8955
+
8718
8956
  class TriggerType(Enum):
8719
8957
  """The type of trigger that fired this run.
8720
8958