blaxel 0.2.34__py3-none-any.whl → 0.2.35__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 (276) hide show
  1. blaxel/__init__.py +2 -2
  2. blaxel/core/client/api/agents/create_agent.py +64 -19
  3. blaxel/core/client/api/agents/delete_agent.py +44 -15
  4. blaxel/core/client/api/agents/get_agent.py +43 -14
  5. blaxel/core/client/api/agents/list_agents.py +40 -11
  6. blaxel/core/client/api/agents/update_agent.py +60 -19
  7. blaxel/core/client/api/compute/create_sandbox.py +60 -23
  8. blaxel/core/client/api/compute/delete_sandbox.py +40 -19
  9. blaxel/core/client/api/compute/get_sandbox.py +39 -18
  10. blaxel/core/client/api/compute/list_sandboxes.py +40 -19
  11. blaxel/core/client/api/compute/update_sandbox.py +56 -23
  12. blaxel/core/client/api/configurations/get_configuration.py +16 -4
  13. blaxel/core/client/api/customdomains/create_custom_domain.py +12 -0
  14. blaxel/core/client/api/customdomains/list_custom_domains.py +16 -4
  15. blaxel/core/client/api/default/get_template.py +8 -4
  16. blaxel/core/client/api/functions/create_function.py +62 -19
  17. blaxel/core/client/api/functions/delete_function.py +46 -15
  18. blaxel/core/client/api/functions/get_function.py +45 -14
  19. blaxel/core/client/api/functions/list_functions.py +44 -15
  20. blaxel/core/client/api/functions/update_function.py +62 -19
  21. blaxel/core/client/api/images/cleanup_images.py +12 -12
  22. blaxel/core/client/api/images/delete_image.py +12 -8
  23. blaxel/core/client/api/images/delete_image_tag.py +12 -8
  24. blaxel/core/client/api/images/get_image.py +12 -8
  25. blaxel/core/client/api/images/list_images.py +12 -8
  26. blaxel/core/client/api/integrations/create_integration_connection.py +56 -23
  27. blaxel/core/client/api/integrations/delete_integration_connection.py +48 -19
  28. blaxel/core/client/api/integrations/get_integration.py +12 -8
  29. blaxel/core/client/api/integrations/get_integration_connection.py +44 -19
  30. blaxel/core/client/api/integrations/get_integration_connection_model.py +2 -2
  31. blaxel/core/client/api/integrations/list_integration_connections.py +36 -19
  32. blaxel/core/client/api/integrations/update_integration_connection.py +52 -19
  33. blaxel/core/client/api/jobs/create_job.py +20 -12
  34. blaxel/core/client/api/jobs/create_job_execution.py +22 -16
  35. blaxel/core/client/api/jobs/delete_job.py +12 -8
  36. blaxel/core/client/api/jobs/delete_job_execution.py +12 -8
  37. blaxel/core/client/api/jobs/get_job.py +24 -20
  38. blaxel/core/client/api/jobs/get_job_execution.py +8 -4
  39. blaxel/core/client/api/jobs/list_job_executions.py +8 -4
  40. blaxel/core/client/api/jobs/list_jobs.py +12 -8
  41. blaxel/core/client/api/jobs/update_job.py +20 -12
  42. blaxel/core/client/api/locations/list_locations.py +12 -8
  43. blaxel/core/client/api/{default → mcphub}/list_mcp_hub_definitions.py +20 -4
  44. blaxel/core/client/api/models/create_model.py +52 -23
  45. blaxel/core/client/api/models/delete_model.py +40 -19
  46. blaxel/core/client/api/models/get_model.py +40 -19
  47. blaxel/core/client/api/models/list_models.py +40 -19
  48. blaxel/core/client/api/models/update_model.py +52 -23
  49. blaxel/core/client/api/policies/create_policy.py +12 -8
  50. blaxel/core/client/api/policies/delete_policy.py +12 -8
  51. blaxel/core/client/api/policies/get_policy.py +12 -8
  52. blaxel/core/client/api/policies/list_policies.py +12 -8
  53. blaxel/core/client/api/policies/update_policy.py +12 -8
  54. blaxel/core/client/api/public_ipslist/list_public_ips.py +37 -5
  55. blaxel/core/client/api/sandboxhub/__init__.py +0 -0
  56. blaxel/core/client/api/{default → sandboxhub}/list_sandbox_hub_definitions.py +20 -4
  57. blaxel/core/client/api/service_accounts/create_api_key_for_service_account.py +12 -8
  58. blaxel/core/client/api/service_accounts/create_workspace_service_account.py +12 -8
  59. blaxel/core/client/api/service_accounts/delete_api_key_for_service_account.py +6 -4
  60. blaxel/core/client/api/service_accounts/delete_workspace_service_account.py +12 -8
  61. blaxel/core/client/api/service_accounts/get_workspace_service_accounts.py +12 -8
  62. blaxel/core/client/api/service_accounts/list_api_keys_for_service_account.py +12 -8
  63. blaxel/core/client/api/service_accounts/update_workspace_service_account.py +8 -8
  64. blaxel/core/client/api/templates/list_templates.py +12 -8
  65. blaxel/core/client/api/volume_templates/create_volume_template.py +8 -4
  66. blaxel/core/client/api/volume_templates/list_volume_templates.py +8 -4
  67. blaxel/core/client/api/volumes/create_volume.py +56 -23
  68. blaxel/core/client/api/volumes/delete_volume.py +44 -19
  69. blaxel/core/client/api/volumes/get_volume.py +40 -19
  70. blaxel/core/client/api/volumes/list_volumes.py +40 -19
  71. blaxel/core/client/api/workspaces/create_workspace.py +54 -23
  72. blaxel/core/client/api/workspaces/delete_workspace.py +42 -19
  73. blaxel/core/client/api/workspaces/get_workspace.py +42 -19
  74. blaxel/core/client/api/workspaces/invite_workspace_user.py +8 -4
  75. blaxel/core/client/api/workspaces/list_workspace_users.py +12 -8
  76. blaxel/core/client/api/workspaces/list_workspaces.py +36 -19
  77. blaxel/core/client/api/workspaces/update_workspace.py +50 -19
  78. blaxel/core/client/models/__init__.py +76 -146
  79. blaxel/core/client/models/agent.py +43 -47
  80. blaxel/core/client/models/agent_runtime.py +139 -0
  81. blaxel/core/client/models/agent_runtime_generation.py +18 -0
  82. blaxel/core/client/models/agent_spec.py +33 -110
  83. blaxel/core/client/models/api_key.py +5 -4
  84. blaxel/core/client/models/core_event.py +5 -5
  85. blaxel/core/client/models/create_api_key_for_service_account_body.py +2 -1
  86. blaxel/core/client/models/create_job_execution_request.py +1 -1
  87. blaxel/core/client/models/create_job_execution_response.py +13 -9
  88. blaxel/core/client/models/custom_domain.py +19 -36
  89. blaxel/core/client/models/custom_domain_metadata.py +4 -3
  90. blaxel/core/client/models/custom_domain_spec.py +14 -5
  91. blaxel/core/client/models/custom_domain_spec_status.py +19 -0
  92. blaxel/core/client/models/entrypoint.py +39 -13
  93. blaxel/core/client/models/{workspace_labels.py → entrypoint_args_item.py} +6 -6
  94. blaxel/core/client/models/entrypoint_env.py +3 -3
  95. blaxel/core/client/models/{job_metrics_executions_total.py → entrypoint_super_gateway_args_item.py} +6 -6
  96. blaxel/core/client/models/{spec_configuration.py → env.py} +17 -8
  97. blaxel/core/{sandbox/client/models/welcome_response.py → client/models/error.py} +26 -23
  98. blaxel/core/client/models/expiration_policy.py +30 -11
  99. blaxel/core/client/models/expiration_policy_action.py +17 -0
  100. blaxel/core/client/models/expiration_policy_type.py +19 -0
  101. blaxel/core/client/models/flavor.py +13 -5
  102. blaxel/core/client/models/flavor_type.py +18 -0
  103. blaxel/core/client/models/form.py +6 -6
  104. blaxel/core/client/models/function.py +43 -47
  105. blaxel/core/client/models/function_runtime.py +138 -0
  106. blaxel/core/client/models/function_runtime_generation.py +18 -0
  107. blaxel/core/client/models/function_spec.py +27 -73
  108. blaxel/core/client/models/function_spec_transport.py +18 -0
  109. blaxel/core/client/models/image.py +19 -36
  110. blaxel/core/client/models/integration_connection.py +25 -39
  111. blaxel/core/client/models/integration_connection_spec.py +8 -5
  112. blaxel/core/client/models/integration_connection_spec_config.py +1 -1
  113. blaxel/core/client/models/integration_connection_spec_secret.py +1 -1
  114. blaxel/core/client/models/integration_endpoint.py +41 -11
  115. blaxel/core/client/models/integration_endpoint_ignore_models_item.py +45 -0
  116. blaxel/core/client/models/{mcp_definition_entrypoint.py → integration_endpoint_models_item.py} +6 -6
  117. blaxel/core/client/models/job.py +43 -47
  118. blaxel/core/client/models/job_execution.py +30 -37
  119. blaxel/core/client/models/job_execution_metadata.py +3 -3
  120. blaxel/core/client/models/job_execution_spec.py +2 -2
  121. blaxel/core/client/models/job_execution_stats.py +5 -5
  122. blaxel/core/client/models/job_execution_status.py +24 -0
  123. blaxel/core/client/models/job_execution_task.py +12 -4
  124. blaxel/core/client/models/job_execution_task_metadata.py +1 -1
  125. blaxel/core/client/models/job_execution_task_spec.py +2 -2
  126. blaxel/core/client/models/job_execution_task_status.py +23 -0
  127. blaxel/core/client/models/job_runtime.py +172 -0
  128. blaxel/core/client/models/job_runtime_generation.py +18 -0
  129. blaxel/core/client/models/job_spec.py +20 -88
  130. blaxel/core/client/models/location_response.py +5 -5
  131. blaxel/core/client/models/mcp_definition.py +30 -17
  132. blaxel/core/client/models/{job_metrics_tasks_total.py → mcp_definition_categories_item.py} +6 -6
  133. blaxel/core/client/models/metadata.py +23 -17
  134. blaxel/core/client/models/metadata_labels.py +4 -1
  135. blaxel/core/client/models/model.py +43 -47
  136. blaxel/core/client/models/model_runtime.py +99 -0
  137. blaxel/core/client/models/model_runtime_type.py +34 -0
  138. blaxel/core/client/models/model_spec.py +12 -58
  139. blaxel/core/client/models/o_auth.py +23 -6
  140. blaxel/core/client/models/{form_oauth.py → o_auth_scope_item.py} +6 -6
  141. blaxel/core/client/models/pending_invitation_accept.py +2 -1
  142. blaxel/core/client/models/pending_invitation_workspace_details.py +27 -6
  143. blaxel/core/client/models/{metrics_request_total_per_code.py → pending_invitation_workspace_details_emails_item.py} +6 -6
  144. blaxel/core/client/models/policy.py +20 -36
  145. blaxel/core/client/models/policy_location.py +13 -5
  146. blaxel/core/client/models/policy_location_type.py +19 -0
  147. blaxel/core/client/models/policy_max_tokens.py +6 -6
  148. blaxel/core/client/models/policy_resource_type.py +20 -0
  149. blaxel/core/client/models/policy_spec.py +31 -10
  150. blaxel/core/client/models/policy_spec_type.py +19 -0
  151. blaxel/core/client/models/port.py +25 -15
  152. blaxel/core/client/models/port_protocol.py +19 -0
  153. blaxel/core/client/models/preview.py +19 -36
  154. blaxel/core/client/models/preview_metadata.py +12 -10
  155. blaxel/core/client/models/preview_token.py +19 -36
  156. blaxel/core/client/models/preview_token_metadata.py +8 -6
  157. blaxel/core/client/models/repository.py +2 -2
  158. blaxel/core/client/models/revision_configuration.py +3 -3
  159. blaxel/core/client/models/sandbox.py +45 -58
  160. blaxel/core/client/models/sandbox_definition.py +37 -22
  161. blaxel/core/client/models/sandbox_definition_categories_item.py +45 -0
  162. blaxel/core/client/models/sandbox_error.py +148 -0
  163. blaxel/core/client/models/sandbox_error_details.py +45 -0
  164. blaxel/core/client/models/sandbox_lifecycle.py +3 -2
  165. blaxel/core/client/models/sandbox_runtime.py +145 -0
  166. blaxel/core/client/models/sandbox_spec.py +33 -134
  167. blaxel/core/client/models/status.py +25 -0
  168. blaxel/core/client/models/template.py +8 -7
  169. blaxel/core/client/models/template_variable.py +5 -5
  170. blaxel/core/client/models/trigger.py +14 -6
  171. blaxel/core/client/models/trigger_configuration.py +7 -6
  172. blaxel/core/client/models/trigger_type.py +19 -0
  173. blaxel/core/client/models/volume.py +35 -47
  174. blaxel/core/client/models/volume_attachment.py +6 -4
  175. blaxel/core/client/models/volume_spec.py +7 -4
  176. blaxel/core/client/models/volume_state.py +3 -3
  177. blaxel/core/client/models/volume_template.py +19 -33
  178. blaxel/core/client/models/volume_template_state.py +12 -4
  179. blaxel/core/client/models/volume_template_state_status.py +19 -0
  180. blaxel/core/client/models/volume_template_version.py +12 -4
  181. blaxel/core/client/models/volume_template_version_status.py +19 -0
  182. blaxel/core/client/models/workspace.py +35 -25
  183. blaxel/core/client/models/workspace_runtime.py +3 -2
  184. blaxel/core/client/models/workspace_status.py +22 -0
  185. blaxel/core/common/__init__.py +1 -1
  186. blaxel/core/jobs/__init__.py +0 -1
  187. blaxel/core/sandbox/__init__.py +2 -0
  188. blaxel/core/sandbox/client/api/process/post_process.py +8 -4
  189. blaxel/core/sandbox/client/models/__init__.py +0 -2
  190. blaxel/core/sandbox/client/models/process_response.py +16 -0
  191. blaxel/core/sandbox/client/models/process_response_status.py +9 -0
  192. blaxel/core/sandbox/default/__init__.py +2 -0
  193. blaxel/core/sandbox/default/interpreter.py +5 -1
  194. blaxel/core/sandbox/default/preview.py +3 -1
  195. blaxel/core/sandbox/default/sandbox.py +51 -16
  196. blaxel/core/sandbox/sync/process.py +2 -1
  197. blaxel/core/sandbox/sync/sandbox.py +34 -13
  198. blaxel/core/tools/common.py +16 -2
  199. blaxel/core/volume/__init__.py +2 -2
  200. blaxel/core/volume/volume.py +32 -10
  201. blaxel/langgraph/tools.py +34 -2
  202. blaxel/openai/tools.py +33 -1
  203. {blaxel-0.2.34.dist-info → blaxel-0.2.35.dist-info}/METADATA +3 -3
  204. {blaxel-0.2.34.dist-info → blaxel-0.2.35.dist-info}/RECORD +207 -246
  205. blaxel/core/client/models/acl.py +0 -133
  206. blaxel/core/client/models/billable_time_metric.py +0 -89
  207. blaxel/core/client/models/core_spec.py +0 -194
  208. blaxel/core/client/models/core_spec_configurations.py +0 -77
  209. blaxel/core/client/models/histogram_bucket.py +0 -79
  210. blaxel/core/client/models/histogram_stats.py +0 -88
  211. blaxel/core/client/models/integration_model.py +0 -162
  212. blaxel/core/client/models/job_execution_config.py +0 -79
  213. blaxel/core/client/models/job_metrics.py +0 -262
  214. blaxel/core/client/models/jobs_chart_value.py +0 -70
  215. blaxel/core/client/models/jobs_network_chart.py +0 -102
  216. blaxel/core/client/models/jobs_success_failed_chart.py +0 -147
  217. blaxel/core/client/models/jobs_total.py +0 -88
  218. blaxel/core/client/models/last_n_requests_metric.py +0 -97
  219. blaxel/core/client/models/latency_metric.py +0 -148
  220. blaxel/core/client/models/logs_response.py +0 -63
  221. blaxel/core/client/models/logs_response_data.py +0 -99
  222. blaxel/core/client/models/mcp_definition_form.py +0 -45
  223. blaxel/core/client/models/memory_allocation_by_name.py +0 -70
  224. blaxel/core/client/models/memory_allocation_metric.py +0 -61
  225. blaxel/core/client/models/metric.py +0 -79
  226. blaxel/core/client/models/metrics.py +0 -273
  227. blaxel/core/client/models/metrics_models.py +0 -45
  228. blaxel/core/client/models/metrics_rps_per_code.py +0 -45
  229. blaxel/core/client/models/pod_template_spec.py +0 -45
  230. blaxel/core/client/models/request_duration_over_time_metric.py +0 -97
  231. blaxel/core/client/models/request_duration_over_time_metrics.py +0 -84
  232. blaxel/core/client/models/request_total_by_origin_metric.py +0 -129
  233. blaxel/core/client/models/request_total_by_origin_metric_request_total_by_origin.py +0 -45
  234. blaxel/core/client/models/request_total_by_origin_metric_request_total_by_origin_and_code.py +0 -45
  235. blaxel/core/client/models/request_total_metric.py +0 -155
  236. blaxel/core/client/models/request_total_metric_request_total_per_code.py +0 -45
  237. blaxel/core/client/models/request_total_metric_rps_per_code.py +0 -45
  238. blaxel/core/client/models/request_total_response_data.py +0 -97
  239. blaxel/core/client/models/resource.py +0 -99
  240. blaxel/core/client/models/resource_log.py +0 -88
  241. blaxel/core/client/models/resource_log_chart.py +0 -133
  242. blaxel/core/client/models/resource_log_response.py +0 -83
  243. blaxel/core/client/models/resource_metrics.py +0 -618
  244. blaxel/core/client/models/resource_metrics_request_total_per_code.py +0 -45
  245. blaxel/core/client/models/resource_metrics_request_total_per_code_previous.py +0 -45
  246. blaxel/core/client/models/resource_metrics_rps_per_code.py +0 -45
  247. blaxel/core/client/models/resource_metrics_rps_per_code_previous.py +0 -45
  248. blaxel/core/client/models/resource_trace.py +0 -97
  249. blaxel/core/client/models/runtime.py +0 -317
  250. blaxel/core/client/models/runtime_configuration.py +0 -45
  251. blaxel/core/client/models/runtime_startup_probe.py +0 -45
  252. blaxel/core/client/models/sandbox_metrics.py +0 -88
  253. blaxel/core/client/models/serverless_config.py +0 -117
  254. blaxel/core/client/models/serverless_config_configuration.py +0 -45
  255. blaxel/core/client/models/start_sandbox.py +0 -98
  256. blaxel/core/client/models/stop_sandbox.py +0 -98
  257. blaxel/core/client/models/store_agent.py +0 -181
  258. blaxel/core/client/models/store_agent_labels.py +0 -45
  259. blaxel/core/client/models/store_configuration.py +0 -156
  260. blaxel/core/client/models/store_configuration_option.py +0 -79
  261. blaxel/core/client/models/time_to_first_token_over_time_metrics.py +0 -87
  262. blaxel/core/client/models/token_rate_metric.py +0 -106
  263. blaxel/core/client/models/token_rate_metrics.py +0 -124
  264. blaxel/core/client/models/token_total_metric.py +0 -112
  265. blaxel/core/client/models/trace_ids_response.py +0 -45
  266. blaxel/core/client/models/websocket_channel.py +0 -97
  267. blaxel/core/client/models/websocket_message.py +0 -106
  268. blaxel/core/sandbox/client/api/root/delete.py +0 -130
  269. blaxel/core/sandbox/client/api/root/get.py +0 -130
  270. blaxel/core/sandbox/client/api/root/options.py +0 -130
  271. blaxel/core/sandbox/client/api/root/patch.py +0 -130
  272. blaxel/core/sandbox/client/api/root/post.py +0 -130
  273. blaxel/core/sandbox/client/api/root/put.py +0 -130
  274. /blaxel/core/{sandbox/client/api/root → client/api/mcphub}/__init__.py +0 -0
  275. {blaxel-0.2.34.dist-info → blaxel-0.2.35.dist-info}/WHEEL +0 -0
  276. {blaxel-0.2.34.dist-info → blaxel-0.2.35.dist-info}/licenses/LICENSE +0 -0
