lightning-sdk 2025.8.18.post0__py3-none-any.whl → 2025.8.19.post0__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 (23) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/studio_api.py +14 -36
  3. lightning_sdk/api/utils.py +108 -18
  4. lightning_sdk/lightning_cloud/openapi/__init__.py +1 -0
  5. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +113 -0
  6. lightning_sdk/lightning_cloud/openapi/models/__init__.py +1 -0
  7. lightning_sdk/lightning_cloud/openapi/models/id_codeconfig_body.py +3 -81
  8. lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +27 -1
  9. lightning_sdk/lightning_cloud/openapi/models/project_id_storage_body.py +27 -1
  10. lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +27 -1
  11. lightning_sdk/lightning_cloud/openapi/models/uploads_upload_id_body1.py +27 -1
  12. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_metrics.py +79 -1
  13. lightning_sdk/lightning_cloud/openapi/models/v1_list_aggregated_pod_metrics_response.py +123 -0
  14. lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +79 -1
  15. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
  16. lightning_sdk/lightning_cloud/openapi/models/v1_update_cloud_space_instance_config_request.py +3 -81
  17. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +1 -105
  18. {lightning_sdk-2025.8.18.post0.dist-info → lightning_sdk-2025.8.19.post0.dist-info}/METADATA +1 -1
  19. {lightning_sdk-2025.8.18.post0.dist-info → lightning_sdk-2025.8.19.post0.dist-info}/RECORD +23 -22
  20. {lightning_sdk-2025.8.18.post0.dist-info → lightning_sdk-2025.8.19.post0.dist-info}/LICENSE +0 -0
  21. {lightning_sdk-2025.8.18.post0.dist-info → lightning_sdk-2025.8.19.post0.dist-info}/WHEEL +0 -0
  22. {lightning_sdk-2025.8.18.post0.dist-info → lightning_sdk-2025.8.19.post0.dist-info}/entry_points.txt +0 -0
  23. {lightning_sdk-2025.8.18.post0.dist-info → lightning_sdk-2025.8.19.post0.dist-info}/top_level.txt +0 -0
@@ -43,25 +43,30 @@ class ProjectIdStorageBody(object):
43
43
  swagger_types = {
44
44
  'cluster_id': 'str',
45
45
  'count': 'str',
46
+ 'data_connection_id': 'str',
46
47
  'filename': 'str'
47
48
  }
48
49
 
49
50
  attribute_map = {
50
51
  'cluster_id': 'clusterId',
51
52
  'count': 'count',
53
+ 'data_connection_id': 'dataConnectionId',
52
54
  'filename': 'filename'
53
55
  }
54
56
 
55
- def __init__(self, cluster_id: 'str' =None, count: 'str' =None, filename: 'str' =None): # noqa: E501
57
+ def __init__(self, cluster_id: 'str' =None, count: 'str' =None, data_connection_id: 'str' =None, filename: 'str' =None): # noqa: E501
56
58
  """ProjectIdStorageBody - a model defined in Swagger""" # noqa: E501
57
59
  self._cluster_id = None
58
60
  self._count = None
61
+ self._data_connection_id = None
59
62
  self._filename = None
60
63
  self.discriminator = None
61
64
  if cluster_id is not None:
62
65
  self.cluster_id = cluster_id
63
66
  if count is not None:
64
67
  self.count = count
68
+ if data_connection_id is not None:
69
+ self.data_connection_id = data_connection_id
65
70
  if filename is not None:
66
71
  self.filename = filename
67
72
 
@@ -107,6 +112,27 @@ class ProjectIdStorageBody(object):
107
112
 
108
113
  self._count = count
109
114
 
115
+ @property
116
+ def data_connection_id(self) -> 'str':
117
+ """Gets the data_connection_id of this ProjectIdStorageBody. # noqa: E501
118
+
119
+
120
+ :return: The data_connection_id of this ProjectIdStorageBody. # noqa: E501
121
+ :rtype: str
122
+ """
123
+ return self._data_connection_id
124
+
125
+ @data_connection_id.setter
126
+ def data_connection_id(self, data_connection_id: 'str'):
127
+ """Sets the data_connection_id of this ProjectIdStorageBody.
128
+
129
+
130
+ :param data_connection_id: The data_connection_id of this ProjectIdStorageBody. # noqa: E501
131
+ :type: str
132
+ """
133
+
134
+ self._data_connection_id = data_connection_id
135
+
110
136
  @property
