lightning-sdk 2025.7.10__py3-none-any.whl → 2025.7.22__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.
- lightning_sdk/__init__.py +3 -2
- lightning_sdk/api/cloud_account_api.py +154 -0
- lightning_sdk/api/deployment_api.py +11 -0
- lightning_sdk/api/job_api.py +9 -0
- lightning_sdk/api/llm_api.py +11 -6
- lightning_sdk/api/mmt_api.py +9 -0
- lightning_sdk/api/pipeline_api.py +4 -3
- lightning_sdk/api/studio_api.py +19 -5
- lightning_sdk/cli/clusters_menu.py +3 -3
- lightning_sdk/cli/create.py +22 -10
- lightning_sdk/cli/deploy/_auth.py +19 -3
- lightning_sdk/cli/deploy/serve.py +18 -4
- lightning_sdk/cli/entrypoint.py +1 -1
- lightning_sdk/cli/start.py +37 -7
- lightning_sdk/deployment/deployment.py +8 -0
- lightning_sdk/job/base.py +37 -5
- lightning_sdk/job/job.py +28 -4
- lightning_sdk/job/v1.py +10 -1
- lightning_sdk/job/v2.py +15 -1
- lightning_sdk/lightning_cloud/openapi/__init__.py +15 -1
- lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +335 -0
- lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +214 -0
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +5 -1
- lightning_sdk/lightning_cloud/openapi/api/user_service_api.py +11 -11
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +15 -1
- lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/blogposts_id_body.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/{v1_list_new_features_for_user_response.py → conversations_id_body1.py} +23 -23
- lightning_sdk/lightning_cloud/openapi/models/messages_id_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_schedules_body.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/project_id_storage_body.py +1 -27
- lightning_sdk/lightning_cloud/openapi/models/protobuf_null_value.py +102 -0
- lightning_sdk/lightning_cloud/openapi/models/schedules_id_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +1 -27
- lightning_sdk/lightning_cloud/openapi/models/uploads_upload_id_body1.py +3 -55
- lightning_sdk/lightning_cloud/openapi/models/user_id_upgradetrigger_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_ai_pod_v1.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_artifact.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_assistant_session_daily_aggregated.py +357 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_blog_post.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_complete_upload.py +3 -55
- lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_billing_upgrade_trigger_record_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_blog_post_request.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_checkout_session_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_subscription_checkout_session_request.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_function_tool.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_artifacts_page_response.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_get_assistant_session_daily_aggregated_response.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_instance_artifact.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_like_status.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_notification_dialogs_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_published_managed_endpoint_models_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_message.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_presigned_url.py +1 -53
- lightning_sdk/lightning_cloud/openapi/models/v1_project.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_quote_subscription_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_schedule.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_tool.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_like_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_message_like_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +105 -261
- lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +27 -1
- lightning_sdk/llm/llm.py +32 -5
- lightning_sdk/llm/public_assistants.json +3 -1
- lightning_sdk/machine.py +24 -1
- lightning_sdk/mmt/base.py +20 -2
- lightning_sdk/mmt/mmt.py +25 -3
- lightning_sdk/mmt/v1.py +7 -1
- lightning_sdk/mmt/v2.py +21 -2
- lightning_sdk/organization.py +4 -0
- lightning_sdk/pipeline/pipeline.py +16 -5
- lightning_sdk/pipeline/printer.py +5 -3
- lightning_sdk/pipeline/schedule.py +844 -1
- lightning_sdk/pipeline/steps.py +19 -4
- lightning_sdk/sandbox.py +4 -1
- lightning_sdk/serve.py +2 -0
- lightning_sdk/studio.py +79 -39
- lightning_sdk/teamspace.py +14 -8
- lightning_sdk/utils/resolve.py +29 -2
- {lightning_sdk-2025.7.10.dist-info → lightning_sdk-2025.7.22.dist-info}/METADATA +1 -1
- {lightning_sdk-2025.7.10.dist-info → lightning_sdk-2025.7.22.dist-info}/RECORD +92 -78
- lightning_sdk/api/cluster_api.py +0 -119
- /lightning_sdk/cli/{inspect.py → inspection.py} +0 -0
- {lightning_sdk-2025.7.10.dist-info → lightning_sdk-2025.7.22.dist-info}/LICENSE +0 -0
- {lightning_sdk-2025.7.10.dist-info → lightning_sdk-2025.7.22.dist-info}/WHEEL +0 -0
- {lightning_sdk-2025.7.10.dist-info → lightning_sdk-2025.7.22.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-2025.7.10.dist-info → lightning_sdk-2025.7.22.dist-info}/top_level.txt +0 -0
lightning_sdk/cli/start.py
CHANGED
|
@@ -4,10 +4,10 @@ import click
|
|
|
4
4
|
|
|
5
5
|
from lightning_sdk import Machine, Studio
|
|
6
6
|
from lightning_sdk.lightning_cloud.openapi.rest import ApiException
|
|
7
|
-
from lightning_sdk.
|
|
7
|
+
from lightning_sdk.machine import CloudProvider
|
|
8
8
|
|
|
9
9
|
_MACHINE_VALUES = tuple([machine.name for machine in Machine.__dict__.values() if isinstance(machine, Machine)])
|
|
10
|
-
_PROVIDER_VALUES = tuple([provider.value for provider in
|
|
10
|
+
_PROVIDER_VALUES = tuple([provider.value for provider in CloudProvider])
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
@click.group("start")
|
|
@@ -35,14 +35,28 @@ def start() -> None:
|
|
|
35
35
|
type=click.Choice(_MACHINE_VALUES),
|
|
36
36
|
help="The machine type to start the studio on.",
|
|
37
37
|
)
|
|
38
|
+
@click.option(
|
|
39
|
+
"--cloud-provider",
|
|
40
|
+
default=None,
|
|
41
|
+
type=click.Choice(_PROVIDER_VALUES),
|
|
42
|
+
help=("The provider to create the studio on. If --cloud-account is specified, this option is prioritized."),
|
|
43
|
+
)
|
|
38
44
|
@click.option(
|
|
39
45
|
"--provider",
|
|
40
46
|
default=None,
|
|
41
|
-
show_default=True,
|
|
42
47
|
type=click.Choice(_PROVIDER_VALUES),
|
|
43
|
-
help=
|
|
48
|
+
help=(
|
|
49
|
+
"Deprecated. Use --cloud-provider instead. The provider to create the studio on. "
|
|
50
|
+
"If --cloud-account is specified, this option is prioritized."
|
|
51
|
+
),
|
|
44
52
|
)
|
|
45
|
-
def studio(
|
|
53
|
+
def studio(
|
|
54
|
+
name: str,
|
|
55
|
+
teamspace: Optional[str] = None,
|
|
56
|
+
machine: str = "CPU",
|
|
57
|
+
cloud_provider: Optional[str] = None,
|
|
58
|
+
provider: Optional[str] = None,
|
|
59
|
+
) -> None:
|
|
46
60
|
"""Start a studio on a given machine.
|
|
47
61
|
|
|
48
62
|
Example:
|
|
@@ -59,10 +73,26 @@ def studio(name: str, teamspace: Optional[str] = None, machine: str = "CPU", pro
|
|
|
59
73
|
owner, teamspace = None, None
|
|
60
74
|
|
|
61
75
|
try:
|
|
62
|
-
studio = Studio(
|
|
76
|
+
studio = Studio(
|
|
77
|
+
name=name,
|
|
78
|
+
teamspace=teamspace,
|
|
79
|
+
org=owner,
|
|
80
|
+
user=None,
|
|
81
|
+
create_ok=False,
|
|
82
|
+
cloud_provider=cloud_provider,
|
|
83
|
+
provider=provider,
|
|
84
|
+
)
|
|
63
85
|
except (RuntimeError, ValueError, ApiException) as first_error:
|
|
64
86
|
try:
|
|
65
|
-
studio = Studio(
|
|
87
|
+
studio = Studio(
|
|
88
|
+
name=name,
|
|
89
|
+
teamspace=teamspace,
|
|
90
|
+
org=None,
|
|
91
|
+
user=owner,
|
|
92
|
+
create_ok=False,
|
|
93
|
+
cloud_provider=cloud_provider,
|
|
94
|
+
provider=provider,
|
|
95
|
+
)
|
|
66
96
|
except (RuntimeError, ValueError, ApiException) as second_error:
|
|
67
97
|
raise first_error from second_error
|
|
68
98
|
|
|
@@ -130,6 +130,7 @@ class Deployment:
|
|
|
130
130
|
include_credentials: Optional[bool] = None,
|
|
131
131
|
from_onboarding: Optional[bool] = None,
|
|
132
132
|
from_litserve: Optional[bool] = None,
|
|
133
|
+
max_runtime: Optional[int] = None,
|
|
133
134
|
) -> None:
|
|
134
135
|
"""The Lightning AI Deployment.
|
|
135
136
|
|
|
@@ -157,6 +158,10 @@ class Deployment:
|
|
|
157
158
|
quantity: The number of machines per replica to deploy.
|
|
158
159
|
include_credentials: Whether to include the environment variables for the SDK to authenticate
|
|
159
160
|
from_onboarding: Whether the deployment is from onboarding.
|
|
161
|
+
max_runtime: the duration (in seconds) for which to allocate the machine.
|
|
162
|
+
Irrelevant for most machines, required for some of the top-end machines on GCP.
|
|
163
|
+
If in doubt, set it. Won't have an effect on machines not requiring it.
|
|
164
|
+
Defaults to 3h
|
|
160
165
|
|
|
161
166
|
Note:
|
|
162
167
|
Since a teamspace can either be owned by an org or by a user directly,
|
|
@@ -227,6 +232,7 @@ class Deployment:
|
|
|
227
232
|
quantity=quantity,
|
|
228
233
|
include_credentials=include_credentials if include_credentials is not None else True,
|
|
229
234
|
cloudspace_id=cloudspace_id,
|
|
235
|
+
max_runtime=max_runtime,
|
|
230
236
|
),
|
|
231
237
|
strategy=to_strategy(release_strategy),
|
|
232
238
|
),
|
|
@@ -262,6 +268,7 @@ class Deployment:
|
|
|
262
268
|
cluster: Optional[str] = None, # deprecated in favor of cloud_account
|
|
263
269
|
quantity: Optional[int] = None,
|
|
264
270
|
include_credentials: Optional[bool] = None,
|
|
271
|
+
max_runtime: Optional[int] = None,
|
|
265
272
|
) -> None:
|
|
266
273
|
cloud_account = _resolve_deprecated_cluster(cloud_account, cluster)
|
|
267
274
|
|
|
@@ -288,6 +295,7 @@ class Deployment:
|
|
|
288
295
|
release_strategy=release_strategy,
|
|
289
296
|
quantity=quantity,
|
|
290
297
|
include_credentials=include_credentials,
|
|
298
|
+
max_runtime=max_runtime,
|
|
291
299
|
)
|
|
292
300
|
|
|
293
301
|
def stop(self) -> None:
|
lightning_sdk/job/base.py
CHANGED
|
@@ -2,11 +2,12 @@ import warnings
|
|
|
2
2
|
from abc import ABC, abstractmethod
|
|
3
3
|
from typing import TYPE_CHECKING, Any, Dict, Optional, TypedDict, Union
|
|
4
4
|
|
|
5
|
+
from lightning_sdk.api.cloud_account_api import CloudAccountApi
|
|
5
6
|
from lightning_sdk.api.utils import _get_cloud_url
|
|
6
7
|
from lightning_sdk.utils.resolve import _resolve_deprecated_cluster, _resolve_teamspace, in_studio
|
|
7
8
|
|
|
8
9
|
if TYPE_CHECKING:
|
|
9
|
-
from lightning_sdk.machine import Machine
|
|
10
|
+
from lightning_sdk.machine import CloudProvider, Machine
|
|
10
11
|
from lightning_sdk.organization import Organization
|
|
11
12
|
from lightning_sdk.status import Status
|
|
12
13
|
from lightning_sdk.studio import Studio
|
|
@@ -64,6 +65,7 @@ class _BaseJob(ABC):
|
|
|
64
65
|
self._update_internal_job()
|
|
65
66
|
|
|
66
67
|
self._prevent_refetch_latest = False
|
|
68
|
+
self._cloud_account_api = CloudAccountApi()
|
|
67
69
|
|
|
68
70
|
@classmethod
|
|
69
71
|
def run(
|
|
@@ -77,6 +79,7 @@ class _BaseJob(ABC):
|
|
|
77
79
|
org: Union[str, "Organization", None] = None,
|
|
78
80
|
user: Union[str, "User", None] = None,
|
|
79
81
|
cloud_account: Optional[str] = None,
|
|
82
|
+
cloud_provider: Optional[Union["CloudProvider", str]] = None,
|
|
80
83
|
env: Optional[Dict[str, str]] = None,
|
|
81
84
|
interruptible: bool = False,
|
|
82
85
|
image_credentials: Optional[str] = None,
|
|
@@ -85,6 +88,7 @@ class _BaseJob(ABC):
|
|
|
85
88
|
artifacts_remote: Optional[str] = None,
|
|
86
89
|
entrypoint: str = "sh -c",
|
|
87
90
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
91
|
+
max_runtime: Optional[int] = None,
|
|
88
92
|
cluster: Optional[str] = None, # deprecated in favor of cloud_account
|
|
89
93
|
) -> "_BaseJob":
|
|
90
94
|
"""Run async workloads using a docker image or a compute environment from your studio.
|
|
@@ -101,7 +105,11 @@ class _BaseJob(ABC):
|
|
|
101
105
|
user: The user owning the teamspace (if any). Defaults to the current user.
|
|
102
106
|
cloud_account: The cloud account to run the job on.
|
|
103
107
|
Defaults to the studio cloud account if running with studio compute env.
|
|
104
|
-
If not provided
|
|
108
|
+
If not provided and `cloud_account_provider` is set, will resolve cluster from this, else
|
|
109
|
+
will fall back to the teamspaces default cloud account.
|
|
110
|
+
cloud_account_provider: The provider to select the cloud-account from.
|
|
111
|
+
If set, must be in agreement with the provider from the cloud_account (if specified).
|
|
112
|
+
If not specified, falls backto the teamspace default cloud account.
|
|
105
113
|
env: Environment variables to set inside the job.
|
|
106
114
|
interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
|
|
107
115
|
image_credentials: The credentials used to pull the image. Required if the image is private.
|
|
@@ -122,6 +130,10 @@ class _BaseJob(ABC):
|
|
|
122
130
|
just runs the provided command in a standard shell.
|
|
123
131
|
To use the pre-defined entrypoint of the provided image, set this to an empty string.
|
|
124
132
|
Only applicable when submitting docker jobs.
|
|
133
|
+
max_runtime: the duration (in seconds) for which to allocate the machine.
|
|
134
|
+
Irrelevant for most machines, required for some of the top-end machines on GCP.
|
|
135
|
+
If in doubt, set it. Won't have an effect on machines not requiring it.
|
|
136
|
+
Defaults to 3h
|
|
125
137
|
"""
|
|
126
138
|
from lightning_sdk.lightning_cloud.openapi.rest import ApiException
|
|
127
139
|
from lightning_sdk.studio import Studio
|
|
@@ -199,6 +211,7 @@ class _BaseJob(ABC):
|
|
|
199
211
|
return inst._submit(
|
|
200
212
|
machine=machine,
|
|
201
213
|
cloud_account=cloud_account,
|
|
214
|
+
cloud_provider=cloud_provider,
|
|
202
215
|
command=command,
|
|
203
216
|
studio=studio,
|
|
204
217
|
image=image,
|
|
@@ -210,6 +223,7 @@ class _BaseJob(ABC):
|
|
|
210
223
|
artifacts_remote=artifacts_remote,
|
|
211
224
|
entrypoint=entrypoint,
|
|
212
225
|
path_mappings=path_mappings,
|
|
226
|
+
max_runtime=max_runtime,
|
|
213
227
|
)
|
|
214
228
|
|
|
215
229
|
@abstractmethod
|
|
@@ -222,12 +236,14 @@ class _BaseJob(ABC):
|
|
|
222
236
|
env: Optional[Dict[str, str]] = None,
|
|
223
237
|
interruptible: bool = False,
|
|
224
238
|
cloud_account: Optional[str] = None,
|
|
239
|
+
cloud_provider: Optional[Union["CloudProvider", str]] = None,
|
|
225
240
|
image_credentials: Optional[str] = None,
|
|
226
241
|
cloud_account_auth: bool = False,
|
|
227
242
|
artifacts_local: Optional[str] = None,
|
|
228
243
|
artifacts_remote: Optional[str] = None,
|
|
229
244
|
entrypoint: str = "sh -c",
|
|
230
245
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
246
|
+
max_runtime: Optional[int] = None,
|
|
231
247
|
) -> "_BaseJob":
|
|
232
248
|
"""Submit a new job to the Lightning AI platform.
|
|
233
249
|
|
|
@@ -241,7 +257,11 @@ class _BaseJob(ABC):
|
|
|
241
257
|
interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
|
|
242
258
|
cloud_account: The cloud account to run the job on.
|
|
243
259
|
Defaults to the studio cloud account if running with studio compute env.
|
|
244
|
-
If not provided
|
|
260
|
+
If not provided and `cloud_account_provider` is set, will resolve cluster from this, else
|
|
261
|
+
will fall back to the teamspaces default cloud account.
|
|
262
|
+
cloud_account_provider: The provider to select the cloud-account from.
|
|
263
|
+
If set, must be in agreement with the provider from the cloud_account (if specified).
|
|
264
|
+
If not specified, falls backto the teamspace default cloud account.
|
|
245
265
|
image_credentials: The credentials used to pull the image. Required if the image is private.
|
|
246
266
|
This should be the name of the respective credentials secret created on the Lightning AI platform.
|
|
247
267
|
cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
|
|
@@ -259,6 +279,10 @@ class _BaseJob(ABC):
|
|
|
259
279
|
entrypoint: The entrypoint of your docker container. Defaults to sh -c.
|
|
260
280
|
To use the pre-defined entrypoint of the provided image, set this to an empty string.
|
|
261
281
|
Only applicable when submitting docker jobs.
|
|
282
|
+
max_runtime: the duration (in seconds) for which to allocate the machine.
|
|
283
|
+
Irrelevant for most machines, required for some of the top-end machines on GCP.
|
|
284
|
+
If in doubt, set it. Won't have an effect on machines not requiring it.
|
|
285
|
+
Defaults to 3h
|
|
262
286
|
"""
|
|
263
287
|
|
|
264
288
|
@abstractmethod
|
|
@@ -275,12 +299,13 @@ class _BaseJob(ABC):
|
|
|
275
299
|
Caution: This also deletes all artifacts and snapshots associated with the job.
|
|
276
300
|
"""
|
|
277
301
|
|
|
278
|
-
def wait(self, interval: float = 5.0, timeout: Optional[float] = None) -> None:
|
|
302
|
+
def wait(self, interval: float = 5.0, timeout: Optional[float] = None, stop_on_timeout: bool = False) -> None:
|
|
279
303
|
"""Waits for the job to be either completed, manually stopped or failed.
|
|
280
304
|
|
|
281
305
|
Args:
|
|
282
306
|
interval: The number of seconds to spend in-between status checks.
|
|
283
307
|
timeout: The maximum number of seconds to wait before raising an error. If None, waits forever.
|
|
308
|
+
stop_on_timeout: Whether to stop the job if it didn't finish within the timeout.
|
|
284
309
|
"""
|
|
285
310
|
import time
|
|
286
311
|
|
|
@@ -292,16 +317,21 @@ class _BaseJob(ABC):
|
|
|
292
317
|
break
|
|
293
318
|
|
|
294
319
|
if timeout is not None and time.time() - start > timeout:
|
|
320
|
+
if stop_on_timeout:
|
|
321
|
+
self.stop() # ensure the job is stopped if it didn't finish
|
|
295
322
|
raise TimeoutError("Job didn't finish within the provided timeout.")
|
|
296
323
|
|
|
297
324
|
time.sleep(interval)
|
|
298
325
|
|
|
299
|
-
async def async_wait(
|
|
326
|
+
async def async_wait(
|
|
327
|
+
self, interval: float = 5.0, timeout: Optional[float] = None, stop_on_timeout: bool = False
|
|
328
|
+
) -> None:
|
|
300
329
|
"""Waits for the job to be either completed, manually stopped or failed.
|
|
301
330
|
|
|
302
331
|
Args:
|
|
303
332
|
interval: The number of seconds to spend in-between status checks.
|
|
304
333
|
timeout: The maximum number of seconds to wait before raising an error. If None, waits forever.
|
|
334
|
+
stop_on_timeout: Whether to stop the job if it didn't finish within the timeout.
|
|
305
335
|
"""
|
|
306
336
|
import asyncio
|
|
307
337
|
|
|
@@ -313,6 +343,8 @@ class _BaseJob(ABC):
|
|
|
313
343
|
break
|
|
314
344
|
|
|
315
345
|
if timeout is not None and asyncio.get_event_loop().time() - start > timeout:
|
|
346
|
+
if stop_on_timeout:
|
|
347
|
+
self.stop() # ensure the job is stopped if it didn't finish
|
|
316
348
|
raise TimeoutError("Job didn't finish within the provided timeout.")
|
|
317
349
|
|
|
318
350
|
await asyncio.sleep(interval)
|
lightning_sdk/job/job.py
CHANGED
|
@@ -8,7 +8,7 @@ from lightning_sdk.utils.resolve import _setup_logger
|
|
|
8
8
|
_logger = _setup_logger(__name__)
|
|
9
9
|
|
|
10
10
|
if TYPE_CHECKING:
|
|
11
|
-
from lightning_sdk.machine import Machine
|
|
11
|
+
from lightning_sdk.machine import CloudProvider, Machine
|
|
12
12
|
from lightning_sdk.organization import Organization
|
|
13
13
|
from lightning_sdk.status import Status
|
|
14
14
|
from lightning_sdk.studio import Studio
|
|
@@ -86,12 +86,14 @@ class Job(_BaseJob):
|
|
|
86
86
|
org: Union[str, "Organization", None] = None,
|
|
87
87
|
user: Union[str, "User", None] = None,
|
|
88
88
|
cloud_account: Optional[str] = None,
|
|
89
|
+
cloud_provider: Optional[Union["CloudProvider", str]] = None,
|
|
89
90
|
env: Optional[Dict[str, str]] = None,
|
|
90
91
|
interruptible: bool = False,
|
|
91
92
|
image_credentials: Optional[str] = None,
|
|
92
93
|
cloud_account_auth: bool = False,
|
|
93
94
|
entrypoint: str = "sh -c",
|
|
94
95
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
96
|
+
max_runtime: Optional[int] = None,
|
|
95
97
|
artifacts_local: Optional[str] = None, # deprecated in terms of path_mappings
|
|
96
98
|
artifacts_remote: Optional[str] = None, # deprecated in terms of path_mappings
|
|
97
99
|
cluster: Optional[str] = None, # deprecated in favor of cloud_account
|
|
@@ -108,9 +110,13 @@ class Job(_BaseJob):
|
|
|
108
110
|
teamspace: The teamspace the job should be associated with. Defaults to the current teamspace.
|
|
109
111
|
org: The organization owning the teamspace (if any). Defaults to the current organization.
|
|
110
112
|
user: The user owning the teamspace (if any). Defaults to the current user.
|
|
111
|
-
cloud_account: The cloud
|
|
113
|
+
cloud_account: The cloud account to run the job on.
|
|
112
114
|
Defaults to the studio cloud account if running with studio compute env.
|
|
113
|
-
|
|
115
|
+
If not provided and `cloud_account_provider` is set, will resolve cluster from this, else
|
|
116
|
+
will fall back to the teamspaces default cloud account.
|
|
117
|
+
cloud_account_provider: The provider to select the cloud-account from.
|
|
118
|
+
If set, must be in agreement with the provider from the cloud_account (if specified).
|
|
119
|
+
If not specified, falls backto the teamspace default cloud account.
|
|
114
120
|
env: Environment variables to set inside the job.
|
|
115
121
|
interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
|
|
116
122
|
image_credentials: The credentials used to pull the image. Required if the image is private.
|
|
@@ -130,6 +136,10 @@ class Job(_BaseJob):
|
|
|
130
136
|
}
|
|
131
137
|
If the path inside the connection is omitted it's assumed to be the root path of that connection.
|
|
132
138
|
Only applicable when submitting docker jobs.
|
|
139
|
+
max_runtime: the duration (in seconds) for which to allocate the machine.
|
|
140
|
+
Irrelevant for most machines, required for some of the top-end machines on GCP.
|
|
141
|
+
If in doubt, set it. Won't have an effect on machines not requiring it.
|
|
142
|
+
Defaults to 3h
|
|
133
143
|
"""
|
|
134
144
|
ret_val = super().run(
|
|
135
145
|
name=name,
|
|
@@ -141,6 +151,7 @@ class Job(_BaseJob):
|
|
|
141
151
|
org=org,
|
|
142
152
|
user=user,
|
|
143
153
|
cloud_account=cloud_account,
|
|
154
|
+
cloud_provider=cloud_provider,
|
|
144
155
|
env=env,
|
|
145
156
|
interruptible=interruptible,
|
|
146
157
|
image_credentials=image_credentials,
|
|
@@ -149,6 +160,7 @@ class Job(_BaseJob):
|
|
|
149
160
|
artifacts_remote=artifacts_remote,
|
|
150
161
|
entrypoint=entrypoint,
|
|
151
162
|
path_mappings=path_mappings,
|
|
163
|
+
max_runtime=max_runtime,
|
|
152
164
|
cluster=cluster,
|
|
153
165
|
)
|
|
154
166
|
# required for typing with "Job"
|
|
@@ -166,12 +178,14 @@ class Job(_BaseJob):
|
|
|
166
178
|
env: Optional[Dict[str, str]] = None,
|
|
167
179
|
interruptible: bool = False,
|
|
168
180
|
cloud_account: Optional[str] = None,
|
|
181
|
+
cloud_provider: Optional[Union["CloudProvider", str]] = None,
|
|
169
182
|
image_credentials: Optional[str] = None,
|
|
170
183
|
cloud_account_auth: bool = False,
|
|
171
184
|
entrypoint: str = "sh -c",
|
|
172
185
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
173
186
|
artifacts_local: Optional[str] = None, # deprecated in terms of path_mappings
|
|
174
187
|
artifacts_remote: Optional[str] = None, # deprecated in terms of path_mappings
|
|
188
|
+
max_runtime: Optional[int] = None,
|
|
175
189
|
) -> "Job":
|
|
176
190
|
"""Submit a new job to the Lightning AI platform.
|
|
177
191
|
|
|
@@ -185,7 +199,11 @@ class Job(_BaseJob):
|
|
|
185
199
|
interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
|
|
186
200
|
cloud_account: The cloud account to run the job on.
|
|
187
201
|
Defaults to the studio cloud account if running with studio compute env.
|
|
188
|
-
If not provided
|
|
202
|
+
If not provided and `cloud_account_provider` is set, will resolve cluster from this, else
|
|
203
|
+
will fall back to the teamspaces default cloud account.
|
|
204
|
+
cloud_account_provider: The provider to select the cloud-account from.
|
|
205
|
+
If set, must be in agreement with the provider from the cloud_account (if specified).
|
|
206
|
+
If not specified, falls backto the teamspace default cloud account.
|
|
189
207
|
image_credentials: The credentials used to pull the image. Required if the image is private.
|
|
190
208
|
This should be the name of the respective credentials secret created on the Lightning AI platform.
|
|
191
209
|
cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
|
|
@@ -202,10 +220,15 @@ class Job(_BaseJob):
|
|
|
202
220
|
}
|
|
203
221
|
If the path inside the connection is omitted it's assumed to be the root path of that connection.
|
|
204
222
|
Only applicable when submitting docker jobs.
|
|
223
|
+
max_runtime: the duration (in seconds) for which to allocate the machine.
|
|
224
|
+
Irrelevant for most machines, required for some of the top-end machines on GCP.
|
|
225
|
+
If in doubt, set it. Won't have an effect on machines not requiring it.
|
|
226
|
+
Defaults to 3h
|
|
205
227
|
"""
|
|
206
228
|
self._job = self._internal_job._submit(
|
|
207
229
|
machine=machine,
|
|
208
230
|
cloud_account=cloud_account,
|
|
231
|
+
cloud_provider=cloud_provider,
|
|
209
232
|
command=command,
|
|
210
233
|
studio=studio,
|
|
211
234
|
image=image,
|
|
@@ -217,6 +240,7 @@ class Job(_BaseJob):
|
|
|
217
240
|
path_mappings=path_mappings,
|
|
218
241
|
artifacts_local=artifacts_local,
|
|
219
242
|
artifacts_remote=artifacts_remote,
|
|
243
|
+
max_runtime=max_runtime,
|
|
220
244
|
)
|
|
221
245
|
return self
|
|
222
246
|
|
lightning_sdk/job/v1.py
CHANGED
|
@@ -5,7 +5,7 @@ from lightning_sdk.job.base import _BaseJob
|
|
|
5
5
|
from lightning_sdk.status import Status
|
|
6
6
|
|
|
7
7
|
if TYPE_CHECKING:
|
|
8
|
-
from lightning_sdk.machine import Machine
|
|
8
|
+
from lightning_sdk.machine import CloudProvider, Machine
|
|
9
9
|
from lightning_sdk.organization import Organization
|
|
10
10
|
from lightning_sdk.studio import Studio
|
|
11
11
|
from lightning_sdk.teamspace import Teamspace
|
|
@@ -51,6 +51,7 @@ class _JobV1(_BaseJob):
|
|
|
51
51
|
org: Union[str, "Organization", None] = None,
|
|
52
52
|
user: Union[str, "User", None] = None,
|
|
53
53
|
cloud_account: Optional[str] = None,
|
|
54
|
+
cloud_provider: Optional[str] = None,
|
|
54
55
|
interruptible: bool = False,
|
|
55
56
|
cluster: Optional[str] = None, # deprecated in favor of cloud_account
|
|
56
57
|
) -> "_BaseJob":
|
|
@@ -80,12 +81,14 @@ class _JobV1(_BaseJob):
|
|
|
80
81
|
org=org,
|
|
81
82
|
user=user,
|
|
82
83
|
cloud_account=cloud_account,
|
|
84
|
+
cloud_provider=cloud_provider,
|
|
83
85
|
env=None,
|
|
84
86
|
interruptible=interruptible,
|
|
85
87
|
image_credentials=None,
|
|
86
88
|
cloud_account_auth=False,
|
|
87
89
|
cluster=cluster,
|
|
88
90
|
path_mappings=None,
|
|
91
|
+
max_runtime=None,
|
|
89
92
|
)
|
|
90
93
|
|
|
91
94
|
def _submit(
|
|
@@ -97,12 +100,14 @@ class _JobV1(_BaseJob):
|
|
|
97
100
|
env: Optional[Dict[str, str]] = None,
|
|
98
101
|
interruptible: bool = False,
|
|
99
102
|
cloud_account: Optional[str] = None,
|
|
103
|
+
cloud_provider: Optional[Union["CloudProvider", str]] = None,
|
|
100
104
|
image_credentials: Optional[str] = None,
|
|
101
105
|
cloud_account_auth: bool = False,
|
|
102
106
|
artifacts_local: Optional[str] = None,
|
|
103
107
|
artifacts_remote: Optional[str] = None,
|
|
104
108
|
entrypoint: str = "sh -c",
|
|
105
109
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
110
|
+
max_runtime: Optional[int] = None,
|
|
106
111
|
) -> "_JobV1":
|
|
107
112
|
"""Submit a job to run on a machine.
|
|
108
113
|
|
|
@@ -121,6 +126,10 @@ class _JobV1(_BaseJob):
|
|
|
121
126
|
To use the pre-defined entrypoint of the provided image, set this to an empty string.
|
|
122
127
|
Only applicable when submitting docker jobs.
|
|
123
128
|
path_mappings: The mappings from data connection inside your container (not supported)
|
|
129
|
+
max_runtime: the duration (in seconds) for which to allocate the machine.
|
|
130
|
+
Irrelevant for most machines, required for some of the top-end machines on GCP.
|
|
131
|
+
If in doubt, set it. Won't have an effect on machines not requiring it.
|
|
132
|
+
Defaults to 3h
|
|
124
133
|
|
|
125
134
|
Returns:
|
|
126
135
|
The submitted job.
|
lightning_sdk/job/v2.py
CHANGED
|
@@ -6,7 +6,7 @@ from lightning_sdk.job.base import _BaseJob
|
|
|
6
6
|
from lightning_sdk.status import Status
|
|
7
7
|
|
|
8
8
|
if TYPE_CHECKING:
|
|
9
|
-
from lightning_sdk.machine import Machine
|
|
9
|
+
from lightning_sdk.machine import CloudProvider, Machine
|
|
10
10
|
from lightning_sdk.organization import Organization
|
|
11
11
|
from lightning_sdk.studio import Studio
|
|
12
12
|
from lightning_sdk.teamspace import Teamspace
|
|
@@ -44,10 +44,12 @@ class _JobV2(_BaseJob):
|
|
|
44
44
|
env: Optional[Dict[str, str]] = None,
|
|
45
45
|
interruptible: bool = False,
|
|
46
46
|
cloud_account: Optional[str] = None,
|
|
47
|
+
cloud_provider: Optional[Union["CloudProvider", str]] = None,
|
|
47
48
|
image_credentials: Optional[str] = None,
|
|
48
49
|
cloud_account_auth: bool = False,
|
|
49
50
|
entrypoint: str = "sh -c",
|
|
50
51
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
52
|
+
max_runtime: Optional[int] = None,
|
|
51
53
|
artifacts_local: Optional[str] = None, # deprecated in favor of path_mappings
|
|
52
54
|
artifacts_remote: Optional[str] = None, # deprecated in favor of path_mappings
|
|
53
55
|
) -> "_JobV2":
|
|
@@ -80,6 +82,10 @@ class _JobV2(_BaseJob):
|
|
|
80
82
|
}
|
|
81
83
|
If the path inside the connection is omitted it's assumed to be the root path of that connection.
|
|
82
84
|
Only applicable when submitting docker jobs.
|
|
85
|
+
max_runtime: the duration (in seconds) for which to allocate the machine.
|
|
86
|
+
Irrelevant for most machines, required for some of the top-end machines on GCP.
|
|
87
|
+
If in doubt, set it. Won't have an effect on machines not requiring it.
|
|
88
|
+
Defaults to 3h
|
|
83
89
|
"""
|
|
84
90
|
# Command is required if Studio is provided to know what to run
|
|
85
91
|
# Image is mutually exclusive with Studio
|
|
@@ -98,6 +104,13 @@ class _JobV2(_BaseJob):
|
|
|
98
104
|
if image is None:
|
|
99
105
|
raise ValueError("either image or studio must be provided")
|
|
100
106
|
|
|
107
|
+
cloud_account = self._cloud_account_api.resolve_cloud_account(
|
|
108
|
+
self._teamspace.id,
|
|
109
|
+
cloud_account=cloud_account,
|
|
110
|
+
cloud_provider=cloud_provider,
|
|
111
|
+
default_cloud_account=self._teamspace.default_cloud_account,
|
|
112
|
+
)
|
|
113
|
+
|
|
101
114
|
submitted = self._job_api.submit_job(
|
|
102
115
|
name=self.name,
|
|
103
116
|
command=command,
|
|
@@ -114,6 +127,7 @@ class _JobV2(_BaseJob):
|
|
|
114
127
|
artifacts_remote=artifacts_remote,
|
|
115
128
|
entrypoint=entrypoint,
|
|
116
129
|
path_mappings=path_mappings,
|
|
130
|
+
max_runtime=max_runtime,
|
|
117
131
|
)
|
|
118
132
|
self._job = submitted
|
|
119
133
|
self._name = submitted.name
|
|
@@ -102,6 +102,7 @@ from lightning_sdk.lightning_cloud.openapi.models.clusters_id_body import Cluste
|
|
|
102
102
|
from lightning_sdk.lightning_cloud.openapi.models.clusters_id_body1 import ClustersIdBody1
|
|
103
103
|
from lightning_sdk.lightning_cloud.openapi.models.command_argument_command_argument_type import CommandArgumentCommandArgumentType
|
|
104
104
|
from lightning_sdk.lightning_cloud.openapi.models.conversations_id_body import ConversationsIdBody
|
|
105
|
+
from lightning_sdk.lightning_cloud.openapi.models.conversations_id_body1 import ConversationsIdBody1
|
|
105
106
|
from lightning_sdk.lightning_cloud.openapi.models.create import Create
|
|
106
107
|
from lightning_sdk.lightning_cloud.openapi.models.create_checkout_session_request_wallet_type import CreateCheckoutSessionRequestWalletType
|
|
107
108
|
from lightning_sdk.lightning_cloud.openapi.models.create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs import CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs
|
|
@@ -165,6 +166,7 @@ from lightning_sdk.lightning_cloud.openapi.models.litloggermetrics_id_body impor
|
|
|
165
166
|
from lightning_sdk.lightning_cloud.openapi.models.litpages_id_body import LitpagesIdBody
|
|
166
167
|
from lightning_sdk.lightning_cloud.openapi.models.litregistry_lit_repo_name_body import LitregistryLitRepoNameBody
|
|
167
168
|
from lightning_sdk.lightning_cloud.openapi.models.loggermetrics_id_body import LoggermetricsIdBody
|
|
169
|
+
from lightning_sdk.lightning_cloud.openapi.models.messages_id_body import MessagesIdBody
|
|
168
170
|
from lightning_sdk.lightning_cloud.openapi.models.metrics_stream_id_loggerartifacts_body import MetricsStreamIdLoggerartifactsBody
|
|
169
171
|
from lightning_sdk.lightning_cloud.openapi.models.metricsstream_create_body import MetricsstreamCreateBody
|
|
170
172
|
from lightning_sdk.lightning_cloud.openapi.models.metricsstream_delete_body import MetricsstreamDeleteBody
|
|
@@ -208,6 +210,7 @@ from lightning_sdk.lightning_cloud.openapi.models.project_id_storage_body import
|
|
|
208
210
|
from lightning_sdk.lightning_cloud.openapi.models.projects_id_body import ProjectsIdBody
|
|
209
211
|
from lightning_sdk.lightning_cloud.openapi.models.projects_project_id_body import ProjectsProjectIdBody
|
|
210
212
|
from lightning_sdk.lightning_cloud.openapi.models.protobuf_any import ProtobufAny
|
|
213
|
+
from lightning_sdk.lightning_cloud.openapi.models.protobuf_null_value import ProtobufNullValue
|
|
211
214
|
from lightning_sdk.lightning_cloud.openapi.models.query_query_id_body import QueryQueryIdBody
|
|
212
215
|
from lightning_sdk.lightning_cloud.openapi.models.rpc_status import RpcStatus
|
|
213
216
|
from lightning_sdk.lightning_cloud.openapi.models.schedules_id_body import SchedulesIdBody
|
|
@@ -239,6 +242,7 @@ from lightning_sdk.lightning_cloud.openapi.models.usagerestrictions_id_body impo
|
|
|
239
242
|
from lightning_sdk.lightning_cloud.openapi.models.user_id_affiliatelinks_body import UserIdAffiliatelinksBody
|
|
240
243
|
from lightning_sdk.lightning_cloud.openapi.models.user_id_membershiprolebindings_body import UserIdMembershiprolebindingsBody
|
|
241
244
|
from lightning_sdk.lightning_cloud.openapi.models.user_id_membershiprolebindings_body1 import UserIdMembershiprolebindingsBody1
|
|
245
|
+
from lightning_sdk.lightning_cloud.openapi.models.user_id_upgradetrigger_body import UserIdUpgradetriggerBody
|
|
242
246
|
from lightning_sdk.lightning_cloud.openapi.models.v1_aws_cluster_credentials import V1AWSClusterCredentials
|
|
243
247
|
from lightning_sdk.lightning_cloud.openapi.models.v1_aws_direct_v1 import V1AWSDirectV1
|
|
244
248
|
from lightning_sdk.lightning_cloud.openapi.models.v1_aws_direct_v1_status import V1AWSDirectV1Status
|
|
@@ -251,6 +255,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_agent_job import V1AgentJob
|
|
|
251
255
|
from lightning_sdk.lightning_cloud.openapi.models.v1_agent_job_artifact import V1AgentJobArtifact
|
|
252
256
|
from lightning_sdk.lightning_cloud.openapi.models.v1_agent_upload_multipart_url import V1AgentUploadMultipartUrl
|
|
253
257
|
from lightning_sdk.lightning_cloud.openapi.models.v1_agent_upload_part_response import V1AgentUploadPartResponse
|
|
258
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_ai_pod_v1 import V1AiPodV1
|
|
254
259
|
from lightning_sdk.lightning_cloud.openapi.models.v1_alert_method import V1AlertMethod
|
|
255
260
|
from lightning_sdk.lightning_cloud.openapi.models.v1_alerts_config import V1AlertsConfig
|
|
256
261
|
from lightning_sdk.lightning_cloud.openapi.models.v1_api_pricing_spec import V1ApiPricingSpec
|
|
@@ -263,6 +268,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_assistant import V1Assistan
|
|
|
263
268
|
from lightning_sdk.lightning_cloud.openapi.models.v1_assistant_knowledge_item_status import V1AssistantKnowledgeItemStatus
|
|
264
269
|
from lightning_sdk.lightning_cloud.openapi.models.v1_assistant_knowledge_status import V1AssistantKnowledgeStatus
|
|
265
270
|
from lightning_sdk.lightning_cloud.openapi.models.v1_assistant_model_status import V1AssistantModelStatus
|
|
271
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_assistant_session_daily_aggregated import V1AssistantSessionDailyAggregated
|
|
266
272
|
from lightning_sdk.lightning_cloud.openapi.models.v1_author import V1Author
|
|
267
273
|
from lightning_sdk.lightning_cloud.openapi.models.v1_auto_join_domain_validation import V1AutoJoinDomainValidation
|
|
268
274
|
from lightning_sdk.lightning_cloud.openapi.models.v1_auto_join_org_response import V1AutoJoinOrgResponse
|
|
@@ -358,6 +364,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_count_metrics_streams_respo
|
|
|
358
364
|
from lightning_sdk.lightning_cloud.openapi.models.v1_create_agent_multipart_upload_response import V1CreateAgentMultipartUploadResponse
|
|
359
365
|
from lightning_sdk.lightning_cloud.openapi.models.v1_create_billing_portal_session_request import V1CreateBillingPortalSessionRequest
|
|
360
366
|
from lightning_sdk.lightning_cloud.openapi.models.v1_create_billing_portal_session_response import V1CreateBillingPortalSessionResponse
|
|
367
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_create_billing_upgrade_trigger_record_response import V1CreateBillingUpgradeTriggerRecordResponse
|
|
361
368
|
from lightning_sdk.lightning_cloud.openapi.models.v1_create_blog_post_request import V1CreateBlogPostRequest
|
|
362
369
|
from lightning_sdk.lightning_cloud.openapi.models.v1_create_checkout_session_request import V1CreateCheckoutSessionRequest
|
|
363
370
|
from lightning_sdk.lightning_cloud.openapi.models.v1_create_checkout_session_response import V1CreateCheckoutSessionResponse
|
|
@@ -526,6 +533,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_filesystem_work import V1Fi
|
|
|
526
533
|
from lightning_sdk.lightning_cloud.openapi.models.v1_find_capacity_block_offering_response import V1FindCapacityBlockOfferingResponse
|
|
527
534
|
from lightning_sdk.lightning_cloud.openapi.models.v1_flowserver import V1Flowserver
|
|
528
535
|
from lightning_sdk.lightning_cloud.openapi.models.v1_folder_index_status import V1FolderIndexStatus
|
|
536
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_function_tool import V1FunctionTool
|
|
529
537
|
from lightning_sdk.lightning_cloud.openapi.models.v1_gcp_direct_vpc import V1GCPDirectVPC
|
|
530
538
|
from lightning_sdk.lightning_cloud.openapi.models.v1_gcs_folder_data_connection import V1GCSFolderDataConnection
|
|
531
539
|
from lightning_sdk.lightning_cloud.openapi.models.v1_gpu_system_metrics import V1GPUSystemMetrics
|
|
@@ -539,6 +547,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_get_affiliate_link_response
|
|
|
539
547
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_agent_job_env_response import V1GetAgentJobEnvResponse
|
|
540
548
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_agent_job_logs_metadata_response import V1GetAgentJobLogsMetadataResponse
|
|
541
549
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_artifacts_page_response import V1GetArtifactsPageResponse
|
|
550
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_get_assistant_session_daily_aggregated_response import V1GetAssistantSessionDailyAggregatedResponse
|
|
542
551
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_cold_start_metrics_stats_response import V1GetCloudSpaceColdStartMetricsStatsResponse
|
|
543
552
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_instance_open_ports_response import V1GetCloudSpaceInstanceOpenPortsResponse
|
|
544
553
|
from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_instance_status_response import V1GetCloudSpaceInstanceStatusResponse
|
|
@@ -629,6 +638,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_lightningwork_spec import V
|
|
|
629
638
|
from lightning_sdk.lightning_cloud.openapi.models.v1_lightningwork_state import V1LightningworkState
|
|
630
639
|
from lightning_sdk.lightning_cloud.openapi.models.v1_lightningwork_status import V1LightningworkStatus
|
|
631
640
|
from lightning_sdk.lightning_cloud.openapi.models.v1_lightningwork_status_reason import V1LightningworkStatusReason
|
|
641
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_like_status import V1LikeStatus
|
|
632
642
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_affiliate_links_response import V1ListAffiliateLinksResponse
|
|
633
643
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_agent_job_artifacts_response import V1ListAgentJobArtifactsResponse
|
|
634
644
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_agent_jobs_response import V1ListAgentJobsResponse
|
|
@@ -699,7 +709,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_model_versions_respons
|
|
|
699
709
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_models_response import V1ListModelsResponse
|
|
700
710
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_multi_machine_job_events_response import V1ListMultiMachineJobEventsResponse
|
|
701
711
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_multi_machine_jobs_response import V1ListMultiMachineJobsResponse
|
|
702
|
-
from lightning_sdk.lightning_cloud.openapi.models.
|
|
712
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_list_notification_dialogs_response import V1ListNotificationDialogsResponse
|
|
703
713
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_org_members_response import V1ListOrgMembersResponse
|
|
704
714
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_org_membership_role_binding_response import V1ListOrgMembershipRoleBindingResponse
|
|
705
715
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_org_memberships_response import V1ListOrgMembershipsResponse
|
|
@@ -719,6 +729,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_project_memberships_re
|
|
|
719
729
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_project_roles_response import V1ListProjectRolesResponse
|
|
720
730
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_published_cloud_spaces_response import V1ListPublishedCloudSpacesResponse
|
|
721
731
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_published_deployment_templates_response import V1ListPublishedDeploymentTemplatesResponse
|
|
732
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_list_published_managed_endpoint_models_response import V1ListPublishedManagedEndpointModelsResponse
|
|
722
733
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_quests_response import V1ListQuestsResponse
|
|
723
734
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_slurm_cluster_users_response import V1ListSLURMClusterUsersResponse
|
|
724
735
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_ssh_public_keys_response import V1ListSSHPublicKeysResponse
|
|
@@ -918,6 +929,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_system_metrics_list import
|
|
|
918
929
|
from lightning_sdk.lightning_cloud.openapi.models.v1_telemetry import V1Telemetry
|
|
919
930
|
from lightning_sdk.lightning_cloud.openapi.models.v1_timestamp_code_telemetry import V1TimestampCodeTelemetry
|
|
920
931
|
from lightning_sdk.lightning_cloud.openapi.models.v1_token_usage import V1TokenUsage
|
|
932
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_tool import V1Tool
|
|
921
933
|
from lightning_sdk.lightning_cloud.openapi.models.v1_transaction import V1Transaction
|
|
922
934
|
from lightning_sdk.lightning_cloud.openapi.models.v1_transfer_cloud_space_response import V1TransferCloudSpaceResponse
|
|
923
935
|
from lightning_sdk.lightning_cloud.openapi.models.v1_transfer_org_balance_response import V1TransferOrgBalanceResponse
|
|
@@ -935,6 +947,8 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_update_cloud_space_visibili
|
|
|
935
947
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_accelerators_request import V1UpdateClusterAcceleratorsRequest
|
|
936
948
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_accelerators_response import V1UpdateClusterAcceleratorsResponse
|
|
937
949
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_availability_request import V1UpdateClusterAvailabilityRequest
|
|
950
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_update_conversation_like_response import V1UpdateConversationLikeResponse
|
|
951
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_update_conversation_message_like_response import V1UpdateConversationMessageLikeResponse
|
|
938
952
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_deployment_visibility_response import V1UpdateDeploymentVisibilityResponse
|
|
939
953
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_index_response import V1UpdateIndexResponse
|
|
940
954
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_job_visibility_response import V1UpdateJobVisibilityResponse
|