lightning-sdk 2025.9.16__py3-none-any.whl → 2025.9.29__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 (78) hide show
  1. lightning_sdk/__init__.py +4 -3
  2. lightning_sdk/api/cloud_account_api.py +12 -1
  3. lightning_sdk/api/job_api.py +12 -11
  4. lightning_sdk/api/mmt_api.py +1 -1
  5. lightning_sdk/api/studio_api.py +1 -1
  6. lightning_sdk/api/teamspace_api.py +18 -0
  7. lightning_sdk/api/user_api.py +8 -2
  8. lightning_sdk/cli/entrypoint.py +3 -1
  9. lightning_sdk/cli/groups.py +8 -1
  10. lightning_sdk/cli/legacy/entrypoint.py +1 -1
  11. lightning_sdk/cli/studio/create.py +19 -5
  12. lightning_sdk/cli/studio/delete.py +9 -5
  13. lightning_sdk/cli/studio/list.py +5 -1
  14. lightning_sdk/cli/studio/ssh.py +9 -3
  15. lightning_sdk/cli/studio/start.py +26 -3
  16. lightning_sdk/cli/studio/stop.py +7 -3
  17. lightning_sdk/cli/studio/switch.py +21 -5
  18. lightning_sdk/cli/utils/owner_selection.py +110 -0
  19. lightning_sdk/cli/utils/studio_selection.py +22 -15
  20. lightning_sdk/cli/utils/teamspace_selection.py +63 -62
  21. lightning_sdk/cli/vm/__init__.py +20 -0
  22. lightning_sdk/cli/vm/create.py +33 -0
  23. lightning_sdk/cli/vm/delete.py +25 -0
  24. lightning_sdk/cli/vm/list.py +30 -0
  25. lightning_sdk/cli/vm/ssh.py +31 -0
  26. lightning_sdk/cli/vm/start.py +60 -0
  27. lightning_sdk/cli/vm/stop.py +25 -0
  28. lightning_sdk/cli/vm/switch.py +38 -0
  29. lightning_sdk/lightning_cloud/openapi/__init__.py +20 -1
  30. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +2 -95
  31. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +24 -8
  32. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +420 -0
  33. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +121 -0
  34. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +655 -0
  35. lightning_sdk/lightning_cloud/openapi/models/__init__.py +20 -1
  36. lightning_sdk/lightning_cloud/openapi/models/create_machine_request_represents_the_request_to_create_a_machine.py +435 -0
  37. lightning_sdk/lightning_cloud/openapi/models/job_id_reportroutingtelemetry_body.py +123 -0
  38. lightning_sdk/lightning_cloud/openapi/models/project_id_storagetransfers_body.py +149 -0
  39. lightning_sdk/lightning_cloud/openapi/models/user_id_affiliatelinks_body.py +107 -3
  40. lightning_sdk/lightning_cloud/openapi/models/v1_abort_storage_transfer_response.py +97 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_session_daily_aggregated.py +27 -1
  42. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +2 -0
  43. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  44. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +53 -1
  45. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +1 -0
  46. lightning_sdk/lightning_cloud/openapi/models/v1_create_machine_response.py +123 -0
  47. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +27 -1
  48. lightning_sdk/lightning_cloud/openapi/models/v1_delete_machine_response.py +97 -0
  49. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -1
  50. lightning_sdk/lightning_cloud/openapi/models/v1_get_machine_response.py +123 -0
  51. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
  52. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +27 -1
  53. lightning_sdk/lightning_cloud/openapi/models/v1_lightning_elastic_cluster_v1.py +97 -0
  54. lightning_sdk/lightning_cloud/openapi/models/{v1_get_model_total_usage_metrics_response.py → v1_list_machines_response.py} +37 -37
  55. lightning_sdk/lightning_cloud/openapi/models/v1_list_storage_transfers_response.py +123 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +539 -0
  57. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +123 -0
  58. lightning_sdk/lightning_cloud/openapi/models/v1_pause_storage_transfer_response.py +97 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_purchase_annual_upsell_request.py +123 -0
  60. lightning_sdk/lightning_cloud/openapi/models/v1_report_deployment_routing_telemetry_response.py +97 -0
  61. lightning_sdk/lightning_cloud/openapi/models/v1_resume_storage_transfer_response.py +97 -0
  62. lightning_sdk/lightning_cloud/openapi/models/v1_routing_telemetry.py +79 -1
  63. lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +1 -0
  64. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py +149 -0
  65. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier_type.py +105 -0
  66. lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer.py +435 -0
  67. lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer_status.py +108 -0
  68. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +27 -1
  69. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +105 -79
  70. lightning_sdk/machine.py +16 -1
  71. lightning_sdk/studio.py +55 -11
  72. lightning_sdk/teamspace.py +65 -2
  73. {lightning_sdk-2025.9.16.dist-info → lightning_sdk-2025.9.29.dist-info}/METADATA +1 -1
  74. {lightning_sdk-2025.9.16.dist-info → lightning_sdk-2025.9.29.dist-info}/RECORD +78 -50
  75. {lightning_sdk-2025.9.16.dist-info → lightning_sdk-2025.9.29.dist-info}/LICENSE +0 -0
  76. {lightning_sdk-2025.9.16.dist-info → lightning_sdk-2025.9.29.dist-info}/WHEEL +0 -0
  77. {lightning_sdk-2025.9.16.dist-info → lightning_sdk-2025.9.29.dist-info}/entry_points.txt +0 -0
  78. {lightning_sdk-2025.9.16.dist-info → lightning_sdk-2025.9.29.dist-info}/top_level.txt +0 -0
