lightning-sdk 0.1.49__py3-none-any.whl → 2025.11.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (669) hide show
  1. lightning_sdk/__init__.py +19 -9
  2. lightning_sdk/__version__.py +3 -0
  3. lightning_sdk/agents.py +2 -1
  4. lightning_sdk/ai_hub.py +43 -38
  5. lightning_sdk/api/__init__.py +2 -0
  6. lightning_sdk/api/ai_hub_api.py +49 -6
  7. lightning_sdk/api/base_studio_api.py +90 -0
  8. lightning_sdk/api/cloud_account_api.py +225 -0
  9. lightning_sdk/api/deployment_api.py +133 -27
  10. lightning_sdk/api/job_api.py +147 -34
  11. lightning_sdk/api/license_api.py +37 -0
  12. lightning_sdk/api/lit_container_api.py +231 -19
  13. lightning_sdk/api/llm_api.py +306 -0
  14. lightning_sdk/api/mmt_api.py +112 -28
  15. lightning_sdk/api/pipeline_api.py +120 -0
  16. lightning_sdk/api/studio_api.py +440 -89
  17. lightning_sdk/api/teamspace_api.py +269 -31
  18. lightning_sdk/api/user_api.py +56 -2
  19. lightning_sdk/api/utils.py +185 -52
  20. lightning_sdk/base_studio.py +123 -0
  21. lightning_sdk/cli/__init__.py +1 -0
  22. lightning_sdk/cli/base_studio/__init__.py +10 -0
  23. lightning_sdk/cli/base_studio/list.py +43 -0
  24. lightning_sdk/cli/config/__init__.py +14 -0
  25. lightning_sdk/cli/config/get.py +57 -0
  26. lightning_sdk/cli/config/set.py +92 -0
  27. lightning_sdk/cli/config/show.py +9 -0
  28. lightning_sdk/cli/entrypoint.py +98 -56
  29. lightning_sdk/cli/groups.py +56 -0
  30. lightning_sdk/cli/job/__init__.py +7 -0
  31. lightning_sdk/cli/legacy/__init__.py +0 -0
  32. lightning_sdk/cli/legacy/ai_hub.py +65 -0
  33. lightning_sdk/cli/legacy/clusters_menu.py +49 -0
  34. lightning_sdk/cli/legacy/configure.py +129 -0
  35. lightning_sdk/cli/legacy/connect.py +34 -0
  36. lightning_sdk/cli/legacy/create.py +115 -0
  37. lightning_sdk/cli/legacy/delete.py +131 -0
  38. lightning_sdk/cli/legacy/deploy/__init__.py +0 -0
  39. lightning_sdk/cli/legacy/deploy/_auth.py +196 -0
  40. lightning_sdk/cli/legacy/deploy/devbox.py +163 -0
  41. lightning_sdk/cli/legacy/deploy/serve.py +452 -0
  42. lightning_sdk/cli/legacy/docker_cli.py +22 -0
  43. lightning_sdk/cli/legacy/download.py +322 -0
  44. lightning_sdk/cli/legacy/entrypoint.py +110 -0
  45. lightning_sdk/cli/legacy/generate.py +52 -0
  46. lightning_sdk/cli/legacy/inspection.py +45 -0
  47. lightning_sdk/cli/{job_and_mmt_action.py → legacy/job_and_mmt_action.py} +6 -6
  48. lightning_sdk/cli/{jobs_menu.py → legacy/jobs_menu.py} +3 -2
  49. lightning_sdk/cli/legacy/list.py +326 -0
  50. lightning_sdk/cli/{mmts_menu.py → legacy/mmts_menu.py} +3 -2
  51. lightning_sdk/cli/legacy/open.py +81 -0
  52. lightning_sdk/cli/legacy/run.py +443 -0
  53. lightning_sdk/cli/legacy/start.py +107 -0
  54. lightning_sdk/cli/legacy/stop.py +107 -0
  55. lightning_sdk/cli/{studios_menu.py → legacy/studios_menu.py} +24 -1
  56. lightning_sdk/cli/legacy/switch.py +63 -0
  57. lightning_sdk/cli/{teamspace_menu.py → legacy/teamspace_menu.py} +12 -3
  58. lightning_sdk/cli/legacy/upload.py +382 -0
  59. lightning_sdk/cli/license/__init__.py +14 -0
  60. lightning_sdk/cli/license/get.py +15 -0
  61. lightning_sdk/cli/license/list.py +45 -0
  62. lightning_sdk/cli/license/set.py +13 -0
  63. lightning_sdk/cli/mmt/__init__.py +7 -0
  64. lightning_sdk/cli/studio/__init__.py +24 -0
  65. lightning_sdk/cli/studio/connect.py +139 -0
  66. lightning_sdk/cli/studio/create.py +96 -0
  67. lightning_sdk/cli/studio/delete.py +49 -0
  68. lightning_sdk/cli/studio/list.py +85 -0
  69. lightning_sdk/cli/studio/ssh.py +64 -0
  70. lightning_sdk/cli/studio/start.py +115 -0
  71. lightning_sdk/cli/studio/stop.py +45 -0
  72. lightning_sdk/cli/studio/switch.py +66 -0
  73. lightning_sdk/cli/utils/__init__.py +7 -0
  74. lightning_sdk/cli/utils/cloud_account_map.py +10 -0
  75. lightning_sdk/cli/utils/coloring.py +60 -0
  76. lightning_sdk/cli/utils/get_base_studio.py +24 -0
  77. lightning_sdk/cli/utils/handle_machine_and_gpus_args.py +69 -0
  78. lightning_sdk/cli/utils/logging.py +122 -0
  79. lightning_sdk/cli/utils/owner_selection.py +110 -0
  80. lightning_sdk/cli/utils/resolve.py +28 -0
  81. lightning_sdk/cli/utils/richt_print.py +35 -0
  82. lightning_sdk/cli/utils/save_to_config.py +27 -0
  83. lightning_sdk/cli/utils/ssh_connection.py +59 -0
  84. lightning_sdk/cli/utils/studio_selection.py +113 -0
  85. lightning_sdk/cli/utils/teamspace_selection.py +125 -0
  86. lightning_sdk/cli/vm/__init__.py +20 -0
  87. lightning_sdk/cli/vm/create.py +33 -0
  88. lightning_sdk/cli/vm/delete.py +25 -0
  89. lightning_sdk/cli/vm/list.py +30 -0
  90. lightning_sdk/cli/vm/ssh.py +31 -0
  91. lightning_sdk/cli/vm/start.py +60 -0
  92. lightning_sdk/cli/vm/stop.py +25 -0
  93. lightning_sdk/cli/vm/switch.py +38 -0
  94. lightning_sdk/constants.py +1 -0
  95. lightning_sdk/deployment/__init__.py +4 -0
  96. lightning_sdk/deployment/deployment.py +208 -28
  97. lightning_sdk/helpers.py +73 -34
  98. lightning_sdk/job/base.py +112 -12
  99. lightning_sdk/job/job.py +73 -44
  100. lightning_sdk/job/v1.py +28 -35
  101. lightning_sdk/job/v2.py +54 -17
  102. lightning_sdk/job/work.py +7 -3
  103. lightning_sdk/lightning_cloud/login.py +325 -18
  104. lightning_sdk/lightning_cloud/openapi/__init__.py +346 -26
  105. lightning_sdk/lightning_cloud/openapi/api/__init__.py +14 -0
  106. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +1801 -384
  107. lightning_sdk/lightning_cloud/openapi/api/auth_service_api.py +376 -0
  108. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +414 -2
  109. lightning_sdk/lightning_cloud/openapi/api/blog_posts_service_api.py +533 -0
  110. lightning_sdk/lightning_cloud/openapi/api/cloud_space_environment_template_service_api.py +638 -0
  111. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +2563 -866
  112. lightning_sdk/lightning_cloud/openapi/api/cloudy_service_api.py +327 -0
  113. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +1720 -347
  114. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +210 -4
  115. lightning_sdk/lightning_cloud/openapi/api/endpoint_service_api.py +126 -2119
  116. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +283 -0
  117. lightning_sdk/lightning_cloud/openapi/api/git_credentials_service_api.py +497 -0
  118. lightning_sdk/lightning_cloud/openapi/api/incidents_service_api.py +1058 -0
  119. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +2326 -492
  120. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +2273 -0
  121. lightning_sdk/lightning_cloud/openapi/api/lit_dataset_service_api.py +1973 -0
  122. lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +17 -5
  123. lightning_sdk/lightning_cloud/openapi/api/lit_registry_service_api.py +473 -5
  124. lightning_sdk/lightning_cloud/openapi/api/markets_service_api.py +145 -0
  125. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +24 -24
  126. lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +105 -0
  127. lightning_sdk/lightning_cloud/openapi/api/pipeline_templates_service_api.py +339 -0
  128. lightning_sdk/lightning_cloud/openapi/api/pipelines_service_api.py +795 -0
  129. lightning_sdk/lightning_cloud/openapi/api/product_license_service_api.py +525 -0
  130. lightning_sdk/lightning_cloud/openapi/api/projects_service_api.py +106 -5
  131. lightning_sdk/lightning_cloud/openapi/api/schedules_service_api.py +924 -0
  132. lightning_sdk/lightning_cloud/openapi/api/sdk_command_history_service_api.py +141 -0
  133. lightning_sdk/lightning_cloud/openapi/api/slurm_jobs_user_service_api.py +202 -0
  134. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +1508 -251
  135. lightning_sdk/lightning_cloud/openapi/api/user_service_api.py +121 -97
  136. lightning_sdk/lightning_cloud/openapi/api/volume_service_api.py +258 -0
  137. lightning_sdk/lightning_cloud/openapi/configuration.py +4 -20
  138. lightning_sdk/lightning_cloud/openapi/models/__init__.py +332 -26
  139. lightning_sdk/lightning_cloud/openapi/models/agentmanagedendpoints_id_body.py +27 -1
  140. lightning_sdk/lightning_cloud/openapi/models/agents_id_body.py +79 -1
  141. lightning_sdk/lightning_cloud/openapi/models/alertingevents_id_body.py +409 -0
  142. lightning_sdk/lightning_cloud/openapi/models/alerts_config_billing.py +175 -0
  143. lightning_sdk/lightning_cloud/openapi/models/alerts_config_studios.py +149 -0
  144. lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +303 -17
  145. lightning_sdk/lightning_cloud/openapi/models/blogposts_id_body.py +305 -0
  146. lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_systemmetrics_body.py +149 -0
  147. lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_visibility_body.py +149 -0
  148. lightning_sdk/lightning_cloud/openapi/models/cloudspaces_id_body.py +53 -1
  149. lightning_sdk/lightning_cloud/openapi/models/cluster_id_capacityblock_body.py +15 -15
  150. lightning_sdk/lightning_cloud/openapi/models/cluster_id_capacityreservations_body.py +81 -3
  151. lightning_sdk/lightning_cloud/openapi/models/cluster_id_kubernetestemplates_body.py +201 -0
  152. lightning_sdk/lightning_cloud/openapi/models/cluster_id_metrics_body.py +305 -0
  153. lightning_sdk/lightning_cloud/openapi/models/cluster_id_slurmusers_body.py +201 -0
  154. lightning_sdk/lightning_cloud/openapi/models/cluster_id_usagerestrictions_body.py +201 -0
  155. lightning_sdk/lightning_cloud/openapi/models/conversations_id_body1.py +123 -0
  156. lightning_sdk/lightning_cloud/openapi/models/create.py +105 -1
  157. lightning_sdk/lightning_cloud/openapi/models/create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs.py +131 -1
  158. lightning_sdk/lightning_cloud/openapi/models/create_machine_request_represents_the_request_to_create_a_machine.py +461 -0
  159. lightning_sdk/lightning_cloud/openapi/models/credits_autoreplenish_body.py +175 -0
  160. lightning_sdk/lightning_cloud/openapi/models/credits_autoreplenish_body1.py +175 -0
  161. lightning_sdk/lightning_cloud/openapi/models/dataset_id_versions_body.py +149 -0
  162. lightning_sdk/lightning_cloud/openapi/models/dataset_id_visibility_body.py +149 -0
  163. lightning_sdk/lightning_cloud/openapi/models/deployment_id_alertingpolicies_body.py +357 -0
  164. lightning_sdk/lightning_cloud/openapi/models/deployment_id_alertingpolicies_body1.py +331 -0
  165. lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +315 -3
  166. lightning_sdk/lightning_cloud/openapi/models/endpoints_id_body.py +27 -1
  167. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +199 -69
  168. lightning_sdk/lightning_cloud/openapi/models/externalv1_cluster.py +27 -1
  169. lightning_sdk/lightning_cloud/openapi/models/externalv1_user_status.py +79 -1
  170. lightning_sdk/lightning_cloud/openapi/models/id_codeconfig_body.py +1 -53
  171. lightning_sdk/lightning_cloud/openapi/models/id_contactowner_body.py +149 -0
  172. lightning_sdk/lightning_cloud/openapi/models/id_fork_body1.py +27 -1
  173. lightning_sdk/lightning_cloud/openapi/models/id_render_body.py +123 -0
  174. lightning_sdk/lightning_cloud/openapi/models/id_reportrestarttimings_body.py +123 -0
  175. lightning_sdk/lightning_cloud/openapi/models/id_sleepconfig_body.py +175 -0
  176. lightning_sdk/lightning_cloud/openapi/models/id_transfer_body.py +175 -0
  177. lightning_sdk/lightning_cloud/openapi/models/id_visibility_body1.py +123 -0
  178. lightning_sdk/lightning_cloud/openapi/models/id_visibility_body2.py +149 -0
  179. lightning_sdk/lightning_cloud/openapi/models/incident_id_messages_body.py +123 -0
  180. lightning_sdk/lightning_cloud/openapi/models/incidents_id_body.py +279 -0
  181. lightning_sdk/lightning_cloud/openapi/models/{v1_list_service_executions_response.py → job_id_reportroutingtelemetry_body.py} +23 -23
  182. lightning_sdk/lightning_cloud/openapi/models/kubernetestemplates_id_body.py +201 -0
  183. lightning_sdk/lightning_cloud/openapi/models/license_key_validate_body.py +123 -0
  184. lightning_sdk/lightning_cloud/openapi/models/litdatasets_dataset_id_body.py +149 -0
  185. lightning_sdk/lightning_cloud/openapi/models/litregistry_lit_repo_name_body.py +123 -0
  186. lightning_sdk/lightning_cloud/openapi/models/message_id_actions_body.py +201 -0
  187. lightning_sdk/lightning_cloud/openapi/models/messages_id_body.py +123 -0
  188. lightning_sdk/lightning_cloud/openapi/models/messages_message_id_body.py +123 -0
  189. lightning_sdk/lightning_cloud/openapi/models/metricsstream_create_body.py +79 -1
  190. lightning_sdk/lightning_cloud/openapi/models/metricsstream_id_body.py +27 -1
  191. lightning_sdk/lightning_cloud/openapi/models/model_id_versions_body.py +27 -1
  192. lightning_sdk/lightning_cloud/openapi/models/model_id_visibility_body.py +27 -1
  193. lightning_sdk/lightning_cloud/openapi/models/models_id_body.py +123 -0
  194. lightning_sdk/lightning_cloud/openapi/models/models_model_id_body.py +109 -31
  195. lightning_sdk/lightning_cloud/openapi/models/models_model_id_body1.py +149 -0
  196. lightning_sdk/lightning_cloud/openapi/models/org_id_memberships_body.py +27 -1
  197. lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +627 -3
  198. lightning_sdk/lightning_cloud/openapi/models/pipelines_id_body.py +539 -0
  199. lightning_sdk/lightning_cloud/openapi/models/pipelines_id_body1.py +123 -0
  200. lightning_sdk/lightning_cloud/openapi/models/pipelinetemplates_id_body.py +331 -0
  201. lightning_sdk/lightning_cloud/openapi/models/project_id_agents_body.py +27 -1
  202. lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +131 -1
  203. lightning_sdk/lightning_cloud/openapi/models/project_id_litdatasets_body.py +227 -0
  204. lightning_sdk/lightning_cloud/openapi/models/project_id_litregistry_body.py +2 -0
  205. lightning_sdk/lightning_cloud/openapi/models/project_id_pipelines_body.py +253 -0
  206. lightning_sdk/lightning_cloud/openapi/models/project_id_schedules_body.py +331 -0
  207. lightning_sdk/lightning_cloud/openapi/models/project_id_storage_body.py +27 -1
  208. lightning_sdk/lightning_cloud/openapi/models/project_id_storagetransfers_body.py +175 -0
  209. lightning_sdk/lightning_cloud/openapi/models/project_tab_management_messages.py +123 -0
  210. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +523 -3
  211. lightning_sdk/lightning_cloud/openapi/models/{service_artifact_artifact_kind.py → protobuf_null_value.py} +7 -9
  212. lightning_sdk/lightning_cloud/openapi/models/schedules_id_body.py +513 -0
  213. lightning_sdk/lightning_cloud/openapi/models/server_id_alerts_body.py +201 -0
  214. lightning_sdk/lightning_cloud/openapi/models/setup.py +149 -0
  215. lightning_sdk/lightning_cloud/openapi/models/slurm_jobs_body.py +93 -15
  216. lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +41 -15
  217. lightning_sdk/lightning_cloud/openapi/models/storagetransfers_validate_body.py +149 -0
  218. lightning_sdk/lightning_cloud/openapi/models/update.py +233 -129
  219. lightning_sdk/lightning_cloud/openapi/models/update1.py +383 -0
  220. lightning_sdk/lightning_cloud/openapi/models/upload_id_complete_body1.py +149 -0
  221. lightning_sdk/lightning_cloud/openapi/models/upload_id_parts_body1.py +149 -0
  222. lightning_sdk/lightning_cloud/openapi/models/uploads_upload_id_body.py +1 -27
  223. lightning_sdk/lightning_cloud/openapi/models/uploads_upload_id_body1.py +201 -0
  224. lightning_sdk/lightning_cloud/openapi/models/usagerestrictions_id_body.py +201 -0
  225. lightning_sdk/lightning_cloud/openapi/models/user_id_affiliatelinks_body.py +107 -3
  226. lightning_sdk/lightning_cloud/openapi/models/user_id_upgradetrigger_body.py +201 -0
  227. lightning_sdk/lightning_cloud/openapi/models/user_user_id_body.py +201 -0
  228. lightning_sdk/lightning_cloud/openapi/models/v1_abort_storage_transfer_response.py +97 -0
  229. lightning_sdk/lightning_cloud/openapi/models/v1_agent_job.py +188 -6
  230. lightning_sdk/lightning_cloud/openapi/models/v1_aggregated_pod_metrics.py +799 -0
  231. lightning_sdk/lightning_cloud/openapi/models/v1_ai_pod_v1.py +175 -0
  232. lightning_sdk/lightning_cloud/openapi/models/v1_alert_method.py +102 -0
  233. lightning_sdk/lightning_cloud/openapi/models/v1_alerts_config.py +149 -0
  234. lightning_sdk/lightning_cloud/openapi/models/v1_artifact.py +27 -1
  235. lightning_sdk/lightning_cloud/openapi/models/v1_assistant.py +79 -1
  236. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_model_status.py +6 -0
  237. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_session_daily_aggregated.py +383 -0
  238. lightning_sdk/lightning_cloud/openapi/models/v1_author.py +201 -0
  239. lightning_sdk/lightning_cloud/openapi/models/v1_aws_direct_v1.py +53 -1
  240. lightning_sdk/lightning_cloud/openapi/models/v1_billing_subscription.py +27 -1
  241. lightning_sdk/lightning_cloud/openapi/models/v1_billing_tier.py +1 -0
  242. lightning_sdk/lightning_cloud/openapi/models/v1_blog_post.py +435 -0
  243. lightning_sdk/lightning_cloud/openapi/models/v1_cancel_running_cloud_space_instance_transfer_response.py +97 -0
  244. lightning_sdk/lightning_cloud/openapi/models/v1_capacity_block_offering.py +27 -1
  245. lightning_sdk/lightning_cloud/openapi/models/v1_check_cluster_name_availability_request.py +123 -0
  246. lightning_sdk/lightning_cloud/openapi/models/v1_check_cluster_name_availability_response.py +123 -0
  247. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +117 -0
  248. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space.py +313 -1
  249. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_artifact_event.py +149 -0
  250. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_artifact_event_type.py +103 -0
  251. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_cold_start_metrics.py +669 -0
  252. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_cold_start_metrics_stats.py +357 -0
  253. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_config.py +149 -0
  254. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template.py +409 -0
  255. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +331 -0
  256. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_type.py +105 -0
  257. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_session.py +29 -3
  258. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_source_type.py +103 -0
  259. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_specialized_view.py +105 -0
  260. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_state.py +1 -0
  261. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_transfer_metadata.py +331 -0
  262. lightning_sdk/lightning_cloud/openapi/models/v1_cloudflare_v1.py +227 -0
  263. lightning_sdk/lightning_cloud/openapi/models/v1_cloudy_expert.py +279 -0
  264. lightning_sdk/lightning_cloud/openapi/models/v1_cloudy_settings.py +227 -0
  265. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +445 -3
  266. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +211 -3
  267. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_deletion_options.py +27 -1
  268. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_metrics.py +1527 -0
  269. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +209 -1
  270. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +521 -1
  271. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_status.py +27 -1
  272. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_tagging_options.py +55 -3
  273. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +2 -0
  274. lightning_sdk/lightning_cloud/openapi/models/{v1_upload_service_execution_artifact_response.py → v1_cluster_upload.py} +34 -34
  275. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_usage_restriction.py +227 -0
  276. lightning_sdk/lightning_cloud/openapi/models/v1_complete_lit_dataset_multi_part_upload_response.py +97 -0
  277. lightning_sdk/lightning_cloud/openapi/models/v1_complete_lit_dataset_upload_response.py +97 -0
  278. lightning_sdk/lightning_cloud/openapi/models/v1_complete_running_cloud_space_instance_transfer_response.py +97 -0
  279. lightning_sdk/lightning_cloud/openapi/models/{id_complete_body.py → v1_complete_upload_temporary_artifact_request.py} +29 -29
  280. lightning_sdk/lightning_cloud/openapi/models/v1_contact_assistant_owner_reason.py +102 -0
  281. lightning_sdk/lightning_cloud/openapi/models/v1_contact_assistant_owner_response.py +97 -0
  282. lightning_sdk/lightning_cloud/openapi/models/v1_container_metrics.py +461 -0
  283. lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +53 -1
  284. lightning_sdk/lightning_cloud/openapi/models/v1_conversation_response_chunk.py +107 -3
  285. lightning_sdk/lightning_cloud/openapi/models/v1_create_billing_upgrade_trigger_record_response.py +97 -0
  286. lightning_sdk/lightning_cloud/openapi/models/v1_create_blog_post_request.py +305 -0
  287. lightning_sdk/lightning_cloud/openapi/models/v1_create_checkout_session_request.py +27 -1
  288. lightning_sdk/lightning_cloud/openapi/models/v1_create_cloud_space_environment_template_request.py +409 -0
  289. lightning_sdk/lightning_cloud/openapi/models/v1_create_cluster_capacity_reservation_response.py +27 -1
  290. lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_request.py +539 -0
  291. lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_template_request.py +27 -1
  292. lightning_sdk/lightning_cloud/openapi/models/v1_create_git_credentials_request.py +175 -0
  293. lightning_sdk/lightning_cloud/openapi/models/v1_create_incident_request.py +305 -0
  294. lightning_sdk/lightning_cloud/openapi/models/v1_create_job_request.py +201 -0
  295. lightning_sdk/lightning_cloud/openapi/models/v1_create_license_request.py +175 -0
  296. lightning_sdk/lightning_cloud/openapi/models/v1_create_lit_dataset_multi_part_upload_response.py +123 -0
  297. lightning_sdk/lightning_cloud/openapi/models/v1_create_machine_response.py +123 -0
  298. lightning_sdk/lightning_cloud/openapi/models/v1_create_managed_endpoint_response.py +149 -0
  299. lightning_sdk/lightning_cloud/openapi/models/v1_create_model_metrics_response.py +97 -0
  300. lightning_sdk/lightning_cloud/openapi/models/v1_create_multi_machine_job_request.py +253 -0
  301. lightning_sdk/lightning_cloud/openapi/models/v1_create_organization_request.py +105 -1
  302. lightning_sdk/lightning_cloud/openapi/models/v1_create_pipeline_template_request.py +383 -0
  303. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +209 -1
  304. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_request.py +253 -0
  305. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_response.py +97 -0
  306. lightning_sdk/lightning_cloud/openapi/models/v1_create_server_alert_response.py +97 -0
  307. lightning_sdk/lightning_cloud/openapi/models/v1_create_subscription_checkout_session_request.py +55 -3
  308. lightning_sdk/lightning_cloud/openapi/models/v1_daily_model_metrics.py +149 -0
  309. lightning_sdk/lightning_cloud/openapi/models/v1_daily_usage.py +81 -3
  310. lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +261 -1
  311. lightning_sdk/lightning_cloud/openapi/models/v1_data_connection_tier.py +103 -0
  312. lightning_sdk/lightning_cloud/openapi/models/v1_delete_blog_post_response.py +123 -0
  313. lightning_sdk/lightning_cloud/openapi/models/v1_delete_cloud_space_environment_template_response.py +97 -0
  314. lightning_sdk/lightning_cloud/openapi/models/v1_delete_cluster_usage_restriction_response.py +97 -0
  315. lightning_sdk/lightning_cloud/openapi/models/v1_delete_deployment_alerting_policy_response.py +175 -0
  316. lightning_sdk/lightning_cloud/openapi/models/v1_delete_git_credentials_response.py +97 -0
  317. lightning_sdk/lightning_cloud/openapi/models/v1_delete_incident_message_response.py +97 -0
  318. lightning_sdk/lightning_cloud/openapi/models/v1_delete_incident_response.py +97 -0
  319. lightning_sdk/lightning_cloud/openapi/models/v1_delete_kubernetes_template_response.py +97 -0
  320. lightning_sdk/lightning_cloud/openapi/models/v1_delete_license_response.py +97 -0
  321. lightning_sdk/lightning_cloud/openapi/models/v1_delete_lit_dataset_response.py +97 -0
  322. lightning_sdk/lightning_cloud/openapi/models/v1_delete_lit_dataset_version_response.py +97 -0
  323. lightning_sdk/lightning_cloud/openapi/models/v1_delete_lit_registry_repository_image_artifact_version_by_digest_response.py +97 -0
  324. lightning_sdk/lightning_cloud/openapi/models/v1_delete_machine_response.py +97 -0
  325. lightning_sdk/lightning_cloud/openapi/models/{v1_delete_file_endpoint_response.py → v1_delete_pipeline_response.py} +25 -25
  326. lightning_sdk/lightning_cloud/openapi/models/v1_delete_schedule_response.py +175 -0
  327. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +315 -3
  328. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_event.py +487 -0
  329. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy.py +409 -0
  330. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_frequency.py +105 -0
  331. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_operation.py +105 -0
  332. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_severity.py +106 -0
  333. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_type.py +112 -0
  334. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_recipients.py +175 -0
  335. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_api.py +79 -1
  336. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_details.py +175 -0
  337. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_state.py +4 -2
  338. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_status.py +47 -21
  339. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template.py +53 -1
  340. lightning_sdk/lightning_cloud/openapi/models/v1_endpoint.py +27 -1
  341. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster.py +253 -0
  342. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +931 -0
  343. lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +53 -1
  344. lightning_sdk/lightning_cloud/openapi/models/v1_filestore_data_connection.py +253 -0
  345. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_job.py +53 -1
  346. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_metric.py +201 -0
  347. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_metrics.py +227 -0
  348. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_mmt.py +227 -0
  349. lightning_sdk/lightning_cloud/openapi/models/v1_find_capacity_block_offering_response.py +29 -3
  350. lightning_sdk/lightning_cloud/openapi/models/{id_uploads_body1.py → v1_firewall_rule.py} +53 -53
  351. lightning_sdk/lightning_cloud/openapi/models/v1_function_call.py +149 -0
  352. lightning_sdk/lightning_cloud/openapi/models/v1_function_tool.py +175 -0
  353. lightning_sdk/lightning_cloud/openapi/models/{v1_list_file_endpoints_response.py → v1_gcp_data_connection_setup.py} +23 -23
  354. lightning_sdk/lightning_cloud/openapi/models/v1_gcp_direct_vpc.py +149 -0
  355. lightning_sdk/lightning_cloud/openapi/models/v1_ge_list_deployment_routing_telemetry_response.py +123 -0
  356. lightning_sdk/lightning_cloud/openapi/models/v1_get_artifacts_page_response.py +29 -3
  357. lightning_sdk/lightning_cloud/openapi/models/v1_get_assistant_session_daily_aggregated_response.py +201 -0
  358. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_cold_start_metrics_stats_response.py +123 -0
  359. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_instance_open_ports_response.py +123 -0
  360. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_instance_system_metrics_aggregate_response.py +123 -0
  361. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_required_balance_status_response.py +149 -0
  362. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_size_response.py +79 -1
  363. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_transfer_estimate_response.py +149 -0
  364. lightning_sdk/lightning_cloud/openapi/models/v1_get_cluster_accelerator_demand_response.py +123 -0
  365. lightning_sdk/lightning_cloud/openapi/models/v1_get_cluster_health_response.py +149 -0
  366. lightning_sdk/lightning_cloud/openapi/models/v1_get_deployment_routing_telemetry_content_response.py +123 -0
  367. lightning_sdk/lightning_cloud/openapi/models/v1_get_job_stats_response.py +105 -1
  368. lightning_sdk/lightning_cloud/openapi/models/v1_get_latest_model_metrics_response.py +123 -0
  369. lightning_sdk/lightning_cloud/openapi/models/{v1_upload_service_execution_artifact_parts_response.py → v1_get_lit_dataset_file_upload_urls_response.py} +16 -16
  370. lightning_sdk/lightning_cloud/openapi/models/v1_get_lit_dataset_files_url_response.py +149 -0
  371. lightning_sdk/lightning_cloud/openapi/models/v1_get_machine_response.py +123 -0
  372. lightning_sdk/lightning_cloud/openapi/models/v1_get_market_pricing_response.py +201 -0
  373. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_metrics_response.py +123 -0
  374. lightning_sdk/lightning_cloud/openapi/models/v1_get_organization_storage_metadata_response.py +487 -0
  375. lightning_sdk/lightning_cloud/openapi/models/v1_get_project_balance_response.py +1 -27
  376. lightning_sdk/lightning_cloud/openapi/models/v1_get_project_storage_metadata_response.py +263 -3
  377. lightning_sdk/lightning_cloud/openapi/models/v1_get_temp_bucket_credentials_response.py +201 -0
  378. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +235 -1
  379. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_storage_breakdown_response.py +105 -1
  380. lightning_sdk/lightning_cloud/openapi/models/v1_get_volume_response.py +123 -0
  381. lightning_sdk/lightning_cloud/openapi/models/v1_git_credentials.py +227 -0
  382. lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +185 -3
  383. lightning_sdk/lightning_cloud/openapi/models/v1_group_node_metrics.py +1215 -0
  384. lightning_sdk/lightning_cloud/openapi/models/v1_group_pod_metrics.py +1241 -0
  385. lightning_sdk/lightning_cloud/openapi/models/v1_guest_login_request.py +177 -0
  386. lightning_sdk/lightning_cloud/openapi/models/v1_guest_login_response.py +149 -0
  387. lightning_sdk/lightning_cloud/openapi/models/{v1_service_artifact.py → v1_guest_user.py} +60 -60
  388. lightning_sdk/lightning_cloud/openapi/models/v1_incident.py +565 -0
  389. lightning_sdk/lightning_cloud/openapi/models/v1_incident_detail.py +149 -0
  390. lightning_sdk/lightning_cloud/openapi/models/v1_incident_event.py +591 -0
  391. lightning_sdk/lightning_cloud/openapi/models/v1_incident_message.py +253 -0
  392. lightning_sdk/lightning_cloud/openapi/models/v1_incident_severity.py +105 -0
  393. lightning_sdk/lightning_cloud/openapi/models/v1_incident_type.py +108 -0
  394. lightning_sdk/lightning_cloud/openapi/models/v1_instance_overprovisioning_spec.py +95 -41
  395. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +237 -3
  396. lightning_sdk/lightning_cloud/openapi/models/v1_job_artifacts_type.py +103 -0
  397. lightning_sdk/lightning_cloud/openapi/models/v1_job_resource.py +279 -0
  398. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +209 -1
  399. lightning_sdk/lightning_cloud/openapi/models/v1_job_timing.py +27 -1
  400. lightning_sdk/lightning_cloud/openapi/models/v1_job_type.py +109 -0
  401. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_indexes.py +149 -0
  402. lightning_sdk/lightning_cloud/openapi/models/v1_kai_scheduler_queue_metrics.py +627 -0
  403. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_aws_config.py +279 -0
  404. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +253 -0
  405. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +357 -0
  406. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1_status.py +149 -0
  407. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_template.py +357 -0
  408. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_template_property.py +227 -0
  409. lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +67 -17
  410. lightning_sdk/lightning_cloud/openapi/models/v1_license.py +227 -0
  411. lightning_sdk/lightning_cloud/openapi/models/v1_lightning_elastic_cluster_v1.py +97 -0
  412. lightning_sdk/lightning_cloud/openapi/models/v1_lightning_run.py +53 -1
  413. lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_instance_artifact.py +27 -1
  414. lightning_sdk/lightning_cloud/openapi/models/v1_like_status.py +104 -0
  415. lightning_sdk/lightning_cloud/openapi/models/v1_list_aggregated_pod_metrics_response.py +123 -0
  416. lightning_sdk/lightning_cloud/openapi/models/{v1_download_service_execution_artifact_response.py → v1_list_blog_posts_response.py} +41 -41
  417. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_cold_start_metrics_response.py +123 -0
  418. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_environment_templates_response.py +123 -0
  419. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloudy_experts_response.py +123 -0
  420. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_metric_timestamps_response.py +123 -0
  421. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_metrics_response.py +123 -0
  422. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_namespace_metrics_response.py +123 -0
  423. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_namespace_user_metrics_response.py +123 -0
  424. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_usage_restrictions_response.py +123 -0
  425. lightning_sdk/lightning_cloud/openapi/models/v1_list_clusters_response.py +6 -6
  426. lightning_sdk/lightning_cloud/openapi/models/v1_list_container_metrics_response.py +123 -0
  427. lightning_sdk/lightning_cloud/openapi/models/v1_list_conversation_message_actions_response.py +123 -0
  428. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_alerting_events_response.py +123 -0
  429. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_alerting_policies_response.py +175 -0
  430. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_metrics_response.py +123 -0
  431. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_mm_ts_response.py +123 -0
  432. lightning_sdk/lightning_cloud/openapi/models/v1_list_git_credentials_response.py +123 -0
  433. lightning_sdk/lightning_cloud/openapi/models/v1_list_group_pod_metrics_response.py +123 -0
  434. lightning_sdk/lightning_cloud/openapi/models/v1_list_incident_events_response.py +123 -0
  435. lightning_sdk/lightning_cloud/openapi/models/v1_list_incident_messages_response.py +149 -0
  436. lightning_sdk/lightning_cloud/openapi/models/v1_list_incidents_response.py +149 -0
  437. lightning_sdk/lightning_cloud/openapi/models/v1_list_job_resources_response.py +123 -0
  438. lightning_sdk/lightning_cloud/openapi/models/v1_list_kai_scheduler_queues_metrics_response.py +123 -0
  439. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_templates_response.py +123 -0
  440. lightning_sdk/lightning_cloud/openapi/models/v1_list_license_response.py +123 -0
  441. lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_dataset_versions_response.py +123 -0
  442. lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_datasets_response.py +123 -0
  443. lightning_sdk/lightning_cloud/openapi/models/v1_list_lit_registry_repository_image_artifact_versions_response.py +257 -0
  444. lightning_sdk/lightning_cloud/openapi/models/v1_list_machines_response.py +149 -0
  445. lightning_sdk/lightning_cloud/openapi/models/v1_list_node_file_system_metrics_response.py +97 -0
  446. lightning_sdk/lightning_cloud/openapi/models/v1_list_node_metrics_response.py +123 -0
  447. lightning_sdk/lightning_cloud/openapi/models/v1_list_notification_dialogs_response.py +149 -0
  448. lightning_sdk/lightning_cloud/openapi/models/v1_list_pipelines_response.py +123 -0
  449. lightning_sdk/lightning_cloud/openapi/models/v1_list_platform_notifications_response.py +123 -0
  450. lightning_sdk/lightning_cloud/openapi/models/v1_list_pod_metrics_response.py +123 -0
  451. lightning_sdk/lightning_cloud/openapi/models/v1_list_project_clusters_response.py +6 -6
  452. lightning_sdk/lightning_cloud/openapi/models/v1_list_published_managed_endpoints_response.py +123 -0
  453. lightning_sdk/lightning_cloud/openapi/models/v1_list_schedule_runs_response.py +123 -0
  454. lightning_sdk/lightning_cloud/openapi/models/v1_list_schedules_response.py +123 -0
  455. lightning_sdk/lightning_cloud/openapi/models/v1_list_slurm_cluster_users_response.py +123 -0
  456. lightning_sdk/lightning_cloud/openapi/models/v1_list_storage_transfers_response.py +123 -0
  457. lightning_sdk/lightning_cloud/openapi/models/v1_lit_dataset.py +539 -0
  458. lightning_sdk/lightning_cloud/openapi/models/{id_storage_body.py → v1_lit_dataset_file.py} +49 -49
  459. lightning_sdk/lightning_cloud/openapi/models/v1_lit_dataset_version_archive.py +435 -0
  460. lightning_sdk/lightning_cloud/openapi/models/v1_lit_registry_artifact.py +305 -0
  461. lightning_sdk/lightning_cloud/openapi/models/v1_lit_registry_project.py +35 -1
  462. lightning_sdk/lightning_cloud/openapi/models/v1_lit_repository.py +81 -1
  463. lightning_sdk/lightning_cloud/openapi/models/v1_lite_published_cloud_space_response.py +513 -0
  464. lightning_sdk/lightning_cloud/openapi/models/v1_lustre_data_connection.py +149 -0
  465. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +617 -0
  466. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +123 -0
  467. lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_response.py +53 -1
  468. lightning_sdk/lightning_cloud/openapi/models/v1_managed_endpoint.py +27 -1
  469. lightning_sdk/lightning_cloud/openapi/models/v1_managed_model.py +341 -3
  470. lightning_sdk/lightning_cloud/openapi/models/v1_market_price.py +149 -0
  471. lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +121 -17
  472. lightning_sdk/lightning_cloud/openapi/models/v1_message.py +159 -3
  473. lightning_sdk/lightning_cloud/openapi/models/v1_message_action.py +279 -0
  474. lightning_sdk/lightning_cloud/openapi/models/v1_metadata.py +27 -1
  475. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +79 -1
  476. lightning_sdk/lightning_cloud/openapi/models/v1_model.py +27 -1
  477. lightning_sdk/lightning_cloud/openapi/models/v1_model_metrics.py +175 -0
  478. lightning_sdk/lightning_cloud/openapi/models/{v1_delete_service_execution_response.py → v1_modify_filesystem_volume_response.py} +6 -6
  479. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job.py +27 -1
  480. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_state.py +2 -0
  481. lightning_sdk/lightning_cloud/openapi/models/v1_namespace_metrics.py +591 -0
  482. lightning_sdk/lightning_cloud/openapi/models/v1_namespace_user_metrics.py +435 -0
  483. lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +175 -0
  484. lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +695 -0
  485. lightning_sdk/lightning_cloud/openapi/models/v1_notification_type.py +2 -0
  486. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +837 -3
  487. lightning_sdk/lightning_cloud/openapi/models/v1_path_mapping.py +175 -0
  488. lightning_sdk/lightning_cloud/openapi/models/v1_pause_storage_transfer_response.py +97 -0
  489. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline.py +591 -0
  490. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_parameter.py +435 -0
  491. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_parameter_placement.py +149 -0
  492. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_parameter_placement_type.py +106 -0
  493. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_parameter_type.py +106 -0
  494. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_state.py +111 -0
  495. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_step.py +253 -0
  496. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_step_status.py +331 -0
  497. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_step_type.py +104 -0
  498. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_template.py +513 -0
  499. lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_template_visibility_type.py +105 -0
  500. lightning_sdk/lightning_cloud/openapi/models/v1_platform_notification.py +279 -0
  501. lightning_sdk/lightning_cloud/openapi/models/v1_pod_metrics.py +747 -0
  502. lightning_sdk/lightning_cloud/openapi/models/v1_post_cloud_space_artifact_events_response.py +97 -0
  503. lightning_sdk/lightning_cloud/openapi/models/v1_project.py +105 -1
  504. lightning_sdk/lightning_cloud/openapi/models/v1_project_cluster_binding.py +53 -1
  505. lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +121 -17
  506. lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +525 -3
  507. lightning_sdk/lightning_cloud/openapi/models/v1_project_storage.py +235 -1
  508. lightning_sdk/lightning_cloud/openapi/models/v1_project_tab.py +149 -0
  509. lightning_sdk/lightning_cloud/openapi/models/v1_purchase_annual_upsell_request.py +123 -0
  510. lightning_sdk/lightning_cloud/openapi/models/v1_purchase_annual_upsell_response.py +123 -0
  511. lightning_sdk/lightning_cloud/openapi/models/v1_quote_annual_upsell_response.py +227 -0
  512. lightning_sdk/lightning_cloud/openapi/models/v1_quote_subscription_response.py +27 -1
  513. lightning_sdk/lightning_cloud/openapi/models/v1_r2_data_connection.py +305 -0
  514. lightning_sdk/lightning_cloud/openapi/models/v1_render_kubernetes_template_response.py +123 -0
  515. lightning_sdk/lightning_cloud/openapi/models/v1_report_cloud_space_instance_stop_at_response.py +97 -0
  516. lightning_sdk/lightning_cloud/openapi/models/v1_report_cloud_space_instance_system_metrics_response.py +97 -0
  517. lightning_sdk/lightning_cloud/openapi/models/v1_report_deployment_routing_telemetry_response.py +97 -0
  518. lightning_sdk/lightning_cloud/openapi/models/v1_report_k8s_cluster_metrics_response.py +97 -0
  519. lightning_sdk/lightning_cloud/openapi/models/v1_report_restart_timings_response.py +97 -0
  520. lightning_sdk/lightning_cloud/openapi/models/v1_request_cloud_space_access_response.py +97 -0
  521. lightning_sdk/lightning_cloud/openapi/models/v1_required_balance_reason.py +107 -0
  522. lightning_sdk/lightning_cloud/openapi/models/v1_reservation_details.py +201 -0
  523. lightning_sdk/lightning_cloud/openapi/models/v1_reset_api_key_request.py +97 -0
  524. lightning_sdk/lightning_cloud/openapi/models/v1_reset_api_key_response.py +123 -0
  525. lightning_sdk/lightning_cloud/openapi/models/v1_resource_visibility.py +27 -1
  526. lightning_sdk/lightning_cloud/openapi/models/v1_resources.py +55 -3
  527. lightning_sdk/lightning_cloud/openapi/models/v1_response_choice.py +29 -3
  528. lightning_sdk/lightning_cloud/openapi/models/v1_restart_timing.py +201 -0
  529. lightning_sdk/lightning_cloud/openapi/models/v1_resume_storage_transfer_response.py +97 -0
  530. lightning_sdk/lightning_cloud/openapi/models/v1_routing_telemetry.py +357 -0
  531. lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +5 -0
  532. lightning_sdk/lightning_cloud/openapi/models/v1_schedule.py +565 -0
  533. lightning_sdk/lightning_cloud/openapi/models/{command_argument_command_argument_type.py → v1_schedule_action_type.py} +9 -8
  534. lightning_sdk/lightning_cloud/openapi/models/v1_schedule_resource_type.py +104 -0
  535. lightning_sdk/lightning_cloud/openapi/models/v1_schedule_run.py +357 -0
  536. lightning_sdk/lightning_cloud/openapi/models/v1_sdk_command_history_severity.py +104 -0
  537. lightning_sdk/lightning_cloud/openapi/models/v1_sdk_command_history_type.py +104 -0
  538. lightning_sdk/lightning_cloud/openapi/models/v1_secret_type.py +2 -0
  539. lightning_sdk/lightning_cloud/openapi/models/{v1_get_service_execution_status_response.py → v1_server_alert.py} +74 -48
  540. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_phase.py +105 -0
  541. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_severity.py +103 -0
  542. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_type.py +108 -0
  543. lightning_sdk/lightning_cloud/openapi/models/v1_service_health.py +27 -1
  544. lightning_sdk/lightning_cloud/openapi/models/v1_setup_data_connection_response.py +123 -0
  545. lightning_sdk/lightning_cloud/openapi/models/v1_shared_filesystem.py +331 -0
  546. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py +201 -0
  547. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier_type.py +105 -0
  548. lightning_sdk/lightning_cloud/openapi/models/v1_sleep_server_response.py +97 -0
  549. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_cluster_user.py +227 -0
  550. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_job.py +84 -6
  551. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_node.py +31 -291
  552. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1.py +79 -1
  553. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1_status.py +79 -1
  554. lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset.py +159 -3
  555. lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset_type.py +4 -0
  556. lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer.py +435 -0
  557. lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer_status.py +108 -0
  558. lightning_sdk/lightning_cloud/openapi/models/v1_subnet_spec.py +149 -0
  559. lightning_sdk/lightning_cloud/openapi/models/v1_system_metrics_aggregated.py +227 -0
  560. lightning_sdk/lightning_cloud/openapi/models/v1_token_login_request.py +123 -0
  561. lightning_sdk/lightning_cloud/openapi/models/v1_token_login_response.py +123 -0
  562. lightning_sdk/lightning_cloud/openapi/models/v1_token_owner_type.py +104 -0
  563. lightning_sdk/lightning_cloud/openapi/models/v1_token_usage.py +175 -0
  564. lightning_sdk/lightning_cloud/openapi/models/v1_tool.py +149 -0
  565. lightning_sdk/lightning_cloud/openapi/models/v1_tool_call.py +175 -0
  566. lightning_sdk/lightning_cloud/openapi/models/v1_transaction.py +27 -1
  567. lightning_sdk/lightning_cloud/openapi/models/v1_transfer_cloud_space_response.py +97 -0
  568. lightning_sdk/lightning_cloud/openapi/models/v1_trigger_filesystem_upgrade_response.py +123 -0
  569. lightning_sdk/lightning_cloud/openapi/models/v1_update_cloud_space_instance_config_request.py +253 -0
  570. lightning_sdk/lightning_cloud/openapi/models/v1_update_cloud_space_visibility_response.py +97 -0
  571. lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_like_response.py +149 -0
  572. lightning_sdk/lightning_cloud/openapi/models/v1_update_conversation_message_like_response.py +149 -0
  573. lightning_sdk/lightning_cloud/openapi/models/v1_update_deployment_visibility_response.py +97 -0
  574. lightning_sdk/lightning_cloud/openapi/models/v1_update_job_visibility_response.py +97 -0
  575. lightning_sdk/lightning_cloud/openapi/models/v1_update_lit_dataset_visibility_response.py +123 -0
  576. lightning_sdk/lightning_cloud/openapi/models/v1_update_lit_repository_response.py +97 -0
  577. lightning_sdk/lightning_cloud/openapi/models/v1_update_metrics_stream_visibility_response.py +27 -1
  578. lightning_sdk/lightning_cloud/openapi/models/v1_update_model_visibility_response.py +27 -1
  579. lightning_sdk/lightning_cloud/openapi/models/{v1_complete_upload_service_execution_artifact_response.py → v1_update_organization_credits_auto_replenish_response.py} +6 -6
  580. lightning_sdk/lightning_cloud/openapi/models/v1_update_project_tab_order_response.py +123 -0
  581. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_credits_auto_replenish_response.py +97 -0
  582. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +131 -1
  583. lightning_sdk/lightning_cloud/openapi/models/v1_update_volume_response.py +123 -0
  584. lightning_sdk/lightning_cloud/openapi/models/v1_upload_project_artifact_response.py +27 -1
  585. lightning_sdk/lightning_cloud/openapi/models/{v1_list_new_features_for_user_response.py → v1_upload_temporary_artifact_request.py} +23 -23
  586. lightning_sdk/lightning_cloud/openapi/models/v1_usage.py +105 -1
  587. lightning_sdk/lightning_cloud/openapi/models/v1_usage_report.py +79 -1
  588. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +894 -842
  589. lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +27 -1
  590. lightning_sdk/lightning_cloud/openapi/models/v1_validate_data_connection_response.py +27 -1
  591. lightning_sdk/lightning_cloud/openapi/models/v1_validate_deployment_image_request.py +27 -1
  592. lightning_sdk/lightning_cloud/openapi/models/v1_validate_license_response.py +123 -0
  593. lightning_sdk/lightning_cloud/openapi/models/v1_validate_managed_endpoint_response.py +27 -1
  594. lightning_sdk/lightning_cloud/openapi/models/v1_validate_storage_transfer_response.py +123 -0
  595. lightning_sdk/lightning_cloud/openapi/models/v1_voltage_park_direct_v1.py +229 -0
  596. lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +513 -45
  597. lightning_sdk/lightning_cloud/openapi/models/v1_volume_state.py +105 -0
  598. lightning_sdk/lightning_cloud/openapi/models/v1_vultr_direct_v1.py +1 -27
  599. lightning_sdk/lightning_cloud/openapi/models/v1_weka_data_connection.py +201 -0
  600. lightning_sdk/lightning_cloud/openapi/models/validate.py +53 -1
  601. lightning_sdk/lightning_cloud/openapi/models/version_default_body.py +29 -29
  602. lightning_sdk/lightning_cloud/openapi/models/version_default_body1.py +149 -0
  603. lightning_sdk/lightning_cloud/openapi/models/version_uploads_body1.py +123 -0
  604. lightning_sdk/lightning_cloud/openapi/models/versions_version_body1.py +123 -0
  605. lightning_sdk/lightning_cloud/openapi/models/volumes_id_body.py +123 -0
  606. lightning_sdk/lightning_cloud/rest_client.py +61 -48
  607. lightning_sdk/lightning_cloud/source_code/logs_socket_api.py +8 -3
  608. lightning_sdk/lightning_cloud/utils/data_connection.py +234 -7
  609. lightning_sdk/lit_container.py +68 -9
  610. lightning_sdk/llm/__init__.py +3 -0
  611. lightning_sdk/llm/llm.py +497 -0
  612. lightning_sdk/llm/public_assistants.py +54 -0
  613. lightning_sdk/machine.py +221 -30
  614. lightning_sdk/mmt/base.py +67 -32
  615. lightning_sdk/mmt/mmt.py +68 -50
  616. lightning_sdk/mmt/v1.py +16 -32
  617. lightning_sdk/mmt/v2.py +47 -18
  618. lightning_sdk/models.py +74 -24
  619. lightning_sdk/organization.py +4 -0
  620. lightning_sdk/owner.py +2 -1
  621. lightning_sdk/pipeline/__init__.py +14 -0
  622. lightning_sdk/pipeline/pipeline.py +163 -0
  623. lightning_sdk/pipeline/printer.py +124 -0
  624. lightning_sdk/pipeline/schedule.py +859 -0
  625. lightning_sdk/pipeline/steps.py +365 -0
  626. lightning_sdk/pipeline/utils.py +116 -0
  627. lightning_sdk/plugin.py +39 -20
  628. lightning_sdk/sandbox.py +160 -0
  629. lightning_sdk/serve.py +309 -0
  630. lightning_sdk/services/__init__.py +1 -1
  631. lightning_sdk/services/file_endpoint.py +3 -4
  632. lightning_sdk/services/utilities.py +16 -2
  633. lightning_sdk/studio.py +515 -41
  634. lightning_sdk/teamspace.py +335 -30
  635. lightning_sdk/user.py +19 -1
  636. lightning_sdk/utils/config.py +179 -0
  637. lightning_sdk/utils/license.py +13 -0
  638. lightning_sdk/utils/logging.py +79 -0
  639. lightning_sdk/utils/names.py +1179 -0
  640. lightning_sdk/utils/progress.py +283 -0
  641. lightning_sdk/utils/resolve.py +149 -13
  642. {lightning_sdk-0.1.49.dist-info → lightning_sdk-2025.11.5.dist-info}/METADATA +14 -11
  643. {lightning_sdk-0.1.49.dist-info → lightning_sdk-2025.11.5.dist-info}/RECORD +649 -250
  644. {lightning_sdk-0.1.49.dist-info → lightning_sdk-2025.11.5.dist-info}/WHEEL +1 -1
  645. {lightning_sdk-0.1.49.dist-info → lightning_sdk-2025.11.5.dist-info}/entry_points.txt +1 -0
  646. lightning_sdk/cli/ai_hub.py +0 -49
  647. lightning_sdk/cli/delete.py +0 -58
  648. lightning_sdk/cli/download.py +0 -132
  649. lightning_sdk/cli/inspect.py +0 -31
  650. lightning_sdk/cli/legacy.py +0 -135
  651. lightning_sdk/cli/list.py +0 -112
  652. lightning_sdk/cli/run.py +0 -225
  653. lightning_sdk/cli/serve.py +0 -218
  654. lightning_sdk/cli/stop.py +0 -37
  655. lightning_sdk/cli/upload.py +0 -255
  656. lightning_sdk/lightning_cloud/openapi/models/fileendpoints_id_body.py +0 -409
  657. lightning_sdk/lightning_cloud/openapi/models/project_id_fileendpoints_body.py +0 -357
  658. lightning_sdk/lightning_cloud/openapi/models/project_id_serviceexecution_body.py +0 -175
  659. lightning_sdk/lightning_cloud/openapi/models/serviceexecution_id_body.py +0 -331
  660. lightning_sdk/lightning_cloud/openapi/models/v1_command_argument.py +0 -305
  661. lightning_sdk/lightning_cloud/openapi/models/v1_ebs.py +0 -279
  662. lightning_sdk/lightning_cloud/openapi/models/v1_file_endpoint.py +0 -461
  663. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_storage_response.py +0 -201
  664. lightning_sdk/lightning_cloud/openapi/models/v1_list_service_execution_lightningapp_instances_response.py +0 -175
  665. lightning_sdk/lightning_cloud/openapi/models/v1_service_execution.py +0 -383
  666. /lightning_sdk/cli/{exceptions.py → legacy/exceptions.py} +0 -0
  667. /lightning_sdk/services/{finetune/__init__.py → finetune_llm.py} +0 -0
  668. {lightning_sdk-0.1.49.dist-info → lightning_sdk-2025.11.5.dist-info}/LICENSE +0 -0
  669. {lightning_sdk-0.1.49.dist-info → lightning_sdk-2025.11.5.dist-info}/top_level.txt +0 -0
