lightning-sdk 2025.8.21__py3-none-any.whl → 2025.8.28__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 (54) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/studio_api.py +69 -2
  3. lightning_sdk/api/teamspace_api.py +60 -30
  4. lightning_sdk/api/user_api.py +49 -1
  5. lightning_sdk/api/utils.py +1 -1
  6. lightning_sdk/cli/config/set.py +6 -18
  7. lightning_sdk/cli/legacy/create.py +3 -3
  8. lightning_sdk/cli/legacy/delete.py +3 -3
  9. lightning_sdk/cli/legacy/deploy/_auth.py +4 -4
  10. lightning_sdk/cli/legacy/download.py +7 -7
  11. lightning_sdk/cli/legacy/job_and_mmt_action.py +4 -4
  12. lightning_sdk/cli/legacy/list.py +9 -9
  13. lightning_sdk/cli/legacy/open.py +3 -3
  14. lightning_sdk/cli/legacy/upload.py +3 -3
  15. lightning_sdk/cli/studio/create.py +16 -24
  16. lightning_sdk/cli/studio/delete.py +28 -27
  17. lightning_sdk/cli/studio/list.py +29 -15
  18. lightning_sdk/cli/studio/ssh.py +19 -22
  19. lightning_sdk/cli/studio/start.py +25 -25
  20. lightning_sdk/cli/studio/stop.py +25 -28
  21. lightning_sdk/cli/studio/switch.py +21 -24
  22. lightning_sdk/cli/utils/resolve.py +1 -1
  23. lightning_sdk/cli/utils/richt_print.py +24 -0
  24. lightning_sdk/cli/utils/save_to_config.py +27 -0
  25. lightning_sdk/cli/utils/studio_selection.py +106 -0
  26. lightning_sdk/cli/utils/teamspace_selection.py +125 -0
  27. lightning_sdk/lightning_cloud/openapi/__init__.py +2 -0
  28. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +85 -0
  29. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +101 -0
  30. lightning_sdk/lightning_cloud/openapi/models/__init__.py +2 -0
  31. lightning_sdk/lightning_cloud/openapi/models/externalv1_user_status.py +27 -1
  32. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_metrics.py +270 -36
  33. lightning_sdk/lightning_cloud/openapi/models/v1_container_metrics.py +21 -21
  34. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_metric_timestamps_response.py +123 -0
  35. lightning_sdk/lightning_cloud/openapi/models/v1_namespace_metrics.py +11 -11
  36. lightning_sdk/lightning_cloud/openapi/models/v1_namespace_user_metrics.py +16 -16
  37. lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +156 -26
  38. lightning_sdk/lightning_cloud/openapi/models/v1_pod_metrics.py +145 -41
  39. lightning_sdk/lightning_cloud/openapi/models/v1_purchase_annual_upsell_response.py +123 -0
  40. lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset.py +107 -3
  41. lightning_sdk/llm/public_assistants.py +4 -0
  42. lightning_sdk/studio.py +54 -22
  43. lightning_sdk/teamspace.py +25 -2
  44. lightning_sdk/user.py +19 -1
  45. lightning_sdk/utils/config.py +6 -0
  46. lightning_sdk/utils/names.py +1179 -0
  47. lightning_sdk/utils/progress.py +2 -2
  48. lightning_sdk/utils/resolve.py +17 -6
  49. {lightning_sdk-2025.8.21.dist-info → lightning_sdk-2025.8.28.dist-info}/METADATA +1 -1
  50. {lightning_sdk-2025.8.21.dist-info → lightning_sdk-2025.8.28.dist-info}/RECORD +54 -48
  51. {lightning_sdk-2025.8.21.dist-info → lightning_sdk-2025.8.28.dist-info}/LICENSE +0 -0
  52. {lightning_sdk-2025.8.21.dist-info → lightning_sdk-2025.8.28.dist-info}/WHEEL +0 -0
  53. {lightning_sdk-2025.8.21.dist-info → lightning_sdk-2025.8.28.dist-info}/entry_points.txt +0 -0
  54. {lightning_sdk-2025.8.21.dist-info → lightning_sdk-2025.8.28.dist-info}/top_level.txt +0 -0