@@ -58,8 +58,10 @@ class V1ClusterSpec(object):
58
58
  'insurer_disabled': 'bool',
59
59
  'kubernetes_v1': 'V1KubernetesDirectV1',
60
60
  'lambda_labs_v1': 'V1LambdaLabsDirectV1',
61
+ 'lightning_elastic_cluster_v1': 'V1LightningElasticClusterV1',
61
62
  'lock_overprovisioning': 'bool',
62
63
  'locked_zones': 'list[str]',
64
+ 'machine_v1': 'V1MachineDirectV1',
63
65
  'monitor_deletion_disabled': 'bool',
64
66
  'nebius_v1': 'V1NebiusDirectV1',
65
67
  'overprovisioning': 'list[V1InstanceOverprovisioningSpec]',
@@ -96,8 +98,10 @@ class V1ClusterSpec(object):
96
98
  'insurer_disabled': 'insurerDisabled',
97
99
  'kubernetes_v1': 'kubernetesV1',
98
100
  'lambda_labs_v1': 'lambdaLabsV1',
101
+ 'lightning_elastic_cluster_v1': 'lightningElasticClusterV1',
99
102
  'lock_overprovisioning': 'lockOverprovisioning',
100
103
  'locked_zones': 'lockedZones',
104
+ 'machine_v1': 'machineV1',
101
105
  'monitor_deletion_disabled': 'monitorDeletionDisabled',
102
106
  'nebius_v1': 'nebiusV1',
103
107
  'overprovisioning': 'overprovisioning',
@@ -116,7 +120,7 @@ class V1ClusterSpec(object):
116
120
  'vultr_v1': 'vultrV1'
117
121
  }
118
122
 
