databricks-sdk 0.57.0__py3-none-any.whl → 0.59.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 (31) hide show
  1. databricks/sdk/__init__.py +38 -9
  2. databricks/sdk/service/aibuilder.py +0 -163
  3. databricks/sdk/service/apps.py +53 -49
  4. databricks/sdk/service/billing.py +62 -223
  5. databricks/sdk/service/catalog.py +3052 -3707
  6. databricks/sdk/service/cleanrooms.py +5 -54
  7. databricks/sdk/service/compute.py +579 -2715
  8. databricks/sdk/service/dashboards.py +108 -317
  9. databricks/sdk/service/database.py +603 -122
  10. databricks/sdk/service/files.py +2 -218
  11. databricks/sdk/service/iam.py +19 -298
  12. databricks/sdk/service/jobs.py +77 -1263
  13. databricks/sdk/service/marketplace.py +3 -575
  14. databricks/sdk/service/ml.py +816 -2734
  15. databricks/sdk/service/oauth2.py +122 -238
  16. databricks/sdk/service/pipelines.py +133 -724
  17. databricks/sdk/service/provisioning.py +36 -757
  18. databricks/sdk/service/qualitymonitorv2.py +0 -18
  19. databricks/sdk/service/serving.py +37 -583
  20. databricks/sdk/service/settings.py +282 -1768
  21. databricks/sdk/service/sharing.py +6 -478
  22. databricks/sdk/service/sql.py +129 -1696
  23. databricks/sdk/service/vectorsearch.py +0 -410
  24. databricks/sdk/service/workspace.py +252 -727
  25. databricks/sdk/version.py +1 -1
  26. {databricks_sdk-0.57.0.dist-info → databricks_sdk-0.59.0.dist-info}/METADATA +1 -1
  27. {databricks_sdk-0.57.0.dist-info → databricks_sdk-0.59.0.dist-info}/RECORD +31 -31
  28. {databricks_sdk-0.57.0.dist-info → databricks_sdk-0.59.0.dist-info}/WHEEL +0 -0
  29. {databricks_sdk-0.57.0.dist-info → databricks_sdk-0.59.0.dist-info}/licenses/LICENSE +0 -0
  30. {databricks_sdk-0.57.0.dist-info → databricks_sdk-0.59.0.dist-info}/licenses/NOTICE +0 -0
  31. {databricks_sdk-0.57.0.dist-info → databricks_sdk-0.59.0.dist-info}/top_level.txt +0 -0
@@ -253,42 +253,6 @@ class DashboardView(Enum):
253
253
  DASHBOARD_VIEW_BASIC = "DASHBOARD_VIEW_BASIC"
254
254
 
255
255
 
256
- @dataclass
257
- class DeleteScheduleResponse:
258
- def as_dict(self) -> dict:
259
- """Serializes the DeleteScheduleResponse into a dictionary suitable for use as a JSON request body."""
260
- body = {}
261
- return body
262
-
263
- def as_shallow_dict(self) -> dict:
264
- """Serializes the DeleteScheduleResponse into a shallow dictionary of its immediate attributes."""
265
- body = {}
266
- return body
267
-
268
- @classmethod
269
- def from_dict(cls, d: Dict[str, Any]) -> DeleteScheduleResponse:
270
- """Deserializes the DeleteScheduleResponse from a dictionary."""
271
- return cls()
272
-
273
-
274
- @dataclass
275
- class DeleteSubscriptionResponse:
276
- def as_dict(self) -> dict:
277
- """Serializes the DeleteSubscriptionResponse into a dictionary suitable for use as a JSON request body."""
278
- body = {}
279
- return body
280
-
281
- def as_shallow_dict(self) -> dict:
282
- """Serializes the DeleteSubscriptionResponse into a shallow dictionary of its immediate attributes."""
283
- body = {}
284
- return body
285
-
286
- @classmethod
287
- def from_dict(cls, d: Dict[str, Any]) -> DeleteSubscriptionResponse:
288
- """Deserializes the DeleteSubscriptionResponse from a dictionary."""
289
- return cls()
290
-
291
-
292
256
  @dataclass
293
257
  class GenieAttachment:
294
258
  """Genie AI Response"""
@@ -410,123 +374,104 @@ class GenieConversation:
410
374
 