@@ -43,19 +43,23 @@ class V1PodMetrics(object):
43
43
  swagger_types = {
44
44
  'cpu_usage': 'float',
45
45
  'labels': 'dict(str, str)',
46
- 'max_gpu_temp_recorded': 'float',
47
- 'max_power_per_gpu': 'float',
46
+ 'max_gpu_temp_recorded': 'int',
47
+ 'max_power_per_gpu': 'int',
48
48
  'mem_usage': 'float',
49
49
  'namespace': 'str',
50
50
  'node_name': 'str',
51
- 'num_cpus_limit': 'float',
52
- 'num_cpus_request': 'float',
53
- 'num_gpus': 'float',
54
- 'per_gpu_mem_used': 'dict(str, float)',
55
- 'per_gpu_power_usage_watts': 'dict(str, float)',
51
+ 'num_cpus_limit': 'int',
52
+ 'num_cpus_request': 'int',
53
+ 'num_gpus': 'int',
54
+ 'nvlink_rx_gib': 'dict(str, float)',
55
+ 'nvlink_tx_gib': 'dict(str, float)',
56
+ 'pcie_rx_gib': 'dict(str, float)',
57
+ 'pcie_tx_gib': 'dict(str, float)',
58
+ 'per_gpu_mem_used': 'dict(str, int)',
59
+ 'per_gpu_power_usage_watts': 'dict(str, int)',
56
60
  'per_gpu_sm_active': 'dict(str, float)',
57
61
  'per_gpu_sm_occupancy': 'dict(str, float)',
58
- 'per_gpu_temperature_c': 'dict(str, float)',
62
+ 'per_gpu_temperature_c': 'dict(str, int)',
59
63
  'per_gpu_util': 'dict(str, float)',
60
64
  'phase': 'str',
61
65
  'pod_id': 'str',
@@ -75,6 +79,10 @@ class V1PodMetrics(object):
75
79
  'num_cpus_limit': 'numCpusLimit',
76
80
  'num_cpus_request': 'numCpusRequest',
77
81
  'num_gpus': 'numGpus',
82
+ 'nvlink_rx_gib': 'nvlinkRxGib',
83
+ 'nvlink_tx_gib': 'nvlinkTxGib',
84
+ 'pcie_rx_gib': 'pcieRxGib',
85
+ 'pcie_tx_gib': 'pcieTxGib',
78
86
  'per_gpu_mem_used': 'perGpuMemUsed',
79
87
  'per_gpu_power_usage_watts': 'perGpuPowerUsageWatts',
80
88
  'per_gpu_sm_active': 'perGpuSmActive',
@@ -88,7 +96,7 @@ class V1PodMetrics(object):
88
96
  'user_id': 'userId'
89
97
  }
90
98
 
91
- def __init__(self, cpu_usage: 'float' =None, labels: 'dict(str, str)' =None, max_gpu_temp_recorded: 'float' =None, max_power_per_gpu: 'float' =None, mem_usage: 'float' =None, namespace: 'str' =None, node_name: 'str' =None, num_cpus_limit: 'float' =None, num_cpus_request: 'float' =None, num_gpus: 'float' =None, per_gpu_mem_used: 'dict(str, float)' =None, per_gpu_power_usage_watts: 'dict(str, float)' =None, per_gpu_sm_active: 'dict(str, float)' =None, per_gpu_sm_occupancy: 'dict(str, float)' =None, per_gpu_temperature_c: 'dict(str, float)' =None, per_gpu_util: 'dict(str, float)' =None, phase: 'str' =None, pod_id: 'str' =None, pod_name: 'str' =None, timestamp: 'datetime' =None, user_id: 'str' =None): # noqa: E501
99
+ def __init__(self, cpu_usage: 'float' =None, labels: 'dict(str, str)' =None, max_gpu_temp_recorded: 'int' =None, max_power_per_gpu: 'int' =None, mem_usage: 'float' =None, namespace: 'str' =None, node_name: 'str' =None, num_cpus_limit: 'int' =None, num_cpus_request: 'int' =None, num_gpus: 'int' =None, nvlink_rx_gib: 'dict(str, float)' =None, nvlink_tx_gib: 'dict(str, float)' =None, pcie_rx_gib: 'dict(str, float)' =None, pcie_tx_gib: 'dict(str, float)' =None, per_gpu_mem_used: 'dict(str, int)' =None, per_gpu_power_usage_watts: 'dict(str, int)' =None, per_gpu_sm_active: 'dict(str, float)' =None, per_gpu_sm_occupancy: 'dict(str, float)' =None, per_gpu_temperature_c: 'dict(str, int)' =None, per_gpu_util: 'dict(str, float)' =None, phase: 'str' =None, pod_id: 'str' =None, pod_name: 'str' =None, timestamp: 'datetime' =None, user_id: 'str' =None): # noqa: E501
92
100
  """V1PodMetrics - a model defined in Swagger""" # noqa: E501
