lightning-sdk 2025.7.9__py3-none-any.whl → 2025.7.17__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.
Files changed (42) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/llm_api.py +15 -6
  3. lightning_sdk/job/base.py +30 -1
  4. lightning_sdk/lightning_cloud/openapi/__init__.py +7 -1
  5. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +109 -0
  6. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +5 -1
  7. lightning_sdk/lightning_cloud/openapi/api/user_service_api.py +11 -11
  8. lightning_sdk/lightning_cloud/openapi/models/__init__.py +7 -1
  9. lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +29 -3
  10. lightning_sdk/lightning_cloud/openapi/models/project_id_storage_body.py +1 -27
  11. lightning_sdk/lightning_cloud/openapi/models/protobuf_null_value.py +102 -0
  12. lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +1 -27
  13. lightning_sdk/lightning_cloud/openapi/models/uploads_upload_id_body1.py +3 -55
  14. lightning_sdk/lightning_cloud/openapi/models/{v1_list_new_features_for_user_response.py → v1_ai_pod_v1.py} +23 -23
  15. lightning_sdk/lightning_cloud/openapi/models/v1_artifact.py +27 -1
  16. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_session_daily_aggregated.py +357 -0
  17. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +1 -0
  18. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
  19. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +1 -0
  20. lightning_sdk/lightning_cloud/openapi/models/v1_complete_upload.py +3 -55
  21. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -1
  22. lightning_sdk/lightning_cloud/openapi/models/v1_function_tool.py +175 -0
  23. lightning_sdk/lightning_cloud/openapi/models/v1_get_artifacts_page_response.py +29 -3
  24. lightning_sdk/lightning_cloud/openapi/models/v1_get_clickhouse_assistant_session_daily_aggregated_response.py +201 -0
  25. lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_instance_artifact.py +27 -1
  26. lightning_sdk/lightning_cloud/openapi/models/v1_list_notification_dialogs_response.py +149 -0
  27. lightning_sdk/lightning_cloud/openapi/models/v1_message.py +27 -1
  28. lightning_sdk/lightning_cloud/openapi/models/v1_presigned_url.py +1 -53
  29. lightning_sdk/lightning_cloud/openapi/models/v1_project.py +27 -1
  30. lightning_sdk/lightning_cloud/openapi/models/v1_tool.py +149 -0
  31. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +131 -53
  32. lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +27 -1
  33. lightning_sdk/lightning_cloud/utils/data_connection.py +57 -3
  34. lightning_sdk/llm/llm.py +32 -8
  35. lightning_sdk/llm/public_assistants.json +3 -1
  36. lightning_sdk/machine.py +12 -1
  37. {lightning_sdk-2025.7.9.dist-info → lightning_sdk-2025.7.17.dist-info}/METADATA +1 -1
  38. {lightning_sdk-2025.7.9.dist-info → lightning_sdk-2025.7.17.dist-info}/RECORD +42 -36
  39. {lightning_sdk-2025.7.9.dist-info → lightning_sdk-2025.7.17.dist-info}/LICENSE +0 -0
  40. {lightning_sdk-2025.7.9.dist-info → lightning_sdk-2025.7.17.dist-info}/WHEEL +0 -0
  41. {lightning_sdk-2025.7.9.dist-info → lightning_sdk-2025.7.17.dist-info}/entry_points.txt +0 -0
  42. {lightning_sdk-2025.7.9.dist-info → lightning_sdk-2025.7.17.dist-info}/top_level.txt +0 -0
lightning_sdk/__init__.py CHANGED
@@ -31,6 +31,6 @@ __all__ = [
31
31
  "User",
32
32
  ]
33
33
 
34
- __version__ = "2025.07.09"
34
+ __version__ = "2025.07.17"
35
35
  _check_version_and_prompt_upgrade(__version__)
36
36
  _set_tqdm_envvars_noninteractive()
@@ -1,16 +1,18 @@
1
1
  import asyncio
2
2
  import base64
3
+ import datetime
3
4
  import json
4
5
  import os
5
6
  import threading
6
7
  import warnings
7
8
  from typing import Any, AsyncGenerator, Dict, Generator, List, Optional, Union
8
9
 
9
- from pip._vendor.urllib3 import HTTPResponse
10
-
11
- from lightning_sdk.lightning_cloud.openapi.models.v1_conversation_response_chunk import V1ConversationResponseChunk
12
- from lightning_sdk.lightning_cloud.openapi.models.v1_response_choice import V1ResponseChoice
13
- from lightning_sdk.lightning_cloud.openapi.models.v1_response_choice_delta import V1ResponseChoiceDelta
10
+ from lightning_sdk.lightning_cloud.openapi.models import (
11
+ StreamResultOfV1ConversationResponseChunk,
12
+ V1ConversationResponseChunk,
13
+ V1ResponseChoice,
14
+ V1ResponseChoiceDelta,
15
+ )
14
16
  from lightning_sdk.lightning_cloud.rest_client import LightningClient
15
17
 
16
18
 
