lightning-sdk 2025.9.16__py3-none-any.whl → 2025.9.29__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 (78) hide show
  1. lightning_sdk/__init__.py +4 -3
  2. lightning_sdk/api/cloud_account_api.py +12 -1
  3. lightning_sdk/api/job_api.py +12 -11
  4. lightning_sdk/api/mmt_api.py +1 -1
  5. lightning_sdk/api/studio_api.py +1 -1
  6. lightning_sdk/api/teamspace_api.py +18 -0
  7. lightning_sdk/api/user_api.py +8 -2
  8. lightning_sdk/cli/entrypoint.py +3 -1
  9. lightning_sdk/cli/groups.py +8 -1
  10. lightning_sdk/cli/legacy/entrypoint.py +1 -1
  11. lightning_sdk/cli/studio/create.py +19 -5
  12. lightning_sdk/cli/studio/delete.py +9 -5
  13. lightning_sdk/cli/studio/list.py +5 -1
  14. lightning_sdk/cli/studio/ssh.py +9 -3
  15. lightning_sdk/cli/studio/start.py +26 -3
  16. lightning_sdk/cli/studio/stop.py +7 -3
  17. lightning_sdk/cli/studio/switch.py +21 -5
  18. lightning_sdk/cli/utils/owner_selection.py +110 -0
  19. lightning_sdk/cli/utils/studio_selection.py +22 -15
  20. lightning_sdk/cli/utils/teamspace_selection.py +63 -62
  21. lightning_sdk/cli/vm/__init__.py +20 -0
  22. lightning_sdk/cli/vm/create.py +33 -0
  23. lightning_sdk/cli/vm/delete.py +25 -0
  24. lightning_sdk/cli/vm/list.py +30 -0
  25. lightning_sdk/cli/vm/ssh.py +31 -0
  26. lightning_sdk/cli/vm/start.py +60 -0
  27. lightning_sdk/cli/vm/stop.py +25 -0
  28. lightning_sdk/cli/vm/switch.py +38 -0
  29. lightning_sdk/lightning_cloud/openapi/__init__.py +20 -1
  30. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +2 -95
  31. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +24 -8
  32. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +420 -0
  33. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +121 -0
  34. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +655 -0
  35. lightning_sdk/lightning_cloud/openapi/models/__init__.py +20 -1
  36. lightning_sdk/lightning_cloud/openapi/models/create_machine_request_represents_the_request_to_create_a_machine.py +435 -0
  37. lightning_sdk/lightning_cloud/openapi/models/job_id_reportroutingtelemetry_body.py +123 -0
  38. lightning_sdk/lightning_cloud/openapi/models/project_id_storagetransfers_body.py +149 -0
  39. lightning_sdk/lightning_cloud/openapi/models/user_id_affiliatelinks_body.py +107 -3
  40. lightning_sdk/lightning_cloud/openapi/models/v1_abort_storage_transfer_response.py +97 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_session_daily_aggregated.py +27 -1
  42. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +2 -0
  43. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  44. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +53 -1
  45. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +1 -0
  46. lightning_sdk/lightning_cloud/openapi/models/v1_create_machine_response.py +123 -0
  47. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +27 -1
  48. lightning_sdk/lightning_cloud/openapi/models/v1_delete_machine_response.py +97 -0
  49. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -1
  50. lightning_sdk/lightning_cloud/openapi/models/v1_get_machine_response.py +123 -0
  51. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
  52. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +27 -1
  53. lightning_sdk/lightning_cloud/openapi/models/v1_lightning_elastic_cluster_v1.py +97 -0
  54. lightning_sdk/lightning_cloud/openapi/models/{v1_get_model_total_usage_metrics_response.py → v1_list_machines_response.py} +37 -37
  55. lightning_sdk/lightning_cloud/openapi/models/v1_list_storage_transfers_response.py +123 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +539 -0
  57. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +123 -0
  58. lightning_sdk/lightning_cloud/openapi/models/v1_pause_storage_transfer_response.py +97 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_purchase_annual_upsell_request.py +123 -0
  60. lightning_sdk/lightning_cloud/openapi/models/v1_report_deployment_routing_telemetry_response.py +97 -0
  61. lightning_sdk/lightning_cloud/openapi/models/v1_resume_storage_transfer_response.py +97 -0
  62. lightning_sdk/lightning_cloud/openapi/models/v1_routing_telemetry.py +79 -1
  63. lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +1 -0
  64. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py +149 -0
  65. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier_type.py +105 -0
  66. lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer.py +435 -0
  67. lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer_status.py +108 -0
  68. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +27 -1
  69. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +105 -79
  70. lightning_sdk/machine.py +16 -1
  71. lightning_sdk/studio.py +55 -11
  72. lightning_sdk/teamspace.py +65 -2
  73. {lightning_sdk-2025.9.16.dist-info → lightning_sdk-2025.9.29.dist-info}/METADATA +1 -1
  74. {lightning_sdk-2025.9.16.dist-info → lightning_sdk-2025.9.29.dist-info}/RECORD +78 -50
  75. {lightning_sdk-2025.9.16.dist-info → lightning_sdk-2025.9.29.dist-info}/LICENSE +0 -0
  76. {lightning_sdk-2025.9.16.dist-info → lightning_sdk-2025.9.29.dist-info}/WHEEL +0 -0
  77. {lightning_sdk-2025.9.16.dist-info → lightning_sdk-2025.9.29.dist-info}/entry_points.txt +0 -0
  78. {lightning_sdk-2025.9.16.dist-info → lightning_sdk-2025.9.29.dist-info}/top_level.txt +0 -0
