blaxel 0.2.31rc120__py3-none-any.whl → 0.2.32__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 (432) hide show
  1. blaxel/__init__.py +3 -3
  2. blaxel/core/agents/__init__.py +16 -7
  3. blaxel/core/authentication/__init__.py +2 -1
  4. blaxel/core/authentication/devicemode.py +9 -1
  5. blaxel/core/authentication/oauth.py +13 -6
  6. blaxel/core/authentication/types.py +1 -0
  7. blaxel/core/cache/cache.py +10 -3
  8. blaxel/core/client/api/agents/create_agent.py +5 -5
  9. blaxel/core/client/api/agents/delete_agent.py +5 -5
  10. blaxel/core/client/api/agents/get_agent.py +4 -4
  11. blaxel/core/client/api/agents/list_agent_revisions.py +8 -6
  12. blaxel/core/client/api/agents/list_agents.py +5 -5
  13. blaxel/core/client/api/agents/update_agent.py +5 -5
  14. blaxel/core/client/api/compute/create_sandbox.py +5 -5
  15. blaxel/core/client/api/compute/create_sandbox_preview.py +5 -5
  16. blaxel/core/client/api/compute/create_sandbox_preview_token.py +5 -5
  17. blaxel/core/client/api/compute/delete_sandbox.py +5 -5
  18. blaxel/core/client/api/compute/delete_sandbox_preview.py +5 -5
  19. blaxel/core/client/api/compute/delete_sandbox_preview_token.py +11 -7
  20. blaxel/core/client/api/compute/get_sandbox.py +4 -4
  21. blaxel/core/client/api/compute/get_sandbox_preview.py +5 -5
  22. blaxel/core/client/api/compute/list_sandbox_preview_tokens.py +5 -5
  23. blaxel/core/client/api/compute/list_sandbox_previews.py +5 -5
  24. blaxel/core/client/api/compute/list_sandboxes.py +5 -5
  25. blaxel/core/client/api/compute/update_sandbox.py +5 -5
  26. blaxel/core/client/api/compute/update_sandbox_preview.py +5 -5
  27. blaxel/core/client/api/configurations/get_configuration.py +5 -5
  28. blaxel/core/client/api/customdomains/create_custom_domain.py +5 -5
  29. blaxel/core/client/api/customdomains/delete_custom_domain.py +5 -5
  30. blaxel/core/client/api/customdomains/get_custom_domain.py +5 -5
  31. blaxel/core/client/api/customdomains/list_custom_domains.py +5 -5
  32. blaxel/core/client/api/customdomains/update_custom_domain.py +5 -5
  33. blaxel/core/client/api/customdomains/verify_custom_domain.py +5 -5
  34. blaxel/core/client/api/default/get_template.py +5 -5
  35. blaxel/core/client/api/default/list_mcp_hub_definitions.py +5 -5
  36. blaxel/core/client/api/default/list_sandbox_hub_definitions.py +11 -7
  37. blaxel/core/client/api/functions/create_function.py +5 -5
  38. blaxel/core/client/api/functions/delete_function.py +5 -5
  39. blaxel/core/client/api/functions/get_function.py +4 -4
  40. blaxel/core/client/api/functions/list_function_revisions.py +8 -6
  41. blaxel/core/client/api/functions/list_functions.py +5 -5
  42. blaxel/core/client/api/functions/update_function.py +5 -5
  43. blaxel/core/client/api/images/cleanup_images.py +8 -6
  44. blaxel/core/client/api/images/delete_image.py +4 -4
  45. blaxel/core/client/api/images/delete_image_tag.py +4 -4
  46. blaxel/core/client/api/images/get_image.py +5 -5
  47. blaxel/core/client/api/images/list_images.py +5 -5
  48. blaxel/core/client/api/integrations/create_integration_connection.py +5 -5
  49. blaxel/core/client/api/integrations/delete_integration_connection.py +5 -5
  50. blaxel/core/client/api/integrations/get_integration.py +5 -5
  51. blaxel/core/client/api/integrations/get_integration_connection.py +5 -5
  52. blaxel/core/client/api/integrations/get_integration_connection_model.py +3 -3
  53. blaxel/core/client/api/integrations/get_integration_connection_model_endpoint_configurations.py +3 -3
  54. blaxel/core/client/api/integrations/list_integration_connection_models.py +3 -3
  55. blaxel/core/client/api/integrations/list_integration_connections.py +11 -7
  56. blaxel/core/client/api/integrations/update_integration_connection.py +5 -5
  57. blaxel/core/client/api/invitations/list_all_pending_invitations.py +7 -5
  58. blaxel/core/client/api/jobs/create_job.py +5 -5
  59. blaxel/core/client/api/jobs/create_job_execution.py +7 -5
  60. blaxel/core/client/api/jobs/delete_job.py +5 -5
  61. blaxel/core/client/api/jobs/delete_job_execution.py +7 -5
  62. blaxel/core/client/api/jobs/get_job.py +4 -4
  63. blaxel/core/client/api/jobs/get_job_execution.py +7 -5
  64. blaxel/core/client/api/jobs/list_job_executions.py +10 -6
  65. blaxel/core/client/api/jobs/list_job_revisions.py +8 -6
  66. blaxel/core/client/api/jobs/list_jobs.py +5 -5
  67. blaxel/core/client/api/jobs/update_job.py +5 -5
  68. blaxel/core/client/api/locations/list_locations.py +8 -6
  69. blaxel/core/client/api/models/create_model.py +5 -5
  70. blaxel/core/client/api/models/delete_model.py +5 -5
  71. blaxel/core/client/api/models/get_model.py +5 -5
  72. blaxel/core/client/api/models/list_model_revisions.py +8 -6
  73. blaxel/core/client/api/models/list_models.py +5 -5
  74. blaxel/core/client/api/models/update_model.py +5 -5
  75. blaxel/core/client/api/policies/create_policy.py +5 -5
  76. blaxel/core/client/api/policies/delete_policy.py +5 -5
  77. blaxel/core/client/api/policies/get_policy.py +5 -5
  78. blaxel/core/client/api/policies/list_policies.py +5 -5
  79. blaxel/core/client/api/policies/update_policy.py +5 -5
  80. blaxel/core/client/api/public_ipslist/list_public_ips.py +5 -5
  81. blaxel/core/client/api/service_accounts/create_api_key_for_service_account.py +5 -5
  82. blaxel/core/client/api/service_accounts/create_workspace_service_account.py +11 -7
  83. blaxel/core/client/api/service_accounts/delete_api_key_for_service_account.py +3 -3
  84. blaxel/core/client/api/service_accounts/delete_workspace_service_account.py +11 -7
  85. blaxel/core/client/api/service_accounts/get_workspace_service_accounts.py +8 -6
  86. blaxel/core/client/api/service_accounts/list_api_keys_for_service_account.py +5 -5
  87. blaxel/core/client/api/service_accounts/update_workspace_service_account.py +11 -7
  88. blaxel/core/client/api/templates/list_templates.py +5 -5
  89. blaxel/core/client/api/volume_templates/create_volume_template.py +4 -4
  90. blaxel/core/client/api/volume_templates/delete_volume_template.py +5 -5
  91. blaxel/core/client/api/volume_templates/delete_volume_template_version.py +4 -4
  92. blaxel/core/client/api/volume_templates/get_volume_template.py +5 -5
  93. blaxel/core/client/api/volume_templates/list_volume_templates.py +8 -6
  94. blaxel/core/client/api/volume_templates/update_volume_template.py +4 -4
  95. blaxel/core/client/api/volumes/create_volume.py +5 -5
  96. blaxel/core/client/api/volumes/delete_volume.py +5 -5
  97. blaxel/core/client/api/volumes/get_volume.py +5 -5
  98. blaxel/core/client/api/volumes/list_volumes.py +5 -5
  99. blaxel/core/client/api/workspaces/accept_workspace_invitation.py +10 -6
  100. blaxel/core/client/api/workspaces/check_workspace_availability.py +5 -5
  101. blaxel/core/client/api/workspaces/create_workspace.py +5 -5
  102. blaxel/core/client/api/workspaces/decline_workspace_invitation.py +5 -5
  103. blaxel/core/client/api/workspaces/delete_workspace.py +5 -5
  104. blaxel/core/client/api/workspaces/get_workspace.py +5 -5
  105. blaxel/core/client/api/workspaces/invite_workspace_user.py +10 -6
  106. blaxel/core/client/api/workspaces/leave_workspace.py +4 -4
  107. blaxel/core/client/api/workspaces/list_workspace_users.py +5 -5
  108. blaxel/core/client/api/workspaces/list_workspaces.py +5 -5
  109. blaxel/core/client/api/workspaces/remove_workspace_user.py +3 -3
  110. blaxel/core/client/api/workspaces/update_workspace.py +5 -5
  111. blaxel/core/client/api/workspaces/update_workspace_user_role.py +10 -6
  112. blaxel/core/client/client.py +5 -19
  113. blaxel/core/client/models/acl.py +3 -3
  114. blaxel/core/client/models/agent.py +12 -5
  115. blaxel/core/client/models/agent_spec.py +22 -7
  116. blaxel/core/client/models/api_key.py +6 -6
  117. blaxel/core/client/models/billable_time_metric.py +3 -4
  118. blaxel/core/client/models/check_workspace_availability_body.py +1 -1
  119. blaxel/core/client/models/cleanup_images_response_200.py +1 -1
  120. blaxel/core/client/models/configuration.py +2 -3
  121. blaxel/core/client/models/continent.py +2 -2
  122. blaxel/core/client/models/core_event.py +3 -3
  123. blaxel/core/client/models/core_spec.py +14 -5
  124. blaxel/core/client/models/core_spec_configurations.py +1 -2
  125. blaxel/core/client/models/country.py +2 -2
  126. blaxel/core/client/models/create_api_key_for_service_account_body.py +1 -1
  127. blaxel/core/client/models/create_job_execution_request.py +4 -5
  128. blaxel/core/client/models/create_job_execution_request_tasks_item.py +1 -1
  129. blaxel/core/client/models/create_job_execution_response.py +4 -5
  130. blaxel/core/client/models/create_job_execution_response_tasks_item.py +1 -1
  131. blaxel/core/client/models/create_workspace_service_account_body.py +1 -1
  132. blaxel/core/client/models/create_workspace_service_account_response_200.py +1 -1
  133. blaxel/core/client/models/custom_domain.py +6 -3
  134. blaxel/core/client/models/custom_domain_metadata.py +6 -7
  135. blaxel/core/client/models/custom_domain_spec.py +10 -7
  136. blaxel/core/client/models/custom_domain_spec_txt_records.py +1 -1
  137. blaxel/core/client/models/delete_sandbox_preview_token_response_200.py +1 -1
  138. blaxel/core/client/models/delete_volume_template_version_response_200.py +6 -3
  139. blaxel/core/client/models/delete_workspace_service_account_response_200.py +1 -1
  140. blaxel/core/client/models/entrypoint.py +4 -3
  141. blaxel/core/client/models/entrypoint_env.py +1 -1
  142. blaxel/core/client/models/expiration_policy.py +2 -2
  143. blaxel/core/client/models/flavor.py +2 -2
  144. blaxel/core/client/models/form.py +6 -3
  145. blaxel/core/client/models/form_config.py +1 -1
  146. blaxel/core/client/models/form_oauth.py +1 -1
  147. blaxel/core/client/models/form_secrets.py +1 -1
  148. blaxel/core/client/models/function.py +12 -5
  149. blaxel/core/client/models/function_spec.py +17 -6
  150. blaxel/core/client/models/get_workspace_service_accounts_response_200_item.py +1 -1
  151. blaxel/core/client/models/histogram_bucket.py +1 -1
  152. blaxel/core/client/models/histogram_stats.py +1 -1
  153. blaxel/core/client/models/image.py +6 -3
  154. blaxel/core/client/models/image_metadata.py +6 -6
  155. blaxel/core/client/models/image_spec.py +1 -2
  156. blaxel/core/client/models/image_tag.py +3 -3
  157. blaxel/core/client/models/integration.py +12 -5
  158. blaxel/core/client/models/integration_additional_infos.py +1 -1
  159. blaxel/core/client/models/integration_connection.py +6 -3
  160. blaxel/core/client/models/integration_connection_spec.py +1 -2
  161. blaxel/core/client/models/integration_connection_spec_config.py +1 -1
  162. blaxel/core/client/models/integration_connection_spec_secret.py +1 -1
  163. blaxel/core/client/models/integration_endpoint.py +9 -6
  164. blaxel/core/client/models/integration_endpoint_token.py +1 -1
  165. blaxel/core/client/models/integration_endpoints.py +1 -3
  166. blaxel/core/client/models/integration_headers.py +1 -1
  167. blaxel/core/client/models/integration_model.py +1 -1
  168. blaxel/core/client/models/integration_organization.py +2 -2
  169. blaxel/core/client/models/integration_query_params.py +1 -1
  170. blaxel/core/client/models/integration_repository.py +2 -2
  171. blaxel/core/client/models/invite_workspace_user_body.py +1 -1
  172. blaxel/core/client/models/job.py +12 -5
  173. blaxel/core/client/models/job_execution.py +6 -3
  174. blaxel/core/client/models/job_execution_config.py +3 -3
  175. blaxel/core/client/models/job_execution_metadata.py +7 -7
  176. blaxel/core/client/models/job_execution_spec.py +1 -2
  177. blaxel/core/client/models/job_execution_stats.py +1 -1
  178. blaxel/core/client/models/job_execution_task.py +6 -3
  179. blaxel/core/client/models/job_execution_task_condition.py +3 -3
  180. blaxel/core/client/models/job_execution_task_metadata.py +6 -6
  181. blaxel/core/client/models/job_execution_task_spec.py +2 -2
  182. blaxel/core/client/models/job_metrics.py +15 -12
  183. blaxel/core/client/models/job_metrics_executions_total.py +1 -1
  184. blaxel/core/client/models/job_metrics_tasks_total.py +1 -1
  185. blaxel/core/client/models/job_spec.py +17 -6
  186. blaxel/core/client/models/jobs_chart_value.py +1 -1
  187. blaxel/core/client/models/jobs_network_chart.py +1 -2
  188. blaxel/core/client/models/jobs_success_failed_chart.py +11 -4
  189. blaxel/core/client/models/jobs_total.py +1 -1
  190. blaxel/core/client/models/last_n_requests_metric.py +4 -4
  191. blaxel/core/client/models/latency_metric.py +10 -7
  192. blaxel/core/client/models/location_response.py +1 -2
  193. blaxel/core/client/models/logs_response.py +1 -1
  194. blaxel/core/client/models/logs_response_data.py +4 -4
  195. blaxel/core/client/models/mcp_definition.py +11 -8
  196. blaxel/core/client/models/mcp_definition_entrypoint.py +1 -1
  197. blaxel/core/client/models/mcp_definition_form.py +1 -1
  198. blaxel/core/client/models/memory_allocation_by_name.py +1 -1
  199. blaxel/core/client/models/memory_allocation_metric.py +2 -2
  200. blaxel/core/client/models/metadata.py +6 -7
  201. blaxel/core/client/models/metadata_labels.py +1 -1
  202. blaxel/core/client/models/metric.py +2 -2
  203. blaxel/core/client/models/metrics.py +24 -11
  204. blaxel/core/client/models/metrics_models.py +1 -1
  205. blaxel/core/client/models/metrics_request_total_per_code.py +1 -1
  206. blaxel/core/client/models/metrics_rps_per_code.py +1 -1
  207. blaxel/core/client/models/model.py +12 -5
  208. blaxel/core/client/models/model_spec.py +14 -5
  209. blaxel/core/client/models/o_auth.py +2 -2
  210. blaxel/core/client/models/owner_fields.py +3 -3
  211. blaxel/core/client/models/pending_invitation.py +6 -6
  212. blaxel/core/client/models/pending_invitation_accept.py +6 -3
  213. blaxel/core/client/models/pending_invitation_render.py +14 -7
  214. blaxel/core/client/models/pending_invitation_render_invited_by.py +1 -1
  215. blaxel/core/client/models/pending_invitation_render_workspace.py +2 -2
  216. blaxel/core/client/models/pending_invitation_workspace_details.py +1 -1
  217. blaxel/core/client/models/pod_template_spec.py +1 -1
  218. blaxel/core/client/models/policy.py +6 -3
  219. blaxel/core/client/models/policy_location.py +2 -2
  220. blaxel/core/client/models/policy_max_tokens.py +5 -3
  221. blaxel/core/client/models/policy_spec.py +15 -8
  222. blaxel/core/client/models/port.py +1 -1
  223. blaxel/core/client/models/preview.py +6 -3
  224. blaxel/core/client/models/preview_metadata.py +8 -8
  225. blaxel/core/client/models/preview_spec.py +5 -6
  226. blaxel/core/client/models/preview_spec_request_headers.py +1 -1
  227. blaxel/core/client/models/preview_spec_response_headers.py +1 -1
  228. blaxel/core/client/models/preview_token.py +6 -3
  229. blaxel/core/client/models/preview_token_metadata.py +4 -4
  230. blaxel/core/client/models/preview_token_spec.py +2 -2
  231. blaxel/core/client/models/private_location.py +1 -1
  232. blaxel/core/client/models/public_ip.py +3 -3
  233. blaxel/core/client/models/public_ips.py +1 -2
  234. blaxel/core/client/models/region.py +2 -2
  235. blaxel/core/client/models/repository.py +2 -2
  236. blaxel/core/client/models/request_duration_over_time_metric.py +1 -1
  237. blaxel/core/client/models/request_duration_over_time_metrics.py +4 -3
  238. blaxel/core/client/models/request_total_by_origin_metric.py +23 -10
  239. blaxel/core/client/models/request_total_by_origin_metric_request_total_by_origin.py +1 -1
  240. blaxel/core/client/models/request_total_by_origin_metric_request_total_by_origin_and_code.py +1 -1
  241. blaxel/core/client/models/request_total_metric.py +14 -7
  242. blaxel/core/client/models/request_total_metric_request_total_per_code.py +1 -1
  243. blaxel/core/client/models/request_total_metric_rps_per_code.py +1 -1
  244. blaxel/core/client/models/request_total_response_data.py +5 -5
  245. blaxel/core/client/models/resource.py +6 -4
  246. blaxel/core/client/models/resource_log.py +1 -1
  247. blaxel/core/client/models/resource_log_chart.py +1 -1
  248. blaxel/core/client/models/resource_log_response.py +2 -2
  249. blaxel/core/client/models/resource_metrics.py +95 -40
  250. blaxel/core/client/models/resource_metrics_request_total_per_code.py +1 -1
  251. blaxel/core/client/models/resource_metrics_request_total_per_code_previous.py +1 -1
  252. blaxel/core/client/models/resource_metrics_rps_per_code.py +1 -1
  253. blaxel/core/client/models/resource_metrics_rps_per_code_previous.py +1 -1
  254. blaxel/core/client/models/resource_trace.py +5 -5
  255. blaxel/core/client/models/revision_configuration.py +3 -3
  256. blaxel/core/client/models/revision_metadata.py +5 -5
  257. blaxel/core/client/models/runtime.py +9 -10
  258. blaxel/core/client/models/runtime_configuration.py +1 -1
  259. blaxel/core/client/models/runtime_startup_probe.py +1 -1
  260. blaxel/core/client/models/sandbox.py +13 -6
  261. blaxel/core/client/models/sandbox_definition.py +3 -4
  262. blaxel/core/client/models/sandbox_lifecycle.py +2 -3
  263. blaxel/core/client/models/sandbox_metrics.py +1 -1
  264. blaxel/core/client/models/sandbox_spec.py +25 -8
  265. blaxel/core/client/models/serverless_config.py +4 -5
  266. blaxel/core/client/models/serverless_config_configuration.py +1 -1
  267. blaxel/core/client/models/spec_configuration.py +1 -1
  268. blaxel/core/client/models/start_sandbox.py +6 -3
  269. blaxel/core/client/models/stop_sandbox.py +6 -3
  270. blaxel/core/client/models/store_agent.py +6 -7
  271. blaxel/core/client/models/store_agent_labels.py +1 -1
  272. blaxel/core/client/models/store_configuration.py +7 -6
  273. blaxel/core/client/models/store_configuration_option.py +2 -2
  274. blaxel/core/client/models/template.py +6 -7
  275. blaxel/core/client/models/template_variable.py +1 -1
  276. blaxel/core/client/models/time_fields.py +3 -3
  277. blaxel/core/client/models/time_to_first_token_over_time_metrics.py +7 -4
  278. blaxel/core/client/models/token_rate_metric.py +3 -3
  279. blaxel/core/client/models/token_rate_metrics.py +4 -5
  280. blaxel/core/client/models/token_total_metric.py +13 -7
  281. blaxel/core/client/models/trace_ids_response.py +1 -1
  282. blaxel/core/client/models/trigger.py +2 -3
  283. blaxel/core/client/models/trigger_configuration.py +4 -5
  284. blaxel/core/client/models/trigger_configuration_task.py +1 -1
  285. blaxel/core/client/models/update_workspace_service_account_body.py +1 -1
  286. blaxel/core/client/models/update_workspace_service_account_response_200.py +1 -1
  287. blaxel/core/client/models/update_workspace_user_role_body.py +1 -1
  288. blaxel/core/client/models/volume.py +13 -6
  289. blaxel/core/client/models/volume_attachment.py +3 -3
  290. blaxel/core/client/models/volume_spec.py +2 -2
  291. blaxel/core/client/models/volume_state.py +2 -2
  292. blaxel/core/client/models/volume_template.py +6 -3
  293. blaxel/core/client/models/volume_template_spec.py +2 -2
  294. blaxel/core/client/models/volume_template_state.py +6 -4
  295. blaxel/core/client/models/volume_template_version.py +4 -4
  296. blaxel/core/client/models/websocket_channel.py +4 -4
  297. blaxel/core/client/models/websocket_message.py +3 -3
  298. blaxel/core/client/models/workspace.py +13 -10
  299. blaxel/core/client/models/workspace_labels.py +1 -1
  300. blaxel/core/client/models/workspace_runtime.py +1 -1
  301. blaxel/core/client/models/workspace_user.py +1 -1
  302. blaxel/core/client/response_interceptor.py +3 -1
  303. blaxel/core/common/autoload.py +9 -11
  304. blaxel/core/common/env.py +10 -8
  305. blaxel/core/common/settings.py +7 -5
  306. blaxel/core/common/webhook.py +0 -1
  307. blaxel/core/jobs/__init__.py +13 -3
  308. blaxel/core/mcp/client.py +8 -2
  309. blaxel/core/mcp/server.py +8 -2
  310. blaxel/core/models/__init__.py +6 -5
  311. blaxel/core/sandbox/__init__.py +1 -1
  312. blaxel/core/sandbox/client/api/codegen/get_codegen_reranking_path.py +10 -6
  313. blaxel/core/sandbox/client/api/fastapply/put_codegen_fastapply_path.py +10 -6
  314. blaxel/core/sandbox/client/api/filesystem/delete_filesystem_multipart_upload_id_abort.py +10 -6
  315. blaxel/core/sandbox/client/api/filesystem/delete_filesystem_path.py +10 -6
  316. blaxel/core/sandbox/client/api/filesystem/delete_filesystem_tree_path.py +10 -6
  317. blaxel/core/sandbox/client/api/filesystem/get_filesystem_content_search_path.py +7 -5
  318. blaxel/core/sandbox/client/api/filesystem/get_filesystem_find_path.py +10 -6
  319. blaxel/core/sandbox/client/api/filesystem/get_filesystem_multipart.py +4 -4
  320. blaxel/core/sandbox/client/api/filesystem/get_filesystem_multipart_upload_id_parts.py +4 -4
  321. blaxel/core/sandbox/client/api/filesystem/get_filesystem_path.py +4 -4
  322. blaxel/core/sandbox/client/api/filesystem/get_filesystem_search_path.py +10 -6
  323. blaxel/core/sandbox/client/api/filesystem/get_filesystem_tree_path.py +4 -4
  324. blaxel/core/sandbox/client/api/filesystem/get_watch_filesystem_path.py +10 -6
  325. blaxel/core/sandbox/client/api/filesystem/post_filesystem_multipart_initiate_path.py +4 -4
  326. blaxel/core/sandbox/client/api/filesystem/post_filesystem_multipart_upload_id_complete.py +10 -6
  327. blaxel/core/sandbox/client/api/filesystem/put_filesystem_multipart_upload_id_part.py +4 -4
  328. blaxel/core/sandbox/client/api/filesystem/put_filesystem_path.py +10 -6
  329. blaxel/core/sandbox/client/api/filesystem/put_filesystem_tree_path.py +4 -4
  330. blaxel/core/sandbox/client/api/network/delete_network_process_pid_monitor.py +4 -4
  331. blaxel/core/sandbox/client/api/network/get_network_process_pid_ports.py +4 -4
  332. blaxel/core/sandbox/client/api/network/post_network_process_pid_monitor.py +4 -4
  333. blaxel/core/sandbox/client/api/process/delete_process_identifier.py +10 -6
  334. blaxel/core/sandbox/client/api/process/delete_process_identifier_kill.py +10 -6
  335. blaxel/core/sandbox/client/api/process/get_process.py +8 -6
  336. blaxel/core/sandbox/client/api/process/get_process_identifier.py +10 -6
  337. blaxel/core/sandbox/client/api/process/get_process_identifier_logs.py +10 -6
  338. blaxel/core/sandbox/client/api/process/get_process_identifier_logs_stream.py +10 -6
  339. blaxel/core/sandbox/client/api/process/post_process.py +10 -6
  340. blaxel/core/sandbox/client/api/root/delete.py +5 -5
  341. blaxel/core/sandbox/client/api/root/get.py +5 -5
  342. blaxel/core/sandbox/client/api/root/options.py +5 -5
  343. blaxel/core/sandbox/client/api/root/patch.py +5 -5
  344. blaxel/core/sandbox/client/api/root/post.py +5 -5
  345. blaxel/core/sandbox/client/api/root/put.py +5 -5
  346. blaxel/core/sandbox/client/client.py +3 -1
  347. blaxel/core/sandbox/client/models/apply_edit_request.py +2 -2
  348. blaxel/core/sandbox/client/models/apply_edit_response.py +3 -3
  349. blaxel/core/sandbox/client/models/content_search_match.py +1 -1
  350. blaxel/core/sandbox/client/models/content_search_response.py +1 -1
  351. blaxel/core/sandbox/client/models/delete_network_process_pid_monitor_response_200.py +1 -1
  352. blaxel/core/sandbox/client/models/directory.py +1 -1
  353. blaxel/core/sandbox/client/models/error_response.py +1 -1
  354. blaxel/core/sandbox/client/models/file.py +2 -2
  355. blaxel/core/sandbox/client/models/file_request.py +2 -2
  356. blaxel/core/sandbox/client/models/file_with_content.py +2 -2
  357. blaxel/core/sandbox/client/models/filesystem_multipart_upload.py +3 -3
  358. blaxel/core/sandbox/client/models/filesystem_multipart_upload_parts.py +4 -2
  359. blaxel/core/sandbox/client/models/filesystem_uploaded_part.py +3 -3
  360. blaxel/core/sandbox/client/models/find_match.py +2 -2
  361. blaxel/core/sandbox/client/models/find_response.py +1 -1
  362. blaxel/core/sandbox/client/models/fuzzy_search_match.py +2 -2
  363. blaxel/core/sandbox/client/models/fuzzy_search_response.py +1 -1
  364. blaxel/core/sandbox/client/models/get_network_process_pid_ports_response_200.py +1 -1
  365. blaxel/core/sandbox/client/models/multipart_complete_request.py +1 -1
  366. blaxel/core/sandbox/client/models/multipart_initiate_request.py +1 -1
  367. blaxel/core/sandbox/client/models/multipart_initiate_response.py +2 -2
  368. blaxel/core/sandbox/client/models/multipart_list_parts_response.py +2 -2
  369. blaxel/core/sandbox/client/models/multipart_list_uploads_response.py +1 -1
  370. blaxel/core/sandbox/client/models/multipart_part_info.py +2 -2
  371. blaxel/core/sandbox/client/models/multipart_upload_part_response.py +2 -2
  372. blaxel/core/sandbox/client/models/port_monitor_request.py +1 -1
  373. blaxel/core/sandbox/client/models/post_network_process_pid_monitor_response_200.py +1 -1
  374. blaxel/core/sandbox/client/models/process_logs.py +1 -1
  375. blaxel/core/sandbox/client/models/process_request.py +6 -6
  376. blaxel/core/sandbox/client/models/process_request_env.py +1 -1
  377. blaxel/core/sandbox/client/models/process_response.py +8 -8
  378. blaxel/core/sandbox/client/models/put_filesystem_multipart_upload_id_part_body.py +1 -1
  379. blaxel/core/sandbox/client/models/ranked_file.py +1 -1
  380. blaxel/core/sandbox/client/models/reranking_response.py +1 -1
  381. blaxel/core/sandbox/client/models/subdirectory.py +1 -1
  382. blaxel/core/sandbox/client/models/success_response.py +1 -1
  383. blaxel/core/sandbox/client/models/tree_request.py +1 -1
  384. blaxel/core/sandbox/client/models/tree_request_files.py +1 -1
  385. blaxel/core/sandbox/client/models/welcome_response.py +1 -1
  386. blaxel/core/sandbox/default/__init__.py +0 -1
  387. blaxel/core/sandbox/default/action.py +3 -3
  388. blaxel/core/sandbox/default/codegen.py +2 -4
  389. blaxel/core/sandbox/default/filesystem.py +38 -82
  390. blaxel/core/sandbox/default/interpreter.py +17 -10
  391. blaxel/core/sandbox/default/preview.py +6 -2
  392. blaxel/core/sandbox/default/process.py +20 -11
  393. blaxel/core/sandbox/default/sandbox.py +24 -14
  394. blaxel/core/sandbox/sync/__init__.py +0 -2
  395. blaxel/core/sandbox/sync/action.py +2 -3
  396. blaxel/core/sandbox/sync/codegen.py +1 -5
  397. blaxel/core/sandbox/sync/filesystem.py +17 -6
  398. blaxel/core/sandbox/sync/interpreter.py +10 -6
  399. blaxel/core/sandbox/sync/network.py +0 -2
  400. blaxel/core/sandbox/sync/preview.py +76 -33
  401. blaxel/core/sandbox/sync/process.py +27 -12
  402. blaxel/core/sandbox/sync/sandbox.py +30 -18
  403. blaxel/core/sandbox/sync/session.py +6 -4
  404. blaxel/core/sandbox/types.py +2 -1
  405. blaxel/core/tools/__init__.py +30 -6
  406. blaxel/core/tools/common.py +1 -1
  407. blaxel/core/tools/types.py +2 -1
  408. blaxel/crewai/model.py +20 -5
  409. blaxel/googleadk/__init__.py +1 -1
  410. blaxel/googleadk/tools.py +3 -5
  411. blaxel/langgraph/custom/gemini.py +126 -133
  412. blaxel/langgraph/model.py +54 -50
  413. blaxel/langgraph/tools.py +9 -3
  414. blaxel/llamaindex/custom/cohere.py +25 -16
  415. blaxel/llamaindex/model.py +44 -57
  416. blaxel/llamaindex/tools.py +2 -3
  417. blaxel/pydantic/custom/gemini.py +3 -3
  418. blaxel/pydantic/tools.py +2 -4
  419. blaxel/telemetry/exporters.py +10 -3
  420. blaxel/telemetry/instrumentation/blaxel_langgraph.py +4 -2
  421. blaxel/telemetry/instrumentation/blaxel_langgraph_gemini.py +22 -5
  422. blaxel/telemetry/instrumentation/utils.py +3 -3
  423. blaxel/telemetry/log/log.py +2 -3
  424. blaxel/telemetry/log/logger.py +21 -15
  425. blaxel/telemetry/span.py +10 -6
  426. {blaxel-0.2.31rc120.dist-info → blaxel-0.2.32.dist-info}/METADATA +2 -2
  427. blaxel-0.2.32.dist-info/RECORD +506 -0
  428. blaxel/core/client/api/compute/start_sandbox.py +0 -157
  429. blaxel/core/client/api/compute/stop_sandbox.py +0 -157
  430. blaxel-0.2.31rc120.dist-info/RECORD +0 -508
  431. {blaxel-0.2.31rc120.dist-info → blaxel-0.2.32.dist-info}/WHEEL +0 -0
  432. {blaxel-0.2.31rc120.dist-info → blaxel-0.2.32.dist-info}/licenses/LICENSE +0 -0
