lightning-sdk 0.2.22__py3-none-any.whl → 0.2.24rc0__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 (101) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/base_studio_api.py +9 -2
  3. lightning_sdk/api/deployment_api.py +9 -9
  4. lightning_sdk/api/license_api.py +2 -2
  5. lightning_sdk/api/llm_api.py +7 -11
  6. lightning_sdk/api/pipeline_api.py +31 -10
  7. lightning_sdk/api/studio_api.py +6 -0
  8. lightning_sdk/base_studio.py +22 -6
  9. lightning_sdk/cli/entrypoint.py +15 -13
  10. lightning_sdk/cli/start.py +5 -2
  11. lightning_sdk/deployment/deployment.py +17 -7
  12. lightning_sdk/lightning_cloud/openapi/__init__.py +20 -0
  13. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
  14. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +114 -1
  15. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +206 -0
  16. lightning_sdk/lightning_cloud/openapi/api/cloudy_service_api.py +129 -0
  17. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +97 -0
  18. lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +105 -0
  19. lightning_sdk/lightning_cloud/openapi/api/pipelines_service_api.py +118 -1
  20. lightning_sdk/lightning_cloud/openapi/api/user_service_api.py +105 -0
  21. lightning_sdk/lightning_cloud/openapi/configuration.py +1 -1
  22. lightning_sdk/lightning_cloud/openapi/models/__init__.py +19 -0
  23. lightning_sdk/lightning_cloud/openapi/models/agents_id_body.py +27 -1
  24. lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +81 -3
  25. lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_visibility_body.py +123 -0
  26. lightning_sdk/lightning_cloud/openapi/models/create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs.py +27 -1
  27. lightning_sdk/lightning_cloud/openapi/models/credits_autoreplenish_body.py +175 -0
  28. lightning_sdk/lightning_cloud/openapi/models/credits_autoreplenish_body1.py +175 -0
  29. lightning_sdk/lightning_cloud/openapi/models/externalv1_user_status.py +79 -1
  30. lightning_sdk/lightning_cloud/openapi/models/metricsstream_create_body.py +27 -1
  31. lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +27 -1
  32. lightning_sdk/lightning_cloud/openapi/models/pipelines_id_body.py +27 -1
  33. lightning_sdk/lightning_cloud/openapi/models/pipelines_id_body1.py +123 -0
  34. lightning_sdk/lightning_cloud/openapi/models/project_id_agents_body.py +27 -1
  35. lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +53 -1
  36. lightning_sdk/lightning_cloud/openapi/models/update.py +29 -3
  37. lightning_sdk/lightning_cloud/openapi/models/v1_assistant.py +27 -1
  38. lightning_sdk/lightning_cloud/openapi/models/v1_check_cluster_name_availability_request.py +123 -0
  39. lightning_sdk/lightning_cloud/openapi/models/v1_check_cluster_name_availability_response.py +123 -0
  40. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +2 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space.py +79 -1
  42. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_config.py +29 -3
  43. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +29 -3
  44. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +1 -0
  45. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_session.py +29 -3
  46. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_specialized_view.py +104 -0
  47. lightning_sdk/lightning_cloud/openapi/models/v1_cloudy_expert.py +279 -0
  48. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +79 -1
  49. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
  50. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +27 -1
  51. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +105 -1
  52. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_status.py +27 -1
  53. lightning_sdk/lightning_cloud/openapi/models/v1_conversation_response_chunk.py +29 -3
  54. lightning_sdk/lightning_cloud/openapi/models/v1_create_cloud_space_environment_template_request.py +29 -3
  55. lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_request.py +27 -1
  56. lightning_sdk/lightning_cloud/openapi/models/v1_create_organization_request.py +79 -1
  57. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_status.py +47 -21
  58. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster.py +253 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +853 -0
  60. lightning_sdk/lightning_cloud/openapi/models/v1_get_job_stats_response.py +53 -1
  61. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
  62. lightning_sdk/lightning_cloud/openapi/models/v1_instance_overprovisioning_spec.py +29 -27
  63. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +123 -0
  64. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1_status.py +149 -0
  65. lightning_sdk/lightning_cloud/openapi/models/v1_lightning_run.py +53 -1
  66. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloudy_experts_response.py +123 -0
  67. lightning_sdk/lightning_cloud/openapi/models/v1_list_clusters_response.py +6 -6
  68. lightning_sdk/lightning_cloud/openapi/models/v1_list_project_clusters_response.py +6 -6
  69. lightning_sdk/lightning_cloud/openapi/models/v1_lite_published_cloud_space_response.py +513 -0
  70. lightning_sdk/lightning_cloud/openapi/models/v1_login_request.py +27 -1
  71. lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_request.py +29 -3
  72. lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_response.py +27 -1
  73. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +27 -1
  74. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
  75. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline.py +27 -1
  76. lightning_sdk/lightning_cloud/openapi/models/v1_shared_filesystem.py +131 -1
  77. lightning_sdk/lightning_cloud/openapi/models/v1_token_usage.py +175 -0
  78. lightning_sdk/lightning_cloud/openapi/models/v1_update_cloud_space_visibility_response.py +97 -0
  79. lightning_sdk/lightning_cloud/openapi/models/v1_update_organization_credits_auto_replenish_response.py +97 -0
  80. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_credits_auto_replenish_response.py +97 -0
  81. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +27 -1
  82. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +234 -104
  83. lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +78 -104
  84. lightning_sdk/lightning_cloud/openapi/models/v1_volume_state.py +104 -0
  85. lightning_sdk/llm/llm.py +113 -115
  86. lightning_sdk/llm/public_assistants.json +8 -0
  87. lightning_sdk/pipeline/__init__.py +11 -2
  88. lightning_sdk/pipeline/pipeline.py +54 -14
  89. lightning_sdk/pipeline/printer.py +36 -16
  90. lightning_sdk/pipeline/schedule.py +2 -1
  91. lightning_sdk/pipeline/{types.py → steps.py} +77 -56
  92. lightning_sdk/pipeline/utils.py +65 -3
  93. lightning_sdk/sandbox.py +157 -0
  94. lightning_sdk/services/license.py +12 -6
  95. lightning_sdk/studio.py +10 -1
  96. {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.24rc0.dist-info}/METADATA +1 -1
  97. {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.24rc0.dist-info}/RECORD +101 -79
  98. {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.24rc0.dist-info}/LICENSE +0 -0
  99. {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.24rc0.dist-info}/WHEEL +0 -0
  100. {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.24rc0.dist-info}/entry_points.txt +0 -0
  101. {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.24rc0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,853 @@
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 V1ExternalClusterSpec(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
+ 'auth_token': 'str',
45
+ 'available_accelerators': 'list[str]',
46
+ 'aws_v1': 'V1AWSDirectV1',
47
+ 'cloudflare_v1': 'V1CloudflareV1',
48
+ 'cluster_type': 'V1ClusterType',
49
+ 'compute_cluster_ids': 'list[str]',
50
+ 'deletion_options': 'V1ClusterDeletionOptions',
51
+ 'desired_state': 'V1ClusterState',
52
+ 'domain': 'str',
53
+ 'driver': 'V1CloudProvider',
54
+ 'google_cloud_v1': 'V1GoogleCloudDirectV1',
55
+ 'kubernetes_v1': 'V1KubernetesDirectV1',
56
+ 'lambda_labs_v1': 'V1LambdaLabsDirectV1',
57
+ 'locked_zones': 'list[str]',
58
+ 'monitor_deletion_disabled': 'bool',
59
+ 'nebius_v1': 'V1NebiusDirectV1',
60
+ 'overprovisioning': 'list[V1InstanceOverprovisioningSpec]',
61
+ 'parent_cluster_id': 'str',
62
+ 'parent_cluster_type': 'str',
63
+ 'pause_automation': 'bool',
64
+ 'reservation_details': 'V1ReservationDetails',
65
+ 'reserved_capacity_provider': 'bool',
66
+ 'reserved_instances_only': 'bool',
67
+ 'security_options': 'V1ClusterSecurityOptions',
68
+ 'slurm_v1': 'V1SlurmV1',
69
+ 'tagging_options': 'V1ClusterTaggingOptions',
70
+ 'user_id': 'str',
71
+ 'voltage_park_v1': 'V1VoltageParkDirectV1',
72
+ 'vultr_v1': 'V1VultrDirectV1'
73
+ }
74
+
75
+ attribute_map = {
76
+ 'auth_token': 'authToken',
77
+ 'available_accelerators': 'availableAccelerators',
78
+ 'aws_v1': 'awsV1',
79
+ 'cloudflare_v1': 'cloudflareV1',
80
+ 'cluster_type': 'clusterType',
81
+ 'compute_cluster_ids': 'computeClusterIds',
82
+ 'deletion_options': 'deletionOptions',
83
+ 'desired_state': 'desiredState',
84
+ 'domain': 'domain',
85
+ 'driver': 'driver',
86
+ 'google_cloud_v1': 'googleCloudV1',
87
+ 'kubernetes_v1': 'kubernetesV1',
88
+ 'lambda_labs_v1': 'lambdaLabsV1',
89
+ 'locked_zones': 'lockedZones',
90
+ 'monitor_deletion_disabled': 'monitorDeletionDisabled',
91
+ 'nebius_v1': 'nebiusV1',
92
+ 'overprovisioning': 'overprovisioning',
93
+ 'parent_cluster_id': 'parentClusterId',
94
+ 'parent_cluster_type': 'parentClusterType',
95
+ 'pause_automation': 'pauseAutomation',
96
+ 'reservation_details': 'reservationDetails',
97
+ 'reserved_capacity_provider': 'reservedCapacityProvider',
98
+ 'reserved_instances_only': 'reservedInstancesOnly',
99
+ 'security_options': 'securityOptions',
100
+ 'slurm_v1': 'slurmV1',
101
+ 'tagging_options': 'taggingOptions',
102
+ 'user_id': 'userId',
103
+ 'voltage_park_v1': 'voltageParkV1',
104
+ 'vultr_v1': 'vultrV1'
105
+ }
106
+
107
+ def __init__(self, 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
108
+ """V1ExternalClusterSpec - a model defined in Swagger""" # noqa: E501
109
+ self._auth_token = None
110
+ self._available_accelerators = None
111
+ self._aws_v1 = None
112
+ self._cloudflare_v1 = None
113
+ self._cluster_type = None
114
+ self._compute_cluster_ids = None
115
+ self._deletion_options = None
116
+ self._desired_state = None
117
+ self._domain = None
118
+ self._driver = None
119
+ self._google_cloud_v1 = None
120
+ self._kubernetes_v1 = None
121
+ self._lambda_labs_v1 = None
122
+ self._locked_zones = None
123
+ self._monitor_deletion_disabled = None
124
+ self._nebius_v1 = None
125
+ self._overprovisioning = None
126
+ self._parent_cluster_id = None
127
+ self._parent_cluster_type = None
128
+ self._pause_automation = None
129
+ self._reservation_details = None
130
+ self._reserved_capacity_provider = None
131
+ self._reserved_instances_only = None
132
+ self._security_options = None
133
+ self._slurm_v1 = None
134
+ self._tagging_options = None
135
+ self._user_id = None
136
+ self._voltage_park_v1 = None
137
+ self._vultr_v1 = None
138
+ self.discriminator = None
139
+ if auth_token is not None:
140
+ self.auth_token = auth_token
141
+ if available_accelerators is not None:
142
+ self.available_accelerators = available_accelerators
143
+ if aws_v1 is not None:
144
+ self.aws_v1 = aws_v1
145
+ if cloudflare_v1 is not None:
146
+ self.cloudflare_v1 = cloudflare_v1
147
+ if cluster_type is not None:
148
+ self.cluster_type = cluster_type
149
+ if compute_cluster_ids is not None:
150
+ self.compute_cluster_ids = compute_cluster_ids
151
+ if deletion_options is not None:
152
+ self.deletion_options = deletion_options
153
+ if desired_state is not None:
154
+ self.desired_state = desired_state
155
+ if domain is not None:
156
+ self.domain = domain
157
+ if driver is not None:
158
+ self.driver = driver
159
+ if google_cloud_v1 is not None:
160
+ self.google_cloud_v1 = google_cloud_v1
161
+ if kubernetes_v1 is not None:
162
+ self.kubernetes_v1 = kubernetes_v1
163
+ if lambda_labs_v1 is not None:
164
+ self.lambda_labs_v1 = lambda_labs_v1
165
+ if locked_zones is not None:
166
+ self.locked_zones = locked_zones
167
+ if monitor_deletion_disabled is not None:
168
+ self.monitor_deletion_disabled = monitor_deletion_disabled
169
+ if nebius_v1 is not None:
170
+ self.nebius_v1 = nebius_v1
171
+ if overprovisioning is not None:
172
+ self.overprovisioning = overprovisioning
173
+ if parent_cluster_id is not None:
174
+ self.parent_cluster_id = parent_cluster_id
175
+ if parent_cluster_type is not None:
176
+ self.parent_cluster_type = parent_cluster_type
177
+ if pause_automation is not None:
178
+ self.pause_automation = pause_automation
179
+ if reservation_details is not None:
180
+ self.reservation_details = reservation_details
181
+ if reserved_capacity_provider is not None:
182
+ self.reserved_capacity_provider = reserved_capacity_provider
183
+ if reserved_instances_only is not None:
184
+ self.reserved_instances_only = reserved_instances_only
185
+ if security_options is not None:
186
+ self.security_options = security_options
187
+ if slurm_v1 is not None:
188
+ self.slurm_v1 = slurm_v1
189
+ if tagging_options is not None:
190
+ self.tagging_options = tagging_options
191
+ if user_id is not None:
192
+ self.user_id = user_id
193
+ if voltage_park_v1 is not None:
194
+ self.voltage_park_v1 = voltage_park_v1
195
+ if vultr_v1 is not None:
196
+ self.vultr_v1 = vultr_v1
197
+
198
+ @property
199
+ def auth_token(self) -> 'str':
200
+ """Gets the auth_token of this V1ExternalClusterSpec. # noqa: E501
201
+
202
+
203
+ :return: The auth_token of this V1ExternalClusterSpec. # noqa: E501
204
+ :rtype: str
205
+ """
206
+ return self._auth_token
207
+
208
+ @auth_token.setter
209
+ def auth_token(self, auth_token: 'str'):
210
+ """Sets the auth_token of this V1ExternalClusterSpec.
211
+
212
+
213
+ :param auth_token: The auth_token of this V1ExternalClusterSpec. # noqa: E501
214
+ :type: str
215
+ """
216
+
217
+ self._auth_token = auth_token
218
+
219
+ @property
220
+ def available_accelerators(self) -> 'list[str]':
221
+ """Gets the available_accelerators of this V1ExternalClusterSpec. # noqa: E501
222
+
223
+
224
+ :return: The available_accelerators of this V1ExternalClusterSpec. # noqa: E501
225
+ :rtype: list[str]
226
+ """
227
+ return self._available_accelerators
228
+
229
+ @available_accelerators.setter
230
+ def available_accelerators(self, available_accelerators: 'list[str]'):
231
+ """Sets the available_accelerators of this V1ExternalClusterSpec.
232
+
233
+
234
+ :param available_accelerators: The available_accelerators of this V1ExternalClusterSpec. # noqa: E501
235
+ :type: list[str]
236
+ """
237
+
238
+ self._available_accelerators = available_accelerators
239
+
240
+ @property
241
+ def aws_v1(self) -> 'V1AWSDirectV1':
242
+ """Gets the aws_v1 of this V1ExternalClusterSpec. # noqa: E501
243
+
244
+
245
+ :return: The aws_v1 of this V1ExternalClusterSpec. # noqa: E501
246
+ :rtype: V1AWSDirectV1
247
+ """
248
+ return self._aws_v1
249
+
250
+ @aws_v1.setter
251
+ def aws_v1(self, aws_v1: 'V1AWSDirectV1'):
252
+ """Sets the aws_v1 of this V1ExternalClusterSpec.
253
+
254
+
255
+ :param aws_v1: The aws_v1 of this V1ExternalClusterSpec. # noqa: E501
256
+ :type: V1AWSDirectV1
257
+ """
258
+
259
+ self._aws_v1 = aws_v1
260
+
261
+ @property
262
+ def cloudflare_v1(self) -> 'V1CloudflareV1':
263
+ """Gets the cloudflare_v1 of this V1ExternalClusterSpec. # noqa: E501
264
+
265
+
266
+ :return: The cloudflare_v1 of this V1ExternalClusterSpec. # noqa: E501
267
+ :rtype: V1CloudflareV1
268
+ """
269
+ return self._cloudflare_v1
270
+
271
+ @cloudflare_v1.setter
272
+ def cloudflare_v1(self, cloudflare_v1: 'V1CloudflareV1'):
273
+ """Sets the cloudflare_v1 of this V1ExternalClusterSpec.
274
+
275
+
276
+ :param cloudflare_v1: The cloudflare_v1 of this V1ExternalClusterSpec. # noqa: E501
277
+ :type: V1CloudflareV1
278
+ """
279
+
280
+ self._cloudflare_v1 = cloudflare_v1
281
+
282
+ @property
283
+ def cluster_type(self) -> 'V1ClusterType':
284
+ """Gets the cluster_type of this V1ExternalClusterSpec. # noqa: E501
285
+
286
+
287
+ :return: The cluster_type of this V1ExternalClusterSpec. # noqa: E501
288
+ :rtype: V1ClusterType
289
+ """
290
+ return self._cluster_type
291
+
292
+ @cluster_type.setter
293
+ def cluster_type(self, cluster_type: 'V1ClusterType'):
294
+ """Sets the cluster_type of this V1ExternalClusterSpec.
295
+
296
+
297
+ :param cluster_type: The cluster_type of this V1ExternalClusterSpec. # noqa: E501
298
+ :type: V1ClusterType
299
+ """
300
+
301
+ self._cluster_type = cluster_type
302
+
303
+ @property
304
+ def compute_cluster_ids(self) -> 'list[str]':
305
+ """Gets the compute_cluster_ids of this V1ExternalClusterSpec. # noqa: E501
306
+
307
+
308
+ :return: The compute_cluster_ids of this V1ExternalClusterSpec. # noqa: E501
309
+ :rtype: list[str]
310
+ """
311
+ return self._compute_cluster_ids
312
+
313
+ @compute_cluster_ids.setter
314
+ def compute_cluster_ids(self, compute_cluster_ids: 'list[str]'):
315
+ """Sets the compute_cluster_ids of this V1ExternalClusterSpec.
316
+
317
+
318
+ :param compute_cluster_ids: The compute_cluster_ids of this V1ExternalClusterSpec. # noqa: E501
319
+ :type: list[str]
320
+ """
321
+
322
+ self._compute_cluster_ids = compute_cluster_ids
323
+
324
+ @property
325
+ def deletion_options(self) -> 'V1ClusterDeletionOptions':
326
+ """Gets the deletion_options of this V1ExternalClusterSpec. # noqa: E501
327
+
328
+
329
+ :return: The deletion_options of this V1ExternalClusterSpec. # noqa: E501
330
+ :rtype: V1ClusterDeletionOptions
331
+ """
332
+ return self._deletion_options
333
+
334
+ @deletion_options.setter
335
+ def deletion_options(self, deletion_options: 'V1ClusterDeletionOptions'):
336
+ """Sets the deletion_options of this V1ExternalClusterSpec.
337
+
338
+
339
+ :param deletion_options: The deletion_options of this V1ExternalClusterSpec. # noqa: E501
340
+ :type: V1ClusterDeletionOptions
341
+ """
342
+
343
+ self._deletion_options = deletion_options
344
+
345
+ @property
346
+ def desired_state(self) -> 'V1ClusterState':
347
+ """Gets the desired_state of this V1ExternalClusterSpec. # noqa: E501
348
+
349
+
350
+ :return: The desired_state of this V1ExternalClusterSpec. # noqa: E501
351
+ :rtype: V1ClusterState
352
+ """
353
+ return self._desired_state
354
+
355
+ @desired_state.setter
356
+ def desired_state(self, desired_state: 'V1ClusterState'):
357
+ """Sets the desired_state of this V1ExternalClusterSpec.
358
+
359
+
360
+ :param desired_state: The desired_state of this V1ExternalClusterSpec. # noqa: E501
361
+ :type: V1ClusterState
362
+ """
363
+
364
+ self._desired_state = desired_state
365
+
366
+ @property
367
+ def domain(self) -> 'str':
368
+ """Gets the domain of this V1ExternalClusterSpec. # noqa: E501
369
+
370
+ Root domain for deployments, endpoints, studio plugins, etc. # noqa: E501
371
+
372
+ :return: The domain of this V1ExternalClusterSpec. # noqa: E501
373
+ :rtype: str
374
+ """
375
+ return self._domain
376
+
377
+ @domain.setter
378
+ def domain(self, domain: 'str'):
379
+ """Sets the domain of this V1ExternalClusterSpec.
380
+
381
+ Root domain for deployments, endpoints, studio plugins, etc. # noqa: E501
382
+
383
+ :param domain: The domain of this V1ExternalClusterSpec. # noqa: E501
384
+ :type: str
385
+ """
386
+
387
+ self._domain = domain
388
+
389
+ @property
390
+ def driver(self) -> 'V1CloudProvider':
391
+ """Gets the driver of this V1ExternalClusterSpec. # noqa: E501
392
+
393
+
394
+ :return: The driver of this V1ExternalClusterSpec. # noqa: E501
395
+ :rtype: V1CloudProvider
396
+ """
397
+ return self._driver
398
+
399
+ @driver.setter
400
+ def driver(self, driver: 'V1CloudProvider'):
401
+ """Sets the driver of this V1ExternalClusterSpec.
402
+
403
+
404
+ :param driver: The driver of this V1ExternalClusterSpec. # noqa: E501
405
+ :type: V1CloudProvider
406
+ """
407
+
408
+ self._driver = driver
409
+
410
+ @property
411
+ def google_cloud_v1(self) -> 'V1GoogleCloudDirectV1':
412
+ """Gets the google_cloud_v1 of this V1ExternalClusterSpec. # noqa: E501
413
+
414
+
415
+ :return: The google_cloud_v1 of this V1ExternalClusterSpec. # noqa: E501
416
+ :rtype: V1GoogleCloudDirectV1
417
+ """
418
+ return self._google_cloud_v1
419
+
420
+ @google_cloud_v1.setter
421
+ def google_cloud_v1(self, google_cloud_v1: 'V1GoogleCloudDirectV1'):
422
+ """Sets the google_cloud_v1 of this V1ExternalClusterSpec.
423
+
424
+
425
+ :param google_cloud_v1: The google_cloud_v1 of this V1ExternalClusterSpec. # noqa: E501
426
+ :type: V1GoogleCloudDirectV1
427
+ """
428
+
429
+ self._google_cloud_v1 = google_cloud_v1
430
+
431
+ @property
432
+ def kubernetes_v1(self) -> 'V1KubernetesDirectV1':
433
+ """Gets the kubernetes_v1 of this V1ExternalClusterSpec. # noqa: E501
434
+
435
+
436
+ :return: The kubernetes_v1 of this V1ExternalClusterSpec. # noqa: E501
437
+ :rtype: V1KubernetesDirectV1
438
+ """
439
+ return self._kubernetes_v1
440
+
441
+ @kubernetes_v1.setter
442
+ def kubernetes_v1(self, kubernetes_v1: 'V1KubernetesDirectV1'):
443
+ """Sets the kubernetes_v1 of this V1ExternalClusterSpec.
444
+
445
+
446
+ :param kubernetes_v1: The kubernetes_v1 of this V1ExternalClusterSpec. # noqa: E501
447
+ :type: V1KubernetesDirectV1
448
+ """
449
+
450
+ self._kubernetes_v1 = kubernetes_v1
451
+
452
+ @property
453
+ def lambda_labs_v1(self) -> 'V1LambdaLabsDirectV1':
454
+ """Gets the lambda_labs_v1 of this V1ExternalClusterSpec. # noqa: E501
455
+
456
+
457
+ :return: The lambda_labs_v1 of this V1ExternalClusterSpec. # noqa: E501
458
+ :rtype: V1LambdaLabsDirectV1
459
+ """
460
+ return self._lambda_labs_v1
461
+
462
+ @lambda_labs_v1.setter
463
+ def lambda_labs_v1(self, lambda_labs_v1: 'V1LambdaLabsDirectV1'):
464
+ """Sets the lambda_labs_v1 of this V1ExternalClusterSpec.
465
+
466
+
467
+ :param lambda_labs_v1: The lambda_labs_v1 of this V1ExternalClusterSpec. # noqa: E501
468
+ :type: V1LambdaLabsDirectV1
469
+ """
470
+
471
+ self._lambda_labs_v1 = lambda_labs_v1
472
+
473
+ @property
474
+ def locked_zones(self) -> 'list[str]':
475
+ """Gets the locked_zones of this V1ExternalClusterSpec. # noqa: E501
476
+
477
+
478
+ :return: The locked_zones of this V1ExternalClusterSpec. # noqa: E501
479
+ :rtype: list[str]
480
+ """
481
+ return self._locked_zones
482
+
483
+ @locked_zones.setter
484
+ def locked_zones(self, locked_zones: 'list[str]'):
485
+ """Sets the locked_zones of this V1ExternalClusterSpec.
486
+
487
+
488
+ :param locked_zones: The locked_zones of this V1ExternalClusterSpec. # noqa: E501
489
+ :type: list[str]
490
+ """
491
+
492
+ self._locked_zones = locked_zones
493
+
494
+ @property
495
+ def monitor_deletion_disabled(self) -> 'bool':
496
+ """Gets the monitor_deletion_disabled of this V1ExternalClusterSpec. # noqa: E501
497
+
498
+
499
+ :return: The monitor_deletion_disabled of this V1ExternalClusterSpec. # noqa: E501
500
+ :rtype: bool
501
+ """
502
+ return self._monitor_deletion_disabled
503
+
504
+ @monitor_deletion_disabled.setter
505
+ def monitor_deletion_disabled(self, monitor_deletion_disabled: 'bool'):
506
+ """Sets the monitor_deletion_disabled of this V1ExternalClusterSpec.
507
+
508
+
509
+ :param monitor_deletion_disabled: The monitor_deletion_disabled of this V1ExternalClusterSpec. # noqa: E501
510
+ :type: bool
511
+ """
512
+
513
+ self._monitor_deletion_disabled = monitor_deletion_disabled
514
+
515
+ @property
516
+ def nebius_v1(self) -> 'V1NebiusDirectV1':
517
+ """Gets the nebius_v1 of this V1ExternalClusterSpec. # noqa: E501
518
+
519
+
520
+ :return: The nebius_v1 of this V1ExternalClusterSpec. # noqa: E501
521
+ :rtype: V1NebiusDirectV1
522
+ """
523
+ return self._nebius_v1
524
+
525
+ @nebius_v1.setter
526
+ def nebius_v1(self, nebius_v1: 'V1NebiusDirectV1'):
527
+ """Sets the nebius_v1 of this V1ExternalClusterSpec.
528
+
529
+
530
+ :param nebius_v1: The nebius_v1 of this V1ExternalClusterSpec. # noqa: E501
531
+ :type: V1NebiusDirectV1
532
+ """
533
+
534
+ self._nebius_v1 = nebius_v1
535
+
536
+ @property
537
+ def overprovisioning(self) -> 'list[V1InstanceOverprovisioningSpec]':
538
+ """Gets the overprovisioning of this V1ExternalClusterSpec. # noqa: E501
539
+
540
+
541
+ :return: The overprovisioning of this V1ExternalClusterSpec. # noqa: E501
542
+ :rtype: list[V1InstanceOverprovisioningSpec]
543
+ """
544
+ return self._overprovisioning
545
+
546
+ @overprovisioning.setter
547
+ def overprovisioning(self, overprovisioning: 'list[V1InstanceOverprovisioningSpec]'):
548
+ """Sets the overprovisioning of this V1ExternalClusterSpec.
549
+
550
+
551
+ :param overprovisioning: The overprovisioning of this V1ExternalClusterSpec. # noqa: E501
552
+ :type: list[V1InstanceOverprovisioningSpec]
553
+ """
554
+
555
+ self._overprovisioning = overprovisioning
556
+
557
+ @property
558
+ def parent_cluster_id(self) -> 'str':
559
+ """Gets the parent_cluster_id of this V1ExternalClusterSpec. # noqa: E501
560
+
561
+
562
+ :return: The parent_cluster_id of this V1ExternalClusterSpec. # noqa: E501
563
+ :rtype: str
564
+ """
565
+ return self._parent_cluster_id
566
+
567
+ @parent_cluster_id.setter
568
+ def parent_cluster_id(self, parent_cluster_id: 'str'):
569
+ """Sets the parent_cluster_id of this V1ExternalClusterSpec.
570
+
571
+
572
+ :param parent_cluster_id: The parent_cluster_id of this V1ExternalClusterSpec. # noqa: E501
573
+ :type: str
574
+ """
575
+
576
+ self._parent_cluster_id = parent_cluster_id
577
+
578
+ @property
579
+ def parent_cluster_type(self) -> 'str':
580
+ """Gets the parent_cluster_type of this V1ExternalClusterSpec. # noqa: E501
581
+
582
+
583
+ :return: The parent_cluster_type of this V1ExternalClusterSpec. # noqa: E501
584
+ :rtype: str
585
+ """
586
+ return self._parent_cluster_type
587
+
588
+ @parent_cluster_type.setter
589
+ def parent_cluster_type(self, parent_cluster_type: 'str'):
590
+ """Sets the parent_cluster_type of this V1ExternalClusterSpec.
591
+
592
+
593
+ :param parent_cluster_type: The parent_cluster_type of this V1ExternalClusterSpec. # noqa: E501
594
+ :type: str
595
+ """
596
+
597
+ self._parent_cluster_type = parent_cluster_type
598
+
599
+ @property
600
+ def pause_automation(self) -> 'bool':
601
+ """Gets the pause_automation of this V1ExternalClusterSpec. # noqa: E501
602
+
603
+
604
+ :return: The pause_automation of this V1ExternalClusterSpec. # noqa: E501
605
+ :rtype: bool
606
+ """
607
+ return self._pause_automation
608
+
609
+ @pause_automation.setter
610
+ def pause_automation(self, pause_automation: 'bool'):
611
+ """Sets the pause_automation of this V1ExternalClusterSpec.
612
+
613
+
614
+ :param pause_automation: The pause_automation of this V1ExternalClusterSpec. # noqa: E501
615
+ :type: bool
616
+ """
617
+
618
+ self._pause_automation = pause_automation
619
+
620
+ @property
621
+ def reservation_details(self) -> 'V1ReservationDetails':
622
+ """Gets the reservation_details of this V1ExternalClusterSpec. # noqa: E501
623
+
624
+
625
+ :return: The reservation_details of this V1ExternalClusterSpec. # noqa: E501
626
+ :rtype: V1ReservationDetails
627
+ """
628
+ return self._reservation_details
629
+
630
+ @reservation_details.setter
631
+ def reservation_details(self, reservation_details: 'V1ReservationDetails'):
632
+ """Sets the reservation_details of this V1ExternalClusterSpec.
633
+
634
+
635
+ :param reservation_details: The reservation_details of this V1ExternalClusterSpec. # noqa: E501
636
+ :type: V1ReservationDetails
637
+ """
638
+
639
+ self._reservation_details = reservation_details
640
+
641
+ @property
642
+ def reserved_capacity_provider(self) -> 'bool':
643
+ """Gets the reserved_capacity_provider of this V1ExternalClusterSpec. # noqa: E501
644
+
645
+
646
+ :return: The reserved_capacity_provider of this V1ExternalClusterSpec. # noqa: E501
647
+ :rtype: bool
648
+ """
649
+ return self._reserved_capacity_provider
650
+
651
+ @reserved_capacity_provider.setter
652
+ def reserved_capacity_provider(self, reserved_capacity_provider: 'bool'):
653
+ """Sets the reserved_capacity_provider of this V1ExternalClusterSpec.
654
+
655
+
656
+ :param reserved_capacity_provider: The reserved_capacity_provider of this V1ExternalClusterSpec. # noqa: E501
657
+ :type: bool
658
+ """
659
+
660
+ self._reserved_capacity_provider = reserved_capacity_provider
661
+
662
+ @property
663
+ def reserved_instances_only(self) -> 'bool':
664
+ """Gets the reserved_instances_only of this V1ExternalClusterSpec. # noqa: E501
665
+
666
+
667
+ :return: The reserved_instances_only of this V1ExternalClusterSpec. # noqa: E501
668
+ :rtype: bool
669
+ """
670
+ return self._reserved_instances_only
671
+
672
+ @reserved_instances_only.setter
673
+ def reserved_instances_only(self, reserved_instances_only: 'bool'):
674
+ """Sets the reserved_instances_only of this V1ExternalClusterSpec.
675
+
676
+
677
+ :param reserved_instances_only: The reserved_instances_only of this V1ExternalClusterSpec. # noqa: E501
678
+ :type: bool
679
+ """
680
+
681
+ self._reserved_instances_only = reserved_instances_only
682
+
683
+ @property
684
+ def security_options(self) -> 'V1ClusterSecurityOptions':
685
+ """Gets the security_options of this V1ExternalClusterSpec. # noqa: E501
686
+
687
+
688
+ :return: The security_options of this V1ExternalClusterSpec. # noqa: E501
689
+ :rtype: V1ClusterSecurityOptions
690
+ """
691
+ return self._security_options
692
+
693
+ @security_options.setter
694
+ def security_options(self, security_options: 'V1ClusterSecurityOptions'):
695
+ """Sets the security_options of this V1ExternalClusterSpec.
696
+
697
+
698
+ :param security_options: The security_options of this V1ExternalClusterSpec. # noqa: E501
699
+ :type: V1ClusterSecurityOptions
700
+ """
701
+
702
+ self._security_options = security_options
703
+
704
+ @property
705
+ def slurm_v1(self) -> 'V1SlurmV1':
706
+ """Gets the slurm_v1 of this V1ExternalClusterSpec. # noqa: E501
707
+
708
+
709
+ :return: The slurm_v1 of this V1ExternalClusterSpec. # noqa: E501
710
+ :rtype: V1SlurmV1
711
+ """
712
+ return self._slurm_v1
713
+
714
+ @slurm_v1.setter
715
+ def slurm_v1(self, slurm_v1: 'V1SlurmV1'):
716
+ """Sets the slurm_v1 of this V1ExternalClusterSpec.
717
+
718
+
719
+ :param slurm_v1: The slurm_v1 of this V1ExternalClusterSpec. # noqa: E501
720
+ :type: V1SlurmV1
721
+ """
722
+
723
+ self._slurm_v1 = slurm_v1
724
+
725
+ @property
726
+ def tagging_options(self) -> 'V1ClusterTaggingOptions':
727
+ """Gets the tagging_options of this V1ExternalClusterSpec. # noqa: E501
728
+
729
+
730
+ :return: The tagging_options of this V1ExternalClusterSpec. # noqa: E501
731
+ :rtype: V1ClusterTaggingOptions
732
+ """
733
+ return self._tagging_options
734
+
735
+ @tagging_options.setter
736
+ def tagging_options(self, tagging_options: 'V1ClusterTaggingOptions'):
737
+ """Sets the tagging_options of this V1ExternalClusterSpec.
738
+
739
+
740
+ :param tagging_options: The tagging_options of this V1ExternalClusterSpec. # noqa: E501
741
+ :type: V1ClusterTaggingOptions
742
+ """
743
+
744
+ self._tagging_options = tagging_options
745
+
746
+ @property
747
+ def user_id(self) -> 'str':
748
+ """Gets the user_id of this V1ExternalClusterSpec. # noqa: E501
749
+
750
+
751
+ :return: The user_id of this V1ExternalClusterSpec. # noqa: E501
752
+ :rtype: str
753
+ """
754
+ return self._user_id
755
+
756
+ @user_id.setter
757
+ def user_id(self, user_id: 'str'):
758
+ """Sets the user_id of this V1ExternalClusterSpec.
759
+
760
+
761
+ :param user_id: The user_id of this V1ExternalClusterSpec. # noqa: E501
762
+ :type: str
763
+ """
764
+
765
+ self._user_id = user_id
766
+
767
+ @property
768
+ def voltage_park_v1(self) -> 'V1VoltageParkDirectV1':
769
+ """Gets the voltage_park_v1 of this V1ExternalClusterSpec. # noqa: E501
770
+
771
+
772
+ :return: The voltage_park_v1 of this V1ExternalClusterSpec. # noqa: E501
773
+ :rtype: V1VoltageParkDirectV1
774
+ """
775
+ return self._voltage_park_v1
776
+
777
+ @voltage_park_v1.setter
778
+ def voltage_park_v1(self, voltage_park_v1: 'V1VoltageParkDirectV1'):
779
+ """Sets the voltage_park_v1 of this V1ExternalClusterSpec.
780
+
781
+
782
+ :param voltage_park_v1: The voltage_park_v1 of this V1ExternalClusterSpec. # noqa: E501
783
+ :type: V1VoltageParkDirectV1
784
+ """
785
+
786
+ self._voltage_park_v1 = voltage_park_v1
787
+
788
+ @property
789
+ def vultr_v1(self) -> 'V1VultrDirectV1':
790
+ """Gets the vultr_v1 of this V1ExternalClusterSpec. # noqa: E501
791
+
792
+
793
+ :return: The vultr_v1 of this V1ExternalClusterSpec. # noqa: E501
794
+ :rtype: V1VultrDirectV1
795
+ """
796
+ return self._vultr_v1
797
+
798
+ @vultr_v1.setter
799
+ def vultr_v1(self, vultr_v1: 'V1VultrDirectV1'):
800
+ """Sets the vultr_v1 of this V1ExternalClusterSpec.
801
+
802
+
803
+ :param vultr_v1: The vultr_v1 of this V1ExternalClusterSpec. # noqa: E501
804
+ :type: V1VultrDirectV1
805
+ """
806
+
807
+ self._vultr_v1 = vultr_v1
808
+
809
+ def to_dict(self) -> dict:
810
+ """Returns the model properties as a dict"""
811
+ result = {}
812
+
813
+ for attr, _ in six.iteritems(self.swagger_types):
814
+ value = getattr(self, attr)
815
+ if isinstance(value, list):
816
+ result[attr] = list(map(
817
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
818
+ value
819
+ ))
820
+ elif hasattr(value, "to_dict"):
821
+ result[attr] = value.to_dict()
822
+ elif isinstance(value, dict):
823
+ result[attr] = dict(map(
824
+ lambda item: (item[0], item[1].to_dict())
825
+ if hasattr(item[1], "to_dict") else item,
826
+ value.items()
827
+ ))
828
+ else:
829
+ result[attr] = value
830
+ if issubclass(V1ExternalClusterSpec, dict):
831
+ for key, value in self.items():
832
+ result[key] = value
833
+
834
+ return result
835
+
836
+ def to_str(self) -> str:
837
+ """Returns the string representation of the model"""
838
+ return pprint.pformat(self.to_dict())
839
+
840
+ def __repr__(self) -> str:
841
+ """For `print` and `pprint`"""
842
+ return self.to_str()
843
+
844
+ def __eq__(self, other: 'V1ExternalClusterSpec') -> bool:
845
+ """Returns true if both objects are equal"""
846
+ if not isinstance(other, V1ExternalClusterSpec):
847
+ return False
848
+
849
+ return self.__dict__ == other.__dict__
850
+
851
+ def __ne__(self, other: 'V1ExternalClusterSpec') -> bool:
852
+ """Returns true if both objects are not equal"""
853
+ return not self == other