anyscale 0.26.31__py3-none-any.whl → 0.26.33__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 (53) hide show
  1. anyscale/_private/anyscale_client/anyscale_client.py +15 -0
  2. anyscale/_private/anyscale_client/common.py +12 -1
  3. anyscale/_private/anyscale_client/fake_anyscale_client.py +24 -0
  4. anyscale/_private/docgen/__main__.py +2 -0
  5. anyscale/_private/docgen/models.md +2 -2
  6. anyscale/api.py +22 -0
  7. anyscale/aws_iam_policies.py +0 -3
  8. anyscale/client/README.md +22 -1
  9. anyscale/client/openapi_client/__init__.py +17 -0
  10. anyscale/client/openapi_client/api/default_api.py +611 -157
  11. anyscale/client/openapi_client/models/__init__.py +17 -0
  12. anyscale/client/openapi_client/models/baseimagesenum.py +68 -1
  13. anyscale/client/openapi_client/models/cli_usage_payload.py +440 -0
  14. anyscale/client/openapi_client/models/cluster_operation.py +266 -0
  15. anyscale/client/openapi_client/models/cluster_operation_type.py +101 -0
  16. anyscale/client/openapi_client/models/clusteroperation_response.py +121 -0
  17. anyscale/client/openapi_client/models/commit_ledger_item_type.py +111 -0
  18. anyscale/client/openapi_client/models/commit_ledger_record_v2.py +207 -0
  19. anyscale/client/openapi_client/models/complexity_level.py +101 -0
  20. anyscale/client/openapi_client/models/credit_grant_record_v2.py +181 -0
  21. anyscale/client/openapi_client/models/credit_ledger_item_type.py +104 -0
  22. anyscale/client/openapi_client/models/credit_ledger_record_v2.py +207 -0
  23. anyscale/client/openapi_client/models/credit_record_commit_v2.py +410 -0
  24. anyscale/client/openapi_client/models/credit_record_credit_v2.py +410 -0
  25. anyscale/client/openapi_client/models/credit_type.py +100 -0
  26. anyscale/client/openapi_client/models/credits_v2.py +355 -0
  27. anyscale/client/openapi_client/models/operation_error.py +123 -0
  28. anyscale/client/openapi_client/models/operation_progress.py +123 -0
  29. anyscale/client/openapi_client/models/operation_result.py +150 -0
  30. anyscale/client/openapi_client/models/supportedbaseimagesenum.py +68 -1
  31. anyscale/client/openapi_client/models/workspace_template.py +115 -3
  32. anyscale/client/openapi_client/models/workspace_template_readme.py +59 -3
  33. anyscale/cloud/__init__.py +16 -0
  34. anyscale/cloud/_private/cloud_sdk.py +33 -0
  35. anyscale/cloud/commands.py +35 -0
  36. anyscale/commands/cloud_commands.py +35 -0
  37. anyscale/commands/command_examples.py +6 -0
  38. anyscale/commands/list_util.py +100 -38
  39. anyscale/integrations.py +0 -20
  40. anyscale/scripts.py +1 -0
  41. anyscale/sdk/anyscale_client/models/baseimagesenum.py +68 -1
  42. anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py +68 -1
  43. anyscale/shared_anyscale_utils/headers.py +4 -0
  44. anyscale/shared_anyscale_utils/latest_ray_version.py +1 -1
  45. anyscale/telemetry.py +424 -0
  46. anyscale/version.py +1 -1
  47. {anyscale-0.26.31.dist-info → anyscale-0.26.33.dist-info}/METADATA +1 -1
  48. {anyscale-0.26.31.dist-info → anyscale-0.26.33.dist-info}/RECORD +53 -35
  49. {anyscale-0.26.31.dist-info → anyscale-0.26.33.dist-info}/LICENSE +0 -0
  50. {anyscale-0.26.31.dist-info → anyscale-0.26.33.dist-info}/NOTICE +0 -0
  51. {anyscale-0.26.31.dist-info → anyscale-0.26.33.dist-info}/WHEEL +0 -0
  52. {anyscale-0.26.31.dist-info → anyscale-0.26.33.dist-info}/entry_points.txt +0 -0
  53. {anyscale-0.26.31.dist-info → anyscale-0.26.33.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,355 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Managed Ray API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by: https://openapi-generator.tech
10
+ """
11
+
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ from openapi_client.configuration import Configuration
19
+
20
+
21
+ class CreditsV2(object):
22
+ """NOTE: This class is auto generated by OpenAPI Generator.
23
+ Ref: https://openapi-generator.tech
24
+
25
+ Do not edit the class manually.
26
+ """
27
+
28
+ """
29
+ Attributes:
30
+ openapi_types (dict): The key is attribute name
31
+ and the value is attribute type.
32
+ attribute_map (dict): The key is attribute name
33
+ and the value is json key in definition.
34
+ """
35
+ openapi_types = {
36
+ 'in_use_credits': 'list[CreditRecordCreditV2]',
37
+ 'pending_credits': 'list[CreditRecordCreditV2]',
38
+ 'expired_credits': 'list[CreditRecordCreditV2]',
39
+ 'in_use_commits': 'list[CreditRecordCommitV2]',
40
+ 'pending_commits': 'list[CreditRecordCommitV2]',
41
+ 'expired_commits': 'list[CreditRecordCommitV2]',
42
+ 'current_balance_usd': 'float',
43
+ 'amount_spent_usd': 'float',
44
+ 'total_granted_usd': 'float'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'in_use_credits': 'in_use_credits',
49
+ 'pending_credits': 'pending_credits',
50
+ 'expired_credits': 'expired_credits',
51
+ 'in_use_commits': 'in_use_commits',
52
+ 'pending_commits': 'pending_commits',
53
+ 'expired_commits': 'expired_commits',
54
+ 'current_balance_usd': 'current_balance_usd',
55
+ 'amount_spent_usd': 'amount_spent_usd',
56
+ 'total_granted_usd': 'total_granted_usd'
57
+ }
58
+
59
+ def __init__(self, in_use_credits=None, pending_credits=None, expired_credits=None, in_use_commits=None, pending_commits=None, expired_commits=None, current_balance_usd=None, amount_spent_usd=None, total_granted_usd=None, local_vars_configuration=None): # noqa: E501
60
+ """CreditsV2 - a model defined in OpenAPI""" # noqa: E501
61
+ if local_vars_configuration is None:
62
+ local_vars_configuration = Configuration()
63
+ self.local_vars_configuration = local_vars_configuration
64
+
65
+ self._in_use_credits = None
66
+ self._pending_credits = None
67
+ self._expired_credits = None
68
+ self._in_use_commits = None
69
+ self._pending_commits = None
70
+ self._expired_commits = None
71
+ self._current_balance_usd = None
72
+ self._amount_spent_usd = None
73
+ self._total_granted_usd = None
74
+ self.discriminator = None
75
+
76
+ self.in_use_credits = in_use_credits
77
+ self.pending_credits = pending_credits
78
+ self.expired_credits = expired_credits
79
+ self.in_use_commits = in_use_commits
80
+ self.pending_commits = pending_commits
81
+ self.expired_commits = expired_commits
82
+ self.current_balance_usd = current_balance_usd
83
+ self.amount_spent_usd = amount_spent_usd
84
+ self.total_granted_usd = total_granted_usd
85
+
86
+ @property
87
+ def in_use_credits(self):
88
+ """Gets the in_use_credits of this CreditsV2. # noqa: E501
89
+
90
+ List of in-use credits. # noqa: E501
91
+
92
+ :return: The in_use_credits of this CreditsV2. # noqa: E501
93
+ :rtype: list[CreditRecordCreditV2]
94
+ """
95
+ return self._in_use_credits
96
+
97
+ @in_use_credits.setter
98
+ def in_use_credits(self, in_use_credits):
99
+ """Sets the in_use_credits of this CreditsV2.
100
+
101
+ List of in-use credits. # noqa: E501
102
+
103
+ :param in_use_credits: The in_use_credits of this CreditsV2. # noqa: E501
104
+ :type: list[CreditRecordCreditV2]
105
+ """
106
+ if self.local_vars_configuration.client_side_validation and in_use_credits is None: # noqa: E501
107
+ raise ValueError("Invalid value for `in_use_credits`, must not be `None`") # noqa: E501
108
+
109
+ self._in_use_credits = in_use_credits
110
+
111
+ @property
112
+ def pending_credits(self):
113
+ """Gets the pending_credits of this CreditsV2. # noqa: E501
114
+
115
+ List of pending credits. # noqa: E501
116
+
117
+ :return: The pending_credits of this CreditsV2. # noqa: E501
118
+ :rtype: list[CreditRecordCreditV2]
119
+ """
120
+ return self._pending_credits
121
+
122
+ @pending_credits.setter
123
+ def pending_credits(self, pending_credits):
124
+ """Sets the pending_credits of this CreditsV2.
125
+
126
+ List of pending credits. # noqa: E501
127
+
128
+ :param pending_credits: The pending_credits of this CreditsV2. # noqa: E501
129
+ :type: list[CreditRecordCreditV2]
130
+ """
131
+ if self.local_vars_configuration.client_side_validation and pending_credits is None: # noqa: E501
132
+ raise ValueError("Invalid value for `pending_credits`, must not be `None`") # noqa: E501
133
+
134
+ self._pending_credits = pending_credits
135
+
136
+ @property
137
+ def expired_credits(self):
138
+ """Gets the expired_credits of this CreditsV2. # noqa: E501
139
+
140
+ List of expired credits. # noqa: E501
141
+
142
+ :return: The expired_credits of this CreditsV2. # noqa: E501
143
+ :rtype: list[CreditRecordCreditV2]
144
+ """
145
+ return self._expired_credits
146
+
147
+ @expired_credits.setter
148
+ def expired_credits(self, expired_credits):
149
+ """Sets the expired_credits of this CreditsV2.
150
+
151
+ List of expired credits. # noqa: E501
152
+
153
+ :param expired_credits: The expired_credits of this CreditsV2. # noqa: E501
154
+ :type: list[CreditRecordCreditV2]
155
+ """
156
+ if self.local_vars_configuration.client_side_validation and expired_credits is None: # noqa: E501
157
+ raise ValueError("Invalid value for `expired_credits`, must not be `None`") # noqa: E501
158
+
159
+ self._expired_credits = expired_credits
160
+
161
+ @property
162
+ def in_use_commits(self):
163
+ """Gets the in_use_commits of this CreditsV2. # noqa: E501
164
+
165
+ List of in-use commits. # noqa: E501
166
+
167
+ :return: The in_use_commits of this CreditsV2. # noqa: E501
168
+ :rtype: list[CreditRecordCommitV2]
169
+ """
170
+ return self._in_use_commits
171
+
172
+ @in_use_commits.setter
173
+ def in_use_commits(self, in_use_commits):
174
+ """Sets the in_use_commits of this CreditsV2.
175
+
176
+ List of in-use commits. # noqa: E501
177
+
178
+ :param in_use_commits: The in_use_commits of this CreditsV2. # noqa: E501
179
+ :type: list[CreditRecordCommitV2]
180
+ """
181
+ if self.local_vars_configuration.client_side_validation and in_use_commits is None: # noqa: E501
182
+ raise ValueError("Invalid value for `in_use_commits`, must not be `None`") # noqa: E501
183
+
184
+ self._in_use_commits = in_use_commits
185
+
186
+ @property
187
+ def pending_commits(self):
188
+ """Gets the pending_commits of this CreditsV2. # noqa: E501
189
+
190
+ List of pending commits. # noqa: E501
191
+
192
+ :return: The pending_commits of this CreditsV2. # noqa: E501
193
+ :rtype: list[CreditRecordCommitV2]
194
+ """
195
+ return self._pending_commits
196
+
197
+ @pending_commits.setter
198
+ def pending_commits(self, pending_commits):
199
+ """Sets the pending_commits of this CreditsV2.
200
+
201
+ List of pending commits. # noqa: E501
202
+
203
+ :param pending_commits: The pending_commits of this CreditsV2. # noqa: E501
204
+ :type: list[CreditRecordCommitV2]
205
+ """
206
+ if self.local_vars_configuration.client_side_validation and pending_commits is None: # noqa: E501
207
+ raise ValueError("Invalid value for `pending_commits`, must not be `None`") # noqa: E501
208
+
209
+ self._pending_commits = pending_commits
210
+
211
+ @property
212
+ def expired_commits(self):
213
+ """Gets the expired_commits of this CreditsV2. # noqa: E501
214
+
215
+ List of expired commits. # noqa: E501
216
+
217
+ :return: The expired_commits of this CreditsV2. # noqa: E501
218
+ :rtype: list[CreditRecordCommitV2]
219
+ """
220
+ return self._expired_commits
221
+
222
+ @expired_commits.setter
223
+ def expired_commits(self, expired_commits):
224
+ """Sets the expired_commits of this CreditsV2.
225
+
226
+ List of expired commits. # noqa: E501
227
+
228
+ :param expired_commits: The expired_commits of this CreditsV2. # noqa: E501
229
+ :type: list[CreditRecordCommitV2]
230
+ """
231
+ if self.local_vars_configuration.client_side_validation and expired_commits is None: # noqa: E501
232
+ raise ValueError("Invalid value for `expired_commits`, must not be `None`") # noqa: E501
233
+
234
+ self._expired_commits = expired_commits
235
+
236
+ @property
237
+ def current_balance_usd(self):
238
+ """Gets the current_balance_usd of this CreditsV2. # noqa: E501
239
+
240
+ Summary of current balance of all credits and commits. # noqa: E501
241
+
242
+ :return: The current_balance_usd of this CreditsV2. # noqa: E501
243
+ :rtype: float
244
+ """
245
+ return self._current_balance_usd
246
+
247
+ @current_balance_usd.setter
248
+ def current_balance_usd(self, current_balance_usd):
249
+ """Sets the current_balance_usd of this CreditsV2.
250
+
251
+ Summary of current balance of all credits and commits. # noqa: E501
252
+
253
+ :param current_balance_usd: The current_balance_usd of this CreditsV2. # noqa: E501
254
+ :type: float
255
+ """
256
+ if self.local_vars_configuration.client_side_validation and current_balance_usd is None: # noqa: E501
257
+ raise ValueError("Invalid value for `current_balance_usd`, must not be `None`") # noqa: E501
258
+
259
+ self._current_balance_usd = current_balance_usd
260
+
261
+ @property
262
+ def amount_spent_usd(self):
263
+ """Gets the amount_spent_usd of this CreditsV2. # noqa: E501
264
+
265
+ Summary of total amount spent across all credits and commits. # noqa: E501
266
+
267
+ :return: The amount_spent_usd of this CreditsV2. # noqa: E501
268
+ :rtype: float
269
+ """
270
+ return self._amount_spent_usd
271
+
272
+ @amount_spent_usd.setter
273
+ def amount_spent_usd(self, amount_spent_usd):
274
+ """Sets the amount_spent_usd of this CreditsV2.
275
+
276
+ Summary of total amount spent across all credits and commits. # noqa: E501
277
+
278
+ :param amount_spent_usd: The amount_spent_usd of this CreditsV2. # noqa: E501
279
+ :type: float
280
+ """
281
+ if self.local_vars_configuration.client_side_validation and amount_spent_usd is None: # noqa: E501
282
+ raise ValueError("Invalid value for `amount_spent_usd`, must not be `None`") # noqa: E501
283
+
284
+ self._amount_spent_usd = amount_spent_usd
285
+
286
+ @property
287
+ def total_granted_usd(self):
288
+ """Gets the total_granted_usd of this CreditsV2. # noqa: E501
289
+
290
+ Summary of total granted across all credits and commits. # noqa: E501
291
+
292
+ :return: The total_granted_usd of this CreditsV2. # noqa: E501
293
+ :rtype: float
294
+ """
295
+ return self._total_granted_usd
296
+
297
+ @total_granted_usd.setter
298
+ def total_granted_usd(self, total_granted_usd):
299
+ """Sets the total_granted_usd of this CreditsV2.
300
+
301
+ Summary of total granted across all credits and commits. # noqa: E501
302
+
303
+ :param total_granted_usd: The total_granted_usd of this CreditsV2. # noqa: E501
304
+ :type: float
305
+ """
306
+ if self.local_vars_configuration.client_side_validation and total_granted_usd is None: # noqa: E501
307
+ raise ValueError("Invalid value for `total_granted_usd`, must not be `None`") # noqa: E501
308
+
309
+ self._total_granted_usd = total_granted_usd
310
+
311
+ def to_dict(self):
312
+ """Returns the model properties as a dict"""
313
+ result = {}
314
+
315
+ for attr, _ in six.iteritems(self.openapi_types):
316
+ value = getattr(self, attr)
317
+ if isinstance(value, list):
318
+ result[attr] = list(map(
319
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
320
+ value
321
+ ))
322
+ elif hasattr(value, "to_dict"):
323
+ result[attr] = value.to_dict()
324
+ elif isinstance(value, dict):
325
+ result[attr] = dict(map(
326
+ lambda item: (item[0], item[1].to_dict())
327
+ if hasattr(item[1], "to_dict") else item,
328
+ value.items()
329
+ ))
330
+ else:
331
+ result[attr] = value
332
+
333
+ return result
334
+
335
+ def to_str(self):
336
+ """Returns the string representation of the model"""
337
+ return pprint.pformat(self.to_dict())
338
+
339
+ def __repr__(self):
340
+ """For `print` and `pprint`"""
341
+ return self.to_str()
342
+
343
+ def __eq__(self, other):
344
+ """Returns true if both objects are equal"""
345
+ if not isinstance(other, CreditsV2):
346
+ return False
347
+
348
+ return self.to_dict() == other.to_dict()
349
+
350
+ def __ne__(self, other):
351
+ """Returns true if both objects are not equal"""
352
+ if not isinstance(other, CreditsV2):
353
+ return True
354
+
355
+ return self.to_dict() != other.to_dict()
@@ -0,0 +1,123 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Managed Ray API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by: https://openapi-generator.tech
10
+ """
11
+
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ from openapi_client.configuration import Configuration
19
+
20
+
21
+ class OperationError(object):
22
+ """NOTE: This class is auto generated by OpenAPI Generator.
23
+ Ref: https://openapi-generator.tech
24
+
25
+ Do not edit the class manually.
26
+ """
27
+
28
+ """
29
+ Attributes:
30
+ openapi_types (dict): The key is attribute name
31
+ and the value is attribute type.
32
+ attribute_map (dict): The key is attribute name
33
+ and the value is json key in definition.
34
+ """
35
+ openapi_types = {
36
+ 'message': 'str'
37
+ }
38
+
39
+ attribute_map = {
40
+ 'message': 'message'
41
+ }
42
+
43
+ def __init__(self, message=None, local_vars_configuration=None): # noqa: E501
44
+ """OperationError - a model defined in OpenAPI""" # noqa: E501
45
+ if local_vars_configuration is None:
46
+ local_vars_configuration = Configuration()
47
+ self.local_vars_configuration = local_vars_configuration
48
+
49
+ self._message = None
50
+ self.discriminator = None
51
+
52
+ self.message = message
53
+
54
+ @property
55
+ def message(self):
56
+ """Gets the message of this OperationError. # noqa: E501
57
+
58
+ Human readable message explaining why this operation failed. # noqa: E501
59
+
60
+ :return: The message of this OperationError. # noqa: E501
61
+ :rtype: str
62
+ """
63
+ return self._message
64
+
65
+ @message.setter
66
+ def message(self, message):
67
+ """Sets the message of this OperationError.
68
+
69
+ Human readable message explaining why this operation failed. # noqa: E501
70
+
71
+ :param message: The message of this OperationError. # noqa: E501
72
+ :type: str
73
+ """
74
+ if self.local_vars_configuration.client_side_validation and message is None: # noqa: E501
75
+ raise ValueError("Invalid value for `message`, must not be `None`") # noqa: E501
76
+
77
+ self._message = message
78
+
79
+ def to_dict(self):
80
+ """Returns the model properties as a dict"""
81
+ result = {}
82
+
83
+ for attr, _ in six.iteritems(self.openapi_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
+
101
+ return result
102
+
103
+ def to_str(self):
104
+ """Returns the string representation of the model"""
105
+ return pprint.pformat(self.to_dict())
106
+
107
+ def __repr__(self):
108
+ """For `print` and `pprint`"""
109
+ return self.to_str()
110
+
111
+ def __eq__(self, other):
112
+ """Returns true if both objects are equal"""
113
+ if not isinstance(other, OperationError):
114
+ return False
115
+
116
+ return self.to_dict() == other.to_dict()
117
+
118
+ def __ne__(self, other):
119
+ """Returns true if both objects are not equal"""
120
+ if not isinstance(other, OperationError):
121
+ return True
122
+
123
+ return self.to_dict() != other.to_dict()
@@ -0,0 +1,123 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Managed Ray API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by: https://openapi-generator.tech
10
+ """
11
+
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ from openapi_client.configuration import Configuration
19
+
20
+
21
+ class OperationProgress(object):
22
+ """NOTE: This class is auto generated by OpenAPI Generator.
23
+ Ref: https://openapi-generator.tech
24
+
25
+ Do not edit the class manually.
26
+ """
27
+
28
+ """
29
+ Attributes:
30
+ openapi_types (dict): The key is attribute name
31
+ and the value is attribute type.
32
+ attribute_map (dict): The key is attribute name
33
+ and the value is json key in definition.
34
+ """
35
+ openapi_types = {
36
+ 'message': 'str'
37
+ }
38
+
39
+ attribute_map = {
40
+ 'message': 'message'
41
+ }
42
+
43
+ def __init__(self, message=None, local_vars_configuration=None): # noqa: E501
44
+ """OperationProgress - a model defined in OpenAPI""" # noqa: E501
45
+ if local_vars_configuration is None:
46
+ local_vars_configuration = Configuration()
47
+ self.local_vars_configuration = local_vars_configuration
48
+
49
+ self._message = None
50
+ self.discriminator = None
51
+
52
+ self.message = message
53
+
54
+ @property
55
+ def message(self):
56
+ """Gets the message of this OperationProgress. # noqa: E501
57
+
58
+ Human readable message about the progress of an operation. # noqa: E501
59
+
60
+ :return: The message of this OperationProgress. # noqa: E501
61
+ :rtype: str
62
+ """
63
+ return self._message
64
+
65
+ @message.setter
66
+ def message(self, message):
67
+ """Sets the message of this OperationProgress.
68
+
69
+ Human readable message about the progress of an operation. # noqa: E501
70
+
71
+ :param message: The message of this OperationProgress. # noqa: E501
72
+ :type: str
73
+ """
74
+ if self.local_vars_configuration.client_side_validation and message is None: # noqa: E501
75
+ raise ValueError("Invalid value for `message`, must not be `None`") # noqa: E501
76
+
77
+ self._message = message
78
+
79
+ def to_dict(self):
80
+ """Returns the model properties as a dict"""
81
+ result = {}
82
+
83
+ for attr, _ in six.iteritems(self.openapi_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
+
101
+ return result
102
+
103
+ def to_str(self):
104
+ """Returns the string representation of the model"""
105
+ return pprint.pformat(self.to_dict())
106
+
107
+ def __repr__(self):
108
+ """For `print` and `pprint`"""
109
+ return self.to_str()
110
+
111
+ def __eq__(self, other):
112
+ """Returns true if both objects are equal"""
113
+ if not isinstance(other, OperationProgress):
114
+ return False
115
+
116
+ return self.to_dict() == other.to_dict()
117
+
118
+ def __ne__(self, other):
119
+ """Returns true if both objects are not equal"""
120
+ if not isinstance(other, OperationProgress):
121
+ return True
122
+
123
+ return self.to_dict() != other.to_dict()