@@ -17,7 +17,6 @@ class IntegrationEndpoints:
17
17
  additional_properties: dict[str, "IntegrationEndpoint"] = _attrs_field(init=False, factory=dict)
18
18
 
19
19
  def to_dict(self) -> dict[str, Any]:
20
-
21
20
  field_dict: dict[str, Any] = {}
22
21
  for prop_name, prop in self.additional_properties.items():
23
22
  if type(prop) is dict:
@@ -28,7 +27,7 @@ class IntegrationEndpoints:
28
27
  return field_dict
29
28
 
30
29
  @classmethod
31
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
30
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
32
31
  from ..models.integration_endpoint import IntegrationEndpoint
33
32
 
34
33
  if not src_dict:
@@ -36,7 +35,6 @@ class IntegrationEndpoints:
36
35
  d = src_dict.copy()
37
36
  integration_endpoints = cls()
38
37
 
39
-
40
38
  additional_properties = {}
41
39
  for prop_name, prop_dict in d.items():
42
40
  additional_property = IntegrationEndpoint.from_dict(prop_dict)
@@ -19,7 +19,7 @@ class IntegrationHeaders:
19
19
  return field_dict
20
20
 
21
21
  @classmethod
22
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
22
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
23
23
  if not src_dict:
24
24
  return None