93
101
  self._cpu_usage = None
94
102
  self._labels = None
@@ -100,6 +108,10 @@ class V1PodMetrics(object):
100
108
  self._num_cpus_limit = None
101
109
  self._num_cpus_request = None
102
110
  self._num_gpus = None
111
+ self._nvlink_rx_gib = None
112
+ self._nvlink_tx_gib = None
113
+ self._pcie_rx_gib = None
114
+ self._pcie_tx_gib = None
103
115
  self._per_gpu_mem_used = None
104
116
  self._per_gpu_power_usage_watts = None
105
117
  self._per_gpu_sm_active = None
@@ -132,6 +144,14 @@ class V1PodMetrics(object):
132
144
  self.num_cpus_request = num_cpus_request
133
145
  if num_gpus is not None:
134
146
  self.num_gpus = num_gpus
147
+ if nvlink_rx_gib is not None:
148
+ self.nvlink_rx_gib = nvlink_rx_gib
149
+ if nvlink_tx_gib is not None:
150
+ self.nvlink_tx_gib = nvlink_tx_gib
151
+ if pcie_rx_gib is not None:
152
+ self.pcie_rx_gib = pcie_rx_gib
153
+ if pcie_tx_gib is not None:
154
+ self.pcie_tx_gib = pcie_tx_gib
135
155
  if per_gpu_mem_used is not None:
136
156
  self.per_gpu_mem_used = per_gpu_mem_used
137
157
  if per_gpu_power_usage_watts is not None:
@@ -198,43 +218,43 @@ class V1PodMetrics(object):
198
218
  self._labels = labels
199
219
 
200
220
  @property
201
- def max_gpu_temp_recorded(self) -> 'float':
221
+ def max_gpu_temp_recorded(self) -> 'int':
202
222
  """Gets the max_gpu_temp_recorded of this V1PodMetrics. # noqa: E501
203
223
 
204
224
 
205
225
  :return: The max_gpu_temp_recorded of this V1PodMetrics. # noqa: E501
206
- :rtype: float
226
+ :rtype: int
207
227
  """
208
228
  return self._max_gpu_temp_recorded
209
229
 
210
230
  @max_gpu_temp_recorded.setter
211
- def max_gpu_temp_recorded(self, max_gpu_temp_recorded: 'float'):
231
+ def max_gpu_temp_recorded(self, max_gpu_temp_recorded: 'int'):
212
232
  """Sets the max_gpu_temp_recorded of this V1PodMetrics.
213
233
 
214
234
 
215
235
  :param max_gpu_temp_recorded: The max_gpu_temp_recorded of this V1PodMetrics. # noqa: E501
216
- :type: float
236
+ :type: int
217
237
  """
218
238
 
219
239
  self._max_gpu_temp_recorded = max_gpu_temp_recorded
220
240
 
221
241
  @property
222
- def max_power_per_gpu(self) -> 'float':
242
+ def max_power_per_gpu(self) -> 'int':
223
243
  """Gets the max_power_per_gpu of this V1PodMetrics. # noqa: E501
224
244
 
225
245
 
226
246
  :return: The max_power_per_gpu of this V1PodMetrics. # noqa: E501
227
- :rtype: float
247
+ :rtype: int
228
248
  """
229
249
  return self._max_power_per_gpu
230
250
 
231
251
  @max_power_per_gpu.setter
232
- def max_power_per_gpu(self, max_power_per_gpu: 'float'):
252
+ def max_power_per_gpu(self, max_power_per_gpu: 'int'):
233
253
  """Sets the max_power_per_gpu of this V1PodMetrics.
234
254
 
235
255
 
236
256
  :param max_power_per_gpu: The max_power_per_gpu of this V1PodMetrics. # noqa: E501
237
- :type: float
257
+ :type: int
238
258
  """
239
259
 
240
260
  self._max_power_per_gpu = max_power_per_gpu
@@ -303,106 +323,190 @@ class V1PodMetrics(object):
303
323
  self._node_name = node_name
304
324
 
305
325
  @property
306
- def num_cpus_limit(self) -> 'float':
326
+ def num_cpus_limit(self) -> 'int':
307
327
  """Gets the num_cpus_limit of this V1PodMetrics. # noqa: E501
308
328
 
309
329
 
310
330
  :return: The num_cpus_limit of this V1PodMetrics. # noqa: E501
311
- :rtype: float
331
+ :rtype: int
312
332
  """
