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