lightning-sdk 2025.8.28__py3-none-any.whl → 2025.9.4__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/teamspace_api.py +2 -0
- lightning_sdk/lightning_cloud/openapi/__init__.py +16 -0
- lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +388 -0
- lightning_sdk/lightning_cloud/openapi/api/auth_service_api.py +97 -0
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +202 -0
- lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +101 -0
- lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +16 -0
- lightning_sdk/lightning_cloud/openapi/models/cluster_id_metrics_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/models_model_id_body.py +109 -31
- lightning_sdk/lightning_cloud/openapi/models/models_model_id_body1.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_aggregated_pod_metrics.py +799 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cancel_running_cloud_space_instance_transfer_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_transfer_metadata.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cloudflare_v1.py +3 -29
- lightning_sdk/lightning_cloud/openapi/models/v1_create_model_metrics_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_daily_model_metrics.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_filestore_data_connection.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_required_balance_status_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_latest_model_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_model_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_model_total_usage_metrics_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_temp_bucket_credentials_response.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_group_node_metrics.py +1215 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_guest_login_request.py +177 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_guest_login_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_guest_user.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_list_aggregated_pod_metrics_response.py +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_model_metrics.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +81 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_required_balance_reason.py +107 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +53 -27
- lightning_sdk/lightning_cloud/openapi/models/v1_voltage_park_direct_v1.py +29 -3
- {lightning_sdk-2025.8.28.dist-info → lightning_sdk-2025.9.4.dist-info}/METADATA +1 -1
- {lightning_sdk-2025.8.28.dist-info → lightning_sdk-2025.9.4.dist-info}/RECORD +45 -29
- {lightning_sdk-2025.8.28.dist-info → lightning_sdk-2025.9.4.dist-info}/LICENSE +0 -0
- {lightning_sdk-2025.8.28.dist-info → lightning_sdk-2025.9.4.dist-info}/WHEEL +0 -0
- {lightning_sdk-2025.8.28.dist-info → lightning_sdk-2025.9.4.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-2025.8.28.dist-info → lightning_sdk-2025.9.4.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,175 @@
|
|
|
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 V1ModelMetrics(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
|
+
'latency': 'float',
|
|
45
|
+
'model_id': 'str',
|
|
46
|
+
'throughput': 'float'
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
attribute_map = {
|
|
50
|
+
'latency': 'latency',
|
|
51
|
+
'model_id': 'modelId',
|
|
52
|
+
'throughput': 'throughput'
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
def __init__(self, latency: 'float' =None, model_id: 'str' =None, throughput: 'float' =None): # noqa: E501
|
|
56
|
+
"""V1ModelMetrics - a model defined in Swagger""" # noqa: E501
|
|
57
|
+
self._latency = None
|
|
58
|
+
self._model_id = None
|
|
59
|
+
self._throughput = None
|
|
60
|
+
self.discriminator = None
|
|
61
|
+
if latency is not None:
|
|
62
|
+
self.latency = latency
|
|
63
|
+
if model_id is not None:
|
|
64
|
+
self.model_id = model_id
|
|
65
|
+
if throughput is not None:
|
|
66
|
+
self.throughput = throughput
|
|
67
|
+
|
|
68
|
+
@property
|
|
69
|
+
def latency(self) -> 'float':
|
|
70
|
+
"""Gets the latency of this V1ModelMetrics. # noqa: E501
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
:return: The latency of this V1ModelMetrics. # noqa: E501
|
|
74
|
+
:rtype: float
|
|
75
|
+
"""
|
|
76
|
+
return self._latency
|
|
77
|
+
|
|
78
|
+
@latency.setter
|
|
79
|
+
def latency(self, latency: 'float'):
|
|
80
|
+
"""Sets the latency of this V1ModelMetrics.
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
:param latency: The latency of this V1ModelMetrics. # noqa: E501
|
|
84
|
+
:type: float
|
|
85
|
+
"""
|
|
86
|
+
|
|
87
|
+
self._latency = latency
|
|
88
|
+
|
|
89
|
+
@property
|
|
90
|
+
def model_id(self) -> 'str':
|
|
91
|
+
"""Gets the model_id of this V1ModelMetrics. # noqa: E501
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
:return: The model_id of this V1ModelMetrics. # noqa: E501
|
|
95
|
+
:rtype: str
|
|
96
|
+
"""
|
|
97
|
+
return self._model_id
|
|
98
|
+
|
|
99
|
+
@model_id.setter
|
|
100
|
+
def model_id(self, model_id: 'str'):
|
|
101
|
+
"""Sets the model_id of this V1ModelMetrics.
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
:param model_id: The model_id of this V1ModelMetrics. # noqa: E501
|
|
105
|
+
:type: str
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
self._model_id = model_id
|
|
109
|
+
|
|
110
|
+
@property
|
|
111
|
+
def throughput(self) -> 'float':
|
|
112
|
+
"""Gets the throughput of this V1ModelMetrics. # noqa: E501
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
:return: The throughput of this V1ModelMetrics. # noqa: E501
|
|
116
|
+
:rtype: float
|
|
117
|
+
"""
|
|
118
|
+
return self._throughput
|
|
119
|
+
|
|
120
|
+
@throughput.setter
|
|
121
|
+
def throughput(self, throughput: 'float'):
|
|
122
|
+
"""Sets the throughput of this V1ModelMetrics.
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
:param throughput: The throughput of this V1ModelMetrics. # noqa: E501
|
|
126
|
+
:type: float
|
|
127
|
+
"""
|
|
128
|
+
|
|
129
|
+
self._throughput = throughput
|
|
130
|
+
|
|
131
|
+
def to_dict(self) -> dict:
|
|
132
|
+
"""Returns the model properties as a dict"""
|
|
133
|
+
result = {}
|
|
134
|
+
|
|
135
|
+
for attr, _ in six.iteritems(self.swagger_types):
|
|
136
|
+
value = getattr(self, attr)
|
|
137
|
+
if isinstance(value, list):
|
|
138
|
+
result[attr] = list(map(
|
|
139
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
|
140
|
+
value
|
|
141
|
+
))
|
|
142
|
+
elif hasattr(value, "to_dict"):
|
|
143
|
+
result[attr] = value.to_dict()
|
|
144
|
+
elif isinstance(value, dict):
|
|
145
|
+
result[attr] = dict(map(
|
|
146
|
+
lambda item: (item[0], item[1].to_dict())
|
|
147
|
+
if hasattr(item[1], "to_dict") else item,
|
|
148
|
+
value.items()
|
|
149
|
+
))
|
|
150
|
+
else:
|
|
151
|
+
result[attr] = value
|
|
152
|
+
if issubclass(V1ModelMetrics, dict):
|
|
153
|
+
for key, value in self.items():
|
|
154
|
+
result[key] = value
|
|
155
|
+
|
|
156
|
+
return result
|
|
157
|
+
|
|
158
|
+
def to_str(self) -> str:
|
|
159
|
+
"""Returns the string representation of the model"""
|
|
160
|
+
return pprint.pformat(self.to_dict())
|
|
161
|
+
|
|
162
|
+
def __repr__(self) -> str:
|
|
163
|
+
"""For `print` and `pprint`"""
|
|
164
|
+
return self.to_str()
|
|
165
|
+
|
|
166
|
+
def __eq__(self, other: 'V1ModelMetrics') -> bool:
|
|
167
|
+
"""Returns true if both objects are equal"""
|
|
168
|
+
if not isinstance(other, V1ModelMetrics):
|
|
169
|
+
return False
|
|
170
|
+
|
|
171
|
+
return self.__dict__ == other.__dict__
|
|
172
|
+
|
|
173
|
+
def __ne__(self, other: 'V1ModelMetrics') -> bool:
|
|
174
|
+
"""Returns true if both objects are not equal"""
|
|
175
|
+
return not self == other
|
|
@@ -42,23 +42,28 @@ class V1NebiusDirectV1(object):
|
|
|
42
42
|
"""
|
|
43
43
|
swagger_types = {
|
|
44
44
|
'primary_region': 'str',
|
|
45
|
-
'regions': 'list[str]'
|
|
45
|
+
'regions': 'list[str]',
|
|
46
|
+
'subnet_cidr_ranges': 'list[str]'
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
attribute_map = {
|
|
49
50
|
'primary_region': 'primaryRegion',
|
|
50
|
-
'regions': 'regions'
|
|
51
|
+
'regions': 'regions',
|
|
52
|
+
'subnet_cidr_ranges': 'subnetCidrRanges'
|
|
51
53
|
}
|
|
52
54
|
|
|
53
|
-
def __init__(self, primary_region: 'str' =None, regions: 'list[str]' =None): # noqa: E501
|
|
55
|
+
def __init__(self, primary_region: 'str' =None, regions: 'list[str]' =None, subnet_cidr_ranges: 'list[str]' =None): # noqa: E501
|
|
54
56
|
"""V1NebiusDirectV1 - a model defined in Swagger""" # noqa: E501
|
|
55
57
|
self._primary_region = None
|
|
56
58
|
self._regions = None
|
|
59
|
+
self._subnet_cidr_ranges = None
|
|
57
60
|
self.discriminator = None
|
|
58
61
|
if primary_region is not None:
|
|
59
62
|
self.primary_region = primary_region
|
|
60
63
|
if regions is not None:
|
|
61
64
|
self.regions = regions
|
|
65
|
+
if subnet_cidr_ranges is not None:
|
|
66
|
+
self.subnet_cidr_ranges = subnet_cidr_ranges
|
|
62
67
|
|
|
63
68
|
@property
|
|
64
69
|
def primary_region(self) -> 'str':
|
|
@@ -102,6 +107,27 @@ class V1NebiusDirectV1(object):
|
|
|
102
107
|
|
|
103
108
|
self._regions = regions
|
|
104
109
|
|
|
110
|
+
@property
|
|
111
|
+
def subnet_cidr_ranges(self) -> 'list[str]':
|
|
112
|
+
"""Gets the subnet_cidr_ranges of this V1NebiusDirectV1. # noqa: E501
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
:return: The subnet_cidr_ranges of this V1NebiusDirectV1. # noqa: E501
|
|
116
|
+
:rtype: list[str]
|
|
117
|
+
"""
|
|
118
|
+
return self._subnet_cidr_ranges
|
|
119
|
+
|
|
120
|
+
@subnet_cidr_ranges.setter
|
|
121
|
+
def subnet_cidr_ranges(self, subnet_cidr_ranges: 'list[str]'):
|
|
122
|
+
"""Sets the subnet_cidr_ranges of this V1NebiusDirectV1.
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
:param subnet_cidr_ranges: The subnet_cidr_ranges of this V1NebiusDirectV1. # noqa: E501
|
|
126
|
+
:type: list[str]
|
|
127
|
+
"""
|
|
128
|
+
|
|
129
|
+
self._subnet_cidr_ranges = subnet_cidr_ranges
|
|
130
|
+
|
|
105
131
|
def to_dict(self) -> dict:
|
|
106
132
|
"""Returns the model properties as a dict"""
|
|
107
133
|
result = {}
|
|
@@ -49,10 +49,12 @@ class V1NodeMetrics(object):
|
|
|
49
49
|
'mem_total': 'str',
|
|
50
50
|
'mem_util': 'float',
|
|
51
51
|
'node_name': 'str',
|
|
52
|
+
'num_unschedulable_gpus': 'int',
|
|
52
53
|
'nvlink_rx_gib': 'dict(str, float)',
|
|
53
54
|
'nvlink_tx_gib': 'dict(str, float)',
|
|
54
55
|
'pcie_rx_gib': 'dict(str, float)',
|
|
55
56
|
'pcie_tx_gib': 'dict(str, float)',
|
|
57
|
+
'per_gpu_errors': 'dict(str, int)',
|
|
56
58
|
'per_gpu_mem_free': 'dict(str, int)',
|
|
57
59
|
'per_gpu_mem_used': 'dict(str, int)',
|
|
58
60
|
'per_gpu_power_usage_watts': 'dict(str, int)',
|
|
@@ -60,7 +62,8 @@ class V1NodeMetrics(object):
|
|
|
60
62
|
'per_gpu_sm_occupancy': 'dict(str, float)',
|
|
61
63
|
'per_gpu_temperature_c': 'dict(str, int)',
|
|
62
64
|
'per_gpu_util': 'dict(str, float)',
|
|
63
|
-
'timestamp': 'datetime'
|
|
65
|
+
'timestamp': 'datetime',
|
|
66
|
+
'unschedulable': 'bool'
|
|
64
67
|
}
|
|
65
68
|
|
|
66
69
|
attribute_map = {
|
|
@@ -72,10 +75,12 @@ class V1NodeMetrics(object):
|
|
|
72
75
|
'mem_total': 'memTotal',
|
|
73
76
|
'mem_util': 'memUtil',
|
|
74
77
|
'node_name': 'nodeName',
|
|
78
|
+
'num_unschedulable_gpus': 'numUnschedulableGpus',
|
|
75
79
|
'nvlink_rx_gib': 'nvlinkRxGib',
|
|
76
80
|
'nvlink_tx_gib': 'nvlinkTxGib',
|
|
77
81
|
'pcie_rx_gib': 'pcieRxGib',
|
|
78
82
|
'pcie_tx_gib': 'pcieTxGib',
|
|
83
|
+
'per_gpu_errors': 'perGpuErrors',
|
|
79
84
|
'per_gpu_mem_free': 'perGpuMemFree',
|
|
80
85
|
'per_gpu_mem_used': 'perGpuMemUsed',
|
|
81
86
|
'per_gpu_power_usage_watts': 'perGpuPowerUsageWatts',
|
|
@@ -83,10 +88,11 @@ class V1NodeMetrics(object):
|
|
|
83
88
|
'per_gpu_sm_occupancy': 'perGpuSmOccupancy',
|
|
84
89
|
'per_gpu_temperature_c': 'perGpuTemperatureC',
|
|
85
90
|
'per_gpu_util': 'perGpuUtil',
|
|
86
|
-
'timestamp': 'timestamp'
|
|
91
|
+
'timestamp': 'timestamp',
|
|
92
|
+
'unschedulable': 'unschedulable'
|
|
87
93
|
}
|
|
88
94
|
|
|
89
|
-
def __init__(self, cpu_capacity_cores: 'float' =None, cpu_util: 'float' =None, filesystem: 'dict(str, V1FilesystemMetrics)' =None, max_gpu_temp_recorded: 'float' =None, max_power_per_gpu: 'float' =None, mem_total: 'str' =None, mem_util: 'float' =None, node_name: 'str' =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_free: 'dict(str, int)' =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, timestamp: 'datetime' =None): # noqa: E501
|
|
95
|
+
def __init__(self, cpu_capacity_cores: 'float' =None, cpu_util: 'float' =None, filesystem: 'dict(str, V1FilesystemMetrics)' =None, max_gpu_temp_recorded: 'float' =None, max_power_per_gpu: 'float' =None, mem_total: 'str' =None, mem_util: 'float' =None, node_name: 'str' =None, num_unschedulable_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_errors: 'dict(str, int)' =None, per_gpu_mem_free: 'dict(str, int)' =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, timestamp: 'datetime' =None, unschedulable: 'bool' =None): # noqa: E501
|
|
90
96
|
"""V1NodeMetrics - a model defined in Swagger""" # noqa: E501
|
|
91
97
|
self._cpu_capacity_cores = None
|
|
92
98
|
self._cpu_util = None
|
|
@@ -96,10 +102,12 @@ class V1NodeMetrics(object):
|
|
|
96
102
|
self._mem_total = None
|
|
97
103
|
self._mem_util = None
|
|
98
104
|
self._node_name = None
|
|
105
|
+
self._num_unschedulable_gpus = None
|
|
99
106
|
self._nvlink_rx_gib = None
|
|
100
107
|
self._nvlink_tx_gib = None
|
|
101
108
|
self._pcie_rx_gib = None
|
|
102
109
|
self._pcie_tx_gib = None
|
|
110
|
+
self._per_gpu_errors = None
|
|
103
111
|
self._per_gpu_mem_free = None
|
|
104
112
|
self._per_gpu_mem_used = None
|
|
105
113
|
self._per_gpu_power_usage_watts = None
|
|
@@ -108,6 +116,7 @@ class V1NodeMetrics(object):
|
|
|
108
116
|
self._per_gpu_temperature_c = None
|
|
109
117
|
self._per_gpu_util = None
|
|
110
118
|
self._timestamp = None
|
|
119
|
+
self._unschedulable = None
|
|
111
120
|
self.discriminator = None
|
|
112
121
|
if cpu_capacity_cores is not None:
|
|
113
122
|
self.cpu_capacity_cores = cpu_capacity_cores
|
|
@@ -125,6 +134,8 @@ class V1NodeMetrics(object):
|
|
|
125
134
|
self.mem_util = mem_util
|
|
126
135
|
if node_name is not None:
|
|
127
136
|
self.node_name = node_name
|
|
137
|
+
if num_unschedulable_gpus is not None:
|
|
138
|
+
self.num_unschedulable_gpus = num_unschedulable_gpus
|
|
128
139
|
if nvlink_rx_gib is not None:
|
|
129
140
|
self.nvlink_rx_gib = nvlink_rx_gib
|
|
130
141
|
if nvlink_tx_gib is not None:
|
|
@@ -133,6 +144,8 @@ class V1NodeMetrics(object):
|
|
|
133
144
|
self.pcie_rx_gib = pcie_rx_gib
|
|
134
145
|
if pcie_tx_gib is not None:
|
|
135
146
|
self.pcie_tx_gib = pcie_tx_gib
|
|
147
|
+
if per_gpu_errors is not None:
|
|
148
|
+
self.per_gpu_errors = per_gpu_errors
|
|
136
149
|
if per_gpu_mem_free is not None:
|
|
137
150
|
self.per_gpu_mem_free = per_gpu_mem_free
|
|
138
151
|
if per_gpu_mem_used is not None:
|
|
@@ -149,6 +162,8 @@ class V1NodeMetrics(object):
|
|
|
149
162
|
self.per_gpu_util = per_gpu_util
|
|
150
163
|
if timestamp is not None:
|
|
151
164
|
self.timestamp = timestamp
|
|
165
|
+
if unschedulable is not None:
|
|
166
|
+
self.unschedulable = unschedulable
|
|
152
167
|
|
|
153
168
|
@property
|
|
154
169
|
def cpu_capacity_cores(self) -> 'float':
|
|
@@ -318,6 +333,27 @@ class V1NodeMetrics(object):
|
|
|
318
333
|
|
|
319
334
|
self._node_name = node_name
|
|
320
335
|
|
|
336
|
+
@property
|
|
337
|
+
def num_unschedulable_gpus(self) -> 'int':
|
|
338
|
+
"""Gets the num_unschedulable_gpus of this V1NodeMetrics. # noqa: E501
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
:return: The num_unschedulable_gpus of this V1NodeMetrics. # noqa: E501
|
|
342
|
+
:rtype: int
|
|
343
|
+
"""
|
|
344
|
+
return self._num_unschedulable_gpus
|
|
345
|
+
|
|
346
|
+
@num_unschedulable_gpus.setter
|
|
347
|
+
def num_unschedulable_gpus(self, num_unschedulable_gpus: 'int'):
|
|
348
|
+
"""Sets the num_unschedulable_gpus of this V1NodeMetrics.
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
:param num_unschedulable_gpus: The num_unschedulable_gpus of this V1NodeMetrics. # noqa: E501
|
|
352
|
+
:type: int
|
|
353
|
+
"""
|
|
354
|
+
|
|
355
|
+
self._num_unschedulable_gpus = num_unschedulable_gpus
|
|
356
|
+
|
|
321
357
|
@property
|
|
322
358
|
def nvlink_rx_gib(self) -> 'dict(str, float)':
|
|
323
359
|
"""Gets the nvlink_rx_gib of this V1NodeMetrics. # noqa: E501
|
|
@@ -402,6 +438,27 @@ class V1NodeMetrics(object):
|
|
|
402
438
|
|
|
403
439
|
self._pcie_tx_gib = pcie_tx_gib
|
|
404
440
|
|
|
441
|
+
@property
|
|
442
|
+
def per_gpu_errors(self) -> 'dict(str, int)':
|
|
443
|
+
"""Gets the per_gpu_errors of this V1NodeMetrics. # noqa: E501
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
:return: The per_gpu_errors of this V1NodeMetrics. # noqa: E501
|
|
447
|
+
:rtype: dict(str, int)
|
|
448
|
+
"""
|
|
449
|
+
return self._per_gpu_errors
|
|
450
|
+
|
|
451
|
+
@per_gpu_errors.setter
|
|
452
|
+
def per_gpu_errors(self, per_gpu_errors: 'dict(str, int)'):
|
|
453
|
+
"""Sets the per_gpu_errors of this V1NodeMetrics.
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
:param per_gpu_errors: The per_gpu_errors of this V1NodeMetrics. # noqa: E501
|
|
457
|
+
:type: dict(str, int)
|
|
458
|
+
"""
|
|
459
|
+
|
|
460
|
+
self._per_gpu_errors = per_gpu_errors
|
|
461
|
+
|
|
405
462
|
@property
|
|
406
463
|
def per_gpu_mem_free(self) -> 'dict(str, int)':
|
|
407
464
|
"""Gets the per_gpu_mem_free of this V1NodeMetrics. # noqa: E501
|
|
@@ -570,6 +627,27 @@ class V1NodeMetrics(object):
|
|
|
570
627
|
|
|
571
628
|
self._timestamp = timestamp
|
|
572
629
|
|
|
630
|
+
@property
|
|
631
|
+
def unschedulable(self) -> 'bool':
|
|
632
|
+
"""Gets the unschedulable of this V1NodeMetrics. # noqa: E501
|
|
633
|
+
|
|
634
|
+
|
|
635
|
+
:return: The unschedulable of this V1NodeMetrics. # noqa: E501
|
|
636
|
+
:rtype: bool
|
|
637
|
+
"""
|
|
638
|
+
return self._unschedulable
|
|
639
|
+
|
|
640
|
+
@unschedulable.setter
|
|
641
|
+
def unschedulable(self, unschedulable: 'bool'):
|
|
642
|
+
"""Sets the unschedulable of this V1NodeMetrics.
|
|
643
|
+
|
|
644
|
+
|
|
645
|
+
:param unschedulable: The unschedulable of this V1NodeMetrics. # noqa: E501
|
|
646
|
+
:type: bool
|
|
647
|
+
"""
|
|
648
|
+
|
|
649
|
+
self._unschedulable = unschedulable
|
|
650
|
+
|
|
573
651
|
def to_dict(self) -> dict:
|
|
574
652
|
"""Returns the model properties as a dict"""
|
|
575
653
|
result = {}
|
|
@@ -43,6 +43,7 @@ class V1Organization(object):
|
|
|
43
43
|
swagger_types = {
|
|
44
44
|
'alerts_config': 'V1AlertsConfig',
|
|
45
45
|
'allow_budgeting': 'bool',
|
|
46
|
+
'allow_cloud_space_publish': 'bool',
|
|
46
47
|
'allow_credits_auto_replenish': 'bool',
|
|
47
48
|
'allow_external_project_duplication': 'bool',
|
|
48
49
|
'allow_guest': 'bool',
|
|
@@ -97,6 +98,7 @@ class V1Organization(object):
|
|
|
97
98
|
attribute_map = {
|
|
98
99
|
'alerts_config': 'alertsConfig',
|
|
99
100
|
'allow_budgeting': 'allowBudgeting',
|
|
101
|
+
'allow_cloud_space_publish': 'allowCloudSpacePublish',
|
|
100
102
|
'allow_credits_auto_replenish': 'allowCreditsAutoReplenish',
|
|
101
103
|
'allow_external_project_duplication': 'allowExternalProjectDuplication',
|
|
102
104
|
'allow_guest': 'allowGuest',
|
|
@@ -148,10 +150,11 @@ class V1Organization(object):
|
|
|
148
150
|
'workload_max_run_duration': 'workloadMaxRunDuration'
|
|
149
151
|
}
|
|
150
152
|
|
|
151
|
-
def __init__(self, alerts_config: 'V1AlertsConfig' =None, allow_budgeting: 'bool' =None, allow_credits_auto_replenish: 'bool' =None, allow_external_project_duplication: 'bool' =None, allow_guest: 'bool' =None, allow_marketplace: 'bool' =None, allow_member_invitations: 'bool' =None, allow_member_teamspace_creation: 'bool' =None, auto_invite_by_domain: 'bool' =None, auto_join_domain_validations: 'dict(str, V1AutoJoinDomainValidation)' =None, auto_join_domains: 'list[str]' =None, auto_replenish_amount: 'float' =None, auto_replenish_threshold: 'float' =None, auto_switch_machine: 'bool' =None, created_at: 'datetime' =None, default_machine_image_version: 'str' =None, default_machine_type: 'str' =None, default_project_id: 'str' =None, description: 'str' =None, disallow_aws_saas: 'bool' =None, disallow_dgx_saas: 'bool' =None, disallow_gcp_saas: 'bool' =None, disallow_lambda_saas: 'bool' =None, disallow_lightning_saas: 'bool' =None, disallow_nebius_saas: 'bool' =None, disallow_voltage_park_saas: 'bool' =None, disallow_vultr_saas: 'bool' =None, display_name: 'str' =None, domain: 'str' =None, email: 'str' =None, featured_gallery: 'bool' =None, full_story_end_date: 'datetime' =None, full_story_start_date: 'datetime' =None, general_teamspace: 'bool' =None, id: 'str' =None, last_storage_overuse_notification_sent_at: 'datetime' =None, location: 'str' =None, name: 'str' =None, preferred_cluster: 'str' =None, preferred_deployment_provider: 'str' =None, preferred_studio_provider: 'str' =None, show_model_apis_tab: 'bool' =None, start_studios_on_spot_instance: 'bool' =None, storage_overuse_bytes: 'str' =None, storage_overuse_deletion_at: 'datetime' =None, storage_overuse_notification_count: 'int' =None, switch_to_default_machine_on_idle: 'bool' =None, teamspace_default_credits: 'float' =None, twitter_username: 'str' =None, updated_at: 'datetime' =None, workload_max_run_duration: 'str' =None): # noqa: E501
|
|
153
|
+
def __init__(self, alerts_config: 'V1AlertsConfig' =None, allow_budgeting: 'bool' =None, allow_cloud_space_publish: 'bool' =None, allow_credits_auto_replenish: 'bool' =None, allow_external_project_duplication: 'bool' =None, allow_guest: 'bool' =None, allow_marketplace: 'bool' =None, allow_member_invitations: 'bool' =None, allow_member_teamspace_creation: 'bool' =None, auto_invite_by_domain: 'bool' =None, auto_join_domain_validations: 'dict(str, V1AutoJoinDomainValidation)' =None, auto_join_domains: 'list[str]' =None, auto_replenish_amount: 'float' =None, auto_replenish_threshold: 'float' =None, auto_switch_machine: 'bool' =None, created_at: 'datetime' =None, default_machine_image_version: 'str' =None, default_machine_type: 'str' =None, default_project_id: 'str' =None, description: 'str' =None, disallow_aws_saas: 'bool' =None, disallow_dgx_saas: 'bool' =None, disallow_gcp_saas: 'bool' =None, disallow_lambda_saas: 'bool' =None, disallow_lightning_saas: 'bool' =None, disallow_nebius_saas: 'bool' =None, disallow_voltage_park_saas: 'bool' =None, disallow_vultr_saas: 'bool' =None, display_name: 'str' =None, domain: 'str' =None, email: 'str' =None, featured_gallery: 'bool' =None, full_story_end_date: 'datetime' =None, full_story_start_date: 'datetime' =None, general_teamspace: 'bool' =None, id: 'str' =None, last_storage_overuse_notification_sent_at: 'datetime' =None, location: 'str' =None, name: 'str' =None, preferred_cluster: 'str' =None, preferred_deployment_provider: 'str' =None, preferred_studio_provider: 'str' =None, show_model_apis_tab: 'bool' =None, start_studios_on_spot_instance: 'bool' =None, storage_overuse_bytes: 'str' =None, storage_overuse_deletion_at: 'datetime' =None, storage_overuse_notification_count: 'int' =None, switch_to_default_machine_on_idle: 'bool' =None, teamspace_default_credits: 'float' =None, twitter_username: 'str' =None, updated_at: 'datetime' =None, workload_max_run_duration: 'str' =None): # noqa: E501
|
|
152
154
|
"""V1Organization - a model defined in Swagger""" # noqa: E501
|
|
153
155
|
self._alerts_config = None
|
|
154
156
|
self._allow_budgeting = None
|
|
157
|
+
self._allow_cloud_space_publish = None
|
|
155
158
|
self._allow_credits_auto_replenish = None
|
|
156
159
|
self._allow_external_project_duplication = None
|
|
157
160
|
self._allow_guest = None
|
|
@@ -206,6 +209,8 @@ class V1Organization(object):
|
|
|
206
209
|
self.alerts_config = alerts_config
|
|
207
210
|
if allow_budgeting is not None:
|
|
208
211
|
self.allow_budgeting = allow_budgeting
|
|
212
|
+
if allow_cloud_space_publish is not None:
|
|
213
|
+
self.allow_cloud_space_publish = allow_cloud_space_publish
|
|
209
214
|
if allow_credits_auto_replenish is not None:
|
|
210
215
|
self.allow_credits_auto_replenish = allow_credits_auto_replenish
|
|
211
216
|
if allow_external_project_duplication is not None:
|
|
@@ -347,6 +352,27 @@ class V1Organization(object):
|
|
|
347
352
|
|
|
348
353
|
self._allow_budgeting = allow_budgeting
|
|
349
354
|
|
|
355
|
+
@property
|
|
356
|
+
def allow_cloud_space_publish(self) -> 'bool':
|
|
357
|
+
"""Gets the allow_cloud_space_publish of this V1Organization. # noqa: E501
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
:return: The allow_cloud_space_publish of this V1Organization. # noqa: E501
|
|
361
|
+
:rtype: bool
|
|
362
|
+
"""
|
|
363
|
+
return self._allow_cloud_space_publish
|
|
364
|
+
|
|
365
|
+
@allow_cloud_space_publish.setter
|
|
366
|
+
def allow_cloud_space_publish(self, allow_cloud_space_publish: 'bool'):
|
|
367
|
+
"""Sets the allow_cloud_space_publish of this V1Organization.
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
:param allow_cloud_space_publish: The allow_cloud_space_publish of this V1Organization. # noqa: E501
|
|
371
|
+
:type: bool
|
|
372
|
+
"""
|
|
373
|
+
|
|
374
|
+
self._allow_cloud_space_publish = allow_cloud_space_publish
|
|
375
|
+
|
|
350
376
|
@property
|
|
351
377
|
def allow_credits_auto_replenish(self) -> 'bool':
|
|
352
378
|
"""Gets the allow_credits_auto_replenish of this V1Organization. # noqa: E501
|
|
@@ -0,0 +1,107 @@
|
|
|
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 V1RequiredBalanceReason(object):
|
|
32
|
+
"""NOTE: This class is auto generated by the swagger code generator program.
|
|
33
|
+
|
|
34
|
+
Do not edit the class manually.
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
"""
|
|
38
|
+
allowed enum values
|
|
39
|
+
"""
|
|
40
|
+
UNKNOWN = "REQUIRED_BALANCE_REASON_UNKNOWN"
|
|
41
|
+
SUFFICIENT_FREE_STUDIO = "REQUIRED_BALANCE_REASON_SUFFICIENT_FREE_STUDIO"
|
|
42
|
+
SUFFICIENT_CREDITS = "REQUIRED_BALANCE_REASON_SUFFICIENT_CREDITS"
|
|
43
|
+
INSUFFICIENT_FREE_STUDIO_RUNNING = "REQUIRED_BALANCE_REASON_INSUFFICIENT_FREE_STUDIO_RUNNING"
|
|
44
|
+
INSUFFICIENT_CREDITS = "REQUIRED_BALANCE_REASON_INSUFFICIENT_CREDITS"
|
|
45
|
+
INSUFFICIENT_CREDITS_STORAGE = "REQUIRED_BALANCE_REASON_INSUFFICIENT_CREDITS_STORAGE"
|
|
46
|
+
"""
|
|
47
|
+
Attributes:
|
|
48
|
+
swagger_types (dict): The key is attribute name
|
|
49
|
+
and the value is attribute type.
|
|
50
|
+
attribute_map (dict): The key is attribute name
|
|
51
|
+
and the value is json key in definition.
|
|
52
|
+
"""
|
|
53
|
+
swagger_types = {
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
attribute_map = {
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
def __init__(self): # noqa: E501
|
|
60
|
+
"""V1RequiredBalanceReason - a model defined in Swagger""" # noqa: E501
|
|
61
|
+
self.discriminator = None
|
|
62
|
+
|
|
63
|
+
def to_dict(self) -> dict:
|
|
64
|
+
"""Returns the model properties as a dict"""
|
|
65
|
+
result = {}
|
|
66
|
+
|
|
67
|
+
for attr, _ in six.iteritems(self.swagger_types):
|
|
68
|
+
value = getattr(self, attr)
|
|
69
|
+
if isinstance(value, list):
|
|
70
|
+
result[attr] = list(map(
|
|
71
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
|
72
|
+
value
|
|
73
|
+
))
|
|
74
|
+
elif hasattr(value, "to_dict"):
|
|
75
|
+
result[attr] = value.to_dict()
|
|
76
|
+
elif isinstance(value, dict):
|
|
77
|
+
result[attr] = dict(map(
|
|
78
|
+
lambda item: (item[0], item[1].to_dict())
|
|
79
|
+
if hasattr(item[1], "to_dict") else item,
|
|
80
|
+
value.items()
|
|
81
|
+
))
|
|
82
|
+
else:
|
|
83
|
+
result[attr] = value
|
|
84
|
+
if issubclass(V1RequiredBalanceReason, dict):
|
|
85
|
+
for key, value in self.items():
|
|
86
|
+
result[key] = value
|
|
87
|
+
|
|
88
|
+
return result
|
|
89
|
+
|
|
90
|
+
def to_str(self) -> str:
|
|
91
|
+
"""Returns the string representation of the model"""
|
|
92
|
+
return pprint.pformat(self.to_dict())
|
|
93
|
+
|
|
94
|
+
def __repr__(self) -> str:
|
|
95
|
+
"""For `print` and `pprint`"""
|
|
96
|
+
return self.to_str()
|
|
97
|
+
|
|
98
|
+
def __eq__(self, other: 'V1RequiredBalanceReason') -> bool:
|
|
99
|
+
"""Returns true if both objects are equal"""
|
|
100
|
+
if not isinstance(other, V1RequiredBalanceReason):
|
|
101
|
+
return False
|
|
102
|
+
|
|
103
|
+
return self.__dict__ == other.__dict__
|
|
104
|
+
|
|
105
|
+
def __ne__(self, other: 'V1RequiredBalanceReason') -> bool:
|
|
106
|
+
"""Returns true if both objects are not equal"""
|
|
107
|
+
return not self == other
|