@@ -46,12 +48,16 @@ class LLMApi:
46
48
  executable=result_data.get("executable"),
47
49
  id=result_data.get("id"),
48
50
  throughput=result_data.get("throughput"),
51
+ stats=result_data.get("stats"),
52
+ usage=result_data.get("usage"),
49
53
  )
50
54
  except json.JSONDecodeError:
51
55
  warnings.warn("Error decoding JSON:", decoded_line)
52
56
  return None
53
57
 
54
- def _stream_chat_response(self, result: HTTPResponse) -> Generator[V1ConversationResponseChunk, None, None]:
58
+ def _stream_chat_response(
59
+ self, result: StreamResultOfV1ConversationResponseChunk
60
+ ) -> Generator[V1ConversationResponseChunk, None, None]:
55
61
  for line in result.stream():
56
62
  decoded_lines = line.decode("utf-8").strip()
57
63
  for decoded_line in decoded_lines.splitlines():
@@ -77,6 +83,7 @@ class LLMApi:
77
83
  name: Optional[str] = None,
78
84
  metadata: Optional[Dict[str, str]] = None,
79
85
  stream: bool = False,
86
+ tools: Optional[List[Dict[str, Any]]] = None,
80
87
  **kwargs: Any,
81
88
  ) -> Union[V1ConversationResponseChunk, Generator[V1ConversationResponseChunk, None, None]]:
82
89
  is_internal_conversation = os.getenv("LIGHTNING_INTERNAL_CONVERSATION", "false").lower() == "true"
@@ -102,6 +109,7 @@ class LLMApi:
102
109
  "ephemeral": ephemeral,
103
110
  "parent_conversation_id": kwargs.get("parent_conversation_id", ""),
104
111
  "parent_message_id": kwargs.get("parent_message_id", ""),
112
+ "tools": tools,
105
113
  }
106
114
  if images:
107
115
  for image in images:
@@ -158,6 +166,7 @@ class LLMApi:
158
166
  "ephemeral": ephemeral,
159
167
  "parent_conversation_id": kwargs.get("parent_conversation_id", ""),
160
168
  "parent_message_id": kwargs.get("parent_message_id", ""),
169
+ "sent_at": datetime.datetime.now(datetime.timezone.utc).isoformat(timespec="microseconds"),
161
170
  }
162
171
  if images:
163
172
  for image in images:
lightning_sdk/job/base.py CHANGED
@@ -275,12 +275,13 @@ class _BaseJob(ABC):
275
275
  Caution: This also deletes all artifacts and snapshots associated with the job.
276
276
  """
277
277
 
278
- def wait(self, interval: float = 5.0, timeout: Optional[float] = None) -> None:
278
+ def wait(self, interval: float = 5.0, timeout: Optional[float] = None, stop_on_timeout: bool = False) -> None:
279
279
  """Waits for the job to be either completed, manually stopped or failed.
280
280
 
281
281
  Args:
282
282
  interval: The number of seconds to spend in-between status checks.
283
283
  timeout: The maximum number of seconds to wait before raising an error. If None, waits forever.
