lightning-sdk 2025.12.17__py3-none-any.whl → 2026.1.27__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 (130) hide show
  1. lightning_sdk/__version__.py +1 -1
  2. lightning_sdk/api/k8s_api.py +75 -29
  3. lightning_sdk/api/studio_api.py +192 -37
  4. lightning_sdk/api/teamspace_api.py +180 -54
  5. lightning_sdk/api/utils.py +8 -0
  6. lightning_sdk/cli/cp/__init__.py +67 -0
  7. lightning_sdk/cli/cp/teamspace_uploads.py +93 -0
  8. lightning_sdk/cli/entrypoint.py +2 -0
  9. lightning_sdk/cli/groups.py +22 -0
  10. lightning_sdk/cli/legacy/clusters_menu.py +2 -2
  11. lightning_sdk/cli/legacy/deploy/_auth.py +7 -6
  12. lightning_sdk/cli/legacy/download.py +29 -98
  13. lightning_sdk/cli/legacy/run.py +13 -2
  14. lightning_sdk/cli/legacy/upload.py +24 -31
  15. lightning_sdk/cli/studio/__init__.py +4 -0
  16. lightning_sdk/cli/studio/cp.py +24 -65
  17. lightning_sdk/cli/studio/ls.py +57 -0
  18. lightning_sdk/cli/studio/rm.py +71 -0
  19. lightning_sdk/cli/utils/filesystem.py +103 -0
  20. lightning_sdk/cli/utils/logging.py +2 -1
  21. lightning_sdk/cli/utils/teamspace_selection.py +5 -0
  22. lightning_sdk/exceptions.py +31 -0
  23. lightning_sdk/job/base.py +1 -1
  24. lightning_sdk/k8s_cluster.py +9 -10
  25. lightning_sdk/lightning_cloud/__version__.py +1 -1
  26. lightning_sdk/lightning_cloud/openapi/__init__.py +43 -23
  27. lightning_sdk/lightning_cloud/openapi/api/__init__.py +2 -1
  28. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +118 -1
  29. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +378 -536
  30. lightning_sdk/lightning_cloud/openapi/api/container_registry_service_api.py +456 -0
  31. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +5 -1
  32. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +11 -11
  33. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +113 -0
  34. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +246 -19
  35. lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +116 -11
  36. lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +588 -2
  37. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +9 -1
  38. lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +113 -0
  39. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +5 -1
  40. lightning_sdk/lightning_cloud/openapi/api/{kubernetes_virtual_machine_service_api.py → virtual_machine_service_api.py} +82 -82
  41. lightning_sdk/lightning_cloud/openapi/models/__init__.py +41 -22
  42. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_cluster_capacity_reservation_body.py +53 -1
  43. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_machine_body.py +53 -1
  44. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_org_cluster_capacity_reservation_body.py +409 -0
  45. lightning_sdk/lightning_cloud/openapi/models/{v1_add_container_registry_response.py → cluster_service_report_machine_system_metrics_body.py} +23 -23
  46. lightning_sdk/lightning_cloud/openapi/models/container_registry_config_ecr.py +149 -0
  47. lightning_sdk/lightning_cloud/openapi/models/{v1_container_registry_status.py → container_registry_provider.py} +14 -10
  48. lightning_sdk/lightning_cloud/openapi/models/container_registry_service_create_container_registry_body.py +201 -0
  49. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_config_input.py → container_registry_service_refresh_container_registry_credentials_body.py} +21 -21
  50. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +27 -1
  51. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_config.py → jobs_service_duplicate_deployment_body.py} +51 -51
  52. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_create_lit_logger_media_body.py +305 -0
  53. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_lit_logger_media_body.py +149 -0
  54. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_metrics_stream_body.py +53 -1
  55. lightning_sdk/lightning_cloud/openapi/models/organizations_service_update_org_role_body.py +175 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_capacity_reservation_used_by.py +227 -0
  57. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +2 -1
  58. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +1 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  60. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +53 -1
  61. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +79 -27
  62. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +0 -1
  63. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry.py +63 -89
  64. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_add_container_registry_body.py → v1_container_registry_config.py} +16 -16
  65. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_scopes.py +149 -0
  66. lightning_sdk/lightning_cloud/openapi/models/{v1_delete_kubernetes_virtual_machine_response.py → v1_create_container_registry_response.py} +6 -6
  67. lightning_sdk/lightning_cloud/openapi/models/v1_create_lit_logger_media_response.py +149 -0
  68. lightning_sdk/lightning_cloud/openapi/models/v1_create_org_cluster_capacity_reservation_response.py +201 -0
  69. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_request.py +29 -3
  70. lightning_sdk/lightning_cloud/openapi/models/v1_cudo_direct_v1.py +175 -0
  71. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_refresh_container_registry_credentials_body.py → v1_delete_lit_logger_media_response.py} +6 -6
  72. lightning_sdk/lightning_cloud/openapi/models/{kubernetes_virtual_machine_service_update_kubernetes_virtual_machine_body.py → v1_delete_org_cluster_capacity_reservation_response.py} +6 -6
  73. lightning_sdk/lightning_cloud/openapi/models/v1_delete_virtual_machine_response.py +97 -0
  74. lightning_sdk/lightning_cloud/openapi/models/v1_describe_org_cluster_capacity_reservation_response.py +201 -0
  75. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -27
  76. lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +27 -1
  77. lightning_sdk/lightning_cloud/openapi/models/v1_generic_job_spec.py +79 -1
  78. lightning_sdk/lightning_cloud/openapi/models/{v1_validate_container_registry_response.py → v1_get_kubernetes_pod_logs_response.py} +37 -37
  79. lightning_sdk/lightning_cloud/openapi/models/{v1_get_machine_response.py → v1_get_kubernetes_pod_response.py} +23 -23
  80. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +27 -1
  81. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  82. lightning_sdk/lightning_cloud/openapi/models/v1_joinable_organization.py +27 -1
  83. lightning_sdk/lightning_cloud/openapi/models/{v1_container_registry_integration.py → v1_k8s_incident_setting.py} +49 -23
  84. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_type.py +108 -0
  85. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +53 -1
  86. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -27
  87. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod.py +27 -1
  88. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod_logs_page.py +227 -0
  89. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_config.py +53 -1
  90. lightning_sdk/lightning_cloud/openapi/models/v1_list_container_registries_response.py +6 -6
  91. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_response.py +43 -17
  92. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_sort_order.py +104 -0
  93. lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_logger_media_response.py +149 -0
  94. lightning_sdk/lightning_cloud/openapi/models/v1_list_models_response.py +55 -3
  95. lightning_sdk/lightning_cloud/openapi/models/{v1_list_kubernetes_virtual_machines_response.py → v1_list_virtual_machines_response.py} +16 -16
  96. lightning_sdk/lightning_cloud/openapi/models/v1_lit_logger_media.py +513 -0
  97. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +27 -53
  98. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +107 -3
  99. lightning_sdk/lightning_cloud/openapi/models/v1_media_type.py +104 -0
  100. lightning_sdk/lightning_cloud/openapi/models/{v1_ai_pod_v1.py → v1_mithril_direct_v1.py} +51 -51
  101. lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +29 -3
  102. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
  103. lightning_sdk/lightning_cloud/openapi/models/v1_refresh_container_registry_credentials_response.py +1 -27
  104. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_validate_container_registry_body.py → v1_report_cloud_space_instance_idle_state_response.py} +6 -6
  105. lightning_sdk/lightning_cloud/openapi/models/v1_report_machine_system_metrics_response.py +97 -0
  106. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_details.py → v1_tenant_credentials.py} +53 -53
  107. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +183 -157
  108. lightning_sdk/lightning_cloud/openapi/models/{v1_kubernetes_virtual_machine.py → v1_virtual_machine.py} +94 -68
  109. lightning_sdk/lightning_cloud/openapi/models/{v1_kubevirt_vm_configuration.py → v1_vm_configuration.py} +20 -20
  110. lightning_sdk/lightning_cloud/openapi/models/{v1_kubevirt_provider_configuration.py → v1_vm_provider_configuration.py} +32 -32
  111. lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_create_virtual_machine_body.py +565 -0
  112. lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_update_virtual_machine_body.py +97 -0
  113. lightning_sdk/lightning_cloud/openapi/rest.py +2 -2
  114. lightning_sdk/lightning_cloud/rest_client.py +0 -2
  115. lightning_sdk/machine.py +3 -3
  116. lightning_sdk/studio.py +14 -4
  117. lightning_sdk/teamspace.py +28 -7
  118. lightning_sdk/utils/logging.py +2 -1
  119. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/METADATA +1 -5
  120. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/RECORD +125 -102
  121. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/WHEEL +1 -1
  122. lightning_sdk/lightning_cloud/cli/__main__.py +0 -29
  123. lightning_sdk/lightning_cloud/openapi/models/kubernetes_virtual_machine_service_create_kubernetes_virtual_machine_body.py +0 -513
  124. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_info.py +0 -281
  125. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_vm_resources.py +0 -201
  126. lightning_sdk/lightning_cloud/source_code/logs_socket_api.py +0 -103
  127. /lightning_sdk/lightning_cloud/openapi/models/{v1_list_filesystem_mmts_response.py → v1_list_filesystem_mm_ts_response.py} +0 -0
  128. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/LICENSE +0 -0
  129. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/entry_points.txt +0 -0
  130. {lightning_sdk-2025.12.17.dist-info → lightning_sdk-2026.1.27.dist-info}/top_level.txt +0 -0
