blaxel 0.2.33__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 (278) hide show
  1. blaxel/__init__.py +2 -2
  2. blaxel/core/__init__.py +2 -1
  3. blaxel/core/client/api/agents/create_agent.py +64 -19
  4. blaxel/core/client/api/agents/delete_agent.py +44 -15
  5. blaxel/core/client/api/agents/get_agent.py +43 -14
  6. blaxel/core/client/api/agents/list_agents.py +40 -11
  7. blaxel/core/client/api/agents/update_agent.py +60 -19
  8. blaxel/core/client/api/compute/create_sandbox.py +60 -23
  9. blaxel/core/client/api/compute/delete_sandbox.py +40 -19
  10. blaxel/core/client/api/compute/get_sandbox.py +39 -18
  11. blaxel/core/client/api/compute/list_sandboxes.py +40 -19
  12. blaxel/core/client/api/compute/update_sandbox.py +56 -23
  13. blaxel/core/client/api/configurations/get_configuration.py +16 -4
  14. blaxel/core/client/api/customdomains/create_custom_domain.py +12 -0
  15. blaxel/core/client/api/customdomains/list_custom_domains.py +16 -4
  16. blaxel/core/client/api/default/get_template.py +8 -4
  17. blaxel/core/client/api/functions/create_function.py +62 -19
  18. blaxel/core/client/api/functions/delete_function.py +46 -15
  19. blaxel/core/client/api/functions/get_function.py +45 -14
  20. blaxel/core/client/api/functions/list_functions.py +44 -15
  21. blaxel/core/client/api/functions/update_function.py +62 -19
  22. blaxel/core/client/api/images/cleanup_images.py +12 -12
  23. blaxel/core/client/api/images/delete_image.py +12 -8
  24. blaxel/core/client/api/images/delete_image_tag.py +12 -8
  25. blaxel/core/client/api/images/get_image.py +12 -8
  26. blaxel/core/client/api/images/list_images.py +12 -8
  27. blaxel/core/client/api/integrations/create_integration_connection.py +56 -23
  28. blaxel/core/client/api/integrations/delete_integration_connection.py +48 -19
  29. blaxel/core/client/api/integrations/get_integration.py +12 -8
  30. blaxel/core/client/api/integrations/get_integration_connection.py +44 -19
  31. blaxel/core/client/api/integrations/get_integration_connection_model.py +2 -2
  32. blaxel/core/client/api/integrations/list_integration_connections.py +36 -19
  33. blaxel/core/client/api/integrations/update_integration_connection.py +52 -19
  34. blaxel/core/client/api/jobs/create_job.py +20 -12
  35. blaxel/core/client/api/jobs/create_job_execution.py +22 -16
  36. blaxel/core/client/api/jobs/delete_job.py +12 -8
  37. blaxel/core/client/api/jobs/delete_job_execution.py +12 -8
  38. blaxel/core/client/api/jobs/get_job.py +24 -20
  39. blaxel/core/client/api/jobs/get_job_execution.py +8 -4
  40. blaxel/core/client/api/jobs/list_job_executions.py +8 -4
  41. blaxel/core/client/api/jobs/list_jobs.py +12 -8
  42. blaxel/core/client/api/jobs/update_job.py +20 -12
  43. blaxel/core/client/api/locations/list_locations.py +12 -8
  44. blaxel/core/client/api/{default → mcphub}/list_mcp_hub_definitions.py +20 -4
  45. blaxel/core/client/api/models/create_model.py +52 -23
  46. blaxel/core/client/api/models/delete_model.py +40 -19
  47. blaxel/core/client/api/models/get_model.py +40 -19
  48. blaxel/core/client/api/models/list_models.py +40 -19
  49. blaxel/core/client/api/models/update_model.py +52 -23
  50. blaxel/core/client/api/policies/create_policy.py +12 -8
  51. blaxel/core/client/api/policies/delete_policy.py +12 -8
  52. blaxel/core/client/api/policies/get_policy.py +12 -8
  53. blaxel/core/client/api/policies/list_policies.py +12 -8
  54. blaxel/core/client/api/policies/update_policy.py +12 -8
  55. blaxel/core/client/api/public_ipslist/list_public_ips.py +37 -5
  56. blaxel/core/client/api/sandboxhub/__init__.py +0 -0
  57. blaxel/core/client/api/{default → sandboxhub}/list_sandbox_hub_definitions.py +20 -4
  58. blaxel/core/client/api/service_accounts/create_api_key_for_service_account.py +12 -8
  59. blaxel/core/client/api/service_accounts/create_workspace_service_account.py +12 -8
  60. blaxel/core/client/api/service_accounts/delete_api_key_for_service_account.py +6 -4
  61. blaxel/core/client/api/service_accounts/delete_workspace_service_account.py +12 -8
  62. blaxel/core/client/api/service_accounts/get_workspace_service_accounts.py +12 -8
  63. blaxel/core/client/api/service_accounts/list_api_keys_for_service_account.py +12 -8
  64. blaxel/core/client/api/service_accounts/update_workspace_service_account.py +8 -8
  65. blaxel/core/client/api/templates/list_templates.py +12 -8
  66. blaxel/core/client/api/volume_templates/create_volume_template.py +8 -4
  67. blaxel/core/client/api/volume_templates/list_volume_templates.py +8 -4
  68. blaxel/core/client/api/volumes/create_volume.py +56 -23
  69. blaxel/core/client/api/volumes/delete_volume.py +44 -19
  70. blaxel/core/client/api/volumes/get_volume.py +40 -19
  71. blaxel/core/client/api/volumes/list_volumes.py +40 -19
  72. blaxel/core/client/api/workspaces/create_workspace.py +54 -23
  73. blaxel/core/client/api/workspaces/delete_workspace.py +42 -19
  74. blaxel/core/client/api/workspaces/get_workspace.py +42 -19
  75. blaxel/core/client/api/workspaces/invite_workspace_user.py +8 -4
  76. blaxel/core/client/api/workspaces/list_workspace_users.py +12 -8
  77. blaxel/core/client/api/workspaces/list_workspaces.py +36 -19
  78. blaxel/core/client/api/workspaces/update_workspace.py +50 -19
  79. blaxel/core/client/models/__init__.py +76 -146
  80. blaxel/core/client/models/agent.py +43 -47
  81. blaxel/core/client/models/agent_runtime.py +139 -0
  82. blaxel/core/client/models/agent_runtime_generation.py +18 -0
  83. blaxel/core/client/models/agent_spec.py +33 -110
  84. blaxel/core/client/models/api_key.py +5 -4
  85. blaxel/core/client/models/core_event.py +5 -5
  86. blaxel/core/client/models/create_api_key_for_service_account_body.py +2 -1
  87. blaxel/core/client/models/create_job_execution_request.py +1 -1
  88. blaxel/core/client/models/create_job_execution_response.py +13 -9
  89. blaxel/core/client/models/custom_domain.py +19 -36
  90. blaxel/core/client/models/custom_domain_metadata.py +4 -3
  91. blaxel/core/client/models/custom_domain_spec.py +14 -5
  92. blaxel/core/client/models/custom_domain_spec_status.py +19 -0
  93. blaxel/core/client/models/entrypoint.py +39 -13
  94. blaxel/core/client/models/{workspace_labels.py → entrypoint_args_item.py} +6 -6
  95. blaxel/core/client/models/entrypoint_env.py +3 -3
  96. blaxel/core/client/models/{job_metrics_executions_total.py → entrypoint_super_gateway_args_item.py} +6 -6
  97. blaxel/core/client/models/{spec_configuration.py → env.py} +17 -8
  98. blaxel/core/{sandbox/client/models/welcome_response.py → client/models/error.py} +26 -23
  99. blaxel/core/client/models/expiration_policy.py +30 -11
  100. blaxel/core/client/models/expiration_policy_action.py +17 -0
  101. blaxel/core/client/models/expiration_policy_type.py +19 -0
  102. blaxel/core/client/models/flavor.py +13 -5
  103. blaxel/core/client/models/flavor_type.py +18 -0
  104. blaxel/core/client/models/form.py +6 -6
  105. blaxel/core/client/models/function.py +43 -47
  106. blaxel/core/client/models/function_runtime.py +138 -0
  107. blaxel/core/client/models/function_runtime_generation.py +18 -0
  108. blaxel/core/client/models/function_spec.py +27 -73
  109. blaxel/core/client/models/function_spec_transport.py +18 -0
  110. blaxel/core/client/models/image.py +19 -36
  111. blaxel/core/client/models/integration_connection.py +25 -39
  112. blaxel/core/client/models/integration_connection_spec.py +8 -5
  113. blaxel/core/client/models/integration_connection_spec_config.py +1 -1
  114. blaxel/core/client/models/integration_connection_spec_secret.py +1 -1
  115. blaxel/core/client/models/integration_endpoint.py +41 -11
  116. blaxel/core/client/models/integration_endpoint_ignore_models_item.py +45 -0
  117. blaxel/core/client/models/{mcp_definition_entrypoint.py → integration_endpoint_models_item.py} +6 -6
  118. blaxel/core/client/models/job.py +43 -47
  119. blaxel/core/client/models/job_execution.py +30 -37
  120. blaxel/core/client/models/job_execution_metadata.py +3 -3
  121. blaxel/core/client/models/job_execution_spec.py +2 -2
  122. blaxel/core/client/models/job_execution_stats.py +5 -5
  123. blaxel/core/client/models/job_execution_status.py +24 -0
  124. blaxel/core/client/models/job_execution_task.py +12 -4
  125. blaxel/core/client/models/job_execution_task_metadata.py +1 -1
  126. blaxel/core/client/models/job_execution_task_spec.py +2 -2
  127. blaxel/core/client/models/job_execution_task_status.py +23 -0
  128. blaxel/core/client/models/job_runtime.py +172 -0
  129. blaxel/core/client/models/job_runtime_generation.py +18 -0
  130. blaxel/core/client/models/job_spec.py +20 -88
  131. blaxel/core/client/models/location_response.py +5 -5
  132. blaxel/core/client/models/mcp_definition.py +30 -17
  133. blaxel/core/client/models/{job_metrics_tasks_total.py → mcp_definition_categories_item.py} +6 -6
  134. blaxel/core/client/models/metadata.py +23 -17
  135. blaxel/core/client/models/metadata_labels.py +4 -1
  136. blaxel/core/client/models/model.py +43 -47
  137. blaxel/core/client/models/model_runtime.py +99 -0
  138. blaxel/core/client/models/model_runtime_type.py +34 -0
  139. blaxel/core/client/models/model_spec.py +12 -58
  140. blaxel/core/client/models/o_auth.py +23 -6
  141. blaxel/core/client/models/{form_oauth.py → o_auth_scope_item.py} +6 -6
  142. blaxel/core/client/models/pending_invitation_accept.py +2 -1
  143. blaxel/core/client/models/pending_invitation_workspace_details.py +27 -6
  144. blaxel/core/client/models/{metrics_request_total_per_code.py → pending_invitation_workspace_details_emails_item.py} +6 -6
  145. blaxel/core/client/models/policy.py +20 -36
  146. blaxel/core/client/models/policy_location.py +13 -5
  147. blaxel/core/client/models/policy_location_type.py +19 -0
  148. blaxel/core/client/models/policy_max_tokens.py +6 -6
  149. blaxel/core/client/models/policy_resource_type.py +20 -0
  150. blaxel/core/client/models/policy_spec.py +31 -10
  151. blaxel/core/client/models/policy_spec_type.py +19 -0
  152. blaxel/core/client/models/port.py +25 -15
  153. blaxel/core/client/models/port_protocol.py +19 -0
  154. blaxel/core/client/models/preview.py +19 -36
  155. blaxel/core/client/models/preview_metadata.py +12 -10
  156. blaxel/core/client/models/preview_token.py +19 -36
  157. blaxel/core/client/models/preview_token_metadata.py +8 -6
  158. blaxel/core/client/models/repository.py +2 -2
  159. blaxel/core/client/models/revision_configuration.py +3 -3
  160. blaxel/core/client/models/sandbox.py +45 -58
  161. blaxel/core/client/models/sandbox_definition.py +37 -22
  162. blaxel/core/client/models/sandbox_definition_categories_item.py +45 -0
  163. blaxel/core/client/models/sandbox_error.py +148 -0
  164. blaxel/core/client/models/sandbox_error_details.py +45 -0
  165. blaxel/core/client/models/sandbox_lifecycle.py +3 -2
  166. blaxel/core/client/models/sandbox_runtime.py +145 -0
  167. blaxel/core/client/models/sandbox_spec.py +33 -134
  168. blaxel/core/client/models/status.py +25 -0
  169. blaxel/core/client/models/template.py +8 -7
  170. blaxel/core/client/models/template_variable.py +5 -5
  171. blaxel/core/client/models/trigger.py +14 -6
  172. blaxel/core/client/models/trigger_configuration.py +7 -6
  173. blaxel/core/client/models/trigger_type.py +19 -0
  174. blaxel/core/client/models/volume.py +35 -47
  175. blaxel/core/client/models/volume_attachment.py +6 -4
  176. blaxel/core/client/models/volume_spec.py +7 -4
  177. blaxel/core/client/models/volume_state.py +3 -3
  178. blaxel/core/client/models/volume_template.py +19 -33
  179. blaxel/core/client/models/volume_template_state.py +12 -4
  180. blaxel/core/client/models/volume_template_state_status.py +19 -0
  181. blaxel/core/client/models/volume_template_version.py +12 -4
  182. blaxel/core/client/models/volume_template_version_status.py +19 -0
  183. blaxel/core/client/models/workspace.py +35 -25
  184. blaxel/core/client/models/workspace_runtime.py +3 -2
  185. blaxel/core/client/models/workspace_status.py +22 -0
  186. blaxel/core/common/__init__.py +1 -1
  187. blaxel/core/jobs/__init__.py +0 -1
  188. blaxel/core/sandbox/__init__.py +2 -0
  189. blaxel/core/sandbox/client/api/process/post_process.py +8 -4
  190. blaxel/core/sandbox/client/models/__init__.py +0 -2
  191. blaxel/core/sandbox/client/models/process_response.py +16 -0
  192. blaxel/core/sandbox/client/models/process_response_status.py +9 -0
  193. blaxel/core/sandbox/default/__init__.py +2 -0
  194. blaxel/core/sandbox/default/interpreter.py +5 -1
  195. blaxel/core/sandbox/default/preview.py +3 -1
  196. blaxel/core/sandbox/default/sandbox.py +85 -26
  197. blaxel/core/sandbox/sync/process.py +2 -1
  198. blaxel/core/sandbox/sync/sandbox.py +68 -23
  199. blaxel/core/sandbox/types.py +3 -0
  200. blaxel/core/tools/common.py +16 -2
  201. blaxel/core/volume/__init__.py +2 -2
  202. blaxel/core/volume/volume.py +227 -11
  203. blaxel/langgraph/tools.py +34 -2
  204. blaxel/openai/tools.py +33 -1
  205. {blaxel-0.2.33.dist-info → blaxel-0.2.35.dist-info}/METADATA +3 -3
  206. {blaxel-0.2.33.dist-info → blaxel-0.2.35.dist-info}/RECORD +209 -248
  207. blaxel/core/client/models/acl.py +0 -133
  208. blaxel/core/client/models/billable_time_metric.py +0 -89
  209. blaxel/core/client/models/core_spec.py +0 -194
  210. blaxel/core/client/models/core_spec_configurations.py +0 -77
  211. blaxel/core/client/models/histogram_bucket.py +0 -79
  212. blaxel/core/client/models/histogram_stats.py +0 -88
  213. blaxel/core/client/models/integration_model.py +0 -162
  214. blaxel/core/client/models/job_execution_config.py +0 -79
  215. blaxel/core/client/models/job_metrics.py +0 -262
  216. blaxel/core/client/models/jobs_chart_value.py +0 -70
  217. blaxel/core/client/models/jobs_network_chart.py +0 -102
  218. blaxel/core/client/models/jobs_success_failed_chart.py +0 -147
  219. blaxel/core/client/models/jobs_total.py +0 -88
  220. blaxel/core/client/models/last_n_requests_metric.py +0 -97
  221. blaxel/core/client/models/latency_metric.py +0 -148
  222. blaxel/core/client/models/logs_response.py +0 -63
  223. blaxel/core/client/models/logs_response_data.py +0 -99
  224. blaxel/core/client/models/mcp_definition_form.py +0 -45
  225. blaxel/core/client/models/memory_allocation_by_name.py +0 -70
  226. blaxel/core/client/models/memory_allocation_metric.py +0 -61
  227. blaxel/core/client/models/metric.py +0 -79
  228. blaxel/core/client/models/metrics.py +0 -273
  229. blaxel/core/client/models/metrics_models.py +0 -45
  230. blaxel/core/client/models/metrics_rps_per_code.py +0 -45
  231. blaxel/core/client/models/pod_template_spec.py +0 -45
  232. blaxel/core/client/models/request_duration_over_time_metric.py +0 -97
  233. blaxel/core/client/models/request_duration_over_time_metrics.py +0 -84
  234. blaxel/core/client/models/request_total_by_origin_metric.py +0 -129
  235. blaxel/core/client/models/request_total_by_origin_metric_request_total_by_origin.py +0 -45
  236. blaxel/core/client/models/request_total_by_origin_metric_request_total_by_origin_and_code.py +0 -45
  237. blaxel/core/client/models/request_total_metric.py +0 -155
  238. blaxel/core/client/models/request_total_metric_request_total_per_code.py +0 -45
  239. blaxel/core/client/models/request_total_metric_rps_per_code.py +0 -45
  240. blaxel/core/client/models/request_total_response_data.py +0 -97
  241. blaxel/core/client/models/resource.py +0 -99
  242. blaxel/core/client/models/resource_log.py +0 -88
  243. blaxel/core/client/models/resource_log_chart.py +0 -133
  244. blaxel/core/client/models/resource_log_response.py +0 -83
  245. blaxel/core/client/models/resource_metrics.py +0 -618
  246. blaxel/core/client/models/resource_metrics_request_total_per_code.py +0 -45
  247. blaxel/core/client/models/resource_metrics_request_total_per_code_previous.py +0 -45
  248. blaxel/core/client/models/resource_metrics_rps_per_code.py +0 -45
  249. blaxel/core/client/models/resource_metrics_rps_per_code_previous.py +0 -45
  250. blaxel/core/client/models/resource_trace.py +0 -97
  251. blaxel/core/client/models/runtime.py +0 -317
  252. blaxel/core/client/models/runtime_configuration.py +0 -45
  253. blaxel/core/client/models/runtime_startup_probe.py +0 -45
  254. blaxel/core/client/models/sandbox_metrics.py +0 -88
  255. blaxel/core/client/models/serverless_config.py +0 -117
  256. blaxel/core/client/models/serverless_config_configuration.py +0 -45
  257. blaxel/core/client/models/start_sandbox.py +0 -98
  258. blaxel/core/client/models/stop_sandbox.py +0 -98
  259. blaxel/core/client/models/store_agent.py +0 -181
  260. blaxel/core/client/models/store_agent_labels.py +0 -45
  261. blaxel/core/client/models/store_configuration.py +0 -156
  262. blaxel/core/client/models/store_configuration_option.py +0 -79
  263. blaxel/core/client/models/time_to_first_token_over_time_metrics.py +0 -87
  264. blaxel/core/client/models/token_rate_metric.py +0 -106
  265. blaxel/core/client/models/token_rate_metrics.py +0 -124
  266. blaxel/core/client/models/token_total_metric.py +0 -112
  267. blaxel/core/client/models/trace_ids_response.py +0 -45
  268. blaxel/core/client/models/websocket_channel.py +0 -97
  269. blaxel/core/client/models/websocket_message.py +0 -106
  270. blaxel/core/sandbox/client/api/root/delete.py +0 -130
  271. blaxel/core/sandbox/client/api/root/get.py +0 -130
  272. blaxel/core/sandbox/client/api/root/options.py +0 -130
  273. blaxel/core/sandbox/client/api/root/patch.py +0 -130
  274. blaxel/core/sandbox/client/api/root/post.py +0 -130
  275. blaxel/core/sandbox/client/api/root/put.py +0 -130
  276. /blaxel/core/{sandbox/client/api/root → client/api/mcphub}/__init__.py +0 -0
  277. {blaxel-0.2.33.dist-info → blaxel-0.2.35.dist-info}/WHEEL +0 -0
  278. {blaxel-0.2.33.dist-info → blaxel-0.2.35.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
1
- from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
1
+ from typing import TYPE_CHECKING, Any, TypeVar, Union
2
2
 
3
3
  from attrs import define as _attrs_define
4
4
  from attrs import field as _attrs_field
@@ -6,7 +6,9 @@ from attrs import field as _attrs_field
6
6
  from ..types import UNSET, Unset
7
7
 
8
8
  if TYPE_CHECKING:
9
+ from ..models.entrypoint_args_item import EntrypointArgsItem
9
10
  from ..models.entrypoint_env import EntrypointEnv
11
+ from ..models.entrypoint_super_gateway_args_item import EntrypointSuperGatewayArgsItem
10
12
 
11
13
 
12
14
  T = TypeVar("T", bound="Entrypoint")
@@ -17,22 +19,28 @@ class Entrypoint:
17
19
  """Entrypoint of the artifact
18
20
 
19
21
  Attributes:
20
- args (Union[Unset, list[Any]]): Args of the entrypoint
22
+ args (Union[Unset, list['EntrypointArgsItem']]): Args of the entrypoint
21
23
  command (Union[Unset, str]): Command of the entrypoint
22
24
  env (Union[Unset, EntrypointEnv]): Env of the entrypoint
23
- super_gateway_args (Union[Unset, list[Any]]): Super Gateway args of the entrypoint
25
+ super_gateway_args (Union[Unset, list['EntrypointSuperGatewayArgsItem']]): Super Gateway args of the entrypoint
24
26
  """
25
27
 
26
- args: Union[Unset, list[Any]] = UNSET
28
+ args: Union[Unset, list["EntrypointArgsItem"]] = UNSET
27
29
  command: Union[Unset, str] = UNSET
28
30
  env: Union[Unset, "EntrypointEnv"] = UNSET
29
- super_gateway_args: Union[Unset, list[Any]] = UNSET
31
+ super_gateway_args: Union[Unset, list["EntrypointSuperGatewayArgsItem"]] = UNSET
30
32
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
33
 
32
34
  def to_dict(self) -> dict[str, Any]:
33
- args: Union[Unset, list[Any]] = UNSET
35
+ args: Union[Unset, list[dict[str, Any]]] = UNSET
34
36
  if not isinstance(self.args, Unset):
35
- args = self.args
37
+ args = []
38
+ for args_item_data in self.args:
39
+ if type(args_item_data) is dict:
40
+ args_item = args_item_data
41
+ else:
42
+ args_item = args_item_data.to_dict()
43
+ args.append(args_item)
36
44
 
37
45
  command = self.command
38
46
 
@@ -42,9 +50,15 @@ class Entrypoint:
42
50
  elif self.env and isinstance(self.env, dict):
43
51
  env = self.env
44
52
 
45
- super_gateway_args: Union[Unset, list[Any]] = UNSET
53
+ super_gateway_args: Union[Unset, list[dict[str, Any]]] = UNSET
46
54
  if not isinstance(self.super_gateway_args, Unset):
47
- super_gateway_args = self.super_gateway_args
55
+ super_gateway_args = []
56
+ for super_gateway_args_item_data in self.super_gateway_args:
57
+ if type(super_gateway_args_item_data) is dict:
58
+ super_gateway_args_item = super_gateway_args_item_data
59
+ else:
60
+ super_gateway_args_item = super_gateway_args_item_data.to_dict()
61
+ super_gateway_args.append(super_gateway_args_item)
48
62
 
49
63
  field_dict: dict[str, Any] = {}
50
64
  field_dict.update(self.additional_properties)
@@ -62,12 +76,19 @@ class Entrypoint:
62
76
 
63
77
  @classmethod
64
78
  def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
79
+ from ..models.entrypoint_args_item import EntrypointArgsItem
65
80
  from ..models.entrypoint_env import EntrypointEnv
81
+ from ..models.entrypoint_super_gateway_args_item import EntrypointSuperGatewayArgsItem
66
82
 
67
83
  if not src_dict:
68
84
  return None
69
85
  d = src_dict.copy()
70
- args = cast(list[Any], d.pop("args", UNSET))
86
+ args = []
87
+ _args = d.pop("args", UNSET)
88
+ for args_item_data in _args or []:
89
+ args_item = EntrypointArgsItem.from_dict(args_item_data)
90
+
91
+ args.append(args_item)
71
92
 
72
93
  command = d.pop("command", UNSET)
73
94
 
@@ -78,9 +99,14 @@ class Entrypoint:
78
99
  else:
79
100
  env = EntrypointEnv.from_dict(_env)
80
101
 
81
- super_gateway_args = cast(
82
- list[Any], d.pop("superGatewayArgs", d.pop("super_gateway_args", UNSET))
83
- )
102
+ super_gateway_args = []
103
+ _super_gateway_args = d.pop("superGatewayArgs", d.pop("super_gateway_args", UNSET))
104
+ for super_gateway_args_item_data in _super_gateway_args or []:
105
+ super_gateway_args_item = EntrypointSuperGatewayArgsItem.from_dict(
106
+ super_gateway_args_item_data
107
+ )
108
+
109
+ super_gateway_args.append(super_gateway_args_item)
84
110
 
85
111
  entrypoint = cls(
86
112
  args=args,
@@ -3,12 +3,12 @@ from typing import Any, TypeVar
3
3
  from attrs import define as _attrs_define
4
4
  from attrs import field as _attrs_field
5
5
 
6
- T = TypeVar("T", bound="WorkspaceLabels")
6
+ T = TypeVar("T", bound="EntrypointArgsItem")
7
7
 
8
8
 
9
9
  @_attrs_define
10
- class WorkspaceLabels:
11
- """Workspace labels"""
10
+ class EntrypointArgsItem:
11
+ """ """
12
12
 
13
13
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
14
14
 
@@ -23,10 +23,10 @@ class WorkspaceLabels:
23
23
  if not src_dict:
24
24
  return None
25
25
  d = src_dict.copy()
26
- workspace_labels = cls()
26
+ entrypoint_args_item = cls()
27
27
 
28
- workspace_labels.additional_properties = d
29
- return workspace_labels
28
+ entrypoint_args_item.additional_properties = d
29
+ return entrypoint_args_item
30
30
 
31
31
  @property
32
32
  def additional_keys(self) -> list[str]:
@@ -10,7 +10,7 @@ T = TypeVar("T", bound="EntrypointEnv")
10
10
  class EntrypointEnv:
11
11
  """Env of the entrypoint"""
12
12
 
13
- additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
13
+ additional_properties: dict[str, str] = _attrs_field(init=False, factory=dict)
14
14
 
15
15
  def to_dict(self) -> dict[str, Any]:
16
16
  field_dict: dict[str, Any] = {}
@@ -32,10 +32,10 @@ class EntrypointEnv:
32
32
  def additional_keys(self) -> list[str]:
33
33
  return list(self.additional_properties.keys())
34
34
 
35
- def __getitem__(self, key: str) -> Any:
35
+ def __getitem__(self, key: str) -> str:
36
36
  return self.additional_properties[key]
37
37
 
38
- def __setitem__(self, key: str, value: Any) -> None:
38
+ def __setitem__(self, key: str, value: str) -> None:
39
39
  self.additional_properties[key] = value
40
40
 
41
41
  def __delitem__(self, key: str) -> None:
@@ -3,12 +3,12 @@ from typing import Any, TypeVar
3
3
  from attrs import define as _attrs_define
4
4
  from attrs import field as _attrs_field
5
5
 
6
- T = TypeVar("T", bound="JobMetricsExecutionsTotal")
6
+ T = TypeVar("T", bound="EntrypointSuperGatewayArgsItem")
7
7
 
8
8
 
9
9
  @_attrs_define
10
- class JobMetricsExecutionsTotal:
11
- """Total executions"""
10
+ class EntrypointSuperGatewayArgsItem:
11
+ """ """
12
12
 
13
13
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
14
14
 
@@ -23,10 +23,10 @@ class JobMetricsExecutionsTotal:
23
23
  if not src_dict:
24
24
  return None
25
25
  d = src_dict.copy()
26
- job_metrics_executions_total = cls()
26
+ entrypoint_super_gateway_args_item = cls()
27
27
 
28
- job_metrics_executions_total.additional_properties = d
29
- return job_metrics_executions_total
28
+ entrypoint_super_gateway_args_item.additional_properties = d
29
+ return entrypoint_super_gateway_args_item
30
30
 
31
31
  @property
32
32
  def additional_keys(self) -> list[str]:
@@ -5,23 +5,27 @@ from attrs import field as _attrs_field
5
5
 
6
6
  from ..types import UNSET, Unset
7
7
 
8
- T = TypeVar("T", bound="SpecConfiguration")
8
+ T = TypeVar("T", bound="Env")
9
9
 
10
10
 
11
11
  @_attrs_define
12
- class SpecConfiguration:
13
- """Configuration, this is a key value storage. In your object you can retrieve the value with config[key]
12
+ class Env:
13
+ """Environment variable with name and value
14
14
 
15
15
  Attributes:
16
- secret (Union[Unset, bool]): ACconfiguration secret
17
- value (Union[Unset, str]): Configuration value
16
+ name (Union[Unset, str]): Name of the environment variable Example: MY_ENV_VAR.
17
+ secret (Union[Unset, bool]): Whether the value is a secret Example: True.
18
+ value (Union[Unset, str]): Value of the environment variable Example: my-value.
18
19
  """
19
20
 
21
+ name: Union[Unset, str] = UNSET
20
22
  secret: Union[Unset, bool] = UNSET
21
23
  value: Union[Unset, str] = UNSET
22
24
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
25
 
24
26
  def to_dict(self) -> dict[str, Any]:
27
+ name = self.name
28
+
25
29
  secret = self.secret
26
30
 
27
31
  value = self.value
@@ -29,6 +33,8 @@ class SpecConfiguration:
29
33
  field_dict: dict[str, Any] = {}
30
34
  field_dict.update(self.additional_properties)
31
35
  field_dict.update({})
36
+ if name is not UNSET:
37
+ field_dict["name"] = name
32
38
  if secret is not UNSET:
33
39
  field_dict["secret"] = secret
34
40
  if value is not UNSET:
@@ -41,17 +47,20 @@ class SpecConfiguration:
41
47
  if not src_dict:
42
48
  return None
43
49
  d = src_dict.copy()
50
+ name = d.pop("name", UNSET)
51
+
44
52
  secret = d.pop("secret", UNSET)
45
53
 
46
54
  value = d.pop("value", UNSET)
47
55
 
48
- spec_configuration = cls(
56
+ env = cls(
57
+ name=name,
49
58
  secret=secret,
50
59
  value=value,
51
60
  )
52
61
 
53
- spec_configuration.additional_properties = d
54
- return spec_configuration
62
+ env.additional_properties = d
63
+ return env
55
64
 
56
65
  @property
57
66
  def additional_keys(self) -> list[str]:
@@ -5,38 +5,41 @@ from attrs import field as _attrs_field
5
5
 
6
6
  from ..types import UNSET, Unset
7
7
 
8
- T = TypeVar("T", bound="WelcomeResponse")
8
+ T = TypeVar("T", bound="Error")
9
9
 
10
10
 
11
11
  @_attrs_define
12
- class WelcomeResponse:
13
- """
12
+ class Error:
13
+ """Standard error response returned by the API when a request fails
14
+
14
15
  Attributes:
15
- description (Union[Unset, str]): Example: This sandbox provides a full-featured environment for running code
16
- securely.
17
- documentation (Union[Unset, str]): Example: https://docs.blaxel.ai/Sandboxes/Overview.
18
- message (Union[Unset, str]): Example: Welcome to your Blaxel Sandbox.
16
+ error (str): Error type or code identifying the kind of error Example: Resource already exists.
17
+ code (Union[Unset, int]): HTTP status code of the error Example: 409.
18
+ message (Union[Unset, str]): Human-readable error message describing what went wrong Example: Invalid request
19
+ body.
19
20
  """
20
21
 
21
- description: Union[Unset, str] = UNSET
22
- documentation: Union[Unset, str] = UNSET
22
+ error: str
23
+ code: Union[Unset, int] = UNSET
23
24
  message: Union[Unset, str] = UNSET
24
25
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26
 
26
27
  def to_dict(self) -> dict[str, Any]:
27
- description = self.description
28
+ error = self.error
28
29
 
29
- documentation = self.documentation
30
+ code = self.code
30
31
 
31
32
  message = self.message
32
33
 
33
34
  field_dict: dict[str, Any] = {}
34
35
  field_dict.update(self.additional_properties)
35
- field_dict.update({})
36
- if description is not UNSET:
37
- field_dict["description"] = description
38
- if documentation is not UNSET:
39
- field_dict["documentation"] = documentation
36
+ field_dict.update(
37
+ {
38
+ "error": error,
39
+ }
40
+ )
41
+ if code is not UNSET:
42
+ field_dict["code"] = code
40
43
  if message is not UNSET:
41
44
  field_dict["message"] = message
42
45
 
@@ -47,20 +50,20 @@ class WelcomeResponse:
47
50
  if not src_dict:
48
51
  return None
49
52
  d = src_dict.copy()
50
- description = d.pop("description", UNSET)
53
+ error = d.pop("error")
51
54
 
52
- documentation = d.pop("documentation", UNSET)
55
+ code = d.pop("code", UNSET)
53
56
 
54
57
  message = d.pop("message", UNSET)
55
58
 
56
- welcome_response = cls(
57
- description=description,
58
- documentation=documentation,
59
+ error = cls(
60
+ error=error,
61
+ code=code,
59
62
  message=message,
60
63
  )
61
64
 
62
- welcome_response.additional_properties = d
63
- return welcome_response
65
+ error.additional_properties = d
66
+ return error
64
67
 
65
68
  @property
66
69
  def additional_keys(self) -> list[str]:
@@ -3,6 +3,8 @@ from typing import Any, TypeVar, Union
3
3
  from attrs import define as _attrs_define
4
4
  from attrs import field as _attrs_field
5
5
 
6
+ from ..models.expiration_policy_action import ExpirationPolicyAction
7
+ from ..models.expiration_policy_type import ExpirationPolicyType
6
8
  from ..types import UNSET, Unset
7
9
 
8
10
  T = TypeVar("T", bound="ExpirationPolicy")
@@ -10,23 +12,30 @@ T = TypeVar("T", bound="ExpirationPolicy")
10
12
 
11
13
  @_attrs_define
12
14
  class ExpirationPolicy:
13
- """Expiration policy for sandbox lifecycle management
15
+ """Expiration policy for automatic sandbox cleanup based on time conditions
14
16
 
15
17
  Attributes:
16
- action (Union[Unset, str]): Action to take when policy is triggered
17
- type_ (Union[Unset, str]): Type of expiration policy
18
- value (Union[Unset, str]): Duration value (e.g., '1h', '24h', '7d')
18
+ action (Union[Unset, ExpirationPolicyAction]): Action to take when the expiration condition is met Example:
19
+ delete.
20
+ type_ (Union[Unset, ExpirationPolicyType]): Type of expiration policy: ttl-idle (delete after inactivity), ttl-
21
+ max-age (delete after total lifetime), or date (delete at specific time) Example: ttl-idle.
22
+ value (Union[Unset, str]): Duration value for TTL policies (e.g., '30m', '24h', '7d') or ISO 8601 date for date
23
+ policies Example: 24h.
19
24
  """
20
25
 
21
- action: Union[Unset, str] = UNSET
22
- type_: Union[Unset, str] = UNSET
26
+ action: Union[Unset, ExpirationPolicyAction] = UNSET
27
+ type_: Union[Unset, ExpirationPolicyType] = UNSET
23
28
  value: Union[Unset, str] = UNSET
24
29
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
30
 
26
31
  def to_dict(self) -> dict[str, Any]:
27
- action = self.action
32
+ action: Union[Unset, str] = UNSET
33
+ if not isinstance(self.action, Unset):
34
+ action = self.action.value
28
35
 
29
- type_ = self.type_
36
+ type_: Union[Unset, str] = UNSET
37
+ if not isinstance(self.type_, Unset):
38
+ type_ = self.type_.value
30
39
 
31
40
  value = self.value
32
41
 
@@ -47,9 +56,19 @@ class ExpirationPolicy:
47
56
  if not src_dict:
48
57
  return None
49
58
  d = src_dict.copy()
50
- action = d.pop("action", UNSET)
51
-
52
- type_ = d.pop("type", d.pop("type_", UNSET))
59
+ _action = d.pop("action", UNSET)
60
+ action: Union[Unset, ExpirationPolicyAction]
61
+ if isinstance(_action, Unset):
62
+ action = UNSET
63
+ else:
64
+ action = ExpirationPolicyAction(_action)
65
+
66
+ _type_ = d.pop("type", d.pop("type_", UNSET))
67
+ type_: Union[Unset, ExpirationPolicyType]
68
+ if isinstance(_type_, Unset):
69
+ type_ = UNSET
70
+ else:
71
+ type_ = ExpirationPolicyType(_type_)
53
72
 
54
73
  value = d.pop("value", UNSET)
55
74
 
@@ -0,0 +1,17 @@
1
+ from enum import Enum
2
+
3
+
4
+ class ExpirationPolicyAction(str, Enum):
5
+ DELETE = "delete"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
9
+
10
+ @classmethod
11
+ def _missing_(cls, value: object) -> "ExpirationPolicyAction | None":
12
+ if isinstance(value, str):
13
+ upper_value = value.upper()
14
+ for member in cls:
15
+ if member.value.upper() == upper_value:
16
+ return member
17
+ return None
@@ -0,0 +1,19 @@
1
+ from enum import Enum
2
+
3
+
4
+ class ExpirationPolicyType(str, Enum):
5
+ DATE = "date"
6
+ TTL_IDLE = "ttl-idle"
7
+ TTL_MAX_AGE = "ttl-max-age"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
11
+
12
+ @classmethod
13
+ def _missing_(cls, value: object) -> "ExpirationPolicyType | None":
14
+ if isinstance(value, str):
15
+ upper_value = value.upper()
16
+ for member in cls:
17
+ if member.value.upper() == upper_value:
18
+ return member
19
+ return None
@@ -3,6 +3,7 @@ from typing import Any, TypeVar, Union
3
3
  from attrs import define as _attrs_define
4
4
  from attrs import field as _attrs_field
5
5
 
6
+ from ..models.flavor_type import FlavorType
6
7
  from ..types import UNSET, Unset
7
8
 
8
9
  T = TypeVar("T", bound="Flavor")
@@ -13,18 +14,20 @@ class Flavor:
13
14
  """A type of hardware available for deployments
14
15
 
15
16
  Attributes:
16
- name (Union[Unset, str]): Flavor name (e.g. t4)
17
- type_ (Union[Unset, str]): Flavor type (e.g. cpu, gpu)
17
+ name (Union[Unset, str]): Flavor name (e.g. t4) Example: t4.
18
+ type_ (Union[Unset, FlavorType]): Flavor type (e.g. cpu, gpu) Example: cpu.
18
19
  """
19
20
 
20
21
  name: Union[Unset, str] = UNSET
21
- type_: Union[Unset, str] = UNSET
22
+ type_: Union[Unset, FlavorType] = UNSET
22
23
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
24
 
24
25
  def to_dict(self) -> dict[str, Any]:
25
26
  name = self.name
26
27
 
27
- type_ = self.type_
28
+ type_: Union[Unset, str] = UNSET
29
+ if not isinstance(self.type_, Unset):
30
+ type_ = self.type_.value
28
31
 
29
32
  field_dict: dict[str, Any] = {}
30
33
  field_dict.update(self.additional_properties)
@@ -43,7 +46,12 @@ class Flavor:
43
46
  d = src_dict.copy()
44
47
  name = d.pop("name", UNSET)
45
48
 
46
- type_ = d.pop("type", d.pop("type_", UNSET))
49
+ _type_ = d.pop("type", d.pop("type_", UNSET))
50
+ type_: Union[Unset, FlavorType]
51
+ if isinstance(_type_, Unset):
52
+ type_ = UNSET
53
+ else:
54
+ type_ = FlavorType(_type_)
47
55
 
48
56
  flavor = cls(
49
57
  name=name,
@@ -0,0 +1,18 @@
1
+ from enum import Enum
2
+
3
+
4
+ class FlavorType(str, Enum):
5
+ CPU = "cpu"
6
+ GPU = "gpu"
7
+
8
+ def __str__(self) -> str:
9
+ return str(self.value)
10
+
11
+ @classmethod
12
+ def _missing_(cls, value: object) -> "FlavorType | None":
13
+ if isinstance(value, str):
14
+ upper_value = value.upper()
15
+ for member in cls:
16
+ if member.value.upper() == upper_value:
17
+ return member
18
+ return None
@@ -7,8 +7,8 @@ from ..types import UNSET, Unset
7
7
 
8
8
  if TYPE_CHECKING:
9
9
  from ..models.form_config import FormConfig
10
- from ..models.form_oauth import FormOauth
11
10
  from ..models.form_secrets import FormSecrets
11
+ from ..models.o_auth import OAuth
12
12
 
13
13
 
14
14
  T = TypeVar("T", bound="Form")
@@ -20,12 +20,12 @@ class Form:
20
20
 
21
21
  Attributes:
22
22
  config (Union[Unset, FormConfig]): Config of the artifact
23
- oauth (Union[Unset, FormOauth]): OAuth of the artifact
23
+ oauth (Union[Unset, OAuth]): OAuth of the artifact
24
24
  secrets (Union[Unset, FormSecrets]): Secrets of the artifact
25
25
  """
26
26
 
27
27
  config: Union[Unset, "FormConfig"] = UNSET
28
- oauth: Union[Unset, "FormOauth"] = UNSET
28
+ oauth: Union[Unset, "OAuth"] = UNSET
29
29
  secrets: Union[Unset, "FormSecrets"] = UNSET
30
30
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
31
 
@@ -67,8 +67,8 @@ class Form:
67
67
  @classmethod
68
68
  def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T | None:
69
69
  from ..models.form_config import FormConfig
70
- from ..models.form_oauth import FormOauth
71
70
  from ..models.form_secrets import FormSecrets
71
+ from ..models.o_auth import OAuth
72
72
 
73
73
  if not src_dict:
74
74
  return None
@@ -81,11 +81,11 @@ class Form:
81
81
  config = FormConfig.from_dict(_config)
82
82
 
83
83
  _oauth = d.pop("oauth", UNSET)
84
- oauth: Union[Unset, FormOauth]
84
+ oauth: Union[Unset, OAuth]
85
85
  if isinstance(_oauth, Unset):
86
86
  oauth = UNSET
87
87
  else:
88
- oauth = FormOauth.from_dict(_oauth)
88
+ oauth = OAuth.from_dict(_oauth)
89
89
 
90
90
  _secrets = d.pop("secrets", UNSET)
91
91
  secrets: Union[Unset, FormSecrets]