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
lightning_sdk/__init__.py
CHANGED
|
@@ -1,22 +1,31 @@
|
|
|
1
|
+
from lightning_sdk.__version__ import __version__
|
|
1
2
|
from lightning_sdk.agents import Agent
|
|
2
3
|
from lightning_sdk.ai_hub import AIHub
|
|
3
4
|
from lightning_sdk.constants import __GLOBAL_LIGHTNING_UNIQUE_IDS_STORE__ # noqa: F401
|
|
4
|
-
from lightning_sdk.
|
|
5
|
+
from lightning_sdk.deployment import Deployment
|
|
6
|
+
from lightning_sdk.helpers import VersionChecker, set_tqdm_envvars_noninteractive
|
|
5
7
|
from lightning_sdk.job import Job
|
|
6
|
-
from lightning_sdk.machine import Machine
|
|
8
|
+
from lightning_sdk.machine import CloudProvider, Machine
|
|
7
9
|
from lightning_sdk.mmt import MMT
|
|
8
10
|
from lightning_sdk.organization import Organization
|
|
9
11
|
from lightning_sdk.plugin import JobsPlugin, MultiMachineTrainingPlugin, Plugin, SlurmJobsPlugin
|
|
10
12
|
from lightning_sdk.status import Status
|
|
11
|
-
from lightning_sdk.studio import Studio
|
|
12
|
-
from lightning_sdk.teamspace import Teamspace
|
|
13
|
+
from lightning_sdk.studio import VM, Studio
|
|
14
|
+
from lightning_sdk.teamspace import ConnectionType, FolderLocation, Teamspace
|
|
13
15
|
from lightning_sdk.user import User
|
|
14
16
|
|
|
15
17
|
__all__ = [
|
|
18
|
+
"MMT",
|
|
19
|
+
"VM",
|
|
20
|
+
"AIHub",
|
|
21
|
+
"Agent",
|
|
22
|
+
"CloudProvider",
|
|
23
|
+
"ConnectionType",
|
|
24
|
+
"Deployment",
|
|
25
|
+
"FolderLocation",
|
|
16
26
|
"Job",
|
|
17
27
|
"JobsPlugin",
|
|
18
28
|
"Machine",
|
|
19
|
-
"MMT",
|
|
20
29
|
"MultiMachineTrainingPlugin",
|
|
21
30
|
"Organization",
|
|
22
31
|
"Plugin",
|
|
@@ -25,9 +34,10 @@ __all__ = [
|
|
|
25
34
|
"Studio",
|
|
26
35
|
"Teamspace",
|
|
27
36
|
"User",
|
|
28
|
-
"
|
|
29
|
-
"AIHub",
|
|
37
|
+
"__version__",
|
|
30
38
|
]
|
|
31
39
|
|
|
32
|
-
|
|
33
|
-
|
|
40
|
+
_version_checker = VersionChecker()
|
|
41
|
+
_version_checker.check_and_prompt_upgrade(__version__)
|
|
42
|
+
|
|
43
|
+
set_tqdm_envvars_noninteractive()
|
lightning_sdk/agents.py
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
from typing import List, Optional
|
|
2
2
|
|
|
3
3
|
from lightning_sdk.api.agents_api import AgentApi
|
|
4
|
+
from lightning_sdk.utils.logging import TrackCallsMeta
|
|
4
5
|
|
|
5
6
|
|
|
6
|
-
class Agent:
|
|
7
|
+
class Agent(metaclass=TrackCallsMeta):
|
|
7
8
|
def __init__(self, agent_id: str) -> None:
|
|
8
9
|
self.id = agent_id
|
|
9
10
|
self._agent_api = AgentApi()
|
lightning_sdk/ai_hub.py
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
|
|
2
2
|
from urllib.parse import quote
|
|
3
3
|
|
|
4
|
-
from lightning_sdk.api import AIHubApi
|
|
5
|
-
from lightning_sdk.
|
|
6
|
-
from lightning_sdk.lightning_cloud.
|
|
4
|
+
from lightning_sdk.api import AIHubApi
|
|
5
|
+
from lightning_sdk.api.utils import _get_cloud_url
|
|
6
|
+
from lightning_sdk.lightning_cloud.openapi.models import V1Deployment
|
|
7
7
|
from lightning_sdk.user import User
|
|
8
|
-
from lightning_sdk.utils.
|
|
8
|
+
from lightning_sdk.utils.logging import TrackCallsMeta
|
|
9
|
+
from lightning_sdk.utils.resolve import _resolve_teamspace
|
|
9
10
|
|
|
10
11
|
if TYPE_CHECKING:
|
|
11
12
|
from lightning_sdk import Organization, Teamspace
|
|
13
|
+
from lightning_sdk.machine import Machine
|
|
12
14
|
|
|
13
15
|
|
|
14
|
-
class AIHub:
|
|
16
|
+
class AIHub(metaclass=TrackCallsMeta):
|
|
15
17
|
"""An interface to interact with the AI Hub.
|
|
16
18
|
|
|
17
19
|
Example:
|
|
@@ -99,26 +101,6 @@ class AIHub:
|
|
|
99
101
|
results.append(result)
|
|
100
102
|
return results
|
|
101
103
|
|
|
102
|
-
def _authenticate(
|
|
103
|
-
self,
|
|
104
|
-
teamspace: Optional[Union[str, "Teamspace"]] = None,
|
|
105
|
-
org: Optional[Union[str, "Organization"]] = None,
|
|
106
|
-
user: Optional[Union[str, "User"]] = None,
|
|
107
|
-
) -> "Teamspace":
|
|
108
|
-
if self._auth is None:
|
|
109
|
-
self._auth = login.Auth()
|
|
110
|
-
try:
|
|
111
|
-
self._auth.authenticate()
|
|
112
|
-
user = User(name=UserApi()._get_user_by_id(self._auth.user_id).username)
|
|
113
|
-
except ConnectionError as e:
|
|
114
|
-
raise e
|
|
115
|
-
|
|
116
|
-
org = _resolve_org(org)
|
|
117
|
-
teamspace = _resolve_teamspace(teamspace=teamspace, org=org, user=user if org is None else None)
|
|
118
|
-
if teamspace is None:
|
|
119
|
-
raise ValueError("You need to pass a teamspace or an org for your deployment.")
|
|
120
|
-
return teamspace
|
|
121
|
-
|
|
122
104
|
def run(
|
|
123
105
|
self,
|
|
124
106
|
api_id: str,
|
|
@@ -127,7 +109,10 @@ class AIHub:
|
|
|
127
109
|
cloud_account: Optional[str] = None,
|
|
128
110
|
teamspace: Optional[Union[str, "Teamspace"]] = None,
|
|
129
111
|
org: Optional[Union[str, "Organization"]] = None,
|
|
130
|
-
|
|
112
|
+
user: Optional[Union[str, "User"]] = None,
|
|
113
|
+
machine: Optional[Union[str, "Machine"]] = None,
|
|
114
|
+
quantity: Optional[int] = None,
|
|
115
|
+
) -> V1Deployment:
|
|
131
116
|
"""Deploy an API from the AI Hub.
|
|
132
117
|
|
|
133
118
|
Example:
|
|
@@ -144,19 +129,27 @@ class AIHub:
|
|
|
144
129
|
api_arguments: Additional API argument, such as model name, or batch size.
|
|
145
130
|
name: Name for the deployed API. Defaults to None.
|
|
146
131
|
cloud_account: The cloud account where you want to run the template, such as "lightning-public-prod".
|
|
147
|
-
Defaults to None.
|
|
132
|
+
Defaults to None, which will use the cloud account of the teamspace.
|
|
148
133
|
teamspace: The team or group for deployment. Defaults to None.
|
|
149
|
-
org: The organization for deployment. Defaults to None.
|
|
134
|
+
org: The organization for deployment. Don't pass user with this. Defaults to None.
|
|
135
|
+
user: The user for deployment. Don't pass org with this. Defaults to None.
|
|
136
|
+
machine: The machine to run the deployment on. Defaults to the first option set in the AI Hub template.
|
|
150
137
|
|
|
151
138
|
Returns:
|
|
152
|
-
A
|
|
139
|
+
A V1Deployment object containing the name of the deployed API,
|
|
153
140
|
the URL to access it, and whether it is interruptible.
|
|
154
141
|
|
|
155
142
|
Raises:
|
|
156
143
|
ValueError: If a teamspace or organization is not provided.
|
|
157
144
|
ConnectionError: If there is an issue with logging in.
|
|
158
145
|
"""
|
|
159
|
-
|
|
146
|
+
if user is not None and org is not None:
|
|
147
|
+
raise ValueError("User and org are mutually exclusive. Please only specify the one owns the teamspace.")
|
|
148
|
+
|
|
149
|
+
teamspace = _resolve_teamspace(teamspace=teamspace, org=org, user=user)
|
|
150
|
+
if teamspace is None:
|
|
151
|
+
raise ValueError("You need to pass a teamspace or an org for your deployment.")
|
|
152
|
+
|
|
160
153
|
teamspace_id = teamspace.id
|
|
161
154
|
|
|
162
155
|
api_arguments = api_arguments or {}
|
|
@@ -166,20 +159,32 @@ class AIHub:
|
|
|
166
159
|
project_id=teamspace_id,
|
|
167
160
|
name=name,
|
|
168
161
|
api_arguments=api_arguments,
|
|
162
|
+
machine=machine,
|
|
163
|
+
quantity=quantity,
|
|
169
164
|
)
|
|
165
|
+
|
|
170
166
|
url = (
|
|
171
167
|
quote(
|
|
172
|
-
f"{
|
|
168
|
+
f"{_get_cloud_url}/{teamspace.owner.name}/{teamspace.name}/jobs/{deployment.name}",
|
|
173
169
|
safe=":/()",
|
|
174
170
|
)
|
|
175
171
|
+ "?app_id=deployment"
|
|
176
172
|
)
|
|
173
|
+
|
|
177
174
|
print("Deployment available at:", url)
|
|
178
175
|
|
|
179
|
-
return
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
176
|
+
return deployment
|
|
177
|
+
|
|
178
|
+
def delete_deployment(self, deployment: V1Deployment) -> None:
|
|
179
|
+
"""Delete a deployment from the AI Hub.
|
|
180
|
+
|
|
181
|
+
Example:
|
|
182
|
+
from lightning_sdk import AIHub
|
|
183
|
+
hub = AIHub()
|
|
184
|
+
deployment = hub.run("temp_xxxx")
|
|
185
|
+
hub.delete_deployment(deployment)
|
|
186
|
+
|
|
187
|
+
Args:
|
|
188
|
+
deployment: The deployment object returned by the run method.
|
|
189
|
+
"""
|
|
190
|
+
self._api.delete_api(deployment.id, deployment.project_id)
|
lightning_sdk/api/__init__.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from lightning_sdk.api.agents_api import AgentApi
|
|
2
2
|
from lightning_sdk.api.ai_hub_api import AIHubApi
|
|
3
|
+
from lightning_sdk.api.cloud_account_api import CloudAccountApi
|
|
3
4
|
from lightning_sdk.api.org_api import OrgApi
|
|
4
5
|
from lightning_sdk.api.studio_api import StudioApi
|
|
5
6
|
from lightning_sdk.api.teamspace_api import TeamspaceApi
|
|
@@ -12,4 +13,5 @@ __all__ = [
|
|
|
12
13
|
"UserApi",
|
|
13
14
|
"AgentApi",
|
|
14
15
|
"AIHubApi",
|
|
16
|
+
"CloudAccountApi",
|
|
15
17
|
]
|
lightning_sdk/api/ai_hub_api.py
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import traceback
|
|
2
|
-
|
|
2
|
+
import warnings
|
|
3
|
+
from typing import Dict, List, Optional, Tuple, Union
|
|
3
4
|
|
|
4
5
|
import backoff
|
|
5
6
|
|
|
7
|
+
from lightning_sdk.api.deployment_api import apply_change
|
|
8
|
+
from lightning_sdk.api.utils import _machine_to_compute_name
|
|
6
9
|
from lightning_sdk.lightning_cloud.openapi.models import (
|
|
7
10
|
CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs,
|
|
8
11
|
V1Deployment,
|
|
@@ -16,6 +19,7 @@ from lightning_sdk.lightning_cloud.openapi.models.v1_deployment_template_gallery
|
|
|
16
19
|
V1DeploymentTemplateGalleryResponse,
|
|
17
20
|
)
|
|
18
21
|
from lightning_sdk.lightning_cloud.rest_client import LightningClient
|
|
22
|
+
from lightning_sdk.machine import Machine
|
|
19
23
|
|
|
20
24
|
|
|
21
25
|
class AIHubApi:
|
|
@@ -92,15 +96,17 @@ class AIHubApi:
|
|
|
92
96
|
|
|
93
97
|
if p.type == V1DeploymentTemplateParameterType.CHECKBOX and p.checkbox:
|
|
94
98
|
api_arguments[p.name] = (
|
|
95
|
-
(p.checkbox.true_value or "
|
|
96
|
-
if p.checkbox.is_checked
|
|
97
|
-
else (p.checkbox.false_value or "False")
|
|
99
|
+
(p.checkbox.true_value or "") if p.checkbox.is_checked else (p.checkbox.false_value or "")
|
|
98
100
|
)
|
|
99
101
|
|
|
100
102
|
for p in parameters:
|
|
101
103
|
name = p.name
|
|
102
104
|
pattern = f"${{{name}}}"
|
|
103
105
|
if name in api_arguments:
|
|
106
|
+
if p.type == V1DeploymentTemplateParameterType.CHECKBOX and p.checkbox:
|
|
107
|
+
api_arguments[p.name] = (
|
|
108
|
+
(p.checkbox.true_value or "") if api_arguments[name] is True else (p.checkbox.false_value or "")
|
|
109
|
+
)
|
|
104
110
|
AIHubApi._update_parameters(job, p.placements, pattern, api_arguments[name])
|
|
105
111
|
elif not p.required:
|
|
106
112
|
AIHubApi._update_parameters(job, p.placements, pattern, "")
|
|
@@ -110,13 +116,46 @@ class AIHubApi:
|
|
|
110
116
|
return job
|
|
111
117
|
|
|
112
118
|
def run_api(
|
|
113
|
-
self,
|
|
119
|
+
self,
|
|
120
|
+
template_id: str,
|
|
121
|
+
project_id: str,
|
|
122
|
+
cloud_account: str,
|
|
123
|
+
name: Optional[str],
|
|
124
|
+
api_arguments: Dict[str, str],
|
|
125
|
+
machine: Optional[Union[str, Machine]],
|
|
126
|
+
quantity: Optional[int],
|
|
114
127
|
) -> V1Deployment:
|
|
115
128
|
template = self._client.deployment_templates_service_get_deployment_template(template_id)
|
|
116
129
|
name = name or template.name
|
|
117
130
|
template.spec_v2.endpoint.id = None
|
|
118
131
|
|
|
132
|
+
# These are needed to ensure templates with a max replicas of 0 will start on creation
|
|
133
|
+
if template.spec_v2.autoscaling.max_replicas == "0":
|
|
134
|
+
template.spec_v2.autoscaling.max_replicas = "1"
|
|
135
|
+
if not template.spec_v2.autoscaling.enabled:
|
|
136
|
+
template.spec_v2.autoscaling.enabled = True
|
|
137
|
+
|
|
119
138
|
AIHubApi._set_parameters(template.spec_v2.job, template.parameter_spec.parameters, api_arguments)
|
|
139
|
+
if machine and isinstance(machine, Machine):
|
|
140
|
+
apply_change(template.spec_v2.job, "instance_name", _machine_to_compute_name(machine))
|
|
141
|
+
apply_change(template.spec_v2.job, "instance_type", _machine_to_compute_name(machine))
|
|
142
|
+
elif machine and isinstance(machine, str):
|
|
143
|
+
apply_change(template.spec_v2.job, "instance_name", machine)
|
|
144
|
+
apply_change(template.spec_v2.job, "instance_type", machine)
|
|
145
|
+
|
|
146
|
+
if quantity != template.spec_v2.job.quantity:
|
|
147
|
+
# If the quantity is different from the published template quantity, override it with warnging
|
|
148
|
+
warnings.warn(
|
|
149
|
+
"Overriding the quantity of the template with the provided quantity. "
|
|
150
|
+
"This may result in unexpected behavior. "
|
|
151
|
+
f"Please verify the template (https://lightning.ai/lightning-ai/ai-hub/{template_id}) "
|
|
152
|
+
"and asscoiated parameters before running."
|
|
153
|
+
)
|
|
154
|
+
apply_change(template.spec_v2.job, "quantity", quantity)
|
|
155
|
+
|
|
156
|
+
# Override the cluster_id with the cloud_account if it is provided
|
|
157
|
+
if len(cloud_account) > 0:
|
|
158
|
+
apply_change(template.spec_v2.job, "cluster_id", cloud_account)
|
|
120
159
|
return self._client.jobs_service_create_deployment(
|
|
121
160
|
project_id=project_id,
|
|
122
161
|
body=CreateDeploymentRequestDefinesASpecForTheJobThatAllowsForAutoscalingJobs(
|
|
@@ -124,7 +163,11 @@ class AIHubApi:
|
|
|
124
163
|
cluster_id=cloud_account,
|
|
125
164
|
endpoint=template.spec_v2.endpoint,
|
|
126
165
|
name=name,
|
|
127
|
-
replicas=
|
|
166
|
+
replicas=1,
|
|
128
167
|
spec=template.spec_v2.job,
|
|
168
|
+
parent_template_id=template_id,
|
|
129
169
|
),
|
|
130
170
|
)
|
|
171
|
+
|
|
172
|
+
def delete_api(self, deployment_id: str, teamspace_id: str) -> None:
|
|
173
|
+
self._client.jobs_service_delete_deployment(project_id=teamspace_id, id=deployment_id)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
from typing import Any, List, Optional
|
|
2
|
+
|
|
3
|
+
from lightning_sdk.lightning_cloud.openapi import (
|
|
4
|
+
V1CloudSpaceEnvironmentType,
|
|
5
|
+
V1ListCloudSpaceEnvironmentTemplatesResponse,
|
|
6
|
+
)
|
|
7
|
+
from lightning_sdk.lightning_cloud.openapi.models.update import Update as BaseStudioUpdateBody
|
|
8
|
+
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_environment_template import (
|
|
9
|
+
V1CloudSpaceEnvironmentTemplate,
|
|
10
|
+
)
|
|
11
|
+
from lightning_sdk.lightning_cloud.rest_client import LightningClient
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class BaseStudioApi:
|
|
15
|
+
def __init__(self) -> None:
|
|
16
|
+
self._client = LightningClient(retry=False, max_tries=0)
|
|
17
|
+
|
|
18
|
+
def get_base_studio(self, base_studio_id: str, org_id: Optional[str] = None) -> V1CloudSpaceEnvironmentTemplate:
|
|
19
|
+
"""Retrieve the base studio by its ID."""
|
|
20
|
+
try:
|
|
21
|
+
return self._client.cloud_space_environment_template_service_get_cloud_space_environment_template(
|
|
22
|
+
base_studio_id, org_id=org_id or ""
|
|
23
|
+
)
|
|
24
|
+
except ValueError as e:
|
|
25
|
+
raise ValueError(f"Base studio {base_studio_id} does not exist") from e
|
|
26
|
+
|
|
27
|
+
def get_all_base_studios(self, org_id: Optional[str]) -> V1ListCloudSpaceEnvironmentTemplatesResponse:
|
|
28
|
+
"""Retrieve all base studios for a given organization."""
|
|
29
|
+
result = self._client.cloud_space_environment_template_service_list_managed_cloud_space_environment_templates(
|
|
30
|
+
org_id=org_id or ""
|
|
31
|
+
)
|
|
32
|
+
if org_id is not None:
|
|
33
|
+
org_templates = (
|
|
34
|
+
self._client.cloud_space_environment_template_service_list_cloud_space_environment_templates(
|
|
35
|
+
org_id=org_id
|
|
36
|
+
)
|
|
37
|
+
)
|
|
38
|
+
result.templates = result.templates + org_templates.templates
|
|
39
|
+
return result
|
|
40
|
+
|
|
41
|
+
def update_base_studio(
|
|
42
|
+
self,
|
|
43
|
+
base_studio_id: str,
|
|
44
|
+
org_id: str,
|
|
45
|
+
name: Optional[str] = None,
|
|
46
|
+
allowed_machines: Optional[List[str]] = None,
|
|
47
|
+
default_machine: Optional[str] = None,
|
|
48
|
+
disabled: Optional[bool] = None,
|
|
49
|
+
environment_type: Optional[V1CloudSpaceEnvironmentType] = None,
|
|
50
|
+
machine_image_version: Optional[str] = None,
|
|
51
|
+
setup_script_text: Optional[str] = None,
|
|
52
|
+
) -> V1CloudSpaceEnvironmentTemplate:
|
|
53
|
+
base_studio = self.get_base_studio(base_studio_id, org_id)
|
|
54
|
+
|
|
55
|
+
# Get the current configuration for the base studio
|
|
56
|
+
update_body = BaseStudioUpdateBody(
|
|
57
|
+
org_id=base_studio.org_id,
|
|
58
|
+
name=base_studio.name,
|
|
59
|
+
allowed_machines=base_studio.config.allowed_machines,
|
|
60
|
+
default_machine=base_studio.config.default_machine,
|
|
61
|
+
environment_type=base_studio.config.environment_type,
|
|
62
|
+
machine_image_version=base_studio.config.machine_image_version,
|
|
63
|
+
setup_script_text=base_studio.config.setup_script_text,
|
|
64
|
+
disabled=base_studio.disabled,
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
# Apply changes only if the new value is not None
|
|
68
|
+
apply_change(update_body, "name", name)
|
|
69
|
+
apply_change(update_body, "allowed_machines", allowed_machines)
|
|
70
|
+
apply_change(update_body, "default_machine", default_machine)
|
|
71
|
+
apply_change(update_body, "environment_type", environment_type)
|
|
72
|
+
apply_change(update_body, "machine_image_version", machine_image_version)
|
|
73
|
+
apply_change(update_body, "setup_script_text", setup_script_text)
|
|
74
|
+
apply_change(update_body, "disabled", disabled)
|
|
75
|
+
|
|
76
|
+
return self._client.cloud_space_environment_template_service_update_cloud_space_environment_template(
|
|
77
|
+
id=base_studio_id,
|
|
78
|
+
body=update_body,
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def apply_change(spec: Any, key: str, value: Any) -> bool:
|
|
83
|
+
if value is None:
|
|
84
|
+
return False
|
|
85
|
+
|
|
86
|
+
if getattr(spec, key) != value:
|
|
87
|
+
setattr(spec, key, value)
|
|
88
|
+
return True
|
|
89
|
+
|
|
90
|
+
return False
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
from functools import lru_cache
|
|
2
|
+
from typing import TYPE_CHECKING, Dict, List, Optional, Union
|
|
3
|
+
|
|
4
|
+
from lightning_sdk.lightning_cloud.openapi import (
|
|
5
|
+
Externalv1Cluster,
|
|
6
|
+
V1CloudProvider,
|
|
7
|
+
V1ClusterType,
|
|
8
|
+
V1ExternalCluster,
|
|
9
|
+
V1ListClusterAcceleratorsResponse,
|
|
10
|
+
V1ListDefaultClusterAcceleratorsResponse,
|
|
11
|
+
)
|
|
12
|
+
from lightning_sdk.lightning_cloud.rest_client import LightningClient
|
|
13
|
+
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from lightning_sdk.machine import CloudProvider
|
|
16
|
+
from lightning_sdk.teamspace import ConnectionType
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class CloudAccountApi:
|
|
20
|
+
"""Internal API client for API requests to cluster endpoints."""
|
|
21
|
+
|
|
22
|
+
def __init__(self) -> None:
|
|
23
|
+
self._client = LightningClient(max_tries=7)
|
|
24
|
+
|
|
25
|
+
def get_cloud_account(self, cloud_account_id: str, teamspace_id: str, org_id: str) -> Externalv1Cluster:
|
|
26
|
+
"""Gets the cluster from given params cluster_id, project_id and owner.
|
|
27
|
+
|
|
28
|
+
Args:
|
|
29
|
+
cloud_account_id: the cloud account to get
|
|
30
|
+
teamspace_id: the teamspace the cloud_account is supposed to be associated with
|
|
31
|
+
org_id: The owning org of this teamspace
|
|
32
|
+
|
|
33
|
+
"""
|
|
34
|
+
res = self._client.cluster_service_get_cluster(id=cloud_account_id, org_id=org_id, project_id=teamspace_id)
|
|
35
|
+
if not res:
|
|
36
|
+
raise ValueError(f"CloudAccount {cloud_account_id} does not exist")
|
|
37
|
+
return res
|
|
38
|
+
|
|
39
|
+
@lru_cache(maxsize=None) # noqa: B019
|
|
40
|
+
def list_cloud_accounts(self, teamspace_id: str) -> List[V1ExternalCluster]:
|
|
41
|
+
"""Lists the cloud accounts for a given teamspace.
|
|
42
|
+
|
|
43
|
+
Args:
|
|
44
|
+
teamspace_id: The teamspace to list cloud accounts for
|
|
45
|
+
|
|
46
|
+
Returns:
|
|
47
|
+
A list of cloud accounts
|
|
48
|
+
"""
|
|
49
|
+
res_project = self._client.cluster_service_list_project_clusters(
|
|
50
|
+
project_id=teamspace_id,
|
|
51
|
+
)
|
|
52
|
+
res_global = self._client.cluster_service_list_clusters(
|
|
53
|
+
project_id=teamspace_id,
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
# can't use set here because the cloud_accounts are not hashable
|
|
57
|
+
cloud_accounts = []
|
|
58
|
+
cloud_account_ids = []
|
|
59
|
+
for cloud_account in res_project.clusters + res_global.clusters:
|
|
60
|
+
if cloud_account.id not in cloud_account_ids:
|
|
61
|
+
cloud_accounts.append(cloud_account)
|
|
62
|
+
cloud_account_ids.append(cloud_account.id)
|
|
63
|
+
|
|
64
|
+
return cloud_accounts
|
|
65
|
+
|
|
66
|
+
def get_cloud_account_non_org(self, teamspace_id: str, cloud_account_id: str) -> Optional[V1ExternalCluster]:
|
|
67
|
+
for cluster in self.list_cloud_accounts(teamspace_id=teamspace_id):
|
|
68
|
+
if cluster.id == cloud_account_id:
|
|
69
|
+
return cluster
|
|
70
|
+
|
|
71
|
+
return None
|
|
72
|
+
|
|
73
|
+
@lru_cache(maxsize=None) # noqa: B019
|
|
74
|
+
def list_cloud_account_accelerators(
|
|
75
|
+
self,
|
|
76
|
+
teamspace_id: str,
|
|
77
|
+
cloud_account_id: str,
|
|
78
|
+
org_id: str,
|
|
79
|
+
) -> Union[V1ListClusterAcceleratorsResponse, V1ListDefaultClusterAcceleratorsResponse]:
|
|
80
|
+
"""Lists the accelerators for a given cloud account.
|
|
81
|
+
|
|
82
|
+
Args:
|
|
83
|
+
cloud_account_id: cluster ID to list accelerators for
|
|
84
|
+
"""
|
|
85
|
+
# map cloud_account to provider
|
|
86
|
+
cloud_provider = None
|
|
87
|
+
is_default = True
|
|
88
|
+
for cloud_account in self.list_cloud_accounts(teamspace_id=teamspace_id):
|
|
89
|
+
if cloud_account.id == cloud_account_id:
|
|
90
|
+
is_default = cloud_account.spec.cluster_type == V1ClusterType.GLOBAL
|
|
91
|
+
cloud_provider = self._get_cloud_account_provider(cloud_account)
|
|
92
|
+
break
|
|
93
|
+
|
|
94
|
+
if cloud_provider is None:
|
|
95
|
+
raise ValueError(
|
|
96
|
+
f"Cloud Account {cloud_account_id} is not a default cloud account. Are you in the correct teamspace?"
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
if is_default:
|
|
100
|
+
res = self._list_default_cluster_accelerators(teamspace_id=teamspace_id, cloud_provider=cloud_provider)
|
|
101
|
+
else:
|
|
102
|
+
res = self._client.cluster_service_list_cluster_accelerators(
|
|
103
|
+
id=cloud_account_id,
|
|
104
|
+
org_id=org_id,
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
if not res:
|
|
108
|
+
raise ValueError(f"CloudAccount {cloud_account_id} does not exist")
|
|
109
|
+
return res
|
|
110
|
+
|
|
111
|
+
def _list_default_cluster_accelerators(
|
|
112
|
+
self, teamspace_id: str, cloud_provider: Union[str, "CloudProvider"]
|
|
113
|
+
) -> V1ListDefaultClusterAcceleratorsResponse:
|
|
114
|
+
return self._client.cluster_service_list_default_cluster_accelerators(
|
|
115
|
+
project_id=teamspace_id, cloud_provider=str(cloud_provider)
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
@lru_cache(maxsize=None) # noqa: B019
|
|
119
|
+
def list_global_cloud_accounts(self, teamspace_id: str) -> List[V1ExternalCluster]:
|
|
120
|
+
"""Lists the accelerators for a given teamspace.
|
|
121
|
+
|
|
122
|
+
Args:
|
|
123
|
+
teamspace_id: id of the teamspace to get the associated cloud_accounts for
|
|
124
|
+
"""
|
|
125
|
+
cloud_accounts = self.list_cloud_accounts(teamspace_id=teamspace_id)
|
|
126
|
+
if not cloud_accounts:
|
|
127
|
+
raise ValueError(f"Teamspace {teamspace_id} does not exist")
|
|
128
|
+
filtered_cloud_accounts = filter(lambda x: x.spec.cluster_type == V1ClusterType.GLOBAL, cloud_accounts)
|
|
129
|
+
# TODO: remove aggregate filter once finished
|
|
130
|
+
filtered_cloud_accounts = filter(
|
|
131
|
+
lambda x: x.spec.driver != V1CloudProvider.LIGHTNING_AGGREGATE, filtered_cloud_accounts
|
|
132
|
+
)
|
|
133
|
+
return list(filtered_cloud_accounts)
|
|
134
|
+
|
|
135
|
+
def get_cloud_account_provider_mapping(self, teamspace_id: str) -> Dict["CloudProvider", V1ExternalCluster]:
|
|
136
|
+
"""Gets the cloud account <-> provider mapping."""
|
|
137
|
+
res = self.list_cloud_accounts(teamspace_id=teamspace_id)
|
|
138
|
+
cloud_accounts = {cloud_account.id: cloud_account for cloud_account in res}
|
|
139
|
+
providers = {cloud_account.id: self._get_cloud_account_provider(cloud_account) for cloud_account in res}
|
|
140
|
+
|
|
141
|
+
mapping = {}
|
|
142
|
+
for cloud_account_id, provider in providers.items():
|
|
143
|
+
if provider is not None:
|
|
144
|
+
mapping[provider] = cloud_accounts[cloud_account_id]
|
|
145
|
+
return mapping
|
|
146
|
+
|
|
147
|
+
@staticmethod
|
|
148
|
+
def _get_cloud_account_provider(cloud_account: Optional[V1ExternalCluster]) -> Optional["CloudProvider"]:
|
|
149
|
+
"""Determines the cloud provider based on the cloud_account configuration.
|
|
150
|
+
|
|
151
|
+
Args:
|
|
152
|
+
cloud_account: An optional Externalv1Cluster object containing cluster specifications
|
|
153
|
+
|
|
154
|
+
Returns:
|
|
155
|
+
CloudProvider: The determined cloud provider, defaults to AWS if no match is found
|
|
156
|
+
"""
|
|
157
|
+
from lightning_sdk.machine import CloudProvider
|
|
158
|
+
|
|
159
|
+
if not cloud_account:
|
|
160
|
+
return CloudProvider.AWS
|
|
161
|
+
|
|
162
|
+
if cloud_account.spec and cloud_account.spec.driver:
|
|
163
|
+
if cloud_account.spec.driver == V1CloudProvider.LIGHTNING:
|
|
164
|
+
return CloudProvider.LIGHTNING
|
|
165
|
+
|
|
166
|
+
if cloud_account.spec.driver == V1CloudProvider.DGX:
|
|
167
|
+
return CloudProvider.DGX
|
|
168
|
+
|
|
169
|
+
if cloud_account.spec:
|
|
170
|
+
if cloud_account.spec.aws_v1:
|
|
171
|
+
return CloudProvider.AWS
|
|
172
|
+
if cloud_account.spec.google_cloud_v1:
|
|
173
|
+
return CloudProvider.GCP
|
|
174
|
+
if cloud_account.spec.lambda_labs_v1:
|
|
175
|
+
return CloudProvider.LAMBDA_LABS
|
|
176
|
+
if cloud_account.spec.voltage_park_v1:
|
|
177
|
+
return CloudProvider.VOLTAGE_PARK
|
|
178
|
+
if cloud_account.spec.nebius_v1:
|
|
179
|
+
return CloudProvider.NEBIUS
|
|
180
|
+
|
|
181
|
+
return None
|
|
182
|
+
|
|
183
|
+
def resolve_cloud_account(
|
|
184
|
+
self,
|
|
185
|
+
teamspace_id: str,
|
|
186
|
+
cloud_account: Optional[str],
|
|
187
|
+
cloud_provider: Optional[Union["CloudProvider", str]],
|
|
188
|
+
default_cloud_account: Optional[str],
|
|
189
|
+
) -> Optional[str]:
|
|
190
|
+
from lightning_sdk.machine import CloudProvider
|
|
191
|
+
|
|
192
|
+
if cloud_provider and not isinstance(cloud_provider, CloudProvider):
|
|
193
|
+
cloud_provider = CloudProvider(cloud_provider)
|
|
194
|
+
|
|
195
|
+
if cloud_account:
|
|
196
|
+
if cloud_provider:
|
|
197
|
+
cloud_account_resp = self.get_cloud_account_non_org(teamspace_id, cloud_account)
|
|
198
|
+
cloud_provider_resp = self._get_cloud_account_provider(cloud_account_resp)
|
|
199
|
+
if cloud_provider_resp != cloud_provider:
|
|
200
|
+
raise RuntimeError(
|
|
201
|
+
f"Specified both cloud_provider ({cloud_provider}) and cloud_account ({cloud_account} "
|
|
202
|
+
f"has cloud provider {cloud_provider_resp}) which don't match!"
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
return cloud_account
|
|
206
|
+
|
|
207
|
+
if cloud_provider:
|
|
208
|
+
cloud_account_mapping = self.get_cloud_account_provider_mapping(teamspace_id=teamspace_id)
|
|
209
|
+
if cloud_provider and cloud_provider in cloud_account_mapping:
|
|
210
|
+
return cloud_account_mapping[cloud_provider].id
|
|
211
|
+
|
|
212
|
+
if default_cloud_account:
|
|
213
|
+
return default_cloud_account
|
|
214
|
+
|
|
215
|
+
return None
|
|
216
|
+
|
|
217
|
+
@staticmethod
|
|
218
|
+
def get_cloud_provider_for_connection_type(connection_type: "ConnectionType") -> "CloudProvider":
|
|
219
|
+
from lightning_sdk.machine import CloudProvider
|
|
220
|
+
from lightning_sdk.teamspace import ConnectionType
|
|
221
|
+
|
|
222
|
+
if connection_type == ConnectionType.EFS:
|
|
223
|
+
return CloudProvider.AWS
|
|
224
|
+
|
|
225
|
+
raise ValueError(f"ConnectionType {ConnectionType} currently not supported!")
|