lightning-sdk 0.2.15__py3-none-any.whl → 0.2.16__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 (74) hide show
  1. lightning_sdk/__init__.py +1 -1
  2. lightning_sdk/api/base_studio_api.py +7 -1
  3. lightning_sdk/api/cluster_api.py +83 -1
  4. lightning_sdk/api/llm_api.py +24 -5
  5. lightning_sdk/api/studio_api.py +3 -0
  6. lightning_sdk/api/teamspace_api.py +127 -1
  7. lightning_sdk/api/utils.py +4 -0
  8. lightning_sdk/base_studio.py +14 -1
  9. lightning_sdk/cli/create.py +21 -1
  10. lightning_sdk/cli/deploy/__init__.py +0 -0
  11. lightning_sdk/cli/deploy/_auth.py +189 -0
  12. lightning_sdk/cli/deploy/devbox.py +157 -0
  13. lightning_sdk/cli/{serve.py → deploy/serve.py} +11 -322
  14. lightning_sdk/cli/download.py +44 -16
  15. lightning_sdk/cli/entrypoint.py +1 -1
  16. lightning_sdk/cli/open.py +21 -2
  17. lightning_sdk/cli/start.py +12 -3
  18. lightning_sdk/cli/upload.py +2 -4
  19. lightning_sdk/lightning_cloud/openapi/__init__.py +18 -0
  20. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +121 -0
  21. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +105 -0
  22. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +105 -0
  23. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +747 -105
  24. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +93 -0
  25. lightning_sdk/lightning_cloud/openapi/models/__init__.py +18 -0
  26. lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +27 -1
  27. lightning_sdk/lightning_cloud/openapi/models/cloudspaces_id_body.py +53 -1
  28. lightning_sdk/lightning_cloud/openapi/models/deployment_id_alertingpolicies_body.py +331 -0
  29. lightning_sdk/lightning_cloud/openapi/models/deployment_id_alertingpolicies_body1.py +305 -0
  30. lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +53 -1
  31. lightning_sdk/lightning_cloud/openapi/models/models_id_body.py +123 -0
  32. lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +105 -1
  33. lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +27 -1
  34. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +29 -3
  35. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space.py +53 -1
  36. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_source_type.py +103 -0
  37. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_tagging_options.py +27 -1
  38. lightning_sdk/lightning_cloud/openapi/models/v1_delete_deployment_alerting_policy_response.py +175 -0
  39. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +53 -1
  40. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_event.py +487 -0
  41. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy.py +383 -0
  42. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_frequency.py +105 -0
  43. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_operation.py +105 -0
  44. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_severity.py +106 -0
  45. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_type.py +111 -0
  46. lightning_sdk/lightning_cloud/openapi/models/v1_ge_list_deployment_routing_telemetry_response.py +27 -1
  47. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_instance_open_ports_response.py +123 -0
  48. lightning_sdk/lightning_cloud/openapi/models/v1_get_deployment_routing_telemetry_content_response.py +123 -0
  49. lightning_sdk/lightning_cloud/openapi/models/v1_get_organization_storage_metadata_response.py +331 -0
  50. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +1 -27
  51. lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +27 -1
  52. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_alerting_events_response.py +123 -0
  53. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_alerting_policies_response.py +175 -0
  54. lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +27 -1
  55. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +105 -1
  56. lightning_sdk/lightning_cloud/openapi/models/v1_project.py +27 -1
  57. lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +27 -1
  58. lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +29 -3
  59. lightning_sdk/lightning_cloud/openapi/models/v1_project_storage.py +53 -1
  60. lightning_sdk/lightning_cloud/openapi/models/v1_routing_telemetry.py +253 -0
  61. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_type.py +1 -0
  62. lightning_sdk/lightning_cloud/openapi/models/v1_sleep_server_response.py +97 -0
  63. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +1 -27
  64. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +79 -27
  65. lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +27 -1
  66. lightning_sdk/llm/llm.py +52 -8
  67. lightning_sdk/studio.py +32 -1
  68. lightning_sdk/teamspace.py +68 -0
  69. {lightning_sdk-0.2.15.dist-info → lightning_sdk-0.2.16.dist-info}/METADATA +1 -1
  70. {lightning_sdk-0.2.15.dist-info → lightning_sdk-0.2.16.dist-info}/RECORD +74 -53
  71. {lightning_sdk-0.2.15.dist-info → lightning_sdk-0.2.16.dist-info}/LICENSE +0 -0
  72. {lightning_sdk-0.2.15.dist-info → lightning_sdk-0.2.16.dist-info}/WHEEL +0 -0
  73. {lightning_sdk-0.2.15.dist-info → lightning_sdk-0.2.16.dist-info}/entry_points.txt +0 -0
  74. {lightning_sdk-0.2.15.dist-info → lightning_sdk-0.2.16.dist-info}/top_level.txt +0 -0
