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,326 @@
1
+ from abc import abstractmethod
2
+ from typing import TYPE_CHECKING, Dict, List, Optional, Protocol, Tuple, Union
3
+
4
+ if TYPE_CHECKING:
5
+ from lightning_sdk.job.base import MachineDict
6
+ from lightning_sdk.machine import Machine
7
+ from lightning_sdk.organization import Organization
8
+ from lightning_sdk.status import Status
9
+ from lightning_sdk.studio import Studio
10
+ from lightning_sdk.teamspace import Teamspace
11
+ from lightning_sdk.user import User
12
+
13
+ from lightning_sdk.job.base import _BaseJob
14
+ from lightning_sdk.utils.resolve import _resolve_deprecated_cluster
15
+
16
+
17
+ class MMTMachine(Protocol):
18
+ """A single machine in multi-machine training."""
19
+
20
+ @property
21
+ def name(self) -> str:
22
+ """The Name of the individual machine. Usually corresponds to the rank."""
23
+ ...
24
+
25
+ @property
26
+ def machine(self) -> "Machine":
27
+ """The actual machine type this node is running on."""
28
+ ...
29
+
30
+ @property
31
+ def artifact_path(self) -> Optional[str]:
32
+ """The path to the artifacts of this job."""
33
+ ...
34
+
35
+ @property
36
+ def status(self) -> "Status":
37
+ """The status of this job."""
38
+ ...
39
+
40
+ @property
41
+ def logs(self) -> str:
42
+ """The logs of the given machine."""
43
+ ...
44
+
45
+ def dict(self) -> "MachineDict":
46
+ """Dict representation of the given machine."""
47
+ ...
48
+
49
+
50
+ class _BaseMMT(_BaseJob):
51
+ """Base interface to all job types."""
52
+
53
+ @classmethod
54
+ def run(
55
+ cls,
56
+ name: str,
57
+ machine: "Machine",
58
+ num_machines: int,
59
+ command: Optional[str] = None,
60
+ studio: Union["Studio", str, None] = None,
61
+ image: Optional[str] = None,
62
+ teamspace: Union[str, "Teamspace", None] = None,
63
+ org: Union[str, "Organization", None] = None,
64
+ user: Union[str, "User", None] = None,
65
+ cloud_account: Optional[str] = None,
66
+ env: Optional[Dict[str, str]] = None,
67
+ interruptible: bool = False,
68
+ image_credentials: Optional[str] = None,
69
+ cloud_account_auth: bool = False,
70
+ artifacts_local: Optional[str] = None,
71
+ artifacts_remote: Optional[str] = None,
72
+ entrypoint: str = "sh -c",
73
+ cluster: Optional[str] = None, # deprecated in favor of cloud_account
74
+ ) -> "_BaseMMT":
75
+ """Run async workloads using a docker image across multiple machines.
76
+
77
+ Args:
78
+ name: The name of the job. Needs to be unique within the teamspace.
79
+ machine: The machine type to run the job on. One of {", ".join(_MACHINE_VALUES)}.
80
+ num_machine: The number of machines to run on.
81
+ command: The command to run inside your job. Required if using a studio. Optional if using an image.
82
+ If not provided for images, will run the container entrypoint and default command.
83
+ studio: The studio env to run the job with. Mutually exclusive with image.
84
+ image: The docker image to run the job with. Mutually exclusive with studio.
85
+ teamspace: The teamspace the job should be associated with. Defaults to the current teamspace.
86
+ org: The organization owning the teamspace (if any). Defaults to the current organization.
87
+ user: The user owning the teamspace (if any). Defaults to the current user.
88
+ cloud_account: The cloud account to run the job on.
89
+ Defaults to the studio cloud account if running with studio compute env.
90
+ If not provided will fall back to the teamspaces default cloud account.
91
+ env: Environment variables to set inside the job.
92
+ interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
93
+ image_credentials: The credentials used to pull the image. Required if the image is private.
94
+ This should be the name of the respective credentials secret created on the Lightning AI platform.
95
+ cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
96
+ Required if the registry is part of a cloud provider (e.g. ECR).
97
+ artifacts_local: The path of inside the docker container, you want to persist images from.
98
+ CAUTION: When setting this to "/", it will effectively erase your container.
99
+ Only supported for jobs with a docker image compute environment.
100
+ artifacts_remote: The remote storage to persist your artifacts to.
101
+ Should be of format <CONNECTION_TYPE>:<CONNECTION_NAME>:<PATH_WITHIN_CONNECTION>.
102
+ PATH_WITHIN_CONNECTION hereby is a path relative to the connection's root.
103
+ E.g. efs:data:some-path would result in an EFS connection named `data` and to the path `some-path`
104
+ within it.
105
+ Note that the connection needs to be added to the teamspace already in order for it to be found.
106
+ Only supported for jobs with a docker image compute environment.
107
+ entrypoint: The entrypoint of your docker container. Defaults to `sh -c` which
108
+ just runs the provided command in a standard shell.
109
+ To use the pre-defined entrypoint of the provided image, set this to an empty string.
110
+ Only applicable when submitting docker jobs.
111
+ """
112
+ from lightning_sdk.studio import Studio
113
+
114
+ cloud_account = _resolve_deprecated_cluster(cloud_account, cluster)
115
+
116
+ if num_machines <= 1:
117
+ raise ValueError("Multi-Machine training cannot be run with less than 2 Machines")
118
+
119
+ if not name:
120
+ raise ValueError("A job needs to have a name!")
121
+
122
+ if image is None:
123
+ if not isinstance(studio, Studio):
124
+ studio = Studio(
125
+ name=studio, teamspace=teamspace, org=org, user=user, cloud_account=cloud_account, create_ok=False
126
+ )
127
+
128
+ # studio is a Studio instance at this point
129
+ if teamspace is None:
130
+ teamspace = studio.teamspace
131
+ else:
132
+ teamspace_name = teamspace if isinstance(teamspace, str) else teamspace.name
133
+
134
+ if studio.teamspace.name != teamspace_name:
135
+ raise ValueError(
136
+ "Studio teamspace does not match provided teamspace. "
137
+ "Can only run jobs with Studio envs in the teamspace of that Studio."
138
+ )
139
+
140
+ if cloud_account is None:
141
+ cloud_account = studio.cloud_account
142
+
143
+ if cloud_account != studio.cloud_account:
144
+ raise ValueError(
145
+ "Studio cloud_account does not match provided cloud_account. "
146
+ "Can only run jobs with Studio envs in the same cloud_account."
147
+ )
148
+
149
+ if image_credentials is not None:
150
+ raise ValueError("image_credentials is only supported when using a custom image")
151
+
152
+ if cloud_account_auth:
153
+ raise ValueError("cloud_account_auth is only supported when using a custom image")
154
+
155
+ if artifacts_local is not None or artifacts_remote is not None:
156
+ raise ValueError(
157
+ "Specifying artifacts persistence is supported for docker images only. "
158
+ "Other jobs will automatically persist artifacts to the teamspace distributed filesystem."
159
+ )
160
+
161
+ if entrypoint != "sh -c":
162
+ raise ValueError("Specifying the entrypoint has no effect for jobs with Studio envs.")
163
+
164
+ else:
165
+ if studio is not None:
166
+ raise RuntimeError(
167
+ "image and studio are mutually exclusive as both define the environment to run the job in"
168
+ )
169
+
170
+ # they either need to specified both or none of them
171
+ if bool(artifacts_local) != bool(artifacts_remote):
172
+ raise ValueError("Artifact persistence requires both artifacts_local and artifacts_remote to be set")
173
+
174
+ if artifacts_remote and len(artifacts_remote.split(":")) != 3:
175
+ raise ValueError(
176
+ "Artifact persistence requires exactly three arguments separated by colon of kind "
177
+ f"<CONNECTION_TYPE>:<CONNECTION_NAME>:<PATH_WITHIN_CONNECTION>, got {artifacts_local}"
178
+ )
179
+
180
+ inst = cls(name=name, teamspace=teamspace, org=org, user=user, _fetch_job=False)
181
+ inst._submit(
182
+ num_machines=num_machines,
183
+ machine=machine,
184
+ cloud_account=cloud_account,
185
+ command=command,
186
+ studio=studio,
187
+ image=image,
188
+ env=env,
189
+ interruptible=interruptible,
190
+ image_credentials=image_credentials,
191
+ cloud_account_auth=cloud_account_auth,
192
+ artifacts_local=artifacts_local,
193
+ artifacts_remote=artifacts_remote,
194
+ entrypoint=entrypoint,
195
+ )
196
+ return inst
197
+
198
+ @abstractmethod
199
+ def _submit(
200
+ self,
201
+ num_machines: int,
202
+ machine: "Machine",
203
+ command: Optional[str] = None,
204
+ studio: Optional["Studio"] = None,
205
+ image: Optional[str] = None,
206
+ env: Optional[Dict[str, str]] = None,
207
+ interruptible: bool = False,
208
+ cloud_account: Optional[str] = None,
209
+ image_credentials: Optional[str] = None,
210
+ cloud_account_auth: bool = False,
211
+ artifacts_local: Optional[str] = None,
212
+ artifacts_remote: Optional[str] = None,
213
+ entrypoint: str = "sh -c",
214
+ ) -> None:
215
+ """Submit a new multi-machine job to the Lightning AI platform.
216
+
217
+ Args:
218
+ num_machines: The number of machines to run on.
219
+ machine: The machine type to run the job on. One of {", ".join(_MACHINE_VALUES)}.
220
+ command: The command to run inside your job. Required if using a studio. Optional if using an image.
221
+ If not provided for images, will run the container entrypoint and default command.
222
+ studio: The studio env to run the job with. Mutually exclusive with image.
223
+ image: The docker image to run the job with. Mutually exclusive with studio.
224
+ env: Environment variables to set inside the job.
225
+ interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
226
+ cloud_account: The cloud account to run the job on.
227
+ Defaults to the studio cloud account if running with studio compute env.
228
+ If not provided will fall back to the teamspaces default cloud account.
229
+ image_credentials: The credentials used to pull the image. Required if the image is private.
230
+ This should be the name of the respective credentials secret created on the Lightning AI platform.
231
+ cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
232
+ Required if the registry is part of a cloud provider (e.g. ECR).
233
+ artifacts_local: The path of inside the docker container, you want to persist images from.
234
+ CAUTION: When setting this to "/", it will effectively erase your container.
235
+ Only supported for jobs with a docker image compute environment.
236
+ artifacts_remote: The remote storage to persist your artifacts to.
237
+ Should be of format <CONNECTION_TYPE>:<CONNECTION_NAME>:<PATH_WITHIN_CONNECTION>.
238
+ PATH_WITHIN_CONNECTION hereby is a path relative to the connection's root.
239
+ E.g. efs:data:some-path would result in an EFS connection named `data` and to the path `some-path`
240
+ within it.
241
+ Note that the connection needs to be added to the teamspace already in order for it to be found.
242
+ Only supported for jobs with a docker image compute environment.
243
+ entrypoint: The entrypoint of your docker container. Defaults to sh -c.
244
+ To use the pre-defined entrypoint of the provided image, set this to an empty string.
245
+ Only applicable when submitting docker jobs.
246
+ """
247
+
248
+ @property
249
+ @abstractmethod
250
+ def machines(self) -> Tuple[MMTMachine, ...]:
251
+ """Returns the sub-jobs for each individual instance."""
252
+
253
+ @property
254
+ @abstractmethod
255
+ def machine(self) -> "Machine":
256
+ """Returns the machine type this job is running on."""
257
+
258
+ @abstractmethod
259
+ def stop(self) -> None:
260
+ """Stops the job."""
261
+
262
+ @abstractmethod
263
+ def delete(self) -> None:
264
+ """Deletes the job.
265
+
266
+ Caution: This also deletes all artifacts and snapshots associated with the job.
267
+ """
268
+
269
+ @property
270
+ @abstractmethod
271
+ def status(self) -> "Status":
272
+ """The current status of the job."""
273
+
274
+ @property
275
+ @abstractmethod
276
+ def artifact_path(self) -> Optional[str]:
277
+ """Path to the artifacts created by the job within the distributed teamspace filesystem."""
278
+
279
+ @property
280
+ @abstractmethod
281
+ def snapshot_path(self) -> Optional[str]:
282
+ """Path to the studio snapshot used to create the job within the distributed teamspace filesystem."""
283
+
284
+ @property
285
+ def share_path(self) -> Optional[str]:
286
+ """Path to the jobs share path."""
287
+ return None
288
+
289
+ @property
290
+ def name(self) -> str:
291
+ """The job's name."""
292
+ return self._name
293
+
294
+ @property
295
+ def teamspace(self) -> "Teamspace":
296
+ """The teamspace the job is part of."""
297
+ return self._teamspace
298
+
299
+ @property
300
+ def logs(self) -> str:
301
+ """Logs of the rank 0 machine."""
302
+ return self.machines[0].logs
303
+
304
+ def dict(
305
+ self
306
+ ) -> Dict[str, Union[str, "Studio", "Status", "Machine", None, List[Dict[str, Union[str, "Status", "Machine"]]]]]:
307
+ """Dict representation of this job."""
308
+ studio = self.studio
309
+
310
+ return {
311
+ "name": self.name,
312
+ "teamspace": f"{self.teamspace.owner.name}/{self.teamspace.name}",
313
+ "studio": studio.name if studio else None,
314
+ "image": self.image,
315
+ "command": self.command,
316
+ "status": self.status,
317
+ "machine": self.machine,
318
+ "machines": [
319
+ {"name": d["name"], "status": d["status"], "machine": d["machine"]}
320
+ for d in (x.dict() for x in self.machines)
321
+ ],
322
+ }
323
+
324
+ @abstractmethod
325
+ def _update_internal_job(self) -> None:
326
+ pass
@@ -0,0 +1,306 @@
1
+ from contextlib import suppress
2
+ from functools import lru_cache
3
+ from typing import TYPE_CHECKING, Any, Dict, Optional, Tuple, Union
4
+
5
+ from lightning_sdk.api.user_api import UserApi
6
+ from lightning_sdk.job.job import _has_jobs_v2
7
+ from lightning_sdk.mmt.base import MMTMachine, _BaseMMT
8
+ from lightning_sdk.mmt.v1 import _MMTV1
9
+ from lightning_sdk.mmt.v2 import _MMTV2
10
+ from lightning_sdk.utils.resolve import _setup_logger
11
+
12
+ if TYPE_CHECKING:
13
+ from lightning_sdk.machine import Machine
14
+ from lightning_sdk.organization import Organization
15
+ from lightning_sdk.status import Status
16
+ from lightning_sdk.studio import Studio
17
+ from lightning_sdk.teamspace import Teamspace
18
+ from lightning_sdk.user import User
19
+
20
+ _logger = _setup_logger(__name__)
21
+
22
+
23
+ @lru_cache(maxsize=None)
24
+ def _has_mmt_v2() -> bool:
25
+ # users need both mmtv2 and jobsv2 flags in order for mmtv2 to work correctly
26
+ if not _has_jobs_v2():
27
+ return False
28
+
29
+ api = UserApi()
30
+ try:
31
+ return api._get_feature_flags().mmt_v2
32
+ except Exception:
33
+ return False
34
+
35
+
36
+ class MMT(_BaseMMT):
37
+ """Class to submit and manage multi-machine jobs on the Lightning AI Platform."""
38
+
39
+ _force_v1: (
40
+ bool
41
+ ) = False # required for studio plugin still working correctly as v2 currently does not support the studio env
42
+
43
+ def __init__(
44
+ self,
45
+ name: str,
46
+ teamspace: Union[str, "Teamspace", None] = None,
47
+ org: Union[str, "Organization", None] = None,
48
+ user: Union[str, "User", None] = None,
49
+ *,
50
+ _fetch_job: bool = True,
51
+ ) -> None:
52
+ """Fetch already existing jobs.
53
+
54
+ Args:
55
+ name: the name of the job
56
+ teamspace: the teamspace the job is part of
57
+ org: the name of the organization owning the :param`teamspace` in case it is owned by an org
58
+ user: the name of the user owning the :param`teamspace`
59
+ in case it is owned directly by a user instead of an org.
60
+ """
61
+ internal_mmt_cls = _MMTV2 if _has_mmt_v2() and not self._force_v1 else _MMTV1
62
+
63
+ self._internal_mmt = internal_mmt_cls(
64
+ name=name,
65
+ teamspace=teamspace,
66
+ org=org,
67
+ user=user,
68
+ _fetch_job=_fetch_job,
69
+ )
70
+
71
+ @classmethod
72
+ def run(
73
+ cls,
74
+ name: str,
75
+ num_machines: int,
76
+ machine: "Machine",
77
+ command: Optional[str] = None,
78
+ studio: Union["Studio", str, None] = None,
79
+ image: Union[str, None] = None,
80
+ teamspace: Union[str, "Teamspace", None] = None,
81
+ org: Union[str, "Organization", None] = None,
82
+ user: Union[str, "User", None] = None,
83
+ cloud_account: Optional[str] = None,
84
+ env: Optional[Dict[str, str]] = None,
85
+ interruptible: bool = False,
86
+ image_credentials: Optional[str] = None,
87
+ cloud_account_auth: bool = False,
88
+ artifacts_local: Optional[str] = None,
89
+ artifacts_remote: Optional[str] = None,
90
+ entrypoint: str = "sh -c",
91
+ cluster: Optional[str] = None, # deprecated in favor of cloud_account
92
+ ) -> "MMT":
93
+ """Run async workloads using a docker image across multiple machines.
94
+
95
+ Args:
96
+ name: The name of the job. Needs to be unique within the teamspace.
97
+ machine: The machine type to run the job on. One of {", ".join(_MACHINE_VALUES)}.
98
+ num_machine: The number of machines to run on.
99
+ command: The command to run inside your job. Required if using a studio. Optional if using an image.
100
+ If not provided for images, will run the container entrypoint and default command.
101
+ studio: The studio env to run the job with. Mutually exclusive with image.
102
+ image: The docker image to run the job with. Mutually exclusive with studio.
103
+ teamspace: The teamspace the job should be associated with. Defaults to the current teamspace.
104
+ org: The organization owning the teamspace (if any). Defaults to the current organization.
105
+ user: The user owning the teamspace (if any). Defaults to the current user.
106
+ cloud_account: The cloud account to run the job on.
107
+ Defaults to the studio cloud account if running with studio compute env.
108
+ If not provided will fall back to the teamspaces default cloud account.
109
+ env: Environment variables to set inside the job.
110
+ interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
111
+ image_credentials: The credentials used to pull the image. Required if the image is private.
112
+ This should be the name of the respective credentials secret created on the Lightning AI platform.
113
+ cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
114
+ Required if the registry is part of a cloud provider (e.g. ECR).
115
+ artifacts_local: The path of inside the docker container, you want to persist images from.
116
+ CAUTION: When setting this to "/", it will effectively erase your container.
117
+ Only supported for jobs with a docker image compute environment.
118
+ artifacts_remote: The remote storage to persist your artifacts to.
119
+ Should be of format <CONNECTION_TYPE>:<CONNECTION_NAME>:<PATH_WITHIN_CONNECTION>.
120
+ PATH_WITHIN_CONNECTION hereby is a path relative to the connection's root.
121
+ E.g. efs:data:some-path would result in an EFS connection named `data` and to the path `some-path`
122
+ within it.
123
+ Note that the connection needs to be added to the teamspace already in order for it to be found.
124
+ Only supported for jobs with a docker image compute environment.
125
+ entrypoint: The entrypoint of your docker container. Defaults to sh -c.
126
+ To use the pre-defined entrypoint of the provided image, set this to an empty string.
127
+ Only applicable when submitting docker jobs.
128
+ """
129
+ ret_val = super().run(
130
+ name=name,
131
+ num_machines=num_machines,
132
+ machine=machine,
133
+ command=command,
134
+ studio=studio,
135
+ image=image,
136
+ teamspace=teamspace,
137
+ org=org,
138
+ user=user,
139
+ cloud_account=cloud_account,
140
+ env=env,
141
+ interruptible=interruptible,
142
+ image_credentials=image_credentials,
143
+ cloud_account_auth=cloud_account_auth,
144
+ artifacts_local=artifacts_local,
145
+ artifacts_remote=artifacts_remote,
146
+ cluster=cluster, # deprecated in favor of cloud_account
147
+ )
148
+ # required for typing with "MMT"
149
+ assert isinstance(ret_val, cls)
150
+
151
+ msg = "Multi-Machine Job was successfully launched."
152
+
153
+ with suppress(NotImplementedError):
154
+ msg += f" View it at {ret_val.link}"
155
+
156
+ _logger.info(msg)
157
+ return ret_val
158
+
159
+ def _submit(
160
+ self,
161
+ num_machines: int,
162
+ machine: "Machine",
163
+ command: Optional[str] = None,
164
+ studio: Optional["Studio"] = None,
165
+ image: Optional[str] = None,
166
+ env: Optional[Dict[str, str]] = None,
167
+ interruptible: bool = False,
168
+ cloud_account: Optional[str] = None,
169
+ image_credentials: Optional[str] = None,
170
+ cloud_account_auth: bool = False,
171
+ artifacts_local: Optional[str] = None,
172
+ artifacts_remote: Optional[str] = None,
173
+ entrypoint: str = "sh -c",
174
+ ) -> "MMT":
175
+ """Submit a new multi-machine job to the Lightning AI platform.
176
+
177
+ Args:
178
+ num_machines: The number of machines to run on.
179
+ machine: The machine type to run the job on. One of {", ".join(_MACHINE_VALUES)}.
180
+ command: The command to run inside your job. Required if using a studio. Optional if using an image.
181
+ If not provided for images, will run the container entrypoint and default command.
182
+ studio: The studio env to run the job with. Mutually exclusive with image.
183
+ image: The docker image to run the job with. Mutually exclusive with studio.
184
+ env: Environment variables to set inside the job.
185
+ interruptible: Whether the job should run on interruptible instances. They are cheaper but can be preempted.
186
+ cloud_account: The cloud account to run the job on.
187
+ Defaults to the studio cloud account if running with studio compute env.
188
+ If not provided will fall back to the teamspaces default cloud account.
189
+ image_credentials: The credentials used to pull the image. Required if the image is private.
190
+ This should be the name of the respective credentials secret created on the Lightning AI platform.
191
+ cloud_account_auth: Whether to authenticate with the cloud account to pull the image.
192
+ Required if the registry is part of a cloud provider (e.g. ECR).
193
+ artifacts_local: The path of inside the docker container, you want to persist images from.
194
+ CAUTION: When setting this to "/", it will effectively erase your container.
195
+ Only supported for jobs with a docker image compute environment.
196
+ artifacts_remote: The remote storage to persist your artifacts to.
197
+ Should be of format <CONNECTION_TYPE>:<CONNECTION_NAME>:<PATH_WITHIN_CONNECTION>.
198
+ PATH_WITHIN_CONNECTION hereby is a path relative to the connection's root.
199
+ E.g. efs:data:some-path would result in an EFS connection named `data` and to the path `some-path`
200
+ within it.
201
+ Note that the connection needs to be added to the teamspace already in order for it to be found.
202
+ Only supported for jobs with a docker image compute environment.
203
+ entrypoint: The entrypoint of your docker container. Defaults to `sh -c` which
204
+ just runs the provided command in a standard shell.
205
+ To use the pre-defined entrypoint of the provided image, set this to an empty string.
206
+ Only applicable when submitting docker jobs.
207
+ """
208
+ self._job = self._internal_mmt._submit(
209
+ num_machines=num_machines,
210
+ machine=machine,
211
+ cloud_account=cloud_account,
212
+ command=command,
213
+ studio=studio,
214
+ image=image,
215
+ env=env,
216
+ interruptible=interruptible,
217
+ image_credentials=image_credentials,
218
+ cloud_account_auth=cloud_account_auth,
219
+ artifacts_local=artifacts_local,
220
+ artifacts_remote=artifacts_remote,
221
+ )
222
+ return self
223
+
224
+ def stop(self) -> None:
225
+ """Stops the job."""
226
+ return self._internal_mmt.stop()
227
+
228
+ def delete(self) -> None:
229
+ """Deletes the job.
230
+
231
+ Caution: This also deletes all artifacts and snapshots associated with the job.
232
+ """
233
+ return self._internal_mmt.delete()
234
+
235
+ @property
236
+ def status(self) -> "Status":
237
+ """The current status of the job (accumulated over all machines)."""
238
+ return self._internal_mmt.status
239
+
240
+ @property
241
+ def machines(self) -> Tuple[MMTMachine, ...]:
242
+ """Returns the sub-jobs for each individual instance."""
243
+ return self._internal_mmt.machines
244
+
245
+ @property
246
+ def machine(self) -> "Machine":
247
+ """Returns the machine type this job is running on."""
248
+ return self._internal_mmt.machine
249
+
250
+ @property
251
+ def artifact_path(self) -> Optional[str]:
252
+ """Path to the artifacts created by the job within the distributed teamspace filesystem."""
253
+ return self._internal_mmt.artifact_path
254
+
255
+ @property
256
+ def snapshot_path(self) -> Optional[str]:
257
+ """Path to the studio snapshot used to create the job within the distributed teamspace filesystem."""
258
+ return self._internal_mmt.snapshot_path
259
+
260
+ @property
261
+ def share_path(self) -> Optional[str]:
262
+ """Path to the jobs share path."""
263
+ return None
264
+
265
+ def _update_internal_job(self) -> None:
266
+ return self._internal_mmt._update_internal_job()
267
+
268
+ @property
269
+ def name(self) -> str:
270
+ """The job's name."""
271
+ return self._internal_mmt.name
272
+
273
+ @property
274
+ def teamspace(self) -> "Teamspace":
275
+ """The teamspace the job is part of."""
276
+ return self._internal_mmt._teamspace
277
+
278
+ @property
279
+ def link(self) -> str:
280
+ return self._internal_mmt.link
281
+
282
+ @property
283
+ def studio(self) -> Optional["Studio"]:
284
+ """The studio used to submit the MMT."""
285
+ return self._internal_mmt.studio
286
+
287
+ @property
288
+ def image(self) -> Optional[str]:
289
+ """The image used to submit the MMT."""
290
+ return self._internal_mmt.image
291
+
292
+ @property
293
+ def command(self) -> str:
294
+ """The command the MMT is running."""
295
+ return self._internal_mmt.command
296
+
297
+ def __getattr__(self, key: str) -> Any:
298
+ """Forward the attribute lookup to the internal job implementation."""
299
+ try:
300
+ return getattr(super(), key)
301
+ except AttributeError:
302
+ return getattr(self._internal_mmt, key)
303
+
304
+ @property
305
+ def _guaranteed_job(self) -> Any:
306
+ return self._internal_mmt._guaranteed_job