lightning-sdk 2025.10.23__py3-none-any.whl → 2025.10.31__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 (46) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/deployment_api.py +16 -0
  3. lightning_sdk/api/mmt_api.py +4 -1
  4. lightning_sdk/api/teamspace_api.py +1 -1
  5. lightning_sdk/cli/legacy/deploy/_auth.py +1 -2
  6. lightning_sdk/cli/utils/teamspace_selection.py +4 -5
  7. lightning_sdk/deployment/deployment.py +2 -1
  8. lightning_sdk/lightning_cloud/openapi/__init__.py +8 -0
  9. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
  10. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +234 -0
  11. lightning_sdk/lightning_cloud/openapi/api/markets_service_api.py +145 -0
  12. lightning_sdk/lightning_cloud/openapi/models/__init__.py +7 -0
  13. lightning_sdk/lightning_cloud/openapi/models/message_id_actions_body.py +201 -0
  14. lightning_sdk/lightning_cloud/openapi/models/project_id_storagetransfers_body.py +27 -1
  15. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +27 -1
  16. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +27 -1
  17. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_specialized_view.py +1 -0
  18. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  19. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
  20. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +27 -1
  21. lightning_sdk/lightning_cloud/openapi/models/v1_get_market_pricing_response.py +201 -0
  22. lightning_sdk/lightning_cloud/openapi/models/v1_incident_type.py +1 -0
  23. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_aws_config.py +279 -0
  24. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +253 -0
  25. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -1
  26. lightning_sdk/lightning_cloud/openapi/models/v1_list_conversation_message_actions_response.py +123 -0
  27. lightning_sdk/lightning_cloud/openapi/models/v1_market_price.py +149 -0
  28. lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +27 -1
  29. lightning_sdk/lightning_cloud/openapi/models/v1_message_action.py +279 -0
  30. lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +27 -1
  31. lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +27 -1
  32. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +79 -183
  33. lightning_sdk/mmt/base.py +7 -0
  34. lightning_sdk/mmt/mmt.py +8 -0
  35. lightning_sdk/mmt/v1.py +3 -1
  36. lightning_sdk/mmt/v2.py +4 -0
  37. lightning_sdk/pipeline/steps.py +6 -1
  38. lightning_sdk/plugin.py +4 -0
  39. lightning_sdk/studio.py +7 -2
  40. lightning_sdk/utils/logging.py +72 -0
  41. {lightning_sdk-2025.10.23.dist-info → lightning_sdk-2025.10.31.dist-info}/METADATA +1 -1
  42. {lightning_sdk-2025.10.23.dist-info → lightning_sdk-2025.10.31.dist-info}/RECORD +46 -37
  43. {lightning_sdk-2025.10.23.dist-info → lightning_sdk-2025.10.31.dist-info}/LICENSE +0 -0
  44. {lightning_sdk-2025.10.23.dist-info → lightning_sdk-2025.10.31.dist-info}/WHEEL +0 -0
  45. {lightning_sdk-2025.10.23.dist-info → lightning_sdk-2025.10.31.dist-info}/entry_points.txt +0 -0
  46. {lightning_sdk-2025.10.23.dist-info → lightning_sdk-2025.10.31.dist-info}/top_level.txt +0 -0