313
333
  return self._num_cpus_limit
314
334
 
315
335
  @num_cpus_limit.setter
316
- def num_cpus_limit(self, num_cpus_limit: 'float'):
336
+ def num_cpus_limit(self, num_cpus_limit: 'int'):
317
337
  """Sets the num_cpus_limit of this V1PodMetrics.
318
338
 
319
339
 
320
340
  :param num_cpus_limit: The num_cpus_limit of this V1PodMetrics. # noqa: E501
321
- :type: float
341
+ :type: int
322
342
  """
323
343
 
324
344
  self._num_cpus_limit = num_cpus_limit
325
345
 
326
346
  @property
327
- def num_cpus_request(self) -> 'float':
347
+ def num_cpus_request(self) -> 'int':
328
348
  """Gets the num_cpus_request of this V1PodMetrics. # noqa: E501
329
349
 
330
350
 
331
351
  :return: The num_cpus_request of this V1PodMetrics. # noqa: E501
332
- :rtype: float
352
+ :rtype: int
333
353
  """
334
354
  return self._num_cpus_request
335
355
 
336
356
  @num_cpus_request.setter
337
- def num_cpus_request(self, num_cpus_request: 'float'):
357
+ def num_cpus_request(self, num_cpus_request: 'int'):
338
358
  """Sets the num_cpus_request of this V1PodMetrics.
339
359
 
340
360
 
341
361
  :param num_cpus_request: The num_cpus_request of this V1PodMetrics. # noqa: E501
342
- :type: float
362
+ :type: int
343
363
  """
344
364
 
345
365
  self._num_cpus_request = num_cpus_request
346
366
 
347
367
  @property
348
- def num_gpus(self) -> 'float':
368
+ def num_gpus(self) -> 'int':
349
369
  """Gets the num_gpus of this V1PodMetrics. # noqa: E501
350
370
 
351
371
 
352
372
  :return: The num_gpus of this V1PodMetrics. # noqa: E501
353
- :rtype: float
373
+ :rtype: int
354
374
  """
355
375
  return self._num_gpus
356
376
 
357
377
  @num_gpus.setter
358
- def num_gpus(self, num_gpus: 'float'):
378
+ def num_gpus(self, num_gpus: 'int'):
359
379
  """Sets the num_gpus of this V1PodMetrics.
360
380
 
361
381
 
362
382
  :param num_gpus: The num_gpus of this V1PodMetrics. # noqa: E501
363
- :type: float
383
+ :type: int
364
384
  """
365
385
 
366
386
  self._num_gpus = num_gpus
367
387
 
368
388
  @property