411
375
 
412
376
  @dataclass
413
- class GenieCreateConversationMessageRequest:
414
- content: str
415
- """User message content."""
377
+ class GenieConversationSummary:
378
+ conversation_id: str
416
379
 
417
- conversation_id: Optional[str] = None
418
- """The ID associated with the conversation."""
380
+ title: str
419
381
 
420
- space_id: Optional[str] = None
421
- """The ID associated with the Genie space where the conversation is started."""
382
+ created_timestamp: int
422
383
 
423
384
  def as_dict(self) -> dict:
424
- """Serializes the GenieCreateConversationMessageRequest into a dictionary suitable for use as a JSON request body."""
385
+ """Serializes the GenieConversationSummary into a dictionary suitable for use as a JSON request body."""
425
386
  body = {}
426
- if self.content is not None:
427
- body["content"] = self.content
428
387
  if self.conversation_id is not None:
429
388
  body["conversation_id"] = self.conversation_id
430
- if self.space_id is not None:
431
- body["space_id"] = self.space_id
389
+ if self.created_timestamp is not None:
390
+ body["created_timestamp"] = self.created_timestamp
391
+ if self.title is not None:
392
+ body["title"] = self.title
432
393
  return body
433
394
 
434
395
  def as_shallow_dict(self) -> dict:
435
- """Serializes the GenieCreateConversationMessageRequest into a shallow dictionary of its immediate attributes."""
396
+ """Serializes the GenieConversationSummary into a shallow dictionary of its immediate attributes."""
436
397
  body = {}
437
- if self.content is not None:
438
- body["content"] = self.content
439
398
  if self.conversation_id is not None:
440
399
  body["conversation_id"] = self.conversation_id
441
- if self.space_id is not None:
442
- body["space_id"] = self.space_id
400
+ if self.created_timestamp is not None:
401
+ body["created_timestamp"] = self.created_timestamp
402
+ if self.title is not None:
403
+ body["title"] = self.title
443
404
  return body
444
405
 
445
406
  @classmethod
446
- def from_dict(cls, d: Dict[str, Any]) -> GenieCreateConversationMessageRequest:
447
- """Deserializes the GenieCreateConversationMessageRequest from a dictionary."""
407
+ def from_dict(cls, d: Dict[str, Any]) -> GenieConversationSummary:
408
+ """Deserializes the GenieConversationSummary from a dictionary."""
448
409
  return cls(
449
- content=d.get("content", None),
450
410
  conversation_id=d.get("conversation_id", None),
451
- space_id=d.get("space_id", None),
411
+ created_timestamp=d.get("created_timestamp", None),
412
+ title=d.get("title", None),
452
413
  )
453
414
 
454
415
 
455
416
  @dataclass
456
- class GenieGenerateDownloadFullQueryResultResponse:
457
- download_id: Optional[str] = None
458
- """Download ID. Use this ID to track the download request in subsequent polling calls"""
459
-
460
- def as_dict(self) -> dict:
461
- """Serializes the GenieGenerateDownloadFullQueryResultResponse into a dictionary suitable for use as a JSON request body."""
462
- body = {}
463
- if self.download_id is not None:
464
- body["download_id"] = self.download_id
465
- return body
466
-
467
- def as_shallow_dict(self) -> dict:
468
- """Serializes the GenieGenerateDownloadFullQueryResultResponse into a shallow dictionary of its immediate attributes."""
469
- body = {}
470
- if self.download_id is not None:
471
- body["download_id"] = self.download_id
472
- return body
473
-
474
- @classmethod
475
- def from_dict(cls, d: Dict[str, Any]) -> GenieGenerateDownloadFullQueryResultResponse:
476
- """Deserializes the GenieGenerateDownloadFullQueryResultResponse from a dictionary."""
477
- return cls(download_id=d.get("download_id", None))
478
-
479
-
480
- @dataclass
481
- class GenieGetDownloadFullQueryResultResponse:
417
+ class GenieGetMessageQueryResultResponse:
482
418
  statement_response: Optional[sql.StatementResponse] = None
483
419
  """SQL Statement Execution response. See [Get status, manifest, and result first
484
420
  chunk](:method:statementexecution/getstatement) for more details."""
485
421
 
486
422
  def as_dict(self) -> dict:
487
- """Serializes the GenieGetDownloadFullQueryResultResponse into a dictionary suitable for use as a JSON request body."""
423
+ """Serializes the GenieGetMessageQueryResultResponse into a dictionary suitable for use as a JSON request body."""
488
424
  body = {}
489
425
  if self.statement_response:
490
426
  body["statement_response"] = self.statement_response.as_dict()
491
427
  return body
492
428
 
493
429
  def as_shallow_dict(self) -> dict:
494
- """Serializes the GenieGetDownloadFullQueryResultResponse into a shallow dictionary of its immediate attributes."""
430
+ """Serializes the GenieGetMessageQueryResultResponse into a shallow dictionary of its immediate attributes."""
495
431
  body = {}
496
432
  if self.statement_response:
497
433
  body["statement_response"] = self.statement_response
498
434
  return body
499
435
 
500
436
  @classmethod
501
- def from_dict(cls, d: Dict[str, Any]) -> GenieGetDownloadFullQueryResultResponse:
502
- """Deserializes the GenieGetDownloadFullQueryResultResponse from a dictionary."""
437
+ def from_dict(cls, d: Dict[str, Any]) -> GenieGetMessageQueryResultResponse:
438
+ """Deserializes the GenieGetMessageQueryResultResponse from a dictionary."""
503
439
  return cls(statement_response=_from_dict(d, "statement_response", sql.StatementResponse))
504
440
 
505
441
 
506
442
  @dataclass
507
- class GenieGetMessageQueryResultResponse:
508
- statement_response: Optional[sql.StatementResponse] = None
509
- """SQL Statement Execution response. See [Get status, manifest, and result first
510
- chunk](:method:statementexecution/getstatement) for more details."""
443
+ class GenieListConversationsResponse:
444
+ conversations: Optional[List[GenieConversationSummary]] = None
445
+ """List of conversations in the Genie space"""
446
+
447
+ next_page_token: Optional[str] = None
448
+ """Token to get the next page of results"""
511
449
 
512
450
  def as_dict(self) -> dict:
513
- """Serializes the GenieGetMessageQueryResultResponse into a dictionary suitable for use as a JSON request body."""
451
+ """Serializes the GenieListConversationsResponse into a dictionary suitable for use as a JSON request body."""
514
452
  body = {}
515
- if self.statement_response:
516
- body["statement_response"] = self.statement_response.as_dict()
453
+ if self.conversations:
454
+ body["conversations"] = [v.as_dict() for v in self.conversations]
455
+ if self.next_page_token is not None:
456
+ body["next_page_token"] = self.next_page_token
517
457
  return body
518
458
 
519
459
  def as_shallow_dict(self) -> dict:
520
- """Serializes the GenieGetMessageQueryResultResponse into a shallow dictionary of its immediate attributes."""
460
+ """Serializes the GenieListConversationsResponse into a shallow dictionary of its immediate attributes."""
521
461
  body = {}
522
- if self.statement_response:
523
- body["statement_response"] = self.statement_response
462
+ if self.conversations:
463
+ body["conversations"] = self.conversations
464
+ if self.next_page_token is not None:
465
+ body["next_page_token"] = self.next_page_token
524
466
  return body
525
467
 
526
468
  @classmethod
527
- def from_dict(cls, d: Dict[str, Any]) -> GenieGetMessageQueryResultResponse:
528
- """Deserializes the GenieGetMessageQueryResultResponse from a dictionary."""
529
- return cls(statement_response=_from_dict(d, "statement_response", sql.StatementResponse))
469
+ def from_dict(cls, d: Dict[str, Any]) -> GenieListConversationsResponse:
470
+ """Deserializes the GenieListConversationsResponse from a dictionary."""
471
+ return cls(
472
+ conversations=_repeated_dict(d, "conversations", GenieConversationSummary),
473
+ next_page_token=d.get("next_page_token", None),
474
+ )
530
475
 
531
476
 
532
477
  @dataclass