111
137
  def filename(self) -> 'str':
112
138
  """Gets the filename of this ProjectIdStorageBody. # noqa: E501
@@ -42,6 +42,7 @@ class StorageCompleteBody(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'cluster_id': 'str',
45
+ 'data_connection_id': 'str',
45
46
  'filename': 'str',
46
47
  'parts': 'list[V1CompleteUpload]',
47
48
  'suppress_reindex': 'bool',
@@ -50,15 +51,17 @@ class StorageCompleteBody(object):
50
51
 
51
52
  attribute_map = {
52
53
  'cluster_id': 'clusterId',
54
+ 'data_connection_id': 'dataConnectionId',
53
55
  'filename': 'filename',
54
56
  'parts': 'parts',
55
57
  'suppress_reindex': 'suppressReindex',
56
58
  'upload_id': 'uploadId'
57
59
  }
58
60
 
59
- def __init__(self, cluster_id: 'str' =None, filename: 'str' =None, parts: 'list[V1CompleteUpload]' =None, suppress_reindex: 'bool' =None, upload_id: 'str' =None): # noqa: E501
61
+ def __init__(self, cluster_id: 'str' =None, data_connection_id: 'str' =None, filename: 'str' =None, parts: 'list[V1CompleteUpload]' =None, suppress_reindex: 'bool' =None, upload_id: 'str' =None): # noqa: E501
60
62
  """StorageCompleteBody - a model defined in Swagger""" # noqa: E501
61
63
  self._cluster_id = None
64
+ self._data_connection_id = None
62
65
  self._filename = None
63
66
  self._parts = None
64
67
  self._suppress_reindex = None
@@ -66,6 +69,8 @@ class StorageCompleteBody(object):
66
69
  self.discriminator = None
67
70
  if cluster_id is not None:
68
71
  self.cluster_id = cluster_id
72
+ if data_connection_id is not None:
73
+ self.data_connection_id = data_connection_id
69
74
  if filename is not None:
70
75
  self.filename = filename
71
76
  if parts is not None:
@@ -96,6 +101,27 @@ class StorageCompleteBody(object):
96
101
 
97
102
  self._cluster_id = cluster_id
98
103
 
104
+ @property
105
+ def data_connection_id(self) -> 'str':
106
+ """Gets the data_connection_id of this StorageCompleteBody. # noqa: E501
107
+
108
+
109
+ :return: The data_connection_id of this StorageCompleteBody. # noqa: E501
110
+ :rtype: str
111
+ """
112
+ return self._data_connection_id
113
+
114
+ @data_connection_id.setter
115
+ def data_connection_id(self, data_connection_id: 'str'):
116
+ """Sets the data_connection_id of this StorageCompleteBody.
117
+
118
+
119
+ :param data_connection_id: The data_connection_id of this StorageCompleteBody. # noqa: E501
120
+ :type: str
121
+ """
122
+
123
+ self._data_connection_id = data_connection_id
124
+
99
125
  @property
100
126
  def filename(self) -> 'str':
101
127
  """Gets the filename of this StorageCompleteBody. # noqa: E501
@@ -42,24 +42,29 @@ class UploadsUploadIdBody1(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'cluster_id': 'str',
45
+ 'data_connection_id': 'str',
45
46
  'filename': 'str',
46
47
  'parts': 'list[str]'
47
48
  }
48
49
 
49
50
  attribute_map = {
50
51
  'cluster_id': 'clusterId',
52
+ 'data_connection_id': 'dataConnectionId',
51
53
  'filename': 'filename',
52
54
  'parts': 'parts'
53
55
  }
54
56
 