119
- def __init__(self, ai_pod_v1: 'V1AiPodV1' =None, auth_token: 'str' =None, available_accelerators: 'list[str]' =None, aws_v1: 'V1AWSDirectV1' =None, cloud_pricing_enabled: 'bool' =None, cloudflare_v1: 'V1CloudflareV1' =None, cluster_type: 'V1ClusterType' =None, compute_cluster_ids: 'list[str]' =None, deletion_options: 'V1ClusterDeletionOptions' =None, desired_state: 'V1ClusterState' =None, domain: 'str' =None, driver: 'V1CloudProvider' =None, freeze_accelerators: 'bool' =None, google_cloud_v1: 'V1GoogleCloudDirectV1' =None, insurer_disabled: 'bool' =None, kubernetes_v1: 'V1KubernetesDirectV1' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, lock_overprovisioning: 'bool' =None, locked_zones: 'list[str]' =None, monitor_deletion_disabled: 'bool' =None, nebius_v1: 'V1NebiusDirectV1' =None, overprovisioning: 'list[V1InstanceOverprovisioningSpec]' =None, parent_cluster_id: 'str' =None, parent_cluster_type: 'str' =None, pause_automation: 'bool' =None, reservation_details: 'V1ReservationDetails' =None, reserved_capacity_provider: 'bool' =None, reserved_instances_only: 'bool' =None, security_options: 'V1ClusterSecurityOptions' =None, slurm_v1: 'V1SlurmV1' =None, tagging_options: 'V1ClusterTaggingOptions' =None, user_id: 'str' =None, vibe_coding_enabled: 'bool' =None, voltage_park_v1: 'V1VoltageParkDirectV1' =None, vultr_v1: 'V1VultrDirectV1' =None): # noqa: E501
123
+ def __init__(self, ai_pod_v1: 'V1AiPodV1' =None, auth_token: 'str' =None, available_accelerators: 'list[str]' =None, aws_v1: 'V1AWSDirectV1' =None, cloud_pricing_enabled: 'bool' =None, cloudflare_v1: 'V1CloudflareV1' =None, cluster_type: 'V1ClusterType' =None, compute_cluster_ids: 'list[str]' =None, deletion_options: 'V1ClusterDeletionOptions' =None, desired_state: 'V1ClusterState' =None, domain: 'str' =None, driver: 'V1CloudProvider' =None, freeze_accelerators: 'bool' =None, google_cloud_v1: 'V1GoogleCloudDirectV1' =None, insurer_disabled: 'bool' =None, kubernetes_v1: 'V1KubernetesDirectV1' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, lightning_elastic_cluster_v1: 'V1LightningElasticClusterV1' =None, lock_overprovisioning: 'bool' =None, locked_zones: 'list[str]' =None, machine_v1: 'V1MachineDirectV1' =None, monitor_deletion_disabled: 'bool' =None, nebius_v1: 'V1NebiusDirectV1' =None, overprovisioning: 'list[V1InstanceOverprovisioningSpec]' =None, parent_cluster_id: 'str' =None, parent_cluster_type: 'str' =None, pause_automation: 'bool' =None, reservation_details: 'V1ReservationDetails' =None, reserved_capacity_provider: 'bool' =None, reserved_instances_only: 'bool' =None, security_options: 'V1ClusterSecurityOptions' =None, slurm_v1: 'V1SlurmV1' =None, tagging_options: 'V1ClusterTaggingOptions' =None, user_id: 'str' =None, vibe_coding_enabled: 'bool' =None, voltage_park_v1: 'V1VoltageParkDirectV1' =None, vultr_v1: 'V1VultrDirectV1' =None): # noqa: E501
120
124
  """V1ClusterSpec - a model defined in Swagger""" # noqa: E501
121
125
  self._ai_pod_v1 = None
122
126
  self._auth_token = None
@@ -135,8 +139,10 @@ class V1ClusterSpec(object):
135
139
  self._insurer_disabled = None
136
140
  self._kubernetes_v1 = None
137
141
  self._lambda_labs_v1 = None
142
+ self._lightning_elastic_cluster_v1 = None
138
143
  self._lock_overprovisioning = None
139
144
  self._locked_zones = None
145
+ self._machine_v1 = None
140
146
  self._monitor_deletion_disabled = None
141
147
  self._nebius_v1 = None
142
148
  self._overprovisioning = None
@@ -188,10 +194,14 @@ class V1ClusterSpec(object):
188
194
  self.kubernetes_v1 = kubernetes_v1
189
195
  if lambda_labs_v1 is not None:
190
196
  self.lambda_labs_v1 = lambda_labs_v1
197
+ if lightning_elastic_cluster_v1 is not None:
198
+ self.lightning_elastic_cluster_v1 = lightning_elastic_cluster_v1
191
199
  if lock_overprovisioning is not None:
192
200
  self.lock_overprovisioning = lock_overprovisioning
193
201
  if locked_zones is not None:
194
202
  self.locked_zones = locked_zones
203
+ if machine_v1 is not None:
204
+ self.machine_v1 = machine_v1
195
205
  if monitor_deletion_disabled is not None:
196
206
  self.monitor_deletion_disabled = monitor_deletion_disabled
197
207
  if nebius_v1 is not None:
@@ -584,6 +594,27 @@ class V1ClusterSpec(object):
584
594
 
585
595
  self._lambda_labs_v1 = lambda_labs_v1
586
596
 
