lightning-sdk 2025.9.23__py3-none-any.whl → 2025.9.30__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 +3 -2
  2. lightning_sdk/cli/entrypoint.py +3 -1
  3. lightning_sdk/cli/groups.py +8 -1
  4. lightning_sdk/cli/legacy/download.py +3 -4
  5. lightning_sdk/cli/legacy/entrypoint.py +1 -1
  6. lightning_sdk/cli/legacy/upload.py +2 -3
  7. lightning_sdk/cli/studio/__init__.py +2 -0
  8. lightning_sdk/cli/studio/connect.py +94 -0
  9. lightning_sdk/cli/studio/create.py +19 -5
  10. lightning_sdk/cli/studio/delete.py +9 -5
  11. lightning_sdk/cli/studio/list.py +5 -1
  12. lightning_sdk/cli/studio/ssh.py +12 -54
  13. lightning_sdk/cli/studio/start.py +26 -3
  14. lightning_sdk/cli/studio/stop.py +7 -3
  15. lightning_sdk/cli/studio/switch.py +21 -5
  16. lightning_sdk/cli/utils/ssh_connection.py +51 -0
  17. lightning_sdk/cli/utils/studio_selection.py +22 -15
  18. lightning_sdk/cli/vm/__init__.py +20 -0
  19. lightning_sdk/cli/vm/create.py +33 -0
  20. lightning_sdk/cli/vm/delete.py +25 -0
  21. lightning_sdk/cli/vm/list.py +30 -0
  22. lightning_sdk/cli/vm/ssh.py +31 -0
  23. lightning_sdk/cli/vm/start.py +60 -0
  24. lightning_sdk/cli/vm/stop.py +25 -0
  25. lightning_sdk/cli/vm/switch.py +38 -0
  26. lightning_sdk/lightning_cloud/openapi/__init__.py +20 -1
  27. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +2 -95
  28. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +24 -8
  29. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +420 -0
  30. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +121 -0
  31. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +655 -0
  32. lightning_sdk/lightning_cloud/openapi/models/__init__.py +20 -1
  33. lightning_sdk/lightning_cloud/openapi/models/create_machine_request_represents_the_request_to_create_a_machine.py +435 -0
  34. lightning_sdk/lightning_cloud/openapi/models/job_id_reportroutingtelemetry_body.py +123 -0
  35. lightning_sdk/lightning_cloud/openapi/models/project_id_storagetransfers_body.py +149 -0
  36. lightning_sdk/lightning_cloud/openapi/models/user_id_affiliatelinks_body.py +107 -3
  37. lightning_sdk/lightning_cloud/openapi/models/v1_abort_storage_transfer_response.py +97 -0
  38. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_session_daily_aggregated.py +27 -1
  39. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +2 -0
  40. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
  41. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +53 -1
  42. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +1 -0
  43. lightning_sdk/lightning_cloud/openapi/models/v1_create_machine_response.py +123 -0
  44. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +27 -1
  45. lightning_sdk/lightning_cloud/openapi/models/v1_delete_machine_response.py +97 -0
  46. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -1
  47. lightning_sdk/lightning_cloud/openapi/models/v1_get_machine_response.py +123 -0
  48. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +27 -1
  49. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +27 -1
  50. lightning_sdk/lightning_cloud/openapi/models/v1_lightning_elastic_cluster_v1.py +97 -0
  51. lightning_sdk/lightning_cloud/openapi/models/{v1_get_model_total_usage_metrics_response.py → v1_list_machines_response.py} +37 -37
  52. lightning_sdk/lightning_cloud/openapi/models/v1_list_storage_transfers_response.py +123 -0
  53. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +539 -0
  54. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +123 -0
  55. lightning_sdk/lightning_cloud/openapi/models/v1_pause_storage_transfer_response.py +97 -0
  56. lightning_sdk/lightning_cloud/openapi/models/v1_purchase_annual_upsell_request.py +123 -0
  57. lightning_sdk/lightning_cloud/openapi/models/v1_report_deployment_routing_telemetry_response.py +97 -0
  58. lightning_sdk/lightning_cloud/openapi/models/v1_resume_storage_transfer_response.py +97 -0
  59. lightning_sdk/lightning_cloud/openapi/models/v1_routing_telemetry.py +79 -1
  60. lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +1 -0
  61. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py +149 -0
  62. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier_type.py +105 -0
  63. lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer.py +435 -0
  64. lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer_status.py +108 -0
  65. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +27 -1
  66. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +105 -79
  67. lightning_sdk/studio.py +55 -11
  68. lightning_sdk/teamspace.py +11 -2
  69. {lightning_sdk-2025.9.23.dist-info → lightning_sdk-2025.9.30.dist-info}/METADATA +1 -1
  70. {lightning_sdk-2025.9.23.dist-info → lightning_sdk-2025.9.30.dist-info}/RECORD +74 -45
  71. {lightning_sdk-2025.9.23.dist-info → lightning_sdk-2025.9.30.dist-info}/LICENSE +0 -0
  72. {lightning_sdk-2025.9.23.dist-info → lightning_sdk-2025.9.30.dist-info}/WHEEL +0 -0
  73. {lightning_sdk-2025.9.23.dist-info → lightning_sdk-2025.9.30.dist-info}/entry_points.txt +0 -0
  74. {lightning_sdk-2025.9.23.dist-info → lightning_sdk-2025.9.30.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,12 @@
1
1
  import os
2
2
  from contextlib import suppress
3
- from typing import Dict, List, Optional
3
+ from typing import Dict, List, Optional, Union
4
4
 
5
5
  import click
6
6
  from simple_term_menu import TerminalMenu
7
7
 
8
8
  from lightning_sdk.cli.legacy.exceptions import StudioCliError
9
- from lightning_sdk.studio import Studio
9
+ from lightning_sdk.studio import VM, Studio
10
10
  from lightning_sdk.teamspace import Teamspace
11
11
  from lightning_sdk.utils.resolve import _get_authed_user
12
12
 
@@ -17,54 +17,58 @@ class StudiosMenu:
17
17
  It can be used to select a studio from a list of possible studios, or to resolve a studio from a name.
18
18
  """
19
19
 
20
- def __init__(self, teamspace: Teamspace) -> None:
20
+ def __init__(self, teamspace: Teamspace, vm: bool = False) -> None:
21
21
  """Initialize the StudiosMenu with a teamspace.
22
22
 
23
23
  Args:
24
24
  teamspace: The teamspace to list studios from
25
25
  """
26
26
  self.teamspace = teamspace
27
+ self.vm = vm
27
28
 
28
- def _get_studio_from_interactive_menu(self, possible_studios: Dict[str, Studio]) -> Studio:
29
+ def _get_studio_from_interactive_menu(self, possible_studios: Dict[str, Union[Studio, VM]]) -> Union[Studio, VM]:
29
30
  studio_names = sorted(possible_studios.keys())
30
- terminal_menu = self._prepare_terminal_menu_studios(studio_names)
31
+ terminal_menu = self._prepare_terminal_menu_studios(studio_names, vm=self.vm)
31
32
  terminal_menu.show()
32
33
 
33
34
  selected_name = studio_names[terminal_menu.chosen_menu_index]
34
35
  return possible_studios[selected_name]
35
36
 
36
- def _get_studio_from_name(self, studio: str, possible_studios: Dict[str, Studio]) -> Studio:
37
+ def _get_studio_from_name(self, studio: str, possible_studios: Dict[str, Union[Studio, VM]]) -> Union[Studio, VM]:
37
38
  if studio in possible_studios:
38
39
  return possible_studios[studio]
39
40
 
40
- click.echo(f"Could not find Studio {studio}, please select it from the list:")
41
+ click.echo(f"Could not find {'VM' if self.vm else 'Studio'} {studio}, please select it from the list:")
41
42
  return self._get_studio_from_interactive_menu(possible_studios)
42
43
 
43
44
  @staticmethod
44
- def _prepare_terminal_menu_studios(studio_names: List[str], title: Optional[str] = None) -> TerminalMenu:
45
+ def _prepare_terminal_menu_studios(
46
+ studio_names: List[str], title: Optional[str] = None, vm: bool = False
47
+ ) -> TerminalMenu:
45
48
  if title is None:
46
- title = "Please select a Studio out of the following:"
49
+ title = f"Please select a {'VM' if vm else 'Studio'} out of the following:"
47
50
 
48
51
  return TerminalMenu(studio_names, title=title, clear_menu_on_exit=True)
49
52
 
50
- def _get_possible_studios(self) -> Dict[str, Studio]:
53
+ def _get_possible_studios(self) -> Dict[str, Union[Studio, VM]]:
51
54
  """Get all available studios in the teamspace."""
52
55
  studios = {}
53
56
 
54
57
  user = _get_authed_user()
58
+ studios = self.teamspace.vms if self.vm else self.teamspace.studios
55
59
  for studio in self.teamspace.studios:
56
60
  if studio._studio.user_id == user.id:
57
61
  studios[studio.name] = studio
58
62
  return studios
59
63
 
60
- def __call__(self, studio: Optional[str] = None) -> Studio:
64
+ def __call__(self, studio: Optional[str] = None) -> Union[Studio, VM]:
61
65
  """Select a studio from the teamspace.
62
66
 
63
67
  Args:
64
68
  studio: Optional studio name to select. If not provided, will show interactive menu.
65
69
 
66
70
  Returns:
67
- Selected Studio object
71
+ Selected Studio/VM object
68
72
 
69
73
  Raises:
70
74
  StudioCliError: If studio selection fails
@@ -73,15 +77,18 @@ class StudiosMenu:
73
77
  # try to resolve the studio from the name, environment or config
74
78
  resolved_studio = None
75
79
 
80
+ selected_cls = VM if self.vm else Studio
81
+
76
82
  with suppress(Exception):
77
- resolved_studio = Studio(name=studio, teamspace=self.teamspace, create_ok=False)
83
+ resolved_studio = selected_cls(name=studio, teamspace=self.teamspace, create_ok=False)
78
84
 
79
85
  if resolved_studio is not None:
80
86
  return resolved_studio
81
87
 
82
88
  if os.environ.get("LIGHTNING_NON_INTERACTIVE", "0") == "1" and studio is None:
83
89
  raise ValueError(
84
- "Studio selection is not supported in non-interactive mode. Please provide a studio name."
90
+ f"{'VM' if self.vm else 'Studio'} selection is not supported in non-interactive mode. "
91
+ "Please provide a studio name."
85
92
  )
86
93
 
87
94
  click.echo(f"Listing studios in teamspace {self.teamspace.owner.name}/{self.teamspace.name}...")
@@ -101,6 +108,6 @@ class StudiosMenu:
101
108
 
102
109
  except Exception as e:
103
110
  raise StudioCliError(
104
- "Could not resolve a Studio. "
111
+ f"Could not resolve a {'VM' if self.vm else 'Studio'}. "
105
112
  "Please pass it as an argument or contact Lightning AI directly to resolve this issue."
106
113
  ) from e
@@ -0,0 +1,20 @@
1
+ import click
2
+
3
+
4
+ def register_commands(group: click.Group) -> None:
5
+ """Register studio commands with the given group."""
6
+ from lightning_sdk.cli.vm.create import create_vm
7
+ from lightning_sdk.cli.vm.delete import delete_vm
8
+ from lightning_sdk.cli.vm.list import list_vms
9
+ from lightning_sdk.cli.vm.ssh import ssh_vm
10
+ from lightning_sdk.cli.vm.start import start_vm
11
+ from lightning_sdk.cli.vm.stop import stop_vm
12
+ from lightning_sdk.cli.vm.switch import switch_vm
13
+
14
+ group.add_command(create_vm)
15
+ group.add_command(delete_vm)
16
+ group.add_command(list_vms)
17
+ group.add_command(ssh_vm)
18
+ group.add_command(start_vm)
19
+ group.add_command(stop_vm)
20
+ group.add_command(switch_vm)
@@ -0,0 +1,33 @@
1
+ from typing import Optional
2
+
3
+ import click
4
+
5
+ from lightning_sdk.cli.studio.create import create_impl
6
+ from lightning_sdk.machine import CloudProvider
7
+
8
+
9
+ @click.command("create")
10
+ @click.option("--name", help="The name of the VM to create. If not provided, a random name will be generated.")
11
+ @click.option("--teamspace", help="Override default teamspace (format: owner/teamspace)")
12
+ @click.option(
13
+ "--cloud-provider",
14
+ help="The cloud provider to start the VM on. Defaults to teamspace default.",
15
+ type=click.Choice(m.name for m in list(CloudProvider)),
16
+ )
17
+ @click.option(
18
+ "--cloud-account",
19
+ help="The cloud account to create the VM on. Defaults to teamspace default.",
20
+ type=click.STRING,
21
+ )
22
+ def create_vm(
23
+ name: Optional[str] = None,
24
+ teamspace: Optional[str] = None,
25
+ cloud_provider: Optional[str] = None,
26
+ cloud_account: Optional[str] = None,
27
+ ) -> None:
28
+ """Create a new VM.
29
+
30
+ Example:
31
+ lightning vm create
32
+ """
33
+ create_impl(name=name, teamspace=teamspace, cloud_provider=cloud_provider, cloud_account=cloud_account, vm=True)
@@ -0,0 +1,25 @@
1
+ from typing import Optional
2
+
3
+ import click
4
+
5
+ from lightning_sdk.cli.studio.delete import delete_impl
6
+
7
+
8
+ @click.command("delete")
9
+ @click.option(
10
+ "--name",
11
+ help=(
12
+ "The name of the VM to delete. "
13
+ "If not provided, will try to infer from environment, "
14
+ "use the default value from the config or prompt for interactive selection."
15
+ ),
16
+ )
17
+ @click.option("--teamspace", help="Override default teamspace (format: owner/teamspace)")
18
+ def delete_vm(name: Optional[str] = None, teamspace: Optional[str] = None) -> None:
19
+ """Delete a VM.
20
+
21
+ Example:
22
+ lightning vm delete --name my-vm
23
+
24
+ """
25
+ return delete_impl(name=name, teamspace=teamspace, vm=True)
@@ -0,0 +1,30 @@
1
+ from typing import Optional
2
+
3
+ import click
4
+
5
+ from lightning_sdk.cli.studio.list import list_impl
6
+
7
+
8
+ @click.command("list")
9
+ @click.option("--teamspace", help="Override default teamspace (format: owner/teamspace)")
10
+ @click.option(
11
+ "--all",
12
+ is_flag=True,
13
+ flag_value=True,
14
+ default=False,
15
+ help="List all VMs, not just the ones belonging to the authed user",
16
+ )
17
+ @click.option(
18
+ "--sort-by",
19
+ default=None,
20
+ type=click.Choice(["name", "teamspace", "status", "machine", "cloud-account"], case_sensitive=False),
21
+ help="the attribute to sort the VMs by.",
22
+ )
23
+ def list_vms(teamspace: Optional[str] = None, all: bool = False, sort_by: Optional[str] = None) -> None: # noqa: A002
24
+ """List VMs in a teamspace.
25
+
26
+ Example:
27
+ lightning vm list --teamspace owner/teamspace
28
+
29
+ """
30
+ return list_impl(teamspace=teamspace, all=all, sort_by=sort_by, vm=True)
@@ -0,0 +1,31 @@
1
+ from typing import List, Optional
2
+
3
+ import click
4
+
5
+ from lightning_sdk.cli.studio.ssh import ssh_impl
6
+
7
+
8
+ @click.command("ssh")
9
+ @click.option(
10
+ "--name",
11
+ help=(
12
+ "The name of the VM to ssh into. "
13
+ "If not provided, will try to infer from environment, "
14
+ "use the default value from the config or prompt for interactive selection."
15
+ ),
16
+ )
17
+ @click.option("--teamspace", help="Override default teamspace (format: owner/teamspace)", type=click.STRING)
18
+ @click.option(
19
+ "--option",
20
+ "-o",
21
+ help="Additional options to pass to the SSH command. Can be specified multiple times.",
22
+ multiple=True,
23
+ type=click.STRING,
24
+ )
25
+ def ssh_vm(name: Optional[str] = None, teamspace: Optional[str] = None, option: Optional[List[str]] = None) -> None:
26
+ """SSH into a VM.
27
+
28
+ Example:
29
+ lightning vm ssh --name my-vm
30
+ """
31
+ return ssh_impl(name=name, teamspace=teamspace, option=option, vm=False)
@@ -0,0 +1,60 @@
1
+ from typing import Optional
2
+
3
+ import click
4
+
5
+ from lightning_sdk.cli.studio.start import start_impl
6
+ from lightning_sdk.machine import CloudProvider, Machine
7
+
8
+
9
+ @click.command("start")
10
+ @click.option(
11
+ "--name",
12
+ help=(
13
+ "The name of the VM to start. "
14
+ "If not provided, will try to infer from environment, "
15
+ "use the default value from the config or prompt for interactive selection."
16
+ ),
17
+ )
18
+ @click.option("--teamspace", help="Override default teamspace (format: owner/teamspace)")
19
+ @click.option("--create", is_flag=True, help="Create the VM if it doesn't exist")
20
+ @click.option(
21
+ "--machine",
22
+ help="The machine type to start the VM on. Defaults to CPU-4",
23
+ type=click.Choice(m.name for m in Machine.__dict__.values() if isinstance(m, Machine) and m._include_in_cli),
24
+ )
25
+ @click.option("--interruptible", is_flag=True, help="Start the VM on an interruptible instance.")
26
+ @click.option(
27
+ "--cloud-provider",
28
+ help=("The cloud provider to start the VM on. Defaults to teamspace default. Only used if --create is specified."),
29
+ type=click.Choice(m.name for m in list(CloudProvider)),
30
+ )
31
+ @click.option(
32
+ "--cloud-account",
33
+ help="The cloud account to start the VM on. Defaults to teamspace default. Only used if --create is specified.",
34
+ type=click.STRING,
35
+ )
36
+ def start_vm(
37
+ name: Optional[str] = None,
38
+ teamspace: Optional[str] = None,
39
+ create: bool = False,
40
+ machine: str = "CPU",
41
+ interruptible: bool = False,
42
+ cloud_provider: Optional[str] = None,
43
+ cloud_account: Optional[str] = None,
44
+ ) -> None:
45
+ """Start a VM.
46
+
47
+ Example:
48
+ lightning vm start --name my-vm
49
+
50
+ """
51
+ return start_impl(
52
+ name=name,
53
+ teamspace=teamspace,
54
+ create=create,
55
+ machine=machine,
56
+ interruptible=interruptible,
57
+ cloud_provider=cloud_provider,
58
+ cloud_account=cloud_account,
59
+ vm=True,
60
+ )
@@ -0,0 +1,25 @@
1
+ from typing import Optional
2
+
3
+ import click
4
+
5
+ from lightning_sdk.cli.studio.stop import stop_impl
6
+
7
+
8
+ @click.command("stop")
9
+ @click.option(
10
+ "--name",
11
+ help=(
12
+ "The name of the VM to stop. "
13
+ "If not provided, will try to infer from environment, "
14
+ "use the default value from the config or prompt for interactive selection."
15
+ ),
16
+ )
17
+ @click.option("--teamspace", help="Override default teamspace (format: owner/teamspace)")
18
+ def stop_vm(name: Optional[str] = None, teamspace: Optional[str] = None) -> None:
19
+ """Stop a VM.
20
+
21
+ Example:
22
+ lightning vm stop --name my-vm
23
+
24
+ """
25
+ return stop_impl(name=name, teamspace=teamspace, vm=True)
@@ -0,0 +1,38 @@
1
+ from typing import Optional
2
+
3
+ import click
4
+
5
+ from lightning_sdk.cli.studio.switch import switch_impl
6
+ from lightning_sdk.machine import Machine
7
+
8
+
9
+ @click.command("switch")
10
+ @click.option(
11
+ "--name",
12
+ help=(
13
+ "The name of the VM to switch to a different machine. "
14
+ "If not provided, will try to infer from environment, "
15
+ "use the default value from the config or prompt for interactive selection."
16
+ ),
17
+ )
18
+ @click.option("--teamspace", help="Override default teamspace (format: owner/teamspace)")
19
+ @click.option(
20
+ "--machine",
21
+ help="The machine type to switch the studio to.",
22
+ type=click.Choice(m.name for m in Machine.__dict__.values() if isinstance(m, Machine)),
23
+ )
24
+ @click.option("--interruptible", is_flag=True, help="Switch the studio to an interruptible instance.")
25
+ def switch_vm(
26
+ name: Optional[str] = None,
27
+ teamspace: Optional[str] = None,
28
+ machine: Optional[str] = None,
29
+ interruptible: bool = False,
30
+ ) -> None:
31
+ """Switch a VM to a different machine type."""
32
+ return switch_impl(
33
+ name=name,
34
+ teamspace=teamspace,
35
+ machine=machine,
36
+ interruptible=interruptible,
37
+ vm=True,
38
+ )
@@ -107,6 +107,7 @@ from lightning_sdk.lightning_cloud.openapi.models.conversations_id_body1 import
107
107
  from lightning_sdk.lightning_cloud.openapi.models.create import Create
108
108
  from lightning_sdk.lightning_cloud.openapi.models.create_checkout_session_request_wallet_type import CreateCheckoutSessionRequestWalletType
109
109
  from lightning_sdk.lightning_cloud.openapi.models.create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs import CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs
110
+ from lightning_sdk.lightning_cloud.openapi.models.create_machine_request_represents_the_request_to_create_a_machine import CreateMachineRequestRepresentsTheRequestToCreateAMachine
110
111
  from lightning_sdk.lightning_cloud.openapi.models.credits_autoreplenish_body import CreditsAutoreplenishBody
111
112
  from lightning_sdk.lightning_cloud.openapi.models.credits_autoreplenish_body1 import CreditsAutoreplenishBody1
112
113
  from lightning_sdk.lightning_cloud.openapi.models.data_connection_mount_data_connection_mount_copy_status import DataConnectionMountDataConnectionMountCopyStatus
@@ -156,6 +157,7 @@ from lightning_sdk.lightning_cloud.openapi.models.id_uploads_body import IdUploa
156
157
  from lightning_sdk.lightning_cloud.openapi.models.id_visibility_body import IdVisibilityBody
157
158
  from lightning_sdk.lightning_cloud.openapi.models.id_visibility_body1 import IdVisibilityBody1
158
159
  from lightning_sdk.lightning_cloud.openapi.models.id_visibility_body2 import IdVisibilityBody2
160
+ from lightning_sdk.lightning_cloud.openapi.models.job_id_reportroutingtelemetry_body import JobIdReportroutingtelemetryBody
159
161
  from lightning_sdk.lightning_cloud.openapi.models.jobs_id_body import JobsIdBody
160
162
  from lightning_sdk.lightning_cloud.openapi.models.jobs_id_body1 import JobsIdBody1
161
163
  from lightning_sdk.lightning_cloud.openapi.models.jobs_id_body2 import JobsIdBody2
@@ -207,6 +209,7 @@ from lightning_sdk.lightning_cloud.openapi.models.project_id_schedules_body impo
207
209
  from lightning_sdk.lightning_cloud.openapi.models.project_id_secrets_body import ProjectIdSecretsBody
208
210
  from lightning_sdk.lightning_cloud.openapi.models.project_id_snowflake_body import ProjectIdSnowflakeBody
209
211
  from lightning_sdk.lightning_cloud.openapi.models.project_id_storage_body import ProjectIdStorageBody
212
+ from lightning_sdk.lightning_cloud.openapi.models.project_id_storagetransfers_body import ProjectIdStoragetransfersBody
210
213
  from lightning_sdk.lightning_cloud.openapi.models.project_tab_management_messages import ProjectTabManagementMessages
211
214
  from lightning_sdk.lightning_cloud.openapi.models.projects_id_body import ProjectsIdBody
212
215
  from lightning_sdk.lightning_cloud.openapi.models.projects_project_id_body import ProjectsProjectIdBody
@@ -246,6 +249,7 @@ from lightning_sdk.lightning_cloud.openapi.models.user_user_id_body import UserU
246
249
  from lightning_sdk.lightning_cloud.openapi.models.v1_aws_cluster_credentials import V1AWSClusterCredentials
247
250
  from lightning_sdk.lightning_cloud.openapi.models.v1_aws_direct_v1 import V1AWSDirectV1
248
251
  from lightning_sdk.lightning_cloud.openapi.models.v1_aws_direct_v1_status import V1AWSDirectV1Status
252
+ from lightning_sdk.lightning_cloud.openapi.models.v1_abort_storage_transfer_response import V1AbortStorageTransferResponse
249
253
  from lightning_sdk.lightning_cloud.openapi.models.v1_accelerator_quota_info import V1AcceleratorQuotaInfo
250
254
  from lightning_sdk.lightning_cloud.openapi.models.v1_ack_user_storage_violation_response import V1AckUserStorageViolationResponse
251
255
  from lightning_sdk.lightning_cloud.openapi.models.v1_add_job_timing_response import V1AddJobTimingResponse
@@ -388,6 +392,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_create_job_request import V
388
392
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_lit_dataset_multi_part_upload_response import V1CreateLitDatasetMultiPartUploadResponse
389
393
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_lit_page_request import V1CreateLitPageRequest
390
394
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_lit_page_response import V1CreateLitPageResponse
395
+ from lightning_sdk.lightning_cloud.openapi.models.v1_create_machine_response import V1CreateMachineResponse
391
396
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_managed_endpoint_response import V1CreateManagedEndpointResponse
392
397
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_model_metrics_response import V1CreateModelMetricsResponse
393
398
  from lightning_sdk.lightning_cloud.openapi.models.v1_create_multi_machine_job_request import V1CreateMultiMachineJobRequest
@@ -448,6 +453,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_delete_lit_page_response im
448
453
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_lit_registry_repository_image_artifact_version_by_digest_response import V1DeleteLitRegistryRepositoryImageArtifactVersionByDigestResponse
449
454
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_lit_repository_response import V1DeleteLitRepositoryResponse
450
455
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_logger_artifact_response import V1DeleteLoggerArtifactResponse
456
+ from lightning_sdk.lightning_cloud.openapi.models.v1_delete_machine_response import V1DeleteMachineResponse
451
457
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_managed_endpoint_response import V1DeleteManagedEndpointResponse
452
458
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_metrics_stream_response import V1DeleteMetricsStreamResponse
453
459
  from lightning_sdk.lightning_cloud.openapi.models.v1_delete_model_response import V1DeleteModelResponse
@@ -579,12 +585,12 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_get_lit_dataset_files_url_r
579
585
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_lit_page_response import V1GetLitPageResponse
580
586
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_logger_metrics_response import V1GetLoggerMetricsResponse
581
587
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_long_running_command_in_cloud_space_response import V1GetLongRunningCommandInCloudSpaceResponse
588
+ from lightning_sdk.lightning_cloud.openapi.models.v1_get_machine_response import V1GetMachineResponse
582
589
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_model_file_upload_urls_response import V1GetModelFileUploadUrlsResponse
583
590
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_model_file_url_response import V1GetModelFileUrlResponse
584
591
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_model_files_response import V1GetModelFilesResponse
585
592
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_model_files_url_response import V1GetModelFilesUrlResponse
586
593
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_model_metrics_response import V1GetModelMetricsResponse
587
- from lightning_sdk.lightning_cloud.openapi.models.v1_get_model_total_usage_metrics_response import V1GetModelTotalUsageMetricsResponse
588
594
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_organization_storage_metadata_response import V1GetOrganizationStorageMetadataResponse
589
595
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_project_artifact_response import V1GetProjectArtifactResponse
590
596
  from lightning_sdk.lightning_cloud.openapi.models.v1_get_project_balance_response import V1GetProjectBalanceResponse
@@ -645,6 +651,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_lambda_labs_direct_v1 impor
645
651
  from lightning_sdk.lightning_cloud.openapi.models.v1_lightning_app_user import V1LightningAppUser
646
652
  from lightning_sdk.lightning_cloud.openapi.models.v1_lightning_auth import V1LightningAuth
647
653
  from lightning_sdk.lightning_cloud.openapi.models.v1_lightning_basic_auth import V1LightningBasicAuth
654
+ from lightning_sdk.lightning_cloud.openapi.models.v1_lightning_elastic_cluster_v1 import V1LightningElasticClusterV1
648
655
  from lightning_sdk.lightning_cloud.openapi.models.v1_lightning_o_auth_auth import V1LightningOAuthAuth
649
656
  from lightning_sdk.lightning_cloud.openapi.models.v1_lightning_run import V1LightningRun
650
657
  from lightning_sdk.lightning_cloud.openapi.models.v1_lightningapp_instance_artifact import V1LightningappInstanceArtifact
@@ -731,6 +738,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_lit_datasets_response
731
738
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_lit_pages_response import V1ListLitPagesResponse
732
739
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_lit_registry_repository_image_artifact_versions_response import V1ListLitRegistryRepositoryImageArtifactVersionsResponse
733
740
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_logger_artifact_response import V1ListLoggerArtifactResponse
741
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_machines_response import V1ListMachinesResponse
734
742
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_managed_endpoints_response import V1ListManagedEndpointsResponse
735
743
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_memberships_response import V1ListMembershipsResponse
736
744
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_metrics_streams_response import V1ListMetricsStreamsResponse
@@ -768,6 +776,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_list_ssh_public_keys_respon
768
776
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_schedule_runs_response import V1ListScheduleRunsResponse
769
777
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_schedules_response import V1ListSchedulesResponse
770
778
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_secrets_response import V1ListSecretsResponse
779
+ from lightning_sdk.lightning_cloud.openapi.models.v1_list_storage_transfers_response import V1ListStorageTransfersResponse
771
780
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_studio_jobs_response import V1ListStudioJobsResponse
772
781
  from lightning_sdk.lightning_cloud.openapi.models.v1_list_user_slurm_jobs_response import V1ListUserSLURMJobsResponse
773
782
  from lightning_sdk.lightning_cloud.openapi.models.v1_lit_dataset import V1LitDataset
@@ -788,6 +797,8 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_logout_request import V1Log
788
797
  from lightning_sdk.lightning_cloud.openapi.models.v1_logout_response import V1LogoutResponse
789
798
  from lightning_sdk.lightning_cloud.openapi.models.v1_logs_response import V1LogsResponse
790
799
  from lightning_sdk.lightning_cloud.openapi.models.v1_lustre_data_connection import V1LustreDataConnection
800
+ from lightning_sdk.lightning_cloud.openapi.models.v1_machine import V1Machine
801
+ from lightning_sdk.lightning_cloud.openapi.models.v1_machine_direct_v1 import V1MachineDirectV1
791
802
  from lightning_sdk.lightning_cloud.openapi.models.v1_machines_selector import V1MachinesSelector
792
803
  from lightning_sdk.lightning_cloud.openapi.models.v1_magic_link_login_request import V1MagicLinkLoginRequest
793
804
  from lightning_sdk.lightning_cloud.openapi.models.v1_magic_link_login_response import V1MagicLinkLoginResponse
@@ -840,6 +851,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_package_manager import V1Pa
840
851
  from lightning_sdk.lightning_cloud.openapi.models.v1_parameterization_spec import V1ParameterizationSpec
841
852
  from lightning_sdk.lightning_cloud.openapi.models.v1_path_mapping import V1PathMapping
842
853
  from lightning_sdk.lightning_cloud.openapi.models.v1_path_telemetry import V1PathTelemetry
854
+ from lightning_sdk.lightning_cloud.openapi.models.v1_pause_storage_transfer_response import V1PauseStorageTransferResponse
843
855
  from lightning_sdk.lightning_cloud.openapi.models.v1_phase_type import V1PhaseType
844
856
  from lightning_sdk.lightning_cloud.openapi.models.v1_pipeline import V1Pipeline
845
857
  from lightning_sdk.lightning_cloud.openapi.models.v1_pipeline_parameter import V1PipelineParameter
@@ -875,6 +887,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_project_tab import V1Projec
875
887
  from lightning_sdk.lightning_cloud.openapi.models.v1_prompt_suggestion import V1PromptSuggestion
876
888
  from lightning_sdk.lightning_cloud.openapi.models.v1_publish_cloud_space_response import V1PublishCloudSpaceResponse
877
889
  from lightning_sdk.lightning_cloud.openapi.models.v1_published_cloud_space_response import V1PublishedCloudSpaceResponse
890
+ from lightning_sdk.lightning_cloud.openapi.models.v1_purchase_annual_upsell_request import V1PurchaseAnnualUpsellRequest
878
891
  from lightning_sdk.lightning_cloud.openapi.models.v1_purchase_annual_upsell_response import V1PurchaseAnnualUpsellResponse
879
892
  from lightning_sdk.lightning_cloud.openapi.models.v1_purchase_capacity_block_response import V1PurchaseCapacityBlockResponse
880
893
  from lightning_sdk.lightning_cloud.openapi.models.v1_python_dependency_info import V1PythonDependencyInfo
@@ -897,6 +910,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_regional_load_balancer impo
897
910
  from lightning_sdk.lightning_cloud.openapi.models.v1_render_kubernetes_template_response import V1RenderKubernetesTemplateResponse
898
911
  from lightning_sdk.lightning_cloud.openapi.models.v1_report_cloud_space_instance_stop_at_response import V1ReportCloudSpaceInstanceStopAtResponse
899
912
  from lightning_sdk.lightning_cloud.openapi.models.v1_report_cloud_space_instance_system_metrics_response import V1ReportCloudSpaceInstanceSystemMetricsResponse
913
+ from lightning_sdk.lightning_cloud.openapi.models.v1_report_deployment_routing_telemetry_response import V1ReportDeploymentRoutingTelemetryResponse
900
914
  from lightning_sdk.lightning_cloud.openapi.models.v1_report_k8s_cluster_metrics_response import V1ReportK8sClusterMetricsResponse
901
915
  from lightning_sdk.lightning_cloud.openapi.models.v1_report_logs_activity_response import V1ReportLogsActivityResponse
902
916
  from lightning_sdk.lightning_cloud.openapi.models.v1_report_restart_timings_response import V1ReportRestartTimingsResponse
@@ -914,6 +928,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_response_choice_delta impor
914
928
  from lightning_sdk.lightning_cloud.openapi.models.v1_restart_cloud_space_instance_response import V1RestartCloudSpaceInstanceResponse
915
929
  from lightning_sdk.lightning_cloud.openapi.models.v1_restart_timing import V1RestartTiming
916
930
  from lightning_sdk.lightning_cloud.openapi.models.v1_restore_deployment_release_response import V1RestoreDeploymentReleaseResponse
931
+ from lightning_sdk.lightning_cloud.openapi.models.v1_resume_storage_transfer_response import V1ResumeStorageTransferResponse
917
932
  from lightning_sdk.lightning_cloud.openapi.models.v1_role import V1Role
918
933
  from lightning_sdk.lightning_cloud.openapi.models.v1_rolling_update_strategy import V1RollingUpdateStrategy
919
934
  from lightning_sdk.lightning_cloud.openapi.models.v1_routing_telemetry import V1RoutingTelemetry
@@ -947,6 +962,8 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_setup_data_connection_respo
947
962
  from lightning_sdk.lightning_cloud.openapi.models.v1_shared_filesystem import V1SharedFilesystem
948
963
  from lightning_sdk.lightning_cloud.openapi.models.v1_should_start_syncing_response import V1ShouldStartSyncingResponse
949
964
  from lightning_sdk.lightning_cloud.openapi.models.v1_signed_url import V1SignedUrl
965
+ from lightning_sdk.lightning_cloud.openapi.models.v1_slack_notifier import V1SlackNotifier
966
+ from lightning_sdk.lightning_cloud.openapi.models.v1_slack_notifier_type import V1SlackNotifierType
950
967
  from lightning_sdk.lightning_cloud.openapi.models.v1_sleep_server_response import V1SleepServerResponse
951
968
  from lightning_sdk.lightning_cloud.openapi.models.v1_slurm_cluster_user import V1SlurmClusterUser
952
969
  from lightning_sdk.lightning_cloud.openapi.models.v1_slurm_node import V1SlurmNode
@@ -961,6 +978,8 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_stop_cloud_space_instance_r
961
978
  from lightning_sdk.lightning_cloud.openapi.models.v1_storage_asset import V1StorageAsset
962
979
  from lightning_sdk.lightning_cloud.openapi.models.v1_storage_asset_type import V1StorageAssetType
963
980
  from lightning_sdk.lightning_cloud.openapi.models.v1_storage_system_metrics import V1StorageSystemMetrics
981
+ from lightning_sdk.lightning_cloud.openapi.models.v1_storage_transfer import V1StorageTransfer
982
+ from lightning_sdk.lightning_cloud.openapi.models.v1_storage_transfer_status import V1StorageTransferStatus
964
983
  from lightning_sdk.lightning_cloud.openapi.models.v1_studio_job import V1StudioJob
965
984
  from lightning_sdk.lightning_cloud.openapi.models.v1_studio_job_app import V1StudioJobApp
966
985
  from lightning_sdk.lightning_cloud.openapi.models.v1_subnet_spec import V1SubnetSpec
@@ -1058,7 +1058,7 @@ class AssistantsServiceApi(object):
1058
1058
  collection_formats=collection_formats)