55
- def __init__(self, cluster_id: 'str' =None, filename: 'str' =None, parts: 'list[str]' =None): # noqa: E501
57
+ def __init__(self, cluster_id: 'str' =None, data_connection_id: 'str' =None, filename: 'str' =None, parts: 'list[str]' =None): # noqa: E501
56
58
  """UploadsUploadIdBody1 - a model defined in Swagger""" # noqa: E501
57
59
  self._cluster_id = None
60
+ self._data_connection_id = None
58
61
  self._filename = None
59
62
  self._parts = None
60
63
  self.discriminator = None
61
64
  if cluster_id is not None:
62
65
  self.cluster_id = cluster_id
66
+ if data_connection_id is not None:
67
+ self.data_connection_id = data_connection_id
63
68
  if filename is not None:
64
69
  self.filename = filename
65
70
  if parts is not None:
@@ -86,6 +91,27 @@ class UploadsUploadIdBody1(object):
86
91
 
87
92
  self._cluster_id = cluster_id
88
93
 
94
+ @property
95
+ def data_connection_id(self) -> 'str':
96
+ """Gets the data_connection_id of this UploadsUploadIdBody1. # noqa: E501
97
+
98
+
99
+ :return: The data_connection_id of this UploadsUploadIdBody1. # noqa: E501
100
+ :rtype: str
101
+ """
102
+ return self._data_connection_id
103
+
104
+ @data_connection_id.setter
105
+ def data_connection_id(self, data_connection_id: 'str'):
106
+ """Sets the data_connection_id of this UploadsUploadIdBody1.
107
+
108
+
109
+ :param data_connection_id: The data_connection_id of this UploadsUploadIdBody1. # noqa: E501
110
+ :type: str
111
+ """
112
+
113
+ self._data_connection_id = data_connection_id
114
+
89
115
  @property
90
116
  def filename(self) -> 'str':