@@ -41,34 +41,96 @@ class V1MachineDirectV1(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
+ 'cloud_hypervisor_user': 'str',
45
+ 'extra_setup_commands': 'list[str]',
44
46
  'primary_region': 'str',
45
47
  'regions': 'list[str]',
46
48
  'setup_infiniband': 'bool',
47
- 'tailscale_auth_key_secret_id': 'str'
49
+ 'storage_overcommit_factor': 'float',
50
+ 'tailscale_auth_key_secret_id': 'str',
51
+ 'use_nvme_disks': 'bool'
48
52
  }
49
53
 
50
54
  attribute_map = {
55
+ 'cloud_hypervisor_user': 'cloudHypervisorUser',
56
+ 'extra_setup_commands': 'extraSetupCommands',
51
57
  'primary_region': 'primaryRegion',
52
58
  'regions': 'regions',
53
59
  'setup_infiniband': 'setupInfiniband',
54
- 'tailscale_auth_key_secret_id': 'tailscaleAuthKeySecretId'
60
+ 'storage_overcommit_factor': 'storageOvercommitFactor',
61
+ 'tailscale_auth_key_secret_id': 'tailscaleAuthKeySecretId',
62
+ 'use_nvme_disks': 'useNvmeDisks'
55
63
  }
56
64
 