@@ -595,20 +540,6 @@ class GenieMessage:
595
540
  `query_result_metadata` in `GenieQueryAttachment` instead."""
596
541
 
597
542
  status: Optional[MessageStatus] = None
598
- """MessageStatus. The possible values are: * `FETCHING_METADATA`: Fetching metadata from the data
599
- sources. * `FILTERING_CONTEXT`: Running smart context step to determine relevant context. *
600
- `ASKING_AI`: Waiting for the LLM to respond to the user's question. * `PENDING_WAREHOUSE`:
601
- Waiting for warehouse before the SQL query can start executing. * `EXECUTING_QUERY`: Executing a
602
- generated SQL query. Get the SQL query result by calling
603
- [getMessageAttachmentQueryResult](:method:genie/getMessageAttachmentQueryResult) API. *
604
- `FAILED`: The response generation or query execution failed. See `error` field. * `COMPLETED`:
605
- Message processing is completed. Results are in the `attachments` field. Get the SQL query
606
- result by calling
607
- [getMessageAttachmentQueryResult](:method:genie/getMessageAttachmentQueryResult) API. *
608
- `SUBMITTED`: Message has been submitted. * `QUERY_RESULT_EXPIRED`: SQL result is not available
609
- anymore. The user needs to rerun the query. Rerun the SQL query result by calling
610
- [executeMessageAttachmentQuery](:method:genie/executeMessageAttachmentQuery) API. * `CANCELLED`:
611
- Message has been cancelled."""
612
543
 
613
544
  user_id: Optional[int] = None
614
545
  """ID of the user who created the message"""
@@ -836,38 +767,6 @@ class GenieSpace:
836
767
  return cls(description=d.get("description", None), space_id=d.get("space_id", None), title=d.get("title", None))
837
768
 
838
769
 
839
- @dataclass
840
- class GenieStartConversationMessageRequest:
841
- content: str
842
- """The text of the message that starts the conversation."""
843
-
844
- space_id: Optional[str] = None
845
- """The ID associated with the Genie space where you want to start a conversation."""
846
-
847
- def as_dict(self) -> dict:
848
- """Serializes the GenieStartConversationMessageRequest into a dictionary suitable for use as a JSON request body."""
849
- body = {}
850
- if self.content is not None:
851
- body["content"] = self.content
852
- if self.space_id is not None:
853
- body["space_id"] = self.space_id
854
- return body
855
-
856
- def as_shallow_dict(self) -> dict:
857
- """Serializes the GenieStartConversationMessageRequest into a shallow dictionary of its immediate attributes."""
858
- body = {}
859
- if self.content is not None:
860
- body["content"] = self.content
861
- if self.space_id is not None:
862
- body["space_id"] = self.space_id
863
- return body
864
-
865
- @classmethod
866
- def from_dict(cls, d: Dict[str, Any]) -> GenieStartConversationMessageRequest:
867
- """Deserializes the GenieStartConversationMessageRequest from a dictionary."""
868
- return cls(content=d.get("content", None), space_id=d.get("space_id", None))
869
-
870
-
871
770
  @dataclass
872
771
  class GenieStartConversationResponse:
873
772
  message_id: str
@@ -1185,102 +1084,6 @@ class MessageStatus(Enum):
1185
1084
  SUBMITTED = "SUBMITTED"
1186
1085
 
1187
1086
 
1188
- @dataclass
1189
- class MigrateDashboardRequest:
1190
- source_dashboard_id: str
1191
- """UUID of the dashboard to be migrated."""
1192
-
1193
- display_name: Optional[str] = None
1194
- """Display name for the new Lakeview dashboard."""
1195
-
1196
- parent_path: Optional[str] = None
1197
- """The workspace path of the folder to contain the migrated Lakeview dashboard."""
1198
-
1199
- update_parameter_syntax: Optional[bool] = None
1200
- """Flag to indicate if mustache parameter syntax ({{ param }}) should be auto-updated to named
1201
- syntax (:param) when converting datasets in the dashboard."""
1202
-
1203
- def as_dict(self) -> dict:
1204
- """Serializes the MigrateDashboardRequest into a dictionary suitable for use as a JSON request body."""
1205
- body = {}
1206
- if self.display_name is not None:
1207
- body["display_name"] = self.display_name
1208
- if self.parent_path is not None:
1209
- body["parent_path"] = self.parent_path
1210
- if self.source_dashboard_id is not None:
1211
- body["source_dashboard_id"] = self.source_dashboard_id
1212
- if self.update_parameter_syntax is not None:
1213
- body["update_parameter_syntax"] = self.update_parameter_syntax
1214
- return body
1215
-
1216
- def as_shallow_dict(self) -> dict:
1217
- """Serializes the MigrateDashboardRequest into a shallow dictionary of its immediate attributes."""
1218
- body = {}
1219
- if self.display_name is not None:
1220
- body["display_name"] = self.display_name
1221
- if self.parent_path is not None:
1222
- body["parent_path"] = self.parent_path
1223
- if self.source_dashboard_id is not None:
1224
- body["source_dashboard_id"] = self.source_dashboard_id
1225
- if self.update_parameter_syntax is not None:
1226
- body["update_parameter_syntax"] = self.update_parameter_syntax
1227
- return body
1228
-
1229
- @classmethod
1230
- def from_dict(cls, d: Dict[str, Any]) -> MigrateDashboardRequest:
1231
- """Deserializes the MigrateDashboardRequest from a dictionary."""
1232
- return cls(
1233
- display_name=d.get("display_name", None),
1234
- parent_path=d.get("parent_path", None),
1235
- source_dashboard_id=d.get("source_dashboard_id", None),
1236
- update_parameter_syntax=d.get("update_parameter_syntax", None),
1237
- )
1238
-
1239
-
1240
- @dataclass
1241
- class PublishRequest:
1242
- dashboard_id: Optional[str] = None
1243
- """UUID identifying the dashboard to be published."""
1244
-
1245
- embed_credentials: Optional[bool] = None
1246
- """Flag to indicate if the publisher's credentials should be embedded in the published dashboard.
1247
- These embedded credentials will be used to execute the published dashboard's queries."""
1248
-
1249
- warehouse_id: Optional[str] = None
1250
- """The ID of the warehouse that can be used to override the warehouse which was set in the draft."""
1251
-
1252
- def as_dict(self) -> dict:
1253
- """Serializes the PublishRequest into a dictionary suitable for use as a JSON request body."""
1254
- body = {}
1255
- if self.dashboard_id is not None:
1256
- body["dashboard_id"] = self.dashboard_id
1257
- if self.embed_credentials is not None:
1258
- body["embed_credentials"] = self.embed_credentials
1259
- if self.warehouse_id is not None:
1260
- body["warehouse_id"] = self.warehouse_id
1261
- return body
1262
-
1263
- def as_shallow_dict(self) -> dict:
1264
- """Serializes the PublishRequest into a shallow dictionary of its immediate attributes."""
1265
- body = {}
1266
- if self.dashboard_id is not None:
1267
- body["dashboard_id"] = self.dashboard_id
1268
- if self.embed_credentials is not None:
1269
- body["embed_credentials"] = self.embed_credentials
1270
- if self.warehouse_id is not None:
1271
- body["warehouse_id"] = self.warehouse_id
1272
- return body
1273
-
1274
- @classmethod
1275
- def from_dict(cls, d: Dict[str, Any]) -> PublishRequest:
1276
- """Deserializes the PublishRequest from a dictionary."""
1277
- return cls(
1278
- dashboard_id=d.get("dashboard_id", None),
1279
- embed_credentials=d.get("embed_credentials", None),
1280
- warehouse_id=d.get("warehouse_id", None),
1281
- )
1282
-
1283
-
1284
1087
  @dataclass
