lightning-sdk 2025.9.30__py3-none-any.whl → 2025.10.14__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 (69) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/cloud_account_api.py +0 -2
  3. lightning_sdk/api/studio_api.py +8 -0
  4. lightning_sdk/base_studio.py +23 -12
  5. lightning_sdk/cli/base_studio/__init__.py +10 -0
  6. lightning_sdk/cli/base_studio/list.py +45 -0
  7. lightning_sdk/cli/entrypoint.py +2 -0
  8. lightning_sdk/cli/groups.py +7 -0
  9. lightning_sdk/cli/studio/connect.py +117 -22
  10. lightning_sdk/cli/studio/ssh.py +3 -6
  11. lightning_sdk/cli/utils/ssh_connection.py +8 -0
  12. lightning_sdk/job/job.py +5 -0
  13. lightning_sdk/job/v1.py +8 -0
  14. lightning_sdk/job/v2.py +8 -0
  15. lightning_sdk/lightning_cloud/openapi/__init__.py +20 -0
  16. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
  17. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +19 -19
  18. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +105 -0
  19. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +1463 -240
  20. lightning_sdk/lightning_cloud/openapi/api/sdk_command_history_service_api.py +141 -0
  21. lightning_sdk/lightning_cloud/openapi/models/__init__.py +19 -0
  22. lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_visibility_body.py +27 -1
  23. lightning_sdk/lightning_cloud/openapi/models/cluster_id_metrics_body.py +53 -1
  24. lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +27 -1
  25. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +53 -1
  26. lightning_sdk/lightning_cloud/openapi/models/id_transfer_body.py +53 -1
  27. lightning_sdk/lightning_cloud/openapi/models/incident_id_messages_body.py +149 -0
  28. lightning_sdk/lightning_cloud/openapi/models/incidents_id_body.py +279 -0
  29. lightning_sdk/lightning_cloud/openapi/models/messages_message_id_body.py +149 -0
  30. lightning_sdk/lightning_cloud/openapi/models/project_id_incidents_body.py +279 -0
  31. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +27 -1
  32. lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +15 -15
  33. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_transfer_metadata.py +53 -1
  34. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +27 -1
  35. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_request.py +253 -0
  36. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_response.py +97 -0
  37. lightning_sdk/lightning_cloud/openapi/models/v1_delete_incident_message_response.py +97 -0
  38. lightning_sdk/lightning_cloud/openapi/models/v1_delete_incident_response.py +97 -0
  39. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +27 -1
  40. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_transfer_estimate_response.py +123 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_group_pod_metrics.py +1241 -0
  42. lightning_sdk/lightning_cloud/openapi/models/v1_incident.py +539 -0
  43. lightning_sdk/lightning_cloud/openapi/models/v1_incident_message.py +253 -0
  44. lightning_sdk/lightning_cloud/openapi/models/v1_incident_type.py +1 -0
  45. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +53 -1
  46. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  47. lightning_sdk/lightning_cloud/openapi/models/v1_kai_scheduler_queue_metrics.py +627 -0
  48. lightning_sdk/lightning_cloud/openapi/models/v1_list_group_pod_metrics_response.py +123 -0
  49. lightning_sdk/lightning_cloud/openapi/models/v1_list_incident_messages_response.py +149 -0
  50. lightning_sdk/lightning_cloud/openapi/models/v1_list_incidents_response.py +149 -0
  51. lightning_sdk/lightning_cloud/openapi/models/v1_list_kai_scheduler_queues_metrics_response.py +123 -0
  52. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +53 -1
  53. lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +27 -1
  54. lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +27 -1
  55. lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +27 -1
  56. lightning_sdk/lightning_cloud/openapi/models/v1_resource_visibility.py +1 -27
  57. lightning_sdk/lightning_cloud/openapi/models/v1_sdk_command_history_severity.py +104 -0
  58. lightning_sdk/lightning_cloud/openapi/models/v1_sdk_command_history_type.py +104 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_type.py +1 -0
  60. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +157 -53
  61. lightning_sdk/machine.py +0 -1
  62. lightning_sdk/studio.py +42 -5
  63. lightning_sdk/utils/progress.py +32 -33
  64. {lightning_sdk-2025.9.30.dist-info → lightning_sdk-2025.10.14.dist-info}/METADATA +1 -1
  65. {lightning_sdk-2025.9.30.dist-info → lightning_sdk-2025.10.14.dist-info}/RECORD +69 -47
  66. {lightning_sdk-2025.9.30.dist-info → lightning_sdk-2025.10.14.dist-info}/LICENSE +0 -0
  67. {lightning_sdk-2025.9.30.dist-info → lightning_sdk-2025.10.14.dist-info}/WHEEL +0 -0
  68. {lightning_sdk-2025.9.30.dist-info → lightning_sdk-2025.10.14.dist-info}/entry_points.txt +0 -0
  69. {lightning_sdk-2025.9.30.dist-info → lightning_sdk-2025.10.14.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,539 @@
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 V1Incident(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
+ 'ended_at': 'datetime',
47
+ 'id': 'str',
48
+ 'message': 'str',
49
+ 'notified': 'bool',
50
+ 'project_id': 'str',
51
+ 'resolution_notes': 'str',
52
+ 'resource': 'str',
53
+ 'resource_id': 'str',
54
+ 'severity': 'V1IncidentSeverity',
55
+ 'started_at': 'datetime',
56
+ 'status': 'str',
57
+ 'title': 'str',
58
+ 'type': 'V1IncidentType',
59
+ 'updated_at': 'datetime',
60
+ 'user_id': 'str'
61
+ }
62
+
63
+ attribute_map = {
64
+ 'cluster_id': 'clusterId',
65
+ 'created_at': 'createdAt',
66
+ 'ended_at': 'endedAt',
67
+ 'id': 'id',
68
+ 'message': 'message',
69
+ 'notified': 'notified',
70
+ 'project_id': 'projectId',
71
+ 'resolution_notes': 'resolutionNotes',
72
+ 'resource': 'resource',
73
+ 'resource_id': 'resourceId',
74
+ 'severity': 'severity',
75
+ 'started_at': 'startedAt',
76
+ 'status': 'status',
77
+ 'title': 'title',
78
+ 'type': 'type',
79
+ 'updated_at': 'updatedAt',
80
+ 'user_id': 'userId'
81
+ }
82
+
83
+ def __init__(self, cluster_id: 'str' =None, created_at: 'datetime' =None, ended_at: 'datetime' =None, id: 'str' =None, message: 'str' =None, notified: 'bool' =None, project_id: 'str' =None, resolution_notes: 'str' =None, resource: 'str' =None, resource_id: 'str' =None, severity: 'V1IncidentSeverity' =None, started_at: 'datetime' =None, status: 'str' =None, title: 'str' =None, type: 'V1IncidentType' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
84
+ """V1Incident - a model defined in Swagger""" # noqa: E501
85
+ self._cluster_id = None
86
+ self._created_at = None
87
+ self._ended_at = None
88
+ self._id = None
89
+ self._message = None
90
+ self._notified = None
91
+ self._project_id = None
92
+ self._resolution_notes = None
93
+ self._resource = None
94
+ self._resource_id = None
95
+ self._severity = None
96
+ self._started_at = None
97
+ self._status = None
98
+ self._title = None
99
+ self._type = None
100
+ self._updated_at = None
101
+ self._user_id = None
102
+ self.discriminator = None
103
+ if cluster_id is not None:
104
+ self.cluster_id = cluster_id
105
+ if created_at is not None:
106
+ self.created_at = created_at
107
+ if ended_at is not None:
108
+ self.ended_at = ended_at
109
+ if id is not None:
110
+ self.id = id
111
+ if message is not None:
112
+ self.message = message
113
+ if notified is not None:
114
+ self.notified = notified
115
+ if project_id is not None:
116
+ self.project_id = project_id
117
+ if resolution_notes is not None:
118
+ self.resolution_notes = resolution_notes
119
+ if resource is not None:
120
+ self.resource = resource
121
+ if resource_id is not None:
122
+ self.resource_id = resource_id
123
+ if severity is not None:
124
+ self.severity = severity
125
+ if started_at is not None:
126
+ self.started_at = started_at
127
+ if status is not None:
128
+ self.status = status
129
+ if title is not None:
130
+ self.title = title
131
+ if type is not None:
132
+ self.type = type
133
+ if updated_at is not None:
134
+ self.updated_at = updated_at
135
+ if user_id is not None:
136
+ self.user_id = user_id
137
+
138
+ @property
139
+ def cluster_id(self) -> 'str':
140
+ """Gets the cluster_id of this V1Incident. # noqa: E501
141
+
142
+
143
+ :return: The cluster_id of this V1Incident. # noqa: E501
144
+ :rtype: str
145
+ """
146
+ return self._cluster_id
147
+
148
+ @cluster_id.setter
149
+ def cluster_id(self, cluster_id: 'str'):
150
+ """Sets the cluster_id of this V1Incident.
151
+
152
+
153
+ :param cluster_id: The cluster_id of this V1Incident. # noqa: E501
154
+ :type: str
155
+ """
156
+
157
+ self._cluster_id = cluster_id
158
+
159
+ @property
160
+ def created_at(self) -> 'datetime':
161
+ """Gets the created_at of this V1Incident. # noqa: E501
162
+
163
+
164
+ :return: The created_at of this V1Incident. # noqa: E501
165
+ :rtype: datetime
166
+ """
167
+ return self._created_at
168
+
169
+ @created_at.setter
170
+ def created_at(self, created_at: 'datetime'):
171
+ """Sets the created_at of this V1Incident.
172
+
173
+
174
+ :param created_at: The created_at of this V1Incident. # noqa: E501
175
+ :type: datetime
176
+ """
177
+
178
+ self._created_at = created_at
179
+
180
+ @property
181
+ def ended_at(self) -> 'datetime':
182
+ """Gets the ended_at of this V1Incident. # noqa: E501
183
+
184
+
185
+ :return: The ended_at of this V1Incident. # noqa: E501
186
+ :rtype: datetime
187
+ """
188
+ return self._ended_at
189
+
190
+ @ended_at.setter
191
+ def ended_at(self, ended_at: 'datetime'):
192
+ """Sets the ended_at of this V1Incident.
193
+
194
+
195
+ :param ended_at: The ended_at of this V1Incident. # noqa: E501
196
+ :type: datetime
197
+ """
198
+
199
+ self._ended_at = ended_at
200
+
201
+ @property
202
+ def id(self) -> 'str':
203
+ """Gets the id of this V1Incident. # noqa: E501
204
+
205
+
206
+ :return: The id of this V1Incident. # noqa: E501
207
+ :rtype: str
208
+ """
209
+ return self._id
210
+
211
+ @id.setter
212
+ def id(self, id: 'str'):
213
+ """Sets the id of this V1Incident.
214
+
215
+
216
+ :param id: The id of this V1Incident. # noqa: E501
217
+ :type: str
218
+ """
219
+
220
+ self._id = id
221
+
222
+ @property
223
+ def message(self) -> 'str':
224
+ """Gets the message of this V1Incident. # noqa: E501
225
+
226
+
227
+ :return: The message of this V1Incident. # noqa: E501
228
+ :rtype: str
229
+ """
230
+ return self._message
231
+
232
+ @message.setter
233
+ def message(self, message: 'str'):
234
+ """Sets the message of this V1Incident.
235
+
236
+
237
+ :param message: The message of this V1Incident. # noqa: E501
238
+ :type: str
239
+ """
240
+
241
+ self._message = message
242
+
243
+ @property
244
+ def notified(self) -> 'bool':
245
+ """Gets the notified of this V1Incident. # noqa: E501
246
+
247
+
248
+ :return: The notified of this V1Incident. # noqa: E501
249
+ :rtype: bool
250
+ """
251
+ return self._notified
252
+
253
+ @notified.setter
254
+ def notified(self, notified: 'bool'):
255
+ """Sets the notified of this V1Incident.
256
+
257
+
258
+ :param notified: The notified of this V1Incident. # noqa: E501
259
+ :type: bool
260
+ """
261
+
262
+ self._notified = notified
263
+
264
+ @property
265
+ def project_id(self) -> 'str':
266
+ """Gets the project_id of this V1Incident. # noqa: E501
267
+
268
+
269
+ :return: The project_id of this V1Incident. # noqa: E501
270
+ :rtype: str
271
+ """
272
+ return self._project_id
273
+
274
+ @project_id.setter
275
+ def project_id(self, project_id: 'str'):
276
+ """Sets the project_id of this V1Incident.
277
+
278
+
279
+ :param project_id: The project_id of this V1Incident. # noqa: E501
280
+ :type: str
281
+ """
282
+
283
+ self._project_id = project_id
284
+
285
+ @property
286
+ def resolution_notes(self) -> 'str':
287
+ """Gets the resolution_notes of this V1Incident. # noqa: E501
288
+
289
+
290
+ :return: The resolution_notes of this V1Incident. # noqa: E501
291
+ :rtype: str
292
+ """
293
+ return self._resolution_notes
294
+
295
+ @resolution_notes.setter
296
+ def resolution_notes(self, resolution_notes: 'str'):
297
+ """Sets the resolution_notes of this V1Incident.
298
+
299
+
300
+ :param resolution_notes: The resolution_notes of this V1Incident. # noqa: E501
301
+ :type: str
302
+ """
303
+
304
+ self._resolution_notes = resolution_notes
305
+
306
+ @property
307
+ def resource(self) -> 'str':
308
+ """Gets the resource of this V1Incident. # noqa: E501
309
+
310
+
311
+ :return: The resource of this V1Incident. # noqa: E501
312
+ :rtype: str
313
+ """
314
+ return self._resource
315
+
316
+ @resource.setter
317
+ def resource(self, resource: 'str'):
318
+ """Sets the resource of this V1Incident.
319
+
320
+
321
+ :param resource: The resource of this V1Incident. # noqa: E501
322
+ :type: str
323
+ """
324
+
325
+ self._resource = resource
326
+
327
+ @property
328
+ def resource_id(self) -> 'str':
329
+ """Gets the resource_id of this V1Incident. # noqa: E501
330
+
331
+
332
+ :return: The resource_id of this V1Incident. # noqa: E501
333
+ :rtype: str
334
+ """
335
+ return self._resource_id
336
+
337
+ @resource_id.setter
338
+ def resource_id(self, resource_id: 'str'):
339
+ """Sets the resource_id of this V1Incident.
340
+
341
+
342
+ :param resource_id: The resource_id of this V1Incident. # noqa: E501
343
+ :type: str
344
+ """
345
+
346
+ self._resource_id = resource_id
347
+
348
+ @property
349
+ def severity(self) -> 'V1IncidentSeverity':
350
+ """Gets the severity of this V1Incident. # noqa: E501
351
+
352
+
353
+ :return: The severity of this V1Incident. # noqa: E501
354
+ :rtype: V1IncidentSeverity
355
+ """
356
+ return self._severity
357
+
358
+ @severity.setter
359
+ def severity(self, severity: 'V1IncidentSeverity'):
360
+ """Sets the severity of this V1Incident.
361
+
362
+
363
+ :param severity: The severity of this V1Incident. # noqa: E501
364
+ :type: V1IncidentSeverity
365
+ """
366
+
367
+ self._severity = severity
368
+
369
+ @property
370
+ def started_at(self) -> 'datetime':
371
+ """Gets the started_at of this V1Incident. # noqa: E501
372
+
373
+
374
+ :return: The started_at of this V1Incident. # noqa: E501
375
+ :rtype: datetime
376
+ """
377
+ return self._started_at
378
+
379
+ @started_at.setter
380
+ def started_at(self, started_at: 'datetime'):
381
+ """Sets the started_at of this V1Incident.
382
+
383
+
384
+ :param started_at: The started_at of this V1Incident. # noqa: E501
385
+ :type: datetime
386
+ """
387
+
388
+ self._started_at = started_at
389
+
390
+ @property
391
+ def status(self) -> 'str':
392
+ """Gets the status of this V1Incident. # noqa: E501
393
+
394
+
395
+ :return: The status of this V1Incident. # noqa: E501
396
+ :rtype: str
397
+ """
398
+ return self._status
399
+
400
+ @status.setter
401
+ def status(self, status: 'str'):
402
+ """Sets the status of this V1Incident.
403
+
404
+
405
+ :param status: The status of this V1Incident. # noqa: E501
406
+ :type: str
407
+ """
408
+
409
+ self._status = status
410
+
411
+ @property
412
+ def title(self) -> 'str':
413
+ """Gets the title of this V1Incident. # noqa: E501
414
+
415
+
416
+ :return: The title of this V1Incident. # noqa: E501
417
+ :rtype: str
418
+ """
419
+ return self._title
420
+
421
+ @title.setter
422
+ def title(self, title: 'str'):
423
+ """Sets the title of this V1Incident.
424
+
425
+
426
+ :param title: The title of this V1Incident. # noqa: E501
427
+ :type: str
428
+ """
429
+
430
+ self._title = title
431
+
432
+ @property
433
+ def type(self) -> 'V1IncidentType':
434
+ """Gets the type of this V1Incident. # noqa: E501
435
+
436
+
437
+ :return: The type of this V1Incident. # noqa: E501
438
+ :rtype: V1IncidentType
439
+ """
440
+ return self._type
441
+
442
+ @type.setter
443
+ def type(self, type: 'V1IncidentType'):
444
+ """Sets the type of this V1Incident.
445
+
446
+
447
+ :param type: The type of this V1Incident. # noqa: E501
448
+ :type: V1IncidentType
449
+ """
450
+
451
+ self._type = type
452
+
453
+ @property
454
+ def updated_at(self) -> 'datetime':
455
+ """Gets the updated_at of this V1Incident. # noqa: E501
456
+
457
+
458
+ :return: The updated_at of this V1Incident. # noqa: E501
459
+ :rtype: datetime
460
+ """
461
+ return self._updated_at
462
+
463
+ @updated_at.setter
464
+ def updated_at(self, updated_at: 'datetime'):
465
+ """Sets the updated_at of this V1Incident.
466
+
467
+
468
+ :param updated_at: The updated_at of this V1Incident. # noqa: E501
469
+ :type: datetime
470
+ """
471
+
472
+ self._updated_at = updated_at
473
+
474
+ @property
475
+ def user_id(self) -> 'str':
476
+ """Gets the user_id of this V1Incident. # noqa: E501
477
+
478
+
479
+ :return: The user_id of this V1Incident. # noqa: E501
480
+ :rtype: str
481
+ """
482
+ return self._user_id
483
+
484
+ @user_id.setter
485
+ def user_id(self, user_id: 'str'):
486
+ """Sets the user_id of this V1Incident.
487
+
488
+
489
+ :param user_id: The user_id of this V1Incident. # noqa: E501
490
+ :type: str
491
+ """
492
+
493
+ self._user_id = user_id
494
+
495
+ def to_dict(self) -> dict:
496
+ """Returns the model properties as a dict"""
497
+ result = {}
498
+
499
+ for attr, _ in six.iteritems(self.swagger_types):
500
+ value = getattr(self, attr)
501
+ if isinstance(value, list):
502
+ result[attr] = list(map(
503
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
504
+ value
505
+ ))
506
+ elif hasattr(value, "to_dict"):
507
+ result[attr] = value.to_dict()
508
+ elif isinstance(value, dict):
509
+ result[attr] = dict(map(
510
+ lambda item: (item[0], item[1].to_dict())
511
+ if hasattr(item[1], "to_dict") else item,
512
+ value.items()
513
+ ))
514
+ else:
515
+ result[attr] = value
516
+ if issubclass(V1Incident, dict):
517
+ for key, value in self.items():
518
+ result[key] = value
519
+
520
+ return result
521
+
522
+ def to_str(self) -> str:
523
+ """Returns the string representation of the model"""
524
+ return pprint.pformat(self.to_dict())
525
+
526
+ def __repr__(self) -> str:
527
+ """For `print` and `pprint`"""
528
+ return self.to_str()
529
+
530
+ def __eq__(self, other: 'V1Incident') -> bool:
531
+ """Returns true if both objects are equal"""
532
+ if not isinstance(other, V1Incident):
533
+ return False
534
+
535
+ return self.__dict__ == other.__dict__
536
+
537
+ def __ne__(self, other: 'V1Incident') -> bool:
538
+ """Returns true if both objects are not equal"""
539
+ return not self == other