57
- def __init__(self, primary_region: 'str' =None, regions: 'list[str]' =None, setup_infiniband: 'bool' =None, tailscale_auth_key_secret_id: 'str' =None): # noqa: E501
65
+ def __init__(self, cloud_hypervisor_user: 'str' =None, extra_setup_commands: 'list[str]' =None, primary_region: 'str' =None, regions: 'list[str]' =None, setup_infiniband: 'bool' =None, storage_overcommit_factor: 'float' =None, tailscale_auth_key_secret_id: 'str' =None, use_nvme_disks: 'bool' =None): # noqa: E501
58
66
  """V1MachineDirectV1 - a model defined in Swagger""" # noqa: E501
67
+ self._cloud_hypervisor_user = None
68
+ self._extra_setup_commands = None
59
69
  self._primary_region = None
60
70
  self._regions = None
61
71
  self._setup_infiniband = None
72
+ self._storage_overcommit_factor = None
62
73
  self._tailscale_auth_key_secret_id = None
74
+ self._use_nvme_disks = None
63
75
  self.discriminator = None
76
+ if cloud_hypervisor_user is not None:
77
+ self.cloud_hypervisor_user = cloud_hypervisor_user
78
+ if extra_setup_commands is not None:
79
+ self.extra_setup_commands = extra_setup_commands
64
80
  if primary_region is not None:
65
81
  self.primary_region = primary_region
66
82
  if regions is not None:
67
83
  self.regions = regions
68
84
  if setup_infiniband is not None:
69
85
  self.setup_infiniband = setup_infiniband
86
+ if storage_overcommit_factor is not None:
87
+ self.storage_overcommit_factor = storage_overcommit_factor
70
88
  if tailscale_auth_key_secret_id is not None:
71
89
  self.tailscale_auth_key_secret_id = tailscale_auth_key_secret_id
90
+ if use_nvme_disks is not None:
91
+ self.use_nvme_disks = use_nvme_disks
92
+
93
+ @property
94
+ def cloud_hypervisor_user(self) -> 'str':
95
+ """Gets the cloud_hypervisor_user of this V1MachineDirectV1. # noqa: E501
96
+
97
+
98
+ :return: The cloud_hypervisor_user of this V1MachineDirectV1. # noqa: E501
99
+ :rtype: str
100
+ """
101
+ return self._cloud_hypervisor_user
102
+
103
+ @cloud_hypervisor_user.setter
104
+ def cloud_hypervisor_user(self, cloud_hypervisor_user: 'str'):
105
+ """Sets the cloud_hypervisor_user of this V1MachineDirectV1.
106
+
107
+
108
+ :param cloud_hypervisor_user: The cloud_hypervisor_user of this V1MachineDirectV1. # noqa: E501
109
+ :type: str
110
+ """
111
+
112
+ self._cloud_hypervisor_user = cloud_hypervisor_user
113
+
114
+ @property
115
+ def extra_setup_commands(self) -> 'list[str]':
116
+ """Gets the extra_setup_commands of this V1MachineDirectV1. # noqa: E501
117
+
118
+
119
+ :return: The extra_setup_commands of this V1MachineDirectV1. # noqa: E501
120
+ :rtype: list[str]
121
+ """
122
+ return self._extra_setup_commands
123
+
124
+ @extra_setup_commands.setter
125
+ def extra_setup_commands(self, extra_setup_commands: 'list[str]'):
126
+ """Sets the extra_setup_commands of this V1MachineDirectV1.
127
+
128
+
129
+ :param extra_setup_commands: The extra_setup_commands of this V1MachineDirectV1. # noqa: E501
130
+ :type: list[str]
131
+ """
132
+
133
+ self._extra_setup_commands = extra_setup_commands
72
134
 