91
117
  """Gets the filename of this UploadsUploadIdBody1. # noqa: E501
@@ -51,6 +51,9 @@ class V1ClusterMetrics(object):
51
51
  'gpus_energy_total': 'float',
52
52
  'gpus_temp_avg': 'float',
53
53
  'gpus_util': 'float',
54
+ 'gpus_util_over_allocable': 'float',
55
+ 'gpus_util_over_requested': 'float',
56
+ 'max_power_per_gpu': 'float',
54
57
  'num_cpus': 'int',
55
58
  'num_gpus': 'int',
56
59
  'num_gpus_allocable': 'int',
@@ -86,6 +89,9 @@ class V1ClusterMetrics(object):
86
89
  'gpus_energy_total': 'gpusEnergyTotal',
87
90
  'gpus_temp_avg': 'gpusTempAvg',
88
91
  'gpus_util': 'gpusUtil',
92
+ 'gpus_util_over_allocable': 'gpusUtilOverAllocable',
93
+ 'gpus_util_over_requested': 'gpusUtilOverRequested',
94
+ 'max_power_per_gpu': 'maxPowerPerGpu',
89
95
  'num_cpus': 'numCpus',
90
96
  'num_gpus': 'numGpus',
91
97
  'num_gpus_allocable': 'numGpusAllocable',
@@ -110,7 +116,7 @@ class V1ClusterMetrics(object):
110
116
  'vram_util': 'vramUtil'
111
117
  }
112
118
 
113
- def __init__(self, cpus_util: 'float' =None, filesystem_inode_util: 'float' =None, filesystem_read_rate: 'float' =None, filesystem_total: 'float' =None, filesystem_util: 'float' =None, filesystem_write_rate: 'float' =None, gpus_energy_avg: 'float' =None, gpus_energy_total: 'float' =None, gpus_temp_avg: 'float' =None, gpus_util: 'float' =None, num_cpus: 'int' =None, num_gpus: 'int' =None, num_gpus_allocable: 'int' =None, num_limit_cpus: 'int' =None, num_limit_gpus: 'int' =None, num_namespaces: 'int' =None, num_nodes: 'int' =None, num_pods: 'int' =None, num_requested_cpus: 'int' =None, num_requested_gpus: 'int' =None, ram_limit: 'str' =None, ram_requested: 'str' =None, ram_total: 'str' =None, ram_util: 'float' =None, timestamp: 'datetime' =None, vram_limit: 'float' =None, vram_read_write_util: 'float' =None, vram_requested: 'float' =None, vram_total: 'str' =None, vram_used_avg: 'float' =None, vram_used_total: 'float' =None, vram_util: 'float' =None): # noqa: E501
119
+ def __init__(self, cpus_util: 'float' =None, filesystem_inode_util: 'float' =None, filesystem_read_rate: 'float' =None, filesystem_total: 'float' =None, filesystem_util: 'float' =None, filesystem_write_rate: 'float' =None, gpus_energy_avg: 'float' =None, gpus_energy_total: 'float' =None, gpus_temp_avg: 'float' =None, gpus_util: 'float' =None, gpus_util_over_allocable: 'float' =None, gpus_util_over_requested: 'float' =None, max_power_per_gpu: 'float' =None, num_cpus: 'int' =None, num_gpus: 'int' =None, num_gpus_allocable: 'int' =None, num_limit_cpus: 'int' =None, num_limit_gpus: 'int' =None, num_namespaces: 'int' =None, num_nodes: 'int' =None, num_pods: 'int' =None, num_requested_cpus: 'int' =None, num_requested_gpus: 'int' =None, ram_limit: 'str' =None, ram_requested: 'str' =None, ram_total: 'str' =None, ram_util: 'float' =None, timestamp: 'datetime' =None, vram_limit: 'float' =None, vram_read_write_util: 'float' =None, vram_requested: 'float' =None, vram_total: 'str' =None, vram_used_avg: 'float' =None, vram_used_total: 'float' =None, vram_util: 'float' =None): # noqa: E501
114
120
  """V1ClusterMetrics - a model defined in Swagger""" # noqa: E501
115
121
  self._cpus_util = None
116
122
  self._filesystem_inode_util = None
@@ -122,6 +128,9 @@ class V1ClusterMetrics(object):
122
128
  self._gpus_energy_total = None
123
129
  self._gpus_temp_avg = None
124
130
  self._gpus_util = None
131
+ self._gpus_util_over_allocable = None
132
+ self._gpus_util_over_requested = None
133
+ self._max_power_per_gpu = None
125
134
  self._num_cpus = None
126
135
  self._num_gpus = None
127
136
  self._num_gpus_allocable = None
@@ -165,6 +174,12 @@ class V1ClusterMetrics(object):
165
174
  self.gpus_temp_avg = gpus_temp_avg
166
175
  if gpus_util is not None:
167
176
  self.gpus_util = gpus_util
177
+ if gpus_util_over_allocable is not None:
178
+ self.gpus_util_over_allocable = gpus_util_over_allocable
179
+ if gpus_util_over_requested is not None:
180
+ self.gpus_util_over_requested = gpus_util_over_requested
181
+ if max_power_per_gpu is not None:
182
+ self.max_power_per_gpu = max_power_per_gpu
168
183
  if num_cpus is not None:
169
184
  self.num_cpus = num_cpus
170
185
  if num_gpus is not None:
@@ -420,6 +435,69 @@ class V1ClusterMetrics(object):
420
435
 
421
436
  self._gpus_util = gpus_util
422
437
 
438
+ @property
439
+ def gpus_util_over_allocable(self) -> 'float':
440
+ """Gets the gpus_util_over_allocable of this V1ClusterMetrics. # noqa: E501
441
+
442
+
443
+ :return: The gpus_util_over_allocable of this V1ClusterMetrics. # noqa: E501
444
+ :rtype: float
445
+ """
446
+ return self._gpus_util_over_allocable
447
+
448
+ @gpus_util_over_allocable.setter
449
+ def gpus_util_over_allocable(self, gpus_util_over_allocable: 'float'):
450
+ """Sets the gpus_util_over_allocable of this V1ClusterMetrics.
451
+
452
+
453
+ :param gpus_util_over_allocable: The gpus_util_over_allocable of this V1ClusterMetrics. # noqa: E501
454
+ :type: float
455
+ """
456
+
457
+ self._gpus_util_over_allocable = gpus_util_over_allocable
458
+
459
+ @property
460
+ def gpus_util_over_requested(self) -> 'float':
461
+ """Gets the gpus_util_over_requested of this V1ClusterMetrics. # noqa: E501
462
+
463
+
464
+ :return: The gpus_util_over_requested of this V1ClusterMetrics. # noqa: E501
465
+ :rtype: float
466
+ """
467
+ return self._gpus_util_over_requested
468
+
469
+ @gpus_util_over_requested.setter
470
+ def gpus_util_over_requested(self, gpus_util_over_requested: 'float'):
471
+ """Sets the gpus_util_over_requested of this V1ClusterMetrics.
472
+
473
+
474
+ :param gpus_util_over_requested: The gpus_util_over_requested of this V1ClusterMetrics. # noqa: E501
475
+ :type: float
476
+ """
477
+
478
+ self._gpus_util_over_requested = gpus_util_over_requested
479
+
480
+ @property
481
+ def max_power_per_gpu(self) -> 'float':
482
+ """Gets the max_power_per_gpu of this V1ClusterMetrics. # noqa: E501
483
+
484
+
485
+ :return: The max_power_per_gpu of this V1ClusterMetrics. # noqa: E501
486
+ :rtype: float
487
+ """
488
+ return self._max_power_per_gpu
489
+
490
+ @max_power_per_gpu.setter
491
+ def max_power_per_gpu(self, max_power_per_gpu: 'float'):
492
+ """Sets the max_power_per_gpu of this V1ClusterMetrics.
493
+
494
+
495
+ :param max_power_per_gpu: The max_power_per_gpu of this V1ClusterMetrics. # noqa: E501
496
+ :type: float
497
+ """
498
+
499
+ self._max_power_per_gpu = max_power_per_gpu
500
+
423
501
  @property
424
502
  def num_cpus(self) -> 'int':
425
503
  """Gets the num_cpus of this V1ClusterMetrics. # 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 V1ListAggregatedPodMetricsResponse(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