284
+ stop_on_timeout: Whether to stop the job if it didn't finish within the timeout.
284
285
  """
285
286
  import time
286
287
 
@@ -292,10 +293,38 @@ class _BaseJob(ABC):
292
293
  break
293
294
 
294
295
  if timeout is not None and time.time() - start > timeout:
296
+ if stop_on_timeout:
297
+ self.stop() # ensure the job is stopped if it didn't finish
295
298
  raise TimeoutError("Job didn't finish within the provided timeout.")
296
299
 
297
300
  time.sleep(interval)
298
301
 
302
+ async def async_wait(
303
+ self, interval: float = 5.0, timeout: Optional[float] = None, stop_on_timeout: bool = False
304
+ ) -> None:
305
+ """Waits for the job to be either completed, manually stopped or failed.
306
+
307
+ Args:
308
+ interval: The number of seconds to spend in-between status checks.
309
+ timeout: The maximum number of seconds to wait before raising an error. If None, waits forever.
310
+ stop_on_timeout: Whether to stop the job if it didn't finish within the timeout.
311
+ """
312
+ import asyncio
313
+
314
+ from lightning_sdk.status import Status
315
+
316
+ start = asyncio.get_event_loop().time()
317
+ while True:
318
+ if self.status in (Status.Completed, Status.Stopped, Status.Failed):
319
+ break
320
+
321
+ if timeout is not None and asyncio.get_event_loop().time() - start > timeout:
322
+ if stop_on_timeout:
323
+ self.stop() # ensure the job is stopped if it didn't finish
324
+ raise TimeoutError("Job didn't finish within the provided timeout.")
325
+
326
+ await asyncio.sleep(interval)
327
+
299
328
  @property
300
329
  @abstractmethod
301
330
  def status(self) -> "Status":
@@ -208,6 +208,7 @@ from lightning_sdk.lightning_cloud.openapi.models.project_id_storage_body import
208
208
  from lightning_sdk.lightning_cloud.openapi.models.projects_id_body import ProjectsIdBody
209
209
  from lightning_sdk.lightning_cloud.openapi.models.projects_project_id_body import ProjectsProjectIdBody
210
210
  from lightning_sdk.lightning_cloud.openapi.models.protobuf_any import ProtobufAny
211
+ from lightning_sdk.lightning_cloud.openapi.models.protobuf_null_value import ProtobufNullValue
211
212
  from lightning_sdk.lightning_cloud.openapi.models.query_query_id_body import QueryQueryIdBody
212
213
  from lightning_sdk.lightning_cloud.openapi.models.rpc_status import RpcStatus
213
214
  from lightning_sdk.lightning_cloud.openapi.models.schedules_id_body import SchedulesIdBody
@@ -251,6 +252,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_agent_job import V1AgentJob
251
252
  from lightning_sdk.lightning_cloud.openapi.models.v1_agent_job_artifact import V1AgentJobArtifact
252
253
  from lightning_sdk.lightning_cloud.openapi.models.v1_agent_upload_multipart_url import V1AgentUploadMultipartUrl
253
254
  from lightning_sdk.lightning_cloud.openapi.models.v1_agent_upload_part_response import V1AgentUploadPartResponse
255
+ from lightning_sdk.lightning_cloud.openapi.models.v1_ai_pod_v1 import V1AiPodV1
254
256
  from lightning_sdk.lightning_cloud.openapi.models.v1_alert_method import V1AlertMethod
255
257
  from lightning_sdk.lightning_cloud.openapi.models.v1_alerts_config import V1AlertsConfig
256
258
  from lightning_sdk.lightning_cloud.openapi.models.v1_api_pricing_spec import V1ApiPricingSpec
@@ -263,6 +265,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_assistant import V1Assistan
263
265
  from lightning_sdk.lightning_cloud.openapi.models.v1_assistant_knowledge_item_status import V1AssistantKnowledgeItemStatus
264
266
  from lightning_sdk.lightning_cloud.openapi.models.v1_assistant_knowledge_status import V1AssistantKnowledgeStatus
265
267
  from lightning_sdk.lightning_cloud.openapi.models.v1_assistant_model_status import V1AssistantModelStatus
268
+ from lightning_sdk.lightning_cloud.openapi.models.v1_assistant_session_daily_aggregated import V1AssistantSessionDailyAggregated
266
269
  from lightning_sdk.lightning_cloud.openapi.models.v1_author import V1Author
267
270
  from lightning_sdk.lightning_cloud.openapi.models.v1_auto_join_domain_validation import V1AutoJoinDomainValidation
268
271
  from lightning_sdk.lightning_cloud.openapi.models.v1_auto_join_org_response import V1AutoJoinOrgResponse
@@ -526,6 +529,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_filesystem_work import V1Fi
526
529
  from lightning_sdk.lightning_cloud.openapi.models.v1_find_capacity_block_offering_response import V1FindCapacityBlockOfferingResponse
527
530
  from lightning_sdk.lightning_cloud.openapi.models.v1_flowserver import V1Flowserver
528
531
  from lightning_sdk.lightning_cloud.openapi.models.v1_folder_index_status import V1FolderIndexStatus
532
+ from lightning_sdk.lightning_cloud.openapi.models.v1_function_tool import V1FunctionTool
529
533
  from lightning_sdk.lightning_cloud.openapi.models.v1_gcp_direct_vpc import V1GCPDirectVPC
530
534
  from lightning_sdk.lightning_cloud.openapi.models.v1_gcs_folder_data_connection import V1GCSFolderDataConnection
531
535
  from lightning_sdk.lightning_cloud.openapi.models.v1_gpu_system_metrics import V1GPUSystemMetrics
@@ -539,6 +543,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_get_affiliate_link_response
539
543
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_agent_job_env_response import V1GetAgentJobEnvResponse
540
544
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_agent_job_logs_metadata_response import V1GetAgentJobLogsMetadataResponse
541
545
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_artifacts_page_response import V1GetArtifactsPageResponse
546
+ from lightning_sdk.lightning_cloud.openapi.models.v1_get_clickhouse_assistant_session_daily_aggregated_response import V1GetClickhouseAssistantSessionDailyAggregatedResponse
542
547
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_cold_start_metrics_stats_response import V1GetCloudSpaceColdStartMetricsStatsResponse
543
548
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_instance_open_ports_response import V1GetCloudSpaceInstanceOpenPortsResponse
544
549
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_instance_status_response import V1GetCloudSpaceInstanceStatusResponse
@@ -699,7 +704,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_model_versions_respons
699
704
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_models_response import V1ListModelsResponse
700
705
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_multi_machine_job_events_response import V1ListMultiMachineJobEventsResponse
701
706
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_multi_machine_jobs_response import V1ListMultiMachineJobsResponse
702
- from lightning_sdk.lightning_cloud.openapi.models.v1_list_new_features_for_user_response import V1ListNewFeaturesForUserResponse
707
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_notification_dialogs_response import V1ListNotificationDialogsResponse
703
708
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_org_members_response import V1ListOrgMembersResponse
704
709
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_org_membership_role_binding_response import V1ListOrgMembershipRoleBindingResponse
705
710
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_org_memberships_response import V1ListOrgMembershipsResponse
@@ -918,6 +923,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_system_metrics_list import
918
923
  from lightning_sdk.lightning_cloud.openapi.models.v1_telemetry import V1Telemetry
919
924
  from lightning_sdk.lightning_cloud.openapi.models.v1_timestamp_code_telemetry import V1TimestampCodeTelemetry
920
925
  from lightning_sdk.lightning_cloud.openapi.models.v1_token_usage import V1TokenUsage
926
+ from lightning_sdk.lightning_cloud.openapi.models.v1_tool import V1Tool
921
927
  from lightning_sdk.lightning_cloud.openapi.models.v1_transaction import V1Transaction
922
928
  from lightning_sdk.lightning_cloud.openapi.models.v1_transfer_cloud_space_response import V1TransferCloudSpaceResponse
923
929
  from lightning_sdk.lightning_cloud.openapi.models.v1_transfer_org_balance_response import V1TransferOrgBalanceResponse
@@ -528,6 +528,115 @@ class BillingServiceApi(object):
528
528
  _request_timeout=params.get('_request_timeout'),
529
529
  collection_formats=collection_formats)
530
530
 
531
+ def billing_service_get_clickhouse_assistant_session_daily_aggregated(self, **kwargs) -> 'V1GetClickhouseAssistantSessionDailyAggregatedResponse': # noqa: E501
532
+ """Aggregated assistant session endpoint to get credits spending information. Provides credits consumption data by particular project according to filters given. # noqa: E501
533
+
534
+ This method makes a synchronous HTTP request by default. To make an
535
+ asynchronous HTTP request, please pass async_req=True
536
+ >>> thread = api.billing_service_get_clickhouse_assistant_session_daily_aggregated(async_req=True)
537
+ >>> result = thread.get()
538
+
539
+ :param async_req bool
540
+ :param str project_id:
541
+ :param datetime _from:
542
+ :param datetime to:
543
+ :param str user_id:
544
+ :param str org_id:
545
+ :param bool details:
546
+ :return: V1GetClickhouseAssistantSessionDailyAggregatedResponse
547
+ If the method is called asynchronously,
548
+ returns the request thread.
549
+ """
550
+ kwargs['_return_http_data_only'] = True
551
+ if kwargs.get('async_req'):
552
+ return self.billing_service_get_clickhouse_assistant_session_daily_aggregated_with_http_info(**kwargs) # noqa: E501
553
+ else:
554
+ (data) = self.billing_service_get_clickhouse_assistant_session_daily_aggregated_with_http_info(**kwargs) # noqa: E501
555
+ return data
556
+
557
+ def billing_service_get_clickhouse_assistant_session_daily_aggregated_with_http_info(self, **kwargs) -> 'V1GetClickhouseAssistantSessionDailyAggregatedResponse': # noqa: E501
558
+ """Aggregated assistant session endpoint to get credits spending information. Provides credits consumption data by particular project according to filters given. # noqa: E501
559
+
560
+ This method makes a synchronous HTTP request by default. To make an
561
+ asynchronous HTTP request, please pass async_req=True
562
+ >>> thread = api.billing_service_get_clickhouse_assistant_session_daily_aggregated_with_http_info(async_req=True)
563
+ >>> result = thread.get()
564
+
565
+ :param async_req bool
566
+ :param str project_id:
567
+ :param datetime _from:
568
+ :param datetime to:
569
+ :param str user_id:
570
+ :param str org_id:
571
+ :param bool details:
572
+ :return: V1GetClickhouseAssistantSessionDailyAggregatedResponse
573
+ If the method is called asynchronously,
574
+ returns the request thread.
575
+ """
576
+
577
+ all_params = ['project_id', '_from', 'to', 'user_id', 'org_id', 'details'] # noqa: E501
578
+ all_params.append('async_req')
579
+ all_params.append('_return_http_data_only')
580
+ all_params.append('_preload_content')
581
+ all_params.append('_request_timeout')
582
+
583
+ params = locals()
584
+ for key, val in six.iteritems(params['kwargs']):
585
+ if key not in all_params:
586
+ raise TypeError(
587
+ "Got an unexpected keyword argument '%s'"
588
+ " to method billing_service_get_clickhouse_assistant_session_daily_aggregated" % key
589
+ )
590
+ params[key] = val
591
+ del params['kwargs']
592
+
593
+ collection_formats = {}
594
+
595
+ path_params = {}
596
+
597
+ query_params = []
598
+ if 'project_id' in params:
599
+ query_params.append(('projectId', params['project_id'])) # noqa: E501
600
+ if '_from' in params:
601
+ query_params.append(('from', params['_from'])) # noqa: E501
602
+ if 'to' in params:
603
+ query_params.append(('to', params['to'])) # noqa: E501
604
+ if 'user_id' in params:
605
+ query_params.append(('userId', params['user_id'])) # noqa: E501
606
+ if 'org_id' in params:
607
+ query_params.append(('orgId', params['org_id'])) # noqa: E501
608
+ if 'details' in params:
609
+ query_params.append(('details', params['details'])) # noqa: E501
610
+
611
+ header_params = {}
612
+
613
+ form_params = []
614
+ local_var_files = {}
615
+
616
+ body_params = None
617
+ # HTTP header `Accept`
618
+ header_params['Accept'] = self.api_client.select_header_accept(
619
+ ['application/json']) # noqa: E501
620
+
621
+ # Authentication setting
622
+ auth_settings = [] # noqa: E501
623
+
624
+ return self.api_client.call_api(
625
+ '/v1/billing/clickhouse-assistant-session', 'GET',
626
+ path_params,
627
+ query_params,
628
+ header_params,
629
+ body=body_params,
630
+ post_params=form_params,
631
+ files=local_var_files,
632
+ response_type='V1GetClickhouseAssistantSessionDailyAggregatedResponse', # noqa: E501
633
+ auth_settings=auth_settings,
634
+ async_req=params.get('async_req'),
635
+ _return_http_data_only=params.get('_return_http_data_only'),
636
+ _preload_content=params.get('_preload_content', True),
637
+ _request_timeout=params.get('_request_timeout'),
638
+ collection_formats=collection_formats)
639
+
531
640
  def billing_service_get_org_balance(self, org_id: 'str', **kwargs) -> 'V1GetProjectBalanceResponse': # noqa: E501
532
641
  """billing_service_get_org_balance # noqa: E501
