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
@@ -41,12 +41,13 @@ class V1DeploymentStatus(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
- 'deleting_replicas': 'str',
45
- 'failing_replicas': 'str',
44
+ 'deleting_replicas': 'int',
45
+ 'failing_replicas': 'int',
46
46
  'first_job_state_current_release': 'str',
47
47
  'message': 'str',
48
- 'pending_replicas': 'str',
49
- 'ready_replicas': 'str',
48
+ 'pending_replicas': 'int',
49
+ 'queued_replicas': 'int',
50
+ 'ready_replicas': 'int',
50
51
  'urls': 'list[str]'
51
52
  }
52
53
 
@@ -56,17 +57,19 @@ class V1DeploymentStatus(object):
56
57
  'first_job_state_current_release': 'firstJobStateCurrentRelease',
57
58
  'message': 'message',
58
59
  'pending_replicas': 'pendingReplicas',
60
+ 'queued_replicas': 'queuedReplicas',
59
61
  'ready_replicas': 'readyReplicas',
60
62
  'urls': 'urls'
61
63
  }
62
64
 
63
- def __init__(self, deleting_replicas: 'str' =None, failing_replicas: 'str' =None, first_job_state_current_release: 'str' =None, message: 'str' =None, pending_replicas: 'str' =None, ready_replicas: 'str' =None, urls: 'list[str]' =None): # noqa: E501
65
+ def __init__(self, deleting_replicas: 'int' =None, failing_replicas: 'int' =None, first_job_state_current_release: 'str' =None, message: 'str' =None, pending_replicas: 'int' =None, queued_replicas: 'int' =None, ready_replicas: 'int' =None, urls: 'list[str]' =None): # noqa: E501
64
66
  """V1DeploymentStatus - a model defined in Swagger""" # noqa: E501
65
67
  self._deleting_replicas = None
66
68
  self._failing_replicas = None
67
69
  self._first_job_state_current_release = None
68
70
  self._message = None
69
71
  self._pending_replicas = None
72
+ self._queued_replicas = None
70
73
  self._ready_replicas = None
71
74
  self._urls = None
72
75
  self.discriminator = None
@@ -80,49 +83,51 @@ class V1DeploymentStatus(object):
80
83
  self.message = message
81
84
  if pending_replicas is not None:
82
85
  self.pending_replicas = pending_replicas
86
+ if queued_replicas is not None:
87
+ self.queued_replicas = queued_replicas
83
88
  if ready_replicas is not None:
84
89
  self.ready_replicas = ready_replicas
85
90
  if urls is not None:
86
91
  self.urls = urls
87
92
 
88
93
  @property
89
- def deleting_replicas(self) -> 'str':
94
+ def deleting_replicas(self) -> 'int':
90
95
  """Gets the deleting_replicas of this V1DeploymentStatus. # noqa: E501
91
96
 
92
97
 
93
98
  :return: The deleting_replicas of this V1DeploymentStatus. # noqa: E501
94
- :rtype: str
99
+ :rtype: int
95
100
  """
96
101
  return self._deleting_replicas
97
102
 
98
103
  @deleting_replicas.setter
99
- def deleting_replicas(self, deleting_replicas: 'str'):
104
+ def deleting_replicas(self, deleting_replicas: 'int'):
100
105
  """Sets the deleting_replicas of this V1DeploymentStatus.
101
106
 
102
107
 
103
108
  :param deleting_replicas: The deleting_replicas of this V1DeploymentStatus. # noqa: E501
104
- :type: str
109
+ :type: int
105
110
  """
106
111
 
107
112
  self._deleting_replicas = deleting_replicas
108
113
 
109
114
  @property
110
- def failing_replicas(self) -> 'str':
115
+ def failing_replicas(self) -> 'int':
111
116
  """Gets the failing_replicas of this V1DeploymentStatus. # noqa: E501
112
117
 
113
118
 
114
119
  :return: The failing_replicas of this V1DeploymentStatus. # noqa: E501
115
- :rtype: str
120
+ :rtype: int
116
121
  """
117
122
  return self._failing_replicas
118
123
 
119
124
  @failing_replicas.setter
120
- def failing_replicas(self, failing_replicas: 'str'):
125
+ def failing_replicas(self, failing_replicas: 'int'):
121
126
  """Sets the failing_replicas of this V1DeploymentStatus.
122
127
 
123
128
 
124
129
  :param failing_replicas: The failing_replicas of this V1DeploymentStatus. # noqa: E501
125
- :type: str
130
+ :type: int
126
131
  """
127
132
 
128
133
  self._failing_replicas = failing_replicas
@@ -170,43 +175,64 @@ class V1DeploymentStatus(object):
170
175
  self._message = message
171
176
 
172
177
  @property
