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
@@ -36,13 +36,16 @@ class PendingInvitationRender:
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
  email = self.email
41
40
 
42
41
  invited_at = self.invited_at
43
42
 
44
43
  invited_by: Union[Unset, dict[str, Any]] = UNSET
45
- if self.invited_by and not isinstance(self.invited_by, Unset) and not isinstance(self.invited_by, dict):
44
+ if (
45
+ self.invited_by
46
+ and not isinstance(self.invited_by, Unset)
47
+ and not isinstance(self.invited_by, dict)
48
+ ):
46
49
  invited_by = self.invited_by.to_dict()
47
50
  elif self.invited_by and isinstance(self.invited_by, dict):
48
51
  invited_by = self.invited_by
@@ -50,7 +53,11 @@ class PendingInvitationRender:
50
53
  role = self.role
51
54
 
52
55
  workspace: Union[Unset, dict[str, Any]] = UNSET
53
- if self.workspace and not isinstance(self.workspace, Unset) and not isinstance(self.workspace, dict):
56
+ if (
57
+ self.workspace
58
+ and not isinstance(self.workspace, Unset)
59
+ and not isinstance(self.workspace, dict)
60
+ ):
54
61
  workspace = self.workspace.to_dict()
55
62
  elif self.workspace and isinstance(self.workspace, dict):
56
63
  workspace = self.workspace
@@ -84,7 +91,7 @@ class PendingInvitationRender:
84
91
  return field_dict
85
92
 
86
93
  @classmethod
87
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
94
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
88
95
  from ..models.pending_invitation_render_invited_by import PendingInvitationRenderInvitedBy
89
96
  from ..models.pending_invitation_render_workspace import PendingInvitationRenderWorkspace
90
97
  from ..models.pending_invitation_workspace_details import PendingInvitationWorkspaceDetails
@@ -94,9 +101,9 @@ class PendingInvitationRender:
94
101
  d = src_dict.copy()
95
102
  email = d.pop("email", UNSET)
96
103
 
97
- invited_at = d.pop("invitedAt", UNSET)
104
+ invited_at = d.pop("invitedAt", d.pop("invited_at", UNSET))
98
105
 
99
- _invited_by = d.pop("invitedBy", UNSET)
106
+ _invited_by = d.pop("invitedBy", d.pop("invited_by", UNSET))
100
107
  invited_by: Union[Unset, PendingInvitationRenderInvitedBy]
101
108
  if isinstance(_invited_by, Unset):
102
109
  invited_by = UNSET
@@ -112,7 +119,7 @@ class PendingInvitationRender:
112
119
  else:
113
120
  workspace = PendingInvitationRenderWorkspace.from_dict(_workspace)
114
121
 
115
- _workspace_details = d.pop("workspaceDetails", UNSET)
122
+ _workspace_details = d.pop("workspaceDetails", d.pop("workspace_details", UNSET))
116
123
  workspace_details: Union[Unset, PendingInvitationWorkspaceDetails]
117
124
  if isinstance(_workspace_details, Unset):
118
125
  workspace_details = UNSET
@@ -49,7 +49,7 @@ class PendingInvitationRenderInvitedBy:
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()
@@ -37,11 +37,11 @@ class PendingInvitationRenderWorkspace:
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
 
@@ -39,7 +39,7 @@ class PendingInvitationWorkspaceDetails:
39
39
  return field_dict
40
40
 
41
41
  @classmethod
42
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
42
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
43
43
  if not src_dict:
44
44
  return None
45
45
  d = src_dict.copy()
@@ -19,7 +19,7 @@ class PodTemplateSpec:
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 Policy:
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 Policy:
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.metadata import Metadata
56
59
  from ..models.policy_spec import PolicySpec
57
60
 
