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.
Files changed (315) hide show
  1. lightning_sdk/__version__.py +1 -1
  2. lightning_sdk/api/agents_api.py +4 -4
  3. lightning_sdk/api/ai_hub_api.py +2 -2
  4. lightning_sdk/api/base_studio_api.py +3 -1
  5. lightning_sdk/api/deployment_api.py +2 -2
  6. lightning_sdk/api/job_api.py +25 -7
  7. lightning_sdk/api/license_api.py +2 -2
  8. lightning_sdk/api/mmt_api.py +5 -5
  9. lightning_sdk/api/pipeline_api.py +4 -4
  10. lightning_sdk/api/studio_api.py +33 -33
  11. lightning_sdk/api/teamspace_api.py +80 -31
  12. lightning_sdk/api/user_api.py +2 -2
  13. lightning_sdk/api/utils.py +17 -24
  14. lightning_sdk/cli/entrypoint.py +16 -12
  15. lightning_sdk/job/base.py +3 -0
  16. lightning_sdk/job/job.py +4 -0
  17. lightning_sdk/job/v1.py +2 -0
  18. lightning_sdk/job/v2.py +32 -0
  19. lightning_sdk/lightning_cloud/login.py +1 -1
  20. lightning_sdk/lightning_cloud/openapi/__init__.py +204 -195
  21. lightning_sdk/lightning_cloud/openapi/api/agent_service_api.py +28 -28
  22. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +108 -108
  23. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +69 -57
  24. lightning_sdk/lightning_cloud/openapi/api/blog_posts_service_api.py +4 -4
  25. lightning_sdk/lightning_cloud/openapi/api/cloud_space_environment_template_service_api.py +14 -14
  26. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +331 -168
  27. lightning_sdk/lightning_cloud/openapi/api/cloudy_service_api.py +4 -4
  28. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +58 -58
  29. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +24 -24
  30. lightning_sdk/lightning_cloud/openapi/api/dataset_service_api.py +8 -8
  31. lightning_sdk/lightning_cloud/openapi/api/deployment_templates_service_api.py +8 -8
  32. lightning_sdk/lightning_cloud/openapi/api/endpoint_service_api.py +8 -8
  33. lightning_sdk/lightning_cloud/openapi/api/experiments_service_api.py +8 -8
  34. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +16 -16
  35. lightning_sdk/lightning_cloud/openapi/api/incidents_service_api.py +18 -18
  36. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +514 -254
  37. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +67 -59
  38. lightning_sdk/lightning_cloud/openapi/api/lightningapp_instance_service_api.py +16 -16
  39. lightning_sdk/lightning_cloud/openapi/api/lightningapp_v2_service_api.py +6 -6
  40. lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +16 -16
  41. lightning_sdk/lightning_cloud/openapi/api/lit_dataset_service_api.py +42 -42
  42. lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +28 -28
  43. lightning_sdk/lightning_cloud/openapi/api/lit_page_service_api.py +4 -4
  44. lightning_sdk/lightning_cloud/openapi/api/lit_registry_service_api.py +8 -8
  45. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +42 -42
  46. lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +34 -34
  47. lightning_sdk/lightning_cloud/openapi/api/pipeline_templates_service_api.py +4 -4
  48. lightning_sdk/lightning_cloud/openapi/api/pipelines_service_api.py +38 -38
  49. lightning_sdk/lightning_cloud/openapi/api/product_license_service_api.py +4 -4
  50. lightning_sdk/lightning_cloud/openapi/api/profiler_service_api.py +12 -12
  51. lightning_sdk/lightning_cloud/openapi/api/projects_service_api.py +32 -32
  52. lightning_sdk/lightning_cloud/openapi/api/quest_service_api.py +8 -8
  53. lightning_sdk/lightning_cloud/openapi/api/schedules_service_api.py +48 -48
  54. lightning_sdk/lightning_cloud/openapi/api/secret_service_api.py +12 -12
  55. lightning_sdk/lightning_cloud/openapi/api/slurm_jobs_user_service_api.py +16 -16
  56. lightning_sdk/lightning_cloud/openapi/api/snowflake_service_api.py +16 -16
  57. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +40 -40
  58. lightning_sdk/lightning_cloud/openapi/api/studio_jobs_service_api.py +8 -8
  59. lightning_sdk/lightning_cloud/openapi/api/user_service_api.py +20 -20
  60. lightning_sdk/lightning_cloud/openapi/api/volume_service_api.py +4 -4
  61. lightning_sdk/lightning_cloud/openapi/models/__init__.py +204 -181
  62. lightning_sdk/lightning_cloud/openapi/models/agent_service_agent_complete_part_body.py +97 -0
  63. lightning_sdk/lightning_cloud/openapi/models/{multipartuploads_upload_id_body.py → agent_service_agent_upload_part_body.py} +10 -10
  64. lightning_sdk/lightning_cloud/openapi/models/{id_multipartuploads_body.py → agent_service_create_agent_multipart_upload_body.py} +14 -14
  65. lightning_sdk/lightning_cloud/openapi/models/{jobs_id_body.py → agent_service_update_agent_job_body.py} +30 -30
  66. lightning_sdk/lightning_cloud/openapi/models/{id_artifacts_body.py → agent_service_upload_agent_job_artifact_body.py} +10 -10
  67. lightning_sdk/lightning_cloud/openapi/models/{id_output_body.py → agent_service_upload_agent_job_output_body.py} +18 -18
  68. lightning_sdk/lightning_cloud/openapi/models/{id_contactowner_body.py → assistants_service_contact_assistant_owner_body.py} +14 -14
  69. lightning_sdk/lightning_cloud/openapi/models/{project_id_agents_body.py → assistants_service_create_assistant_body.py} +74 -74
  70. lightning_sdk/lightning_cloud/openapi/models/{project_id_agentmanagedendpoints_body.py → assistants_service_create_assistant_managed_endpoint_body.py} +14 -14
  71. lightning_sdk/lightning_cloud/openapi/models/{message_id_actions_body.py → assistants_service_create_conversation_message_action_body.py} +28 -26
  72. lightning_sdk/lightning_cloud/openapi/models/{models_model_id_body.py → assistants_service_create_model_metrics_body.py} +26 -26
  73. lightning_sdk/lightning_cloud/openapi/models/{assistant_id_conversations_body.py → assistants_service_start_conversation_body.py} +74 -74
  74. lightning_sdk/lightning_cloud/openapi/models/{agents_id_body.py → assistants_service_update_assistant_body.py} +102 -102
  75. lightning_sdk/lightning_cloud/openapi/models/{agentmanagedendpoints_id_body.py → assistants_service_update_assistant_managed_endpoint_body.py} +42 -42
  76. lightning_sdk/lightning_cloud/openapi/models/{models_id_body.py → assistants_service_update_assistant_managed_endpoint_model_body.py} +10 -10
  77. lightning_sdk/lightning_cloud/openapi/models/assistants_service_update_conversation_body.py +149 -0
  78. lightning_sdk/lightning_cloud/openapi/models/{conversations_id_body1.py → assistants_service_update_conversation_like_body.py} +10 -10
  79. lightning_sdk/lightning_cloud/openapi/models/{id_content_body.py → assistants_service_update_conversation_message_content_body.py} +10 -10
  80. lightning_sdk/lightning_cloud/openapi/models/{messages_id_body.py → assistants_service_update_conversation_message_like_body.py} +10 -10
  81. lightning_sdk/lightning_cloud/openapi/models/assistants_service_validate_assistant_status_body.py +97 -0
  82. lightning_sdk/lightning_cloud/openapi/models/assistants_service_validate_managed_model_body.py +97 -0
  83. lightning_sdk/lightning_cloud/openapi/models/{user_id_upgradetrigger_body.py → billing_service_create_billing_upgrade_trigger_record_body.py} +22 -22
  84. lightning_sdk/lightning_cloud/openapi/models/{billing_checkout_body.py → billing_service_create_org_checkout_session_body.py} +18 -18
  85. lightning_sdk/lightning_cloud/openapi/models/{billing_transfer_body.py → billing_service_transfer_org_balance_body.py} +14 -14
  86. lightning_sdk/lightning_cloud/openapi/models/{billing_transfer_body1.py → billing_service_transfer_project_balance_body.py} +18 -18
  87. lightning_sdk/lightning_cloud/openapi/models/{blogposts_id_body.py → blog_posts_service_update_blog_post_body.py} +38 -38
  88. lightning_sdk/lightning_cloud/openapi/models/{update.py → cloud_space_environment_template_service_update_cloud_space_environment_template_body.py} +58 -58
  89. lightning_sdk/lightning_cloud/openapi/models/{apps_id_body1.py → cloud_space_service_create_cloud_space_app_instance_body.py} +34 -34
  90. lightning_sdk/lightning_cloud/openapi/models/{project_id_cloudspaces_body.py → cloud_space_service_create_cloud_space_body.py} +78 -78
  91. lightning_sdk/lightning_cloud/openapi/models/{cloudspace_id_metric_body.py → cloud_space_service_create_cloud_space_instance_metric_body.py} +22 -22
  92. lightning_sdk/lightning_cloud/openapi/models/{cloud_space_id_versions_body.py → cloud_space_service_create_cloud_space_version_body.py} +54 -54
  93. lightning_sdk/lightning_cloud/openapi/models/{cloud_space_id_versionpublications_body.py → cloud_space_service_create_cloud_space_version_publication_body.py} +18 -18
  94. lightning_sdk/lightning_cloud/openapi/models/{cloudspace_id_runs_body.py → cloud_space_service_create_lightning_run_body.py} +86 -86
  95. lightning_sdk/lightning_cloud/openapi/models/{id_get_body.py → cloud_space_service_create_lightning_run_instance_body.py} +58 -58
  96. lightning_sdk/lightning_cloud/openapi/models/{id_engage_body1.py → cloud_space_service_engage_cloud_space_body.py} +14 -14
  97. lightning_sdk/lightning_cloud/openapi/models/{id_execute_body1.py → cloud_space_service_execute_command_in_cloud_space_body.py} +18 -18
  98. lightning_sdk/lightning_cloud/openapi/models/{id_execute_body.py → cloud_space_service_execute_in_cloud_space_session_body.py} +10 -10
  99. lightning_sdk/lightning_cloud/openapi/models/{id_fork_body.py → cloud_space_service_fork_cloud_space_app_instance_body.py} +14 -14
  100. lightning_sdk/lightning_cloud/openapi/models/{id_fork_body1.py → cloud_space_service_fork_cloud_space_body.py} +22 -22
  101. lightning_sdk/lightning_cloud/openapi/models/cloud_space_service_keep_alive_cloud_space_instance_body.py +97 -0
  102. lightning_sdk/lightning_cloud/openapi/models/{cluster_id_proxies_body.py → cloud_space_service_publish_cloud_space_body.py} +10 -10
  103. lightning_sdk/lightning_cloud/openapi/models/{id_index_body1.py → cloud_space_service_refresh_cloud_space_index_body.py} +10 -10
  104. lightning_sdk/lightning_cloud/openapi/models/{cloudspace_id_systemmetrics_body.py → cloud_space_service_report_cloud_space_instance_system_metrics_body.py} +14 -14
  105. lightning_sdk/lightning_cloud/openapi/models/cloud_space_service_request_cloud_space_access_body.py +97 -0
  106. lightning_sdk/lightning_cloud/openapi/models/{id_start_body.py → cloud_space_service_start_cloud_space_instance_body.py} +14 -14
  107. lightning_sdk/lightning_cloud/openapi/models/{id_transfer_body.py → cloud_space_service_transfer_cloud_space_body.py} +18 -18
  108. lightning_sdk/lightning_cloud/openapi/models/{apps_id_body.py → cloud_space_service_update_cloud_space_app_body.py} +86 -86
  109. lightning_sdk/lightning_cloud/openapi/models/{cloudspaces_id_body.py → cloud_space_service_update_cloud_space_body.py} +114 -114
  110. lightning_sdk/lightning_cloud/openapi/models/{id_collaborate_body.py → cloud_space_service_update_cloud_space_collab_body.py} +18 -18
  111. lightning_sdk/lightning_cloud/openapi/models/{conversations_id_body.py → cloud_space_service_update_cloud_space_ide_body.py} +21 -21
  112. lightning_sdk/lightning_cloud/openapi/models/{id_index_body.py → cloud_space_service_update_cloud_space_index_body.py} +18 -18
  113. lightning_sdk/lightning_cloud/openapi/models/{id_codeconfig_body.py → cloud_space_service_update_cloud_space_instance_config_body.py} +22 -22
  114. lightning_sdk/lightning_cloud/openapi/models/{id_publications_body.py → cloud_space_service_update_cloud_space_publication_body.py} +14 -14
  115. lightning_sdk/lightning_cloud/openapi/models/{id_sleepconfig_body.py → cloud_space_service_update_cloud_space_sleep_config_body.py} +18 -18
  116. lightning_sdk/lightning_cloud/openapi/models/{versions_id_body.py → cloud_space_service_update_cloud_space_version_body.py} +46 -46
  117. lightning_sdk/lightning_cloud/openapi/models/{cloud_space_id_versionpublications_body1.py → cloud_space_service_update_cloud_space_version_publication_body.py} +18 -18
  118. lightning_sdk/lightning_cloud/openapi/models/{dataset_id_visibility_body.py → cloud_space_service_update_cloud_space_visibility_body.py} +14 -14
  119. lightning_sdk/lightning_cloud/openapi/models/{user_user_id_body.py → cloudy_service_update_user_cloudy_settings_body.py} +22 -22
  120. lightning_sdk/lightning_cloud/openapi/models/{cluster_id_capacityreservations_body.py → cluster_service_create_cluster_capacity_reservation_body.py} +42 -42
  121. lightning_sdk/lightning_cloud/openapi/models/{id_publications_body1.py → cluster_service_create_cluster_proxy_body.py} +10 -10
  122. lightning_sdk/lightning_cloud/openapi/models/{cluster_id_usagerestrictions_body.py → cluster_service_create_cluster_usage_restriction_body.py} +22 -22
  123. 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
  124. lightning_sdk/lightning_cloud/openapi/models/{project_id_clusters_body.py → cluster_service_create_project_cluster_body.py} +14 -14
  125. lightning_sdk/lightning_cloud/openapi/models/{server_id_alerts_body.py → cluster_service_create_server_alert_body.py} +22 -22
  126. lightning_sdk/lightning_cloud/openapi/models/cluster_service_interrupt_server_body.py +97 -0
  127. lightning_sdk/lightning_cloud/openapi/models/{cluster_id_capacityblock_body.py → cluster_service_purchase_capacity_block_body.py} +30 -30
  128. lightning_sdk/lightning_cloud/openapi/models/{servers_server_id_body.py → cluster_service_server_check_in_body.py} +10 -10
  129. lightning_sdk/lightning_cloud/openapi/models/cluster_service_sleep_server_body.py +97 -0
  130. lightning_sdk/lightning_cloud/openapi/models/{clusters_id_body.py → cluster_service_update_cluster_body.py} +18 -18
  131. lightning_sdk/lightning_cloud/openapi/models/{usagerestrictions_id_body.py → cluster_service_update_cluster_usage_restriction_body.py} +22 -22
  132. lightning_sdk/lightning_cloud/openapi/models/{clusters_id_body1.py → cluster_service_update_project_cluster_body.py} +14 -14
  133. lightning_sdk/lightning_cloud/openapi/models/{create.py → data_connection_service_create_data_connection_body.py} +82 -82
  134. lightning_sdk/lightning_cloud/openapi/models/{id_index_body2.py → data_connection_service_refresh_data_connection_index_body.py} +10 -10
  135. lightning_sdk/lightning_cloud/openapi/models/{setup.py → data_connection_service_setup_data_connection_body.py} +14 -14
  136. lightning_sdk/lightning_cloud/openapi/models/{update1.py → data_connection_service_update_data_connection_body.py} +50 -50
  137. lightning_sdk/lightning_cloud/openapi/models/{validate.py → data_connection_service_validate_data_connection_body.py} +42 -42
  138. lightning_sdk/lightning_cloud/openapi/models/{project_id_datasets_body.py → dataset_service_create_dataset_body.py} +70 -70
  139. lightning_sdk/lightning_cloud/openapi/models/{datasets_id_body.py → dataset_service_update_dataset_body.py} +22 -22
  140. lightning_sdk/lightning_cloud/openapi/models/{id_engage_body.py → deployment_templates_service_engage_deployment_template_body.py} +10 -10
  141. lightning_sdk/lightning_cloud/openapi/models/{deploymenttemplates_id_body.py → deployment_templates_service_update_deployment_template_body.py} +70 -70
  142. lightning_sdk/lightning_cloud/openapi/models/{project_id_endpoints_body.py → endpoint_service_create_endpoint_body.py} +30 -30
  143. lightning_sdk/lightning_cloud/openapi/models/{endpoints_id_body.py → endpoint_service_update_endpoint_body.py} +62 -62
  144. lightning_sdk/lightning_cloud/openapi/models/{experiment_name_variant_name_body.py → experiments_service_assign_variant_body.py} +10 -10
  145. lightning_sdk/lightning_cloud/openapi/models/{incident_id_messages_body.py → incidents_service_create_incident_message_body.py} +10 -10
  146. lightning_sdk/lightning_cloud/openapi/models/{incidents_id_body.py → incidents_service_update_incident_body.py} +34 -34
  147. lightning_sdk/lightning_cloud/openapi/models/{messages_message_id_body.py → incidents_service_update_incident_message_body.py} +10 -10
  148. lightning_sdk/lightning_cloud/openapi/models/{deployment_id_alertingpolicies_body1.py → jobs_service_create_deployment_alerting_policy_body.py} +42 -42
  149. 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
  150. lightning_sdk/lightning_cloud/openapi/models/{project_id_jobs_body.py → jobs_service_create_job_body.py} +18 -18
  151. lightning_sdk/lightning_cloud/openapi/models/{project_id_multimachinejobs_body.py → jobs_service_create_multi_machine_job_body.py} +26 -26
  152. lightning_sdk/lightning_cloud/openapi/models/{job_id_reportroutingtelemetry_body.py → jobs_service_report_deployment_routing_telemetry_body.py} +10 -10
  153. lightning_sdk/lightning_cloud/openapi/models/{job_id_systemmetrics_body.py → jobs_service_report_job_system_metrics_body.py} +10 -10
  154. lightning_sdk/lightning_cloud/openapi/models/{id_reportlogsactivity_body.py → jobs_service_report_logs_activity_body.py} +10 -10
  155. lightning_sdk/lightning_cloud/openapi/models/{id_reportrestarttimings_body.py → jobs_service_report_restart_timings_body.py} +10 -10
  156. lightning_sdk/lightning_cloud/openapi/models/jobs_service_restore_deployment_release_body.py +97 -0
  157. lightning_sdk/lightning_cloud/openapi/models/{alertingevents_id_body.py → jobs_service_update_deployment_alerting_event_body.py} +54 -54
  158. lightning_sdk/lightning_cloud/openapi/models/jobs_service_update_deployment_alerting_events_bulk_body.py +123 -0
  159. lightning_sdk/lightning_cloud/openapi/models/{deployment_id_alertingpolicies_body.py → jobs_service_update_deployment_alerting_policy_body.py} +46 -46
  160. lightning_sdk/lightning_cloud/openapi/models/{deployments_id_body.py → jobs_service_update_deployment_body.py} +128 -126
  161. lightning_sdk/lightning_cloud/openapi/models/{id_visibility_body1.py → jobs_service_update_deployment_visibility_body.py} +10 -10
  162. lightning_sdk/lightning_cloud/openapi/models/{jobs_id_body1.py → jobs_service_update_job_body.py} +14 -14
  163. lightning_sdk/lightning_cloud/openapi/models/{id_index_body3.py → jobs_service_update_job_index_body.py} +18 -18
  164. lightning_sdk/lightning_cloud/openapi/models/{id_visibility_body.py → jobs_service_update_job_visibility_body.py} +10 -10
  165. lightning_sdk/lightning_cloud/openapi/models/{multimachinejobs_id_body.py → jobs_service_update_multi_machine_job_body.py} +10 -10
  166. lightning_sdk/lightning_cloud/openapi/models/{deployments_deployment_id_body.py → jobs_service_update_org_deployment_visibility_body.py} +14 -14
  167. lightning_sdk/lightning_cloud/openapi/models/{kubernetestemplates_id_body.py → k8_s_cluster_service_create_kubernetes_template_body.py} +22 -22
  168. lightning_sdk/lightning_cloud/openapi/models/{id_render_body.py → k8_s_cluster_service_render_kubernetes_template_body.py} +10 -10
  169. lightning_sdk/lightning_cloud/openapi/models/{cluster_id_metrics_body.py → k8_s_cluster_service_report_k8_s_cluster_metrics_body.py} +42 -42
  170. lightning_sdk/lightning_cloud/openapi/models/{cluster_id_kubernetestemplates_body.py → k8_s_cluster_service_update_kubernetes_template_body.py} +22 -22
  171. lightning_sdk/lightning_cloud/openapi/models/{appinstances_id_body.py → lightningapp_instance_service_update_lightningapp_instance_body.py} +18 -18
  172. lightning_sdk/lightning_cloud/openapi/models/{id_release_body.py → lightningapp_instance_service_update_lightningapp_instance_release_body.py} +10 -10
  173. lightning_sdk/lightning_cloud/openapi/models/{id_uploads_body.py → lightningapp_instance_service_upload_lightningapp_instance_artifact_body.py} +10 -10
  174. lightning_sdk/lightning_cloud/openapi/models/{project_id_getapp_body.py → lightningapp_v2_service_create_lightningapp_from_gallery_body.py} +30 -30
  175. lightning_sdk/lightning_cloud/openapi/models/{app_id_works_body.py → lightningwork_service_batch_update_lightningworks_body.py} +14 -14
  176. lightning_sdk/lightning_cloud/openapi/models/{spec_lightningapp_instance_id_works_body.py → lightningwork_service_create_lightningwork_body.py} +24 -24
  177. lightning_sdk/lightning_cloud/openapi/models/lightningwork_service_create_lightningwork_body_spec.py +487 -0
  178. lightning_sdk/lightning_cloud/openapi/models/{works_id_body.py → lightningwork_service_update_lightningwork_body.py} +16 -16
  179. lightning_sdk/lightning_cloud/openapi/models/{upload_id_complete_body1.py → lit_dataset_service_complete_lit_dataset_multi_part_upload_body.py} +14 -14
  180. lightning_sdk/lightning_cloud/openapi/models/lit_dataset_service_complete_lit_dataset_upload_body.py +97 -0
  181. lightning_sdk/lightning_cloud/openapi/models/{project_id_models_body.py → lit_dataset_service_create_lit_dataset_body.py} +26 -26
  182. lightning_sdk/lightning_cloud/openapi/models/{version_uploads_body1.py → lit_dataset_service_create_lit_dataset_multi_part_upload_body.py} +10 -10
  183. lightning_sdk/lightning_cloud/openapi/models/{dataset_id_versions_body.py → lit_dataset_service_create_lit_dataset_version_body.py} +16 -14
  184. lightning_sdk/lightning_cloud/openapi/models/{upload_id_parts_body.py → lit_dataset_service_get_lit_dataset_file_upload_urls_body.py} +14 -14
  185. lightning_sdk/lightning_cloud/openapi/models/{version_default_body.py → lit_dataset_service_set_lit_dataset_default_version_body.py} +14 -14
  186. lightning_sdk/lightning_cloud/openapi/models/{litdatasets_dataset_id_body.py → lit_dataset_service_update_lit_dataset_body.py} +14 -14
  187. lightning_sdk/lightning_cloud/openapi/models/{versions_version_body.py → lit_dataset_service_update_lit_dataset_version_body.py} +10 -10
  188. lightning_sdk/lightning_cloud/openapi/models/{id_visibility_body2.py → lit_dataset_service_update_lit_dataset_visibility_body.py} +14 -14
  189. lightning_sdk/lightning_cloud/openapi/models/{loggermetrics_id_body.py → lit_logger_service_append_logger_metrics_body.py} +10 -10
  190. lightning_sdk/lightning_cloud/openapi/models/{metrics_stream_id_loggerartifacts_body.py → lit_logger_service_create_logger_artifact_body.py} +10 -10
  191. lightning_sdk/lightning_cloud/openapi/models/{metricsstream_create_body.py → lit_logger_service_create_metrics_stream_body.py} +62 -62
  192. lightning_sdk/lightning_cloud/openapi/models/{metricsstream_delete_body.py → lit_logger_service_delete_metrics_stream_body.py} +10 -10
  193. lightning_sdk/lightning_cloud/openapi/models/{metricsstream_id_body.py → lit_logger_service_update_metrics_stream_body.py} +22 -22
  194. lightning_sdk/lightning_cloud/openapi/models/{model_id_visibility_body.py → lit_logger_service_update_metrics_stream_visibility_body.py} +14 -14
  195. lightning_sdk/lightning_cloud/openapi/models/{litloggermetrics_id_body.py → lit_logger_service_update_shared_metrics_stream_body.py} +18 -18
  196. lightning_sdk/lightning_cloud/openapi/models/{litpages_id_body.py → lit_page_service_update_lit_page_body.py} +42 -42
  197. lightning_sdk/lightning_cloud/openapi/models/{project_id_litregistry_body.py → lit_registry_service_create_lit_project_registry_body.py} +12 -12
  198. lightning_sdk/lightning_cloud/openapi/models/{litregistry_lit_repo_name_body.py → lit_registry_service_update_lit_repository_metadata_body.py} +10 -10
  199. lightning_sdk/lightning_cloud/openapi/models/models_store_complete_model_upload_body.py +97 -0
  200. lightning_sdk/lightning_cloud/openapi/models/{upload_id_complete_body.py → models_store_complete_multi_part_upload_body.py} +14 -14
  201. lightning_sdk/lightning_cloud/openapi/models/{project_id_litdatasets_body.py → models_store_create_model_body.py} +26 -26
  202. lightning_sdk/lightning_cloud/openapi/models/{model_id_versions_body.py → models_store_create_model_version_body.py} +20 -18
  203. lightning_sdk/lightning_cloud/openapi/models/{version_uploads_body.py → models_store_create_multi_part_upload_body.py} +10 -10
  204. lightning_sdk/lightning_cloud/openapi/models/{upload_id_parts_body1.py → models_store_get_model_file_upload_urls_body.py} +14 -14
  205. lightning_sdk/lightning_cloud/openapi/models/{version_default_body1.py → models_store_set_model_default_version_body.py} +14 -14
  206. lightning_sdk/lightning_cloud/openapi/models/{models_model_id_body1.py → models_store_update_model_body.py} +14 -14
  207. lightning_sdk/lightning_cloud/openapi/models/{versions_version_body1.py → models_store_update_model_version_body.py} +10 -10
  208. lightning_sdk/lightning_cloud/openapi/models/{cloudspace_id_visibility_body.py → models_store_update_model_visibility_body.py} +14 -14
  209. lightning_sdk/lightning_cloud/openapi/models/{approveautojoindomain_domain_body.py → organizations_service_approve_auto_join_domain_body.py} +10 -10
  210. lightning_sdk/lightning_cloud/openapi/models/organizations_service_auto_join_org_body.py +97 -0
  211. lightning_sdk/lightning_cloud/openapi/models/{org_id_memberships_body.py → organizations_service_create_org_membership_body.py} +22 -22
  212. lightning_sdk/lightning_cloud/openapi/models/{user_id_membershiprolebindings_body1.py → organizations_service_create_org_membership_role_binding_body.py} +10 -10
  213. lightning_sdk/lightning_cloud/openapi/models/{org_id_roles_body.py → organizations_service_create_org_role_body.py} +18 -18
  214. lightning_sdk/lightning_cloud/openapi/models/{orgs_id_body.py → organizations_service_update_organization_body.py} +162 -162
  215. lightning_sdk/lightning_cloud/openapi/models/{credits_autoreplenish_body.py → organizations_service_update_organization_credits_auto_replenish_body.py} +18 -18
  216. lightning_sdk/lightning_cloud/openapi/models/{validateautojoindomain_domain_body.py → organizations_service_validate_auto_join_domain_body.py} +10 -10
  217. lightning_sdk/lightning_cloud/openapi/models/{pipelinetemplates_id_body.py → pipeline_templates_service_update_pipeline_template_body.py} +42 -42
  218. lightning_sdk/lightning_cloud/openapi/models/{pipelines_id_body1.py → pipelines_service_create_child_pipeline_body.py} +10 -10
  219. lightning_sdk/lightning_cloud/openapi/models/{project_id_pipelines_body.py → pipelines_service_create_pipeline_body.py} +30 -30
  220. lightning_sdk/lightning_cloud/openapi/models/{pipelines_id_body.py → pipelines_service_update_pipeline_body.py} +74 -74
  221. lightning_sdk/lightning_cloud/openapi/models/{license_key_validate_body.py → product_license_service_validate_license_body.py} +10 -10
  222. lightning_sdk/lightning_cloud/openapi/models/{profiler_captures_body.py → profiler_service_create_profiler_capture_body.py} +34 -34
  223. lightning_sdk/lightning_cloud/openapi/models/{captures_id_body.py → profiler_service_update_profiler_capture_body.py} +10 -10
  224. lightning_sdk/lightning_cloud/openapi/models/{profiler_enabled_body.py → profiler_service_update_profiler_enabled_body.py} +14 -14
  225. lightning_sdk/lightning_cloud/openapi/models/{project_id_projectclustersbindings_body.py → projects_service_create_project_cluster_binding_body.py} +14 -14
  226. lightning_sdk/lightning_cloud/openapi/models/{project_id_memberships_body.py → projects_service_create_project_membership_body.py} +22 -22
  227. lightning_sdk/lightning_cloud/openapi/models/{user_id_membershiprolebindings_body.py → projects_service_create_project_membership_role_binding_body.py} +10 -10
  228. lightning_sdk/lightning_cloud/openapi/models/{projects_project_id_body.py → projects_service_create_project_role_body.py} +18 -18
  229. lightning_sdk/lightning_cloud/openapi/models/{project_id_invite_body.py → projects_service_invite_project_membership_body.py} +18 -18
  230. lightning_sdk/lightning_cloud/openapi/models/{projects_id_body.py → projects_service_update_project_body.py} +110 -110
  231. lightning_sdk/lightning_cloud/openapi/models/{project_tab_management_messages.py → projects_service_update_project_tab_order_body.py} +10 -10
  232. lightning_sdk/lightning_cloud/openapi/models/protobuf_any.py +7 -58
  233. lightning_sdk/lightning_cloud/openapi/models/quest_service_complete_quest_body.py +97 -0
  234. lightning_sdk/lightning_cloud/openapi/models/quest_service_start_quest_body.py +97 -0
  235. lightning_sdk/lightning_cloud/openapi/models/{project_id_schedules_body.py → schedules_service_create_schedule_body.py} +42 -42
  236. lightning_sdk/lightning_cloud/openapi/models/schedules_service_create_schedule_run_body.py +97 -0
  237. lightning_sdk/lightning_cloud/openapi/models/{schedules_id_body.py → schedules_service_update_schedule_body.py} +70 -70
  238. lightning_sdk/lightning_cloud/openapi/models/{project_id_secrets_body.py → secret_service_create_secret_body.py} +18 -18
  239. lightning_sdk/lightning_cloud/openapi/models/{secrets_id_body1.py → secret_service_update_secret_body.py} +10 -10
  240. lightning_sdk/lightning_cloud/openapi/models/{secrets_id_body.py → secret_service_update_user_secret_body.py} +10 -10
  241. lightning_sdk/lightning_cloud/openapi/models/{cluster_id_slurmusers_body.py → slurm_jobs_user_service_create_slurm_cluster_user_body.py} +22 -22
  242. lightning_sdk/lightning_cloud/openapi/models/{slurm_jobs_body.py → slurm_jobs_user_service_create_user_slurm_job_body.py} +54 -54
  243. lightning_sdk/lightning_cloud/openapi/models/{jobs_id_body2.py → slurm_jobs_user_service_update_user_slurm_job_body.py} +10 -10
  244. lightning_sdk/lightning_cloud/openapi/models/{id_action_body.py → slurm_jobs_user_service_user_slurm_job_action_body.py} +10 -10
  245. lightning_sdk/lightning_cloud/openapi/models/{project_id_snowflake_body.py → snowflake_service_create_snowflake_connection_body.py} +10 -10
  246. lightning_sdk/lightning_cloud/openapi/models/{query_query_id_body.py → snowflake_service_execute_snowflake_query_body.py} +18 -18
  247. lightning_sdk/lightning_cloud/openapi/models/{snowflake_export_body.py → snowflake_service_export_snowflake_query_body.py} +38 -38
  248. lightning_sdk/lightning_cloud/openapi/models/{snowflake_query_body.py → snowflake_service_update_snowflake_query_body.py} +18 -18
  249. lightning_sdk/lightning_cloud/openapi/models/storage_service_abort_storage_transfer_body.py +97 -0
  250. lightning_sdk/lightning_cloud/openapi/models/{storage_complete_body.py → storage_service_complete_upload_project_artifact_body.py} +30 -30
  251. lightning_sdk/lightning_cloud/openapi/models/{project_id_storagetransfers_body.py → storage_service_create_storage_transfer_body.py} +18 -18
  252. lightning_sdk/lightning_cloud/openapi/models/storage_service_pause_storage_transfer_body.py +97 -0
  253. lightning_sdk/lightning_cloud/openapi/models/storage_service_resume_storage_transfer_body.py +97 -0
  254. lightning_sdk/lightning_cloud/openapi/models/{project_id_storage_body.py → storage_service_upload_project_artifact_body.py} +22 -22
  255. lightning_sdk/lightning_cloud/openapi/models/{uploads_upload_id_body1.py → storage_service_upload_project_artifact_parts_body.py} +22 -22
  256. lightning_sdk/lightning_cloud/openapi/models/{uploads_upload_id_body.py → storage_service_upload_temporary_artifact_parts_body.py} +14 -14
  257. lightning_sdk/lightning_cloud/openapi/models/{storagetransfers_validate_body.py → storage_service_validate_storage_transfer_body.py} +14 -14
  258. lightning_sdk/lightning_cloud/openapi/models/{studioapp_jobs_body.py → studio_jobs_service_create_studio_job_body.py} +34 -34
  259. lightning_sdk/lightning_cloud/openapi/models/{jobs_id_body3.py → studio_jobs_service_update_studio_job_body.py} +14 -14
  260. lightning_sdk/lightning_cloud/openapi/models/{user_id_affiliatelinks_body.py → user_service_create_affiliate_link_body.py} +30 -30
  261. lightning_sdk/lightning_cloud/openapi/models/{affiliatelinks_id_body.py → user_service_update_affiliate_link_body.py} +14 -14
  262. lightning_sdk/lightning_cloud/openapi/models/{credits_autoreplenish_body1.py → user_service_update_user_credits_auto_replenish_body.py} +18 -18
  263. lightning_sdk/lightning_cloud/openapi/models/user_service_upload_settings_body.py +97 -0
  264. lightning_sdk/lightning_cloud/openapi/models/v1_autoscaling_target_metric.py +2 -0
  265. lightning_sdk/lightning_cloud/openapi/models/v1_aws_data_connection.py +2 -0
  266. lightning_sdk/lightning_cloud/openapi/models/v1_billing_subscription.py +2 -0
  267. lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +27 -1
  268. lightning_sdk/lightning_cloud/openapi/models/v1_conversation_response_chunk.py +2 -0
  269. lightning_sdk/lightning_cloud/openapi/models/v1_create_checkout_session_request.py +4 -0
  270. lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +6 -0
  271. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +2 -0
  272. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_type.py +2 -0
  273. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_event.py +2 -0
  274. lightning_sdk/lightning_cloud/openapi/models/v1_experiment.py +2 -0
  275. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -1
  276. lightning_sdk/lightning_cloud/openapi/models/v1_generic_job.py +79 -1
  277. lightning_sdk/lightning_cloud/openapi/models/v1_generic_job_spec.py +253 -0
  278. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +2 -0
  279. lightning_sdk/lightning_cloud/openapi/models/v1_group_pod_metrics.py +6 -0
  280. lightning_sdk/lightning_cloud/openapi/models/v1_health_check_http_get.py +79 -1
  281. lightning_sdk/lightning_cloud/openapi/models/v1_incident.py +2 -0
  282. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +6 -0
  283. lightning_sdk/lightning_cloud/openapi/models/v1_job_health_check_config.py +55 -3
  284. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +59 -1
  285. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -1
  286. lightning_sdk/lightning_cloud/openapi/models/v1_lit_dataset_version_archive.py +2 -0
  287. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +79 -1
  288. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +27 -1
  289. lightning_sdk/lightning_cloud/openapi/models/v1_message_action.py +2 -0
  290. lightning_sdk/lightning_cloud/openapi/models/v1_model_version_archive.py +2 -0
  291. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_event.py +2 -0
  292. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_step_status.py +2 -0
  293. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_severity.py +1 -0
  294. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1.py +4 -0
  295. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1_status.py +2 -0
  296. lightning_sdk/lightning_cloud/openapi/models/v1_update_deployment_alerting_events_bulk_response.py +97 -0
  297. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +2 -0
  298. lightning_sdk/lightning_cloud/openapi/models/v1_usage_report.py +6 -0
  299. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +183 -79
  300. lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +2 -0
  301. lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_flow_compute_config.py +2 -0
  302. lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +53 -1
  303. lightning_sdk/lightning_cloud/openapi/models/{volumes_id_body.py → volume_service_update_volume_body.py} +10 -10
  304. lightning_sdk/lightning_cloud/utils/data_connection.py +14 -8
  305. lightning_sdk/lightning_cloud/utils/dataset.py +3 -5
  306. lightning_sdk/machine.py +1 -0
  307. lightning_sdk/pipeline/steps.py +3 -0
  308. lightning_sdk/plugin.py +2 -2
  309. lightning_sdk/teamspace.py +44 -5
  310. {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/METADATA +1 -1
  311. {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/RECORD +315 -292
  312. {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/LICENSE +0 -0
  313. {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/WHEEL +0 -0
  314. {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/entry_points.txt +0 -0
  315. {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/top_level.txt +0 -0
@@ -17,13 +17,16 @@ from tqdm.auto import tqdm
17
17
  from lightning_sdk.constants import __GLOBAL_LIGHTNING_UNIQUE_IDS_STORE__, _LIGHTNING_DEBUG
18
18
  from lightning_sdk.lightning_cloud.openapi import (
19
19
  CloudSpaceServiceApi,
20
+ CloudSpaceServiceCreateCloudSpaceAppInstanceBody,
20
21
  Externalv1LightningappInstance,
21
22
  ModelsStoreApi,
22
- ProjectIdStorageBody,
23
- StorageCompleteBody,
23
+ ModelsStoreCompleteMultiPartUploadBody,
24
+ ModelsStoreCreateMultiPartUploadBody,
25
+ ModelsStoreGetModelFileUploadUrlsBody,
24
26
  StorageServiceApi,
25
- UploadIdCompleteBody,
26
- UploadIdPartsBody,
27
+ StorageServiceCompleteUploadProjectArtifactBody,
28
+ StorageServiceUploadProjectArtifactBody,
29
+ StorageServiceUploadProjectArtifactPartsBody,
27
30
  V1CompletedPart,
28
31
  V1CompleteUpload,
29
32
  V1PathMapping,
@@ -31,20 +34,8 @@ from lightning_sdk.lightning_cloud.openapi import (
31
34
  V1SignedUrl,
32
35
  V1UploadProjectArtifactPartsResponse,
33
36
  V1UploadProjectArtifactResponse,
34
- VersionUploadsBody,
35
37
  )
36
38
  from lightning_sdk.lightning_cloud.openapi.models.v1_model_version_archive import V1ModelVersionArchive
37
-
38
- try:
39
- from lightning_sdk.lightning_cloud.openapi import AppsIdBody1 as AppsIdBody
40
- except ImportError:
41
- from lightning_sdk.lightning_cloud.openapi import AppsIdBody
42
-
43
- try:
44
- from lightning_sdk.lightning_cloud.openapi import UploadsUploadIdBody1 as UploadsUploadIdBody
45
- except ImportError:
46
- from lightning_sdk.lightning_cloud.openapi import UploadsUploadIdBody
47
-
48
39
  from lightning_sdk.lightning_cloud.openapi.rest import ApiException
49
40
  from lightning_sdk.lightning_cloud.rest_client import LightningClient
50
41
  from lightning_sdk.machine import Machine
@@ -120,7 +111,7 @@ class _FileUploader:
120
111
 
121
112
  def _multipart_upload(self, count: int) -> None:
122
113
  """Does a parallel multipart upload."""
123
- body = ProjectIdStorageBody(cluster_id=self.cloud_account, filename=self.remote_path)
114
+ body = StorageServiceUploadProjectArtifactBody(cluster_id=self.cloud_account, filename=self.remote_path)
124
115
  resp: V1UploadProjectArtifactResponse = self.client.storage_service_upload_project_artifact(
125
116
  body=body, project_id=self.teamspace_id
126
117
  )
@@ -135,7 +126,7 @@ class _FileUploader:
135
126
  for batch in batched_indices:
136
127
  completed.extend(self._process_upload_batch(executor=p, batch=batch, upload_id=resp.upload_id))
137
128
 
138
- completed_body = StorageCompleteBody(
129
+ completed_body = StorageServiceCompleteUploadProjectArtifactBody(
139
130
  cluster_id=self.cloud_account, filename=self.remote_path, parts=completed, upload_id=resp.upload_id
140
131
  )
141
132
  self.client.storage_service_complete_upload_project_artifact(body=completed_body, project_id=self.teamspace_id)
@@ -148,7 +139,9 @@ class _FileUploader:
148
139
 
149
140
  def _request_urls(self, parts: List[int], upload_id: str) -> List[V1PresignedUrl]:
150
141
  """Requests urls for a batch of parts."""
151
- body = UploadsUploadIdBody(filename=self.remote_path, parts=parts, cluster_id=self.cloud_account)
142
+ body = StorageServiceUploadProjectArtifactPartsBody(
143
+ filename=self.remote_path, parts=parts, cluster_id=self.cloud_account
144
+ )
152
145
  resp: V1UploadProjectArtifactPartsResponse = self.client.storage_service_upload_project_artifact_parts(
153
146
  body, self.teamspace_id, upload_id
154
147
  )
@@ -244,7 +237,7 @@ class _ModelFileUploader:
244
237
 
245
238
  def _multipart_upload(self, count: int) -> None:
246
239
  """Does a parallel multipart upload."""
247
- body = VersionUploadsBody(filepath=self.remote_path)
240
+ body = ModelsStoreCreateMultiPartUploadBody(filepath=self.remote_path)
248
241
  resp = self.api.models_store_create_multi_part_upload(
249
242
  body,
250
243
  project_id=self.teamspace_id,
@@ -262,7 +255,7 @@ class _ModelFileUploader:
262
255
  for batch in batched_indices:
263
256
  completed.extend(self._process_upload_batch(executor=p, batch=batch, upload_id=resp.upload_id))
264
257
 
265
- completed_body = UploadIdCompleteBody(filepath=self.remote_path, parts=completed)
258
+ completed_body = ModelsStoreCompleteMultiPartUploadBody(filepath=self.remote_path, parts=completed)
266
259
  self.api.models_store_complete_multi_part_upload(
267
260
  completed_body,
268
261
  project_id=self.teamspace_id,
@@ -279,7 +272,7 @@ class _ModelFileUploader:
279
272
 
280
273
  def _request_urls(self, parts: List[int], upload_id: str) -> List[V1SignedUrl]:
281
274
  """Requests urls for a batch of parts."""
282
- body = UploadIdPartsBody(filepath=self.remote_path, parts=parts)
275
+ body = ModelsStoreGetModelFileUploadUrlsBody(filepath=self.remote_path, parts=parts)
283
276
  resp = self.api.models_store_get_model_file_upload_urls(
284
277
  body,
285
278
  project_id=self.teamspace_id,
@@ -363,7 +356,7 @@ def _sanitize_studio_remote_path(path: str, studio_id: str) -> str:
363
356
 
364
357
 
365
358
  def _resolve_teamspace_remote_path(path: str) -> str:
366
- return f"/Uploads/{path.replace('/teamspace/studios/this_studio/', '')}"
359
+ return f"/Uploads/{path.replace('/teamspace/uploads/', '')}"
367
360
 
368
361
 
369
362
  _DOWNLOAD_REQUEST_CHUNK_SIZE = 10 * _BYTES_PER_MB
@@ -676,7 +669,7 @@ def _create_app(
676
669
  other_arguments["spot"] = str(other_arguments["interruptible"]).lower()
677
670
  del other_arguments["interruptible"]
678
671
 
679
- body = AppsIdBody(
672
+ body = CloudSpaceServiceCreateCloudSpaceAppInstanceBody(
680
673
  cluster_id=cloud_account,
681
674
  plugin_arguments=other_arguments,
682
675
  service_id=os.getenv(_LIGHTNING_SERVICE_EXECUTION_ID_KEY),
@@ -40,22 +40,26 @@ main_cli.context_class.formatter_class = CustomHelpFormatter
40
40
  @main_cli.command
41
41
  def login() -> None:
42
42
  """Login to Lightning AI Studios."""
43
- if in_studio():
44
- # if inside a Studio, no need to run login command
43
+ # try to fetch credentials, if successful (e.g. in a Studio or already logged in), no need to relogin
44
+ auth = Auth()
45
+ if (auth.user_id and auth.api_key) or auth.load():
45
46
  try:
46
47
  auth_user = _get_authed_user()
48
+ click.echo(f'You are currently logged in as "{auth_user.name}"')
47
49
  except Exception:
48
- raise RuntimeError("Unable to identify user within a Studio") from None
50
+ click.echo("You are already logged in")
51
+ click.echo('"lightning login" is not required within a Studio or when already logged in')
52
+ return
49
53
 
50
- click.echo(f'You are currently logged in as "{auth_user.name}"')
51
- click.echo('"lightning login" is not required within a Studio')
52
- else:
53
- auth = Auth()
54
- auth.clear()
55
- try:
56
- auth.authenticate()
57
- except ConnectionError:
58
- raise RuntimeError(f"Unable to connect to {_cloud_url()}. Please check your internet connection.") from None
54
+ if in_studio():
55
+ # this is unexpected, as we automatically auth within a Studio
56
+ raise RuntimeError("Unable to login within a Studio. Did you change your shell setup?") from None
57
+
58
+ auth.clear()
59
+ try:
60
+ auth.authenticate()
61
+ except ConnectionError:
62
+ raise RuntimeError(f"Unable to connect to {_cloud_url()}. Please check your internet connection.") from None
59
63
 
60
64
 
61
65
  @main_cli.command
lightning_sdk/job/base.py CHANGED
@@ -92,6 +92,7 @@ class _BaseJob(ABC, metaclass=TrackCallsABCMeta):
92
92
  max_runtime: Optional[int] = None,
93
93
  cluster: Optional[str] = None, # deprecated in favor of cloud_account
94
94
  reuse_snapshot: bool = True,
95
+ scratch_disks: Optional[Dict[str, int]] = None,
95
96
  ) -> "_BaseJob":
96
97
  """Run async workloads using a docker image or a compute environment from your studio.
97
98
 
@@ -236,6 +237,7 @@ class _BaseJob(ABC, metaclass=TrackCallsABCMeta):
236
237
  path_mappings=path_mappings,
237
238
  max_runtime=max_runtime,
238
239
  reuse_snapshot=reuse_snapshot,
240
+ scratch_disks=scratch_disks,
239
241
  )
240
242
 
241
243
  @abstractmethod
@@ -257,6 +259,7 @@ class _BaseJob(ABC, metaclass=TrackCallsABCMeta):
257
259
  path_mappings: Optional[Dict[str, str]] = None,
258
260
  max_runtime: Optional[int] = None,
259
261
  reuse_snapshot: bool = True,
262
+ scratch_disks: Optional[Dict[str, int]] = None,
260
263
  ) -> "_BaseJob":
261
264
  """Submit a new job to the Lightning AI platform.
262
265
 
lightning_sdk/job/job.py CHANGED
@@ -104,6 +104,7 @@ class Job(_BaseJob):
104
104
  artifacts_remote: Optional[str] = None, # deprecated in terms of path_mappings
105
105
  cluster: Optional[str] = None, # deprecated in favor of cloud_account
106
106
  reuse_snapshot: bool = True,
107
+ scratch_disks: Optional[Dict[str, int]] = None,
107
108
  ) -> "Job":
108
109
  """Run async workloads using a docker image or a compute environment from your studio.
109
110
 
@@ -172,6 +173,7 @@ class Job(_BaseJob):
172
173
  max_runtime=max_runtime,
173
174
  cluster=cluster,
174
175
  reuse_snapshot=reuse_snapshot,
176
+ scratch_disks=scratch_disks,
175
177
  )
176
178
  # required for typing with "Job"
177
179
  assert isinstance(ret_val, cls)
@@ -197,6 +199,7 @@ class Job(_BaseJob):
197
199
  artifacts_remote: Optional[str] = None, # deprecated in terms of path_mappings
198
200
  max_runtime: Optional[int] = None,
199
201
  reuse_snapshot: bool = True,
202
+ scratch_disks: Optional[Dict[str, int]] = None,
200
203
  ) -> "Job":
201
204
  """Submit a new job to the Lightning AI platform.
202
205
 
@@ -255,6 +258,7 @@ class Job(_BaseJob):
255
258
  artifacts_remote=artifacts_remote,
256
259
  max_runtime=max_runtime,
257
260
  reuse_snapshot=reuse_snapshot,
261
+ scratch_disks=scratch_disks,
258
262
  )
259
263
  return self
260
264
 
lightning_sdk/job/v1.py CHANGED
@@ -55,6 +55,7 @@ class _JobV1(_BaseJob):
55
55
  interruptible: bool = False,
56
56
  cluster: Optional[str] = None, # deprecated in favor of cloud_account
57
57
  reuse_snapshot: bool = True,
58
+ scratch_disks: Optional[Dict[str, int]] = None,
58
59
  ) -> "_BaseJob":
59
60
  """Start a new async workload from your studio.
60
61
 
@@ -111,6 +112,7 @@ class _JobV1(_BaseJob):
111
112
  path_mappings: Optional[Dict[str, str]] = None,
112
113
  max_runtime: Optional[int] = None,
113
114
  reuse_snapshot: bool = True,
115
+ scratch_disks: Optional[Dict[str, int]] = None,
114
116
  ) -> "_JobV1":
115
117
  """Submit a job to run on a machine.
116
118
 
lightning_sdk/job/v2.py CHANGED
@@ -1,3 +1,4 @@
1
+ from pathlib import PurePath
1
2
  from typing import TYPE_CHECKING, Dict, Optional, Union
2
3
 
3
4
  from lightning_sdk.api.job_api import JobApiV2
@@ -54,6 +55,7 @@ class _JobV2(_BaseJob):
54
55
  artifacts_local: Optional[str] = None, # deprecated in favor of path_mappings
55
56
  artifacts_remote: Optional[str] = None, # deprecated in favor of path_mappings
56
57
  reuse_snapshot: bool = True,
58
+ scratch_disks: Optional[Dict[str, int]] = None,
57
59
  ) -> "_JobV2":
58
60
  """Submit a new job to the Lightning AI platform.
59
61
 
@@ -90,6 +92,11 @@ class _JobV2(_BaseJob):
90
92
  Defaults to 3h
91
93
  reuse_snapshot: Whether the job should reuse a Studio snapshot when multiple jobs for the same Studio are
92
94
  submitted. Turning this off may result in longer job startup times. Defaults to True.
95
+ scratch_disks: Dictionary of scratch disks to add to the job. The keys are the path that the disk
96
+ will be mounted to, relative to the /teamspace/scratch directory. The values are the size of
97
+ the volume in GiB. For example, { "data": 100 } will add a 100GiB volume available under
98
+ /teamspace/scratch/data.
99
+
93
100
  """
94
101
  # Command is required if Studio is provided to know what to run
95
102
  # Image is mutually exclusive with Studio
@@ -115,6 +122,30 @@ class _JobV2(_BaseJob):
115
122
  default_cloud_account=self._teamspace.default_cloud_account,
116
123
  )
117
124
 
125
+ if scratch_disks is not None and len(scratch_disks) > 0:
126
+ if studio is None:
127
+ raise ValueError("scratch_disks are only supported within a studio job")
128
+
129
+ if len(scratch_disks) > 5:
130
+ raise ValueError("scratch_disk may only contain up to 5 elements")
131
+
132
+ for path, size in scratch_disks.items():
133
+ if size > 50000:
134
+ raise ValueError("scratch_disk size cannot exceed 50TiB")
135
+
136
+ path = PurePath(path)
137
+
138
+ if path.is_absolute():
139
+ # For compatibility with Python 3.8, which doesn't provide
140
+ # pathlib.PurePath.is_relative_to.
141
+ try:
142
+ path.relative_to("/teamspace/scratch")
143
+ except ValueError:
144
+ raise ValueError("scratch_disk paths must be relative to /teamspace/scratch") from None
145
+
146
+ if ".." in path.parts:
147
+ raise ValueError("scratch_disk path cannot contain '..'")
148
+
118
149
  submitted = self._job_api.submit_job(
119
150
  name=self.name,
120
151
  command=command,
@@ -133,6 +164,7 @@ class _JobV2(_BaseJob):
133
164
  path_mappings=path_mappings,
134
165
  max_runtime=max_runtime,
135
166
  reuse_snapshot=reuse_snapshot,
167
+ scratch_disks=scratch_disks,
136
168
  )
137
169
  self._job = submitted
138
170
  self._name = submitted.name
@@ -268,7 +268,7 @@ class Auth:
268
268
  self.save(user_id=user_id, api_key=api_key)
269
269
  logger.info("Successfully authenticated as a guest user.")
270
270
 
271
- return self.auth_header
271
+ return self.authenticate()
272
272
 
273
273
  def token_login(self, token_key: str, save_token: bool = True) -> Optional[str]:
274
274
  """Performs token-based authentication.