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
@@ -35,7 +35,6 @@ class CustomDomainSpec:
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
  cname_records = self.cname_records
40
39
 
41
40
  last_verified_at = self.last_verified_at
@@ -45,7 +44,11 @@ class CustomDomainSpec:
45
44
  status = self.status
46
45
 
47
46
  txt_records: Union[Unset, dict[str, Any]] = UNSET
48
- if self.txt_records and not isinstance(self.txt_records, Unset) and not isinstance(self.txt_records, dict):
47
+ if (
48
+ self.txt_records
49
+ and not isinstance(self.txt_records, Unset)
50
+ and not isinstance(self.txt_records, dict)
51
+ ):
49
52
  txt_records = self.txt_records.to_dict()
50
53
  elif self.txt_records and isinstance(self.txt_records, dict):
51
54
  txt_records = self.txt_records
@@ -71,28 +74,28 @@ class CustomDomainSpec:
71
74
  return field_dict
72
75
 
73
76
  @classmethod
74
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
77
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
75
78
  from ..models.custom_domain_spec_txt_records import CustomDomainSpecTxtRecords
76
79
 
77
80
  if not src_dict:
78
81
  return None
79
82
  d = src_dict.copy()
80
- cname_records = d.pop("cnameRecords", UNSET)
83
+ cname_records = d.pop("cnameRecords", d.pop("cname_records", UNSET))
81
84
 
82
- last_verified_at = d.pop("lastVerifiedAt", UNSET)
85
+ last_verified_at = d.pop("lastVerifiedAt", d.pop("last_verified_at", UNSET))
83
86
 
84
87
  region = d.pop("region", UNSET)
85
88
 
86
89
  status = d.pop("status", UNSET)
87
90
 
88
- _txt_records = d.pop("txtRecords", UNSET)
91
+ _txt_records = d.pop("txtRecords", d.pop("txt_records", UNSET))
89
92
  txt_records: Union[Unset, CustomDomainSpecTxtRecords]
90
93
  if isinstance(_txt_records, Unset):
91
94
  txt_records = UNSET
92
95
  else:
93
96
  txt_records = CustomDomainSpecTxtRecords.from_dict(_txt_records)
94
97
 
95
- verification_error = d.pop("verificationError", UNSET)
98
+ verification_error = d.pop("verificationError", d.pop("verification_error", UNSET))
96
99
 
