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