lightning-sdk 2025.8.19.post0__py3-none-any.whl → 2025.8.26__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/__init__.py +1 -1
  2. lightning_sdk/api/llm_api.py +6 -2
  3. lightning_sdk/api/studio_api.py +168 -2
  4. lightning_sdk/api/teamspace_api.py +60 -30
  5. lightning_sdk/api/user_api.py +49 -1
  6. lightning_sdk/api/utils.py +1 -1
  7. lightning_sdk/cli/config/set.py +6 -18
  8. lightning_sdk/cli/legacy/create.py +12 -14
  9. lightning_sdk/cli/legacy/delete.py +3 -3
  10. lightning_sdk/cli/legacy/deploy/_auth.py +4 -4
  11. lightning_sdk/cli/legacy/download.py +7 -7
  12. lightning_sdk/cli/legacy/job_and_mmt_action.py +4 -4
  13. lightning_sdk/cli/legacy/list.py +9 -9
  14. lightning_sdk/cli/legacy/open.py +3 -3
  15. lightning_sdk/cli/legacy/start.py +1 -0
  16. lightning_sdk/cli/legacy/switch.py +1 -0
  17. lightning_sdk/cli/legacy/upload.py +3 -3
  18. lightning_sdk/cli/studio/create.py +14 -23
  19. lightning_sdk/cli/studio/delete.py +28 -27
  20. lightning_sdk/cli/studio/list.py +5 -6
  21. lightning_sdk/cli/studio/ssh.py +19 -22
  22. lightning_sdk/cli/studio/start.py +23 -23
  23. lightning_sdk/cli/studio/stop.py +22 -26
  24. lightning_sdk/cli/studio/switch.py +20 -23
  25. lightning_sdk/cli/utils/resolve.py +1 -1
  26. lightning_sdk/cli/utils/save_to_config.py +27 -0
  27. lightning_sdk/cli/utils/studio_selection.py +106 -0
  28. lightning_sdk/cli/utils/teamspace_selection.py +125 -0
  29. lightning_sdk/lightning_cloud/openapi/__init__.py +3 -0
  30. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +170 -0
  31. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +101 -0
  32. lightning_sdk/lightning_cloud/openapi/models/__init__.py +3 -0
  33. lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +15 -15
  34. lightning_sdk/lightning_cloud/openapi/models/externalv1_user_status.py +27 -1
  35. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_metrics.py +270 -36
  36. lightning_sdk/lightning_cloud/openapi/models/v1_container_metrics.py +21 -21
  37. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_metric_timestamps_response.py +123 -0
  38. lightning_sdk/lightning_cloud/openapi/models/v1_namespace_metrics.py +11 -11
  39. lightning_sdk/lightning_cloud/openapi/models/v1_namespace_user_metrics.py +16 -16
  40. lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +156 -26
  41. lightning_sdk/lightning_cloud/openapi/models/v1_pod_metrics.py +281 -21
  42. lightning_sdk/lightning_cloud/openapi/models/v1_project_cluster_binding.py +27 -1
  43. lightning_sdk/lightning_cloud/openapi/models/v1_purchase_annual_upsell_response.py +123 -0
  44. lightning_sdk/lightning_cloud/openapi/models/v1_quote_annual_upsell_response.py +201 -0
  45. lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset.py +107 -3
  46. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +1 -27
  47. lightning_sdk/llm/llm.py +2 -2
  48. lightning_sdk/llm/public_assistants.py +4 -0
  49. lightning_sdk/studio.py +92 -28
  50. lightning_sdk/teamspace.py +25 -2
  51. lightning_sdk/user.py +19 -1
  52. lightning_sdk/utils/config.py +6 -0
  53. lightning_sdk/utils/names.py +1179 -0
  54. lightning_sdk/utils/progress.py +284 -0
  55. lightning_sdk/utils/resolve.py +6 -6
  56. {lightning_sdk-2025.8.19.post0.dist-info → lightning_sdk-2025.8.26.dist-info}/METADATA +1 -1
  57. {lightning_sdk-2025.8.19.post0.dist-info → lightning_sdk-2025.8.26.dist-info}/RECORD +61 -53
  58. {lightning_sdk-2025.8.19.post0.dist-info → lightning_sdk-2025.8.26.dist-info}/LICENSE +0 -0
  59. {lightning_sdk-2025.8.19.post0.dist-info → lightning_sdk-2025.8.26.dist-info}/WHEEL +0 -0
  60. {lightning_sdk-2025.8.19.post0.dist-info → lightning_sdk-2025.8.26.dist-info}/entry_points.txt +0 -0
  61. {lightning_sdk-2025.8.19.post0.dist-info → lightning_sdk-2025.8.26.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,201 @@
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 V1QuoteAnnualUpsellResponse(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
+ 'academic': 'bool',
45
+ 'additional_months': 'int',
46
+ 'annual_amount': 'int',
47
+ 'discounted_amount': 'int'
48
+ }
49
+
50
+ attribute_map = {
51
+ 'academic': 'academic',
52
+ 'additional_months': 'additionalMonths',
53
+ 'annual_amount': 'annualAmount',
54
+ 'discounted_amount': 'discountedAmount'
55
+ }
56
+
57
+ def __init__(self, academic: 'bool' =None, additional_months: 'int' =None, annual_amount: 'int' =None, discounted_amount: 'int' =None): # noqa: E501
58
+ """V1QuoteAnnualUpsellResponse - a model defined in Swagger""" # noqa: E501
59
+ self._academic = None
60
+ self._additional_months = None
61
+ self._annual_amount = None
62
+ self._discounted_amount = None
63
+ self.discriminator = None
64
+ if academic is not None:
65
+ self.academic = academic
66
+ if additional_months is not None:
67
+ self.additional_months = additional_months
68
+ if annual_amount is not None:
69
+ self.annual_amount = annual_amount
70
+ if discounted_amount is not None:
71
+ self.discounted_amount = discounted_amount
72
+
73
+ @property
74
+ def academic(self) -> 'bool':
75
+ """Gets the academic of this V1QuoteAnnualUpsellResponse. # noqa: E501
76
+
77
+
78
+ :return: The academic of this V1QuoteAnnualUpsellResponse. # noqa: E501
79
+ :rtype: bool
80
+ """
81
+ return self._academic
82
+
83
+ @academic.setter
84
+ def academic(self, academic: 'bool'):
85
+ """Sets the academic of this V1QuoteAnnualUpsellResponse.
86
+
87
+
88
+ :param academic: The academic of this V1QuoteAnnualUpsellResponse. # noqa: E501
89
+ :type: bool
90
+ """
91
+
92
+ self._academic = academic
93
+
94
+ @property
95
+ def additional_months(self) -> 'int':
96
+ """Gets the additional_months of this V1QuoteAnnualUpsellResponse. # noqa: E501
97
+
98
+
99
+ :return: The additional_months of this V1QuoteAnnualUpsellResponse. # noqa: E501
100
+ :rtype: int
101
+ """
102
+ return self._additional_months
103
+
104
+ @additional_months.setter
105
+ def additional_months(self, additional_months: 'int'):
106
+ """Sets the additional_months of this V1QuoteAnnualUpsellResponse.
107
+
108
+
109
+ :param additional_months: The additional_months of this V1QuoteAnnualUpsellResponse. # noqa: E501
110
+ :type: int
111
+ """
112
+
113
+ self._additional_months = additional_months
114
+
115
+ @property
116
+ def annual_amount(self) -> 'int':
117
+ """Gets the annual_amount of this V1QuoteAnnualUpsellResponse. # noqa: E501
118
+
119
+
120
+ :return: The annual_amount of this V1QuoteAnnualUpsellResponse. # noqa: E501
121
+ :rtype: int
122
+ """
123
+ return self._annual_amount
124
+
125
+ @annual_amount.setter
126
+ def annual_amount(self, annual_amount: 'int'):
127
+ """Sets the annual_amount of this V1QuoteAnnualUpsellResponse.
128
+
129
+
130
+ :param annual_amount: The annual_amount of this V1QuoteAnnualUpsellResponse. # noqa: E501
131
+ :type: int
132
+ """
133
+
134
+ self._annual_amount = annual_amount
135
+
136
+ @property
137
+ def discounted_amount(self) -> 'int':
138
+ """Gets the discounted_amount of this V1QuoteAnnualUpsellResponse. # noqa: E501
139
+
140
+
141
+ :return: The discounted_amount of this V1QuoteAnnualUpsellResponse. # noqa: E501
142
+ :rtype: int
143
+ """
144
+ return self._discounted_amount
145
+
146
+ @discounted_amount.setter
147
+ def discounted_amount(self, discounted_amount: 'int'):
148
+ """Sets the discounted_amount of this V1QuoteAnnualUpsellResponse.
149
+
150
+
151
+ :param discounted_amount: The discounted_amount of this V1QuoteAnnualUpsellResponse. # noqa: E501
152
+ :type: int
153
+ """
154
+
155
+ self._discounted_amount = discounted_amount
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(V1QuoteAnnualUpsellResponse, 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: 'V1QuoteAnnualUpsellResponse') -> bool:
193
+ """Returns true if both objects are equal"""
194
+ if not isinstance(other, V1QuoteAnnualUpsellResponse):
195
+ return False
196
+
197
+ return self.__dict__ == other.__dict__
198
+
199
+ def __ne__(self, other: 'V1QuoteAnnualUpsellResponse') -> bool:
200
+ """Returns true if both objects are not equal"""
201
+ return not self == other
@@ -45,10 +45,14 @@ class V1StorageAsset(object):
45
45
  'created_by': 'str',
46
46
  'id': 'str',
47
47
  'name': 'str',
48
+ 'read_cost_daily': 'float',
48
49
  'storage_bytes': 'str',
49
50
  'storage_cost_daily': 'float',
50
51
  'sub_type': 'str',
51
- 'type': 'V1StorageAssetType'
52
+ 'total_daily_read_bytes': 'str',
53
+ 'total_daily_write_bytes': 'str',
54
+ 'type': 'V1StorageAssetType',
55
+ 'write_cost_daily': 'float'
52
56
  }