1285
1088
  class PublishedDashboard:
1286
1089
  display_name: Optional[str] = None
@@ -1801,6 +1604,23 @@ class GenieAPI:
1801
1604
  timeout=timeout
1802
1605
  )
1803
1606
 
1607
+ def delete_conversation(self, space_id: str, conversation_id: str):
1608
+ """Delete a conversation.
1609
+
1610
+ :param space_id: str
1611
+ The ID associated with the Genie space where the conversation is located.
1612
+ :param conversation_id: str
1613
+ The ID of the conversation to delete.
1614
+
1615
+
1616
+ """
1617
+
1618
+ headers = {
1619
+ "Accept": "application/json",
1620
+ }
1621
+
1622
+ self._api.do("DELETE", f"/api/2.0/genie/spaces/{space_id}/conversations/{conversation_id}", headers=headers)
1623
+
1804
1624
  def execute_message_attachment_query(
1805
1625
  self, space_id: str, conversation_id: str, message_id: str, attachment_id: str
1806
1626
  ) -> GenieGetMessageQueryResultResponse:
@@ -1856,75 +1676,6 @@ class GenieAPI:
1856
1676
  )
1857
1677
  return GenieGetMessageQueryResultResponse.from_dict(res)
1858
1678
 
1859
- def generate_download_full_query_result(
1860
- self, space_id: str, conversation_id: str, message_id: str, attachment_id: str
1861
- ) -> GenieGenerateDownloadFullQueryResultResponse:
1862
- """Initiates a new SQL execution and returns a `download_id` that you can use to track the progress of
1863
- the download. The query result is stored in an external link and can be retrieved using the [Get
1864
- Download Full Query Result](:method:genie/getdownloadfullqueryresult) API. Warning: Databricks
1865
- strongly recommends that you protect the URLs that are returned by the `EXTERNAL_LINKS` disposition.
1866
- See [Execute Statement](:method:statementexecution/executestatement) for more details.
1867
-
1868
- :param space_id: str
1869
- Genie space ID
1870
- :param conversation_id: str
1871
- Conversation ID
1872
- :param message_id: str
1873
- Message ID
1874
- :param attachment_id: str
1875
- Attachment ID
1876
-
1877
- :returns: :class:`GenieGenerateDownloadFullQueryResultResponse`
1878
- """
1879
-
1880
- headers = {
1881
- "Accept": "application/json",
1882
- }
1883
-
1884
- res = self._api.do(
1885
- "POST",
1886
- f"/api/2.0/genie/spaces/{space_id}/conversations/{conversation_id}/messages/{message_id}/attachments/{attachment_id}/downloads",
1887
- headers=headers,
1888
- )
1889
- return GenieGenerateDownloadFullQueryResultResponse.from_dict(res)
1890
-
1891
- def get_download_full_query_result(
1892
- self, space_id: str, conversation_id: str, message_id: str, attachment_id: str, download_id: str
1893
- ) -> GenieGetDownloadFullQueryResultResponse:
1894
- """After [Generating a Full Query Result Download](:method:genie/getdownloadfullqueryresult) and
1895
- successfully receiving a `download_id`, use this API to poll the download progress. When the download
1896
- is complete, the API returns one or more external links to the query result files. Warning: Databricks
1897
- strongly recommends that you protect the URLs that are returned by the `EXTERNAL_LINKS` disposition.
1898
- You must not set an Authorization header in download requests. When using the `EXTERNAL_LINKS`
1899
- disposition, Databricks returns presigned URLs that grant temporary access to data. See [Execute
1900
- Statement](:method:statementexecution/executestatement) for more details.
1901
-
1902
- :param space_id: str
1903
- Genie space ID
1904
- :param conversation_id: str
1905
- Conversation ID
1906
- :param message_id: str
1907
- Message ID
1908
- :param attachment_id: str
1909
- Attachment ID
1910
- :param download_id: str
1911
- Download ID. This ID is provided by the [Generate Download
1912
- endpoint](:method:genie/generateDownloadFullQueryResult)
1913
-
1914
- :returns: :class:`GenieGetDownloadFullQueryResultResponse`
1915
- """
1916
-
1917
- headers = {
1918
- "Accept": "application/json",
1919
- }
1920
-
1921
- res = self._api.do(
1922
- "GET",
1923
- f"/api/2.0/genie/spaces/{space_id}/conversations/{conversation_id}/messages/{message_id}/attachments/{attachment_id}/downloads/{download_id}",
1924
- headers=headers,
1925
- )
1926
- return GenieGetDownloadFullQueryResultResponse.from_dict(res)
1927
-
1928
1679
  def get_message(self, space_id: str, conversation_id: str, message_id: str) -> GenieMessage:
1929
1680
  """Get message from conversation.
1930
1681
 
@@ -2050,6 +1801,33 @@ class GenieAPI:
2050
1801
  res = self._api.do("GET", f"/api/2.0/genie/spaces/{space_id}", headers=headers)
2051
1802
  return GenieSpace.from_dict(res)
2052
1803
 
1804
+ def list_conversations(
1805
+ self, space_id: str, *, page_size: Optional[int] = None, page_token: Optional[str] = None
1806
+ ) -> GenieListConversationsResponse:
1807
+ """Get a list of conversations in a Genie Space.
1808
+
1809
+ :param space_id: str
1810
+ The ID of the Genie space to retrieve conversations from.
1811
+ :param page_size: int (optional)
1812
+ Maximum number of conversations to return per page
1813
+ :param page_token: str (optional)
1814
+ Token to get the next page of results
1815
+
1816
+ :returns: :class:`GenieListConversationsResponse`
1817
+ """
1818
+
1819
+ query = {}
1820
+ if page_size is not None:
1821
+ query["page_size"] = page_size
1822
+ if page_token is not None:
1823
+ query["page_token"] = page_token
1824
+ headers = {
1825
+ "Accept": "application/json",
1826
+ }
1827
+
1828
+ res = self._api.do("GET", f"/api/2.0/genie/spaces/{space_id}/conversations", query=query, headers=headers)
1829
+ return GenieListConversationsResponse.from_dict(res)
1830
+
2053
1831
  def list_spaces(
2054
1832
  self, *, page_size: Optional[int] = None, page_token: Optional[str] = None
2055
1833
  ) -> GenieListSpacesResponse:
@@ -2109,6 +1887,21 @@ class GenieAPI:
2109
1887
  def start_conversation_and_wait(self, space_id: str, content: str, timeout=timedelta(minutes=20)) -> GenieMessage:
2110
1888
  return self.start_conversation(content=content, space_id=space_id).result(timeout=timeout)
2111
1889
 
1890
+ def trash_space(self, space_id: str):
1891
+ """Move a Genie Space to the trash.
1892
+
1893
+ :param space_id: str
1894
+ The ID associated with the Genie space to be sent to the trash.
1895
+
1896
+
1897
+ """
1898
+
1899
+ headers = {
1900
+ "Accept": "application/json",
1901
+ }
1902
+
1903
+ self._api.do("DELETE", f"/api/2.0/genie/spaces/{space_id}", headers=headers)
1904
+
2112
1905
 
2113
1906
  class LakeviewAPI:
2114
1907
  """These APIs provide specific management operations for Lakeview dashboards. Generic resource management can