+ 'pod_metrics': 'list[V1PodMetrics]'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'pod_metrics': 'podMetrics'
49
+ }
50
+
51
+ def __init__(self, pod_metrics: 'list[V1PodMetrics]' =None): # noqa: E501
52
+ """V1ListAggregatedPodMetricsResponse - a model defined in Swagger""" # noqa: E501
53
+ self._pod_metrics = None
54
+ self.discriminator = None
55
+ if pod_metrics is not None:
56
+ self.pod_metrics = pod_metrics
57
+
58
+ @property
59
+ def pod_metrics(self) -> 'list[V1PodMetrics]':
60
+ """Gets the pod_metrics of this V1ListAggregatedPodMetricsResponse. # noqa: E501
61
+
62
+
63
+ :return: The pod_metrics of this V1ListAggregatedPodMetricsResponse. # noqa: E501
64
+ :rtype: list[V1PodMetrics]
65
+ """
66
+ return self._pod_metrics
67
+
68
+ @pod_metrics.setter
69
+ def pod_metrics(self, pod_metrics: 'list[V1PodMetrics]'):
70
+ """Sets the pod_metrics of this V1ListAggregatedPodMetricsResponse.
71
+
72
+
73
+ :param pod_metrics: The pod_metrics of this V1ListAggregatedPodMetricsResponse. # noqa: E501
74
+ :type: list[V1PodMetrics]
75
+ """
76
+
77
+ self._pod_metrics = pod_metrics
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(V1ListAggregatedPodMetricsResponse, 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: 'V1ListAggregatedPodMetricsResponse') -> bool:
115
+ """Returns true if both objects are equal"""
116
+ if not isinstance(other, V1ListAggregatedPodMetricsResponse):
117
+ return False
118
+
119
+ return self.__dict__ == other.__dict__
120
+
121
+ def __ne__(self, other: 'V1ListAggregatedPodMetricsResponse') -> bool:
122
+ """Returns true if both objects are not equal"""
123
+ return not self == other
@@ -44,12 +44,15 @@ class V1NodeMetrics(object):
44
44
  'cpu_capacity_cores': 'float',