369
- def per_gpu_mem_used(self) -> 'dict(str, float)':
389
+ def nvlink_rx_gib(self) -> 'dict(str, float)':
390
+ """Gets the nvlink_rx_gib of this V1PodMetrics. # noqa: E501
391
+
392
+
393
+ :return: The nvlink_rx_gib of this V1PodMetrics. # noqa: E501
394
+ :rtype: dict(str, float)
395
+ """
396
+ return self._nvlink_rx_gib
397
+
398
+ @nvlink_rx_gib.setter
399
+ def nvlink_rx_gib(self, nvlink_rx_gib: 'dict(str, float)'):
400
+ """Sets the nvlink_rx_gib of this V1PodMetrics.
401
+
402
+
403
+ :param nvlink_rx_gib: The nvlink_rx_gib of this V1PodMetrics. # noqa: E501
404
+ :type: dict(str, float)
405
+ """
406
+
407
+ self._nvlink_rx_gib = nvlink_rx_gib
408
+
409
+ @property
410
+ def nvlink_tx_gib(self) -> 'dict(str, float)':
411
+ """Gets the nvlink_tx_gib of this V1PodMetrics. # noqa: E501
412
+
413
+
414
+ :return: The nvlink_tx_gib of this V1PodMetrics. # noqa: E501
415
+ :rtype: dict(str, float)
416
+ """
417
+ return self._nvlink_tx_gib
418
+
419
+ @nvlink_tx_gib.setter
420
+ def nvlink_tx_gib(self, nvlink_tx_gib: 'dict(str, float)'):
421
+ """Sets the nvlink_tx_gib of this V1PodMetrics.
422
+
423
+
424
+ :param nvlink_tx_gib: The nvlink_tx_gib of this V1PodMetrics. # noqa: E501
425
+ :type: dict(str, float)
426
+ """
427
+
428
+ self._nvlink_tx_gib = nvlink_tx_gib
429
+
430
+ @property
431
+ def pcie_rx_gib(self) -> 'dict(str, float)':
432
+ """Gets the pcie_rx_gib of this V1PodMetrics. # noqa: E501
433
+
434
+
435
+ :return: The pcie_rx_gib of this V1PodMetrics. # noqa: E501
436
+ :rtype: dict(str, float)
437
+ """
438
+ return self._pcie_rx_gib
439
+
440
+ @pcie_rx_gib.setter
441
+ def pcie_rx_gib(self, pcie_rx_gib: 'dict(str, float)'):
442
+ """Sets the pcie_rx_gib of this V1PodMetrics.
443
+
444
+
445
+ :param pcie_rx_gib: The pcie_rx_gib of this V1PodMetrics. # noqa: E501
446
+ :type: dict(str, float)
447
+ """
448
+
449
+ self._pcie_rx_gib = pcie_rx_gib
450
+
451
+ @property
452
+ def pcie_tx_gib(self) -> 'dict(str, float)':
453
+ """Gets the pcie_tx_gib of this V1PodMetrics. # noqa: E501
454
+
455
+
456
+ :return: The pcie_tx_gib of this V1PodMetrics. # noqa: E501
457
+ :rtype: dict(str, float)
458
+ """
459
+ return self._pcie_tx_gib
460
+
461
+ @pcie_tx_gib.setter
462
+ def pcie_tx_gib(self, pcie_tx_gib: 'dict(str, float)'):
463
+ """Sets the pcie_tx_gib of this V1PodMetrics.
464
+
465
+
466
+ :param pcie_tx_gib: The pcie_tx_gib of this V1PodMetrics. # noqa: E501
467
+ :type: dict(str, float)
468
+ """
469
+
470
+ self._pcie_tx_gib = pcie_tx_gib
471
+
472
+ @property
473
+ def per_gpu_mem_used(self) -> 'dict(str, int)':
370
474
  """Gets the per_gpu_mem_used of this V1PodMetrics. # noqa: E501
371
475
 
372
476
 
373
477
  :return: The per_gpu_mem_used of this V1PodMetrics. # noqa: E501
374
- :rtype: dict(str, float)
478
+ :rtype: dict(str, int)
375
479
  """
376
480
  return self._per_gpu_mem_used
377
481
 
378
482
  @per_gpu_mem_used.setter
379
- def per_gpu_mem_used(self, per_gpu_mem_used: 'dict(str, float)'):
483
+ def per_gpu_mem_used(self, per_gpu_mem_used: 'dict(str, int)'):
380
484
  """Sets the per_gpu_mem_used of this V1PodMetrics.
381
485
 
382
486
 
383
487
  :param per_gpu_mem_used: The per_gpu_mem_used of this V1PodMetrics. # noqa: E501
384
- :type: dict(str, float)
488
+ :type: dict(str, int)
385
489
  """
386
490
 
387
491
  self._per_gpu_mem_used = per_gpu_mem_used
388
492
 
389
493
  @property
390
- def per_gpu_power_usage_watts(self) -> 'dict(str, float)':
494
+ def per_gpu_power_usage_watts(self) -> 'dict(str, int)':
391
495
  """Gets the per_gpu_power_usage_watts of this V1PodMetrics. # noqa: E501
392
496
 
393
497
 
394
498
  :return: The per_gpu_power_usage_watts of this V1PodMetrics. # noqa: E501
395
- :rtype: dict(str, float)
499
+ :rtype: dict(str, int)
396
500
  """
397
501
  return self._per_gpu_power_usage_watts
398
502
 
399
503
  @per_gpu_power_usage_watts.setter
400
- def per_gpu_power_usage_watts(self, per_gpu_power_usage_watts: 'dict(str, float)'):
504
+ def per_gpu_power_usage_watts(self, per_gpu_power_usage_watts: 'dict(str, int)'):
401
505
  """Sets the per_gpu_power_usage_watts of this V1PodMetrics.
402
506
 
403
507
 
404
508
  :param per_gpu_power_usage_watts: The per_gpu_power_usage_watts of this V1PodMetrics. # noqa: E501
405
- :type: dict(str, float)
509
+ :type: dict(str, int)
406
510
  """
