databricks-sdk 0.69.0__py3-none-any.whl → 0.71.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 (37) hide show
  1. databricks/sdk/__init__.py +24 -24
  2. databricks/sdk/dbutils.py +17 -0
  3. databricks/sdk/mixins/files.py +10 -10
  4. databricks/sdk/service/agentbricks.py +2 -0
  5. databricks/sdk/service/apps.py +10 -0
  6. databricks/sdk/service/billing.py +13 -3
  7. databricks/sdk/service/catalog.py +131 -47
  8. databricks/sdk/service/cleanrooms.py +11 -3
  9. databricks/sdk/service/compute.py +64 -0
  10. databricks/sdk/service/dashboards.py +10 -0
  11. databricks/sdk/service/database.py +12 -0
  12. databricks/sdk/service/dataquality.py +201 -52
  13. databricks/sdk/service/files.py +7 -72
  14. databricks/sdk/service/iam.py +26 -36
  15. databricks/sdk/service/iamv2.py +6 -0
  16. databricks/sdk/service/jobs.py +86 -154
  17. databricks/sdk/service/marketplace.py +18 -0
  18. databricks/sdk/service/ml.py +464 -13
  19. databricks/sdk/service/oauth2.py +37 -19
  20. databricks/sdk/service/pipelines.py +25 -2
  21. databricks/sdk/service/provisioning.py +19 -1
  22. databricks/sdk/service/qualitymonitorv2.py +2 -0
  23. databricks/sdk/service/serving.py +16 -21
  24. databricks/sdk/service/settings.py +45 -72
  25. databricks/sdk/service/settingsv2.py +2 -0
  26. databricks/sdk/service/sharing.py +23 -69
  27. databricks/sdk/service/sql.py +85 -62
  28. databricks/sdk/service/tags.py +2 -0
  29. databricks/sdk/service/vectorsearch.py +8 -0
  30. databricks/sdk/service/workspace.py +18 -91
  31. databricks/sdk/version.py +1 -1
  32. {databricks_sdk-0.69.0.dist-info → databricks_sdk-0.71.0.dist-info}/METADATA +1 -1
  33. {databricks_sdk-0.69.0.dist-info → databricks_sdk-0.71.0.dist-info}/RECORD +37 -37
  34. {databricks_sdk-0.69.0.dist-info → databricks_sdk-0.71.0.dist-info}/WHEEL +0 -0
  35. {databricks_sdk-0.69.0.dist-info → databricks_sdk-0.71.0.dist-info}/licenses/LICENSE +0 -0
  36. {databricks_sdk-0.69.0.dist-info → databricks_sdk-0.71.0.dist-info}/licenses/NOTICE +0 -0
  37. {databricks_sdk-0.69.0.dist-info → databricks_sdk-0.71.0.dist-info}/top_level.txt +0 -0
@@ -331,6 +331,12 @@ class AlertEvaluationState(Enum):
331
331
  UNKNOWN = "UNKNOWN"
332
332
 
333
333
 
334
+ class AlertLifecycleState(Enum):
335
+
336
+ ACTIVE = "ACTIVE"
337
+ DELETED = "DELETED"
338
+
339
+
334
340
  @dataclass
335
341
  class AlertOperandColumn:
336
342
  name: Optional[str] = None
@@ -636,6 +642,19 @@ class AlertState(Enum):
636
642
 
637
643
  @dataclass
638
644
  class AlertV2:
645
+ display_name: str
646
+ """The display name of the alert."""
647
+
648
+ query_text: str
649
+ """Text of the query to be run."""
650
+
651
+ warehouse_id: str
652
+ """ID of the SQL warehouse attached to the alert."""
653
+
654
+ evaluation: AlertV2Evaluation
655
+
656
+ schedule: CronSchedule
657
+
639
658
  create_time: Optional[str] = None
640
659
  """The timestamp indicating when the alert was created."""
641
660
 
@@ -645,19 +664,14 @@ class AlertV2:
645
664
  custom_summary: Optional[str] = None
646
665
  """Custom summary for the alert. support mustache template."""
647
666
 
