lightning-sdk 2025.8.19.post0__py3-none-any.whl → 2025.8.26__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.
- lightning_sdk/__init__.py +1 -1
- lightning_sdk/api/llm_api.py +6 -2
- lightning_sdk/api/studio_api.py +168 -2
- lightning_sdk/api/teamspace_api.py +60 -30
- lightning_sdk/api/user_api.py +49 -1
- lightning_sdk/api/utils.py +1 -1
- lightning_sdk/cli/config/set.py +6 -18
- lightning_sdk/cli/legacy/create.py +12 -14
- lightning_sdk/cli/legacy/delete.py +3 -3
- lightning_sdk/cli/legacy/deploy/_auth.py +4 -4
- lightning_sdk/cli/legacy/download.py +7 -7
- lightning_sdk/cli/legacy/job_and_mmt_action.py +4 -4
- lightning_sdk/cli/legacy/list.py +9 -9
- lightning_sdk/cli/legacy/open.py +3 -3
- lightning_sdk/cli/legacy/start.py +1 -0
- lightning_sdk/cli/legacy/switch.py +1 -0
- lightning_sdk/cli/legacy/upload.py +3 -3
- lightning_sdk/cli/studio/create.py +14 -23
- lightning_sdk/cli/studio/delete.py +28 -27
- lightning_sdk/cli/studio/list.py +5 -6
- lightning_sdk/cli/studio/ssh.py +19 -22
- lightning_sdk/cli/studio/start.py +23 -23
- lightning_sdk/cli/studio/stop.py +22 -26
- lightning_sdk/cli/studio/switch.py +20 -23
- lightning_sdk/cli/utils/resolve.py +1 -1
- lightning_sdk/cli/utils/save_to_config.py +27 -0
- lightning_sdk/cli/utils/studio_selection.py +106 -0
- lightning_sdk/cli/utils/teamspace_selection.py +125 -0
- lightning_sdk/lightning_cloud/openapi/__init__.py +3 -0
- lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +170 -0
- lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +101 -0
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +3 -0
- lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +15 -15
- lightning_sdk/lightning_cloud/openapi/models/externalv1_user_status.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_metrics.py +270 -36
- lightning_sdk/lightning_cloud/openapi/models/v1_container_metrics.py +21 -21
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_metric_timestamps_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_namespace_metrics.py +11 -11
- lightning_sdk/lightning_cloud/openapi/models/v1_namespace_user_metrics.py +16 -16
- lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +156 -26
- lightning_sdk/lightning_cloud/openapi/models/v1_pod_metrics.py +281 -21
- lightning_sdk/lightning_cloud/openapi/models/v1_project_cluster_binding.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_purchase_annual_upsell_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_quote_annual_upsell_response.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset.py +107 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +1 -27
- lightning_sdk/llm/llm.py +2 -2
- lightning_sdk/llm/public_assistants.py +4 -0
- lightning_sdk/studio.py +92 -28
- lightning_sdk/teamspace.py +25 -2
- lightning_sdk/user.py +19 -1
- lightning_sdk/utils/config.py +6 -0
- lightning_sdk/utils/names.py +1179 -0
- lightning_sdk/utils/progress.py +284 -0
- lightning_sdk/utils/resolve.py +6 -6
- {lightning_sdk-2025.8.19.post0.dist-info → lightning_sdk-2025.8.26.dist-info}/METADATA +1 -1
- {lightning_sdk-2025.8.19.post0.dist-info → lightning_sdk-2025.8.26.dist-info}/RECORD +61 -53
- {lightning_sdk-2025.8.19.post0.dist-info → lightning_sdk-2025.8.26.dist-info}/LICENSE +0 -0
- {lightning_sdk-2025.8.19.post0.dist-info → lightning_sdk-2025.8.26.dist-info}/WHEEL +0 -0
- {lightning_sdk-2025.8.19.post0.dist-info → lightning_sdk-2025.8.26.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-2025.8.19.post0.dist-info → lightning_sdk-2025.8.26.dist-info}/top_level.txt +0 -0
|
@@ -43,13 +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': 'int',
|
|
47
|
+
'max_power_per_gpu': 'int',
|
|
46
48
|
'mem_usage': 'float',
|
|
47
49
|
'namespace': 'str',
|
|
48
50
|
'node_name': 'str',
|
|
49
|
-
'num_cpus_limit': '
|
|
50
|
-
'num_cpus_request': '
|
|
51
|
-
'num_gpus': '
|
|
52
|
-
'
|
|
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)',
|
|
60
|
+
'per_gpu_sm_active': 'dict(str, float)',
|
|
61
|
+
'per_gpu_sm_occupancy': 'dict(str, float)',
|
|
62
|
+
'per_gpu_temperature_c': 'dict(str, int)',
|
|
53
63
|
'per_gpu_util': 'dict(str, float)',
|
|
54
64
|
'phase': 'str',
|
|
55
65
|
'pod_id': 'str',
|
|
@@ -61,13 +71,23 @@ class V1PodMetrics(object):
|
|
|
61
71
|
attribute_map = {
|
|
62
72
|
'cpu_usage': 'cpuUsage',
|
|
63
73
|
'labels': 'labels',
|
|
74
|
+
'max_gpu_temp_recorded': 'maxGpuTempRecorded',
|
|
75
|
+
'max_power_per_gpu': 'maxPowerPerGpu',
|
|
64
76
|
'mem_usage': 'memUsage',
|
|
65
77
|
'namespace': 'namespace',
|
|
66
78
|
'node_name': 'nodeName',
|
|
67
79
|
'num_cpus_limit': 'numCpusLimit',
|
|
68
80
|
'num_cpus_request': 'numCpusRequest',
|
|
69
81
|
'num_gpus': 'numGpus',
|
|
82
|
+
'nvlink_rx_gib': 'nvlinkRxGib',
|
|
83
|
+
'nvlink_tx_gib': 'nvlinkTxGib',
|
|
84
|
+
'pcie_rx_gib': 'pcieRxGib',
|
|
85
|
+
'pcie_tx_gib': 'pcieTxGib',
|
|
70
86
|
'per_gpu_mem_used': 'perGpuMemUsed',
|
|
87
|
+
'per_gpu_power_usage_watts': 'perGpuPowerUsageWatts',
|
|
88
|
+
'per_gpu_sm_active': 'perGpuSmActive',
|
|
89
|
+
'per_gpu_sm_occupancy': 'perGpuSmOccupancy',
|
|
90
|
+
'per_gpu_temperature_c': 'perGpuTemperatureC',
|
|
71
91
|
'per_gpu_util': 'perGpuUtil',
|
|
72
92
|
'phase': 'phase',
|
|
73
93
|
'pod_id': 'podId',
|
|
@@ -76,17 +96,27 @@ class V1PodMetrics(object):
|
|
|
76
96
|
'user_id': 'userId'
|
|
77
97
|
}
|
|
78
98
|
|
|
79
|
-
def __init__(self, cpu_usage: 'float' =None, labels: 'dict(str, str)' =None, mem_usage: 'float' =None, namespace: 'str' =None, node_name: 'str' =None, num_cpus_limit: '
|
|
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
|
|
80
100
|
"""V1PodMetrics - a model defined in Swagger""" # noqa: E501
|
|
81
101
|
self._cpu_usage = None
|
|
82
102
|
self._labels = None
|
|
103
|
+
self._max_gpu_temp_recorded = None
|
|
104
|
+
self._max_power_per_gpu = None
|
|
83
105
|
self._mem_usage = None
|
|
84
106
|
self._namespace = None
|
|
85
107
|
self._node_name = None
|
|
86
108
|
self._num_cpus_limit = None
|
|
87
109
|
self._num_cpus_request = None
|
|
88
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
|
|
89
115
|
self._per_gpu_mem_used = None
|
|
116
|
+
self._per_gpu_power_usage_watts = None
|
|
117
|
+
self._per_gpu_sm_active = None
|
|
118
|
+
self._per_gpu_sm_occupancy = None
|
|
119
|
+
self._per_gpu_temperature_c = None
|
|
90
120
|
self._per_gpu_util = None
|
|
91
121
|
self._phase = None
|
|
92
122
|
self._pod_id = None
|
|
@@ -98,6 +128,10 @@ class V1PodMetrics(object):
|
|
|
98
128
|
self.cpu_usage = cpu_usage
|
|
99
129
|
if labels is not None:
|
|
100
130
|
self.labels = labels
|
|
131
|
+
if max_gpu_temp_recorded is not None:
|
|
132
|
+
self.max_gpu_temp_recorded = max_gpu_temp_recorded
|
|
133
|
+
if max_power_per_gpu is not None:
|
|
134
|
+
self.max_power_per_gpu = max_power_per_gpu
|
|
101
135
|
if mem_usage is not None:
|
|
102
136
|
self.mem_usage = mem_usage
|
|
103
137
|
if namespace is not None:
|
|
@@ -110,8 +144,24 @@ class V1PodMetrics(object):
|
|
|
110
144
|
self.num_cpus_request = num_cpus_request
|
|
111
145
|
if num_gpus is not None:
|
|
112
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
|
|
113
155
|
if per_gpu_mem_used is not None:
|
|
114
156
|
self.per_gpu_mem_used = per_gpu_mem_used
|
|
157
|
+
if per_gpu_power_usage_watts is not None:
|
|
158
|
+
self.per_gpu_power_usage_watts = per_gpu_power_usage_watts
|
|
159
|
+
if per_gpu_sm_active is not None:
|
|
160
|
+
self.per_gpu_sm_active = per_gpu_sm_active
|
|
161
|
+
if per_gpu_sm_occupancy is not None:
|
|
162
|
+
self.per_gpu_sm_occupancy = per_gpu_sm_occupancy
|
|
163
|
+
if per_gpu_temperature_c is not None:
|
|
164
|
+
self.per_gpu_temperature_c = per_gpu_temperature_c
|
|
115
165
|
if per_gpu_util is not None:
|
|
116
166
|
self.per_gpu_util = per_gpu_util
|
|
117
167
|
if phase is not None:
|
|
@@ -167,6 +217,48 @@ class V1PodMetrics(object):
|
|
|
167
217
|
|
|
168
218
|
self._labels = labels
|
|
169
219
|
|
|
220
|
+
@property
|
|
221
|
+
def max_gpu_temp_recorded(self) -> 'int':
|
|
222
|
+
"""Gets the max_gpu_temp_recorded of this V1PodMetrics. # noqa: E501
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
:return: The max_gpu_temp_recorded of this V1PodMetrics. # noqa: E501
|
|
226
|
+
:rtype: int
|
|
227
|
+
"""
|
|
228
|
+
return self._max_gpu_temp_recorded
|
|
229
|
+
|
|
230
|
+
@max_gpu_temp_recorded.setter
|
|
231
|
+
def max_gpu_temp_recorded(self, max_gpu_temp_recorded: 'int'):
|
|
232
|
+
"""Sets the max_gpu_temp_recorded of this V1PodMetrics.
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
:param max_gpu_temp_recorded: The max_gpu_temp_recorded of this V1PodMetrics. # noqa: E501
|
|
236
|
+
:type: int
|
|
237
|
+
"""
|
|
238
|
+
|
|
239
|
+
self._max_gpu_temp_recorded = max_gpu_temp_recorded
|
|
240
|
+
|
|
241
|
+
@property
|
|
242
|
+
def max_power_per_gpu(self) -> 'int':
|
|
243
|
+
"""Gets the max_power_per_gpu of this V1PodMetrics. # noqa: E501
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
:return: The max_power_per_gpu of this V1PodMetrics. # noqa: E501
|
|
247
|
+
:rtype: int
|
|
248
|
+
"""
|
|
249
|
+
return self._max_power_per_gpu
|
|
250
|
+
|
|
251
|
+
@max_power_per_gpu.setter
|
|
252
|
+
def max_power_per_gpu(self, max_power_per_gpu: 'int'):
|
|
253
|
+
"""Sets the max_power_per_gpu of this V1PodMetrics.
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
:param max_power_per_gpu: The max_power_per_gpu of this V1PodMetrics. # noqa: E501
|
|
257
|
+
:type: int
|
|
258
|
+
"""
|
|
259
|
+
|
|
260
|
+
self._max_power_per_gpu = max_power_per_gpu
|
|
261
|
+
|
|
170
262
|
@property
|
|
171
263
|
def mem_usage(self) -> 'float':
|
|
172
264
|
"""Gets the mem_usage of this V1PodMetrics. # noqa: E501
|
|
@@ -231,89 +323,257 @@ class V1PodMetrics(object):
|
|
|
231
323
|
self._node_name = node_name
|
|
232
324
|
|
|
233
325
|
@property
|
|
234
|
-
def num_cpus_limit(self) -> '
|
|
326
|
+
def num_cpus_limit(self) -> 'int':
|
|
235
327
|
"""Gets the num_cpus_limit of this V1PodMetrics. # noqa: E501
|
|
236
328
|
|
|
237
329
|
|
|
238
330
|
:return: The num_cpus_limit of this V1PodMetrics. # noqa: E501
|
|
239
|
-
:rtype:
|
|
331
|
+
:rtype: int
|
|
240
332
|
"""
|
|
241
333
|
return self._num_cpus_limit
|
|
242
334
|
|
|
243
335
|
@num_cpus_limit.setter
|
|
244
|
-
def num_cpus_limit(self, num_cpus_limit: '
|
|
336
|
+
def num_cpus_limit(self, num_cpus_limit: 'int'):
|
|
245
337
|
"""Sets the num_cpus_limit of this V1PodMetrics.
|
|
246
338
|
|
|
247
339
|
|
|
248
340
|
:param num_cpus_limit: The num_cpus_limit of this V1PodMetrics. # noqa: E501
|
|
249
|
-
:type:
|
|
341
|
+
:type: int
|
|
250
342
|
"""
|
|
251
343
|
|
|
252
344
|
self._num_cpus_limit = num_cpus_limit
|
|
253
345
|
|
|
254
346
|
@property
|
|
255
|
-
def num_cpus_request(self) -> '
|
|
347
|
+
def num_cpus_request(self) -> 'int':
|
|
256
348
|
"""Gets the num_cpus_request of this V1PodMetrics. # noqa: E501
|
|
257
349
|
|
|
258
350
|
|
|
259
351
|
:return: The num_cpus_request of this V1PodMetrics. # noqa: E501
|
|
260
|
-
:rtype:
|
|
352
|
+
:rtype: int
|
|
261
353
|
"""
|
|
262
354
|
return self._num_cpus_request
|
|
263
355
|
|
|
264
356
|
@num_cpus_request.setter
|
|
265
|
-
def num_cpus_request(self, num_cpus_request: '
|
|
357
|
+
def num_cpus_request(self, num_cpus_request: 'int'):
|
|
266
358
|
"""Sets the num_cpus_request of this V1PodMetrics.
|
|
267
359
|
|
|
268
360
|
|
|
269
361
|
:param num_cpus_request: The num_cpus_request of this V1PodMetrics. # noqa: E501
|
|
270
|
-
:type:
|
|
362
|
+
:type: int
|
|
271
363
|
"""
|
|
272
364
|
|
|
273
365
|
self._num_cpus_request = num_cpus_request
|
|
274
366
|
|
|
275
367
|
@property
|
|
276
|
-
def num_gpus(self) -> '
|
|
368
|
+
def num_gpus(self) -> 'int':
|
|
277
369
|
"""Gets the num_gpus of this V1PodMetrics. # noqa: E501
|
|
278
370
|
|
|
279
371
|
|
|
280
372
|
:return: The num_gpus of this V1PodMetrics. # noqa: E501
|
|
281
|
-
:rtype:
|
|
373
|
+
:rtype: int
|
|
282
374
|
"""
|
|
283
375
|
return self._num_gpus
|
|
284
376
|
|
|
285
377
|
@num_gpus.setter
|
|
286
|
-
def num_gpus(self, num_gpus: '
|
|
378
|
+
def num_gpus(self, num_gpus: 'int'):
|
|
287
379
|
"""Sets the num_gpus of this V1PodMetrics.
|
|
288
380
|
|
|
289
381
|
|
|
290
382
|
:param num_gpus: The num_gpus of this V1PodMetrics. # noqa: E501
|
|
291
|
-
:type:
|
|
383
|
+
:type: int
|
|
292
384
|
"""
|
|
293
385
|
|
|
294
386
|
self._num_gpus = num_gpus
|
|
295
387
|
|
|
296
388
|
@property
|
|
297
|
-
def
|
|
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)':
|
|
298
474
|
"""Gets the per_gpu_mem_used of this V1PodMetrics. # noqa: E501
|
|
299
475
|
|
|
300
476
|
|
|
301
477
|
:return: The per_gpu_mem_used of this V1PodMetrics. # noqa: E501
|
|
302
|
-
:rtype: dict(str,
|
|
478
|
+
:rtype: dict(str, int)
|
|
303
479
|
"""
|
|
304
480
|
return self._per_gpu_mem_used
|
|
305
481
|
|
|
306
482
|
@per_gpu_mem_used.setter
|
|
307
|
-
def per_gpu_mem_used(self, per_gpu_mem_used: 'dict(str,
|
|
483
|
+
def per_gpu_mem_used(self, per_gpu_mem_used: 'dict(str, int)'):
|
|
308
484
|
"""Sets the per_gpu_mem_used of this V1PodMetrics.
|
|
309
485
|
|
|
310
486
|
|
|
311
487
|
:param per_gpu_mem_used: The per_gpu_mem_used of this V1PodMetrics. # noqa: E501
|
|
312
|
-
:type: dict(str,
|
|
488
|
+
:type: dict(str, int)
|
|
313
489
|
"""
|
|
314
490
|
|
|
315
491
|
self._per_gpu_mem_used = per_gpu_mem_used
|
|
316
492
|
|
|
493
|
+
@property
|
|
494
|
+
def per_gpu_power_usage_watts(self) -> 'dict(str, int)':
|
|
495
|
+
"""Gets the per_gpu_power_usage_watts of this V1PodMetrics. # noqa: E501
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
:return: The per_gpu_power_usage_watts of this V1PodMetrics. # noqa: E501
|
|
499
|
+
:rtype: dict(str, int)
|
|
500
|
+
"""
|
|
501
|
+
return self._per_gpu_power_usage_watts
|
|
502
|
+
|
|
503
|
+
@per_gpu_power_usage_watts.setter
|
|
504
|
+
def per_gpu_power_usage_watts(self, per_gpu_power_usage_watts: 'dict(str, int)'):
|
|
505
|
+
"""Sets the per_gpu_power_usage_watts of this V1PodMetrics.
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
:param per_gpu_power_usage_watts: The per_gpu_power_usage_watts of this V1PodMetrics. # noqa: E501
|
|
509
|
+
:type: dict(str, int)
|
|
510
|
+
"""
|
|
511
|
+
|
|
512
|
+
self._per_gpu_power_usage_watts = per_gpu_power_usage_watts
|
|
513
|
+
|
|
514
|
+
@property
|
|
515
|
+
def per_gpu_sm_active(self) -> 'dict(str, float)':
|
|
516
|
+
"""Gets the per_gpu_sm_active of this V1PodMetrics. # noqa: E501
|
|
517
|
+
|
|
518
|
+
|
|
519
|
+
:return: The per_gpu_sm_active of this V1PodMetrics. # noqa: E501
|
|
520
|
+
:rtype: dict(str, float)
|
|
521
|
+
"""
|
|
522
|
+
return self._per_gpu_sm_active
|
|
523
|
+
|
|
524
|
+
@per_gpu_sm_active.setter
|
|
525
|
+
def per_gpu_sm_active(self, per_gpu_sm_active: 'dict(str, float)'):
|
|
526
|
+
"""Sets the per_gpu_sm_active of this V1PodMetrics.
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
:param per_gpu_sm_active: The per_gpu_sm_active of this V1PodMetrics. # noqa: E501
|
|
530
|
+
:type: dict(str, float)
|
|
531
|
+
"""
|
|
532
|
+
|
|
533
|
+
self._per_gpu_sm_active = per_gpu_sm_active
|
|
534
|
+
|
|
535
|
+
@property
|
|
536
|
+
def per_gpu_sm_occupancy(self) -> 'dict(str, float)':
|
|
537
|
+
"""Gets the per_gpu_sm_occupancy of this V1PodMetrics. # noqa: E501
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
:return: The per_gpu_sm_occupancy of this V1PodMetrics. # noqa: E501
|
|
541
|
+
:rtype: dict(str, float)
|
|
542
|
+
"""
|
|
543
|
+
return self._per_gpu_sm_occupancy
|
|
544
|
+
|
|
545
|
+
@per_gpu_sm_occupancy.setter
|
|
546
|
+
def per_gpu_sm_occupancy(self, per_gpu_sm_occupancy: 'dict(str, float)'):
|
|
547
|
+
"""Sets the per_gpu_sm_occupancy of this V1PodMetrics.
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
:param per_gpu_sm_occupancy: The per_gpu_sm_occupancy of this V1PodMetrics. # noqa: E501
|
|
551
|
+
:type: dict(str, float)
|
|
552
|
+
"""
|
|
553
|
+
|
|
554
|
+
self._per_gpu_sm_occupancy = per_gpu_sm_occupancy
|
|
555
|
+
|
|
556
|
+
@property
|
|
557
|
+
def per_gpu_temperature_c(self) -> 'dict(str, int)':
|
|
558
|
+
"""Gets the per_gpu_temperature_c of this V1PodMetrics. # noqa: E501
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
:return: The per_gpu_temperature_c of this V1PodMetrics. # noqa: E501
|
|
562
|
+
:rtype: dict(str, int)
|
|
563
|
+
"""
|
|
564
|
+
return self._per_gpu_temperature_c
|
|
565
|
+
|
|
566
|
+
@per_gpu_temperature_c.setter
|
|
567
|
+
def per_gpu_temperature_c(self, per_gpu_temperature_c: 'dict(str, int)'):
|
|
568
|
+
"""Sets the per_gpu_temperature_c of this V1PodMetrics.
|
|
569
|
+
|
|
570
|
+
|
|
571
|
+
:param per_gpu_temperature_c: The per_gpu_temperature_c of this V1PodMetrics. # noqa: E501
|
|
572
|
+
:type: dict(str, int)
|
|
573
|
+
"""
|
|
574
|
+
|
|
575
|
+
self._per_gpu_temperature_c = per_gpu_temperature_c
|
|
576
|
+
|
|
317
577
|
@property
|
|
318
578
|
def per_gpu_util(self) -> 'dict(str, float)':
|
|
319
579
|
"""Gets the per_gpu_util of this V1PodMetrics. # noqa: E501
|
|
@@ -48,6 +48,7 @@ class V1ProjectClusterBinding(object):
|
|
|
48
48
|
'is_cluster_healthy': 'bool',
|
|
49
49
|
'project_id': 'str',
|
|
50
50
|
'sa_key': 'str',
|
|
51
|
+
'sa_key_created_at': 'datetime',
|
|
51
52
|
'updated_at': 'datetime'
|
|
52
53
|
}
|
|
53
54
|
|
|
@@ -59,10 +60,11 @@ class V1ProjectClusterBinding(object):
|
|
|
59
60
|
'is_cluster_healthy': 'isClusterHealthy',
|
|
60
61
|
'project_id': 'projectId',
|
|
61
62
|
'sa_key': 'saKey',
|
|
63
|
+
'sa_key_created_at': 'saKeyCreatedAt',
|
|
62
64
|
'updated_at': 'updatedAt'
|
|
63
65
|
}
|
|
64
66
|
|
|
65
|
-
def __init__(self, cluster_id: 'str' =None, cluster_name: 'str' =None, cluster_region: 'str' =None, created_at: 'datetime' =None, is_cluster_healthy: 'bool' =None, project_id: 'str' =None, sa_key: 'str' =None, updated_at: 'datetime' =None): # noqa: E501
|
|
67
|
+
def __init__(self, cluster_id: 'str' =None, cluster_name: 'str' =None, cluster_region: 'str' =None, created_at: 'datetime' =None, is_cluster_healthy: 'bool' =None, project_id: 'str' =None, sa_key: 'str' =None, sa_key_created_at: 'datetime' =None, updated_at: 'datetime' =None): # noqa: E501
|
|
66
68
|
"""V1ProjectClusterBinding - a model defined in Swagger""" # noqa: E501
|
|
67
69
|
self._cluster_id = None
|
|
68
70
|
self._cluster_name = None
|
|
@@ -71,6 +73,7 @@ class V1ProjectClusterBinding(object):
|
|
|
71
73
|
self._is_cluster_healthy = None
|
|
72
74
|
self._project_id = None
|
|
73
75
|
self._sa_key = None
|
|
76
|
+
self._sa_key_created_at = None
|
|
74
77
|
self._updated_at = None
|
|
75
78
|
self.discriminator = None
|
|
76
79
|
if cluster_id is not None:
|
|
@@ -87,6 +90,8 @@ class V1ProjectClusterBinding(object):
|
|
|
87
90
|
self.project_id = project_id
|
|
88
91
|
if sa_key is not None:
|
|
89
92
|
self.sa_key = sa_key
|
|
93
|
+
if sa_key_created_at is not None:
|
|
94
|
+
self.sa_key_created_at = sa_key_created_at
|
|
90
95
|
if updated_at is not None:
|
|
91
96
|
self.updated_at = updated_at
|
|
92
97
|
|
|
@@ -237,6 +242,27 @@ class V1ProjectClusterBinding(object):
|
|
|
237
242
|
|
|
238
243
|
self._sa_key = sa_key
|
|
239
244
|
|
|
245
|
+
@property
|
|
246
|
+
def sa_key_created_at(self) -> 'datetime':
|
|
247
|
+
"""Gets the sa_key_created_at of this V1ProjectClusterBinding. # noqa: E501
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
:return: The sa_key_created_at of this V1ProjectClusterBinding. # noqa: E501
|
|
251
|
+
:rtype: datetime
|
|
252
|
+
"""
|
|
253
|
+
return self._sa_key_created_at
|
|
254
|
+
|
|
255
|
+
@sa_key_created_at.setter
|
|
256
|
+
def sa_key_created_at(self, sa_key_created_at: 'datetime'):
|
|
257
|
+
"""Sets the sa_key_created_at of this V1ProjectClusterBinding.
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
:param sa_key_created_at: The sa_key_created_at of this V1ProjectClusterBinding. # noqa: E501
|
|
261
|
+
:type: datetime
|
|
262
|
+
"""
|
|
263
|
+
|
|
264
|
+
self._sa_key_created_at = sa_key_created_at
|
|
265
|
+
|
|
240
266
|
@property
|
|
241
267
|
def updated_at(self) -> 'datetime':
|
|
242
268
|
"""Gets the updated_at of this V1ProjectClusterBinding. # noqa: E501
|
|
@@ -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
|