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
@@ -43,7 +43,9 @@ class Client:
43
43
  _headers: dict[str, str] = field(factory=dict, kw_only=True, alias="headers")
44
44
  _auth: httpx.Auth = field(default=None, alias="auth")
45
45
  _timeout: httpx.Timeout | None = field(default=None, kw_only=True, alias="timeout")
46
- _verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True, alias="verify_ssl")
46
+ _verify_ssl: Union[str, bool, ssl.SSLContext] = field(
47
+ default=True, kw_only=True, alias="verify_ssl"
48
+ )
47
49
  _follow_redirects: bool = field(default=False, kw_only=True, alias="follow_redirects")
48
50
  _httpx_args: dict[str, Any] = field(factory=dict, kw_only=True, alias="httpx_args")
49
51
  _client: httpx.Client | None = field(default=None, init=False)
@@ -105,12 +107,6 @@ class Client:
105
107
  def get_httpx_client(self) -> httpx.Client:
106
108
  """Get the underlying httpx.Client, constructing a new one if not previously set"""
107
109
  if self._client is None:
108
- # Set default limits if not provided in httpx_args to prevent TLS handshake issues
109
- limits = self._httpx_args.get("limits")
110
- if limits is None:
111
- limits = httpx.Limits(max_connections=100, max_keepalive_connections=20)
112
- # Disable HTTP/2 to prevent TLS handshake issues in certain environments
113
- http2 = self._httpx_args.get("http2", False)
114
110
  self._client = httpx.Client(
115
111
  base_url=self._base_url,
116
112
  cookies=self._cookies,
@@ -119,9 +115,7 @@ class Client:
119
115
  verify=self._verify_ssl,
120
116
  follow_redirects=self._follow_redirects,
121
117
  auth=self._auth,
122
- limits=limits,
123
- http2=http2,
124
- **{k: v for k, v in self._httpx_args.items() if k not in ("limits", "http2")},
118
+ **self._httpx_args,
125
119
  )
126
120
  return self._client
127
121
 
@@ -145,12 +139,6 @@ class Client:
145
139
  def get_async_httpx_client(self) -> httpx.AsyncClient:
146
140
  """Get the underlying httpx.AsyncClient, constructing a new one if not previously set"""
147
141
  if self._async_client is None:
148
- # Set default limits if not provided in httpx_args to prevent TLS handshake issues
149
- limits = self._httpx_args.get("limits")
150
- if limits is None:
151
- limits = httpx.Limits(max_connections=100, max_keepalive_connections=20)
152
- # Disable HTTP/2 to prevent TLS handshake issues in certain environments
153
- http2 = self._httpx_args.get("http2", False)
154
142
  self._async_client = httpx.AsyncClient(
155
143
  base_url=self._base_url,
156
144
  cookies=self._cookies,
@@ -159,9 +147,7 @@ class Client:
159
147
  verify=self._verify_ssl,
160
148
  follow_redirects=self._follow_redirects,
161
149
  auth=self._auth,
162
- limits=limits,
163
- http2=http2,
164
- **{k: v for k, v in self._httpx_args.items() if k not in ("limits", "http2")},
150
+ **self._httpx_args,
165
151
  )
166
152
  return self._async_client
167
153
 
@@ -79,13 +79,13 @@ class ACL:
79
79
  return field_dict
80
80
 
81
81
  @classmethod
82
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
82
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
83
83
  if not src_dict:
84
84
  return None
85
85
  d = src_dict.copy()
86
- created_at = d.pop("createdAt", UNSET)
86
+ created_at = d.pop("createdAt", d.pop("created_at", UNSET))
87
87
 
88
- updated_at = d.pop("updatedAt", UNSET)
88
+ updated_at = d.pop("updatedAt", d.pop("updated_at", UNSET))
89
89
 
90
90
  id = d.pop("id", UNSET)
91
91
 
@@ -32,7 +32,6 @@ class Agent:
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 Agent:
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 Agent:
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.agent_spec import AgentSpec
77
82
  from ..models.core_event import CoreEvent
78
83
  from ..models.metadata import Metadata
@@ -83,7 +88,9 @@ class Agent:
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
 
@@ -49,7 +49,6 @@ class AgentSpec:
49
49
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
50
50
 
51
51
  def to_dict(self) -> dict[str, Any]:
52
-
53
52
  configurations: Union[Unset, dict[str, Any]] = UNSET
