lightning-sdk 2025.8.6rc2__py3-none-any.whl → 2025.11.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. lightning_sdk/__init__.py +13 -7
  2. lightning_sdk/__version__.py +3 -0
  3. lightning_sdk/agents.py +2 -1
  4. lightning_sdk/ai_hub.py +2 -1
  5. lightning_sdk/api/__init__.py +2 -0
  6. lightning_sdk/api/base_studio_api.py +13 -9
  7. lightning_sdk/api/cloud_account_api.py +31 -10
  8. lightning_sdk/api/deployment_api.py +27 -1
  9. lightning_sdk/api/job_api.py +16 -12
  10. lightning_sdk/api/license_api.py +26 -59
  11. lightning_sdk/api/llm_api.py +25 -2
  12. lightning_sdk/api/mmt_api.py +5 -2
  13. lightning_sdk/api/studio_api.py +252 -55
  14. lightning_sdk/api/teamspace_api.py +106 -30
  15. lightning_sdk/api/user_api.py +56 -2
  16. lightning_sdk/api/utils.py +108 -18
  17. lightning_sdk/base_studio.py +51 -27
  18. lightning_sdk/cli/__init__.py +1 -0
  19. lightning_sdk/cli/base_studio/__init__.py +10 -0
  20. lightning_sdk/cli/base_studio/list.py +43 -0
  21. lightning_sdk/cli/config/__init__.py +14 -0
  22. lightning_sdk/cli/config/get.py +57 -0
  23. lightning_sdk/cli/config/set.py +92 -0
  24. lightning_sdk/cli/config/show.py +9 -0
  25. lightning_sdk/cli/entrypoint.py +71 -71
  26. lightning_sdk/cli/groups.py +56 -0
  27. lightning_sdk/cli/job/__init__.py +7 -0
  28. lightning_sdk/cli/{clusters_menu.py → legacy/clusters_menu.py} +9 -6
  29. lightning_sdk/cli/{configure.py → legacy/configure.py} +2 -2
  30. lightning_sdk/cli/{connect.py → legacy/connect.py} +2 -2
  31. lightning_sdk/cli/{create.py → legacy/create.py} +12 -14
  32. lightning_sdk/cli/{delete.py → legacy/delete.py} +5 -5
  33. lightning_sdk/cli/legacy/deploy/__init__.py +0 -0
  34. lightning_sdk/cli/{deploy → legacy/deploy}/_auth.py +5 -6
  35. lightning_sdk/cli/{deploy → legacy/deploy}/devbox.py +8 -2
  36. lightning_sdk/cli/{deploy → legacy/deploy}/serve.py +19 -8
  37. lightning_sdk/cli/{download.py → legacy/download.py} +14 -15
  38. lightning_sdk/cli/legacy/entrypoint.py +110 -0
  39. lightning_sdk/cli/{generate.py → legacy/generate.py} +1 -1
  40. lightning_sdk/cli/{inspection.py → legacy/inspection.py} +1 -1
  41. lightning_sdk/cli/{job_and_mmt_action.py → legacy/job_and_mmt_action.py} +6 -6
  42. lightning_sdk/cli/{jobs_menu.py → legacy/jobs_menu.py} +1 -1
  43. lightning_sdk/cli/{list.py → legacy/list.py} +12 -13
  44. lightning_sdk/cli/{mmts_menu.py → legacy/mmts_menu.py} +1 -1
  45. lightning_sdk/cli/{open.py → legacy/open.py} +4 -4
  46. lightning_sdk/cli/{start.py → legacy/start.py} +1 -0
  47. lightning_sdk/cli/{stop.py → legacy/stop.py} +1 -1
  48. lightning_sdk/cli/{switch.py → legacy/switch.py} +1 -0
  49. lightning_sdk/cli/{teamspace_menu.py → legacy/teamspace_menu.py} +1 -1
  50. lightning_sdk/cli/{upload.py → legacy/upload.py} +7 -8
  51. lightning_sdk/cli/license/__init__.py +14 -0
  52. lightning_sdk/cli/license/get.py +15 -0
  53. lightning_sdk/cli/license/list.py +45 -0
  54. lightning_sdk/cli/license/set.py +13 -0
  55. lightning_sdk/cli/mmt/__init__.py +7 -0
  56. lightning_sdk/cli/studio/__init__.py +24 -0
  57. lightning_sdk/cli/studio/connect.py +139 -0
  58. lightning_sdk/cli/studio/create.py +96 -0
  59. lightning_sdk/cli/studio/delete.py +49 -0
  60. lightning_sdk/cli/studio/list.py +85 -0
  61. lightning_sdk/cli/studio/ssh.py +64 -0
  62. lightning_sdk/cli/studio/start.py +115 -0
  63. lightning_sdk/cli/studio/stop.py +45 -0
  64. lightning_sdk/cli/studio/switch.py +66 -0
  65. lightning_sdk/cli/utils/__init__.py +7 -0
  66. lightning_sdk/cli/utils/cloud_account_map.py +10 -0
  67. lightning_sdk/cli/utils/get_base_studio.py +24 -0
  68. lightning_sdk/cli/utils/handle_machine_and_gpus_args.py +69 -0
  69. lightning_sdk/cli/utils/logging.py +122 -0
  70. lightning_sdk/cli/utils/owner_selection.py +110 -0
  71. lightning_sdk/cli/utils/resolve.py +28 -0
  72. lightning_sdk/cli/utils/richt_print.py +35 -0
  73. lightning_sdk/cli/utils/save_to_config.py +27 -0
  74. lightning_sdk/cli/utils/ssh_connection.py +59 -0
  75. lightning_sdk/cli/utils/studio_selection.py +113 -0
  76. lightning_sdk/cli/utils/teamspace_selection.py +125 -0
  77. lightning_sdk/cli/vm/__init__.py +20 -0
  78. lightning_sdk/cli/vm/create.py +33 -0
  79. lightning_sdk/cli/vm/delete.py +25 -0
  80. lightning_sdk/cli/vm/list.py +30 -0
  81. lightning_sdk/cli/vm/ssh.py +31 -0
  82. lightning_sdk/cli/vm/start.py +60 -0
  83. lightning_sdk/cli/vm/stop.py +25 -0
  84. lightning_sdk/cli/vm/switch.py +38 -0
  85. lightning_sdk/constants.py +1 -0
  86. lightning_sdk/deployment/__init__.py +2 -0
  87. lightning_sdk/deployment/deployment.py +17 -2
  88. lightning_sdk/helpers.py +56 -37
  89. lightning_sdk/job/base.py +21 -6
  90. lightning_sdk/job/job.py +13 -0
  91. lightning_sdk/job/v1.py +11 -0
  92. lightning_sdk/job/v2.py +12 -0
  93. lightning_sdk/lightning_cloud/login.py +320 -10
  94. lightning_sdk/lightning_cloud/openapi/__init__.py +113 -3
  95. lightning_sdk/lightning_cloud/openapi/api/__init__.py +3 -0
  96. lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +713 -75
  97. lightning_sdk/lightning_cloud/openapi/api/auth_service_api.py +376 -0
  98. lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +191 -1
  99. lightning_sdk/lightning_cloud/openapi/api/cloud_space_environment_template_service_api.py +5 -1
  100. lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +420 -0
  101. lightning_sdk/lightning_cloud/openapi/api/cloudy_service_api.py +0 -97
  102. lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +420 -0
  103. lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +101 -0
  104. lightning_sdk/lightning_cloud/openapi/api/incidents_service_api.py +1058 -0
  105. lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +121 -0
  106. lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +1742 -94
  107. lightning_sdk/lightning_cloud/openapi/api/markets_service_api.py +145 -0
  108. lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +4 -4
  109. lightning_sdk/lightning_cloud/openapi/api/product_license_service_api.py +108 -108
  110. lightning_sdk/lightning_cloud/openapi/api/projects_service_api.py +105 -0
  111. lightning_sdk/lightning_cloud/openapi/api/schedules_service_api.py +347 -0
  112. lightning_sdk/lightning_cloud/openapi/api/sdk_command_history_service_api.py +141 -0
  113. lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +761 -1
  114. lightning_sdk/lightning_cloud/openapi/configuration.py +3 -19
  115. lightning_sdk/lightning_cloud/openapi/models/__init__.py +110 -3
  116. lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +15 -15
  117. lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_visibility_body.py +27 -1
  118. lightning_sdk/lightning_cloud/openapi/models/cluster_id_kubernetestemplates_body.py +201 -0
  119. lightning_sdk/lightning_cloud/openapi/models/cluster_id_metrics_body.py +131 -1
  120. lightning_sdk/lightning_cloud/openapi/models/create.py +27 -1
  121. lightning_sdk/lightning_cloud/openapi/models/create_machine_request_represents_the_request_to_create_a_machine.py +461 -0
  122. lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +27 -1
  123. lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +105 -1
  124. lightning_sdk/lightning_cloud/openapi/models/externalv1_user_status.py +27 -1
  125. lightning_sdk/lightning_cloud/openapi/models/id_codeconfig_body.py +3 -81
  126. lightning_sdk/lightning_cloud/openapi/models/id_fork_body1.py +27 -1
  127. lightning_sdk/lightning_cloud/openapi/models/id_render_body.py +123 -0
  128. lightning_sdk/lightning_cloud/openapi/models/id_sleepconfig_body.py +175 -0
  129. lightning_sdk/lightning_cloud/openapi/models/id_transfer_body.py +53 -1
  130. lightning_sdk/lightning_cloud/openapi/models/incident_id_messages_body.py +123 -0
  131. lightning_sdk/lightning_cloud/openapi/models/incidents_id_body.py +279 -0
  132. lightning_sdk/lightning_cloud/openapi/models/job_id_reportroutingtelemetry_body.py +123 -0
  133. lightning_sdk/lightning_cloud/openapi/models/kubernetestemplates_id_body.py +201 -0
  134. lightning_sdk/lightning_cloud/openapi/models/license_key_validate_body.py +123 -0
  135. lightning_sdk/lightning_cloud/openapi/models/message_id_actions_body.py +201 -0
  136. lightning_sdk/lightning_cloud/openapi/models/messages_message_id_body.py +123 -0
  137. lightning_sdk/lightning_cloud/openapi/models/metricsstream_create_body.py +27 -1
  138. lightning_sdk/lightning_cloud/openapi/models/models_model_id_body.py +109 -31
  139. lightning_sdk/lightning_cloud/openapi/models/models_model_id_body1.py +149 -0
  140. lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +53 -1
  141. lightning_sdk/lightning_cloud/openapi/models/project_id_storage_body.py +27 -1
  142. lightning_sdk/lightning_cloud/openapi/models/project_id_storagetransfers_body.py +175 -0
  143. lightning_sdk/lightning_cloud/openapi/models/project_tab_management_messages.py +123 -0
  144. lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +79 -1
  145. lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +41 -15
  146. lightning_sdk/lightning_cloud/openapi/models/storagetransfers_validate_body.py +149 -0
  147. lightning_sdk/lightning_cloud/openapi/models/update1.py +27 -1
  148. lightning_sdk/lightning_cloud/openapi/models/uploads_upload_id_body1.py +27 -1
  149. lightning_sdk/lightning_cloud/openapi/models/user_id_affiliatelinks_body.py +107 -3
  150. lightning_sdk/lightning_cloud/openapi/models/v1_abort_storage_transfer_response.py +97 -0
  151. lightning_sdk/lightning_cloud/openapi/models/v1_aggregated_pod_metrics.py +799 -0
  152. lightning_sdk/lightning_cloud/openapi/models/v1_ai_pod_v1.py +53 -1
  153. lightning_sdk/lightning_cloud/openapi/models/v1_assistant_session_daily_aggregated.py +27 -1
  154. lightning_sdk/lightning_cloud/openapi/models/v1_billing_tier.py +0 -1
  155. lightning_sdk/lightning_cloud/openapi/models/v1_cancel_running_cloud_space_instance_transfer_response.py +97 -0
  156. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +2 -0
  157. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +27 -1
  158. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_specialized_view.py +1 -0
  159. lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_transfer_metadata.py +147 -17
  160. lightning_sdk/lightning_cloud/openapi/models/v1_cloudflare_v1.py +3 -29
  161. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +53 -1
  162. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
  163. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_metrics.py +1527 -0
  164. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +27 -1
  165. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +53 -1
  166. lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +1 -0
  167. lightning_sdk/lightning_cloud/openapi/models/v1_container_metrics.py +21 -21
  168. lightning_sdk/lightning_cloud/openapi/models/v1_create_incident_request.py +305 -0
  169. lightning_sdk/lightning_cloud/openapi/models/v1_create_license_request.py +175 -0
  170. lightning_sdk/lightning_cloud/openapi/models/v1_create_machine_response.py +123 -0
  171. lightning_sdk/lightning_cloud/openapi/models/v1_create_model_metrics_response.py +97 -0
  172. lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +79 -1
  173. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_request.py +253 -0
  174. lightning_sdk/lightning_cloud/openapi/models/v1_create_sdk_command_history_response.py +97 -0
  175. lightning_sdk/lightning_cloud/openapi/models/v1_daily_model_metrics.py +149 -0
  176. lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +53 -1
  177. lightning_sdk/lightning_cloud/openapi/models/v1_delete_incident_message_response.py +97 -0
  178. lightning_sdk/lightning_cloud/openapi/models/v1_delete_incident_response.py +97 -0
  179. lightning_sdk/lightning_cloud/openapi/models/v1_delete_kubernetes_template_response.py +97 -0
  180. lightning_sdk/lightning_cloud/openapi/models/v1_delete_license_response.py +97 -0
  181. lightning_sdk/lightning_cloud/openapi/models/v1_delete_machine_response.py +97 -0
  182. lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +27 -1
  183. lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +53 -1
  184. lightning_sdk/lightning_cloud/openapi/models/v1_external_search_user.py +27 -1
  185. lightning_sdk/lightning_cloud/openapi/models/v1_filestore_data_connection.py +27 -1
  186. lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_metric.py +201 -0
  187. lightning_sdk/lightning_cloud/openapi/models/v1_firewall_rule.py +175 -0
  188. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_required_balance_status_response.py +149 -0
  189. lightning_sdk/lightning_cloud/openapi/models/v1_get_cloud_space_transfer_estimate_response.py +149 -0
  190. lightning_sdk/lightning_cloud/openapi/models/v1_get_latest_model_metrics_response.py +123 -0
  191. lightning_sdk/lightning_cloud/openapi/models/v1_get_machine_response.py +123 -0
  192. lightning_sdk/lightning_cloud/openapi/models/v1_get_market_pricing_response.py +201 -0
  193. lightning_sdk/lightning_cloud/openapi/models/v1_get_model_metrics_response.py +123 -0
  194. lightning_sdk/lightning_cloud/openapi/models/v1_get_temp_bucket_credentials_response.py +201 -0
  195. lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +41 -15
  196. lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +27 -1
  197. lightning_sdk/lightning_cloud/openapi/models/v1_group_node_metrics.py +1215 -0
  198. lightning_sdk/lightning_cloud/openapi/models/v1_group_pod_metrics.py +1241 -0
  199. lightning_sdk/lightning_cloud/openapi/models/v1_guest_login_request.py +177 -0
  200. lightning_sdk/lightning_cloud/openapi/models/v1_guest_login_response.py +149 -0
  201. lightning_sdk/lightning_cloud/openapi/models/v1_guest_user.py +201 -0
  202. lightning_sdk/lightning_cloud/openapi/models/v1_incident.py +565 -0
  203. lightning_sdk/lightning_cloud/openapi/models/v1_incident_detail.py +149 -0
  204. lightning_sdk/lightning_cloud/openapi/models/v1_incident_event.py +591 -0
  205. lightning_sdk/lightning_cloud/openapi/models/v1_incident_message.py +253 -0
  206. lightning_sdk/lightning_cloud/openapi/models/v1_incident_severity.py +105 -0
  207. lightning_sdk/lightning_cloud/openapi/models/v1_incident_type.py +108 -0
  208. lightning_sdk/lightning_cloud/openapi/models/v1_job.py +53 -1
  209. lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +27 -1
  210. lightning_sdk/lightning_cloud/openapi/models/v1_k8s_incident_indexes.py +149 -0
  211. lightning_sdk/lightning_cloud/openapi/models/v1_kai_scheduler_queue_metrics.py +627 -0
  212. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_aws_config.py +279 -0
  213. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +253 -0
  214. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +107 -3
  215. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_template.py +357 -0
  216. lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_template_property.py +227 -0
  217. lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +29 -3
  218. lightning_sdk/lightning_cloud/openapi/models/v1_license.py +227 -0
  219. lightning_sdk/lightning_cloud/openapi/models/v1_lightning_elastic_cluster_v1.py +97 -0
  220. lightning_sdk/lightning_cloud/openapi/models/v1_list_aggregated_pod_metrics_response.py +123 -0
  221. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_metric_timestamps_response.py +123 -0
  222. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_metrics_response.py +123 -0
  223. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_namespace_metrics_response.py +123 -0
  224. lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_namespace_user_metrics_response.py +123 -0
  225. lightning_sdk/lightning_cloud/openapi/models/v1_list_conversation_message_actions_response.py +123 -0
  226. lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_metrics_response.py +123 -0
  227. lightning_sdk/lightning_cloud/openapi/models/v1_list_group_pod_metrics_response.py +123 -0
  228. lightning_sdk/lightning_cloud/openapi/models/v1_list_incident_events_response.py +123 -0
  229. lightning_sdk/lightning_cloud/openapi/models/v1_list_incident_messages_response.py +149 -0
  230. lightning_sdk/lightning_cloud/openapi/models/v1_list_incidents_response.py +149 -0
  231. lightning_sdk/lightning_cloud/openapi/models/v1_list_kai_scheduler_queues_metrics_response.py +123 -0
  232. lightning_sdk/lightning_cloud/openapi/models/v1_list_kubernetes_templates_response.py +123 -0
  233. lightning_sdk/lightning_cloud/openapi/models/{v1_list_product_licenses_response.py → v1_list_license_response.py} +16 -16
  234. lightning_sdk/lightning_cloud/openapi/models/v1_list_machines_response.py +149 -0
  235. lightning_sdk/lightning_cloud/openapi/models/v1_list_platform_notifications_response.py +123 -0
  236. lightning_sdk/lightning_cloud/openapi/models/v1_list_schedule_runs_response.py +123 -0
  237. lightning_sdk/lightning_cloud/openapi/models/v1_list_storage_transfers_response.py +123 -0
  238. lightning_sdk/lightning_cloud/openapi/models/v1_lustre_data_connection.py +149 -0
  239. lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +617 -0
  240. lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +123 -0
  241. lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_request.py +1 -27
  242. lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_response.py +27 -1
  243. lightning_sdk/lightning_cloud/openapi/models/v1_managed_model.py +29 -3
  244. lightning_sdk/lightning_cloud/openapi/models/v1_market_price.py +149 -0
  245. lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +53 -1
  246. lightning_sdk/lightning_cloud/openapi/models/v1_message_action.py +279 -0
  247. lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +27 -1
  248. lightning_sdk/lightning_cloud/openapi/models/v1_model_metrics.py +175 -0
  249. lightning_sdk/lightning_cloud/openapi/models/v1_namespace_metrics.py +591 -0
  250. lightning_sdk/lightning_cloud/openapi/models/v1_namespace_user_metrics.py +435 -0
  251. lightning_sdk/lightning_cloud/openapi/models/v1_nebius_direct_v1.py +29 -3
  252. lightning_sdk/lightning_cloud/openapi/models/v1_node_metrics.py +361 -23
  253. lightning_sdk/lightning_cloud/openapi/models/v1_notification_type.py +1 -0
  254. lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +53 -1
  255. lightning_sdk/lightning_cloud/openapi/models/v1_pause_storage_transfer_response.py +97 -0
  256. lightning_sdk/lightning_cloud/openapi/models/v1_platform_notification.py +279 -0
  257. lightning_sdk/lightning_cloud/openapi/models/v1_pod_metrics.py +335 -23
  258. lightning_sdk/lightning_cloud/openapi/models/v1_project.py +27 -1
  259. lightning_sdk/lightning_cloud/openapi/models/v1_project_cluster_binding.py +27 -1
  260. lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +53 -1
  261. lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +53 -1
  262. lightning_sdk/lightning_cloud/openapi/models/v1_project_tab.py +149 -0
  263. lightning_sdk/lightning_cloud/openapi/models/{v1_product_license_check_response.py → v1_purchase_annual_upsell_request.py} +23 -23
  264. lightning_sdk/lightning_cloud/openapi/models/v1_purchase_annual_upsell_response.py +123 -0
  265. lightning_sdk/lightning_cloud/openapi/models/v1_quote_annual_upsell_response.py +227 -0
  266. lightning_sdk/lightning_cloud/openapi/models/v1_render_kubernetes_template_response.py +123 -0
  267. lightning_sdk/lightning_cloud/openapi/models/v1_report_deployment_routing_telemetry_response.py +97 -0
  268. lightning_sdk/lightning_cloud/openapi/models/v1_required_balance_reason.py +107 -0
  269. lightning_sdk/lightning_cloud/openapi/models/v1_reset_api_key_request.py +97 -0
  270. lightning_sdk/lightning_cloud/openapi/models/v1_reset_api_key_response.py +123 -0
  271. lightning_sdk/lightning_cloud/openapi/models/v1_resource_visibility.py +1 -27
  272. lightning_sdk/lightning_cloud/openapi/models/v1_resume_storage_transfer_response.py +97 -0
  273. lightning_sdk/lightning_cloud/openapi/models/v1_routing_telemetry.py +79 -1
  274. lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +1 -0
  275. lightning_sdk/lightning_cloud/openapi/models/v1_schedule_run.py +357 -0
  276. lightning_sdk/lightning_cloud/openapi/models/v1_sdk_command_history_severity.py +104 -0
  277. lightning_sdk/lightning_cloud/openapi/models/v1_sdk_command_history_type.py +104 -0
  278. lightning_sdk/lightning_cloud/openapi/models/v1_secret_type.py +1 -0
  279. lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_type.py +1 -0
  280. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py +201 -0
  281. lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier_type.py +105 -0
  282. lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset.py +133 -3
  283. lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer.py +435 -0
  284. lightning_sdk/lightning_cloud/openapi/models/v1_storage_transfer_status.py +108 -0
  285. lightning_sdk/lightning_cloud/openapi/models/v1_token_login_request.py +123 -0
  286. lightning_sdk/lightning_cloud/openapi/models/v1_token_login_response.py +123 -0
  287. lightning_sdk/lightning_cloud/openapi/models/v1_token_owner_type.py +104 -0
  288. lightning_sdk/lightning_cloud/openapi/models/v1_update_cloud_space_instance_config_request.py +3 -81
  289. lightning_sdk/lightning_cloud/openapi/models/v1_update_project_tab_order_response.py +123 -0
  290. lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +41 -15
  291. lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +444 -600
  292. lightning_sdk/lightning_cloud/openapi/models/v1_validate_license_response.py +123 -0
  293. lightning_sdk/lightning_cloud/openapi/models/v1_validate_storage_transfer_response.py +123 -0
  294. lightning_sdk/lightning_cloud/openapi/models/v1_voltage_park_direct_v1.py +29 -3
  295. lightning_sdk/lightning_cloud/rest_client.py +48 -45
  296. lightning_sdk/lightning_cloud/utils/data_connection.py +51 -1
  297. lightning_sdk/llm/llm.py +175 -56
  298. lightning_sdk/llm/public_assistants.py +44 -7
  299. lightning_sdk/machine.py +21 -2
  300. lightning_sdk/mmt/base.py +7 -0
  301. lightning_sdk/mmt/mmt.py +11 -3
  302. lightning_sdk/mmt/v1.py +3 -1
  303. lightning_sdk/mmt/v2.py +4 -0
  304. lightning_sdk/owner.py +2 -1
  305. lightning_sdk/pipeline/steps.py +6 -0
  306. lightning_sdk/plugin.py +6 -1
  307. lightning_sdk/studio.py +294 -53
  308. lightning_sdk/teamspace.py +167 -7
  309. lightning_sdk/user.py +19 -1
  310. lightning_sdk/utils/config.py +179 -0
  311. lightning_sdk/utils/license.py +13 -0
  312. lightning_sdk/utils/logging.py +79 -0
  313. lightning_sdk/utils/names.py +1179 -0
  314. lightning_sdk/utils/progress.py +283 -0
  315. lightning_sdk/utils/resolve.py +82 -7
  316. {lightning_sdk-2025.8.6rc2.dist-info → lightning_sdk-2025.11.5.dist-info}/METADATA +2 -1
  317. {lightning_sdk-2025.8.6rc2.dist-info → lightning_sdk-2025.11.5.dist-info}/RECORD +328 -169
  318. {lightning_sdk-2025.8.6rc2.dist-info → lightning_sdk-2025.11.5.dist-info}/entry_points.txt +1 -0
  319. lightning_sdk/lightning_cloud/openapi/models/v1_product_license.py +0 -435
  320. lightning_sdk/services/license.py +0 -363
  321. /lightning_sdk/cli/{deploy → legacy}/__init__.py +0 -0
  322. /lightning_sdk/cli/{ai_hub.py → legacy/ai_hub.py} +0 -0
  323. /lightning_sdk/cli/{docker_cli.py → legacy/docker_cli.py} +0 -0
  324. /lightning_sdk/cli/{exceptions.py → legacy/exceptions.py} +0 -0
  325. /lightning_sdk/cli/{run.py → legacy/run.py} +0 -0
  326. /lightning_sdk/cli/{studios_menu.py → legacy/studios_menu.py} +0 -0
  327. /lightning_sdk/cli/{coloring.py → utils/coloring.py} +0 -0
  328. {lightning_sdk-2025.8.6rc2.dist-info → lightning_sdk-2025.11.5.dist-info}/LICENSE +0 -0
  329. {lightning_sdk-2025.8.6rc2.dist-info → lightning_sdk-2025.11.5.dist-info}/WHEEL +0 -0
  330. {lightning_sdk-2025.8.6rc2.dist-info → lightning_sdk-2025.11.5.dist-info}/top_level.txt +0 -0