45
45
  'cpu_util': 'float',
46
46
  'filesystem': 'dict(str, V1FilesystemMetrics)',
47
+ 'max_power_per_gpu': 'float',
47
48
  'mem_total': 'float',
48
49
  'mem_util': 'float',
49
50
  'node_name': 'str',
50
51
  'per_gpu_mem_free': 'dict(str, float)',
51
52
  'per_gpu_mem_used': 'dict(str, float)',
52
53
  'per_gpu_power_usage_watts': 'dict(str, float)',
54
+ 'per_gpu_sm_active': 'dict(str, float)',
55
+ 'per_gpu_sm_occupancy': 'dict(str, float)',
53
56
  'per_gpu_temperature_c': 'dict(str, float)',
54
57
  'per_gpu_util': 'dict(str, float)',
55
58
  'timestamp': 'datetime'
@@ -59,28 +62,34 @@ class V1NodeMetrics(object):
59
62
  'cpu_capacity_cores': 'cpuCapacityCores',
60
63
  'cpu_util': 'cpuUtil',
61
64
  'filesystem': 'filesystem',
65
+ 'max_power_per_gpu': 'maxPowerPerGpu',
62
66
  'mem_total': 'memTotal',
63
67
  'mem_util': 'memUtil',
64
68
  'node_name': 'nodeName',
65
69
  'per_gpu_mem_free': 'perGpuMemFree',
66
70
  'per_gpu_mem_used': 'perGpuMemUsed',
67
71
  'per_gpu_power_usage_watts': 'perGpuPowerUsageWatts',
72
+ 'per_gpu_sm_active': 'perGpuSmActive',
73
+ 'per_gpu_sm_occupancy': 'perGpuSmOccupancy',
68
74
  'per_gpu_temperature_c': 'perGpuTemperatureC',
69
75
  'per_gpu_util': 'perGpuUtil',
70
76
  'timestamp': 'timestamp'
71
77
  }
72
78
 
