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
@@ -0,0 +1,123 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ external/v1/auth_service.proto
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: version not set
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+
12
+ NOTE
13
+ ----
14
+ standard swagger-codegen-cli for this python client has been modified
15
+ by custom templates. The purpose of these templates is to include
16
+ typing information in the API and Model code. Please refer to the
17
+ main grid repository for more info
18
+ """
19
+
20
+ import pprint
21
+ import re # noqa: F401
22
+
23
+ from typing import TYPE_CHECKING
24
+
25
+ import six
26
+
27
+ if TYPE_CHECKING:
28
+ from datetime import datetime
29
+ from lightning_sdk.lightning_cloud.openapi.models import *
30
+
31
+ class V1MachineDirectV1(object):
32
+ """NOTE: This class is auto generated by the swagger code generator program.
33
+
34
+ Do not edit the class manually.
35
+ """
36
+ """
37
+ Attributes:
38
+ swagger_types (dict): The key is attribute name
39
+ and the value is attribute type.
40
+ attribute_map (dict): The key is attribute name
41
+ and the value is json key in definition.
42
+ """
43
+ swagger_types = {
44
+ 'tailscale_auth_key_secret_id': 'str'
45
+ }
46
+
47
+ attribute_map = {
48
+ 'tailscale_auth_key_secret_id': 'tailscaleAuthKeySecretId'
49
+ }
50
+
51
+ def __init__(self, tailscale_auth_key_secret_id: 'str' =None): # noqa: E501
52
+ """V1MachineDirectV1 - a model defined in Swagger""" # noqa: E501
53
+ self._tailscale_auth_key_secret_id = None
54
+ self.discriminator = None
55
+ if tailscale_auth_key_secret_id is not None:
56
+ self.tailscale_auth_key_secret_id = tailscale_auth_key_secret_id
57
+
58
+ @property
59
+ def tailscale_auth_key_secret_id(self) -> 'str':
60
+ """Gets the tailscale_auth_key_secret_id of this V1MachineDirectV1. # noqa: E501
61
+
62
+
63
+ :return: The tailscale_auth_key_secret_id of this V1MachineDirectV1. # noqa: E501
64
+ :rtype: str
65
+ """
66
+ return self._tailscale_auth_key_secret_id
67
+
68
+ @tailscale_auth_key_secret_id.setter
69
+ def tailscale_auth_key_secret_id(self, tailscale_auth_key_secret_id: 'str'):
70
+ """Sets the tailscale_auth_key_secret_id of this V1MachineDirectV1.
71
+
72
+
73
+ :param tailscale_auth_key_secret_id: The tailscale_auth_key_secret_id of this V1MachineDirectV1. # noqa: E501
74
+ :type: str
75
+ """
76
+
77
+ self._tailscale_auth_key_secret_id = tailscale_auth_key_secret_id
78
+
79
+ def to_dict(self) -> dict:
80
+ """Returns the model properties as a dict"""
81
+ result = {}
82
+
83
+ for attr, _ in six.iteritems(self.swagger_types):
84
+ value = getattr(self, attr)
85
+ if isinstance(value, list):
86
+ result[attr] = list(map(
87
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
88
+ value
89
+ ))
90
+ elif hasattr(value, "to_dict"):
91
+ result[attr] = value.to_dict()
92
+ elif isinstance(value, dict):
93
+ result[attr] = dict(map(
94
+ lambda item: (item[0], item[1].to_dict())
95
+ if hasattr(item[1], "to_dict") else item,
96
+ value.items()
97
+ ))
98
+ else:
99
+ result[attr] = value
100
+ if issubclass(V1MachineDirectV1, dict):
101
+ for key, value in self.items():
102
+ result[key] = value
103
+
104
+ return result
105
+
106
+ def to_str(self) -> str:
107
+ """Returns the string representation of the model"""
108
+ return pprint.pformat(self.to_dict())
109
+
110
+ def __repr__(self) -> str:
111
+ """For `print` and `pprint`"""
112
+ return self.to_str()
113
+
114
+ def __eq__(self, other: 'V1MachineDirectV1') -> bool:
115
+ """Returns true if both objects are equal"""
116
+ if not isinstance(other, V1MachineDirectV1):
117
+ return False
118
+
119
+ return self.__dict__ == other.__dict__
120
+
121
+ def __ne__(self, other: 'V1MachineDirectV1') -> bool:
122
+ """Returns true if both objects are not equal"""
123
+ return not self == other
@@ -42,7 +42,6 @@ class V1MagicLinkLoginRequest(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'collab_session_id': 'str',
45
- 'discounted_pro_plan': 'bool',
46
45
  'email': 'str',
47
46
  'experimentation_id': 'str',
48
47
  'invite_code': 'str',
@@ -52,7 +51,6 @@ class V1MagicLinkLoginRequest(object):
52
51
 
53
52
  attribute_map = {
54
53
  'collab_session_id': 'collabSessionId',
55
- 'discounted_pro_plan': 'discountedProPlan',
56
54
  'email': 'email',
57
55
  'experimentation_id': 'experimentationId',
58
56
  'invite_code': 'inviteCode',
@@ -60,10 +58,9 @@ class V1MagicLinkLoginRequest(object):
60
58
  'referrer_params': 'referrerParams'
61
59
  }
62
60
 
63
- def __init__(self, collab_session_id: 'str' =None, discounted_pro_plan: 'bool' =None, email: 'str' =None, experimentation_id: 'str' =None, invite_code: 'str' =None, redirect_url: 'str' =None, referrer_params: 'str' =None): # noqa: E501
61
+ def __init__(self, collab_session_id: 'str' =None, email: 'str' =None, experimentation_id: 'str' =None, invite_code: 'str' =None, redirect_url: 'str' =None, referrer_params: 'str' =None): # noqa: E501
64
62
  """V1MagicLinkLoginRequest - a model defined in Swagger""" # noqa: E501
65
63
  self._collab_session_id = None
66
- self._discounted_pro_plan = None
67
64
  self._email = None
68
65
  self._experimentation_id = None
69
66
  self._invite_code = None
@@ -72,8 +69,6 @@ class V1MagicLinkLoginRequest(object):
72
69
  self.discriminator = None
73
70
  if collab_session_id is not None:
74
71
  self.collab_session_id = collab_session_id
75
- if discounted_pro_plan is not None:
76
- self.discounted_pro_plan = discounted_pro_plan
77
72
  if email is not None:
78
73
  self.email = email
79
74
  if experimentation_id is not None:
@@ -106,27 +101,6 @@ class V1MagicLinkLoginRequest(object):
106
101
 
107
102
  self._collab_session_id = collab_session_id
108
103
 
109
- @property
110
- def discounted_pro_plan(self) -> 'bool':
111
- """Gets the discounted_pro_plan of this V1MagicLinkLoginRequest. # noqa: E501
112
-
113
-
114
- :return: The discounted_pro_plan of this V1MagicLinkLoginRequest. # noqa: E501
115
- :rtype: bool
116
- """
117
- return self._discounted_pro_plan
118
-
119
- @discounted_pro_plan.setter
120
- def discounted_pro_plan(self, discounted_pro_plan: 'bool'):
121
- """Sets the discounted_pro_plan of this V1MagicLinkLoginRequest.
122
-
123
-
124
- :param discounted_pro_plan: The discounted_pro_plan of this V1MagicLinkLoginRequest. # noqa: E501
125
- :type: bool
126
- """
127
-
128
- self._discounted_pro_plan = discounted_pro_plan
129
-
130
104
  @property
131
105
  def email(self) -> 'str':
132
106
  """Gets the email of this V1MagicLinkLoginRequest. # noqa: E501