@@ -1,11 +1,12 @@
1
1
  from http import HTTPStatus
2
- from typing import Any
2
+ from typing import Any, Union
3
3
 
4
4
  import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import Client
8
8
  from ...models.agent import Agent
9
+ from ...models.error import Error
9
10
  from ...types import Response
10
11
 
11
12
 
@@ -33,18 +34,38 @@ def _get_kwargs(
33
34
  return _kwargs
34
35
 
35
36
 
36
- def _parse_response(*, client: Client, response: httpx.Response) -> Agent | None:
37
+ def _parse_response(*, client: Client, response: httpx.Response) -> Union[Agent, Error] | None:
37
38
  if response.status_code == 200:
38
39
  response_200 = Agent.from_dict(response.json())
39
40
 
40
41
  return response_200
42
+ if response.status_code == 400:
43
+ response_400 = Error.from_dict(response.json())
44
+
45
+ return response_400
46
+ if response.status_code == 401:
47
+ response_401 = Error.from_dict(response.json())
48
+
49
+ return response_401
50
+ if response.status_code == 403:
51
+ response_403 = Error.from_dict(response.json())
52
+
53
+ return response_403
54
+ if response.status_code == 404:
55
+ response_404 = Error.from_dict(response.json())
56
+
57
+ return response_404
58
+ if response.status_code == 500:
59
+ response_500 = Error.from_dict(response.json())
60
+
61
+ return response_500
41
62
  if client.raise_on_unexpected_status:
42
63
  raise errors.UnexpectedStatus(response.status_code, response.content)
43
64
  else:
44
65
  return None
45
66
 
46
67
 
47
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Agent]:
68
+ def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[Agent, Error]]:
48
69
  return Response(
49
70
  status_code=HTTPStatus(response.status_code),
50
71
  content=response.content,
@@ -58,19 +79,24 @@ def sync_detailed(
58
79
  *,
59
80
  client: Client,
60
81
  body: Agent,
61
- ) -> Response[Agent]:
62
- """Update agent by name
82
+ ) -> Response[Union[Agent, Error]]:
83
+ """Update agent
84
+
85
+ Updates an agent's configuration and triggers a new deployment. Changes to runtime settings,
86
+ environment variables, or scaling parameters will be applied on the next deployment.
63
87
 
64
88
  Args:
65
89
  agent_name (str):
66
- body (Agent): Agent
90
+ body (Agent): Serverless AI agent deployment that runs your custom agent code as an auto-
91
+ scaling API endpoint. Agents are deployed from your code repository and expose a global
92
+ inference URL for querying.
67
93
 
68
94
  Raises:
69
95
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
70
96
  httpx.TimeoutException: If the request takes longer than Client.timeout.
71
97
 
72
98
  Returns:
73
- Response[Agent]
99
+ Response[Union[Agent, Error]]
74
100
  """
75
101
 
76
102
  kwargs = _get_kwargs(
@@ -90,19 +116,24 @@ def sync(
90
116
  *,
91
117
  client: Client,
92
118
  body: Agent,
93
- ) -> Agent | None:
94
- """Update agent by name
119
+ ) -> Union[Agent, Error] | None:
120
+ """Update agent
121
+
122
+ Updates an agent's configuration and triggers a new deployment. Changes to runtime settings,
123
+ environment variables, or scaling parameters will be applied on the next deployment.
95
124
 
96
125
  Args:
97
126
  agent_name (str):
98
- body (Agent): Agent
127
+ body (Agent): Serverless AI agent deployment that runs your custom agent code as an auto-
128
+ scaling API endpoint. Agents are deployed from your code repository and expose a global
129
+ inference URL for querying.
99
130
 
100
131
  Raises:
101
132
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
102
133
  httpx.TimeoutException: If the request takes longer than Client.timeout.
103
134
 
104
135
  Returns:
105
- Agent
136
+ Union[Agent, Error]
106
137
  """
