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,92 @@
|
|
|
1
|
+
import click
|
|
2
|
+
|
|
3
|
+
from lightning_sdk.cli.utils.save_to_config import save_teamspace_to_config
|
|
4
|
+
from lightning_sdk.cli.utils.teamspace_selection import TeamspacesMenu
|
|
5
|
+
from lightning_sdk.machine import CloudProvider
|
|
6
|
+
from lightning_sdk.studio import Studio
|
|
7
|
+
from lightning_sdk.utils.config import Config, DefaultConfigKeys
|
|
8
|
+
from lightning_sdk.utils.resolve import _resolve_org, _resolve_user
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@click.group("set")
|
|
12
|
+
def set_value() -> None:
|
|
13
|
+
"""Set configuration values."""
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@set_value.command("user")
|
|
17
|
+
@click.argument("user_name")
|
|
18
|
+
def set_user(user_name: str) -> None:
|
|
19
|
+
"""Set the default user name in the config."""
|
|
20
|
+
try:
|
|
21
|
+
_resolve_user(user_name)
|
|
22
|
+
except Exception:
|
|
23
|
+
# TODO: make this a generic CLI error
|
|
24
|
+
raise ValueError(f"Could not resolve user: '{user_name}'. Does the user exist?") from None
|
|
25
|
+
|
|
26
|
+
config = Config()
|
|
27
|
+
setattr(config, DefaultConfigKeys.user, user_name)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@set_value.command("org")
|
|
31
|
+
@click.argument("org_name")
|
|
32
|
+
def set_org(org_name: str) -> None:
|
|
33
|
+
"""Set the default organization name in the config."""
|
|
34
|
+
try:
|
|
35
|
+
_resolve_org(org_name)
|
|
36
|
+
except Exception:
|
|
37
|
+
# TODO: make this a generic CLI error
|
|
38
|
+
raise ValueError(f"Could not resolve organization: '{org_name}'. Does the organization exist?") from None
|
|
39
|
+
|
|
40
|
+
config = Config()
|
|
41
|
+
setattr(config, DefaultConfigKeys.organization, org_name)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
@set_value.command("studio")
|
|
45
|
+
@click.argument("studio_name")
|
|
46
|
+
def set_studio(studio_name: str) -> None:
|
|
47
|
+
"""Set the default studio name in the config."""
|
|
48
|
+
try:
|
|
49
|
+
studio = Studio(studio_name)
|
|
50
|
+
except Exception:
|
|
51
|
+
# TODO: make this a generic CLI error
|
|
52
|
+
raise ValueError(f"Could not resolve studio: '{studio_name}'. Does the studio exist?") from None
|
|
53
|
+
|
|
54
|
+
config = Config()
|
|
55
|
+
setattr(config, DefaultConfigKeys.studio, studio.name)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@set_value.command("teamspace")
|
|
59
|
+
@click.argument("teamspace_name")
|
|
60
|
+
def set_teamspace(teamspace_name: str) -> None:
|
|
61
|
+
"""Set the default teamspace name in the config."""
|
|
62
|
+
menu = TeamspacesMenu()
|
|
63
|
+
teamspace_resolved = menu(teamspace=teamspace_name)
|
|
64
|
+
|
|
65
|
+
# explicit user action, so overwrite the config
|
|
66
|
+
save_teamspace_to_config(teamspace_resolved, overwrite=True)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
@set_value.command("cloud-account")
|
|
70
|
+
@click.argument("cloud_account_name")
|
|
71
|
+
def set_cloud_account(cloud_account_name: str) -> None:
|
|
72
|
+
"""Set the default cloud account name in the config."""
|
|
73
|
+
config = Config()
|
|
74
|
+
setattr(config, DefaultConfigKeys.cloud_account, cloud_account_name)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
@set_value.command("cloud-provider")
|
|
78
|
+
@click.argument("cloud_provider_name")
|
|
79
|
+
def set_cloud_provider(cloud_provider_name: str) -> None:
|
|
80
|
+
"""Set the default cloud provider name in the config."""
|
|
81
|
+
config = Config()
|
|
82
|
+
|
|
83
|
+
try:
|
|
84
|
+
cloud_provider = CloudProvider(cloud_provider_name)
|
|
85
|
+
except ValueError:
|
|
86
|
+
# TODO: make this a generic CLI error
|
|
87
|
+
raise ValueError(
|
|
88
|
+
f"Could not resolve cloud provider: '{cloud_provider_name}'. "
|
|
89
|
+
f"Supported values are: {', '.join(m.name for m in list(CloudProvider))}"
|
|
90
|
+
) from None
|
|
91
|
+
|
|
92
|
+
setattr(config, DefaultConfigKeys.cloud_provider, cloud_provider.name)
|
lightning_sdk/cli/entrypoint.py
CHANGED
|
@@ -1,67 +1,109 @@
|
|
|
1
|
+
"""New Lightning CLI entrypoint with organized command groups."""
|
|
2
|
+
|
|
3
|
+
import os
|
|
1
4
|
import sys
|
|
2
|
-
from types import TracebackType
|
|
3
|
-
from typing import Type
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
from lightning_utilities.core.imports import RequirementCache
|
|
6
|
+
import click
|
|
7
7
|
|
|
8
|
+
from lightning_sdk import __version__
|
|
8
9
|
from lightning_sdk.api.studio_api import _cloud_url
|
|
9
|
-
from lightning_sdk.cli.ai_hub import _AIHub
|
|
10
|
-
from lightning_sdk.cli.delete import _Delete
|
|
11
|
-
from lightning_sdk.cli.download import _Downloads
|
|
12
|
-
from lightning_sdk.cli.inspect import _Inspect
|
|
13
|
-
from lightning_sdk.cli.legacy import _LegacyLightningCLI
|
|
14
|
-
from lightning_sdk.cli.list import _List
|
|
15
|
-
from lightning_sdk.cli.run import _Run
|
|
16
|
-
from lightning_sdk.cli.serve import _Docker, _LitServe
|
|
17
|
-
from lightning_sdk.cli.stop import _Stop
|
|
18
|
-
from lightning_sdk.cli.upload import _Uploads
|
|
19
|
-
from lightning_sdk.lightning_cloud.login import Auth
|
|
20
|
-
|
|
21
|
-
_LIGHTNING_AVAILABLE = RequirementCache("lightning")
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class StudioCLI:
|
|
25
|
-
"""Command line interface (CLI) to interact with/manage Lightning AI Studios."""
|
|
26
|
-
|
|
27
|
-
def __init__(self) -> None:
|
|
28
|
-
self.download = _Downloads()
|
|
29
|
-
self.upload = _Uploads()
|
|
30
|
-
self.aihub = _AIHub()
|
|
31
|
-
self.run = _Run(legacy_run=_LegacyLightningCLI() if _LIGHTNING_AVAILABLE else None)
|
|
32
|
-
self.serve = _LitServe()
|
|
33
|
-
self.dockerize = _Docker()
|
|
34
|
-
self.list = _List()
|
|
35
|
-
self.delete = _Delete()
|
|
36
|
-
self.inspect = _Inspect()
|
|
37
|
-
self.stop = _Stop()
|
|
38
10
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"""Logout from Lightning AI Studios."""
|
|
53
|
-
auth = Auth()
|
|
54
|
-
auth.clear()
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
def _notify_exception(exception_type: Type[BaseException], value: BaseException, tb: TracebackType) -> None: # No
|
|
58
|
-
"""CLI won't show tracebacks, just print the exception message."""
|
|
59
|
-
print(value)
|
|
11
|
+
# Import legacy groups directly from groups.py
|
|
12
|
+
from lightning_sdk.cli.groups import (
|
|
13
|
+
base_studio,
|
|
14
|
+
config,
|
|
15
|
+
# job,
|
|
16
|
+
license,
|
|
17
|
+
# mmt,
|
|
18
|
+
studio,
|
|
19
|
+
vm,
|
|
20
|
+
)
|
|
21
|
+
from lightning_sdk.cli.utils import CustomHelpFormatter
|
|
22
|
+
from lightning_sdk.cli.utils.logging import CommandLoggingGroup, logging_excepthook
|
|
23
|
+
from lightning_sdk.lightning_cloud.login import Auth
|
|
60
24
|
|
|
61
25
|
|
|
26
|
+
@click.group(
|
|
27
|
+
name="lightning",
|
|
28
|
+
help="Command line interface (CLI) to interact with/manage Lightning AI Studios.",
|
|
29
|
+
cls=CommandLoggingGroup,
|
|
30
|
+
)
|
|
31
|
+
@click.version_option(__version__, message="Lightning CLI version %(version)s")
|
|
62
32
|
def main_cli() -> None:
|
|
63
|
-
|
|
64
|
-
|
|
33
|
+
sys.excepthook = logging_excepthook
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
main_cli.context_class.formatter_class = CustomHelpFormatter
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@main_cli.command
|
|
40
|
+
def login() -> None:
|
|
41
|
+
"""Login to Lightning AI Studios."""
|
|
42
|
+
auth = Auth()
|
|
43
|
+
auth.clear()
|
|
44
|
+
|
|
45
|
+
try:
|
|
46
|
+
auth.authenticate()
|
|
47
|
+
except ConnectionError:
|
|
48
|
+
raise RuntimeError(f"Unable to connect to {_cloud_url()}. Please check your internet connection.") from None
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@main_cli.command
|
|
52
|
+
def logout() -> None:
|
|
53
|
+
"""Logout from Lightning AI Studios."""
|
|
54
|
+
auth = Auth()
|
|
55
|
+
auth.clear()
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
# Add new command groups
|
|
59
|
+
main_cli.add_command(config)
|
|
60
|
+
# main_cli.add_command(job)
|
|
61
|
+
# main_cli.add_command(mmt)
|
|
62
|
+
main_cli.add_command(studio)
|
|
63
|
+
main_cli.add_command(vm)
|
|
64
|
+
main_cli.add_command(base_studio)
|
|
65
|
+
main_cli.add_command(license)
|
|
66
|
+
|
|
67
|
+
if os.environ.get("LIGHTNING_EXPERIMENTAL_CLI_ONLY", "0") != "1":
|
|
68
|
+
#### LEGACY COMMANDS ####
|
|
69
|
+
# these commands are currently supported for backwards compatibility, but will potentially be removed in the future.
|
|
70
|
+
# they've grown pretty wild and provide a very inconsistent UX.
|
|
71
|
+
from lightning_sdk.cli.legacy.ai_hub import aihub
|
|
72
|
+
from lightning_sdk.cli.legacy.configure import configure
|
|
73
|
+
from lightning_sdk.cli.legacy.connect import connect
|
|
74
|
+
from lightning_sdk.cli.legacy.create import create
|
|
75
|
+
from lightning_sdk.cli.legacy.delete import delete
|
|
76
|
+
from lightning_sdk.cli.legacy.deploy.serve import deploy
|
|
77
|
+
from lightning_sdk.cli.legacy.docker_cli import dockerize
|
|
78
|
+
from lightning_sdk.cli.legacy.download import download
|
|
79
|
+
from lightning_sdk.cli.legacy.generate import generate
|
|
80
|
+
from lightning_sdk.cli.legacy.inspection import inspect
|
|
81
|
+
from lightning_sdk.cli.legacy.list import list_cli
|
|
82
|
+
from lightning_sdk.cli.legacy.open import open as open_cmd
|
|
83
|
+
from lightning_sdk.cli.legacy.run import run
|
|
84
|
+
from lightning_sdk.cli.legacy.start import start
|
|
85
|
+
from lightning_sdk.cli.legacy.stop import stop
|
|
86
|
+
from lightning_sdk.cli.legacy.switch import switch
|
|
87
|
+
from lightning_sdk.cli.legacy.upload import upload
|
|
88
|
+
|
|
89
|
+
# Add old command groups
|
|
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(deploy)
|
|
96
|
+
main_cli.add_command(dockerize)
|
|
97
|
+
main_cli.add_command(download)
|
|
98
|
+
main_cli.add_command(generate)
|
|
99
|
+
main_cli.add_command(inspect)
|
|
100
|
+
main_cli.add_command(list_cli)
|
|
101
|
+
main_cli.add_command(open_cmd)
|
|
102
|
+
main_cli.add_command(run)
|
|
103
|
+
main_cli.add_command(start)
|
|
104
|
+
main_cli.add_command(stop)
|
|
105
|
+
main_cli.add_command(switch)
|
|
106
|
+
main_cli.add_command(upload)
|
|
65
107
|
|
|
66
108
|
|
|
67
109
|
if __name__ == "__main__":
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""CLI groups for organizing Lightning SDK commands."""
|
|
2
|
+
|
|
3
|
+
import click
|
|
4
|
+
|
|
5
|
+
from lightning_sdk.cli.base_studio import register_commands as register_base_studio_commands
|
|
6
|
+
from lightning_sdk.cli.config import register_commands as register_config_commands
|
|
7
|
+
from lightning_sdk.cli.job import register_commands as register_job_commands
|
|
8
|
+
from lightning_sdk.cli.license import register_commands as register_license_commands
|
|
9
|
+
from lightning_sdk.cli.mmt import register_commands as register_mmt_commands
|
|
10
|
+
from lightning_sdk.cli.studio import register_commands as register_studio_commands
|
|
11
|
+
from lightning_sdk.cli.vm import register_commands as register_vm_commands
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@click.group(name="studio")
|
|
15
|
+
def studio() -> None:
|
|
16
|
+
"""Manage Lightning AI Studios."""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@click.group(name="job")
|
|
20
|
+
def job() -> None:
|
|
21
|
+
"""Manage Lightning AI Jobs."""
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@click.group(name="mmt")
|
|
25
|
+
def mmt() -> None:
|
|
26
|
+
"""Manage Lightning AI Multi-Machine Training (MMT)."""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@click.group(name="config")
|
|
30
|
+
def config() -> None:
|
|
31
|
+
"""Manage Lightning SDK and CLI configuration."""
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@click.group(name="vm")
|
|
35
|
+
def vm() -> None:
|
|
36
|
+
"""Manage Lightning AI VMs."""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@click.group(name="base-studio")
|
|
40
|
+
def base_studio() -> None:
|
|
41
|
+
"""Manage Lightning AI Base Studios."""
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
@click.group(name="license")
|
|
45
|
+
def license() -> None: # noqa: A001
|
|
46
|
+
"""Manage Lightning AI Product Licenses."""
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# Register config commands with the main config group
|
|
50
|
+
register_job_commands(job)
|
|
51
|
+
register_mmt_commands(mmt)
|
|
52
|
+
register_studio_commands(studio)
|
|
53
|
+
register_config_commands(config)
|
|
54
|
+
register_vm_commands(vm)
|
|
55
|
+
register_base_studio_commands(base_studio)
|
|
56
|
+
register_license_commands(license)
|
|
File without changes
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
import click
|
|
4
|
+
|
|
5
|
+
from lightning_sdk.ai_hub import AIHub
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@click.group(name="aihub")
|
|
9
|
+
def aihub() -> None:
|
|
10
|
+
"""Interact with Lightning Studio - AI Hub."""
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@aihub.command(name="api-info")
|
|
14
|
+
@click.argument("api-id")
|
|
15
|
+
def api_info(api_id: str) -> None:
|
|
16
|
+
"""Get full API template info such as input details.
|
|
17
|
+
|
|
18
|
+
Example:
|
|
19
|
+
lightning aihub api_info API-ID
|
|
20
|
+
|
|
21
|
+
API-ID: The ID of the API for which information is requested.
|
|
22
|
+
"""
|
|
23
|
+
ai_hub = AIHub()
|
|
24
|
+
ai_hub.api_info(api_id)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@aihub.command(name="list-apis")
|
|
28
|
+
@click.option("--search", default=None, help="Search for API templates by name.")
|
|
29
|
+
def list_apis(search: Optional[str]) -> None:
|
|
30
|
+
"""List API templates available in the AI Hub."""
|
|
31
|
+
ai_hub = AIHub()
|
|
32
|
+
ai_hub.list_apis(search=search)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@aihub.command(name="deploy")
|
|
36
|
+
@click.argument("api-id")
|
|
37
|
+
@click.option(
|
|
38
|
+
"--cloud-account",
|
|
39
|
+
"--cloud_account",
|
|
40
|
+
default=None,
|
|
41
|
+
help="Cloud Account to deploy the API to. Defaults to user's default cloud account.",
|
|
42
|
+
)
|
|
43
|
+
@click.option("--name", default=None, help="Name of the deployed API. Defaults to the name of the API template.")
|
|
44
|
+
@click.option(
|
|
45
|
+
"--teamspace",
|
|
46
|
+
default=None,
|
|
47
|
+
help="Teamspace to deploy the API to. Defaults to user's default teamspace.",
|
|
48
|
+
)
|
|
49
|
+
@click.option(
|
|
50
|
+
"--org",
|
|
51
|
+
default=None,
|
|
52
|
+
help="Organization to deploy the API to. Defaults to user's default organization.",
|
|
53
|
+
)
|
|
54
|
+
def deploy(
|
|
55
|
+
api_id: str, cloud_account: Optional[str], name: Optional[str], teamspace: Optional[str], org: Optional[str]
|
|
56
|
+
) -> None:
|
|
57
|
+
"""Deploy an API template from the AI Hub.
|
|
58
|
+
|
|
59
|
+
Example:
|
|
60
|
+
lightning aihub deploy API-ID
|
|
61
|
+
|
|
62
|
+
API-ID: The ID of the API which should be deployed.
|
|
63
|
+
"""
|
|
64
|
+
ai_hub = AIHub()
|
|
65
|
+
ai_hub.run(api_id, cloud_account=cloud_account, name=name, teamspace=teamspace, org=org)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
from typing import List, Optional
|
|
3
|
+
|
|
4
|
+
from rich.console import Console
|
|
5
|
+
from simple_term_menu import TerminalMenu
|
|
6
|
+
|
|
7
|
+
from lightning_sdk import Teamspace
|
|
8
|
+
from lightning_sdk.api.cloud_account_api import CloudAccountApi
|
|
9
|
+
from lightning_sdk.lightning_cloud.openapi import V1ClusterType, V1ProjectClusterBinding
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class _ClustersMenu:
|
|
13
|
+
def _get_cluster_from_interactive_menu(self, possible_clusters: List[V1ProjectClusterBinding]) -> str:
|
|
14
|
+
terminal_menu = self._prepare_terminal_menu_teamspaces([cluster.cluster_id for cluster in possible_clusters])
|
|
15
|
+
terminal_menu.show()
|
|
16
|
+
|
|
17
|
+
return possible_clusters[terminal_menu.chosen_menu_index].cluster_id
|
|
18
|
+
|
|
19
|
+
@staticmethod
|
|
20
|
+
def _prepare_terminal_menu_teamspaces(cluster_ids: List[str]) -> TerminalMenu:
|
|
21
|
+
title = "Please select a cluster from the following:"
|
|
22
|
+
|
|
23
|
+
return TerminalMenu(cluster_ids, title=title, clear_menu_on_exit=True)
|
|
24
|
+
|
|
25
|
+
def _resolve_cluster(self, teamspace: Teamspace) -> Optional[str]:
|
|
26
|
+
selected_cluster_id = None
|
|
27
|
+
console = Console()
|
|
28
|
+
try:
|
|
29
|
+
selected_cluster_id = teamspace.default_cloud_account or self._get_cluster_from_interactive_menu(
|
|
30
|
+
possible_clusters=teamspace.cloud_account_objs
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
cloud_account_api = CloudAccountApi()
|
|
34
|
+
|
|
35
|
+
resolved_cluster_obj = cloud_account_api.get_cloud_account(
|
|
36
|
+
cloud_account_id=selected_cluster_id, org_id=teamspace.owner.id, teamspace_id=teamspace.id
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
return None if resolved_cluster_obj.spec.cluster_type == V1ClusterType.GLOBAL else resolved_cluster_obj.id
|
|
40
|
+
except KeyboardInterrupt:
|
|
41
|
+
console.print("Operation cancelled by user")
|
|
42
|
+
sys.exit(0)
|
|
43
|
+
|
|
44
|
+
except Exception:
|
|
45
|
+
console.print(
|
|
46
|
+
f"[red]Could not find the given Cluster:[/red] {selected_cluster_id}. "
|
|
47
|
+
"Please contact Lightning AI directly to resolve this issue."
|
|
48
|
+
)
|
|
49
|
+
sys.exit(1)
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import platform
|
|
3
|
+
import uuid
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import Optional, Union
|
|
6
|
+
|
|
7
|
+
import click
|
|
8
|
+
from rich.console import Console
|
|
9
|
+
|
|
10
|
+
from lightning_sdk.cli.legacy.generate import _generate_ssh_config
|
|
11
|
+
from lightning_sdk.cli.legacy.studios_menu import _StudiosMenu
|
|
12
|
+
from lightning_sdk.lightning_cloud.login import Auth
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@click.group(name="configure")
|
|
16
|
+
def configure() -> None:
|
|
17
|
+
"""Configure access to resources on the Lightning AI platform."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _configure_ssh_internal(
|
|
21
|
+
name: Optional[str] = None, teamspace: Optional[str] = None, overwrite: bool = False
|
|
22
|
+
) -> None:
|
|
23
|
+
"""Internal function to configure SSH without Click decorators."""
|
|
24
|
+
auth = Auth()
|
|
25
|
+
auth.authenticate()
|
|
26
|
+
console = Console()
|
|
27
|
+
ssh_dir = Path.home() / ".ssh"
|
|
28
|
+
ssh_dir.mkdir(parents=True, exist_ok=True)
|
|
29
|
+
|
|
30
|
+
key_path = ssh_dir / "lightning_rsa"
|
|
31
|
+
config_path = ssh_dir / "config"
|
|
32
|
+
|
|
33
|
+
# Check if the SSH key already exists
|
|
34
|
+
if key_path.exists() and (key_path.with_suffix(".pub")).exists() and not overwrite:
|
|
35
|
+
console.print(f"SSH key already exists at {key_path}")
|
|
36
|
+
else:
|
|
37
|
+
_download_ssh_keys(auth.api_key, ssh_home=ssh_dir, ssh_key_name="lightning_rsa", overwrite=overwrite)
|
|
38
|
+
console.print(f"SSH key generated and saved to {key_path}")
|
|
39
|
+
|
|
40
|
+
# Check if the SSH config already contains the required configuration
|
|
41
|
+
menu = _StudiosMenu()
|
|
42
|
+
studio = menu._get_studio(name=name, teamspace=teamspace)
|
|
43
|
+
config_content = _generate_ssh_config(key_path=str(key_path), user=f"s_{studio._studio.id}", host=studio.name)
|
|
44
|
+
if config_path.exists():
|
|
45
|
+
with config_path.open("r") as config_file:
|
|
46
|
+
# check if the host already exists in the config
|
|
47
|
+
if f"Host {studio.name}" in config_file.read():
|
|
48
|
+
console.print("SSH config already contains the required configuration.")
|
|
49
|
+
return
|
|
50
|
+
|
|
51
|
+
with config_path.open("a") as config_file:
|
|
52
|
+
config_file.write(os.linesep)
|
|
53
|
+
config_file.write(config_content)
|
|
54
|
+
config_file.write(os.linesep)
|
|
55
|
+
console.print(f"SSH config updated at {config_path}")
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@configure.command(name="ssh")
|
|
59
|
+
@click.option(
|
|
60
|
+
"--name",
|
|
61
|
+
default=None,
|
|
62
|
+
help=(
|
|
63
|
+
"The name of the studio to obtain SSH config. "
|
|
64
|
+
"If not specified, tries to infer from the environment (e.g. when run from within a Studio.)"
|
|
65
|
+
),
|
|
66
|
+
)
|
|
67
|
+
@click.option(
|
|
68
|
+
"--teamspace",
|
|
69
|
+
default=None,
|
|
70
|
+
help=(
|
|
71
|
+
"The teamspace the studio is part of. "
|
|
72
|
+
"Should be of format <OWNER>/<TEAMSPACE_NAME>. "
|
|
73
|
+
"If not specified, tries to infer from the environment (e.g. when run from within a Studio.)"
|
|
74
|
+
),
|
|
75
|
+
)
|
|
76
|
+
@click.option(
|
|
77
|
+
"--overwrite",
|
|
78
|
+
is_flag=True,
|
|
79
|
+
flag_value=True,
|
|
80
|
+
default=False,
|
|
81
|
+
help="Whether to overwrite the SSH key and config if they already exist.",
|
|
82
|
+
)
|
|
83
|
+
def ssh(name: Optional[str] = None, teamspace: Optional[str] = None, overwrite: bool = False) -> None:
|
|
84
|
+
"""Get SSH config entry for a studio."""
|
|
85
|
+
_configure_ssh_internal(name=name, teamspace=teamspace, overwrite=overwrite)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def _download_file(url: str, local_path: Path, overwrite: bool = True, chmod: Optional[int] = None) -> None:
|
|
89
|
+
"""Download a file from a URL."""
|
|
90
|
+
import requests
|
|
91
|
+
|
|
92
|
+
if local_path.exists() and not overwrite:
|
|
93
|
+
raise FileExistsError(f"The file {local_path} already exists and overwrite is set to False.")
|
|
94
|
+
|
|
95
|
+
response = requests.get(url, stream=True)
|
|
96
|
+
response.raise_for_status()
|
|
97
|
+
|
|
98
|
+
with open(local_path, "wb") as file:
|
|
99
|
+
for chunk in response.iter_content(chunk_size=8192):
|
|
100
|
+
file.write(chunk)
|
|
101
|
+
if chmod is not None:
|
|
102
|
+
local_path.chmod(0o600)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def _download_ssh_keys(
|
|
106
|
+
api_key: str,
|
|
107
|
+
key_id: str = "",
|
|
108
|
+
ssh_home: Union[str, Path] = "",
|
|
109
|
+
ssh_key_name: str = "lightning_rsa",
|
|
110
|
+
overwrite: bool = False,
|
|
111
|
+
) -> None:
|
|
112
|
+
if not ssh_home:
|
|
113
|
+
ssh_home = Path.home() / ".ssh"
|
|
114
|
+
elif isinstance(ssh_home, str):
|
|
115
|
+
ssh_home = Path(ssh_home)
|
|
116
|
+
if not key_id:
|
|
117
|
+
key_id = str(uuid.uuid4())
|
|
118
|
+
|
|
119
|
+
path_key = ssh_home / ssh_key_name
|
|
120
|
+
path_pub = ssh_home / f"{ssh_key_name}.pub"
|
|
121
|
+
|
|
122
|
+
# todo: consider hitting the API to get the key pair directly instead of using wget
|
|
123
|
+
_download_file(
|
|
124
|
+
f"https://lightning.ai/setup/ssh-gen?t={api_key}&id={key_id}&machineName={platform.node()}",
|
|
125
|
+
path_key,
|
|
126
|
+
overwrite=overwrite,
|
|
127
|
+
chmod=0o600,
|
|
128
|
+
)
|
|
129
|
+
_download_file(f"https://lightning.ai/setup/ssh-public?t={api_key}&id={key_id}", path_pub, overwrite=overwrite)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import subprocess
|
|
2
|
+
import sys
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
import click
|
|
6
|
+
|
|
7
|
+
from lightning_sdk.cli.legacy.configure import _configure_ssh_internal
|
|
8
|
+
from lightning_sdk.cli.legacy.studios_menu import _StudiosMenu
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@click.group(name="connect")
|
|
12
|
+
def connect() -> None:
|
|
13
|
+
"""Connect to lightning products."""
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@connect.command(name="studio")
|
|
17
|
+
@click.option("--name", default=None, help="The name of the studio to connect to.")
|
|
18
|
+
@click.option(
|
|
19
|
+
"--teamspace",
|
|
20
|
+
default=None,
|
|
21
|
+
help="The teamspace the studio is part of. Should be of format <OWNER>/<TEAMSPACE_NAME>.",
|
|
22
|
+
)
|
|
23
|
+
def studio(name: Optional[str], teamspace: Optional[str]) -> None:
|
|
24
|
+
"""Connect to a studio via SSH."""
|
|
25
|
+
_configure_ssh_internal(name=name, teamspace=teamspace, overwrite=False)
|
|
26
|
+
|
|
27
|
+
menu = _StudiosMenu()
|
|
28
|
+
studio = menu._get_studio(name=name, teamspace=teamspace)
|
|
29
|
+
|
|
30
|
+
try:
|
|
31
|
+
subprocess.run(["ssh", studio.name])
|
|
32
|
+
except Exception as ex:
|
|
33
|
+
print(f"Failed to establish SSH connection: {ex}")
|
|
34
|
+
sys.exit(1)
|