648
- display_name: Optional[str] = None
649
- """The display name of the alert."""
650
-
651
667
  effective_run_as: Optional[AlertV2RunAs] = None
652
668
  """The actual identity that will be used to execute the alert. This is an output-only field that
653
669
  shows the resolved run-as identity after applying permissions and defaults."""
654
670
 
655
- evaluation: Optional[AlertV2Evaluation] = None
656
-
657
671
  id: Optional[str] = None
658
672
  """UUID identifying the alert."""
659
673
 
660
- lifecycle_state: Optional[LifecycleState] = None
674
+ lifecycle_state: Optional[AlertLifecycleState] = None
661
675
  """Indicates whether the query is trashed."""
662
676
 
663
677
  owner_user_name: Optional[str] = None
@@ -667,9 +681,6 @@ class AlertV2:
667
681
  """The workspace path of the folder containing the alert. Can only be set on create, and cannot be
668
682
  updated."""
669
683
 
670
- query_text: Optional[str] = None
671
- """Text of the query to be run."""
672
-
673
684
  run_as: Optional[AlertV2RunAs] = None
674
685
  """Specifies the identity that will be used to run the alert. This field allows you to configure
675
686
  alerts to run as a specific user or service principal. - For user identity: Set `user_name` to
@@ -683,14 +694,9 @@ class AlertV2:
683
694
  servicePrincipal/user role. Deprecated: Use `run_as` field instead. This field will be removed
684
695
  in a future release."""
685
696
 
686
- schedule: Optional[CronSchedule] = None
687
-
688
697
  update_time: Optional[str] = None
689
698
  """The timestamp indicating when the alert was updated."""
690
699
 
691
- warehouse_id: Optional[str] = None
692
- """ID of the SQL warehouse attached to the alert."""
693
-
694
700
  def as_dict(self) -> dict:
695
701
  """Serializes the AlertV2 into a dictionary suitable for use as a JSON request body."""
696
702
  body = {}
@@ -776,7 +782,7 @@ class AlertV2:
776
782
  effective_run_as=_from_dict(d, "effective_run_as", AlertV2RunAs),
777
783
  evaluation=_from_dict(d, "evaluation", AlertV2Evaluation),
778
784
  id=d.get("id", None),
779
- lifecycle_state=_enum(d, "lifecycle_state", LifecycleState),
785
+ lifecycle_state=_enum(d, "lifecycle_state", AlertLifecycleState),
780
786
  owner_user_name=d.get("owner_user_name", None),
781
787
  parent_path=d.get("parent_path", None),
782
788
  query_text=d.get("query_text", None),
@@ -790,7 +796,10 @@ class AlertV2:
790
796
 
791
797
  @dataclass
792
798
  class AlertV2Evaluation:
793
- comparison_operator: Optional[ComparisonOperator] = None
799
+ source: AlertV2OperandColumn
800
+ """Source column from result to use to evaluate alert"""
801
+
802
+ comparison_operator: ComparisonOperator
794
803
  """Operator used for comparison in alert evaluation."""
795
804
 
796
805
  empty_result_state: Optional[AlertEvaluationState] = None
@@ -803,9 +812,6 @@ class AlertV2Evaluation:
803
812
  notification: Optional[AlertV2Notification] = None
804
813
  """User or Notification Destination to notify when alert is triggered."""
805
814
 
806
- source: Optional[AlertV2OperandColumn] = None
807
- """Source column from result to use to evaluate alert"""
808
-
809
815
  state: Optional[AlertEvaluationState] = None
810
816
  """Latest state of alert evaluation."""
811
817
 
@@ -941,12 +947,12 @@ class AlertV2Operand:
941
947
 
942
948
  @dataclass
943
949
  class AlertV2OperandColumn:
950
+ name: str
951
+
944
952
  aggregation: Optional[Aggregation] = None
945
953
 
946
954
  display: Optional[str] = None
947
955
 
948
- name: Optional[str] = None
949
-
950
956
  def as_dict(self) -> dict:
951
957
  """Serializes the AlertV2OperandColumn into a dictionary suitable for use as a JSON request body."""
952
958
  body = {}