173
- def pending_replicas(self) -> 'str':
178
+ def pending_replicas(self) -> 'int':
174
179
  """Gets the pending_replicas of this V1DeploymentStatus. # noqa: E501
175
180
 
176
181
 
177
182
  :return: The pending_replicas of this V1DeploymentStatus. # noqa: E501
178
- :rtype: str
183
+ :rtype: int
179
184
  """
180
185
  return self._pending_replicas
181
186
 
182
187
  @pending_replicas.setter
183
- def pending_replicas(self, pending_replicas: 'str'):
188
+ def pending_replicas(self, pending_replicas: 'int'):
184
189
  """Sets the pending_replicas of this V1DeploymentStatus.
185
190
 
186
191
 
187
192
  :param pending_replicas: The pending_replicas of this V1DeploymentStatus. # noqa: E501
188
- :type: str
193
+ :type: int
189
194
  """
190
195
 
191
196
  self._pending_replicas = pending_replicas
192
197
 
193
198
  @property
194
- def ready_replicas(self) -> 'str':
199
+ def queued_replicas(self) -> 'int':
200
+ """Gets the queued_replicas of this V1DeploymentStatus. # noqa: E501
201
+
202
+
203
+ :return: The queued_replicas of this V1DeploymentStatus. # noqa: E501
204
+ :rtype: int
205
+ """
206
+ return self._queued_replicas
207
+
208
+ @queued_replicas.setter
209
+ def queued_replicas(self, queued_replicas: 'int'):
210
+ """Sets the queued_replicas of this V1DeploymentStatus.
211
+
212
+
213
+ :param queued_replicas: The queued_replicas of this V1DeploymentStatus. # noqa: E501
214
+ :type: int
215
+ """
216
+
217
+ self._queued_replicas = queued_replicas
218
+
219
+ @property
220
+ def ready_replicas(self) -> 'int':
195
221
  """Gets the ready_replicas of this V1DeploymentStatus. # noqa: E501
196
222
 
197
223
 
198
224
  :return: The ready_replicas of this V1DeploymentStatus. # noqa: E501
199
- :rtype: str
225
+ :rtype: int
200
226
  """
201
227
  return self._ready_replicas
202
228
 
203
229
  @ready_replicas.setter
204
- def ready_replicas(self, ready_replicas: 'str'):
230
+ def ready_replicas(self, ready_replicas: 'int'):
205
231
  """Sets the ready_replicas of this V1DeploymentStatus.
206
232
 
207
233
 
208
234
  :param ready_replicas: The ready_replicas of this V1DeploymentStatus. # noqa: E501
209
- :type: str
235
+ :type: int
210
236
  """
211
237
 
212
238
  self._ready_replicas = ready_replicas