597
+ @property
598
+ def lightning_elastic_cluster_v1(self) -> 'V1LightningElasticClusterV1':
599
+ """Gets the lightning_elastic_cluster_v1 of this V1ClusterSpec. # noqa: E501
600
+
601
+
602
+ :return: The lightning_elastic_cluster_v1 of this V1ClusterSpec. # noqa: E501
603
+ :rtype: V1LightningElasticClusterV1
604
+ """
605
+ return self._lightning_elastic_cluster_v1
606
+
607
+ @lightning_elastic_cluster_v1.setter
608
+ def lightning_elastic_cluster_v1(self, lightning_elastic_cluster_v1: 'V1LightningElasticClusterV1'):
609
+ """Sets the lightning_elastic_cluster_v1 of this V1ClusterSpec.
610
+
611
+
612
+ :param lightning_elastic_cluster_v1: The lightning_elastic_cluster_v1 of this V1ClusterSpec. # noqa: E501
613
+ :type: V1LightningElasticClusterV1
614
+ """
615
+
616
+ self._lightning_elastic_cluster_v1 = lightning_elastic_cluster_v1
617
+
587
618
  @property
588
619
  def lock_overprovisioning(self) -> 'bool':
589
620
  """Gets the lock_overprovisioning of this V1ClusterSpec. # noqa: E501
@@ -626,6 +657,27 @@ class V1ClusterSpec(object):
626
657
 
627
658
  self._locked_zones = locked_zones
628
659
 
660
+ @property
661
+ def machine_v1(self) -> 'V1MachineDirectV1':
662
+ """Gets the machine_v1 of this V1ClusterSpec. # noqa: E501
663
+
664
+
665
+ :return: The machine_v1 of this V1ClusterSpec. # noqa: E501
666
+ :rtype: V1MachineDirectV1
667
+ """
668
+ return self._machine_v1
669
+
670
+ @machine_v1.setter
671
+ def machine_v1(self, machine_v1: 'V1MachineDirectV1'):
672
+ """Sets the machine_v1 of this V1ClusterSpec.
673
+
674
+
675
+ :param machine_v1: The machine_v1 of this V1ClusterSpec. # noqa: E501
676
+ :type: V1MachineDirectV1
677
+ """
678
+
679
+ self._machine_v1 = machine_v1
680
+
629
681
  @property
630
682
  def monitor_deletion_disabled(self) -> 'bool':
631
683
  """Gets the monitor_deletion_disabled of this V1ClusterSpec. # noqa: E501
@@ -42,6 +42,7 @@ class V1ClusterType(object):
42
42
  BYOC = "CLUSTER_TYPE_BYOC"
43
43
  SLURM = "CLUSTER_TYPE_SLURM"
44
44
  AI_POD = "CLUSTER_TYPE_AI_POD"
45
+ LEC = "CLUSTER_TYPE_LEC"
45
46
  """
46
47
  Attributes:
47
48
  swagger_types (dict): The key is attribute name
@@ -0,0 +1,123 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ external/v1/auth_service.proto
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: version not set
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+
12
+ NOTE
13
+ ----
14
+ standard swagger-codegen-cli for this python client has been modified
15
+ by custom templates. The purpose of these templates is to include
16
+ typing information in the API and Model code. Please refer to the
17
+ main grid repository for more info
18
+ """
19
+
20
+ import pprint
21
+ import re # noqa: F401
22
+
23
+ from typing import TYPE_CHECKING
24
+
25
+ import six
26
+
27
+ if TYPE_CHECKING:
28
+ from datetime import datetime
29
+ from lightning_sdk.lightning_cloud.openapi.models import *
30
+
31
+ class V1CreateMachineResponse(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
+ 'machine': 'V1Machine'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'machine': 'machine'
49
+ }
50
+
51
+ def __init__(self, machine: 'V1Machine' =None): # noqa: E501
52
+ """V1CreateMachineResponse - a model defined in Swagger""" # noqa: E501
53
+ self._machine = None
54
+ self.discriminator = None
55
+ if machine is not None:
56
+ self.machine = machine
57
+
58
+ @property
59
+ def machine(self) -> 'V1Machine':
60
+ """Gets the machine of this V1CreateMachineResponse. # noqa: E501
61
+
62
+
63
+ :return: The machine of this V1CreateMachineResponse. # noqa: E501
64
+ :rtype: V1Machine
65
+ """
66
+ return self._machine
67
+
68
+ @machine.setter
69
+ def machine(self, machine: 'V1Machine'):
70
+ """Sets the machine of this V1CreateMachineResponse.
71
+
72
+
73
+ :param machine: The machine of this V1CreateMachineResponse. # noqa: E501
74
+ :type: V1Machine
75
+ """
76
+
77
+ self._machine = machine
78
+
79
+ def to_dict(self) -> dict:
80
+ """Returns the model properties as a dict"""
81
+ result = {}
82
+
83
+ for attr, _ in six.iteritems(self.swagger_types):
84
+ value = getattr(self, attr)
85
+ if isinstance(value, list):
86
+ result[attr] = list(map(
87
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
88
+ value
89
+ ))
90
+ elif hasattr(value, "to_dict"):
91
+ result[attr] = value.to_dict()
92
+ elif isinstance(value, dict):
93
+ result[attr] = dict(map(
94
+ lambda item: (item[0], item[1].to_dict())
95
+ if hasattr(item[1], "to_dict") else item,
96
+ value.items()
97
+ ))
98
+ else:
99
+ result[attr] = value
100
+ if issubclass(V1CreateMachineResponse, dict):
101
+ for key, value in self.items():
102
+ result[key] = value
103
+
104
+ return result
105
+
106
+ def to_str(self) -> str:
107
+ """Returns the string representation of the model"""
108
+ return pprint.pformat(self.to_dict())
109
+
110
+ def __repr__(self) -> str:
111
+ """For `print` and `pprint`"""
112
+ return self.to_str()
113
+
114
+ def __eq__(self, other: 'V1CreateMachineResponse') -> bool:
115
+ """Returns true if both objects are equal"""
116
+ if not isinstance(other, V1CreateMachineResponse):
117
+ return False
118
+
119
+ return self.__dict__ == other.__dict__
120
+
121
+ def __ne__(self, other: 'V1CreateMachineResponse') -> bool:
122
+ """Returns true if both objects are not equal"""
123
+ return not self == other
@@ -48,6 +48,7 @@ class V1CreateProjectRequest(object):
48
48
  'default_machine_type': 'str',