53
57
 
54
58
  attribute_map = {
@@ -56,22 +60,30 @@ class V1StorageAsset(object):
56
60
  'created_by': 'createdBy',
57
61
  'id': 'id',
58
62
  'name': 'name',
63
+ 'read_cost_daily': 'readCostDaily',
59
64
  'storage_bytes': 'storageBytes',
60
65
  'storage_cost_daily': 'storageCostDaily',
61
66
  'sub_type': 'subType',
62
- 'type': 'type'
67
+ 'total_daily_read_bytes': 'totalDailyReadBytes',
68
+ 'total_daily_write_bytes': 'totalDailyWriteBytes',
69
+ 'type': 'type',
70
+ 'write_cost_daily': 'writeCostDaily'
63
71
  }
64
72
 
65
- def __init__(self, created_at: 'datetime' =None, created_by: 'str' =None, id: 'str' =None, name: 'str' =None, storage_bytes: 'str' =None, storage_cost_daily: 'float' =None, sub_type: 'str' =None, type: 'V1StorageAssetType' =None): # noqa: E501
73
+ def __init__(self, created_at: 'datetime' =None, created_by: 'str' =None, id: 'str' =None, name: 'str' =None, read_cost_daily: 'float' =None, storage_bytes: 'str' =None, storage_cost_daily: 'float' =None, sub_type: 'str' =None, total_daily_read_bytes: 'str' =None, total_daily_write_bytes: 'str' =None, type: 'V1StorageAssetType' =None, write_cost_daily: 'float' =None): # noqa: E501
66
74
  """V1StorageAsset - a model defined in Swagger""" # noqa: E501