73
135
  @property
74
136
  def primary_region(self) -> 'str':
@@ -133,6 +195,27 @@ class V1MachineDirectV1(object):
133
195
 
134
196
  self._setup_infiniband = setup_infiniband
135
197
 
198
+ @property
199
+ def storage_overcommit_factor(self) -> 'float':
200
+ """Gets the storage_overcommit_factor of this V1MachineDirectV1. # noqa: E501
201
+
202
+
203
+ :return: The storage_overcommit_factor of this V1MachineDirectV1. # noqa: E501
204
+ :rtype: float
205
+ """
206
+ return self._storage_overcommit_factor
207
+
208
+ @storage_overcommit_factor.setter
209
+ def storage_overcommit_factor(self, storage_overcommit_factor: 'float'):
210
+ """Sets the storage_overcommit_factor of this V1MachineDirectV1.
211
+
212
+
213
+ :param storage_overcommit_factor: The storage_overcommit_factor of this V1MachineDirectV1. # noqa: E501
214
+ :type: float
215
+ """
216
+
217
+ self._storage_overcommit_factor = storage_overcommit_factor
218
+
136
219
  @property
137
220
  def tailscale_auth_key_secret_id(self) -> 'str':
138
221
  """Gets the tailscale_auth_key_secret_id of this V1MachineDirectV1. # noqa: E501
@@ -154,6 +237,27 @@ class V1MachineDirectV1(object):
154
237
 
155
238
  self._tailscale_auth_key_secret_id = tailscale_auth_key_secret_id
156
239
 
240
+ @property
241
+ def use_nvme_disks(self) -> 'bool':
242
+ """Gets the use_nvme_disks of this V1MachineDirectV1. # noqa: E501
243
+
244
+
245
+ :return: The use_nvme_disks of this V1MachineDirectV1. # noqa: E501
246
+ :rtype: bool
247
+ """
248
+ return self._use_nvme_disks
249
+
250
+ @use_nvme_disks.setter
251
+ def use_nvme_disks(self, use_nvme_disks: 'bool'):
252
+ """Sets the use_nvme_disks of this V1MachineDirectV1.
253
+
254
+
255
+ :param use_nvme_disks: The use_nvme_disks of this V1MachineDirectV1. # noqa: E501
256
+ :type: bool
257
+ """
258
+
259
+ self._use_nvme_disks = use_nvme_disks
260
+
157
261
  def to_dict(self) -> dict:
158
262
  """Returns the model properties as a dict"""
159
263
  result = {}
@@ -0,0 +1,104 @@
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 V1MediaType(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
+ UNSPECIFIED = "MEDIA_TYPE_UNSPECIFIED"
41
+ IMAGE = "MEDIA_TYPE_IMAGE"
42
+ TEXT = "MEDIA_TYPE_TEXT"
43
+ """
44
+ Attributes:
45
+ swagger_types (dict): The key is attribute name
46
+ and the value is attribute type.
47
+ attribute_map (dict): The key is attribute name
48
+ and the value is json key in definition.
49
+ """
50
+ swagger_types = {
51
+ }
52
+
53
+ attribute_map = {
54
+ }
55
+
56
+ def __init__(self): # noqa: E501
57
+ """V1MediaType - a model defined in Swagger""" # noqa: E501
58
+ self.discriminator = None
59
+
60
+ def to_dict(self) -> dict:
61
+ """Returns the model properties as a dict"""
62
+ result = {}
63
+
64
+ for attr, _ in six.iteritems(self.swagger_types):
65
+ value = getattr(self, attr)
66
+ if isinstance(value, list):
67
+ result[attr] = list(map(
68
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
69
+ value
70
+ ))
71
+ elif hasattr(value, "to_dict"):
72
+ result[attr] = value.to_dict()
73
+ elif isinstance(value, dict):
74
+ result[attr] = dict(map(
75
+ lambda item: (item[0], item[1].to_dict())
76
+ if hasattr(item[1], "to_dict") else item,
77
+ value.items()
78
+ ))
79
+ else:
80
+ result[attr] = value
81
+ if issubclass(V1MediaType, dict):
82
+ for key, value in self.items():
83
+ result[key] = value
84
+
85
+ return result
86
+
87
+ def to_str(self) -> str:
88
+ """Returns the string representation of the model"""
89
+ return pprint.pformat(self.to_dict())
90
+
91
+ def __repr__(self) -> str:
92
+ """For `print` and `pprint`"""
93
+ return self.to_str()
94
+
95
+ def __eq__(self, other: 'V1MediaType') -> bool:
96
+ """Returns true if both objects are equal"""
97
+ if not isinstance(other, V1MediaType):
98
+ return False
99
+
100
+ return self.__dict__ == other.__dict__
101
+
102
+ def __ne__(self, other: 'V1MediaType') -> bool:
103
+ """Returns true if both objects are not equal"""
104
+ return not self == other
@@ -28,7 +28,7 @@ if TYPE_CHECKING:
28
28
  from datetime import datetime
29
29
  from lightning_sdk.lightning_cloud.openapi.models import *
30
30
 
31
- class V1AiPodV1(object):
31
+ class V1MithrilDirectV1(object):
32
32
  """NOTE: This class is auto generated by the swagger code generator program.