lightning_sdk/cli/open.py CHANGED
@@ -1,4 +1,5 @@
1
1
  import webbrowser
2
+ from contextlib import suppress
2
3
  from pathlib import Path
3
4
  from typing import Optional
4
5
 
@@ -23,7 +24,17 @@ from lightning_sdk.utils.resolve import _get_studio_url
23
24
  "If not specified, tries to infer from the environment (e.g. when run from within a Studio.)"
24
25
  ),
25
26
  )
26
- def open(path: str = ".", teamspace: Optional[str] = None) -> None: # noqa: A001
27
+ @click.option(
28
+ "--cloud-account",
29
+ "--cloud_account",
30
+ default=None,
31
+ help=(
32
+ "The cloud account to create the studio on. "
33
+ "If not specified, will try to infer from the environment (e.g. when run from within a Studio.) "
34
+ "or fall back to the teamspace default."
35
+ ),
36
+ )
37
+ def open(path: str = ".", teamspace: Optional[str] = None, cloud_account: Optional[str] = None) -> None: # noqa: A001
27
38
  """Open a local file or folder in a Lightning Studio.
28
39
 
29
40
  Example:
@@ -41,7 +52,15 @@ def open(path: str = ".", teamspace: Optional[str] = None) -> None: # noqa: A00
41
52
  menu = _TeamspacesMenu()
42
53
  resolved_teamspace = menu._resolve_teamspace(teamspace=teamspace)
43
54
 
44
- new_studio = Studio(name=pathlib_path.stem, teamspace=resolved_teamspace)
55
+ # default cloud account to current studios cloud account if run from studio
56
+ # else it will fall back to teamspace default in the backend
57
+ if cloud_account is None:
58
+ with suppress(ValueError):
59
+ s = Studio()
60
+ if s.teamspace.name == resolved_teamspace.name and s.teamspace.owner.name == resolved_teamspace.owner.name:
61
+ cloud_account = s.cloud_account
62
+
63
+ new_studio = Studio(name=pathlib_path.stem, teamspace=resolved_teamspace, cloud_account=cloud_account)
45
64
 
46
65
  console.print(
47
66
  f"[bold]Uploading {path} to {new_studio.owner.name}/{new_studio.teamspace.name}/{new_studio.name}[/bold]"
@@ -4,8 +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.studio import Provider
7
8
 
8
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 Provider])
9
11
 
10
12
 
11
13
  @click.group("start")
@@ -33,7 +35,14 @@ def start() -> None:
33
35
  type=click.Choice(_MACHINE_VALUES),
34
36
  help="The machine type to start the studio on.",
35
37
  )
36
- def studio(name: str, teamspace: Optional[str] = None, machine: str = "CPU") -> None:
38
+ @click.option(
39
+ "--provider",
40
+ default=None,
41
+ show_default=True,
42
+ type=click.Choice(_PROVIDER_VALUES),
43
+ help="The provider to start the studio on.",
44
+ )
45
+ def studio(name: str, teamspace: Optional[str] = None, machine: str = "CPU", provider: Optional[str] = None) -> None:
37
46
  """Start a studio on a given machine.
38
47
 
39
48
  Example:
@@ -50,9 +59,9 @@ def studio(name: str, teamspace: Optional[str] = None, machine: str = "CPU") ->
50
59
  owner, teamspace = None, None
51
60
 
52
61
  try:
53
- studio = Studio(name=name, teamspace=teamspace, org=owner, user=None, create_ok=False)
62
+ studio = Studio(name=name, teamspace=teamspace, org=owner, user=None, create_ok=False, provider=provider)
54
63
  except (RuntimeError, ValueError, ApiException):
55
- studio = Studio(name=name, teamspace=teamspace, org=None, user=owner, create_ok=False)
64
+ studio = Studio(name=name, teamspace=teamspace, org=None, user=owner, create_ok=False, provider=provider)
56
65
 
57
66
  try:
58
67
  resolved_machine = getattr(Machine, machine.upper(), Machine(machine, machine))