67
75
  self._created_at = None
68
76
  self._created_by = None
69
77
  self._id = None
70
78
  self._name = None
79
+ self._read_cost_daily = None
71
80
  self._storage_bytes = None
72
81
  self._storage_cost_daily = None
73
82
  self._sub_type = None
83
+ self._total_daily_read_bytes = None
84
+ self._total_daily_write_bytes = None
74
85
  self._type = None
86
+ self._write_cost_daily = None
75
87
  self.discriminator = None
76
88
  if created_at is not None:
77
89
  self.created_at = created_at
@@ -81,14 +93,22 @@ class V1StorageAsset(object):
81
93
  self.id = id
82
94
  if name is not None:
83
95
  self.name = name
96
+ if read_cost_daily is not None:
97
+ self.read_cost_daily = read_cost_daily
84
98
  if storage_bytes is not None:
85
99
  self.storage_bytes = storage_bytes
86
100
  if storage_cost_daily is not None:
87
101
  self.storage_cost_daily = storage_cost_daily
88
102
  if sub_type is not None:
89
103
  self.sub_type = sub_type
104
+ if total_daily_read_bytes is not None:
105
+ self.total_daily_read_bytes = total_daily_read_bytes
106
+ if total_daily_write_bytes is not None:
107
+ self.total_daily_write_bytes = total_daily_write_bytes
90
108
  if type is not None:
91
109
  self.type = type
110
+ if write_cost_daily is not None:
111
+ self.write_cost_daily = write_cost_daily
92
112
 
93
113
  @property
94
114
  def created_at(self) -> 'datetime':
@@ -174,6 +194,27 @@ class V1StorageAsset(object):
174
194
 
175
195
  self._name = name
176
196
 
197
+ @property
198
+ def read_cost_daily(self) -> 'float':
199
+ """Gets the read_cost_daily of this V1StorageAsset. # noqa: E501
200
+
201
+
202
+ :return: The read_cost_daily of this V1StorageAsset. # noqa: E501
203
+ :rtype: float
204
+ """
205
+ return self._read_cost_daily
206
+
207
+ @read_cost_daily.setter
208
+ def read_cost_daily(self, read_cost_daily: 'float'):
209
+ """Sets the read_cost_daily of this V1StorageAsset.
210
+
211
+
212
+ :param read_cost_daily: The read_cost_daily of this V1StorageAsset. # noqa: E501
213
+ :type: float
214
+ """
215
+
216
+ self._read_cost_daily = read_cost_daily
217
+
177
218
  @property
178
219
  def storage_bytes(self) -> 'str':
179
220
  """Gets the storage_bytes of this V1StorageAsset. # noqa: E501
@@ -237,6 +278,48 @@ class V1StorageAsset(object):
237
278
 
238
279
  self._sub_type = sub_type
239
280
 
281
+ @property
282
+ def total_daily_read_bytes(self) -> 'str':
283
+ """Gets the total_daily_read_bytes of this V1StorageAsset. # noqa: E501
284
+
285
+
286
+ :return: The total_daily_read_bytes of this V1StorageAsset. # noqa: E501
287
+ :rtype: str
288
+ """
289
+ return self._total_daily_read_bytes
290
+
291
+ @total_daily_read_bytes.setter
292
+ def total_daily_read_bytes(self, total_daily_read_bytes: 'str'):
293
+ """Sets the total_daily_read_bytes of this V1StorageAsset.
294
+
295
+
296
+ :param total_daily_read_bytes: The total_daily_read_bytes of this V1StorageAsset. # noqa: E501
297
+ :type: str
298
+ """
299
+
300
+ self._total_daily_read_bytes = total_daily_read_bytes
301
+
302
+ @property
303
+ def total_daily_write_bytes(self) -> 'str':
304
+ """Gets the total_daily_write_bytes of this V1StorageAsset. # noqa: E501
305
+
306
+
307
+ :return: The total_daily_write_bytes of this V1StorageAsset. # noqa: E501
308
+ :rtype: str
309
+ """
310
+ return self._total_daily_write_bytes
311
+
312
+ @total_daily_write_bytes.setter
313
+ def total_daily_write_bytes(self, total_daily_write_bytes: 'str'):
314
+ """Sets the total_daily_write_bytes of this V1StorageAsset.
315
+
316
+
317
+ :param total_daily_write_bytes: The total_daily_write_bytes of this V1StorageAsset. # noqa: E501
318
+ :type: str
319
+ """
320
+
321
+ self._total_daily_write_bytes = total_daily_write_bytes
322
+
240
323
  @property
241
324
  def type(self) -> 'V1StorageAssetType':
242
325
  """Gets the type of this V1StorageAsset. # noqa: E501
@@ -258,6 +341,27 @@ class V1StorageAsset(object):
258
341
 
259
342
  self._type = type
