lightning-sdk 2026.1.22__py3-none-any.whl → 2026.1.30__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. lightning_sdk/__version__.py +1 -1
  2. lightning_sdk/api/studio_api.py +38 -39
  3. lightning_sdk/api/teamspace_api.py +189 -72
  4. lightning_sdk/api/utils.py +69 -1
  5. lightning_sdk/cli/cp/__init__.py +14 -11
  6. lightning_sdk/cli/cp/teamspace_uploads.py +95 -0
  7. lightning_sdk/cli/legacy/download.py +29 -98
  8. lightning_sdk/cli/legacy/upload.py +24 -31
  9. lightning_sdk/cli/studio/cp.py +8 -5
  10. lightning_sdk/cli/studio/ls.py +1 -1
  11. lightning_sdk/cli/studio/rm.py +1 -1
  12. lightning_sdk/cli/utils/{studio_filesystem.py → filesystem.py} +49 -6
  13. lightning_sdk/exceptions.py +27 -0
  14. lightning_sdk/lightning_cloud/openapi/__init__.py +17 -12
  15. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
  16. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +5 -1
  17. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +286 -468
  18. lightning_sdk/lightning_cloud/openapi/api/container_registry_service_api.py +579 -0
  19. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +5 -1
  20. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +11 -11
  21. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +113 -0
  22. lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +113 -0
  23. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +5 -1
  24. lightning_sdk/lightning_cloud/openapi/models/__init__.py +16 -12
  25. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_refresh_container_registry_credentials_body.py → cluster_service_get_cluster_capacity_reservation_body.py} +6 -6
  26. lightning_sdk/lightning_cloud/openapi/models/{v1_container_registry_integration.py → container_registry_config_ecr.py} +49 -23
  27. lightning_sdk/lightning_cloud/openapi/models/{v1_container_registry_status.py → container_registry_provider.py} +14 -10
  28. lightning_sdk/lightning_cloud/openapi/models/container_registry_service_create_container_registry_body.py +201 -0
  29. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_config_input.py → container_registry_service_refresh_container_registry_credentials_body.py} +21 -21
  30. lightning_sdk/lightning_cloud/openapi/models/jobs_service_duplicate_deployment_body.py +175 -0
  31. lightning_sdk/lightning_cloud/openapi/models/organizations_service_update_org_role_body.py +175 -0
  32. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +1 -0
  33. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
  34. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
  35. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry.py +63 -89
  36. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_add_container_registry_body.py → v1_container_registry_config.py} +16 -16
  37. lightning_sdk/lightning_cloud/openapi/models/{v1_validate_container_registry_response.py → v1_container_registry_scopes.py} +39 -39
  38. lightning_sdk/lightning_cloud/openapi/models/{cluster_service_validate_container_registry_body.py → v1_create_container_registry_response.py} +6 -6
  39. lightning_sdk/lightning_cloud/openapi/models/v1_delete_org_cluster_capacity_reservation_response.py +97 -0
  40. lightning_sdk/lightning_cloud/openapi/models/v1_describe_org_cluster_capacity_reservation_response.py +201 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_generic_job_spec.py +79 -1
  42. lightning_sdk/lightning_cloud/openapi/models/{v1_add_container_registry_response.py → v1_get_cluster_capacity_reservation_response.py} +23 -23
  43. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +27 -1
  44. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +1 -27
  45. lightning_sdk/lightning_cloud/openapi/models/v1_list_container_registries_response.py +6 -6
  46. lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_config.py → v1_mithril_direct_v1.py} +51 -51
  47. lightning_sdk/lightning_cloud/openapi/models/v1_refresh_container_registry_credentials_response.py +1 -27
  48. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py +27 -1
  49. lightning_sdk/lightning_cloud/openapi/models/v1_update_container_registry_response.py +97 -0
  50. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +53 -105
  51. lightning_sdk/lightning_cloud/openapi/rest.py +2 -2
  52. lightning_sdk/teamspace.py +28 -7
  53. {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.30.dist-info}/METADATA +1 -1
  54. {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.30.dist-info}/RECORD +59 -53
  55. lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_info.py +0 -281
  56. lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_details.py +0 -201
  57. /lightning_sdk/lightning_cloud/openapi/models/{v1_list_filesystem_mmts_response.py → v1_list_filesystem_mm_ts_response.py} +0 -0
  58. {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.30.dist-info}/LICENSE +0 -0
  59. {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.30.dist-info}/WHEEL +0 -0
  60. {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.30.dist-info}/entry_points.txt +0 -0
  61. {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.30.dist-info}/top_level.txt +0 -0
