lightning-sdk 2025.12.5__py3-none-any.whl → 2025.12.16__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lightning_sdk/__version__.py +1 -1
- lightning_sdk/api/agents_api.py +4 -4
- lightning_sdk/api/ai_hub_api.py +2 -2
- lightning_sdk/api/base_studio_api.py +3 -1
- lightning_sdk/api/deployment_api.py +2 -2
- lightning_sdk/api/job_api.py +25 -7
- lightning_sdk/api/license_api.py +2 -2
- lightning_sdk/api/mmt_api.py +5 -5
- lightning_sdk/api/pipeline_api.py +4 -4
- lightning_sdk/api/studio_api.py +33 -33
- lightning_sdk/api/teamspace_api.py +80 -31
- lightning_sdk/api/user_api.py +2 -2
- lightning_sdk/api/utils.py +17 -24
- lightning_sdk/cli/entrypoint.py +16 -12
- lightning_sdk/job/base.py +3 -0
- lightning_sdk/job/job.py +4 -0
- lightning_sdk/job/v1.py +2 -0
- lightning_sdk/job/v2.py +32 -0
- lightning_sdk/lightning_cloud/login.py +1 -1
- lightning_sdk/lightning_cloud/openapi/__init__.py +204 -195
- lightning_sdk/lightning_cloud/openapi/api/agent_service_api.py +28 -28
- lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +108 -108
- lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +69 -57
- lightning_sdk/lightning_cloud/openapi/api/blog_posts_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_environment_template_service_api.py +14 -14
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +331 -168
- lightning_sdk/lightning_cloud/openapi/api/cloudy_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +58 -58
- lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +24 -24
- lightning_sdk/lightning_cloud/openapi/api/dataset_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/deployment_templates_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/endpoint_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/experiments_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +16 -16
- lightning_sdk/lightning_cloud/openapi/api/incidents_service_api.py +18 -18
- lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +514 -254
- lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +67 -59
- lightning_sdk/lightning_cloud/openapi/api/lightningapp_instance_service_api.py +16 -16
- lightning_sdk/lightning_cloud/openapi/api/lightningapp_v2_service_api.py +6 -6
- lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +16 -16
- lightning_sdk/lightning_cloud/openapi/api/lit_dataset_service_api.py +42 -42
- lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +28 -28
- lightning_sdk/lightning_cloud/openapi/api/lit_page_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/api/lit_registry_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +42 -42
- lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +34 -34
- lightning_sdk/lightning_cloud/openapi/api/pipeline_templates_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/api/pipelines_service_api.py +38 -38
- lightning_sdk/lightning_cloud/openapi/api/product_license_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/api/profiler_service_api.py +12 -12
- lightning_sdk/lightning_cloud/openapi/api/projects_service_api.py +32 -32
- lightning_sdk/lightning_cloud/openapi/api/quest_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/schedules_service_api.py +48 -48
- lightning_sdk/lightning_cloud/openapi/api/secret_service_api.py +12 -12
- lightning_sdk/lightning_cloud/openapi/api/slurm_jobs_user_service_api.py +16 -16
- lightning_sdk/lightning_cloud/openapi/api/snowflake_service_api.py +16 -16
- lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +40 -40
- lightning_sdk/lightning_cloud/openapi/api/studio_jobs_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/user_service_api.py +20 -20
- lightning_sdk/lightning_cloud/openapi/api/volume_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +204 -181
- lightning_sdk/lightning_cloud/openapi/models/agent_service_agent_complete_part_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{multipartuploads_upload_id_body.py → agent_service_agent_upload_part_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_multipartuploads_body.py → agent_service_create_agent_multipart_upload_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{jobs_id_body.py → agent_service_update_agent_job_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{id_artifacts_body.py → agent_service_upload_agent_job_artifact_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_output_body.py → agent_service_upload_agent_job_output_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{id_contactowner_body.py → assistants_service_contact_assistant_owner_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{project_id_agents_body.py → assistants_service_create_assistant_body.py} +74 -74
- lightning_sdk/lightning_cloud/openapi/models/{project_id_agentmanagedendpoints_body.py → assistants_service_create_assistant_managed_endpoint_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{message_id_actions_body.py → assistants_service_create_conversation_message_action_body.py} +28 -26
- lightning_sdk/lightning_cloud/openapi/models/{models_model_id_body.py → assistants_service_create_model_metrics_body.py} +26 -26
- lightning_sdk/lightning_cloud/openapi/models/{assistant_id_conversations_body.py → assistants_service_start_conversation_body.py} +74 -74
- lightning_sdk/lightning_cloud/openapi/models/{agents_id_body.py → assistants_service_update_assistant_body.py} +102 -102
- lightning_sdk/lightning_cloud/openapi/models/{agentmanagedendpoints_id_body.py → assistants_service_update_assistant_managed_endpoint_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{models_id_body.py → assistants_service_update_assistant_managed_endpoint_model_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/assistants_service_update_conversation_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/{conversations_id_body1.py → assistants_service_update_conversation_like_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_content_body.py → assistants_service_update_conversation_message_content_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{messages_id_body.py → assistants_service_update_conversation_message_like_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/assistants_service_validate_assistant_status_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/assistants_service_validate_managed_model_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{user_id_upgradetrigger_body.py → billing_service_create_billing_upgrade_trigger_record_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{billing_checkout_body.py → billing_service_create_org_checkout_session_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{billing_transfer_body.py → billing_service_transfer_org_balance_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{billing_transfer_body1.py → billing_service_transfer_project_balance_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{blogposts_id_body.py → blog_posts_service_update_blog_post_body.py} +38 -38
- lightning_sdk/lightning_cloud/openapi/models/{update.py → cloud_space_environment_template_service_update_cloud_space_environment_template_body.py} +58 -58
- lightning_sdk/lightning_cloud/openapi/models/{apps_id_body1.py → cloud_space_service_create_cloud_space_app_instance_body.py} +34 -34
- lightning_sdk/lightning_cloud/openapi/models/{project_id_cloudspaces_body.py → cloud_space_service_create_cloud_space_body.py} +78 -78
- lightning_sdk/lightning_cloud/openapi/models/{cloudspace_id_metric_body.py → cloud_space_service_create_cloud_space_instance_metric_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{cloud_space_id_versions_body.py → cloud_space_service_create_cloud_space_version_body.py} +54 -54
- lightning_sdk/lightning_cloud/openapi/models/{cloud_space_id_versionpublications_body.py → cloud_space_service_create_cloud_space_version_publication_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{cloudspace_id_runs_body.py → cloud_space_service_create_lightning_run_body.py} +86 -86
- lightning_sdk/lightning_cloud/openapi/models/{id_get_body.py → cloud_space_service_create_lightning_run_instance_body.py} +58 -58
- lightning_sdk/lightning_cloud/openapi/models/{id_engage_body1.py → cloud_space_service_engage_cloud_space_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{id_execute_body1.py → cloud_space_service_execute_command_in_cloud_space_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{id_execute_body.py → cloud_space_service_execute_in_cloud_space_session_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_fork_body.py → cloud_space_service_fork_cloud_space_app_instance_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{id_fork_body1.py → cloud_space_service_fork_cloud_space_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/cloud_space_service_keep_alive_cloud_space_instance_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_proxies_body.py → cloud_space_service_publish_cloud_space_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_index_body1.py → cloud_space_service_refresh_cloud_space_index_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{cloudspace_id_systemmetrics_body.py → cloud_space_service_report_cloud_space_instance_system_metrics_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/cloud_space_service_request_cloud_space_access_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{id_start_body.py → cloud_space_service_start_cloud_space_instance_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{id_transfer_body.py → cloud_space_service_transfer_cloud_space_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{apps_id_body.py → cloud_space_service_update_cloud_space_app_body.py} +86 -86
- lightning_sdk/lightning_cloud/openapi/models/{cloudspaces_id_body.py → cloud_space_service_update_cloud_space_body.py} +114 -114
- lightning_sdk/lightning_cloud/openapi/models/{id_collaborate_body.py → cloud_space_service_update_cloud_space_collab_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{conversations_id_body.py → cloud_space_service_update_cloud_space_ide_body.py} +21 -21
- lightning_sdk/lightning_cloud/openapi/models/{id_index_body.py → cloud_space_service_update_cloud_space_index_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{id_codeconfig_body.py → cloud_space_service_update_cloud_space_instance_config_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{id_publications_body.py → cloud_space_service_update_cloud_space_publication_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{id_sleepconfig_body.py → cloud_space_service_update_cloud_space_sleep_config_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{versions_id_body.py → cloud_space_service_update_cloud_space_version_body.py} +46 -46
- lightning_sdk/lightning_cloud/openapi/models/{cloud_space_id_versionpublications_body1.py → cloud_space_service_update_cloud_space_version_publication_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{dataset_id_visibility_body.py → cloud_space_service_update_cloud_space_visibility_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{user_user_id_body.py → cloudy_service_update_user_cloudy_settings_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_capacityreservations_body.py → cluster_service_create_cluster_capacity_reservation_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{id_publications_body1.py → cluster_service_create_cluster_proxy_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_usagerestrictions_body.py → cluster_service_create_cluster_usage_restriction_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{create_machine_request_represents_the_request_to_create_a_machine.py → cluster_service_create_machine_body.py} +62 -62
- lightning_sdk/lightning_cloud/openapi/models/{project_id_clusters_body.py → cluster_service_create_project_cluster_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{server_id_alerts_body.py → cluster_service_create_server_alert_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_interrupt_server_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_capacityblock_body.py → cluster_service_purchase_capacity_block_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{servers_server_id_body.py → cluster_service_server_check_in_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_sleep_server_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{clusters_id_body.py → cluster_service_update_cluster_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{usagerestrictions_id_body.py → cluster_service_update_cluster_usage_restriction_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{clusters_id_body1.py → cluster_service_update_project_cluster_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{create.py → data_connection_service_create_data_connection_body.py} +82 -82
- lightning_sdk/lightning_cloud/openapi/models/{id_index_body2.py → data_connection_service_refresh_data_connection_index_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{setup.py → data_connection_service_setup_data_connection_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{update1.py → data_connection_service_update_data_connection_body.py} +50 -50
- lightning_sdk/lightning_cloud/openapi/models/{validate.py → data_connection_service_validate_data_connection_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{project_id_datasets_body.py → dataset_service_create_dataset_body.py} +70 -70
- lightning_sdk/lightning_cloud/openapi/models/{datasets_id_body.py → dataset_service_update_dataset_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{id_engage_body.py → deployment_templates_service_engage_deployment_template_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{deploymenttemplates_id_body.py → deployment_templates_service_update_deployment_template_body.py} +70 -70
- lightning_sdk/lightning_cloud/openapi/models/{project_id_endpoints_body.py → endpoint_service_create_endpoint_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{endpoints_id_body.py → endpoint_service_update_endpoint_body.py} +62 -62
- lightning_sdk/lightning_cloud/openapi/models/{experiment_name_variant_name_body.py → experiments_service_assign_variant_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{incident_id_messages_body.py → incidents_service_create_incident_message_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{incidents_id_body.py → incidents_service_update_incident_body.py} +34 -34
- lightning_sdk/lightning_cloud/openapi/models/{messages_message_id_body.py → incidents_service_update_incident_message_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{deployment_id_alertingpolicies_body1.py → jobs_service_create_deployment_alerting_policy_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs.py → jobs_service_create_deployment_body.py} +70 -70
- lightning_sdk/lightning_cloud/openapi/models/{project_id_jobs_body.py → jobs_service_create_job_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{project_id_multimachinejobs_body.py → jobs_service_create_multi_machine_job_body.py} +26 -26
- lightning_sdk/lightning_cloud/openapi/models/{job_id_reportroutingtelemetry_body.py → jobs_service_report_deployment_routing_telemetry_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{job_id_systemmetrics_body.py → jobs_service_report_job_system_metrics_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_reportlogsactivity_body.py → jobs_service_report_logs_activity_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_reportrestarttimings_body.py → jobs_service_report_restart_timings_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/jobs_service_restore_deployment_release_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{alertingevents_id_body.py → jobs_service_update_deployment_alerting_event_body.py} +54 -54
- lightning_sdk/lightning_cloud/openapi/models/jobs_service_update_deployment_alerting_events_bulk_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/{deployment_id_alertingpolicies_body.py → jobs_service_update_deployment_alerting_policy_body.py} +46 -46
- lightning_sdk/lightning_cloud/openapi/models/{deployments_id_body.py → jobs_service_update_deployment_body.py} +128 -126
- lightning_sdk/lightning_cloud/openapi/models/{id_visibility_body1.py → jobs_service_update_deployment_visibility_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{jobs_id_body1.py → jobs_service_update_job_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{id_index_body3.py → jobs_service_update_job_index_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{id_visibility_body.py → jobs_service_update_job_visibility_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{multimachinejobs_id_body.py → jobs_service_update_multi_machine_job_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{deployments_deployment_id_body.py → jobs_service_update_org_deployment_visibility_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{kubernetestemplates_id_body.py → k8_s_cluster_service_create_kubernetes_template_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{id_render_body.py → k8_s_cluster_service_render_kubernetes_template_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_metrics_body.py → k8_s_cluster_service_report_k8_s_cluster_metrics_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_kubernetestemplates_body.py → k8_s_cluster_service_update_kubernetes_template_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{appinstances_id_body.py → lightningapp_instance_service_update_lightningapp_instance_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{id_release_body.py → lightningapp_instance_service_update_lightningapp_instance_release_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_uploads_body.py → lightningapp_instance_service_upload_lightningapp_instance_artifact_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{project_id_getapp_body.py → lightningapp_v2_service_create_lightningapp_from_gallery_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{app_id_works_body.py → lightningwork_service_batch_update_lightningworks_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{spec_lightningapp_instance_id_works_body.py → lightningwork_service_create_lightningwork_body.py} +24 -24
- lightning_sdk/lightning_cloud/openapi/models/lightningwork_service_create_lightningwork_body_spec.py +487 -0
- lightning_sdk/lightning_cloud/openapi/models/{works_id_body.py → lightningwork_service_update_lightningwork_body.py} +16 -16
- lightning_sdk/lightning_cloud/openapi/models/{upload_id_complete_body1.py → lit_dataset_service_complete_lit_dataset_multi_part_upload_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/lit_dataset_service_complete_lit_dataset_upload_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{project_id_models_body.py → lit_dataset_service_create_lit_dataset_body.py} +26 -26
- lightning_sdk/lightning_cloud/openapi/models/{version_uploads_body1.py → lit_dataset_service_create_lit_dataset_multi_part_upload_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{dataset_id_versions_body.py → lit_dataset_service_create_lit_dataset_version_body.py} +16 -14
- lightning_sdk/lightning_cloud/openapi/models/{upload_id_parts_body.py → lit_dataset_service_get_lit_dataset_file_upload_urls_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{version_default_body.py → lit_dataset_service_set_lit_dataset_default_version_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{litdatasets_dataset_id_body.py → lit_dataset_service_update_lit_dataset_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{versions_version_body.py → lit_dataset_service_update_lit_dataset_version_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_visibility_body2.py → lit_dataset_service_update_lit_dataset_visibility_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{loggermetrics_id_body.py → lit_logger_service_append_logger_metrics_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{metrics_stream_id_loggerartifacts_body.py → lit_logger_service_create_logger_artifact_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{metricsstream_create_body.py → lit_logger_service_create_metrics_stream_body.py} +62 -62
- lightning_sdk/lightning_cloud/openapi/models/{metricsstream_delete_body.py → lit_logger_service_delete_metrics_stream_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{metricsstream_id_body.py → lit_logger_service_update_metrics_stream_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{model_id_visibility_body.py → lit_logger_service_update_metrics_stream_visibility_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{litloggermetrics_id_body.py → lit_logger_service_update_shared_metrics_stream_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{litpages_id_body.py → lit_page_service_update_lit_page_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{project_id_litregistry_body.py → lit_registry_service_create_lit_project_registry_body.py} +12 -12
- lightning_sdk/lightning_cloud/openapi/models/{litregistry_lit_repo_name_body.py → lit_registry_service_update_lit_repository_metadata_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/models_store_complete_model_upload_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{upload_id_complete_body.py → models_store_complete_multi_part_upload_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{project_id_litdatasets_body.py → models_store_create_model_body.py} +26 -26
- lightning_sdk/lightning_cloud/openapi/models/{model_id_versions_body.py → models_store_create_model_version_body.py} +20 -18
- lightning_sdk/lightning_cloud/openapi/models/{version_uploads_body.py → models_store_create_multi_part_upload_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{upload_id_parts_body1.py → models_store_get_model_file_upload_urls_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{version_default_body1.py → models_store_set_model_default_version_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{models_model_id_body1.py → models_store_update_model_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{versions_version_body1.py → models_store_update_model_version_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{cloudspace_id_visibility_body.py → models_store_update_model_visibility_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{approveautojoindomain_domain_body.py → organizations_service_approve_auto_join_domain_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/organizations_service_auto_join_org_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{org_id_memberships_body.py → organizations_service_create_org_membership_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{user_id_membershiprolebindings_body1.py → organizations_service_create_org_membership_role_binding_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{org_id_roles_body.py → organizations_service_create_org_role_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{orgs_id_body.py → organizations_service_update_organization_body.py} +162 -162
- lightning_sdk/lightning_cloud/openapi/models/{credits_autoreplenish_body.py → organizations_service_update_organization_credits_auto_replenish_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{validateautojoindomain_domain_body.py → organizations_service_validate_auto_join_domain_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{pipelinetemplates_id_body.py → pipeline_templates_service_update_pipeline_template_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{pipelines_id_body1.py → pipelines_service_create_child_pipeline_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{project_id_pipelines_body.py → pipelines_service_create_pipeline_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{pipelines_id_body.py → pipelines_service_update_pipeline_body.py} +74 -74
- lightning_sdk/lightning_cloud/openapi/models/{license_key_validate_body.py → product_license_service_validate_license_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{profiler_captures_body.py → profiler_service_create_profiler_capture_body.py} +34 -34
- lightning_sdk/lightning_cloud/openapi/models/{captures_id_body.py → profiler_service_update_profiler_capture_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{profiler_enabled_body.py → profiler_service_update_profiler_enabled_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{project_id_projectclustersbindings_body.py → projects_service_create_project_cluster_binding_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{project_id_memberships_body.py → projects_service_create_project_membership_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{user_id_membershiprolebindings_body.py → projects_service_create_project_membership_role_binding_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{projects_project_id_body.py → projects_service_create_project_role_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{project_id_invite_body.py → projects_service_invite_project_membership_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{projects_id_body.py → projects_service_update_project_body.py} +110 -110
- lightning_sdk/lightning_cloud/openapi/models/{project_tab_management_messages.py → projects_service_update_project_tab_order_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/protobuf_any.py +7 -58
- lightning_sdk/lightning_cloud/openapi/models/quest_service_complete_quest_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/quest_service_start_quest_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{project_id_schedules_body.py → schedules_service_create_schedule_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/schedules_service_create_schedule_run_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{schedules_id_body.py → schedules_service_update_schedule_body.py} +70 -70
- lightning_sdk/lightning_cloud/openapi/models/{project_id_secrets_body.py → secret_service_create_secret_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{secrets_id_body1.py → secret_service_update_secret_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{secrets_id_body.py → secret_service_update_user_secret_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_slurmusers_body.py → slurm_jobs_user_service_create_slurm_cluster_user_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{slurm_jobs_body.py → slurm_jobs_user_service_create_user_slurm_job_body.py} +54 -54
- lightning_sdk/lightning_cloud/openapi/models/{jobs_id_body2.py → slurm_jobs_user_service_update_user_slurm_job_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_action_body.py → slurm_jobs_user_service_user_slurm_job_action_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{project_id_snowflake_body.py → snowflake_service_create_snowflake_connection_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{query_query_id_body.py → snowflake_service_execute_snowflake_query_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{snowflake_export_body.py → snowflake_service_export_snowflake_query_body.py} +38 -38
- lightning_sdk/lightning_cloud/openapi/models/{snowflake_query_body.py → snowflake_service_update_snowflake_query_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/storage_service_abort_storage_transfer_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{storage_complete_body.py → storage_service_complete_upload_project_artifact_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{project_id_storagetransfers_body.py → storage_service_create_storage_transfer_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/storage_service_pause_storage_transfer_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/storage_service_resume_storage_transfer_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{project_id_storage_body.py → storage_service_upload_project_artifact_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{uploads_upload_id_body1.py → storage_service_upload_project_artifact_parts_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{uploads_upload_id_body.py → storage_service_upload_temporary_artifact_parts_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{storagetransfers_validate_body.py → storage_service_validate_storage_transfer_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{studioapp_jobs_body.py → studio_jobs_service_create_studio_job_body.py} +34 -34
- lightning_sdk/lightning_cloud/openapi/models/{jobs_id_body3.py → studio_jobs_service_update_studio_job_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{user_id_affiliatelinks_body.py → user_service_create_affiliate_link_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{affiliatelinks_id_body.py → user_service_update_affiliate_link_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{credits_autoreplenish_body1.py → user_service_update_user_credits_auto_replenish_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/user_service_upload_settings_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_autoscaling_target_metric.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_aws_data_connection.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_billing_subscription.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_conversation_response_chunk.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_checkout_session_request.py +4 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +6 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_type.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_event.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_experiment.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_generic_job.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_generic_job_spec.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_group_pod_metrics.py +6 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_health_check_http_get.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_incident.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job.py +6 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job_health_check_config.py +55 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +59 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_lit_dataset_version_archive.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_message_action.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_model_version_archive.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_event.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_step_status.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_severity.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1.py +4 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1_status.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_deployment_alerting_events_bulk_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_usage_report.py +6 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +183 -79
- lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_flow_compute_config.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/{volumes_id_body.py → volume_service_update_volume_body.py} +10 -10
- lightning_sdk/lightning_cloud/utils/data_connection.py +14 -8
- lightning_sdk/lightning_cloud/utils/dataset.py +3 -5
- lightning_sdk/machine.py +1 -0
- lightning_sdk/pipeline/steps.py +3 -0
- lightning_sdk/plugin.py +2 -2
- lightning_sdk/teamspace.py +44 -5
- {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/METADATA +1 -1
- {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/RECORD +315 -292
- {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/LICENSE +0 -0
- {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/WHEEL +0 -0
- {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/top_level.txt +0 -0
lightning_sdk/__version__.py
CHANGED
lightning_sdk/api/agents_api.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
from typing import List, Optional
|
|
2
2
|
|
|
3
3
|
from lightning_sdk.lightning_cloud.openapi import (
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
AssistantsServiceUpdateAssistantBody,
|
|
5
|
+
EndpointServiceUpdateEndpointBody,
|
|
6
6
|
V1Assistant,
|
|
7
7
|
V1Endpoint,
|
|
8
8
|
V1PromptSuggestion,
|
|
@@ -46,7 +46,7 @@ class AgentApi:
|
|
|
46
46
|
) -> V1Assistant:
|
|
47
47
|
"""Update the agent with provided details."""
|
|
48
48
|
agent = self.get_agent(agent_id)
|
|
49
|
-
body =
|
|
49
|
+
body = AssistantsServiceUpdateAssistantBody(
|
|
50
50
|
cloudspace_id=agent.cloudspace_id,
|
|
51
51
|
cluster_id=agent.cluster_id,
|
|
52
52
|
description=agent.description,
|
|
@@ -92,7 +92,7 @@ class AgentApi:
|
|
|
92
92
|
"""Update the agent endpoint with provided details."""
|
|
93
93
|
endpoint = self._get_agent_endpoint(teampsace_id=teamspace_id, endpoint_id=endpoint_id)
|
|
94
94
|
|
|
95
|
-
body =
|
|
95
|
+
body = EndpointServiceUpdateEndpointBody(
|
|
96
96
|
name=endpoint.name,
|
|
97
97
|
openai=V1UpstreamOpenAI(api_key=endpoint.openai.api_key, base_url=endpoint.openai.base_url),
|
|
98
98
|
)
|
lightning_sdk/api/ai_hub_api.py
CHANGED
|
@@ -7,7 +7,7 @@ import backoff
|
|
|
7
7
|
from lightning_sdk.api.deployment_api import apply_change
|
|
8
8
|
from lightning_sdk.api.utils import _machine_to_compute_name
|
|
9
9
|
from lightning_sdk.lightning_cloud.openapi.models import (
|
|
10
|
-
|
|
10
|
+
JobsServiceCreateDeploymentBody,
|
|
11
11
|
V1Deployment,
|
|
12
12
|
V1DeploymentTemplate,
|
|
13
13
|
V1DeploymentTemplateParameter,
|
|
@@ -158,7 +158,7 @@ class AIHubApi:
|
|
|
158
158
|
apply_change(template.spec_v2.job, "cluster_id", cloud_account)
|
|
159
159
|
return self._client.jobs_service_create_deployment(
|
|
160
160
|
project_id=project_id,
|
|
161
|
-
body=
|
|
161
|
+
body=JobsServiceCreateDeploymentBody(
|
|
162
162
|
autoscaling=template.spec_v2.autoscaling,
|
|
163
163
|
cluster_id=cloud_account,
|
|
164
164
|
endpoint=template.spec_v2.endpoint,
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
from typing import Any, List, Optional
|
|
2
2
|
|
|
3
|
+
from lightning_sdk.lightning_cloud.openapi import (
|
|
4
|
+
CloudSpaceEnvironmentTemplateServiceUpdateCloudSpaceEnvironmentTemplateBody as BaseStudioUpdateBody,
|
|
5
|
+
)
|
|
3
6
|
from lightning_sdk.lightning_cloud.openapi import (
|
|
4
7
|
V1CloudSpaceEnvironmentType,
|
|
5
8
|
V1ListCloudSpaceEnvironmentTemplatesResponse,
|
|
6
9
|
)
|
|
7
|
-
from lightning_sdk.lightning_cloud.openapi.models.update import Update as BaseStudioUpdateBody
|
|
8
10
|
from lightning_sdk.lightning_cloud.openapi.models.v1_cloud_space_environment_template import (
|
|
9
11
|
V1CloudSpaceEnvironmentTemplate,
|
|
10
12
|
)
|
|
@@ -3,7 +3,7 @@ from typing import Any, Dict, List, Literal, Optional, Union
|
|
|
3
3
|
|
|
4
4
|
from lightning_sdk.api.utils import _machine_to_compute_name, resolve_path_mappings
|
|
5
5
|
from lightning_sdk.lightning_cloud.openapi import (
|
|
6
|
-
|
|
6
|
+
JobsServiceCreateDeploymentBody,
|
|
7
7
|
V1AutoscalingSpec,
|
|
8
8
|
V1AutoscalingTargetMetric,
|
|
9
9
|
V1Deployment,
|
|
@@ -233,7 +233,7 @@ class DeploymentApi:
|
|
|
233
233
|
) -> V1Deployment:
|
|
234
234
|
return self._client.jobs_service_create_deployment(
|
|
235
235
|
project_id=deployment.project_id,
|
|
236
|
-
body=
|
|
236
|
+
body=JobsServiceCreateDeploymentBody(
|
|
237
237
|
cloudspace_id=deployment.cloudspace_id,
|
|
238
238
|
autoscaling=deployment.autoscaling,
|
|
239
239
|
cluster_id=deployment.spec.cluster_id,
|
lightning_sdk/api/job_api.py
CHANGED
|
@@ -11,11 +11,11 @@ from lightning_sdk.api.utils import (
|
|
|
11
11
|
from lightning_sdk.api.utils import _get_cloud_url as _cloud_url
|
|
12
12
|
from lightning_sdk.constants import __GLOBAL_LIGHTNING_UNIQUE_IDS_STORE__
|
|
13
13
|
from lightning_sdk.lightning_cloud.openapi import (
|
|
14
|
-
AppinstancesIdBody,
|
|
15
14
|
Externalv1LightningappInstance,
|
|
16
15
|
Externalv1Lightningwork,
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
JobsServiceCreateJobBody,
|
|
17
|
+
JobsServiceUpdateJobBody,
|
|
18
|
+
LightningappInstanceServiceUpdateLightningappInstanceBody,
|
|
19
19
|
V1CloudSpace,
|
|
20
20
|
V1ClusterAccelerator,
|
|
21
21
|
V1DownloadJobLogsResponse,
|
|
@@ -30,6 +30,7 @@ from lightning_sdk.lightning_cloud.openapi import (
|
|
|
30
30
|
V1LightningworkState,
|
|
31
31
|
V1ListLightningworkResponse,
|
|
32
32
|
V1UserRequestedComputeConfig,
|
|
33
|
+
V1Volume,
|
|
33
34
|
)
|
|
34
35
|
from lightning_sdk.lightning_cloud.rest_client import LightningClient
|
|
35
36
|
from lightning_sdk.machine import Machine
|
|
@@ -64,7 +65,9 @@ class JobApiV1:
|
|
|
64
65
|
return None
|
|
65
66
|
|
|
66
67
|
def stop_job(self, job_id: str, teamspace_id: str) -> None:
|
|
67
|
-
body =
|
|
68
|
+
body = LightningappInstanceServiceUpdateLightningappInstanceBody(
|
|
69
|
+
spec=V1LightningappInstanceSpec(desired_state=V1LightningappInstanceState.STOPPED)
|
|
70
|
+
)
|
|
68
71
|
self._client.lightningapp_instance_service_update_lightningapp_instance(
|
|
69
72
|
project_id=teamspace_id,
|
|
70
73
|
id=job_id,
|
|
@@ -251,7 +254,16 @@ class JobApiV2:
|
|
|
251
254
|
artifacts_remote: Optional[str], # deprecated in favor of path_mappings
|
|
252
255
|
max_runtime: Optional[int] = None,
|
|
253
256
|
reuse_snapshot: bool = True,
|
|
257
|
+
scratch_disks: Optional[Dict[str, int]] = None,
|
|
254
258
|
) -> V1Job:
|
|
259
|
+
if scratch_disks is not None:
|
|
260
|
+
sanitized_scratch_disks = {}
|
|
261
|
+
for k, v in scratch_disks.items():
|
|
262
|
+
sanitized_k = k if k.startswith("/teamspace/scratch/") else f"/teamspace/scratch/{k}"
|
|
263
|
+
sanitized_scratch_disks[sanitized_k] = v
|
|
264
|
+
else:
|
|
265
|
+
sanitized_scratch_disks = None
|
|
266
|
+
|
|
255
267
|
body = self._create_job_body(
|
|
256
268
|
name=name,
|
|
257
269
|
command=command,
|
|
@@ -269,6 +281,7 @@ class JobApiV2:
|
|
|
269
281
|
artifacts_remote=artifacts_remote,
|
|
270
282
|
max_runtime=max_runtime,
|
|
271
283
|
reuse_snapshot=reuse_snapshot,
|
|
284
|
+
scratch_disks=sanitized_scratch_disks,
|
|
272
285
|
)
|
|
273
286
|
|
|
274
287
|
job: V1Job = self._client.jobs_service_create_job(project_id=teamspace_id, body=body)
|
|
@@ -293,7 +306,8 @@ class JobApiV2:
|
|
|
293
306
|
reuse_snapshot: bool,
|
|
294
307
|
max_runtime: Optional[int] = None,
|
|
295
308
|
machine_image_version: Optional[str] = None,
|
|
296
|
-
|
|
309
|
+
scratch_disks: Optional[Dict[str, int]] = None,
|
|
310
|
+
) -> JobsServiceCreateJobBody:
|
|
297
311
|
env_vars = []
|
|
298
312
|
if env is not None:
|
|
299
313
|
for k, v in env.items():
|
|
@@ -314,6 +328,9 @@ class JobApiV2:
|
|
|
314
328
|
if max_runtime:
|
|
315
329
|
optional_spec_kwargs["requested_run_duration_seconds"] = str(max_runtime)
|
|
316
330
|
|
|
331
|
+
# don't do default dicts, as they'll be mutable. Create a fresh one here
|
|
332
|
+
scratch_disks = scratch_disks or {}
|
|
333
|
+
|
|
317
334
|
spec = V1JobSpec(
|
|
318
335
|
cloudspace_id=studio_id or "",
|
|
319
336
|
cluster_id=cloud_account or "",
|
|
@@ -328,9 +345,10 @@ class JobApiV2:
|
|
|
328
345
|
image_secret_ref=image_credentials or "",
|
|
329
346
|
path_mappings=path_mappings_list,
|
|
330
347
|
machine_image_version=machine_image_version,
|
|
348
|
+
volumes=[V1Volume(path=k, size_gb=v, ephemeral=True) for k, v in scratch_disks.items()],
|
|
331
349
|
**optional_spec_kwargs,
|
|
332
350
|
)
|
|
333
|
-
return
|
|
351
|
+
return JobsServiceCreateJobBody(name=name, spec=spec)
|
|
334
352
|
|
|
335
353
|
def get_job_by_name(self, name: str, teamspace_id: str) -> V1Job:
|
|
336
354
|
job: V1Job = self._client.jobs_service_find_job(project_id=teamspace_id, name=name)
|
|
@@ -355,7 +373,7 @@ class JobApiV2:
|
|
|
355
373
|
return
|
|
356
374
|
|
|
357
375
|
if current_state != Status.Stopping:
|
|
358
|
-
update_body =
|
|
376
|
+
update_body = JobsServiceUpdateJobBody(state=self.v2_job_state_stop)
|
|
359
377
|
self._client.jobs_service_update_job(body=update_body, project_id=teamspace_id, id=job_id)
|
|
360
378
|
|
|
361
379
|
while True:
|
lightning_sdk/api/license_api.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from lightning_sdk.api.utils import _get_cloud_url as _cloud_url
|
|
2
2
|
from lightning_sdk.lightning_cloud.login import Auth
|
|
3
|
-
from lightning_sdk.lightning_cloud.openapi import
|
|
3
|
+
from lightning_sdk.lightning_cloud.openapi import ProductLicenseServiceApi, ProductLicenseServiceValidateLicenseBody
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class LicenseApi:
|
|
@@ -26,7 +26,7 @@ class LicenseApi:
|
|
|
26
26
|
"""
|
|
27
27
|
try:
|
|
28
28
|
response = self._api.product_license_service_validate_license(
|
|
29
|
-
body=
|
|
29
|
+
body=ProductLicenseServiceValidateLicenseBody(product_id=product_id), license_key=license_key
|
|
30
30
|
)
|
|
31
31
|
return response.is_valid
|
|
32
32
|
except Exception:
|
lightning_sdk/api/mmt_api.py
CHANGED
|
@@ -12,8 +12,8 @@ from lightning_sdk.api.utils import _get_cloud_url as _cloud_url
|
|
|
12
12
|
from lightning_sdk.constants import __GLOBAL_LIGHTNING_UNIQUE_IDS_STORE__
|
|
13
13
|
from lightning_sdk.lightning_cloud.openapi import (
|
|
14
14
|
Externalv1LightningappInstance,
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
JobsServiceCreateMultiMachineJobBody,
|
|
16
|
+
JobsServiceUpdateMultiMachineJobBody,
|
|
17
17
|
V1CloudSpace,
|
|
18
18
|
V1EnvVar,
|
|
19
19
|
V1Job,
|
|
@@ -133,7 +133,7 @@ class MMTApiV2:
|
|
|
133
133
|
reuse_snapshot: bool,
|
|
134
134
|
max_runtime: Optional[int] = None,
|
|
135
135
|
machine_image_version: Optional[str] = None,
|
|
136
|
-
) ->
|
|
136
|
+
) -> JobsServiceCreateMultiMachineJobBody:
|
|
137
137
|
env_vars = []
|
|
138
138
|
if env is not None:
|
|
139
139
|
for k, v in env.items():
|
|
@@ -170,7 +170,7 @@ class MMTApiV2:
|
|
|
170
170
|
machine_image_version=machine_image_version,
|
|
171
171
|
**optional_spec_kwargs,
|
|
172
172
|
)
|
|
173
|
-
return
|
|
173
|
+
return JobsServiceCreateMultiMachineJobBody(
|
|
174
174
|
name=name, spec=spec, cluster_id=cloud_account or "", machines=num_machines
|
|
175
175
|
)
|
|
176
176
|
|
|
@@ -199,7 +199,7 @@ class MMTApiV2:
|
|
|
199
199
|
return
|
|
200
200
|
|
|
201
201
|
if current_state != Status.Stopped:
|
|
202
|
-
update_body =
|
|
202
|
+
update_body = JobsServiceUpdateMultiMachineJobBody(desired_state=V1MultiMachineJobState.STOP)
|
|
203
203
|
self._client.jobs_service_update_multi_machine_job(body=update_body, project_id=teamspace_id, id=job_id)
|
|
204
204
|
|
|
205
205
|
while True:
|
|
@@ -2,8 +2,8 @@ from typing import TYPE_CHECKING, List, Optional, Union
|
|
|
2
2
|
|
|
3
3
|
from lightning_sdk.api.cloud_account_api import CloudAccountApi
|
|
4
4
|
from lightning_sdk.lightning_cloud.openapi.models import (
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
PipelinesServiceCreatePipelineBody,
|
|
6
|
+
SchedulesServiceCreateScheduleBody,
|
|
7
7
|
V1DeletePipelineResponse,
|
|
8
8
|
V1Pipeline,
|
|
9
9
|
V1PipelineStep,
|
|
@@ -52,7 +52,7 @@ class PipelineApi:
|
|
|
52
52
|
schedules: List["Schedule"],
|
|
53
53
|
parent_pipeline_id: Optional[str],
|
|
54
54
|
) -> V1Pipeline:
|
|
55
|
-
body =
|
|
55
|
+
body = PipelinesServiceCreatePipelineBody(
|
|
56
56
|
name=name,
|
|
57
57
|
steps=steps,
|
|
58
58
|
shared_filesystem=self._prepare_shared_filesystem(shared_filesystem, steps, teamspace),
|
|
@@ -69,7 +69,7 @@ class PipelineApi:
|
|
|
69
69
|
|
|
70
70
|
if len(schedules):
|
|
71
71
|
for schedule in schedules:
|
|
72
|
-
body =
|
|
72
|
+
body = SchedulesServiceCreateScheduleBody(
|
|
73
73
|
cron_expression=schedule.cron_expression,
|
|
74
74
|
display_name=schedule.name,
|
|
75
75
|
resource_id=pipeline.id,
|
lightning_sdk/api/studio_api.py
CHANGED
|
@@ -25,15 +25,18 @@ from lightning_sdk.api.utils import (
|
|
|
25
25
|
from lightning_sdk.constants import _LIGHTNING_DEBUG
|
|
26
26
|
from lightning_sdk.lightning_cloud.login import Auth
|
|
27
27
|
from lightning_sdk.lightning_cloud.openapi import (
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
AssistantsServiceCreateAssistantBody,
|
|
29
|
+
AssistantsServiceCreateAssistantManagedEndpointBody,
|
|
30
|
+
CloudSpaceServiceCreateCloudSpaceBody,
|
|
31
|
+
CloudSpaceServiceCreateLightningRunBody,
|
|
32
|
+
CloudSpaceServiceExecuteCommandInCloudSpaceBody,
|
|
33
|
+
CloudSpaceServiceForkCloudSpaceBody,
|
|
34
|
+
CloudSpaceServiceStartCloudSpaceInstanceBody,
|
|
35
|
+
CloudSpaceServiceUpdateCloudSpaceBody,
|
|
36
|
+
CloudSpaceServiceUpdateCloudSpaceInstanceConfigBody,
|
|
37
|
+
CloudSpaceServiceUpdateCloudSpaceSleepConfigBody,
|
|
38
|
+
EndpointServiceCreateEndpointBody,
|
|
30
39
|
Externalv1LightningappInstance,
|
|
31
|
-
IdCodeconfigBody,
|
|
32
|
-
IdExecuteBody1,
|
|
33
|
-
IdForkBody1,
|
|
34
|
-
IdSleepconfigBody,
|
|
35
|
-
IdStartBody,
|
|
36
|
-
ProjectIdCloudspacesBody,
|
|
37
40
|
V1Assistant,
|
|
38
41
|
V1CloudSpace,
|
|
39
42
|
V1CloudSpaceInstanceConfig,
|
|
@@ -41,27 +44,20 @@ from lightning_sdk.lightning_cloud.openapi import (
|
|
|
41
44
|
V1CloudSpaceSourceType,
|
|
42
45
|
V1CloudSpaceState,
|
|
43
46
|
V1ClusterAccelerator,
|
|
47
|
+
V1Endpoint,
|
|
44
48
|
V1EndpointType,
|
|
45
49
|
V1EnvVar,
|
|
46
50
|
V1GetCloudSpaceInstanceStatusResponse,
|
|
47
51
|
V1GetLongRunningCommandInCloudSpaceResponse,
|
|
48
52
|
V1LoginRequest,
|
|
53
|
+
V1ManagedEndpoint,
|
|
54
|
+
V1ManagedModel,
|
|
49
55
|
V1Plugin,
|
|
50
56
|
V1PluginsListResponse,
|
|
51
57
|
V1UpstreamCloudSpace,
|
|
58
|
+
V1UpstreamManaged,
|
|
52
59
|
V1UserRequestedComputeConfig,
|
|
53
60
|
)
|
|
54
|
-
from lightning_sdk.lightning_cloud.openapi.models import ProjectIdEndpointsBody
|
|
55
|
-
from lightning_sdk.lightning_cloud.openapi.models.project_id_agentmanagedendpoints_body import (
|
|
56
|
-
ProjectIdAgentmanagedendpointsBody,
|
|
57
|
-
)
|
|
58
|
-
from lightning_sdk.lightning_cloud.openapi.models.project_id_agents_body import (
|
|
59
|
-
ProjectIdAgentsBody,
|
|
60
|
-
)
|
|
61
|
-
from lightning_sdk.lightning_cloud.openapi.models.v1_endpoint import V1Endpoint
|
|
62
|
-
from lightning_sdk.lightning_cloud.openapi.models.v1_managed_endpoint import V1ManagedEndpoint
|
|
63
|
-
from lightning_sdk.lightning_cloud.openapi.models.v1_managed_model import V1ManagedModel
|
|
64
|
-
from lightning_sdk.lightning_cloud.openapi.models.v1_upstream_managed import V1UpstreamManaged
|
|
65
61
|
from lightning_sdk.lightning_cloud.rest_client import LightningClient
|
|
66
62
|
from lightning_sdk.machine import Machine
|
|
67
63
|
|
|
@@ -132,7 +128,7 @@ class StudioApi:
|
|
|
132
128
|
cloud_space_environment_template_id: Optional[str] = None,
|
|
133
129
|
) -> V1CloudSpace:
|
|
134
130
|
"""Create a Studio with a given name in a given Teamspace on a possibly given cloud_account."""
|
|
135
|
-
body =
|
|
131
|
+
body = CloudSpaceServiceCreateCloudSpaceBody(
|
|
136
132
|
cluster_id=cloud_account,
|
|
137
133
|
name=name,
|
|
138
134
|
display_name=name,
|
|
@@ -144,7 +140,7 @@ class StudioApi:
|
|
|
144
140
|
)
|
|
145
141
|
studio = self._client.cloud_space_service_create_cloud_space(body, teamspace_id)
|
|
146
142
|
|
|
147
|
-
run_body =
|
|
143
|
+
run_body = CloudSpaceServiceCreateLightningRunBody(
|
|
148
144
|
cluster_id=studio.cluster_id,
|
|
149
145
|
local_source=True,
|
|
150
146
|
)
|
|
@@ -187,7 +183,7 @@ class StudioApi:
|
|
|
187
183
|
if max_runtime is not None:
|
|
188
184
|
optional_kwargs_compute_body["requested_run_duration_seconds"] = str(max_runtime)
|
|
189
185
|
self._client.cloud_space_service_start_cloud_space_instance(
|
|
190
|
-
|
|
186
|
+
CloudSpaceServiceStartCloudSpaceInstanceBody(
|
|
191
187
|
compute_config=V1UserRequestedComputeConfig(
|
|
192
188
|
name=_machine_to_compute_name(machine),
|
|
193
189
|
spot=interruptible,
|
|
@@ -223,7 +219,7 @@ class StudioApi:
|
|
|
223
219
|
if max_runtime is not None:
|
|
224
220
|
optional_kwargs_compute_body["requested_run_duration_seconds"] = str(max_runtime)
|
|
225
221
|
self._client.cloud_space_service_start_cloud_space_instance(
|
|
226
|
-
|
|
222
|
+
CloudSpaceServiceStartCloudSpaceInstanceBody(
|
|
227
223
|
compute_config=V1UserRequestedComputeConfig(
|
|
228
224
|
name=_machine_to_compute_name(machine),
|
|
229
225
|
spot=interruptible,
|
|
@@ -272,7 +268,9 @@ class StudioApi:
|
|
|
272
268
|
"""Switches given Studio to a new machine type."""
|
|
273
269
|
compute_name = _machine_to_compute_name(machine)
|
|
274
270
|
# TODO: UI sends disk size here, maybe we need to also?
|
|
275
|
-
body =
|
|
271
|
+
body = CloudSpaceServiceUpdateCloudSpaceInstanceConfigBody(
|
|
272
|
+
compute_config=V1UserRequestedComputeConfig(name=compute_name, spot=interruptible)
|
|
273
|
+
)
|
|
276
274
|
if cloud_account:
|
|
277
275
|
body.compute_config.cluster_override = cloud_account
|
|
278
276
|
self._client.cloud_space_service_update_cloud_space_instance_config(
|
|
@@ -516,7 +514,7 @@ class StudioApi:
|
|
|
516
514
|
timeout: wait for this many seconds for the command to finish.
|
|
517
515
|
"""
|
|
518
516
|
response_submit = self._client.cloud_space_service_execute_command_in_cloud_space(
|
|
519
|
-
|
|
517
|
+
CloudSpaceServiceExecuteCommandInCloudSpaceBody("; ".join(commands), detached=True),
|
|
520
518
|
project_id=teamspace_id,
|
|
521
519
|
id=studio_id,
|
|
522
520
|
)
|
|
@@ -556,7 +554,7 @@ class StudioApi:
|
|
|
556
554
|
def run_studio_commands(self, studio_id: str, teamspace_id: str, *commands: str) -> Tuple[str, int]:
|
|
557
555
|
"""Run given commands in a given Studio."""
|
|
558
556
|
response_submit = self._client.cloud_space_service_execute_command_in_cloud_space(
|
|
559
|
-
|
|
557
|
+
CloudSpaceServiceExecuteCommandInCloudSpaceBody("; ".join(commands), detached=True),
|
|
560
558
|
project_id=teamspace_id,
|
|
561
559
|
id=studio_id,
|
|
562
560
|
)
|
|
@@ -598,7 +596,7 @@ class StudioApi:
|
|
|
598
596
|
idle_shutdown_seconds: Optional[int] = None,
|
|
599
597
|
) -> V1CloudSpaceInstanceConfig:
|
|
600
598
|
"""Update the autoshutdown time and behaviour of the given Studio."""
|
|
601
|
-
body =
|
|
599
|
+
body = CloudSpaceServiceUpdateCloudSpaceSleepConfigBody(
|
|
602
600
|
disable_auto_shutdown=not enabled if enabled is not None else None,
|
|
603
601
|
idle_shutdown_seconds=idle_shutdown_seconds,
|
|
604
602
|
)
|
|
@@ -629,7 +627,9 @@ class StudioApi:
|
|
|
629
627
|
init_kwargs["org"] = OrgApi()._get_org_by_id(target_teamspace.owner_id).name
|
|
630
628
|
|
|
631
629
|
new_cloudspace = self._client.cloud_space_service_fork_cloud_space(
|
|
632
|
-
|
|
630
|
+
CloudSpaceServiceForkCloudSpaceBody(target_project_id=target_teamspace_id, new_name=new_name),
|
|
631
|
+
project_id=teamspace_id,
|
|
632
|
+
id=studio_id,
|
|
633
633
|
)
|
|
634
634
|
|
|
635
635
|
while self.get_studio_by_id(new_cloudspace.id, target_teamspace_id).state != V1CloudSpaceState.READY:
|
|
@@ -966,7 +966,7 @@ class StudioApi:
|
|
|
966
966
|
"""Starts a new port to the given Studio."""
|
|
967
967
|
endpoint = self._client.endpoint_service_create_endpoint(
|
|
968
968
|
project_id=teamspace_id,
|
|
969
|
-
body=
|
|
969
|
+
body=EndpointServiceCreateEndpointBody(
|
|
970
970
|
name=name,
|
|
971
971
|
ports=[str(port)],
|
|
972
972
|
cloudspace=V1UpstreamCloudSpace(
|
|
@@ -983,7 +983,7 @@ class StudioApi:
|
|
|
983
983
|
org_id = target_teamspace.owner_id
|
|
984
984
|
endpoint = self._client.endpoint_service_create_endpoint(
|
|
985
985
|
project_id=teamspace_id,
|
|
986
|
-
body=
|
|
986
|
+
body=EndpointServiceCreateEndpointBody(
|
|
987
987
|
ports=[str(port)],
|
|
988
988
|
cloudspace=V1UpstreamCloudSpace(
|
|
989
989
|
cloudspace_id=studio_id,
|
|
@@ -994,7 +994,7 @@ class StudioApi:
|
|
|
994
994
|
)
|
|
995
995
|
valid_url = endpoint.urls[0]
|
|
996
996
|
managed_endpoint = self._client.assistants_service_create_assistant_managed_endpoint(
|
|
997
|
-
body=
|
|
997
|
+
body=AssistantsServiceCreateAssistantManagedEndpointBody(
|
|
998
998
|
endpoint=V1ManagedEndpoint(
|
|
999
999
|
name=assistant_name,
|
|
1000
1000
|
base_url=valid_url + "/v1",
|
|
@@ -1009,7 +1009,7 @@ class StudioApi:
|
|
|
1009
1009
|
project_id=teamspace_id,
|
|
1010
1010
|
)
|
|
1011
1011
|
|
|
1012
|
-
body =
|
|
1012
|
+
body = AssistantsServiceCreateAssistantBody(
|
|
1013
1013
|
endpoint=V1Endpoint(
|
|
1014
1014
|
cloudspace=V1UpstreamCloudSpace(cloudspace_id=studio_id),
|
|
1015
1015
|
name=assistant_name,
|
|
@@ -1040,7 +1040,7 @@ class StudioApi:
|
|
|
1040
1040
|
)
|
|
1041
1041
|
|
|
1042
1042
|
def _update_cloudspace(self, studio: V1CloudSpace, teamspace_id: str, key: str, value: Any) -> None:
|
|
1043
|
-
body =
|
|
1043
|
+
body = CloudSpaceServiceUpdateCloudSpaceBody(
|
|
1044
1044
|
code_url=studio.code_url,
|
|
1045
1045
|
data_connection_mounts=studio.data_connection_mounts,
|
|
1046
1046
|
description=studio.description,
|
|
@@ -17,14 +17,14 @@ from lightning_sdk.api.utils import (
|
|
|
17
17
|
)
|
|
18
18
|
from lightning_sdk.lightning_cloud.login import Auth
|
|
19
19
|
from lightning_sdk.lightning_cloud.openapi import (
|
|
20
|
-
|
|
20
|
+
AssistantsServiceCreateAssistantBody,
|
|
21
|
+
DataConnectionServiceCreateDataConnectionBody,
|
|
21
22
|
Externalv1LightningappInstance,
|
|
22
|
-
ModelIdVersionsBody,
|
|
23
23
|
ModelsStoreApi,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
ModelsStoreCreateModelBody,
|
|
25
|
+
ModelsStoreCreateModelVersionBody,
|
|
26
|
+
SecretServiceCreateSecretBody,
|
|
27
|
+
SecretServiceUpdateSecretBody,
|
|
28
28
|
V1Assistant,
|
|
29
29
|
V1CloudSpace,
|
|
30
30
|
V1ClusterAccelerator,
|
|
@@ -47,6 +47,7 @@ from lightning_sdk.lightning_cloud.openapi import (
|
|
|
47
47
|
V1UpstreamOpenAI,
|
|
48
48
|
)
|
|
49
49
|
from lightning_sdk.lightning_cloud.rest_client import LightningClient
|
|
50
|
+
from lightning_sdk.machine import Machine
|
|
50
51
|
|
|
51
52
|
__all__ = ["TeamspaceApi"]
|
|
52
53
|
|
|
@@ -174,7 +175,7 @@ class TeamspaceApi:
|
|
|
174
175
|
|
|
175
176
|
([V1PromptSuggestion(content=suggestion) for suggestion in prompt_suggestions] if prompt_suggestions else None)
|
|
176
177
|
|
|
177
|
-
body =
|
|
178
|
+
body = AssistantsServiceCreateAssistantBody(
|
|
178
179
|
endpoint=endpoint,
|
|
179
180
|
name=name,
|
|
180
181
|
model=model,
|
|
@@ -209,12 +210,14 @@ class TeamspaceApi:
|
|
|
209
210
|
models = self.models_api.models_store_list_models(project_id=teamspace_id, name=name).models
|
|
210
211
|
if len(models) == 0:
|
|
211
212
|
return self.models_api.models_store_create_model(
|
|
212
|
-
body=
|
|
213
|
+
body=ModelsStoreCreateModelBody(
|
|
214
|
+
cluster_id=cloud_account, metadata=metadata, name=name, private=private
|
|
215
|
+
),
|
|
213
216
|
project_id=teamspace_id,
|
|
214
217
|
)
|
|
215
218
|
assert len(models) == 1, "Multiple models with the same name found"
|
|
216
219
|
return self.models_api.models_store_create_model_version(
|
|
217
|
-
body=
|
|
220
|
+
body=ModelsStoreCreateModelVersionBody(cluster_id=cloud_account, version=version),
|
|
218
221
|
project_id=teamspace_id,
|
|
219
222
|
model_id=models[0].id,
|
|
220
223
|
)
|
|
@@ -321,11 +324,47 @@ class TeamspaceApi:
|
|
|
321
324
|
jobs = self._client.jobs_service_list_multi_machine_jobs(project_id=teamspace_id).multi_machine_jobs
|
|
322
325
|
return apps, jobs
|
|
323
326
|
|
|
324
|
-
def list_machines(
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
327
|
+
def list_machines(
|
|
328
|
+
self,
|
|
329
|
+
teamspace_id: str,
|
|
330
|
+
cloud_accounts: List[str],
|
|
331
|
+
machine: Optional[Machine] = None,
|
|
332
|
+
org_id: Optional[str] = None,
|
|
333
|
+
) -> List[V1ClusterAccelerator]:
|
|
334
|
+
from lightning_sdk.api.cloud_account_api import CloudAccountApi
|
|
335
|
+
|
|
336
|
+
cloud_account_api = CloudAccountApi()
|
|
337
|
+
matched_accelerators = []
|
|
338
|
+
for ca in cloud_accounts:
|
|
339
|
+
try:
|
|
340
|
+
accelerators = cloud_account_api.list_cloud_account_accelerators(
|
|
341
|
+
teamspace_id=teamspace_id,
|
|
342
|
+
cloud_account_id=ca,
|
|
343
|
+
org_id=org_id,
|
|
344
|
+
)
|
|
345
|
+
if not accelerators.accelerator:
|
|
346
|
+
continue
|
|
347
|
+
|
|
348
|
+
if accelerators.accelerator:
|
|
349
|
+
for cluster_machine in accelerators.accelerator:
|
|
350
|
+
if not machine:
|
|
351
|
+
matched_accelerators.append(cluster_machine)
|
|
352
|
+
continue
|
|
353
|
+
if (
|
|
354
|
+
cluster_machine.resources.gpu == machine.accelerator_count
|
|
355
|
+
or cluster_machine.resources.cpu == machine.accelerator_count
|
|
356
|
+
) and any(
|
|
357
|
+
machine.family.lower() in s
|
|
358
|
+
for s in (
|
|
359
|
+
cluster_machine.slug,
|
|
360
|
+
cluster_machine.slug_multi_cloud,
|
|
361
|
+
cluster_machine.instance_id,
|
|
362
|
+
)
|
|
363
|
+
):
|
|
364
|
+
matched_accelerators.append(cluster_machine)
|
|
365
|
+
except Exception:
|
|
366
|
+
pass
|
|
367
|
+
return matched_accelerators
|
|
329
368
|
|
|
330
369
|
def get_model(self, teamspace_id: str, model_id: Optional[str] = None, model_name: Optional[str] = None) -> V1Model:
|
|
331
370
|
if model_id:
|
|
@@ -376,7 +415,6 @@ class TeamspaceApi:
|
|
|
376
415
|
path: str,
|
|
377
416
|
target_path: str,
|
|
378
417
|
teamspace_id: str,
|
|
379
|
-
cloud_account: str,
|
|
380
418
|
progress_bar: bool = True,
|
|
381
419
|
) -> None:
|
|
382
420
|
"""Downloads a given file in Teamspace drive to a target location."""
|
|
@@ -385,19 +423,29 @@ class TeamspaceApi:
|
|
|
385
423
|
auth.authenticate()
|
|
386
424
|
token = self._client.auth_service_login(V1LoginRequest(auth.api_key)).token
|
|
387
425
|
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
426
|
+
cluster_ids = [ca.cluster_id for ca in self.list_cloud_accounts(teamspace_id)]
|
|
427
|
+
|
|
428
|
+
found = False
|
|
429
|
+
for cluster_id in cluster_ids:
|
|
430
|
+
query_params = {
|
|
431
|
+
"clusterId": cluster_id,
|
|
432
|
+
"key": _resolve_teamspace_remote_path(path),
|
|
433
|
+
"token": token,
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
r = requests.get(
|
|
437
|
+
f"{self._client.api_client.configuration.host}/v1/projects/{teamspace_id}/artifacts/download",
|
|
438
|
+
params=query_params,
|
|
439
|
+
stream=True,
|
|
440
|
+
)
|
|
441
|
+
|
|
442
|
+
if r.status_code == 200:
|
|
443
|
+
found = True
|
|
444
|
+
break
|
|
445
|
+
|
|
446
|
+
if not found:
|
|
447
|
+
raise FileNotFoundError(f"The provided path does not exist in the teamspace: {path}")
|
|
393
448
|
|
|
394
|
-
r = requests.get(
|
|
395
|
-
f"{self._client.api_client.configuration.host}/v1/projects/{teamspace_id}/artifacts/download",
|
|
396
|
-
params=query_params,
|
|
397
|
-
stream=True,
|
|
398
|
-
)
|
|
399
|
-
if r.status_code == 404:
|
|
400
|
-
raise FileNotFoundError(f"File {path} not found")
|
|
401
449
|
total_length = int(r.headers.get("content-length"))
|
|
402
450
|
|
|
403
451
|
if progress_bar:
|
|
@@ -473,7 +521,7 @@ class TeamspaceApi:
|
|
|
473
521
|
|
|
474
522
|
def _update_secret(self, teamspace_id: str, secret_id: str, value: str) -> None:
|
|
475
523
|
self._client.secret_service_update_secret(
|
|
476
|
-
body=
|
|
524
|
+
body=SecretServiceUpdateSecretBody(value=value),
|
|
477
525
|
project_id=teamspace_id,
|
|
478
526
|
id=secret_id,
|
|
479
527
|
)
|
|
@@ -485,7 +533,8 @@ class TeamspaceApi:
|
|
|
485
533
|
value: str,
|
|
486
534
|
) -> None:
|
|
487
535
|
self._client.secret_service_create_secret(
|
|
488
|
-
body=
|
|
536
|
+
body=SecretServiceCreateSecretBody(name=key, value=value, type=V1SecretType.UNSPECIFIED),
|
|
537
|
+
project_id=teamspace_id,
|
|
489
538
|
)
|
|
490
539
|
|
|
491
540
|
def verify_secret_name(self, name: str) -> bool:
|
|
@@ -497,7 +546,7 @@ class TeamspaceApi:
|
|
|
497
546
|
return re.match(pattern, name) is not None
|
|
498
547
|
|
|
499
548
|
def new_folder(self, teamspace_id: str, name: str, cluster: Optional[V1ExternalCluster]) -> None:
|
|
500
|
-
create_request =
|
|
549
|
+
create_request = DataConnectionServiceCreateDataConnectionBody(
|
|
501
550
|
name=name,
|
|
502
551
|
create_resources=True,
|
|
503
552
|
force=True,
|
|
@@ -520,7 +569,7 @@ class TeamspaceApi:
|
|
|
520
569
|
def new_connection(
|
|
521
570
|
self, teamspace_id: str, name: str, source: str, cluster: V1ExternalCluster, writable: bool, region: str
|
|
522
571
|
) -> None:
|
|
523
|
-
create_request =
|
|
572
|
+
create_request = DataConnectionServiceCreateDataConnectionBody(
|
|
524
573
|
name=name,
|
|
525
574
|
create_resources=False,
|
|
526
575
|
force=True,
|
lightning_sdk/api/user_api.py
CHANGED
|
@@ -3,7 +3,7 @@ from typing import Dict, List, Optional, Union
|
|
|
3
3
|
|
|
4
4
|
from lightning_sdk.lightning_cloud.login import Auth
|
|
5
5
|
from lightning_sdk.lightning_cloud.openapi import (
|
|
6
|
-
|
|
6
|
+
SecretServiceUpdateUserSecretBody,
|
|
7
7
|
V1CloudSpace,
|
|
8
8
|
V1CreateUserSecretRequest,
|
|
9
9
|
V1GetUserResponse,
|
|
@@ -105,7 +105,7 @@ class UserApi:
|
|
|
105
105
|
|
|
106
106
|
def _update_secret(self, secret_id: str, value: str) -> None:
|
|
107
107
|
self._client.secret_service_update_user_secret(
|
|
108
|
-
body=
|
|
108
|
+
body=SecretServiceUpdateUserSecretBody(value=value),
|
|
109
109
|
id=secret_id,
|
|
110
110
|
)
|
|
111
111
|
|