260
343
 
344
+ @property
345
+ def write_cost_daily(self) -> 'float':
346
+ """Gets the write_cost_daily of this V1StorageAsset. # noqa: E501
347
+
348
+
349
+ :return: The write_cost_daily of this V1StorageAsset. # noqa: E501
350
+ :rtype: float
351
+ """
352
+ return self._write_cost_daily
353
+
354
+ @write_cost_daily.setter
355
+ def write_cost_daily(self, write_cost_daily: 'float'):
356
+ """Sets the write_cost_daily of this V1StorageAsset.
357
+
358
+
359
+ :param write_cost_daily: The write_cost_daily of this V1StorageAsset. # noqa: E501
360
+ :type: float
361
+ """
362
+
363
+ self._write_cost_daily = write_cost_daily
364
+
261
365
  def to_dict(self) -> dict:
262
366
  """Returns the model properties as a dict"""
263
367
  result = {}
@@ -79,7 +79,6 @@ class V1UserFeatures(object):
79
79
  'featured_studios_admin': 'bool',
80
80
  'gcp_overprovisioning': 'bool',
81
81
  'gcs_connections_optimized': 'bool',
82
- 'gcs_folders': 'bool',
83
82
  'instant_capacity_reservation': 'bool',
84
83
  'job_artifacts_v2': 'bool',
85
84
  'kubernetes_cluster_ui': 'bool',
@@ -165,7 +164,6 @@ class V1UserFeatures(object):
165
164
  'featured_studios_admin': 'featuredStudiosAdmin',
166
165
  'gcp_overprovisioning': 'gcpOverprovisioning',
167
166
  'gcs_connections_optimized': 'gcsConnectionsOptimized',
168
- 'gcs_folders': 'gcsFolders',
169
167
  'instant_capacity_reservation': 'instantCapacityReservation',
170
168
  'job_artifacts_v2': 'jobArtifactsV2',
171
169
  'kubernetes_cluster_ui': 'kubernetesClusterUi',
@@ -212,7 +210,7 @@ class V1UserFeatures(object):
212
210
  'writable_s3_connections': 'writableS3Connections'
213
211
  }
214
212
 