407
511
 
408
512
  self._per_gpu_power_usage_watts = per_gpu_power_usage_watts
@@ -450,22 +554,22 @@ class V1PodMetrics(object):
450
554
  self._per_gpu_sm_occupancy = per_gpu_sm_occupancy
451
555
 
452
556
  @property
453
- def per_gpu_temperature_c(self) -> 'dict(str, float)':
557
+ def per_gpu_temperature_c(self) -> 'dict(str, int)':
454
558
  """Gets the per_gpu_temperature_c of this V1PodMetrics. # noqa: E501
455
559
 
456
560
 
457
561
  :return: The per_gpu_temperature_c of this V1PodMetrics. # noqa: E501
458
- :rtype: dict(str, float)
562
+ :rtype: dict(str, int)
459
563
  """
460
564
  return self._per_gpu_temperature_c
461
565
 
462
566
  @per_gpu_temperature_c.setter
463
- def per_gpu_temperature_c(self, per_gpu_temperature_c: 'dict(str, float)'):
567
+ def per_gpu_temperature_c(self, per_gpu_temperature_c: 'dict(str, int)'):
464
568
  """Sets the per_gpu_temperature_c of this V1PodMetrics.
465
569
 
466
570
 
467
571
  :param per_gpu_temperature_c: The per_gpu_temperature_c of this V1PodMetrics. # noqa: E501
468
- :type: dict(str, float)
572
+ :type: dict(str, int)
469
573
  """
470
574
 
471
575
  self._per_gpu_temperature_c = per_gpu_temperature_c
@@ -0,0 +1,123 @@
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 V1PurchaseAnnualUpsellResponse(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
+ 'payment_succeeded': 'bool'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'payment_succeeded': 'paymentSucceeded'
49
+ }
50
+
51
+ def __init__(self, payment_succeeded: 'bool' =None): # noqa: E501
52
+ """V1PurchaseAnnualUpsellResponse - a model defined in Swagger""" # noqa: E501
53
+ self._payment_succeeded = None
54
+ self.discriminator = None
55
+ if payment_succeeded is not None:
56
+ self.payment_succeeded = payment_succeeded
57
+
58
+ @property
59
+ def payment_succeeded(self) -> 'bool':
60
+ """Gets the payment_succeeded of this V1PurchaseAnnualUpsellResponse. # noqa: E501
61
+
62
+
63
+ :return: The payment_succeeded of this V1PurchaseAnnualUpsellResponse. # noqa: E501
64
+ :rtype: bool
65
+ """
66
+ return self._payment_succeeded
67
+
68
+ @payment_succeeded.setter
69
+ def payment_succeeded(self, payment_succeeded: 'bool'):
70
+ """Sets the payment_succeeded of this V1PurchaseAnnualUpsellResponse.
71
+
72
+
73
+ :param payment_succeeded: The payment_succeeded of this V1PurchaseAnnualUpsellResponse. # noqa: E501
74
+ :type: bool
75
+ """
76
+
77
+ self._payment_succeeded = payment_succeeded
78
+
79
+ def to_dict(self) -> dict:
80
+ """Returns the model properties as a dict"""
81
+ result = {}
82
+
83
+ for attr, _ in six.iteritems(self.swagger_types):
84
+ value = getattr(self, attr)
85
+ if isinstance(value, list):
86
+ result[attr] = list(map(
87
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
88
+ value
89
+ ))
90
+ elif hasattr(value, "to_dict"):
91
+ result[attr] = value.to_dict()
92
+ elif isinstance(value, dict):
93
+ result[attr] = dict(map(
94
+ lambda item: (item[0], item[1].to_dict())
95
+ if hasattr(item[1], "to_dict") else item,
96
+ value.items()
97
+ ))
98
+ else:
99
+ result[attr] = value
100
+ if issubclass(V1PurchaseAnnualUpsellResponse, dict):
101
+ for key, value in self.items():
102
+ result[key] = value
103
+
104
+ return result
105
+
106
+ def to_str(self) -> str:
107
+ """Returns the string representation of the model"""
108
+ return pprint.pformat(self.to_dict())
109
+
110
+ def __repr__(self) -> str:
111
+ """For `print` and `pprint`"""
112
+ return self.to_str()
113
+
114
+ def __eq__(self, other: 'V1PurchaseAnnualUpsellResponse') -> bool:
115
+ """Returns true if both objects are equal"""
116
+ if not isinstance(other, V1PurchaseAnnualUpsellResponse):
117
+ return False
118
+
119
+ return self.__dict__ == other.__dict__
120
+
121
+ def __ne__(self, other: 'V1PurchaseAnnualUpsellResponse') -> bool:
122
+ """Returns true if both objects are not equal"""
123
+ return not self == other
@@ -45,10 +45,14 @@ class V1StorageAsset(object):
45
45
  'created_by': 'str',