@@ -1,281 +0,0 @@
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 V1ContainerRegistryInfo(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
- 'ecr': 'V1ECRRegistryDetails',
45
- 'id': 'str',
46
- 'last_refresh': 'datetime',
47
- 'status': 'V1ContainerRegistryStatus',
48
- 'status_message': 'str',
49
- 'type': 'str',
50
- 'validated_at': 'datetime'
51
- }
52
-
53
- attribute_map = {
54
- 'ecr': 'ecr',
55
- 'id': 'id',
56
- 'last_refresh': 'lastRefresh',
57
- 'status': 'status',
58
- 'status_message': 'statusMessage',
59
- 'type': 'type',
60
- 'validated_at': 'validatedAt'
61
- }
62
-
63
- def __init__(self, ecr: 'V1ECRRegistryDetails' =None, id: 'str' =None, last_refresh: 'datetime' =None, status: 'V1ContainerRegistryStatus' =None, status_message: 'str' =None, type: 'str' =None, validated_at: 'datetime' =None): # noqa: E501
64
- """V1ContainerRegistryInfo - a model defined in Swagger""" # noqa: E501
65
- self._ecr = None
66
- self._id = None
67
- self._last_refresh = None
68
- self._status = None
69
- self._status_message = None
70
- self._type = None
71
- self._validated_at = None
72
- self.discriminator = None
73
- if ecr is not None:
74
- self.ecr = ecr
75
- if id is not None:
76
- self.id = id
77
- if last_refresh is not None:
78
- self.last_refresh = last_refresh
79
- if status is not None:
80
- self.status = status
81
- if status_message is not None:
82
- self.status_message = status_message
83
- if type is not None:
84
- self.type = type
85
- if validated_at is not None:
86
- self.validated_at = validated_at
87
-
88
- @property
89
- def ecr(self) -> 'V1ECRRegistryDetails':
90
- """Gets the ecr of this V1ContainerRegistryInfo. # noqa: E501
91
-
92
-
93
- :return: The ecr of this V1ContainerRegistryInfo. # noqa: E501
94
- :rtype: V1ECRRegistryDetails
95
- """
96
- return self._ecr
97
-
98
- @ecr.setter
99
- def ecr(self, ecr: 'V1ECRRegistryDetails'):
100
- """Sets the ecr of this V1ContainerRegistryInfo.
101
-
102
-
103
- :param ecr: The ecr of this V1ContainerRegistryInfo. # noqa: E501
104
- :type: V1ECRRegistryDetails
105
- """
106
-
107
- self._ecr = ecr
108
-
109
- @property
110
- def id(self) -> 'str':
111
- """Gets the id of this V1ContainerRegistryInfo. # noqa: E501
112
-
113
-
114
- :return: The id of this V1ContainerRegistryInfo. # noqa: E501
115
- :rtype: str
116
- """
117
- return self._id
118
-
119
- @id.setter
120
- def id(self, id: 'str'):
121
- """Sets the id of this V1ContainerRegistryInfo.
122
-
123
-
124
- :param id: The id of this V1ContainerRegistryInfo. # noqa: E501
125
- :type: str
126
- """
127
-
128
- self._id = id
129
-
130
- @property
131
- def last_refresh(self) -> 'datetime':
132
- """Gets the last_refresh of this V1ContainerRegistryInfo. # noqa: E501
133
-
134
-
135
- :return: The last_refresh of this V1ContainerRegistryInfo. # noqa: E501
136
- :rtype: datetime
137
- """
138
- return self._last_refresh
139
-
140
- @last_refresh.setter
141
- def last_refresh(self, last_refresh: 'datetime'):
142
- """Sets the last_refresh of this V1ContainerRegistryInfo.
143
-
144
-
145
- :param last_refresh: The last_refresh of this V1ContainerRegistryInfo. # noqa: E501
146
- :type: datetime
147
- """
148
-
149
- self._last_refresh = last_refresh
150
-
151
- @property
152
- def status(self) -> 'V1ContainerRegistryStatus':
153
- """Gets the status of this V1ContainerRegistryInfo. # noqa: E501
154
-
155
-
156
- :return: The status of this V1ContainerRegistryInfo. # noqa: E501
157
- :rtype: V1ContainerRegistryStatus
158
- """
159
- return self._status
160
-
161
- @status.setter
162
- def status(self, status: 'V1ContainerRegistryStatus'):
163
- """Sets the status of this V1ContainerRegistryInfo.
164
-
165
-
166
- :param status: The status of this V1ContainerRegistryInfo. # noqa: E501
167
- :type: V1ContainerRegistryStatus
168
- """
169
-
170
- self._status = status
171
-
172
- @property
173
- def status_message(self) -> 'str':
174
- """Gets the status_message of this V1ContainerRegistryInfo. # noqa: E501
175
-
176
-
177
- :return: The status_message of this V1ContainerRegistryInfo. # noqa: E501
178
- :rtype: str
179
- """
180
- return self._status_message
181
-
182
- @status_message.setter
183
- def status_message(self, status_message: 'str'):
184
- """Sets the status_message of this V1ContainerRegistryInfo.
185
-
186
-
187
- :param status_message: The status_message of this V1ContainerRegistryInfo. # noqa: E501
188
- :type: str
189
- """
190
-
191
- self._status_message = status_message
192
-
193
- @property
194
- def type(self) -> 'str':
195
- """Gets the type of this V1ContainerRegistryInfo. # noqa: E501
196
-
197
- \"ecr\", \"lightning\", etc. # noqa: E501
198
-
199
- :return: The type of this V1ContainerRegistryInfo. # noqa: E501
200
- :rtype: str
201
- """
202
- return self._type
203
-
204
- @type.setter
205
- def type(self, type: 'str'):
206
- """Sets the type of this V1ContainerRegistryInfo.
207
-
208
- \"ecr\", \"lightning\", etc. # noqa: E501
209
-
210
- :param type: The type of this V1ContainerRegistryInfo. # noqa: E501
211
- :type: str
212
- """
213
-
214
- self._type = type
215
-
216
- @property
217
- def validated_at(self) -> 'datetime':
218
- """Gets the validated_at of this V1ContainerRegistryInfo. # noqa: E501
219
-
220
-
221
- :return: The validated_at of this V1ContainerRegistryInfo. # noqa: E501
222
- :rtype: datetime
223
- """
224
- return self._validated_at
225
-
226
- @validated_at.setter
227
- def validated_at(self, validated_at: 'datetime'):
228
- """Sets the validated_at of this V1ContainerRegistryInfo.
229
-
230
-
231
- :param validated_at: The validated_at of this V1ContainerRegistryInfo. # noqa: E501
232
- :type: datetime
233
- """
234
-
235
- self._validated_at = validated_at
236
-
237
- def to_dict(self) -> dict:
238
- """Returns the model properties as a dict"""
239
- result = {}
240
-
241
- for attr, _ in six.iteritems(self.swagger_types):
242
- value = getattr(self, attr)
243
- if isinstance(value, list):
244
- result[attr] = list(map(
245
- lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
246
- value
247
- ))
248
- elif hasattr(value, "to_dict"):
249
- result[attr] = value.to_dict()
250
- elif isinstance(value, dict):
251
- result[attr] = dict(map(
252
- lambda item: (item[0], item[1].to_dict())
253
- if hasattr(item[1], "to_dict") else item,
254
- value.items()
255
- ))
256
- else:
257
- result[attr] = value
258
- if issubclass(V1ContainerRegistryInfo, dict):
259
- for key, value in self.items():
260
- result[key] = value
261
-
262
- return result
263
-
264
- def to_str(self) -> str:
265
- """Returns the string representation of the model"""
266
- return pprint.pformat(self.to_dict())
267
-
268
- def __repr__(self) -> str:
269
- """For `print` and `pprint`"""
270
- return self.to_str()
271
-
272
- def __eq__(self, other: 'V1ContainerRegistryInfo') -> bool:
273
- """Returns true if both objects are equal"""
274
- if not isinstance(other, V1ContainerRegistryInfo):
275
- return False
276
-
277
- return self.__dict__ == other.__dict__
278
-
279
- def __ne__(self, other: 'V1ContainerRegistryInfo') -> bool:
280
- """Returns true if both objects are not equal"""
281
- return not self == other
@@ -1,201 +0,0 @@
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 V1ECRRegistryDetails(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
- 'account_id': 'str',
45
- 'iam_role_arn': 'str',
46
- 'region': 'str',
47
- 'registry_url': 'str'
48
- }
49
-
50
- attribute_map = {
51
- 'account_id': 'accountId',
52
- 'iam_role_arn': 'iamRoleArn',
53
- 'region': 'region',
54
- 'registry_url': 'registryUrl'
55
- }
56
-
57
- def __init__(self, account_id: 'str' =None, iam_role_arn: 'str' =None, region: 'str' =None, registry_url: 'str' =None): # noqa: E501
58
- """V1ECRRegistryDetails - a model defined in Swagger""" # noqa: E501
59
- self._account_id = None
60
- self._iam_role_arn = None
61
- self._region = None
62
- self._registry_url = None
63
- self.discriminator = None
64
- if account_id is not None:
65
- self.account_id = account_id
66
- if iam_role_arn is not None:
67
- self.iam_role_arn = iam_role_arn
68
- if region is not None:
69
- self.region = region
70
- if registry_url is not None:
71
- self.registry_url = registry_url
72
-
73
- @property
74
- def account_id(self) -> 'str':
75
- """Gets the account_id of this V1ECRRegistryDetails. # noqa: E501
76
-
77
-
78
- :return: The account_id of this V1ECRRegistryDetails. # noqa: E501
79
- :rtype: str
80
- """
81
- return self._account_id
82
-
83
- @account_id.setter
84
- def account_id(self, account_id: 'str'):
85
- """Sets the account_id of this V1ECRRegistryDetails.
86
-
87
-
88
- :param account_id: The account_id of this V1ECRRegistryDetails. # noqa: E501
89
- :type: str
90
- """
91
-
92
- self._account_id = account_id
93
-
94
- @property
95
- def iam_role_arn(self) -> 'str':
96
- """Gets the iam_role_arn of this V1ECRRegistryDetails. # noqa: E501
97
-
98
-
99
- :return: The iam_role_arn of this V1ECRRegistryDetails. # noqa: E501
100
- :rtype: str
101
- """
102
- return self._iam_role_arn
103
-
104
- @iam_role_arn.setter
105
- def iam_role_arn(self, iam_role_arn: 'str'):
106
- """Sets the iam_role_arn of this V1ECRRegistryDetails.
107
-
108
-
109
- :param iam_role_arn: The iam_role_arn of this V1ECRRegistryDetails. # noqa: E501
110
- :type: str
111
- """
112
-
113
- self._iam_role_arn = iam_role_arn
114
-
115
- @property
116
- def region(self) -> 'str':
117
- """Gets the region of this V1ECRRegistryDetails. # noqa: E501
118
-
119
-
120
- :return: The region of this V1ECRRegistryDetails. # noqa: E501
121
- :rtype: str
122
- """
123
- return self._region
124
-
125
- @region.setter
126
- def region(self, region: 'str'):
127
- """Sets the region of this V1ECRRegistryDetails.
128
-
129
-
130
- :param region: The region of this V1ECRRegistryDetails. # noqa: E501
131
- :type: str
132
- """
133
-
134
- self._region = region
135
-
136
- @property
137
- def registry_url(self) -> 'str':
138
- """Gets the registry_url of this V1ECRRegistryDetails. # noqa: E501
139
-
140
-
141
- :return: The registry_url of this V1ECRRegistryDetails. # noqa: E501
142
- :rtype: str
143
- """
144
- return self._registry_url
145
-
146
- @registry_url.setter
147
- def registry_url(self, registry_url: 'str'):
148
- """Sets the registry_url of this V1ECRRegistryDetails.
149
-
150
-
151
- :param registry_url: The registry_url of this V1ECRRegistryDetails. # noqa: E501
152
- :type: str
153
- """
154
-
155
- self._registry_url = registry_url
156
-
157
- def to_dict(self) -> dict:
158
- """Returns the model properties as a dict"""
159
- result = {}
160
-
161
- for attr, _ in six.iteritems(self.swagger_types):
162
- value = getattr(self, attr)
163
- if isinstance(value, list):
164
- result[attr] = list(map(
165
- lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
166
- value
167
- ))
168
- elif hasattr(value, "to_dict"):
169
- result[attr] = value.to_dict()
170
- elif isinstance(value, dict):
171
- result[attr] = dict(map(
172
- lambda item: (item[0], item[1].to_dict())
173
- if hasattr(item[1], "to_dict") else item,
174
- value.items()
175
- ))
176
- else:
177
- result[attr] = value
178
- if issubclass(V1ECRRegistryDetails, dict):
179
- for key, value in self.items():
180
- result[key] = value
181
-
182
- return result
183
-
184
- def to_str(self) -> str:
185
- """Returns the string representation of the model"""
186
- return pprint.pformat(self.to_dict())
187
-
188
- def __repr__(self) -> str:
189
- """For `print` and `pprint`"""
190
- return self.to_str()
191
-
192
- def __eq__(self, other: 'V1ECRRegistryDetails') -> bool:
193
- """Returns true if both objects are equal"""
194
- if not isinstance(other, V1ECRRegistryDetails):
195
- return False
196
-
197
- return self.__dict__ == other.__dict__
198
-
199
- def __ne__(self, other: 'V1ECRRegistryDetails') -> bool:
200
- """Returns true if both objects are not equal"""
201
- return not self == other