215
- def __init__(self, affiliate_links: 'bool' =None, agents_v2: 'bool' =None, ai_hub_monetization: 'bool' =None, auto_fast_load: 'bool' =None, auto_join_orgs: 'bool' =None, b2c_experience: 'bool' =None, byo_machine_type: 'bool' =None, cap_add: 'list[str]' =None, cap_drop: 'list[str]' =None, capacity_reservation_byoc: 'bool' =None, capacity_reservation_dry_run: 'bool' =None, chat_models: 'bool' =None, cloudspace_schedules: 'bool' =None, code_tab: 'bool' =None, collab_screen_sharing: 'bool' =None, control_center_monitoring: 'bool' =None, cost_attribution_settings: 'bool' =None, custom_app_domain: 'bool' =None, datasets: 'bool' =None, default_one_cluster: 'bool' =None, deployment_persistent_disk: 'bool' =None, drive_v2: 'bool' =None, enterprise_compute_admin: 'bool' =None, f227: 'bool' =None, f234: 'bool' =None, f236: 'bool' =None, f237: 'bool' =None, f238: 'bool' =None, f239: 'bool' =None, f240: 'bool' =None, f241: 'bool' =None, f242: 'bool' =None, f243: 'bool' =None, f245: 'bool' =None, fair_share: 'bool' =None, featured_studios_admin: 'bool' =None, gcp_overprovisioning: 'bool' =None, gcs_connections_optimized: 'bool' =None, gcs_folders: 'bool' =None, instant_capacity_reservation: 'bool' =None, job_artifacts_v2: 'bool' =None, kubernetes_cluster_ui: 'bool' =None, kubernetes_clusters: 'bool' =None, landing_studios: 'bool' =None, lit_logger: 'bool' =None, marketplace: 'bool' =None, mmt_fault_tolerance: 'bool' =None, mmt_strategy_selector: 'bool' =None, model_api_dashboard: 'bool' =None, multiple_studio_versions: 'bool' =None, nerf_fs_nonpaying: 'bool' =None, onboarding_v2: 'bool' =None, org_level_member_permissions: 'bool' =None, org_usage_limits: 'bool' =None, persistent_disk: 'bool' =None, plugin_distributed: 'bool' =None, plugin_inference: 'bool' =None, plugin_label_studio: 'bool' =None, plugin_langflow: 'bool' =None, plugin_python_profiler: 'bool' =None, plugin_sweeps: 'bool' =None, pricing_updates: 'bool' =None, product_generator: 'bool' =None, product_license: 'bool' =None, project_selector: 'bool' =None, publish_pipelines: 'bool' =None, reserved_machines_tab: 'bool' =None, restartable_jobs: 'bool' =None, runnable_public_studio_page: 'bool' =None, security_docs: 'bool' =None, show_dev_admin: 'bool' =None, single_wallet: 'bool' =None, slurm: 'bool' =None, specialised_studios: 'bool' =None, storage_overuse_deletion: 'bool' =None, studio_config: 'bool' =None, studio_sharing_v2: 'bool' =None, studio_version_visibility: 'bool' =None, trainium2: 'bool' =None, use_rclone_mounts_only: 'bool' =None, vultr: 'bool' =None, weka: 'bool' =None, writable_s3_connections: 'bool' =None): # noqa: E501
213
+ def __init__(self, affiliate_links: 'bool' =None, agents_v2: 'bool' =None, ai_hub_monetization: 'bool' =None, auto_fast_load: 'bool' =None, auto_join_orgs: 'bool' =None, b2c_experience: 'bool' =None, byo_machine_type: 'bool' =None, cap_add: 'list[str]' =None, cap_drop: 'list[str]' =None, capacity_reservation_byoc: 'bool' =None, capacity_reservation_dry_run: 'bool' =None, chat_models: 'bool' =None, cloudspace_schedules: 'bool' =None, code_tab: 'bool' =None, collab_screen_sharing: 'bool' =None, control_center_monitoring: 'bool' =None, cost_attribution_settings: 'bool' =None, custom_app_domain: 'bool' =None, datasets: 'bool' =None, default_one_cluster: 'bool' =None, deployment_persistent_disk: 'bool' =None, drive_v2: 'bool' =None, enterprise_compute_admin: 'bool' =None, f227: 'bool' =None, f234: 'bool' =None, f236: 'bool' =None, f237: 'bool' =None, f238: 'bool' =None, f239: 'bool' =None, f240: 'bool' =None, f241: 'bool' =None, f242: 'bool' =None, f243: 'bool' =None, f245: 'bool' =None, fair_share: 'bool' =None, featured_studios_admin: 'bool' =None, gcp_overprovisioning: 'bool' =None, gcs_connections_optimized: 'bool' =None, instant_capacity_reservation: 'bool' =None, job_artifacts_v2: 'bool' =None, kubernetes_cluster_ui: 'bool' =None, kubernetes_clusters: 'bool' =None, landing_studios: 'bool' =None, lit_logger: 'bool' =None, marketplace: 'bool' =None, mmt_fault_tolerance: 'bool' =None, mmt_strategy_selector: 'bool' =None, model_api_dashboard: 'bool' =None, multiple_studio_versions: 'bool' =None, nerf_fs_nonpaying: 'bool' =None, onboarding_v2: 'bool' =None, org_level_member_permissions: 'bool' =None, org_usage_limits: 'bool' =None, persistent_disk: 'bool' =None, plugin_distributed: 'bool' =None, plugin_inference: 'bool' =None, plugin_label_studio: 'bool' =None, plugin_langflow: 'bool' =None, plugin_python_profiler: 'bool' =None, plugin_sweeps: 'bool' =None, pricing_updates: 'bool' =None, product_generator: 'bool' =None, product_license: 'bool' =None, project_selector: 'bool' =None, publish_pipelines: 'bool' =None, reserved_machines_tab: 'bool' =None, restartable_jobs: 'bool' =None, runnable_public_studio_page: 'bool' =None, security_docs: 'bool' =None, show_dev_admin: 'bool' =None, single_wallet: 'bool' =None, slurm: 'bool' =None, specialised_studios: 'bool' =None, storage_overuse_deletion: 'bool' =None, studio_config: 'bool' =None, studio_sharing_v2: 'bool' =None, studio_version_visibility: 'bool' =None, trainium2: 'bool' =None, use_rclone_mounts_only: 'bool' =None, vultr: 'bool' =None, weka: 'bool' =None, writable_s3_connections: 'bool' =None): # noqa: E501
216
214
  """V1UserFeatures - a model defined in Swagger""" # noqa: E501