107
138
 
108
139
  return sync_detailed(
@@ -117,19 +148,24 @@ async def asyncio_detailed(
117
148
  *,
118
149
  client: Client,
119
150
  body: Agent,
120
- ) -> Response[Agent]:
121
- """Update agent by name
151
+ ) -> Response[Union[Agent, Error]]:
152
+ """Update agent
153
+
154
+ Updates an agent's configuration and triggers a new deployment. Changes to runtime settings,
155
+ environment variables, or scaling parameters will be applied on the next deployment.
122
156
 
123
157
  Args:
124
158
  agent_name (str):
125
- body (Agent): Agent
159
+ body (Agent): Serverless AI agent deployment that runs your custom agent code as an auto-
160
+ scaling API endpoint. Agents are deployed from your code repository and expose a global
161
+ inference URL for querying.
126
162
 
127
163
  Raises:
128
164
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
129
165
  httpx.TimeoutException: If the request takes longer than Client.timeout.
130
166
 
131
167
  Returns:
132
- Response[Agent]
168
+ Response[Union[Agent, Error]]
133
169
  """
134
170
 
135
171
  kwargs = _get_kwargs(
@@ -147,19 +183,24 @@ async def asyncio(
147
183
  *,
148
184
  client: Client,
149
185
  body: Agent,
150
- ) -> Agent | None:
151
- """Update agent by name
186
+ ) -> Union[Agent, Error] | None:
187
+ """Update agent
188
+
189
+ Updates an agent's configuration and triggers a new deployment. Changes to runtime settings,
190
+ environment variables, or scaling parameters will be applied on the next deployment.
152
191
 
153
192
  Args:
154
193
  agent_name (str):
155
- body (Agent): Agent
194
+ body (Agent): Serverless AI agent deployment that runs your custom agent code as an auto-
195
+ scaling API endpoint. Agents are deployed from your code repository and expose a global
196
+ inference URL for querying.
156
197
 
157
198
  Raises:
158
199
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
159
200
  httpx.TimeoutException: If the request takes longer than Client.timeout.
160
201
 
161
202
  Returns:
162
- Agent
203
+ Union[Agent, Error]
163
204
  """
