lightning-sdk 2025.12.16__py3-none-any.whl → 2026.1.22__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 (141) hide show
  1. lightning_sdk/__version__.py +1 -1
  2. lightning_sdk/api/k8s_api.py +75 -29
  3. lightning_sdk/api/org_api.py +7 -0
  4. lightning_sdk/api/studio_api.py +223 -36
  5. lightning_sdk/api/teamspace_api.py +28 -9
  6. lightning_sdk/api/user_api.py +5 -0
  7. lightning_sdk/cli/cp/__init__.py +64 -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 +2 -1
  13. lightning_sdk/cli/legacy/run.py +13 -2
  14. lightning_sdk/cli/legacy/studios_menu.py +8 -1
  15. lightning_sdk/cli/studio/__init__.py +4 -0
  16. lightning_sdk/cli/studio/cp.py +20 -64
  17. lightning_sdk/cli/studio/ls.py +57 -0
  18. lightning_sdk/cli/studio/rm.py +71 -0
  19. lightning_sdk/cli/utils/logging.py +2 -1
  20. lightning_sdk/cli/utils/studio_filesystem.py +65 -0
  21. lightning_sdk/cli/utils/teamspace_selection.py +5 -0
  22. lightning_sdk/exceptions.py +4 -0
  23. lightning_sdk/job/base.py +24 -5
  24. lightning_sdk/job/job.py +12 -5
  25. lightning_sdk/job/v1.py +5 -2
  26. lightning_sdk/job/v2.py +9 -1
  27. lightning_sdk/k8s_cluster.py +9 -10
  28. lightning_sdk/lightning_cloud/__version__.py +1 -1
  29. lightning_sdk/lightning_cloud/openapi/__init__.py +46 -3
  30. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
  31. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +118 -1
  32. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +787 -125
  33. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +5 -1
  34. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +11 -11
  35. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +246 -19
  36. lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +116 -11
  37. lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +588 -2
  38. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +9 -1
  39. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +5 -1
  40. lightning_sdk/lightning_cloud/openapi/api/virtual_machine_service_api.py +557 -0
  41. lightning_sdk/lightning_cloud/openapi/models/__init__.py +45 -3
  42. lightning_sdk/lightning_cloud/openapi/models/cloud_space_environment_template_service_update_cloud_space_environment_template_body.py +27 -1
  43. lightning_sdk/lightning_cloud/openapi/models/cluster_service_add_container_registry_body.py +123 -0
  44. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_cluster_capacity_reservation_body.py +53 -1
  45. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_machine_body.py +79 -1
  46. lightning_sdk/lightning_cloud/openapi/models/cluster_service_create_org_cluster_capacity_reservation_body.py +409 -0
  47. lightning_sdk/lightning_cloud/openapi/models/cluster_service_refresh_container_registry_credentials_body.py +97 -0
  48. lightning_sdk/lightning_cloud/openapi/models/cluster_service_report_machine_system_metrics_body.py +123 -0
  49. lightning_sdk/lightning_cloud/openapi/models/cluster_service_validate_container_registry_body.py +97 -0
  50. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +27 -1
  51. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_create_lit_logger_media_body.py +305 -0
  52. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_lit_logger_media_body.py +149 -0
  53. lightning_sdk/lightning_cloud/openapi/models/lit_logger_service_update_metrics_stream_body.py +53 -1
  54. lightning_sdk/lightning_cloud/openapi/models/v1_add_container_registry_response.py +123 -0
  55. lightning_sdk/lightning_cloud/openapi/models/v1_capacity_reservation_used_by.py +227 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +1 -1
  57. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +27 -1
  58. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +1 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_specialized_view.py +1 -0
  60. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  61. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
  62. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +53 -27
  63. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +0 -1
  64. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry.py +253 -0
  65. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_info.py +281 -0
  66. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_integration.py +123 -0
  67. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_status.py +105 -0
  68. lightning_sdk/lightning_cloud/openapi/models/v1_create_cloud_space_environment_template_request.py +27 -1
  69. lightning_sdk/lightning_cloud/openapi/models/v1_create_lit_logger_media_response.py +149 -0
  70. lightning_sdk/lightning_cloud/openapi/models/v1_create_org_cluster_capacity_reservation_response.py +201 -0
  71. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_request.py +29 -3
  72. lightning_sdk/lightning_cloud/openapi/models/v1_cudo_direct_v1.py +175 -0
  73. lightning_sdk/lightning_cloud/openapi/models/v1_delete_container_registry_response.py +97 -0
  74. lightning_sdk/lightning_cloud/openapi/models/v1_delete_lit_logger_media_response.py +97 -0
  75. lightning_sdk/lightning_cloud/openapi/models/v1_delete_virtual_machine_response.py +97 -0
  76. lightning_sdk/lightning_cloud/openapi/models/{v1_ai_pod_v1.py → v1_ecr_registry_config.py} +49 -49
  77. lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_config_input.py +123 -0
  78. lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_details.py +201 -0
  79. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -27
  80. lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +27 -1
  81. lightning_sdk/lightning_cloud/openapi/models/v1_get_artifacts_page_response.py +29 -3
  82. lightning_sdk/lightning_cloud/openapi/models/v1_get_kubernetes_pod_logs_response.py +149 -0
  83. lightning_sdk/lightning_cloud/openapi/models/{v1_get_machine_response.py → v1_get_kubernetes_pod_response.py} +23 -23
  84. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
  85. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  86. lightning_sdk/lightning_cloud/openapi/models/v1_joinable_organization.py +27 -1
  87. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_setting.py +149 -0
  88. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_type.py +108 -0
  89. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +53 -1
  90. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +105 -1
  91. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod.py +27 -1
  92. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_pod_logs_page.py +227 -0
  93. lightning_sdk/lightning_cloud/openapi/models/v1_kubevirt_config.py +357 -0
  94. lightning_sdk/lightning_cloud/openapi/models/v1_list_container_registries_response.py +123 -0
  95. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_response.py +43 -17
  96. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_pods_sort_order.py +104 -0
  97. lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_logger_media_response.py +149 -0
  98. lightning_sdk/lightning_cloud/openapi/models/v1_list_models_response.py +55 -3
  99. lightning_sdk/lightning_cloud/openapi/models/v1_list_virtual_machines_response.py +123 -0
  100. lightning_sdk/lightning_cloud/openapi/models/v1_lit_logger_media.py +513 -0
  101. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +53 -53
  102. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +107 -3
  103. lightning_sdk/lightning_cloud/openapi/models/v1_media_type.py +104 -0
  104. lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +29 -3
  105. lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +27 -1
  106. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
  107. lightning_sdk/lightning_cloud/openapi/models/v1_refresh_container_registry_credentials_response.py +123 -0
  108. lightning_sdk/lightning_cloud/openapi/models/v1_report_cloud_space_instance_idle_state_response.py +97 -0
  109. lightning_sdk/lightning_cloud/openapi/models/v1_report_machine_system_metrics_response.py +97 -0
  110. lightning_sdk/lightning_cloud/openapi/models/v1_search_user.py +27 -1
  111. lightning_sdk/lightning_cloud/openapi/models/v1_tenant_credentials.py +201 -0
  112. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +217 -113
  113. lightning_sdk/lightning_cloud/openapi/models/v1_validate_container_registry_response.py +149 -0
  114. lightning_sdk/lightning_cloud/openapi/models/v1_virtual_machine.py +409 -0
  115. lightning_sdk/lightning_cloud/openapi/models/v1_vm_configuration.py +149 -0
  116. lightning_sdk/lightning_cloud/openapi/models/v1_vm_provider_configuration.py +227 -0
  117. lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_create_virtual_machine_body.py +565 -0
  118. lightning_sdk/lightning_cloud/openapi/models/virtual_machine_service_update_virtual_machine_body.py +97 -0
  119. lightning_sdk/lightning_cloud/openapi/rest.py +2 -2
  120. lightning_sdk/lightning_cloud/rest_client.py +0 -2
  121. lightning_sdk/machine.py +3 -3
  122. lightning_sdk/mmt/base.py +26 -7
  123. lightning_sdk/mmt/mmt.py +11 -6
  124. lightning_sdk/mmt/v1.py +5 -2
  125. lightning_sdk/mmt/v2.py +5 -2
  126. lightning_sdk/organization.py +10 -1
  127. lightning_sdk/owner.py +4 -0
  128. lightning_sdk/plugin.py +2 -2
  129. lightning_sdk/studio.py +47 -6
  130. lightning_sdk/user.py +22 -2
  131. lightning_sdk/utils/logging.py +2 -1
  132. lightning_sdk/utils/resolve.py +9 -7
  133. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2026.1.22.dist-info}/METADATA +1 -5
  134. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2026.1.22.dist-info}/RECORD +139 -94
  135. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2026.1.22.dist-info}/WHEEL +1 -1
  136. lightning_sdk/lightning_cloud/cli/__main__.py +0 -29
  137. lightning_sdk/lightning_cloud/source_code/logs_socket_api.py +0 -103
  138. /lightning_sdk/lightning_cloud/openapi/models/{v1_list_filesystem_mm_ts_response.py → v1_list_filesystem_mmts_response.py} +0 -0
  139. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2026.1.22.dist-info}/LICENSE +0 -0
  140. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2026.1.22.dist-info}/entry_points.txt +0 -0
  141. {lightning_sdk-2025.12.16.dist-info → lightning_sdk-2026.1.22.dist-info}/top_level.txt +0 -0