@@ -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 V1KubernetesDirectSettingsV1(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
+ 'daily_usage_report': 'bool',
45
+ 'monthly_usage_report': 'bool',
46
+ 'nfs_storage_threshold': 'float',
47
+ 'slack_channel_id': 'str',
48
+ 'temperature_threshold': 'float',
49
+ 'weekly_usage_report': 'bool'
50
+ }
51
+
52
+ attribute_map = {
53
+ 'daily_usage_report': 'dailyUsageReport',
54
+ 'monthly_usage_report': 'monthlyUsageReport',
55
+ 'nfs_storage_threshold': 'nfsStorageThreshold',
56
+ 'slack_channel_id': 'slackChannelId',
57
+ 'temperature_threshold': 'temperatureThreshold',
58
+ 'weekly_usage_report': 'weeklyUsageReport'
59
+ }
60
+
61
+ def __init__(self, daily_usage_report: 'bool' =None, monthly_usage_report: 'bool' =None, nfs_storage_threshold: 'float' =None, slack_channel_id: 'str' =None, temperature_threshold: 'float' =None, weekly_usage_report: 'bool' =None): # noqa: E501
62
+ """V1KubernetesDirectSettingsV1 - a model defined in Swagger""" # noqa: E501
63
+ self._daily_usage_report = None
64
+ self._monthly_usage_report = None
65
+ self._nfs_storage_threshold = None
66
+ self._slack_channel_id = None
67
+ self._temperature_threshold = None
68
+ self._weekly_usage_report = None
69
+ self.discriminator = None
70
+ if daily_usage_report is not None:
71
+ self.daily_usage_report = daily_usage_report
72
+ if monthly_usage_report is not None:
73
+ self.monthly_usage_report = monthly_usage_report
74
+ if nfs_storage_threshold is not None:
75
+ self.nfs_storage_threshold = nfs_storage_threshold
76
+ if slack_channel_id is not None:
77
+ self.slack_channel_id = slack_channel_id
78
+ if temperature_threshold is not None:
79
+ self.temperature_threshold = temperature_threshold
80
+ if weekly_usage_report is not None:
81
+ self.weekly_usage_report = weekly_usage_report
82
+
83
+ @property
84
+ def daily_usage_report(self) -> 'bool':
85
+ """Gets the daily_usage_report of this V1KubernetesDirectSettingsV1. # noqa: E501
86
+
87
+
88
+ :return: The daily_usage_report of this V1KubernetesDirectSettingsV1. # noqa: E501
89
+ :rtype: bool
90
+ """
91
+ return self._daily_usage_report
92
+
93
+ @daily_usage_report.setter
94
+ def daily_usage_report(self, daily_usage_report: 'bool'):
95
+ """Sets the daily_usage_report of this V1KubernetesDirectSettingsV1.
96
+
97
+
98
+ :param daily_usage_report: The daily_usage_report of this V1KubernetesDirectSettingsV1. # noqa: E501
99
+ :type: bool
100
+ """
101
+
102
+ self._daily_usage_report = daily_usage_report
103
+
104
+ @property
105
+ def monthly_usage_report(self) -> 'bool':
106
+ """Gets the monthly_usage_report of this V1KubernetesDirectSettingsV1. # noqa: E501
107
+
108
+
109
+ :return: The monthly_usage_report of this V1KubernetesDirectSettingsV1. # noqa: E501
110
+ :rtype: bool
111
+ """
112
+ return self._monthly_usage_report
113
+
114
+ @monthly_usage_report.setter
115
+ def monthly_usage_report(self, monthly_usage_report: 'bool'):
116
+ """Sets the monthly_usage_report of this V1KubernetesDirectSettingsV1.
117
+
118
+
119
+ :param monthly_usage_report: The monthly_usage_report of this V1KubernetesDirectSettingsV1. # noqa: E501
120
+ :type: bool
121
+ """
122
+
123
+ self._monthly_usage_report = monthly_usage_report
124
+
125
+ @property
126
+ def nfs_storage_threshold(self) -> 'float':
127
+ """Gets the nfs_storage_threshold of this V1KubernetesDirectSettingsV1. # noqa: E501
128
+
129
+
130
+ :return: The nfs_storage_threshold of this V1KubernetesDirectSettingsV1. # noqa: E501
131
+ :rtype: float
132
+ """
133
+ return self._nfs_storage_threshold
134
+
135
+ @nfs_storage_threshold.setter
136
+ def nfs_storage_threshold(self, nfs_storage_threshold: 'float'):
137
+ """Sets the nfs_storage_threshold of this V1KubernetesDirectSettingsV1.
138
+
139
+
140
+ :param nfs_storage_threshold: The nfs_storage_threshold of this V1KubernetesDirectSettingsV1. # noqa: E501
141
+ :type: float
142
+ """
143
+
144
+ self._nfs_storage_threshold = nfs_storage_threshold
145
+
146
+ @property
147
+ def slack_channel_id(self) -> 'str':
148
+ """Gets the slack_channel_id of this V1KubernetesDirectSettingsV1. # noqa: E501
149
+
150
+
151
+ :return: The slack_channel_id of this V1KubernetesDirectSettingsV1. # noqa: E501
152
+ :rtype: str
153
+ """
154
+ return self._slack_channel_id
155
+
156
+ @slack_channel_id.setter
157
+ def slack_channel_id(self, slack_channel_id: 'str'):
158
+ """Sets the slack_channel_id of this V1KubernetesDirectSettingsV1.
159
+
160
+
161
+ :param slack_channel_id: The slack_channel_id of this V1KubernetesDirectSettingsV1. # noqa: E501
162
+ :type: str
163
+ """
164
+
165
+ self._slack_channel_id = slack_channel_id
166
+
167
+ @property
168
+ def temperature_threshold(self) -> 'float':
169
+ """Gets the temperature_threshold of this V1KubernetesDirectSettingsV1. # noqa: E501
170
+
171
+
172
+ :return: The temperature_threshold of this V1KubernetesDirectSettingsV1. # noqa: E501
173
+ :rtype: float
174
+ """
175
+ return self._temperature_threshold
176
+
177
+ @temperature_threshold.setter
178
+ def temperature_threshold(self, temperature_threshold: 'float'):
179
+ """Sets the temperature_threshold of this V1KubernetesDirectSettingsV1.
180
+
181
+
182
+ :param temperature_threshold: The temperature_threshold of this V1KubernetesDirectSettingsV1. # noqa: E501
183
+ :type: float
184
+ """
185
+
186
+ self._temperature_threshold = temperature_threshold
187
+
188
+ @property
189
+ def weekly_usage_report(self) -> 'bool':
190
+ """Gets the weekly_usage_report of this V1KubernetesDirectSettingsV1. # noqa: E501
191
+
192
+
193
+ :return: The weekly_usage_report of this V1KubernetesDirectSettingsV1. # noqa: E501
194
+ :rtype: bool
195
+ """
196
+ return self._weekly_usage_report
197
+
198
+ @weekly_usage_report.setter
199
+ def weekly_usage_report(self, weekly_usage_report: 'bool'):
200
+ """Sets the weekly_usage_report of this V1KubernetesDirectSettingsV1.
201
+
202
+
203
+ :param weekly_usage_report: The weekly_usage_report of this V1KubernetesDirectSettingsV1. # noqa: E501
204
+ :type: bool
205
+ """
206
+
207
+ self._weekly_usage_report = weekly_usage_report
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(V1KubernetesDirectSettingsV1, 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: 'V1KubernetesDirectSettingsV1') -> bool:
245
+ """Returns true if both objects are equal"""
246
+ if not isinstance(other, V1KubernetesDirectSettingsV1):
247
+ return False
248
+
249
+ return self.__dict__ == other.__dict__
250
+
251
+ def __ne__(self, other: 'V1KubernetesDirectSettingsV1') -> bool:
252
+ """Returns true if both objects are not equal"""
253
+ return not self == other
@@ -41,6 +41,7 @@ class V1KubernetesDirectV1(object):
41
41
  and the value is json key in definition.