46
46
  'id': 'str',
47
47
  'name': 'str',
48
+ 'read_cost_daily': 'float',
48
49
  'storage_bytes': 'str',
49
50
  'storage_cost_daily': 'float',
50
51
  'sub_type': 'str',
51
- 'type': 'V1StorageAssetType'
52
+ 'total_daily_read_bytes': 'str',
53
+ 'total_daily_write_bytes': 'str',
54
+ 'type': 'V1StorageAssetType',
55
+ 'write_cost_daily': 'float'
52
56
  }
53
57
 
54
58
  attribute_map = {
@@ -56,22 +60,30 @@ class V1StorageAsset(object):
56
60
  'created_by': 'createdBy',
57
61
  'id': 'id',
58
62
  'name': 'name',
63
+ 'read_cost_daily': 'readCostDaily',
59
64
  'storage_bytes': 'storageBytes',
60
65
  'storage_cost_daily': 'storageCostDaily',
61
66
  'sub_type': 'subType',
62
- 'type': 'type'
67
+ 'total_daily_read_bytes': 'totalDailyReadBytes',
68
+ 'total_daily_write_bytes': 'totalDailyWriteBytes',
69
+ 'type': 'type',
70
+ 'write_cost_daily': 'writeCostDaily'
63
71
  }
64
72
 
65
- def __init__(self, created_at: 'datetime' =None, created_by: 'str' =None, id: 'str' =None, name: 'str' =None, storage_bytes: 'str' =None, storage_cost_daily: 'float' =None, sub_type: 'str' =None, type: 'V1StorageAssetType' =None): # noqa: E501
73
+ def __init__(self, created_at: 'datetime' =None, created_by: 'str' =None, id: 'str' =None, name: 'str' =None, read_cost_daily: 'float' =None, storage_bytes: 'str' =None, storage_cost_daily: 'float' =None, sub_type: 'str' =None, total_daily_read_bytes: 'str' =None, total_daily_write_bytes: 'str' =None, type: 'V1StorageAssetType' =None, write_cost_daily: 'float' =None): # noqa: E501
66
74
  """V1StorageAsset - a model defined in Swagger""" # noqa: E501
67
75
  self._created_at = None
68
76
  self._created_by = None
69
77
  self._id = None
70
78
  self._name = None
79
+ self._read_cost_daily = None
71
80
  self._storage_bytes = None
72
81
  self._storage_cost_daily = None
73
82
  self._sub_type = None
83
+ self._total_daily_read_bytes = None
84
+ self._total_daily_write_bytes = None
74
85
  self._type = None
86
+ self._write_cost_daily = None
75
87
  self.discriminator = None
76
88
  if created_at is not None:
77
89
  self.created_at = created_at
@@ -81,14 +93,22 @@ class V1StorageAsset(object):
81
93
  self.id = id
82
94
  if name is not None:
83
95
  self.name = name
96
+ if read_cost_daily is not None:
97
+ self.read_cost_daily = read_cost_daily
84
98
  if storage_bytes is not None:
85
99
  self.storage_bytes = storage_bytes
86
100
  if storage_cost_daily is not None:
87
101
  self.storage_cost_daily = storage_cost_daily
88
102
  if sub_type is not None:
89
103
  self.sub_type = sub_type
104
+ if total_daily_read_bytes is not None:
105
+ self.total_daily_read_bytes = total_daily_read_bytes
106
+ if total_daily_write_bytes is not None:
107
+ self.total_daily_write_bytes = total_daily_write_bytes
90
108
  if type is not None:
91
109
  self.type = type
110
+ if write_cost_daily is not None:
111
+ self.write_cost_daily = write_cost_daily
92
112
 
93
113
  @property
94
114
  def created_at(self) -> 'datetime':
@@ -174,6 +194,27 @@ class V1StorageAsset(object):
174
194
 
175
195
  self._name = name
176
196
 