lightning_sdk/job/base.py CHANGED
@@ -1,11 +1,14 @@
1
+ import warnings
1
2
  from abc import ABC, abstractmethod
2
3
  from typing import TYPE_CHECKING, Any, Dict, Optional, TypedDict, Union
3
4
 
5
+ from lightning_sdk.api.cloud_account_api import CloudAccountApi
4
6
  from lightning_sdk.api.utils import _get_cloud_url
5
- from lightning_sdk.utils.resolve import _resolve_deprecated_cluster, _resolve_teamspace
7
+ from lightning_sdk.utils.logging import TrackCallsABCMeta
8
+ from lightning_sdk.utils.resolve import _resolve_deprecated_cluster, _resolve_teamspace, in_studio, skip_studio_setup
6
9
 
7
10
  if TYPE_CHECKING:
8
- from lightning_sdk.machine import Machine
11
+ from lightning_sdk.machine import CloudProvider, Machine
9
12
  from lightning_sdk.organization import Organization
10
13
  from lightning_sdk.status import Status
11
14
  from lightning_sdk.studio import Studio
@@ -16,7 +19,7 @@ if TYPE_CHECKING:
16
19
  class MachineDict(TypedDict):
17
20
  name: str
18
21
  status: "Status"
19
- machine: "Machine"
22
+ machine: Union["Machine", str]
20
23
 