25
25
  d = src_dict.copy()
@@ -99,7 +99,7 @@ class IntegrationModel:
99
99
  return field_dict
100
100
 
101
101
  @classmethod
102
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
102
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
103
103
  if not src_dict:
104
104
  return None
105
105
  d = src_dict.copy()
@@ -49,13 +49,13 @@ class IntegrationOrganization:
49
49
  return field_dict
50
50
 
51
51
  @classmethod
52
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
52
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
53
53
  if not src_dict:
54
54
  return None
55
55
  d = src_dict.copy()
56
56
  avatar_url = d.pop("avatar_url", UNSET)
57
57
 
58
- display_name = d.pop("displayName", UNSET)
58
+ display_name = d.pop("displayName", d.pop("display_name", UNSET))
59
59
 
60
60
  id = d.pop("id", UNSET)
61
61
 
@@ -19,7 +19,7 @@ class IntegrationQueryParams:
19
19
  return field_dict
20
20
 
21
21
  @classmethod
22
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
22
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
23
23
  if not src_dict:
24
24
  return None
25
25
  d = src_dict.copy()
@@ -55,13 +55,13 @@ class IntegrationRepository:
55
55
  return field_dict
56
56
 
57
57
  @classmethod
58
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
58
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
59
59
  if not src_dict:
60
60
  return None
61
61
  d = src_dict.copy()
62
62
  id = d.pop("id", UNSET)
63
63
 
64
- is_bl = d.pop("isBl", UNSET)
64
+ is_bl = d.pop("isBl", d.pop("is_bl", UNSET))
65
65
 
66
66
  name = d.pop("name", UNSET)
67
67
 
@@ -30,7 +30,7 @@ class InviteWorkspaceUserBody:
30
30
  return field_dict
31
31
 
32
32
  @classmethod
33
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
33
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
34
34
  if not src_dict:
35
35
  return None
36
36
  d = src_dict.copy()
@@ -32,7 +32,6 @@ class Job:
32
32
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
33
 
34
34
  def to_dict(self) -> dict[str, Any]:
35
-
36
35
  events: Union[Unset, list[dict[str, Any]]] = UNSET
37
36
  if not isinstance(self.events, Unset):
38
37
  events = []
@@ -40,11 +39,17 @@ class Job:
40
39
  if type(componentsschemas_core_events_item_data) is dict:
41
40
  componentsschemas_core_events_item = componentsschemas_core_events_item_data
42
41
  else:
43
- componentsschemas_core_events_item = componentsschemas_core_events_item_data.to_dict()
42
+ componentsschemas_core_events_item = (
43
+ componentsschemas_core_events_item_data.to_dict()
44
+ )
44
45
  events.append(componentsschemas_core_events_item)