197
+ @property
198
+ def read_cost_daily(self) -> 'float':
199
+ """Gets the read_cost_daily of this V1StorageAsset. # noqa: E501
200
+
201
+
202
+ :return: The read_cost_daily of this V1StorageAsset. # noqa: E501
203
+ :rtype: float
204
+ """
205
+ return self._read_cost_daily
206
+
207
+ @read_cost_daily.setter
208
+ def read_cost_daily(self, read_cost_daily: 'float'):
209
+ """Sets the read_cost_daily of this V1StorageAsset.
210
+
211
+
212
+ :param read_cost_daily: The read_cost_daily of this V1StorageAsset. # noqa: E501
213
+ :type: float
214
+ """
215
+
216
+ self._read_cost_daily = read_cost_daily
217
+
177
218
  @property
178
219
  def storage_bytes(self) -> 'str':
179
220
  """Gets the storage_bytes of this V1StorageAsset. # noqa: E501
@@ -237,6 +278,48 @@ class V1StorageAsset(object):
237
278
 
238
279
  self._sub_type = sub_type
239
280
 
281
+ @property
282
+ def total_daily_read_bytes(self) -> 'str':
283
+ """Gets the total_daily_read_bytes of this V1StorageAsset. # noqa: E501
284
+
285
+
286
+ :return: The total_daily_read_bytes of this V1StorageAsset. # noqa: E501
287
+ :rtype: str
288
+ """
289
+ return self._total_daily_read_bytes
290
+
291
+ @total_daily_read_bytes.setter
292
+ def total_daily_read_bytes(self, total_daily_read_bytes: 'str'):
293
+ """Sets the total_daily_read_bytes of this V1StorageAsset.
294
+
295
+
296
+ :param total_daily_read_bytes: The total_daily_read_bytes of this V1StorageAsset. # noqa: E501
297
+ :type: str
298
+ """
299
+
300
+ self._total_daily_read_bytes = total_daily_read_bytes
301
+
302
+ @property
303
+ def total_daily_write_bytes(self) -> 'str':
304
+ """Gets the total_daily_write_bytes of this V1StorageAsset. # noqa: E501
305
+
306
+
307
+ :return: The total_daily_write_bytes of this V1StorageAsset. # noqa: E501
308
+ :rtype: str
309
+ """
310
+ return self._total_daily_write_bytes
311
+
312
+ @total_daily_write_bytes.setter
313
+ def total_daily_write_bytes(self, total_daily_write_bytes: 'str'):
314
+ """Sets the total_daily_write_bytes of this V1StorageAsset.
315
+
316
+
317
+ :param total_daily_write_bytes: The total_daily_write_bytes of this V1StorageAsset. # noqa: E501
318
+ :type: str
319
+ """
320
+
321
+ self._total_daily_write_bytes = total_daily_write_bytes
322
+
240
323
  @property
241
324
  def type(self) -> 'V1StorageAssetType':
242
325
  """Gets the type of this V1StorageAsset. # noqa: E501
@@ -258,6 +341,27 @@ class V1StorageAsset(object):
258
341
 
259
342
  self._type = type
260
343
 
344
+ @property
345
+ def write_cost_daily(self) -> 'float':
346
+ """Gets the write_cost_daily of this V1StorageAsset. # noqa: E501
347
+
348
+
349
+ :return: The write_cost_daily of this V1StorageAsset. # noqa: E501
350
+ :rtype: float
351
+ """
352
+ return self._write_cost_daily
353
+
354
+ @write_cost_daily.setter
355
+ def write_cost_daily(self, write_cost_daily: 'float'):
356
+ """Sets the write_cost_daily of this V1StorageAsset.
357
+
358
+
359
+ :param write_cost_daily: The write_cost_daily of this V1StorageAsset. # noqa: E501
360
+ :type: float
361
+ """
362
+
363
+ self._write_cost_daily = write_cost_daily
364
+
261
365
  def to_dict(self) -> dict:
262
366
  """Returns the model properties as a dict"""
263
367
  result = {}
@@ -27,6 +27,10 @@ PUBLIC_MODELS = {
27
27
  "id": "ast_01jz3thxskg4fcdk4xhkjkym5b",
28
28
  "context_length": 8000
29
29
  },
30
+ "lightning-ai/DeepSeek-V3.1": {
31
+ "id": "ast_01k378z15k0msktaxjpfrfwqqh",
32
+ "context_length": 163840
33
+ },
30
34
  "lightning-ai/gpt-oss-20b": {
31
35
  "id": "ast_01k1y2ywfh9zzexjzrva6y96ms",
32
36
  "context_length": 128000,