42
42
  """
43
43
  swagger_types = {
44
+ 'aws': 'V1KubernetesAWSConfig',
44
45
  'grafana_dashboard_url': 'str',
45
46
  'grafana_namespace': 'str',
46
47
  'grafana_service_name': 'str',
@@ -48,10 +49,12 @@ class V1KubernetesDirectV1(object):
48
49
  'incident_slack_notifiers': 'list[V1SlackNotifier]',
49
50
  'kubeconfig': 'str',
50
51
  'kubeconfig_elevated': 'str',
52
+ 'settings': 'V1KubernetesDirectSettingsV1',
51
53
  'skip_user_label_injection': 'bool'
52
54
  }
53
55
 
54
56
  attribute_map = {
57
+ 'aws': 'aws',
55
58
  'grafana_dashboard_url': 'grafanaDashboardUrl',
56
59
  'grafana_namespace': 'grafanaNamespace',
57
60
  'grafana_service_name': 'grafanaServiceName',
@@ -59,11 +62,13 @@ class V1KubernetesDirectV1(object):
59
62
  'incident_slack_notifiers': 'incidentSlackNotifiers',
60
63
  'kubeconfig': 'kubeconfig',
61
64
  'kubeconfig_elevated': 'kubeconfigElevated',
65
+ 'settings': 'settings',
62
66
  'skip_user_label_injection': 'skipUserLabelInjection'
63
67
  }
64
68
 
65
- def __init__(self, grafana_dashboard_url: 'str' =None, grafana_namespace: 'str' =None, grafana_service_name: 'str' =None, grafana_service_port: 'str' =None, incident_slack_notifiers: 'list[V1SlackNotifier]' =None, kubeconfig: 'str' =None, kubeconfig_elevated: 'str' =None, skip_user_label_injection: 'bool' =None): # noqa: E501
69
+ def __init__(self, aws: 'V1KubernetesAWSConfig' =None, grafana_dashboard_url: 'str' =None, grafana_namespace: 'str' =None, grafana_service_name: 'str' =None, grafana_service_port: 'str' =None, incident_slack_notifiers: 'list[V1SlackNotifier]' =None, kubeconfig: 'str' =None, kubeconfig_elevated: 'str' =None, settings: 'V1KubernetesDirectSettingsV1' =None, skip_user_label_injection: 'bool' =None): # noqa: E501
66
70
  """V1KubernetesDirectV1 - a model defined in Swagger""" # noqa: E501
71
+ self._aws = None
67
72
  self._grafana_dashboard_url = None
68
73
  self._grafana_namespace = None
69
74
  self._grafana_service_name = None
@@ -71,8 +76,11 @@ class V1KubernetesDirectV1(object):
71
76
  self._incident_slack_notifiers = None
72
77
  self._kubeconfig = None
73
78
  self._kubeconfig_elevated = None
79
+ self._settings = None
74
80
  self._skip_user_label_injection = None
75
81
  self.discriminator = None
82
+ if aws is not None:
83
+ self.aws = aws
76
84
  if grafana_dashboard_url is not None:
77
85
  self.grafana_dashboard_url = grafana_dashboard_url
78
86
  if grafana_namespace is not None:
@@ -87,9 +95,32 @@ class V1KubernetesDirectV1(object):
87
95
  self.kubeconfig = kubeconfig
88
96
  if kubeconfig_elevated is not None:
89
97
  self.kubeconfig_elevated = kubeconfig_elevated
98
+ if settings is not None:
99
+ self.settings = settings
90
100
  if skip_user_label_injection is not None:
91
101
  self.skip_user_label_injection = skip_user_label_injection
92
102
 
103
+ @property
104
+ def aws(self) -> 'V1KubernetesAWSConfig':
105
+ """Gets the aws of this V1KubernetesDirectV1. # noqa: E501
106
+
107
+
108
+ :return: The aws of this V1KubernetesDirectV1. # noqa: E501
109
+ :rtype: V1KubernetesAWSConfig
110
+ """
111
+ return self._aws
112
+
113
+ @aws.setter
114
+ def aws(self, aws: 'V1KubernetesAWSConfig'):
115
+ """Sets the aws of this V1KubernetesDirectV1.
116
+
117
+
118
+ :param aws: The aws of this V1KubernetesDirectV1. # noqa: E501
119
+ :type: V1KubernetesAWSConfig
120
+ """
121
+
122
+ self._aws = aws
123
+
93
124
  @property
94
125
  def grafana_dashboard_url(self) -> 'str':
95
126
  """Gets the grafana_dashboard_url of this V1KubernetesDirectV1. # noqa: E501
