lightning-sdk 0.1.2__py3-none-any.whl → 0.1.46__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 (521) hide show
  1. lightning_sdk/__init__.py +12 -2
  2. lightning_sdk/agents.py +46 -0
  3. lightning_sdk/ai_hub.py +185 -0
  4. lightning_sdk/api/__init__.py +4 -0
  5. lightning_sdk/api/agents_api.py +107 -0
  6. lightning_sdk/api/ai_hub_api.py +130 -0
  7. lightning_sdk/api/deployment_api.py +574 -0
  8. lightning_sdk/api/job_api.py +308 -0
  9. lightning_sdk/api/mmt_api.py +188 -0
  10. lightning_sdk/api/org_api.py +1 -3
  11. lightning_sdk/api/studio_api.py +174 -83
  12. lightning_sdk/api/teamspace_api.py +219 -20
  13. lightning_sdk/api/user_api.py +24 -9
  14. lightning_sdk/api/utils.py +429 -47
  15. lightning_sdk/cli/ai_hub.py +49 -0
  16. lightning_sdk/cli/download.py +132 -0
  17. lightning_sdk/cli/entrypoint.py +11 -3
  18. lightning_sdk/cli/run.py +206 -0
  19. lightning_sdk/cli/serve.py +218 -0
  20. lightning_sdk/cli/studios_menu.py +78 -0
  21. lightning_sdk/cli/upload.py +79 -89
  22. lightning_sdk/constants.py +29 -1
  23. lightning_sdk/deployment/__init__.py +25 -0
  24. lightning_sdk/deployment/deployment.py +389 -0
  25. lightning_sdk/helpers.py +49 -0
  26. lightning_sdk/job/__init__.py +5 -0
  27. lightning_sdk/job/base.py +295 -0
  28. lightning_sdk/job/job.py +266 -0
  29. lightning_sdk/job/v1.py +241 -0
  30. lightning_sdk/job/v2.py +193 -0
  31. lightning_sdk/job/work.py +72 -0
  32. lightning_sdk/lightning_cloud/__version__.py +1 -1
  33. lightning_sdk/lightning_cloud/cli/__main__.py +15 -13
  34. lightning_sdk/lightning_cloud/env.py +1 -0
  35. lightning_sdk/lightning_cloud/login.py +12 -8
  36. lightning_sdk/lightning_cloud/openapi/__init__.py +314 -43
  37. lightning_sdk/lightning_cloud/openapi/api/__init__.py +10 -0
  38. lightning_sdk/lightning_cloud/openapi/api/analytics_service_api.py +141 -0
  39. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +1075 -227
  40. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +9 -1
  41. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +3115 -895
  42. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +908 -141
  43. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +10 -5
  44. lightning_sdk/lightning_cloud/openapi/api/deployment_templates_service_api.py +756 -0
  45. lightning_sdk/lightning_cloud/openapi/api/endpoint_service_api.py +1658 -159
  46. lightning_sdk/lightning_cloud/openapi/api/experiments_service_api.py +242 -0
  47. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +674 -0
  48. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +3823 -0
  49. lightning_sdk/lightning_cloud/openapi/api/lightningapp_instance_service_api.py +158 -590
  50. lightning_sdk/lightning_cloud/openapi/api/lightningapp_v2_service_api.py +0 -1086
  51. lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +113 -0
  52. lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +1753 -0
  53. lightning_sdk/lightning_cloud/openapi/api/lit_registry_service_api.py +242 -0
  54. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +1423 -108
  55. lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +421 -1
  56. lightning_sdk/lightning_cloud/openapi/api/profiler_service_api.py +663 -0
  57. lightning_sdk/lightning_cloud/openapi/api/projects_service_api.py +5 -1
  58. lightning_sdk/lightning_cloud/openapi/api/secret_service_api.py +478 -1
  59. lightning_sdk/lightning_cloud/openapi/api/slurm_jobs_user_service_api.py +9 -5
  60. lightning_sdk/lightning_cloud/openapi/api/snowflake_service_api.py +686 -0
  61. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +1094 -0
  62. lightning_sdk/lightning_cloud/openapi/api/studio_jobs_service_api.py +4 -4
  63. lightning_sdk/lightning_cloud/openapi/api/user_service_api.py +1081 -34
  64. lightning_sdk/lightning_cloud/openapi/models/__init__.py +304 -41
  65. lightning_sdk/lightning_cloud/openapi/models/affiliatelinks_id_body.py +149 -0
  66. lightning_sdk/lightning_cloud/openapi/models/agentmanagedendpoints_id_body.py +305 -0
  67. lightning_sdk/lightning_cloud/openapi/models/agents_id_body.py +643 -0
  68. lightning_sdk/lightning_cloud/openapi/models/app_id_works_body.py +149 -0
  69. lightning_sdk/lightning_cloud/openapi/models/approveautojoindomain_domain_body.py +123 -0
  70. lightning_sdk/lightning_cloud/openapi/models/apps_id_body1.py +107 -3
  71. lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +1 -27
  72. lightning_sdk/lightning_cloud/openapi/models/{v1_get_cluster_health_response.py → captures_id_body.py} +16 -16
  73. lightning_sdk/lightning_cloud/openapi/models/cloud_space_id_versionpublications_body.py +175 -0
  74. lightning_sdk/lightning_cloud/openapi/models/cloud_space_id_versionpublications_body1.py +175 -0
  75. lightning_sdk/lightning_cloud/openapi/models/cloud_space_id_versions_body.py +409 -0
  76. lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_runs_body.py +27 -1
  77. lightning_sdk/lightning_cloud/openapi/models/cloudspaces_id_body.py +84 -6
  78. lightning_sdk/lightning_cloud/openapi/models/cluster_id_capacityblock_body.py +253 -0
  79. lightning_sdk/lightning_cloud/openapi/models/cluster_id_capacityreservations_body.py +55 -3
  80. lightning_sdk/lightning_cloud/openapi/models/cluster_id_proxies_body.py +123 -0
  81. lightning_sdk/lightning_cloud/openapi/models/clusters_id_body.py +27 -1
  82. lightning_sdk/lightning_cloud/openapi/models/create.py +157 -1
  83. lightning_sdk/lightning_cloud/openapi/models/create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs.py +383 -0
  84. lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +565 -0
  85. lightning_sdk/lightning_cloud/openapi/models/deploymenttemplates_id_body.py +513 -0
  86. lightning_sdk/lightning_cloud/openapi/models/endpoints_id_body.py +43 -17
  87. lightning_sdk/lightning_cloud/openapi/models/experiment_name_variant_name_body.py +123 -0
  88. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +107 -1
  89. lightning_sdk/lightning_cloud/openapi/models/externalv1_lightningapp_instance.py +27 -1
  90. lightning_sdk/lightning_cloud/openapi/models/externalv1_user_status.py +27 -1
  91. lightning_sdk/lightning_cloud/openapi/models/fileendpoints_id_body.py +131 -1
  92. lightning_sdk/lightning_cloud/openapi/models/id_codeconfig_body.py +29 -55
  93. lightning_sdk/lightning_cloud/openapi/models/id_complete_body.py +175 -0
  94. lightning_sdk/lightning_cloud/openapi/models/id_engage_body.py +3 -29
  95. lightning_sdk/lightning_cloud/openapi/models/id_engage_body1.py +149 -0
  96. lightning_sdk/lightning_cloud/openapi/models/id_execute_body.py +3 -55
  97. lightning_sdk/lightning_cloud/openapi/models/id_execute_body1.py +175 -0
  98. lightning_sdk/lightning_cloud/openapi/models/id_fork_body.py +31 -31
  99. lightning_sdk/lightning_cloud/openapi/models/id_fork_body1.py +175 -0
  100. lightning_sdk/lightning_cloud/openapi/models/id_get_body.py +133 -3
  101. lightning_sdk/lightning_cloud/openapi/models/id_index_body.py +67 -15
  102. lightning_sdk/lightning_cloud/openapi/models/id_index_body2.py +123 -0
  103. lightning_sdk/lightning_cloud/openapi/models/id_index_body3.py +175 -0
  104. lightning_sdk/lightning_cloud/openapi/models/id_reportlogsactivity_body.py +123 -0
  105. lightning_sdk/lightning_cloud/openapi/models/id_start_body.py +29 -3
  106. lightning_sdk/lightning_cloud/openapi/models/id_storage_body.py +175 -0
  107. lightning_sdk/lightning_cloud/openapi/models/id_uploads_body1.py +175 -0
  108. lightning_sdk/lightning_cloud/openapi/models/id_visibility_body.py +123 -0
  109. lightning_sdk/lightning_cloud/openapi/models/jobs_id_body1.py +27 -1
  110. lightning_sdk/lightning_cloud/openapi/models/jobs_id_body2.py +17 -43
  111. lightning_sdk/lightning_cloud/openapi/models/jobs_id_body3.py +149 -0
  112. lightning_sdk/lightning_cloud/openapi/models/litloggermetrics_id_body.py +175 -0
  113. lightning_sdk/lightning_cloud/openapi/models/litpages_id_body.py +27 -1
  114. lightning_sdk/lightning_cloud/openapi/models/loggermetrics_id_body.py +123 -0
  115. lightning_sdk/lightning_cloud/openapi/models/metrics_stream_id_loggerartifacts_body.py +123 -0
  116. lightning_sdk/lightning_cloud/openapi/models/metricsstream_create_body.py +383 -0
  117. lightning_sdk/lightning_cloud/openapi/models/{v1_cloud_space_id_list.py → metricsstream_delete_body.py} +10 -10
  118. lightning_sdk/lightning_cloud/openapi/models/metricsstream_id_body.py +175 -0
  119. lightning_sdk/lightning_cloud/openapi/models/{v1_upload_model_response.py → model_id_versions_body.py} +25 -51
  120. lightning_sdk/lightning_cloud/openapi/models/model_id_visibility_body.py +123 -0
  121. lightning_sdk/lightning_cloud/openapi/models/models_model_id_body.py +149 -0
  122. lightning_sdk/lightning_cloud/openapi/models/multimachinejobs_id_body.py +123 -0
  123. lightning_sdk/lightning_cloud/openapi/models/org_id_memberships_body.py +27 -1
  124. lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +183 -1
  125. lightning_sdk/lightning_cloud/openapi/models/profiler_captures_body.py +279 -0
  126. lightning_sdk/lightning_cloud/openapi/models/profiler_enabled_body.py +149 -0
  127. lightning_sdk/lightning_cloud/openapi/models/project_id_agentmanagedendpoints_body.py +149 -0
  128. lightning_sdk/lightning_cloud/openapi/models/{project_id_assistants_body.py → project_id_agents_body.py} +181 -51
  129. lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +71 -19
  130. lightning_sdk/lightning_cloud/openapi/models/project_id_fileendpoints_body.py +79 -1
  131. lightning_sdk/lightning_cloud/openapi/models/project_id_jobs_body.py +175 -0
  132. lightning_sdk/lightning_cloud/openapi/models/project_id_litregistry_body.py +123 -0
  133. lightning_sdk/lightning_cloud/openapi/models/project_id_memberships_body.py +53 -1
  134. lightning_sdk/lightning_cloud/openapi/models/{v1_upload_model_request.py → project_id_models_body.py} +70 -70
  135. lightning_sdk/lightning_cloud/openapi/models/project_id_multimachinejobs_body.py +227 -0
  136. lightning_sdk/lightning_cloud/openapi/models/project_id_secrets_body.py +27 -1
  137. lightning_sdk/lightning_cloud/openapi/models/project_id_serviceexecution_body.py +175 -0
  138. lightning_sdk/lightning_cloud/openapi/models/project_id_snowflake_body.py +123 -0
  139. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +29 -3
  140. lightning_sdk/lightning_cloud/openapi/models/query_query_id_body.py +175 -0
  141. lightning_sdk/lightning_cloud/openapi/models/secrets_id_body1.py +123 -0
  142. lightning_sdk/lightning_cloud/openapi/models/servers_server_id_body.py +123 -0
  143. lightning_sdk/lightning_cloud/openapi/models/service_artifact_artifact_kind.py +104 -0
  144. lightning_sdk/lightning_cloud/openapi/models/serviceexecution_id_body.py +331 -0
  145. lightning_sdk/lightning_cloud/openapi/models/slurm_jobs_body.py +79 -1
  146. lightning_sdk/lightning_cloud/openapi/models/snowflake_export_body.py +305 -0
  147. lightning_sdk/lightning_cloud/openapi/models/{v1_download_model_response.py → snowflake_query_body.py} +51 -51
  148. lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +27 -1
  149. lightning_sdk/lightning_cloud/openapi/models/update.py +105 -1
  150. lightning_sdk/lightning_cloud/openapi/models/upload_id_complete_body.py +149 -0
  151. lightning_sdk/lightning_cloud/openapi/models/upload_id_parts_body.py +149 -0
  152. lightning_sdk/lightning_cloud/openapi/models/user_id_affiliatelinks_body.py +149 -0
  153. lightning_sdk/lightning_cloud/openapi/models/v1_accelerator_quota_info.py +201 -0
  154. lightning_sdk/lightning_cloud/openapi/models/v1_ack_user_storage_violation_response.py +97 -0
  155. lightning_sdk/lightning_cloud/openapi/models/v1_add_job_timing_response.py +97 -0
  156. lightning_sdk/lightning_cloud/openapi/models/v1_affiliate_link.py +435 -0
  157. lightning_sdk/lightning_cloud/openapi/models/v1_agent_job.py +131 -1
  158. lightning_sdk/lightning_cloud/openapi/models/v1_api_pricing_spec.py +149 -0
  159. lightning_sdk/lightning_cloud/openapi/models/v1_app_type.py +104 -0
  160. lightning_sdk/lightning_cloud/openapi/models/v1_append_logger_metrics_response.py +97 -0
  161. lightning_sdk/lightning_cloud/openapi/models/v1_approve_auto_join_domain_response.py +123 -0
  162. lightning_sdk/lightning_cloud/openapi/models/v1_assign_variant_response.py +97 -0
  163. lightning_sdk/lightning_cloud/openapi/models/v1_assistant.py +157 -1
  164. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_knowledge_item_status.py +253 -0
  165. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_knowledge_status.py +123 -0
  166. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_model_status.py +104 -0
  167. lightning_sdk/lightning_cloud/openapi/models/v1_auto_join_domain_validation.py +175 -0
  168. lightning_sdk/lightning_cloud/openapi/models/v1_auto_join_org_response.py +149 -0
  169. lightning_sdk/lightning_cloud/openapi/models/v1_autoscaling_spec.py +305 -0
  170. lightning_sdk/lightning_cloud/openapi/models/v1_autoscaling_target_metric.py +149 -0
  171. lightning_sdk/lightning_cloud/openapi/models/v1_aws_direct_v1.py +133 -3
  172. lightning_sdk/lightning_cloud/openapi/models/v1_batch_update_lightningwork_response.py +97 -0
  173. lightning_sdk/lightning_cloud/openapi/models/v1_body.py +123 -0
  174. lightning_sdk/lightning_cloud/openapi/models/v1_cancellation_metadata.py +149 -0
  175. lightning_sdk/lightning_cloud/openapi/models/v1_capacity_block_offering.py +383 -0
  176. lightning_sdk/lightning_cloud/openapi/models/v1_check_snowflake_connection_response.py +123 -0
  177. lightning_sdk/lightning_cloud/openapi/models/v1_checkbox.py +201 -0
  178. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space.py +162 -6
  179. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_code_version.py +383 -0
  180. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_code_version_status.py +105 -0
  181. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_instance_config.py +1 -53
  182. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_instance_startup_status.py +79 -1
  183. lightning_sdk/lightning_cloud/openapi/models/{v1_cluster_log_service.py → v1_cloud_space_session.py} +49 -49
  184. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_version.py +669 -0
  185. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_version_publication.py +201 -0
  186. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +445 -3
  187. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +55 -3
  188. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_names.py +123 -0
  189. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_proxy.py +201 -0
  190. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_resource_tag.py +149 -0
  191. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +357 -0
  192. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +157 -107
  193. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_state.py +1 -0
  194. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_status.py +17 -43
  195. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_tagging_options.py +175 -0
  196. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +0 -1
  197. lightning_sdk/lightning_cloud/openapi/models/v1_command_argument.py +131 -1
  198. lightning_sdk/lightning_cloud/openapi/models/v1_complete_model_upload_response.py +97 -0
  199. lightning_sdk/lightning_cloud/openapi/models/v1_complete_multi_part_upload_response.py +97 -0
  200. lightning_sdk/lightning_cloud/openapi/models/v1_complete_upload_service_execution_artifact_response.py +97 -0
  201. lightning_sdk/lightning_cloud/openapi/models/v1_completed_part.py +149 -0
  202. lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +15 -15
  203. lightning_sdk/lightning_cloud/openapi/models/v1_conversation_response_chunk.py +26 -26
  204. lightning_sdk/lightning_cloud/openapi/models/v1_count_metrics_streams_response.py +123 -0
  205. lightning_sdk/lightning_cloud/openapi/models/v1_create_checkout_session_request.py +53 -1
  206. lightning_sdk/lightning_cloud/openapi/models/v1_create_cluster_request.py +27 -1
  207. lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_template_request.py +539 -0
  208. lightning_sdk/lightning_cloud/openapi/models/v1_create_multi_part_upload_response.py +123 -0
  209. lightning_sdk/lightning_cloud/openapi/models/v1_create_organization_request.py +159 -3
  210. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +27 -1
  211. lightning_sdk/lightning_cloud/openapi/models/v1_create_shared_metrics_stream_request.py +201 -0
  212. lightning_sdk/lightning_cloud/openapi/models/v1_create_shared_metrics_stream_response.py +123 -0
  213. lightning_sdk/lightning_cloud/openapi/models/v1_create_snowflake_connection_response.py +123 -0
  214. lightning_sdk/lightning_cloud/openapi/models/v1_create_user_secret_request.py +149 -0
  215. lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +365 -1
  216. lightning_sdk/lightning_cloud/openapi/models/{v1_cluster_performance_profile.py → v1_data_connection_state.py} +11 -9
  217. lightning_sdk/lightning_cloud/openapi/models/v1_data_path.py +201 -0
  218. lightning_sdk/lightning_cloud/openapi/models/v1_delete_affiliate_link_response.py +97 -0
  219. lightning_sdk/lightning_cloud/openapi/models/v1_delete_cloud_space_session_response.py +97 -0
  220. lightning_sdk/lightning_cloud/openapi/models/v1_delete_cloud_space_version_publication_response.py +97 -0
  221. lightning_sdk/lightning_cloud/openapi/models/v1_delete_cloud_space_version_response.py +97 -0
  222. lightning_sdk/lightning_cloud/openapi/models/v1_delete_cluster_proxy_response.py +97 -0
  223. lightning_sdk/lightning_cloud/openapi/models/v1_delete_deployment_release_response.py +97 -0
  224. lightning_sdk/lightning_cloud/openapi/models/{v1_azure_cluster_driver_status.py → v1_delete_deployment_response.py} +6 -6
  225. lightning_sdk/lightning_cloud/openapi/models/v1_delete_index_response.py +97 -0
  226. lightning_sdk/lightning_cloud/openapi/models/{v1_byom_cluster_driver.py → v1_delete_job_response.py} +6 -6
  227. lightning_sdk/lightning_cloud/openapi/models/{v1_delete_lightningapp_v2_response.py → v1_delete_logger_artifact_response.py} +6 -6
  228. lightning_sdk/lightning_cloud/openapi/models/v1_delete_managed_endpoint_response.py +97 -0
  229. lightning_sdk/lightning_cloud/openapi/models/v1_delete_metrics_stream_response.py +97 -0
  230. lightning_sdk/lightning_cloud/openapi/models/v1_delete_multi_machine_job_response.py +97 -0
  231. lightning_sdk/lightning_cloud/openapi/models/v1_delete_profiler_capture_response.py +97 -0
  232. lightning_sdk/lightning_cloud/openapi/models/v1_delete_service_execution_response.py +97 -0
  233. lightning_sdk/lightning_cloud/openapi/models/{v1_delete_lightningapp_release_response.py → v1_delete_shared_metrics_stream_response.py} +6 -6
  234. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +617 -0
  235. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_api.py +227 -0
  236. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_event.py +357 -0
  237. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_event_type.py +104 -0
  238. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_metrics.py +149 -0
  239. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_performance.py +305 -0
  240. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_release.py +331 -0
  241. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_spec.py +201 -0
  242. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_state.py +105 -0
  243. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_status.py +279 -0
  244. lightning_sdk/lightning_cloud/openapi/models/{appsv2_id_body.py → v1_deployment_strategy.py} +39 -39
  245. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template.py +721 -0
  246. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_engagement_response.py +97 -0
  247. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_gallery_response.py +591 -0
  248. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter.py +435 -0
  249. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter_placement.py +106 -0
  250. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter_type.py +106 -0
  251. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_summary.py +591 -0
  252. lightning_sdk/lightning_cloud/openapi/models/{instance_type_availability.py → v1_deployment_template_type.py} +10 -10
  253. lightning_sdk/lightning_cloud/openapi/models/{v1_get_lightningapp_source_code_download_url_response.py → v1_download_job_logs_response.py} +10 -10
  254. lightning_sdk/lightning_cloud/openapi/models/v1_download_service_execution_artifact_response.py +175 -0
  255. lightning_sdk/lightning_cloud/openapi/models/v1_ebs.py +279 -0
  256. lightning_sdk/lightning_cloud/openapi/models/v1_efs_config.py +201 -0
  257. lightning_sdk/lightning_cloud/openapi/models/v1_endpoint.py +53 -27
  258. lightning_sdk/lightning_cloud/openapi/models/v1_endpoint_auth.py +27 -1
  259. lightning_sdk/lightning_cloud/openapi/models/v1_endpoint_type.py +104 -0
  260. lightning_sdk/lightning_cloud/openapi/models/v1_execute_cloud_space_command_response.py +29 -3
  261. lightning_sdk/lightning_cloud/openapi/models/v1_execute_in_cloud_space_session_response.py +97 -0
  262. lightning_sdk/lightning_cloud/openapi/models/v1_execute_snowflake_query_response.py +149 -0
  263. lightning_sdk/lightning_cloud/openapi/models/v1_experiment.py +409 -0
  264. lightning_sdk/lightning_cloud/openapi/models/v1_export_snowflake_query_response.py +123 -0
  265. lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +279 -0
  266. lightning_sdk/lightning_cloud/openapi/models/v1_file_endpoint.py +131 -1
  267. lightning_sdk/lightning_cloud/openapi/models/{v1_instance_spec.py → v1_filesystem_app.py} +85 -59
  268. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_cloud_space.py +149 -0
  269. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_dataset.py +123 -0
  270. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_job.py +175 -0
  271. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_slurm_job.py +149 -0
  272. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_snowflake_connection.py +123 -0
  273. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_work.py +149 -0
  274. lightning_sdk/lightning_cloud/openapi/models/v1_find_capacity_block_offering_response.py +123 -0
  275. lightning_sdk/lightning_cloud/openapi/models/v1_gcp_data_connection.py +27 -1
  276. lightning_sdk/lightning_cloud/openapi/models/v1_gcs_folder_data_connection.py +123 -0
  277. lightning_sdk/lightning_cloud/openapi/models/v1_get_affiliate_link_response.py +123 -0
  278. lightning_sdk/lightning_cloud/openapi/models/{v1_list_cluster_instance_types_response.py → v1_get_deployment_routing_telemetry_aggregated_response.py} +23 -23
  279. lightning_sdk/lightning_cloud/openapi/models/v1_get_deployment_routing_telemetry_response.py +123 -0
  280. lightning_sdk/lightning_cloud/openapi/models/v1_get_folder_index_response.py +27 -1
  281. lightning_sdk/lightning_cloud/openapi/models/{v1_cluster_driver_status.py → v1_get_job_stats_response.py} +39 -39
  282. lightning_sdk/lightning_cloud/openapi/models/v1_get_job_system_metrics_response.py +123 -0
  283. lightning_sdk/lightning_cloud/openapi/models/v1_get_lightningapp_instance_open_ports_response.py +123 -0
  284. lightning_sdk/lightning_cloud/openapi/models/v1_get_logger_metrics_response.py +123 -0
  285. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_file_upload_urls_response.py +123 -0
  286. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_file_url_response.py +175 -0
  287. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_files_response.py +279 -0
  288. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_files_url_response.py +149 -0
  289. lightning_sdk/lightning_cloud/openapi/models/{v1_lightningwork_cluster_driver.py → v1_get_project_artifact_response.py} +33 -14
  290. lightning_sdk/lightning_cloud/openapi/models/v1_get_project_balance_response.py +27 -1
  291. lightning_sdk/lightning_cloud/openapi/models/v1_get_project_storage_metadata_response.py +383 -0
  292. lightning_sdk/lightning_cloud/openapi/models/v1_get_service_execution_status_response.py +175 -0
  293. lightning_sdk/lightning_cloud/openapi/models/v1_get_snowflake_query_response.py +149 -0
  294. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_balance_response.py +27 -1
  295. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +105 -1
  296. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_storage_breakdown_response.py +279 -0
  297. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_storage_response.py +201 -0
  298. lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +163 -3
  299. lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1_status.py +123 -0
  300. lightning_sdk/lightning_cloud/openapi/models/v1_header.py +175 -0
  301. lightning_sdk/lightning_cloud/openapi/models/{v1_external_kubeconfig.py → v1_health_check_exec.py} +21 -21
  302. lightning_sdk/lightning_cloud/openapi/models/v1_health_check_http_get.py +149 -0
  303. lightning_sdk/lightning_cloud/openapi/models/v1_ids_logger_metrics.py +123 -0
  304. lightning_sdk/lightning_cloud/openapi/models/v1_input.py +175 -0
  305. lightning_sdk/lightning_cloud/openapi/models/v1_interrupt_server_response.py +97 -0
  306. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +697 -0
  307. lightning_sdk/lightning_cloud/openapi/models/v1_job_health_check_config.py +253 -0
  308. lightning_sdk/lightning_cloud/openapi/models/v1_job_log_entry.py +175 -0
  309. lightning_sdk/lightning_cloud/openapi/models/v1_job_logs_page.py +227 -0
  310. lightning_sdk/lightning_cloud/openapi/models/v1_job_logs_response.py +149 -0
  311. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +669 -0
  312. lightning_sdk/lightning_cloud/openapi/models/v1_job_timing.py +201 -0
  313. lightning_sdk/lightning_cloud/openapi/models/v1_joinable_organization.py +331 -0
  314. lightning_sdk/lightning_cloud/openapi/models/v1_knowledge_configuration.py +279 -0
  315. lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +125 -0
  316. lightning_sdk/lightning_cloud/openapi/models/v1_lightning_run.py +27 -1
  317. lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_instance_spec.py +105 -27
  318. lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_instance_status.py +53 -1
  319. lightning_sdk/lightning_cloud/openapi/models/v1_lightningwork_spec.py +27 -27
  320. lightning_sdk/lightning_cloud/openapi/models/v1_lightningwork_status.py +81 -3
  321. lightning_sdk/lightning_cloud/openapi/models/v1_list_affiliate_links_response.py +123 -0
  322. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_python_versions_response.py +123 -0
  323. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_sessions_response.py +123 -0
  324. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_tags_response.py +6 -6
  325. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_version_publications_response.py +123 -0
  326. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_versions_response.py +123 -0
  327. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_availabilities_response.py +123 -0
  328. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_proxies_response.py +123 -0
  329. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_events_response.py +123 -0
  330. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_releases_response.py +123 -0
  331. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_tags_response.py +123 -0
  332. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_templates_response.py +175 -0
  333. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployments_response.py +123 -0
  334. lightning_sdk/lightning_cloud/openapi/models/v1_list_experiments_response.py +149 -0
  335. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_apps_response.py +123 -0
  336. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_cloud_spaces_response.py +123 -0
  337. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_datasets_response.py +123 -0
  338. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_jobs_response.py +123 -0
  339. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_slurm_jobs_response.py +123 -0
  340. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_snowflake_response.py +123 -0
  341. lightning_sdk/lightning_cloud/openapi/models/{v1_list_lightningapps_v2_response.py → v1_list_jobs_response.py} +31 -31
  342. lightning_sdk/lightning_cloud/openapi/models/v1_list_joinable_organizations_response.py +123 -0
  343. lightning_sdk/lightning_cloud/openapi/models/v1_list_logger_artifact_response.py +123 -0
  344. lightning_sdk/lightning_cloud/openapi/models/v1_list_metrics_streams_response.py +123 -0
  345. lightning_sdk/lightning_cloud/openapi/models/v1_list_multi_machine_job_events_response.py +123 -0
  346. lightning_sdk/lightning_cloud/openapi/models/v1_list_multi_machine_jobs_response.py +123 -0
  347. lightning_sdk/lightning_cloud/openapi/models/v1_list_new_features_for_user_response.py +123 -0
  348. lightning_sdk/lightning_cloud/openapi/models/v1_list_profiler_captures_response.py +123 -0
  349. lightning_sdk/lightning_cloud/openapi/models/v1_list_project_locked_resources_response.py +123 -0
  350. lightning_sdk/lightning_cloud/openapi/models/v1_list_published_cloud_spaces_response.py +3 -29
  351. lightning_sdk/lightning_cloud/openapi/models/v1_list_published_deployment_templates_response.py +175 -0
  352. lightning_sdk/lightning_cloud/openapi/models/v1_list_service_execution_lightningapp_instances_response.py +175 -0
  353. lightning_sdk/lightning_cloud/openapi/models/v1_list_service_executions_response.py +123 -0
  354. lightning_sdk/lightning_cloud/openapi/models/v1_lit_page.py +27 -1
  355. lightning_sdk/lightning_cloud/openapi/models/v1_lit_registry_project.py +227 -0
  356. lightning_sdk/lightning_cloud/openapi/models/v1_lit_repository.py +279 -0
  357. lightning_sdk/lightning_cloud/openapi/models/v1_locked_resource.py +227 -0
  358. lightning_sdk/lightning_cloud/openapi/models/v1_logger_artifact.py +227 -0
  359. lightning_sdk/lightning_cloud/openapi/models/v1_machines_selector.py +149 -0
  360. lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_request.py +81 -3
  361. lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_response.py +53 -1
  362. lightning_sdk/lightning_cloud/openapi/models/v1_managed_endpoint.py +175 -19
  363. lightning_sdk/lightning_cloud/openapi/models/v1_managed_model.py +305 -0
  364. lightning_sdk/lightning_cloud/openapi/models/v1_managed_model_abilities.py +175 -0
  365. lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +79 -1
  366. lightning_sdk/lightning_cloud/openapi/models/v1_message.py +138 -8
  367. lightning_sdk/lightning_cloud/openapi/models/v1_message_content.py +6 -6
  368. lightning_sdk/lightning_cloud/openapi/models/v1_message_content_type.py +103 -0
  369. lightning_sdk/lightning_cloud/openapi/models/v1_metadata.py +131 -1
  370. lightning_sdk/lightning_cloud/openapi/models/v1_metric_value.py +175 -0
  371. lightning_sdk/lightning_cloud/openapi/models/v1_metrics.py +175 -0
  372. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +799 -0
  373. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_tags.py +201 -0
  374. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_tracker.py +383 -0
  375. lightning_sdk/lightning_cloud/openapi/models/v1_model.py +95 -17
  376. lightning_sdk/lightning_cloud/openapi/models/v1_model_file.py +175 -0
  377. lightning_sdk/lightning_cloud/openapi/models/v1_model_version_archive.py +131 -1
  378. lightning_sdk/lightning_cloud/openapi/models/v1_mount_target.py +201 -0
  379. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job.py +487 -0
  380. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_event.py +331 -0
  381. lightning_sdk/lightning_cloud/openapi/models/{get_cluster_health_response_health_status.py → v1_multi_machine_job_event_type.py} +9 -9
  382. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_fault_tolerance.py +149 -0
  383. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_fault_tolerance_strategy.py +105 -0
  384. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_state.py +108 -0
  385. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_status.py +305 -0
  386. lightning_sdk/lightning_cloud/openapi/models/v1_named_get_logger_metrics.py +123 -0
  387. lightning_sdk/lightning_cloud/openapi/models/v1_new_feature.py +383 -0
  388. lightning_sdk/lightning_cloud/openapi/models/v1_onboarding_event_request.py +175 -0
  389. lightning_sdk/lightning_cloud/openapi/models/v1_onboarding_event_response.py +97 -0
  390. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +209 -1
  391. lightning_sdk/lightning_cloud/openapi/models/v1_parameterization_spec.py +227 -0
  392. lightning_sdk/lightning_cloud/openapi/models/v1_path_telemetry.py +123 -0
  393. lightning_sdk/lightning_cloud/openapi/models/v1_phase_type.py +104 -0
  394. lightning_sdk/lightning_cloud/openapi/models/v1_profiler_capture.py +357 -0
  395. lightning_sdk/lightning_cloud/openapi/models/v1_profiler_enabled_response.py +123 -0
  396. lightning_sdk/lightning_cloud/openapi/models/v1_project.py +131 -1
  397. lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +263 -3
  398. lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +29 -3
  399. lightning_sdk/lightning_cloud/openapi/models/v1_project_storage.py +279 -0
  400. lightning_sdk/lightning_cloud/openapi/models/v1_published_cloud_space_response.py +188 -6
  401. lightning_sdk/lightning_cloud/openapi/models/v1_purchase_capacity_block_response.py +175 -0
  402. lightning_sdk/lightning_cloud/openapi/models/v1_query_param.py +175 -0
  403. lightning_sdk/lightning_cloud/openapi/models/v1_query_result.py +123 -0
  404. lightning_sdk/lightning_cloud/openapi/models/v1_query_result_row.py +123 -0
  405. lightning_sdk/lightning_cloud/openapi/models/v1_refresh_path_response.py +97 -0
  406. lightning_sdk/lightning_cloud/openapi/models/v1_regional_load_balancer.py +149 -0
  407. lightning_sdk/lightning_cloud/openapi/models/v1_report_logs_activity_response.py +97 -0
  408. lightning_sdk/lightning_cloud/openapi/models/v1_request_cluster_access_request.py +175 -0
  409. lightning_sdk/lightning_cloud/openapi/models/v1_request_cluster_access_response.py +97 -0
  410. lightning_sdk/lightning_cloud/openapi/models/{v1_cloud_space_tag.py → v1_resource_tag.py} +18 -18
  411. lightning_sdk/lightning_cloud/openapi/models/v1_resource_visibility.py +123 -0
  412. lightning_sdk/lightning_cloud/openapi/models/v1_resources.py +37 -11
  413. lightning_sdk/lightning_cloud/openapi/models/v1_restore_deployment_release_response.py +97 -0
  414. lightning_sdk/lightning_cloud/openapi/models/v1_rolling_update_strategy.py +149 -0
  415. lightning_sdk/lightning_cloud/openapi/models/v1_rule_condition.py +29 -3
  416. lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +11 -0
  417. lightning_sdk/lightning_cloud/openapi/models/v1_s3_folder_data_connection.py +123 -0
  418. lightning_sdk/lightning_cloud/openapi/models/v1_search_job_logs_response.py +149 -0
  419. lightning_sdk/lightning_cloud/openapi/models/v1_search_users_response.py +6 -6
  420. lightning_sdk/lightning_cloud/openapi/models/v1_secret.py +107 -3
  421. lightning_sdk/lightning_cloud/openapi/models/{v1_lightningapp_cluster_driver.py → v1_secret_type.py} +10 -9
  422. lightning_sdk/lightning_cloud/openapi/models/v1_select.py +149 -0
  423. lightning_sdk/lightning_cloud/openapi/models/v1_server_check_in_response.py +97 -0
  424. lightning_sdk/lightning_cloud/openapi/models/{v1_update_cluster_response.py → v1_service_artifact.py} +54 -54
  425. lightning_sdk/lightning_cloud/openapi/models/v1_service_execution.py +383 -0
  426. lightning_sdk/lightning_cloud/openapi/models/v1_should_start_syncing_response.py +123 -0
  427. lightning_sdk/lightning_cloud/openapi/models/v1_signed_url.py +149 -0
  428. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_job.py +131 -1
  429. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_node.py +53 -1
  430. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1.py +27 -1
  431. lightning_sdk/lightning_cloud/openapi/models/v1_snowflake_data_connection.py +253 -0
  432. lightning_sdk/lightning_cloud/openapi/models/v1_status_code_telemetry.py +123 -0
  433. lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset.py +253 -0
  434. lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset_type.py +105 -0
  435. lightning_sdk/lightning_cloud/openapi/models/v1_studio_job_app.py +1 -0
  436. lightning_sdk/lightning_cloud/openapi/models/v1_system_info.py +617 -0
  437. lightning_sdk/lightning_cloud/openapi/models/v1_telemetry.py +331 -0
  438. lightning_sdk/lightning_cloud/openapi/models/v1_timestamp_code_telemetry.py +123 -0
  439. lightning_sdk/lightning_cloud/openapi/models/v1_transaction.py +27 -1
  440. lightning_sdk/lightning_cloud/openapi/models/v1_transfer_user_balance_request.py +27 -1
  441. lightning_sdk/lightning_cloud/openapi/models/v1_update_billing_subscription_request.py +53 -1
  442. lightning_sdk/lightning_cloud/openapi/models/v1_update_cluster_accelerators_request.py +149 -0
  443. lightning_sdk/lightning_cloud/openapi/models/v1_update_index_response.py +97 -0
  444. lightning_sdk/lightning_cloud/openapi/models/v1_update_metrics_stream_visibility_response.py +97 -0
  445. lightning_sdk/lightning_cloud/openapi/models/v1_update_model_visibility_response.py +97 -0
  446. lightning_sdk/lightning_cloud/openapi/models/v1_update_shared_metrics_stream_response.py +97 -0
  447. lightning_sdk/lightning_cloud/openapi/models/v1_update_snowflake_query_response.py +97 -0
  448. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +53 -1
  449. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_viewed_new_features_request.py +123 -0
  450. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_viewed_new_features_response.py +97 -0
  451. lightning_sdk/lightning_cloud/openapi/models/v1_upload_service_execution_artifact_parts_response.py +123 -0
  452. lightning_sdk/lightning_cloud/openapi/models/v1_upload_service_execution_artifact_response.py +149 -0
  453. lightning_sdk/lightning_cloud/openapi/models/v1_upstream_cloud_space.py +97 -19
  454. lightning_sdk/lightning_cloud/openapi/models/v1_upstream_job.py +227 -0
  455. lightning_sdk/lightning_cloud/openapi/models/v1_usage.py +27 -1
  456. lightning_sdk/lightning_cloud/openapi/models/v1_usage_details.py +107 -3
  457. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +1030 -302
  458. lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +45 -45
  459. lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_flow_compute_config.py +29 -29
  460. lightning_sdk/lightning_cloud/openapi/models/v1_validate_assistant_status_response.py +149 -0
  461. lightning_sdk/lightning_cloud/openapi/models/v1_validate_auto_join_domain_response.py +97 -0
  462. lightning_sdk/lightning_cloud/openapi/models/v1_validate_data_connection_response.py +107 -3
  463. lightning_sdk/lightning_cloud/openapi/models/v1_validate_deployment_image_request.py +149 -0
  464. lightning_sdk/lightning_cloud/openapi/models/v1_validate_deployment_image_response.py +97 -0
  465. lightning_sdk/lightning_cloud/openapi/models/v1_validate_managed_endpoint_request.py +175 -0
  466. lightning_sdk/lightning_cloud/openapi/models/v1_validate_managed_endpoint_response.py +123 -0
  467. lightning_sdk/lightning_cloud/openapi/models/v1_validate_managed_model_response.py +123 -0
  468. lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +175 -0
  469. lightning_sdk/lightning_cloud/openapi/models/v1_vultr_direct_v1.py +125 -0
  470. lightning_sdk/lightning_cloud/openapi/models/validate.py +97 -19
  471. lightning_sdk/lightning_cloud/openapi/models/validateautojoindomain_domain_body.py +123 -0
  472. lightning_sdk/lightning_cloud/openapi/models/version_uploads_body.py +123 -0
  473. lightning_sdk/lightning_cloud/openapi/models/versions_id_body.py +357 -0
  474. lightning_sdk/lightning_cloud/rest_client.py +49 -23
  475. lightning_sdk/lightning_cloud/source_code/logs_socket_api.py +1 -1
  476. lightning_sdk/lightning_cloud/source_code/tar.py +1 -3
  477. lightning_sdk/lightning_cloud/utils/data_connection.py +145 -7
  478. lightning_sdk/machine.py +17 -4
  479. lightning_sdk/mmt/__init__.py +4 -0
  480. lightning_sdk/mmt/base.py +288 -0
  481. lightning_sdk/mmt/mmt.py +282 -0
  482. lightning_sdk/mmt/v1.py +185 -0
  483. lightning_sdk/mmt/v2.py +193 -0
  484. lightning_sdk/models.py +153 -0
  485. lightning_sdk/organization.py +1 -1
  486. lightning_sdk/plugin.py +207 -41
  487. lightning_sdk/services/__init__.py +5 -0
  488. lightning_sdk/services/file_endpoint.py +223 -0
  489. lightning_sdk/services/finetune/__init__.py +35 -0
  490. lightning_sdk/services/utilities.py +111 -0
  491. lightning_sdk/status.py +2 -1
  492. lightning_sdk/studio.py +90 -17
  493. lightning_sdk/teamspace.py +189 -11
  494. lightning_sdk/user.py +1 -1
  495. lightning_sdk/utils/__init__.py +0 -0
  496. lightning_sdk/utils/dynamic.py +61 -0
  497. lightning_sdk/utils/enum.py +116 -0
  498. lightning_sdk/{utils.py → utils/resolve.py} +41 -4
  499. lightning_sdk-0.1.46.dist-info/LICENSE +21 -0
  500. {lightning_sdk-0.1.2.dist-info → lightning_sdk-0.1.46.dist-info}/METADATA +30 -4
  501. lightning_sdk-0.1.46.dist-info/RECORD +858 -0
  502. {lightning_sdk-0.1.2.dist-info → lightning_sdk-0.1.46.dist-info}/WHEEL +1 -1
  503. lightning_sdk/lightning_cloud/openapi/models/app_id_releases_body.py +0 -541
  504. lightning_sdk/lightning_cloud/openapi/models/assistants_id_body.py +0 -487
  505. lightning_sdk/lightning_cloud/openapi/models/id_endpoint_body.py +0 -409
  506. lightning_sdk/lightning_cloud/openapi/models/id_get_body1.py +0 -333
  507. lightning_sdk/lightning_cloud/openapi/models/project_id_appsv2_body.py +0 -201
  508. lightning_sdk/lightning_cloud/openapi/models/v1_aws_cluster_driver_spec.py +0 -1039
  509. lightning_sdk/lightning_cloud/openapi/models/v1_aws_cluster_secondary_region_spec.py +0 -253
  510. lightning_sdk/lightning_cloud/openapi/models/v1_azure_cluster_driver_spec.py +0 -227
  511. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_driver.py +0 -175
  512. lightning_sdk/lightning_cloud/openapi/models/v1_container_resources.py +0 -201
  513. lightning_sdk/lightning_cloud/openapi/models/v1_eks_custer_driver_status.py +0 -387
  514. lightning_sdk/lightning_cloud/openapi/models/v1_instance_type.py +0 -305
  515. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_cluster_driver.py +0 -359
  516. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_cluster_status.py +0 -279
  517. lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_release.py +0 -697
  518. lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_v2.py +0 -331
  519. lightning_sdk-0.1.2.dist-info/RECORD +0 -550
  520. {lightning_sdk-0.1.2.dist-info → lightning_sdk-0.1.46.dist-info}/entry_points.txt +0 -0
  521. {lightning_sdk-0.1.2.dist-info → lightning_sdk-0.1.46.dist-info}/top_level.txt +0 -0