33
33
 
34
34
  Do not edit the class manually.
@@ -41,92 +41,92 @@ class V1AiPodV1(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
- 'ansible_credential_id': 'str',
45
- 'ansible_username': 'str',
46
- 'organization_id': 'str'
44
+ 'primary_region': 'str',
45
+ 'project_id': 'str',
46
+ 'regions': 'list[str]'
47
47
  }
48
48
 
49
49
  attribute_map = {
50
- 'ansible_credential_id': 'ansibleCredentialId',
51
- 'ansible_username': 'ansibleUsername',
52
- 'organization_id': 'organizationId'
50
+ 'primary_region': 'primaryRegion',
51
+ 'project_id': 'projectId',
52
+ 'regions': 'regions'
53
53
  }
54
54
 
55
- def __init__(self, ansible_credential_id: 'str' =None, ansible_username: 'str' =None, organization_id: 'str' =None): # noqa: E501
56
- """V1AiPodV1 - a model defined in Swagger""" # noqa: E501
57
- self._ansible_credential_id = None
58
- self._ansible_username = None
59
- self._organization_id = None
55
+ def __init__(self, primary_region: 'str' =None, project_id: 'str' =None, regions: 'list[str]' =None): # noqa: E501
56
+ """V1MithrilDirectV1 - a model defined in Swagger""" # noqa: E501
57
+ self._primary_region = None
58
+ self._project_id = None
59
+ self._regions = None
60
60
  self.discriminator = None
61
- if ansible_credential_id is not None:
62
- self.ansible_credential_id = ansible_credential_id
63
- if ansible_username is not None:
64
- self.ansible_username = ansible_username
65
- if organization_id is not None:
66
- self.organization_id = organization_id
61
+ if primary_region is not None:
62
+ self.primary_region = primary_region
63
+ if project_id is not None:
64
+ self.project_id = project_id
65
+ if regions is not None:
66
+ self.regions = regions
67
67
 
68
68
  @property
69
- def ansible_credential_id(self) -> 'str':
70
- """Gets the ansible_credential_id of this V1AiPodV1. # noqa: E501
69
+ def primary_region(self) -> 'str':
70
+ """Gets the primary_region of this V1MithrilDirectV1. # noqa: E501
71
71
 
72
72
 
73
- :return: The ansible_credential_id of this V1AiPodV1. # noqa: E501
73
+ :return: The primary_region of this V1MithrilDirectV1. # noqa: E501
74
74
  :rtype: str
75
75
  """
76
- return self._ansible_credential_id
76
+ return self._primary_region
77
77
 
78
- @ansible_credential_id.setter
79
- def ansible_credential_id(self, ansible_credential_id: 'str'):
80
- """Sets the ansible_credential_id of this V1AiPodV1.
78
+ @primary_region.setter
79
+ def primary_region(self, primary_region: 'str'):
80
+ """Sets the primary_region of this V1MithrilDirectV1.
81
81
 
82
82
 
83
- :param ansible_credential_id: The ansible_credential_id of this V1AiPodV1. # noqa: E501
83
+ :param primary_region: The primary_region of this V1MithrilDirectV1. # noqa: E501
84
84
  :type: str
85
85
  """
86
86
 
87
- self._ansible_credential_id = ansible_credential_id
87
+ self._primary_region = primary_region
88
88
 
89
89
  @property
90
- def ansible_username(self) -> 'str':
91
- """Gets the ansible_username of this V1AiPodV1. # noqa: E501
90
+ def project_id(self) -> 'str':
91
+ """Gets the project_id of this V1MithrilDirectV1. # noqa: E501
92
92
 
93
93
 
94
- :return: The ansible_username of this V1AiPodV1. # noqa: E501
94
+ :return: The project_id of this V1MithrilDirectV1. # noqa: E501
95
95
  :rtype: str