@@ -237,6 +268,27 @@ class V1KubernetesDirectV1(object):
237
268
 
238
269
  self._kubeconfig_elevated = kubeconfig_elevated
239
270
 
271
+ @property
272
+ def settings(self) -> 'V1KubernetesDirectSettingsV1':
273
+ """Gets the settings of this V1KubernetesDirectV1. # noqa: E501
274
+
275
+
276
+ :return: The settings of this V1KubernetesDirectV1. # noqa: E501
277
+ :rtype: V1KubernetesDirectSettingsV1
278
+ """
279
+ return self._settings
280
+
281
+ @settings.setter
282
+ def settings(self, settings: 'V1KubernetesDirectSettingsV1'):
283
+ """Sets the settings of this V1KubernetesDirectV1.
284
+
285
+
286
+ :param settings: The settings of this V1KubernetesDirectV1. # noqa: E501
287
+ :type: V1KubernetesDirectSettingsV1
288
+ """
289
+
290
+ self._settings = settings
291
+
240
292
  @property
241
293
  def skip_user_label_injection(self) -> 'bool':
242
294
  """Gets the skip_user_label_injection of this V1KubernetesDirectV1. # noqa: E501
@@ -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 V1ListConversationMessageActionsResponse(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
+ 'actions': 'list[V1MessageAction]'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'actions': 'actions'
49
+ }
50
+
51
+ def __init__(self, actions: 'list[V1MessageAction]' =None): # noqa: E501
52
+ """V1ListConversationMessageActionsResponse - a model defined in Swagger""" # noqa: E501
53
+ self._actions = None
54
+ self.discriminator = None
55
+ if actions is not None:
56
+ self.actions = actions
57
+
58
+ @property
59
+ def actions(self) -> 'list[V1MessageAction]':
60
+ """Gets the actions of this V1ListConversationMessageActionsResponse. # noqa: E501
61
+
62
+
63
+ :return: The actions of this V1ListConversationMessageActionsResponse. # noqa: E501
64
+ :rtype: list[V1MessageAction]
65
+ """
66
+ return self._actions
67
+
68
+ @actions.setter
69
+ def actions(self, actions: 'list[V1MessageAction]'):
70
+ """Sets the actions of this V1ListConversationMessageActionsResponse.
71
+
72
+
73
+ :param actions: The actions of this V1ListConversationMessageActionsResponse. # noqa: E501
74
+ :type: list[V1MessageAction]
75
+ """
76
+
77
+ self._actions = actions
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(V1ListConversationMessageActionsResponse, 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: 'V1ListConversationMessageActionsResponse') -> bool:
115
+ """Returns true if both objects are equal"""
116
+ if not isinstance(other, V1ListConversationMessageActionsResponse):
117
+ return False
118
+
119
+ return self.__dict__ == other.__dict__
120
+
121
+ def __ne__(self, other: 'V1ListConversationMessageActionsResponse') -> bool:
122
+ """Returns true if both objects are not equal"""
123
+ return not self == other
@@ -0,0 +1,149 @@
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 V1MarketPrice(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
+ 'provider_prices': 'dict(str, float)',
45
+ 'timestamp': 'datetime'
46
+ }
47
+
48
+ attribute_map = {
49
+ 'provider_prices': 'providerPrices',
50
+ 'timestamp': 'timestamp'
51
+ }
52
+
53
+ def __init__(self, provider_prices: 'dict(str, float)' =None, timestamp: 'datetime' =None): # noqa: E501
54
+ """V1MarketPrice - a model defined in Swagger""" # noqa: E501
55
+ self._provider_prices = None
56
+ self._timestamp = None
57
+ self.discriminator = None
58
+ if provider_prices is not None:
59
+ self.provider_prices = provider_prices
60
+ if timestamp is not None:
61
+ self.timestamp = timestamp
62
+
63
+ @property
64
+ def provider_prices(self) -> 'dict(str, float)':
65
+ """Gets the provider_prices of this V1MarketPrice. # noqa: E501
66
+
67
+
68
+ :return: The provider_prices of this V1MarketPrice. # noqa: E501
69
+ :rtype: dict(str, float)
70
+ """
71
+ return self._provider_prices
72
+
73
+ @provider_prices.setter
74
+ def provider_prices(self, provider_prices: 'dict(str, float)'):
75
+ """Sets the provider_prices of this V1MarketPrice.
76
+
77
+
78
+ :param provider_prices: The provider_prices of this V1MarketPrice. # noqa: E501
79
+ :type: dict(str, float)
80
+ """
81
+
82
+ self._provider_prices = provider_prices
83
+
84
+ @property
85
+ def timestamp(self) -> 'datetime':
86
+ """Gets the timestamp of this V1MarketPrice. # noqa: E501
87
+
88
+
89
+ :return: The timestamp of this V1MarketPrice. # noqa: E501
90
+ :rtype: datetime
91
+ """
92
+ return self._timestamp
93
+
94
+ @timestamp.setter
95
+ def timestamp(self, timestamp: 'datetime'):
96
+ """Sets the timestamp of this V1MarketPrice.
97
+
98
+
99
+ :param timestamp: The timestamp of this V1MarketPrice. # noqa: E501
100
+ :type: datetime
101
+ """
102
+
103
+ self._timestamp = timestamp
104
+
105
+ def to_dict(self) -> dict:
106
+ """Returns the model properties as a dict"""
107
+ result = {}
108
+
109
+ for attr, _ in six.iteritems(self.swagger_types):
110
+ value = getattr(self, attr)
111
+ if isinstance(value, list):
112
+ result[attr] = list(map(
113
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
114
+ value
115
+ ))
116
+ elif hasattr(value, "to_dict"):
117
+ result[attr] = value.to_dict()
118
+ elif isinstance(value, dict):
119
+ result[attr] = dict(map(
120
+ lambda item: (item[0], item[1].to_dict())
121
+ if hasattr(item[1], "to_dict") else item,
122
+ value.items()
123
+ ))
124
+ else:
125
+ result[attr] = value
126
+ if issubclass(V1MarketPrice, dict):
127
+ for key, value in self.items():
128
+ result[key] = value
129
+
130
+ return result
131
+
132
+ def to_str(self) -> str:
133
+ """Returns the string representation of the model"""
134
+ return pprint.pformat(self.to_dict())
135
+
136
+ def __repr__(self) -> str:
137
+ """For `print` and `pprint`"""
138
+ return self.to_str()
139
+
140
+ def __eq__(self, other: 'V1MarketPrice') -> bool:
141
+ """Returns true if both objects are equal"""
142
+ if not isinstance(other, V1MarketPrice):
143
+ return False
144
+
145
+ return self.__dict__ == other.__dict__
146
+
147
+ def __ne__(self, other: 'V1MarketPrice') -> bool:
148
+ """Returns true if both objects are not equal"""
149
+ return not self == other