openai 0.102.0 → 0.104.0

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 (426) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +88 -0
  3. data/README.md +23 -1
  4. data/lib/openai/client.rb +3 -386
  5. data/lib/openai/helpers/admin/organization/projects/api_keys.rb +42 -0
  6. data/lib/openai/helpers/agents/session_stream_resource.rb +60 -0
  7. data/lib/openai/helpers/beta/agents/artifacts.rb +18 -0
  8. data/lib/openai/helpers/beta/agents/files.rb +41 -0
  9. data/lib/openai/helpers/client_runtime.rb +391 -0
  10. data/lib/openai/helpers/files.rb +47 -0
  11. data/lib/openai/helpers/live/websocket.rb +8 -57
  12. data/lib/openai/helpers/models/chat/parsed.rb +32 -0
  13. data/lib/openai/helpers/models/responses/parsed.rb +30 -0
  14. data/lib/openai/helpers/models/responses/response.rb +32 -0
  15. data/lib/openai/helpers/models/webhooks/webhook_endpoint_with_secret.rb +20 -0
  16. data/lib/openai/helpers/realtime/client_extension.rb +1 -2
  17. data/lib/openai/helpers/realtime/connection_manager.rb +1 -1
  18. data/lib/openai/helpers/realtime/translation.rb +7 -50
  19. data/lib/openai/helpers/responses_websocket/client_extension.rb +1 -2
  20. data/lib/openai/helpers/streaming/chat_completion_resource.rb +36 -0
  21. data/lib/openai/helpers/streaming/response_stream.rb +1 -16
  22. data/lib/openai/helpers/streaming/response_stream_resource.rb +78 -0
  23. data/lib/openai/helpers/vector_stores/file_batches.rb +188 -0
  24. data/lib/openai/helpers/vector_stores/files.rb +198 -0
  25. data/lib/openai/helpers/websocket/client_request.rb +31 -6
  26. data/lib/openai/helpers/websocket/connection.rb +58 -0
  27. data/lib/openai/helpers/websocket/connection_manager.rb +4 -2
  28. data/lib/openai/helpers/websocket/protocol.rb +2 -1
  29. data/lib/openai/helpers/websocket/resource.rb +54 -0
  30. data/lib/openai/helpers/websocket/typed_connection.rb +95 -0
  31. data/lib/openai/helpers/websocket.rb +4 -0
  32. data/lib/openai/models/admin/organization/audit_log_list_response.rb +5 -3
  33. data/lib/openai/models/admin/organization/external_storage_configuration.rb +5 -3
  34. data/lib/openai/models/admin/organization/external_storage_create_params.rb +33 -3
  35. data/lib/openai/models/admin/organization/oci_external_storage_provider.rb +37 -0
  36. data/lib/openai/models/admin/organization/project_residency.rb +3 -0
  37. data/lib/openai/models/admin/organization/projects/api_key_update_params.rb +64 -0
  38. data/lib/openai/models/admin/organization/projects/api_key_update_scopes_params.rb +34 -0
  39. data/lib/openai/models/admin/organization/usage_decisions_params.rb +177 -0
  40. data/lib/openai/models/admin/organization/usage_decisions_response.rb +351 -0
  41. data/lib/openai/models/audio/speech_create_params.rb +6 -3
  42. data/lib/openai/models/audio/translation_create_response.rb +0 -1
  43. data/lib/openai/models/audio/voice.rb +17 -2
  44. data/lib/openai/models/audio/voice_create_params.rb +100 -3
  45. data/lib/openai/models/beta/agent_create_params.rb +4 -2
  46. data/lib/openai/models/beta/agent_list_params.rb +4 -4
  47. data/lib/openai/models/beta/agent_session.rb +37 -1
  48. data/lib/openai/models/beta/agent_session_environment_expired_event.rb +57 -0
  49. data/lib/openai/models/beta/agent_session_environment_state.rb +6 -0
  50. data/lib/openai/models/beta/agent_session_environment_suspended_event.rb +57 -0
  51. data/lib/openai/models/beta/agent_session_event.rb +7 -1
  52. data/lib/openai/models/beta/agent_update_params.rb +4 -2
  53. data/lib/openai/models/beta/agents/environment_info.rb +3 -0
  54. data/lib/openai/models/beta/agents/environment_list_params.rb +7 -7
  55. data/lib/openai/models/beta/agents/session_create_params.rb +39 -3
  56. data/lib/openai/models/beta/agents/session_list_params.rb +7 -10
  57. data/lib/openai/models/beta/agents/session_update_params.rb +33 -1
  58. data/lib/openai/models/beta/agents/sessions/artifact_list_params.rb +11 -11
  59. data/lib/openai/models/beta/agents/vault_list_params.rb +23 -13
  60. data/lib/openai/models/beta/agents/vault_status_filter.rb +1 -3
  61. data/lib/openai/models/beta/agents/vault_update_params.rb +47 -0
  62. data/lib/openai/models/beta/agents/vaults/credential_list_params.rb +23 -13
  63. data/lib/openai/models/beta/beta_response.rb +23 -2
  64. data/lib/openai/models/beta/beta_response_error.rb +19 -1
  65. data/lib/openai/models/beta/beta_response_input_item.rb +107 -1
  66. data/lib/openai/models/beta/beta_response_item.rb +107 -1
  67. data/lib/openai/models/beta/beta_response_output_item.rb +107 -1
  68. data/lib/openai/models/beta/beta_responses_client_event.rb +23 -2
  69. data/lib/openai/models/beta/response_compact_params.rb +21 -0
  70. data/lib/openai/models/beta/response_create_params.rb +23 -2
  71. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  72. data/lib/openai/models/chat/chat_completion_audio_param.rb +3 -3
  73. data/lib/openai/models/chat/chat_completion_message.rb +0 -8
  74. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +0 -8
  75. data/lib/openai/models/chat/completion_create_params.rb +5 -12
  76. data/lib/openai/models/chat_model.rb +21 -0
  77. data/lib/openai/models/conversations/conversation_item.rb +107 -1
  78. data/lib/openai/models/decision.rb +17 -2
  79. data/lib/openai/models/decision_create_params.rb +29 -12
  80. data/lib/openai/models/decision_input_image.rb +4 -3
  81. data/lib/openai/models/decision_input_message.rb +4 -4
  82. data/lib/openai/models/decision_input_part.rb +3 -2
  83. data/lib/openai/models/image_edit_completed_event.rb +1 -2
  84. data/lib/openai/models/image_edit_partial_image_event.rb +1 -2
  85. data/lib/openai/models/image_gen_completed_event.rb +1 -2
  86. data/lib/openai/models/image_gen_partial_image_event.rb +1 -2
  87. data/lib/openai/models/images_response.rb +1 -2
  88. data/lib/openai/models/live/built_in_voice.rb +1 -0
  89. data/lib/openai/models/live/client_event.rb +14 -2
  90. data/lib/openai/models/live/decision_create_event.rb +26 -0
  91. data/lib/openai/models/live/decision_event.rb +117 -0
  92. data/lib/openai/models/live/decision_item_create_event.rb +194 -0
  93. data/lib/openai/models/live/decision_item_created_event.rb +202 -0
  94. data/lib/openai/models/live/decision_item_delete_event.rb +38 -0
  95. data/lib/openai/models/live/decision_item_deleted_event.rb +46 -0
  96. data/lib/openai/models/live/decision_trigger.rb +244 -0
  97. data/lib/openai/models/live/decisions_delegation_config.rb +201 -0
  98. data/lib/openai/models/live/decisions_delegation_update_config.rb +208 -0
  99. data/lib/openai/models/live/delegation_created_event.rb +10 -10
  100. data/lib/openai/models/live/fork_client_event.rb +14 -2
  101. data/lib/openai/models/live/fork_server_event.rb +17 -2
  102. data/lib/openai/models/live/media_session_config.rb +47 -11
  103. data/lib/openai/models/live/output_audio_fixture_play_event.rb +48 -0
  104. data/lib/openai/models/live/output_audio_fixture_played_event.rb +42 -0
  105. data/lib/openai/models/live/output_audio_fixture_playing_event.rb +41 -0
  106. data/lib/openai/models/live/server_event.rb +17 -2
  107. data/lib/openai/models/live/session_accept_params.rb +47 -11
  108. data/lib/openai/models/live/session_config.rb +47 -11
  109. data/lib/openai/models/live/session_resource.rb +47 -11
  110. data/lib/openai/models/live/session_update_config.rb +38 -6
  111. data/lib/openai/models/live/session_update_event.rb +8 -8
  112. data/lib/openai/models/live/sideband_client_event.rb +57 -0
  113. data/lib/openai/models/live/sideband_server_event.rb +78 -0
  114. data/lib/openai/models/realtime/realtime_audio_config_output.rb +6 -3
  115. data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +6 -3
  116. data/lib/openai/models/realtime/realtime_response_status.rb +10 -1
  117. data/lib/openai/models/response_format_json_schema.rb +1 -1
  118. data/lib/openai/models/responses/function_tool.rb +8 -6
  119. data/lib/openai/models/responses/response.rb +2 -23
  120. data/lib/openai/models/responses/response_compact_params.rb +21 -0
  121. data/lib/openai/models/responses/response_create_params.rb +3 -6
  122. data/lib/openai/models/responses/response_error.rb +19 -1
  123. data/lib/openai/models/responses/response_format_text_config.rb +0 -4
  124. data/lib/openai/models/responses/response_function_tool_call.rb +0 -8
  125. data/lib/openai/models/responses/response_input_item.rb +107 -1
  126. data/lib/openai/models/responses/response_item.rb +107 -1
  127. data/lib/openai/models/responses/response_output_item.rb +107 -1
  128. data/lib/openai/models/responses/response_output_text.rb +0 -8
  129. data/lib/openai/models/responses/responses_client_event.rb +2 -2
  130. data/lib/openai/models/safety/safety_alert.rb +12 -1
  131. data/lib/openai/models/video_create_error.rb +19 -1
  132. data/lib/openai/models/webhooks/agent_environment_expired_webhook_event.rb +72 -0
  133. data/lib/openai/models/webhooks/agent_environment_suspended_webhook_event.rb +72 -0
  134. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +8 -3
  135. data/lib/openai/models/webhooks/webhook_create_params.rb +2 -0
  136. data/lib/openai/models/webhooks/webhook_endpoint_with_secret.rb +0 -9
  137. data/lib/openai/models/webhooks/webhook_test_params.rb +2 -0
  138. data/lib/openai/models/webhooks/webhook_update_params.rb +2 -0
  139. data/lib/openai/resources/admin/organization/external_storage.rb +1 -1
  140. data/lib/openai/resources/admin/organization/projects/api_keys.rb +61 -0
  141. data/lib/openai/resources/admin/organization/usage.rb +67 -0
  142. data/lib/openai/resources/audio/speech.rb +2 -1
  143. data/lib/openai/resources/audio/voices.rb +10 -10
  144. data/lib/openai/resources/beta/agents/environments/files.rb +3 -31
  145. data/lib/openai/resources/beta/agents/environments.rb +3 -3
  146. data/lib/openai/resources/beta/agents/sessions/artifacts.rb +5 -11
  147. data/lib/openai/resources/beta/agents/sessions/events.rb +1 -1
  148. data/lib/openai/resources/beta/agents/sessions.rb +20 -56
  149. data/lib/openai/resources/beta/agents/vaults/credentials.rb +10 -6
  150. data/lib/openai/resources/beta/agents/vaults.rb +45 -6
  151. data/lib/openai/resources/beta/agents.rb +6 -4
  152. data/lib/openai/resources/beta/responses.rb +2 -2
  153. data/lib/openai/resources/chat/completions.rb +11 -37
  154. data/lib/openai/resources/decisions.rb +9 -15
  155. data/lib/openai/resources/files.rb +0 -39
  156. data/lib/openai/resources/live/forks.rb +19 -0
  157. data/lib/openai/resources/live/sideband.rb +19 -0
  158. data/lib/openai/resources/live.rb +19 -0
  159. data/lib/openai/resources/realtime/translations.rb +19 -0
  160. data/lib/openai/resources/realtime.rb +19 -0
  161. data/lib/openai/resources/responses.rb +44 -95
  162. data/lib/openai/resources/vector_stores/file_batches.rb +0 -178
  163. data/lib/openai/resources/vector_stores/files.rb +0 -188
  164. data/lib/openai/resources/webhooks.rb +13 -29
  165. data/lib/openai/version.rb +1 -1
  166. data/lib/openai.rb +35 -0
  167. data/rbi/openai/client.rbi +0 -103
  168. data/rbi/openai/helpers/admin/organization/projects/api_keys.rbi +25 -0
  169. data/rbi/openai/helpers/beta/agents/artifacts.rbi +25 -0
  170. data/rbi/openai/helpers/beta/agents/files.rbi +48 -0
  171. data/rbi/openai/helpers/client_runtime.rbi +108 -0
  172. data/rbi/openai/helpers/files.rbi +25 -0
  173. data/rbi/openai/helpers/models/chat/parsed.rbi +21 -0
  174. data/rbi/openai/helpers/models/responses/parsed.rbi +19 -0
  175. data/rbi/openai/helpers/models/responses/response.rbi +15 -0
  176. data/rbi/openai/helpers/streaming/response_stream.rbi +301 -0
  177. data/rbi/openai/helpers/vector_stores/file_batches.rbi +102 -0
  178. data/rbi/openai/helpers/vector_stores/files.rbi +122 -0
  179. data/rbi/openai/helpers/websocket.rbi +82 -0
  180. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +6 -3
  181. data/rbi/openai/models/admin/organization/external_storage_configuration.rbi +4 -2
  182. data/rbi/openai/models/admin/organization/external_storage_create_params.rbi +63 -4
  183. data/rbi/openai/models/admin/organization/oci_external_storage_provider.rbi +71 -0
  184. data/rbi/openai/models/admin/organization/project_residency.rbi +12 -0
  185. data/rbi/openai/models/admin/organization/projects/api_key_update_params.rbi +110 -0
  186. data/rbi/openai/models/admin/organization/projects/api_key_update_scopes_params.rbi +72 -0
  187. data/rbi/openai/models/admin/organization/usage_decisions_params.rbi +229 -0
  188. data/rbi/openai/models/admin/organization/usage_decisions_response.rbi +479 -0
  189. data/rbi/openai/models/audio/speech_create_params.rbi +6 -3
  190. data/rbi/openai/models/audio/voice.rbi +21 -2
  191. data/rbi/openai/models/audio/voice_create_params.rbi +149 -4
  192. data/rbi/openai/models/beta/agent_create_params.rbi +4 -2
  193. data/rbi/openai/models/beta/agent_list_params.rbi +8 -5
  194. data/rbi/openai/models/beta/agent_session.rbi +64 -1
  195. data/rbi/openai/models/beta/agent_session_environment_expired_event.rbi +95 -0
  196. data/rbi/openai/models/beta/agent_session_environment_state.rbi +6 -0
  197. data/rbi/openai/models/beta/agent_session_environment_suspended_event.rbi +95 -0
  198. data/rbi/openai/models/beta/agent_session_event.rbi +2 -0
  199. data/rbi/openai/models/beta/agent_update_params.rbi +4 -2
  200. data/rbi/openai/models/beta/agents/environment_info.rbi +3 -0
  201. data/rbi/openai/models/beta/agents/environment_list_params.rbi +7 -7
  202. data/rbi/openai/models/beta/agents/session_create_params.rbi +62 -2
  203. data/rbi/openai/models/beta/agents/session_list_params.rbi +11 -11
  204. data/rbi/openai/models/beta/agents/session_update_params.rbi +56 -0
  205. data/rbi/openai/models/beta/agents/sessions/artifact_list_params.rbi +19 -13
  206. data/rbi/openai/models/beta/agents/vault_list_params.rbi +30 -13
  207. data/rbi/openai/models/beta/agents/vault_status_filter.rbi +1 -3
  208. data/rbi/openai/models/beta/agents/vault_update_params.rbi +87 -0
  209. data/rbi/openai/models/beta/agents/vaults/credential_list_params.rbi +30 -13
  210. data/rbi/openai/models/beta/beta_response.rbi +2 -2
  211. data/rbi/openai/models/beta/beta_response_error.rbi +24 -3
  212. data/rbi/openai/models/beta/beta_response_input_item.rbi +191 -0
  213. data/rbi/openai/models/beta/beta_response_item.rbi +189 -0
  214. data/rbi/openai/models/beta/beta_response_output_item.rbi +191 -0
  215. data/rbi/openai/models/beta/beta_responses_client_event.rbi +2 -2
  216. data/rbi/openai/models/beta/response_create_params.rbi +2 -2
  217. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  218. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +3 -3
  219. data/rbi/openai/models/chat/chat_completion_message.rbi +0 -4
  220. data/rbi/openai/models/chat/chat_completion_message_function_tool_call.rbi +0 -4
  221. data/rbi/openai/models/chat/completion_create_params.rbi +63 -78
  222. data/rbi/openai/models/conversations/conversation_item.rbi +191 -0
  223. data/rbi/openai/models/decision.rbi +14 -1
  224. data/rbi/openai/models/decision_create_params.rbi +23 -12
  225. data/rbi/openai/models/decision_input_image.rbi +4 -3
  226. data/rbi/openai/models/decision_input_message.rbi +4 -4
  227. data/rbi/openai/models/decision_input_part.rbi +2 -1
  228. data/rbi/openai/models/image_edit_completed_event.rbi +1 -0
  229. data/rbi/openai/models/image_edit_partial_image_event.rbi +1 -0
  230. data/rbi/openai/models/image_gen_completed_event.rbi +1 -0
  231. data/rbi/openai/models/image_gen_partial_image_event.rbi +1 -0
  232. data/rbi/openai/models/images_response.rbi +1 -0
  233. data/rbi/openai/models/live/built_in_voice.rbi +1 -0
  234. data/rbi/openai/models/live/client_event.rbi +4 -0
  235. data/rbi/openai/models/live/decision_create_event.rbi +55 -0
  236. data/rbi/openai/models/live/decision_event.rbi +185 -0
  237. data/rbi/openai/models/live/decision_item_create_event.rbi +338 -0
  238. data/rbi/openai/models/live/decision_item_created_event.rbi +354 -0
  239. data/rbi/openai/models/live/decision_item_delete_event.rbi +66 -0
  240. data/rbi/openai/models/live/decision_item_deleted_event.rbi +77 -0
  241. data/rbi/openai/models/live/decision_trigger.rbi +465 -0
  242. data/rbi/openai/models/live/decisions_delegation_config.rbi +393 -0
  243. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +412 -0
  244. data/rbi/openai/models/live/delegation_created_event.rbi +8 -10
  245. data/rbi/openai/models/live/fork_client_event.rbi +4 -0
  246. data/rbi/openai/models/live/fork_server_event.rbi +5 -0
  247. data/rbi/openai/models/live/media_session_config.rbi +95 -14
  248. data/rbi/openai/models/live/output_audio_fixture_play_event.rbi +76 -0
  249. data/rbi/openai/models/live/output_audio_fixture_played_event.rbi +73 -0
  250. data/rbi/openai/models/live/output_audio_fixture_playing_event.rbi +72 -0
  251. data/rbi/openai/models/live/server_event.rbi +5 -0
  252. data/rbi/openai/models/live/session_accept_params.rbi +88 -12
  253. data/rbi/openai/models/live/session_config.rbi +100 -14
  254. data/rbi/openai/models/live/session_resource.rbi +81 -10
  255. data/rbi/openai/models/live/session_update_config.rbi +86 -9
  256. data/rbi/openai/models/live/session_update_event.rbi +8 -8
  257. data/rbi/openai/models/live/sideband_client_event.rbi +40 -0
  258. data/rbi/openai/models/live/sideband_server_event.rbi +47 -0
  259. data/rbi/openai/models/realtime/realtime_audio_config_output.rbi +6 -3
  260. data/rbi/openai/models/realtime/realtime_response_create_audio_output.rbi +6 -3
  261. data/rbi/openai/models/realtime/realtime_response_status.rbi +13 -1
  262. data/rbi/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rbi +1 -1
  263. data/rbi/openai/models/realtime/realtime_translation_output_audio_delta_event.rbi +3 -3
  264. data/rbi/openai/models/realtime/realtime_translation_session_close_event.rbi +1 -1
  265. data/rbi/openai/models/realtime/realtime_translation_session_update_event.rbi +5 -1
  266. data/rbi/openai/models/responses/response.rbi +2 -7
  267. data/rbi/openai/models/responses/response_create_params.rbi +5 -9
  268. data/rbi/openai/models/responses/response_error.rbi +24 -3
  269. data/rbi/openai/models/responses/response_function_tool_call.rbi +0 -4
  270. data/rbi/openai/models/responses/response_function_web_search.rbi +21 -17
  271. data/rbi/openai/models/responses/response_input_item.rbi +191 -0
  272. data/rbi/openai/models/responses/response_item.rbi +189 -0
  273. data/rbi/openai/models/responses/response_output_item.rbi +191 -0
  274. data/rbi/openai/models/responses/response_output_text.rbi +0 -4
  275. data/rbi/openai/models/responses/responses_client_event.rbi +2 -2
  276. data/rbi/openai/models/safety/safety_alert.rbi +13 -1
  277. data/rbi/openai/models/video_create_error.rbi +24 -3
  278. data/rbi/openai/models/webhooks/agent_environment_expired_webhook_event.rbi +133 -0
  279. data/rbi/openai/models/webhooks/agent_environment_suspended_webhook_event.rbi +133 -0
  280. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +3 -2
  281. data/rbi/openai/models/webhooks/webhook_create_params.rbi +8 -0
  282. data/rbi/openai/models/webhooks/webhook_test_params.rbi +8 -0
  283. data/rbi/openai/models/webhooks/webhook_update_params.rbi +8 -0
  284. data/rbi/openai/resources/admin/organization/external_storage.rbi +2 -1
  285. data/rbi/openai/resources/admin/organization/projects/api_keys.rbi +48 -0
  286. data/rbi/openai/resources/admin/organization/usage.rbi +56 -0
  287. data/rbi/openai/resources/audio/speech.rbi +2 -1
  288. data/rbi/openai/resources/audio/voices.rbi +13 -10
  289. data/rbi/openai/resources/beta/agents/environments/files.rbi +3 -33
  290. data/rbi/openai/resources/beta/agents/environments.rbi +3 -3
  291. data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +5 -13
  292. data/rbi/openai/resources/beta/agents/sessions.rbi +15 -4
  293. data/rbi/openai/resources/beta/agents/vaults/credentials.rbi +9 -5
  294. data/rbi/openai/resources/beta/agents/vaults.rbi +34 -5
  295. data/rbi/openai/resources/beta/agents.rbi +6 -4
  296. data/rbi/openai/resources/beta/responses.rbi +2 -2
  297. data/rbi/openai/resources/chat/completions.rbi +26 -29
  298. data/rbi/openai/resources/decisions.rbi +9 -15
  299. data/rbi/openai/resources/files.rbi +0 -18
  300. data/rbi/openai/resources/live/forks.rbi +17 -0
  301. data/rbi/openai/resources/live/sideband.rbi +17 -0
  302. data/rbi/openai/resources/live.rbi +17 -0
  303. data/rbi/openai/resources/realtime/translations.rbi +17 -0
  304. data/rbi/openai/resources/realtime.rbi +17 -0
  305. data/rbi/openai/resources/responses.rbi +41 -333
  306. data/rbi/openai/resources/vector_stores/file_batches.rbi +0 -93
  307. data/rbi/openai/resources/vector_stores/files.rbi +0 -113
  308. data/rbi/openai/resources/webhooks.rbi +2 -0
  309. data/sig/openai/client.rbs +0 -50
  310. data/sig/openai/helpers/admin/organization/projects/api_keys.rbs +18 -0
  311. data/sig/openai/helpers/beta/agents/artifacts.rbs +17 -0
  312. data/sig/openai/helpers/beta/agents/files.rbs +30 -0
  313. data/sig/openai/helpers/client_runtime.rbs +53 -0
  314. data/sig/openai/helpers/files.rbs +12 -0
  315. data/sig/openai/helpers/models/responses/response.rbs +9 -0
  316. data/sig/openai/helpers/streaming/response_stream.rbs +37 -0
  317. data/sig/openai/helpers/vector_stores/file_batches.rbs +38 -0
  318. data/sig/openai/helpers/vector_stores/files.rbs +43 -0
  319. data/sig/openai/helpers/websocket.rbs +40 -0
  320. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +1 -0
  321. data/sig/openai/models/admin/organization/external_storage_configuration.rbs +1 -0
  322. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +33 -0
  323. data/sig/openai/models/admin/organization/oci_external_storage_provider.rbs +34 -0
  324. data/sig/openai/models/admin/organization/project_residency.rbs +6 -0
  325. data/sig/openai/models/admin/organization/projects/api_key_update_params.rbs +77 -0
  326. data/sig/openai/models/admin/organization/projects/api_key_update_scopes_params.rbs +38 -0
  327. data/sig/openai/models/admin/organization/usage_decisions_params.rbs +170 -0
  328. data/sig/openai/models/admin/organization/usage_decisions_response.rbs +319 -0
  329. data/sig/openai/models/audio/speech_create_params.rbs +4 -2
  330. data/sig/openai/models/audio/voice.rbs +21 -3
  331. data/sig/openai/models/audio/voice_create_params.rbs +90 -1
  332. data/sig/openai/models/beta/agent_create_params.rbs +4 -2
  333. data/sig/openai/models/beta/agent_list_params.rbs +9 -6
  334. data/sig/openai/models/beta/agent_session.rbs +36 -2
  335. data/sig/openai/models/beta/agent_session_environment_expired_event.rbs +57 -0
  336. data/sig/openai/models/beta/agent_session_environment_state.rbs +14 -1
  337. data/sig/openai/models/beta/agent_session_environment_suspended_event.rbs +57 -0
  338. data/sig/openai/models/beta/agent_session_event.rbs +2 -0
  339. data/sig/openai/models/beta/agent_update_params.rbs +4 -2
  340. data/sig/openai/models/beta/agents/environment_info.rbs +11 -1
  341. data/sig/openai/models/beta/agents/environment_list_params.rbs +9 -9
  342. data/sig/openai/models/beta/agents/session_create_params.rbs +29 -2
  343. data/sig/openai/models/beta/agents/session_list_params.rbs +12 -12
  344. data/sig/openai/models/beta/agents/session_update_params.rbs +23 -0
  345. data/sig/openai/models/beta/agents/sessions/artifact_list_params.rbs +21 -15
  346. data/sig/openai/models/beta/agents/vault_list_params.rbs +32 -14
  347. data/sig/openai/models/beta/agents/vault_update_params.rbs +54 -0
  348. data/sig/openai/models/beta/agents/vaults/credential_list_params.rbs +32 -14
  349. data/sig/openai/models/beta/beta_response.rbs +2 -2
  350. data/sig/openai/models/beta/beta_response_error.rbs +19 -3
  351. data/sig/openai/models/beta/beta_response_input_item.rbs +110 -0
  352. data/sig/openai/models/beta/beta_response_item.rbs +110 -0
  353. data/sig/openai/models/beta/beta_response_output_item.rbs +110 -0
  354. data/sig/openai/models/beta/beta_responses_client_event.rbs +2 -2
  355. data/sig/openai/models/beta/response_create_params.rbs +2 -2
  356. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  357. data/sig/openai/models/chat/chat_completion_audio_param.rbs +2 -2
  358. data/sig/openai/models/chat/completion_create_params.rbs +2 -2
  359. data/sig/openai/models/conversations/conversation_item.rbs +110 -0
  360. data/sig/openai/models/decision.rbs +13 -0
  361. data/sig/openai/models/decision_create_params.rbs +19 -8
  362. data/sig/openai/models/decision_input_image.rbs +2 -2
  363. data/sig/openai/models/decision_input_message.rbs +2 -2
  364. data/sig/openai/models/live/built_in_voice.rbs +2 -0
  365. data/sig/openai/models/live/client_event.rbs +4 -0
  366. data/sig/openai/models/live/decision_create_event.rbs +18 -0
  367. data/sig/openai/models/live/decision_event.rbs +102 -0
  368. data/sig/openai/models/live/decision_item_create_event.rbs +183 -0
  369. data/sig/openai/models/live/decision_item_created_event.rbs +195 -0
  370. data/sig/openai/models/live/decision_item_delete_event.rbs +33 -0
  371. data/sig/openai/models/live/decision_item_deleted_event.rbs +49 -0
  372. data/sig/openai/models/live/decision_trigger.rbs +234 -0
  373. data/sig/openai/models/live/decisions_delegation_config.rbs +195 -0
  374. data/sig/openai/models/live/decisions_delegation_update_config.rbs +202 -0
  375. data/sig/openai/models/live/delegation_created_event.rbs +6 -7
  376. data/sig/openai/models/live/fork_client_event.rbs +4 -0
  377. data/sig/openai/models/live/fork_server_event.rbs +5 -0
  378. data/sig/openai/models/live/media_session_config.rbs +58 -11
  379. data/sig/openai/models/live/output_audio_fixture_play_event.rbs +42 -0
  380. data/sig/openai/models/live/output_audio_fixture_played_event.rbs +44 -0
  381. data/sig/openai/models/live/output_audio_fixture_playing_event.rbs +44 -0
  382. data/sig/openai/models/live/server_event.rbs +5 -0
  383. data/sig/openai/models/live/session_accept_params.rbs +57 -10
  384. data/sig/openai/models/live/session_config.rbs +58 -11
  385. data/sig/openai/models/live/session_resource.rbs +57 -10
  386. data/sig/openai/models/live/session_update_config.rbs +54 -3
  387. data/sig/openai/models/live/session_update_event.rbs +6 -6
  388. data/sig/openai/models/live/sideband_client_event.rbs +26 -0
  389. data/sig/openai/models/live/sideband_server_event.rbs +33 -0
  390. data/sig/openai/models/realtime/realtime_audio_config_output.rbs +6 -3
  391. data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +6 -3
  392. data/sig/openai/models/realtime/realtime_response_status.rbs +15 -3
  393. data/sig/openai/models/responses/response.rbs +2 -4
  394. data/sig/openai/models/responses/response_create_params.rbs +2 -2
  395. data/sig/openai/models/responses/response_error.rbs +19 -3
  396. data/sig/openai/models/responses/response_input_item.rbs +110 -0
  397. data/sig/openai/models/responses/response_item.rbs +110 -0
  398. data/sig/openai/models/responses/response_output_item.rbs +110 -0
  399. data/sig/openai/models/responses/responses_client_event.rbs +2 -2
  400. data/sig/openai/models/safety/safety_alert.rbs +12 -2
  401. data/sig/openai/models/video_create_error.rbs +19 -3
  402. data/sig/openai/models/webhooks/agent_environment_expired_webhook_event.rbs +70 -0
  403. data/sig/openai/models/webhooks/agent_environment_suspended_webhook_event.rbs +70 -0
  404. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +3 -1
  405. data/sig/openai/models/webhooks/webhook_create_params.rbs +4 -0
  406. data/sig/openai/models/webhooks/webhook_test_params.rbs +4 -0
  407. data/sig/openai/models/webhooks/webhook_update_params.rbs +4 -0
  408. data/sig/openai/resources/admin/organization/projects/api_keys.rbs +8 -0
  409. data/sig/openai/resources/admin/organization/usage.rbs +15 -0
  410. data/sig/openai/resources/beta/agents/environments/files.rbs +0 -17
  411. data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +2 -6
  412. data/sig/openai/resources/beta/agents/sessions.rbs +4 -1
  413. data/sig/openai/resources/beta/agents/vaults/credentials.rbs +2 -1
  414. data/sig/openai/resources/beta/agents/vaults.rbs +9 -1
  415. data/sig/openai/resources/beta/agents.rbs +1 -1
  416. data/sig/openai/resources/files.rbs +0 -7
  417. data/sig/openai/resources/live/forks.rbs +8 -0
  418. data/sig/openai/resources/live/sideband.rbs +8 -0
  419. data/sig/openai/resources/live.rbs +7 -0
  420. data/sig/openai/resources/realtime/translations.rbs +7 -0
  421. data/sig/openai/resources/realtime.rbs +7 -0
  422. data/sig/openai/resources/responses.rbs +7 -31
  423. data/sig/openai/resources/vector_stores/file_batches.rbs +0 -31
  424. data/sig/openai/resources/vector_stores/files.rbs +0 -36
  425. data/sig/openai/resources/webhooks.rbs +3 -1
  426. metadata +101 -1
