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.
Files changed (45) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/teamspace_api.py +2 -0
  3. lightning_sdk/lightning_cloud/openapi/__init__.py +16 -0
  4. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +388 -0
  5. lightning_sdk/lightning_cloud/openapi/api/auth_service_api.py +97 -0
  6. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +202 -0
  7. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +101 -0
  8. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +4 -4
  9. lightning_sdk/lightning_cloud/openapi/models/__init__.py +16 -0
  10. lightning_sdk/lightning_cloud/openapi/models/cluster_id_metrics_body.py +27 -1
  11. lightning_sdk/lightning_cloud/openapi/models/models_model_id_body.py +109 -31
  12. lightning_sdk/lightning_cloud/openapi/models/models_model_id_body1.py +149 -0
  13. lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +27 -1
  14. lightning_sdk/lightning_cloud/openapi/models/v1_aggregated_pod_metrics.py +799 -0
  15. lightning_sdk/lightning_cloud/openapi/models/v1_cancel_running_cloud_space_instance_transfer_response.py +97 -0
  16. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_transfer_metadata.py +27 -1
  17. lightning_sdk/lightning_cloud/openapi/models/v1_cloudflare_v1.py +3 -29
  18. lightning_sdk/lightning_cloud/openapi/models/v1_create_model_metrics_response.py +97 -0
  19. lightning_sdk/lightning_cloud/openapi/models/v1_daily_model_metrics.py +149 -0
  20. lightning_sdk/lightning_cloud/openapi/models/v1_filestore_data_connection.py +27 -1
  21. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_required_balance_status_response.py +149 -0
  22. lightning_sdk/lightning_cloud/openapi/models/v1_get_latest_model_metrics_response.py +123 -0
  23. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_metrics_response.py +123 -0
  24. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_total_usage_metrics_response.py +149 -0
  25. lightning_sdk/lightning_cloud/openapi/models/v1_get_temp_bucket_credentials_response.py +201 -0
  26. lightning_sdk/lightning_cloud/openapi/models/v1_group_node_metrics.py +1215 -0
  27. lightning_sdk/lightning_cloud/openapi/models/v1_guest_login_request.py +177 -0
  28. lightning_sdk/lightning_cloud/openapi/models/v1_guest_login_response.py +149 -0
  29. lightning_sdk/lightning_cloud/openapi/models/v1_guest_user.py +201 -0
  30. lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +29 -3
  31. lightning_sdk/lightning_cloud/openapi/models/v1_list_aggregated_pod_metrics_response.py +6 -6
  32. lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_response.py +27 -1
  33. lightning_sdk/lightning_cloud/openapi/models/v1_model_metrics.py +175 -0
  34. lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +29 -3
  35. lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +81 -3
  36. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
  37. lightning_sdk/lightning_cloud/openapi/models/v1_required_balance_reason.py +107 -0
  38. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +53 -27
  39. lightning_sdk/lightning_cloud/openapi/models/v1_voltage_park_direct_v1.py +29 -3
  40. {lightning_sdk-2025.8.28.dist-info → lightning_sdk-2025.9.4.dist-info}/METADATA +1 -1
  41. {lightning_sdk-2025.8.28.dist-info → lightning_sdk-2025.9.4.dist-info}/RECORD +45 -29
  42. {lightning_sdk-2025.8.28.dist-info → lightning_sdk-2025.9.4.dist-info}/LICENSE +0 -0
  43. {lightning_sdk-2025.8.28.dist-info → lightning_sdk-2025.9.4.dist-info}/WHEEL +0 -0
  44. {lightning_sdk-2025.8.28.dist-info → lightning_sdk-2025.9.4.dist-info}/entry_points.txt +0 -0
  45. {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