lightning-sdk 0.1.49__py3-none-any.whl → 2025.11.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lightning_sdk/__init__.py +19 -9
- lightning_sdk/__version__.py +3 -0
- lightning_sdk/agents.py +2 -1
- lightning_sdk/ai_hub.py +43 -38
- lightning_sdk/api/__init__.py +2 -0
- lightning_sdk/api/ai_hub_api.py +49 -6
- lightning_sdk/api/base_studio_api.py +90 -0
- lightning_sdk/api/cloud_account_api.py +225 -0
- lightning_sdk/api/deployment_api.py +133 -27
- lightning_sdk/api/job_api.py +147 -34
- lightning_sdk/api/license_api.py +37 -0
- lightning_sdk/api/lit_container_api.py +231 -19
- lightning_sdk/api/llm_api.py +306 -0
- lightning_sdk/api/mmt_api.py +112 -28
- lightning_sdk/api/pipeline_api.py +120 -0
- lightning_sdk/api/studio_api.py +440 -89
- lightning_sdk/api/teamspace_api.py +269 -31
- lightning_sdk/api/user_api.py +56 -2
- lightning_sdk/api/utils.py +185 -52
- lightning_sdk/base_studio.py +123 -0
- lightning_sdk/cli/__init__.py +1 -0
- lightning_sdk/cli/base_studio/__init__.py +10 -0
- lightning_sdk/cli/base_studio/list.py +43 -0
- lightning_sdk/cli/config/__init__.py +14 -0
- lightning_sdk/cli/config/get.py +57 -0
- lightning_sdk/cli/config/set.py +92 -0
- lightning_sdk/cli/config/show.py +9 -0
- lightning_sdk/cli/entrypoint.py +98 -56
- lightning_sdk/cli/groups.py +56 -0
- lightning_sdk/cli/job/__init__.py +7 -0
- lightning_sdk/cli/legacy/__init__.py +0 -0
- lightning_sdk/cli/legacy/ai_hub.py +65 -0
- lightning_sdk/cli/legacy/clusters_menu.py +49 -0
- lightning_sdk/cli/legacy/configure.py +129 -0
- lightning_sdk/cli/legacy/connect.py +34 -0
- lightning_sdk/cli/legacy/create.py +115 -0
- lightning_sdk/cli/legacy/delete.py +131 -0
- lightning_sdk/cli/legacy/deploy/__init__.py +0 -0
- lightning_sdk/cli/legacy/deploy/_auth.py +196 -0
- lightning_sdk/cli/legacy/deploy/devbox.py +163 -0
- lightning_sdk/cli/legacy/deploy/serve.py +452 -0
- lightning_sdk/cli/legacy/docker_cli.py +22 -0
- lightning_sdk/cli/legacy/download.py +322 -0
- lightning_sdk/cli/legacy/entrypoint.py +110 -0
- lightning_sdk/cli/legacy/generate.py +52 -0
- lightning_sdk/cli/legacy/inspection.py +45 -0
- lightning_sdk/cli/{job_and_mmt_action.py → legacy/job_and_mmt_action.py} +6 -6
- lightning_sdk/cli/{jobs_menu.py → legacy/jobs_menu.py} +3 -2
- lightning_sdk/cli/legacy/list.py +326 -0
- lightning_sdk/cli/{mmts_menu.py → legacy/mmts_menu.py} +3 -2
- lightning_sdk/cli/legacy/open.py +81 -0
- lightning_sdk/cli/legacy/run.py +443 -0
- lightning_sdk/cli/legacy/start.py +107 -0
- lightning_sdk/cli/legacy/stop.py +107 -0
- lightning_sdk/cli/{studios_menu.py → legacy/studios_menu.py} +24 -1
- lightning_sdk/cli/legacy/switch.py +63 -0
- lightning_sdk/cli/{teamspace_menu.py → legacy/teamspace_menu.py} +12 -3
- lightning_sdk/cli/legacy/upload.py +382 -0
- lightning_sdk/cli/license/__init__.py +14 -0
- lightning_sdk/cli/license/get.py +15 -0
- lightning_sdk/cli/license/list.py +45 -0
- lightning_sdk/cli/license/set.py +13 -0
- lightning_sdk/cli/mmt/__init__.py +7 -0
- lightning_sdk/cli/studio/__init__.py +24 -0
- lightning_sdk/cli/studio/connect.py +139 -0
- lightning_sdk/cli/studio/create.py +96 -0
- lightning_sdk/cli/studio/delete.py +49 -0
- lightning_sdk/cli/studio/list.py +85 -0
- lightning_sdk/cli/studio/ssh.py +64 -0
- lightning_sdk/cli/studio/start.py +115 -0
- lightning_sdk/cli/studio/stop.py +45 -0
- lightning_sdk/cli/studio/switch.py +66 -0
- lightning_sdk/cli/utils/__init__.py +7 -0
- lightning_sdk/cli/utils/cloud_account_map.py +10 -0
- lightning_sdk/cli/utils/coloring.py +60 -0
- lightning_sdk/cli/utils/get_base_studio.py +24 -0
- lightning_sdk/cli/utils/handle_machine_and_gpus_args.py +69 -0
- lightning_sdk/cli/utils/logging.py +122 -0
- lightning_sdk/cli/utils/owner_selection.py +110 -0
- lightning_sdk/cli/utils/resolve.py +28 -0
- lightning_sdk/cli/utils/richt_print.py +35 -0
- lightning_sdk/cli/utils/save_to_config.py +27 -0
- lightning_sdk/cli/utils/ssh_connection.py +59 -0
- lightning_sdk/cli/utils/studio_selection.py +113 -0
- lightning_sdk/cli/utils/teamspace_selection.py +125 -0
- lightning_sdk/cli/vm/__init__.py +20 -0
- lightning_sdk/cli/vm/create.py +33 -0
- lightning_sdk/cli/vm/delete.py +25 -0
- lightning_sdk/cli/vm/list.py +30 -0
- lightning_sdk/cli/vm/ssh.py +31 -0
- lightning_sdk/cli/vm/start.py +60 -0
- lightning_sdk/cli/vm/stop.py +25 -0
- lightning_sdk/cli/vm/switch.py +38 -0
- lightning_sdk/constants.py +1 -0
- lightning_sdk/deployment/__init__.py +4 -0
- lightning_sdk/deployment/deployment.py +208 -28
- lightning_sdk/helpers.py +73 -34
- lightning_sdk/job/base.py +112 -12
- lightning_sdk/job/job.py +73 -44
- lightning_sdk/job/v1.py +28 -35
- lightning_sdk/job/v2.py +54 -17
- lightning_sdk/job/work.py +7 -3
- lightning_sdk/lightning_cloud/login.py +325 -18
- lightning_sdk/lightning_cloud/openapi/__init__.py +346 -26
- lightning_sdk/lightning_cloud/openapi/api/__init__.py +14 -0
- lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +1801 -384
- lightning_sdk/lightning_cloud/openapi/api/auth_service_api.py +376 -0
- lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +414 -2
- lightning_sdk/lightning_cloud/openapi/api/blog_posts_service_api.py +533 -0
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_environment_template_service_api.py +638 -0
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +2563 -866
- lightning_sdk/lightning_cloud/openapi/api/cloudy_service_api.py +327 -0
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +1720 -347
- lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +210 -4
- lightning_sdk/lightning_cloud/openapi/api/endpoint_service_api.py +126 -2119
- lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +283 -0
- lightning_sdk/lightning_cloud/openapi/api/git_credentials_service_api.py +497 -0
- lightning_sdk/lightning_cloud/openapi/api/incidents_service_api.py +1058 -0
- lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +2326 -492
- lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +2273 -0
- lightning_sdk/lightning_cloud/openapi/api/lit_dataset_service_api.py +1973 -0
- lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +17 -5
- lightning_sdk/lightning_cloud/openapi/api/lit_registry_service_api.py +473 -5
- lightning_sdk/lightning_cloud/openapi/api/markets_service_api.py +145 -0
- lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +24 -24
- lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +105 -0
- lightning_sdk/lightning_cloud/openapi/api/pipeline_templates_service_api.py +339 -0
- lightning_sdk/lightning_cloud/openapi/api/pipelines_service_api.py +795 -0
- lightning_sdk/lightning_cloud/openapi/api/product_license_service_api.py +525 -0
- lightning_sdk/lightning_cloud/openapi/api/projects_service_api.py +106 -5
- lightning_sdk/lightning_cloud/openapi/api/schedules_service_api.py +924 -0
- lightning_sdk/lightning_cloud/openapi/api/sdk_command_history_service_api.py +141 -0
- lightning_sdk/lightning_cloud/openapi/api/slurm_jobs_user_service_api.py +202 -0
- lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +1508 -251
- lightning_sdk/lightning_cloud/openapi/api/user_service_api.py +121 -97
- lightning_sdk/lightning_cloud/openapi/api/volume_service_api.py +258 -0
- lightning_sdk/lightning_cloud/openapi/configuration.py +4 -20
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +332 -26
- lightning_sdk/lightning_cloud/openapi/models/agentmanagedendpoints_id_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/agents_id_body.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/alertingevents_id_body.py +409 -0
- lightning_sdk/lightning_cloud/openapi/models/alerts_config_billing.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/alerts_config_studios.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +303 -17
- lightning_sdk/lightning_cloud/openapi/models/blogposts_id_body.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_systemmetrics_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_visibility_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/cloudspaces_id_body.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/cluster_id_capacityblock_body.py +15 -15
- lightning_sdk/lightning_cloud/openapi/models/cluster_id_capacityreservations_body.py +81 -3
- lightning_sdk/lightning_cloud/openapi/models/cluster_id_kubernetestemplates_body.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/cluster_id_metrics_body.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/cluster_id_slurmusers_body.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/cluster_id_usagerestrictions_body.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/conversations_id_body1.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/create.py +105 -1
- lightning_sdk/lightning_cloud/openapi/models/create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs.py +131 -1
- lightning_sdk/lightning_cloud/openapi/models/create_machine_request_represents_the_request_to_create_a_machine.py +461 -0
- lightning_sdk/lightning_cloud/openapi/models/credits_autoreplenish_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/credits_autoreplenish_body1.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/dataset_id_versions_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/dataset_id_visibility_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/deployment_id_alertingpolicies_body.py +357 -0
- lightning_sdk/lightning_cloud/openapi/models/deployment_id_alertingpolicies_body1.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +315 -3
- lightning_sdk/lightning_cloud/openapi/models/endpoints_id_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +199 -69
- lightning_sdk/lightning_cloud/openapi/models/externalv1_cluster.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/externalv1_user_status.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/id_codeconfig_body.py +1 -53
- lightning_sdk/lightning_cloud/openapi/models/id_contactowner_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/id_fork_body1.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/id_render_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/id_reportrestarttimings_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/id_sleepconfig_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/id_transfer_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/id_visibility_body1.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/id_visibility_body2.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/incident_id_messages_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/incidents_id_body.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_list_service_executions_response.py → job_id_reportroutingtelemetry_body.py} +23 -23
- lightning_sdk/lightning_cloud/openapi/models/kubernetestemplates_id_body.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/license_key_validate_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/litdatasets_dataset_id_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/litregistry_lit_repo_name_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/message_id_actions_body.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/messages_id_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/messages_message_id_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/metricsstream_create_body.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/metricsstream_id_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/model_id_versions_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/model_id_visibility_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/models_id_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/models_model_id_body.py +109 -31
- lightning_sdk/lightning_cloud/openapi/models/models_model_id_body1.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/org_id_memberships_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +627 -3
- lightning_sdk/lightning_cloud/openapi/models/pipelines_id_body.py +539 -0
- lightning_sdk/lightning_cloud/openapi/models/pipelines_id_body1.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/pipelinetemplates_id_body.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_agents_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +131 -1
- lightning_sdk/lightning_cloud/openapi/models/project_id_litdatasets_body.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_litregistry_body.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_pipelines_body.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_schedules_body.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_storage_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/project_id_storagetransfers_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/project_tab_management_messages.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +523 -3
- lightning_sdk/lightning_cloud/openapi/models/{service_artifact_artifact_kind.py → protobuf_null_value.py} +7 -9
- lightning_sdk/lightning_cloud/openapi/models/schedules_id_body.py +513 -0
- lightning_sdk/lightning_cloud/openapi/models/server_id_alerts_body.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/setup.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/slurm_jobs_body.py +93 -15
- lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +41 -15
- lightning_sdk/lightning_cloud/openapi/models/storagetransfers_validate_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/update.py +233 -129
- lightning_sdk/lightning_cloud/openapi/models/update1.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/upload_id_complete_body1.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/upload_id_parts_body1.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/uploads_upload_id_body.py +1 -27
- lightning_sdk/lightning_cloud/openapi/models/uploads_upload_id_body1.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/usagerestrictions_id_body.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/user_id_affiliatelinks_body.py +107 -3
- lightning_sdk/lightning_cloud/openapi/models/user_id_upgradetrigger_body.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/user_user_id_body.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_abort_storage_transfer_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_agent_job.py +188 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_aggregated_pod_metrics.py +799 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_ai_pod_v1.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_alert_method.py +102 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_alerts_config.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_artifact.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_assistant.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_assistant_model_status.py +6 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_assistant_session_daily_aggregated.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_author.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_aws_direct_v1.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_billing_subscription.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_billing_tier.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_blog_post.py +435 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cancel_running_cloud_space_instance_transfer_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_capacity_block_offering.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_check_cluster_name_availability_request.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_check_cluster_name_availability_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +117 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space.py +313 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_artifact_event.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_artifact_event_type.py +103 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_cold_start_metrics.py +669 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_cold_start_metrics_stats.py +357 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_config.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template.py +409 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_session.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_source_type.py +103 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_specialized_view.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_state.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_transfer_metadata.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloudflare_v1.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloudy_expert.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloudy_settings.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +445 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +211 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_deletion_options.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_metrics.py +1527 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +209 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +521 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_status.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_tagging_options.py +55 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_upload_service_execution_artifact_response.py → v1_cluster_upload.py} +34 -34
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_usage_restriction.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_complete_lit_dataset_multi_part_upload_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_complete_lit_dataset_upload_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_complete_running_cloud_space_instance_transfer_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{id_complete_body.py → v1_complete_upload_temporary_artifact_request.py} +29 -29
- lightning_sdk/lightning_cloud/openapi/models/v1_contact_assistant_owner_reason.py +102 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_contact_assistant_owner_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_container_metrics.py +461 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_conversation_response_chunk.py +107 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_create_billing_upgrade_trigger_record_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_blog_post_request.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_checkout_session_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_cloud_space_environment_template_request.py +409 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_cluster_capacity_reservation_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_request.py +539 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_template_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_git_credentials_request.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_incident_request.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_job_request.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_license_request.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_lit_dataset_multi_part_upload_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_machine_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_managed_endpoint_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_model_metrics_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_multi_machine_job_request.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_organization_request.py +105 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_pipeline_template_request.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +209 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_request.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_server_alert_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_subscription_checkout_session_request.py +55 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_daily_model_metrics.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_daily_usage.py +81 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +261 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_data_connection_tier.py +103 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_blog_post_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_cloud_space_environment_template_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_cluster_usage_restriction_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_deployment_alerting_policy_response.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_git_credentials_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_incident_message_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_incident_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_kubernetes_template_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_license_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_lit_dataset_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_lit_dataset_version_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_lit_registry_repository_image_artifact_version_by_digest_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_machine_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_delete_file_endpoint_response.py → v1_delete_pipeline_response.py} +25 -25
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_schedule_response.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +315 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_event.py +487 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy.py +409 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_frequency.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_operation.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_severity.py +106 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_type.py +112 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_recipients.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_api.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_details.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_state.py +4 -2
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_status.py +47 -21
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_endpoint.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +931 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_filestore_data_connection.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_job.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_metric.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_metrics.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_mmt.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_find_capacity_block_offering_response.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/{id_uploads_body1.py → v1_firewall_rule.py} +53 -53
- lightning_sdk/lightning_cloud/openapi/models/v1_function_call.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_function_tool.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_list_file_endpoints_response.py → v1_gcp_data_connection_setup.py} +23 -23
- lightning_sdk/lightning_cloud/openapi/models/v1_gcp_direct_vpc.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_ge_list_deployment_routing_telemetry_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_artifacts_page_response.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_get_assistant_session_daily_aggregated_response.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_cold_start_metrics_stats_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_instance_open_ports_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_instance_system_metrics_aggregate_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_required_balance_status_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_size_response.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_transfer_estimate_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_cluster_accelerator_demand_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_cluster_health_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_deployment_routing_telemetry_content_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_job_stats_response.py +105 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_get_latest_model_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_upload_service_execution_artifact_parts_response.py → v1_get_lit_dataset_file_upload_urls_response.py} +16 -16
- lightning_sdk/lightning_cloud/openapi/models/v1_get_lit_dataset_files_url_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_machine_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_market_pricing_response.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_model_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_organization_storage_metadata_response.py +487 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_project_balance_response.py +1 -27
- lightning_sdk/lightning_cloud/openapi/models/v1_get_project_storage_metadata_response.py +263 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_get_temp_bucket_credentials_response.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +235 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_get_user_storage_breakdown_response.py +105 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_get_volume_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_git_credentials.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +185 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_group_node_metrics.py +1215 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_group_pod_metrics.py +1241 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_guest_login_request.py +177 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_guest_login_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_service_artifact.py → v1_guest_user.py} +60 -60
- lightning_sdk/lightning_cloud/openapi/models/v1_incident.py +565 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_incident_detail.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_incident_event.py +591 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_incident_message.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_incident_severity.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_incident_type.py +108 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_instance_overprovisioning_spec.py +95 -41
- lightning_sdk/lightning_cloud/openapi/models/v1_job.py +237 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_job_artifacts_type.py +103 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job_resource.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +209 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_job_timing.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_job_type.py +109 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_indexes.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kai_scheduler_queue_metrics.py +627 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_aws_config.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +357 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1_status.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_template.py +357 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_template_property.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +67 -17
- lightning_sdk/lightning_cloud/openapi/models/v1_license.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lightning_elastic_cluster_v1.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lightning_run.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_instance_artifact.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_like_status.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_aggregated_pod_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_download_service_execution_artifact_response.py → v1_list_blog_posts_response.py} +41 -41
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_cold_start_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_environment_templates_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cloudy_experts_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_metric_timestamps_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_namespace_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_namespace_user_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_usage_restrictions_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_clusters_response.py +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_list_container_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_conversation_message_actions_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_alerting_events_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_alerting_policies_response.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_mm_ts_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_git_credentials_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_group_pod_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_incident_events_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_incident_messages_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_incidents_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_job_resources_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_kai_scheduler_queues_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_templates_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_license_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_dataset_versions_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_datasets_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_registry_repository_image_artifact_versions_response.py +257 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_machines_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_node_file_system_metrics_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_node_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_notification_dialogs_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_pipelines_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_platform_notifications_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_pod_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_project_clusters_response.py +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_list_published_managed_endpoints_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_schedule_runs_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_schedules_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_slurm_cluster_users_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_storage_transfers_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lit_dataset.py +539 -0
- lightning_sdk/lightning_cloud/openapi/models/{id_storage_body.py → v1_lit_dataset_file.py} +49 -49
- lightning_sdk/lightning_cloud/openapi/models/v1_lit_dataset_version_archive.py +435 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lit_registry_artifact.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lit_registry_project.py +35 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_lit_repository.py +81 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_lite_published_cloud_space_response.py +513 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lustre_data_connection.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +617 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_response.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_managed_endpoint.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_managed_model.py +341 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_market_price.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +121 -17
- lightning_sdk/lightning_cloud/openapi/models/v1_message.py +159 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_message_action.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_metadata.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_model.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_model_metrics.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_delete_service_execution_response.py → v1_modify_filesystem_volume_response.py} +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_state.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_namespace_metrics.py +591 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_namespace_user_metrics.py +435 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +695 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_notification_type.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +837 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_path_mapping.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pause_storage_transfer_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline.py +591 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_parameter.py +435 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_parameter_placement.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_parameter_placement_type.py +106 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_parameter_type.py +106 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_state.py +111 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_step.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_step_status.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_step_type.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_template.py +513 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_template_visibility_type.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_platform_notification.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pod_metrics.py +747 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_post_cloud_space_artifact_events_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_project.py +105 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_project_cluster_binding.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +121 -17
- lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +525 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_project_storage.py +235 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_project_tab.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_purchase_annual_upsell_request.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_purchase_annual_upsell_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_quote_annual_upsell_response.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_quote_subscription_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_r2_data_connection.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_render_kubernetes_template_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_report_cloud_space_instance_stop_at_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_report_cloud_space_instance_system_metrics_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_report_deployment_routing_telemetry_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_report_k8s_cluster_metrics_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_report_restart_timings_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_request_cloud_space_access_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_required_balance_reason.py +107 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_reservation_details.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_reset_api_key_request.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_reset_api_key_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_resource_visibility.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_resources.py +55 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_response_choice.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_restart_timing.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_resume_storage_transfer_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_routing_telemetry.py +357 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +5 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_schedule.py +565 -0
- lightning_sdk/lightning_cloud/openapi/models/{command_argument_command_argument_type.py → v1_schedule_action_type.py} +9 -8
- lightning_sdk/lightning_cloud/openapi/models/v1_schedule_resource_type.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_schedule_run.py +357 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_sdk_command_history_severity.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_sdk_command_history_type.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_secret_type.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_get_service_execution_status_response.py → v1_server_alert.py} +74 -48
- lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_phase.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_severity.py +103 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_type.py +108 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_service_health.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_setup_data_connection_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_shared_filesystem.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier_type.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_sleep_server_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_slurm_cluster_user.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_slurm_job.py +84 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_slurm_node.py +31 -291
- lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1_status.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset.py +159 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset_type.py +4 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer.py +435 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer_status.py +108 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_subnet_spec.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_system_metrics_aggregated.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_token_login_request.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_token_login_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_token_owner_type.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_token_usage.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_tool.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_tool_call.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_transaction.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_transfer_cloud_space_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_trigger_filesystem_upgrade_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_cloud_space_instance_config_request.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_cloud_space_visibility_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_like_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_message_like_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_deployment_visibility_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_job_visibility_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_lit_dataset_visibility_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_lit_repository_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_metrics_stream_visibility_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_update_model_visibility_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/{v1_complete_upload_service_execution_artifact_response.py → v1_update_organization_credits_auto_replenish_response.py} +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_update_project_tab_order_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_user_credits_auto_replenish_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +131 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_update_volume_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_upload_project_artifact_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/{v1_list_new_features_for_user_response.py → v1_upload_temporary_artifact_request.py} +23 -23
- lightning_sdk/lightning_cloud/openapi/models/v1_usage.py +105 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_usage_report.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +894 -842
- lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_data_connection_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_deployment_image_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_license_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_managed_endpoint_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_storage_transfer_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_voltage_park_direct_v1.py +229 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +513 -45
- lightning_sdk/lightning_cloud/openapi/models/v1_volume_state.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_vultr_direct_v1.py +1 -27
- lightning_sdk/lightning_cloud/openapi/models/v1_weka_data_connection.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/validate.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/version_default_body.py +29 -29
- lightning_sdk/lightning_cloud/openapi/models/version_default_body1.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/version_uploads_body1.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/versions_version_body1.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/volumes_id_body.py +123 -0
- lightning_sdk/lightning_cloud/rest_client.py +61 -48
- lightning_sdk/lightning_cloud/source_code/logs_socket_api.py +8 -3
- lightning_sdk/lightning_cloud/utils/data_connection.py +234 -7
- lightning_sdk/lit_container.py +68 -9
- lightning_sdk/llm/__init__.py +3 -0
- lightning_sdk/llm/llm.py +497 -0
- lightning_sdk/llm/public_assistants.py +54 -0
- lightning_sdk/machine.py +221 -30
- lightning_sdk/mmt/base.py +67 -32
- lightning_sdk/mmt/mmt.py +68 -50
- lightning_sdk/mmt/v1.py +16 -32
- lightning_sdk/mmt/v2.py +47 -18
- lightning_sdk/models.py +74 -24
- lightning_sdk/organization.py +4 -0
- lightning_sdk/owner.py +2 -1
- lightning_sdk/pipeline/__init__.py +14 -0
- lightning_sdk/pipeline/pipeline.py +163 -0
- lightning_sdk/pipeline/printer.py +124 -0
- lightning_sdk/pipeline/schedule.py +859 -0
- lightning_sdk/pipeline/steps.py +365 -0
- lightning_sdk/pipeline/utils.py +116 -0
- lightning_sdk/plugin.py +39 -20
- lightning_sdk/sandbox.py +160 -0
- lightning_sdk/serve.py +309 -0
- lightning_sdk/services/__init__.py +1 -1
- lightning_sdk/services/file_endpoint.py +3 -4
- lightning_sdk/services/utilities.py +16 -2
- lightning_sdk/studio.py +515 -41
- lightning_sdk/teamspace.py +335 -30
- lightning_sdk/user.py +19 -1
- lightning_sdk/utils/config.py +179 -0
- lightning_sdk/utils/license.py +13 -0
- lightning_sdk/utils/logging.py +79 -0
- lightning_sdk/utils/names.py +1179 -0
- lightning_sdk/utils/progress.py +283 -0
- lightning_sdk/utils/resolve.py +149 -13
- {lightning_sdk-0.1.49.dist-info → lightning_sdk-2025.11.5.dist-info}/METADATA +14 -11
- {lightning_sdk-0.1.49.dist-info → lightning_sdk-2025.11.5.dist-info}/RECORD +649 -250
- {lightning_sdk-0.1.49.dist-info → lightning_sdk-2025.11.5.dist-info}/WHEEL +1 -1
- {lightning_sdk-0.1.49.dist-info → lightning_sdk-2025.11.5.dist-info}/entry_points.txt +1 -0
- lightning_sdk/cli/ai_hub.py +0 -49
- lightning_sdk/cli/delete.py +0 -58
- lightning_sdk/cli/download.py +0 -132
- lightning_sdk/cli/inspect.py +0 -31
- lightning_sdk/cli/legacy.py +0 -135
- lightning_sdk/cli/list.py +0 -112
- lightning_sdk/cli/run.py +0 -225
- lightning_sdk/cli/serve.py +0 -218
- lightning_sdk/cli/stop.py +0 -37
- lightning_sdk/cli/upload.py +0 -255
- lightning_sdk/lightning_cloud/openapi/models/fileendpoints_id_body.py +0 -409
- lightning_sdk/lightning_cloud/openapi/models/project_id_fileendpoints_body.py +0 -357
- lightning_sdk/lightning_cloud/openapi/models/project_id_serviceexecution_body.py +0 -175
- lightning_sdk/lightning_cloud/openapi/models/serviceexecution_id_body.py +0 -331
- lightning_sdk/lightning_cloud/openapi/models/v1_command_argument.py +0 -305
- lightning_sdk/lightning_cloud/openapi/models/v1_ebs.py +0 -279
- lightning_sdk/lightning_cloud/openapi/models/v1_file_endpoint.py +0 -461
- lightning_sdk/lightning_cloud/openapi/models/v1_get_user_storage_response.py +0 -201
- lightning_sdk/lightning_cloud/openapi/models/v1_list_service_execution_lightningapp_instances_response.py +0 -175
- lightning_sdk/lightning_cloud/openapi/models/v1_service_execution.py +0 -383
- /lightning_sdk/cli/{exceptions.py → legacy/exceptions.py} +0 -0
- /lightning_sdk/services/{finetune/__init__.py → finetune_llm.py} +0 -0
- {lightning_sdk-0.1.49.dist-info → lightning_sdk-2025.11.5.dist-info}/LICENSE +0 -0
- {lightning_sdk-0.1.49.dist-info → lightning_sdk-2025.11.5.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import os
|
|
3
|
+
import re
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import Optional
|
|
6
|
+
|
|
7
|
+
import click
|
|
8
|
+
from rich.console import Console
|
|
9
|
+
|
|
10
|
+
from lightning_sdk.api.license_api import LicenseApi
|
|
11
|
+
from lightning_sdk.api.lit_container_api import LitContainerApi
|
|
12
|
+
from lightning_sdk.cli.legacy.exceptions import StudioCliError
|
|
13
|
+
from lightning_sdk.cli.legacy.studios_menu import _StudiosMenu
|
|
14
|
+
from lightning_sdk.cli.utils.teamspace_selection import TeamspacesMenu
|
|
15
|
+
from lightning_sdk.models import download_model
|
|
16
|
+
from lightning_sdk.studio import Studio
|
|
17
|
+
from lightning_sdk.utils.resolve import _get_authed_user
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _expand_remote_path(path: str) -> str:
|
|
21
|
+
"""Expand and normalize remote CLI paths.
|
|
22
|
+
|
|
23
|
+
- Strips leading `~/` or `~`
|
|
24
|
+
- Expands `~` to the user's home but returns relative to it
|
|
25
|
+
- Returns an empty string if path is empty or `~`
|
|
26
|
+
"""
|
|
27
|
+
if not path:
|
|
28
|
+
return ""
|
|
29
|
+
|
|
30
|
+
local_home = os.path.expanduser("~")
|
|
31
|
+
|
|
32
|
+
# Expand to absolute path and remove the local home prefix if present
|
|
33
|
+
path = os.path.expanduser(path)
|
|
34
|
+
if path.startswith(local_home):
|
|
35
|
+
path = path[len(local_home) :]
|
|
36
|
+
|
|
37
|
+
# Remove any leading "/" or "~" remnants
|
|
38
|
+
return path.lstrip("/~")
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@click.group(name="download")
|
|
42
|
+
def download() -> None:
|
|
43
|
+
"""Download resources from Lightning AI."""
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@download.command(name="model")
|
|
47
|
+
@click.argument("name")
|
|
48
|
+
@click.option(
|
|
49
|
+
"--download-dir", "--download_dir", default=".", help="The directory where the Model should be downloaded."
|
|
50
|
+
)
|
|
51
|
+
def model(name: str, download_dir: str = ".") -> None:
|
|
52
|
+
"""Download a model from a teamspace.
|
|
53
|
+
|
|
54
|
+
Example:
|
|
55
|
+
lightning download model NAME
|
|
56
|
+
|
|
57
|
+
NAME: The name of the model to download in the format of <ORGANIZATION-NAME>/<TEAMSPACE-NAME>/<MODEL-NAME>.
|
|
58
|
+
"""
|
|
59
|
+
download_model(
|
|
60
|
+
name=name,
|
|
61
|
+
download_dir=download_dir,
|
|
62
|
+
progress_bar=True,
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
@download.command(name="folder")
|
|
67
|
+
@click.argument("path")
|
|
68
|
+
@click.option(
|
|
69
|
+
"--studio",
|
|
70
|
+
default=None,
|
|
71
|
+
help=(
|
|
72
|
+
"The name of the studio to download from. "
|
|
73
|
+
"Will show a menu with user's owned studios for selection if not specified. "
|
|
74
|
+
"If provided, should be in the form of <TEAMSPACE-NAME>/<STUDIO-NAME> where the names are case-sensitive. "
|
|
75
|
+
"The teamspace and studio names can be regular expressions to match, "
|
|
76
|
+
"a menu filtered studios will be shown for final selection."
|
|
77
|
+
),
|
|
78
|
+
)
|
|
79
|
+
@click.option(
|
|
80
|
+
"--teamspace",
|
|
81
|
+
default=None,
|
|
82
|
+
help="The teamspace the drive folder is part of. Should be of format <OWNER>/<TEAMSPACE_NAME>.",
|
|
83
|
+
)
|
|
84
|
+
@click.option(
|
|
85
|
+
"--local-path",
|
|
86
|
+
"--local_path",
|
|
87
|
+
default=".",
|
|
88
|
+
type=click.Path(file_okay=False, dir_okay=True),
|
|
89
|
+
help="The path to the directory you want to download the folder to.",
|
|
90
|
+
)
|
|
91
|
+
def folder(
|
|
92
|
+
path: str = "", studio: Optional[str] = None, teamspace: Optional[str] = None, local_path: str = "."
|
|
93
|
+
) -> None:
|
|
94
|
+
"""Download a folder from a Studio or a Teamspace drive folder.
|
|
95
|
+
|
|
96
|
+
Example:
|
|
97
|
+
lightning download folder PATH
|
|
98
|
+
|
|
99
|
+
PATH: The relative path within the Studio or drive folder you want to download.
|
|
100
|
+
Defaults to the entire Studio or drive folder.
|
|
101
|
+
"""
|
|
102
|
+
local_path = Path(local_path)
|
|
103
|
+
if not local_path.is_dir():
|
|
104
|
+
raise NotADirectoryError(f"'{local_path}' is not a directory")
|
|
105
|
+
|
|
106
|
+
if studio and teamspace:
|
|
107
|
+
raise ValueError("Either --studio or --teamspace must be provided, not both")
|
|
108
|
+
|
|
109
|
+
if studio:
|
|
110
|
+
path = _expand_remote_path(path)
|
|
111
|
+
resolved_downloader = _resolve_studio(studio)
|
|
112
|
+
elif teamspace:
|
|
113
|
+
menu = TeamspacesMenu()
|
|
114
|
+
resolved_downloader = menu(teamspace)
|
|
115
|
+
else:
|
|
116
|
+
raise ValueError("Either --studio or --teamspace must be provided")
|
|
117
|
+
|
|
118
|
+
if not path:
|
|
119
|
+
local_path /= resolved_downloader.name
|
|
120
|
+
path = ""
|
|
121
|
+
|
|
122
|
+
try:
|
|
123
|
+
if not path and teamspace:
|
|
124
|
+
raise FileNotFoundError()
|
|
125
|
+
resolved_downloader.download_folder(remote_path=path, target_path=str(local_path))
|
|
126
|
+
except Exception as e:
|
|
127
|
+
raise StudioCliError(
|
|
128
|
+
f"Could not download the folder from the given Studio {studio} or Teamspace {teamspace}. "
|
|
129
|
+
"Please contact Lightning AI directly to resolve this issue."
|
|
130
|
+
) from e
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
@download.command(name="file")
|
|
134
|
+
@click.argument("path")
|
|
135
|
+
@click.option(
|
|
136
|
+
"--studio",
|
|
137
|
+
default=None,
|
|
138
|
+
help=(
|
|
139
|
+
"The name of the studio to download from. "
|
|
140
|
+
"Will show a menu with user's owned studios for selection if not specified. "
|
|
141
|
+
"If provided, should be in the form of <TEAMSPACE-NAME>/<STUDIO-NAME> where the names are case-sensitive. "
|
|
142
|
+
"The teamspace and studio names can be regular expressions to match, "
|
|
143
|
+
"a menu filtered studios will be shown for final selection."
|
|
144
|
+
),
|
|
145
|
+
)
|
|
146
|
+
@click.option(
|
|
147
|
+
"--teamspace",
|
|
148
|
+
default=None,
|
|
149
|
+
help="The teamspace the file is part of. Should be of format <OWNER>/<TEAMSPACE_NAME>.",
|
|
150
|
+
)
|
|
151
|
+
@click.option(
|
|
152
|
+
"--local-path",
|
|
153
|
+
"--local_path",
|
|
154
|
+
default=".",
|
|
155
|
+
type=click.Path(file_okay=False, dir_okay=True),
|
|
156
|
+
help="The path to the directory you want to download the file to.",
|
|
157
|
+
)
|
|
158
|
+
def file(path: str = "", studio: Optional[str] = None, teamspace: Optional[str] = None, local_path: str = ".") -> None:
|
|
159
|
+
"""Download a file from a Studio or Teamspace drive file.
|
|
160
|
+
|
|
161
|
+
Example:
|
|
162
|
+
lightning download file PATH
|
|
163
|
+
|
|
164
|
+
PATH: The relative path to the file within the Studio or Teamspace drive file you want to download.
|
|
165
|
+
"""
|
|
166
|
+
local_path = Path(local_path)
|
|
167
|
+
if not local_path.is_dir():
|
|
168
|
+
raise NotADirectoryError(f"'{local_path}' is not a directory")
|
|
169
|
+
|
|
170
|
+
if studio and teamspace:
|
|
171
|
+
raise ValueError("Either --studio or --teamspace must be provided, not both")
|
|
172
|
+
|
|
173
|
+
if studio:
|
|
174
|
+
resolved_downloader = _resolve_studio(studio)
|
|
175
|
+
elif teamspace:
|
|
176
|
+
menu = TeamspacesMenu()
|
|
177
|
+
resolved_downloader = menu(teamspace)
|
|
178
|
+
else:
|
|
179
|
+
raise ValueError("Either --studio or --teamspace must be provided")
|
|
180
|
+
|
|
181
|
+
if not path:
|
|
182
|
+
local_path /= resolved_downloader.name
|
|
183
|
+
path = ""
|
|
184
|
+
|
|
185
|
+
try:
|
|
186
|
+
if not path:
|
|
187
|
+
raise FileNotFoundError()
|
|
188
|
+
resolved_downloader.download_file(remote_path=path, file_path=str(local_path / os.path.basename(path)))
|
|
189
|
+
except Exception as e:
|
|
190
|
+
raise StudioCliError(
|
|
191
|
+
f"Could not download the file from the given Studio {studio} or Teamspace {teamspace}. "
|
|
192
|
+
"Please contact Lightning AI directly to resolve this issue."
|
|
193
|
+
) from e
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
@download.command(name="container")
|
|
197
|
+
@click.argument("container")
|
|
198
|
+
@click.option("--teamspace", default=None, help="The name of the teamspace to download the container from")
|
|
199
|
+
@click.option("--tag", default="latest", show_default=True, help="The tag of the container to download.")
|
|
200
|
+
@click.option(
|
|
201
|
+
"--cloud-account",
|
|
202
|
+
"--cloud_account", # The UI will present the above variant, using this as a secondary to be consistent w/ models
|
|
203
|
+
default=None,
|
|
204
|
+
help="The name of the cloud account to download the Container from.",
|
|
205
|
+
)
|
|
206
|
+
def download_container(
|
|
207
|
+
container: str, teamspace: Optional[str] = None, tag: str = "latest", cloud_account: Optional[str] = None
|
|
208
|
+
) -> None:
|
|
209
|
+
"""Download a docker container from a teamspace.
|
|
210
|
+
|
|
211
|
+
Example:
|
|
212
|
+
lightning download container CONTAINER
|
|
213
|
+
|
|
214
|
+
CONTAINER: The name of the container to download.
|
|
215
|
+
"""
|
|
216
|
+
console = Console()
|
|
217
|
+
menu = TeamspacesMenu()
|
|
218
|
+
resolved_teamspace = menu(teamspace)
|
|
219
|
+
with console.status("Downloading container..."):
|
|
220
|
+
api = LitContainerApi()
|
|
221
|
+
api.download_container(container, resolved_teamspace, tag, cloud_account)
|
|
222
|
+
console.print("Container downloaded successfully", style="green")
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
def _resolve_studio(studio: Optional[str]) -> Studio:
|
|
226
|
+
user = _get_authed_user()
|
|
227
|
+
# if no studio specify suggest/filter only user's studios
|
|
228
|
+
menu = _StudiosMenu()
|
|
229
|
+
possible_studios = menu._get_possible_studios(user, is_owner=studio is None)
|
|
230
|
+
|
|
231
|
+
try:
|
|
232
|
+
if studio:
|
|
233
|
+
team_name, studio_name = studio.split("/")
|
|
234
|
+
options = [st for st in possible_studios if st["teamspace"] == team_name and st["name"] == studio_name]
|
|
235
|
+
if len(options) == 1:
|
|
236
|
+
selected_studio = menu._get_studio_from_name(studio, possible_studios)
|
|
237
|
+
# user can also use the partial studio name as secondary interactive selection
|
|
238
|
+
else:
|
|
239
|
+
# filter matching simple reg expressions or start with the team and studio name
|
|
240
|
+
possible_studios = filter(
|
|
241
|
+
lambda st: (re.match(team_name, st["teamspace"]) or team_name in st["teamspace"])
|
|
242
|
+
and (re.match(studio_name, st["name"]) or studio_name in st["name"]),
|
|
243
|
+
possible_studios,
|
|
244
|
+
)
|
|
245
|
+
if not len(possible_studios):
|
|
246
|
+
raise ValueError(
|
|
247
|
+
f"Could not find Studio like '{studio}', please consider update your filtering pattern."
|
|
248
|
+
)
|
|
249
|
+
selected_studio = menu._get_studio_from_interactive_menu(list(possible_studios))
|
|
250
|
+
else:
|
|
251
|
+
selected_studio = menu._get_studio_from_interactive_menu(possible_studios)
|
|
252
|
+
|
|
253
|
+
except KeyboardInterrupt:
|
|
254
|
+
raise KeyboardInterrupt from None
|
|
255
|
+
|
|
256
|
+
# give user friendlier error message
|
|
257
|
+
except Exception as e:
|
|
258
|
+
raise StudioCliError(
|
|
259
|
+
f"Could not find the given Studio {studio} to download files from. "
|
|
260
|
+
"Please contact Lightning AI directly to resolve this issue."
|
|
261
|
+
) from e
|
|
262
|
+
|
|
263
|
+
return Studio(**selected_studio)
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
@download.command(name="licenses")
|
|
267
|
+
def download_licenses() -> None:
|
|
268
|
+
"""Download licenses for all user's products/packages.
|
|
269
|
+
|
|
270
|
+
Example:
|
|
271
|
+
lightning download licenses
|
|
272
|
+
|
|
273
|
+
"""
|
|
274
|
+
user = _get_authed_user()
|
|
275
|
+
api = LicenseApi()
|
|
276
|
+
licenses = api.list_user_licenses(user.id)
|
|
277
|
+
|
|
278
|
+
user_home = Path.home()
|
|
279
|
+
lit_dir = user_home / ".lightning"
|
|
280
|
+
lit_dir.mkdir(parents=True, exist_ok=True)
|
|
281
|
+
licenses_file = lit_dir / "licenses.json"
|
|
282
|
+
|
|
283
|
+
licenses_short = {ll.product_name: ll.license_key for ll in licenses if ll.is_valid}
|
|
284
|
+
with licenses_file.open("w") as fp:
|
|
285
|
+
json.dump(licenses_short, fp, indent=4)
|
|
286
|
+
Console().print(f"Licenses downloaded to {licenses_file}", style="green")
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
@download.command(name="license")
|
|
290
|
+
@click.argument("name")
|
|
291
|
+
def download_license(name: str) -> None:
|
|
292
|
+
"""Download license for specific products/packages.
|
|
293
|
+
|
|
294
|
+
Example:
|
|
295
|
+
lightning download license NAME
|
|
296
|
+
|
|
297
|
+
NAME: The name of the product/package to download the license for.
|
|
298
|
+
"""
|
|
299
|
+
user = _get_authed_user()
|
|
300
|
+
api = LicenseApi()
|
|
301
|
+
licenses = api.list_user_licenses(user.id)
|
|
302
|
+
licenses_short = {ll.product_name: ll.license_key for ll in licenses if ll.is_valid}
|
|
303
|
+
|
|
304
|
+
if name not in licenses_short:
|
|
305
|
+
Console().print(f"Missing valid license for {name}", style="red")
|
|
306
|
+
return
|
|
307
|
+
|
|
308
|
+
user_home = Path.home()
|
|
309
|
+
lit_dir = user_home / ".lightning"
|
|
310
|
+
lit_dir.mkdir(parents=True, exist_ok=True)
|
|
311
|
+
licenses_file = lit_dir / "licenses.json"
|
|
312
|
+
|
|
313
|
+
licenses_loaded = {}
|
|
314
|
+
if licenses_file.exists():
|
|
315
|
+
with licenses_file.open("r") as fp:
|
|
316
|
+
licenses_loaded = json.load(fp)
|
|
317
|
+
|
|
318
|
+
licenses_loaded[name] = licenses_short[name]
|
|
319
|
+
|
|
320
|
+
with licenses_file.open("w") as fp:
|
|
321
|
+
json.dump(licenses_loaded, fp, indent=4)
|
|
322
|
+
Console().print(f"Updated license for {name} in {licenses_file}", style="green")
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import traceback
|
|
3
|
+
from types import TracebackType
|
|
4
|
+
from typing import Type
|
|
5
|
+
|
|
6
|
+
import click
|
|
7
|
+
from rich.console import Console, Group
|
|
8
|
+
from rich.panel import Panel
|
|
9
|
+
from rich.syntax import Syntax
|
|
10
|
+
from rich.text import Text
|
|
11
|
+
|
|
12
|
+
from lightning_sdk import __version__
|
|
13
|
+
from lightning_sdk.api.studio_api import _cloud_url
|
|
14
|
+
from lightning_sdk.cli.legacy.ai_hub import aihub
|
|
15
|
+
from lightning_sdk.cli.legacy.coloring import CustomHelpFormatter
|
|
16
|
+
from lightning_sdk.cli.legacy.configure import configure
|
|
17
|
+
from lightning_sdk.cli.legacy.connect import connect
|
|
18
|
+
from lightning_sdk.cli.legacy.create import create
|
|
19
|
+
from lightning_sdk.cli.legacy.delete import delete
|
|
20
|
+
from lightning_sdk.cli.legacy.deploy.serve import deploy
|
|
21
|
+
from lightning_sdk.cli.legacy.docker_cli import dockerize
|
|
22
|
+
from lightning_sdk.cli.legacy.download import download
|
|
23
|
+
from lightning_sdk.cli.legacy.generate import generate
|
|
24
|
+
from lightning_sdk.cli.legacy.inspection import inspect
|
|
25
|
+
from lightning_sdk.cli.legacy.list import list_cli
|
|
26
|
+
from lightning_sdk.cli.legacy.open import open
|
|
27
|
+
from lightning_sdk.cli.legacy.run import run
|
|
28
|
+
from lightning_sdk.cli.legacy.start import start
|
|
29
|
+
from lightning_sdk.cli.legacy.stop import stop
|
|
30
|
+
from lightning_sdk.cli.legacy.switch import switch
|
|
31
|
+
from lightning_sdk.cli.legacy.upload import upload
|
|
32
|
+
from lightning_sdk.constants import _LIGHTNING_DEBUG
|
|
33
|
+
from lightning_sdk.lightning_cloud.login import Auth
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _notify_exception(exception_type: Type[BaseException], value: BaseException, tb: TracebackType) -> None:
|
|
37
|
+
"""CLI won't show tracebacks, just print the exception message."""
|
|
38
|
+
console = Console()
|
|
39
|
+
|
|
40
|
+
message = str(value.args[0]) if value.args else str(value) or "An unknown error occurred"
|
|
41
|
+
|
|
42
|
+
error_text = Text()
|
|
43
|
+
error_text.append(f"{exception_type.__name__}: ", style="bold red")
|
|
44
|
+
error_text.append(message, style="white")
|
|
45
|
+
|
|
46
|
+
renderables = [error_text]
|
|
47
|
+
|
|
48
|
+
if _LIGHTNING_DEBUG:
|
|
49
|
+
tb_text = "".join(traceback.format_exception(exception_type, value, tb))
|
|
50
|
+
renderables.append(Text("\n\nFull traceback:\n", style="bold yellow"))
|
|
51
|
+
renderables.append(Syntax(tb_text, "python", theme="monokai light", line_numbers=False, word_wrap=True))
|
|
52
|
+
else:
|
|
53
|
+
renderables.append(Text("\n\n🐞 To view the full traceback, set: LIGHTNING_DEBUG=1"))
|
|
54
|
+
|
|
55
|
+
renderables.append(Text("\n📘 Need help? Run: lightning <command> --help", style="cyan"))
|
|
56
|
+
|
|
57
|
+
console.print(Panel(Group(*renderables), title="⚡ Lightning CLI Error", border_style="red"))
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
@click.group(name="lightning", help="Command line interface (CLI) to interact with/manage Lightning AI Studios.")
|
|
61
|
+
@click.version_option(__version__, message="Lightning CLI version %(version)s")
|
|
62
|
+
def main_cli() -> None:
|
|
63
|
+
sys.excepthook = _notify_exception
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
# colorful help messages
|
|
67
|
+
main_cli.context_class.formatter_class = CustomHelpFormatter
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
@main_cli.command
|
|
71
|
+
def login() -> None:
|
|
72
|
+
"""Login to Lightning AI Studios."""
|
|
73
|
+
auth = Auth()
|
|
74
|
+
auth.clear()
|
|
75
|
+
|
|
76
|
+
try:
|
|
77
|
+
auth.authenticate()
|
|
78
|
+
except ConnectionError:
|
|
79
|
+
raise RuntimeError(f"Unable to connect to {_cloud_url()}. Please check your internet connection.") from None
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@main_cli.command
|
|
83
|
+
def logout() -> None:
|
|
84
|
+
"""Logout from Lightning AI Studios."""
|
|
85
|
+
auth = Auth()
|
|
86
|
+
auth.clear()
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
# additional commands
|
|
90
|
+
main_cli.add_command(aihub)
|
|
91
|
+
main_cli.add_command(configure)
|
|
92
|
+
main_cli.add_command(connect)
|
|
93
|
+
main_cli.add_command(create)
|
|
94
|
+
main_cli.add_command(delete)
|
|
95
|
+
main_cli.add_command(dockerize)
|
|
96
|
+
main_cli.add_command(download)
|
|
97
|
+
main_cli.add_command(generate)
|
|
98
|
+
main_cli.add_command(inspect)
|
|
99
|
+
main_cli.add_command(list_cli)
|
|
100
|
+
main_cli.add_command(run)
|
|
101
|
+
main_cli.add_command(deploy)
|
|
102
|
+
main_cli.add_command(start)
|
|
103
|
+
main_cli.add_command(stop)
|
|
104
|
+
main_cli.add_command(switch)
|
|
105
|
+
main_cli.add_command(upload)
|
|
106
|
+
main_cli.add_command(open)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
if __name__ == "__main__":
|
|
110
|
+
main_cli()
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
import click
|
|
4
|
+
from rich.console import Console
|
|
5
|
+
|
|
6
|
+
from lightning_sdk.cli.legacy.studios_menu import _StudiosMenu
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@click.group(name="generate")
|
|
10
|
+
def generate() -> None:
|
|
11
|
+
"""Generate configs (such as ssh for studio) and print them to commandline."""
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@generate.command(name="ssh")
|
|
15
|
+
@click.option(
|
|
16
|
+
"--name",
|
|
17
|
+
default=None,
|
|
18
|
+
help=(
|
|
19
|
+
"The name of the studio to obtain SSH config. "
|
|
20
|
+
"If not specified, tries to infer from the environment (e.g. when run from within a Studio.)"
|
|
21
|
+
),
|
|
22
|
+
)
|
|
23
|
+
@click.option(
|
|
24
|
+
"--teamspace",
|
|
25
|
+
default=None,
|
|
26
|
+
help=(
|
|
27
|
+
"The teamspace the studio is part of. "
|
|
28
|
+
"Should be of format <OWNER>/<TEAMSPACE_NAME>. "
|
|
29
|
+
"If not specified, tries to infer from the environment (e.g. when run from within a Studio.)"
|
|
30
|
+
),
|
|
31
|
+
)
|
|
32
|
+
def ssh(name: Optional[str] = None, teamspace: Optional[str] = None) -> None:
|
|
33
|
+
"""Get SSH config entry for a studio."""
|
|
34
|
+
menu = _StudiosMenu()
|
|
35
|
+
studio = menu._get_studio(name=name, teamspace=teamspace)
|
|
36
|
+
|
|
37
|
+
conf = _generate_ssh_config(key_path="~/.ssh/lightning_rsa", user=f"s_{studio._studio.id}", host=studio.name)
|
|
38
|
+
# Print the SSH config
|
|
39
|
+
Console().print(f"# ssh s_{studio._studio.id}@ssh.lightning.ai\n\n" + conf)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def _generate_ssh_config(key_path: str, host: str, user: str) -> str:
|
|
43
|
+
return f"""Host {host}
|
|
44
|
+
User {user}
|
|
45
|
+
Hostname ssh.lightning.ai
|
|
46
|
+
IdentityFile {key_path}
|
|
47
|
+
IdentitiesOnly yes
|
|
48
|
+
ServerAliveInterval 15
|
|
49
|
+
ServerAliveCountMax 4
|
|
50
|
+
StrictHostKeyChecking no
|
|
51
|
+
UserKnownHostsFile=/dev/null
|
|
52
|
+
"""
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
import click
|
|
4
|
+
from rich.console import Console
|
|
5
|
+
|
|
6
|
+
from lightning_sdk.cli.legacy.job_and_mmt_action import _JobAndMMTAction
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@click.group(name="inspect")
|
|
10
|
+
def inspect() -> None:
|
|
11
|
+
"""Inspect resources of the Lightning AI platform to get additional details as JSON."""
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@inspect.command(name="job")
|
|
15
|
+
@click.option("--name", default=None, help="the name of the job. If not specified can be selected interactively.")
|
|
16
|
+
@click.option(
|
|
17
|
+
"--teamspace",
|
|
18
|
+
default=None,
|
|
19
|
+
help=(
|
|
20
|
+
"the name of the teamspace the job lives in."
|
|
21
|
+
"Should be specified as {teamspace_owner}/{teamspace_name} (e.g my-org/my-teamspace). "
|
|
22
|
+
"If not specified can be selected interactively."
|
|
23
|
+
),
|
|
24
|
+
)
|
|
25
|
+
def job(name: Optional[str] = None, teamspace: Optional[str] = None) -> None:
|
|
26
|
+
"""Inspect a job for further details as JSON."""
|
|
27
|
+
menu = _JobAndMMTAction()
|
|
28
|
+
Console().print(menu.job(name=name, teamspace=teamspace).json())
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@inspect.command(name="mmt")
|
|
32
|
+
@click.option("--name", default=None, help="the name of the job. If not specified can be selected interactively.")
|
|
33
|
+
@click.option(
|
|
34
|
+
"--teamspace",
|
|
35
|
+
default=None,
|
|
36
|
+
help=(
|
|
37
|
+
"the name of the teamspace the job lives in."
|
|
38
|
+
"Should be specified as {teamspace_owner}/{teamspace_name} (e.g my-org/my-teamspace). "
|
|
39
|
+
"If not specified can be selected interactively."
|
|
40
|
+
),
|
|
41
|
+
)
|
|
42
|
+
def mmt(name: Optional[str] = None, teamspace: Optional[str] = None) -> None:
|
|
43
|
+
"""Inspect a multi-machine job for further details as JSON."""
|
|
44
|
+
menu = _JobAndMMTAction()
|
|
45
|
+
Console().print(menu.mmt(name=name, teamspace=teamspace).json())
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
from typing import Optional
|
|
2
2
|
|
|
3
|
-
from lightning_sdk.cli.jobs_menu import _JobsMenu
|
|
4
|
-
from lightning_sdk.cli.mmts_menu import _MMTsMenu
|
|
5
|
-
from lightning_sdk.cli.
|
|
3
|
+
from lightning_sdk.cli.legacy.jobs_menu import _JobsMenu
|
|
4
|
+
from lightning_sdk.cli.legacy.mmts_menu import _MMTsMenu
|
|
5
|
+
from lightning_sdk.cli.utils.teamspace_selection import TeamspacesMenu
|
|
6
6
|
from lightning_sdk.job import Job
|
|
7
7
|
from lightning_sdk.mmt import MMT
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
class _JobAndMMTAction(
|
|
10
|
+
class _JobAndMMTAction(TeamspacesMenu, _JobsMenu, _MMTsMenu):
|
|
11
11
|
"""Inspect resources of the Lightning AI platform to get additional details as JSON."""
|
|
12
12
|
|
|
13
13
|
def job(self, name: Optional[str] = None, teamspace: Optional[str] = None) -> Job:
|
|
@@ -20,7 +20,7 @@ class _JobAndMMTAction(_TeamspacesMenu, _JobsMenu, _MMTsMenu):
|
|
|
20
20
|
If not specified can be selected interactively.
|
|
21
21
|
|
|
22
22
|
"""
|
|
23
|
-
resolved_teamspace = self
|
|
23
|
+
resolved_teamspace = self(teamspace)
|
|
24
24
|
return self._resolve_job(name, teamspace=resolved_teamspace)
|
|
25
25
|
|
|
26
26
|
def mmt(self, name: Optional[str] = None, teamspace: Optional[str] = None) -> MMT:
|
|
@@ -33,5 +33,5 @@ class _JobAndMMTAction(_TeamspacesMenu, _JobsMenu, _MMTsMenu):
|
|
|
33
33
|
If not specified can be selected interactively.
|
|
34
34
|
|
|
35
35
|
"""
|
|
36
|
-
resolved_teamspace = self
|
|
36
|
+
resolved_teamspace = self(teamspace)
|
|
37
37
|
return self._resolve_mmt(name, teamspace=resolved_teamspace)
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
from typing import Dict, List, Optional
|
|
2
2
|
|
|
3
|
+
from rich.console import Console
|
|
3
4
|
from simple_term_menu import TerminalMenu
|
|
4
5
|
|
|
5
|
-
from lightning_sdk.cli.exceptions import StudioCliError
|
|
6
|
+
from lightning_sdk.cli.legacy.exceptions import StudioCliError
|
|
6
7
|
from lightning_sdk.job import Job
|
|
7
8
|
from lightning_sdk.teamspace import Teamspace
|
|
8
9
|
|
|
@@ -20,7 +21,7 @@ class _JobsMenu:
|
|
|
20
21
|
if j.name == job:
|
|
21
22
|
return j
|
|
22
23
|
|
|
23
|
-
print("Could not find Job {job}, please select it from the list:")
|
|
24
|
+
Console().print("Could not find Job {job}, please select it from the list:")
|
|
24
25
|
return self._get_job_from_interactive_menu(possible_jobs)
|
|
25
26
|
|
|
26
27
|
@staticmethod
|