@@ -1132,24 +1138,6 @@ class BaseChunkInfo:
1132
1138
  )
1133
1139
 
1134
1140
 
1135
- @dataclass
1136
- class CancelExecutionResponse:
1137
- def as_dict(self) -> dict:
1138
- """Serializes the CancelExecutionResponse into a dictionary suitable for use as a JSON request body."""
1139
- body = {}
1140
- return body
1141
-
1142
- def as_shallow_dict(self) -> dict:
1143
- """Serializes the CancelExecutionResponse into a shallow dictionary of its immediate attributes."""
1144
- body = {}
1145
- return body
1146
-
1147
- @classmethod
1148
- def from_dict(cls, d: Dict[str, Any]) -> CancelExecutionResponse:
1149
- """Deserializes the CancelExecutionResponse from a dictionary."""
1150
- return cls()
1151
-
1152
-
1153
1141
  @dataclass
1154
1142
  class Channel:
1155
1143
  """Configures the channel name and DBSQL version of the warehouse. CHANNEL_NAME_CUSTOM should be
@@ -1718,20 +1706,20 @@ class CreateWarehouseResponse:
1718
1706
 
1719
1707
  @dataclass
1720
1708
  class CronSchedule:
1721
- pause_status: Optional[SchedulePauseStatus] = None
1722
- """Indicate whether this schedule is paused or not."""
1723
-
1724
- quartz_cron_schedule: Optional[str] = None
1709
+ quartz_cron_schedule: str
1725
1710
  """A cron expression using quartz syntax that specifies the schedule for this pipeline. Should use
1726
1711
  the quartz format described here:
1727
1712
  http://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/tutorial-lesson-06.html"""
1728
1713
 
1729
- timezone_id: Optional[str] = None
1714
+ timezone_id: str
1730
1715
  """A Java timezone id. The schedule will be resolved using this timezone. This will be combined
1731
1716
  with the quartz_cron_schedule to determine the schedule. See
1732
1717
  https://docs.databricks.com/sql/language-manual/sql-ref-syntax-aux-conf-mgmt-set-timezone.html
1733
1718
  for details."""
1734
1719
 
1720
+ pause_status: Optional[SchedulePauseStatus] = None
1721
+ """Indicate whether this schedule is paused or not."""
1722
+
1735
1723
  def as_dict(self) -> dict:
1736
1724
  """Serializes the CronSchedule into a dictionary suitable for use as a JSON request body."""
1737
1725
  body = {}
@@ -3929,9 +3917,6 @@ class ListAlertsV2Response:
3929
3917
 
3930
3918
  next_page_token: Optional[str] = None
3931
3919
 
3932
- results: Optional[List[AlertV2]] = None
3933
- """Deprecated. Use `alerts` instead."""
3934
-
3935
3920
  def as_dict(self) -> dict:
3936
3921
  """Serializes the ListAlertsV2Response into a dictionary suitable for use as a JSON request body."""
3937
3922
  body = {}
@@ -3939,8 +3924,6 @@ class ListAlertsV2Response:
3939
3924
  body["alerts"] = [v.as_dict() for v in self.alerts]
3940
3925
  if self.next_page_token is not None:
3941
3926
  body["next_page_token"] = self.next_page_token
3942
- if self.results:
3943
- body["results"] = [v.as_dict() for v in self.results]
3944
3927
  return body
3945
3928
 
3946
3929
  def as_shallow_dict(self) -> dict:
@@ -3950,18 +3933,12 @@ class ListAlertsV2Response:
3950
3933
  body["alerts"] = self.alerts
3951
3934
  if self.next_page_token is not None:
3952
3935
  body["next_page_token"] = self.next_page_token
3953
- if self.results:
3954
- body["results"] = self.results
3955
3936
  return body
3956
3937
 
3957
3938
  @classmethod
3958
3939
  def from_dict(cls, d: Dict[str, Any]) -> ListAlertsV2Response:
3959
3940
  """Deserializes the ListAlertsV2Response from a dictionary."""