97
100
  custom_domain_spec = cls(
98
101
  cname_records=cname_records,
@@ -19,7 +19,7 @@ class CustomDomainSpecTxtRecords:
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()
@@ -30,7 +30,7 @@ class DeleteSandboxPreviewTokenResponse200:
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()
@@ -25,11 +25,14 @@ class DeleteVolumeTemplateVersionResponse200:
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
  message = self.message
30
29
 
31
30
  template: Union[Unset, dict[str, Any]] = UNSET
32
- if self.template and not isinstance(self.template, Unset) and not isinstance(self.template, dict):
31
+ if (
32
+ self.template
33
+ and not isinstance(self.template, Unset)
34
+ and not isinstance(self.template, dict)
35
+ ):
33
36
  template = self.template.to_dict()
34
37
  elif self.template and isinstance(self.template, dict):
35
38
  template = self.template
@@ -45,7 +48,7 @@ class DeleteVolumeTemplateVersionResponse200:
45
48
  return field_dict
46
49
 
47
50
  @classmethod
48
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
51
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
49
52
  from ..models.volume_template import VolumeTemplate
50
53
 
51
54
  if not src_dict:
@@ -54,7 +54,7 @@ class DeleteWorkspaceServiceAccountResponse200:
54
54
  return field_dict
55
55
 
56
56
  @classmethod
57
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
57
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
58
58
  if not src_dict:
59
59
  return None
60
60
  d = src_dict.copy()
@@ -30,7 +30,6 @@ class Entrypoint:
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
  args: Union[Unset, list[Any]] = UNSET
35
34
  if not isinstance(self.args, Unset):
36
35
  args = self.args
@@ -62,7 +61,7 @@ class Entrypoint:
62
61
  return field_dict
63
62
 
64
63
  @classmethod
65
- 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:
66
65
  from ..models.entrypoint_env import EntrypointEnv
67
66
 
68
67
  if not src_dict:
@@ -79,7 +78,9 @@ class Entrypoint:
79
78
  else:
80
79
  env = EntrypointEnv.from_dict(_env)
81
80
 
82
- super_gateway_args = cast(list[Any], d.pop("superGatewayArgs", UNSET))
81
+ super_gateway_args = cast(
82
+ list[Any], d.pop("superGatewayArgs", d.pop("super_gateway_args", UNSET))
83
+ )
83
84
 
84
85
  entrypoint = cls(
85
86
  args=args,
@@ -19,7 +19,7 @@ class EntrypointEnv:
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()
@@ -43,13 +43,13 @@ class ExpirationPolicy:
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
50
  action = d.pop("action", UNSET)
51
51
 
52
- type_ = d.pop("type", UNSET)
52
+ type_ = d.pop("type", d.pop("type_", UNSET))
53
53
 
54
54
  value = d.pop("value", UNSET)
55
55
 
@@ -37,13 +37,13 @@ class Flavor:
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
44
  name = d.pop("name", UNSET)
45
45
 
46
- type_ = d.pop("type", UNSET)
46
+ type_ = d.pop("type", d.pop("type_", UNSET))
47
47
 
48
48
  flavor = cls(
49
49
  name=name,
@@ -30,7 +30,6 @@ class Form:
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
  config: Union[Unset, dict[str, Any]] = UNSET
35
34
  if self.config and not isinstance(self.config, Unset) and not isinstance(self.config, dict):
36
35
  config = self.config.to_dict()
@@ -44,7 +43,11 @@ class Form:
44
43
  oauth = self.oauth
45
44
 
46
45
  secrets: Union[Unset, dict[str, Any]] = UNSET
47
- if self.secrets and not isinstance(self.secrets, Unset) and not isinstance(self.secrets, dict):
46
+ if (
47
+ self.secrets
48
+ and not isinstance(self.secrets, Unset)
49
+ and not isinstance(self.secrets, dict)
50
+ ):
48
51
  secrets = self.secrets.to_dict()
49
52
  elif self.secrets and isinstance(self.secrets, dict):
50
53
  secrets = self.secrets
@@ -62,7 +65,7 @@ class Form:
62
65
  return field_dict
63
66
 
64
67
  @classmethod
65
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
68
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
66
69
  from ..models.form_config import FormConfig
67
70
  from ..models.form_oauth import FormOauth
68
71
  from ..models.form_secrets import FormSecrets
@@ -19,7 +19,7 @@ class FormConfig:
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 FormOauth:
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 FormSecrets:
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()
@@ -32,7 +32,6 @@ class Function:
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 Function:
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 Function:
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.function_spec import FunctionSpec
78
83
  from ..models.metadata import Metadata
@@ -83,7 +88,9 @@ class Function:
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
 
@@ -46,7 +46,6 @@ class FunctionSpec:
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 FunctionSpec:
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 FunctionSpec:
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 FunctionSpec:
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 FunctionSpec:
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
 
@@ -54,7 +54,7 @@ class GetWorkspaceServiceAccountsResponse200Item:
54
54
  return field_dict
55
55
 
56
56
  @classmethod
57
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
57
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
58
58
  if not src_dict:
59
59
  return None
60
60
  d = src_dict.copy()
@@ -43,7 +43,7 @@ class HistogramBucket:
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()
@@ -49,7 +49,7 @@ class HistogramStats:
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()
@@ -26,9 +26,12 @@ class Image:
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
  metadata: Union[Unset, dict[str, Any]] = UNSET
31
- if self.metadata and not isinstance(self.metadata, Unset) and not isinstance(self.metadata, dict):
30
+ if (
31
+ self.metadata
32
+ and not isinstance(self.metadata, Unset)
33
+ and not isinstance(self.metadata, dict)
34
+ ):
32
35
  metadata = self.metadata.to_dict()
33
36
  elif self.metadata and isinstance(self.metadata, dict):
34
37
  metadata = self.metadata
@@ -50,7 +53,7 @@ class Image:
50
53
  return field_dict
51
54
 
52
55
  @classmethod
53
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
56
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
54
57
  from ..models.image_metadata import ImageMetadata
55
58
  from ..models.image_spec import ImageSpec
56
59
 
@@ -67,21 +67,21 @@ class ImageMetadata:
67
67
  return field_dict
68
68
 
69
69
  @classmethod
70
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
70
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
71
71
  if not src_dict:
72
72
  return None
73
73
  d = src_dict.copy()
74
- created_at = d.pop("createdAt", UNSET)
74
+ created_at = d.pop("createdAt", d.pop("created_at", UNSET))
75
75
 
76
- display_name = d.pop("displayName", UNSET)
76
+ display_name = d.pop("displayName", d.pop("display_name", UNSET))
77
77
 
78
- last_deployed_at = d.pop("lastDeployedAt", UNSET)
78
+ last_deployed_at = d.pop("lastDeployedAt", d.pop("last_deployed_at", UNSET))
79
79
 
80
80
  name = d.pop("name", UNSET)
81
81
 
82
- resource_type = d.pop("resourceType", UNSET)
82
+ resource_type = d.pop("resourceType", d.pop("resource_type", UNSET))
83
83
 
84
- updated_at = d.pop("updatedAt", UNSET)
84
+ updated_at = d.pop("updatedAt", d.pop("updated_at", UNSET))
85
85
 
86
86
  workspace = d.pop("workspace", UNSET)
87
87
 
@@ -25,7 +25,6 @@ class ImageSpec:
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
  size = self.size
30
29
 
31
30
  tags: Union[Unset, list[dict[str, Any]]] = UNSET
@@ -49,7 +48,7 @@ class ImageSpec:
49
48
  return field_dict
50
49
 
51
50
  @classmethod
52
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
51
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
53
52
  from ..models.image_tag import ImageTag
54
53
 
55
54
  if not src_dict:
@@ -48,17 +48,17 @@ class ImageTag:
48
48
  return field_dict
49
49
 
50
50
  @classmethod
51
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
51
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
52
52
  if not src_dict:
53
53
  return None
54
54
  d = src_dict.copy()
55
- created_at = d.pop("createdAt", UNSET)
55
+ created_at = d.pop("createdAt", d.pop("created_at", UNSET))
56
56
 
57
57
  name = d.pop("name", UNSET)
58
58
 
59
59
  size = d.pop("size", UNSET)
60
60
 
61
- updated_at = d.pop("updatedAt", UNSET)
61
+ updated_at = d.pop("updatedAt", d.pop("updated_at", UNSET))
62
62
 
63
63
  image_tag = cls(
64
64
  created_at=created_at,
@@ -41,7 +41,6 @@ class Integration:
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
  additional_infos: Union[Unset, dict[str, Any]] = UNSET
46
45
  if (
47
46
  self.additional_infos
@@ -53,13 +52,21 @@ class Integration:
53
52
  additional_infos = self.additional_infos
54
53
 
55
54
  endpoints: Union[Unset, dict[str, Any]] = UNSET
56
- if self.endpoints and not isinstance(self.endpoints, Unset) and not isinstance(self.endpoints, dict):
55
+ if (
56
+ self.endpoints
57
+ and not isinstance(self.endpoints, Unset)
58
+ and not isinstance(self.endpoints, dict)
59
+ ):
57
60
  endpoints = self.endpoints.to_dict()
58
61
  elif self.endpoints and isinstance(self.endpoints, dict):
59
62
  endpoints = self.endpoints
60
63
 
61
64
  headers: Union[Unset, dict[str, Any]] = UNSET
62
- if self.headers and not isinstance(self.headers, Unset) and not isinstance(self.headers, dict):
65
+ if (
66
+ self.headers
67
+ and not isinstance(self.headers, Unset)
68
+ and not isinstance(self.headers, dict)
69
+ ):
63
70
  headers = self.headers.to_dict()
64
71
  elif self.headers and isinstance(self.headers, dict):
65
72
  headers = self.headers
@@ -113,7 +120,7 @@ class Integration:
113
120
  return field_dict
114
121
 
115
122
  @classmethod
116
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
123
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
117
124
  from ..models.integration_additional_infos import IntegrationAdditionalInfos
118
125
  from ..models.integration_endpoints import IntegrationEndpoints
119
126
  from ..models.integration_headers import IntegrationHeaders
@@ -124,7 +131,7 @@ class Integration:
124
131
  if not src_dict:
125
132
  return None
126
133
  d = src_dict.copy()
127
- _additional_infos = d.pop("additionalInfos", UNSET)
134
+ _additional_infos = d.pop("additionalInfos", d.pop("additional_infos", UNSET))
128
135
  additional_infos: Union[Unset, IntegrationAdditionalInfos]
129
136
  if isinstance(_additional_infos, Unset):
130
137
  additional_infos = UNSET
@@ -19,7 +19,7 @@ class IntegrationAdditionalInfos:
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()
@@ -27,9 +27,12 @@ class IntegrationConnection:
27
27
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
28
 
29
29
  def to_dict(self) -> dict[str, Any]:
30
-
31
30
  metadata: Union[Unset, dict[str, Any]] = UNSET
32
- if self.metadata and not isinstance(self.metadata, Unset) and not isinstance(self.metadata, dict):
31
+ if (
32
+ self.metadata
33
+ and not isinstance(self.metadata, Unset)
34
+ and not isinstance(self.metadata, dict)
35
+ ):
33
36
  metadata = self.metadata.to_dict()
34
37
  elif self.metadata and isinstance(self.metadata, dict):
35
38
  metadata = self.metadata
@@ -51,7 +54,7 @@ class IntegrationConnection:
51
54
  return field_dict
52
55
 
53
56
  @classmethod
54
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
57
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
55
58
  from ..models.integration_connection_spec import IntegrationConnectionSpec
56
59
  from ..models.metadata import Metadata
57
60
 
@@ -31,7 +31,6 @@ class IntegrationConnectionSpec:
31
31
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
32
32
 
33
33
  def to_dict(self) -> dict[str, Any]:
34
-
35
34
  config: Union[Unset, dict[str, Any]] = UNSET
36
35
  if self.config and not isinstance(self.config, Unset) and not isinstance(self.config, dict):
37
36
  config = self.config.to_dict()
@@ -63,7 +62,7 @@ class IntegrationConnectionSpec:
63
62
  return field_dict
64
63
 
65
64
  @classmethod
66
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
65
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
67
66
  from ..models.integration_connection_spec_config import IntegrationConnectionSpecConfig
68
67
  from ..models.integration_connection_spec_secret import IntegrationConnectionSpecSecret
69
68
 
@@ -19,7 +19,7 @@ class IntegrationConnectionSpecConfig:
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 IntegrationConnectionSpecSecret:
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()
@@ -36,7 +36,6 @@ class IntegrationEndpoint:
36
36
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
37
37
 
38
38
  def to_dict(self) -> dict[str, Any]:
39
-
40
39
  body = self.body
41
40
 
42
41
  ignore_models: Union[Unset, list[Any]] = UNSET
@@ -52,7 +51,11 @@ class IntegrationEndpoint:
52
51
  stream_key = self.stream_key
53
52
 
54
53
  stream_token: Union[Unset, dict[str, Any]] = UNSET
55
- if self.stream_token and not isinstance(self.stream_token, Unset) and not isinstance(self.stream_token, dict):
54
+ if (
55
+ self.stream_token
56
+ and not isinstance(self.stream_token, Unset)
57
+ and not isinstance(self.stream_token, dict)
58
+ ):
56
59
  stream_token = self.stream_token.to_dict()
57
60
  elif self.stream_token and isinstance(self.stream_token, dict):
58
61
  stream_token = self.stream_token
@@ -84,7 +87,7 @@ class IntegrationEndpoint:
84
87
  return field_dict
85
88
 
86
89
  @classmethod
87
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
90
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
88
91
  from ..models.integration_endpoint_token import IntegrationEndpointToken
89
92
 
90
93
  if not src_dict:
@@ -92,15 +95,15 @@ class IntegrationEndpoint:
92
95
  d = src_dict.copy()
93
96
  body = d.pop("body", UNSET)
94
97
 
95
- ignore_models = cast(list[Any], d.pop("ignoreModels", UNSET))
98
+ ignore_models = cast(list[Any], d.pop("ignoreModels", d.pop("ignore_models", UNSET)))
96
99
 
97
100
  method = d.pop("method", UNSET)
98
101
 
99
102
  models = cast(list[Any], d.pop("models", UNSET))
100
103
 
101
- stream_key = d.pop("streamKey", UNSET)
104
+ stream_key = d.pop("streamKey", d.pop("stream_key", UNSET))
102
105
 
103
- _stream_token = d.pop("streamToken", UNSET)
106
+ _stream_token = d.pop("streamToken", d.pop("stream_token", UNSET))
104
107
  stream_token: Union[Unset, IntegrationEndpointToken]
105
108
  if isinstance(_stream_token, Unset):
106
109
  stream_token = UNSET
@@ -43,7 +43,7 @@ class IntegrationEndpointToken:
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()