@@ -197,8 +197,7 @@ def _folder(path: str, studio: Optional[str] = None, remote_path: Optional[str]
197
197
  if not Path(path).is_dir():
198
198
  raise StudioCliError(f"The provided path is not a folder: {path}. Use `lightning upload file` instead.")
199
199
 
200
- menu = _StudiosMenu()
201
- selected_studio = menu._resolve_studio(studio)
200
+ selected_studio = _resolve_studio(studio)
202
201
 
203
202
  console.print(f"Uploading to {selected_studio.teamspace.name}/{selected_studio.name}")
204
203
 
@@ -247,8 +246,7 @@ def _file(path: str, studio: Optional[str] = None, remote_path: Optional[str] =
247
246
  if not Path(path).exists():
248
247
  raise FileNotFoundError(f"The provided path does not exist: {path}.")
249
248
 
250
- menu = _StudiosMenu()
251
- selected_studio = menu._resolve_studio(studio)
249
+ selected_studio = _resolve_studio(studio)
252
250
 
253
251
  console.print(f"Uploading to {selected_studio.teamspace.name}/{selected_studio.name}")
254
252
 
@@ -103,6 +103,8 @@ from lightning_sdk.lightning_cloud.openapi.models.data_connection_mount_data_con
103
103
  from lightning_sdk.lightning_cloud.openapi.models.dataset_id_versions_body import DatasetIdVersionsBody
104
104
  from lightning_sdk.lightning_cloud.openapi.models.dataset_id_visibility_body import DatasetIdVisibilityBody
105
105
  from lightning_sdk.lightning_cloud.openapi.models.datasets_id_body import DatasetsIdBody
106
+ from lightning_sdk.lightning_cloud.openapi.models.deployment_id_alertingpolicies_body import DeploymentIdAlertingpoliciesBody
107
+ from lightning_sdk.lightning_cloud.openapi.models.deployment_id_alertingpolicies_body1 import DeploymentIdAlertingpoliciesBody1
106
108
  from lightning_sdk.lightning_cloud.openapi.models.deployments_id_body import DeploymentsIdBody
107
109
  from lightning_sdk.lightning_cloud.openapi.models.deploymenttemplates_id_body import DeploymenttemplatesIdBody
108
110
  from lightning_sdk.lightning_cloud.openapi.models.endpoints_id_body import EndpointsIdBody
@@ -160,6 +162,7 @@ from lightning_sdk.lightning_cloud.openapi.models.metricsstream_delete_body impo
160
162
  from lightning_sdk.lightning_cloud.openapi.models.metricsstream_id_body import MetricsstreamIdBody
161
163
  from lightning_sdk.lightning_cloud.openapi.models.model_id_versions_body import ModelIdVersionsBody
162
164
  from lightning_sdk.lightning_cloud.openapi.models.model_id_visibility_body import ModelIdVisibilityBody
165
+ from lightning_sdk.lightning_cloud.openapi.models.models_id_body import ModelsIdBody
163
166
  from lightning_sdk.lightning_cloud.openapi.models.models_model_id_body import ModelsModelIdBody
164
167
  from lightning_sdk.lightning_cloud.openapi.models.multimachinejobs_id_body import MultimachinejobsIdBody
165
168
  from lightning_sdk.lightning_cloud.openapi.models.multipartuploads_upload_id_body import MultipartuploadsUploadIdBody
@@ -295,6 +298,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_publication imp
295
298
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_publication_type import V1CloudSpacePublicationType
296
299
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_seed_file import V1CloudSpaceSeedFile
297
300
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_session import V1CloudSpaceSession
301
+ from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_source_type import V1CloudSpaceSourceType
298
302
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_state import V1CloudSpaceState
299
303
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_version import V1CloudSpaceVersion
300
304
  from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_version_publication import V1CloudSpaceVersionPublication
@@ -393,6 +397,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_delete_cluster_usage_restri
393
397
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_conversation_response import V1DeleteConversationResponse
394
398
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_data_connection_response import V1DeleteDataConnectionResponse
395
399
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_dataset_response import V1DeleteDatasetResponse
400
+ from lightning_sdk.lightning_cloud.openapi.models.v1_delete_deployment_alerting_policy_response import V1DeleteDeploymentAlertingPolicyResponse
396
401
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_deployment_release_response import V1DeleteDeploymentReleaseResponse
397
402
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_deployment_response import V1DeleteDeploymentResponse
398
403
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_endpoint_response import V1DeleteEndpointResponse
@@ -438,6 +443,12 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_dependency_cache_state impo
438
443
  from lightning_sdk.lightning_cloud.openapi.models.v1_dependency_file_info import V1DependencyFileInfo
439
444
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment import V1Deployment
440
445
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_api import V1DeploymentAPI
446
+ from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_alerting_event import V1DeploymentAlertingEvent
447
+ from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_alerting_policy import V1DeploymentAlertingPolicy
448
+ from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_alerting_policy_frequency import V1DeploymentAlertingPolicyFrequency
449
+ from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_alerting_policy_operation import V1DeploymentAlertingPolicyOperation
450
+ from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_alerting_policy_severity import V1DeploymentAlertingPolicySeverity
451
+ from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_alerting_policy_type import V1DeploymentAlertingPolicyType
441
452
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_details import V1DeploymentDetails
442
453
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_event import V1DeploymentEvent
443
454
  from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_event_type import V1DeploymentEventType
@@ -507,12 +518,14 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_get_agent_job_env_response
507
518
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_agent_job_logs_metadata_response import V1GetAgentJobLogsMetadataResponse
508
519
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_artifacts_page_response import V1GetArtifactsPageResponse
509
520
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_cold_start_metrics_stats_response import V1GetCloudSpaceColdStartMetricsStatsResponse
521
+ from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_instance_open_ports_response import V1GetCloudSpaceInstanceOpenPortsResponse
510
522
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_instance_status_response import V1GetCloudSpaceInstanceStatusResponse
511
523
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_instance_system_metrics_aggregate_response import V1GetCloudSpaceInstanceSystemMetricsAggregateResponse
512
524
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_cloud_space_size_response import V1GetCloudSpaceSizeResponse
513
525
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_cluster_accelerator_demand_response import V1GetClusterAcceleratorDemandResponse
514
526
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_cluster_credentials_response import V1GetClusterCredentialsResponse
515
527
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_deployment_routing_telemetry_aggregated_response import V1GetDeploymentRoutingTelemetryAggregatedResponse
528
+ from lightning_sdk.lightning_cloud.openapi.models.v1_get_deployment_routing_telemetry_content_response import V1GetDeploymentRoutingTelemetryContentResponse
516
529
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_deployment_routing_telemetry_response import V1GetDeploymentRoutingTelemetryResponse
517
530
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_folder_index_response import V1GetFolderIndexResponse
518
531
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_job_stats_response import V1GetJobStatsResponse
@@ -529,6 +542,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_get_model_file_upload_urls_
529
542
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_model_file_url_response import V1GetModelFileUrlResponse
530
543
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_model_files_response import V1GetModelFilesResponse
531
544
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_model_files_url_response import V1GetModelFilesUrlResponse
545
+ from lightning_sdk.lightning_cloud.openapi.models.v1_get_organization_storage_metadata_response import V1GetOrganizationStorageMetadataResponse
532
546
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_project_artifact_response import V1GetProjectArtifactResponse
533
547
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_project_balance_response import V1GetProjectBalanceResponse
534
548
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_project_compute_usage_response import V1GetProjectComputeUsageResponse
@@ -617,6 +631,8 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_data_connection_artifa
617
631
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_data_connections_response import V1ListDataConnectionsResponse
618
632
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_datasets_response import V1ListDatasetsResponse
619
633
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_default_cluster_accelerators_response import V1ListDefaultClusterAcceleratorsResponse
634
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_deployment_alerting_events_response import V1ListDeploymentAlertingEventsResponse
635
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_deployment_alerting_policies_response import V1ListDeploymentAlertingPoliciesResponse
620
636
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_deployment_events_response import V1ListDeploymentEventsResponse
621
637
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_deployment_releases_response import V1ListDeploymentReleasesResponse
622
638
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_deployment_tags_response import V1ListDeploymentTagsResponse
@@ -819,6 +835,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_restart_timing import V1Res
819
835
  from lightning_sdk.lightning_cloud.openapi.models.v1_restore_deployment_release_response import V1RestoreDeploymentReleaseResponse
820
836
  from lightning_sdk.lightning_cloud.openapi.models.v1_role import V1Role
821
837
  from lightning_sdk.lightning_cloud.openapi.models.v1_rolling_update_strategy import V1RollingUpdateStrategy
838
+ from lightning_sdk.lightning_cloud.openapi.models.v1_routing_telemetry import V1RoutingTelemetry
822
839
  from lightning_sdk.lightning_cloud.openapi.models.v1_rule import V1Rule
823
840
  from lightning_sdk.lightning_cloud.openapi.models.v1_rule_action import V1RuleAction
824
841
  from lightning_sdk.lightning_cloud.openapi.models.v1_rule_condition import V1RuleCondition
@@ -849,6 +866,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_setup_data_connection_respo
849
866
  from lightning_sdk.lightning_cloud.openapi.models.v1_shared_filesystem import V1SharedFilesystem
850
867
  from lightning_sdk.lightning_cloud.openapi.models.v1_should_start_syncing_response import V1ShouldStartSyncingResponse
851
868
  from lightning_sdk.lightning_cloud.openapi.models.v1_signed_url import V1SignedUrl
869
+ from lightning_sdk.lightning_cloud.openapi.models.v1_sleep_server_response import V1SleepServerResponse
852
870
  from lightning_sdk.lightning_cloud.openapi.models.v1_slurm_cluster_user import V1SlurmClusterUser
853
871
  from lightning_sdk.lightning_cloud.openapi.models.v1_slurm_node import V1SlurmNode
854
872
  from lightning_sdk.lightning_cloud.openapi.models.v1_slurm_v1 import V1SlurmV1
@@ -1691,6 +1691,127 @@ class AssistantsServiceApi(object):
1691
1691
  _request_timeout=params.get('_request_timeout'),
1692
1692
  collection_formats=collection_formats)
1693
1693
 
1694
+ def assistants_service_update_assistant_managed_endpoint_model(self, body: 'ModelsIdBody', project_id: 'str', managed_endpoint_id: 'str', id: 'str', **kwargs) -> 'V1ManagedModel': # noqa: E501
1695
+ """assistants_service_update_assistant_managed_endpoint_model # noqa: E501
1696
+
1697
+ This method makes a synchronous HTTP request by default. To make an
1698
+ asynchronous HTTP request, please pass async_req=True
1699
+ >>> thread = api.assistants_service_update_assistant_managed_endpoint_model(body, project_id, managed_endpoint_id, id, async_req=True)
1700
+ >>> result = thread.get()
1701
+
1702
+ :param async_req bool
1703
+ :param ModelsIdBody body: (required)
1704
+ :param str project_id: (required)
1705
+ :param str managed_endpoint_id: (required)
1706
+ :param str id: (required)
1707
+ :return: V1ManagedModel
1708
+ If the method is called asynchronously,
1709
+ returns the request thread.
1710
+ """
1711
+ kwargs['_return_http_data_only'] = True
1712
+ if kwargs.get('async_req'):
1713
+ return self.assistants_service_update_assistant_managed_endpoint_model_with_http_info(body, project_id, managed_endpoint_id, id, **kwargs) # noqa: E501
1714
+ else:
1715
+ (data) = self.assistants_service_update_assistant_managed_endpoint_model_with_http_info(body, project_id, managed_endpoint_id, id, **kwargs) # noqa: E501
1716
+ return data
1717
+
1718
+ def assistants_service_update_assistant_managed_endpoint_model_with_http_info(self, body: 'ModelsIdBody', project_id: 'str', managed_endpoint_id: 'str', id: 'str', **kwargs) -> 'V1ManagedModel': # noqa: E501
1719
+ """assistants_service_update_assistant_managed_endpoint_model # noqa: E501
1720
+
1721
+ This method makes a synchronous HTTP request by default. To make an
1722
+ asynchronous HTTP request, please pass async_req=True
1723
+ >>> thread = api.assistants_service_update_assistant_managed_endpoint_model_with_http_info(body, project_id, managed_endpoint_id, id, async_req=True)
1724
+ >>> result = thread.get()
1725
+
1726
+ :param async_req bool
1727
+ :param ModelsIdBody body: (required)
1728
+ :param str project_id: (required)
1729
+ :param str managed_endpoint_id: (required)
1730
+ :param str id: (required)
1731
+ :return: V1ManagedModel
1732
+ If the method is called asynchronously,
1733
+ returns the request thread.
1734
+ """
1735
+
1736
+ all_params = ['body', 'project_id', 'managed_endpoint_id', 'id'] # noqa: E501
1737
+ all_params.append('async_req')
1738
+ all_params.append('_return_http_data_only')
1739
+ all_params.append('_preload_content')
1740
+ all_params.append('_request_timeout')
1741
+
1742
+ params = locals()
1743
+ for key, val in six.iteritems(params['kwargs']):
1744
+ if key not in all_params:
1745
+ raise TypeError(
1746
+ "Got an unexpected keyword argument '%s'"
1747
+ " to method assistants_service_update_assistant_managed_endpoint_model" % key
1748
+ )
1749
+ params[key] = val
1750
+ del params['kwargs']
1751
+ # verify the required parameter 'body' is set
1752
+ if ('body' not in params or
1753
+ params['body'] is None):
1754
+ raise ValueError("Missing the required parameter `body` when calling `assistants_service_update_assistant_managed_endpoint_model`") # noqa: E501
1755
+ # verify the required parameter 'project_id' is set
1756
+ if ('project_id' not in params or
1757
+ params['project_id'] is None):
1758
+ raise ValueError("Missing the required parameter `project_id` when calling `assistants_service_update_assistant_managed_endpoint_model`") # noqa: E501
1759
+ # verify the required parameter 'managed_endpoint_id' is set
1760
+ if ('managed_endpoint_id' not in params or
1761
+ params['managed_endpoint_id'] is None):
1762
+ raise ValueError("Missing the required parameter `managed_endpoint_id` when calling `assistants_service_update_assistant_managed_endpoint_model`") # noqa: E501
1763
+ # verify the required parameter 'id' is set
1764
+ if ('id' not in params or
1765
+ params['id'] is None):
1766
+ raise ValueError("Missing the required parameter `id` when calling `assistants_service_update_assistant_managed_endpoint_model`") # noqa: E501
1767
+
1768
+ collection_formats = {}
1769
+
1770
+ path_params = {}
1771
+ if 'project_id' in params:
1772
+ path_params['projectId'] = params['project_id'] # noqa: E501
1773
+ if 'managed_endpoint_id' in params:
1774
+ path_params['managedEndpointId'] = params['managed_endpoint_id'] # noqa: E501
1775
+ if 'id' in params:
1776
+ path_params['id'] = params['id'] # noqa: E501
1777
+
1778
+ query_params = []
1779
+
1780
+ header_params = {}
1781
+
1782
+ form_params = []
1783
+ local_var_files = {}
1784
+
1785
+ body_params = None
1786
+ if 'body' in params:
1787
+ body_params = params['body']
1788
+ # HTTP header `Accept`
1789
+ header_params['Accept'] = self.api_client.select_header_accept(
1790
+ ['application/json']) # noqa: E501
1791
+
1792
+ # HTTP header `Content-Type`
1793
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
1794
+ ['application/json']) # noqa: E501
1795
+
1796
+ # Authentication setting
1797
+ auth_settings = [] # noqa: E501
1798
+
1799
+ return self.api_client.call_api(
1800
+ '/v1/projects/{projectId}/agent-managed-endpoints/{managedEndpointId}/models/{id}', 'PUT',
1801
+ path_params,
1802
+ query_params,
1803
+ header_params,
1804
+ body=body_params,
1805
+ post_params=form_params,
1806
+ files=local_var_files,
1807
+ response_type='V1ManagedModel', # noqa: E501
1808
+ auth_settings=auth_settings,
1809
+ async_req=params.get('async_req'),
1810
+ _return_http_data_only=params.get('_return_http_data_only'),
1811
+ _preload_content=params.get('_preload_content', True),
1812
+ _request_timeout=params.get('_request_timeout'),
1813
+ collection_formats=collection_formats)
1814
+
1694
1815
  def assistants_service_update_conversation(self, body: 'ConversationsIdBody', assistant_id: 'str', id: 'str', **kwargs) -> 'V1Conversation': # noqa: E501