49
49
  'description': 'str',
50
50
  'display_name': 'str',
51
+ 'layout_config': 'list[V1ProjectTab]',
51
52
  'name': 'str',
52
53
  'organization_id': 'str',
53
54
  'preferred_cluster': 'str',
@@ -62,13 +63,14 @@ class V1CreateProjectRequest(object):
62
63
  'default_machine_type': 'defaultMachineType',
63
64
  'description': 'description',
64
65
  'display_name': 'displayName',
66
+ 'layout_config': 'layoutConfig',
65
67
  'name': 'name',
66
68
  'organization_id': 'organizationId',
67
69
  'preferred_cluster': 'preferredCluster',
68
70
  'quotas': 'quotas'
69
71
  }
70
72
 
71
- def __init__(self, allow_credits_auto_replenish: 'bool' =None, auto_replenish_amount: 'float' =None, auto_replenish_threshold: 'float' =None, default_machine_image_version: 'str' =None, default_machine_type: 'str' =None, description: 'str' =None, display_name: 'str' =None, name: 'str' =None, organization_id: 'str' =None, preferred_cluster: 'str' =None, quotas: 'V1Quotas' =None): # noqa: E501
73
+ def __init__(self, allow_credits_auto_replenish: 'bool' =None, auto_replenish_amount: 'float' =None, auto_replenish_threshold: 'float' =None, default_machine_image_version: 'str' =None, default_machine_type: 'str' =None, description: 'str' =None, display_name: 'str' =None, layout_config: 'list[V1ProjectTab]' =None, name: 'str' =None, organization_id: 'str' =None, preferred_cluster: 'str' =None, quotas: 'V1Quotas' =None): # noqa: E501
72
74
  """V1CreateProjectRequest - a model defined in Swagger""" # noqa: E501
73
75
  self._allow_credits_auto_replenish = None
74
76
  self._auto_replenish_amount = None
@@ -77,6 +79,7 @@ class V1CreateProjectRequest(object):
77
79
  self._default_machine_type = None
78
80
  self._description = None
79
81
  self._display_name = None
82
+ self._layout_config = None
80
83
  self._name = None
81
84
  self._organization_id = None
82
85
  self._preferred_cluster = None
@@ -96,6 +99,8 @@ class V1CreateProjectRequest(object):
96
99
  self.description = description
97
100
  if display_name is not None:
98
101
  self.display_name = display_name
102
+ if layout_config is not None:
103
+ self.layout_config = layout_config
99
104
  if name is not None:
100
105
  self.name = name
101
106
  if organization_id is not None:
@@ -252,6 +257,27 @@ class V1CreateProjectRequest(object):
252
257
 
253
258
  self._display_name = display_name