217
215
  self._affiliate_links = None
218
216
  self._agents_v2 = None
@@ -252,7 +250,6 @@ class V1UserFeatures(object):
252
250
  self._featured_studios_admin = None
253
251
  self._gcp_overprovisioning = None
254
252
  self._gcs_connections_optimized = None
255
- self._gcs_folders = None
256
253
  self._instant_capacity_reservation = None
257
254
  self._job_artifacts_v2 = None
258
255
  self._kubernetes_cluster_ui = None
@@ -374,8 +371,6 @@ class V1UserFeatures(object):
374
371
  self.gcp_overprovisioning = gcp_overprovisioning
375
372
  if gcs_connections_optimized is not None:
376
373
  self.gcs_connections_optimized = gcs_connections_optimized
377
- if gcs_folders is not None:
378
- self.gcs_folders = gcs_folders
379
374
  if instant_capacity_reservation is not None:
380
375
  self.instant_capacity_reservation = instant_capacity_reservation
381
376
  if job_artifacts_v2 is not None:
@@ -1263,27 +1258,6 @@ class V1UserFeatures(object):
1263
1258
 
1264
1259
  self._gcs_connections_optimized = gcs_connections_optimized
1265
1260
 
1266
- @property
1267
- def gcs_folders(self) -> 'bool':
1268
- """Gets the gcs_folders of this V1UserFeatures. # noqa: E501
1269
-
1270
-
1271
- :return: The gcs_folders of this V1UserFeatures. # noqa: E501
1272
- :rtype: bool
1273
- """
1274
- return self._gcs_folders
1275
-
1276
- @gcs_folders.setter
1277
- def gcs_folders(self, gcs_folders: 'bool'):
1278
- """Sets the gcs_folders of this V1UserFeatures.
1279
-
1280
-
1281
- :param gcs_folders: The gcs_folders of this V1UserFeatures. # noqa: E501
1282
- :type: bool
1283
- """
1284
-
1285
- self._gcs_folders = gcs_folders
1286
-
1287
1261
  @property
1288
1262
  def instant_capacity_reservation(self) -> 'bool':
1289
1263
  """Gets the instant_capacity_reservation of this V1UserFeatures. # noqa: E501
lightning_sdk/llm/llm.py CHANGED
@@ -285,7 +285,7 @@ class LLM:
285
285
  self,
286
286
  prompt: str,
287
287
  system_prompt: Optional[str] = None,
288
- max_completion_tokens: Optional[int] = 500,
288
+ max_completion_tokens: Optional[int] = None,
289
289
  images: Optional[Union[List[str], str]] = None,
290
290
  conversation: Optional[str] = None,
291
291
  metadata: Optional[Dict[str, str]] = None,
@@ -319,7 +319,7 @@ class LLM:
319
319
  self,
320
320
  prompt: str,
321
321
  system_prompt: Optional[str] = None,
322
- max_completion_tokens: Optional[int] = 500,
322
+ max_completion_tokens: Optional[int] = None,
323
323
  images: Optional[Union[List[str], str]] = None,
324
324
  conversation: Optional[str] = None,
325
325
  metadata: Optional[Dict[str, str]] = None,
@@ -27,6 +27,10 @@ PUBLIC_MODELS = {
27
27
  "id": "ast_01jz3thxskg4fcdk4xhkjkym5b",
28
28
  "context_length": 8000
29
29
  },
30
+ "lightning-ai/DeepSeek-V3.1": {
31
+ "id": "ast_01k378z15k0msktaxjpfrfwqqh",
32
+ "context_length": 163840
33
+ },
30
34
  "lightning-ai/gpt-oss-20b": {
31
35
  "id": "ast_01k1y2ywfh9zzexjzrva6y96ms",
32
36
  "context_length": 128000,