@@ -213,6 +213,188 @@ class AuthServiceApi(object):
213
213
  _request_timeout=params.get('_request_timeout'),
214
214
  collection_formats=collection_formats)
215
215
 
216
+ def auth_service_guest_login(self, body: 'V1GuestLoginRequest', **kwargs) -> 'V1GuestLoginResponse': # noqa: E501
217
+ """auth_service_guest_login # noqa: E501
218
+
219
+ This method makes a synchronous HTTP request by default. To make an
220
+ asynchronous HTTP request, please pass async_req=True
221
+ >>> thread = api.auth_service_guest_login(body, async_req=True)
222
+ >>> result = thread.get()
223
+
224
+ :param async_req bool
225
+ :param V1GuestLoginRequest body: (required)
226
+ :return: V1GuestLoginResponse
227
+ If the method is called asynchronously,
228
+ returns the request thread.
229
+ """
230
+ kwargs['_return_http_data_only'] = True
231
+ if kwargs.get('async_req'):
232
+ return self.auth_service_guest_login_with_http_info(body, **kwargs) # noqa: E501
233
+ else:
234
+ (data) = self.auth_service_guest_login_with_http_info(body, **kwargs) # noqa: E501
235
+ return data
236
+
237
+ def auth_service_guest_login_with_http_info(self, body: 'V1GuestLoginRequest', **kwargs) -> 'V1GuestLoginResponse': # noqa: E501
238
+ """auth_service_guest_login # noqa: E501
239
+
240
+ This method makes a synchronous HTTP request by default. To make an
241
+ asynchronous HTTP request, please pass async_req=True
242
+ >>> thread = api.auth_service_guest_login_with_http_info(body, async_req=True)
243
+ >>> result = thread.get()
244
+
245
+ :param async_req bool
246
+ :param V1GuestLoginRequest body: (required)
247
+ :return: V1GuestLoginResponse
248
+ If the method is called asynchronously,
249
+ returns the request thread.
250
+ """
251
+
252
+ all_params = ['body'] # noqa: E501
253
+ all_params.append('async_req')
254
+ all_params.append('_return_http_data_only')
255
+ all_params.append('_preload_content')
256
+ all_params.append('_request_timeout')
257
+
258
+ params = locals()
259
+ for key, val in six.iteritems(params['kwargs']):
260
+ if key not in all_params:
261
+ raise TypeError(
262
+ "Got an unexpected keyword argument '%s'"
263
+ " to method auth_service_guest_login" % key
264
+ )
265
+ params[key] = val
266
+ del params['kwargs']
267
+ # verify the required parameter 'body' is set
268
+ if ('body' not in params or
269
+ params['body'] is None):
270
+ raise ValueError("Missing the required parameter `body` when calling `auth_service_guest_login`") # noqa: E501
271
+
272
+ collection_formats = {}
273
+
274
+ path_params = {}
275
+
276
+ query_params = []
277
+
278
+ header_params = {}
279
+
280
+ form_params = []
281
+ local_var_files = {}
282
+
283
+ body_params = None
284
+ if 'body' in params:
285
+ body_params = params['body']
286
+ # HTTP header `Accept`
287
+ header_params['Accept'] = self.api_client.select_header_accept(
288
+ ['application/json']) # noqa: E501
289
+
290
+ # HTTP header `Content-Type`
291
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
292
+ ['application/json']) # noqa: E501
293
+
294
+ # Authentication setting
295
+ auth_settings = [] # noqa: E501
296
+
297
+ return self.api_client.call_api(
298
+ '/v1/auth/guest-login', 'POST',
299
+ path_params,
300
+ query_params,
301
+ header_params,
302
+ body=body_params,
303
+ post_params=form_params,
304
+ files=local_var_files,
305
+ response_type='V1GuestLoginResponse', # noqa: E501
306
+ auth_settings=auth_settings,
307
+ async_req=params.get('async_req'),
308
+ _return_http_data_only=params.get('_return_http_data_only'),
309
+ _preload_content=params.get('_preload_content', True),
310
+ _request_timeout=params.get('_request_timeout'),
311
+ collection_formats=collection_formats)
312
+
313
+ def auth_service_list_platform_notifications(self, **kwargs) -> 'V1ListPlatformNotificationsResponse': # noqa: E501
314
+ """auth_service_list_platform_notifications # noqa: E501
315
+
316
+ This method makes a synchronous HTTP request by default. To make an
317
+ asynchronous HTTP request, please pass async_req=True
318
+ >>> thread = api.auth_service_list_platform_notifications(async_req=True)
319
+ >>> result = thread.get()
320
+
321
+ :param async_req bool
322
+ :return: V1ListPlatformNotificationsResponse
323
+ If the method is called asynchronously,
324
+ returns the request thread.
325
+ """
326
+ kwargs['_return_http_data_only'] = True
327
+ if kwargs.get('async_req'):
328
+ return self.auth_service_list_platform_notifications_with_http_info(**kwargs) # noqa: E501
329
+ else:
330
+ (data) = self.auth_service_list_platform_notifications_with_http_info(**kwargs) # noqa: E501
331
+ return data
332
+
333
+ def auth_service_list_platform_notifications_with_http_info(self, **kwargs) -> 'V1ListPlatformNotificationsResponse': # noqa: E501
334
+ """auth_service_list_platform_notifications # noqa: E501
335
+
336
+ This method makes a synchronous HTTP request by default. To make an
337
+ asynchronous HTTP request, please pass async_req=True
338
+ >>> thread = api.auth_service_list_platform_notifications_with_http_info(async_req=True)
339
+ >>> result = thread.get()
340
+
341
+ :param async_req bool
342
+ :return: V1ListPlatformNotificationsResponse
343
+ If the method is called asynchronously,
344
+ returns the request thread.
345
+ """
346
+
347
+ all_params = [] # noqa: E501
348
+ all_params.append('async_req')
349
+ all_params.append('_return_http_data_only')
350
+ all_params.append('_preload_content')
351
+ all_params.append('_request_timeout')
352
+
353
+ params = locals()
354
+ for key, val in six.iteritems(params['kwargs']):
355
+ if key not in all_params:
356
+ raise TypeError(
357
+ "Got an unexpected keyword argument '%s'"
358
+ " to method auth_service_list_platform_notifications" % key
359
+ )
360
+ params[key] = val
361
+ del params['kwargs']
362
+
363
+ collection_formats = {}
364
+
365
+ path_params = {}
366
+
367
+ query_params = []
368
+
369
+ header_params = {}
370
+
371
+ form_params = []
372
+ local_var_files = {}
373
+
374
+ body_params = None
375
+ # HTTP header `Accept`
376
+ header_params['Accept'] = self.api_client.select_header_accept(
377
+ ['application/json']) # noqa: E501
378
+
379
+ # Authentication setting
380
+ auth_settings = [] # noqa: E501
381
+
382
+ return self.api_client.call_api(
383
+ '/v1/platform-notifications', 'GET',
384
+ path_params,
385
+ query_params,
386
+ header_params,
387
+ body=body_params,
388
+ post_params=form_params,
389
+ files=local_var_files,
390
+ response_type='V1ListPlatformNotificationsResponse', # noqa: E501
391
+ auth_settings=auth_settings,
392
+ async_req=params.get('async_req'),
393
+ _return_http_data_only=params.get('_return_http_data_only'),
394
+ _preload_content=params.get('_preload_content', True),
395
+ _request_timeout=params.get('_request_timeout'),
396
+ collection_formats=collection_formats)
397
+
216
398
  def auth_service_login(self, body: 'V1LoginRequest', **kwargs) -> 'V1LoginResponse': # noqa: E501