1695
1816
  """assistants_service_update_conversation # noqa: E501
1696
1817
 
@@ -3481,6 +3481,111 @@ class CloudSpaceServiceApi(object):
3481
3481
  _request_timeout=params.get('_request_timeout'),
3482
3482
  collection_formats=collection_formats)
3483
3483
 
3484
+ def cloud_space_service_get_cloud_space_instance_open_ports(self, project_id: 'str', cloudspace_id: 'str', **kwargs) -> 'V1GetCloudSpaceInstanceOpenPortsResponse': # noqa: E501
3485
+ """cloud_space_service_get_cloud_space_instance_open_ports # noqa: E501
3486
+
3487
+ This method makes a synchronous HTTP request by default. To make an
3488
+ asynchronous HTTP request, please pass async_req=True
3489
+ >>> thread = api.cloud_space_service_get_cloud_space_instance_open_ports(project_id, cloudspace_id, async_req=True)
3490
+ >>> result = thread.get()
3491
+
3492
+ :param async_req bool
3493
+ :param str project_id: (required)
3494
+ :param str cloudspace_id: (required)
3495
+ :param str cloudspace_instance_id:
3496
+ :return: V1GetCloudSpaceInstanceOpenPortsResponse
3497
+ If the method is called asynchronously,
3498
+ returns the request thread.
3499
+ """
3500
+ kwargs['_return_http_data_only'] = True
3501
+ if kwargs.get('async_req'):
3502
+ return self.cloud_space_service_get_cloud_space_instance_open_ports_with_http_info(project_id, cloudspace_id, **kwargs) # noqa: E501
3503
+ else:
3504
+ (data) = self.cloud_space_service_get_cloud_space_instance_open_ports_with_http_info(project_id, cloudspace_id, **kwargs) # noqa: E501
3505
+ return data
3506
+
3507
+ def cloud_space_service_get_cloud_space_instance_open_ports_with_http_info(self, project_id: 'str', cloudspace_id: 'str', **kwargs) -> 'V1GetCloudSpaceInstanceOpenPortsResponse': # noqa: E501
3508
+ """cloud_space_service_get_cloud_space_instance_open_ports # noqa: E501
3509
+
3510
+ This method makes a synchronous HTTP request by default. To make an
3511
+ asynchronous HTTP request, please pass async_req=True
3512
+ >>> thread = api.cloud_space_service_get_cloud_space_instance_open_ports_with_http_info(project_id, cloudspace_id, async_req=True)
3513
+ >>> result = thread.get()
3514
+
3515
+ :param async_req bool
3516
+ :param str project_id: (required)
3517
+ :param str cloudspace_id: (required)
3518
+ :param str cloudspace_instance_id:
3519
+ :return: V1GetCloudSpaceInstanceOpenPortsResponse
3520
+ If the method is called asynchronously,
3521
+ returns the request thread.
3522
+ """
3523
+
3524
+ all_params = ['project_id', 'cloudspace_id', 'cloudspace_instance_id'] # noqa: E501
3525
+ all_params.append('async_req')
3526
+ all_params.append('_return_http_data_only')
3527
+ all_params.append('_preload_content')
3528
+ all_params.append('_request_timeout')
3529
+
3530
+ params = locals()
3531
+ for key, val in six.iteritems(params['kwargs']):
3532
+ if key not in all_params:
3533
+ raise TypeError(
3534
+ "Got an unexpected keyword argument '%s'"
3535
+ " to method cloud_space_service_get_cloud_space_instance_open_ports" % key
3536
+ )
3537
+ params[key] = val
3538
+ del params['kwargs']
3539
+ # verify the required parameter 'project_id' is set
3540
+ if ('project_id' not in params or
3541
+ params['project_id'] is None):
3542
+ raise ValueError("Missing the required parameter `project_id` when calling `cloud_space_service_get_cloud_space_instance_open_ports`") # noqa: E501
3543
+ # verify the required parameter 'cloudspace_id' is set
3544
+ if ('cloudspace_id' not in params or
3545
+ params['cloudspace_id'] is None):
3546
+ raise ValueError("Missing the required parameter `cloudspace_id` when calling `cloud_space_service_get_cloud_space_instance_open_ports`") # noqa: E501
3547
+
3548
+ collection_formats = {}
3549
+
3550
+ path_params = {}
3551
+ if 'project_id' in params:
3552
+ path_params['projectId'] = params['project_id'] # noqa: E501
3553
+ if 'cloudspace_id' in params:
3554
+ path_params['cloudspaceId'] = params['cloudspace_id'] # noqa: E501
3555
+
3556
+ query_params = []
3557
+ if 'cloudspace_instance_id' in params:
3558
+ query_params.append(('cloudspaceInstanceId', params['cloudspace_instance_id'])) # noqa: E501
3559
+
3560
+ header_params = {}
3561
+
3562
+ form_params = []
3563
+ local_var_files = {}
3564
+
3565
+ body_params = None
3566
+ # HTTP header `Accept`
3567
+ header_params['Accept'] = self.api_client.select_header_accept(
3568
+ ['application/json']) # noqa: E501
3569
+
3570
+ # Authentication setting
3571
+ auth_settings = [] # noqa: E501
3572
+
3573
+ return self.api_client.call_api(
3574
+ '/v1/projects/{projectId}/cloudspaces/{cloudspaceId}/open-ports', 'GET',
3575
+ path_params,
3576
+ query_params,
3577
+ header_params,
3578
+ body=body_params,
3579
+ post_params=form_params,
3580
+ files=local_var_files,
3581
+ response_type='V1GetCloudSpaceInstanceOpenPortsResponse', # noqa: E501
3582
+ auth_settings=auth_settings,
3583
+ async_req=params.get('async_req'),
3584
+ _return_http_data_only=params.get('_return_http_data_only'),
3585
+ _preload_content=params.get('_preload_content', True),
3586
+ _request_timeout=params.get('_request_timeout'),
3587
+ collection_formats=collection_formats)
3588
+
3484
3589
  def cloud_space_service_get_cloud_space_instance_status(self, project_id: 'str', id: 'str', **kwargs) -> 'V1GetCloudSpaceInstanceStatusResponse': # noqa: E501
3485
3590
  """cloud_space_service_get_cloud_space_instance_status # noqa: E501