@@ -42,6 +42,7 @@ class V1MagicLinkLoginResponse(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'auth_start_url': 'str',
45
+ 'internal': 'bool',
45
46
  'sso_enabled': 'bool',
46
47
  'verified': 'bool',
47
48
  'waitlisted': 'bool'
@@ -49,20 +50,24 @@ class V1MagicLinkLoginResponse(object):
49
50
 
50
51
  attribute_map = {
51
52
  'auth_start_url': 'authStartUrl',
53
+ 'internal': 'internal',
52
54
  'sso_enabled': 'ssoEnabled',
53
55
  'verified': 'verified',
54
56
  'waitlisted': 'waitlisted'
55
57
  }
56
58
 
57
- def __init__(self, auth_start_url: 'str' =None, sso_enabled: 'bool' =None, verified: 'bool' =None, waitlisted: 'bool' =None): # noqa: E501
59
+ def __init__(self, auth_start_url: 'str' =None, internal: 'bool' =None, sso_enabled: 'bool' =None, verified: 'bool' =None, waitlisted: 'bool' =None): # noqa: E501
58
60
  """V1MagicLinkLoginResponse - a model defined in Swagger""" # noqa: E501
59
61
  self._auth_start_url = None
62
+ self._internal = None
60
63
  self._sso_enabled = None
61
64
  self._verified = None
62
65
  self._waitlisted = None
63
66
  self.discriminator = None
64
67
  if auth_start_url is not None:
65
68
  self.auth_start_url = auth_start_url
69
+ if internal is not None:
70
+ self.internal = internal
66
71
  if sso_enabled is not None:
67
72
  self.sso_enabled = sso_enabled
68
73
  if verified is not None:
@@ -91,6 +96,27 @@ class V1MagicLinkLoginResponse(object):
91
96
 
92
97
  self._auth_start_url = auth_start_url
93
98
 
99
+ @property
100
+ def internal(self) -> 'bool':
101
+ """Gets the internal of this V1MagicLinkLoginResponse. # noqa: E501
102
+
103
+
104
+ :return: The internal of this V1MagicLinkLoginResponse. # noqa: E501
105
+ :rtype: bool
106
+ """
107
+ return self._internal
108
+
109
+ @internal.setter
110
+ def internal(self, internal: 'bool'):
111
+ """Sets the internal of this V1MagicLinkLoginResponse.
112
+
113
+
114
+ :param internal: The internal of this V1MagicLinkLoginResponse. # noqa: E501
115
+ :type: bool
116
+ """
117
+
118
+ self._internal = internal
119
+
94
120
  @property
95
121
  def sso_enabled(self) -> 'bool':
96
122
  """Gets the sso_enabled of this V1MagicLinkLoginResponse. # noqa: E501
@@ -60,7 +60,8 @@ class V1ManagedModel(object):
60
60
  'throughput': 'float',
61
61
  'time_to_first_token': 'float',
62
62
  'token_threshold': 'str',
63
- 'top_k': 'str'
63
+ 'top_k': 'str',
64
+ 'user_id': 'str'
64
65
  }
65
66
 
66
67
  attribute_map = {
@@ -83,10 +84,11 @@ class V1ManagedModel(object):
83
84
  'throughput': 'throughput',
84
85
  'time_to_first_token': 'timeToFirstToken',
85
86
  'token_threshold': 'tokenThreshold',
86
- 'top_k': 'topK'
87
+ 'top_k': 'topK',
88
+ 'user_id': 'userId'
87
89
  }
88
90
 
89
- def __init__(self, abilities: 'V1ManagedModelAbilities' =None, assistant_id: 'str' =None, completion_token_price: 'float' =None, completion_token_price_above_threshold: 'float' =None, context_length: 'str' =None, deployment_details: 'V1DeploymentDetails' =None, description: 'str' =None, display_name: 'str' =None, endpoint_id: 'str' =None, id: 'str' =None, max_completion_tokens: 'str' =None, name: 'str' =None, prompt_token_price: 'float' =None, prompt_token_price_above_threshold: 'float' =None, status: 'V1AssistantModelStatus' =None, temperature: 'float' =None, throughput: 'float' =None, time_to_first_token: 'float' =None, token_threshold: 'str' =None, top_k: 'str' =None): # noqa: E501
91
+ def __init__(self, abilities: 'V1ManagedModelAbilities' =None, assistant_id: 'str' =None, completion_token_price: 'float' =None, completion_token_price_above_threshold: 'float' =None, context_length: 'str' =None, deployment_details: 'V1DeploymentDetails' =None, description: 'str' =None, display_name: 'str' =None, endpoint_id: 'str' =None, id: 'str' =None, max_completion_tokens: 'str' =None, name: 'str' =None, prompt_token_price: 'float' =None, prompt_token_price_above_threshold: 'float' =None, status: 'V1AssistantModelStatus' =None, temperature: 'float' =None, throughput: 'float' =None, time_to_first_token: 'float' =None, token_threshold: 'str' =None, top_k: 'str' =None, user_id: 'str' =None): # noqa: E501
90
92
  """V1ManagedModel - a model defined in Swagger""" # noqa: E501
91
93
  self._abilities = None
92
94
  self._assistant_id = None
@@ -108,6 +110,7 @@ class V1ManagedModel(object):
108
110
  self._time_to_first_token = None
109
111
  self._token_threshold = None
110
112
  self._top_k = None
113
+ self._user_id = None
111
114
  self.discriminator = None
112
115
  if abilities is not None:
113
116
  self.abilities = abilities
@@ -149,6 +152,8 @@ class V1ManagedModel(object):
149
152
  self.token_threshold = token_threshold
150
153
  if top_k is not None:
151
154
  self.top_k = top_k
155
+ if user_id is not None:
156
+ self.user_id = user_id
152
157
 
153
158
  @property
154
159
  def abilities(self) -> 'V1ManagedModelAbilities':
@@ -570,6 +575,27 @@ class V1ManagedModel(object):
570
575
 
571
576
  self._top_k = top_k
572
577
 
578
+ @property
579
+ def user_id(self) -> 'str':
580
+ """Gets the user_id of this V1ManagedModel. # noqa: E501
581
+
582
+
583
+ :return: The user_id of this V1ManagedModel. # noqa: E501
584
+ :rtype: str
585
+ """
586
+ return self._user_id
587
+
588
+ @user_id.setter
589
+ def user_id(self, user_id: 'str'):
590
+ """Sets the user_id of this V1ManagedModel.
591
+
592
+
593
+ :param user_id: The user_id of this V1ManagedModel. # noqa: E501
594
+ :type: str
595
+ """
596
+
597
+ self._user_id = user_id
598
+
573
599
  def to_dict(self) -> dict:
574
600
  """Returns the model properties as a dict"""
575
601
  result = {}
@@ -0,0 +1,149 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ external/v1/auth_service.proto
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: version not set
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+
12
+ NOTE
13
+ ----
14
+ standard swagger-codegen-cli for this python client has been modified
15
+ by custom templates. The purpose of these templates is to include
16
+ typing information in the API and Model code. Please refer to the
17
+ main grid repository for more info
18
+ """
19
+
20
+ import pprint
21
+ import re # noqa: F401
22
+
23
+ from typing import TYPE_CHECKING
24
+
25
+ import six
26
+
27
+ if TYPE_CHECKING:
28
+ from datetime import datetime
29
+ from lightning_sdk.lightning_cloud.openapi.models import *
30
+
31
+ class V1MarketPrice(object):
32
+ """NOTE: This class is auto generated by the swagger code generator program.
33
+
34
+ Do not edit the class manually.
35
+ """
36
+ """
37
+ Attributes:
38
+ swagger_types (dict): The key is attribute name
39
+ and the value is attribute type.
40
+ attribute_map (dict): The key is attribute name
41
+ and the value is json key in definition.
42
+ """
43
+ swagger_types = {
44
+ 'provider_prices': 'dict(str, float)',
45
+ 'timestamp': 'datetime'
46
+ }
47
+
48
+ attribute_map = {
49
+ 'provider_prices': 'providerPrices',
50
+ 'timestamp': 'timestamp'
51
+ }
52
+
53
+ def __init__(self, provider_prices: 'dict(str, float)' =None, timestamp: 'datetime' =None): # noqa: E501
54
+ """V1MarketPrice - a model defined in Swagger""" # noqa: E501
55
+ self._provider_prices = None
56
+ self._timestamp = None
57
+ self.discriminator = None
58
+ if provider_prices is not None:
59
+ self.provider_prices = provider_prices
60
+ if timestamp is not None:
61
+ self.timestamp = timestamp
62
+
63
+ @property
64
+ def provider_prices(self) -> 'dict(str, float)':
65
+ """Gets the provider_prices of this V1MarketPrice. # noqa: E501
66
+
67
+
68
+ :return: The provider_prices of this V1MarketPrice. # noqa: E501
69
+ :rtype: dict(str, float)
70
+ """
71
+ return self._provider_prices
72
+
73
+ @provider_prices.setter
74
+ def provider_prices(self, provider_prices: 'dict(str, float)'):
75
+ """Sets the provider_prices of this V1MarketPrice.
76
+
77
+
78
+ :param provider_prices: The provider_prices of this V1MarketPrice. # noqa: E501
79
+ :type: dict(str, float)
80
+ """
81
+
82
+ self._provider_prices = provider_prices
83
+
84
+ @property
85
+ def timestamp(self) -> 'datetime':
86
+ """Gets the timestamp of this V1MarketPrice. # noqa: E501
87
+
88
+
89
+ :return: The timestamp of this V1MarketPrice. # noqa: E501
90
+ :rtype: datetime
91
+ """
92
+ return self._timestamp
93
+
94
+ @timestamp.setter
95
+ def timestamp(self, timestamp: 'datetime'):
96
+ """Sets the timestamp of this V1MarketPrice.
97
+
98
+
99
+ :param timestamp: The timestamp of this V1MarketPrice. # noqa: E501
100
+ :type: datetime
101
+ """
102
+
103
+ self._timestamp = timestamp
104
+
105
+ def to_dict(self) -> dict:
106
+ """Returns the model properties as a dict"""
107
+ result = {}
108
+
109
+ for attr, _ in six.iteritems(self.swagger_types):
110
+ value = getattr(self, attr)
111
+ if isinstance(value, list):
112
+ result[attr] = list(map(
113
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
114
+ value
115
+ ))
116
+ elif hasattr(value, "to_dict"):
117
+ result[attr] = value.to_dict()
118
+ elif isinstance(value, dict):
119
+ result[attr] = dict(map(
120
+ lambda item: (item[0], item[1].to_dict())
121
+ if hasattr(item[1], "to_dict") else item,
122
+ value.items()
123
+ ))
124
+ else:
125
+ result[attr] = value
126
+ if issubclass(V1MarketPrice, dict):
127
+ for key, value in self.items():
128
+ result[key] = value
129
+
130
+ return result
131
+
132
+ def to_str(self) -> str:
133
+ """Returns the string representation of the model"""
134
+ return pprint.pformat(self.to_dict())
135
+
136
+ def __repr__(self) -> str:
137
+ """For `print` and `pprint`"""
138
+ return self.to_str()
139
+
140
+ def __eq__(self, other: 'V1MarketPrice') -> bool:
141
+ """Returns true if both objects are equal"""
142
+ if not isinstance(other, V1MarketPrice):
143
+ return False
144
+
145
+ return self.__dict__ == other.__dict__
146
+
147
+ def __ne__(self, other: 'V1MarketPrice') -> bool:
148
+ """Returns true if both objects are not equal"""
149
+ return not self == other
@@ -42,6 +42,7 @@ class V1Membership(object):
42
42
  """
43
43
  swagger_types = {
44
44
  'balance': 'float',
45
+ 'budgeting_enabled': 'bool',
45
46
  'created_at': 'datetime',
46
47
  'creator_id': 'str',
47
48
  'current_storage_bytes': 'str',
@@ -55,6 +56,7 @@ class V1Membership(object):
55
56
  'membership_count': 'str',
56
57
  'name': 'str',
57
58
  'next_free_credits_grant': 'str',
59
+ 'organization_billing_enabled': 'bool',
58
60
  'owner_id': 'str',
59
61
  'owner_type': 'V1OwnerType',
60
62
  'project_id': 'str',
@@ -66,6 +68,7 @@ class V1Membership(object):
66
68
 
67
69
  attribute_map = {
68
70
  'balance': 'balance',
71
+ 'budgeting_enabled': 'budgetingEnabled',
69
72
  'created_at': 'createdAt',
70
73
  'creator_id': 'creatorId',
71
74
  'current_storage_bytes': 'currentStorageBytes',
@@ -79,6 +82,7 @@ class V1Membership(object):
79
82
  'membership_count': 'membershipCount',
80
83
  'name': 'name',
81
84
  'next_free_credits_grant': 'nextFreeCreditsGrant',
85
+ 'organization_billing_enabled': 'organizationBillingEnabled',
82
86
  'owner_id': 'ownerId',
83
87
  'owner_type': 'ownerType',
84
88
  'project_id': 'projectId',
@@ -88,9 +92,10 @@ class V1Membership(object):
88
92
  'user_id': 'userId'
89
93
  }
90
94
 
91
- def __init__(self, balance: 'float' =None, created_at: 'datetime' =None, creator_id: 'str' =None, current_storage_bytes: 'str' =None, datastore_count: 'str' =None, description: 'str' =None, display_name: 'str' =None, free_credits_enabled: 'bool' =None, free_storage_bytes: 'str' =None, is_default: 'bool' =None, job_count: 'str' =None, membership_count: 'str' =None, name: 'str' =None, next_free_credits_grant: 'str' =None, owner_id: 'str' =None, owner_type: 'V1OwnerType' =None, project_id: 'str' =None, quotas: 'V1Quotas' =None, roles: 'list[V1Role]' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
95
+ def __init__(self, balance: 'float' =None, budgeting_enabled: 'bool' =None, created_at: 'datetime' =None, creator_id: 'str' =None, current_storage_bytes: 'str' =None, datastore_count: 'str' =None, description: 'str' =None, display_name: 'str' =None, free_credits_enabled: 'bool' =None, free_storage_bytes: 'str' =None, is_default: 'bool' =None, job_count: 'str' =None, membership_count: 'str' =None, name: 'str' =None, next_free_credits_grant: 'str' =None, organization_billing_enabled: 'bool' =None, owner_id: 'str' =None, owner_type: 'V1OwnerType' =None, project_id: 'str' =None, quotas: 'V1Quotas' =None, roles: 'list[V1Role]' =None, updated_at: 'datetime' =None, user_id: 'str' =None): # noqa: E501
92
96
  """V1Membership - a model defined in Swagger""" # noqa: E501
93
97
  self._balance = None
98
+ self._budgeting_enabled = None
94
99
  self._created_at = None
95
100
  self._creator_id = None
96
101
  self._current_storage_bytes = None
@@ -104,6 +109,7 @@ class V1Membership(object):
104
109
  self._membership_count = None
105
110
  self._name = None
106
111
  self._next_free_credits_grant = None
112
+ self._organization_billing_enabled = None
107
113
  self._owner_id = None
108
114
  self._owner_type = None
109
115
  self._project_id = None
@@ -114,6 +120,8 @@ class V1Membership(object):
114
120
  self.discriminator = None
115
121
  if balance is not None:
116
122
  self.balance = balance
123
+ if budgeting_enabled is not None:
124
+ self.budgeting_enabled = budgeting_enabled
117
125
  if created_at is not None:
118
126
  self.created_at = created_at
119
127
  if creator_id is not None:
@@ -140,6 +148,8 @@ class V1Membership(object):
140
148
  self.name = name
141
149
  if next_free_credits_grant is not None:
142
150
  self.next_free_credits_grant = next_free_credits_grant
151
+ if organization_billing_enabled is not None:
152
+ self.organization_billing_enabled = organization_billing_enabled
143
153
  if owner_id is not None:
144
154
  self.owner_id = owner_id
145
155
  if owner_type is not None:
@@ -176,6 +186,27 @@ class V1Membership(object):
176
186
 
177
187
  self._balance = balance
178
188
 
189
+ @property
190
+ def budgeting_enabled(self) -> 'bool':
191
+ """Gets the budgeting_enabled of this V1Membership. # noqa: E501
192
+
193
+
194
+ :return: The budgeting_enabled of this V1Membership. # noqa: E501
195
+ :rtype: bool
196
+ """
197
+ return self._budgeting_enabled
198
+
199
+ @budgeting_enabled.setter
200
+ def budgeting_enabled(self, budgeting_enabled: 'bool'):
201
+ """Sets the budgeting_enabled of this V1Membership.
202
+
203
+
204
+ :param budgeting_enabled: The budgeting_enabled of this V1Membership. # noqa: E501
205
+ :type: bool
206
+ """
207
+
208
+ self._budgeting_enabled = budgeting_enabled
209
+
179
210
  @property
180
211
  def created_at(self) -> 'datetime':
181
212
  """Gets the created_at of this V1Membership. # noqa: E501
@@ -449,6 +480,27 @@ class V1Membership(object):
449
480
 
450
481
  self._next_free_credits_grant = next_free_credits_grant
451
482
 
483
+ @property
484
+ def organization_billing_enabled(self) -> 'bool':
485
+ """Gets the organization_billing_enabled of this V1Membership. # noqa: E501
486
+
487
+
488
+ :return: The organization_billing_enabled of this V1Membership. # noqa: E501
489
+ :rtype: bool
490
+ """
491
+ return self._organization_billing_enabled
492
+
493
+ @organization_billing_enabled.setter
494
+ def organization_billing_enabled(self, organization_billing_enabled: 'bool'):
495
+ """Sets the organization_billing_enabled of this V1Membership.
496
+
497
+
498
+ :param organization_billing_enabled: The organization_billing_enabled of this V1Membership. # noqa: E501
499
+ :type: bool
500
+ """
501
+
502
+ self._organization_billing_enabled = organization_billing_enabled
503
+
452
504
  @property
453
505
  def owner_id(self) -> 'str':
454
506
  """Gets the owner_id of this V1Membership. # noqa: E501