217
399
  """auth_service_login # noqa: E501
218
400
 
@@ -601,6 +783,200 @@ class AuthServiceApi(object):
601
783
  _request_timeout=params.get('_request_timeout'),
602
784
  collection_formats=collection_formats)
603
785
 
786
+ def auth_service_reset_api_key(self, body: 'V1ResetAPIKeyRequest', **kwargs) -> 'V1ResetAPIKeyResponse': # noqa: E501
787
+ """ResetAPIKey generates a new API key for the user # noqa: E501
788
+
789
+ This method makes a synchronous HTTP request by default. To make an
790
+ asynchronous HTTP request, please pass async_req=True
791
+ >>> thread = api.auth_service_reset_api_key(body, async_req=True)
792
+ >>> result = thread.get()
793
+
794
+ :param async_req bool
795
+ :param V1ResetAPIKeyRequest body: (required)
796
+ :return: V1ResetAPIKeyResponse
797
+ If the method is called asynchronously,
798
+ returns the request thread.
799
+ """
800
+ kwargs['_return_http_data_only'] = True
801
+ if kwargs.get('async_req'):
802
+ return self.auth_service_reset_api_key_with_http_info(body, **kwargs) # noqa: E501
803
+ else:
804
+ (data) = self.auth_service_reset_api_key_with_http_info(body, **kwargs) # noqa: E501
805
+ return data
806
+
807
+ def auth_service_reset_api_key_with_http_info(self, body: 'V1ResetAPIKeyRequest', **kwargs) -> 'V1ResetAPIKeyResponse': # noqa: E501
808
+ """ResetAPIKey generates a new API key for the user # noqa: E501
809
+
810
+ This method makes a synchronous HTTP request by default. To make an
811
+ asynchronous HTTP request, please pass async_req=True
812
+ >>> thread = api.auth_service_reset_api_key_with_http_info(body, async_req=True)
813
+ >>> result = thread.get()
814
+
815
+ :param async_req bool
816
+ :param V1ResetAPIKeyRequest body: (required)
817
+ :return: V1ResetAPIKeyResponse
818
+ If the method is called asynchronously,
819
+ returns the request thread.
820
+ """
821
+
822
+ all_params = ['body'] # noqa: E501
823
+ all_params.append('async_req')
824
+ all_params.append('_return_http_data_only')
825
+ all_params.append('_preload_content')
826
+ all_params.append('_request_timeout')
827
+
828
+ params = locals()
829
+ for key, val in six.iteritems(params['kwargs']):
830
+ if key not in all_params:
831
+ raise TypeError(
832
+ "Got an unexpected keyword argument '%s'"
833
+ " to method auth_service_reset_api_key" % key
834
+ )
835
+ params[key] = val
836
+ del params['kwargs']
837
+ # verify the required parameter 'body' is set
838
+ if ('body' not in params or
839
+ params['body'] is None):
840
+ raise ValueError("Missing the required parameter `body` when calling `auth_service_reset_api_key`") # noqa: E501
841
+
842
+ collection_formats = {}
843
+
844
+ path_params = {}
845
+
846
+ query_params = []
847
+
848
+ header_params = {}
849
+
850
+ form_params = []
851
+ local_var_files = {}
852
+
853
+ body_params = None
854
+ if 'body' in params:
855
+ body_params = params['body']
856
+ # HTTP header `Accept`
857
+ header_params['Accept'] = self.api_client.select_header_accept(
858
+ ['application/json']) # noqa: E501
859
+
860
+ # HTTP header `Content-Type`
861
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
862
+ ['application/json']) # noqa: E501
863
+
864
+ # Authentication setting
865
+ auth_settings = [] # noqa: E501
866
+
867
+ return self.api_client.call_api(
868
+ '/v1/auth/reset-api-key', 'PUT',
869
+ path_params,
870
+ query_params,
871
+ header_params,
872
+ body=body_params,
873
+ post_params=form_params,
874
+ files=local_var_files,
875
+ response_type='V1ResetAPIKeyResponse', # noqa: E501
876
+ auth_settings=auth_settings,
877
+ async_req=params.get('async_req'),
878
+ _return_http_data_only=params.get('_return_http_data_only'),
879
+ _preload_content=params.get('_preload_content', True),
880
+ _request_timeout=params.get('_request_timeout'),
881
+ collection_formats=collection_formats)
882
+
883
+ def auth_service_token_login(self, body: 'V1TokenLoginRequest', **kwargs) -> 'V1TokenLoginResponse': # noqa: E501
884
+ """auth_service_token_login # noqa: E501
885
+
886
+ This method makes a synchronous HTTP request by default. To make an
887
+ asynchronous HTTP request, please pass async_req=True
888
+ >>> thread = api.auth_service_token_login(body, async_req=True)
889
+ >>> result = thread.get()
890
+
891
+ :param async_req bool
892
+ :param V1TokenLoginRequest body: (required)
893
+ :return: V1TokenLoginResponse
894
+ If the method is called asynchronously,
895
+ returns the request thread.
896
+ """
897
+ kwargs['_return_http_data_only'] = True
898
+ if kwargs.get('async_req'):
899
+ return self.auth_service_token_login_with_http_info(body, **kwargs) # noqa: E501
900
+ else:
901
+ (data) = self.auth_service_token_login_with_http_info(body, **kwargs) # noqa: E501
902
+ return data
903
+
904
+ def auth_service_token_login_with_http_info(self, body: 'V1TokenLoginRequest', **kwargs) -> 'V1TokenLoginResponse': # noqa: E501
905
+ """auth_service_token_login # noqa: E501
906
+
907
+ This method makes a synchronous HTTP request by default. To make an
908
+ asynchronous HTTP request, please pass async_req=True
909
+ >>> thread = api.auth_service_token_login_with_http_info(body, async_req=True)
910
+ >>> result = thread.get()
911
+
912
+ :param async_req bool
913
+ :param V1TokenLoginRequest body: (required)
914
+ :return: V1TokenLoginResponse
915
+ If the method is called asynchronously,
916
+ returns the request thread.
917
+ """
918
+
919
+ all_params = ['body'] # noqa: E501
920
+ all_params.append('async_req')
921
+ all_params.append('_return_http_data_only')
922
+ all_params.append('_preload_content')
923
+ all_params.append('_request_timeout')
924
+
925
+ params = locals()
926
+ for key, val in six.iteritems(params['kwargs']):
927
+ if key not in all_params:
928
+ raise TypeError(
929
+ "Got an unexpected keyword argument '%s'"
930
+ " to method auth_service_token_login" % key
931
+ )
932
+ params[key] = val
933
+ del params['kwargs']
934
+ # verify the required parameter 'body' is set
935
+ if ('body' not in params or
936
+ params['body'] is None):
937
+ raise ValueError("Missing the required parameter `body` when calling `auth_service_token_login`") # noqa: E501
938
+
939
+ collection_formats = {}
940
+
941
+ path_params = {}
942
+
943
+ query_params = []
944
+
945
+ header_params = {}
946
+
947
+ form_params = []
948
+ local_var_files = {}
949
+
950
+ body_params = None
951
+ if 'body' in params:
952
+ body_params = params['body']
953
+ # HTTP header `Accept`
954
+ header_params['Accept'] = self.api_client.select_header_accept(
955
+ ['application/json']) # noqa: E501
956
+
957
+ # HTTP header `Content-Type`
958
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
959
+ ['application/json']) # noqa: E501
960
+
961
+ # Authentication setting
962
+ auth_settings = [] # noqa: E501
963
+
964
+ return self.api_client.call_api(
965
+ '/v1/auth/token-login', 'POST',
966
+ path_params,
967
+ query_params,
968
+ header_params,
969
+ body=body_params,
970
+ post_params=form_params,
971
+ files=local_var_files,
972
+ response_type='V1TokenLoginResponse', # noqa: E501
973
+ auth_settings=auth_settings,
974
+ async_req=params.get('async_req'),
975
+ _return_http_data_only=params.get('_return_http_data_only'),
976
+ _preload_content=params.get('_preload_content', True),
977
+ _request_timeout=params.get('_request_timeout'),
978
+ collection_formats=collection_formats)
979
+
604
980
  def auth_service_update_user(self, body: 'V1UpdateUserRequest', **kwargs) -> 'V1GetUserResponse': # noqa: E501
605
981
  """TODO: change `GetUserResponse` to `User` # noqa: E501