96
96
  """
97
- return self._ansible_username
97
+ return self._project_id
98
98
 
99
- @ansible_username.setter
100
- def ansible_username(self, ansible_username: 'str'):
101
- """Sets the ansible_username of this V1AiPodV1.
99
+ @project_id.setter
100
+ def project_id(self, project_id: 'str'):
101
+ """Sets the project_id of this V1MithrilDirectV1.
102
102
 
103
103
 
104
- :param ansible_username: The ansible_username of this V1AiPodV1. # noqa: E501
104
+ :param project_id: The project_id of this V1MithrilDirectV1. # noqa: E501
105
105
  :type: str
106
106
  """
107
107
 
108
- self._ansible_username = ansible_username
108
+ self._project_id = project_id
109
109
 
110
110
  @property
111
- def organization_id(self) -> 'str':
112
- """Gets the organization_id of this V1AiPodV1. # noqa: E501
111
+ def regions(self) -> 'list[str]':
112
+ """Gets the regions of this V1MithrilDirectV1. # noqa: E501
113
113
 
114
114
 
115
- :return: The organization_id of this V1AiPodV1. # noqa: E501
116
- :rtype: str
115
+ :return: The regions of this V1MithrilDirectV1. # noqa: E501
116
+ :rtype: list[str]
117
117
  """
118
- return self._organization_id
118
+ return self._regions
119
119
 
120
- @organization_id.setter
121
- def organization_id(self, organization_id: 'str'):
122
- """Sets the organization_id of this V1AiPodV1.
120
+ @regions.setter
121
+ def regions(self, regions: 'list[str]'):
122
+ """Sets the regions of this V1MithrilDirectV1.
123
123
 
124
124
 
125
- :param organization_id: The organization_id of this V1AiPodV1. # noqa: E501
126
- :type: str
125
+ :param regions: The regions of this V1MithrilDirectV1. # noqa: E501
126
+ :type: list[str]
127
127
  """
128
128
 
129
- self._organization_id = organization_id
129
+ self._regions = regions
130
130
 
131
131
  def to_dict(self) -> dict:
132
132
  """Returns the model properties as a dict"""
@@ -149,7 +149,7 @@ class V1AiPodV1(object):
149
149
  ))
150
150
  else:
151
151
  result[attr] = value
152
- if issubclass(V1AiPodV1, dict):
152
+ if issubclass(V1MithrilDirectV1, dict):
153
153
  for key, value in self.items():
154
154
  result[key] = value
155
155
 
@@ -163,13 +163,13 @@ class V1AiPodV1(object):
163
163
  """For `print` and `pprint`"""
164
164
  return self.to_str()
165
165
 
166
- def __eq__(self, other: 'V1AiPodV1') -> bool:
166
+ def __eq__(self, other: 'V1MithrilDirectV1') -> bool:
167
167
  """Returns true if both objects are equal"""
168
- if not isinstance(other, V1AiPodV1):
168
+ if not isinstance(other, V1MithrilDirectV1):
169
169
  return False
170
170
 
171
171
  return self.__dict__ == other.__dict__
172
172
 
173
- def __ne__(self, other: 'V1AiPodV1') -> bool:
173
+ def __ne__(self, other: 'V1MithrilDirectV1') -> bool:
174
174
  """Returns true if both objects are not equal"""
175
175
  return not self == other
@@ -43,20 +43,23 @@ class V1NebiusDirectV1(object):
43
43
  swagger_types = {
44
44
  'primary_region': 'str',
45
45
  'regions': 'list[str]',
46
- 'subnet_cidr_ranges': 'list[str]'
46
+ 'subnet_cidr_ranges': 'list[str]',
47
+ 'tenant_credentials': 'list[V1TenantCredentials]'
47
48
  }
48
49
 
49
50
  attribute_map = {
50
51
  'primary_region': 'primaryRegion',
51
52
  'regions': 'regions',
52
- 'subnet_cidr_ranges': 'subnetCidrRanges'
53
+ 'subnet_cidr_ranges': 'subnetCidrRanges',
54
+ 'tenant_credentials': 'tenantCredentials'
53
55
  }
54
56
 
55
- def __init__(self, primary_region: 'str' =None, regions: 'list[str]' =None, subnet_cidr_ranges: 'list[str]' =None): # noqa: E501
57
+ def __init__(self, primary_region: 'str' =None, regions: 'list[str]' =None, subnet_cidr_ranges: 'list[str]' =None, tenant_credentials: 'list[V1TenantCredentials]' =None): # noqa: E501
56
58
  """V1NebiusDirectV1 - a model defined in Swagger""" # noqa: E501
57
59
  self._primary_region = None
58
60
  self._regions = None
59
61
  self._subnet_cidr_ranges = None
62
+ self._tenant_credentials = None
60
63
  self.discriminator = None
61
64
  if primary_region is not None:
62
65
  self.primary_region = primary_region
@@ -64,6 +67,8 @@ class V1NebiusDirectV1(object):
64
67
  self.regions = regions
65
68
  if subnet_cidr_ranges is not None:
66
69
  self.subnet_cidr_ranges = subnet_cidr_ranges
70
+ if tenant_credentials is not None:
71
+ self.tenant_credentials = tenant_credentials
67
72
 
68
73
  @property
69
74
  def primary_region(self) -> 'str':
@@ -128,6 +133,27 @@ class V1NebiusDirectV1(object):
128
133
 
129
134
  self._subnet_cidr_ranges = subnet_cidr_ranges
130
135
 
136
+ @property
137
+ def tenant_credentials(self) -> 'list[V1TenantCredentials]':
138
+ """Gets the tenant_credentials of this V1NebiusDirectV1. # noqa: E501
139
+
140
+
141
+ :return: The tenant_credentials of this V1NebiusDirectV1. # noqa: E501
142
+ :rtype: list[V1TenantCredentials]
143
+ """
144
+ return self._tenant_credentials
145
+
146
+ @tenant_credentials.setter
147
+ def tenant_credentials(self, tenant_credentials: 'list[V1TenantCredentials]'):
148
+ """Sets the tenant_credentials of this V1NebiusDirectV1.
149
+
150
+
151
+ :param tenant_credentials: The tenant_credentials of this V1NebiusDirectV1. # noqa: E501
152
+ :type: list[V1TenantCredentials]
153
+ """
154
+
155
+ self._tenant_credentials = tenant_credentials
156
+
131
157
  def to_dict(self) -> dict:
132
158
  """Returns the model properties as a dict"""
133
159
  result = {}
@@ -84,6 +84,7 @@ class V1Organization(object):
84
84
  'preferred_deployment_provider': 'str',
85
85
  'preferred_studio_provider': 'str',
86
86
  'show_model_apis_tab': 'bool',
87
+ 'skip_phone_verification': 'bool',
87
88
  'start_studios_on_spot_instance': 'bool',
88
89
  'storage_overuse_bytes': 'str',
89
90
  'storage_overuse_deletion_at': 'datetime',
@@ -139,6 +140,7 @@ class V1Organization(object):
139
140
  'preferred_deployment_provider': 'preferredDeploymentProvider',
140
141
  'preferred_studio_provider': 'preferredStudioProvider',
141
142
  'show_model_apis_tab': 'showModelApisTab',
143
+ 'skip_phone_verification': 'skipPhoneVerification',
142
144
  'start_studios_on_spot_instance': 'startStudiosOnSpotInstance',
143
145
  'storage_overuse_bytes': 'storageOveruseBytes',
144
146
  'storage_overuse_deletion_at': 'storageOveruseDeletionAt',
@@ -150,7 +152,7 @@ class V1Organization(object):
150
152
  'workload_max_run_duration': 'workloadMaxRunDuration'
151
153
  }
152
154
 
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
155
+ 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, skip_phone_verification: '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
154
156
  """V1Organization - a model defined in Swagger""" # noqa: E501
155
157
  self._alerts_config = None
156
158
  self._allow_budgeting = None
@@ -195,6 +197,7 @@ class V1Organization(object):
195
197
  self._preferred_deployment_provider = None
196
198
  self._preferred_studio_provider = None
197
199
  self._show_model_apis_tab = None
200
+ self._skip_phone_verification = None
198
201
  self._start_studios_on_spot_instance = None
199
202
  self._storage_overuse_bytes = None
200
203
  self._storage_overuse_deletion_at = None
@@ -291,6 +294,8 @@ class V1Organization(object):
291
294
  self.preferred_studio_provider = preferred_studio_provider
292
295
  if show_model_apis_tab is not None:
293
296
  self.show_model_apis_tab = show_model_apis_tab
297
+ if skip_phone_verification is not None:
298
+ self.skip_phone_verification = skip_phone_verification
294
299
  if start_studios_on_spot_instance is not None:
295
300
  self.start_studios_on_spot_instance = start_studios_on_spot_instance
296
301
  if storage_overuse_bytes is not None:
@@ -1215,6 +1220,27 @@ class V1Organization(object):
1215
1220
 
1216
1221
  self._show_model_apis_tab = show_model_apis_tab
1217
1222
 
1223
+ @property
1224
+ def skip_phone_verification(self) -> 'bool':
1225
+ """Gets the skip_phone_verification of this V1Organization. # noqa: E501
1226
+
1227
+
1228
+ :return: The skip_phone_verification of this V1Organization. # noqa: E501
1229
+ :rtype: bool
1230
+ """
1231
+ return self._skip_phone_verification
1232
+
1233
+ @skip_phone_verification.setter
1234
+ def skip_phone_verification(self, skip_phone_verification: 'bool'):
1235
+ """Sets the skip_phone_verification of this V1Organization.
1236
+
1237
+
1238
+ :param skip_phone_verification: The skip_phone_verification of this V1Organization. # noqa: E501
1239
+ :type: bool
1240
+ """
1241
+
1242
+ self._skip_phone_verification = skip_phone_verification
1243
+
1218
1244
  @property