@@ -37,13 +37,13 @@ class PolicyLocation:
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
  policy_location = cls(
49
49
  name=name,
@@ -61,17 +61,19 @@ class PolicyMaxTokens:
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
68
  granularity = d.pop("granularity", UNSET)
69
69
 
70
- input_ = d.pop("input", UNSET)
70
+ input_ = d.pop("input", d.pop("input_", UNSET))
71
71
 
72
72
  output = d.pop("output", UNSET)
73
73
 
74
- ratio_input_over_output = d.pop("ratioInputOverOutput", UNSET)
74
+ ratio_input_over_output = d.pop(
75
+ "ratioInputOverOutput", d.pop("ratio_input_over_output", UNSET)
76
+ )
75
77
 
76
78
  step = d.pop("step", UNSET)
77
79
 
@@ -38,7 +38,6 @@ class PolicySpec:
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
  flavors: Union[Unset, list[dict[str, Any]]] = UNSET
43
42
  if not isinstance(self.flavors, Unset):
44
43
  flavors = []
@@ -54,13 +53,21 @@ class PolicySpec:
54
53
  locations = []
55
54
  for componentsschemas_policy_locations_item_data in self.locations:
56
55
  if type(componentsschemas_policy_locations_item_data) is dict:
57
- componentsschemas_policy_locations_item = componentsschemas_policy_locations_item_data
56
+ componentsschemas_policy_locations_item = (
57
+ componentsschemas_policy_locations_item_data
58
+ )
58
59
  else:
59
- componentsschemas_policy_locations_item = componentsschemas_policy_locations_item_data.to_dict()
60
+ componentsschemas_policy_locations_item = (
61
+ componentsschemas_policy_locations_item_data.to_dict()
62
+ )
60
63
  locations.append(componentsschemas_policy_locations_item)
61
64
 
62
65
  max_tokens: Union[Unset, dict[str, Any]] = UNSET
63
- if self.max_tokens and not isinstance(self.max_tokens, Unset) and not isinstance(self.max_tokens, dict):
66
+ if (
67
+ self.max_tokens
68
+ and not isinstance(self.max_tokens, Unset)
69
+ and not isinstance(self.max_tokens, dict)
70
+ ):
64
71
  max_tokens = self.max_tokens.to_dict()
65
72
  elif self.max_tokens and isinstance(self.max_tokens, dict):
66
73
  max_tokens = self.max_tokens
@@ -92,7 +99,7 @@ class PolicySpec:
92
99
  return field_dict
93
100
 
94
101
  @classmethod
95
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
102
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
96
103
  from ..models.flavor import Flavor
97
104
  from ..models.policy_location import PolicyLocation
98
105
  from ..models.policy_max_tokens import PolicyMaxTokens
@@ -116,18 +123,18 @@ class PolicySpec:
116
123
 
117
124
  locations.append(componentsschemas_policy_locations_item)
118
125
 
119
- _max_tokens = d.pop("maxTokens", UNSET)
126
+ _max_tokens = d.pop("maxTokens", d.pop("max_tokens", UNSET))
120
127
  max_tokens: Union[Unset, PolicyMaxTokens]
121
128
  if isinstance(_max_tokens, Unset):
122
129
  max_tokens = UNSET
123
130
  else:
124
131
  max_tokens = PolicyMaxTokens.from_dict(_max_tokens)
125
132
 
126
- resource_types = cast(list[str], d.pop("resourceTypes", UNSET))
133
+ resource_types = cast(list[str], d.pop("resourceTypes", d.pop("resource_types", UNSET)))
127
134
 
128
135
  sandbox = d.pop("sandbox", UNSET)
129
136
 
130
- type_ = d.pop("type", UNSET)
137
+ type_ = d.pop("type", d.pop("type_", UNSET))
131
138
 
132
139
  policy_spec = cls(
133
140
  flavors=flavors,
@@ -43,7 +43,7 @@ class Port:
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()
@@ -27,9 +27,12 @@ class Preview:
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 Preview:
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.preview_metadata import PreviewMetadata
56
59
  from ..models.preview_spec import PreviewSpec
57
60
 
@@ -79,25 +79,25 @@ class PreviewMetadata:
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
- created_by = d.pop("createdBy", UNSET)
90
+ created_by = d.pop("createdBy", d.pop("created_by", UNSET))
91
91
 
92
- updated_by = d.pop("updatedBy", UNSET)
92
+ updated_by = d.pop("updatedBy", d.pop("updated_by", UNSET))
93
93
 
94
- display_name = d.pop("displayName", UNSET)
94
+ display_name = d.pop("displayName", d.pop("display_name", UNSET))
95
95
 
96
96
  name = d.pop("name", UNSET)
97
97
 
98
- resource_name = d.pop("resourceName", UNSET)
98
+ resource_name = d.pop("resourceName", d.pop("resource_name", UNSET))
99
99
 
100
- resource_type = d.pop("resourceType", UNSET)
100
+ resource_type = d.pop("resourceType", d.pop("resource_type", UNSET))
101
101
 
102
102
  workspace = d.pop("workspace", UNSET)
103
103
 
@@ -46,7 +46,6 @@ class PreviewSpec:
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
  custom_domain = self.custom_domain
51
50
 
52
51
  expires = self.expires
@@ -110,33 +109,33 @@ class PreviewSpec:
110
109
  return field_dict
111
110
 
112
111
  @classmethod
113
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
112
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
114
113
  from ..models.preview_spec_request_headers import PreviewSpecRequestHeaders
115
114
  from ..models.preview_spec_response_headers import PreviewSpecResponseHeaders
116
115
 
117
116
  if not src_dict:
118
117
  return None
119
118
  d = src_dict.copy()
120
- custom_domain = d.pop("customDomain", UNSET)
119
+ custom_domain = d.pop("customDomain", d.pop("custom_domain", UNSET))
121
120
 
122
121
  expires = d.pop("expires", UNSET)
123
122
 
124
123
  port = d.pop("port", UNSET)
125
124
 
126
- prefix_url = d.pop("prefixUrl", UNSET)
125
+ prefix_url = d.pop("prefixUrl", d.pop("prefix_url", UNSET))
127
126
 
128
127
  public = d.pop("public", UNSET)
129
128
 
130
129
  region = d.pop("region", UNSET)
131
130
 
132
- _request_headers = d.pop("requestHeaders", UNSET)
131
+ _request_headers = d.pop("requestHeaders", d.pop("request_headers", UNSET))
133
132
  request_headers: Union[Unset, PreviewSpecRequestHeaders]
134
133
  if isinstance(_request_headers, Unset):
135
134
  request_headers = UNSET
136
135
  else:
137
136
  request_headers = PreviewSpecRequestHeaders.from_dict(_request_headers)
138
137
 
139
- _response_headers = d.pop("responseHeaders", UNSET)
138
+ _response_headers = d.pop("responseHeaders", d.pop("response_headers", UNSET))
140
139
  response_headers: Union[Unset, PreviewSpecResponseHeaders]
141
140
  if isinstance(_response_headers, Unset):
142
141
  response_headers = UNSET
@@ -22,7 +22,7 @@ class PreviewSpecRequestHeaders:
22
22
  return field_dict
23
23
 
24
24
  @classmethod
25
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
25
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
26
26
  if not src_dict:
27
27
  return None
28
28
  d = src_dict.copy()
@@ -19,7 +19,7 @@ class PreviewSpecResponseHeaders:
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 PreviewToken:
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 PreviewToken:
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.preview_token_metadata import PreviewTokenMetadata
56
59
  from ..models.preview_token_spec import PreviewTokenSpec
57
60
 
@@ -55,17 +55,17 @@ class PreviewTokenMetadata:
55
55
  return field_dict
56
56
 
57
57
  @classmethod
58
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
58
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
59
59
  if not src_dict:
60
60
  return None
61
61
  d = src_dict.copy()
62
62
  name = d.pop("name", UNSET)
63
63
 
64
- preview_name = d.pop("previewName", UNSET)
64
+ preview_name = d.pop("previewName", d.pop("preview_name", UNSET))
65
65
 
66
- resource_name = d.pop("resourceName", UNSET)
66
+ resource_name = d.pop("resourceName", d.pop("resource_name", UNSET))
67
67
 
68
- resource_type = d.pop("resourceType", UNSET)
68
+ resource_type = d.pop("resourceType", d.pop("resource_type", UNSET))
69
69
 
70
70
  workspace = d.pop("workspace", UNSET)
71
71
 
@@ -43,13 +43,13 @@ class PreviewTokenSpec:
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
  expired = d.pop("expired", UNSET)
51
51
 
52
- expires_at = d.pop("expiresAt", UNSET)
52
+ expires_at = d.pop("expiresAt", d.pop("expires_at", UNSET))
53
53
 
54
54
  token = d.pop("token", UNSET)
55
55
 
@@ -31,7 +31,7 @@ class PrivateLocation:
31
31
  return field_dict
32
32
 
33
33
  @classmethod
34
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
34
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
35
35
  if not src_dict:
36
36
  return None
37
37
  d = src_dict.copy()
@@ -46,15 +46,15 @@ class PublicIp:
46
46
  return field_dict
47
47
 
48
48
  @classmethod
49
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
49
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
50
50
  if not src_dict:
51
51
  return None
52
52
  d = src_dict.copy()
53
53
  description = d.pop("description", UNSET)
54
54
 
55
- ipv_4_cidrs = cast(list[str], d.pop("ipv4Cidrs", UNSET))
55
+ ipv_4_cidrs = cast(list[str], d.pop("ipv4Cidrs", d.pop("ipv_4_cidrs", UNSET)))
56
56
 
57
- ipv_6_cidrs = cast(list[str], d.pop("ipv6Cidrs", UNSET))
57
+ ipv_6_cidrs = cast(list[str], d.pop("ipv6Cidrs", d.pop("ipv_6_cidrs", UNSET)))
58
58
 
59
59
  public_ip = cls(
60
60
  description=description,
@@ -17,7 +17,6 @@ class PublicIps:
17
17
  additional_properties: dict[str, "PublicIp"] = _attrs_field(init=False, factory=dict)
18
18
 
19
19
  def to_dict(self) -> dict[str, Any]:
20
-
21
20
  field_dict: dict[str, Any] = {}
22
21
  for prop_name, prop in self.additional_properties.items():
23
22
  if type(prop) is dict:
@@ -28,7 +27,7 @@ class PublicIps:
28
27
  return field_dict
29
28
 
30
29
  @classmethod
31
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
30
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
32
31
  from ..models.public_ip import PublicIp
33
32
 
34
33
  if not src_dict:
@@ -61,7 +61,7 @@ class Region:
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()
@@ -71,7 +71,7 @@ class Region:
71
71
 
72
72
  country = d.pop("country", UNSET)
73
73
 
74
- info_generation = d.pop("infoGeneration", UNSET)
74
+ info_generation = d.pop("infoGeneration", d.pop("info_generation", UNSET))
75
75
 
76
76
  location = d.pop("location", UNSET)
77
77
 
@@ -37,11 +37,11 @@ class Repository:
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
- type_ = d.pop("type", UNSET)
44
+ type_ = d.pop("type", d.pop("type_", UNSET))
45
45
 
46
46
  url = d.pop("url", UNSET)
47
47
 
@@ -55,7 +55,7 @@ class RequestDurationOverTimeMetric:
55
55
  return field_dict
56
56
 
57
57
  @classmethod
58
- def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T:
58
+ def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
59
59
  if not src_dict:
60
60
  return None
61
61
  d = src_dict.copy()
@@ -24,7 +24,6 @@ class RequestDurationOverTimeMetrics:
24
24
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
25
 
26
26
  def to_dict(self) -> dict[str, Any]:
27
-
28
27
  request_duration_over_time: Union[Unset, list[dict[str, Any]]] = UNSET
29
28
  if not isinstance(self.request_duration_over_time, Unset):
30
29
  request_duration_over_time = []
@@ -44,14 +43,16 @@ class RequestDurationOverTimeMetrics:
44
43
  return field_dict
45
44
 
46
45
  @classmethod
47
- 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:
48
47
  from ..models.request_duration_over_time_metric import RequestDurationOverTimeMetric
49
48
 
50
49
  if not src_dict:
51
50
  return None
52
51
  d = src_dict.copy()
53
52
  request_duration_over_time = []
54
- _request_duration_over_time = d.pop("requestDurationOverTime", UNSET)
53
+ _request_duration_over_time = d.pop(
54
+ "requestDurationOverTime", d.pop("request_duration_over_time", UNSET)
55
+ )
55
56
  for request_duration_over_time_item_data in _request_duration_over_time or []:
56
57
  request_duration_over_time_item = RequestDurationOverTimeMetric.from_dict(
57
58
  request_duration_over_time_item_data
@@ -28,11 +28,12 @@ class RequestTotalByOriginMetric:
28
28
  """
29
29
 
30
30
  request_total_by_origin: Union[Unset, "RequestTotalByOriginMetricRequestTotalByOrigin"] = UNSET
31
- request_total_by_origin_and_code: Union[Unset, "RequestTotalByOriginMetricRequestTotalByOriginAndCode"] = UNSET
31
+ request_total_by_origin_and_code: Union[
32
+ Unset, "RequestTotalByOriginMetricRequestTotalByOriginAndCode"
33
+ ] = UNSET
32
34
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
35
 
34
36
  def to_dict(self) -> dict[str, Any]:
35
-
36
37
  request_total_by_origin: Union[Unset, dict[str, Any]] = UNSET
37
38
  if (
38
39
  self.request_total_by_origin
@@ -50,7 +51,9 @@ class RequestTotalByOriginMetric:
50
51
  and not isinstance(self.request_total_by_origin_and_code, dict)
51
52
  ):
52
53
  request_total_by_origin_and_code = self.request_total_by_origin_and_code.to_dict()
53
- elif self.request_total_by_origin_and_code and isinstance(self.request_total_by_origin_and_code, dict):
54
+ elif self.request_total_by_origin_and_code and isinstance(
55
+ self.request_total_by_origin_and_code, dict
56
+ ):
54
57
  request_total_by_origin_and_code = self.request_total_by_origin_and_code
55
58
 
56
59
  field_dict: dict[str, Any] = {}
@@ -64,7 +67,7 @@ class RequestTotalByOriginMetric:
64
67
  return field_dict
65
68
 
66
69
  @classmethod
67
- 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:
68
71
  from ..models.request_total_by_origin_metric_request_total_by_origin import (
69
72
  RequestTotalByOriginMetricRequestTotalByOrigin,
70
73
  )
@@ -75,20 +78,30 @@ class RequestTotalByOriginMetric:
75
78
  if not src_dict:
76
79
  return None
77
80
  d = src_dict.copy()
78
- _request_total_by_origin = d.pop("requestTotalByOrigin", UNSET)
81
+ _request_total_by_origin = d.pop(
82
+ "requestTotalByOrigin", d.pop("request_total_by_origin", UNSET)
83
+ )
79
84
  request_total_by_origin: Union[Unset, RequestTotalByOriginMetricRequestTotalByOrigin]
80
85
  if isinstance(_request_total_by_origin, Unset):
81
86
  request_total_by_origin = UNSET
82
87
  else:
83
- request_total_by_origin = RequestTotalByOriginMetricRequestTotalByOrigin.from_dict(_request_total_by_origin)
88
+ request_total_by_origin = RequestTotalByOriginMetricRequestTotalByOrigin.from_dict(
89
+ _request_total_by_origin
90
+ )
84
91
 
85
- _request_total_by_origin_and_code = d.pop("requestTotalByOriginAndCode", UNSET)
86
- request_total_by_origin_and_code: Union[Unset, RequestTotalByOriginMetricRequestTotalByOriginAndCode]
92
+ _request_total_by_origin_and_code = d.pop(
93
+ "requestTotalByOriginAndCode", d.pop("request_total_by_origin_and_code", UNSET)
94
+ )
95
+ request_total_by_origin_and_code: Union[
96
+ Unset, RequestTotalByOriginMetricRequestTotalByOriginAndCode
97
+ ]
87
98
  if isinstance(_request_total_by_origin_and_code, Unset):
88
99
  request_total_by_origin_and_code = UNSET
89
100
  else:
90
- request_total_by_origin_and_code = RequestTotalByOriginMetricRequestTotalByOriginAndCode.from_dict(
91
- _request_total_by_origin_and_code
101
+ request_total_by_origin_and_code = (
102
+ RequestTotalByOriginMetricRequestTotalByOriginAndCode.from_dict(
103
+ _request_total_by_origin_and_code
104
+ )
92
105
  )
93
106
 
94
107
  request_total_by_origin_metric = cls(
@@ -19,7 +19,7 @@ class RequestTotalByOriginMetricRequestTotalByOrigin:
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 RequestTotalByOriginMetricRequestTotalByOriginAndCode:
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()