606
982
 
@@ -663,6 +663,7 @@ class BillingServiceApi(object):
663
663
 
664
664
  :param async_req bool
665
665
  :param str org_id:
666
+ :param str project_id:
666
667
  :return: V1BillingSubscription
667
668
  If the method is called asynchronously,
668
669
  returns the request thread.
@@ -684,12 +685,13 @@ class BillingServiceApi(object):
684
685
 
685
686
  :param async_req bool
686
687
  :param str org_id:
688
+ :param str project_id:
687
689
  :return: V1BillingSubscription
688
690
  If the method is called asynchronously,
689
691
  returns the request thread.
690
692
  """
691
693
 
692
- all_params = ['org_id'] # noqa: E501
694
+ all_params = ['org_id', 'project_id'] # noqa: E501
693
695
  all_params.append('async_req')
694
696
  all_params.append('_return_http_data_only')
695
697
  all_params.append('_preload_content')
@@ -712,6 +714,8 @@ class BillingServiceApi(object):
712
714
  query_params = []
713
715
  if 'org_id' in params:
714
716
  query_params.append(('orgId', params['org_id'])) # noqa: E501
717
+ if 'project_id' in params:
718
+ query_params.append(('projectId', params['project_id'])) # noqa: E501
715
719
 
716
720
  header_params = {}
717
721
 
@@ -1352,6 +1356,192 @@ class BillingServiceApi(object):
1352
1356
  _request_timeout=params.get('_request_timeout'),
1353
1357
  collection_formats=collection_formats)
1354
1358
 
1359
+ def billing_service_purchase_annual_upsell(self, body: 'V1PurchaseAnnualUpsellRequest', **kwargs) -> 'V1PurchaseAnnualUpsellResponse': # noqa: E501
1360
+ """billing_service_purchase_annual_upsell # noqa: E501
1361
+
1362
+ This method makes a synchronous HTTP request by default. To make an
1363
+ asynchronous HTTP request, please pass async_req=True
1364
+ >>> thread = api.billing_service_purchase_annual_upsell(body, async_req=True)
1365
+ >>> result = thread.get()
1366
+
1367
+ :param async_req bool
1368
+ :param V1PurchaseAnnualUpsellRequest body: (required)
1369
+ :return: V1PurchaseAnnualUpsellResponse
1370
+ If the method is called asynchronously,
1371
+ returns the request thread.
1372
+ """
1373
+ kwargs['_return_http_data_only'] = True
1374
+ if kwargs.get('async_req'):
1375
+ return self.billing_service_purchase_annual_upsell_with_http_info(body, **kwargs) # noqa: E501
1376
+ else:
1377
+ (data) = self.billing_service_purchase_annual_upsell_with_http_info(body, **kwargs) # noqa: E501
1378
+ return data
1379
+
1380
+ def billing_service_purchase_annual_upsell_with_http_info(self, body: 'V1PurchaseAnnualUpsellRequest', **kwargs) -> 'V1PurchaseAnnualUpsellResponse': # noqa: E501
1381
+ """billing_service_purchase_annual_upsell # noqa: E501
1382
+
1383
+ This method makes a synchronous HTTP request by default. To make an
1384
+ asynchronous HTTP request, please pass async_req=True
1385
+ >>> thread = api.billing_service_purchase_annual_upsell_with_http_info(body, async_req=True)
1386
+ >>> result = thread.get()
1387
+
1388
+ :param async_req bool
1389
+ :param V1PurchaseAnnualUpsellRequest body: (required)
1390
+ :return: V1PurchaseAnnualUpsellResponse
1391
+ If the method is called asynchronously,
1392
+ returns the request thread.
1393
+ """
1394
+
1395
+ all_params = ['body'] # noqa: E501
1396
+ all_params.append('async_req')
1397
+ all_params.append('_return_http_data_only')
1398
+ all_params.append('_preload_content')
1399
+ all_params.append('_request_timeout')
1400
+
1401
+ params = locals()
1402
+ for key, val in six.iteritems(params['kwargs']):
1403
+ if key not in all_params:
1404
+ raise TypeError(
1405
+ "Got an unexpected keyword argument '%s'"
1406
+ " to method billing_service_purchase_annual_upsell" % key
1407
+ )
1408
+ params[key] = val
1409
+ del params['kwargs']
1410
+ # verify the required parameter 'body' is set
1411
+ if ('body' not in params or
1412
+ params['body'] is None):
1413
+ raise ValueError("Missing the required parameter `body` when calling `billing_service_purchase_annual_upsell`") # noqa: E501
1414
+
1415
+ collection_formats = {}
1416
+
1417
+ path_params = {}
1418
+
1419
+ query_params = []
1420
+
1421
+ header_params = {}
1422
+
1423
+ form_params = []
1424
+ local_var_files = {}
1425
+
1426
+ body_params = None
1427
+ if 'body' in params:
1428
+ body_params = params['body']
1429
+ # HTTP header `Accept`
1430
+ header_params['Accept'] = self.api_client.select_header_accept(
1431
+ ['application/json']) # noqa: E501
1432
+
1433
+ # HTTP header `Content-Type`
1434
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
1435
+ ['application/json']) # noqa: E501
1436
+
1437
+ # Authentication setting
1438
+ auth_settings = [] # noqa: E501
1439
+
1440
+ return self.api_client.call_api(
1441
+ '/v1/billing/annual-upsell', 'POST',
1442
+ path_params,
1443
+ query_params,
1444
+ header_params,
1445
+ body=body_params,
1446
+ post_params=form_params,
1447
+ files=local_var_files,
1448
+ response_type='V1PurchaseAnnualUpsellResponse', # noqa: E501
1449
+ auth_settings=auth_settings,
1450
+ async_req=params.get('async_req'),
1451
+ _return_http_data_only=params.get('_return_http_data_only'),
1452
+ _preload_content=params.get('_preload_content', True),
1453
+ _request_timeout=params.get('_request_timeout'),
1454
+ collection_formats=collection_formats)
1455
+
1456
+ def billing_service_quote_annual_upsell(self, **kwargs) -> 'V1QuoteAnnualUpsellResponse': # noqa: E501
1457
+ """billing_service_quote_annual_upsell # noqa: E501
1458
+
1459
+ This method makes a synchronous HTTP request by default. To make an
1460
+ asynchronous HTTP request, please pass async_req=True
1461
+ >>> thread = api.billing_service_quote_annual_upsell(async_req=True)
1462
+ >>> result = thread.get()
1463
+
1464
+ :param async_req bool
1465
+ :param str org_id:
1466
+ :return: V1QuoteAnnualUpsellResponse
1467
+ If the method is called asynchronously,
1468
+ returns the request thread.
1469
+ """
1470
+ kwargs['_return_http_data_only'] = True
1471
+ if kwargs.get('async_req'):
1472
+ return self.billing_service_quote_annual_upsell_with_http_info(**kwargs) # noqa: E501
1473
+ else:
1474
+ (data) = self.billing_service_quote_annual_upsell_with_http_info(**kwargs) # noqa: E501
1475
+ return data
1476
+
1477
+ def billing_service_quote_annual_upsell_with_http_info(self, **kwargs) -> 'V1QuoteAnnualUpsellResponse': # noqa: E501
1478
+ """billing_service_quote_annual_upsell # noqa: E501
1479
+
1480
+ This method makes a synchronous HTTP request by default. To make an
1481
+ asynchronous HTTP request, please pass async_req=True
1482
+ >>> thread = api.billing_service_quote_annual_upsell_with_http_info(async_req=True)
1483
+ >>> result = thread.get()
1484
+
1485
+ :param async_req bool
1486
+ :param str org_id:
1487
+ :return: V1QuoteAnnualUpsellResponse
1488
+ If the method is called asynchronously,
1489
+ returns the request thread.
1490
+ """
1491
+
1492
+ all_params = ['org_id'] # noqa: E501
1493
+ all_params.append('async_req')
1494
+ all_params.append('_return_http_data_only')
1495
+ all_params.append('_preload_content')
1496
+ all_params.append('_request_timeout')
1497
+
1498
+ params = locals()
1499
+ for key, val in six.iteritems(params['kwargs']):
1500
+ if key not in all_params:
1501
+ raise TypeError(
1502
+ "Got an unexpected keyword argument '%s'"
1503
+ " to method billing_service_quote_annual_upsell" % key
1504
+ )
1505
+ params[key] = val
1506
+ del params['kwargs']
1507
+
1508
+ collection_formats = {}
1509
+
1510
+ path_params = {}
1511
+
1512
+ query_params = []
1513
+ if 'org_id' in params:
1514
+ query_params.append(('orgId', params['org_id'])) # noqa: E501
1515
+
1516
+ header_params = {}
1517
+
1518
+ form_params = []
1519
+ local_var_files = {}
1520
+
1521
+ body_params = None
1522
+ # HTTP header `Accept`
1523
+ header_params['Accept'] = self.api_client.select_header_accept(
1524
+ ['application/json']) # noqa: E501
1525
+
1526
+ # Authentication setting
1527
+ auth_settings = [] # noqa: E501
1528
+
1529
+ return self.api_client.call_api(
1530
+ '/v1/billing/annual-upsell', 'GET',
1531
+ path_params,
1532
+ query_params,
1533
+ header_params,
1534
+ body=body_params,
1535
+ post_params=form_params,
1536
+ files=local_var_files,
1537
+ response_type='V1QuoteAnnualUpsellResponse', # noqa: E501
1538
+ auth_settings=auth_settings,
1539
+ async_req=params.get('async_req'),
1540
+ _return_http_data_only=params.get('_return_http_data_only'),
1541
+ _preload_content=params.get('_preload_content', True),
1542
+ _request_timeout=params.get('_request_timeout'),
1543
+ collection_formats=collection_formats)
1544
+
1355
1545
  def billing_service_quote_subscription(self, **kwargs) -> 'V1QuoteSubscriptionResponse': # noqa: E501
1356
1546
  """billing_service_quote_subscription # noqa: E501