3960
- return cls(
3961
- alerts=_repeated_dict(d, "alerts", AlertV2),
3962
- next_page_token=d.get("next_page_token", None),
3963
- results=_repeated_dict(d, "results", AlertV2),
3964
- )
3941
+ return cls(alerts=_repeated_dict(d, "alerts", AlertV2), next_page_token=d.get("next_page_token", None))
3965
3942
 
3966
3943
 
3967
3944
  class ListOrder(Enum):
@@ -5122,7 +5099,7 @@ class QueryMetrics:
5122
5099
  queue."""
5123
5100
 
5124
5101
  pruned_bytes: Optional[int] = None
5125
- """Total number of bytes in all tables not read due to pruning"""
5102
+ """Total number of file bytes in all tables not read due to pruning"""
5126
5103
 
5127
5104
  pruned_files_count: Optional[int] = None
5128
5105
  """Total number of files from all tables not read due to pruning"""
@@ -5136,6 +5113,9 @@ class QueryMetrics:
5136
5113
  read_cache_bytes: Optional[int] = None
5137
5114
  """Size of persistent data read from the cache, in bytes."""
5138
5115
 
5116
+ read_files_bytes: Optional[int] = None
5117
+ """Total number of file bytes in all tables read"""
5118
+
5139
5119
  read_files_count: Optional[int] = None
5140
5120
  """Number of files read after pruning"""
5141
5121
 
@@ -5215,6 +5195,8 @@ class QueryMetrics:
5215
5195
  body["read_bytes"] = self.read_bytes
5216
5196
  if self.read_cache_bytes is not None:
5217
5197
  body["read_cache_bytes"] = self.read_cache_bytes
5198
+ if self.read_files_bytes is not None:
5199
+ body["read_files_bytes"] = self.read_files_bytes
5218
5200
  if self.read_files_count is not None:
5219
5201
  body["read_files_count"] = self.read_files_count
5220
5202
  if self.read_partitions_count is not None:
@@ -5276,6 +5258,8 @@ class QueryMetrics:
5276
5258
  body["read_bytes"] = self.read_bytes
5277
5259
  if self.read_cache_bytes is not None:
5278
5260
  body["read_cache_bytes"] = self.read_cache_bytes
5261
+ if self.read_files_bytes is not None:
5262
+ body["read_files_bytes"] = self.read_files_bytes
5279
5263
  if self.read_files_count is not None:
5280
5264
  body["read_files_count"] = self.read_files_count
5281
5265
  if self.read_partitions_count is not None:
@@ -5325,6 +5309,7 @@ class QueryMetrics:
5325
5309
  query_compilation_start_timestamp=d.get("query_compilation_start_timestamp", None),
5326
5310
  read_bytes=d.get("read_bytes", None),
5327
5311
  read_cache_bytes=d.get("read_cache_bytes", None),
5312
+ read_files_bytes=d.get("read_files_bytes", None),
5328
5313
  read_files_count=d.get("read_files_count", None),
5329
5314
  read_partitions_count=d.get("read_partitions_count", None),
5330
5315
  read_remote_bytes=d.get("read_remote_bytes", None),
@@ -6310,6 +6295,7 @@ class TerminationReasonCode(Enum):
6310
6295
  DATABASE_CONNECTION_FAILURE = "DATABASE_CONNECTION_FAILURE"
6311
6296
  DATA_ACCESS_CONFIG_CHANGED = "DATA_ACCESS_CONFIG_CHANGED"
6312
6297
  DBFS_COMPONENT_UNHEALTHY = "DBFS_COMPONENT_UNHEALTHY"
6298
+ DBR_IMAGE_RESOLUTION_FAILURE = "DBR_IMAGE_RESOLUTION_FAILURE"
6313
6299
  DISASTER_RECOVERY_REPLICATION = "DISASTER_RECOVERY_REPLICATION"
6314
6300
  DNS_RESOLUTION_ERROR = "DNS_RESOLUTION_ERROR"
6315
6301
  DOCKER_CONTAINER_CREATION_EXCEPTION = "DOCKER_CONTAINER_CREATION_EXCEPTION"
@@ -6378,11 +6364,21 @@ class TerminationReasonCode(Enum):
6378
6364
  NEPHOS_RESOURCE_MANAGEMENT = "NEPHOS_RESOURCE_MANAGEMENT"
6379
6365
  NETVISOR_SETUP_TIMEOUT = "NETVISOR_SETUP_TIMEOUT"
6380
6366
  NETWORK_CHECK_CONTROL_PLANE_FAILURE = "NETWORK_CHECK_CONTROL_PLANE_FAILURE"
6367
+ NETWORK_CHECK_CONTROL_PLANE_FAILURE_DUE_TO_MISCONFIG = "NETWORK_CHECK_CONTROL_PLANE_FAILURE_DUE_TO_MISCONFIG"
6381
6368
  NETWORK_CHECK_DNS_SERVER_FAILURE = "NETWORK_CHECK_DNS_SERVER_FAILURE"
6369
+ NETWORK_CHECK_DNS_SERVER_FAILURE_DUE_TO_MISCONFIG = "NETWORK_CHECK_DNS_SERVER_FAILURE_DUE_TO_MISCONFIG"
6382
6370
  NETWORK_CHECK_METADATA_ENDPOINT_FAILURE = "NETWORK_CHECK_METADATA_ENDPOINT_FAILURE"
6371
+ NETWORK_CHECK_METADATA_ENDPOINT_FAILURE_DUE_TO_MISCONFIG = (
6372
+ "NETWORK_CHECK_METADATA_ENDPOINT_FAILURE_DUE_TO_MISCONFIG"
6373
+ )
6383
6374
  NETWORK_CHECK_MULTIPLE_COMPONENTS_FAILURE = "NETWORK_CHECK_MULTIPLE_COMPONENTS_FAILURE"
6375
+ NETWORK_CHECK_MULTIPLE_COMPONENTS_FAILURE_DUE_TO_MISCONFIG = (
6376
+ "NETWORK_CHECK_MULTIPLE_COMPONENTS_FAILURE_DUE_TO_MISCONFIG"
6377
+ )
6384
6378
  NETWORK_CHECK_NIC_FAILURE = "NETWORK_CHECK_NIC_FAILURE"
6379
+ NETWORK_CHECK_NIC_FAILURE_DUE_TO_MISCONFIG = "NETWORK_CHECK_NIC_FAILURE_DUE_TO_MISCONFIG"
6385
6380
  NETWORK_CHECK_STORAGE_FAILURE = "NETWORK_CHECK_STORAGE_FAILURE"
6381
+ NETWORK_CHECK_STORAGE_FAILURE_DUE_TO_MISCONFIG = "NETWORK_CHECK_STORAGE_FAILURE_DUE_TO_MISCONFIG"
6386
6382
  NETWORK_CONFIGURATION_FAILURE = "NETWORK_CONFIGURATION_FAILURE"
6387
6383
  NFS_MOUNT_FAILURE = "NFS_MOUNT_FAILURE"
6388
6384
  NO_ACTIVATED_K8S = "NO_ACTIVATED_K8S"
@@ -7400,6 +7396,7 @@ class AlertsAPI:
7400
7396
 
7401
7397
  :returns: :class:`Alert`
7402
7398
  """