1219
1245
  def start_studios_on_spot_instance(self) -> 'bool':
1220
1246
  """Gets the start_studios_on_spot_instance of this V1Organization. # noqa: E501
@@ -41,40 +41,14 @@ class V1RefreshContainerRegistryCredentialsResponse(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
- 'refreshed_at': 'datetime'
45
44
  }
46
45
 
47
46
  attribute_map = {
48
- 'refreshed_at': 'refreshedAt'
49
47
  }
50
48
 
51
- def __init__(self, refreshed_at: 'datetime' =None): # noqa: E501
49
+ def __init__(self): # noqa: E501
52
50
  """V1RefreshContainerRegistryCredentialsResponse - a model defined in Swagger""" # noqa: E501
53
- self._refreshed_at = None
54
51
  self.discriminator = None
55
- if refreshed_at is not None:
56
- self.refreshed_at = refreshed_at
57
-
58
- @property
59
- def refreshed_at(self) -> 'datetime':
60
- """Gets the refreshed_at of this V1RefreshContainerRegistryCredentialsResponse. # noqa: E501
61
-
62
-
63
- :return: The refreshed_at of this V1RefreshContainerRegistryCredentialsResponse. # noqa: E501
64
- :rtype: datetime
65
- """
66
- return self._refreshed_at
67
-
68
- @refreshed_at.setter
69
- def refreshed_at(self, refreshed_at: 'datetime'):
70
- """Sets the refreshed_at of this V1RefreshContainerRegistryCredentialsResponse.
71
-
72
-
73
- :param refreshed_at: The refreshed_at of this V1RefreshContainerRegistryCredentialsResponse. # noqa: E501
74
- :type: datetime
75
- """
76
-
77
- self._refreshed_at = refreshed_at
78
52
 
79
53
  def to_dict(self) -> dict:
80
54
  """Returns the model properties as a dict"""
@@ -28,7 +28,7 @@ if TYPE_CHECKING:
28
28
  from datetime import datetime
29
29
  from lightning_sdk.lightning_cloud.openapi.models import *
30
30
 
31
- class ClusterServiceValidateContainerRegistryBody(object):
31
+ class V1ReportCloudSpaceInstanceIdleStateResponse(object):
32
32
  """NOTE: This class is auto generated by the swagger code generator program.
33
33
 
34
34
  Do not edit the class manually.
@@ -47,7 +47,7 @@ class ClusterServiceValidateContainerRegistryBody(object):
47
47
  }
48
48
 
49
49
  def __init__(self): # noqa: E501
50
- """ClusterServiceValidateContainerRegistryBody - a model defined in Swagger""" # noqa: E501
50
+ """V1ReportCloudSpaceInstanceIdleStateResponse - a model defined in Swagger""" # noqa: E501
51
51
  self.discriminator = None
52
52
 
53
53
  def to_dict(self) -> dict:
@@ -71,7 +71,7 @@ class ClusterServiceValidateContainerRegistryBody(object):
71
71
  ))
72
72
  else:
73
73
  result[attr] = value
74
- if issubclass(ClusterServiceValidateContainerRegistryBody, dict):
74
+ if issubclass(V1ReportCloudSpaceInstanceIdleStateResponse, dict):
75
75
  for key, value in self.items():
76
76
  result[key] = value
77
77
 
@@ -85,13 +85,13 @@ class ClusterServiceValidateContainerRegistryBody(object):
85
85
  """For `print` and `pprint`"""
86
86
  return self.to_str()
87
87
 
88
- def __eq__(self, other: 'ClusterServiceValidateContainerRegistryBody') -> bool:
88
+ def __eq__(self, other: 'V1ReportCloudSpaceInstanceIdleStateResponse') -> bool:
89
89
  """Returns true if both objects are equal"""
90
- if not isinstance(other, ClusterServiceValidateContainerRegistryBody):
90
+ if not isinstance(other, V1ReportCloudSpaceInstanceIdleStateResponse):
91
91
  return False
92
92
 
93
93
  return self.__dict__ == other.__dict__
94
94
 
95
- def __ne__(self, other: 'ClusterServiceValidateContainerRegistryBody') -> bool:
95
+ def __ne__(self, other: 'V1ReportCloudSpaceInstanceIdleStateResponse') -> bool:
96
96
  """Returns true if both objects are not equal"""
97
97
  return not self == other