@@ -1,10 +1,20 @@
1
+ import warnings
2
+ from pathlib import Path
1
3
  from typing import TYPE_CHECKING, List, Optional, Union
2
4
 
5
+ from lightning_sdk.agents import Agent
3
6
  from lightning_sdk.api import TeamspaceApi
7
+ from lightning_sdk.models import UploadedModelInfo
4
8
  from lightning_sdk.organization import Organization
5
9
  from lightning_sdk.owner import Owner
6
10
  from lightning_sdk.user import User
7
- from lightning_sdk.utils import _get_organizations_for_authed_user, _resolve_org, _resolve_teamspace_name, _resolve_user
11
+ from lightning_sdk.utils.resolve import (
12
+ _get_organizations_for_authed_user,
13
+ _parse_model_and_version,
14
+ _resolve_org,
15
+ _resolve_teamspace_name,
16
+ _resolve_user,
17
+ )
8
18
 
9
19
  if TYPE_CHECKING:
10
20
  from lightning_sdk.studio import Studio
@@ -88,19 +98,33 @@ class Teamspace:
88
98
  from lightning_sdk.studio import Studio
89
99
 
90
100
  studios = []
91
- clusters = self._teamspace_api.list_clusters(teamspace_id=self.id)
101
+ clusters = self._teamspace_api.list_cloud_accounts(teamspace_id=self.id)
92
102
  for cl in clusters:
93
- _studios = self._teamspace_api.list_studios(teamspace_id=self.id, cluster_id=cl.cluster_id)
103
+ _studios = self._teamspace_api.list_studios(teamspace_id=self.id, cloud_account=cl.cluster_id)
94
104
  for s in _studios:
95
105
  studios.append(Studio(name=s.name, teamspace=self, cluster=cl.cluster_name, create_ok=False))
96
106
 
97
107
  return studios
98
108
 
109
+ @property
110
+ def default_cloud_account(self) -> str:
111
+ return self._teamspace.project_settings.preferred_cluster
112
+
113
+ @property
114
+ def cloud_accounts(self) -> List[str]:
115
+ """All cloud accounts associated with that teamspace."""
116
+ clusters = self._teamspace_api.list_cloud_accounts(teamspace_id=self.id)
117
+ return [cl.cluster_name for cl in clusters]
118
+
99
119
  @property
100
120
  def clusters(self) -> List[str]:
101
121
  """All clusters associated with that teamspace."""
102
- clusters = self._teamspace_api.list_clusters(teamspace_id=self.id)
103
- return [cl.cluster_name for cl in clusters]
122
+ warnings.warn(
123
+ "The 'clusters' attribute is deprecated and will be removed in the future. "
124
+ "Please use the 'cloud_accounts' attribute instead.",
125
+ DeprecationWarning,
126
+ )
127
+ return self.cloud_accounts
104
128
 