73
- def __init__(self, cpu_capacity_cores: 'float' =None, cpu_util: 'float' =None, filesystem: 'dict(str, V1FilesystemMetrics)' =None, mem_total: 'float' =None, mem_util: 'float' =None, node_name: 'str' =None, per_gpu_mem_free: 'dict(str, float)' =None, per_gpu_mem_used: 'dict(str, float)' =None, per_gpu_power_usage_watts: 'dict(str, float)' =None, per_gpu_temperature_c: 'dict(str, float)' =None, per_gpu_util: 'dict(str, float)' =None, timestamp: 'datetime' =None): # noqa: E501
79
+ def __init__(self, cpu_capacity_cores: 'float' =None, cpu_util: 'float' =None, filesystem: 'dict(str, V1FilesystemMetrics)' =None, max_power_per_gpu: 'float' =None, mem_total: 'float' =None, mem_util: 'float' =None, node_name: 'str' =None, per_gpu_mem_free: 'dict(str, 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, timestamp: 'datetime' =None): # noqa: E501
74
80
  """V1NodeMetrics - a model defined in Swagger""" # noqa: E501
75
81
  self._cpu_capacity_cores = None
76
82
  self._cpu_util = None
77
83
  self._filesystem = None
84
+ self._max_power_per_gpu = None
78
85
  self._mem_total = None
79
86
  self._mem_util = None
80
87
  self._node_name = None
81
88
  self._per_gpu_mem_free = None
82
89
  self._per_gpu_mem_used = None
83
90
  self._per_gpu_power_usage_watts = None
91
+ self._per_gpu_sm_active = None
92
+ self._per_gpu_sm_occupancy = None
84
93
  self._per_gpu_temperature_c = None
85
94
  self._per_gpu_util = None
86
95
  self._timestamp = None
@@ -91,6 +100,8 @@ class V1NodeMetrics(object):
91
100
  self.cpu_util = cpu_util
92
101
  if filesystem is not None:
93
102
  self.filesystem = filesystem
103
+ if max_power_per_gpu is not None:
104
+ self.max_power_per_gpu = max_power_per_gpu
94
105
  if mem_total is not None:
95
106
  self.mem_total = mem_total
96
107
  if mem_util is not None:
@@ -103,6 +114,10 @@ class V1NodeMetrics(object):
103
114
  self.per_gpu_mem_used = per_gpu_mem_used
104
115
  if per_gpu_power_usage_watts is not None:
105
116
  self.per_gpu_power_usage_watts = per_gpu_power_usage_watts
117
+ if per_gpu_sm_active is not None:
118
+ self.per_gpu_sm_active = per_gpu_sm_active
119
+ if per_gpu_sm_occupancy is not None:
120
+ self.per_gpu_sm_occupancy = per_gpu_sm_occupancy
106
121
  if per_gpu_temperature_c is not None:
107
122
  self.per_gpu_temperature_c = per_gpu_temperature_c
108
123
  if per_gpu_util is not None:
@@ -173,6 +188,27 @@ class V1NodeMetrics(object):
173
188
 
174
189
  self._filesystem = filesystem
175
190
 
191
+ @property
192
+ def max_power_per_gpu(self) -> 'float':
193
+ """Gets the max_power_per_gpu of this V1NodeMetrics. # noqa: E501
194
+
195
+
196
+ :return: The max_power_per_gpu of this V1NodeMetrics. # noqa: E501
197
+ :rtype: float
198
+ """
199
+ return self._max_power_per_gpu
200
+
201
+ @max_power_per_gpu.setter
202
+ def max_power_per_gpu(self, max_power_per_gpu: 'float'):
203
+ """Sets the max_power_per_gpu of this V1NodeMetrics.
204
+
205
+
206
+ :param max_power_per_gpu: The max_power_per_gpu of this V1NodeMetrics. # noqa: E501
207
+ :type: float
208
+ """
209
+
210
+ self._max_power_per_gpu = max_power_per_gpu
211
+
176
212
  @property
177
213
  def mem_total(self) -> 'float':
178
214
  """Gets the mem_total of this V1NodeMetrics. # noqa: E501
@@ -299,6 +335,48 @@ class V1NodeMetrics(object):
299
335
 
300
336
  self._per_gpu_power_usage_watts = per_gpu_power_usage_watts
301
337
 
338
+ @property
339
+ def per_gpu_sm_active(self) -> 'dict(str, float)':
340
+ """Gets the per_gpu_sm_active of this V1NodeMetrics. # noqa: E501
341
+
342
+
343
+ :return: The per_gpu_sm_active of this V1NodeMetrics. # noqa: E501
344
+ :rtype: dict(str, float)
345
+ """
346
+ return self._per_gpu_sm_active
347
+
348
+ @per_gpu_sm_active.setter
349
+ def per_gpu_sm_active(self, per_gpu_sm_active: 'dict(str, float)'):
350
+ """Sets the per_gpu_sm_active of this V1NodeMetrics.
351
+
352
+
353
+ :param per_gpu_sm_active: The per_gpu_sm_active of this V1NodeMetrics. # noqa: E501
354
+ :type: dict(str, float)
355
+ """
356
+
357
+ self._per_gpu_sm_active = per_gpu_sm_active
358
+
359
+ @property
360
+ def per_gpu_sm_occupancy(self) -> 'dict(str, float)':
361
+ """Gets the per_gpu_sm_occupancy of this V1NodeMetrics. # noqa: E501
362
+
363
+
364
+ :return: The per_gpu_sm_occupancy of this V1NodeMetrics. # noqa: E501
365
+ :rtype: dict(str, float)
366
+ """
367
+ return self._per_gpu_sm_occupancy
368
+
369
+ @per_gpu_sm_occupancy.setter
370
+ def per_gpu_sm_occupancy(self, per_gpu_sm_occupancy: 'dict(str, float)'):
371
+ """Sets the per_gpu_sm_occupancy of this V1NodeMetrics.
372
+
373
+
374
+ :param per_gpu_sm_occupancy: The per_gpu_sm_occupancy of this V1NodeMetrics. # noqa: E501
375
+ :type: dict(str, float)
376
+ """
377
+
378
+ self._per_gpu_sm_occupancy = per_gpu_sm_occupancy
379
+
302
380
  @property
303
381
  def per_gpu_temperature_c(self) -> 'dict(str, float)':
304
382
  """Gets the per_gpu_temperature_c of this V1NodeMetrics. # noqa: E501
@@ -82,6 +82,7 @@ class V1Organization(object):
82
82
  'preferred_cluster': 'str',
83
83
  'preferred_deployment_provider': 'str',
84
84
  'preferred_studio_provider': 'str',
85
+ 'show_model_apis_tab': 'bool',
85
86
  'start_studios_on_spot_instance': 'bool',
86
87
  'storage_overuse_bytes': 'str',
87
88
  'storage_overuse_deletion_at': 'datetime',
@@ -135,6 +136,7 @@ class V1Organization(object):
135
136
  'preferred_cluster': 'preferredCluster',
136
137
  'preferred_deployment_provider': 'preferredDeploymentProvider',
137
138
  'preferred_studio_provider': 'preferredStudioProvider',
139
+ 'show_model_apis_tab': 'showModelApisTab',
138
140
  'start_studios_on_spot_instance': 'startStudiosOnSpotInstance',
139
141
  'storage_overuse_bytes': 'storageOveruseBytes',
140
142
  'storage_overuse_deletion_at': 'storageOveruseDeletionAt',
@@ -146,7 +148,7 @@ class V1Organization(object):
146
148
  'workload_max_run_duration': 'workloadMaxRunDuration'
147
149
  }