@@ -42,15 +42,14 @@ class V1Machine(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'address': 'str',
45
- 'cloud_space_name': 'str',
46
45
  'cluster_id': 'str',
47
46
  'created_at': 'datetime',
48
- 'display_name': 'str',
49
47
  'id': 'str',
50
48
  'instance_type': 'str',
51
49
  'management_api_url': 'str',
52
50
  'name': 'str',
53
51
  'org_id': 'str',
52
+ 'private_address': 'str',
54
53
  'project_id': 'str',
55
54
  'provider': 'str',
56
55
  'provider_instance_id': 'str',
@@ -60,6 +59,7 @@ class V1Machine(object):
60
59
  'resource_id': 'str',
61
60
  'resource_type': 'str',
62
61
  'resources': 'V1Resources',
62
+ 'ssh_username': 'str',
63
63
  'status': 'str',
64
64
  'unschedulable': 'bool',
65
65
  'updated_at': 'datetime',
@@ -68,15 +68,14 @@ class V1Machine(object):
68
68
 
69
69
  attribute_map = {
70
70
  'address': 'address',
71
- 'cloud_space_name': 'cloudSpaceName',
72
71
  'cluster_id': 'clusterId',
73
72
  'created_at': 'createdAt',
74
- 'display_name': 'displayName',
75
73
  'id': 'id',
76
74
  'instance_type': 'instanceType',
77
75
  'management_api_url': 'managementApiUrl',
78
76
  'name': 'name',
79
77
  'org_id': 'orgId',
78
+ 'private_address': 'privateAddress',
80
79
  'project_id': 'projectId',
81
80
  'provider': 'provider',
82
81
  'provider_instance_id': 'providerInstanceId',
@@ -86,24 +85,24 @@ class V1Machine(object):
86
85
  'resource_id': 'resourceId',
87
86
  'resource_type': 'resourceType',
88
87
  'resources': 'resources',
88
+ 'ssh_username': 'sshUsername',
89
89
  'status': 'status',
90
90
  'unschedulable': 'unschedulable',
91
91
  'updated_at': 'updatedAt',
92
92
  'warning_message': 'warningMessage'
93
93
  }
94
94
 
95
- def __init__(self, address: 'str' =None, cloud_space_name: 'str' =None, cluster_id: 'str' =None, created_at: 'datetime' =None, display_name: 'str' =None, id: 'str' =None, instance_type: 'str' =None, management_api_url: 'str' =None, name: 'str' =None, org_id: 'str' =None, project_id: 'str' =None, provider: 'str' =None, provider_instance_id: 'str' =None, provider_region: 'str' =None, provisioning_method: 'str' =None, ready_at: 'datetime' =None, resource_id: 'str' =None, resource_type: 'str' =None, resources: 'V1Resources' =None, status: 'str' =None, unschedulable: 'bool' =None, updated_at: 'datetime' =None, warning_message: 'str' =None): # noqa: E501
95
+ def __init__(self, address: 'str' =None, cluster_id: 'str' =None, created_at: 'datetime' =None, id: 'str' =None, instance_type: 'str' =None, management_api_url: 'str' =None, name: 'str' =None, org_id: 'str' =None, private_address: 'str' =None, project_id: 'str' =None, provider: 'str' =None, provider_instance_id: 'str' =None, provider_region: 'str' =None, provisioning_method: 'str' =None, ready_at: 'datetime' =None, resource_id: 'str' =None, resource_type: 'str' =None, resources: 'V1Resources' =None, ssh_username: 'str' =None, status: 'str' =None, unschedulable: 'bool' =None, updated_at: 'datetime' =None, warning_message: 'str' =None): # noqa: E501
96
96
  """V1Machine - a model defined in Swagger""" # noqa: E501
97
97
  self._address = None
98
- self._cloud_space_name = None
99
98
  self._cluster_id = None
100
99
  self._created_at = None
101
- self._display_name = None
102
100
  self._id = None
103
101
  self._instance_type = None
104
102
  self._management_api_url = None
105
103
  self._name = None
106
104
  self._org_id = None
105
+ self._private_address = None
107
106
  self._project_id = None
108
107
  self._provider = None
109
108
  self._provider_instance_id = None
@@ -113,6 +112,7 @@ class V1Machine(object):
113
112
  self._resource_id = None
114
113
  self._resource_type = None
115
114
  self._resources = None
115
+ self._ssh_username = None
116
116
  self._status = None
117
117
  self._unschedulable = None
118
118
  self._updated_at = None
@@ -120,14 +120,10 @@ class V1Machine(object):
120
120
  self.discriminator = None
121
121
  if address is not None:
122
122
  self.address = address
123
- if cloud_space_name is not None:
124
- self.cloud_space_name = cloud_space_name
125
123
  if cluster_id is not None:
126
124
  self.cluster_id = cluster_id
127
125
  if created_at is not None:
128
126
  self.created_at = created_at
129
- if display_name is not None:
130
- self.display_name = display_name
131
127
  if id is not None:
132
128
  self.id = id
133
129
  if instance_type is not None:
@@ -138,6 +134,8 @@ class V1Machine(object):
138
134
  self.name = name
139
135
  if org_id is not None:
140
136
  self.org_id = org_id
137
+ if private_address is not None:
138
+ self.private_address = private_address
141
139
  if project_id is not None:
142
140
  self.project_id = project_id
143
141
  if provider is not None:
@@ -156,6 +154,8 @@ class V1Machine(object):
156
154
  self.resource_type = resource_type
157
155
  if resources is not None:
158
156
  self.resources = resources
157
+ if ssh_username is not None:
158
+ self.ssh_username = ssh_username
159
159
  if status is not None:
160
160
  self.status = status
161
161
  if unschedulable is not None:
@@ -186,27 +186,6 @@ class V1Machine(object):
186
186
 
187
187
  self._address = address
188
188
 
189
- @property
190
- def cloud_space_name(self) -> 'str':
191
- """Gets the cloud_space_name of this V1Machine. # noqa: E501
192
-
193
-
194
- :return: The cloud_space_name of this V1Machine. # noqa: E501
195
- :rtype: str
196
- """
197
- return self._cloud_space_name
198
-
199
- @cloud_space_name.setter
200
- def cloud_space_name(self, cloud_space_name: 'str'):
201
- """Sets the cloud_space_name of this V1Machine.
202
-
203
-
204
- :param cloud_space_name: The cloud_space_name of this V1Machine. # noqa: E501
205
- :type: str
206
- """
207
-
208
- self._cloud_space_name = cloud_space_name
209
-
210
189
  @property
211
190
  def cluster_id(self) -> 'str':
212
191
  """Gets the cluster_id of this V1Machine. # noqa: E501
@@ -249,27 +228,6 @@ class V1Machine(object):
249
228
 
250
229
  self._created_at = created_at
251
230
 
252
- @property
253
- def display_name(self) -> 'str':
254
- """Gets the display_name of this V1Machine. # noqa: E501
255
-
256
-
257
- :return: The display_name of this V1Machine. # noqa: E501
258
- :rtype: str
259
- """
260
- return self._display_name
261
-
262
- @display_name.setter
263
- def display_name(self, display_name: 'str'):
264
- """Sets the display_name of this V1Machine.
265
-
266
-
267
- :param display_name: The display_name of this V1Machine. # noqa: E501
268
- :type: str
269
- """
270
-
271
- self._display_name = display_name
272
-
273
231
  @property
274
232
  def id(self) -> 'str':
275
233
  """Gets the id of this V1Machine. # noqa: E501
@@ -375,6 +333,27 @@ class V1Machine(object):
375
333
 
376
334
  self._org_id = org_id
377
335
 
336
+ @property
337
+ def private_address(self) -> 'str':
338
+ """Gets the private_address of this V1Machine. # noqa: E501
339
+
340
+
341
+ :return: The private_address of this V1Machine. # noqa: E501
342
+ :rtype: str
343
+ """
344
+ return self._private_address
345
+
346
+ @private_address.setter
347
+ def private_address(self, private_address: 'str'):
348
+ """Sets the private_address of this V1Machine.
349
+
350
+
351
+ :param private_address: The private_address of this V1Machine. # noqa: E501
352
+ :type: str
353
+ """
354
+
355
+ self._private_address = private_address
356
+
378
357
  @property
379
358
  def project_id(self) -> 'str':
380
359
  """Gets the project_id of this V1Machine. # noqa: E501
@@ -564,6 +543,27 @@ class V1Machine(object):
564
543
 
565
544
  self._resources = resources
566
545
 
546
+ @property
547
+ def ssh_username(self) -> 'str':
548
+ """Gets the ssh_username of this V1Machine. # noqa: E501
549
+
550
+
551
+ :return: The ssh_username of this V1Machine. # noqa: E501
552
+ :rtype: str
553
+ """
554
+ return self._ssh_username
555
+
556
+ @ssh_username.setter
557
+ def ssh_username(self, ssh_username: 'str'):
558
+ """Sets the ssh_username of this V1Machine.
559
+
560
+
561
+ :param ssh_username: The ssh_username of this V1Machine. # noqa: E501
562
+ :type: str
563
+ """
564
+
565
+ self._ssh_username = ssh_username
566
+
567
567
  @property
568
568
  def status(self) -> 'str':
569
569
  """Gets the status of this V1Machine. # noqa: E501
@@ -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
@@ -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 = {}
@@ -44,6 +44,7 @@ class V1NodeMetrics(object):
44
44
  'cpu_capacity_cores': 'float',
45
45
  'cpu_util': 'float',
46
46
  'filesystem': 'dict(str, V1FilesystemMetrics)',
47
+ 'kubelet_failure': 'bool',
47
48
  'max_gpu_temp_recorded': 'float',
48
49
  'max_power_per_gpu': 'float',
49
50
  'mem_total': 'str',
@@ -70,6 +71,7 @@ class V1NodeMetrics(object):
70
71
  'cpu_capacity_cores': 'cpuCapacityCores',
71
72
  'cpu_util': 'cpuUtil',
72
73
  'filesystem': 'filesystem',
74
+ 'kubelet_failure': 'kubeletFailure',
73
75
  'max_gpu_temp_recorded': 'maxGpuTempRecorded',
74
76
  'max_power_per_gpu': 'maxPowerPerGpu',
75
77
  'mem_total': 'memTotal',
@@ -92,11 +94,12 @@ class V1NodeMetrics(object):
92
94
  'unschedulable': 'unschedulable'
93
95
  }