254
259
 
260
+ @property
261
+ def layout_config(self) -> 'list[V1ProjectTab]':
262
+ """Gets the layout_config of this V1CreateProjectRequest. # noqa: E501
263
+
264
+
265
+ :return: The layout_config of this V1CreateProjectRequest. # noqa: E501
266
+ :rtype: list[V1ProjectTab]
267
+ """
268
+ return self._layout_config
269
+
270
+ @layout_config.setter
271
+ def layout_config(self, layout_config: 'list[V1ProjectTab]'):
272
+ """Sets the layout_config of this V1CreateProjectRequest.
273
+
274
+
275
+ :param layout_config: The layout_config of this V1CreateProjectRequest. # noqa: E501
276
+ :type: list[V1ProjectTab]
277
+ """
278
+
279
+ self._layout_config = layout_config
280
+
255
281
  @property
256
282
  def name(self) -> 'str':
257
283
  """Gets the name of this V1CreateProjectRequest. # noqa: E501
@@ -0,0 +1,97 @@
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 V1DeleteMachineResponse(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
+ }
45
+
46
+ attribute_map = {
47
+ }
48
+
49
+ def __init__(self): # noqa: E501
50
+ """V1DeleteMachineResponse - a model defined in Swagger""" # noqa: E501
51
+ self.discriminator = None
52
+
53
+ def to_dict(self) -> dict:
54
+ """Returns the model properties as a dict"""
55
+ result = {}
56
+
57
+ for attr, _ in six.iteritems(self.swagger_types):
58
+ value = getattr(self, attr)
59
+ if isinstance(value, list):
60
+ result[attr] = list(map(
61
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
62
+ value
63
+ ))
64
+ elif hasattr(value, "to_dict"):
65
+ result[attr] = value.to_dict()
66
+ elif isinstance(value, dict):
67
+ result[attr] = dict(map(
68
+ lambda item: (item[0], item[1].to_dict())
69
+ if hasattr(item[1], "to_dict") else item,
70
+ value.items()
71
+ ))
72
+ else:
73
+ result[attr] = value
74
+ if issubclass(V1DeleteMachineResponse, dict):
75
+ for key, value in self.items():
76
+ result[key] = value
77
+
78
+ return result
79
+
80
+ def to_str(self) -> str:
81
+ """Returns the string representation of the model"""
82
+ return pprint.pformat(self.to_dict())
83
+
84
+ def __repr__(self) -> str:
85
+ """For `print` and `pprint`"""
86
+ return self.to_str()
87
+
88
+ def __eq__(self, other: 'V1DeleteMachineResponse') -> bool:
89
+ """Returns true if both objects are equal"""
90
+ if not isinstance(other, V1DeleteMachineResponse):
91
+ return False
92
+
93
+ return self.__dict__ == other.__dict__
94
+
95
+ def __ne__(self, other: 'V1DeleteMachineResponse') -> bool:
96
+ """Returns true if both objects are not equal"""
97
+ return not self == other
@@ -56,6 +56,7 @@ class V1ExternalClusterSpec(object):
56
56
  'kubernetes_v1': 'V1KubernetesDirectV1',
57
57
  'lambda_labs_v1': 'V1LambdaLabsDirectV1',
58
58
  'locked_zones': 'list[str]',
59
+ 'machine_v1': 'V1MachineDirectV1',
59
60
  'monitor_deletion_disabled': 'bool',
60
61
  'nebius_v1': 'V1NebiusDirectV1',
61
62
  'overprovisioning': 'list[V1InstanceOverprovisioningSpec]',
@@ -89,6 +90,7 @@ class V1ExternalClusterSpec(object):
89
90
  'kubernetes_v1': 'kubernetesV1',
90
91
  'lambda_labs_v1': 'lambdaLabsV1',
91
92
  'locked_zones': 'lockedZones',
93
+ 'machine_v1': 'machineV1',
92
94
  'monitor_deletion_disabled': 'monitorDeletionDisabled',
93
95
  'nebius_v1': 'nebiusV1',
94
96
  'overprovisioning': 'overprovisioning',
@@ -106,7 +108,7 @@ class V1ExternalClusterSpec(object):
106
108
  'vultr_v1': 'vultrV1'
107
109
  }
108
110
 
109
- def __init__(self, ai_pod_v1: 'V1AiPodV1' =None, auth_token: 'str' =None, available_accelerators: 'list[str]' =None, aws_v1: 'V1AWSDirectV1' =None, cloudflare_v1: 'V1CloudflareV1' =None, cluster_type: 'V1ClusterType' =None, compute_cluster_ids: 'list[str]' =None, deletion_options: 'V1ClusterDeletionOptions' =None, desired_state: 'V1ClusterState' =None, domain: 'str' =None, driver: 'V1CloudProvider' =None, google_cloud_v1: 'V1GoogleCloudDirectV1' =None, kubernetes_v1: 'V1KubernetesDirectV1' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, locked_zones: 'list[str]' =None, monitor_deletion_disabled: 'bool' =None, nebius_v1: 'V1NebiusDirectV1' =None, overprovisioning: 'list[V1InstanceOverprovisioningSpec]' =None, parent_cluster_id: 'str' =None, parent_cluster_type: 'str' =None, pause_automation: 'bool' =None, reservation_details: 'V1ReservationDetails' =None, reserved_capacity_provider: 'bool' =None, reserved_instances_only: 'bool' =None, security_options: 'V1ClusterSecurityOptions' =None, slurm_v1: 'V1SlurmV1' =None, tagging_options: 'V1ClusterTaggingOptions' =None, user_id: 'str' =None, voltage_park_v1: 'V1VoltageParkDirectV1' =None, vultr_v1: 'V1VultrDirectV1' =None): # noqa: E501
111
+ def __init__(self, ai_pod_v1: 'V1AiPodV1' =None, auth_token: 'str' =None, available_accelerators: 'list[str]' =None, aws_v1: 'V1AWSDirectV1' =None, cloudflare_v1: 'V1CloudflareV1' =None, cluster_type: 'V1ClusterType' =None, compute_cluster_ids: 'list[str]' =None, deletion_options: 'V1ClusterDeletionOptions' =None, desired_state: 'V1ClusterState' =None, domain: 'str' =None, driver: 'V1CloudProvider' =None, google_cloud_v1: 'V1GoogleCloudDirectV1' =None, kubernetes_v1: 'V1KubernetesDirectV1' =None, lambda_labs_v1: 'V1LambdaLabsDirectV1' =None, locked_zones: 'list[str]' =None, machine_v1: 'V1MachineDirectV1' =None, monitor_deletion_disabled: 'bool' =None, nebius_v1: 'V1NebiusDirectV1' =None, overprovisioning: 'list[V1InstanceOverprovisioningSpec]' =None, parent_cluster_id: 'str' =None, parent_cluster_type: 'str' =None, pause_automation: 'bool' =None, reservation_details: 'V1ReservationDetails' =None, reserved_capacity_provider: 'bool' =None, reserved_instances_only: 'bool' =None, security_options: 'V1ClusterSecurityOptions' =None, slurm_v1: 'V1SlurmV1' =None, tagging_options: 'V1ClusterTaggingOptions' =None, user_id: 'str' =None, voltage_park_v1: 'V1VoltageParkDirectV1' =None, vultr_v1: 'V1VultrDirectV1' =None): # noqa: E501
110
112
  """V1ExternalClusterSpec - a model defined in Swagger""" # noqa: E501
111
113
  self._ai_pod_v1 = None
112
114
  self._auth_token = None
@@ -123,6 +125,7 @@ class V1ExternalClusterSpec(object):
123
125
  self._kubernetes_v1 = None
124
126
  self._lambda_labs_v1 = None
125
127
  self._locked_zones = None
128
+ self._machine_v1 = None
126
129
  self._monitor_deletion_disabled = None
127
130
  self._nebius_v1 = None
128
131
  self._overprovisioning = None
@@ -169,6 +172,8 @@ class V1ExternalClusterSpec(object):
169
172
  self.lambda_labs_v1 = lambda_labs_v1
170
173
  if locked_zones is not None:
171
174
  self.locked_zones = locked_zones
175
+ if machine_v1 is not None:
176
+ self.machine_v1 = machine_v1
172
177
  if monitor_deletion_disabled is not None:
173
178
  self.monitor_deletion_disabled = monitor_deletion_disabled
174
179
  if nebius_v1 is not None:
@@ -517,6 +522,27 @@ class V1ExternalClusterSpec(object):
517
522
 
518
523
  self._locked_zones = locked_zones
519
524
 
525
+ @property
526
+ def machine_v1(self) -> 'V1MachineDirectV1':
527
+ """Gets the machine_v1 of this V1ExternalClusterSpec. # noqa: E501
528
+
529
+
530
+ :return: The machine_v1 of this V1ExternalClusterSpec. # noqa: E501
531
+ :rtype: V1MachineDirectV1
532
+ """
533
+ return self._machine_v1
534
+
535
+ @machine_v1.setter
536
+ def machine_v1(self, machine_v1: 'V1MachineDirectV1'):
537
+ """Sets the machine_v1 of this V1ExternalClusterSpec.
538
+
539
+
540
+ :param machine_v1: The machine_v1 of this V1ExternalClusterSpec. # noqa: E501
541
+ :type: V1MachineDirectV1
542
+ """
543
+
544
+ self._machine_v1 = machine_v1
545
+
520
546
  @property
521
547
  def monitor_deletion_disabled(self) -> 'bool':
522
548
  """Gets the monitor_deletion_disabled of this V1ExternalClusterSpec. # noqa: E501