148
150
 
149
- 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, 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
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
150
152
  """V1Organization - a model defined in Swagger""" # noqa: E501
151
153
  self._alerts_config = None
152
154
  self._allow_budgeting = None
@@ -189,6 +191,7 @@ class V1Organization(object):
189
191
  self._preferred_cluster = None
190
192
  self._preferred_deployment_provider = None
191
193
  self._preferred_studio_provider = None
194
+ self._show_model_apis_tab = None
192
195
  self._start_studios_on_spot_instance = None
193
196
  self._storage_overuse_bytes = None
194
197
  self._storage_overuse_deletion_at = None
@@ -281,6 +284,8 @@ class V1Organization(object):
281
284
  self.preferred_deployment_provider = preferred_deployment_provider
282
285
  if preferred_studio_provider is not None:
283
286
  self.preferred_studio_provider = preferred_studio_provider
287
+ if show_model_apis_tab is not None:
288
+ self.show_model_apis_tab = show_model_apis_tab
284
289
  if start_studios_on_spot_instance is not None:
285
290
  self.start_studios_on_spot_instance = start_studios_on_spot_instance
286
291
  if storage_overuse_bytes is not None:
@@ -1163,6 +1168,27 @@ class V1Organization(object):
1163
1168
 
1164
1169
  self._preferred_studio_provider = preferred_studio_provider
1165
1170
 
1171
+ @property
1172
+ def show_model_apis_tab(self) -> 'bool':
1173
+ """Gets the show_model_apis_tab of this V1Organization. # noqa: E501
1174
+
1175
+
1176
+ :return: The show_model_apis_tab of this V1Organization. # noqa: E501
1177
+ :rtype: bool
1178
+ """
1179
+ return self._show_model_apis_tab
1180
+
1181
+ @show_model_apis_tab.setter
1182
+ def show_model_apis_tab(self, show_model_apis_tab: 'bool'):
1183
+ """Sets the show_model_apis_tab of this V1Organization.
1184
+
1185
+
1186
+ :param show_model_apis_tab: The show_model_apis_tab of this V1Organization. # noqa: E501
1187
+ :type: bool
1188
+ """
1189
+
1190
+ self._show_model_apis_tab = show_model_apis_tab
1191
+
1166
1192
  @property
1167
1193
  def start_studios_on_spot_instance(self) -> 'bool':
1168
1194
  """Gets the start_studios_on_spot_instance of this V1Organization. # noqa: E501