533
642
 
@@ -1642,6 +1642,7 @@ class ClusterServiceApi(object):
1642
1642
  :param str id: (required)
1643
1643
  :param str org_id:
1644
1644
  :param str project_id:
1645
+ :param str auth_token:
1645
1646
  :return: Externalv1Cluster
1646
1647
  If the method is called asynchronously,
1647
1648
  returns the request thread.
@@ -1665,12 +1666,13 @@ class ClusterServiceApi(object):
1665
1666
  :param str id: (required)
1666
1667
  :param str org_id:
1667
1668
  :param str project_id:
1669
+ :param str auth_token:
1668
1670
  :return: Externalv1Cluster
1669
1671
  If the method is called asynchronously,
1670
1672
  returns the request thread.
1671
1673
  """
1672
1674
 
1673
- all_params = ['id', 'org_id', 'project_id'] # noqa: E501
1675
+ all_params = ['id', 'org_id', 'project_id', 'auth_token'] # noqa: E501
1674
1676
  all_params.append('async_req')
1675
1677
  all_params.append('_return_http_data_only')
1676
1678
  all_params.append('_preload_content')
@@ -1701,6 +1703,8 @@ class ClusterServiceApi(object):
1701
1703
  query_params.append(('orgId', params['org_id'])) # noqa: E501
1702
1704
  if 'project_id' in params:
1703
1705
  query_params.append(('projectId', params['project_id'])) # noqa: E501
1706
+ if 'auth_token' in params:
1707
+ query_params.append(('authToken', params['auth_token'])) # noqa: E501
1704
1708
 
1705
1709
  header_params = {}
1706
1710
 
@@ -884,38 +884,38 @@ class UserServiceApi(object):
884
884
  _request_timeout=params.get('_request_timeout'),
885
885
  collection_formats=collection_formats)
886
886
 
887
- def user_service_list_new_features_for_user(self, **kwargs) -> 'V1ListNewFeaturesForUserResponse': # noqa: E501
887
+ def user_service_list_notification_dialogs(self, **kwargs) -> 'V1ListNotificationDialogsResponse': # noqa: E501
888
888
  """we use this to show ne user unseen new features modal # noqa: E501
