lightning-sdk 2025.9.23__py3-none-any.whl → 2025.9.30__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 (74) hide show
  1. lightning_sdk/__init__.py +3 -2
  2. lightning_sdk/cli/entrypoint.py +3 -1
  3. lightning_sdk/cli/groups.py +8 -1
  4. lightning_sdk/cli/legacy/download.py +3 -4
  5. lightning_sdk/cli/legacy/entrypoint.py +1 -1
  6. lightning_sdk/cli/legacy/upload.py +2 -3
  7. lightning_sdk/cli/studio/__init__.py +2 -0
  8. lightning_sdk/cli/studio/connect.py +94 -0
  9. lightning_sdk/cli/studio/create.py +19 -5
  10. lightning_sdk/cli/studio/delete.py +9 -5
  11. lightning_sdk/cli/studio/list.py +5 -1
  12. lightning_sdk/cli/studio/ssh.py +12 -54
  13. lightning_sdk/cli/studio/start.py +26 -3
  14. lightning_sdk/cli/studio/stop.py +7 -3
  15. lightning_sdk/cli/studio/switch.py +21 -5
  16. lightning_sdk/cli/utils/ssh_connection.py +51 -0
  17. lightning_sdk/cli/utils/studio_selection.py +22 -15
  18. lightning_sdk/cli/vm/__init__.py +20 -0
  19. lightning_sdk/cli/vm/create.py +33 -0
  20. lightning_sdk/cli/vm/delete.py +25 -0
  21. lightning_sdk/cli/vm/list.py +30 -0
  22. lightning_sdk/cli/vm/ssh.py +31 -0
  23. lightning_sdk/cli/vm/start.py +60 -0
  24. lightning_sdk/cli/vm/stop.py +25 -0
  25. lightning_sdk/cli/vm/switch.py +38 -0
  26. lightning_sdk/lightning_cloud/openapi/__init__.py +20 -1
  27. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +2 -95
  28. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +24 -8
  29. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +420 -0
  30. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +121 -0
  31. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +655 -0
  32. lightning_sdk/lightning_cloud/openapi/models/__init__.py +20 -1
  33. lightning_sdk/lightning_cloud/openapi/models/create_machine_request_represents_the_request_to_create_a_machine.py +435 -0
  34. lightning_sdk/lightning_cloud/openapi/models/job_id_reportroutingtelemetry_body.py +123 -0
  35. lightning_sdk/lightning_cloud/openapi/models/project_id_storagetransfers_body.py +149 -0
  36. lightning_sdk/lightning_cloud/openapi/models/user_id_affiliatelinks_body.py +107 -3
  37. lightning_sdk/lightning_cloud/openapi/models/v1_abort_storage_transfer_response.py +97 -0
  38. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_session_daily_aggregated.py +27 -1
  39. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +2 -0
  40. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  41. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +53 -1
  42. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +1 -0
  43. lightning_sdk/lightning_cloud/openapi/models/v1_create_machine_response.py +123 -0
  44. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +27 -1
  45. lightning_sdk/lightning_cloud/openapi/models/v1_delete_machine_response.py +97 -0
  46. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -1
  47. lightning_sdk/lightning_cloud/openapi/models/v1_get_machine_response.py +123 -0
  48. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
  49. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +27 -1
  50. lightning_sdk/lightning_cloud/openapi/models/v1_lightning_elastic_cluster_v1.py +97 -0
  51. lightning_sdk/lightning_cloud/openapi/models/{v1_get_model_total_usage_metrics_response.py → v1_list_machines_response.py} +37 -37
  52. lightning_sdk/lightning_cloud/openapi/models/v1_list_storage_transfers_response.py +123 -0
  53. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +539 -0
  54. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +123 -0
  55. lightning_sdk/lightning_cloud/openapi/models/v1_pause_storage_transfer_response.py +97 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_purchase_annual_upsell_request.py +123 -0
  57. lightning_sdk/lightning_cloud/openapi/models/v1_report_deployment_routing_telemetry_response.py +97 -0
  58. lightning_sdk/lightning_cloud/openapi/models/v1_resume_storage_transfer_response.py +97 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_routing_telemetry.py +79 -1
  60. lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +1 -0
  61. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py +149 -0
  62. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier_type.py +105 -0
  63. lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer.py +435 -0
  64. lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer_status.py +108 -0
  65. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +27 -1
  66. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +105 -79
  67. lightning_sdk/studio.py +55 -11
  68. lightning_sdk/teamspace.py +11 -2
  69. {lightning_sdk-2025.9.23.dist-info → lightning_sdk-2025.9.30.dist-info}/METADATA +1 -1
  70. {lightning_sdk-2025.9.23.dist-info → lightning_sdk-2025.9.30.dist-info}/RECORD +74 -45
  71. {lightning_sdk-2025.9.23.dist-info → lightning_sdk-2025.9.30.dist-info}/LICENSE +0 -0
  72. {lightning_sdk-2025.9.23.dist-info → lightning_sdk-2025.9.30.dist-info}/WHEEL +0 -0
  73. {lightning_sdk-2025.9.23.dist-info → lightning_sdk-2025.9.30.dist-info}/entry_points.txt +0 -0
  74. {lightning_sdk-2025.9.23.dist-info → lightning_sdk-2025.9.30.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,539 @@
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 V1Machine(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
+ 'address': 'str',
45
+ 'cluster_id': 'str',
46
+ 'created_at': 'datetime',
47
+ 'id': 'str',
48
+ 'instance_type': 'str',
49
+ 'name': 'str',
50
+ 'org_id': 'str',
51
+ 'provider': 'str',
52
+ 'provider_instance_id': 'str',
53
+ 'provider_region': 'str',
54
+ 'provisioning_method': 'str',
55
+ 'ready_at': 'datetime',
56
+ 'resources': 'V1Resources',
57
+ 'status': 'str',
58
+ 'unschedulable': 'bool',
59
+ 'updated_at': 'datetime',
60
+ 'warning_message': 'str'
61
+ }
62
+
63
+ attribute_map = {
64
+ 'address': 'address',
65
+ 'cluster_id': 'clusterId',
66
+ 'created_at': 'createdAt',
67
+ 'id': 'id',
68
+ 'instance_type': 'instanceType',
69
+ 'name': 'name',
70
+ 'org_id': 'orgId',
71
+ 'provider': 'provider',
72
+ 'provider_instance_id': 'providerInstanceId',
73
+ 'provider_region': 'providerRegion',
74
+ 'provisioning_method': 'provisioningMethod',
75
+ 'ready_at': 'readyAt',
76
+ 'resources': 'resources',
77
+ 'status': 'status',
78
+ 'unschedulable': 'unschedulable',
79
+ 'updated_at': 'updatedAt',
80
+ 'warning_message': 'warningMessage'
81
+ }
82
+
83
+ def __init__(self, address: 'str' =None, cluster_id: 'str' =None, created_at: 'datetime' =None, id: 'str' =None, instance_type: 'str' =None, name: 'str' =None, org_id: 'str' =None, provider: 'str' =None, provider_instance_id: 'str' =None, provider_region: 'str' =None, provisioning_method: 'str' =None, ready_at: 'datetime' =None, resources: 'V1Resources' =None, status: 'str' =None, unschedulable: 'bool' =None, updated_at: 'datetime' =None, warning_message: 'str' =None): # noqa: E501
84
+ """V1Machine - a model defined in Swagger""" # noqa: E501
85
+ self._address = None
86
+ self._cluster_id = None
87
+ self._created_at = None
88
+ self._id = None
89
+ self._instance_type = None
90
+ self._name = None
91
+ self._org_id = None
92
+ self._provider = None
93
+ self._provider_instance_id = None
94
+ self._provider_region = None
95
+ self._provisioning_method = None
96
+ self._ready_at = None
97
+ self._resources = None
98
+ self._status = None
99
+ self._unschedulable = None
100
+ self._updated_at = None
101
+ self._warning_message = None
102
+ self.discriminator = None
103
+ if address is not None:
104
+ self.address = address
105
+ if cluster_id is not None:
106
+ self.cluster_id = cluster_id
107
+ if created_at is not None:
108
+ self.created_at = created_at
109
+ if id is not None:
110
+ self.id = id
111
+ if instance_type is not None:
112
+ self.instance_type = instance_type
113
+ if name is not None:
114
+ self.name = name
115
+ if org_id is not None:
116
+ self.org_id = org_id
117
+ if provider is not None:
118
+ self.provider = provider
119
+ if provider_instance_id is not None:
120
+ self.provider_instance_id = provider_instance_id
121
+ if provider_region is not None:
122
+ self.provider_region = provider_region
123
+ if provisioning_method is not None:
124
+ self.provisioning_method = provisioning_method
125
+ if ready_at is not None:
126
+ self.ready_at = ready_at
127
+ if resources is not None:
128
+ self.resources = resources
129
+ if status is not None:
130
+ self.status = status
131
+ if unschedulable is not None:
132
+ self.unschedulable = unschedulable
133
+ if updated_at is not None:
134
+ self.updated_at = updated_at
135
+ if warning_message is not None:
136
+ self.warning_message = warning_message
137
+
138
+ @property
139
+ def address(self) -> 'str':
140
+ """Gets the address of this V1Machine. # noqa: E501
141
+
142
+
143
+ :return: The address of this V1Machine. # noqa: E501
144
+ :rtype: str
145
+ """
146
+ return self._address
147
+
148
+ @address.setter
149
+ def address(self, address: 'str'):
150
+ """Sets the address of this V1Machine.
151
+
152
+
153
+ :param address: The address of this V1Machine. # noqa: E501
154
+ :type: str
155
+ """
156
+
157
+ self._address = address
158
+
159
+ @property
160
+ def cluster_id(self) -> 'str':
161
+ """Gets the cluster_id of this V1Machine. # noqa: E501
162
+
163
+
164
+ :return: The cluster_id of this V1Machine. # noqa: E501
165
+ :rtype: str
166
+ """
167
+ return self._cluster_id
168
+
169
+ @cluster_id.setter
170
+ def cluster_id(self, cluster_id: 'str'):
171
+ """Sets the cluster_id of this V1Machine.
172
+
173
+
174
+ :param cluster_id: The cluster_id of this V1Machine. # noqa: E501
175
+ :type: str
176
+ """
177
+
178
+ self._cluster_id = cluster_id
179
+
180
+ @property
181
+ def created_at(self) -> 'datetime':
182
+ """Gets the created_at of this V1Machine. # noqa: E501
183
+
184
+
185
+ :return: The created_at of this V1Machine. # noqa: E501
186
+ :rtype: datetime
187
+ """
188
+ return self._created_at
189
+
190
+ @created_at.setter
191
+ def created_at(self, created_at: 'datetime'):
192
+ """Sets the created_at of this V1Machine.
193
+
194
+
195
+ :param created_at: The created_at of this V1Machine. # noqa: E501
196
+ :type: datetime
197
+ """
198
+
199
+ self._created_at = created_at
200
+
201
+ @property
202
+ def id(self) -> 'str':
203
+ """Gets the id of this V1Machine. # noqa: E501
204
+
205
+
206
+ :return: The id of this V1Machine. # noqa: E501
207
+ :rtype: str
208
+ """
209
+ return self._id
210
+
211
+ @id.setter
212
+ def id(self, id: 'str'):
213
+ """Sets the id of this V1Machine.
214
+
215
+
216
+ :param id: The id of this V1Machine. # noqa: E501
217
+ :type: str
218
+ """
219
+
220
+ self._id = id
221
+
222
+ @property
223
+ def instance_type(self) -> 'str':
224
+ """Gets the instance_type of this V1Machine. # noqa: E501
225
+
226
+
227
+ :return: The instance_type of this V1Machine. # noqa: E501
228
+ :rtype: str
229
+ """
230
+ return self._instance_type
231
+
232
+ @instance_type.setter
233
+ def instance_type(self, instance_type: 'str'):
234
+ """Sets the instance_type of this V1Machine.
235
+
236
+
237
+ :param instance_type: The instance_type of this V1Machine. # noqa: E501
238
+ :type: str
239
+ """
240
+
241
+ self._instance_type = instance_type
242
+
243
+ @property
244
+ def name(self) -> 'str':
245
+ """Gets the name of this V1Machine. # noqa: E501
246
+
247
+
248
+ :return: The name of this V1Machine. # noqa: E501
249
+ :rtype: str
250
+ """
251
+ return self._name
252
+
253
+ @name.setter
254
+ def name(self, name: 'str'):
255
+ """Sets the name of this V1Machine.
256
+
257
+
258
+ :param name: The name of this V1Machine. # noqa: E501
259
+ :type: str
260
+ """
261
+
262
+ self._name = name
263
+
264
+ @property
265
+ def org_id(self) -> 'str':
266
+ """Gets the org_id of this V1Machine. # noqa: E501
267
+
268
+
269
+ :return: The org_id of this V1Machine. # noqa: E501
270
+ :rtype: str
271
+ """
272
+ return self._org_id
273
+
274
+ @org_id.setter
275
+ def org_id(self, org_id: 'str'):
276
+ """Sets the org_id of this V1Machine.
277
+
278
+
279
+ :param org_id: The org_id of this V1Machine. # noqa: E501
280
+ :type: str
281
+ """
282
+
283
+ self._org_id = org_id
284
+
285
+ @property
286
+ def provider(self) -> 'str':
287
+ """Gets the provider of this V1Machine. # noqa: E501
288
+
289
+
290
+ :return: The provider of this V1Machine. # noqa: E501
291
+ :rtype: str
292
+ """
293
+ return self._provider
294
+
295
+ @provider.setter
296
+ def provider(self, provider: 'str'):
297
+ """Sets the provider of this V1Machine.
298
+
299
+
300
+ :param provider: The provider of this V1Machine. # noqa: E501
301
+ :type: str
302
+ """
303
+
304
+ self._provider = provider
305
+
306
+ @property
307
+ def provider_instance_id(self) -> 'str':
308
+ """Gets the provider_instance_id of this V1Machine. # noqa: E501
309
+
310
+
311
+ :return: The provider_instance_id of this V1Machine. # noqa: E501
312
+ :rtype: str
313
+ """
314
+ return self._provider_instance_id
315
+
316
+ @provider_instance_id.setter
317
+ def provider_instance_id(self, provider_instance_id: 'str'):
318
+ """Sets the provider_instance_id of this V1Machine.
319
+
320
+
321
+ :param provider_instance_id: The provider_instance_id of this V1Machine. # noqa: E501
322
+ :type: str
323
+ """
324
+
325
+ self._provider_instance_id = provider_instance_id
326
+
327
+ @property
328
+ def provider_region(self) -> 'str':
329
+ """Gets the provider_region of this V1Machine. # noqa: E501
330
+
331
+
332
+ :return: The provider_region of this V1Machine. # noqa: E501
333
+ :rtype: str
334
+ """
335
+ return self._provider_region
336
+
337
+ @provider_region.setter
338
+ def provider_region(self, provider_region: 'str'):
339
+ """Sets the provider_region of this V1Machine.
340
+
341
+
342
+ :param provider_region: The provider_region of this V1Machine. # noqa: E501
343
+ :type: str
344
+ """
345
+
346
+ self._provider_region = provider_region
347
+
348
+ @property
349
+ def provisioning_method(self) -> 'str':
350
+ """Gets the provisioning_method of this V1Machine. # noqa: E501
351
+
352
+
353
+ :return: The provisioning_method of this V1Machine. # noqa: E501
354
+ :rtype: str
355
+ """
356
+ return self._provisioning_method
357
+
358
+ @provisioning_method.setter
359
+ def provisioning_method(self, provisioning_method: 'str'):
360
+ """Sets the provisioning_method of this V1Machine.
361
+
362
+
363
+ :param provisioning_method: The provisioning_method of this V1Machine. # noqa: E501
364
+ :type: str
365
+ """
366
+
367
+ self._provisioning_method = provisioning_method
368
+
369
+ @property
370
+ def ready_at(self) -> 'datetime':
371
+ """Gets the ready_at of this V1Machine. # noqa: E501
372
+
373
+
374
+ :return: The ready_at of this V1Machine. # noqa: E501
375
+ :rtype: datetime
376
+ """
377
+ return self._ready_at
378
+
379
+ @ready_at.setter
380
+ def ready_at(self, ready_at: 'datetime'):
381
+ """Sets the ready_at of this V1Machine.
382
+
383
+
384
+ :param ready_at: The ready_at of this V1Machine. # noqa: E501
385
+ :type: datetime
386
+ """
387
+
388
+ self._ready_at = ready_at
389
+
390
+ @property
391
+ def resources(self) -> 'V1Resources':
392
+ """Gets the resources of this V1Machine. # noqa: E501
393
+
394
+
395
+ :return: The resources of this V1Machine. # noqa: E501
396
+ :rtype: V1Resources
397
+ """
398
+ return self._resources
399
+
400
+ @resources.setter
401
+ def resources(self, resources: 'V1Resources'):
402
+ """Sets the resources of this V1Machine.
403
+
404
+
405
+ :param resources: The resources of this V1Machine. # noqa: E501
406
+ :type: V1Resources
407
+ """
408
+
409
+ self._resources = resources
410
+
411
+ @property
412
+ def status(self) -> 'str':
413
+ """Gets the status of this V1Machine. # noqa: E501
414
+
415
+
416
+ :return: The status of this V1Machine. # noqa: E501
417
+ :rtype: str
418
+ """
419
+ return self._status
420
+
421
+ @status.setter
422
+ def status(self, status: 'str'):
423
+ """Sets the status of this V1Machine.
424
+
425
+
426
+ :param status: The status of this V1Machine. # noqa: E501
427
+ :type: str
428
+ """
429
+
430
+ self._status = status
431
+
432
+ @property
433
+ def unschedulable(self) -> 'bool':
434
+ """Gets the unschedulable of this V1Machine. # noqa: E501
435
+
436
+
437
+ :return: The unschedulable of this V1Machine. # noqa: E501
438
+ :rtype: bool
439
+ """
440
+ return self._unschedulable
441
+
442
+ @unschedulable.setter
443
+ def unschedulable(self, unschedulable: 'bool'):
444
+ """Sets the unschedulable of this V1Machine.
445
+
446
+
447
+ :param unschedulable: The unschedulable of this V1Machine. # noqa: E501
448
+ :type: bool
449
+ """
450
+
451
+ self._unschedulable = unschedulable
452
+
453
+ @property
454
+ def updated_at(self) -> 'datetime':
455
+ """Gets the updated_at of this V1Machine. # noqa: E501
456
+
457
+
458
+ :return: The updated_at of this V1Machine. # noqa: E501
459
+ :rtype: datetime
460
+ """
461
+ return self._updated_at
462
+
463
+ @updated_at.setter
464
+ def updated_at(self, updated_at: 'datetime'):
465
+ """Sets the updated_at of this V1Machine.
466
+
467
+
468
+ :param updated_at: The updated_at of this V1Machine. # noqa: E501
469
+ :type: datetime
470
+ """
471
+
472
+ self._updated_at = updated_at
473
+
474
+ @property
475
+ def warning_message(self) -> 'str':
476
+ """Gets the warning_message of this V1Machine. # noqa: E501
477
+
478
+
479
+ :return: The warning_message of this V1Machine. # noqa: E501
480
+ :rtype: str
481
+ """
482
+ return self._warning_message
483
+
484
+ @warning_message.setter
485
+ def warning_message(self, warning_message: 'str'):
486
+ """Sets the warning_message of this V1Machine.
487
+
488
+
489
+ :param warning_message: The warning_message of this V1Machine. # noqa: E501
490
+ :type: str
491
+ """
492
+
493
+ self._warning_message = warning_message
494
+
495
+ def to_dict(self) -> dict:
496
+ """Returns the model properties as a dict"""
497
+ result = {}
498
+
499
+ for attr, _ in six.iteritems(self.swagger_types):
500
+ value = getattr(self, attr)
501
+ if isinstance(value, list):
502
+ result[attr] = list(map(
503
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
504
+ value
505
+ ))
506
+ elif hasattr(value, "to_dict"):
507
+ result[attr] = value.to_dict()
508
+ elif isinstance(value, dict):
509
+ result[attr] = dict(map(
510
+ lambda item: (item[0], item[1].to_dict())
511
+ if hasattr(item[1], "to_dict") else item,
512
+ value.items()
513
+ ))
514
+ else:
515
+ result[attr] = value
516
+ if issubclass(V1Machine, dict):
517
+ for key, value in self.items():
518
+ result[key] = value
519
+
520
+ return result
521
+
522
+ def to_str(self) -> str:
523
+ """Returns the string representation of the model"""
524
+ return pprint.pformat(self.to_dict())
525
+
526
+ def __repr__(self) -> str:
527
+ """For `print` and `pprint`"""
528
+ return self.to_str()
529
+
530
+ def __eq__(self, other: 'V1Machine') -> bool:
531
+ """Returns true if both objects are equal"""
532
+ if not isinstance(other, V1Machine):
533
+ return False
534
+
535
+ return self.__dict__ == other.__dict__
536
+
537
+ def __ne__(self, other: 'V1Machine') -> bool:
538
+ """Returns true if both objects are not equal"""
539
+ return not self == other
@@ -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 V1MachineDirectV1(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
+ 'tailscale_auth_key_secret_id': 'str'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'tailscale_auth_key_secret_id': 'tailscaleAuthKeySecretId'
49
+ }
50
+
51
+ def __init__(self, tailscale_auth_key_secret_id: 'str' =None): # noqa: E501
52
+ """V1MachineDirectV1 - a model defined in Swagger""" # noqa: E501
53
+ self._tailscale_auth_key_secret_id = None
54
+ self.discriminator = None
55
+ if tailscale_auth_key_secret_id is not None:
56
+ self.tailscale_auth_key_secret_id = tailscale_auth_key_secret_id
57
+
58
+ @property
59
+ def tailscale_auth_key_secret_id(self) -> 'str':
60
+ """Gets the tailscale_auth_key_secret_id of this V1MachineDirectV1. # noqa: E501
61
+
62
+
63
+ :return: The tailscale_auth_key_secret_id of this V1MachineDirectV1. # noqa: E501
64
+ :rtype: str
65
+ """
66
+ return self._tailscale_auth_key_secret_id
67
+
68
+ @tailscale_auth_key_secret_id.setter
69
+ def tailscale_auth_key_secret_id(self, tailscale_auth_key_secret_id: 'str'):
70
+ """Sets the tailscale_auth_key_secret_id of this V1MachineDirectV1.
71
+
72
+
73
+ :param tailscale_auth_key_secret_id: The tailscale_auth_key_secret_id of this V1MachineDirectV1. # noqa: E501
74
+ :type: str
75
+ """
76
+
77
+ self._tailscale_auth_key_secret_id = tailscale_auth_key_secret_id
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(V1MachineDirectV1, 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: 'V1MachineDirectV1') -> bool:
115
+ """Returns true if both objects are equal"""
116
+ if not isinstance(other, V1MachineDirectV1):
117
+ return False
118
+
119
+ return self.__dict__ == other.__dict__
120
+
121
+ def __ne__(self, other: 'V1MachineDirectV1') -> bool:
122
+ """Returns true if both objects are not equal"""
123
+ return not self == other