lightning-sdk 2025.7.10__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 (41) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/llm_api.py +11 -6
  3. lightning_sdk/job/base.py +10 -2
  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 +105 -1
  32. lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +27 -1
  33. lightning_sdk/llm/llm.py +3 -0
  34. lightning_sdk/llm/public_assistants.json +3 -1
  35. lightning_sdk/machine.py +12 -1
  36. {lightning_sdk-2025.7.10.dist-info → lightning_sdk-2025.7.17.dist-info}/METADATA +1 -1
  37. {lightning_sdk-2025.7.10.dist-info → lightning_sdk-2025.7.17.dist-info}/RECORD +41 -35
  38. {lightning_sdk-2025.7.10.dist-info → lightning_sdk-2025.7.17.dist-info}/LICENSE +0 -0
  39. {lightning_sdk-2025.7.10.dist-info → lightning_sdk-2025.7.17.dist-info}/WHEEL +0 -0
  40. {lightning_sdk-2025.7.10.dist-info → lightning_sdk-2025.7.17.dist-info}/entry_points.txt +0 -0
  41. {lightning_sdk-2025.7.10.dist-info → lightning_sdk-2025.7.17.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,102 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ external/v1/auth_service.proto
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: version not set
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+
12
+ NOTE
13
+ ----
14
+ standard swagger-codegen-cli for this python client has been modified
15
+ by custom templates. The purpose of these templates is to include
16
+ typing information in the API and Model code. Please refer to the
17
+ main grid repository for more info
18
+ """
19
+
20
+ import pprint
21
+ import re # noqa: F401
22
+
23
+ from typing import TYPE_CHECKING
24
+
25
+ import six
26
+
27
+ if TYPE_CHECKING:
28
+ from datetime import datetime
29
+ from lightning_sdk.lightning_cloud.openapi.models import *
30
+
31
+ class ProtobufNullValue(object):
32
+ """NOTE: This class is auto generated by the swagger code generator program.
33
+
34
+ Do not edit the class manually.
35
+ """
36
+
37
+ """
38
+ allowed enum values
39
+ """
40
+ NULL_VALUE = "NULL_VALUE"
41
+ """
42
+ Attributes:
43
+ swagger_types (dict): The key is attribute name
44
+ and the value is attribute type.
45
+ attribute_map (dict): The key is attribute name
46
+ and the value is json key in definition.
47
+ """
48
+ swagger_types = {
49
+ }
50
+
51
+ attribute_map = {
52
+ }
53
+
54
+ def __init__(self): # noqa: E501
55
+ """ProtobufNullValue - a model defined in Swagger""" # noqa: E501
56
+ self.discriminator = None
57
+
58
+ def to_dict(self) -> dict:
59
+ """Returns the model properties as a dict"""
60
+ result = {}
61
+
62
+ for attr, _ in six.iteritems(self.swagger_types):
63
+ value = getattr(self, attr)
64
+ if isinstance(value, list):
65
+ result[attr] = list(map(
66
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
67
+ value
68
+ ))
69
+ elif hasattr(value, "to_dict"):
70
+ result[attr] = value.to_dict()
71
+ elif isinstance(value, dict):
72
+ result[attr] = dict(map(
73
+ lambda item: (item[0], item[1].to_dict())
74
+ if hasattr(item[1], "to_dict") else item,
75
+ value.items()
76
+ ))
77
+ else:
78
+ result[attr] = value
79
+ if issubclass(ProtobufNullValue, dict):
80
+ for key, value in self.items():
81
+ result[key] = value
82
+
83
+ return result
84
+
85
+ def to_str(self) -> str:
86
+ """Returns the string representation of the model"""
87
+ return pprint.pformat(self.to_dict())
88
+
89
+ def __repr__(self) -> str:
90
+ """For `print` and `pprint`"""
91
+ return self.to_str()
92
+
93
+ def __eq__(self, other: 'ProtobufNullValue') -> bool:
94
+ """Returns true if both objects are equal"""
95
+ if not isinstance(other, ProtobufNullValue):
96
+ return False
97
+
98
+ return self.__dict__ == other.__dict__
99
+
100
+ def __ne__(self, other: 'ProtobufNullValue') -> bool:
101
+ """Returns true if both objects are not equal"""
102
+ return not self == other
@@ -41,7 +41,6 @@ class StorageCompleteBody(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
  'filename': 'str',
47
46
  'parts': 'list[V1CompleteUpload]',
@@ -50,7 +49,6 @@ class StorageCompleteBody(object):
50
49
  }
51
50
 
52
51
  attribute_map = {
53
- 'allow_multicloud': 'allowMulticloud',
54
52
  'cluster_id': 'clusterId',
55
53
  'filename': 'filename',
56
54
  'parts': 'parts',
@@ -58,17 +56,14 @@ class StorageCompleteBody(object):
58
56
  'upload_id': 'uploadId'
59
57
  }
60
58
 
61
- def __init__(self, allow_multicloud: 'bool' =None, cluster_id: 'str' =None, filename: 'str' =None, parts: 'list[V1CompleteUpload]' =None, suppress_reindex: 'bool' =None, upload_id: 'str' =None): # noqa: E501
59
+ def __init__(self, cluster_id: 'str' =None, filename: 'str' =None, parts: 'list[V1CompleteUpload]' =None, suppress_reindex: 'bool' =None, upload_id: 'str' =None): # noqa: E501
62
60
  """StorageCompleteBody - a model defined in Swagger""" # noqa: E501
63
- self._allow_multicloud = None
64
61
  self._cluster_id = None
65
62
  self._filename = None
66
63
  self._parts = None
67
64
  self._suppress_reindex = None
68
65
  self._upload_id = None
69
66
  self.discriminator = None
70
- if allow_multicloud is not None:
71
- self.allow_multicloud = allow_multicloud
72
67
  if cluster_id is not None:
73
68
  self.cluster_id = cluster_id
74
69
  if filename is not None:
@@ -80,27 +75,6 @@ class StorageCompleteBody(object):
80
75
  if upload_id is not None:
81
76
  self.upload_id = upload_id
82
77
 
83
- @property
84
- def allow_multicloud(self) -> 'bool':
85
- """Gets the allow_multicloud of this StorageCompleteBody. # noqa: E501
86
-
87
-
88
- :return: The allow_multicloud of this StorageCompleteBody. # noqa: E501
89
- :rtype: bool
90
- """
91
- return self._allow_multicloud
92
-
93
- @allow_multicloud.setter
94
- def allow_multicloud(self, allow_multicloud: 'bool'):
95
- """Sets the allow_multicloud of this StorageCompleteBody.
96
-
97
-
98
- :param allow_multicloud: The allow_multicloud of this StorageCompleteBody. # noqa: E501
99
- :type: bool
100
- """
101
-
102
- self._allow_multicloud = allow_multicloud
103
-
104
78
  @property
105
79
  def cluster_id(self) -> 'str':
106
80
  """Gets the cluster_id of this StorageCompleteBody. # noqa: E501
@@ -41,60 +41,29 @@ class UploadsUploadIdBody1(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
  'filename': 'str',
47
- 'parts': 'list[str]',
48
- 'uploads': 'list[V1ClusterUpload]'
46
+ 'parts': 'list[str]'
49
47
  }
50
48
 
51
49
  attribute_map = {
52
- 'allow_multicloud': 'allowMulticloud',
53
50
  'cluster_id': 'clusterId',
54
51
  'filename': 'filename',
55
- 'parts': 'parts',
56
- 'uploads': 'uploads'
52
+ 'parts': 'parts'
57
53
  }
58
54
 
59
- def __init__(self, allow_multicloud: 'bool' =None, cluster_id: 'str' =None, filename: 'str' =None, parts: 'list[str]' =None, uploads: 'list[V1ClusterUpload]' =None): # noqa: E501
55
+ def __init__(self, cluster_id: 'str' =None, filename: 'str' =None, parts: 'list[str]' =None): # noqa: E501
60
56
  """UploadsUploadIdBody1 - a model defined in Swagger""" # noqa: E501
61
- self._allow_multicloud = None
62
57
  self._cluster_id = None
63
58
  self._filename = None
64
59
  self._parts = None
65
- self._uploads = None
66
60
  self.discriminator = None
67
- if allow_multicloud is not None:
68
- self.allow_multicloud = allow_multicloud
69
61
  if cluster_id is not None:
70
62
  self.cluster_id = cluster_id
71
63
  if filename is not None:
72
64
  self.filename = filename
73
65
  if parts is not None:
74
66
  self.parts = parts
75
- if uploads is not None:
76
- self.uploads = uploads
77
-
78
- @property
79
- def allow_multicloud(self) -> 'bool':
80
- """Gets the allow_multicloud of this UploadsUploadIdBody1. # noqa: E501
81
-
82
-
83
- :return: The allow_multicloud of this UploadsUploadIdBody1. # noqa: E501
84
- :rtype: bool
85
- """
86
- return self._allow_multicloud
87
-
88
- @allow_multicloud.setter
89
- def allow_multicloud(self, allow_multicloud: 'bool'):
90
- """Sets the allow_multicloud of this UploadsUploadIdBody1.
91
-
92
-
93
- :param allow_multicloud: The allow_multicloud of this UploadsUploadIdBody1. # noqa: E501
94
- :type: bool
95
- """
96
-
97
- self._allow_multicloud = allow_multicloud
98
67
 
99
68
  @property
100
69
  def cluster_id(self) -> 'str':
@@ -159,27 +128,6 @@ class UploadsUploadIdBody1(object):
159
128
 
160
129
  self._parts = parts
161
130
 
162
- @property
163
- def uploads(self) -> 'list[V1ClusterUpload]':
164
- """Gets the uploads of this UploadsUploadIdBody1. # noqa: E501
165
-
166
-
167
- :return: The uploads of this UploadsUploadIdBody1. # noqa: E501
168
- :rtype: list[V1ClusterUpload]
169
- """
170
- return self._uploads
171
-
172
- @uploads.setter
173
- def uploads(self, uploads: 'list[V1ClusterUpload]'):
174
- """Sets the uploads of this UploadsUploadIdBody1.
175
-
176
-
177
- :param uploads: The uploads of this UploadsUploadIdBody1. # noqa: E501
178
- :type: list[V1ClusterUpload]
179
- """
180
-
181
- self._uploads = uploads
182
-
183
131
  def to_dict(self) -> dict:
184
132
  """Returns the model properties as a dict"""
185
133
  result = {}
@@ -28,7 +28,7 @@ if TYPE_CHECKING:
28
28
  from datetime import datetime
29
29
  from lightning_sdk.lightning_cloud.openapi.models import *
30
30
 
31
- class V1ListNewFeaturesForUserResponse(object):
31
+ class V1AiPodV1(object):
32
32
  """NOTE: This class is auto generated by the swagger code generator program.
33
33
 
34
34
  Do not edit the class manually.
@@ -41,40 +41,40 @@ class V1ListNewFeaturesForUserResponse(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
- 'features': 'list[V1NewFeature]'
44
+ 'organization_id': 'str'
45
45
  }
46
46
 
47
47
  attribute_map = {
48
- 'features': 'features'
48
+ 'organization_id': 'organizationId'
49
49
  }
50
50
 
51
- def __init__(self, features: 'list[V1NewFeature]' =None): # noqa: E501
52
- """V1ListNewFeaturesForUserResponse - a model defined in Swagger""" # noqa: E501
53
- self._features = None
51
+ def __init__(self, organization_id: 'str' =None): # noqa: E501
52
+ """V1AiPodV1 - a model defined in Swagger""" # noqa: E501
53
+ self._organization_id = None
54
54
  self.discriminator = None
55
- if features is not None:
56
- self.features = features
55
+ if organization_id is not None:
56
+ self.organization_id = organization_id
57
57
 
58
58
  @property
59
- def features(self) -> 'list[V1NewFeature]':
60
- """Gets the features of this V1ListNewFeaturesForUserResponse. # noqa: E501
59
+ def organization_id(self) -> 'str':
60
+ """Gets the organization_id of this V1AiPodV1. # noqa: E501
61
61
 
62
62
 
63
- :return: The features of this V1ListNewFeaturesForUserResponse. # noqa: E501
64
- :rtype: list[V1NewFeature]
63
+ :return: The organization_id of this V1AiPodV1. # noqa: E501
64
+ :rtype: str
65
65
  """
66
- return self._features
66
+ return self._organization_id
67
67
 
68
- @features.setter
69
- def features(self, features: 'list[V1NewFeature]'):
70
- """Sets the features of this V1ListNewFeaturesForUserResponse.
68
+ @organization_id.setter
69
+ def organization_id(self, organization_id: 'str'):
70
+ """Sets the organization_id of this V1AiPodV1.
71
71
 
72
72
 
73
- :param features: The features of this V1ListNewFeaturesForUserResponse. # noqa: E501
74
- :type: list[V1NewFeature]
73
+ :param organization_id: The organization_id of this V1AiPodV1. # noqa: E501
74
+ :type: str
75
75
  """
76
76
 
77
- self._features = features
77
+ self._organization_id = organization_id
78
78
 
79
79
  def to_dict(self) -> dict:
80
80
  """Returns the model properties as a dict"""
@@ -97,7 +97,7 @@ class V1ListNewFeaturesForUserResponse(object):
97
97
  ))
98
98
  else:
99
99
  result[attr] = value
100
- if issubclass(V1ListNewFeaturesForUserResponse, dict):
100
+ if issubclass(V1AiPodV1, dict):
101
101
  for key, value in self.items():
102
102
  result[key] = value
103
103
 
@@ -111,13 +111,13 @@ class V1ListNewFeaturesForUserResponse(object):
111
111
  """For `print` and `pprint`"""
112
112
  return self.to_str()
113
113
 
114
- def __eq__(self, other: 'V1ListNewFeaturesForUserResponse') -> bool:
114
+ def __eq__(self, other: 'V1AiPodV1') -> bool:
115
115
  """Returns true if both objects are equal"""
116
- if not isinstance(other, V1ListNewFeaturesForUserResponse):
116
+ if not isinstance(other, V1AiPodV1):
117
117
  return False
118
118
 
119
119
  return self.__dict__ == other.__dict__
120
120
 
121
- def __ne__(self, other: 'V1ListNewFeaturesForUserResponse') -> bool:
121
+ def __ne__(self, other: 'V1AiPodV1') -> bool:
122
122
  """Returns true if both objects are not equal"""
123
123
  return not self == other
@@ -44,6 +44,7 @@ class V1Artifact(object):
44
44
  'filename': 'str',
45
45
  'last_modified': 'datetime',
46
46
  'md5_checksum': 'str',
47
+ 'provider': 'V1CloudProvider',
47
48
  'size_bytes': 'str',
48
49
  'url': 'str'
49
50
  }
@@ -52,15 +53,17 @@ class V1Artifact(object):
52
53
  'filename': 'filename',
53
54
  'last_modified': 'lastModified',
54
55
  'md5_checksum': 'md5Checksum',
56
+ 'provider': 'provider',
55
57
  'size_bytes': 'sizeBytes',
56
58
  'url': 'url'
57
59
  }
58
60
 
59
- def __init__(self, filename: 'str' =None, last_modified: 'datetime' =None, md5_checksum: 'str' =None, size_bytes: 'str' =None, url: 'str' =None): # noqa: E501
61
+ def __init__(self, filename: 'str' =None, last_modified: 'datetime' =None, md5_checksum: 'str' =None, provider: 'V1CloudProvider' =None, size_bytes: 'str' =None, url: 'str' =None): # noqa: E501
60
62
  """V1Artifact - a model defined in Swagger""" # noqa: E501
61
63
  self._filename = None
62
64
  self._last_modified = None
63
65
  self._md5_checksum = None
66
+ self._provider = None
64
67
  self._size_bytes = None
65
68
  self._url = None
66
69
  self.discriminator = None
@@ -70,6 +73,8 @@ class V1Artifact(object):
70
73
  self.last_modified = last_modified
71
74
  if md5_checksum is not None:
72
75
  self.md5_checksum = md5_checksum
76
+ if provider is not None:
77
+ self.provider = provider
73
78
  if size_bytes is not None:
74
79
  self.size_bytes = size_bytes
75
80
  if url is not None:
@@ -138,6 +143,27 @@ class V1Artifact(object):
138
143
 
139
144
  self._md5_checksum = md5_checksum
140
145
 
146
+ @property
147
+ def provider(self) -> 'V1CloudProvider':
148
+ """Gets the provider of this V1Artifact. # noqa: E501
149
+
150
+
151
+ :return: The provider of this V1Artifact. # noqa: E501
152
+ :rtype: V1CloudProvider
153
+ """
154
+ return self._provider
155
+
156
+ @provider.setter
157
+ def provider(self, provider: 'V1CloudProvider'):
158
+ """Sets the provider of this V1Artifact.
159
+
160
+
161
+ :param provider: The provider of this V1Artifact. # noqa: E501
162
+ :type: V1CloudProvider
163
+ """
164
+
165
+ self._provider = provider
166
+
141
167
  @property
142
168
  def size_bytes(self) -> 'str':
143
169
  """Gets the size_bytes of this V1Artifact. # noqa: E501