lightning-sdk 0.1.30__py3-none-any.whl → 0.1.32__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 (80) hide show
  1. lightning_sdk/__init__.py +3 -1
  2. lightning_sdk/ai_hub.py +29 -0
  3. lightning_sdk/api/__init__.py +2 -0
  4. lightning_sdk/api/ai_hub_api.py +15 -0
  5. lightning_sdk/api/teamspace_api.py +35 -5
  6. lightning_sdk/api/user_api.py +8 -2
  7. lightning_sdk/cli/upload.py +10 -6
  8. lightning_sdk/lightning_cloud/openapi/__init__.py +30 -0
  9. lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
  10. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +105 -4
  11. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +5 -5
  12. lightning_sdk/lightning_cloud/openapi/api/deployment_templates_service_api.py +105 -0
  13. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +674 -0
  14. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +5 -1
  15. lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +396 -0
  16. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +118 -1
  17. lightning_sdk/lightning_cloud/openapi/models/__init__.py +29 -0
  18. lightning_sdk/lightning_cloud/openapi/models/cluster_id_capacityblock_body.py +15 -15
  19. lightning_sdk/lightning_cloud/openapi/models/create.py +79 -1
  20. lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +27 -1
  21. lightning_sdk/lightning_cloud/openapi/models/deploymenttemplates_id_body.py +121 -17
  22. lightning_sdk/lightning_cloud/openapi/models/id_engage_body.py +3 -29
  23. lightning_sdk/lightning_cloud/openapi/models/id_engage_body1.py +149 -0
  24. lightning_sdk/lightning_cloud/openapi/models/litloggermetrics_id_body.py +175 -0
  25. lightning_sdk/lightning_cloud/openapi/models/model_id_versions_body.py +123 -0
  26. lightning_sdk/lightning_cloud/openapi/models/project_id_models_body.py +27 -1
  27. lightning_sdk/lightning_cloud/openapi/models/update.py +105 -1
  28. lightning_sdk/lightning_cloud/openapi/models/v1_affiliate_link.py +79 -1
  29. lightning_sdk/lightning_cloud/openapi/models/v1_app_type.py +104 -0
  30. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  31. lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_template_request.py +95 -17
  32. lightning_sdk/lightning_cloud/openapi/models/v1_create_shared_metrics_stream_request.py +201 -0
  33. lightning_sdk/lightning_cloud/openapi/models/v1_create_shared_metrics_stream_response.py +123 -0
  34. lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +79 -1
  35. lightning_sdk/lightning_cloud/openapi/models/v1_data_path.py +175 -0
  36. lightning_sdk/lightning_cloud/openapi/models/v1_delete_shared_metrics_stream_response.py +97 -0
  37. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +27 -1
  38. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_metrics.py +123 -0
  39. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template.py +95 -17
  40. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_engagement_response.py +97 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter.py +69 -17
  42. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter_placement.py +2 -0
  43. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter_type.py +1 -0
  44. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_summary.py +27 -1
  45. lightning_sdk/lightning_cloud/openapi/models/v1_efs_folder_data_connection.py +201 -0
  46. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_app.py +227 -0
  47. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_cloud_space.py +149 -0
  48. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_dataset.py +123 -0
  49. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_job.py +175 -0
  50. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_slurm_job.py +149 -0
  51. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_snowflake_connection.py +123 -0
  52. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_work.py +149 -0
  53. lightning_sdk/lightning_cloud/openapi/models/v1_gcs_folder_data_connection.py +123 -0
  54. lightning_sdk/lightning_cloud/openapi/models/v1_input.py +29 -3
  55. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  56. lightning_sdk/lightning_cloud/openapi/models/v1_lightningwork_spec.py +27 -1
  57. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_python_versions_response.py +123 -0
  58. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_apps_response.py +123 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_cloud_spaces_response.py +123 -0
  60. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_datasets_response.py +123 -0
  61. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_jobs_response.py +123 -0
  62. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_slurm_jobs_response.py +123 -0
  63. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_snowflake_response.py +123 -0
  64. lightning_sdk/lightning_cloud/openapi/models/v1_model.py +6 -6
  65. lightning_sdk/lightning_cloud/openapi/models/v1_model_version_archive.py +79 -1
  66. lightning_sdk/lightning_cloud/openapi/models/v1_parameterization_spec.py +227 -0
  67. lightning_sdk/lightning_cloud/openapi/models/v1_s3_folder_data_connection.py +123 -0
  68. lightning_sdk/lightning_cloud/openapi/models/v1_transaction.py +27 -1
  69. lightning_sdk/lightning_cloud/openapi/models/v1_update_shared_metrics_stream_response.py +97 -0
  70. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +76 -24
  71. lightning_sdk/lightning_cloud/openapi/models/v1_validate_data_connection_response.py +81 -3
  72. lightning_sdk/lightning_cloud/openapi/models/validate.py +81 -3
  73. lightning_sdk/lightning_cloud/rest_client.py +2 -0
  74. lightning_sdk/teamspace.py +11 -0
  75. {lightning_sdk-0.1.30.dist-info → lightning_sdk-0.1.32.dist-info}/METADATA +1 -1
  76. {lightning_sdk-0.1.30.dist-info → lightning_sdk-0.1.32.dist-info}/RECORD +80 -48
  77. {lightning_sdk-0.1.30.dist-info → lightning_sdk-0.1.32.dist-info}/LICENSE +0 -0
  78. {lightning_sdk-0.1.30.dist-info → lightning_sdk-0.1.32.dist-info}/WHEEL +0 -0
  79. {lightning_sdk-0.1.30.dist-info → lightning_sdk-0.1.32.dist-info}/entry_points.txt +0 -0
  80. {lightning_sdk-0.1.30.dist-info → lightning_sdk-0.1.32.dist-info}/top_level.txt +0 -0