@@ -2139,6 +1932,7 @@ class LakeviewAPI:
2139
1932
  :param dashboard_id: str
2140
1933
  UUID identifying the dashboard to which the schedule belongs.
2141
1934
  :param schedule: :class:`Schedule`
1935
+ The schedule to create. A dashboard is limited to 10 schedules.
2142
1936
 
2143
1937
  :returns: :class:`Schedule`
2144
1938
  """
@@ -2159,6 +1953,7 @@ class LakeviewAPI:
2159
1953
  :param schedule_id: str
2160
1954
  UUID identifying the schedule to which the subscription belongs.
2161
1955
  :param subscription: :class:`Subscription`
1956
+ The subscription to create. A schedule is limited to 100 subscriptions.
2162
1957
 
2163
1958
  :returns: :class:`Subscription`
2164
1959
  """
@@ -2558,6 +2353,7 @@ class LakeviewAPI:
2558
2353
  :param schedule_id: str
2559
2354
  UUID identifying the schedule.
2560
2355
  :param schedule: :class:`Schedule`
2356
+ The schedule to update.
2561
2357
 
2562
2358
  :returns: :class:`Schedule`
2563
2359
  """
@@ -2582,12 +2378,7 @@ class LakeviewEmbeddedAPI:
2582
2378
  def get_published_dashboard_token_info(
2583
2379
  self, dashboard_id: str, *, external_value: Optional[str] = None, external_viewer_id: Optional[str] = None
2584
2380
  ) -> GetPublishedDashboardTokenInfoResponse:
2585
- """Get a required authorization details and scopes of a published dashboard to mint an OAuth token. The
2586
- `authorization_details` can be enriched to apply additional restriction.
2587
-
2588
- Example: Adding the following `authorization_details` object to downscope the viewer permission to
2589
- specific table ``` { type: "unity_catalog_privileges", privileges: ["SELECT"], object_type: "TABLE",
2590
- object_full_path: "main.default.testdata" } ```
2381
+ """Get a required authorization details and scopes of a published dashboard to mint an OAuth token.
2591
2382
 
2592
2383
  :param dashboard_id: str
2593
2384
  UUID identifying the published dashboard.