3486
3591
 
@@ -3420,6 +3420,111 @@ class ClusterServiceApi(object):
3420
3420
  _request_timeout=params.get('_request_timeout'),
3421
3421
  collection_formats=collection_formats)
3422
3422
 
3423
+ def cluster_service_sleep_server(self, body: 'object', server_id: 'str', **kwargs) -> 'V1SleepServerResponse': # noqa: E501
3424
+ """cluster_service_sleep_server # noqa: E501
3425
+
3426
+ This method makes a synchronous HTTP request by default. To make an
3427
+ asynchronous HTTP request, please pass async_req=True
3428
+ >>> thread = api.cluster_service_sleep_server(body, server_id, async_req=True)
3429
+ >>> result = thread.get()
3430
+
3431
+ :param async_req bool
3432
+ :param object body: (required)
3433
+ :param str server_id: (required)
3434
+ :return: V1SleepServerResponse
3435
+ If the method is called asynchronously,
3436
+ returns the request thread.
3437
+ """
3438
+ kwargs['_return_http_data_only'] = True
3439
+ if kwargs.get('async_req'):
3440
+ return self.cluster_service_sleep_server_with_http_info(body, server_id, **kwargs) # noqa: E501
3441
+ else:
3442
+ (data) = self.cluster_service_sleep_server_with_http_info(body, server_id, **kwargs) # noqa: E501
3443
+ return data
3444
+
3445
+ def cluster_service_sleep_server_with_http_info(self, body: 'object', server_id: 'str', **kwargs) -> 'V1SleepServerResponse': # noqa: E501
3446
+ """cluster_service_sleep_server # noqa: E501
3447
+
3448
+ This method makes a synchronous HTTP request by default. To make an
3449
+ asynchronous HTTP request, please pass async_req=True
3450
+ >>> thread = api.cluster_service_sleep_server_with_http_info(body, server_id, async_req=True)
3451
+ >>> result = thread.get()
3452
+
3453
+ :param async_req bool
3454
+ :param object body: (required)
3455
+ :param str server_id: (required)
3456
+ :return: V1SleepServerResponse
3457
+ If the method is called asynchronously,
3458
+ returns the request thread.
3459
+ """
3460
+
3461
+ all_params = ['body', 'server_id'] # noqa: E501
3462
+ all_params.append('async_req')
3463
+ all_params.append('_return_http_data_only')
3464
+ all_params.append('_preload_content')
3465
+ all_params.append('_request_timeout')
3466
+
3467
+ params = locals()
3468
+ for key, val in six.iteritems(params['kwargs']):
3469
+ if key not in all_params:
3470
+ raise TypeError(
3471
+ "Got an unexpected keyword argument '%s'"
3472
+ " to method cluster_service_sleep_server" % key
3473
+ )
3474
+ params[key] = val
3475
+ del params['kwargs']
3476
+ # verify the required parameter 'body' is set
3477
+ if ('body' not in params or
3478
+ params['body'] is None):
3479
+ raise ValueError("Missing the required parameter `body` when calling `cluster_service_sleep_server`") # noqa: E501
3480
+ # verify the required parameter 'server_id' is set
3481
+ if ('server_id' not in params or
3482
+ params['server_id'] is None):
3483
+ raise ValueError("Missing the required parameter `server_id` when calling `cluster_service_sleep_server`") # noqa: E501
3484
+
3485
+ collection_formats = {}
3486
+
3487
+ path_params = {}
3488
+ if 'server_id' in params:
3489
+ path_params['serverId'] = params['server_id'] # noqa: E501
3490
+
3491
+ query_params = []
3492
+
3493
+ header_params = {}
3494
+
3495
+ form_params = []
3496
+ local_var_files = {}
3497
+
3498
+ body_params = None
3499
+ if 'body' in params:
3500
+ body_params = params['body']
3501
+ # HTTP header `Accept`
3502
+ header_params['Accept'] = self.api_client.select_header_accept(
3503
+ ['application/json']) # noqa: E501
3504
+
3505
+ # HTTP header `Content-Type`
3506
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
3507
+ ['application/json']) # noqa: E501
3508
+
3509
+ # Authentication setting
3510
+ auth_settings = [] # noqa: E501
3511
+
3512
+ return self.api_client.call_api(
3513
+ '/v1/core/servers/{serverId}/sleep', 'POST',
3514
+ path_params,
3515
+ query_params,
3516
+ header_params,
3517
+ body=body_params,
3518
+ post_params=form_params,
3519
+ files=local_var_files,
3520
+ response_type='V1SleepServerResponse', # noqa: E501
3521
+ auth_settings=auth_settings,
3522
+ async_req=params.get('async_req'),
3523
+ _return_http_data_only=params.get('_return_http_data_only'),
3524
+ _preload_content=params.get('_preload_content', True),
3525
+ _request_timeout=params.get('_request_timeout'),
3526
+ collection_formats=collection_formats)
3527
+
3423
3528
  def cluster_service_update_cluster(self, body: 'ClustersIdBody', id: 'str', **kwargs) -> 'Externalv1Cluster': # noqa: E501
3424
3529
  """cluster_service_update_cluster # noqa: E501
3425
3530