lightning-sdk 0.2.22__py3-none-any.whl → 0.2.24rc0__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 +1 -1
- lightning_sdk/api/base_studio_api.py +9 -2
- lightning_sdk/api/deployment_api.py +9 -9
- lightning_sdk/api/license_api.py +2 -2
- lightning_sdk/api/llm_api.py +7 -11
- lightning_sdk/api/pipeline_api.py +31 -10
- lightning_sdk/api/studio_api.py +6 -0
- lightning_sdk/base_studio.py +22 -6
- lightning_sdk/cli/entrypoint.py +15 -13
- lightning_sdk/cli/start.py +5 -2
- lightning_sdk/deployment/deployment.py +17 -7
- lightning_sdk/lightning_cloud/openapi/__init__.py +20 -0
- lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
- lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +114 -1
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +206 -0
- lightning_sdk/lightning_cloud/openapi/api/cloudy_service_api.py +129 -0
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +97 -0
- lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +105 -0
- lightning_sdk/lightning_cloud/openapi/api/pipelines_service_api.py +118 -1
- lightning_sdk/lightning_cloud/openapi/api/user_service_api.py +105 -0
- lightning_sdk/lightning_cloud/openapi/configuration.py +1 -1
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +19 -0
- lightning_sdk/lightning_cloud/openapi/models/agents_id_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +81 -3
- lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_visibility_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/credits_autoreplenish_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/credits_autoreplenish_body1.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/externalv1_user_status.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/metricsstream_create_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/pipelines_id_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/pipelines_id_body1.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_agents_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/update.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_assistant.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_check_cluster_name_availability_request.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_check_cluster_name_availability_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_config.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_session.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_specialized_view.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloudy_expert.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +105 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_status.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_conversation_response_chunk.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_create_cloud_space_environment_template_request.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_organization_request.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_status.py +47 -21
- lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +853 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_job_stats_response.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_instance_overprovisioning_spec.py +29 -27
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1_status.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lightning_run.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cloudy_experts_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_clusters_response.py +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_list_project_clusters_response.py +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_lite_published_cloud_space_response.py +513 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_login_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_request.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_shared_filesystem.py +131 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_token_usage.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_cloud_space_visibility_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_organization_credits_auto_replenish_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_user_credits_auto_replenish_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +234 -104
- lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +78 -104
- lightning_sdk/lightning_cloud/openapi/models/v1_volume_state.py +104 -0
- lightning_sdk/llm/llm.py +113 -115
- lightning_sdk/llm/public_assistants.json +8 -0
- lightning_sdk/pipeline/__init__.py +11 -2
- lightning_sdk/pipeline/pipeline.py +54 -14
- lightning_sdk/pipeline/printer.py +36 -16
- lightning_sdk/pipeline/schedule.py +2 -1
- lightning_sdk/pipeline/{types.py → steps.py} +77 -56
- lightning_sdk/pipeline/utils.py +65 -3
- lightning_sdk/sandbox.py +157 -0
- lightning_sdk/services/license.py +12 -6
- lightning_sdk/studio.py +10 -1
- {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.24rc0.dist-info}/METADATA +1 -1
- {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.24rc0.dist-info}/RECORD +101 -79
- {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.24rc0.dist-info}/LICENSE +0 -0
- {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.24rc0.dist-info}/WHEEL +0 -0
- {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.24rc0.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-0.2.22.dist-info → lightning_sdk-0.2.24rc0.dist-info}/top_level.txt +0 -0
lightning_sdk/__init__.py
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
from typing import Any, List, Optional
|
|
2
2
|
|
|
3
|
+
from lightning_sdk.lightning_cloud.openapi import (
|
|
4
|
+
V1CloudSpaceEnvironmentType,
|
|
5
|
+
V1ListCloudSpaceEnvironmentTemplatesResponse,
|
|
6
|
+
)
|
|
3
7
|
from lightning_sdk.lightning_cloud.openapi.models.update import Update as BaseStudioUpdateBody
|
|
4
8
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_environment_template import (
|
|
5
9
|
V1CloudSpaceEnvironmentTemplate,
|
|
6
10
|
)
|
|
7
|
-
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_environment_type import V1CloudSpaceEnvironmentType
|
|
8
11
|
from lightning_sdk.lightning_cloud.rest_client import LightningClient
|
|
9
12
|
|
|
10
13
|
|
|
@@ -21,8 +24,12 @@ class BaseStudioApi:
|
|
|
21
24
|
except ValueError as e:
|
|
22
25
|
raise ValueError(f"Base studio {base_studio_id} does not exist") from e
|
|
23
26
|
|
|
24
|
-
def get_all_base_studios(self, org_id: str) ->
|
|
27
|
+
def get_all_base_studios(self, org_id: str, managed: bool = True) -> V1ListCloudSpaceEnvironmentTemplatesResponse:
|
|
25
28
|
"""Retrieve all base studios for a given organization."""
|
|
29
|
+
if managed:
|
|
30
|
+
return self._client.cloud_space_environment_template_service_list_managed_cloud_space_environment_templates(
|
|
31
|
+
org_id=org_id
|
|
32
|
+
)
|
|
26
33
|
return self._client.cloud_space_environment_template_service_list_cloud_space_environment_templates(
|
|
27
34
|
org_id=org_id
|
|
28
35
|
)
|
|
@@ -102,10 +102,10 @@ class ExecHealthCheck(HealthCheck):
|
|
|
102
102
|
def __init__(
|
|
103
103
|
self,
|
|
104
104
|
command: str,
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
initial_delay_seconds: int = 0,
|
|
106
|
+
failure_threshold: int = 600,
|
|
107
|
+
interval_seconds: int = 1,
|
|
108
|
+
timeout_seconds: int = 30,
|
|
109
109
|
) -> None:
|
|
110
110
|
self.command = command
|
|
111
111
|
self.timeout_seconds = timeout_seconds
|
|
@@ -131,17 +131,17 @@ class HttpHealthCheck(HealthCheck):
|
|
|
131
131
|
self,
|
|
132
132
|
path: str,
|
|
133
133
|
port: float,
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
134
|
+
initial_delay_seconds: int = 0,
|
|
135
|
+
failure_threshold: int = 600,
|
|
136
|
+
interval_seconds: int = 1,
|
|
137
|
+
timeout_seconds: int = 30,
|
|
138
138
|
) -> None:
|
|
139
139
|
self.path = path
|
|
140
140
|
self.port = port
|
|
141
|
-
self.timeout_seconds = timeout_seconds
|
|
142
141
|
self.initial_delay_seconds = initial_delay_seconds
|
|
143
142
|
self.failure_threshold = failure_threshold
|
|
144
143
|
self.interval_seconds = interval_seconds
|
|
144
|
+
self.timeout_seconds = timeout_seconds
|
|
145
145
|
|
|
146
146
|
|
|
147
147
|
class AutoScalingMetric:
|
lightning_sdk/api/license_api.py
CHANGED
|
@@ -10,8 +10,8 @@ LICENSE_CODE = os.environ.get("LICENSE_CODE", "d9s79g79ss")
|
|
|
10
10
|
LICENSE_SIGNING_URL = f"{env.LIGHTNING_CLOUD_URL}?settings=licenses"
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
def generate_url_user_settings(redirect_to: str = LICENSE_SIGNING_URL) -> str:
|
|
14
|
-
params = urlencode({"redirectTo": redirect_to, "okbhrt": LICENSE_CODE})
|
|
13
|
+
def generate_url_user_settings(name: str, redirect_to: str = LICENSE_SIGNING_URL) -> str:
|
|
14
|
+
params = urlencode({"redirectTo": redirect_to, "okbhrt": LICENSE_CODE, "licenseName": name})
|
|
15
15
|
return f"{env.LIGHTNING_CLOUD_URL}/sign-in?{params}"
|
|
16
16
|
|
|
17
17
|
|
lightning_sdk/api/llm_api.py
CHANGED
|
@@ -18,17 +18,11 @@ class LLMApi:
|
|
|
18
18
|
def __init__(self) -> None:
|
|
19
19
|
self._client = LightningClient(retry=False, max_tries=0)
|
|
20
20
|
|
|
21
|
-
def
|
|
22
|
-
result = self._client.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
result = self._client.assistants_service_list_assistants(org_id=org_id)
|
|
27
|
-
return result.assistants
|
|
28
|
-
|
|
29
|
-
def get_user_models(self, user_id: str) -> List[str]:
|
|
30
|
-
result = self._client.assistants_service_list_assistants(user_id=user_id)
|
|
31
|
-
return result.assistants
|
|
21
|
+
def get_assistant(self, model_provider: str, model_name: str, user_name: str, org_name: str) -> str:
|
|
22
|
+
result = self._client.assistants_service_get_managed_model_assistant(
|
|
23
|
+
model_provider=model_provider, model_name=model_name, user_name=user_name, org_name=org_name
|
|
24
|
+
)
|
|
25
|
+
return result.id
|
|
32
26
|
|
|
33
27
|
def _parse_stream_line(self, decoded_line: str) -> Optional[V1ConversationResponseChunk]:
|
|
34
28
|
try:
|
|
@@ -99,6 +93,7 @@ class LLMApi:
|
|
|
99
93
|
"stream": stream,
|
|
100
94
|
"metadata": metadata or {},
|
|
101
95
|
"internal_conversation": is_internal_conversation,
|
|
96
|
+
"system_prompt": system_prompt,
|
|
102
97
|
}
|
|
103
98
|
if images:
|
|
104
99
|
for image in images:
|
|
@@ -146,6 +141,7 @@ class LLMApi:
|
|
|
146
141
|
"stream": stream,
|
|
147
142
|
"metadata": metadata or {},
|
|
148
143
|
"internal_conversation": is_internal_conversation,
|
|
144
|
+
"system_prompt": system_prompt,
|
|
149
145
|
}
|
|
150
146
|
if images:
|
|
151
147
|
for image in images:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING, List, Optional
|
|
1
|
+
from typing import TYPE_CHECKING, List, Optional, Union
|
|
2
2
|
|
|
3
|
+
from lightning_sdk.api.cluster_api import ClusterApi
|
|
3
4
|
from lightning_sdk.lightning_cloud.openapi.models import (
|
|
4
5
|
ProjectIdPipelinesBody,
|
|
5
6
|
ProjectIdSchedulesBody,
|
|
@@ -11,6 +12,7 @@ from lightning_sdk.lightning_cloud.openapi.models import (
|
|
|
11
12
|
)
|
|
12
13
|
from lightning_sdk.lightning_cloud.openapi.rest import ApiException
|
|
13
14
|
from lightning_sdk.lightning_cloud.rest_client import LightningClient
|
|
15
|
+
from lightning_sdk.teamspace import Teamspace
|
|
14
16
|
|
|
15
17
|
if TYPE_CHECKING:
|
|
16
18
|
from lightning_sdk.pipeline.schedule import Schedule
|
|
@@ -20,7 +22,8 @@ class PipelineApi:
|
|
|
20
22
|
"""Internal API client for Pipeline requests (mainly http requests)."""
|
|
21
23
|
|
|
22
24
|
def __init__(self) -> None:
|
|
23
|
-
self._client = LightningClient(
|
|
25
|
+
self._client = LightningClient(max_tries=0, retry=False)
|
|
26
|
+
self._cluster_api = ClusterApi()
|
|
24
27
|
|
|
25
28
|
def get_pipeline_by_id(self, project_id: str, pipeline_id_or_name: str) -> Optional[V1Pipeline]:
|
|
26
29
|
if pipeline_id_or_name.startswith("pip_"):
|
|
@@ -43,7 +46,7 @@ class PipelineApi:
|
|
|
43
46
|
def create_pipeline(
|
|
44
47
|
self,
|
|
45
48
|
name: str,
|
|
46
|
-
|
|
49
|
+
teamspace: Teamspace,
|
|
47
50
|
steps: List["V1PipelineStep"],
|
|
48
51
|
shared_filesystem: bool,
|
|
49
52
|
schedules: List["Schedule"],
|
|
@@ -52,19 +55,17 @@ class PipelineApi:
|
|
|
52
55
|
body = ProjectIdPipelinesBody(
|
|
53
56
|
name=name,
|
|
54
57
|
steps=steps,
|
|
55
|
-
shared_filesystem=
|
|
56
|
-
enabled=shared_filesystem,
|
|
57
|
-
),
|
|
58
|
+
shared_filesystem=self._prepare_shared_filesytem(shared_filesystem, steps, teamspace),
|
|
58
59
|
parent_pipeline_id=parent_pipeline_id or "",
|
|
59
60
|
)
|
|
60
61
|
|
|
61
|
-
pipeline = self._client.pipelines_service_create_pipeline(body,
|
|
62
|
+
pipeline = self._client.pipelines_service_create_pipeline(body, teamspace.id)
|
|
62
63
|
|
|
63
64
|
# Delete the previous schedules
|
|
64
65
|
if parent_pipeline_id is not None:
|
|
65
|
-
current_schedules = self._client.schedules_service_list_schedules(
|
|
66
|
+
current_schedules = self._client.schedules_service_list_schedules(teamspace.id).schedules
|
|
66
67
|
for schedule in current_schedules:
|
|
67
|
-
self._client.schedules_service_delete_schedule(
|
|
68
|
+
self._client.schedules_service_delete_schedule(teamspace.id, schedule.id)
|
|
68
69
|
|
|
69
70
|
if len(schedules):
|
|
70
71
|
for schedule in schedules:
|
|
@@ -76,7 +77,7 @@ class PipelineApi:
|
|
|
76
77
|
resource_type=V1ScheduleResourceType.PIPELINE,
|
|
77
78
|
)
|
|
78
79
|
|
|
79
|
-
self._client.schedules_service_create_schedule(body,
|
|
80
|
+
self._client.schedules_service_create_schedule(body, teamspace.id)
|
|
80
81
|
|
|
81
82
|
return pipeline
|
|
82
83
|
|
|
@@ -87,3 +88,23 @@ class PipelineApi:
|
|
|
87
88
|
|
|
88
89
|
def delete(self, project_id: str, pipeline_id: str) -> V1DeletePipelineResponse:
|
|
89
90
|
return self._client.pipelines_service_delete_pipeline(project_id, pipeline_id)
|
|
91
|
+
|
|
92
|
+
def _prepare_shared_filesytem(
|
|
93
|
+
self, shared_filesystem: Union[bool, V1SharedFilesystem], steps: List["V1PipelineStep"], teamspace: Teamspace
|
|
94
|
+
) -> V1SharedFilesystem:
|
|
95
|
+
if not shared_filesystem:
|
|
96
|
+
return V1SharedFilesystem(enabled=False)
|
|
97
|
+
|
|
98
|
+
from lightning_sdk.pipeline.utils import _get_cloud_account
|
|
99
|
+
|
|
100
|
+
cluster = self._cluster_api.get_cluster(
|
|
101
|
+
cluster_id=_get_cloud_account(steps), project_id=teamspace.id, org_id=teamspace.owner.id
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
if cluster.spec.aws_v1:
|
|
105
|
+
return V1SharedFilesystem(enabled=True, s3_folder=True)
|
|
106
|
+
|
|
107
|
+
if cluster.spec.google_cloud_v1:
|
|
108
|
+
return V1SharedFilesystem(enabled=True, gcs_folder=True)
|
|
109
|
+
|
|
110
|
+
raise NotImplementedError("This cluster isn't support yet")
|
lightning_sdk/api/studio_api.py
CHANGED
|
@@ -123,6 +123,9 @@ class StudioApi:
|
|
|
123
123
|
teamspace_id: str,
|
|
124
124
|
cloud_account: Optional[str] = None,
|
|
125
125
|
source: Optional[V1CloudSpaceSourceType] = None,
|
|
126
|
+
disable_secrets: bool = False,
|
|
127
|
+
sandbox: bool = False,
|
|
128
|
+
cloud_space_environment_template_id: Optional[str] = None,
|
|
126
129
|
) -> V1CloudSpace:
|
|
127
130
|
"""Create a Studio with a given name in a given Teamspace on a possibly given cloud_account."""
|
|
128
131
|
body = ProjectIdCloudspacesBody(
|
|
@@ -131,6 +134,9 @@ class StudioApi:
|
|
|
131
134
|
display_name=name,
|
|
132
135
|
seed_files=[V1CloudSpaceSeedFile(path="main.py", contents="print('Hello, Lightning World!')\n")],
|
|
133
136
|
source=source,
|
|
137
|
+
disable_secrets=disable_secrets,
|
|
138
|
+
sandbox=sandbox,
|
|
139
|
+
cloud_space_environment_template_id=cloud_space_environment_template_id,
|
|
134
140
|
)
|
|
135
141
|
studio = self._client.cloud_space_service_create_cloud_space(body, teamspace_id)
|
|
136
142
|
|
lightning_sdk/base_studio.py
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
1
2
|
from typing import List, Optional, Union
|
|
2
3
|
|
|
3
4
|
from lightning_sdk.api.base_studio_api import BaseStudioApi
|
|
4
5
|
from lightning_sdk.api.user_api import UserApi
|
|
5
6
|
from lightning_sdk.lightning_cloud import login
|
|
6
|
-
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_environment_template import (
|
|
7
|
-
V1CloudSpaceEnvironmentTemplate,
|
|
8
|
-
)
|
|
9
7
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_environment_type import V1CloudSpaceEnvironmentType
|
|
10
8
|
from lightning_sdk.organization import Organization
|
|
11
9
|
from lightning_sdk.user import User
|
|
12
10
|
from lightning_sdk.utils.resolve import _resolve_org, _resolve_user
|
|
13
11
|
|
|
14
12
|
|
|
13
|
+
@dataclass
|
|
14
|
+
class BaseStudioInfo:
|
|
15
|
+
id: str
|
|
16
|
+
name: str
|
|
17
|
+
managed_id: str
|
|
18
|
+
description: str
|
|
19
|
+
|
|
20
|
+
|
|
15
21
|
class BaseStudio:
|
|
16
22
|
def __init__(
|
|
17
23
|
self,
|
|
@@ -61,7 +67,7 @@ class BaseStudio:
|
|
|
61
67
|
environment_type: Optional[V1CloudSpaceEnvironmentType] = None,
|
|
62
68
|
machine_image_version: Optional[str] = None,
|
|
63
69
|
setup_script_text: Optional[str] = None,
|
|
64
|
-
) ->
|
|
70
|
+
) -> None:
|
|
65
71
|
self._base_studio = self._base_studio_api.update_base_studio(
|
|
66
72
|
self._base_studio.id,
|
|
67
73
|
self._org.id,
|
|
@@ -74,10 +80,20 @@ class BaseStudio:
|
|
|
74
80
|
disabled=disabled,
|
|
75
81
|
)
|
|
76
82
|
|
|
77
|
-
def list(self) -> List[
|
|
83
|
+
def list(self, managed: bool = True) -> List[BaseStudioInfo]:
|
|
78
84
|
"""List all base studios in the organization.
|
|
79
85
|
|
|
80
86
|
Returns:
|
|
81
87
|
List[V1CloudSpaceEnvironmentTemplate]: A list of base studio templates.
|
|
82
88
|
"""
|
|
83
|
-
|
|
89
|
+
result = []
|
|
90
|
+
for template in self._base_studio_api.get_all_base_studios(self._org.id, managed).templates:
|
|
91
|
+
result.append(
|
|
92
|
+
BaseStudioInfo(
|
|
93
|
+
id=template.id,
|
|
94
|
+
name=template.name,
|
|
95
|
+
managed_id=template.managed_id,
|
|
96
|
+
description=template.description,
|
|
97
|
+
),
|
|
98
|
+
)
|
|
99
|
+
return result
|
lightning_sdk/cli/entrypoint.py
CHANGED
|
@@ -4,8 +4,9 @@ from types import TracebackType
|
|
|
4
4
|
from typing import Type
|
|
5
5
|
|
|
6
6
|
import click
|
|
7
|
-
from rich.console import Console
|
|
7
|
+
from rich.console import Console, Group
|
|
8
8
|
from rich.panel import Panel
|
|
9
|
+
from rich.syntax import Syntax
|
|
9
10
|
from rich.text import Text
|
|
10
11
|
|
|
11
12
|
from lightning_sdk import __version__
|
|
@@ -34,23 +35,24 @@ from lightning_sdk.lightning_cloud.login import Auth
|
|
|
34
35
|
|
|
35
36
|
def _notify_exception(exception_type: Type[BaseException], value: BaseException, tb: TracebackType) -> None:
|
|
36
37
|
"""CLI won't show tracebacks, just print the exception message."""
|
|
37
|
-
# if debug mode, print the traceback using rich
|
|
38
38
|
console = Console()
|
|
39
|
-
if value.args:
|
|
40
|
-
message = str(value.args[0]) if value.args[0] else str(value)
|
|
41
|
-
else:
|
|
42
|
-
message = str(value) or "An unknown error occurred"
|
|
43
39
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
message = str(value.args[0]) if value.args else str(value) or "An unknown error occurred"
|
|
41
|
+
|
|
42
|
+
error_text = Text()
|
|
43
|
+
error_text.append(f"{exception_type.__name__}: ", style="bold red")
|
|
44
|
+
error_text.append(message, style="white")
|
|
45
|
+
|
|
46
|
+
renderables = [error_text]
|
|
47
47
|
|
|
48
48
|
if _LIGHTNING_DEBUG:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
tb_text = "".join(traceback.format_exception(exception_type, value, tb))
|
|
50
|
+
renderables.append(Text("\n\nFull traceback:\n", style="bold yellow"))
|
|
51
|
+
renderables.append(Syntax(tb_text, "python", theme="monokai", line_numbers=False, word_wrap=True))
|
|
52
|
+
else:
|
|
53
|
+
renderables.append(Text("\n\nTo see the full traceback, set the LIGHTNING_DEBUG environment variable to 1."))
|
|
52
54
|
|
|
53
|
-
console.print(Panel(
|
|
55
|
+
console.print(Panel(Group(*renderables), title="⚡ Lightning CLI Error", border_style="red"))
|
|
54
56
|
|
|
55
57
|
|
|
56
58
|
@click.group(name="lightning", help="Command line interface (CLI) to interact with/manage Lightning AI Studios.")
|
lightning_sdk/cli/start.py
CHANGED
|
@@ -60,8 +60,11 @@ def studio(name: str, teamspace: Optional[str] = None, machine: str = "CPU", pro
|
|
|
60
60
|
|
|
61
61
|
try:
|
|
62
62
|
studio = Studio(name=name, teamspace=teamspace, org=owner, user=None, create_ok=False, provider=provider)
|
|
63
|
-
except (RuntimeError, ValueError, ApiException):
|
|
64
|
-
|
|
63
|
+
except (RuntimeError, ValueError, ApiException) as first_error:
|
|
64
|
+
try:
|
|
65
|
+
studio = Studio(name=name, teamspace=teamspace, org=None, user=owner, create_ok=False, provider=provider)
|
|
66
|
+
except (RuntimeError, ValueError, ApiException) as second_error:
|
|
67
|
+
raise first_error from second_error
|
|
65
68
|
|
|
66
69
|
try:
|
|
67
70
|
resolved_machine = getattr(Machine, machine.upper(), Machine(machine, machine))
|
|
@@ -197,11 +197,13 @@ class Deployment:
|
|
|
197
197
|
if commands is not None:
|
|
198
198
|
command = compose_commands(commands)
|
|
199
199
|
|
|
200
|
+
autoscaling_metric_name = ("CPU" if machine.is_cpu() else "GPU") if isinstance(machine, Machine) else "CPU"
|
|
201
|
+
|
|
200
202
|
if autoscale is None:
|
|
201
203
|
autoscale = AutoScaleConfig(
|
|
202
204
|
min_replicas=0,
|
|
203
205
|
max_replicas=1,
|
|
204
|
-
metric=
|
|
206
|
+
metric=autoscaling_metric_name,
|
|
205
207
|
threshold=90,
|
|
206
208
|
)
|
|
207
209
|
|
|
@@ -380,27 +382,35 @@ class Deployment:
|
|
|
380
382
|
return None
|
|
381
383
|
|
|
382
384
|
@property
|
|
383
|
-
def pending_replicas(self) -> Optional[
|
|
385
|
+
def pending_replicas(self) -> Optional[int]:
|
|
384
386
|
"""The number of pending replicas."""
|
|
385
387
|
if self._deployment:
|
|
386
388
|
self._deployment = self._deployment_api.get_deployment_by_name(self._name, self._teamspace.id)
|
|
387
|
-
return self._deployment.status.pending_replicas
|
|
389
|
+
return int(self._deployment.status.pending_replicas)
|
|
390
|
+
return None
|
|
391
|
+
|
|
392
|
+
@property
|
|
393
|
+
def running_replicas(self) -> Optional[int]:
|
|
394
|
+
"""The number of failing replicas."""
|
|
395
|
+
if self._deployment:
|
|
396
|
+
self._deployment = self._deployment_api.get_deployment_by_name(self._name, self._teamspace.id)
|
|
397
|
+
return int(self._deployment.status.ready_replicas)
|
|
388
398
|
return None
|
|
389
399
|
|
|
390
400
|
@property
|
|
391
|
-
def failing_replicas(self) -> Optional[
|
|
401
|
+
def failing_replicas(self) -> Optional[int]:
|
|
392
402
|
"""The number of failing replicas."""
|
|
393
403
|
if self._deployment:
|
|
394
404
|
self._deployment = self._deployment_api.get_deployment_by_name(self._name, self._teamspace.id)
|
|
395
|
-
return self._deployment.status.failing_replicas
|
|
405
|
+
return int(self._deployment.status.failing_replicas)
|
|
396
406
|
return None
|
|
397
407
|
|
|
398
408
|
@property
|
|
399
|
-
def deleting_replicas(self) -> Optional[
|
|
409
|
+
def deleting_replicas(self) -> Optional[int]:
|
|
400
410
|
"""The number of deleting replicas."""
|
|
401
411
|
if self._deployment:
|
|
402
412
|
self._deployment = self._deployment_api.get_deployment_by_name(self._name, self._teamspace.id)
|
|
403
|
-
return self._deployment.status.deleting_replicas
|
|
413
|
+
return int(self._deployment.status.deleting_replicas)
|
|
404
414
|
return None
|
|
405
415
|
|
|
406
416
|
@property
|
|
@@ -30,6 +30,7 @@ from lightning_sdk.lightning_cloud.openapi.api.billing_service_api import Billin
|
|
|
30
30
|
from lightning_sdk.lightning_cloud.openapi.api.blog_posts_service_api import BlogPostsServiceApi
|
|
31
31
|
from lightning_sdk.lightning_cloud.openapi.api.cloud_space_environment_template_service_api import CloudSpaceEnvironmentTemplateServiceApi
|
|
32
32
|
from lightning_sdk.lightning_cloud.openapi.api.cloud_space_service_api import CloudSpaceServiceApi
|
|
33
|
+
from lightning_sdk.lightning_cloud.openapi.api.cloudy_service_api import CloudyServiceApi
|
|
33
34
|
from lightning_sdk.lightning_cloud.openapi.api.cluster_service_api import ClusterServiceApi
|
|
34
35
|
from lightning_sdk.lightning_cloud.openapi.api.data_connection_service_api import DataConnectionServiceApi
|
|
35
36
|
from lightning_sdk.lightning_cloud.openapi.api.dataset_service_api import DatasetServiceApi
|
|
@@ -89,6 +90,7 @@ from lightning_sdk.lightning_cloud.openapi.models.cloud_space_id_versions_body i
|
|
|
89
90
|
from lightning_sdk.lightning_cloud.openapi.models.cloudspace_id_metric_body import CloudspaceIdMetricBody
|
|
90
91
|
from lightning_sdk.lightning_cloud.openapi.models.cloudspace_id_runs_body import CloudspaceIdRunsBody
|
|
91
92
|
from lightning_sdk.lightning_cloud.openapi.models.cloudspace_id_systemmetrics_body import CloudspaceIdSystemmetricsBody
|
|
93
|
+
from lightning_sdk.lightning_cloud.openapi.models.cloudspace_id_visibility_body import CloudspaceIdVisibilityBody
|
|
92
94
|
from lightning_sdk.lightning_cloud.openapi.models.cloudspaces_id_body import CloudspacesIdBody
|
|
93
95
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_id_capacityblock_body import ClusterIdCapacityblockBody
|
|
94
96
|
from lightning_sdk.lightning_cloud.openapi.models.cluster_id_capacityreservations_body import ClusterIdCapacityreservationsBody
|
|
@@ -102,6 +104,8 @@ from lightning_sdk.lightning_cloud.openapi.models.conversations_id_body import C
|
|
|
102
104
|
from lightning_sdk.lightning_cloud.openapi.models.create import Create
|
|
103
105
|
from lightning_sdk.lightning_cloud.openapi.models.create_checkout_session_request_wallet_type import CreateCheckoutSessionRequestWalletType
|
|
104
106
|
from lightning_sdk.lightning_cloud.openapi.models.create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs import CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs
|
|
107
|
+
from lightning_sdk.lightning_cloud.openapi.models.credits_autoreplenish_body import CreditsAutoreplenishBody
|
|
108
|
+
from lightning_sdk.lightning_cloud.openapi.models.credits_autoreplenish_body1 import CreditsAutoreplenishBody1
|
|
105
109
|
from lightning_sdk.lightning_cloud.openapi.models.data_connection_mount_data_connection_mount_copy_status import DataConnectionMountDataConnectionMountCopyStatus
|
|
106
110
|
from lightning_sdk.lightning_cloud.openapi.models.dataset_id_versions_body import DatasetIdVersionsBody
|
|
107
111
|
from lightning_sdk.lightning_cloud.openapi.models.dataset_id_visibility_body import DatasetIdVisibilityBody
|
|
@@ -174,6 +178,7 @@ from lightning_sdk.lightning_cloud.openapi.models.org_id_memberships_body import
|
|
|
174
178
|
from lightning_sdk.lightning_cloud.openapi.models.org_id_roles_body import OrgIdRolesBody
|
|
175
179
|
from lightning_sdk.lightning_cloud.openapi.models.orgs_id_body import OrgsIdBody
|
|
176
180
|
from lightning_sdk.lightning_cloud.openapi.models.pipelines_id_body import PipelinesIdBody
|
|
181
|
+
from lightning_sdk.lightning_cloud.openapi.models.pipelines_id_body1 import PipelinesIdBody1
|
|
177
182
|
from lightning_sdk.lightning_cloud.openapi.models.pipelinetemplates_id_body import PipelinetemplatesIdBody
|
|
178
183
|
from lightning_sdk.lightning_cloud.openapi.models.profiler_captures_body import ProfilerCapturesBody
|
|
179
184
|
from lightning_sdk.lightning_cloud.openapi.models.profiler_enabled_body import ProfilerEnabledBody
|
|
@@ -275,6 +280,8 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_cpu_system_metrics import V
|
|
|
275
280
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cancel_cloud_space_instance_switch_response import V1CancelCloudSpaceInstanceSwitchResponse
|
|
276
281
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cancellation_metadata import V1CancellationMetadata
|
|
277
282
|
from lightning_sdk.lightning_cloud.openapi.models.v1_capacity_block_offering import V1CapacityBlockOffering
|
|
283
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_check_cluster_name_availability_request import V1CheckClusterNameAvailabilityRequest
|
|
284
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_check_cluster_name_availability_response import V1CheckClusterNameAvailabilityResponse
|
|
278
285
|
from lightning_sdk.lightning_cloud.openapi.models.v1_check_external_service_status_response import V1CheckExternalServiceStatusResponse
|
|
279
286
|
from lightning_sdk.lightning_cloud.openapi.models.v1_check_snowflake_connection_response import V1CheckSnowflakeConnectionResponse
|
|
280
287
|
from lightning_sdk.lightning_cloud.openapi.models.v1_checkbox import V1Checkbox
|
|
@@ -305,10 +312,12 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_publication_typ
|
|
|
305
312
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_seed_file import V1CloudSpaceSeedFile
|
|
306
313
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_session import V1CloudSpaceSession
|
|
307
314
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_source_type import V1CloudSpaceSourceType
|
|
315
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_specialized_view import V1CloudSpaceSpecializedView
|
|
308
316
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_state import V1CloudSpaceState
|
|
309
317
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_version import V1CloudSpaceVersion
|
|
310
318
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_version_publication import V1CloudSpaceVersionPublication
|
|
311
319
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cloudflare_v1 import V1CloudflareV1
|
|
320
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_cloudy_expert import V1CloudyExpert
|
|
312
321
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cluster_accelerator import V1ClusterAccelerator
|
|
313
322
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cluster_availability import V1ClusterAvailability
|
|
314
323
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cluster_capacity_reservation import V1ClusterCapacityReservation
|
|
@@ -499,6 +508,8 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_execute_in_cloud_space_sess
|
|
|
499
508
|
from lightning_sdk.lightning_cloud.openapi.models.v1_execute_snowflake_query_response import V1ExecuteSnowflakeQueryResponse
|
|
500
509
|
from lightning_sdk.lightning_cloud.openapi.models.v1_experiment import V1Experiment
|
|
501
510
|
from lightning_sdk.lightning_cloud.openapi.models.v1_export_snowflake_query_response import V1ExportSnowflakeQueryResponse
|
|
511
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_external_cluster import V1ExternalCluster
|
|
512
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_external_cluster_spec import V1ExternalClusterSpec
|
|
502
513
|
from lightning_sdk.lightning_cloud.openapi.models.v1_external_search_user import V1ExternalSearchUser
|
|
503
514
|
from lightning_sdk.lightning_cloud.openapi.models.v1_file_endpoint import V1FileEndpoint
|
|
504
515
|
from lightning_sdk.lightning_cloud.openapi.models.v1_filestore_data_connection import V1FilestoreDataConnection
|
|
@@ -594,6 +605,8 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_job_type import V1JobType
|
|
|
594
605
|
from lightning_sdk.lightning_cloud.openapi.models.v1_joinable_organization import V1JoinableOrganization
|
|
595
606
|
from lightning_sdk.lightning_cloud.openapi.models.v1_keep_alive_cloud_space_instance_response import V1KeepAliveCloudSpaceInstanceResponse
|
|
596
607
|
from lightning_sdk.lightning_cloud.openapi.models.v1_knowledge_configuration import V1KnowledgeConfiguration
|
|
608
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_kubernetes_direct_v1 import V1KubernetesDirectV1
|
|
609
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_kubernetes_direct_v1_status import V1KubernetesDirectV1Status
|
|
597
610
|
from lightning_sdk.lightning_cloud.openapi.models.v1_lambda_labs_direct_v1 import V1LambdaLabsDirectV1
|
|
598
611
|
from lightning_sdk.lightning_cloud.openapi.models.v1_lightning_app_user import V1LightningAppUser
|
|
599
612
|
from lightning_sdk.lightning_cloud.openapi.models.v1_lightning_auth import V1LightningAuth
|
|
@@ -629,6 +642,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_cloud_space_tags_respo
|
|
|
629
642
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_cloud_space_version_publications_response import V1ListCloudSpaceVersionPublicationsResponse
|
|
630
643
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_cloud_space_versions_response import V1ListCloudSpaceVersionsResponse
|
|
631
644
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_cloud_spaces_response import V1ListCloudSpacesResponse
|
|
645
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_list_cloudy_experts_response import V1ListCloudyExpertsResponse
|
|
632
646
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_cluster_accelerators_response import V1ListClusterAcceleratorsResponse
|
|
633
647
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_cluster_availabilities_response import V1ListClusterAvailabilitiesResponse
|
|
634
648
|
from lightning_sdk.lightning_cloud.openapi.models.v1_list_cluster_capacity_reservations_response import V1ListClusterCapacityReservationsResponse
|
|
@@ -719,6 +733,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_lit_page_type import V1LitP
|
|
|
719
733
|
from lightning_sdk.lightning_cloud.openapi.models.v1_lit_registry_artifact import V1LitRegistryArtifact
|
|
720
734
|
from lightning_sdk.lightning_cloud.openapi.models.v1_lit_registry_project import V1LitRegistryProject
|
|
721
735
|
from lightning_sdk.lightning_cloud.openapi.models.v1_lit_repository import V1LitRepository
|
|
736
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_lite_published_cloud_space_response import V1LitePublishedCloudSpaceResponse
|
|
722
737
|
from lightning_sdk.lightning_cloud.openapi.models.v1_locked_resource import V1LockedResource
|
|
723
738
|
from lightning_sdk.lightning_cloud.openapi.models.v1_log_page import V1LogPage
|
|
724
739
|
from lightning_sdk.lightning_cloud.openapi.models.v1_logger_artifact import V1LoggerArtifact
|
|
@@ -898,6 +913,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_system_metrics_aggregated i
|
|
|
898
913
|
from lightning_sdk.lightning_cloud.openapi.models.v1_system_metrics_list import V1SystemMetricsList
|
|
899
914
|
from lightning_sdk.lightning_cloud.openapi.models.v1_telemetry import V1Telemetry
|
|
900
915
|
from lightning_sdk.lightning_cloud.openapi.models.v1_timestamp_code_telemetry import V1TimestampCodeTelemetry
|
|
916
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_token_usage import V1TokenUsage
|
|
901
917
|
from lightning_sdk.lightning_cloud.openapi.models.v1_transaction import V1Transaction
|
|
902
918
|
from lightning_sdk.lightning_cloud.openapi.models.v1_transfer_cloud_space_response import V1TransferCloudSpaceResponse
|
|
903
919
|
from lightning_sdk.lightning_cloud.openapi.models.v1_transfer_org_balance_response import V1TransferOrgBalanceResponse
|
|
@@ -911,6 +927,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_update_agent_status_respons
|
|
|
911
927
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_billing_subscription_request import V1UpdateBillingSubscriptionRequest
|
|
912
928
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cloud_space_collab_response import V1UpdateCloudSpaceCollabResponse
|
|
913
929
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cloud_space_publication_response import V1UpdateCloudSpacePublicationResponse
|
|
930
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cloud_space_visibility_response import V1UpdateCloudSpaceVisibilityResponse
|
|
914
931
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_accelerators_request import V1UpdateClusterAcceleratorsRequest
|
|
915
932
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_accelerators_response import V1UpdateClusterAcceleratorsResponse
|
|
916
933
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_availability_request import V1UpdateClusterAvailabilityRequest
|
|
@@ -922,9 +939,11 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_update_lit_page_response im
|
|
|
922
939
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_lit_repository_response import V1UpdateLitRepositoryResponse
|
|
923
940
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_metrics_stream_visibility_response import V1UpdateMetricsStreamVisibilityResponse
|
|
924
941
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_model_visibility_response import V1UpdateModelVisibilityResponse
|
|
942
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_update_organization_credits_auto_replenish_response import V1UpdateOrganizationCreditsAutoReplenishResponse
|
|
925
943
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_project_cluster_accelerators_response import V1UpdateProjectClusterAcceleratorsResponse
|
|
926
944
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_shared_metrics_stream_response import V1UpdateSharedMetricsStreamResponse
|
|
927
945
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_snowflake_query_response import V1UpdateSnowflakeQueryResponse
|
|
946
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_update_user_credits_auto_replenish_response import V1UpdateUserCreditsAutoReplenishResponse
|
|
928
947
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_user_request import V1UpdateUserRequest
|
|
929
948
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_user_viewed_new_features_request import V1UpdateUserViewedNewFeaturesRequest
|
|
930
949
|
from lightning_sdk.lightning_cloud.openapi.models.v1_update_user_viewed_new_features_response import V1UpdateUserViewedNewFeaturesResponse
|
|
@@ -959,6 +978,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_validate_managed_model_resp
|
|
|
959
978
|
from lightning_sdk.lightning_cloud.openapi.models.v1_verify_verification_response import V1VerifyVerificationResponse
|
|
960
979
|
from lightning_sdk.lightning_cloud.openapi.models.v1_voltage_park_direct_v1 import V1VoltageParkDirectV1
|
|
961
980
|
from lightning_sdk.lightning_cloud.openapi.models.v1_volume import V1Volume
|
|
981
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_volume_state import V1VolumeState
|
|
962
982
|
from lightning_sdk.lightning_cloud.openapi.models.v1_vultr_direct_v1 import V1VultrDirectV1
|
|
963
983
|
from lightning_sdk.lightning_cloud.openapi.models.v1_weka_data_connection import V1WekaDataConnection
|
|
964
984
|
from lightning_sdk.lightning_cloud.openapi.models.v1_work import V1Work
|
|
@@ -11,6 +11,7 @@ from lightning_sdk.lightning_cloud.openapi.api.billing_service_api import Billin
|
|
|
11
11
|
from lightning_sdk.lightning_cloud.openapi.api.blog_posts_service_api import BlogPostsServiceApi
|
|
12
12
|
from lightning_sdk.lightning_cloud.openapi.api.cloud_space_environment_template_service_api import CloudSpaceEnvironmentTemplateServiceApi
|
|
13
13
|
from lightning_sdk.lightning_cloud.openapi.api.cloud_space_service_api import CloudSpaceServiceApi
|
|
14
|
+
from lightning_sdk.lightning_cloud.openapi.api.cloudy_service_api import CloudyServiceApi
|
|
14
15
|
from lightning_sdk.lightning_cloud.openapi.api.cluster_service_api import ClusterServiceApi
|
|
15
16
|
from lightning_sdk.lightning_cloud.openapi.api.data_connection_service_api import DataConnectionServiceApi
|
|
16
17
|
from lightning_sdk.lightning_cloud.openapi.api.dataset_service_api import DatasetServiceApi
|