45
46
 
46
47
  metadata: Union[Unset, dict[str, Any]] = UNSET
47
- if self.metadata and not isinstance(self.metadata, Unset) and not isinstance(self.metadata, dict):
48
+ if (
49
+ self.metadata
50
+ and not isinstance(self.metadata, Unset)
51
+ and not isinstance(self.metadata, dict)
52
+ ):
48
53
  metadata = self.metadata.to_dict()
49
54
  elif self.metadata and isinstance(self.metadata, dict):
50
55
  metadata = self.metadata
@@ -72,7 +77,7 @@ class Job:
72
77
  return field_dict
73
78
 
74
79
  @classmethod
75
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
80
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
76
81
  from ..models.core_event import CoreEvent
77
82
  from ..models.job_spec import JobSpec
78
83
  from ..models.metadata import Metadata
@@ -83,7 +88,9 @@ class Job:
83
88
  events = []
84
89
  _events = d.pop("events", UNSET)
85
90
  for componentsschemas_core_events_item_data in _events or []:
86
- componentsschemas_core_events_item = CoreEvent.from_dict(componentsschemas_core_events_item_data)
91
+ componentsschemas_core_events_item = CoreEvent.from_dict(
92
+ componentsschemas_core_events_item_data
93
+ )
87
94
 