@@ -26,6 +26,54 @@ module OpenAI
26
26
  )
27
27
  end
28
28
 
29
+ # Updates the scopes and/or expiration of an existing API key in the project,
30
+ # including a service-account-owned key. Requires permission to write project API
31
+ # keys.
32
+ #
33
+ # Provide at least one of `scopes` or `expires_in_seconds`. Omitted fields stay
34
+ # unchanged; neither field accepts `null`. Both changes are saved together.
35
+ #
36
+ # `scopes` replaces the key's scope restrictions using the same scope identifiers
37
+ # as the dashboard. An empty array means All permissions, subject to the owner's
38
+ # effective access; it does not mean no access. Use `["api.all.read"]` for
39
+ # read-only access or specific scopes such as `["api.files.read"]` for restricted
40
+ # access. This does not change user or service-account roles or grant admin
41
+ # permissions. Scope changes follow the same authentication-cache propagation as
42
+ # dashboard edits.
43
+ #
44
+ # Provide `expires_in_seconds` to set the expiration relative to this request. The
45
+ # value must satisfy the organization's and project's expiry policies. Expired
46
+ # keys cannot be updated. Retrying resets the expiration relative to the new
47
+ # request. The response contains only the redacted key, not its secret.
48
+ sig {
49
+ params(
50
+ api_key_id: String,
51
+ project_id: String,
52
+ expires_in_seconds: Integer,
53
+ scopes: T::Array[String],
54
+ request_options: OpenAI::RequestOptions::OrHash
55
+ )
56
+ .returns(OpenAI::Admin::Organization::Projects::ProjectAPIKey)
57
+ }
58
+ def update(
59
+ # Path param: The ID of the API key.
60
+ api_key_id,
61
+ # Path param: The ID of the project.
62
+ project_id:,
63
+ # Body param: Number of seconds from this request until the API key expires. Must
64
+ # comply with the organization and project expiry policies. Expired keys cannot be
65
+ # updated. Retrying resets the expiry relative to the new request. Omit to keep
66
+ # the current expiration.
67
+ expires_in_seconds: nil,
68
+ # Body param: Replace the API key scope restrictions. Omit to leave scopes
69
+ # unchanged. An empty array removes key restrictions (All permissions), subject to
70
+ # the owner's effective permissions. Use ["api.all.read"] for read-only access.
71
+ # Scopes do not change the owner's roles or grant administrative permissions.
72
+ scopes: nil,
73
+ request_options: {}
74
+ )
75
+ end
76
+
29
77
  # Returns a list of API keys in the project.