1059
1059
 
1060
1060
  def assistants_service_get_latest_model_metrics(self, **kwargs) -> 'V1GetLatestModelMetricsResponse': # noqa: E501
1061
- """assistants_service_get_latest_model_metrics # noqa: E501
1061
+ """model metrics # noqa: E501
1062
1062
 
1063
1063
  This method makes a synchronous HTTP request by default. To make an
1064
1064
  asynchronous HTTP request, please pass async_req=True
@@ -1079,7 +1079,7 @@ class AssistantsServiceApi(object):
1079
1079
  return data
1080
1080
 
1081
1081
  def assistants_service_get_latest_model_metrics_with_http_info(self, **kwargs) -> 'V1GetLatestModelMetricsResponse': # noqa: E501
1082
- """assistants_service_get_latest_model_metrics # noqa: E501
1082
+ """model metrics # noqa: E501
1083
1083
 
1084
1084
  This method makes a synchronous HTTP request by default. To make an
1085
1085
  asynchronous HTTP request, please pass async_req=True
@@ -1570,99 +1570,6 @@ class AssistantsServiceApi(object):
1570
1570
  _request_timeout=params.get('_request_timeout'),
1571
1571
  collection_formats=collection_formats)
1572
1572
 
1573
- def assistants_service_get_model_total_usage_metrics(self, model_id: 'str', **kwargs) -> 'V1GetModelTotalUsageMetricsResponse': # noqa: E501
1574
- """model metrics # noqa: E501
1575
-
1576
- This method makes a synchronous HTTP request by default. To make an
1577
- asynchronous HTTP request, please pass async_req=True
1578
- >>> thread = api.assistants_service_get_model_total_usage_metrics(model_id, async_req=True)
1579
- >>> result = thread.get()
1580
-
1581
- :param async_req bool
1582
- :param str model_id: (required)
1583
- :return: V1GetModelTotalUsageMetricsResponse
1584
- If the method is called asynchronously,
1585
- returns the request thread.
1586
- """
1587
- kwargs['_return_http_data_only'] = True
1588
- if kwargs.get('async_req'):
1589
- return self.assistants_service_get_model_total_usage_metrics_with_http_info(model_id, **kwargs) # noqa: E501
1590
- else:
1591
- (data) = self.assistants_service_get_model_total_usage_metrics_with_http_info(model_id, **kwargs) # noqa: E501
1592
- return data
1593
-
1594
- def assistants_service_get_model_total_usage_metrics_with_http_info(self, model_id: 'str', **kwargs) -> 'V1GetModelTotalUsageMetricsResponse': # noqa: E501
1595
- """model metrics # noqa: E501
1596
-
1597
- This method makes a synchronous HTTP request by default. To make an
1598
- asynchronous HTTP request, please pass async_req=True
1599
- >>> thread = api.assistants_service_get_model_total_usage_metrics_with_http_info(model_id, async_req=True)
1600
- >>> result = thread.get()
1601
-
1602
- :param async_req bool
1603
- :param str model_id: (required)
1604
- :return: V1GetModelTotalUsageMetricsResponse
1605
- If the method is called asynchronously,
1606
- returns the request thread.
1607
- """
1608
-
1609
- all_params = ['model_id'] # noqa: E501
1610
- all_params.append('async_req')
1611
- all_params.append('_return_http_data_only')
1612
- all_params.append('_preload_content')
1613
- all_params.append('_request_timeout')
1614
-
1615
- params = locals()
1616
- for key, val in six.iteritems(params['kwargs']):
1617
- if key not in all_params:
1618
- raise TypeError(
1619
- "Got an unexpected keyword argument '%s'"
1620
- " to method assistants_service_get_model_total_usage_metrics" % key
1621
- )
1622
- params[key] = val
1623
- del params['kwargs']
1624
- # verify the required parameter 'model_id' is set
1625
- if ('model_id' not in params or
1626
- params['model_id'] is None):
1627
- raise ValueError("Missing the required parameter `model_id` when calling `assistants_service_get_model_total_usage_metrics`") # noqa: E501
1628
-
1629
- collection_formats = {}
1630
-
1631
- path_params = {}
1632
- if 'model_id' in params:
1633
- path_params['modelId'] = params['model_id'] # noqa: E501
1634
-
1635
- query_params = []
1636
-
1637
- header_params = {}
1638
-
1639
- form_params = []
1640
- local_var_files = {}
1641
-
1642
- body_params = None
1643
- # HTTP header `Accept`
1644
- header_params['Accept'] = self.api_client.select_header_accept(
1645
- ['application/json']) # noqa: E501
1646
-
1647
- # Authentication setting
1648
- auth_settings = [] # noqa: E501
1649
-
1650
- return self.api_client.call_api(
1651
- '/v1/agents/{modelId}/total-usage', 'GET',
1652
- path_params,
1653
- query_params,
1654
- header_params,
1655
- body=body_params,
1656
- post_params=form_params,
1657
- files=local_var_files,
1658
- response_type='V1GetModelTotalUsageMetricsResponse', # noqa: E501
1659
- auth_settings=auth_settings,
1660
- async_req=params.get('async_req'),
1661
- _return_http_data_only=params.get('_return_http_data_only'),
1662
- _preload_content=params.get('_preload_content', True),
1663
- _request_timeout=params.get('_request_timeout'),
1664
- collection_formats=collection_formats)
1665
-
1666
1573
  def assistants_service_get_published_managed_endpoint_by_model_id(self, id: 'str', **kwargs) -> 'V1ManagedEndpoint': # noqa: E501
1667
1574
  """GetPublishedManagedEndpointModel returns a managed endpoint with a single specific managed endpoint model included in modelsMetadata # noqa: E501
1668
1575