88
95
  events.append(componentsschemas_core_events_item)
89
96
 
@@ -35,9 +35,12 @@ class JobExecution:
35
35
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
36
36
 
37
37
  def to_dict(self) -> dict[str, Any]:
38
-
39
38
  metadata: Union[Unset, dict[str, Any]] = UNSET
40
- if self.metadata and not isinstance(self.metadata, Unset) and not isinstance(self.metadata, dict):
39
+ if (
40
+ self.metadata
41
+ and not isinstance(self.metadata, Unset)
42
+ and not isinstance(self.metadata, dict)
43
+ ):
41
44
  metadata = self.metadata.to_dict()
42
45
  elif self.metadata and isinstance(self.metadata, dict):
43
46
  metadata = self.metadata
@@ -83,7 +86,7 @@ class JobExecution:
83
86
  return field_dict
84
87
 
85
88
  @classmethod
86
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
89
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
87
90
  from ..models.job_execution_metadata import JobExecutionMetadata
88
91
  from ..models.job_execution_spec import JobExecutionSpec
89
92
  from ..models.job_execution_stats import JobExecutionStats
@@ -43,13 +43,13 @@ class JobExecutionConfig:
43
43
  return field_dict
44
44
 
45
45
  @classmethod
46
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
46
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
47
47
  if not src_dict:
48
48
  return None
49
49
  d = src_dict.copy()
50
- max_concurrent_tasks = d.pop("maxConcurrentTasks", UNSET)
50
+ max_concurrent_tasks = d.pop("maxConcurrentTasks", d.pop("max_concurrent_tasks", UNSET))
51
51
 
52
- max_retries = d.pop("maxRetries", UNSET)
52
+ max_retries = d.pop("maxRetries", d.pop("max_retries", UNSET))
53
53
 
54
54
  timeout = d.pop("timeout", UNSET)
55
55
 
@@ -85,27 +85,27 @@ class JobExecutionMetadata:
85
85
  return field_dict
86
86
 
87
87
  @classmethod
88
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
88
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
89
89
  if not src_dict:
90
90
  return None
91
91
  d = src_dict.copy()
92
92
  cluster = d.pop("cluster", UNSET)
93
93
 
94
- completed_at = d.pop("completedAt", UNSET)
94
+ completed_at = d.pop("completedAt", d.pop("completed_at", UNSET))
95
95
 
96
- created_at = d.pop("createdAt", UNSET)
96
+ created_at = d.pop("createdAt", d.pop("created_at", UNSET))
97
97
 
98
- deleted_at = d.pop("deletedAt", UNSET)
98
+ deleted_at = d.pop("deletedAt", d.pop("deleted_at", UNSET))
99
99
 
100
- expired_at = d.pop("expiredAt", UNSET)
100
+ expired_at = d.pop("expiredAt", d.pop("expired_at", UNSET))
101
101
 
102
102
  id = d.pop("id", UNSET)
103
103
 
104
104
  job = d.pop("job", UNSET)
105
105
 
106
- started_at = d.pop("startedAt", UNSET)
106
+ started_at = d.pop("startedAt", d.pop("started_at", UNSET))
107
107
 
108
- updated_at = d.pop("updatedAt", UNSET)
108
+ updated_at = d.pop("updatedAt", d.pop("updated_at", UNSET))
109
109
 
110
110
  workspace = d.pop("workspace", UNSET)
111
111
 
@@ -28,7 +28,6 @@ class JobExecutionSpec:
28
28
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
29
29
 
30
30
  def to_dict(self) -> dict[str, Any]:
31
-
32
31
  parallelism = self.parallelism
33
32
 
34
33
  tasks: Union[Unset, list[dict[str, Any]]] = UNSET
@@ -56,7 +55,7 @@ class JobExecutionSpec:
56
55
  return field_dict
57
56
 
58
57
  @classmethod
59
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
58
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
60
59
  from ..models.job_execution_task import JobExecutionTask
61
60
 
62
61
  if not src_dict:
@@ -61,7 +61,7 @@ class JobExecutionStats:
61
61
  return field_dict
62
62
 
63
63
  @classmethod
64
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
64
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
65
65
  if not src_dict:
66
66
  return None
67
67
  d = src_dict.copy()
@@ -32,7 +32,6 @@ class JobExecutionTask:
32
32
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
33
 
34
34
  def to_dict(self) -> dict[str, Any]:
35
-
36
35
  conditions: Union[Unset, list[dict[str, Any]]] = UNSET
37
36
  if not isinstance(self.conditions, Unset):
38
37
  conditions = []
@@ -44,7 +43,11 @@ class JobExecutionTask:
44
43
  conditions.append(conditions_item)
45
44
 
46
45
  metadata: Union[Unset, dict[str, Any]] = UNSET
47
- if self.metadata and not isinstance(self.metadata, Unset) and not isinstance(self.metadata, dict):
46
+ if (
47
+ self.metadata
48
+ and not isinstance(self.metadata, Unset)
49
+ and not isinstance(self.metadata, dict)
50
+ ):
48
51
  metadata = self.metadata.to_dict()
49
52
  elif self.metadata and isinstance(self.metadata, dict):
50
53
  metadata = self.metadata
@@ -72,7 +75,7 @@ class JobExecutionTask:
72
75
  return field_dict
73
76
 
74
77
  @classmethod
75
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
78
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
76
79
  from ..models.job_execution_task_condition import JobExecutionTaskCondition
77
80
  from ..models.job_execution_task_metadata import JobExecutionTaskMetadata
78
81
  from ..models.job_execution_task_spec import JobExecutionTaskSpec
@@ -61,11 +61,11 @@ class JobExecutionTaskCondition:
61
61
  return field_dict
62
62
 
63
63
  @classmethod
64
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
64
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
65
65
  if not src_dict:
66
66
  return None
67
67
  d = src_dict.copy()