21
24
 
22
25
  class JobDict(MachineDict):
@@ -27,7 +30,7 @@ class JobDict(MachineDict):
27
30
  total_cost: float
28
31
 
29
32
 
30
- class _BaseJob(ABC):
33
+ class _BaseJob(ABC, metaclass=TrackCallsABCMeta):
31
34
  """Base interface to all job types."""
32
35
 
33
36
  def __init__(
@@ -63,12 +66,13 @@ class _BaseJob(ABC):
63
66
  self._update_internal_job()
64
67
 
65
68
  self._prevent_refetch_latest = False
69
+ self._cloud_account_api = CloudAccountApi()
66
70
 
67
71
  @classmethod
68
72
  def run(
69
73
  cls,
70
74
  name: str,
71
- machine: "Machine",
75
+ machine: Union["Machine", str],
72
76
  command: Optional[str] = None,
73
77
  studio: Union["Studio", str, None] = None,
74
78
  image: Optional[str] = None,
@@ -76,6 +80,7 @@ class _BaseJob(ABC):
76
80
  org: Union[str, "Organization", None] = None,
77
81
  user: Union[str, "User", None] = None,
78
82
  cloud_account: Optional[str] = None,
83
+ cloud_provider: Optional[Union["CloudProvider", str]] = None,
79
84
  env: Optional[Dict[str, str]] = None,
80
85
  interruptible: bool = False,
81
86
  image_credentials: Optional[str] = None,
@@ -83,7 +88,10 @@ class _BaseJob(ABC):
83
88
  artifacts_local: Optional[str] = None,
84
89
  artifacts_remote: Optional[str] = None,
85
90
  entrypoint: str = "sh -c",
91
+ path_mappings: Optional[Dict[str, str]] = None,
92
+ max_runtime: Optional[int] = None,
86
93
  cluster: Optional[str] = None, # deprecated in favor of cloud_account
94
+ reuse_snapshot: bool = True,
87
95
  ) -> "_BaseJob":
88
96
  """Run async workloads using a docker image or a compute environment from your studio.
89
97
 
@@ -99,7 +107,11 @@ class _BaseJob(ABC):
99
107
  user: The user owning the teamspace (if any). Defaults to the current user.
100
108
  cloud_account: The cloud account to run the job on.
101
109
  Defaults to the studio cloud account if running with studio compute env.
102
- If not provided will fall back to the teamspaces default cloud account.
110
+ If not provided and `cloud_account_provider` is set, will resolve cluster from this, else
111
+ will fall back to the teamspaces default cloud account.
112
+ cloud_account_provider: The provider to select the cloud-account from.
113
+ If set, must be in agreement with the provider from the cloud_account (if specified).
114
+ If not specified, falls backto the teamspace default cloud account.
103
115
  env: Environment variables to set inside the job.
104
116
  interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
105
117
  image_credentials: The credentials used to pull the image. Required if the image is private.
@@ -120,7 +132,14 @@ class _BaseJob(ABC):
120
132
  just runs the provided command in a standard shell.
121
133
  To use the pre-defined entrypoint of the provided image, set this to an empty string.
122
134
  Only applicable when submitting docker jobs.
135
+ max_runtime: the duration (in seconds) for which to allocate the machine.
136
+ Irrelevant for most machines, required for some of the top-end machines on GCP.
137
+ If in doubt, set it. Won't have an effect on machines not requiring it.
138
+ Defaults to 3h
139
+ reuse_snapshot: Whether the job should reuse a Studio snapshot when multiple jobs for the same Studio are
140
+ submitted. Turning this off may result in longer job startup times. Defaults to True.
123
141
  """
142
+ from lightning_sdk.lightning_cloud.openapi.rest import ApiException
124
143
  from lightning_sdk.studio import Studio
125
144
 
126
145
  cloud_account = _resolve_deprecated_cluster(cloud_account, cluster)
@@ -130,9 +149,15 @@ class _BaseJob(ABC):
130
149
 
131
150
  if image is None:
132
151
  if not isinstance(studio, Studio):
133
- studio = Studio(
134
- name=studio, teamspace=teamspace, org=org, user=user, cloud_account=cloud_account, create_ok=False
135
- )
152
+ with skip_studio_setup():
153
+ studio = Studio(
154
+ name=studio,
155
+ teamspace=teamspace,
156
+ org=org,
157
+ user=user,
158
+ cloud_account=cloud_account,
159
+ create_ok=False,
160
+ )
136
161
 
137
162
  # studio is a Studio instance at this point
138
163
  if teamspace is None:
@@ -175,6 +200,13 @@ class _BaseJob(ABC):
175
200
  raise RuntimeError(
176
201
  "image and studio are mutually exclusive as both define the environment to run the job in"
177
202
  )
203
+ if cloud_account is None and in_studio():
204
+ try:
205
+ with skip_studio_setup():
206
+ resolve_studio = Studio(teamspace=teamspace, user=user, org=org)
207
+ cloud_account = resolve_studio.cloud_account
208
+ except (ValueError, ApiException):
209
+ warnings.warn("Could not infer cloud account from studio. Using teamspace default.")
178
210
 
179
211
  # they either need to specified both or none of them
180
212
  if bool(artifacts_local) != bool(artifacts_remote):
@@ -190,6 +222,7 @@ class _BaseJob(ABC):
190
222
  return inst._submit(
191
223
  machine=machine,
192
224
  cloud_account=cloud_account,
225
+ cloud_provider=cloud_provider,
193
226
  command=command,
194
227
  studio=studio,
195
228
  image=image,
@@ -200,23 +233,30 @@ class _BaseJob(ABC):
200
233
  artifacts_local=artifacts_local,
201
234
  artifacts_remote=artifacts_remote,
202
235
  entrypoint=entrypoint,
236
+ path_mappings=path_mappings,
237
+ max_runtime=max_runtime,
238
+ reuse_snapshot=reuse_snapshot,
203
239
  )
204
240
 
205
241
  @abstractmethod
206
242
  def _submit(
207
243
  self,
208
- machine: "Machine",
244
+ machine: Union["Machine", str],
209
245
  command: Optional[str] = None,
210
246
  studio: Optional["Studio"] = None,
211
247
  image: Optional[str] = None,
212
248
  env: Optional[Dict[str, str]] = None,
213
249
  interruptible: bool = False,
214
250
  cloud_account: Optional[str] = None,
251
+ cloud_provider: Optional[Union["CloudProvider", str]] = None,
215
252
  image_credentials: Optional[str] = None,
216
253
  cloud_account_auth: bool = False,
217
254
  artifacts_local: Optional[str] = None,
218
255
  artifacts_remote: Optional[str] = None,
219
256
  entrypoint: str = "sh -c",
257
+ path_mappings: Optional[Dict[str, str]] = None,
258
+ max_runtime: Optional[int] = None,
259
+ reuse_snapshot: bool = True,
220
260
  ) -> "_BaseJob":
221
261
  """Submit a new job to the Lightning AI platform.
222
262
 
@@ -230,7 +270,11 @@ class _BaseJob(ABC):
230
270
  interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
231
271
  cloud_account: The cloud account to run the job on.
232
272
  Defaults to the studio cloud account if running with studio compute env.
233
- If not provided will fall back to the teamspaces default cloud account.
273
+ If not provided and `cloud_account_provider` is set, will resolve cluster from this, else
274
+ will fall back to the teamspaces default cloud account.
275
+ cloud_account_provider: The provider to select the cloud-account from.
276
+ If set, must be in agreement with the provider from the cloud_account (if specified).
277
+ If not specified, falls backto the teamspace default cloud account.
234
278
  image_credentials: The credentials used to pull the image. Required if the image is private.
235
279
  This should be the name of the respective credentials secret created on the Lightning AI platform.
236
280
  cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
@@ -248,6 +292,12 @@ class _BaseJob(ABC):
248
292
  entrypoint: The entrypoint of your docker container. Defaults to sh -c.
249
293
  To use the pre-defined entrypoint of the provided image, set this to an empty string.
250
294
  Only applicable when submitting docker jobs.
295
+ max_runtime: the duration (in seconds) for which to allocate the machine.
296
+ Irrelevant for most machines, required for some of the top-end machines on GCP.
297
+ If in doubt, set it. Won't have an effect on machines not requiring it.
298
+ Defaults to 3h
299
+ reuse_snapshot: Whether the job should reuse a Studio snapshot when multiple jobs for the same Studio are
300
+ submitted. Turning this off may result in longer job startup times. Defaults to True.
251
301
  """
252
302
 
253
303
  @abstractmethod
@@ -264,6 +314,56 @@ class _BaseJob(ABC):
264
314
  Caution: This also deletes all artifacts and snapshots associated with the job.
265
315
  """
266
316
 
317
+ def wait(self, interval: float = 5.0, timeout: Optional[float] = None, stop_on_timeout: bool = False) -> None:
318
+ """Waits for the job to be either completed, manually stopped or failed.
319
+
320
+ Args:
321
+ interval: The number of seconds to spend in-between status checks.
322
+ timeout: The maximum number of seconds to wait before raising an error. If None, waits forever.
323
+ stop_on_timeout: Whether to stop the job if it didn't finish within the timeout.
324
+ """
325
+ import time
326
+
327
+ from lightning_sdk.status import Status
328
+
329
+ start = time.time()
330
+ while True:
331
+ if self.status in (Status.Completed, Status.Stopped, Status.Failed):
332
+ break
333
+
334
+ if timeout is not None and time.time() - start > timeout:
335
+ if stop_on_timeout:
336
+ self.stop() # ensure the job is stopped if it didn't finish
337
+ raise TimeoutError("Job didn't finish within the provided timeout.")
338
+
339
+ time.sleep(interval)
340
+
341
+ async def async_wait(
342
+ self, interval: float = 5.0, timeout: Optional[float] = None, stop_on_timeout: bool = False
343
+ ) -> None:
344
+ """Waits for the job to be either completed, manually stopped or failed.
345
+
346
+ Args:
347
+ interval: The number of seconds to spend in-between status checks.
348
+ timeout: The maximum number of seconds to wait before raising an error. If None, waits forever.
349
+ stop_on_timeout: Whether to stop the job if it didn't finish within the timeout.
350
+ """
351
+ import asyncio
352
+
353
+ from lightning_sdk.status import Status
354
+
355
+ start = asyncio.get_event_loop().time()
356
+ while True:
357
+ if self.status in (Status.Completed, Status.Stopped, Status.Failed):
358
+ break
359
+
360
+ if timeout is not None and asyncio.get_event_loop().time() - start > timeout:
361
+ if stop_on_timeout:
362
+ self.stop() # ensure the job is stopped if it didn't finish
363
+ raise TimeoutError("Job didn't finish within the provided timeout.")
364
+
365
+ await asyncio.sleep(interval)
366
+
267
367
  @property
268
368
  @abstractmethod
269
369
  def status(self) -> "Status":
@@ -271,7 +371,7 @@ class _BaseJob(ABC):
271
371
 
272
372
  @property
273
373
  @abstractmethod
274
- def machine(self) -> "Machine":
374
+ def machine(self) -> Union["Machine", str]:
275
375
  """The machine type the job is running on."""
276
376
 
277
377
  @property
lightning_sdk/job/job.py CHANGED
@@ -1,7 +1,5 @@
1
- from functools import lru_cache
2
1
  from typing import TYPE_CHECKING, Any, Dict, Optional, Union
3
2
 
4
- from lightning_sdk.api.user_api import UserApi
5
3
  from lightning_sdk.job.base import _BaseJob
6
4
  from lightning_sdk.job.v1 import _JobV1
7
5
  from lightning_sdk.job.v2 import _JobV2
@@ -10,7 +8,7 @@ from lightning_sdk.utils.resolve import _setup_logger
10
8
  _logger = _setup_logger(__name__)
11
9
 
12
10
  if TYPE_CHECKING:
13
- from lightning_sdk.machine import Machine
11
+ from lightning_sdk.machine import CloudProvider, Machine
14
12
  from lightning_sdk.organization import Organization
15
13
  from lightning_sdk.status import Status
16
14
  from lightning_sdk.studio import Studio
@@ -18,15 +16,6 @@ if TYPE_CHECKING:
18
16
  from lightning_sdk.user import User
19
17
 
20
18
 
21
- @lru_cache(maxsize=None)
22
- def _has_jobs_v2() -> bool:
23
- api = UserApi()
24
- try:
25
- return api._get_feature_flags().jobs_v2
26
- except Exception:
27
- return False
28
-
29
-
30
19
  class Job(_BaseJob):
31
20
  """Class to submit and manage single-machine jobs on the Lightning AI Platform."""
32
21
 
@@ -52,7 +41,7 @@ class Job(_BaseJob):
52
41
  """
53
42
  from lightning_sdk.lightning_cloud.openapi.rest import ApiException
54
43
 
55
- if _has_jobs_v2() and not self._force_v1:
44
+ if not self._force_v1:
56
45
  # try with v2 and fall back to v1
57
46
  try:
58
47
  job = _JobV2(
@@ -89,7 +78,7 @@ class Job(_BaseJob):
89
78
  def run(
90
79
  cls,
91
80
  name: str,
92
- machine: "Machine",
81
+ machine: Union["Machine", str],
93
82
  command: Optional[str] = None,
94
83
  studio: Union["Studio", str, None] = None,
95
84
  image: Union[str, None] = None,
@@ -97,14 +86,18 @@ class Job(_BaseJob):
97
86
  org: Union[str, "Organization", None] = None,
98
87
  user: Union[str, "User", None] = None,
99
88
  cloud_account: Optional[str] = None,
89
+ cloud_provider: Optional[Union["CloudProvider", str]] = None,
100
90
  env: Optional[Dict[str, str]] = None,
101
91
  interruptible: bool = False,
102
92
  image_credentials: Optional[str] = None,
103
93
  cloud_account_auth: bool = False,
104
- artifacts_local: Optional[str] = None,
105
- artifacts_remote: Optional[str] = None,
106
94
  entrypoint: str = "sh -c",
95
+ path_mappings: Optional[Dict[str, str]] = None,
96
+ max_runtime: Optional[int] = None,
97
+ artifacts_local: Optional[str] = None, # deprecated in terms of path_mappings
98
+ artifacts_remote: Optional[str] = None, # deprecated in terms of path_mappings
107
99
  cluster: Optional[str] = None, # deprecated in favor of cloud_account
100
+ reuse_snapshot: bool = True,
108
101
  ) -> "Job":
109
102
  """Run async workloads using a docker image or a compute environment from your studio.
110
103
 
@@ -118,29 +111,38 @@ class Job(_BaseJob):
118
111
  teamspace: The teamspace the job should be associated with. Defaults to the current teamspace.
119
112
  org: The organization owning the teamspace (if any). Defaults to the current organization.
120
113
  user: The user owning the teamspace (if any). Defaults to the current user.
121
- cloud_account: The cloud acocunt to run the job on.
114
+ cloud_account: The cloud account to run the job on.
122
115
  Defaults to the studio cloud account if running with studio compute env.
123
- If not provided will fall back to the teamspaces default cloud account.
116
+ If not provided and `cloud_account_provider` is set, will resolve cluster from this, else
117
+ will fall back to the teamspaces default cloud account.
118
+ cloud_account_provider: The provider to select the cloud-account from.
119
+ If set, must be in agreement with the provider from the cloud_account (if specified).
120
+ If not specified, falls backto the teamspace default cloud account.
124
121
  env: Environment variables to set inside the job.
125
122
  interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
126
123
  image_credentials: The credentials used to pull the image. Required if the image is private.
127
124
  This should be the name of the respective credentials secret created on the Lightning AI platform.
128
125
  cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
129
126
  Required if the registry is part of a cloud provider (e.g. ECR).
130
- artifacts_local: The path of inside the docker container, you want to persist images from.
131
- CAUTION: When setting this to "/", it will effectively erase your container.
132
- Only supported for jobs with a docker image compute environment.
133
- artifacts_remote: The remote storage to persist your artifacts to.
134
- Should be of format <CONNECTION_TYPE>:<CONNECTION_NAME>:<PATH_WITHIN_CONNECTION>.
135
- PATH_WITHIN_CONNECTION hereby is a path relative to the connection's root.
136
- E.g. efs:data:some-path would result in an EFS connection named `data` and to the path `some-path`
137
- within it.
138
- Note that the connection needs to be added to the teamspace already in order for it to be found.
139
- Only supported for jobs with a docker image compute environment.
140
127
  entrypoint: The entrypoint of your docker container. Defaults to `sh -c` which
141
128
  just runs the provided command in a standard shell.
142
129
  To use the pre-defined entrypoint of the provided image, set this to an empty string.
143
130
  Only applicable when submitting docker jobs.
131
+ path_mappings: Dictionary of path mappings. The keys are the path inside the container whereas the value
132
+ represents the data-connection name and the path inside that connection.
133
+ Should be of form
134
+ {
135
+ "<CONTAINER_PATH_1>": "<CONNECTION_NAME_1>:<PATH_WITHIN_CONNECTION_1>",
136
+ "<CONTAINER_PATH_2>": "<CONNECTION_NAME_2>"
137
+ }
138
+ If the path inside the connection is omitted it's assumed to be the root path of that connection.
139
+ Only applicable when submitting docker jobs.
140
+ max_runtime: the duration (in seconds) for which to allocate the machine.
141
+ Irrelevant for most machines, required for some of the top-end machines on GCP.
142
+ If in doubt, set it. Won't have an effect on machines not requiring it.
143
+ Defaults to 3h
144
+ reuse_snapshot: Whether the job should reuse a Studio snapshot when multiple jobs for the same Studio are
145
+ submitted. Turning this off may result in longer job startup times. Defaults to True.
144
146
  """
145
147
  ret_val = super().run(
146
148
  name=name,
@@ -152,6 +154,7 @@ class Job(_BaseJob):
152
154
  org=org,
153
155
  user=user,
154
156
  cloud_account=cloud_account,
157
+ cloud_provider=cloud_provider,
155
158
  env=env,
156
159
  interruptible=interruptible,
157
160
  image_credentials=image_credentials,
@@ -159,7 +162,10 @@ class Job(_BaseJob):
159
162
  artifacts_local=artifacts_local,
160
163
  artifacts_remote=artifacts_remote,
161
164
  entrypoint=entrypoint,
165
+ path_mappings=path_mappings,
166
+ max_runtime=max_runtime,
162
167
  cluster=cluster,
168
+ reuse_snapshot=reuse_snapshot,
163
169
  )
164
170
  # required for typing with "Job"
165
171
  assert isinstance(ret_val, cls)
@@ -169,18 +175,22 @@ class Job(_BaseJob):
169
175
 
170
176
  def _submit(
171
177
  self,
172
- machine: "Machine",
178
+ machine: Union["Machine", str],
173
179
  command: Optional[str] = None,
174
180
  studio: Optional["Studio"] = None,
175
181
  image: Optional[str] = None,
176
182
  env: Optional[Dict[str, str]] = None,
177
183
  interruptible: bool = False,
178
184
  cloud_account: Optional[str] = None,
185
+ cloud_provider: Optional[Union["CloudProvider", str]] = None,
179
186
  image_credentials: Optional[str] = None,
180
187
  cloud_account_auth: bool = False,
181
- artifacts_local: Optional[str] = None,
182
- artifacts_remote: Optional[str] = None,
183
188
  entrypoint: str = "sh -c",
189
+ path_mappings: Optional[Dict[str, str]] = None,
190
+ artifacts_local: Optional[str] = None, # deprecated in terms of path_mappings
191
+ artifacts_remote: Optional[str] = None, # deprecated in terms of path_mappings
192
+ max_runtime: Optional[int] = None,
193
+ reuse_snapshot: bool = True,
184
194
  ) -> "Job":
185
195
  """Submit a new job to the Lightning AI platform.
186
196
 
@@ -194,28 +204,38 @@ class Job(_BaseJob):
194
204
  interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
195
205
  cloud_account: The cloud account to run the job on.
196
206
  Defaults to the studio cloud account if running with studio compute env.
197
- If not provided will fall back to the teamspaces default cloud account.
207
+ If not provided and `cloud_account_provider` is set, will resolve cluster from this, else
208
+ will fall back to the teamspaces default cloud account.
209
+ cloud_account_provider: The provider to select the cloud-account from.
210
+ If set, must be in agreement with the provider from the cloud_account (if specified).
211
+ If not specified, falls backto the teamspace default cloud account.
198
212
  image_credentials: The credentials used to pull the image. Required if the image is private.
199
213
  This should be the name of the respective credentials secret created on the Lightning AI platform.
200
214
  cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
201
215
  Required if the registry is part of a cloud provider (e.g. ECR).
202
- artifacts_local: The path of inside the docker container, you want to persist images from.
203
- CAUTION: When setting this to "/", it will effectively erase your container.
204
- Only supported for jobs with a docker image compute environment.
205
- artifacts_remote: The remote storage to persist your artifacts to.
206
- Should be of format <CONNECTION_TYPE>:<CONNECTION_NAME>:<PATH_WITHIN_CONNECTION>.
207
- PATH_WITHIN_CONNECTION hereby is a path relative to the connection's root.
208
- E.g. efs:data:some-path would result in an EFS connection named `data` and to the path `some-path`
209
- within it.
210
- Note that the connection needs to be added to the teamspace already in order for it to be found.
211
- Only supported for jobs with a docker image compute environment.
212
216
  entrypoint: The entrypoint of your docker container. Defaults to sh -c.
213
217
  To use the pre-defined entrypoint of the provided image, set this to an empty string.
214
218
  Only applicable when submitting docker jobs.
219
+ path_mappings: Dictionary of path mappings. The keys are the path inside the container whereas the value
220
+ represents the data-connection name and the path inside that connection.
221
+ Should be of form
222
+ {
223
+ "<CONTAINER_PATH_1>": "<CONNECTION_NAME_1>:<PATH_WITHIN_CONNECTION_1>",
224
+ "<CONTAINER_PATH_2>": "<CONNECTION_NAME_2>"
225
+ }
226
+ If the path inside the connection is omitted it's assumed to be the root path of that connection.
227
+ Only applicable when submitting docker jobs.
228
+ max_runtime: the duration (in seconds) for which to allocate the machine.
229
+ Irrelevant for most machines, required for some of the top-end machines on GCP.
230
+ If in doubt, set it. Won't have an effect on machines not requiring it.
231
+ Defaults to 3h
232
+ reuse_snapshot: Whether the job should reuse a Studio snapshot when multiple jobs for the same Studio are
233
+ submitted. Turning this off may result in longer job startup times. Defaults to True.
215
234
  """
216
235
  self._job = self._internal_job._submit(
217
236
  machine=machine,
218
237
  cloud_account=cloud_account,
238
+ cloud_provider=cloud_provider,
219
239
  command=command,
220
240
  studio=studio,
221
241
  image=image,
@@ -223,8 +243,12 @@ class Job(_BaseJob):
223
243
  interruptible=interruptible,
224
244
  image_credentials=image_credentials,
225
245
  cloud_account_auth=cloud_account_auth,
246
+ entrypoint=entrypoint,
247
+ path_mappings=path_mappings,
226
248
  artifacts_local=artifacts_local,
227
249
  artifacts_remote=artifacts_remote,
250
+ max_runtime=max_runtime,
251
+ reuse_snapshot=reuse_snapshot,
228
252
  )
229
253
  return self
230
254
 
@@ -243,15 +267,20 @@ class Job(_BaseJob):
243
267
  return self._internal_job.delete()
244
268
 
245
269
  @property
246
- def status(self) -> "Status":
270
+ def status(self) -> Optional["Status"]:
247
271
  """The current status of the job."""
248
272
  return self._internal_job.status
249
273
 
250
274
  @property
251
- def machine(self) -> "Machine":
275
+ def machine(self) -> Union["Machine", str]:
252
276
  """The machine type the job is running on."""
253
277
  return self._internal_job.machine
254
278
 
279
+ @property
280
+ def public_ip(self) -> Optional[str]:
281
+ """The public IP address of the machine the job is running on."""
282
+ return self._internal_job.public_ip
283
+
255
284
  @property
256
285
  def artifact_path(self) -> Optional[str]:
257
286
  """Path to the artifacts created by the job within the distributed teamspace filesystem."""
lightning_sdk/job/v1.py CHANGED
@@ -5,7 +5,7 @@ from lightning_sdk.job.base import _BaseJob
5
5
  from lightning_sdk.status import Status
6
6
 
7
7
  if TYPE_CHECKING:
8
- from lightning_sdk.machine import Machine
8
+ from lightning_sdk.machine import CloudProvider, Machine
9
9
  from lightning_sdk.organization import Organization
10
10
  from lightning_sdk.studio import Studio
11
11
  from lightning_sdk.teamspace import Teamspace
@@ -44,15 +44,17 @@ class _JobV1(_BaseJob):
44
44
  def run(
45
45
  cls,
46
46
  name: str,
47
- machine: "Machine",
47
+ machine: Union["Machine", str],
48
48
  command: str,
49
49
  studio: "Studio",
50
50
  teamspace: Union[str, "Teamspace", None] = None,
51
51
  org: Union[str, "Organization", None] = None,
52
52
  user: Union[str, "User", None] = None,
53
53
  cloud_account: Optional[str] = None,
54
+ cloud_provider: Optional[str] = None,
54
55
  interruptible: bool = False,
55
56
  cluster: Optional[str] = None, # deprecated in favor of cloud_account
57
+ reuse_snapshot: bool = True,
56
58
  ) -> "_BaseJob":
57
59
  """Start a new async workload from your studio.
58
60
 
@@ -80,27 +82,35 @@ class _JobV1(_BaseJob):
80
82
  org=org,
81
83
  user=user,
82
84
  cloud_account=cloud_account,
85
+ cloud_provider=cloud_provider,
83
86
  env=None,
84
87
  interruptible=interruptible,
85
88
  image_credentials=None,
86
89
  cloud_account_auth=False,
87
90
  cluster=cluster,
91
+ path_mappings=None,
92
+ max_runtime=None,
93
+ reuse_snapshot=reuse_snapshot,
88
94
  )
89
95
 
90
96
  def _submit(
91
97
  self,
92
- machine: "Machine",
98
+ machine: Union["Machine", str],
93
99
  command: Optional[str] = None,
94
100
  studio: Optional["Studio"] = None,
95
101
  image: Optional[str] = None,
96
102
  env: Optional[Dict[str, str]] = None,
97
103
  interruptible: bool = False,
98
104
  cloud_account: Optional[str] = None,
105
+ cloud_provider: Optional[Union["CloudProvider", str]] = None,
99
106
  image_credentials: Optional[str] = None,
100
107
  cloud_account_auth: bool = False,
101
108
  artifacts_local: Optional[str] = None,
102
109
  artifacts_remote: Optional[str] = None,
103
110
  entrypoint: str = "sh -c",
111
+ path_mappings: Optional[Dict[str, str]] = None,
112
+ max_runtime: Optional[int] = None,
113
+ reuse_snapshot: bool = True,
104
114
  ) -> "_JobV1":
105
115
  """Submit a job to run on a machine.
106
116
 
@@ -114,46 +124,21 @@ class _JobV1(_BaseJob):
114
124
  cloud_account: The cloud account to run the job on.
115
125
  image_credentials: The image credentials for the job (not supported).
116
126
  cloud_account_auth: Whether to use cloud account authentication for the job (not supported).
117
- artifacts_local: The local path for persisting artifacts (not supported).
118
- artifacts_remote: The remote path for persisting artifacts (not supported).
119
127
  entrypoint: The entrypoint of your docker container (not supported).
120
128
  Defaults to `sh -c` which just runs the provided command in a standard shell.
121
129
  To use the pre-defined entrypoint of the provided image, set this to an empty string.
122
130
  Only applicable when submitting docker jobs.
131
+ path_mappings: The mappings from data connection inside your container (not supported)
132
+ max_runtime: the duration (in seconds) for which to allocate the machine.
133
+ Irrelevant for most machines, required for some of the top-end machines on GCP.
134
+ If in doubt, set it. Won't have an effect on machines not requiring it.
135
+ Defaults to 3h
123
136
 
124
137
  Returns:
125
138
  The submitted job.
126
139
 
127
140
  """
128
- if studio is None:
129
- raise ValueError("Studio is required for submitting jobs")
130
- if image is not None or image_credentials is not None or cloud_account_auth:
131
- raise ValueError("Image is not supported for submitting jobs")
132
-
133
- if artifacts_local is not None or artifacts_remote is not None:
134
- raise ValueError("Specifying how to persist artifacts is not yet supported with jobs")
135
-
136
- if env is not None:
137
- raise ValueError("Environment variables are not supported for submitting jobs")
138
- if command is None:
139
- raise ValueError("Command is required for submitting jobs")
140
-
141
- if entrypoint != "sh -c":
142
- raise ValueError("Specifying the entrypoint is not yet supported with jobs")
143
-
144
- # TODO: add support for empty names (will give an empty string)
145
- _submitted = self._job_api.submit_job(
146
- name=self._name,
147
- command=command,
148
- studio_id=studio._studio.id,
149
- teamspace_id=self._teamspace.id,
150
- cloud_account=cloud_account or "",
151
- machine=machine,
152
- interruptible=interruptible,
153
- )
154
- self._name = _submitted.name
155
- self._job = _submitted
156
- return self
141
+ raise NotImplementedError("Cannot submit new jobs with JobsV1!")
157
142
 
158
143
  def _update_internal_job(self) -> None:
159
144
  try:
@@ -195,10 +180,18 @@ class _JobV1(_BaseJob):
195
180
  return Work(_work[0].id, self, self.teamspace)
196
181
 
197
182
  @property
198
- def machine(self) -> "Machine":
183
+ def machine(self) -> Union["Machine", str]:
199
184
  """Get the machine the job is running on."""
200
185
  return self.work.machine
201
186
 
187
+ @property
188
+ def public_ip(self) -> Optional[str]:
189
+ """Get the public IP of the machine the job is running on."""
190
+ try:
191
+ return self._job.status.ip_address
192
+ except AttributeError:
193
+ return None
194
+
202
195
  @property
203
196
  def name(self) -> str:
204
197
  """The name of the job."""