lightning_sdk/__init__.py CHANGED
@@ -1,4 +1,5 @@
1
1
  from lightning_sdk.agents import Agent
2
+ from lightning_sdk.ai_hub import AIHub
2
3
  from lightning_sdk.constants import __GLOBAL_LIGHTNING_UNIQUE_IDS_STORE__ # noqa: F401
3
4
  from lightning_sdk.helpers import _check_version_and_prompt_upgrade
4
5
  from lightning_sdk.job import Job
@@ -23,7 +24,8 @@ __all__ = [
23
24
  "Teamspace",
24
25
  "User",
25
26
  "Agent",
27
+ "AIHub",
26
28
  ]
27
29
 
28
- __version__ = "0.1.30"
30
+ __version__ = "0.1.32"
29
31
  _check_version_and_prompt_upgrade(__version__)
@@ -0,0 +1,29 @@
1
+ from typing import Dict, List
2
+
3
+ from lightning_sdk.api.ai_hub_api import AIHubApi
4
+
5
+
6
+ class AIHub:
7
+ """An interface to interact with the AI Hub.
8
+
9
+ Example:
10
+ ai_hub = AIHub()
11
+ api_list = ai_hub.list_apis()
12
+ """
13
+
14
+ def __init__(self) -> None:
15
+ self._api = AIHubApi()
16
+
17
+ def list_apis(self) -> List[Dict[str, str]]:
18
+ """Get a list of AI Hub API templates."""
19
+ api_templates = self._api.list_apis()
20
+ results = []
21
+ for template in api_templates:
22
+ result = {
23
+ "id": template.id,
24
+ "name": template.name,
25
+ "description": template.description,
26
+ "creator_username": template.creator_username,
27
+ }
28
+ results.append(result)
29
+ return results
@@ -1,4 +1,5 @@
1
1
  from lightning_sdk.api.agents_api import AgentApi
2
+ from lightning_sdk.api.ai_hub_api import AIHubApi
2
3
  from lightning_sdk.api.org_api import OrgApi
3
4
  from lightning_sdk.api.studio_api import StudioApi
4
5
  from lightning_sdk.api.teamspace_api import TeamspaceApi
@@ -10,4 +11,5 @@ __all__ = [
10
11
  "TeamspaceApi",
11
12
  "UserApi",
12
13
  "AgentApi",
14
+ "AIHubApi",
13
15
  ]
@@ -0,0 +1,15 @@
1
+ from typing import List
2
+
3
+ from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_template_gallery_response import (
4
+ V1DeploymentTemplateGalleryResponse,
5
+ )
6
+ from lightning_sdk.lightning_cloud.rest_client import LightningClient
7
+
8
+
9
+ class AIHubApi:
10
+ def __init__(self) -> None:
11
+ self._client = LightningClient(max_tries=7)
12
+
13
+ def list_apis(self) -> List[V1DeploymentTemplateGalleryResponse]:
14
+ kwargs = {"show_globally_visible": True}
15
+ return self._client.deployment_templates_service_list_published_deployment_templates(**kwargs).templates
@@ -6,6 +6,7 @@ from typing import Dict, List, Optional
6
6
  from lightning_sdk.api.utils import _download_model_files, _DummyBody, _ModelFileUploader
7
7
  from lightning_sdk.lightning_cloud.login import Auth
8
8
  from lightning_sdk.lightning_cloud.openapi import (
9
+ ModelIdVersionsBody,
9
10
  ModelsStoreApi,
10
11
  ProjectIdAgentsBody,
11
12
  ProjectIdModelsBody,
@@ -28,6 +29,7 @@ class TeamspaceApi:
28
29
 
29
30
  def __init__(self) -> None:
30
31
  self._client = LightningClient(max_tries=7)
32
+ self._models: Optional[ModelsStoreApi] = None
31
33
 
32
34
  def get_teamspace(self, name: str, owner_id: str) -> V1Project:
33
35
  """Get the current teamspace from the owner."""
@@ -165,9 +167,36 @@ class TeamspaceApi:
165
167
  teamspace_id: str,
166
168
  cluster_id: str,
167
169
  ) -> V1ModelVersionArchive:
168
- api = ModelsStoreApi(self._client.api_client)
169
- body = ProjectIdModelsBody(cluster_id=cluster_id, metadata=metadata, name=name, private=private)
170
- return api.models_store_create_model(body, project_id=teamspace_id)
170
+ if not self._models:
171
+ self._models = ModelsStoreApi(self._client.api_client)
172
+ # ask if such model already exists by listing models with specific name
173
+ models = self._models.models_store_list_models(project_id=teamspace_id, name=name).models
174
+ if len(models) == 0:
175
+ return self._models.models_store_create_model(
176
+ body=ProjectIdModelsBody(cluster_id=cluster_id, metadata=metadata, name=name, private=private),
177
+ project_id=teamspace_id,
178
+ )
179
+ assert len(models) == 1, "Multiple models with the same name found"
180
+ return self._models.models_store_create_model_version(
181
+ body=ModelIdVersionsBody(cluster_id=cluster_id),
182
+ project_id=teamspace_id,
183
+ model_id=models[0].id,
184
+ )
185
+
186
+ def delete_model(self, name: str, version: Optional[str], teamspace_id: str) -> None:
187
+ """Delete a model or a version from the model store."""
188
+ if not self._models:
189
+ self._models = ModelsStoreApi(self._client.api_client)
190
+ models = self._models.models_store_list_models(project_id=teamspace_id, name=name).models
191
+ assert len(models) == 1, "Multiple models with the same name found"
192
+ model_id = models[0].id
193
+ # decide if delete only version of whole model
194
+ if version:
195
+ if version == "latest":
196
+ version = models[0].latest_version
197
+ self._models.models_store_delete_model_version(project_id=teamspace_id, model_id=model_id, version=version)
198
+ else:
199
+ self._models.models_store_delete_model(project_id=teamspace_id, model_id=model_id)
171
200
 
172
201
  def upload_model_file(
173
202
  self,
@@ -213,8 +242,9 @@ class TeamspaceApi:
213
242
  )
214
243
 
215
244
  def complete_model_upload(self, model_id: str, version: str, teamspace_id: str) -> None:
216
- api = ModelsStoreApi(self._client.api_client)
217
- api.models_store_complete_model_upload(
245
+ if not self._models:
246
+ self._models = ModelsStoreApi(self._client.api_client)
247
+ self._models.models_store_complete_model_upload(
218
248
  body=_DummyBody(),
219
249
  project_id=teamspace_id,
220
250
  model_id=model_id,
@@ -1,4 +1,4 @@
1
- from typing import List
1
+ from typing import List, Union
2
2
 
3
3
  from lightning_sdk.lightning_cloud.login import Auth
4
4
  from lightning_sdk.lightning_cloud.openapi import (
@@ -19,8 +19,14 @@ class UserApi:
19
19
  def __init__(self) -> None:
20
20
  self._client = LightningClient(max_tries=7)
21
21
 
22
- def get_user(self, name: str) -> V1SearchUser:
22
+ def get_user(self, name: str) -> Union[V1SearchUser, V1GetUserResponse]:
23
23
  """Gets user by name."""
24
+ authed_user = self._client.auth_service_get_user()
25
+ if authed_user.username == name:
26
+ return authed_user
27
+
28
+ # if it's not the authed user, lookup by name
29
+ # TODO: This API won't necesarily return the correct thing
24
30
  response = self._client.user_service_search_users(query=name)
25
31
 
26
32
  users = [u for u in response.users if u.username == name]
@@ -76,13 +76,14 @@ class _Uploads(_StudiosMenu):
76
76
  if remote_path is None:
77
77
  remote_path = os.path.basename(path)
78
78
 
79
+ if not Path(path).exists():
80
+ raise FileNotFoundError(f"The provided path does not exist: {path}.")
81
+ if not Path(path).is_dir():
82
+ raise StudioCliError(f"The provided path is not a folder: {path}. Use `lightning upload file` instead.")
83
+
79
84
  selected_studio = self._resolve_studio(studio)
80
85
 
81
86
  print(f"Uploading to {selected_studio.teamspace.name}/{selected_studio.name}")
82
- if not Path(path).exists:
83
- raise FileNotFoundError(f"The provided path does not exist: {path}.")
84
- if not Path(path).is_dir:
85
- raise StudioCliError(f"The provided path is not a folder: {path}. Use `lightning upload file` instead.")
86
87
 
87
88
  pairs = {}
88
89
  for root, _, files in os.walk(path):
@@ -130,11 +131,14 @@ class _Uploads(_StudiosMenu):
130
131
  if remote_path is None:
131
132
  remote_path = os.path.basename(path)
132
133
 
134
+ if Path(path).is_dir():
135
+ raise StudioCliError(f"The provided path is a folder: {path}. Use `lightning upload folder` instead.")
136
+ if not Path(path).exists():
137
+ raise FileNotFoundError(f"The provided path does not exist: {path}.")
138
+
133
139
  selected_studio = self._resolve_studio(studio)
134
140
 
135
141
  print(f"Uploading to {selected_studio.teamspace.name}/{selected_studio.name}")
136
- if Path(path).is_dir:
137
- raise StudioCliError(f"The provided path is a folder: {path}. Use `lightning upload folder` instead.")
138
142
 
139
143
  self._single_file_upload(selected_studio, path, remote_path, True)
140
144
 
@@ -34,6 +34,7 @@ from lightning_sdk.lightning_cloud.openapi.api.dataset_service_api import Datase
34
34
  from lightning_sdk.lightning_cloud.openapi.api.deployment_templates_service_api import DeploymentTemplatesServiceApi
35
35
  from lightning_sdk.lightning_cloud.openapi.api.endpoint_service_api import EndpointServiceApi
36
36
  from lightning_sdk.lightning_cloud.openapi.api.experiments_service_api import ExperimentsServiceApi
37
+ from lightning_sdk.lightning_cloud.openapi.api.file_system_service_api import FileSystemServiceApi
37
38
  from lightning_sdk.lightning_cloud.openapi.api.jobs_service_api import JobsServiceApi
38
39
  from lightning_sdk.lightning_cloud.openapi.api.lightningapp_instance_service_api import LightningappInstanceServiceApi
39
40
  from lightning_sdk.lightning_cloud.openapi.api.lightningapp_v2_service_api import LightningappV2ServiceApi
@@ -104,6 +105,7 @@ from lightning_sdk.lightning_cloud.openapi.models.id_codeconfig_body import IdCo
104
105
  from lightning_sdk.lightning_cloud.openapi.models.id_collaborate_body import IdCollaborateBody
105
106
  from lightning_sdk.lightning_cloud.openapi.models.id_complete_body import IdCompleteBody
106
107
  from lightning_sdk.lightning_cloud.openapi.models.id_engage_body import IdEngageBody
108
+ from lightning_sdk.lightning_cloud.openapi.models.id_engage_body1 import IdEngageBody1
107
109
  from lightning_sdk.lightning_cloud.openapi.models.id_execute_body import IdExecuteBody
108
110
  from lightning_sdk.lightning_cloud.openapi.models.id_execute_body1 import IdExecuteBody1
109
111
  from lightning_sdk.lightning_cloud.openapi.models.id_fork_body import IdForkBody
@@ -127,12 +129,14 @@ from lightning_sdk.lightning_cloud.openapi.models.jobs_id_body import JobsIdBody
127
129
  from lightning_sdk.lightning_cloud.openapi.models.jobs_id_body1 import JobsIdBody1
128
130
  from lightning_sdk.lightning_cloud.openapi.models.jobs_id_body2 import JobsIdBody2
129
131
  from lightning_sdk.lightning_cloud.openapi.models.jobs_id_body3 import JobsIdBody3
132
+ from lightning_sdk.lightning_cloud.openapi.models.litloggermetrics_id_body import LitloggermetricsIdBody
130
133
  from lightning_sdk.lightning_cloud.openapi.models.litpages_id_body import LitpagesIdBody
131
134
  from lightning_sdk.lightning_cloud.openapi.models.loggermetrics_id_body import LoggermetricsIdBody
132
135
  from lightning_sdk.lightning_cloud.openapi.models.metrics_stream_id_loggerartifacts_body import MetricsStreamIdLoggerartifactsBody
133
136
  from lightning_sdk.lightning_cloud.openapi.models.metricsstream_create_body import MetricsstreamCreateBody
134
137
  from lightning_sdk.lightning_cloud.openapi.models.metricsstream_delete_body import MetricsstreamDeleteBody
135
138
  from lightning_sdk.lightning_cloud.openapi.models.metricsstream_id_body import MetricsstreamIdBody
139
+ from lightning_sdk.lightning_cloud.openapi.models.model_id_versions_body import ModelIdVersionsBody
136
140
  from lightning_sdk.lightning_cloud.openapi.models.models_model_id_body import ModelsModelIdBody
137
141
  from lightning_sdk.lightning_cloud.openapi.models.multipartuploads_upload_id_body import MultipartuploadsUploadIdBody
138
142
  from lightning_sdk.lightning_cloud.openapi.models.org_id_memberships_body import OrgIdMembershipsBody
@@ -196,6 +200,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_agent_job import V1AgentJob
196
200
  from lightning_sdk.lightning_cloud.openapi.models.v1_agent_job_artifact import V1AgentJobArtifact
197
201
  from lightning_sdk.lightning_cloud.openapi.models.v1_agent_upload_multipart_url import V1AgentUploadMultipartUrl
198
202
  from lightning_sdk.lightning_cloud.openapi.models.v1_agent_upload_part_response import V1AgentUploadPartResponse
203
+ from lightning_sdk.lightning_cloud.openapi.models.v1_app_type import V1AppType
199
204
  from lightning_sdk.lightning_cloud.openapi.models.v1_append_logger_metrics_response import V1AppendLoggerMetricsResponse
200
205
  from lightning_sdk.lightning_cloud.openapi.models.v1_approve_auto_join_domain_response import V1ApproveAutoJoinDomainResponse
201
206
  from lightning_sdk.lightning_cloud.openapi.models.v1_artifact import V1Artifact
@@ -289,6 +294,8 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_create_multi_part_upload_re
289
294
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_organization_request import V1CreateOrganizationRequest
290
295
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_project_request import V1CreateProjectRequest
291
296
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_ssh_public_key_request import V1CreateSSHPublicKeyRequest
297
+ from lightning_sdk.lightning_cloud.openapi.models.v1_create_shared_metrics_stream_request import V1CreateSharedMetricsStreamRequest
298
+ from lightning_sdk.lightning_cloud.openapi.models.v1_create_shared_metrics_stream_response import V1CreateSharedMetricsStreamResponse
292
299
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_snowflake_connection_response import V1CreateSnowflakeConnectionResponse
293
300
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_subscription_checkout_session_request import V1CreateSubscriptionCheckoutSessionRequest
294
301
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_subscription_checkout_session_response import V1CreateSubscriptionCheckoutSessionResponse
@@ -298,6 +305,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_data_connection import V1Da
298
305
  from lightning_sdk.lightning_cloud.openapi.models.v1_data_connection_artifact import V1DataConnectionArtifact
299
306
  from lightning_sdk.lightning_cloud.openapi.models.v1_data_connection_mount import V1DataConnectionMount
300
307
  from lightning_sdk.lightning_cloud.openapi.models.v1_data_connection_state import V1DataConnectionState
308
+ from lightning_sdk.lightning_cloud.openapi.models.v1_data_path import V1DataPath
301
309
  from lightning_sdk.lightning_cloud.openapi.models.v1_dataset import V1Dataset
302
310
  from lightning_sdk.lightning_cloud.openapi.models.v1_dataset_type import V1DatasetType
303
311
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_affiliate_link_response import V1DeleteAffiliateLinkResponse
@@ -346,6 +354,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_delete_project_role_respons
346
354
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_ssh_public_key_response import V1DeleteSSHPublicKeyResponse
347
355
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_secret_response import V1DeleteSecretResponse
348
356
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_service_execution_response import V1DeleteServiceExecutionResponse
357
+ from lightning_sdk.lightning_cloud.openapi.models.v1_delete_shared_metrics_stream_response import V1DeleteSharedMetricsStreamResponse
349
358
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_studio_job_response import V1DeleteStudioJobResponse
350
359
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_user_slurm_job_response import V1DeleteUserSLURMJobResponse
351
360
  from lightning_sdk.lightning_cloud.openapi.models.v1_dependency_cache_state import V1DependencyCacheState
@@ -353,12 +362,14 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_dependency_file_info import
353
362
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment import V1Deployment
354
363
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_event import V1DeploymentEvent
355
364
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_event_type import V1DeploymentEventType
365
+ from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_metrics import V1DeploymentMetrics
356
366
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_release import V1DeploymentRelease
357
367
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_spec import V1DeploymentSpec
358
368
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_state import V1DeploymentState
359
369
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_status import V1DeploymentStatus
360
370
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_strategy import V1DeploymentStrategy
361
371
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_template import V1DeploymentTemplate
372
+ from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_template_engagement_response import V1DeploymentTemplateEngagementResponse
362
373
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_template_gallery_response import V1DeploymentTemplateGalleryResponse
363
374
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_template_parameter import V1DeploymentTemplateParameter
364
375
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_template_parameter_placement import V1DeploymentTemplateParameterPlacement
@@ -376,6 +387,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_drive_status import V1Drive
376
387
  from lightning_sdk.lightning_cloud.openapi.models.v1_drive_type import V1DriveType
377
388
  from lightning_sdk.lightning_cloud.openapi.models.v1_drive_type_spec import V1DriveTypeSpec
378
389
  from lightning_sdk.lightning_cloud.openapi.models.v1_drive_type_status import V1DriveTypeStatus
390
+ from lightning_sdk.lightning_cloud.openapi.models.v1_efs_folder_data_connection import V1EFSFolderDataConnection
379
391
  from lightning_sdk.lightning_cloud.openapi.models.v1_ebs import V1Ebs
380
392
  from lightning_sdk.lightning_cloud.openapi.models.v1_efs_data_connection import V1EfsDataConnection
381
393
  from lightning_sdk.lightning_cloud.openapi.models.v1_endpoint import V1Endpoint
@@ -390,9 +402,17 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_experiment import V1Experim
390
402
  from lightning_sdk.lightning_cloud.openapi.models.v1_export_snowflake_query_response import V1ExportSnowflakeQueryResponse
391
403
  from lightning_sdk.lightning_cloud.openapi.models.v1_external_search_user import V1ExternalSearchUser
392
404
  from lightning_sdk.lightning_cloud.openapi.models.v1_file_endpoint import V1FileEndpoint
405
+ from lightning_sdk.lightning_cloud.openapi.models.v1_filesystem_app import V1FilesystemApp
406
+ from lightning_sdk.lightning_cloud.openapi.models.v1_filesystem_cloud_space import V1FilesystemCloudSpace
407
+ from lightning_sdk.lightning_cloud.openapi.models.v1_filesystem_dataset import V1FilesystemDataset
408
+ from lightning_sdk.lightning_cloud.openapi.models.v1_filesystem_job import V1FilesystemJob
409
+ from lightning_sdk.lightning_cloud.openapi.models.v1_filesystem_slurm_job import V1FilesystemSlurmJob
410
+ from lightning_sdk.lightning_cloud.openapi.models.v1_filesystem_snowflake_connection import V1FilesystemSnowflakeConnection
411
+ from lightning_sdk.lightning_cloud.openapi.models.v1_filesystem_work import V1FilesystemWork
393
412
  from lightning_sdk.lightning_cloud.openapi.models.v1_find_capacity_block_offering_response import V1FindCapacityBlockOfferingResponse
394
413
  from lightning_sdk.lightning_cloud.openapi.models.v1_flowserver import V1Flowserver
395
414
  from lightning_sdk.lightning_cloud.openapi.models.v1_folder_index_status import V1FolderIndexStatus
415
+ from lightning_sdk.lightning_cloud.openapi.models.v1_gcs_folder_data_connection import V1GCSFolderDataConnection
396
416
  from lightning_sdk.lightning_cloud.openapi.models.v1_gpu_system_metrics import V1GPUSystemMetrics
397
417
  from lightning_sdk.lightning_cloud.openapi.models.v1_gallery_app import V1GalleryApp
398
418
  from lightning_sdk.lightning_cloud.openapi.models.v1_gallery_component import V1GalleryComponent
@@ -482,6 +502,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_assistants_response im
482
502
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_cloud_space_apps_response import V1ListCloudSpaceAppsResponse
483
503
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_cloud_space_instances_response import V1ListCloudSpaceInstancesResponse
484
504
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_cloud_space_publications_response import V1ListCloudSpacePublicationsResponse
505
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_cloud_space_python_versions_response import V1ListCloudSpacePythonVersionsResponse
485
506
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_cloud_space_sessions_response import V1ListCloudSpaceSessionsResponse
486
507
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_cloud_space_tags_response import V1ListCloudSpaceTagsResponse
487
508
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_cloud_space_version_publications_response import V1ListCloudSpaceVersionPublicationsResponse
@@ -505,6 +526,12 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_deployments_response i
505
526
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_endpoints_response import V1ListEndpointsResponse
506
527
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_experiments_response import V1ListExperimentsResponse
507
528
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_file_endpoints_response import V1ListFileEndpointsResponse
529
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_filesystem_apps_response import V1ListFilesystemAppsResponse
530
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_filesystem_cloud_spaces_response import V1ListFilesystemCloudSpacesResponse
531
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_filesystem_datasets_response import V1ListFilesystemDatasetsResponse
532
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_filesystem_jobs_response import V1ListFilesystemJobsResponse
533
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_filesystem_slurm_jobs_response import V1ListFilesystemSlurmJobsResponse
534
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_filesystem_snowflake_response import V1ListFilesystemSnowflakeResponse
508
535
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_gallery_components_response import V1ListGalleryComponentsResponse
509
536
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_gallery_lightningapps_response import V1ListGalleryLightningappsResponse
510
537
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_job_files_response import V1ListJobFilesResponse
@@ -591,6 +618,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_org_role import V1OrgRole
591
618
  from lightning_sdk.lightning_cloud.openapi.models.v1_organization import V1Organization
592
619
  from lightning_sdk.lightning_cloud.openapi.models.v1_owner_type import V1OwnerType
593
620
  from lightning_sdk.lightning_cloud.openapi.models.v1_package_manager import V1PackageManager
621
+ from lightning_sdk.lightning_cloud.openapi.models.v1_parameterization_spec import V1ParameterizationSpec
594
622
  from lightning_sdk.lightning_cloud.openapi.models.v1_path_telemetry import V1PathTelemetry
595
623
  from lightning_sdk.lightning_cloud.openapi.models.v1_phase_type import V1PhaseType
596
624
  from lightning_sdk.lightning_cloud.openapi.models.v1_plugin import V1Plugin
@@ -643,6 +671,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_rule_action import V1RuleAc
643
671
  from lightning_sdk.lightning_cloud.openapi.models.v1_rule_condition import V1RuleCondition
644
672
  from lightning_sdk.lightning_cloud.openapi.models.v1_rule_effect import V1RuleEffect
645
673
  from lightning_sdk.lightning_cloud.openapi.models.v1_rule_resource import V1RuleResource
674
+ from lightning_sdk.lightning_cloud.openapi.models.v1_s3_folder_data_connection import V1S3FolderDataConnection
646
675
  from lightning_sdk.lightning_cloud.openapi.models.v1_slurm_job import V1SLURMJob
647
676
  from lightning_sdk.lightning_cloud.openapi.models.v1_ssh_key_pair import V1SSHKeyPair
648
677
  from lightning_sdk.lightning_cloud.openapi.models.v1_ssh_public_key import V1SSHPublicKey
@@ -696,6 +725,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_update_cluster_availability
696
725
  from lightning_sdk.lightning_cloud.openapi.models.v1_update_index_response import V1UpdateIndexResponse
697
726
  from lightning_sdk.lightning_cloud.openapi.models.v1_update_lit_page_response import V1UpdateLitPageResponse
698
727
  from lightning_sdk.lightning_cloud.openapi.models.v1_update_project_cluster_accelerators_response import V1UpdateProjectClusterAcceleratorsResponse
728
+ from lightning_sdk.lightning_cloud.openapi.models.v1_update_shared_metrics_stream_response import V1UpdateSharedMetricsStreamResponse
699
729
  from lightning_sdk.lightning_cloud.openapi.models.v1_update_snowflake_query_response import V1UpdateSnowflakeQueryResponse
700
730
  from lightning_sdk.lightning_cloud.openapi.models.v1_update_user_request import V1UpdateUserRequest
701
731
  from lightning_sdk.lightning_cloud.openapi.models.v1_update_user_viewed_new_features_request import V1UpdateUserViewedNewFeaturesRequest
@@ -15,6 +15,7 @@ from lightning_sdk.lightning_cloud.openapi.api.dataset_service_api import Datase
15
15
  from lightning_sdk.lightning_cloud.openapi.api.deployment_templates_service_api import DeploymentTemplatesServiceApi
16
16
  from lightning_sdk.lightning_cloud.openapi.api.endpoint_service_api import EndpointServiceApi
17
17
  from lightning_sdk.lightning_cloud.openapi.api.experiments_service_api import ExperimentsServiceApi
18
+ from lightning_sdk.lightning_cloud.openapi.api.file_system_service_api import FileSystemServiceApi
18
19
  from lightning_sdk.lightning_cloud.openapi.api.jobs_service_api import JobsServiceApi
19
20
  from lightning_sdk.lightning_cloud.openapi.api.lightningapp_instance_service_api import LightningappInstanceServiceApi
20
21
  from lightning_sdk.lightning_cloud.openapi.api.lightningapp_v2_service_api import LightningappV2ServiceApi
@@ -1955,7 +1955,7 @@ class CloudSpaceServiceApi(object):
1955
1955
  _request_timeout=params.get('_request_timeout'),
1956
1956
  collection_formats=collection_formats)
1957
1957
 
1958
- def cloud_space_service_engage_cloud_space(self, body: 'IdEngageBody', project_id: 'str', id: 'str', **kwargs) -> 'V1CloudSpaceEngagementResponse': # noqa: E501
1958
+ def cloud_space_service_engage_cloud_space(self, body: 'IdEngageBody1', project_id: 'str', id: 'str', **kwargs) -> 'V1CloudSpaceEngagementResponse': # noqa: E501
1959
1959
  """cloud_space_service_engage_cloud_space # noqa: E501
1960
1960
 
1961
1961
  This method makes a synchronous HTTP request by default. To make an
@@ -1964,7 +1964,7 @@ class CloudSpaceServiceApi(object):
1964
1964
  >>> result = thread.get()
1965
1965
 
1966
1966
  :param async_req bool
1967
- :param IdEngageBody body: (required)
1967
+ :param IdEngageBody1 body: (required)
1968
1968
  :param str project_id: (required)
1969
1969
  :param str id: (required)
1970
1970
  :return: V1CloudSpaceEngagementResponse
@@ -1978,7 +1978,7 @@ class CloudSpaceServiceApi(object):
1978
1978
  (data) = self.cloud_space_service_engage_cloud_space_with_http_info(body, project_id, id, **kwargs) # noqa: E501
1979
1979
  return data
1980
1980
 
1981
- def cloud_space_service_engage_cloud_space_with_http_info(self, body: 'IdEngageBody', project_id: 'str', id: 'str', **kwargs) -> 'V1CloudSpaceEngagementResponse': # noqa: E501
1981
+ def cloud_space_service_engage_cloud_space_with_http_info(self, body: 'IdEngageBody1', project_id: 'str', id: 'str', **kwargs) -> 'V1CloudSpaceEngagementResponse': # noqa: E501
1982
1982
  """cloud_space_service_engage_cloud_space # noqa: E501
1983
1983
 
1984
1984
  This method makes a synchronous HTTP request by default. To make an
@@ -1987,7 +1987,7 @@ class CloudSpaceServiceApi(object):
1987
1987
  >>> result = thread.get()
1988
1988
 
1989
1989
  :param async_req bool
1990
- :param IdEngageBody body: (required)
1990
+ :param IdEngageBody1 body: (required)
1991
1991
  :param str project_id: (required)
1992
1992
  :param str id: (required)
1993
1993
  :return: V1CloudSpaceEngagementResponse
@@ -5209,6 +5209,107 @@ class CloudSpaceServiceApi(object):
5209
5209
  _request_timeout=params.get('_request_timeout'),
5210
5210
  collection_formats=collection_formats)
5211
5211
 
5212
+ def cloud_space_service_list_cloud_space_python_versions(self, project_id: 'str', cloudspace_id: 'str', **kwargs) -> 'V1ListCloudSpacePythonVersionsResponse': # noqa: E501
5213
+ """cloud_space_service_list_cloud_space_python_versions # noqa: E501
5214
+
5215
+ This method makes a synchronous HTTP request by default. To make an
5216
+ asynchronous HTTP request, please pass async_req=True
5217
+ >>> thread = api.cloud_space_service_list_cloud_space_python_versions(project_id, cloudspace_id, async_req=True)
5218
+ >>> result = thread.get()
5219
+
5220
+ :param async_req bool
5221
+ :param str project_id: (required)
5222
+ :param str cloudspace_id: (required)
5223
+ :return: V1ListCloudSpacePythonVersionsResponse
5224
+ If the method is called asynchronously,
5225
+ returns the request thread.
5226
+ """
5227
+ kwargs['_return_http_data_only'] = True
5228
+ if kwargs.get('async_req'):
5229
+ return self.cloud_space_service_list_cloud_space_python_versions_with_http_info(project_id, cloudspace_id, **kwargs) # noqa: E501
5230
+ else:
5231
+ (data) = self.cloud_space_service_list_cloud_space_python_versions_with_http_info(project_id, cloudspace_id, **kwargs) # noqa: E501
5232
+ return data
5233
+
5234
+ def cloud_space_service_list_cloud_space_python_versions_with_http_info(self, project_id: 'str', cloudspace_id: 'str', **kwargs) -> 'V1ListCloudSpacePythonVersionsResponse': # noqa: E501
5235
+ """cloud_space_service_list_cloud_space_python_versions # noqa: E501
5236
+
5237
+ This method makes a synchronous HTTP request by default. To make an
5238
+ asynchronous HTTP request, please pass async_req=True
5239
+ >>> thread = api.cloud_space_service_list_cloud_space_python_versions_with_http_info(project_id, cloudspace_id, async_req=True)
5240
+ >>> result = thread.get()
5241
+
5242
+ :param async_req bool
5243
+ :param str project_id: (required)
5244
+ :param str cloudspace_id: (required)
5245
+ :return: V1ListCloudSpacePythonVersionsResponse
5246
+ If the method is called asynchronously,
5247
+ returns the request thread.
5248
+ """
5249
+
5250
+ all_params = ['project_id', 'cloudspace_id'] # noqa: E501
5251
+ all_params.append('async_req')
5252
+ all_params.append('_return_http_data_only')
5253
+ all_params.append('_preload_content')
5254
+ all_params.append('_request_timeout')
5255
+
5256
+ params = locals()
5257
+ for key, val in six.iteritems(params['kwargs']):
5258
+ if key not in all_params:
5259
+ raise TypeError(
5260
+ "Got an unexpected keyword argument '%s'"
5261
+ " to method cloud_space_service_list_cloud_space_python_versions" % key
5262
+ )
5263
+ params[key] = val
5264
+ del params['kwargs']
5265
+ # verify the required parameter 'project_id' is set
5266
+ if ('project_id' not in params or
5267
+ params['project_id'] is None):
5268
+ raise ValueError("Missing the required parameter `project_id` when calling `cloud_space_service_list_cloud_space_python_versions`") # noqa: E501
5269
+ # verify the required parameter 'cloudspace_id' is set
5270
+ if ('cloudspace_id' not in params or
5271
+ params['cloudspace_id'] is None):
5272
+ raise ValueError("Missing the required parameter `cloudspace_id` when calling `cloud_space_service_list_cloud_space_python_versions`") # noqa: E501
5273
+
5274
+ collection_formats = {}
5275
+
5276
+ path_params = {}
5277
+ if 'project_id' in params:
5278
+ path_params['projectId'] = params['project_id'] # noqa: E501
5279
+ if 'cloudspace_id' in params:
5280
+ path_params['cloudspaceId'] = params['cloudspace_id'] # noqa: E501
5281
+
5282
+ query_params = []
5283
+
5284
+ header_params = {}
5285
+
5286
+ form_params = []
5287
+ local_var_files = {}
5288
+
5289
+ body_params = None
5290
+ # HTTP header `Accept`
5291
+ header_params['Accept'] = self.api_client.select_header_accept(
5292
+ ['application/json']) # noqa: E501
5293
+
5294
+ # Authentication setting
5295
+ auth_settings = [] # noqa: E501
5296
+
5297
+ return self.api_client.call_api(
5298
+ '/v1/projects/{projectId}/cloudspaces/{cloudspaceId}/python-versions', 'GET',
5299
+ path_params,
5300
+ query_params,
5301
+ header_params,
5302
+ body=body_params,
5303
+ post_params=form_params,
5304
+ files=local_var_files,
5305
+ response_type='V1ListCloudSpacePythonVersionsResponse', # noqa: E501
5306
+ auth_settings=auth_settings,
5307
+ async_req=params.get('async_req'),
5308
+ _return_http_data_only=params.get('_return_http_data_only'),
5309
+ _preload_content=params.get('_preload_content', True),
5310
+ _request_timeout=params.get('_request_timeout'),
5311
+ collection_formats=collection_formats)
5312
+
5212
5313
  def cloud_space_service_list_cloud_space_sessions(self, project_id: 'str', cloudspace_id: 'str', **kwargs) -> 'V1ListCloudSpaceSessionsResponse': # noqa: E501
5213
5314
  """Session endpoints # noqa: E501
5214
5315
 
@@ -1106,10 +1106,10 @@ class ClusterServiceApi(object):
1106
1106
  :param str cluster_id: (required)
1107
1107
  :param str instance_type:
1108
1108
  :param int instance_count:
1109
- :param int capacity_block_duration_hours:
1110
1109
  :param datetime start_date:
1111
1110
  :param str timezone:
1112
1111
  :param str org_id:
1112
+ :param int capacity_block_duration_days:
1113
1113
  :return: V1FindCapacityBlockOfferingResponse
1114
1114
  If the method is called asynchronously,
1115
1115
  returns the request thread.
@@ -1134,16 +1134,16 @@ class ClusterServiceApi(object):
1134
1134
  :param str cluster_id: (required)
1135
1135
  :param str instance_type:
1136
1136
  :param int instance_count:
1137
- :param int capacity_block_duration_hours:
1138
1137
  :param datetime start_date:
1139
1138
  :param str timezone:
1140
1139
  :param str org_id:
1140
+ :param int capacity_block_duration_days:
1141
1141
  :return: V1FindCapacityBlockOfferingResponse
1142
1142
  If the method is called asynchronously,
1143
1143
  returns the request thread.
1144
1144
  """
1145
1145
 
1146
- all_params = ['project_id', 'cluster_id', 'instance_type', 'instance_count', 'capacity_block_duration_hours', 'start_date', 'timezone', 'org_id'] # noqa: E501
1146
+ all_params = ['project_id', 'cluster_id', 'instance_type', 'instance_count', 'start_date', 'timezone', 'org_id', 'capacity_block_duration_days'] # noqa: E501
1147
1147
  all_params.append('async_req')
1148
1148
  all_params.append('_return_http_data_only')
1149
1149
  all_params.append('_preload_content')
@@ -1180,14 +1180,14 @@ class ClusterServiceApi(object):
1180
1180
  query_params.append(('instanceType', params['instance_type'])) # noqa: E501
1181
1181
  if 'instance_count' in params:
1182
1182
  query_params.append(('instanceCount', params['instance_count'])) # noqa: E501
1183
- if 'capacity_block_duration_hours' in params:
1184
- query_params.append(('capacityBlockDurationHours', params['capacity_block_duration_hours'])) # noqa: E501
1185
1183
  if 'start_date' in params:
1186
1184
  query_params.append(('startDate', params['start_date'])) # noqa: E501
1187
1185
  if 'timezone' in params:
1188
1186
  query_params.append(('timezone', params['timezone'])) # noqa: E501
1189
1187
  if 'org_id' in params:
1190
1188
  query_params.append(('orgId', params['org_id'])) # noqa: E501
1189
+ if 'capacity_block_duration_days' in params:
1190
+ query_params.append(('capacityBlockDurationDays', params['capacity_block_duration_days'])) # noqa: E501
1191
1191
 
1192
1192
  header_params = {}
1193
1193