30
78
  sig {
31
79
  params(
@@ -252,6 +252,62 @@ module OpenAI
252
252
  )
253
253
  end
254
254
 
255
+ # Get Decisions API usage details for the organization.
256
+ sig {
257
+ params(
258
+ start_time: Integer,
259
+ api_key_ids: T.nilable(T::Array[String]),
260
+ batch: T.nilable(T::Boolean),
261
+ bucket_width: T.nilable(OpenAI::Admin::Organization::UsageDecisionsParams::BucketWidth::OrSymbol),
262
+ end_time: T.nilable(Integer),
263
+ group_by: T.nilable(T::Array[OpenAI::Admin::Organization::UsageDecisionsParams::GroupBy::OrSymbol]),
264
+ limit: T.nilable(Integer),
265
+ models: T.nilable(T::Array[String]),
266
+ page: T.nilable(String),
267
+ project_ids: T.nilable(T::Array[String]),
268
+ user_ids: T.nilable(T::Array[String]),
269
+ request_options: OpenAI::RequestOptions::OrHash
270
+ )
271
+ .returns(OpenAI::Models::Admin::Organization::UsageDecisionsResponse)
272
+ }
273
+ def decisions(
274
+ # Start time (Unix seconds) of the query time range, inclusive.
275
+ start_time:,
276
+ # Return only usage for these API keys.
277
+ api_key_ids: nil,
278
+ # If `true`, return batch jobs only. If `false`, return non-batch jobs only. By
279
+ # default, return both.
280
+ batch: nil,
281
+ # Width of each time bucket in response. Currently `1m`, `1h` and `1d` are
282
+ # supported, default to `1d`.
283
+ bucket_width: nil,
284
+ # End time (Unix seconds) of the query time range, exclusive.
285
+ end_time: nil,
286
+ # Group the usage data by the specified fields. Support fields include
287
+ # `project_id`, `user_id`, `api_key_id`, `model`, `batch`, `service_tier`,
288
+ # `api_source` or any combination of them. When grouped by `api_source`, results
289
+ # use `agents_api` for attributed Agents API activity and `unlabeled` for all
290
+ # other activity. Without source grouping, `api_source` is null.
291
+ group_by: nil,
292
+ # Specifies the number of buckets to return.
293
+ #
294
+ # - `bucket_width=1d`: default: 7, max: 31
295
+ # - `bucket_width=1h`: default: 24, max: 168
296
+ # - `bucket_width=1m`: default: 60, max: 1440
297
+ limit: nil,
298
+ # Return only usage for these models.
299
+ models: nil,
300
+ # A cursor for use in pagination. Corresponding to the `next_page` field from the
301
+ # previous response.
302
+ page: nil,
303
+ # Return only usage for these projects.
304
+ project_ids: nil,
305
+ # Return only usage for these users.
306
+ user_ids: nil,
307
+ request_options: {}
308
+ )
309
+ end
310
+
255
311
  # Get embeddings usage details for the organization.
256
312
  sig {
257
313
  params(
@@ -41,7 +41,8 @@ module OpenAI
41
41
  # object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
42
42
  # voices are available in the
43
43
  # [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
44
- # Custom voices must be created from audio samples.
44
+ # Custom voices must be created from audio samples. Voices created from text
45
+ # prompts are supported only in Live.
45
46
  voice:,
46
47
  # Control the voice of your generated audio with additional instructions. Does not
47
48
  # work with `tts-1` or `tts-1-hd`.
@@ -8,20 +8,23 @@ module OpenAI
8
8
  # Turn audio into text or text into audio.
9
9
  class Voices
10
10
 
11
- # Create a custom voice you can use for audio output (for example, in
12
- # Text-to-Speech and the Realtime API). This requires an audio sample and a
13
- # previously uploaded consent recording.
11
+ # Creates a voice from a text prompt or from a consent recording and an audio
12
+ # sample.
14
13
  #
15
- # Send `name`, `audio_sample`, and the `consent` recording ID as multipart form
16
- # data. The optional `type` defaults to `audio_sample`.
14
+ # For prompt-based creation, send `type: "prompt"` with a `name` and `prompt` as
15
+ # JSON or multipart form data. For creation from an audio sample, send
16
+ # `type: "audio_sample"` with a `name`, `audio_sample`, and `consent` recording ID
17
+ # as multipart form data. The type defaults to `audio_sample` when omitted.
17
18
  #
18
- # Returns the saved voice's metadata. See the
19
- # [custom voices guide](https://developers.openai.com/api/docs/guides/text-to-speech#custom-voices)
20
- # for requirements and best practices. Custom voices are limited to eligible
21
- # customers.
19
+ # Returns the saved voice's metadata. Voices created from text prompts are
20
+ # supported only in Live, not in Realtime or the speech endpoint. The response
21
+ # does not include preview audio.
22
22
  sig {
23
23
  params(
24
- body: OpenAI::Audio::VoiceCreateParams::Body::AudioSample::OrHash,
24
+ body: T.any(
25
+ OpenAI::Audio::VoiceCreateParams::Body::AudioSample::OrHash,
26
+ OpenAI::Audio::VoiceCreateParams::Body::Prompt::OrHash
27
+ ),
25
28
  request_options: OpenAI::RequestOptions::OrHash
26
29
  )
27
30
  .returns(OpenAI::Audio::Voice)
@@ -10,40 +10,10 @@ module OpenAI
10
10
  class Environments
11
11
 
12
12
  class Files
13
- # Beta file helpers.
14
- sig {
15
- params(files: T::Hash[String, T.any(String, Pathname)], request_options: OpenAI::RequestOptions::OrHash)
16
- .returns(OpenAI::Helpers::Beta::Agents::PreparedFiles)
17
- }
18
- def prepare(files, request_options: {})
19
- end
20
-
21
- sig {
22
- params(
23
- directory: T.any(String, Pathname),
24
- destination: String,
25
- include: T::Array[String],
26
- request_options: OpenAI::RequestOptions::OrHash
27
- )
28
- .returns(OpenAI::Helpers::Beta::Agents::PreparedFiles)
29
- }
30
- def prepare_directory(directory, destination:, include:, request_options: {})
31
- end
32
-
33
- sig {
34
- params(
35
- environment_id: String,
36
- file: T.any(String, Pathname),
37
- path: String,
38
- request_options: OpenAI::RequestOptions::OrHash
39
- )
40
- .returns(OpenAI::Helpers::Beta::Agents::PreparedFiles)
41
- }
42
- def upload(environment_id, file:, path:, request_options: {})
43
- end
44
13
 
45
- # Copies inline bytes or a Files API file into a connected execution environment.
46
- # See
14
+ # Copies inline bytes or a Files API file into a connected execution environment,
15
+ # replacing an existing regular file at the same path. Upload between turns and
16
+ # wait for success before starting the next turn. See
47
17
  # [environment files](https://developers.openai.com/api/docs/guides/agents-api/environments/files).
48
18
  sig {
49
19
  params(
@@ -71,11 +71,11 @@ module OpenAI
71
71
  .returns(OpenAI::Internal::CursorPage[OpenAI::Beta::Agents::EnvironmentInfo])
72
72
  }
73
73
  def list(
74
- # Return environments after this environment ID in the selected order.
74
+ # Return resources after this resource ID in the selected order.
75
75
  after: nil,
76
- # The maximum number of environments to return, between 1 and 100. Defaults to 20.
76
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
77
77
  limit: nil,
78
- # The order in which environments are returned. Defaults to `desc`.
78
+ # The order in which resources are returned. Defaults to `desc`.
79
79
  order: nil,
80
80
  # The hosting type to list. Defaults to `openai_hosted`.
81
81
  type: nil,
@@ -10,14 +10,6 @@ module OpenAI
10
10
  class Sessions
11
11
 
12
12
  class Artifacts
13
- # Beta result-scoped downloads.
14
- sig {
15
- params(result: OpenAI::Helpers::Beta::Agents::TurnResult).returns(
16
- OpenAI::Helpers::Beta::Agents::ResultArtifacts
17
- )
18
- }
19
- def for_result(result)
20
- end
21
13
 
22
14
  # Retrieves immutable metadata for one durable session artifact. See
23
15
  # [session artifacts](https://developers.openai.com/api/docs/guides/agents-api/environments/files#openai-hosted-artifacts).
@@ -40,9 +32,9 @@ module OpenAI
40
32
  sig {
41
33
  params(
42
34
  session_id: String,
43
- after: T.nilable(String),
35
+ after: String,
44
36
  environment_id: T.nilable(String),
45
- limit: T.nilable(Integer),
37
+ limit: Integer,
46
38
  order: OpenAI::Beta::Agents::Sessions::ArtifactListParams::Order::OrSymbol,
47
39
  request_options: OpenAI::RequestOptions::OrHash
48
40
  )
@@ -51,13 +43,13 @@ module OpenAI
51
43
  def list(
52
44
  # The ID of the session.
53
45
  session_id,
54
- # Return artifacts after this immutable artifact ID.
46
+ # Return resources after this resource ID in the selected order.
55
47
  after: nil,
56
48
  # Restrict the listing to artifacts produced by this environment.
57
49
  environment_id: nil,
58
- # The maximum number of artifacts to return, between 1 and 100.
50
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
59
51
  limit: nil,
60
- # Sort by creation time and ID. Defaults to descending.
52
+ # The order in which resources are returned. Defaults to `desc`.
61
53
  order: nil,
62
54
  request_options: {}
63
55
  )
@@ -44,6 +44,7 @@ module OpenAI
44
44
  agent_id: String,
45
45
  input: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::Input::Variants),
46
46
  metadata: T.nilable(T::Hash[Symbol, String]),
47
+ spend_control: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::SpendControl::OrHash),
47
48
  vault_ids: T.nilable(T::Array[String]),
48
49
  stream: T.noreturn,
49
50
  request_options: OpenAI::RequestOptions::OrHash
@@ -67,6 +68,9 @@ module OpenAI
67
68
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
68
69
  # characters. Omission or null defaults to an empty map.
69
70
  metadata: nil,
71
+ # Optional spending limit in USD cents. Omission or null creates an unlimited
72
+ # session.
73
+ spend_control: nil,
70
74
  # The IDs of vaults made available to the session.
71
75
  vault_ids: nil,
72
76
  # There is no need to provide `stream:`. Instead, use `#create_streaming` or
@@ -95,6 +99,7 @@ module OpenAI
95
99
  output_type: T.nilable(T.class_of(OpenAI::Helpers::StructuredOutput::BaseModel)),
96
100
  input: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::Input::Variants),
97
101
  metadata: T.nilable(T::Hash[Symbol, String]),
102
+ spend_control: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::SpendControl::OrHash),
98
103
  vault_ids: T.nilable(T::Array[String]),
99
104
  stream: T.noreturn,
100
105
  request_options: OpenAI::RequestOptions::OrHash
@@ -120,6 +125,9 @@ module OpenAI
120
125
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
121
126
  # characters. Omission or null defaults to an empty map.
122
127
  metadata: nil,
128
+ # Optional spending limit in USD cents. Omission or null creates an unlimited
129
+ # session.
130
+ spend_control: nil,
123
131
  # The IDs of vaults made available to the session.
124
132
  vault_ids: nil,
125
133
  # There is no need to provide `stream:`. Instead, use `#create_streaming` or
@@ -151,6 +159,7 @@ module OpenAI
151
159
  session_id: String,
152
160
  agent: OpenAI::Beta::Agents::SessionUpdateParams::Agent::OrHash,
153
161
  metadata: T.nilable(T::Hash[Symbol, String]),
162
+ spend_control: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::SpendControl::OrHash),
154
163
  request_options: OpenAI::RequestOptions::OrHash
155
164
  )
156
165
  .returns(OpenAI::Beta::AgentSession)
@@ -164,6 +173,9 @@ module OpenAI
164
173
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
165
174
  # characters.
166
175
  metadata: nil,
176
+ # Omit to retain the limit; null or a null limit removes it without resetting
177
+ # spend.
178
+ spend_control: nil,
167
179
  request_options: {}
168
180
  )