7399
+
7403
7400
  body = {}
7404
7401
  if alert is not None:
7405
7402
  body["alert"] = alert.as_dict()
@@ -7502,6 +7499,7 @@ class AlertsAPI:
7502
7499
 
7503
7500
  :returns: :class:`Alert`
7504
7501
  """
7502
+
7505
7503
  body = {}
7506
7504
  if alert is not None:
7507
7505
  body["alert"] = alert.as_dict()
@@ -7563,6 +7561,7 @@ class AlertsLegacyAPI:
7563
7561
 
7564
7562
  :returns: :class:`LegacyAlert`
7565
7563
  """
7564
+
7566
7565
  body = {}
7567
7566
  if name is not None:
7568
7567
  body["name"] = name
@@ -7662,6 +7661,7 @@ class AlertsLegacyAPI:
7662
7661
 
7663
7662
 
7664
7663
  """
7664
+
7665
7665
  body = {}
7666
7666
  if name is not None:
7667
7667
  body["name"] = name
@@ -7692,6 +7692,7 @@ class AlertsV2API:
7692
7692
 
7693
7693
  :returns: :class:`AlertV2`
7694
7694
  """
7695
+
7695
7696
  body = alert.as_dict()
7696
7697
  headers = {
7697
7698
  "Accept": "application/json",
@@ -7736,8 +7737,8 @@ class AlertsV2API:
7736
7737
 
7737
7738
  while True:
7738
7739
  json = self._api.do("GET", "/api/2.0/alerts", query=query, headers=headers)
7739
- if "results" in json:
7740
- for v in json["results"]:
7740
+ if "alerts" in json:
7741
+ for v in json["alerts"]:
7741
7742
  yield AlertV2.from_dict(v)
7742
7743
  if "next_page_token" not in json or not json["next_page_token"]:
7743
7744
  return
@@ -7778,6 +7779,7 @@ class AlertsV2API:
7778
7779
 
7779
7780
  :returns: :class:`AlertV2`
7780
7781
  """
7782
+
7781
7783
  body = alert.as_dict()
7782
7784
  query = {}
7783
7785
  if update_mask is not None:
@@ -7822,6 +7824,7 @@ class DashboardWidgetsAPI:
7822
7824
 
7823
7825
  :returns: :class:`Widget`
7824
7826
  """
7827
+
7825
7828
  body = {}
7826
7829
  if dashboard_id is not None:
7827
7830
  body["dashboard_id"] = dashboard_id
@@ -7883,6 +7886,7 @@ class DashboardWidgetsAPI:
7883
7886
 
7884
7887
  :returns: :class:`Widget`
7885
7888
  """
7889
+
7886
7890
  body = {}
7887
7891
  if dashboard_id is not None:
7888
7892
  body["dashboard_id"] = dashboard_id
@@ -8028,6 +8032,7 @@ class DashboardsAPI:
8028
8032
 
8029
8033
  :returns: :class:`Dashboard`
8030
8034
  """
8035
+
8031
8036
  body = {}
8032
8037
  if name is not None:
8033
8038
  body["name"] = name
@@ -8148,6 +8153,7 @@ class DbsqlPermissionsAPI:
8148
8153
 
8149
8154
  :returns: :class:`SetResponse`
8150
8155
  """
8156
+
8151
8157
  body = {}
8152
8158
  if access_control_list is not None:
8153
8159
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -8180,6 +8186,7 @@ class DbsqlPermissionsAPI:
8180
8186
 
8181
8187
  :returns: :class:`Success`
8182
8188
  """
8189
+
8183
8190
  body = {}
8184
8191
  if new_owner is not None:
8185
8192
  body["new_owner"] = new_owner
@@ -8217,6 +8224,7 @@ class QueriesAPI:
8217
8224
 
8218
8225
  :returns: :class:`Query`
8219
8226
  """
8227
+
8220
8228
  body = {}
8221
8229
  if auto_resolve_display_name is not None:
8222
8230
  body["auto_resolve_display_name"] = auto_resolve_display_name
@@ -8349,6 +8357,7 @@ class QueriesAPI:
8349
8357
 
8350
8358
  :returns: :class:`Query`
8351
8359
  """
8360
+
8352
8361
  body = {}
8353
8362
  if auto_resolve_display_name is not None:
8354
8363
  body["auto_resolve_display_name"] = auto_resolve_display_name
@@ -8428,6 +8437,7 @@ class QueriesLegacyAPI:
8428
8437
 
8429
8438
  :returns: :class:`LegacyQuery`
8430
8439
  """
8440
+
8431
8441
  body = {}
8432
8442
  if data_source_id is not None:
8433
8443
  body["data_source_id"] = data_source_id
@@ -8623,6 +8633,7 @@ class QueriesLegacyAPI:
8623
8633
 
8624
8634
  :returns: :class:`LegacyQuery`
8625
8635
  """
8636
+
8626
8637
  body = {}
8627
8638
  if data_source_id is not None:
8628
8639
  body["data_source_id"] = data_source_id
@@ -8716,6 +8727,7 @@ class QueryVisualizationsAPI:
8716
8727
 
8717
8728
  :returns: :class:`Visualization`
8718
8729
  """
8730
+
8719
8731
  body = {}
8720
8732
  if visualization is not None:
8721
8733
  body["visualization"] = visualization.as_dict()
@@ -8761,6 +8773,7 @@ class QueryVisualizationsAPI:
8761
8773
 
8762
8774
  :returns: :class:`Visualization`
8763
8775
  """
8776
+
8764
8777
  body = {}
8765
8778
  if update_mask is not None:
8766
8779
  body["update_mask"] = update_mask
@@ -8811,6 +8824,7 @@ class QueryVisualizationsLegacyAPI:
8811
8824
 
8812
8825
  :returns: :class:`LegacyVisualization`
8813
8826
  """
8827
+
8814
8828
  body = {}
8815
8829
  if description is not None:
8816
8830
  body["description"] = description
@@ -8852,10 +8866,10 @@ class QueryVisualizationsLegacyAPI:
8852
8866
 
8853
8867
  def update(
8854
8868
  self,
8855
- id: str,
8856
8869
  *,
8857
8870
  created_at: Optional[str] = None,
8858
8871
  description: Optional[str] = None,
8872
+ id: Optional[str] = None,
8859
8873
  name: Optional[str] = None,
8860
8874
  options: Optional[Any] = None,
8861
8875
  query: Optional[LegacyQuery] = None,
@@ -8869,11 +8883,11 @@ class QueryVisualizationsLegacyAPI:
8869
8883
 
8870
8884
  [Learn more]: https://docs.databricks.com/en/sql/dbsql-api-latest.html
8871
8885
 
8872
- :param id: str
8873
- The UUID for this visualization.
8874
8886
  :param created_at: str (optional)
8875
8887
  :param description: str (optional)
8876
8888
  A short description of this visualization. This is not displayed in the UI.
8889
+ :param id: str (optional)
8890
+ The UUID for this visualization.
8877
8891
  :param name: str (optional)
8878
8892
  The name of the visualization that appears on dashboards and the query screen.
8879
8893
  :param options: Any (optional)
@@ -8886,11 +8900,14 @@ class QueryVisualizationsLegacyAPI:
8886
8900
 
8887
8901
  :returns: :class:`LegacyVisualization`
8888
8902
  """
8903
+
8889
8904
  body = {}
8890
8905
  if created_at is not None:
8891
8906
  body["created_at"] = created_at
8892
8907
  if description is not None:
8893
8908
  body["description"] = description
8909
+ if id is not None:
8910
+ body["id"] = id
8894
8911
  if name is not None:
8895
8912
  body["name"] = name
8896
8913
  if options is not None:
@@ -9224,6 +9241,7 @@ class StatementExecutionAPI:
9224
9241
 
9225
9242
  :returns: :class:`StatementResponse`
9226
9243
  """
9244
+
9227
9245
  body = {}
9228
9246
  if byte_limit is not None:
9229
9247
  body["byte_limit"] = byte_limit
@@ -9452,6 +9470,7 @@ class WarehousesAPI:
9452
9470
  Long-running operation waiter for :class:`GetWarehouseResponse`.
9453
9471
  See :method:wait_get_warehouse_running for more details.
9454
9472
  """
9473
+
9455
9474
  body = {}
9456
9475
  if auto_stop_mins is not None:
9457
9476
  body["auto_stop_mins"] = auto_stop_mins
@@ -9621,6 +9640,7 @@ class WarehousesAPI:
9621
9640
  Long-running operation waiter for :class:`GetWarehouseResponse`.
9622
9641
  See :method:wait_get_warehouse_running for more details.
9623
9642
  """
9643
+
9624
9644
  body = {}
9625
9645
  if auto_stop_mins is not None:
9626
9646
  body["auto_stop_mins"] = auto_stop_mins
@@ -9807,6 +9827,7 @@ class WarehousesAPI:
9807
9827
 
9808
9828
  :returns: :class:`WarehousePermissions`
9809
9829
  """
9830
+
9810
9831
  body = {}
9811
9832
  if access_control_list is not None:
9812
9833
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -9862,6 +9883,7 @@ class WarehousesAPI:
9862
9883
 
9863
9884
 
9864
9885
  """
9886
+
9865
9887
  body = {}
9866
9888
  if channel is not None:
9867
9889
  body["channel"] = channel.as_dict()
@@ -9944,6 +9966,7 @@ class WarehousesAPI:
9944
9966
 
9945
9967
  :returns: :class:`WarehousePermissions`
9946
9968
  """
9969
+
9947
9970
  body = {}
9948
9971
  if access_control_list is not None:
9949
9972
  body["access_control_list"] = [v.as_dict() for v in access_control_list]
@@ -149,6 +149,7 @@ class TagPoliciesAPI:
149
149
 
150
150
  :returns: :class:`TagPolicy`
151
151
  """
152
+
152
153
  body = tag_policy.as_dict()
153
154
  headers = {
154
155
  "Accept": "application/json",
@@ -238,6 +239,7 @@ class TagPoliciesAPI:
238
239
 
239
240
  :returns: :class:`TagPolicy`
240
241
  """
242
+
241
243
  body = tag_policy.as_dict()
242
244
  query = {}
243
245
  if update_mask is not None:
@@ -1429,6 +1429,7 @@ class VectorSearchEndpointsAPI:
1429
1429
  Long-running operation waiter for :class:`EndpointInfo`.
1430
1430
  See :method:wait_get_endpoint_vector_search_endpoint_online for more details.
1431
1431
  """
1432
+
1432
1433
  body = {}
1433
1434
  if budget_policy_id is not None:
1434
1435
  body["budget_policy_id"] = budget_policy_id
@@ -1529,6 +1530,7 @@ class VectorSearchEndpointsAPI:
1529
1530
 
1530
1531
  :returns: :class:`PatchEndpointBudgetPolicyResponse`
1531
1532
  """
1533
+
1532
1534
  body = {}
1533
1535
  if budget_policy_id is not None:
1534
1536
  body["budget_policy_id"] = budget_policy_id
@@ -1554,6 +1556,7 @@ class VectorSearchEndpointsAPI:
1554
1556
 
1555
1557
  :returns: :class:`UpdateEndpointCustomTagsResponse`
1556
1558
  """
1559
+
1557
1560
  body = {}
1558
1561
  if custom_tags is not None:
1559
1562
  body["custom_tags"] = [v.as_dict() for v in custom_tags]
@@ -1606,6 +1609,7 @@ class VectorSearchIndexesAPI:
1606
1609
 
1607
1610
  :returns: :class:`VectorIndex`
1608
1611
  """
1612
+
1609
1613
  body = {}
1610
1614
  if delta_sync_index_spec is not None:
1611
1615
  body["delta_sync_index_spec"] = delta_sync_index_spec.as_dict()
@@ -1762,6 +1766,7 @@ class VectorSearchIndexesAPI:
1762
1766
 
1763
1767
  :returns: :class:`QueryVectorIndexResponse`
1764
1768
  """
1769
+
1765
1770
  body = {}
1766
1771
  if columns is not None:
1767
1772
  body["columns"] = [v for v in columns]
@@ -1804,6 +1809,7 @@ class VectorSearchIndexesAPI:
1804
1809
 
1805
1810
  :returns: :class:`QueryVectorIndexResponse`
1806
1811
  """
1812
+
1807
1813
  body = {}
1808
1814
  if endpoint_name is not None:
1809
1815
  body["endpoint_name"] = endpoint_name
@@ -1834,6 +1840,7 @@ class VectorSearchIndexesAPI:
1834
1840
 
1835
1841
  :returns: :class:`ScanVectorIndexResponse`
1836
1842
  """
1843
+
1837
1844
  body = {}
1838
1845
  if last_primary_key is not None:
1839
1846
  body["last_primary_key"] = last_primary_key
@@ -1872,6 +1879,7 @@ class VectorSearchIndexesAPI:
1872
1879
 
1873
1880
  :returns: :class:`UpsertDataVectorIndexResponse`
1874
1881
  """
1882
+
1875
1883
  body = {}
1876
1884
  if inputs_json is not None:
1877
1885
  body["inputs_json"] = inputs_json