105
129
  def __eq__(self, other: "Teamspace") -> bool:
106
130
  """Checks whether the provided other object is equal to this one."""
@@ -116,6 +140,161 @@ class Teamspace:
116
140
  """Returns reader friendly representation."""
117
141
  return repr(self)
118
142
 
143
+ def create_agent(
144
+ self,
145
+ name: str,
146
+ api_key: str,
147
+ base_url: str,
148
+ model: str,
149
+ org_id: Optional[str] = "",
150
+ prompt_template: Optional[str] = "",
151
+ description: Optional[str] = "",
152
+ prompt_suggestions: Optional[List[str]] = None,
153
+ file_uploads_enabled: Optional[bool] = None,
154
+ ) -> "Agent":
155
+ agent = self._teamspace_api.create_agent(
156
+ teamspace_id=self.id,
157
+ name=name,
158
+ api_key=api_key,
159
+ base_url=base_url,
160
+ model=model,
161
+ org_id=org_id,
162
+ prompt_template=prompt_template,
163
+ description=description,
164
+ prompt_suggestions=prompt_suggestions,
165
+ file_uploads_enabled=file_uploads_enabled,
166
+ )
167
+ return Agent(agent.id)
168
+
169
+ def upload_model(
170
+ self,
171
+ path: Union[str, Path],
172
+ name: str,
173
+ cloud_account: Optional[str] = None,
174
+ progress_bar: bool = True,
175
+ ) -> UploadedModelInfo:
176
+ """Upload a local checkpoint file to the model store.
177
+
178
+ Args:
179
+ path: Path to the model file or folder to upload.
180
+ name: Name tag of the model to upload.
181
+ cloud_account: The name of the cloud account to store the Model in.
182
+ If not provided, the default cloud account for the Teamspace will be used.
183
+ progress_bar: Whether to show a progress bar for the upload.
184
+ """
185
+ if not path:
186
+ raise ValueError("No path provided to upload")
187
+ if not name:
188
+ raise ValueError("No name provided for the model")
189
+ path = Path(path).resolve()
190
+ if not path.exists():
191
+ raise FileNotFoundError(str(path))
192
+
193
+ cloud_account = (
194
+ self._teamspace_api._determine_cloud_account(self.id) if cloud_account is None else cloud_account
195
+ )
196
+ filepaths = [path] if path.is_file() else [p for p in path.rglob("*") if p.is_file()]
197
+
198
+ if not filepaths:
199
+ raise FileNotFoundError(
200
+ "The path to upload doesn't contain any files. Make sure it points to a file or"
201
+ f" non-empty folder: {path}"
202
+ )
203
+
204
+ root_path = path
205
+ if len(filepaths) == 1:
206
+ root_path = path.parent
207
+
208
+ filenames = ",".join(str(f.relative_to(root_path)) for f in filepaths)
209
+
210
+ model = self._teamspace_api.create_model(
211
+ name=name,
212
+ metadata={"filenames": filenames},
213
+ private=True,
214
+ teamspace_id=self.id,
215
+ cloud_account=cloud_account,
216
+ )
217
+ self._teamspace_api.upload_model_files(
218
+ model_id=model.model_id,
219
+ version=model.version,
220
+ root_path=root_path,
221
+ filepaths=filepaths,
222
+ cloud_account=cloud_account,
223
+ teamspace_id=self.id,
224
+ progress_bar=progress_bar,
225
+ )
226
+ self._teamspace_api.complete_model_upload(
227
+ model_id=model.model_id,
228
+ version=model.version,
229
+ teamspace_id=self.id,
230
+ )
231
+ return UploadedModelInfo(
232
+ name=name,
233
+ version=model.version,
234
+ teamspace=self.name,
235
+ cloud_account=cloud_account,
236
+ )
237
+
238
+ def download_model(
239
+ self,
240
+ name: str,
241
+ download_dir: Optional[str] = None,
242
+ progress_bar: bool = True,
243
+ ) -> str:
244
+ """Download a checkpoint from the model store.
245
+
246
+ Args:
247
+ name: Name tag of the model to download. Can optionally also contain a version tag separated by a colon,
248
+ e.g. 'modelname:v1'.
249
+ download_dir: A path to directory where the model should be downloaded. Defaults
250
+ to the current working directory.
251
+ progress_bar: Whether to show a progress bar for the download.
252
+
253
+ Returns:
254
+ The absolute path to the downloaded model file or folder.
255
+
256
+ """
257
+ if not name:
258
+ raise ValueError("No name provided for the model")
259
+ if download_dir is None:
260
+ download_dir = Path.cwd()
261
+ download_dir = Path(download_dir)
262
+
263
+ name, version = _parse_model_and_version(name)
264
+ model_version = self._teamspace_api.get_model_version(name=name, version=version, teamspace_id=self.id)
265
+ if not model_version.upload_complete:
266
+ raise RuntimeError(
267
+ f"Model {name}:{version} is not fully uploaded yet. Please wait until the upload is complete."
268
+ )
269
+ downloaded_files = self._teamspace_api.download_model_files(
270
+ name=name,
271
+ version=version,
272
+ download_dir=download_dir,
273
+ teamspace_name=self.name,
274
+ teamspace_owner_name=self.owner.name,
275
+ progress_bar=progress_bar,
276
+ )
277
+
278
+ if not downloaded_files:
279
+ raise RuntimeError("No files were downloaded. This shouldn't happen, please report a bug.")
280
+
281
+ if len(downloaded_files) == 1:
282
+ downloaded_file = Path(downloaded_files[0])
283
+ downloaded_path = download_dir / downloaded_file.parts[0]
284
+ return str(downloaded_path.resolve())
285
+ return str(Path(download_dir).resolve())
286
+
287
+ def delete_model(self, name: str) -> None:
288
+ """Delete a model from the model store.
289
+
290
+ Args:
291
+ name: Name tag of the model to delete. Can optionally also contain a version tag separated by a colon,
292
+ e.g. 'entity/modelname:v1'.
293
+
294
+ """
295
+ name, version = _parse_model_and_version(name)
296
+ self._teamspace_api.delete_model(name=name, version=version, teamspace_id=self.id)
297
+
119
298
 