889
889
 
890
890
  This method makes a synchronous HTTP request by default. To make an
891
891
  asynchronous HTTP request, please pass async_req=True
892
- >>> thread = api.user_service_list_new_features_for_user(async_req=True)
892
+ >>> thread = api.user_service_list_notification_dialogs(async_req=True)
893
893
  >>> result = thread.get()
894
894
 
895
895
  :param async_req bool
896
896
  :param bool unseen:
897
- :return: V1ListNewFeaturesForUserResponse
897
+ :return: V1ListNotificationDialogsResponse
898
898
  If the method is called asynchronously,
899
899
  returns the request thread.
900
900
  """
901
901
  kwargs['_return_http_data_only'] = True
902
902
  if kwargs.get('async_req'):
903
- return self.user_service_list_new_features_for_user_with_http_info(**kwargs) # noqa: E501
903
+ return self.user_service_list_notification_dialogs_with_http_info(**kwargs) # noqa: E501
904
904
  else:
905
- (data) = self.user_service_list_new_features_for_user_with_http_info(**kwargs) # noqa: E501
905
+ (data) = self.user_service_list_notification_dialogs_with_http_info(**kwargs) # noqa: E501
906
906
  return data
907
907
 
908
- def user_service_list_new_features_for_user_with_http_info(self, **kwargs) -> 'V1ListNewFeaturesForUserResponse': # noqa: E501
908
+ def user_service_list_notification_dialogs_with_http_info(self, **kwargs) -> 'V1ListNotificationDialogsResponse': # noqa: E501
909
909
  """we use this to show ne user unseen new features modal # noqa: E501