94
96
 
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
97
+ def __init__(self, cpu_capacity_cores: 'float' =None, cpu_util: 'float' =None, filesystem: 'dict(str, V1FilesystemMetrics)' =None, kubelet_failure: 'bool' =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
96
98
  """V1NodeMetrics - a model defined in Swagger""" # noqa: E501
97
99
  self._cpu_capacity_cores = None
98
100
  self._cpu_util = None
99
101
  self._filesystem = None
102
+ self._kubelet_failure = None
100
103
  self._max_gpu_temp_recorded = None
101
104
  self._max_power_per_gpu = None
102
105
  self._mem_total = None
@@ -124,6 +127,8 @@ class V1NodeMetrics(object):
124
127
  self.cpu_util = cpu_util
125
128
  if filesystem is not None:
126
129
  self.filesystem = filesystem
130
+ if kubelet_failure is not None:
131
+ self.kubelet_failure = kubelet_failure
127
132
  if max_gpu_temp_recorded is not None:
128
133
  self.max_gpu_temp_recorded = max_gpu_temp_recorded
129
134
  if max_power_per_gpu is not None:
@@ -228,6 +233,27 @@ class V1NodeMetrics(object):
228
233
 
229
234
  self._filesystem = filesystem
230
235
 
236
+ @property
237
+ def kubelet_failure(self) -> 'bool':
238
+ """Gets the kubelet_failure of this V1NodeMetrics. # noqa: E501
239
+
240
+
241
+ :return: The kubelet_failure of this V1NodeMetrics. # noqa: E501
242
+ :rtype: bool
243
+ """
244
+ return self._kubelet_failure
245
+
246
+ @kubelet_failure.setter
247
+ def kubelet_failure(self, kubelet_failure: 'bool'):
248
+ """Sets the kubelet_failure of this V1NodeMetrics.
249
+
250
+
251
+ :param kubelet_failure: The kubelet_failure of this V1NodeMetrics. # noqa: E501
252
+ :type: bool
253
+ """
254
+
255
+ self._kubelet_failure = kubelet_failure
256
+
231
257
  @property
232
258
  def max_gpu_temp_recorded(self) -> 'float':
233
259
  """Gets the max_gpu_temp_recorded of this V1NodeMetrics. # noqa: E501