164
205
 
165
206
  return (
@@ -1,11 +1,12 @@
1
1
  from http import HTTPStatus
2
- from typing import Any
2
+ from typing import Any, Union
3
3
 
4
4
  import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import Client
8
8
  from ...models.sandbox import Sandbox
9
+ from ...models.sandbox_error import SandboxError
9
10
  from ...types import Response
10
11
 
11
12
 
@@ -32,18 +33,42 @@ def _get_kwargs(
32
33
  return _kwargs
33
34
 
34
35
 
35
- def _parse_response(*, client: Client, response: httpx.Response) -> Sandbox | None:
36
+ def _parse_response(
37
+ *, client: Client, response: httpx.Response
38
+ ) -> Union[Sandbox, SandboxError] | None:
36
39
  if response.status_code == 200:
37
40
  response_200 = Sandbox.from_dict(response.json())
38
41
 
39
42
  return response_200
43
+ if response.status_code == 400:
44
+ response_400 = SandboxError.from_dict(response.json())
45
+
46
+ return response_400
47
+ if response.status_code == 401:
48
+ response_401 = SandboxError.from_dict(response.json())
49
+
50
+ return response_401
51
+ if response.status_code == 403:
52
+ response_403 = SandboxError.from_dict(response.json())
53
+
54
+ return response_403
55
+ if response.status_code == 409:
56
+ response_409 = SandboxError.from_dict(response.json())
57
+
58
+ return response_409
59
+ if response.status_code == 500:
60
+ response_500 = SandboxError.from_dict(response.json())
61
+
62
+ return response_500
40
63
  if client.raise_on_unexpected_status:
41
64
  raise errors.UnexpectedStatus(response.status_code, response.content)
42
65
  else:
43
66
  return None
44
67
 
45
68
 
46
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Sandbox]:
69
+ def _build_response(
70
+ *, client: Client, response: httpx.Response
71
+ ) -> Response[Union[Sandbox, SandboxError]]:
47
72
  return Response(
48
73
  status_code=HTTPStatus(response.status_code),
49
74
  content=response.content,
@@ -56,20 +81,23 @@ def sync_detailed(
56
81
  *,
57
82
  client: Client,
58
83
  body: Sandbox,
59
- ) -> Response[Sandbox]:
60
- """Create Sandbox
84
+ ) -> Response[Union[Sandbox, SandboxError]]:
85
+ """Create sandbox
61
86
 
62
- Creates a Sandbox.
87
+ Creates a new sandbox VM for secure AI code execution. Sandboxes automatically scale to zero when
88
+ idle and resume instantly, preserving memory state including running processes and filesystem.
63
89
 
64
90
  Args:
65
- body (Sandbox): Micro VM for running agentic tasks
91
+ body (Sandbox): Lightweight virtual machine for secure AI code execution. Sandboxes resume
92
+ from standby in under 25ms and automatically scale to zero after inactivity, preserving
93
+ memory state including running processes and filesystem.
66
94
 
67
95
  Raises:
68
96
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
69
97
  httpx.TimeoutException: If the request takes longer than Client.timeout.
70
98
 
71
99
  Returns:
72
- Response[Sandbox]
100
+ Response[Union[Sandbox, SandboxError]]
73
101
  """
74
102
 
75
103
  kwargs = _get_kwargs(
@@ -87,20 +115,23 @@ def sync(
87
115
  *,
88
116
  client: Client,
89
117
  body: Sandbox,
90
- ) -> Sandbox | None:
91
- """Create Sandbox
118
+ ) -> Union[Sandbox, SandboxError] | None:
119
+ """Create sandbox
92
120
 
93
- Creates a Sandbox.
121
+ Creates a new sandbox VM for secure AI code execution. Sandboxes automatically scale to zero when
122
+ idle and resume instantly, preserving memory state including running processes and filesystem.
94
123
 
95
124
  Args:
96
- body (Sandbox): Micro VM for running agentic tasks
125
+ body (Sandbox): Lightweight virtual machine for secure AI code execution. Sandboxes resume
126
+ from standby in under 25ms and automatically scale to zero after inactivity, preserving
127
+ memory state including running processes and filesystem.
97
128
 
98
129
  Raises:
99
130
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
100
131
  httpx.TimeoutException: If the request takes longer than Client.timeout.
101
132
 
102
133
  Returns:
103
- Sandbox
134
+ Union[Sandbox, SandboxError]
104
135
  """
105
136
 
106
137
  return sync_detailed(
@@ -113,20 +144,23 @@ async def asyncio_detailed(
113
144
  *,
114
145
  client: Client,
115
146
  body: Sandbox,
116
- ) -> Response[Sandbox]:
117
- """Create Sandbox
147
+ ) -> Response[Union[Sandbox, SandboxError]]:
148
+ """Create sandbox
118
149
 
119
- Creates a Sandbox.
150
+ Creates a new sandbox VM for secure AI code execution. Sandboxes automatically scale to zero when
151
+ idle and resume instantly, preserving memory state including running processes and filesystem.
120
152
 
121
153
  Args:
122
- body (Sandbox): Micro VM for running agentic tasks
154
+ body (Sandbox): Lightweight virtual machine for secure AI code execution. Sandboxes resume
155
+ from standby in under 25ms and automatically scale to zero after inactivity, preserving
156
+ memory state including running processes and filesystem.
123
157
 
124
158
  Raises:
125
159
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
126
160
  httpx.TimeoutException: If the request takes longer than Client.timeout.
127
161
 
128
162
  Returns:
129
- Response[Sandbox]
163
+ Response[Union[Sandbox, SandboxError]]
130
164
  """
131
165
 
132
166
  kwargs = _get_kwargs(
@@ -142,20 +176,23 @@ async def asyncio(
142
176
  *,
143
177
  client: Client,
144
178
  body: Sandbox,
145
- ) -> Sandbox | None:
146
- """Create Sandbox
179
+ ) -> Union[Sandbox, SandboxError] | None:
180
+ """Create sandbox
147
181
 
148
- Creates a Sandbox.
182
+ Creates a new sandbox VM for secure AI code execution. Sandboxes automatically scale to zero when
183
+ idle and resume instantly, preserving memory state including running processes and filesystem.
149
184
 
150
185
  Args:
151
- body (Sandbox): Micro VM for running agentic tasks
186
+ body (Sandbox): Lightweight virtual machine for secure AI code execution. Sandboxes resume
187
+ from standby in under 25ms and automatically scale to zero after inactivity, preserving
188
+ memory state including running processes and filesystem.
152
189
 
153
190
  Raises:
154
191
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
155
192
  httpx.TimeoutException: If the request takes longer than Client.timeout.
156
193
 
157
194
  Returns:
158
- Sandbox
195
+ Union[Sandbox, SandboxError]
159
196
  """
160
197
 
161
198
  return (
@@ -1,10 +1,11 @@
1
1
  from http import HTTPStatus
2
- from typing import Any
2
+ from typing import Any, Union
3
3
 
4
4
  import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import Client
8
+ from ...models.error import Error
8
9
  from ...models.sandbox import Sandbox
9
10
  from ...types import Response
10
11
 
@@ -20,18 +21,34 @@ def _get_kwargs(
20
21
  return _kwargs
21
22
 
22
23
 
23
- def _parse_response(*, client: Client, response: httpx.Response) -> Sandbox | None:
24
+ def _parse_response(*, client: Client, response: httpx.Response) -> Union[Error, Sandbox] | None:
24
25
  if response.status_code == 200:
25
26
  response_200 = Sandbox.from_dict(response.json())
26
27
 
27
28
  return response_200
29
+ if response.status_code == 401:
30
+ response_401 = Error.from_dict(response.json())
31
+
32
+ return response_401
33
+ if response.status_code == 403:
34
+ response_403 = Error.from_dict(response.json())
35
+
36
+ return response_403
37
+ if response.status_code == 404:
38
+ response_404 = Error.from_dict(response.json())
39
+
40
+ return response_404
41
+ if response.status_code == 500:
42
+ response_500 = Error.from_dict(response.json())
43
+
44
+ return response_500
28
45
  if client.raise_on_unexpected_status:
29
46
  raise errors.UnexpectedStatus(response.status_code, response.content)
30
47
  else:
31
48
  return None
32
49
 
33
50
 
34
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Sandbox]:
51
+ def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[Error, Sandbox]]:
35
52
  return Response(
36
53
  status_code=HTTPStatus(response.status_code),
37
54
  content=response.content,
@@ -44,10 +61,11 @@ def sync_detailed(
44
61
  sandbox_name: str,
45
62
  *,
46
63
  client: Client,
47
- ) -> Response[Sandbox]:
48
- """Delete Sandbox
64
+ ) -> Response[Union[Error, Sandbox]]:
65
+ """Delete sandbox
49
66
 
50
- Deletes a Sandbox by name.
67
+ Permanently deletes a sandbox and all its data. If no volumes are attached, this guarantees zero
68
+ data retention (ZDR). This action cannot be undone.
51
69
 
52
70
  Args:
53
71
  sandbox_name (str):
@@ -57,7 +75,7 @@ def sync_detailed(
57
75
  httpx.TimeoutException: If the request takes longer than Client.timeout.
58
76
 
59
77
  Returns:
60
- Response[Sandbox]
78
+ Response[Union[Error, Sandbox]]
61
79
  """
62
80
 
63
81
  kwargs = _get_kwargs(
@@ -75,10 +93,11 @@ def sync(
75
93
  sandbox_name: str,
76
94
  *,
77
95
  client: Client,
78
- ) -> Sandbox | None:
79
- """Delete Sandbox
96
+ ) -> Union[Error, Sandbox] | None:
97
+ """Delete sandbox
80
98
 
81
- Deletes a Sandbox by name.
99
+ Permanently deletes a sandbox and all its data. If no volumes are attached, this guarantees zero
100
+ data retention (ZDR). This action cannot be undone.
82
101
 
83
102
  Args:
84
103
  sandbox_name (str):
@@ -88,7 +107,7 @@ def sync(
88
107
  httpx.TimeoutException: If the request takes longer than Client.timeout.
89
108
 
90
109
  Returns:
91
- Sandbox
110
+ Union[Error, Sandbox]
92
111
  """
93
112
 
94
113
  return sync_detailed(
@@ -101,10 +120,11 @@ async def asyncio_detailed(
101
120
  sandbox_name: str,
102
121
  *,
103
122
  client: Client,
104
- ) -> Response[Sandbox]:
105
- """Delete Sandbox
123
+ ) -> Response[Union[Error, Sandbox]]:
124
+ """Delete sandbox
106
125
 
107
- Deletes a Sandbox by name.
126
+ Permanently deletes a sandbox and all its data. If no volumes are attached, this guarantees zero
127
+ data retention (ZDR). This action cannot be undone.
108
128
 
109
129
  Args:
110
130
  sandbox_name (str):
@@ -114,7 +134,7 @@ async def asyncio_detailed(
114
134
  httpx.TimeoutException: If the request takes longer than Client.timeout.
115
135
 
116
136
  Returns:
117
- Response[Sandbox]
137
+ Response[Union[Error, Sandbox]]
118
138
  """
119
139
 
120
140
  kwargs = _get_kwargs(
@@ -130,10 +150,11 @@ async def asyncio(
130
150
  sandbox_name: str,
131
151
  *,
132
152
  client: Client,
133
- ) -> Sandbox | None:
134
- """Delete Sandbox
153
+ ) -> Union[Error, Sandbox] | None:
154
+ """Delete sandbox
135
155
 
136
- Deletes a Sandbox by name.
156
+ Permanently deletes a sandbox and all its data. If no volumes are attached, this guarantees zero
157
+ data retention (ZDR). This action cannot be undone.
137
158
 
138
159
  Args:
139
160
  sandbox_name (str):
@@ -143,7 +164,7 @@ async def asyncio(
143
164
  httpx.TimeoutException: If the request takes longer than Client.timeout.
144
165
 
145
166
  Returns:
146
- Sandbox
167
+ Union[Error, Sandbox]
147
168
  """
148
169
 
149
170
  return (
@@ -5,6 +5,7 @@ import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import Client
8
+ from ...models.error import Error
8
9
  from ...models.sandbox import Sandbox
9
10
  from ...types import UNSET, Response, Unset
10
11
 
@@ -29,18 +30,34 @@ def _get_kwargs(
29
30
  return _kwargs
30
31
 
31
32
 
32
- def _parse_response(*, client: Client, response: httpx.Response) -> Sandbox | None:
33
+ def _parse_response(*, client: Client, response: httpx.Response) -> Union[Error, Sandbox] | None:
33
34
  if response.status_code == 200:
34
35
  response_200 = Sandbox.from_dict(response.json())
35
36
 
36
37
  return response_200
38
+ if response.status_code == 401:
39
+ response_401 = Error.from_dict(response.json())
40
+
41
+ return response_401
42
+ if response.status_code == 403:
43
+ response_403 = Error.from_dict(response.json())
44
+
45
+ return response_403
46
+ if response.status_code == 404:
47
+ response_404 = Error.from_dict(response.json())
48
+
49
+ return response_404
50
+ if response.status_code == 500:
51
+ response_500 = Error.from_dict(response.json())
52
+
53
+ return response_500
37
54
  if client.raise_on_unexpected_status:
38
55
  raise errors.UnexpectedStatus(response.status_code, response.content)
39
56
  else:
40
57
  return None
41
58
 
42
59
 
43
- def _build_response(*, client: Client, response: httpx.Response) -> Response[Sandbox]:
60
+ def _build_response(*, client: Client, response: httpx.Response) -> Response[Union[Error, Sandbox]]:
44
61
  return Response(
45
62
  status_code=HTTPStatus(response.status_code),
46
63
  content=response.content,
@@ -54,10 +71,11 @@ def sync_detailed(
54
71
  *,
55
72
  client: Client,
56
73
  show_secrets: Union[Unset, bool] = UNSET,
57
- ) -> Response[Sandbox]:
58
- """Get Sandbox
74
+ ) -> Response[Union[Error, Sandbox]]:
75
+ """Get sandbox
59
76
 
60
- Returns a Sandbox by name.
77
+ Returns detailed information about a sandbox including its configuration, attached volumes,
78
+ lifecycle policies, and API endpoint URL.
61
79
 
62
80
  Args:
63
81
  sandbox_name (str):
@@ -68,7 +86,7 @@ def sync_detailed(
68
86
  httpx.TimeoutException: If the request takes longer than Client.timeout.
69
87
 
70
88
  Returns:
71
- Response[Sandbox]
89
+ Response[Union[Error, Sandbox]]
72
90
  """
73
91
 
74
92
  kwargs = _get_kwargs(
@@ -88,10 +106,11 @@ def sync(
88
106
  *,
89
107
  client: Client,
90
108
  show_secrets: Union[Unset, bool] = UNSET,
91
- ) -> Sandbox | None:
92
- """Get Sandbox
109
+ ) -> Union[Error, Sandbox] | None:
110
+ """Get sandbox
93
111
 
94
- Returns a Sandbox by name.
112
+ Returns detailed information about a sandbox including its configuration, attached volumes,
113
+ lifecycle policies, and API endpoint URL.
95
114
 
96
115
  Args:
97
116
  sandbox_name (str):
@@ -102,7 +121,7 @@ def sync(
102
121
  httpx.TimeoutException: If the request takes longer than Client.timeout.
103
122
 
104
123
  Returns:
105
- Sandbox
124
+ Union[Error, Sandbox]
106
125
  """
107
126
 
108
127
  return sync_detailed(
@@ -117,10 +136,11 @@ async def asyncio_detailed(
117
136
  *,
118
137
  client: Client,
119
138
  show_secrets: Union[Unset, bool] = UNSET,
120
- ) -> Response[Sandbox]:
121
- """Get Sandbox
139
+ ) -> Response[Union[Error, Sandbox]]:
140
+ """Get sandbox
122
141
 
123
- Returns a Sandbox by name.
142
+ Returns detailed information about a sandbox including its configuration, attached volumes,
143
+ lifecycle policies, and API endpoint URL.
124
144
 
125
145
  Args:
126
146
  sandbox_name (str):
@@ -131,7 +151,7 @@ async def asyncio_detailed(
131
151
  httpx.TimeoutException: If the request takes longer than Client.timeout.
132
152
 
133
153
  Returns:
134
- Response[Sandbox]
154
+ Response[Union[Error, Sandbox]]
135
155
  """
136
156
 
137
157
  kwargs = _get_kwargs(
@@ -149,10 +169,11 @@ async def asyncio(
149
169
  *,
150
170
  client: Client,
151
171
  show_secrets: Union[Unset, bool] = UNSET,
152
- ) -> Sandbox | None:
153
- """Get Sandbox
172
+ ) -> Union[Error, Sandbox] | None:
173
+ """Get sandbox
154
174
 
155
- Returns a Sandbox by name.
175
+ Returns detailed information about a sandbox including its configuration, attached volumes,
176
+ lifecycle policies, and API endpoint URL.
156
177
 
157
178
  Args:
158
179
  sandbox_name (str):
@@ -163,7 +184,7 @@ async def asyncio(
163
184
  httpx.TimeoutException: If the request takes longer than Client.timeout.
164
185
 
165
186
  Returns:
166
- Sandbox
187
+ Union[Error, Sandbox]
167
188
  """
168
189
 
169
190
  return (