1357
1547
 
@@ -248,6 +248,7 @@ class CloudSpaceEnvironmentTemplateServiceApi(object):
248
248
  :param async_req bool
249
249
  :param str id: (required)
250
250
  :param str org_id:
251
+ :param str project_id:
251
252
  :return: V1CloudSpaceEnvironmentTemplate
252
253
  If the method is called asynchronously,
253
254
  returns the request thread.
@@ -270,12 +271,13 @@ class CloudSpaceEnvironmentTemplateServiceApi(object):
270
271
  :param async_req bool
271
272
  :param str id: (required)
272
273
  :param str org_id:
274
+ :param str project_id:
273
275
  :return: V1CloudSpaceEnvironmentTemplate
274
276
  If the method is called asynchronously,
275
277
  returns the request thread.
276
278
  """
277
279
 
278
- all_params = ['id', 'org_id'] # noqa: E501
280
+ all_params = ['id', 'org_id', 'project_id'] # noqa: E501
279
281
  all_params.append('async_req')
280
282
  all_params.append('_return_http_data_only')
281
283
  all_params.append('_preload_content')
@@ -304,6 +306,8 @@ class CloudSpaceEnvironmentTemplateServiceApi(object):
304
306
  query_params = []
305
307
  if 'org_id' in params:
306
308
  query_params.append(('orgId', params['org_id'])) # noqa: E501
309
+ if 'project_id' in params:
310
+ query_params.append(('projectId', params['project_id'])) # noqa: E501
307
311
 
308
312
  header_params = {}
309
313