@@ -0,0 +1,253 @@
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 V1ExternalCluster(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
+ 'created_at': 'datetime',
45
+ 'id': 'str',
46
+ 'name': 'str',
47
+ 'protected': 'bool',
48
+ 'spec': 'V1ExternalClusterSpec',
49
+ 'status': 'V1ClusterStatus'
50
+ }
51
+
52
+ attribute_map = {
53
+ 'created_at': 'createdAt',
54
+ 'id': 'id',
55
+ 'name': 'name',
56
+ 'protected': 'protected',
57
+ 'spec': 'spec',
58
+ 'status': 'status'
59
+ }
60
+
61
+ def __init__(self, created_at: 'datetime' =None, id: 'str' =None, name: 'str' =None, protected: 'bool' =None, spec: 'V1ExternalClusterSpec' =None, status: 'V1ClusterStatus' =None): # noqa: E501
62
+ """V1ExternalCluster - a model defined in Swagger""" # noqa: E501
63
+ self._created_at = None
64
+ self._id = None
65
+ self._name = None
66
+ self._protected = None
67
+ self._spec = None
68
+ self._status = None
69
+ self.discriminator = None
70
+ if created_at is not None:
71
+ self.created_at = created_at
72
+ if id is not None:
73
+ self.id = id
74
+ if name is not None:
75
+ self.name = name
76
+ if protected is not None:
77
+ self.protected = protected
78
+ if spec is not None:
79
+ self.spec = spec
80
+ if status is not None:
81
+ self.status = status
82
+
83
+ @property
84
+ def created_at(self) -> 'datetime':
85
+ """Gets the created_at of this V1ExternalCluster. # noqa: E501
86
+
87
+
88
+ :return: The created_at of this V1ExternalCluster. # noqa: E501
89
+ :rtype: datetime
90
+ """
91
+ return self._created_at
92
+
93
+ @created_at.setter
94
+ def created_at(self, created_at: 'datetime'):
95
+ """Sets the created_at of this V1ExternalCluster.
96
+
97
+
98
+ :param created_at: The created_at of this V1ExternalCluster. # noqa: E501
99
+ :type: datetime
100
+ """
101
+
102
+ self._created_at = created_at
103
+
104
+ @property
105
+ def id(self) -> 'str':
106
+ """Gets the id of this V1ExternalCluster. # noqa: E501
107
+
108
+
109
+ :return: The id of this V1ExternalCluster. # noqa: E501
110
+ :rtype: str
111
+ """
112
+ return self._id
113
+
114
+ @id.setter
115
+ def id(self, id: 'str'):
116
+ """Sets the id of this V1ExternalCluster.
117
+
118
+
119
+ :param id: The id of this V1ExternalCluster. # noqa: E501
120
+ :type: str
121
+ """
122
+
123
+ self._id = id
124
+
125
+ @property
126
+ def name(self) -> 'str':
127
+ """Gets the name of this V1ExternalCluster. # noqa: E501
128
+
129
+
130
+ :return: The name of this V1ExternalCluster. # noqa: E501
131
+ :rtype: str
132
+ """
133
+ return self._name
134
+
135
+ @name.setter
136
+ def name(self, name: 'str'):
137
+ """Sets the name of this V1ExternalCluster.
138
+
139
+
140
+ :param name: The name of this V1ExternalCluster. # noqa: E501
141
+ :type: str
142
+ """
143
+
144
+ self._name = name
145
+
146
+ @property
147
+ def protected(self) -> 'bool':
148
+ """Gets the protected of this V1ExternalCluster. # noqa: E501
149
+
150
+
151
+ :return: The protected of this V1ExternalCluster. # noqa: E501
152
+ :rtype: bool
153
+ """
154
+ return self._protected
155
+
156
+ @protected.setter
157
+ def protected(self, protected: 'bool'):
158
+ """Sets the protected of this V1ExternalCluster.
159
+
160
+
161
+ :param protected: The protected of this V1ExternalCluster. # noqa: E501
162
+ :type: bool
163
+ """
164
+
165
+ self._protected = protected
166
+
167
+ @property
168
+ def spec(self) -> 'V1ExternalClusterSpec':
169
+ """Gets the spec of this V1ExternalCluster. # noqa: E501
170
+
171
+
172
+ :return: The spec of this V1ExternalCluster. # noqa: E501
173
+ :rtype: V1ExternalClusterSpec
174
+ """
175
+ return self._spec
176
+
177
+ @spec.setter
178
+ def spec(self, spec: 'V1ExternalClusterSpec'):
179
+ """Sets the spec of this V1ExternalCluster.
180
+
181
+
182
+ :param spec: The spec of this V1ExternalCluster. # noqa: E501
183
+ :type: V1ExternalClusterSpec
184
+ """
185
+
186
+ self._spec = spec
187
+
188
+ @property
189
+ def status(self) -> 'V1ClusterStatus':
190
+ """Gets the status of this V1ExternalCluster. # noqa: E501
191
+
192
+
193
+ :return: The status of this V1ExternalCluster. # noqa: E501
194
+ :rtype: V1ClusterStatus
195
+ """
196
+ return self._status
197
+
198
+ @status.setter
199
+ def status(self, status: 'V1ClusterStatus'):
200
+ """Sets the status of this V1ExternalCluster.
201
+
202
+
203
+ :param status: The status of this V1ExternalCluster. # noqa: E501
204
+ :type: V1ClusterStatus
205
+ """
206
+
207
+ self._status = status
208
+
209
+ def to_dict(self) -> dict:
210
+ """Returns the model properties as a dict"""
211
+ result = {}
212
+
213
+ for attr, _ in six.iteritems(self.swagger_types):
214
+ value = getattr(self, attr)
215
+ if isinstance(value, list):
216
+ result[attr] = list(map(
217
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
218
+ value
219
+ ))
220
+ elif hasattr(value, "to_dict"):
221
+ result[attr] = value.to_dict()
222
+ elif isinstance(value, dict):
223
+ result[attr] = dict(map(
224
+ lambda item: (item[0], item[1].to_dict())
225
+ if hasattr(item[1], "to_dict") else item,
226
+ value.items()
227
+ ))
228
+ else:
229
+ result[attr] = value
230
+ if issubclass(V1ExternalCluster, dict):
231
+ for key, value in self.items():
232
+ result[key] = value
233
+
234
+ return result
235
+
236
+ def to_str(self) -> str:
237
+ """Returns the string representation of the model"""
238
+ return pprint.pformat(self.to_dict())
239
+
240
+ def __repr__(self) -> str:
241
+ """For `print` and `pprint`"""
242
+ return self.to_str()
243
+
244
+ def __eq__(self, other: 'V1ExternalCluster') -> bool:
245
+ """Returns true if both objects are equal"""
246
+ if not isinstance(other, V1ExternalCluster):
247
+ return False
248
+
249
+ return self.__dict__ == other.__dict__
250
+
251
+ def __ne__(self, other: 'V1ExternalCluster') -> bool:
252
+ """Returns true if both objects are not equal"""
253
+ return not self == other