@@ -0,0 +1,123 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ external/v1/auth_service.proto
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: version not set
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+
12
+ NOTE
13
+ ----
14
+ standard swagger-codegen-cli for this python client has been modified
15
+ by custom templates. The purpose of these templates is to include
16
+ typing information in the API and Model code. Please refer to the
17
+ main grid repository for more info
18
+ """
19
+
20
+ import pprint
21
+ import re # noqa: F401
22
+
23
+ from typing import TYPE_CHECKING
24
+
25
+ import six
26
+
27
+ if TYPE_CHECKING:
28
+ from datetime import datetime
29
+ from lightning_sdk.lightning_cloud.openapi.models import *
30
+
31
+ class V1GetMachineResponse(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
+ 'machine': 'V1Machine'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'machine': 'machine'
49
+ }
50
+
51
+ def __init__(self, machine: 'V1Machine' =None): # noqa: E501
52
+ """V1GetMachineResponse - a model defined in Swagger""" # noqa: E501
53
+ self._machine = None
54
+ self.discriminator = None
55
+ if machine is not None:
56
+ self.machine = machine
57
+
58
+ @property
59
+ def machine(self) -> 'V1Machine':
60
+ """Gets the machine of this V1GetMachineResponse. # noqa: E501
61
+
62
+
63
+ :return: The machine of this V1GetMachineResponse. # noqa: E501
64
+ :rtype: V1Machine
65
+ """
66
+ return self._machine
67
+
68
+ @machine.setter
69
+ def machine(self, machine: 'V1Machine'):
70
+ """Sets the machine of this V1GetMachineResponse.
71
+
72
+
73
+ :param machine: The machine of this V1GetMachineResponse. # noqa: E501
74
+ :type: V1Machine
75
+ """
76
+
77
+ self._machine = machine
78
+
79
+ def to_dict(self) -> dict:
80
+ """Returns the model properties as a dict"""
81
+ result = {}
82
+
83
+ for attr, _ in six.iteritems(self.swagger_types):
84
+ value = getattr(self, attr)
85
+ if isinstance(value, list):
86
+ result[attr] = list(map(
87
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
88
+ value
89
+ ))
90
+ elif hasattr(value, "to_dict"):
91
+ result[attr] = value.to_dict()
92
+ elif isinstance(value, dict):
93
+ result[attr] = dict(map(
94
+ lambda item: (item[0], item[1].to_dict())
95
+ if hasattr(item[1], "to_dict") else item,
96
+ value.items()
97
+ ))
98
+ else:
99
+ result[attr] = value
100
+ if issubclass(V1GetMachineResponse, dict):
101
+ for key, value in self.items():
102
+ result[key] = value
103
+
104
+ return result
105
+
106
+ def to_str(self) -> str:
107
+ """Returns the string representation of the model"""
108
+ return pprint.pformat(self.to_dict())
109
+
110
+ def __repr__(self) -> str:
111
+ """For `print` and `pprint`"""
112
+ return self.to_str()
113
+
114
+ def __eq__(self, other: 'V1GetMachineResponse') -> bool:
115
+ """Returns true if both objects are equal"""
116
+ if not isinstance(other, V1GetMachineResponse):
117
+ return False
118
+
119
+ return self.__dict__ == other.__dict__
120
+
121
+ def __ne__(self, other: 'V1GetMachineResponse') -> bool:
122
+ """Returns true if both objects are not equal"""
123
+ return not self == other