120
299
  def _resolve_valueerror_message(error: ValueError, owner: Owner, teamspace_name: str) -> ValueError:
121
300
  """Resolves the ValueError Message and replaces it with a nicer message."""
@@ -127,18 +306,17 @@ def _resolve_valueerror_message(error: ValueError, owner: Owner, teamspace_name:
127
306
  organizations = _get_organizations_for_authed_user()
128
307
  message = (
129
308
  f"Teamspace {entire_ts_name} does not exist. "
130
- "Is it maybe an organizational Teamspace? You are a member of the following organizations: "
131
- f"{[o.name for o in organizations]}. Maybe specify one of these instead "
132
- "of your user if the Teamspace belongs to the organization."
309
+ f"Is {teamspace_name} an organizational Teamspace? You are a member of the following organizations: "
310
+ f"{[o.name for o in organizations]}. Try specifying the `org` parameter instead "
311
+ "of `user` if the Teamspace belongs to the organization."
133
312
  )
134
313
  else:
135
314
  # organization teamspace owner
136
315
  user = User()
137
316
  message = (
138
317
  f"Teamspace {entire_ts_name} does not exist. "
139
- f"Is it maybe a user Teamspace. You specified org={owner.name}, "
140
- "but maybe the Teamspace is part of your user? "
141
- f"Consider specifying user={user.name} instead of your org."
318
+ f"Is {teamspace_name} a user Teamspace? "
319
+ f"Consider specifying user={user.name} instead of org={owner.name}."
142
320
  )
143
321
 
144
322
  return ValueError(message, *error.args[1:])
lightning_sdk/user.py CHANGED
@@ -2,7 +2,7 @@ from typing import Optional
2
2
 
3
3
  from lightning_sdk.api import UserApi
4
4
  from lightning_sdk.owner import Owner
5
- from lightning_sdk.utils import _resolve_user_name
5
+ from lightning_sdk.utils.resolve import _resolve_user_name
6
6
 
7
7
 
8
8
  class User(Owner):
File without changes
@@ -0,0 +1,61 @@
1
+ from abc import ABCMeta
2
+ from typing import Any, Callable, Tuple, Type
3
+
4
+
5
+ class ConditionBaseMeta(ABCMeta):
6
+ """Metaclass that allows for conditional inheritance.
7
+
8
+ This metaclass is used to conditionally inherit from two base classes
9
+ based on the result of a given condition function.
10
+
11
+ Example usage:
12
+ ```
13
+ def my_condition():
14
+ return some_condition # Define your condition here
15
+
16
+ class A:
17
+ pass
18
+
19
+ class B:
20
+ pass
21
+
22
+ class MyNewClass(metaclass=ConditionBaseMeta, condition_func=my_condition, base_true=A, base_false=B):
23
+ pass
24
+ ```
25
+
26
+ Args:
27
+ cls: The metaclass itself.
28
+ name: The name of the class being created.
29
+ bases: The base classes of the class being created.
30
+ attrs: The attributes of the class being created.
31
+ condition_func: The function that determines which base class to inherit from.
32
+ base_true: The base class to inherit from if the condition function returns True.
33
+ base_false: The base class to inherit from if the condition function returns False.
34
+
35
+ Returns:
36
+ type: The new class with the appropriate base class.
37
+ """
38
+
39
+ def __new__(
40
+ cls,
41
+ name: str,
42
+ bases: Tuple[type, ...],
43
+ attrs: dict,
44
+ condition_func: Callable[[], bool],
45
+ base_true: Type,
46
+ base_false: Type,
47
+ ) -> Type:
48
+ # Helper function to determine the base class
49
+ def get_base() -> type:
50
+ return base_true if condition_func() else base_false
51
+
52
+ base = get_base()
53
+ attrs["_base"] = base
54
+
55
+ # Create the final class, inheriting from both the intermediate base and the original bases
56
+ return super().__new__(cls, name, (base, *bases), attrs)
57
+
58
+ def __getattr__(cls, name: str) -> Any:
59
+ """Get an attribute from the appropriate base class."""
60
+ # Delegate attribute lookup to the appropriate base class
61
+ return getattr(cls._base, name)
@@ -0,0 +1,116 @@
1
+ from enum import Enum, EnumMeta, unique
2
+ from types import MappingProxyType
3
+ from typing import Any, Dict, Iterator, Union
4
+
5
+
6
+ # We silence annotation errors as the function signatures are exactly the same in python core enum.py
7
+ # modified from https://stackoverflow.com/a/62309159
8
+ class OnAccess(EnumMeta):
9
+ """Runs a user-specified function whenever member is accessed."""
10
+
11
+ def __getattribute__(cls, name: str) -> Any: # noqa: N805
12
+ """Called when an attribute is accessed."""
13
+ obj = super().__getattribute__(name)
14
+ if isinstance(obj, Enum) and obj._on_access:
15
+ obj._on_access()
16
+ return _resolve_deprecated_enum_fields(obj)
17
+
18
+ def __getitem__(cls, name: str) -> Any: # noqa: N805
19
+ """Called when an item is accessed."""
20
+ member = super().__getitem__(name)
21
+ if isinstance(member, Enum) and member._on_access:
22
+ member._on_access()
23
+
24
+ return _resolve_deprecated_enum_fields(member)
25
+
26
+ def __call__(
27
+ cls, # noqa: N805
28
+ value, # noqa: ANN001
29
+ names=None, # noqa: ANN001
30
+ *,
31
+ module=None, # noqa: ANN001
32
+ qualname=None, # noqa: ANN001
33
+ type=None, # noqa: A002, ANN001
34
+ start=1, # noqa: ANN001
35
+ ) -> Any:
36
+ obj = super().__call__(value, names, module=module, qualname=qualname, type=type, start=start)
37
+ if isinstance(obj, Enum) and obj._on_access:
38
+ obj._on_access()
39
+ return _resolve_deprecated_enum_fields(obj)
40
+
41
+ @staticmethod
42
+ def _filter_func(member: "DeprecationEnum") -> bool:
43
+ return not member.deprecated
44
+
45
+ def __iter__(cls) -> Iterator["DeprecationEnum"]: # noqa: N805
46
+ """Returns members in definition order.
47
+
48
+ Excludes deprecated members
49
+
50
+ """
51
+ return filter(cls._filter_func, (cls._member_map_[name] for name in cls._member_names_))
52
+
53
+ def __len__(cls) -> int: # noqa: N805
54
+ """Length of the enum excluding deprecated members."""
55
+ return len(cls.__members__)
56
+
57
+ @property
58
+ def __members__(cls) -> Dict[str, "DeprecationEnum"]: # noqa: N805
59
+ """Returns a mapping of member name->value.
60
+
61
+ This mapping lists all enum members, including aliases. Note that this is a read-only view of the internal
62
+ mapping.
63
+
64
+ Excludes deprecated members.
65
+
66
+ """
67
+ return MappingProxyType(
68
+ {name: member for name, member in cls._member_map_.items() if not cls._filter_func(member)}
69
+ )
70
+
71
+ def __reversed__(cls) -> Iterator["DeprecationEnum"]: # noqa: N805
72
+ """Returns members in reverse definition order.
73
+
74
+ Excludes deprecated members
75
+
76
+ """
77
+ return filter(cls._filter_func, (cls._member_map_[name] for name in reversed(cls._member_names_)))
78
+
79
+
80
+ def _resolve_deprecated_enum_fields(value: Union[Any, "DeprecationEnum"]) -> Union[Any, "DeprecationEnum"]:
81
+ """Resolves deprecated enum fields to their preferred values."""
82
+ if getattr(value, "deprecated", False):
83
+ return value.__class__[value.preferred_way]
84
+ return value
85
+
86
+
87
+ # NOTE: even deprecated enums need to have unique values.
88
+ # otherwise the deprecation warning will not be triggered
89
+ # as duplicated values are handled as aliases towards the original value
90
+ # and the original value is not accessed. However, _resolve_deprecated_enum_fields
91
+ # will handle this case and return the preferred value
92
+ @unique
93
+ class DeprecationEnum(Enum, metaclass=OnAccess):
94
+ def __new__(cls, value, *args) -> Any: # noqa: ANN001, ANN002
95
+ member = object.__new__(cls)
96
+ member._value_ = value
97
+ member.deprecated = False
98
+ member._on_access = None
99
+
100
+ if args:
101
+ member.preferred_way = args[0]
102
+ member._on_access = member.deprecate
103
+ member.deprecated = True
104
+
105
+ return member
106
+
107
+ def deprecate(self) -> None:
108
+ import warnings
109
+
110
+ clsname = self.__class__.__name__
111
+
112
+ warnings.warn(
113
+ f"{clsname}.{self.name} is deprecated. Use {clsname}.{self.preferred_way} instead!",
114
+ DeprecationWarning,
115
+ stacklevel=3,
116
+ )
@@ -2,7 +2,7 @@ import logging
2
2
  import os
3
3
  import warnings
4
4
  from contextlib import contextmanager
5
- from typing import TYPE_CHECKING, Generator, List, Optional, Union
5
+ from typing import TYPE_CHECKING, Generator, List, Optional, Tuple, Union
6
6
 
7
7
  from lightning_sdk.api import TeamspaceApi, UserApi
8
8
  from lightning_sdk.machine import Machine
@@ -13,6 +13,9 @@ if TYPE_CHECKING:
13
13
  from lightning_sdk.user import User
14
14
 
15
15
 
16
+ _LIGHTNING_SERVICE_EXECUTION_ID_KEY = "LIGHTNING_SERVICE_EXECUTION_ID"
17
+
18
+
16
19
  def _setup_logger(name: str, level: int = logging.INFO) -> logging.Logger:
17
20
  _logger = logging.getLogger(name)
18
21
  _handler = logging.StreamHandler()
@@ -43,6 +46,24 @@ def _resolve_deprecated_cloud_compute(machine: Machine, cloud_compute: Optional[
43
46
  return machine
44
47
 
45
48
 
49
+ def _resolve_deprecated_cluster(cloud_account: Optional[str], cluster: Optional[str]) -> Optional[str]:
50
+ if cluster is not None:
51
+ if cloud_account is not None:
52
+ raise ValueError(
53
+ "Cannot use both 'cluster' and 'cloud_account' at the same time."
54
+ "Please don't set the 'cluster' as it will be deprecated!"
55
+ )
56
+
57
+ warnings.warn(
58
+ "The 'cluster' argument will be deprecated in the future! "
59
+ "Please consider using the 'cloud_account' argument instead!",
60
+ DeprecationWarning,
61
+ )
62
+ return cluster
63
+
64
+ return cloud_account
65
+
66
+
46
67
  def _resolve_org_name(name: Optional[str]) -> Optional[str]:
47
68
  if name is None:
48
69
  name = os.environ.get("LIGHTNING_ORG", "") or None
@@ -54,7 +75,6 @@ def _resolve_org(org: Optional[Union[str, "Organization"]]) -> Optional["Organiz
54
75
 
55
76
  if isinstance(org, Organization):
56
77
  return org
57
-
58
78
  org = _resolve_org_name(org)
59
79
 
60
80
  if org is None:
@@ -68,7 +88,6 @@ def _resolve_org(org: Optional[Union[str, "Organization"]]) -> Optional["Organiz
68
88
  def _resolve_user_name(name: Optional[str]) -> Optional[str]:
69
89
  if name is None:
70
90
  name = os.environ.get("LIGHTNING_USERNAME", "") or None
71
-
72
91
  return name
73
92
 
74
93
 
@@ -79,7 +98,6 @@ def _resolve_user(user: Optional[Union[str, "User"]]) -> Optional["User"]:
79
98
  return user
80
99
 
81
100
  user = _resolve_user_name(user)
82
-
83
101
  if user is None:
84
102
  return None
85
103
 
@@ -131,6 +149,12 @@ def _get_organizations_for_authed_user() -> List["Organization"]:
131
149
  return [Organization(_org.name) for _org in _orgs]
132
150
 
133
151
 
152
+ def _get_teamspace_names_for_authed_user() -> List[str]:
153
+ """Returns Teamspace's names the current Authed user is a member of."""
154
+ teamspaces = UserApi()._get_all_teamspace_memberships("")
155
+ return sorted([ts.name for ts in teamspaces])
156
+
157
+
134
158
  def _get_authed_user() -> "User":
135
159
  from lightning_sdk.user import User
136
160
 
@@ -150,3 +174,16 @@ def skip_studio_init() -> Generator[None, None, None]:
150
174
  yield
151
175
 
152
176
  Studio._skip_init = prev_studio_init_state
177
+
178
+
179
+ def _parse_model_and_version(name: str) -> Tuple[str, str]:
180
+ parts = name.split(":")
181
+ if len(parts) == 1:
182
+ return parts[0], "latest"
183
+ if len(parts) == 2:
184
+ return parts[0], parts[1]
185
+ # The rest of the validation for name and version happens in the backend
186
+ raise ValueError(
187
+ "Model version is expected to be in the format `entity/modelname:version` separated by a"
188
+ f" single colon, but got: {name}"
189
+ )
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Grid.ai
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,14 +1,37 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lightning_sdk
3
- Version: 0.1.2
3
+ Version: 0.1.46
4
4
  Summary: SDK to develop using Lightning AI Studios
5
5
  Author-email: Lightning-AI <justus@lightning.ai>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2024 Grid.ai
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
6
28
  Keywords: deep learning,machine learning,pytorch,AI
7
29
  Classifier: Programming Language :: Python :: 3
30
+ Classifier: License :: OSI Approved :: MIT License
8
31
  Requires-Python: >=3.8
9
32
  Description-Content-Type: text/markdown
33
+ License-File: LICENSE
10
34
  Requires-Dist: backoff
11
- Requires-Dist: click
12
35
  Requires-Dist: fastapi
13
36
  Requires-Dist: pyjwt
14
37
  Requires-Dist: python-multipart
@@ -22,6 +45,9 @@ Requires-Dist: tqdm
22
45
  Requires-Dist: fire
23
46
  Requires-Dist: simple-term-menu
24
47
  Requires-Dist: lightning-utilities
48
+ Provides-Extra: serve
49
+ Requires-Dist: litserve>=0.2.5; extra == "serve"
50
+ Requires-Dist: docker; extra == "serve"
25
51
 
26
52
  # Lightning SDK
27
53
 
@@ -70,8 +96,8 @@ s.install_plugin("jobs")
70
96
  s.install_plugin("multi-machine-training")
71
97
 
72
98
  # run the resulting plugins to start 1 job and 1 multi-machine training
73
- s.installed_plugins["jobs"].run("python my_dummy_file", name="my_first_job", cloud_compute=Machine.A10G)
74
- s.installed_plugins["multi-machine-training"].run("python my_dummy_file", name="my_first_mmt", cloud_compute=Machine.T4, num_instances=42)
99
+ s.installed_plugins["jobs"].run("python my_dummy_file", name="my_first_job", machine=Machine.A10G)
100
+ s.installed_plugins["multi-machine-training"].run("python my_dummy_file", name="my_first_mmt", machine=Machine.T4, num_instances=42)
75
101
 
76
102
  print("Stopping Studio")
77
103
  s.stop()