910
910
 
911
911
  This method makes a synchronous HTTP request by default. To make an
912
912
  asynchronous HTTP request, please pass async_req=True
913
- >>> thread = api.user_service_list_new_features_for_user_with_http_info(async_req=True)
913
+ >>> thread = api.user_service_list_notification_dialogs_with_http_info(async_req=True)
914
914
  >>> result = thread.get()
915
915
 
916
916
  :param async_req bool
917
917
  :param bool unseen:
918
- :return: V1ListNewFeaturesForUserResponse
918
+ :return: V1ListNotificationDialogsResponse
919
919
  If the method is called asynchronously,
920
920
  returns the request thread.
921
921
  """
@@ -931,7 +931,7 @@ class UserServiceApi(object):
931
931
  if key not in all_params:
932
932
  raise TypeError(
933
933
  "Got an unexpected keyword argument '%s'"
934
- " to method user_service_list_new_features_for_user" % key
934
+ " to method user_service_list_notification_dialogs" % key
935
935
  )
936
936
  params[key] = val
937
937
  del params['kwargs']
@@ -958,14 +958,14 @@ class UserServiceApi(object):
958
958
  auth_settings = [] # noqa: E501
959
959
 
960
960
  return self.api_client.call_api(
961
- '/v1/users/new-features', 'GET',
961
+ '/v1/users/notification-dialogs', 'GET',
962
962
  path_params,
963
963
  query_params,
964
964
  header_params,
965
965
  body=body_params,
966
966
  post_params=form_params,
967
967
  files=local_var_files,
968
- response_type='V1ListNewFeaturesForUserResponse', # noqa: E501
968
+ response_type='V1ListNotificationDialogsResponse', # noqa: E501
969
969
  auth_settings=auth_settings,
970
970
  async_req=params.get('async_req'),
971
971
  _return_http_data_only=params.get('_return_http_data_only'),
@@ -161,6 +161,7 @@ from lightning_sdk.lightning_cloud.openapi.models.project_id_storage_body import
161
161
  from lightning_sdk.lightning_cloud.openapi.models.projects_id_body import ProjectsIdBody
162
162
  from lightning_sdk.lightning_cloud.openapi.models.projects_project_id_body import ProjectsProjectIdBody
163
163
  from lightning_sdk.lightning_cloud.openapi.models.protobuf_any import ProtobufAny
164
+ from lightning_sdk.lightning_cloud.openapi.models.protobuf_null_value import ProtobufNullValue
164
165
  from lightning_sdk.lightning_cloud.openapi.models.query_query_id_body import QueryQueryIdBody
165
166
  from lightning_sdk.lightning_cloud.openapi.models.rpc_status import RpcStatus
166
167
  from lightning_sdk.lightning_cloud.openapi.models.schedules_id_body import SchedulesIdBody
@@ -204,6 +205,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_agent_job import V1AgentJob
204
205
  from lightning_sdk.lightning_cloud.openapi.models.v1_agent_job_artifact import V1AgentJobArtifact
205
206
  from lightning_sdk.lightning_cloud.openapi.models.v1_agent_upload_multipart_url import V1AgentUploadMultipartUrl
206
207
  from lightning_sdk.lightning_cloud.openapi.models.v1_agent_upload_part_response import V1AgentUploadPartResponse
208
+ from lightning_sdk.lightning_cloud.openapi.models.v1_ai_pod_v1 import V1AiPodV1
207
209
  from lightning_sdk.lightning_cloud.openapi.models.v1_alert_method import V1AlertMethod
208
210
  from lightning_sdk.lightning_cloud.openapi.models.v1_alerts_config import V1AlertsConfig
209
211
  from lightning_sdk.lightning_cloud.openapi.models.v1_api_pricing_spec import V1ApiPricingSpec
@@ -216,6 +218,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_assistant import V1Assistan
216
218
  from lightning_sdk.lightning_cloud.openapi.models.v1_assistant_knowledge_item_status import V1AssistantKnowledgeItemStatus
217
219
  from lightning_sdk.lightning_cloud.openapi.models.v1_assistant_knowledge_status import V1AssistantKnowledgeStatus
218
220
  from lightning_sdk.lightning_cloud.openapi.models.v1_assistant_model_status import V1AssistantModelStatus
221
+ from lightning_sdk.lightning_cloud.openapi.models.v1_assistant_session_daily_aggregated import V1AssistantSessionDailyAggregated
219
222
  from lightning_sdk.lightning_cloud.openapi.models.v1_author import V1Author
220
223
  from lightning_sdk.lightning_cloud.openapi.models.v1_auto_join_domain_validation import V1AutoJoinDomainValidation
221
224
  from lightning_sdk.lightning_cloud.openapi.models.v1_auto_join_org_response import V1AutoJoinOrgResponse
@@ -479,6 +482,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_filesystem_work import V1Fi
479
482
  from lightning_sdk.lightning_cloud.openapi.models.v1_find_capacity_block_offering_response import V1FindCapacityBlockOfferingResponse
480
483
  from lightning_sdk.lightning_cloud.openapi.models.v1_flowserver import V1Flowserver
481
484
  from lightning_sdk.lightning_cloud.openapi.models.v1_folder_index_status import V1FolderIndexStatus
485
+ from lightning_sdk.lightning_cloud.openapi.models.v1_function_tool import V1FunctionTool
482
486
  from lightning_sdk.lightning_cloud.openapi.models.v1_gcp_direct_vpc import V1GCPDirectVPC
483
487
  from lightning_sdk.lightning_cloud.openapi.models.v1_gcs_folder_data_connection import V1GCSFolderDataConnection
484
488
  from lightning_sdk.lightning_cloud.openapi.models.v1_gpu_system_metrics import V1GPUSystemMetrics
@@ -492,6 +496,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_get_affiliate_link_response
492
496
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_agent_job_env_response import V1GetAgentJobEnvResponse
493
497
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_agent_job_logs_metadata_response import V1GetAgentJobLogsMetadataResponse
494
498
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_artifacts_page_response import V1GetArtifactsPageResponse
499
+ from lightning_sdk.lightning_cloud.openapi.models.v1_get_clickhouse_assistant_session_daily_aggregated_response import V1GetClickhouseAssistantSessionDailyAggregatedResponse
495
500
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_cold_start_metrics_stats_response import V1GetCloudSpaceColdStartMetricsStatsResponse
496
501
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_instance_open_ports_response import V1GetCloudSpaceInstanceOpenPortsResponse
497
502
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_instance_status_response import V1GetCloudSpaceInstanceStatusResponse
@@ -652,7 +657,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_model_versions_respons
652
657
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_models_response import V1ListModelsResponse
653
658
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_multi_machine_job_events_response import V1ListMultiMachineJobEventsResponse
654
659
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_multi_machine_jobs_response import V1ListMultiMachineJobsResponse
655
- from lightning_sdk.lightning_cloud.openapi.models.v1_list_new_features_for_user_response import V1ListNewFeaturesForUserResponse
660
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_notification_dialogs_response import V1ListNotificationDialogsResponse
656
661
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_org_members_response import V1ListOrgMembersResponse
657
662
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_org_membership_role_binding_response import V1ListOrgMembershipRoleBindingResponse
658
663
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_org_memberships_response import V1ListOrgMembershipsResponse
@@ -871,6 +876,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_system_metrics_list import
871
876
  from lightning_sdk.lightning_cloud.openapi.models.v1_telemetry import V1Telemetry
872
877
  from lightning_sdk.lightning_cloud.openapi.models.v1_timestamp_code_telemetry import V1TimestampCodeTelemetry
873
878
  from lightning_sdk.lightning_cloud.openapi.models.v1_token_usage import V1TokenUsage
879
+ from lightning_sdk.lightning_cloud.openapi.models.v1_tool import V1Tool
874
880
  from lightning_sdk.lightning_cloud.openapi.models.v1_transaction import V1Transaction
875
881
  from lightning_sdk.lightning_cloud.openapi.models.v1_transfer_cloud_space_response import V1TransferCloudSpaceResponse
876
882
  from lightning_sdk.lightning_cloud.openapi.models.v1_transfer_org_balance_response import V1TransferOrgBalanceResponse
@@ -56,7 +56,8 @@ class AssistantIdConversationsBody(object):
56
56
  'sent_at': 'datetime',
57
57
  'store': 'bool',
58
58
  'stream': 'bool',
59
- 'system_prompt': 'str'
59
+ 'system_prompt': 'str',
60
+ 'tools': 'list[V1Tool]'
60
61
  }
61
62
 
62
63
  attribute_map = {
@@ -75,10 +76,11 @@ class AssistantIdConversationsBody(object):
75
76
  'sent_at': 'sentAt',
76
77
  'store': 'store',
77
78
  'stream': 'stream',
78
- 'system_prompt': 'systemPrompt'
79
+ 'system_prompt': 'systemPrompt',
80
+ 'tools': 'tools'
79
81
  }
80
82
 
81
- def __init__(self, auto_name: 'bool' =None, billing_project_id: 'str' =None, conversation_id: 'str' =None, ephemeral: 'bool' =None, internal_conversation: 'bool' =None, max_tokens: 'str' =None, message: 'V1Message' =None, metadata: 'dict(str, str)' =None, name: 'str' =None, parent_conversation_id: 'str' =None, parent_message_id: 'str' =None, reasoning_effort: 'str' =None, sent_at: 'datetime' =None, store: 'bool' =None, stream: 'bool' =None, system_prompt: 'str' =None): # noqa: E501
83
+ def __init__(self, auto_name: 'bool' =None, billing_project_id: 'str' =None, conversation_id: 'str' =None, ephemeral: 'bool' =None, internal_conversation: 'bool' =None, max_tokens: 'str' =None, message: 'V1Message' =None, metadata: 'dict(str, str)' =None, name: 'str' =None, parent_conversation_id: 'str' =None, parent_message_id: 'str' =None, reasoning_effort: 'str' =None, sent_at: 'datetime' =None, store: 'bool' =None, stream: 'bool' =None, system_prompt: 'str' =None, tools: 'list[V1Tool]' =None): # noqa: E501
82
84
  """AssistantIdConversationsBody - a model defined in Swagger""" # noqa: E501
83
85
  self._auto_name = None
84
86
  self._billing_project_id = None
@@ -96,6 +98,7 @@ class AssistantIdConversationsBody(object):
96
98
  self._store = None
97
99
  self._stream = None
98
100
  self._system_prompt = None
101
+ self._tools = None
99
102
  self.discriminator = None
100
103
  if auto_name is not None:
101
104
  self.auto_name = auto_name
@@ -129,6 +132,8 @@ class AssistantIdConversationsBody(object):
129
132
  self.stream = stream
130
133
  if system_prompt is not None:
131
134
  self.system_prompt = system_prompt
135
+ if tools is not None:
136
+ self.tools = tools
132
137
 
133
138
  @property
134
139
  def auto_name(self) -> 'bool':
@@ -466,6 +471,27 @@ class AssistantIdConversationsBody(object):
466
471
 
467
472
  self._system_prompt = system_prompt
468
473
 
474
+ @property
475
+ def tools(self) -> 'list[V1Tool]':
476
+ """Gets the tools of this AssistantIdConversationsBody. # noqa: E501
477
+
478
+
479
+ :return: The tools of this AssistantIdConversationsBody. # noqa: E501
480
+ :rtype: list[V1Tool]
481
+ """
482
+ return self._tools
483
+
484
+ @tools.setter
485
+ def tools(self, tools: 'list[V1Tool]'):
486
+ """Sets the tools of this AssistantIdConversationsBody.
487
+
488
+
489
+ :param tools: The tools of this AssistantIdConversationsBody. # noqa: E501
490
+ :type: list[V1Tool]
491
+ """
492
+
493
+ self._tools = tools
494
+
469
495
  def to_dict(self) -> dict:
470
496
  """Returns the model properties as a dict"""
471
497
  result = {}
@@ -41,28 +41,23 @@ class ProjectIdStorageBody(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
- 'allow_multicloud': 'bool',
45
44
  'cluster_id': 'str',
46
45
  'count': 'str',
47
46
  'filename': 'str'
48
47
  }
49
48
 
50
49
  attribute_map = {
51
- 'allow_multicloud': 'allowMulticloud',
52
50
  'cluster_id': 'clusterId',
53
51
  'count': 'count',
54
52
  'filename': 'filename'
55
53
  }
56
54
 
57
- def __init__(self, allow_multicloud: 'bool' =None, cluster_id: 'str' =None, count: 'str' =None, filename: 'str' =None): # noqa: E501
55
+ def __init__(self, cluster_id: 'str' =None, count: 'str' =None, filename: 'str' =None): # noqa: E501
58
56
  """ProjectIdStorageBody - a model defined in Swagger""" # noqa: E501
59
- self._allow_multicloud = None
60
57
  self._cluster_id = None
61
58
  self._count = None
62
59
  self._filename = None
63
60
  self.discriminator = None
64
- if allow_multicloud is not None:
65
- self.allow_multicloud = allow_multicloud
66
61
  if cluster_id is not None:
67
62
  self.cluster_id = cluster_id
68
63
  if count is not None:
@@ -70,27 +65,6 @@ class ProjectIdStorageBody(object):
70
65
  if filename is not None:
71
66
  self.filename = filename
72
67
 
73
- @property
74
- def allow_multicloud(self) -> 'bool':
75
- """Gets the allow_multicloud of this ProjectIdStorageBody. # noqa: E501
76
-
77
-
78
- :return: The allow_multicloud of this ProjectIdStorageBody. # noqa: E501
79
- :rtype: bool
80
- """
81
- return self._allow_multicloud
82
-
83
- @allow_multicloud.setter
84
- def allow_multicloud(self, allow_multicloud: 'bool'):
85
- """Sets the allow_multicloud of this ProjectIdStorageBody.
86
-
87
-
88
- :param allow_multicloud: The allow_multicloud of this ProjectIdStorageBody. # noqa: E501
89
- :type: bool
90
- """
91
-
92
- self._allow_multicloud = allow_multicloud
93
-
94
68
  @property
95
69
  def cluster_id(self) -> 'str':
96
70
  """Gets the cluster_id of this ProjectIdStorageBody. # noqa: E501