lightning-sdk 0.1.3__py3-none-any.whl → 0.1.47__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 (503) 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 +328 -0
  9. lightning_sdk/api/lit_registry_api.py +12 -0
  10. lightning_sdk/api/mmt_api.py +205 -0
  11. lightning_sdk/api/org_api.py +1 -3
  12. lightning_sdk/api/studio_api.py +172 -81
  13. lightning_sdk/api/teamspace_api.py +237 -20
  14. lightning_sdk/api/user_api.py +24 -9
  15. lightning_sdk/api/utils.py +429 -48
  16. lightning_sdk/cli/ai_hub.py +49 -0
  17. lightning_sdk/cli/download.py +132 -0
  18. lightning_sdk/cli/entrypoint.py +13 -3
  19. lightning_sdk/cli/list.py +54 -0
  20. lightning_sdk/cli/run.py +206 -0
  21. lightning_sdk/cli/serve.py +218 -0
  22. lightning_sdk/cli/studios_menu.py +78 -0
  23. lightning_sdk/cli/teamspace_menu.py +94 -0
  24. lightning_sdk/cli/upload.py +79 -89
  25. lightning_sdk/constants.py +29 -1
  26. lightning_sdk/deployment/__init__.py +25 -0
  27. lightning_sdk/deployment/deployment.py +389 -0
  28. lightning_sdk/helpers.py +49 -0
  29. lightning_sdk/job/__init__.py +5 -0
  30. lightning_sdk/job/base.py +359 -0
  31. lightning_sdk/job/job.py +291 -0
  32. lightning_sdk/job/v1.py +269 -0
  33. lightning_sdk/job/v2.py +221 -0
  34. lightning_sdk/job/work.py +81 -0
  35. lightning_sdk/lightning_cloud/__version__.py +1 -1
  36. lightning_sdk/lightning_cloud/cli/__main__.py +15 -13
  37. lightning_sdk/lightning_cloud/env.py +1 -0
  38. lightning_sdk/lightning_cloud/login.py +12 -8
  39. lightning_sdk/lightning_cloud/openapi/__init__.py +289 -42
  40. lightning_sdk/lightning_cloud/openapi/api/__init__.py +10 -0
  41. lightning_sdk/lightning_cloud/openapi/api/analytics_service_api.py +141 -0
  42. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +1075 -227
  43. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +9 -1
  44. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +992 -233
  45. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +883 -120
  46. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +10 -5
  47. lightning_sdk/lightning_cloud/openapi/api/deployment_templates_service_api.py +756 -0
  48. lightning_sdk/lightning_cloud/openapi/api/endpoint_service_api.py +422 -1
  49. lightning_sdk/lightning_cloud/openapi/api/experiments_service_api.py +242 -0
  50. lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +674 -0
  51. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +3823 -0
  52. lightning_sdk/lightning_cloud/openapi/api/lightningapp_instance_service_api.py +158 -594
  53. lightning_sdk/lightning_cloud/openapi/api/lightningapp_v2_service_api.py +0 -1086
  54. lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +113 -0
  55. lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +1753 -0
  56. lightning_sdk/lightning_cloud/openapi/api/lit_registry_service_api.py +343 -0
  57. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +1423 -108
  58. lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +421 -1
  59. lightning_sdk/lightning_cloud/openapi/api/profiler_service_api.py +663 -0
  60. lightning_sdk/lightning_cloud/openapi/api/projects_service_api.py +5 -1
  61. lightning_sdk/lightning_cloud/openapi/api/secret_service_api.py +478 -1
  62. lightning_sdk/lightning_cloud/openapi/api/slurm_jobs_user_service_api.py +9 -5
  63. lightning_sdk/lightning_cloud/openapi/api/snowflake_service_api.py +686 -0
  64. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +1094 -0
  65. lightning_sdk/lightning_cloud/openapi/api/studio_jobs_service_api.py +4 -4
  66. lightning_sdk/lightning_cloud/openapi/api/user_service_api.py +1081 -34
  67. lightning_sdk/lightning_cloud/openapi/models/__init__.py +279 -40
  68. lightning_sdk/lightning_cloud/openapi/models/affiliatelinks_id_body.py +149 -0
  69. lightning_sdk/lightning_cloud/openapi/models/agentmanagedendpoints_id_body.py +305 -0
  70. lightning_sdk/lightning_cloud/openapi/models/{assistants_id_body.py → agents_id_body.py} +201 -71
  71. lightning_sdk/lightning_cloud/openapi/models/app_id_works_body.py +149 -0
  72. lightning_sdk/lightning_cloud/openapi/models/approveautojoindomain_domain_body.py +123 -0
  73. lightning_sdk/lightning_cloud/openapi/models/apps_id_body1.py +107 -3
  74. lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +1 -27
  75. lightning_sdk/lightning_cloud/openapi/models/{v1_get_cluster_health_response.py → captures_id_body.py} +16 -16
  76. lightning_sdk/lightning_cloud/openapi/models/cloud_space_id_versionpublications_body1.py +27 -1
  77. lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_runs_body.py +27 -1
  78. lightning_sdk/lightning_cloud/openapi/models/cloudspaces_id_body.py +58 -6
  79. lightning_sdk/lightning_cloud/openapi/models/cluster_id_capacityblock_body.py +253 -0
  80. lightning_sdk/lightning_cloud/openapi/models/cluster_id_capacityreservations_body.py +55 -3
  81. lightning_sdk/lightning_cloud/openapi/models/cluster_id_proxies_body.py +123 -0
  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 +79 -1
  92. lightning_sdk/lightning_cloud/openapi/models/id_codeconfig_body.py +29 -55
  93. lightning_sdk/lightning_cloud/openapi/models/id_engage_body.py +3 -29
  94. lightning_sdk/lightning_cloud/openapi/models/id_engage_body1.py +149 -0
  95. lightning_sdk/lightning_cloud/openapi/models/id_execute_body.py +3 -55
  96. lightning_sdk/lightning_cloud/openapi/models/id_execute_body1.py +175 -0
  97. lightning_sdk/lightning_cloud/openapi/models/id_get_body.py +133 -3
  98. lightning_sdk/lightning_cloud/openapi/models/id_index_body.py +67 -15
  99. lightning_sdk/lightning_cloud/openapi/models/id_index_body2.py +123 -0
  100. lightning_sdk/lightning_cloud/openapi/models/id_index_body3.py +175 -0
  101. lightning_sdk/lightning_cloud/openapi/models/id_reportlogsactivity_body.py +123 -0
  102. lightning_sdk/lightning_cloud/openapi/models/id_start_body.py +29 -3
  103. lightning_sdk/lightning_cloud/openapi/models/id_storage_body.py +52 -26
  104. lightning_sdk/lightning_cloud/openapi/models/id_visibility_body.py +123 -0
  105. lightning_sdk/lightning_cloud/openapi/models/jobs_id_body1.py +27 -1
  106. lightning_sdk/lightning_cloud/openapi/models/jobs_id_body2.py +17 -43
  107. lightning_sdk/lightning_cloud/openapi/models/jobs_id_body3.py +149 -0
  108. lightning_sdk/lightning_cloud/openapi/models/litloggermetrics_id_body.py +175 -0
  109. lightning_sdk/lightning_cloud/openapi/models/litpages_id_body.py +27 -1
  110. lightning_sdk/lightning_cloud/openapi/models/loggermetrics_id_body.py +123 -0
  111. lightning_sdk/lightning_cloud/openapi/models/metrics_stream_id_loggerartifacts_body.py +123 -0
  112. lightning_sdk/lightning_cloud/openapi/models/metricsstream_create_body.py +383 -0
  113. lightning_sdk/lightning_cloud/openapi/models/{v1_cloud_space_id_list.py → metricsstream_delete_body.py} +10 -10
  114. lightning_sdk/lightning_cloud/openapi/models/metricsstream_id_body.py +175 -0
  115. lightning_sdk/lightning_cloud/openapi/models/{v1_upload_model_response.py → model_id_versions_body.py} +25 -51
  116. lightning_sdk/lightning_cloud/openapi/models/model_id_visibility_body.py +123 -0
  117. lightning_sdk/lightning_cloud/openapi/models/models_model_id_body.py +149 -0
  118. lightning_sdk/lightning_cloud/openapi/models/multimachinejobs_id_body.py +123 -0
  119. lightning_sdk/lightning_cloud/openapi/models/org_id_memberships_body.py +27 -1
  120. lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +183 -1
  121. lightning_sdk/lightning_cloud/openapi/models/profiler_captures_body.py +279 -0
  122. lightning_sdk/lightning_cloud/openapi/models/profiler_enabled_body.py +149 -0
  123. lightning_sdk/lightning_cloud/openapi/models/project_id_agentmanagedendpoints_body.py +149 -0
  124. lightning_sdk/lightning_cloud/openapi/models/{project_id_assistants_body.py → project_id_agents_body.py} +159 -55
  125. lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +71 -19
  126. lightning_sdk/lightning_cloud/openapi/models/project_id_fileendpoints_body.py +27 -1
  127. lightning_sdk/lightning_cloud/openapi/models/project_id_jobs_body.py +175 -0
  128. lightning_sdk/lightning_cloud/openapi/models/project_id_litregistry_body.py +123 -0
  129. lightning_sdk/lightning_cloud/openapi/models/project_id_memberships_body.py +53 -1
  130. lightning_sdk/lightning_cloud/openapi/models/{v1_upload_model_request.py → project_id_models_body.py} +70 -70
  131. lightning_sdk/lightning_cloud/openapi/models/project_id_multimachinejobs_body.py +227 -0
  132. lightning_sdk/lightning_cloud/openapi/models/project_id_secrets_body.py +27 -1
  133. lightning_sdk/lightning_cloud/openapi/models/project_id_snowflake_body.py +123 -0
  134. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +29 -3
  135. lightning_sdk/lightning_cloud/openapi/models/query_query_id_body.py +175 -0
  136. lightning_sdk/lightning_cloud/openapi/models/secrets_id_body1.py +123 -0
  137. lightning_sdk/lightning_cloud/openapi/models/servers_server_id_body.py +123 -0
  138. lightning_sdk/lightning_cloud/openapi/models/service_artifact_artifact_kind.py +104 -0
  139. lightning_sdk/lightning_cloud/openapi/models/serviceexecution_id_body.py +43 -43
  140. lightning_sdk/lightning_cloud/openapi/models/slurm_jobs_body.py +79 -1
  141. lightning_sdk/lightning_cloud/openapi/models/snowflake_export_body.py +305 -0
  142. lightning_sdk/lightning_cloud/openapi/models/{v1_download_model_response.py → snowflake_query_body.py} +51 -51
  143. lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +27 -1
  144. lightning_sdk/lightning_cloud/openapi/models/update.py +105 -1
  145. lightning_sdk/lightning_cloud/openapi/models/upload_id_complete_body.py +149 -0
  146. lightning_sdk/lightning_cloud/openapi/models/upload_id_parts_body.py +149 -0
  147. lightning_sdk/lightning_cloud/openapi/models/user_id_affiliatelinks_body.py +149 -0
  148. lightning_sdk/lightning_cloud/openapi/models/v1_accelerator_quota_info.py +201 -0
  149. lightning_sdk/lightning_cloud/openapi/models/v1_ack_user_storage_violation_response.py +97 -0
  150. lightning_sdk/lightning_cloud/openapi/models/v1_add_job_timing_response.py +97 -0
  151. lightning_sdk/lightning_cloud/openapi/models/v1_affiliate_link.py +435 -0
  152. lightning_sdk/lightning_cloud/openapi/models/v1_agent_job.py +131 -1
  153. lightning_sdk/lightning_cloud/openapi/models/v1_api_pricing_spec.py +149 -0
  154. lightning_sdk/lightning_cloud/openapi/models/v1_app_type.py +104 -0
  155. lightning_sdk/lightning_cloud/openapi/models/v1_append_logger_metrics_response.py +97 -0
  156. lightning_sdk/lightning_cloud/openapi/models/v1_approve_auto_join_domain_response.py +123 -0
  157. lightning_sdk/lightning_cloud/openapi/models/v1_assign_variant_response.py +97 -0
  158. lightning_sdk/lightning_cloud/openapi/models/v1_assistant.py +131 -1
  159. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_knowledge_item_status.py +253 -0
  160. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_knowledge_status.py +123 -0
  161. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_model_status.py +104 -0
  162. lightning_sdk/lightning_cloud/openapi/models/v1_auto_join_domain_validation.py +175 -0
  163. lightning_sdk/lightning_cloud/openapi/models/v1_auto_join_org_response.py +149 -0
  164. lightning_sdk/lightning_cloud/openapi/models/v1_autoscaling_spec.py +305 -0
  165. lightning_sdk/lightning_cloud/openapi/models/v1_autoscaling_target_metric.py +149 -0
  166. lightning_sdk/lightning_cloud/openapi/models/v1_aws_direct_v1.py +133 -3
  167. lightning_sdk/lightning_cloud/openapi/models/v1_batch_update_lightningwork_response.py +97 -0
  168. lightning_sdk/lightning_cloud/openapi/models/v1_body.py +123 -0
  169. lightning_sdk/lightning_cloud/openapi/models/v1_cancellation_metadata.py +149 -0
  170. lightning_sdk/lightning_cloud/openapi/models/v1_capacity_block_offering.py +383 -0
  171. lightning_sdk/lightning_cloud/openapi/models/v1_check_snowflake_connection_response.py +123 -0
  172. lightning_sdk/lightning_cloud/openapi/models/v1_checkbox.py +201 -0
  173. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space.py +136 -6
  174. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_code_version.py +27 -1
  175. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_instance_config.py +1 -53
  176. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_instance_startup_status.py +79 -1
  177. lightning_sdk/lightning_cloud/openapi/models/{v1_cluster_log_service.py → v1_cloud_space_session.py} +49 -49
  178. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_version.py +53 -1
  179. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +445 -3
  180. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +55 -3
  181. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_names.py +123 -0
  182. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_proxy.py +201 -0
  183. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_resource_tag.py +149 -0
  184. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +357 -0
  185. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +157 -107
  186. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_state.py +1 -0
  187. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_status.py +17 -43
  188. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_tagging_options.py +175 -0
  189. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +0 -1
  190. lightning_sdk/lightning_cloud/openapi/models/v1_command_argument.py +79 -1
  191. lightning_sdk/lightning_cloud/openapi/models/v1_complete_model_upload_response.py +97 -0
  192. lightning_sdk/lightning_cloud/openapi/models/v1_complete_multi_part_upload_response.py +97 -0
  193. lightning_sdk/lightning_cloud/openapi/models/v1_completed_part.py +149 -0
  194. lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +15 -15
  195. lightning_sdk/lightning_cloud/openapi/models/v1_conversation_response_chunk.py +26 -26
  196. lightning_sdk/lightning_cloud/openapi/models/v1_count_metrics_streams_response.py +123 -0
  197. lightning_sdk/lightning_cloud/openapi/models/v1_create_checkout_session_request.py +53 -1
  198. lightning_sdk/lightning_cloud/openapi/models/v1_create_cluster_request.py +27 -1
  199. lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_template_request.py +539 -0
  200. lightning_sdk/lightning_cloud/openapi/models/v1_create_multi_part_upload_response.py +123 -0
  201. lightning_sdk/lightning_cloud/openapi/models/v1_create_organization_request.py +159 -3
  202. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +27 -1
  203. lightning_sdk/lightning_cloud/openapi/models/v1_create_shared_metrics_stream_request.py +201 -0
  204. lightning_sdk/lightning_cloud/openapi/models/v1_create_shared_metrics_stream_response.py +123 -0
  205. lightning_sdk/lightning_cloud/openapi/models/v1_create_snowflake_connection_response.py +123 -0
  206. lightning_sdk/lightning_cloud/openapi/models/v1_create_user_secret_request.py +149 -0
  207. lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +365 -1
  208. lightning_sdk/lightning_cloud/openapi/models/{v1_cluster_performance_profile.py → v1_data_connection_state.py} +11 -9
  209. lightning_sdk/lightning_cloud/openapi/models/v1_data_path.py +201 -0
  210. lightning_sdk/lightning_cloud/openapi/models/v1_delete_affiliate_link_response.py +97 -0
  211. lightning_sdk/lightning_cloud/openapi/models/v1_delete_cloud_space_session_response.py +97 -0
  212. lightning_sdk/lightning_cloud/openapi/models/v1_delete_cluster_proxy_response.py +97 -0
  213. lightning_sdk/lightning_cloud/openapi/models/v1_delete_container_response.py +97 -0
  214. lightning_sdk/lightning_cloud/openapi/models/v1_delete_deployment_release_response.py +97 -0
  215. lightning_sdk/lightning_cloud/openapi/models/{v1_azure_cluster_driver_status.py → v1_delete_deployment_response.py} +6 -6
  216. lightning_sdk/lightning_cloud/openapi/models/v1_delete_index_response.py +97 -0
  217. lightning_sdk/lightning_cloud/openapi/models/{v1_byom_cluster_driver.py → v1_delete_job_response.py} +6 -6
  218. lightning_sdk/lightning_cloud/openapi/models/{v1_delete_lightningapp_v2_response.py → v1_delete_logger_artifact_response.py} +6 -6
  219. lightning_sdk/lightning_cloud/openapi/models/v1_delete_managed_endpoint_response.py +97 -0
  220. lightning_sdk/lightning_cloud/openapi/models/v1_delete_metrics_stream_response.py +97 -0
  221. lightning_sdk/lightning_cloud/openapi/models/v1_delete_multi_machine_job_response.py +97 -0
  222. lightning_sdk/lightning_cloud/openapi/models/v1_delete_profiler_capture_response.py +97 -0
  223. lightning_sdk/lightning_cloud/openapi/models/{v1_delete_lightningapp_release_response.py → v1_delete_shared_metrics_stream_response.py} +6 -6
  224. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +617 -0
  225. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_api.py +253 -0
  226. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_event.py +357 -0
  227. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_event_type.py +104 -0
  228. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_metrics.py +149 -0
  229. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_performance.py +305 -0
  230. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_release.py +331 -0
  231. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_spec.py +201 -0
  232. lightning_sdk/lightning_cloud/openapi/models/{get_cluster_health_response_health_status.py → v1_deployment_state.py} +11 -9
  233. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_status.py +279 -0
  234. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_strategy.py +149 -0
  235. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template.py +721 -0
  236. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_engagement_response.py +97 -0
  237. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_gallery_response.py +591 -0
  238. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter.py +435 -0
  239. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter_placement.py +106 -0
  240. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter_type.py +106 -0
  241. lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_summary.py +591 -0
  242. lightning_sdk/lightning_cloud/openapi/models/{instance_type_availability.py → v1_deployment_template_type.py} +10 -10
  243. lightning_sdk/lightning_cloud/openapi/models/{v1_get_lightningapp_source_code_download_url_response.py → v1_download_job_logs_response.py} +10 -10
  244. lightning_sdk/lightning_cloud/openapi/models/v1_download_service_execution_artifact_response.py +175 -0
  245. lightning_sdk/lightning_cloud/openapi/models/v1_ebs.py +279 -0
  246. lightning_sdk/lightning_cloud/openapi/models/v1_efs_config.py +201 -0
  247. lightning_sdk/lightning_cloud/openapi/models/v1_endpoint.py +53 -27
  248. lightning_sdk/lightning_cloud/openapi/models/v1_endpoint_auth.py +27 -1
  249. lightning_sdk/lightning_cloud/openapi/models/v1_endpoint_type.py +104 -0
  250. lightning_sdk/lightning_cloud/openapi/models/v1_execute_cloud_space_command_response.py +29 -3
  251. lightning_sdk/lightning_cloud/openapi/models/v1_execute_in_cloud_space_session_response.py +97 -0
  252. lightning_sdk/lightning_cloud/openapi/models/v1_execute_snowflake_query_response.py +149 -0
  253. lightning_sdk/lightning_cloud/openapi/models/v1_experiment.py +409 -0
  254. lightning_sdk/lightning_cloud/openapi/models/v1_export_snowflake_query_response.py +123 -0
  255. lightning_sdk/lightning_cloud/openapi/models/v1_file_endpoint.py +79 -1
  256. lightning_sdk/lightning_cloud/openapi/models/{v1_instance_spec.py → v1_filesystem_app.py} +85 -59
  257. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_cloud_space.py +149 -0
  258. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_dataset.py +123 -0
  259. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_job.py +175 -0
  260. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_slurm_job.py +149 -0
  261. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_snowflake_connection.py +123 -0
  262. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_work.py +149 -0
  263. lightning_sdk/lightning_cloud/openapi/models/v1_find_capacity_block_offering_response.py +123 -0
  264. lightning_sdk/lightning_cloud/openapi/models/v1_gcp_data_connection.py +27 -1
  265. lightning_sdk/lightning_cloud/openapi/models/v1_gcs_folder_data_connection.py +123 -0
  266. lightning_sdk/lightning_cloud/openapi/models/v1_get_affiliate_link_response.py +123 -0
  267. lightning_sdk/lightning_cloud/openapi/models/{v1_list_cluster_instance_types_response.py → v1_get_deployment_routing_telemetry_aggregated_response.py} +23 -23
  268. lightning_sdk/lightning_cloud/openapi/models/v1_get_deployment_routing_telemetry_response.py +123 -0
  269. lightning_sdk/lightning_cloud/openapi/models/v1_get_folder_index_response.py +27 -1
  270. lightning_sdk/lightning_cloud/openapi/models/{v1_cluster_driver_status.py → v1_get_job_stats_response.py} +39 -39
  271. lightning_sdk/lightning_cloud/openapi/models/v1_get_job_system_metrics_response.py +123 -0
  272. lightning_sdk/lightning_cloud/openapi/models/v1_get_lightningapp_instance_open_ports_response.py +123 -0
  273. lightning_sdk/lightning_cloud/openapi/models/v1_get_logger_metrics_response.py +123 -0
  274. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_file_upload_urls_response.py +123 -0
  275. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_file_url_response.py +175 -0
  276. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_files_response.py +279 -0
  277. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_files_url_response.py +149 -0
  278. lightning_sdk/lightning_cloud/openapi/models/{v1_lightningwork_cluster_driver.py → v1_get_project_artifact_response.py} +33 -14
  279. lightning_sdk/lightning_cloud/openapi/models/v1_get_project_balance_response.py +27 -1
  280. lightning_sdk/lightning_cloud/openapi/models/v1_get_project_storage_metadata_response.py +383 -0
  281. lightning_sdk/lightning_cloud/openapi/models/v1_get_service_execution_status_response.py +67 -15
  282. lightning_sdk/lightning_cloud/openapi/models/v1_get_snowflake_query_response.py +149 -0
  283. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_balance_response.py +27 -1
  284. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +105 -1
  285. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_storage_breakdown_response.py +279 -0
  286. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_storage_response.py +201 -0
  287. lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +137 -3
  288. lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1_status.py +123 -0
  289. lightning_sdk/lightning_cloud/openapi/models/v1_header.py +175 -0
  290. lightning_sdk/lightning_cloud/openapi/models/{v1_external_kubeconfig.py → v1_health_check_exec.py} +21 -21
  291. lightning_sdk/lightning_cloud/openapi/models/v1_health_check_http_get.py +149 -0
  292. lightning_sdk/lightning_cloud/openapi/models/v1_ids_logger_metrics.py +123 -0
  293. lightning_sdk/lightning_cloud/openapi/models/v1_input.py +175 -0
  294. lightning_sdk/lightning_cloud/openapi/models/v1_interrupt_server_response.py +97 -0
  295. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +723 -0
  296. lightning_sdk/lightning_cloud/openapi/models/v1_job_health_check_config.py +253 -0
  297. lightning_sdk/lightning_cloud/openapi/models/v1_job_log_entry.py +175 -0
  298. lightning_sdk/lightning_cloud/openapi/models/v1_job_logs_page.py +227 -0
  299. lightning_sdk/lightning_cloud/openapi/models/v1_job_logs_response.py +149 -0
  300. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +669 -0
  301. lightning_sdk/lightning_cloud/openapi/models/v1_job_timing.py +201 -0
  302. lightning_sdk/lightning_cloud/openapi/models/v1_joinable_organization.py +331 -0
  303. lightning_sdk/lightning_cloud/openapi/models/v1_knowledge_configuration.py +279 -0
  304. lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +125 -0
  305. lightning_sdk/lightning_cloud/openapi/models/v1_lightning_run.py +27 -1
  306. lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_instance_spec.py +105 -27
  307. lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_instance_status.py +53 -1
  308. lightning_sdk/lightning_cloud/openapi/models/v1_lightningwork_spec.py +27 -27
  309. lightning_sdk/lightning_cloud/openapi/models/v1_lightningwork_status.py +81 -3
  310. lightning_sdk/lightning_cloud/openapi/models/v1_list_affiliate_links_response.py +123 -0
  311. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_python_versions_response.py +123 -0
  312. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_sessions_response.py +123 -0
  313. lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_tags_response.py +6 -6
  314. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_availabilities_response.py +123 -0
  315. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_proxies_response.py +123 -0
  316. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_events_response.py +123 -0
  317. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_releases_response.py +123 -0
  318. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_tags_response.py +123 -0
  319. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_templates_response.py +175 -0
  320. lightning_sdk/lightning_cloud/openapi/models/v1_list_deployments_response.py +123 -0
  321. lightning_sdk/lightning_cloud/openapi/models/v1_list_experiments_response.py +149 -0
  322. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_apps_response.py +123 -0
  323. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_cloud_spaces_response.py +123 -0
  324. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_datasets_response.py +123 -0
  325. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_jobs_response.py +123 -0
  326. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_slurm_jobs_response.py +123 -0
  327. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_snowflake_response.py +123 -0
  328. lightning_sdk/lightning_cloud/openapi/models/{v1_list_lightningapps_v2_response.py → v1_list_jobs_response.py} +31 -31
  329. lightning_sdk/lightning_cloud/openapi/models/v1_list_joinable_organizations_response.py +123 -0
  330. lightning_sdk/lightning_cloud/openapi/models/v1_list_logger_artifact_response.py +123 -0
  331. lightning_sdk/lightning_cloud/openapi/models/v1_list_metrics_streams_response.py +123 -0
  332. lightning_sdk/lightning_cloud/openapi/models/v1_list_multi_machine_job_events_response.py +123 -0
  333. lightning_sdk/lightning_cloud/openapi/models/v1_list_multi_machine_jobs_response.py +123 -0
  334. lightning_sdk/lightning_cloud/openapi/models/v1_list_new_features_for_user_response.py +123 -0
  335. lightning_sdk/lightning_cloud/openapi/models/v1_list_profiler_captures_response.py +123 -0
  336. lightning_sdk/lightning_cloud/openapi/models/v1_list_project_locked_resources_response.py +123 -0
  337. lightning_sdk/lightning_cloud/openapi/models/v1_list_published_cloud_spaces_response.py +3 -29
  338. lightning_sdk/lightning_cloud/openapi/models/v1_list_published_deployment_templates_response.py +175 -0
  339. lightning_sdk/lightning_cloud/openapi/models/v1_list_service_execution_lightningapp_instances_response.py +175 -0
  340. lightning_sdk/lightning_cloud/openapi/models/v1_lit_page.py +27 -1
  341. lightning_sdk/lightning_cloud/openapi/models/v1_lit_registry_project.py +227 -0
  342. lightning_sdk/lightning_cloud/openapi/models/v1_lit_repository.py +279 -0
  343. lightning_sdk/lightning_cloud/openapi/models/v1_locked_resource.py +227 -0
  344. lightning_sdk/lightning_cloud/openapi/models/v1_logger_artifact.py +227 -0
  345. lightning_sdk/lightning_cloud/openapi/models/v1_machines_selector.py +149 -0
  346. lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_request.py +81 -3
  347. lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_response.py +53 -1
  348. lightning_sdk/lightning_cloud/openapi/models/v1_managed_endpoint.py +175 -19
  349. lightning_sdk/lightning_cloud/openapi/models/v1_managed_model.py +305 -0
  350. lightning_sdk/lightning_cloud/openapi/models/v1_managed_model_abilities.py +175 -0
  351. lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +79 -1
  352. lightning_sdk/lightning_cloud/openapi/models/v1_message.py +138 -8
  353. lightning_sdk/lightning_cloud/openapi/models/v1_message_content.py +6 -6
  354. lightning_sdk/lightning_cloud/openapi/models/v1_message_content_type.py +103 -0
  355. lightning_sdk/lightning_cloud/openapi/models/v1_metadata.py +131 -1
  356. lightning_sdk/lightning_cloud/openapi/models/v1_metric_value.py +175 -0
  357. lightning_sdk/lightning_cloud/openapi/models/v1_metrics.py +175 -0
  358. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +799 -0
  359. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_tags.py +201 -0
  360. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_tracker.py +383 -0
  361. lightning_sdk/lightning_cloud/openapi/models/v1_model.py +95 -17
  362. lightning_sdk/lightning_cloud/openapi/models/v1_model_file.py +175 -0
  363. lightning_sdk/lightning_cloud/openapi/models/v1_model_version_archive.py +131 -1
  364. lightning_sdk/lightning_cloud/openapi/models/v1_mount_target.py +201 -0
  365. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job.py +487 -0
  366. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_event.py +331 -0
  367. lightning_sdk/lightning_cloud/openapi/models/{v1_lightningapp_cluster_driver.py → v1_multi_machine_job_event_type.py} +9 -9
  368. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_fault_tolerance.py +149 -0
  369. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_fault_tolerance_strategy.py +105 -0
  370. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_state.py +108 -0
  371. lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_status.py +305 -0
  372. lightning_sdk/lightning_cloud/openapi/models/v1_named_get_logger_metrics.py +123 -0
  373. lightning_sdk/lightning_cloud/openapi/models/v1_new_feature.py +383 -0
  374. lightning_sdk/lightning_cloud/openapi/models/v1_onboarding_event_request.py +175 -0
  375. lightning_sdk/lightning_cloud/openapi/models/v1_onboarding_event_response.py +97 -0
  376. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +209 -1
  377. lightning_sdk/lightning_cloud/openapi/models/v1_parameterization_spec.py +227 -0
  378. lightning_sdk/lightning_cloud/openapi/models/v1_path_telemetry.py +123 -0
  379. lightning_sdk/lightning_cloud/openapi/models/v1_phase_type.py +104 -0
  380. lightning_sdk/lightning_cloud/openapi/models/v1_profiler_capture.py +357 -0
  381. lightning_sdk/lightning_cloud/openapi/models/v1_profiler_enabled_response.py +123 -0
  382. lightning_sdk/lightning_cloud/openapi/models/v1_project.py +131 -1
  383. lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +263 -3
  384. lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +29 -3
  385. lightning_sdk/lightning_cloud/openapi/models/v1_project_storage.py +279 -0
  386. lightning_sdk/lightning_cloud/openapi/models/v1_published_cloud_space_response.py +188 -6
  387. lightning_sdk/lightning_cloud/openapi/models/v1_purchase_capacity_block_response.py +175 -0
  388. lightning_sdk/lightning_cloud/openapi/models/v1_query_param.py +175 -0
  389. lightning_sdk/lightning_cloud/openapi/models/v1_query_result.py +123 -0
  390. lightning_sdk/lightning_cloud/openapi/models/v1_query_result_row.py +123 -0
  391. lightning_sdk/lightning_cloud/openapi/models/v1_refresh_path_response.py +97 -0
  392. lightning_sdk/lightning_cloud/openapi/models/v1_regional_load_balancer.py +149 -0
  393. lightning_sdk/lightning_cloud/openapi/models/v1_report_logs_activity_response.py +97 -0
  394. lightning_sdk/lightning_cloud/openapi/models/v1_request_cluster_access_request.py +175 -0
  395. lightning_sdk/lightning_cloud/openapi/models/v1_request_cluster_access_response.py +97 -0
  396. lightning_sdk/lightning_cloud/openapi/models/{v1_cloud_space_tag.py → v1_resource_tag.py} +18 -18
  397. lightning_sdk/lightning_cloud/openapi/models/{appsv2_id_body.py → v1_resource_visibility.py} +37 -37
  398. lightning_sdk/lightning_cloud/openapi/models/v1_resources.py +37 -11
  399. lightning_sdk/lightning_cloud/openapi/models/v1_restore_deployment_release_response.py +97 -0
  400. lightning_sdk/lightning_cloud/openapi/models/v1_rolling_update_strategy.py +149 -0
  401. lightning_sdk/lightning_cloud/openapi/models/v1_rule_condition.py +29 -3
  402. lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +11 -0
  403. lightning_sdk/lightning_cloud/openapi/models/v1_s3_folder_data_connection.py +123 -0
  404. lightning_sdk/lightning_cloud/openapi/models/v1_search_job_logs_response.py +149 -0
  405. lightning_sdk/lightning_cloud/openapi/models/v1_secret.py +107 -3
  406. lightning_sdk/lightning_cloud/openapi/models/v1_secret_type.py +105 -0
  407. lightning_sdk/lightning_cloud/openapi/models/v1_select.py +149 -0
  408. lightning_sdk/lightning_cloud/openapi/models/v1_server_check_in_response.py +97 -0
  409. lightning_sdk/lightning_cloud/openapi/models/v1_service_artifact.py +201 -0
  410. lightning_sdk/lightning_cloud/openapi/models/v1_service_execution.py +43 -43
  411. lightning_sdk/lightning_cloud/openapi/models/v1_should_start_syncing_response.py +123 -0
  412. lightning_sdk/lightning_cloud/openapi/models/v1_signed_url.py +149 -0
  413. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_job.py +131 -1
  414. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_node.py +53 -1
  415. lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1.py +27 -1
  416. lightning_sdk/lightning_cloud/openapi/models/v1_snowflake_data_connection.py +253 -0
  417. lightning_sdk/lightning_cloud/openapi/models/v1_status_code_telemetry.py +123 -0
  418. lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset.py +253 -0
  419. lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset_type.py +105 -0
  420. lightning_sdk/lightning_cloud/openapi/models/v1_studio_job_app.py +1 -0
  421. lightning_sdk/lightning_cloud/openapi/models/v1_system_info.py +617 -0
  422. lightning_sdk/lightning_cloud/openapi/models/v1_telemetry.py +331 -0
  423. lightning_sdk/lightning_cloud/openapi/models/v1_timestamp_code_telemetry.py +123 -0
  424. lightning_sdk/lightning_cloud/openapi/models/v1_transaction.py +27 -1
  425. lightning_sdk/lightning_cloud/openapi/models/v1_transfer_user_balance_request.py +27 -1
  426. lightning_sdk/lightning_cloud/openapi/models/v1_update_billing_subscription_request.py +27 -1
  427. lightning_sdk/lightning_cloud/openapi/models/v1_update_cluster_accelerators_request.py +149 -0
  428. lightning_sdk/lightning_cloud/openapi/models/v1_update_index_response.py +97 -0
  429. lightning_sdk/lightning_cloud/openapi/models/v1_update_metrics_stream_visibility_response.py +97 -0
  430. lightning_sdk/lightning_cloud/openapi/models/v1_update_model_visibility_response.py +97 -0
  431. lightning_sdk/lightning_cloud/openapi/models/v1_update_shared_metrics_stream_response.py +97 -0
  432. lightning_sdk/lightning_cloud/openapi/models/v1_update_snowflake_query_response.py +97 -0
  433. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +53 -1
  434. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_viewed_new_features_request.py +123 -0
  435. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_viewed_new_features_response.py +97 -0
  436. lightning_sdk/lightning_cloud/openapi/models/v1_upstream_cloud_space.py +97 -19
  437. lightning_sdk/lightning_cloud/openapi/models/v1_upstream_job.py +227 -0
  438. lightning_sdk/lightning_cloud/openapi/models/v1_usage.py +27 -1
  439. lightning_sdk/lightning_cloud/openapi/models/v1_usage_details.py +107 -3
  440. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +1032 -330
  441. lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +45 -45
  442. lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_flow_compute_config.py +29 -29
  443. lightning_sdk/lightning_cloud/openapi/models/v1_validate_assistant_status_response.py +149 -0
  444. lightning_sdk/lightning_cloud/openapi/models/v1_validate_auto_join_domain_response.py +97 -0
  445. lightning_sdk/lightning_cloud/openapi/models/v1_validate_data_connection_response.py +107 -3
  446. lightning_sdk/lightning_cloud/openapi/models/v1_validate_deployment_image_request.py +149 -0
  447. lightning_sdk/lightning_cloud/openapi/models/v1_validate_deployment_image_response.py +97 -0
  448. lightning_sdk/lightning_cloud/openapi/models/v1_validate_managed_endpoint_request.py +175 -0
  449. lightning_sdk/lightning_cloud/openapi/models/v1_validate_managed_endpoint_response.py +123 -0
  450. lightning_sdk/lightning_cloud/openapi/models/v1_validate_managed_model_response.py +123 -0
  451. lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +175 -0
  452. lightning_sdk/lightning_cloud/openapi/models/v1_vultr_direct_v1.py +125 -0
  453. lightning_sdk/lightning_cloud/openapi/models/validate.py +97 -19
  454. lightning_sdk/lightning_cloud/openapi/models/validateautojoindomain_domain_body.py +123 -0
  455. lightning_sdk/lightning_cloud/openapi/models/version_uploads_body.py +123 -0
  456. lightning_sdk/lightning_cloud/rest_client.py +47 -23
  457. lightning_sdk/lightning_cloud/source_code/logs_socket_api.py +1 -1
  458. lightning_sdk/lightning_cloud/source_code/tar.py +1 -3
  459. lightning_sdk/lightning_cloud/utils/data_connection.py +144 -7
  460. lightning_sdk/lit_registry.py +39 -0
  461. lightning_sdk/machine.py +21 -4
  462. lightning_sdk/mmt/__init__.py +4 -0
  463. lightning_sdk/mmt/base.py +326 -0
  464. lightning_sdk/mmt/mmt.py +306 -0
  465. lightning_sdk/mmt/v1.py +209 -0
  466. lightning_sdk/mmt/v2.py +221 -0
  467. lightning_sdk/models.py +153 -0
  468. lightning_sdk/organization.py +1 -1
  469. lightning_sdk/plugin.py +207 -41
  470. lightning_sdk/services/__init__.py +2 -1
  471. lightning_sdk/services/file_endpoint.py +116 -213
  472. lightning_sdk/services/finetune/__init__.py +13 -15
  473. lightning_sdk/services/utilities.py +99 -26
  474. lightning_sdk/status.py +11 -6
  475. lightning_sdk/studio.py +90 -17
  476. lightning_sdk/teamspace.py +240 -12
  477. lightning_sdk/user.py +1 -1
  478. lightning_sdk/utils/__init__.py +0 -0
  479. lightning_sdk/utils/dynamic.py +61 -0
  480. lightning_sdk/utils/enum.py +116 -0
  481. lightning_sdk/{utils.py → utils/resolve.py} +41 -4
  482. lightning_sdk-0.1.47.dist-info/LICENSE +21 -0
  483. {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.47.dist-info}/METADATA +30 -4
  484. {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.47.dist-info}/RECORD +487 -204
  485. {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.47.dist-info}/WHEEL +1 -1
  486. lightning_sdk/lightning_cloud/openapi/models/app_id_releases_body.py +0 -541
  487. lightning_sdk/lightning_cloud/openapi/models/id_endpoint_body.py +0 -409
  488. lightning_sdk/lightning_cloud/openapi/models/id_get_body1.py +0 -333
  489. lightning_sdk/lightning_cloud/openapi/models/project_id_appsv2_body.py +0 -201
  490. lightning_sdk/lightning_cloud/openapi/models/v1_aws_cluster_driver_spec.py +0 -1039
  491. lightning_sdk/lightning_cloud/openapi/models/v1_aws_cluster_secondary_region_spec.py +0 -253
  492. lightning_sdk/lightning_cloud/openapi/models/v1_azure_cluster_driver_spec.py +0 -227
  493. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_driver.py +0 -175
  494. lightning_sdk/lightning_cloud/openapi/models/v1_container_resources.py +0 -201
  495. lightning_sdk/lightning_cloud/openapi/models/v1_eks_custer_driver_status.py +0 -387
  496. lightning_sdk/lightning_cloud/openapi/models/v1_instance_type.py +0 -305
  497. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_cluster_driver.py +0 -359
  498. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_cluster_status.py +0 -279
  499. lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_release.py +0 -697
  500. lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_v2.py +0 -331
  501. lightning_sdk/services/uploader.py +0 -123
  502. {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.47.dist-info}/entry_points.txt +0 -0
  503. {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.47.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,209 @@
1
+ from typing import TYPE_CHECKING, Dict, Optional, Tuple, Union
2
+
3
+ from lightning_sdk.api.mmt_api import MMTApiV1
4
+ from lightning_sdk.job.v1 import _internal_status_to_external_status
5
+ from lightning_sdk.job.work import Work
6
+
7
+ if TYPE_CHECKING:
8
+ from lightning_sdk.machine import Machine
9
+ from lightning_sdk.organization import Organization
10
+ from lightning_sdk.status import Status
11
+ from lightning_sdk.studio import Studio
12
+ from lightning_sdk.teamspace import Teamspace
13
+ from lightning_sdk.user import User
14
+
15
+ from lightning_sdk.mmt.base import _BaseMMT
16
+
17
+
18
+ class _MMTV1(_BaseMMT):
19
+ """V1 Implementation of Multi-Machine Training."""
20
+
21
+ def __init__(
22
+ self,
23
+ name: str,
24
+ teamspace: Union[str, "Teamspace", None] = None,
25
+ org: Union[str, "Organization", None] = None,
26
+ user: Union[str, "User", None] = None,
27
+ *,
28
+ _fetch_job: bool = True,
29
+ ) -> None:
30
+ """Fetch already existing jobs.
31
+
32
+ Args:
33
+ name: the name of the job
34
+ teamspace: the teamspace the job is part of
35
+ org: the name of the organization owning the :param`teamspace` in case it is owned by an org
36
+ user: the name of the user owning the :param`teamspace`
37
+ in case it is owned directly by a user instead of an org.
38
+ """
39
+ self._job_api = MMTApiV1()
40
+ super().__init__(name=name, teamspace=teamspace, org=org, user=user, _fetch_job=_fetch_job)
41
+
42
+ def _submit(
43
+ self,
44
+ num_machines: int,
45
+ machine: "Machine",
46
+ command: Optional[str] = None,
47
+ studio: Optional["Studio"] = None,
48
+ image: Optional[str] = None,
49
+ env: Optional[Dict[str, str]] = None,
50
+ interruptible: bool = False,
51
+ cloud_account: Optional[str] = None,
52
+ image_credentials: Optional[str] = None,
53
+ cloud_account_auth: bool = False,
54
+ artifacts_local: Optional[str] = None,
55
+ artifacts_remote: Optional[str] = None,
56
+ entrypoint: str = "sh -c",
57
+ ) -> "_MMTV1":
58
+ """Submit a new multi-machine job to the Lightning AI platform.
59
+
60
+ Args:
61
+ num_machines: The number of machines to run on.
62
+ machine: The machine type to run the job on. One of {", ".join(_MACHINE_VALUES)}.
63
+ command: The command to run inside your job. Required if using a studio. Optional if using an image.
64
+ If not provided for images, will run the container entrypoint and default command.
65
+ studio: The studio env to run the job with. Mutually exclusive with image.
66
+ image: The docker image to run the job with. Mutually exclusive with studio.
67
+ env: Environment variables to set inside the job.
68
+ interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
69
+ cloud_account: The cloud account to run the job on.
70
+ Defaults to the studio cloud account if running with studio compute env.
71
+ If not provided will fall back to the teamspaces default cloud account.
72
+ image_credentials: The credentials used to pull the image. Required if the image is private.
73
+ This should be the name of the respective credentials secret created on the Lightning AI platform.
74
+ cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
75
+ Required if the registry is part of a cloud provider (e.g. ECR).
76
+ artifacts_local: The path of inside the docker container, you want to persist images from.
77
+ CAUTION: When setting this to "/", it will effectively erase your container.
78
+ Only supported for jobs with a docker image compute environment.
79
+ artifacts_remote: The remote storage to persist your artifacts to.
80
+ Should be of format <CONNECTION_TYPE>:<CONNECTION_NAME>:<PATH_WITHIN_CONNECTION>.
81
+ PATH_WITHIN_CONNECTION hereby is a path relative to the connection's root.
82
+ E.g. efs:data:some-path would result in an EFS connection named `data` and to the path `some-path`
83
+ within it.
84
+ Note that the connection needs to be added to the teamspace already in order for it to be found.
85
+ Only supported for jobs with a docker image compute environment.
86
+ entrypoint: The entrypoint of your docker container. Defaults to `sh -c` which
87
+ just runs the provided command in a standard shell.
88
+ To use the pre-defined entrypoint of the provided image, set this to an empty string.
89
+ Only applicable when submitting docker jobs.
90
+ """
91
+ if studio is None:
92
+ raise ValueError("Studio is required for submitting jobs")
93
+ if image is not None or image_credentials is not None or cloud_account_auth or entrypoint != "sh -c":
94
+ raise ValueError("Image is not supported for submitting jobs")
95
+
96
+ if artifacts_local is not None or artifacts_remote is not None:
97
+ raise ValueError("Specifying how to persist artifacts is not yet supported with jobs")
98
+
99
+ if env is not None:
100
+ raise ValueError("Environment variables are not supported for submitting jobs")
101
+ if command is None:
102
+ raise ValueError("Command is required for submitting multi-machine jobs")
103
+
104
+ _submitted = self._job_api.submit_job(
105
+ name=self._name,
106
+ num_machines=num_machines,
107
+ command=command,
108
+ studio_id=studio._studio.id,
109
+ teamspace_id=self._teamspace.id,
110
+ cloud_account=cloud_account or "",
111
+ machine=machine,
112
+ interruptible=interruptible,
113
+ strategy="parallel",
114
+ )
115
+
116
+ self._name = _submitted.name
117
+ self._job = _submitted
118
+ return self
119
+
120
+ def _update_internal_job(self) -> None:
121
+ try:
122
+ self._job = self._job_api.get_job(self._name, self.teamspace.id)
123
+ except ValueError as e:
124
+ raise ValueError(f"Job {self._name} does not exist in Teamspace {self.teamspace.name}") from e
125
+
126
+ @property
127
+ def machines(self) -> Tuple["Work", ...]:
128
+ """Returns the sub-jobs for each individual instance."""
129
+ works = self._job_api.list_works(self._guaranteed_job.id, self.teamspace.id)
130
+
131
+ return tuple(Work(w.id, self, self.teamspace) for w in works)
132
+
133
+ def stop(self) -> None:
134
+ """Stops the job."""
135
+ self._job_api.stop_job(self._guaranteed_job.id, self.teamspace.id)
136
+
137
+ def delete(self) -> None:
138
+ """Deletes the job.
139
+
140
+ Caution: This also deletes all artifacts and snapshots associated with the job.
141
+ """
142
+ self._job_api.delete_job(self._guaranteed_job.id, self.teamspace.id)
143
+
144
+ @property
145
+ def status(self) -> "Status":
146
+ """The current status of the job."""
147
+ try:
148
+ status = self._job_api.get_job_status(self._job.id, self.teamspace.id)
149
+ return _internal_status_to_external_status(status)
150
+ except Exception:
151
+ raise RuntimeError(
152
+ f"MMT {self._name} does not exist in Teamspace {self.teamspace.name}. Did you delete it?"
153
+ ) from None
154
+
155
+ @property
156
+ def artifact_path(self) -> Optional[str]:
157
+ """Path to the artifacts created by the job within the distributed teamspace filesystem."""
158
+ return f"/teamspace/jobs/{self.name}"
159
+
160
+ @property
161
+ def snapshot_path(self) -> Optional[str]:
162
+ """Path to the studio snapshot used to create the job within the distributed teamspace filesystem."""
163
+ return f"/teamspace/jobs/{self.name}/snapshot"
164
+
165
+ @property
166
+ def machine(self) -> "Machine":
167
+ """Returns the machine type this job is running on."""
168
+ return self.machines[0].machine
169
+
170
+ @property
171
+ def name(self) -> str:
172
+ """The job's name."""
173
+ return self._name
174
+
175
+ @property
176
+ def teamspace(self) -> "Teamspace":
177
+ """The teamspace the job is part of."""
178
+ return self._teamspace
179
+
180
+ @property
181
+ def link(self) -> str:
182
+ return f"https://lightning.ai/{self.teamspace.owner.name}/{self.teamspace.name}/studios/{self._job_api.get_studio_name(self._guaranteed_job)}/app?app_id=mmt&app_tab=Runs&job_name={self.name}"
183
+
184
+ @property
185
+ def image(self) -> Optional[str]:
186
+ """The image used to submit the job."""
187
+ # mmtv1 don't support images, so return None here
188
+ return None
189
+
190
+ @property
191
+ def studio(self) -> Optional["Studio"]:
192
+ """The studio used to submit the job."""
193
+ from lightning_sdk.studio import Studio
194
+
195
+ studio_name = self._job_api.get_studio_name(self._guaranteed_job)
196
+ return Studio(studio_name, teamspace=self.teamspace)
197
+
198
+ @property
199
+ def command(self) -> str:
200
+ """The command the job is running."""
201
+ return self._job_api.get_command(self._guaranteed_job)
202
+
203
+ # the following and functions are solely to make the Work class function
204
+ @property
205
+ def _id(self) -> str:
206
+ return self._guaranteed_job.id
207
+
208
+ def _name_filter(self, name: str) -> str:
209
+ return name.replace("root.", "")
@@ -0,0 +1,221 @@
1
+ from typing import TYPE_CHECKING, Any, Dict, Optional, Tuple, Union
2
+
3
+ from lightning_sdk.api.mmt_api import MMTApiV2
4
+
5
+ if TYPE_CHECKING:
6
+ from lightning_sdk.job.job import Job
7
+ from lightning_sdk.machine import Machine
8
+ from lightning_sdk.organization import Organization
9
+ from lightning_sdk.status import Status
10
+ from lightning_sdk.studio import Studio
11
+ from lightning_sdk.teamspace import Teamspace
12
+ from lightning_sdk.user import User
13
+
14
+ from lightning_sdk.mmt.base import _BaseMMT
15
+
16
+
17
+ class _MMTV2(_BaseMMT):
18
+ """New implementation of Multi-Machine Training."""
19
+
20
+ def __init__(
21
+ self,
22
+ name: str,
23
+ teamspace: Union[str, "Teamspace", None] = None,
24
+ org: Union[str, "Organization", None] = None,
25
+ user: Union[str, "User", None] = None,
26
+ *,
27
+ _fetch_job: bool = True,
28
+ ) -> None:
29
+ """Fetch already existing jobs.
30
+
31
+ Args:
32
+ name: the name of the job
33
+ teamspace: the teamspace the job is part of
34
+ org: the name of the organization owning the :param`teamspace` in case it is owned by an org
35
+ user: the name of the user owning the :param`teamspace`
36
+ in case it is owned directly by a user instead of an org.
37
+ """
38
+ self._job_api = MMTApiV2()
39
+ super().__init__(name=name, teamspace=teamspace, org=org, user=user, _fetch_job=_fetch_job)
40
+
41
+ def _submit(
42
+ self,
43
+ num_machines: int,
44
+ machine: "Machine",
45
+ command: Optional[str] = None,
46
+ studio: Optional["Studio"] = None,
47
+ image: Optional[str] = None,
48
+ env: Optional[Dict[str, str]] = None,
49
+ interruptible: bool = False,
50
+ cloud_account: Optional[str] = None,
51
+ image_credentials: Optional[str] = None,
52
+ cloud_account_auth: bool = False,
53
+ artifacts_local: Optional[str] = None,
54
+ artifacts_remote: Optional[str] = None,
55
+ entrypoint: str = "sh -c",
56
+ ) -> "_MMTV2":
57
+ """Submit a new multi-machine job to the Lightning AI platform.
58
+
59
+ Args:
60
+ num_machines: The number of machines to run on.
61
+ machine: The machine type to run the job on. One of {", ".join(_MACHINE_VALUES)}.
62
+ command: The command to run inside your job. Required if using a studio. Optional if using an image.
63
+ If not provided for images, will run the container entrypoint and default command.
64
+ studio: The studio env to run the job with. Mutually exclusive with image.
65
+ image: The docker image to run the job with. Mutually exclusive with studio.
66
+ env: Environment variables to set inside the job.
67
+ interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
68
+ cloud_account: The cloud account to run the job on.
69
+ Defaults to the studio cloud account if running with studio compute env.
70
+ If not provided will fall back to the teamspaces default cloud account.
71
+ image_credentials: The credentials used to pull the image. Required if the image is private.
72
+ This should be the name of the respective credentials secret created on the Lightning AI platform.
73
+ cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
74
+ Required if the registry is part of a cloud provider (e.g. ECR).
75
+ artifacts_local: The path of inside the docker container, you want to persist images from.
76
+ CAUTION: When setting this to "/", it will effectively erase your container.
77
+ Only supported for jobs with a docker image compute environment.
78
+ artifacts_remote: The remote storage to persist your artifacts to.
79
+ Should be of format <CONNECTION_TYPE>:<CONNECTION_NAME>:<PATH_WITHIN_CONNECTION>.
80
+ PATH_WITHIN_CONNECTION hereby is a path relative to the connection's root.
81
+ E.g. efs:data:some-path would result in an EFS connection named `data` and to the path `some-path`
82
+ within it.
83
+ Note that the connection needs to be added to the teamspace already in order for it to be found.
84
+ Only supported for jobs with a docker image compute environment.
85
+ entrypoint: The entrypoint of your docker container. Defaults to `sh -c` which
86
+ just runs the provided command in a standard shell.
87
+ To use the pre-defined entrypoint of the provided image, set this to an empty string.
88
+ Only applicable when submitting docker jobs.
89
+ """
90
+ # Command is required if Studio is provided to know what to run
91
+ # Image is mutually exclusive with Studio
92
+ # Command is optional for Image
93
+ # Either image or studio must be provided
94
+ if studio is not None:
95
+ studio_id = studio._studio.id
96
+ if image is not None:
97
+ raise ValueError(
98
+ "image and studio are mutually exclusive as both define the environment to run the job in"
99
+ )
100
+ if command is None:
101
+ raise ValueError("command is required when using a studio")
102
+ else:
103
+ studio_id = None
104
+ if image is None:
105
+ raise ValueError("either image or studio must be provided")
106
+ submitted = self._job_api.submit_job(
107
+ name=self.name,
108
+ num_machines=num_machines,
109
+ command=command,
110
+ cloud_account=cloud_account,
111
+ teamspace_id=self._teamspace.id,
112
+ studio_id=studio_id,
113
+ image=image,
114
+ machine=machine,
115
+ interruptible=interruptible,
116
+ env=env,
117
+ image_credentials=image_credentials,
118
+ cloud_account_auth=cloud_account_auth,
119
+ artifacts_local=artifacts_local,
120
+ artifacts_remote=artifacts_remote,
121
+ entrypoint=entrypoint,
122
+ )
123
+ self._job = submitted
124
+ self._name = submitted.name
125
+ return self
126
+
127
+ @property
128
+ def machines(self) -> Tuple["Job", ...]:
129
+ """Returns the sub-jobs for each individual instance."""
130
+ from lightning_sdk.job import Job
131
+
132
+ return tuple(
133
+ Job(name=j.name, teamspace=self.teamspace)
134
+ for j in self._job_api.list_mmt_subjobs(self._guaranteed_job.id, self.teamspace.id)
135
+ )
136
+
137
+ def stop(self) -> None:
138
+ """Stops the job."""
139
+ self._job_api.stop_job(job_id=self._guaranteed_job.id, teamspace_id=self._teamspace.id)
140
+
141
+ def delete(self) -> None:
142
+ """Deletes the job.
143
+
144
+ Caution: This also deletes all artifacts and snapshots associated with the job.
145
+ """
146
+ self._job_api.delete_job(
147
+ job_id=self._guaranteed_job.id,
148
+ teamspace_id=self._teamspace.id,
149
+ )
150
+
151
+ @property
152
+ def _latest_job(self) -> Any:
153
+ """Guarantees to fetch the latest version of a job before returning it."""
154
+ self._update_internal_job()
155
+ return self._job
156
+
157
+ @property
158
+ def status(self) -> "Status":
159
+ """The current status of the job."""
160
+ return self._job_api._job_state_to_external(self._latest_job.state)
161
+
162
+ @property
163
+ def artifact_path(self) -> Optional[str]:
164
+ """Path to the artifacts created by the job within the distributed teamspace filesystem."""
165
+ # TODO: Since grouping for those is not done yet on the BE, we cannot yet have a unified link here
166
+ raise NotImplementedError
167
+
168
+ @property
169
+ def snapshot_path(self) -> Optional[str]:
170
+ """Path to the studio snapshot used to create the job within the distributed teamspace filesystem."""
171
+ # TODO: Since grouping for those is not done yet on the BE, we cannot yet have a unified link here
172
+ raise NotImplementedError
173
+
174
+ @property
175
+ def machine(self) -> "Machine":
176
+ """Returns the machine type this job is running on."""
177
+ return self._job_api._get_job_machine_from_spec(self._guaranteed_job.spec)
178
+
179
+ def _update_internal_job(self) -> None:
180
+ if getattr(self, "_job", None) is None:
181
+ self._job = self._job_api.get_job_by_name(name=self._name, teamspace_id=self._teamspace.id)
182
+ return
183
+
184
+ self._job = self._job_api.get_job(job_id=self._job.id, teamspace_id=self._teamspace.id)
185
+
186
+ @property
187
+ def name(self) -> str:
188
+ """The job's name."""
189
+ return self._name
190
+
191
+ @property
192
+ def teamspace(self) -> "Teamspace":
193
+ """The teamspace the job is part of."""
194
+ return self._teamspace
195
+
196
+ @property
197
+ def link(self) -> str:
198
+ # TODO: Since we don't have a UI for this yet, we can't have a link
199
+ raise NotImplementedError
200
+
201
+ @property
202
+ def image(self) -> Optional[str]:
203
+ """The image used to submit the job."""
204
+ return self._job_api.get_image_name(self._guaranteed_job)
205
+
206
+ @property
207
+ def studio(self) -> Optional["Studio"]:
208
+ """The studio used to submit the job."""
209
+ from lightning_sdk.studio import Studio
210
+
211
+ studio_name = self._job_api.get_studio_name(self._guaranteed_job)
212
+
213
+ # if job was submitted with image, studio will be None
214
+ if not studio_name:
215
+ return None
216
+ return Studio(studio_name, teamspace=self.teamspace)
217
+
218
+ @property
219
+ def command(self) -> str:
220
+ """The command the job is running."""
221
+ return self._job_api.get_command(self._guaranteed_job)
@@ -0,0 +1,153 @@
1
+ import os
2
+ from dataclasses import dataclass
3
+ from pathlib import Path
4
+ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
5
+
6
+ from lightning_sdk.api import OrgApi, TeamspaceApi, UserApi
7
+ from lightning_sdk.lightning_cloud.openapi.models import V1Membership, V1OwnerType
8
+ from lightning_sdk.lightning_cloud.openapi.rest import ApiException
9
+ from lightning_sdk.user import User
10
+ from lightning_sdk.utils.resolve import _get_authed_user
11
+
12
+ if TYPE_CHECKING:
13
+ from lightning_sdk.teamspace import Teamspace
14
+
15
+
16
+ # TODO: Maybe just have a `Model` object?
17
+ @dataclass
18
+ class UploadedModelInfo:
19
+ name: str
20
+ version: str
21
+ teamspace: str
22
+ cloud_account: str
23
+
24
+
25
+ def _get_teamspace_and_path(
26
+ ts: V1Membership, org_api: OrgApi, user_api: UserApi, authed_user: User
27
+ ) -> Tuple[str, Dict[str, Any]]:
28
+ if ts.owner_type == V1OwnerType.ORGANIZATION:
29
+ org = org_api._get_org_by_id(ts.owner_id)
30
+ return f"{org.name}/{ts.name}", {"name": ts.name, "org": org.name}
31
+
32
+ if ts.owner_type == V1OwnerType.USER and ts.owner_id != authed_user.id:
33
+ user = user_api._get_user_by_id(ts.owner_id) # todo: check also the name
34
+ return f"{user.username}/{ts.name}", {"name": ts.name, "user": User(name=user.username)}
35
+
36
+ if ts.owner_type == V1OwnerType.USER:
37
+ return f"{authed_user.name}/{ts.name}", {"name": ts.name, "user": authed_user}
38
+
39
+ raise RuntimeError(f"Unknown organization type {ts.owner_type}")
40
+
41
+
42
+ def _list_teamspaces() -> List[str]:
43
+ org_api = OrgApi()
44
+ user_api = UserApi()
45
+ authed_user = _get_authed_user()
46
+
47
+ return [
48
+ _get_teamspace_and_path(ts, org_api, user_api, authed_user)[0]
49
+ for ts in user_api._get_all_teamspace_memberships("")
50
+ ]
51
+
52
+
53
+ def _get_teamspace(name: str, organization: str) -> "Teamspace":
54
+ """Get a Teamspace object from the SDK."""
55
+ from lightning_sdk.teamspace import Teamspace
56
+
57
+ org_api = OrgApi()
58
+ user_api = UserApi()
59
+ authed_user = _get_authed_user()
60
+
61
+ requested_teamspace = f"{organization}/{name}".lower()
62
+
63
+ for ts in user_api._get_all_teamspace_memberships(""):
64
+ if ts.name != name:
65
+ continue
66
+
67
+ teamspace_path, teamspace = _get_teamspace_and_path(ts, org_api, user_api, authed_user)
68
+ if requested_teamspace == teamspace_path:
69
+ return Teamspace(**teamspace)
70
+
71
+ options = f"{os.linesep}\t".join(_list_teamspaces())
72
+ raise RuntimeError(f"Teamspace `{requested_teamspace}` not found. Available teamspaces: {os.linesep}\t{options}")
73
+
74
+
75
+ def _parse_model_name_and_version(name: str) -> Tuple[str, str, str, str]:
76
+ """Parse the name argument into its components."""
77
+ try:
78
+ org_name, teamspace_name, model_name = name.split("/")
79
+ parts = model_name.split(":")
80
+ if len(parts) == 1:
81
+ return org_name, teamspace_name, parts[0], "latest"
82
+ if len(parts) == 2:
83
+ return org_name, teamspace_name, parts[0], parts[1]
84
+ # The rest of the validation for name and version happens in the backend
85
+ raise ValueError(
86
+ "Model version is expected to be in the format `entity/modelname:version` separated by a"
87
+ f" single colon, but got: {name}"
88
+ )
89
+ except ValueError as err:
90
+ raise ValueError(
91
+ f"Model name must be in the format 'organization/teamspace/model' but you provided '{name}'."
92
+ ) from err
93
+
94
+
95
+ def download_model(
96
+ name: str,
97
+ download_dir: Union[Path, str] = ".",
98
+ progress_bar: bool = True,
99
+ ) -> List[str]:
100
+ """Download a Model.
101
+
102
+ Args:
103
+ name: The name of the Model you want to download.
104
+ This should have the format <ORGANIZATION-NAME>/<TEAMSPACE-NAME>/<MODEL-NAME>.
105
+ download_dir: The directory where the Model should be downloaded.
106
+ progress_bar: Whether to show a progress bar when downloading.
107
+ """
108
+ teamspace_owner_name, teamspace_name, model_name, version = _parse_model_name_and_version(name)
109
+
110
+ download_dir = Path(download_dir)
111
+
112
+ api = TeamspaceApi()
113
+
114
+ try:
115
+ return api.download_model_files(
116
+ name=model_name,
117
+ version=version,
118
+ download_dir=download_dir,
119
+ teamspace_name=teamspace_name,
120
+ teamspace_owner_name=teamspace_owner_name,
121
+ progress_bar=progress_bar,
122
+ )
123
+ except ApiException as e:
124
+ # if we get an error, check if the teamspace actually exists (and print the list)
125
+ # TODO: ideally this would match a specific error about teamspace not being found
126
+ _ = _get_teamspace(name=teamspace_name, organization=teamspace_owner_name)
127
+ raise e
128
+
129
+
130
+ def upload_model(
131
+ name: str,
132
+ path: Union[Path, str] = ".",
133
+ cloud_account: Optional[str] = None,
134
+ progress_bar: bool = True,
135
+ ) -> UploadedModelInfo:
136
+ """Upload a Model.
137
+
138
+ Args:
139
+ name: The name of the Model you want to upload.
140
+ This should have the format <ORGANIZATION-NAME>/<TEAMSPACE-NAME>/<MODEL-NAME>.
141
+ path: The path to the file or directory you want to upload. Defaults to the current directory.
142
+ cloud_account: The name of the cloud account to store the Model in.
143
+ If not provided, the default cloud account for the Teamspace will be used.
144
+ progress_bar: Whether to show a progress bar for the upload.
145
+ """
146
+ org_name, teamspace_name, model_name, _ = _parse_model_name_and_version(name)
147
+ teamspace = _get_teamspace(name=teamspace_name, organization=org_name)
148
+ return teamspace.upload_model(
149
+ path=path,
150
+ name=model_name,
151
+ cloud_account=cloud_account,
152
+ progress_bar=progress_bar,
153
+ )
@@ -2,7 +2,7 @@ from typing import Optional
2
2
 
3
3
  from lightning_sdk.api import OrgApi
4
4
  from lightning_sdk.owner import Owner
5
- from lightning_sdk.utils import _resolve_org_name
5
+ from lightning_sdk.utils.resolve import _resolve_org_name
6
6
 
7
7
 
8
8
  class Organization(Owner):