@@ -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 V1SlackNotifier(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
+ 'type': 'V1SlackNotifierType',
45
+ 'url': 'str'
46
+ }
47
+
48
+ attribute_map = {
49
+ 'type': 'type',
50
+ 'url': 'url'
51
+ }
52
+
53
+ def __init__(self, type: 'V1SlackNotifierType' =None, url: 'str' =None): # noqa: E501
54
+ """V1SlackNotifier - a model defined in Swagger""" # noqa: E501
55
+ self._type = None
56
+ self._url = None
57
+ self.discriminator = None
58
+ if type is not None:
59
+ self.type = type
60
+ if url is not None:
61
+ self.url = url
62
+
63
+ @property
64
+ def type(self) -> 'V1SlackNotifierType':
65
+ """Gets the type of this V1SlackNotifier. # noqa: E501
66
+
67
+
68
+ :return: The type of this V1SlackNotifier. # noqa: E501
69
+ :rtype: V1SlackNotifierType
70
+ """
71
+ return self._type
72
+
73
+ @type.setter
74
+ def type(self, type: 'V1SlackNotifierType'):
75
+ """Sets the type of this V1SlackNotifier.
76
+
77
+
78
+ :param type: The type of this V1SlackNotifier. # noqa: E501
79
+ :type: V1SlackNotifierType
80
+ """
81
+
82
+ self._type = type
83
+
84
+ @property
85
+ def url(self) -> 'str':
86
+ """Gets the url of this V1SlackNotifier. # noqa: E501
87
+
88
+
89
+ :return: The url of this V1SlackNotifier. # noqa: E501
90
+ :rtype: str
91
+ """
92
+ return self._url
93
+
94
+ @url.setter
95
+ def url(self, url: 'str'):
96
+ """Sets the url of this V1SlackNotifier.
97
+
98
+
99
+ :param url: The url of this V1SlackNotifier. # noqa: E501
100
+ :type: str
101
+ """
102
+
103
+ self._url = url
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(V1SlackNotifier, 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: 'V1SlackNotifier') -> bool:
141
+ """Returns true if both objects are equal"""
142
+ if not isinstance(other, V1SlackNotifier):
143
+ return False
144
+
145
+ return self.__dict__ == other.__dict__
146
+
147
+ def __ne__(self, other: 'V1SlackNotifier') -> bool:
148
+ """Returns true if both objects are not equal"""
149
+ return not self == other
@@ -0,0 +1,105 @@
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 V1SlackNotifierType(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
+ """
38
+ allowed enum values
39
+ """
40
+ UNSPECIFIED = "SLACK_NOTIFIER_UNSPECIFIED"
41
+ CUSTOMER = "SLACK_NOTIFIER_CUSTOMER"
42
+ INTERNAL = "SLACK_NOTIFIER_INTERNAL"
43
+ PROVIDER = "SLACK_NOTIFIER_PROVIDER"
44
+ """
45
+ Attributes:
46
+ swagger_types (dict): The key is attribute name
47
+ and the value is attribute type.
48
+ attribute_map (dict): The key is attribute name
49
+ and the value is json key in definition.
50
+ """
51
+ swagger_types = {
52
+ }
53
+
54
+ attribute_map = {
55
+ }
56
+
57
+ def __init__(self): # noqa: E501
58
+ """V1SlackNotifierType - a model defined in Swagger""" # noqa: E501
59
+ self.discriminator = None
60
+
61
+ def to_dict(self) -> dict:
62
+ """Returns the model properties as a dict"""
63
+ result = {}
64
+
65
+ for attr, _ in six.iteritems(self.swagger_types):
66
+ value = getattr(self, attr)
67
+ if isinstance(value, list):
68
+ result[attr] = list(map(
69
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
70
+ value
71
+ ))
72
+ elif hasattr(value, "to_dict"):
73
+ result[attr] = value.to_dict()
74
+ elif isinstance(value, dict):
75
+ result[attr] = dict(map(
76
+ lambda item: (item[0], item[1].to_dict())
77
+ if hasattr(item[1], "to_dict") else item,
78
+ value.items()
79
+ ))
80
+ else:
81
+ result[attr] = value
82
+ if issubclass(V1SlackNotifierType, dict):
83
+ for key, value in self.items():
84
+ result[key] = value
85
+
86
+ return result
87
+
88
+ def to_str(self) -> str:
89
+ """Returns the string representation of the model"""
90
+ return pprint.pformat(self.to_dict())
91
+
92
+ def __repr__(self) -> str:
93
+ """For `print` and `pprint`"""
94
+ return self.to_str()
95
+
96
+ def __eq__(self, other: 'V1SlackNotifierType') -> bool:
97
+ """Returns true if both objects are equal"""
98
+ if not isinstance(other, V1SlackNotifierType):
99
+ return False
100
+
101
+ return self.__dict__ == other.__dict__
102
+
103
+ def __ne__(self, other: 'V1SlackNotifierType') -> bool:
104
+ """Returns true if both objects are not equal"""
105
+ return not self == other
@@ -0,0 +1,435 @@
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 V1StorageTransfer(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
+ 'creator_id': 'str',
46
+ 'id': 'str',
47
+ 'project_id': 'str',
48
+ 'provider_resource_id': 'str',
49
+ 'source_data_conncection_id': 'str',
50
+ 'status': 'V1StorageTransferStatus',
51
+ 'target_data_connection_id': 'str',
52
+ 'total_failed': 'str',
53
+ 'total_objects': 'str',
54
+ 'total_skipped': 'str',
55
+ 'total_transferred': 'str',
56
+ 'updated_at': 'datetime'
57
+ }
58
+
59
+ attribute_map = {
60
+ 'created_at': 'createdAt',
61
+ 'creator_id': 'creatorId',
62
+ 'id': 'id',
63
+ 'project_id': 'projectId',
64
+ 'provider_resource_id': 'providerResourceId',
65
+ 'source_data_conncection_id': 'sourceDataConncectionId',
66
+ 'status': 'status',
67
+ 'target_data_connection_id': 'targetDataConnectionId',
68
+ 'total_failed': 'totalFailed',
69
+ 'total_objects': 'totalObjects',
70
+ 'total_skipped': 'totalSkipped',
71
+ 'total_transferred': 'totalTransferred',
72
+ 'updated_at': 'updatedAt'
73
+ }
74
+
75
+ def __init__(self, created_at: 'datetime' =None, creator_id: 'str' =None, id: 'str' =None, project_id: 'str' =None, provider_resource_id: 'str' =None, source_data_conncection_id: 'str' =None, status: 'V1StorageTransferStatus' =None, target_data_connection_id: 'str' =None, total_failed: 'str' =None, total_objects: 'str' =None, total_skipped: 'str' =None, total_transferred: 'str' =None, updated_at: 'datetime' =None): # noqa: E501
76
+ """V1StorageTransfer - a model defined in Swagger""" # noqa: E501
77
+ self._created_at = None
78
+ self._creator_id = None
79
+ self._id = None
80
+ self._project_id = None
81
+ self._provider_resource_id = None
82
+ self._source_data_conncection_id = None
83
+ self._status = None
84
+ self._target_data_connection_id = None
85
+ self._total_failed = None
86
+ self._total_objects = None
87
+ self._total_skipped = None
88
+ self._total_transferred = None
89
+ self._updated_at = None
90
+ self.discriminator = None
91
+ if created_at is not None:
92
+ self.created_at = created_at
93
+ if creator_id is not None:
94
+ self.creator_id = creator_id
95
+ if id is not None:
96
+ self.id = id
97
+ if project_id is not None:
98
+ self.project_id = project_id
99
+ if provider_resource_id is not None:
100
+ self.provider_resource_id = provider_resource_id
101
+ if source_data_conncection_id is not None:
102
+ self.source_data_conncection_id = source_data_conncection_id
103
+ if status is not None:
104
+ self.status = status
105
+ if target_data_connection_id is not None:
106
+ self.target_data_connection_id = target_data_connection_id
107
+ if total_failed is not None:
108
+ self.total_failed = total_failed
109
+ if total_objects is not None:
110
+ self.total_objects = total_objects
111
+ if total_skipped is not None:
112
+ self.total_skipped = total_skipped
113
+ if total_transferred is not None:
114
+ self.total_transferred = total_transferred
115
+ if updated_at is not None:
116
+ self.updated_at = updated_at
117
+
118
+ @property
119
+ def created_at(self) -> 'datetime':
120
+ """Gets the created_at of this V1StorageTransfer. # noqa: E501
121
+
122
+
123
+ :return: The created_at of this V1StorageTransfer. # noqa: E501
124
+ :rtype: datetime
125
+ """
126
+ return self._created_at
127
+
128
+ @created_at.setter
129
+ def created_at(self, created_at: 'datetime'):
130
+ """Sets the created_at of this V1StorageTransfer.
131
+
132
+
133
+ :param created_at: The created_at of this V1StorageTransfer. # noqa: E501
134
+ :type: datetime
135
+ """
136
+
137
+ self._created_at = created_at
138
+
139
+ @property
140
+ def creator_id(self) -> 'str':
141
+ """Gets the creator_id of this V1StorageTransfer. # noqa: E501
142
+
143
+
144
+ :return: The creator_id of this V1StorageTransfer. # noqa: E501
145
+ :rtype: str
146
+ """
147
+ return self._creator_id
148
+
149
+ @creator_id.setter
150
+ def creator_id(self, creator_id: 'str'):
151
+ """Sets the creator_id of this V1StorageTransfer.
152
+
153
+
154
+ :param creator_id: The creator_id of this V1StorageTransfer. # noqa: E501
155
+ :type: str
156
+ """
157
+
158
+ self._creator_id = creator_id
159
+
160
+ @property
161
+ def id(self) -> 'str':
162
+ """Gets the id of this V1StorageTransfer. # noqa: E501
163
+
164
+
165
+ :return: The id of this V1StorageTransfer. # noqa: E501
166
+ :rtype: str
167
+ """
168
+ return self._id
169
+
170
+ @id.setter
171
+ def id(self, id: 'str'):
172
+ """Sets the id of this V1StorageTransfer.
173
+
174
+
175
+ :param id: The id of this V1StorageTransfer. # noqa: E501
176
+ :type: str
177
+ """
178
+
179
+ self._id = id
180
+
181
+ @property
182
+ def project_id(self) -> 'str':
183
+ """Gets the project_id of this V1StorageTransfer. # noqa: E501
184
+
185
+
186
+ :return: The project_id of this V1StorageTransfer. # noqa: E501
187
+ :rtype: str
188
+ """
189
+ return self._project_id
190
+
191
+ @project_id.setter
192
+ def project_id(self, project_id: 'str'):
193
+ """Sets the project_id of this V1StorageTransfer.
194
+
195
+
196
+ :param project_id: The project_id of this V1StorageTransfer. # noqa: E501
197
+ :type: str
198
+ """
199
+
200
+ self._project_id = project_id
201
+
202
+ @property
203
+ def provider_resource_id(self) -> 'str':
204
+ """Gets the provider_resource_id of this V1StorageTransfer. # noqa: E501
205
+
206
+
207
+ :return: The provider_resource_id of this V1StorageTransfer. # noqa: E501
208
+ :rtype: str
209
+ """
210
+ return self._provider_resource_id
211
+
212
+ @provider_resource_id.setter
213
+ def provider_resource_id(self, provider_resource_id: 'str'):
214
+ """Sets the provider_resource_id of this V1StorageTransfer.
215
+
216
+
217
+ :param provider_resource_id: The provider_resource_id of this V1StorageTransfer. # noqa: E501
218
+ :type: str
219
+ """
220
+
221
+ self._provider_resource_id = provider_resource_id
222
+
223
+ @property
224
+ def source_data_conncection_id(self) -> 'str':
225
+ """Gets the source_data_conncection_id of this V1StorageTransfer. # noqa: E501
226
+
227
+
228
+ :return: The source_data_conncection_id of this V1StorageTransfer. # noqa: E501
229
+ :rtype: str
230
+ """
231
+ return self._source_data_conncection_id
232
+
233
+ @source_data_conncection_id.setter
234
+ def source_data_conncection_id(self, source_data_conncection_id: 'str'):
235
+ """Sets the source_data_conncection_id of this V1StorageTransfer.
236
+
237
+
238
+ :param source_data_conncection_id: The source_data_conncection_id of this V1StorageTransfer. # noqa: E501
239
+ :type: str
240
+ """
241
+
242
+ self._source_data_conncection_id = source_data_conncection_id
243
+
244
+ @property
245
+ def status(self) -> 'V1StorageTransferStatus':
246
+ """Gets the status of this V1StorageTransfer. # noqa: E501
247
+
248
+
249
+ :return: The status of this V1StorageTransfer. # noqa: E501
250
+ :rtype: V1StorageTransferStatus
251
+ """
252
+ return self._status
253
+
254
+ @status.setter
255
+ def status(self, status: 'V1StorageTransferStatus'):
256
+ """Sets the status of this V1StorageTransfer.
257
+
258
+
259
+ :param status: The status of this V1StorageTransfer. # noqa: E501
260
+ :type: V1StorageTransferStatus
261
+ """
262
+
263
+ self._status = status
264
+
265
+ @property
266
+ def target_data_connection_id(self) -> 'str':
267
+ """Gets the target_data_connection_id of this V1StorageTransfer. # noqa: E501
268
+
269
+
270
+ :return: The target_data_connection_id of this V1StorageTransfer. # noqa: E501
271
+ :rtype: str
272
+ """
273
+ return self._target_data_connection_id
274
+
275
+ @target_data_connection_id.setter
276
+ def target_data_connection_id(self, target_data_connection_id: 'str'):
277
+ """Sets the target_data_connection_id of this V1StorageTransfer.
278
+
279
+
280
+ :param target_data_connection_id: The target_data_connection_id of this V1StorageTransfer. # noqa: E501
281
+ :type: str
282
+ """
283
+
284
+ self._target_data_connection_id = target_data_connection_id
285
+
286
+ @property
287
+ def total_failed(self) -> 'str':
288
+ """Gets the total_failed of this V1StorageTransfer. # noqa: E501
289
+
290
+
291
+ :return: The total_failed of this V1StorageTransfer. # noqa: E501
292
+ :rtype: str
293
+ """
294
+ return self._total_failed
295
+
296
+ @total_failed.setter
297
+ def total_failed(self, total_failed: 'str'):
298
+ """Sets the total_failed of this V1StorageTransfer.
299
+
300
+
301
+ :param total_failed: The total_failed of this V1StorageTransfer. # noqa: E501
302
+ :type: str
303
+ """
304
+
305
+ self._total_failed = total_failed
306
+
307
+ @property
308
+ def total_objects(self) -> 'str':
309
+ """Gets the total_objects of this V1StorageTransfer. # noqa: E501
310
+
311
+
312
+ :return: The total_objects of this V1StorageTransfer. # noqa: E501
313
+ :rtype: str
314
+ """
315
+ return self._total_objects
316
+
317
+ @total_objects.setter
318
+ def total_objects(self, total_objects: 'str'):
319
+ """Sets the total_objects of this V1StorageTransfer.
320
+
321
+
322
+ :param total_objects: The total_objects of this V1StorageTransfer. # noqa: E501
323
+ :type: str
324
+ """
325
+
326
+ self._total_objects = total_objects
327
+
328
+ @property
329
+ def total_skipped(self) -> 'str':
330
+ """Gets the total_skipped of this V1StorageTransfer. # noqa: E501
331
+
332
+
333
+ :return: The total_skipped of this V1StorageTransfer. # noqa: E501
334
+ :rtype: str
335
+ """
336
+ return self._total_skipped
337
+
338
+ @total_skipped.setter
339
+ def total_skipped(self, total_skipped: 'str'):
340
+ """Sets the total_skipped of this V1StorageTransfer.
341
+
342
+
343
+ :param total_skipped: The total_skipped of this V1StorageTransfer. # noqa: E501
344
+ :type: str
345
+ """
346
+
347
+ self._total_skipped = total_skipped
348
+
349
+ @property
350
+ def total_transferred(self) -> 'str':
351
+ """Gets the total_transferred of this V1StorageTransfer. # noqa: E501
352
+
353
+
354
+ :return: The total_transferred of this V1StorageTransfer. # noqa: E501
355
+ :rtype: str
356
+ """
357
+ return self._total_transferred
358
+
359
+ @total_transferred.setter
360
+ def total_transferred(self, total_transferred: 'str'):
361
+ """Sets the total_transferred of this V1StorageTransfer.
362
+
363
+
364
+ :param total_transferred: The total_transferred of this V1StorageTransfer. # noqa: E501
365
+ :type: str
366
+ """
367
+
368
+ self._total_transferred = total_transferred
369
+
370
+ @property
371
+ def updated_at(self) -> 'datetime':
372
+ """Gets the updated_at of this V1StorageTransfer. # noqa: E501
373
+
374
+
375
+ :return: The updated_at of this V1StorageTransfer. # noqa: E501
376
+ :rtype: datetime
377
+ """
378
+ return self._updated_at
379
+
380
+ @updated_at.setter
381
+ def updated_at(self, updated_at: 'datetime'):
382
+ """Sets the updated_at of this V1StorageTransfer.
383
+
384
+
385
+ :param updated_at: The updated_at of this V1StorageTransfer. # noqa: E501
386
+ :type: datetime
387
+ """
388
+
389
+ self._updated_at = updated_at
390
+
391
+ def to_dict(self) -> dict:
392
+ """Returns the model properties as a dict"""
393
+ result = {}
394
+
395
+ for attr, _ in six.iteritems(self.swagger_types):
396
+ value = getattr(self, attr)
397
+ if isinstance(value, list):
398
+ result[attr] = list(map(
399
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
400
+ value
401
+ ))
402
+ elif hasattr(value, "to_dict"):
403
+ result[attr] = value.to_dict()
404
+ elif isinstance(value, dict):
405
+ result[attr] = dict(map(
406
+ lambda item: (item[0], item[1].to_dict())
407
+ if hasattr(item[1], "to_dict") else item,
408
+ value.items()
409
+ ))
410
+ else:
411
+ result[attr] = value
412
+ if issubclass(V1StorageTransfer, dict):
413
+ for key, value in self.items():
414
+ result[key] = value
415
+
416
+ return result
417
+
418
+ def to_str(self) -> str:
419
+ """Returns the string representation of the model"""
420
+ return pprint.pformat(self.to_dict())
421
+
422
+ def __repr__(self) -> str:
423
+ """For `print` and `pprint`"""
424
+ return self.to_str()
425
+
426
+ def __eq__(self, other: 'V1StorageTransfer') -> bool:
427
+ """Returns true if both objects are equal"""
428
+ if not isinstance(other, V1StorageTransfer):
429
+ return False
430
+
431
+ return self.__dict__ == other.__dict__
432
+
433
+ def __ne__(self, other: 'V1StorageTransfer') -> bool:
434
+ """Returns true if both objects are not equal"""
435
+ return not self == other