lightning-sdk 2025.11.13.post0__py3-none-any.whl → 2025.11.21__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 (61) hide show
  1. lightning_sdk/__init__.py +2 -0
  2. lightning_sdk/__version__.py +1 -1
  3. lightning_sdk/api/__init__.py +2 -9
  4. lightning_sdk/api/k8s_api.py +105 -0
  5. lightning_sdk/api/studio_api.py +19 -0
  6. lightning_sdk/api/utils.py +19 -0
  7. lightning_sdk/exceptions.py +2 -0
  8. lightning_sdk/k8s_cluster.py +83 -0
  9. lightning_sdk/lightning_cloud/openapi/__init__.py +15 -0
  10. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +134 -1
  11. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +5 -1
  12. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +539 -2
  13. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +114 -0
  14. lightning_sdk/lightning_cloud/openapi/api/markets_service_api.py +5 -1
  15. lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +99 -2
  16. lightning_sdk/lightning_cloud/openapi/api/projects_service_api.py +5 -1
  17. lightning_sdk/lightning_cloud/openapi/models/__init__.py +15 -0
  18. lightning_sdk/lightning_cloud/openapi/models/cluster_id_metrics_body.py +29 -3
  19. lightning_sdk/lightning_cloud/openapi/models/deployments_deployment_id_body.py +149 -0
  20. lightning_sdk/lightning_cloud/openapi/models/id_content_body.py +123 -0
  21. lightning_sdk/lightning_cloud/openapi/models/job_id_systemmetrics_body.py +123 -0
  22. lightning_sdk/lightning_cloud/openapi/models/message_id_actions_body.py +27 -1
  23. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +1 -27
  24. lightning_sdk/lightning_cloud/openapi/models/v1_aws_direct_v1.py +27 -1
  25. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +107 -3
  26. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +53 -1
  27. lightning_sdk/lightning_cloud/openapi/models/v1_compute_cluster_machines.py +149 -0
  28. lightning_sdk/lightning_cloud/openapi/models/v1_compute_cluster_request.py +149 -0
  29. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +1 -27
  30. lightning_sdk/lightning_cloud/openapi/models/v1_generic_job.py +305 -0
  31. lightning_sdk/lightning_cloud/openapi/models/v1_get_project_balance_response.py +27 -1
  32. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +27 -1
  33. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod.py +435 -0
  34. lightning_sdk/lightning_cloud/openapi/models/v1_list_all_jobs_response.py +175 -0
  35. lightning_sdk/lightning_cloud/openapi/models/v1_list_jobs_sort_by.py +104 -0
  36. lightning_sdk/lightning_cloud/openapi/models/v1_list_jobs_sort_order.py +104 -0
  37. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_response.py +149 -0
  38. lightning_sdk/lightning_cloud/openapi/models/v1_list_pipelines_response.py +55 -3
  39. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +53 -1
  40. lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_request.py +27 -1
  41. lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +1 -27
  42. lightning_sdk/lightning_cloud/openapi/models/v1_message.py +27 -1
  43. lightning_sdk/lightning_cloud/openapi/models/v1_message_action.py +27 -1
  44. lightning_sdk/lightning_cloud/openapi/models/v1_org_deployment_visibility.py +227 -0
  45. lightning_sdk/lightning_cloud/openapi/models/v1_pod_preemption_event.py +305 -0
  46. lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +1 -27
  47. lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +1 -27
  48. lightning_sdk/lightning_cloud/openapi/models/v1_report_job_system_metrics_response.py +97 -0
  49. lightning_sdk/lightning_cloud/openapi/models/v1_resource_visibility.py +27 -1
  50. lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +1 -0
  51. lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_message_content_response.py +123 -0
  52. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +133 -107
  53. lightning_sdk/lightning_cloud/openapi/models/v1_validate_storage_transfer_response.py +15 -15
  54. lightning_sdk/lightning_cloud/rest_client.py +2 -0
  55. lightning_sdk/studio.py +12 -0
  56. {lightning_sdk-2025.11.13.post0.dist-info → lightning_sdk-2025.11.21.dist-info}/METADATA +2 -1
  57. {lightning_sdk-2025.11.13.post0.dist-info → lightning_sdk-2025.11.21.dist-info}/RECORD +61 -43
  58. {lightning_sdk-2025.11.13.post0.dist-info → lightning_sdk-2025.11.21.dist-info}/LICENSE +0 -0
  59. {lightning_sdk-2025.11.13.post0.dist-info → lightning_sdk-2025.11.21.dist-info}/WHEEL +0 -0
  60. {lightning_sdk-2025.11.13.post0.dist-info → lightning_sdk-2025.11.21.dist-info}/entry_points.txt +0 -0
  61. {lightning_sdk-2025.11.13.post0.dist-info → lightning_sdk-2025.11.21.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,305 @@
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 V1GenericJob(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
+ Attributes:
38
+ swagger_types (dict): The key is attribute name
39
+ and the value is attribute type.
40
+ attribute_map (dict): The key is attribute name
41
+ and the value is json key in definition.
42
+ """
43
+ swagger_types = {
44
+ 'cluster_id': 'str',
45
+ 'created_at': 'datetime',
46
+ 'id': 'str',
47
+ 'name': 'str',
48
+ 'project_id': 'str',
49
+ 'state': 'str',
50
+ 'type': 'str',
51
+ 'user_id': 'str'
52
+ }
53
+
54
+ attribute_map = {
55
+ 'cluster_id': 'clusterId',
56
+ 'created_at': 'createdAt',
57
+ 'id': 'id',
58
+ 'name': 'name',
59
+ 'project_id': 'projectId',
60
+ 'state': 'state',
61
+ 'type': 'type',
62
+ 'user_id': 'userId'
63
+ }
64
+
65
+ def __init__(self, cluster_id: 'str' =None, created_at: 'datetime' =None, id: 'str' =None, name: 'str' =None, project_id: 'str' =None, state: 'str' =None, type: 'str' =None, user_id: 'str' =None): # noqa: E501
66
+ """V1GenericJob - a model defined in Swagger""" # noqa: E501
67
+ self._cluster_id = None
68
+ self._created_at = None
69
+ self._id = None
70
+ self._name = None
71
+ self._project_id = None
72
+ self._state = None
73
+ self._type = None
74
+ self._user_id = None
75
+ self.discriminator = None
76
+ if cluster_id is not None:
77
+ self.cluster_id = cluster_id
78
+ if created_at is not None:
79
+ self.created_at = created_at
80
+ if id is not None:
81
+ self.id = id
82
+ if name is not None:
83
+ self.name = name
84
+ if project_id is not None:
85
+ self.project_id = project_id
86
+ if state is not None:
87
+ self.state = state
88
+ if type is not None:
89
+ self.type = type
90
+ if user_id is not None:
91
+ self.user_id = user_id
92
+
93
+ @property
94
+ def cluster_id(self) -> 'str':
95
+ """Gets the cluster_id of this V1GenericJob. # noqa: E501
96
+
97
+
98
+ :return: The cluster_id of this V1GenericJob. # noqa: E501
99
+ :rtype: str
100
+ """
101
+ return self._cluster_id
102
+
103
+ @cluster_id.setter
104
+ def cluster_id(self, cluster_id: 'str'):
105
+ """Sets the cluster_id of this V1GenericJob.
106
+
107
+
108
+ :param cluster_id: The cluster_id of this V1GenericJob. # noqa: E501
109
+ :type: str
110
+ """
111
+
112
+ self._cluster_id = cluster_id
113
+
114
+ @property
115
+ def created_at(self) -> 'datetime':
116
+ """Gets the created_at of this V1GenericJob. # noqa: E501
117
+
118
+
119
+ :return: The created_at of this V1GenericJob. # noqa: E501
120
+ :rtype: datetime
121
+ """
122
+ return self._created_at
123
+
124
+ @created_at.setter
125
+ def created_at(self, created_at: 'datetime'):
126
+ """Sets the created_at of this V1GenericJob.
127
+
128
+
129
+ :param created_at: The created_at of this V1GenericJob. # noqa: E501
130
+ :type: datetime
131
+ """
132
+
133
+ self._created_at = created_at
134
+
135
+ @property
136
+ def id(self) -> 'str':
137
+ """Gets the id of this V1GenericJob. # noqa: E501
138
+
139
+
140
+ :return: The id of this V1GenericJob. # noqa: E501
141
+ :rtype: str
142
+ """
143
+ return self._id
144
+
145
+ @id.setter
146
+ def id(self, id: 'str'):
147
+ """Sets the id of this V1GenericJob.
148
+
149
+
150
+ :param id: The id of this V1GenericJob. # noqa: E501
151
+ :type: str
152
+ """
153
+
154
+ self._id = id
155
+
156
+ @property
157
+ def name(self) -> 'str':
158
+ """Gets the name of this V1GenericJob. # noqa: E501
159
+
160
+
161
+ :return: The name of this V1GenericJob. # noqa: E501
162
+ :rtype: str
163
+ """
164
+ return self._name
165
+
166
+ @name.setter
167
+ def name(self, name: 'str'):
168
+ """Sets the name of this V1GenericJob.
169
+
170
+
171
+ :param name: The name of this V1GenericJob. # noqa: E501
172
+ :type: str
173
+ """
174
+
175
+ self._name = name
176
+
177
+ @property
178
+ def project_id(self) -> 'str':
179
+ """Gets the project_id of this V1GenericJob. # noqa: E501
180
+
181
+
182
+ :return: The project_id of this V1GenericJob. # noqa: E501
183
+ :rtype: str
184
+ """
185
+ return self._project_id
186
+
187
+ @project_id.setter
188
+ def project_id(self, project_id: 'str'):
189
+ """Sets the project_id of this V1GenericJob.
190
+
191
+
192
+ :param project_id: The project_id of this V1GenericJob. # noqa: E501
193
+ :type: str
194
+ """
195
+
196
+ self._project_id = project_id
197
+
198
+ @property
199
+ def state(self) -> 'str':
200
+ """Gets the state of this V1GenericJob. # noqa: E501
201
+
202
+
203
+ :return: The state of this V1GenericJob. # noqa: E501
204
+ :rtype: str
205
+ """
206
+ return self._state
207
+
208
+ @state.setter
209
+ def state(self, state: 'str'):
210
+ """Sets the state of this V1GenericJob.
211
+
212
+
213
+ :param state: The state of this V1GenericJob. # noqa: E501
214
+ :type: str
215
+ """
216
+
217
+ self._state = state
218
+
219
+ @property
220
+ def type(self) -> 'str':
221
+ """Gets the type of this V1GenericJob. # noqa: E501
222
+
223
+
224
+ :return: The type of this V1GenericJob. # noqa: E501
225
+ :rtype: str
226
+ """
227
+ return self._type
228
+
229
+ @type.setter
230
+ def type(self, type: 'str'):
231
+ """Sets the type of this V1GenericJob.
232
+
233
+
234
+ :param type: The type of this V1GenericJob. # noqa: E501
235
+ :type: str
236
+ """
237
+
238
+ self._type = type
239
+
240
+ @property
241
+ def user_id(self) -> 'str':
242
+ """Gets the user_id of this V1GenericJob. # noqa: E501
243
+
244
+
245
+ :return: The user_id of this V1GenericJob. # noqa: E501
246
+ :rtype: str
247
+ """
248
+ return self._user_id
249
+
250
+ @user_id.setter
251
+ def user_id(self, user_id: 'str'):
252
+ """Sets the user_id of this V1GenericJob.
253
+
254
+
255
+ :param user_id: The user_id of this V1GenericJob. # noqa: E501
256
+ :type: str
257
+ """
258
+
259
+ self._user_id = user_id
260
+
261
+ def to_dict(self) -> dict:
262
+ """Returns the model properties as a dict"""
263
+ result = {}
264
+
265
+ for attr, _ in six.iteritems(self.swagger_types):
266
+ value = getattr(self, attr)
267
+ if isinstance(value, list):
268
+ result[attr] = list(map(
269
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
270
+ value
271
+ ))
272
+ elif hasattr(value, "to_dict"):
273
+ result[attr] = value.to_dict()
274
+ elif isinstance(value, dict):
275
+ result[attr] = dict(map(
276
+ lambda item: (item[0], item[1].to_dict())
277
+ if hasattr(item[1], "to_dict") else item,
278
+ value.items()
279
+ ))
280
+ else:
281
+ result[attr] = value
282
+ if issubclass(V1GenericJob, dict):
283
+ for key, value in self.items():
284
+ result[key] = value
285
+
286
+ return result
287
+
288
+ def to_str(self) -> str:
289
+ """Returns the string representation of the model"""
290
+ return pprint.pformat(self.to_dict())
291
+
292
+ def __repr__(self) -> str:
293
+ """For `print` and `pprint`"""
294
+ return self.to_str()
295
+
296
+ def __eq__(self, other: 'V1GenericJob') -> bool:
297
+ """Returns true if both objects are equal"""
298
+ if not isinstance(other, V1GenericJob):
299
+ return False
300
+
301
+ return self.__dict__ == other.__dict__
302
+
303
+ def __ne__(self, other: 'V1GenericJob') -> bool:
304
+ """Returns true if both objects are not equal"""
305
+ return not self == other
@@ -43,6 +43,7 @@ class V1GetProjectBalanceResponse(object):
43
43
  swagger_types = {
44
44
  'account_id': 'str',
45
45
  'balance': 'float',
46
+ 'balance_limit': 'float',
46
47
  'project_id': 'str',
47
48
  'transactions': 'list[V1Transaction]'
48
49
  }
@@ -50,14 +51,16 @@ class V1GetProjectBalanceResponse(object):
50
51
  attribute_map = {
51
52
  'account_id': 'accountId',
52
53
  'balance': 'balance',
54
+ 'balance_limit': 'balanceLimit',
53
55
  'project_id': 'projectId',
54
56
  'transactions': 'transactions'
55
57
  }
56
58
 
57
- def __init__(self, account_id: 'str' =None, balance: 'float' =None, project_id: 'str' =None, transactions: 'list[V1Transaction]' =None): # noqa: E501
59
+ def __init__(self, account_id: 'str' =None, balance: 'float' =None, balance_limit: 'float' =None, project_id: 'str' =None, transactions: 'list[V1Transaction]' =None): # noqa: E501
58
60
  """V1GetProjectBalanceResponse - a model defined in Swagger""" # noqa: E501
59
61
  self._account_id = None
60
62
  self._balance = None
63
+ self._balance_limit = None
61
64
  self._project_id = None
62
65
  self._transactions = None
63
66
  self.discriminator = None
@@ -65,6 +68,8 @@ class V1GetProjectBalanceResponse(object):
65
68
  self.account_id = account_id
66
69
  if balance is not None:
67
70
  self.balance = balance
71
+ if balance_limit is not None:
72
+ self.balance_limit = balance_limit
68
73
  if project_id is not None:
69
74
  self.project_id = project_id
70
75
  if transactions is not None:
@@ -112,6 +117,27 @@ class V1GetProjectBalanceResponse(object):
112
117
 
113
118
  self._balance = balance
114
119
 
120
+ @property
121
+ def balance_limit(self) -> 'float':
122
+ """Gets the balance_limit of this V1GetProjectBalanceResponse. # noqa: E501
123
+
124
+
125
+ :return: The balance_limit of this V1GetProjectBalanceResponse. # noqa: E501
126
+ :rtype: float
127
+ """
128
+ return self._balance_limit
129
+
130
+ @balance_limit.setter
131
+ def balance_limit(self, balance_limit: 'float'):
132
+ """Sets the balance_limit of this V1GetProjectBalanceResponse.
133
+
134
+
135
+ :param balance_limit: The balance_limit of this V1GetProjectBalanceResponse. # noqa: E501
136
+ :type: float
137
+ """
138
+
139
+ self._balance_limit = balance_limit
140
+
115
141
  @property
116
142
  def project_id(self) -> 'str':
117
143
  """Gets the project_id of this V1GetProjectBalanceResponse. # noqa: E501
@@ -46,6 +46,7 @@ class V1KubernetesDirectV1(object):
46
46
  'grafana_namespace': 'str',
47
47
  'grafana_service_name': 'str',
48
48
  'grafana_service_port': 'str',
49
+ 'incident_historical_scan_complete': 'bool',
49
50
  'incident_slack_notifiers': 'list[V1SlackNotifier]',
50
51
  'kubeconfig': 'str',
51
52
  'kubeconfig_elevated': 'str',
@@ -59,6 +60,7 @@ class V1KubernetesDirectV1(object):
59
60
  'grafana_namespace': 'grafanaNamespace',
60
61
  'grafana_service_name': 'grafanaServiceName',
61
62
  'grafana_service_port': 'grafanaServicePort',
63
+ 'incident_historical_scan_complete': 'incidentHistoricalScanComplete',
62
64
  'incident_slack_notifiers': 'incidentSlackNotifiers',
63
65
  'kubeconfig': 'kubeconfig',
64
66
  'kubeconfig_elevated': 'kubeconfigElevated',
@@ -66,13 +68,14 @@ class V1KubernetesDirectV1(object):
66
68
  'skip_user_label_injection': 'skipUserLabelInjection'
67
69
  }
68
70
 
69
- def __init__(self, aws: 'V1KubernetesAWSConfig' =None, grafana_dashboard_url: 'str' =None, grafana_namespace: 'str' =None, grafana_service_name: 'str' =None, grafana_service_port: 'str' =None, incident_slack_notifiers: 'list[V1SlackNotifier]' =None, kubeconfig: 'str' =None, kubeconfig_elevated: 'str' =None, settings: 'V1KubernetesDirectSettingsV1' =None, skip_user_label_injection: 'bool' =None): # noqa: E501
71
+ def __init__(self, aws: 'V1KubernetesAWSConfig' =None, grafana_dashboard_url: 'str' =None, grafana_namespace: 'str' =None, grafana_service_name: 'str' =None, grafana_service_port: 'str' =None, incident_historical_scan_complete: 'bool' =None, incident_slack_notifiers: 'list[V1SlackNotifier]' =None, kubeconfig: 'str' =None, kubeconfig_elevated: 'str' =None, settings: 'V1KubernetesDirectSettingsV1' =None, skip_user_label_injection: 'bool' =None): # noqa: E501
70
72
  """V1KubernetesDirectV1 - a model defined in Swagger""" # noqa: E501
71
73
  self._aws = None
72
74
  self._grafana_dashboard_url = None
73
75
  self._grafana_namespace = None
74
76
  self._grafana_service_name = None
75
77
  self._grafana_service_port = None
78
+ self._incident_historical_scan_complete = None
76
79
  self._incident_slack_notifiers = None
77
80
  self._kubeconfig = None
78
81
  self._kubeconfig_elevated = None
@@ -89,6 +92,8 @@ class V1KubernetesDirectV1(object):
89
92
  self.grafana_service_name = grafana_service_name
90
93
  if grafana_service_port is not None:
91
94
  self.grafana_service_port = grafana_service_port
95
+ if incident_historical_scan_complete is not None:
96
+ self.incident_historical_scan_complete = incident_historical_scan_complete
92
97
  if incident_slack_notifiers is not None:
93
98
  self.incident_slack_notifiers = incident_slack_notifiers
94
99
  if kubeconfig is not None:
@@ -205,6 +210,27 @@ class V1KubernetesDirectV1(object):
205
210
 
206
211
  self._grafana_service_port = grafana_service_port
207
212
 
213
+ @property
214
+ def incident_historical_scan_complete(self) -> 'bool':
215
+ """Gets the incident_historical_scan_complete of this V1KubernetesDirectV1. # noqa: E501
216
+
217
+
218
+ :return: The incident_historical_scan_complete of this V1KubernetesDirectV1. # noqa: E501
219
+ :rtype: bool
220
+ """
221
+ return self._incident_historical_scan_complete
222
+
223
+ @incident_historical_scan_complete.setter
224
+ def incident_historical_scan_complete(self, incident_historical_scan_complete: 'bool'):
225
+ """Sets the incident_historical_scan_complete of this V1KubernetesDirectV1.
226
+
227
+
228
+ :param incident_historical_scan_complete: The incident_historical_scan_complete of this V1KubernetesDirectV1. # noqa: E501
229
+ :type: bool
230
+ """
231
+
232
+ self._incident_historical_scan_complete = incident_historical_scan_complete
233
+
208
234
  @property
209
235
  def incident_slack_notifiers(self) -> 'list[V1SlackNotifier]':
210
236
  """Gets the incident_slack_notifiers of this V1KubernetesDirectV1. # noqa: E501