68
- execution_reason = d.pop("executionReason", UNSET)
68
+ execution_reason = d.pop("executionReason", d.pop("execution_reason", UNSET))
69
69
 
70
70
  message = d.pop("message", UNSET)
71
71
 
@@ -75,7 +75,7 @@ class JobExecutionTaskCondition:
75
75
 
76
76
  state = d.pop("state", UNSET)
77
77
 
78
- type_ = d.pop("type", UNSET)
78
+ type_ = d.pop("type", d.pop("type_", UNSET))
79
79
 
80
80
  job_execution_task_condition = cls(
81
81
  execution_reason=execution_reason,
@@ -61,21 +61,21 @@ class JobExecutionTaskMetadata:
61
61
  return field_dict
62
62
 
63
63
  @classmethod
64
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
64
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
65
65
  if not src_dict:
66
66
  return None
67
67
  d = src_dict.copy()
68
- completed_at = d.pop("completedAt", UNSET)
68
+ completed_at = d.pop("completedAt", d.pop("completed_at", UNSET))
69
69
 
70
- created_at = d.pop("createdAt", UNSET)
70
+ created_at = d.pop("createdAt", d.pop("created_at", UNSET))
71
71
 
72
72
  name = d.pop("name", UNSET)
73
73
 
74
- scheduled_at = d.pop("scheduledAt", UNSET)
74
+ scheduled_at = d.pop("scheduledAt", d.pop("scheduled_at", UNSET))
75
75
 
76
- started_at = d.pop("startedAt", UNSET)
76
+ started_at = d.pop("startedAt", d.pop("started_at", UNSET))
77
77
 
78
- updated_at = d.pop("updatedAt", UNSET)
78
+ updated_at = d.pop("updatedAt", d.pop("updated_at", UNSET))
79
79
 
80
80
  job_execution_task_metadata = cls(
81
81
  completed_at=completed_at,
@@ -37,11 +37,11 @@ class JobExecutionTaskSpec:
37
37
  return field_dict
38
38
 
39
39
  @classmethod
40
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
40
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
41
41
  if not src_dict:
42
42
  return None
43
43
  d = src_dict.copy()
44
- max_retries = d.pop("maxRetries", UNSET)
44
+ max_retries = d.pop("maxRetries", d.pop("max_retries", UNSET))
45
45
 
46
46
  timeout = d.pop("timeout", UNSET)
47
47
 
@@ -43,7 +43,6 @@ class JobMetrics:
43
43
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
44
44
 
45
45
  def to_dict(self) -> dict[str, Any]:
46
-
47
46
  billable_time: Union[Unset, list[dict[str, Any]]] = UNSET
48
47
  if not isinstance(self.billable_time, Unset):
49
48
  billable_time = []
@@ -125,7 +124,11 @@ class JobMetrics:
125
124
  tasks_running.append(tasks_running_item)
126
125
 
127
126
  tasks_total: Union[Unset, dict[str, Any]] = UNSET
128
- if self.tasks_total and not isinstance(self.tasks_total, Unset) and not isinstance(self.tasks_total, dict):
127
+ if (
128
+ self.tasks_total
129
+ and not isinstance(self.tasks_total, Unset)
130
+ and not isinstance(self.tasks_total, dict)
131
+ ):
129
132
  tasks_total = self.tasks_total.to_dict()
130
133
  elif self.tasks_total and isinstance(self.tasks_total, dict):
131
134
  tasks_total = self.tasks_total
@@ -155,7 +158,7 @@ class JobMetrics:
155
158
  return field_dict
156
159
 
157
160
  @classmethod
158
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
161
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
159
162
  from ..models.job_metrics_executions_total import JobMetricsExecutionsTotal
160
163
  from ..models.job_metrics_tasks_total import JobMetricsTasksTotal
161
164
  from ..models.jobs_chart_value import JobsChartValue
@@ -165,34 +168,34 @@ class JobMetrics:
165
168
  return None
166
169
  d = src_dict.copy()
167
170
  billable_time = []
168
- _billable_time = d.pop("billableTime", UNSET)
171
+ _billable_time = d.pop("billableTime", d.pop("billable_time", UNSET))
169
172
  for billable_time_item_data in _billable_time or []:
170
173
  billable_time_item = JobsChartValue.from_dict(billable_time_item_data)
171
174
 
172
175
  billable_time.append(billable_time_item)
173
176
 
174
177
  cpu_usage = []
175
- _cpu_usage = d.pop("cpuUsage", UNSET)
178
+ _cpu_usage = d.pop("cpuUsage", d.pop("cpu_usage", UNSET))
176
179
  for cpu_usage_item_data in _cpu_usage or []:
177
180
  cpu_usage_item = JobsChartValue.from_dict(cpu_usage_item_data)
178
181
 
179
182
  cpu_usage.append(cpu_usage_item)
180
183
 
181
184
  executions_chart = []
182
- _executions_chart = d.pop("executionsChart", UNSET)
185
+ _executions_chart = d.pop("executionsChart", d.pop("executions_chart", UNSET))
183
186
  for executions_chart_item_data in _executions_chart or []:
184
187
  executions_chart_item = JobsSuccessFailedChart.from_dict(executions_chart_item_data)
185
188
 
186
189
  executions_chart.append(executions_chart_item)
187
190
 
188
191
  executions_running = []
189
- _executions_running = d.pop("executionsRunning", UNSET)
192
+ _executions_running = d.pop("executionsRunning", d.pop("executions_running", UNSET))
190
193
  for executions_running_item_data in _executions_running or []:
191
194
  executions_running_item = JobsChartValue.from_dict(executions_running_item_data)
192
195
 
193
196
  executions_running.append(executions_running_item)
194
197
 
195
- _executions_total = d.pop("executionsTotal", UNSET)
198
+ _executions_total = d.pop("executionsTotal", d.pop("executions_total", UNSET))
196
199
  executions_total: Union[Unset, JobMetricsExecutionsTotal]
197
200
  if isinstance(_executions_total, Unset):
198
201
  executions_total = UNSET
@@ -200,27 +203,27 @@ class JobMetrics:
200
203
  executions_total = JobMetricsExecutionsTotal.from_dict(_executions_total)
201
204
 
202
205
  ram_usage = []
203
- _ram_usage = d.pop("ramUsage", UNSET)
206
+ _ram_usage = d.pop("ramUsage", d.pop("ram_usage", UNSET))
204
207
  for ram_usage_item_data in _ram_usage or []:
205
208
  ram_usage_item = JobsChartValue.from_dict(ram_usage_item_data)
206
209
 
207
210
  ram_usage.append(ram_usage_item)
208
211
 
209
212
  tasks_chart = []
210
- _tasks_chart = d.pop("tasksChart", UNSET)
213
+ _tasks_chart = d.pop("tasksChart", d.pop("tasks_chart", UNSET))
211
214
  for tasks_chart_item_data in _tasks_chart or []:
212
215
  tasks_chart_item = JobsSuccessFailedChart.from_dict(tasks_chart_item_data)
213
216
 
214
217
  tasks_chart.append(tasks_chart_item)
215
218
 
216
219
  tasks_running = []
217
- _tasks_running = d.pop("tasksRunning", UNSET)
220
+ _tasks_running = d.pop("tasksRunning", d.pop("tasks_running", UNSET))
218
221
  for tasks_running_item_data in _tasks_running or []:
219
222
  tasks_running_item = JobsChartValue.from_dict(tasks_running_item_data)
220
223
 
221
224
  tasks_running.append(tasks_running_item)
222
225
 
223
- _tasks_total = d.pop("tasksTotal", UNSET)
226
+ _tasks_total = d.pop("tasksTotal", d.pop("tasks_total", UNSET))
224
227
  tasks_total: Union[Unset, JobMetricsTasksTotal]
225
228
  if isinstance(_tasks_total, Unset):
226
229
  tasks_total = UNSET
@@ -19,7 +19,7 @@ class JobMetricsExecutionsTotal:
19
19
  return field_dict
20
20
 
21
21
  @classmethod
22
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
22
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
23
23
  if not src_dict:
24
24
  return None
25
25
  d = src_dict.copy()
@@ -19,7 +19,7 @@ class JobMetricsTasksTotal:
19
19
  return field_dict
20
20
 
21
21
  @classmethod
22
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
22
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
23
23
  if not src_dict:
24
24
  return None
25
25
  d = src_dict.copy()
@@ -46,7 +46,6 @@ class JobSpec:
46
46
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
47
47
 
48
48
  def to_dict(self) -> dict[str, Any]:
49
-
50
49
  configurations: Union[Unset, dict[str, Any]] = UNSET
51
50
  if (
52
51
  self.configurations
@@ -78,13 +77,21 @@ class JobSpec:
78
77
  policies = self.policies
79
78
 
80
79
  revision: Union[Unset, dict[str, Any]] = UNSET
81
- if self.revision and not isinstance(self.revision, Unset) and not isinstance(self.revision, dict):
80
+ if (
81
+ self.revision
82
+ and not isinstance(self.revision, Unset)
83
+ and not isinstance(self.revision, dict)
84
+ ):
82
85
  revision = self.revision.to_dict()
83
86
  elif self.revision and isinstance(self.revision, dict):
84
87
  revision = self.revision
85
88
 
86
89
  runtime: Union[Unset, dict[str, Any]] = UNSET
87
- if self.runtime and not isinstance(self.runtime, Unset) and not isinstance(self.runtime, dict):
90
+ if (
91
+ self.runtime
92
+ and not isinstance(self.runtime, Unset)
93
+ and not isinstance(self.runtime, dict)
94
+ ):
88
95
  runtime = self.runtime.to_dict()
89
96
  elif self.runtime and isinstance(self.runtime, dict):
90
97
  runtime = self.runtime
@@ -130,7 +137,7 @@ class JobSpec:
130
137
  return field_dict
131
138
 
132
139
  @classmethod
133
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
140
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
134
141
  from ..models.core_spec_configurations import CoreSpecConfigurations
135
142
  from ..models.flavor import Flavor
136
143
  from ..models.revision_configuration import RevisionConfiguration
@@ -156,7 +163,9 @@ class JobSpec:
156
163
 
157
164
  flavors.append(componentsschemas_flavors_item)
158
165
 
159
- integration_connections = cast(list[str], d.pop("integrationConnections", UNSET))
166
+ integration_connections = cast(
167
+ list[str], d.pop("integrationConnections", d.pop("integration_connections", UNSET))
168
+ )
160
169
 
161
170
  policies = cast(list[str], d.pop("policies", UNSET))
162
171
 
@@ -181,7 +190,9 @@ class JobSpec:
181
190
  triggers = []
182
191
  _triggers = d.pop("triggers", UNSET)
183
192
  for componentsschemas_triggers_item_data in _triggers or []:
184
- componentsschemas_triggers_item = Trigger.from_dict(componentsschemas_triggers_item_data)
193
+ componentsschemas_triggers_item = Trigger.from_dict(
194
+ componentsschemas_triggers_item_data
195
+ )
185
196
 
186
197
  triggers.append(componentsschemas_triggers_item)
187
198
 
@@ -37,7 +37,7 @@ class JobsChartValue:
37
37
  return field_dict
38
38
 
39
39
  @classmethod
40
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
40
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
41
41
  if not src_dict:
42
42
  return None
43
43
  d = src_dict.copy()
@@ -26,7 +26,6 @@ class JobsNetworkChart:
26
26
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
27
 
28
28
  def to_dict(self) -> dict[str, Any]:
29
-
30
29
  received: Union[Unset, list[dict[str, Any]]] = UNSET
31
30
  if not isinstance(self.received, Unset):
32
31
  received = []
@@ -58,7 +57,7 @@ class JobsNetworkChart:
58
57
  return field_dict
59
58
 
60
59
  @classmethod
61
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
60
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
62
61
  from ..models.jobs_chart_value import JobsChartValue
63
62
 
64
63
  if not src_dict:
@@ -32,7 +32,6 @@ class JobsSuccessFailedChart:
32
32
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
33
 
34
34
  def to_dict(self) -> dict[str, Any]:
35
-
36
35
  failed: Union[Unset, dict[str, Any]] = UNSET
37
36
  if self.failed and not isinstance(self.failed, Unset) and not isinstance(self.failed, dict):
38
37
  failed = self.failed.to_dict()
@@ -40,13 +39,21 @@ class JobsSuccessFailedChart:
40
39
  failed = self.failed
41
40
 
42
41
  retried: Union[Unset, dict[str, Any]] = UNSET
43
- if self.retried and not isinstance(self.retried, Unset) and not isinstance(self.retried, dict):
42
+ if (
43
+ self.retried
44
+ and not isinstance(self.retried, Unset)
45
+ and not isinstance(self.retried, dict)
46
+ ):
44
47
  retried = self.retried.to_dict()
45
48
  elif self.retried and isinstance(self.retried, dict):
46
49
  retried = self.retried
47
50
 
48
51
  success: Union[Unset, dict[str, Any]] = UNSET
49
- if self.success and not isinstance(self.success, Unset) and not isinstance(self.success, dict):
52
+ if (
53
+ self.success
54
+ and not isinstance(self.success, Unset)
55
+ and not isinstance(self.success, dict)
56
+ ):
50
57
  success = self.success.to_dict()
51
58
  elif self.success and isinstance(self.success, dict):
52
59
  success = self.success
@@ -76,7 +83,7 @@ class JobsSuccessFailedChart:
76
83
  return field_dict
77
84
 
78
85
  @classmethod
79
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
86
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
80
87
  from ..models.jobs_chart_value import JobsChartValue
81
88
 
82
89
  if not src_dict:
@@ -49,7 +49,7 @@ class JobsTotal:
49
49
  return field_dict
50
50
 
51
51
  @classmethod
52
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
52
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
53
53
  if not src_dict:
54
54
  return None
55
55
  d = src_dict.copy()
@@ -55,17 +55,17 @@ class LastNRequestsMetric:
55
55
  return field_dict
56
56
 
57
57
  @classmethod
58
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
58
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
59
59
  if not src_dict:
60
60
  return None
61
61
  d = src_dict.copy()
62
62
  date = d.pop("date", UNSET)
63
63
 
64
- status_code = d.pop("statusCode", UNSET)
64
+ status_code = d.pop("statusCode", d.pop("status_code", UNSET))
65
65
 
66
- workload_id = d.pop("workloadId", UNSET)
66
+ workload_id = d.pop("workloadId", d.pop("workload_id", UNSET))
67
67
 
68
- workload_type = d.pop("workloadType", UNSET)
68
+ workload_type = d.pop("workloadType", d.pop("workload_type", UNSET))
69
69
 
70
70
  workspace = d.pop("workspace", UNSET)
71
71