169
181
  end
@@ -175,7 +187,7 @@ module OpenAI
175
187
  params(
176
188
  after: String,
177
189
  agent_id: String,
178
- limit: T.nilable(Integer),
190
+ limit: Integer,
179
191
  order: OpenAI::Beta::Agents::SessionListParams::Order::OrSymbol,
180
192
  request_options: OpenAI::RequestOptions::OrHash
181
193
  )
@@ -187,10 +199,9 @@ module OpenAI
187
199
  # Only return sessions whose root agent has this ID. Omit to return sessions for
188
200
  # all agents.
189
201
  agent_id: nil,
190
- # The maximum number of resources to return.
202
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
191
203
  limit: nil,
192
- # Sort order by the `created_at` timestamp. Use `asc` for ascending order or
193
- # `desc` for descending order. Defaults to `desc`.
204
+ # The order in which resources are returned. Defaults to `desc`.
194
205
  order: nil,
195
206
  request_options: {}
196
207
  )
@@ -98,7 +98,8 @@ module OpenAI
98
98
  params(
99
99
  vault_id: String,
100
100
  after: String,
101
- limit: T.nilable(Integer),
101
+ limit: Integer,
102
+ metadata: T::Hash[Symbol, String],
102
103
  order: OpenAI::Beta::Agents::Vaults::CredentialListParams::Order::OrSymbol,
103
104
  status: T.any(
104
105
  OpenAI::Beta::Agents::VaultStatus::OrSymbol,
@@ -113,11 +114,14 @@ module OpenAI
113
114
  vault_id,
114
115
  # Return resources after this resource ID in the selected order.
115
116
  after: nil,
116
- # The maximum number of resources to return. Defaults to 20. Values are clamped
117
- # between 1 and 100.
117
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
118
118
  limit: nil,
119
- # Sort order by the `created_at` timestamp. Use `asc` for ascending order or
120
- # `desc` for descending order. Defaults to `desc`.
119
+ # Exact string matches supplied as `metadata[key]=value`. All supplied pairs must
120
+ # match. Up to 16 pairs, with keys from 1 to 64 characters and values up to 512
121
+ # characters. Filtering is eventually consistent; metadata changes may take time
122
+ # to appear.
123
+ metadata: nil,
124
+ # The order in which resources are returned. Defaults to `desc`.
121
125
  order: nil,
122
126
  # Filter by one status or a list, such as `status=active` or
123
127
  # `status[]=active&status[]=archived`. Both statuses are included by default.
@@ -47,12 +47,38 @@ module OpenAI
47
47
  )
48
48
  end
49
49
 
50
+ # Updates the name or metadata of an active vault. Omitted fields remain
51
+ # unchanged. See
52
+ # [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).
53
+ sig {
54
+ params(
55
+ vault_id: String,
56
+ metadata: T::Hash[Symbol, String],
57
+ name: T.nilable(String),
58
+ request_options: OpenAI::RequestOptions::OrHash
59
+ )
60
+ .returns(OpenAI::Beta::Agents::Vault)
61
+ }
62
+ def update(
63
+ # The ID of the vault.
64
+ vault_id,
65
+ # Replaces all metadata. Omit to leave unchanged, or pass {} to clear it. Up to 16
66
+ # string key-value pairs, with keys up to 64 and values up to 512 characters.
67
+ metadata: nil,
68
+ # A replacement name. Omit to leave unchanged, or pass null to clear it. The name
69
+ # is trimmed before storage. It must contain 1 to 256 UTF-8 bytes after trimming.
70
+ name: nil,
71
+ request_options: {}
72
+ )
73
+ end
74
+
50
75
  # Lists vaults using ID-based pagination. See
51
76
  # [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).
52
77
  sig {
53
78
  params(
54
79
  after: String,
55
- limit: T.nilable(Integer),
80
+ limit: Integer,
81
+ metadata: T::Hash[Symbol, String],
56
82
  order: OpenAI::Beta::Agents::VaultListParams::Order::OrSymbol,
57
83
  status: T.any(
58
84
  OpenAI::Beta::Agents::VaultStatus::OrSymbol,
@@ -65,11 +91,14 @@ module OpenAI
65
91
  def list(
66
92
  # Return resources after this resource ID in the selected order.
67
93
  after: nil,
68
- # The maximum number of resources to return. Defaults to 20. Values are clamped
69
- # between 1 and 100.
94
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
70
95
  limit: nil,
71
- # Sort order by the `created_at` timestamp. Use `asc` for ascending order or
72
- # `desc` for descending order. Defaults to `desc`.
96
+ # Exact string matches supplied as `metadata[key]=value`. All supplied pairs must
97
+ # match. Up to 16 pairs, with keys from 1 to 64 characters and values up to 512
98
+ # characters. Filtering is eventually consistent; metadata changes may take time
99
+ # to appear.
100
+ metadata: nil,
101
+ # The order in which resources are returned. Defaults to `desc`.
73
102
  order: nil,
74
103
  # Filter by one status or a list, such as `status=active` or
75
104
  # `status[]=active&status[]=archived`. Both statuses are included by default.
@@ -65,7 +65,8 @@ module OpenAI
65
65
  # Configuration for generated text. Defaults to the `text` format and medium
66
66
  # verbosity.
67
67
  text: nil,
68
- # Tools available to the agent. Defaults to an empty list.
68
+ # Tools available to the agent. Defaults to an empty list. The tool list must fit
69
+ # within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
69
70
  tools: nil,
70
71
  request_options: {}
71
72
  )
@@ -133,7 +134,8 @@ module OpenAI
133
134
  service_tier: nil,
134
135
  # Configuration for text generated by the agent.
135
136
  text: nil,
136
- # Tools available to the agent.
137
+ # Replaces the tool list. Omit to leave it unchanged, or pass null to clear it.
138
+ # The replacement must fit within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
137
139
  tools: nil,
138
140
  request_options: {}
139
141
  )
@@ -144,7 +146,7 @@ module OpenAI
144
146
  sig {
145
147
  params(
146
148
  after: String,
147
- limit: T.nilable(Integer),
149
+ limit: Integer,
148
150
  order: OpenAI::Beta::AgentListParams::Order::OrSymbol,
149
151
  request_options: OpenAI::RequestOptions::OrHash
150
152
  )
@@ -153,7 +155,7 @@ module OpenAI
153
155
  def list(
154
156
  # Return resources after this resource ID in the selected order.
155
157
  after: nil,
156
- # The maximum number of resources to return.
158
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
157
159
  limit: nil,
158
160
  # The order in which resources are returned. Defaults to `desc`.
159
161
  order: nil,
@@ -222,7 +222,7 @@ module OpenAI
222
222
  reasoning: nil,
223
223
  # Body param: A stable identifier used to help detect users of your application
224
224
  # that may be violating OpenAI's usage policies. The IDs should be a string that
225
- # uniquely identifies each user, with a maximum length of 64 characters. We
225
+ # uniquely identifies each user, with a maximum length of 128 characters. We
226
226
  # recommend hashing their username or email address, in order to avoid sending us
227
227
  # any identifying information.
228
228
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -544,7 +544,7 @@ module OpenAI
544
544
  reasoning: nil,
545
545
  # Body param: A stable identifier used to help detect users of your application
546
546
  # that may be violating OpenAI's usage policies. The IDs should be a string that
547
- # uniquely identifies each user, with a maximum length of 64 characters. We
547
+ # uniquely identifies each user, with a maximum length of 128 characters. We
548
548
  # recommend hashing their username or email address, in order to avoid sending us
549
549
  # any identifying information.
550
550
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -36,7 +36,7 @@ module OpenAI
36
36
  #
37
37
  # Returns a chat completion object, or a streamed sequence of chat completion
38
38
  # chunk objects if the request is streamed.
39
- sig do
39
+ sig {
40
40
  params(
41
41
  messages: T::Array[
42
42
  T.any(
@@ -72,10 +72,12 @@ module OpenAI
72
72
  prompt_cache_retention: T.nilable(OpenAI::Chat::CompletionCreateParams::PromptCacheRetention::OrSymbol),
73
73
  reasoning_effort: T.nilable(OpenAI::ReasoningEffort::OrSymbol),
74
74
  response_format: T.any(
75
- OpenAI::ResponseFormatText::OrHash,
76
- OpenAI::ResponseFormatJSONSchema::OrHash,
77
- OpenAI::StructuredOutput::JsonSchemaConverter,
78
- OpenAI::ResponseFormatJSONObject::OrHash
75
+ T.any(
76
+ OpenAI::ResponseFormatText::OrHash,
77
+ OpenAI::ResponseFormatJSONSchema::OrHash,
78
+ OpenAI::ResponseFormatJSONObject::OrHash
79
+ ),
80
+ OpenAI::StructuredOutput::JsonSchemaConverter
79
81
  ),
80
82
  safety_identifier: T.nilable(String),
81
83
  seed: T.nilable(Integer),
@@ -92,9 +94,8 @@ module OpenAI
92
94
  ),
93
95
  tools: T::Array[
94
96
  T.any(
95
- OpenAI::StructuredOutput::JsonSchemaConverter,
96
- OpenAI::Chat::ChatCompletionFunctionTool::OrHash,
97
- OpenAI::Chat::ChatCompletionCustomTool::OrHash
97
+ T.any(OpenAI::Chat::ChatCompletionFunctionTool::OrHash, OpenAI::Chat::ChatCompletionCustomTool::OrHash),
98
+ OpenAI::StructuredOutput::JsonSchemaConverter
98
99
  )
99
100
  ],
100
101
  top_logprobs: T.nilable(Integer),
@@ -106,7 +107,7 @@ module OpenAI
106
107
  request_options: OpenAI::RequestOptions::OrHash
107
108
  )
108
109
  .returns(OpenAI::Chat::ChatCompletion)
109
- end
110
+ }
110
111
  def create(
111
112
  # A list of messages comprising the conversation so far. Depending on the
112
113
  # [model](https://developers.openai.com/api/docs/models) you use, different
@@ -263,7 +264,7 @@ module OpenAI
263
264
  response_format: nil,
264
265
  # A stable identifier used to help detect users of your application that may be
265
266
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
266
- # identifies each user, with a maximum length of 64 characters. We recommend
267
+ # identifies each user, with a maximum length of 128 characters. We recommend
267
268
  # hashing their username or email address, in order to avoid sending us any
268
269
  # identifying information.
269
270
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -386,7 +387,7 @@ module OpenAI
386
387
  #
387
388
  # Returns a chat completion object, or a streamed sequence of chat completion
388
389
  # chunk objects if the request is streamed.
389
- sig do
390
+ sig {
390
391
  params(
391
392
  messages: T::Array[
392
393
  T.any(
@@ -451,7 +452,7 @@ module OpenAI
451
452
  request_options: OpenAI::RequestOptions::OrHash
452
453
  )
453
454
  .returns(OpenAI::Internal::Stream[OpenAI::Chat::ChatCompletionChunk])
454
- end
455
+ }
455
456
  def stream_raw(
456
457
  # A list of messages comprising the conversation so far. Depending on the
457
458
  # [model](https://developers.openai.com/api/docs/models) you use, different
@@ -608,7 +609,7 @@ module OpenAI
608
609
  response_format: nil,
609
610
  # A stable identifier used to help detect users of your application that may be
610
611
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
611
- # identifies each user, with a maximum length of 64 characters. We recommend
612
+ # identifies each user, with a maximum length of 128 characters. We recommend
612
613
  # hashing their username or email address, in order to avoid sending us any
613
614
  # identifying information.
614
615
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -711,13 +712,11 @@ module OpenAI
711
712
 
712
713
  # Get a stored chat completion. Only Chat Completions that have been created with
713
714
  # the `store` parameter set to `true` will be returned.
714
- sig do
715
- params(
716
- completion_id: String,
717
- request_options: OpenAI::RequestOptions::OrHash
715
+ sig {
716
+ params(completion_id: String, request_options: OpenAI::RequestOptions::OrHash).returns(
717
+ OpenAI::Chat::ChatCompletion
718
718
  )
719
- .returns(OpenAI::Chat::ChatCompletion)
720
- end
719
+ }
721
720
  def retrieve(
722
721
  # The ID of the chat completion to retrieve.
723
722
  completion_id,
@@ -728,14 +727,14 @@ module OpenAI
728
727
  # Modify a stored chat completion. Only Chat Completions that have been created
729
728
  # with the `store` parameter set to `true` can be modified. Currently, the only
730
729
  # supported modification is to update the `metadata` field.
731
- sig do
730
+ sig {
732
731
  params(
733
732
  completion_id: String,
734
733
  metadata: T.nilable(T::Hash[Symbol, String]),
735
734
  request_options: OpenAI::RequestOptions::OrHash
736
735
  )
737
736
  .returns(OpenAI::Chat::ChatCompletion)
738
- end
737
+ }
739
738
  def update(
740
739
  # The ID of the chat completion to update.
741
740
  completion_id,
@@ -752,7 +751,7 @@ module OpenAI
752
751
 
753
752
  # List stored Chat Completions. Only Chat Completions that have been stored with
754
753
  # the `store` parameter set to `true` will be returned.
755
- sig do
754
+ sig {
756
755
  params(
757
756
  after: String,
758
757
  limit: Integer,
@@ -762,7 +761,7 @@ module OpenAI
762
761
  request_options: OpenAI::RequestOptions::OrHash
763
762
  )
764
763
  .returns(OpenAI::Internal::CursorPage[OpenAI::Chat::ChatCompletion])
765
- end
764
+ }
766
765
  def list(
767
766
  # Identifier for the last chat completion from the previous pagination request.
768
767
  after: nil,
@@ -783,13 +782,11 @@ module OpenAI
783
782
 
784
783
  # Delete a stored chat completion. Only Chat Completions that have been created
785
784
  # with the `store` parameter set to `true` can be deleted.
786
- sig do
787
- params(
788
- completion_id: String,
789
- request_options: OpenAI::RequestOptions::OrHash
785
+ sig {
786
+ params(completion_id: String, request_options: OpenAI::RequestOptions::OrHash).returns(
787
+ OpenAI::Chat::ChatCompletionDeleted
790
788
  )
791
- .returns(OpenAI::Chat::ChatCompletionDeleted)
792
- end
789
+ }
793
790
  def delete(
794
791
  # The ID of the chat completion to delete.
795
792
  completion_id,