54
53
  if (
55
54
  self.configurations
@@ -81,13 +80,21 @@ class AgentSpec:
81
80
  policies = self.policies
82
81
 
83
82
  revision: Union[Unset, dict[str, Any]] = UNSET
84
- if self.revision and not isinstance(self.revision, Unset) and not isinstance(self.revision, dict):
83
+ if (
84
+ self.revision
85
+ and not isinstance(self.revision, Unset)
86
+ and not isinstance(self.revision, dict)
87
+ ):
85
88
  revision = self.revision.to_dict()
86
89
  elif self.revision and isinstance(self.revision, dict):
87
90
  revision = self.revision
88
91
 
89
92
  runtime: Union[Unset, dict[str, Any]] = UNSET
90
- if self.runtime and not isinstance(self.runtime, Unset) and not isinstance(self.runtime, dict):
93
+ if (
94
+ self.runtime
95
+ and not isinstance(self.runtime, Unset)
96
+ and not isinstance(self.runtime, dict)
97
+ ):
91
98
  runtime = self.runtime.to_dict()
92
99
  elif self.runtime and isinstance(self.runtime, dict):
93
100
  runtime = self.runtime
@@ -97,7 +104,11 @@ class AgentSpec:
97
104
  description = self.description
98
105
 
99
106
  repository: Union[Unset, dict[str, Any]] = UNSET
100
- if self.repository and not isinstance(self.repository, Unset) and not isinstance(self.repository, dict):
107
+ if (
108
+ self.repository
109
+ and not isinstance(self.repository, Unset)
110
+ and not isinstance(self.repository, dict)
111
+ ):
101
112
  repository = self.repository.to_dict()
102
113
  elif self.repository and isinstance(self.repository, dict):
103
114
  repository = self.repository
@@ -141,7 +152,7 @@ class AgentSpec:
141
152
  return field_dict
142
153
 
143
154
  @classmethod
144
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
155
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
145
156
  from ..models.core_spec_configurations import CoreSpecConfigurations
146
157
  from ..models.flavor import Flavor
147
158
  from ..models.repository import Repository
@@ -168,7 +179,9 @@ class AgentSpec:
168
179
 
169
180
  flavors.append(componentsschemas_flavors_item)
170
181
 
171
- integration_connections = cast(list[str], d.pop("integrationConnections", UNSET))
182
+ integration_connections = cast(
183
+ list[str], d.pop("integrationConnections", d.pop("integration_connections", UNSET))
184
+ )
172
185
 
173
186
  policies = cast(list[str], d.pop("policies", UNSET))
174
187
 
@@ -200,7 +213,9 @@ class AgentSpec:
200
213
  triggers = []
201
214
  _triggers = d.pop("triggers", UNSET)
202
215
  for componentsschemas_triggers_item_data in _triggers or []:
203
- componentsschemas_triggers_item = Trigger.from_dict(componentsschemas_triggers_item_data)
216
+ componentsschemas_triggers_item = Trigger.from_dict(
217
+ componentsschemas_triggers_item_data
218
+ )
204
219
 
205
220
  triggers.append(componentsschemas_triggers_item)
206
221
 
@@ -85,19 +85,19 @@ class ApiKey:
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
- created_at = d.pop("createdAt", UNSET)
92
+ created_at = d.pop("createdAt", d.pop("created_at", UNSET))
93
93
 
94
- updated_at = d.pop("updatedAt", UNSET)
94
+ updated_at = d.pop("updatedAt", d.pop("updated_at", UNSET))
95
95
 
96
- created_by = d.pop("createdBy", UNSET)
96
+ created_by = d.pop("createdBy", d.pop("created_by", UNSET))
97
97
 
98
- updated_by = d.pop("updatedBy", UNSET)
98
+ updated_by = d.pop("updatedBy", d.pop("updated_by", UNSET))
99
99
 
100
- api_key = d.pop("apiKey", UNSET)
100
+ api_key = d.pop("apiKey", d.pop("api_key", UNSET))
101
101
 
102
102
  expires_in = d.pop("expires_in", UNSET)
103
103
 
@@ -26,7 +26,6 @@ class BillableTimeMetric:
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
  billable_time: Union[Unset, list[dict[str, Any]]] = UNSET
31
30
  if not isinstance(self.billable_time, Unset):
32
31
  billable_time = []
@@ -50,20 +49,20 @@ class BillableTimeMetric:
50
49
  return field_dict
51
50
 
52
51
  @classmethod
53
- 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:
54
53
  from ..models.jobs_chart_value import JobsChartValue
55
54
 
56
55
  if not src_dict:
57
56
  return None
58
57
  d = src_dict.copy()
59
58
  billable_time = []
60
- _billable_time = d.pop("billableTime", UNSET)
59
+ _billable_time = d.pop("billableTime", d.pop("billable_time", UNSET))
61
60
  for billable_time_item_data in _billable_time or []:
62
61
  billable_time_item = JobsChartValue.from_dict(billable_time_item_data)
63
62
 
64
63
  billable_time.append(billable_time_item)
65
64
 
66
- total_allocation = d.pop("totalAllocation", UNSET)
65
+ total_allocation = d.pop("totalAllocation", d.pop("total_allocation", UNSET))
67
66
 
68
67
  billable_time_metric = cls(
69
68
  billable_time=billable_time,
@@ -30,7 +30,7 @@ class CheckWorkspaceAvailabilityBody:
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()
@@ -36,7 +36,7 @@ class CleanupImagesResponse200:
36
36
  return field_dict
37
37
 
38
38
  @classmethod
39
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
39
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
40
40
  if not src_dict:
41
41
  return None
42
42
  d = src_dict.copy()
@@ -33,7 +33,6 @@ class Configuration:
33
33
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
34
 
35
35
  def to_dict(self) -> dict[str, Any]:
36
-
37
36
  continents: Union[Unset, list[dict[str, Any]]] = UNSET
38
37
  if not isinstance(self.continents, Unset):
39
38
  continents = []
@@ -89,7 +88,7 @@ class Configuration:
89
88
  return field_dict
90
89
 
91
90
  @classmethod
92
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
91
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
93
92
  from ..models.continent import Continent
94
93
  from ..models.country import Country
95
94
  from ..models.private_location import PrivateLocation
@@ -113,7 +112,7 @@ class Configuration:
113
112
  countries.append(countries_item)
114
113
 
115
114
  private_locations = []
116
- _private_locations = d.pop("privateLocations", UNSET)
115
+ _private_locations = d.pop("privateLocations", d.pop("private_locations", UNSET))
117
116
  for private_locations_item_data in _private_locations or []:
118
117
  private_locations_item = PrivateLocation.from_dict(private_locations_item_data)
119
118
 
@@ -37,11 +37,11 @@ class Continent:
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
- display_name = d.pop("displayName", UNSET)
44
+ display_name = d.pop("displayName", d.pop("display_name", UNSET))
45
45
 
46
46
  name = d.pop("name", UNSET)
47
47
 
@@ -61,11 +61,11 @@ class CoreEvent:
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
- canary_revision = d.pop("canaryRevision", UNSET)
68
+ canary_revision = d.pop("canaryRevision", d.pop("canary_revision", UNSET))
69
69
 
70
70
  message = d.pop("message", UNSET)
71
71
 
@@ -75,7 +75,7 @@ class CoreEvent:
75
75
 
76
76
  time = d.pop("time", UNSET)
77
77
 
78
- type_ = d.pop("type", UNSET)
78
+ type_ = d.pop("type", d.pop("type_", UNSET))
79
79
 
80
80
  core_event = cls(
81
81
  canary_revision=canary_revision,
@@ -41,7 +41,6 @@ class CoreSpec:
41
41
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
42
42
 
43
43
  def to_dict(self) -> dict[str, Any]:
44
-
45
44
  configurations: Union[Unset, dict[str, Any]] = UNSET
46
45
  if (
47
46
  self.configurations
@@ -73,13 +72,21 @@ class CoreSpec:
73
72
  policies = self.policies
74
73
 
75
74
  revision: Union[Unset, dict[str, Any]] = UNSET
76
- if self.revision and not isinstance(self.revision, Unset) and not isinstance(self.revision, dict):
75
+ if (
76
+ self.revision
77
+ and not isinstance(self.revision, Unset)
78
+ and not isinstance(self.revision, dict)
79
+ ):
77
80
  revision = self.revision.to_dict()
78
81
  elif self.revision and isinstance(self.revision, dict):
79
82
  revision = self.revision
80
83
 
81
84
  runtime: Union[Unset, dict[str, Any]] = UNSET
82
- if self.runtime and not isinstance(self.runtime, Unset) and not isinstance(self.runtime, dict):
85
+ if (
86
+ self.runtime
87
+ and not isinstance(self.runtime, Unset)
88
+ and not isinstance(self.runtime, dict)
89
+ ):
83
90
  runtime = self.runtime.to_dict()
84
91
  elif self.runtime and isinstance(self.runtime, dict):
85
92
  runtime = self.runtime
@@ -109,7 +116,7 @@ class CoreSpec:
109
116
  return field_dict
110
117
 
111
118
  @classmethod
112
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
119
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
113
120
  from ..models.core_spec_configurations import CoreSpecConfigurations
114
121
  from ..models.flavor import Flavor
115
122
  from ..models.revision_configuration import RevisionConfiguration
@@ -134,7 +141,9 @@ class CoreSpec:
134
141
 
135
142
  flavors.append(componentsschemas_flavors_item)
136
143
 
137
- integration_connections = cast(list[str], d.pop("integrationConnections", UNSET))
144
+ integration_connections = cast(
145
+ list[str], d.pop("integrationConnections", d.pop("integration_connections", UNSET))
146
+ )
138
147
 
139
148
  policies = cast(list[str], d.pop("policies", UNSET))
140
149
 
@@ -25,7 +25,6 @@ class CoreSpecConfigurations:
25
25
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
26
 
27
27
  def to_dict(self) -> dict[str, Any]:
28
-
29
28
  key: Union[Unset, dict[str, Any]] = UNSET
30
29
  if self.key and not isinstance(self.key, Unset) and not isinstance(self.key, dict):
31
30
  key = self.key.to_dict()
@@ -41,7 +40,7 @@ class CoreSpecConfigurations:
41
40
  return field_dict
42
41
 
43
42
  @classmethod
44
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
43
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
45
44
  from ..models.spec_configuration import SpecConfiguration
46
45
 
47
46
  if not src_dict:
@@ -37,11 +37,11 @@ class Country:
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
- display_name = d.pop("displayName", UNSET)
44
+ display_name = d.pop("displayName", d.pop("display_name", UNSET))
45
45
 
46
46
  name = d.pop("name", UNSET)
47
47
 
@@ -36,7 +36,7 @@ class CreateApiKeyForServiceAccountBody:
36
36
  return field_dict
37
37
 
38
38
  @classmethod
39
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
39
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
40
40
  if not src_dict:
41
41
  return None
42
42
  d = src_dict.copy()
@@ -33,7 +33,6 @@ class CreateJobExecutionRequest:
33
33
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
34
 
35
35
  def to_dict(self) -> dict[str, Any]:
36
-
37
36
  execution_id = self.execution_id
38
37
 
39
38
  id = self.id
@@ -69,7 +68,7 @@ class CreateJobExecutionRequest:
69
68
  return field_dict
70
69
 
71
70
  @classmethod
72
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
71
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
73
72
  from ..models.create_job_execution_request_tasks_item import (
74
73
  CreateJobExecutionRequestTasksItem,
75
74
  )
@@ -77,11 +76,11 @@ class CreateJobExecutionRequest:
77
76
  if not src_dict:
78
77
  return None
79
78
  d = src_dict.copy()
80
- execution_id = d.pop("executionId", UNSET)
79
+ execution_id = d.pop("executionId", d.pop("execution_id", UNSET))
81
80
 
82
81
  id = d.pop("id", UNSET)
83
82
 
84
- job_id = d.pop("jobId", UNSET)
83
+ job_id = d.pop("jobId", d.pop("job_id", UNSET))
85
84
 
86
85
  tasks = []
87
86
  _tasks = d.pop("tasks", UNSET)
@@ -90,7 +89,7 @@ class CreateJobExecutionRequest:
90
89
 
91
90
  tasks.append(tasks_item)
92
91
 
93
- workspace_id = d.pop("workspaceId", UNSET)
92
+ workspace_id = d.pop("workspaceId", d.pop("workspace_id", UNSET))
94
93
 
95
94
  create_job_execution_request = cls(
96
95
  execution_id=execution_id,
@@ -19,7 +19,7 @@ class CreateJobExecutionRequestTasksItem:
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()
@@ -35,7 +35,6 @@ class CreateJobExecutionResponse:
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
  execution_id = self.execution_id
40
39
 
41
40
  id = self.id
@@ -71,7 +70,7 @@ class CreateJobExecutionResponse:
71
70
  return field_dict
72
71
 
73
72
  @classmethod
74
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
73
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
75
74
  from ..models.create_job_execution_response_tasks_item import (
76
75
  CreateJobExecutionResponseTasksItem,
77
76
  )
@@ -79,11 +78,11 @@ class CreateJobExecutionResponse:
79
78
  if not src_dict:
80
79
  return None
81
80
  d = src_dict.copy()
82
- execution_id = d.pop("executionId", UNSET)
81
+ execution_id = d.pop("executionId", d.pop("execution_id", UNSET))
83
82
 
84
83
  id = d.pop("id", UNSET)
85
84
 
86
- job_id = d.pop("jobId", UNSET)
85
+ job_id = d.pop("jobId", d.pop("job_id", UNSET))
87
86
 
88
87
  tasks = []
89
88
  _tasks = d.pop("tasks", UNSET)
@@ -92,7 +91,7 @@ class CreateJobExecutionResponse:
92
91
 
93
92
  tasks.append(tasks_item)
94
93
 
95
- workspace_id = d.pop("workspaceId", UNSET)
94
+ workspace_id = d.pop("workspaceId", d.pop("workspace_id", UNSET))
96
95
 
97
96
  create_job_execution_response = cls(
98
97
  execution_id=execution_id,
@@ -19,7 +19,7 @@ class CreateJobExecutionResponseTasksItem:
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()
@@ -38,7 +38,7 @@ class CreateWorkspaceServiceAccountBody:
38
38
  return field_dict
39
39
 
40
40
  @classmethod
41
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
41
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
42
42
  if not src_dict:
43
43
  return None
44
44
  d = src_dict.copy()
@@ -60,7 +60,7 @@ class CreateWorkspaceServiceAccountResponse200:
60
60
  return field_dict
61
61
 
62
62
  @classmethod
63
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
63
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
64
64
  if not src_dict:
65
65
  return None
66
66
  d = src_dict.copy()
@@ -30,9 +30,12 @@ class CustomDomain:
30
30
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
31
 
32
32
  def to_dict(self) -> dict[str, Any]:
33
-
34
33
  metadata: Union[Unset, dict[str, Any]] = UNSET
35
- if self.metadata and not isinstance(self.metadata, Unset) and not isinstance(self.metadata, dict):
34
+ if (
35
+ self.metadata
36
+ and not isinstance(self.metadata, Unset)
37
+ and not isinstance(self.metadata, dict)
38
+ ):
36
39
  metadata = self.metadata.to_dict()
37
40
  elif self.metadata and isinstance(self.metadata, dict):
38
41
  metadata = self.metadata
@@ -54,7 +57,7 @@ class CustomDomain:
54
57
  return field_dict
55
58
 
56
59
  @classmethod
57
- 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:
58
61
  from ..models.custom_domain_metadata import CustomDomainMetadata
59
62
  from ..models.custom_domain_spec import CustomDomainSpec
60
63
 
@@ -38,7 +38,6 @@ class CustomDomainMetadata:
38
38
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
39
39
 
40
40
  def to_dict(self) -> dict[str, Any]:
41
-
42
41
  created_at = self.created_at
43
42
 
44
43
  updated_at = self.updated_at
@@ -82,21 +81,21 @@ class CustomDomainMetadata:
82
81
  return field_dict
83
82
 
84
83
  @classmethod
85
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
84
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
86
85
  from ..models.metadata_labels import MetadataLabels
87
86
 
88
87
  if not src_dict:
89
88
  return None
90
89
  d = src_dict.copy()
91
- created_at = d.pop("createdAt", UNSET)
90
+ created_at = d.pop("createdAt", d.pop("created_at", UNSET))
92
91
 
93
- updated_at = d.pop("updatedAt", UNSET)
92
+ updated_at = d.pop("updatedAt", d.pop("updated_at", UNSET))
94
93
 
95
- created_by = d.pop("createdBy", UNSET)
94
+ created_by = d.pop("createdBy", d.pop("created_by", UNSET))
96
95
 
97
- updated_by = d.pop("updatedBy", UNSET)
96
+ updated_by = d.pop("updatedBy", d.pop("updated_by", UNSET))
98
97
 
99
- display_name = d.pop("displayName", UNSET)
98
+ display_name = d.pop("displayName", d.pop("display_name", UNSET))
100
99
 
101
100
  _labels = d.pop("labels", UNSET)
102
101
  labels: Union[Unset, MetadataLabels]