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
@@ -27,7 +27,19 @@ module OpenAI
27
27
  # @return [OpenAI::Models::VideoCreateError::Misalignment, nil]
28
28
  optional :misalignment, -> { OpenAI::VideoCreateError::Misalignment }
29
29
 
30
- # @!method initialize(code:, message:, headers: nil, misalignment: nil)
30
+ # @!attribute param
31
+ # The request parameter associated with the error, or null if none was recorded.
32
+ #
33
+ # @return [String, nil]
34
+ optional :param, String, nil?: true
35
+
36
+ # @!attribute type
37
+ # The original error type, or null if it was not recorded.
38
+ #
39
+ # @return [String, nil]
40
+ optional :type, String, nil?: true
41
+
42
+ # @!method initialize(code:, message:, headers: nil, misalignment: nil, param: nil, type: nil)
31
43
  # An error that occurred while generating the response.
32
44
  #
33
45
  # @param code [String]
@@ -41,6 +53,12 @@ module OpenAI
41
53
  # any.
42
54
  #
43
55
  # @param misalignment [OpenAI::Models::VideoCreateError::Misalignment]
56
+ #
57
+ # @param param [String, nil]
58
+ # The request parameter associated with the error, or null if none was recorded.
59
+ #
60
+ # @param type [String, nil]
61
+ # The original error type, or null if it was not recorded.
44
62
 
45
63
  # @see OpenAI::Models::VideoCreateError#misalignment
46
64
  class Misalignment < OpenAI::Internal::Type::BaseModel
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ class AgentEnvironmentExpiredWebhookEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the event.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ # The Unix timestamp, in seconds, when the event was created.
15
+ #
16
+ # @return [Integer]
17
+ required :created_at, Integer
18
+
19
+ # @!attribute data
20
+ # Identifies the environment whose lifecycle changed.
21
+ #
22
+ # @return [OpenAI::Models::Webhooks::AgentEnvironmentExpiredWebhookEvent::Data]
23
+ required :data, -> { OpenAI::Webhooks::AgentEnvironmentExpiredWebhookEvent::Data }
24
+
25
+ # @!attribute object
26
+ # The object type. Always `event`.
27
+ #
28
+ # @return [Symbol, :event]
29
+ required :object, const: :event
30
+
31
+ # @!attribute type
32
+ # The event type. Always `agent.environment.expired`.
33
+ #
34
+ # @return [Symbol, :"agent.environment.expired"]
35
+ required :type, const: :"agent.environment.expired"
36
+
37
+ # @!method initialize(id:, created_at:, data:, object: :event, type: :"agent.environment.expired")
38
+ # Sent when an agent environment expires and can no longer resume from a snapshot.
39
+ #
40
+ # @param id [String]
41
+ # The unique ID of the event.
42
+ #
43
+ # @param created_at [Integer]
44
+ # The Unix timestamp, in seconds, when the event was created.
45
+ #
46
+ # @param data [OpenAI::Models::Webhooks::AgentEnvironmentExpiredWebhookEvent::Data]
47
+ # Identifies the environment whose lifecycle changed.
48
+ #
49
+ # @param object [Symbol, :event]
50
+ # The object type. Always `event`.
51
+ #
52
+ # @param type [Symbol, :"agent.environment.expired"]
53
+ # The event type. Always `agent.environment.expired`.
54
+
55
+ # @see OpenAI::Models::Webhooks::AgentEnvironmentExpiredWebhookEvent#data
56
+ class Data < OpenAI::Internal::Type::BaseModel
57
+ # @!attribute id
58
+ # The ID of the environment.
59
+ #
60
+ # @return [String]
61
+ required :id, String
62
+
63
+ # @!method initialize(id:)
64
+ # Identifies the environment whose lifecycle changed.
65
+ #
66
+ # @param id [String]
67
+ # The ID of the environment.
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ class AgentEnvironmentSuspendedWebhookEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the event.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ # The Unix timestamp, in seconds, when the event was created.
15
+ #
16
+ # @return [Integer]
17
+ required :created_at, Integer
18
+
19
+ # @!attribute data
20
+ # Identifies the environment whose lifecycle changed.
21
+ #
22
+ # @return [OpenAI::Models::Webhooks::AgentEnvironmentSuspendedWebhookEvent::Data]
23
+ required :data, -> { OpenAI::Webhooks::AgentEnvironmentSuspendedWebhookEvent::Data }
24
+
25
+ # @!attribute object
26
+ # The object type. Always `event`.
27
+ #
28
+ # @return [Symbol, :event]
29
+ required :object, const: :event
30
+
31
+ # @!attribute type
32
+ # The event type. Always `agent.environment.suspended`.
33
+ #
34
+ # @return [Symbol, :"agent.environment.suspended"]
35
+ required :type, const: :"agent.environment.suspended"
36
+
37
+ # @!method initialize(id:, created_at:, data:, object: :event, type: :"agent.environment.suspended")
38
+ # Sent when an agent environment is suspended and can resume from a snapshot.
39
+ #
40
+ # @param id [String]
41
+ # The unique ID of the event.
42
+ #
43
+ # @param created_at [Integer]
44
+ # The Unix timestamp, in seconds, when the event was created.
45
+ #
46
+ # @param data [OpenAI::Models::Webhooks::AgentEnvironmentSuspendedWebhookEvent::Data]
47
+ # Identifies the environment whose lifecycle changed.
48
+ #
49
+ # @param object [Symbol, :event]
50
+ # The object type. Always `event`.
51
+ #
52
+ # @param type [Symbol, :"agent.environment.suspended"]
53
+ # The event type. Always `agent.environment.suspended`.
54
+
55
+ # @see OpenAI::Models::Webhooks::AgentEnvironmentSuspendedWebhookEvent#data
56
+ class Data < OpenAI::Internal::Type::BaseModel
57
+ # @!attribute id
58
+ # The ID of the environment.
59
+ #
60
+ # @return [String]
61
+ required :id, String
62
+
63
+ # @!method initialize(id:)
64
+ # Identifies the environment whose lifecycle changed.
65
+ #
66
+ # @param id [String]
67
+ # The ID of the environment.
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -3,19 +3,24 @@
3
3
  module OpenAI
4
4
  module Models
5
5
  module Webhooks
6
- # Sent when setup fails for a prewarmed OpenAI-hosted environment before it is
7
- # attached to a session.
6
+ # Sent when an agent environment expires and can no longer resume from a snapshot.
8
7
  module UnwrapWebhookEvent
9
8
  extend OpenAI::Internal::Type::Union
10
9
 
11
10
  discriminator :type
12
11
 
12
+ # Sent when an agent environment expires and can no longer resume from a snapshot.
13
+ variant :"agent.environment.expired", -> { OpenAI::Webhooks::AgentEnvironmentExpiredWebhookEvent }
14
+
13
15
  # Sent when setup fails for a prewarmed OpenAI-hosted environment before it is attached to a session.
14
16
  variant :"agent.environment.failed", -> { OpenAI::Webhooks::AgentEnvironmentFailedWebhookEvent }
15
17
 
16
18
  # Sent when a prewarmed OpenAI-hosted environment finishes setup before being attached to a session.
17
19
  variant :"agent.environment.ready", -> { OpenAI::Webhooks::AgentEnvironmentReadyWebhookEvent }
18
20
 
21
+ # Sent when an agent environment is suspended and can resume from a snapshot.
22
+ variant :"agent.environment.suspended", -> { OpenAI::Webhooks::AgentEnvironmentSuspendedWebhookEvent }
23
+
19
24
  # Sent when an agent session requires an action. Retrieve the session for action details.
20
25
  variant :"agent.session.action_required", -> { OpenAI::Webhooks::AgentSessionActionRequiredWebhookEvent }
21
26
 
@@ -103,7 +108,7 @@ module OpenAI
103
108
  variant :"safety.warning_issued", -> { OpenAI::Webhooks::SafetyWarningIssuedWebhookEvent }
104
109
 
105
110
  # @!method self.variants
106
- # @return [Array(OpenAI::Models::Webhooks::AgentEnvironmentFailedWebhookEvent, OpenAI::Models::Webhooks::AgentEnvironmentReadyWebhookEvent, OpenAI::Models::Webhooks::AgentSessionActionRequiredWebhookEvent, OpenAI::Models::Webhooks::AgentSessionCreatedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionFailedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionIdleWebhookEvent, OpenAI::Models::Webhooks::AgentSessionInProgressWebhookEvent, OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyDeactivationIssuedWebhookEvent, OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyWarningIssuedWebhookEvent)]
111
+ # @return [Array(OpenAI::Models::Webhooks::AgentEnvironmentExpiredWebhookEvent, OpenAI::Models::Webhooks::AgentEnvironmentFailedWebhookEvent, OpenAI::Models::Webhooks::AgentEnvironmentReadyWebhookEvent, OpenAI::Models::Webhooks::AgentEnvironmentSuspendedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionActionRequiredWebhookEvent, OpenAI::Models::Webhooks::AgentSessionCreatedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionFailedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionIdleWebhookEvent, OpenAI::Models::Webhooks::AgentSessionInProgressWebhookEvent, OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyDeactivationIssuedWebhookEvent, OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyWarningIssuedWebhookEvent)]
107
112
  end
108
113
  end
109
114
  end
@@ -64,6 +64,8 @@ module OpenAI
64
64
  VIDEO_FAILED = :"video.failed"
65
65
  AGENT_ENVIRONMENT_READY = :"agent.environment.ready"
66
66
  AGENT_ENVIRONMENT_FAILED = :"agent.environment.failed"
67
+ AGENT_ENVIRONMENT_SUSPENDED = :"agent.environment.suspended"
68
+ AGENT_ENVIRONMENT_EXPIRED = :"agent.environment.expired"
67
69
  AGENT_SESSION_CREATED = :"agent.session.created"
68
70
  AGENT_SESSION_ACTION_REQUIRED = :"agent.session.action_required"
69
71
  AGENT_SESSION_IN_PROGRESS = :"agent.session.in_progress"
@@ -90,15 +90,6 @@ module OpenAI
90
90
  #
91
91
  # @param object [Symbol, :webhook_endpoint]
92
92
  # The object type, which is always webhook_endpoint.
93
-
94
- # Keep diagnostics safe without changing field access or serialization.
95
- def to_s = deep_to_h.merge(signing_secret: "[REDACTED]").to_s
96
-
97
- def inspect
98
- converted = self.class.recursively_to_h(self, convert: true)
99
- converted[:signing_secret] = "[REDACTED]"
100
- "#<#{self.class}:0x#{object_id.to_s(16)} #{converted}>"
101
- end
102
93
  end
103
94
  end
104
95
  end
@@ -50,6 +50,8 @@ module OpenAI
50
50
  VIDEO_FAILED = :"video.failed"
51
51
  AGENT_ENVIRONMENT_READY = :"agent.environment.ready"
52
52
  AGENT_ENVIRONMENT_FAILED = :"agent.environment.failed"
53
+ AGENT_ENVIRONMENT_SUSPENDED = :"agent.environment.suspended"
54
+ AGENT_ENVIRONMENT_EXPIRED = :"agent.environment.expired"
53
55
  AGENT_SESSION_CREATED = :"agent.session.created"
54
56
  AGENT_SESSION_ACTION_REQUIRED = :"agent.session.action_required"
55
57
  AGENT_SESSION_IN_PROGRESS = :"agent.session.in_progress"
@@ -71,6 +71,8 @@ module OpenAI
71
71
  VIDEO_FAILED = :"video.failed"
72
72
  AGENT_ENVIRONMENT_READY = :"agent.environment.ready"
73
73
  AGENT_ENVIRONMENT_FAILED = :"agent.environment.failed"
74
+ AGENT_ENVIRONMENT_SUSPENDED = :"agent.environment.suspended"
75
+ AGENT_ENVIRONMENT_EXPIRED = :"agent.environment.expired"
74
76
  AGENT_SESSION_CREATED = :"agent.session.created"
75
77
  AGENT_SESSION_ACTION_REQUIRED = :"agent.session.action_required"
76
78
  AGENT_SESSION_IN_PROGRESS = :"agent.session.in_progress"
@@ -10,7 +10,7 @@ module OpenAI
10
10
  # @overload create(project_id:, provider:, request_options: {})
11
11
  #
12
12
  # @param project_id [String]
13
- # @param provider [OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Aws, OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Azure, OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Gcp]
13
+ # @param provider [OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Aws, OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Azure, OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Gcp, OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Oci]
14
14
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
15
15
  #
16
16
  # @return [OpenAI::Models::Admin::Organization::ExternalStorageConfiguration]
@@ -36,6 +36,67 @@ module OpenAI
36
36
  )
37
37
  end
38
38
 
39
+ # Updates the scopes and/or expiration of an existing API key in the project,
40
+ # including a service-account-owned key. Requires permission to write project API
41
+ # keys.
42
+ #
43
+ # Provide at least one of `scopes` or `expires_in_seconds`. Omitted fields stay
44
+ # unchanged; neither field accepts `null`. Both changes are saved together.
45
+ #
46
+ # `scopes` replaces the key's scope restrictions using the same scope identifiers
47
+ # as the dashboard. An empty array means All permissions, subject to the owner's
48
+ # effective access; it does not mean no access. Use `["api.all.read"]` for
49
+ # read-only access or specific scopes such as `["api.files.read"]` for restricted
50
+ # access. This does not change user or service-account roles or grant admin
51
+ # permissions. Scope changes follow the same authentication-cache propagation as
52
+ # dashboard edits.
53
+ #
54
+ # Provide `expires_in_seconds` to set the expiration relative to this request. The
55
+ # value must satisfy the organization's and project's expiry policies. Expired
56
+ # keys cannot be updated. Retrying resets the expiration relative to the new
57
+ # request. The response contains only the redacted key, not its secret.
58
+ #
59
+ # @overload update(api_key_id, project_id:, expires_in_seconds: nil, scopes: nil, request_options: {})
60
+ #
61
+ # @param api_key_id [String]
62
+ # Path param: The ID of the API key.
63
+ #
64
+ # @param project_id [String]
65
+ # Path param: The ID of the project.
66
+ #
67
+ # @param expires_in_seconds [Integer]
68
+ # Body param: Number of seconds from this request until the API key expires. Must
69
+ # comply with the organization and project expiry policies. Expired keys cannot be
70
+ # updated. Retrying resets the expiry relative to the new request. Omit to keep
71
+ # the current expiration.
72
+ #
73
+ # @param scopes [Array<String>]
74
+ # Body param: Replace the API key scope restrictions. Omit to leave scopes
75
+ # unchanged. An empty array removes key restrictions (All permissions), subject to
76
+ # the owner's effective permissions. Use ["api.all.read"] for read-only access.
77
+ # Scopes do not change the owner's roles or grant administrative permissions.
78
+ #
79
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
80
+ #
81
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey]
82
+ #
83
+ # @see OpenAI::Models::Admin::Organization::Projects::APIKeyUpdateParams
84
+ def update(api_key_id, params)
85
+ parsed, options = OpenAI::Admin::Organization::Projects::APIKeyUpdateParams.dump_request(params)
86
+ project_id = parsed.delete(:project_id) do
87
+ raise ArgumentError.new("missing required path argument #{_1}")
88
+ end
89
+
90
+ @client.request(
91
+ method: :post,
92
+ path: ["organization/projects/%1$s/api_keys/%2$s", project_id, api_key_id],
93
+ body: parsed,
94
+ model: OpenAI::Admin::Organization::Projects::ProjectAPIKey,
95
+ security: {admin_api_key_auth: true},
96
+ options: options
97
+ )
98
+ end
99
+
39
100
  # Returns a list of API keys in the project.
40
101
  #
41
102
  # @overload list(project_id, after: nil, limit: nil, owner_project_access: nil, request_options: {})
@@ -298,6 +298,73 @@ module OpenAI
298
298
  )
299
299
  end
300
300
 
301
+ # Get Decisions API usage details for the organization.
302
+ #
303
+ # @overload decisions(start_time:, api_key_ids: nil, batch: nil, bucket_width: nil, end_time: nil, group_by: nil, limit: nil, models: nil, page: nil, project_ids: nil, user_ids: nil, request_options: {})
304
+ #
305
+ # @param start_time [Integer]
306
+ # Start time (Unix seconds) of the query time range, inclusive.
307
+ #
308
+ # @param api_key_ids [Array<String>, nil]
309
+ # Return only usage for these API keys.
310
+ #
311
+ # @param batch [Boolean, nil]
312
+ # If `true`, return batch jobs only. If `false`, return non-batch jobs only. By
313
+ # default, return both.
314
+ #
315
+ # @param bucket_width [Symbol, OpenAI::Models::Admin::Organization::UsageDecisionsParams::BucketWidth, nil]
316
+ # Width of each time bucket in response. Currently `1m`, `1h` and `1d` are
317
+ # supported, default to `1d`.
318
+ #
319
+ # @param end_time [Integer, nil]
320
+ # End time (Unix seconds) of the query time range, exclusive.
321
+ #
322
+ # @param group_by [Array<Symbol, OpenAI::Models::Admin::Organization::UsageDecisionsParams::GroupBy>, nil]
323
+ # Group the usage data by the specified fields. Support fields include
324
+ # `project_id`, `user_id`, `api_key_id`, `model`, `batch`, `service_tier`,
325
+ # `api_source` or any combination of them. When grouped by `api_source`, results
326
+ # use `agents_api` for attributed Agents API activity and `unlabeled` for all
327
+ # other activity. Without source grouping, `api_source` is null.
328
+ #
329
+ # @param limit [Integer, nil]
330
+ # Specifies the number of buckets to return.
331
+ #
332
+ # - `bucket_width=1d`: default: 7, max: 31
333
+ # - `bucket_width=1h`: default: 24, max: 168
334
+ # - `bucket_width=1m`: default: 60, max: 1440
335
+ #
336
+ # @param models [Array<String>, nil]
337
+ # Return only usage for these models.
338
+ #
339
+ # @param page [String, nil]
340
+ # A cursor for use in pagination. Corresponding to the `next_page` field from the
341
+ # previous response.
342
+ #
343
+ # @param project_ids [Array<String>, nil]
344
+ # Return only usage for these projects.
345
+ #
346
+ # @param user_ids [Array<String>, nil]
347
+ # Return only usage for these users.
348
+ #
349
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
350
+ #
351
+ # @return [OpenAI::Models::Admin::Organization::UsageDecisionsResponse]
352
+ #
353
+ # @see OpenAI::Models::Admin::Organization::UsageDecisionsParams
354
+ def decisions(params)
355
+ parsed, options = OpenAI::Admin::Organization::UsageDecisionsParams.dump_request(params)
356
+ # Nil optional filters mean unset; empty query values fail backend parsing.
357
+ query = OpenAI::Internal::Util.encode_query_params(parsed.compact)
358
+ @client.request(
359
+ method: :get,
360
+ path: "organization/usage/decisions",
361
+ query: query,
362
+ model: OpenAI::Models::Admin::Organization::UsageDecisionsResponse,
363
+ security: {admin_api_key_auth: true},
364
+ options: options
365
+ )
366
+ end
367
+
301
368
  # Get embeddings usage details for the organization.
302
369
  #
303
370
  # @overload embeddings(start_time:, api_key_ids: nil, bucket_width: nil, end_time: nil, group_by: nil, limit: nil, models: nil, page: nil, project_ids: nil, user_ids: nil, request_options: {})
@@ -26,7 +26,8 @@ module OpenAI
26
26
  # object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
27
27
  # voices are available in the
28
28
  # [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
29
- # Custom voices must be created from audio samples.
29
+ # Custom voices must be created from audio samples. Voices created from text
30
+ # prompts are supported only in Live.
30
31
  #
31
32
  # @param instructions [String]
32
33
  # Control the voice of your generated audio with additional instructions. Does not
@@ -5,21 +5,21 @@ module OpenAI
5
5
  class Audio
6
6
  # Turn audio into text or text into audio.
7
7
  class Voices
8
- # Create a custom voice you can use for audio output (for example, in
9
- # Text-to-Speech and the Realtime API). This requires an audio sample and a
10
- # previously uploaded consent recording.
8
+ # Creates a voice from a text prompt or from a consent recording and an audio
9
+ # sample.
11
10
  #
12
- # Send `name`, `audio_sample`, and the `consent` recording ID as multipart form
13
- # data. The optional `type` defaults to `audio_sample`.
11
+ # For prompt-based creation, send `type: "prompt"` with a `name` and `prompt` as
12
+ # JSON or multipart form data. For creation from an audio sample, send
13
+ # `type: "audio_sample"` with a `name`, `audio_sample`, and `consent` recording ID
14
+ # as multipart form data. The type defaults to `audio_sample` when omitted.
14
15
  #
15
- # Returns the saved voice's metadata. See the
16
- # [custom voices guide](https://developers.openai.com/api/docs/guides/text-to-speech#custom-voices)
17
- # for requirements and best practices. Custom voices are limited to eligible
18
- # customers.
16
+ # Returns the saved voice's metadata. Voices created from text prompts are
17
+ # supported only in Live, not in Realtime or the speech endpoint. The response
18
+ # does not include preview audio.
19
19
  #
20
20
  # @overload create(body:, request_options: {})
21
21
  #
22
- # @param body [OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample]
22
+ # @param body [OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt]
23
23
  # Creates a voice from a consent recording and an audio sample. Requires
24
24
  # multipart/form-data.
25
25
  #
@@ -8,37 +8,9 @@ module OpenAI
8
8
  class Agents
9
9
  class Environments
10
10
  class Files
11
- # Upload selected local files for a new hosted environment (beta).
12
- # @return [OpenAI::Helpers::Beta::Agents::PreparedFiles]
13
- def prepare(files, request_options: {})
14
- OpenAI::Helpers::Beta::Agents::FilePreparation
15
- .new(client: @client, environment_files: self)
16
- .prepare(files, request_options: request_options)
17
- end
18
-
19
- # Upload an explicitly selected directory snapshot (beta).
20
- # @return [OpenAI::Helpers::Beta::Agents::PreparedFiles]
21
- def prepare_directory(directory, destination:, include:, request_options: {})
22
- OpenAI::Helpers::Beta::Agents::FilePreparation
23
- .new(client: @client, environment_files: self)
24
- .prepare_directory(
25
- directory,
26
- destination: destination,
27
- include: include,
28
- request_options: request_options
29
- )
30
- end
31
-
32
- # Upload and stage a local file in an existing environment (beta).
33
- # @return [OpenAI::Helpers::Beta::Agents::PreparedFiles]
34
- def upload(environment_id, file:, path:, request_options: {})
35
- OpenAI::Helpers::Beta::Agents::FilePreparation
36
- .new(client: @client, environment_files: self)
37
- .upload(environment_id, file: file, path: path, request_options: request_options)
38
- end
39
-
40
- # Copies inline bytes or a Files API file into a connected execution environment.
41
- # See
11
+ # Copies inline bytes or a Files API file into a connected execution environment,
12
+ # replacing an existing regular file at the same path. Upload between turns and
13
+ # wait for success before starting the next turn. See
42
14
  # [environment files](https://developers.openai.com/api/docs/guides/agents-api/environments/files).
43
15
  #
44
16
  # @overload create(environment_id, hosted_environment_file_param:, request_options: {})
@@ -83,13 +83,13 @@ module OpenAI
83
83
  # @overload list(after: nil, limit: nil, order: nil, type: nil, request_options: {})
84
84
  #
85
85
  # @param after [String]
86
- # Return environments after this environment ID in the selected order.
86
+ # Return resources after this resource ID in the selected order.
87
87
  #
88
88
  # @param limit [Integer]
89
- # The maximum number of environments to return, between 1 and 100. Defaults to 20.
89
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
90
90
  #
91
91
  # @param order [Symbol, OpenAI::Models::Beta::Agents::EnvironmentListParams::Order]
92
- # The order in which environments are returned. Defaults to `desc`.
92
+ # The order in which resources are returned. Defaults to `desc`.
93
93
  #
94
94
  # @param type [Symbol, OpenAI::Models::Beta::Agents::EnvironmentListParams::Type]
95
95
  # The hosting type to list. Defaults to `openai_hosted`.
@@ -8,12 +8,6 @@ module OpenAI
8
8
  class Agents
9
9
  class Sessions
10
10
  class Artifacts
11
- # Access artifacts from exactly this completed turn (beta).
12
- # @return [OpenAI::Helpers::Beta::Agents::ResultArtifacts]
13
- def for_result(result)
14
- OpenAI::Helpers::Beta::Agents::ResultArtifacts.new(artifacts: self, client: @client, result: result)
15
- end
16
-
17
11
  # Retrieves immutable metadata for one durable session artifact. See
18
12
  # [session artifacts](https://developers.openai.com/api/docs/guides/agents-api/environments/files#openai-hosted-artifacts).
19
13
  #
@@ -54,17 +48,17 @@ module OpenAI
54
48
  # @param session_id [String]
55
49
  # The ID of the session.
56
50
  #
57
- # @param after [String, nil]
58
- # Return artifacts after this immutable artifact ID.
51
+ # @param after [String]
52
+ # Return resources after this resource ID in the selected order.
59
53
  #
60
54
  # @param environment_id [String, nil]
61
55
  # Restrict the listing to artifacts produced by this environment.
62
56
  #
63
- # @param limit [Integer, nil]
64
- # The maximum number of artifacts to return, between 1 and 100.
57
+ # @param limit [Integer]
58
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
65
59
  #
66
60
  # @param order [Symbol, OpenAI::Models::Beta::Agents::Sessions::ArtifactListParams::Order]
67
- # Sort by creation time and ID. Defaults to descending.
61
+ # The order in which resources are returned. Defaults to `desc`.
68
62
  #
69
63
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
70
64
  #
@@ -57,7 +57,7 @@ module OpenAI
57
57
  #
58
58
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
59
59
  #
60
- # @return [OpenAI::Internal::Stream<OpenAI::Models::Beta::AgentSessionErrorEvent, OpenAI::Models::Beta::AgentSessionEnvironmentReadyEvent, OpenAI::Models::Beta::AgentSessionEnvironmentResetEvent, OpenAI::Models::Beta::AgentOutputCommandExecutionOutputDeltaEvent, OpenAI::Models::Beta::AgentSessionCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnInProgressEvent, OpenAI::Models::Beta::AgentSessionTurnCompletedEvent, OpenAI::Models::Beta::AgentSessionTurnFailedEvent, OpenAI::Models::Beta::AgentSessionTurnCancelledEvent, OpenAI::Models::Beta::AgentSessionTurnItemAddedEvent, OpenAI::Models::Beta::AgentSessionIdleEvent, OpenAI::Models::Beta::AgentSessionInProgressEvent, OpenAI::Models::Beta::AgentSessionRequiresActionEvent, OpenAI::Models::Beta::AgentSessionFailedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentPendingEvent, OpenAI::Models::Beta::AgentSessionEnvironmentConnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentDisconnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentFailedEvent, OpenAI::Models::Beta::AgentSessionSubagentCreatedEvent, OpenAI::Models::Beta::AgentSessionSubagentActiveEvent, OpenAI::Models::Beta::AgentSessionSubagentClosedEvent, OpenAI::Models::Beta::AgentSessionTurnItemDoneEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDoneEvent>]
60
+ # @return [OpenAI::Internal::Stream<OpenAI::Models::Beta::AgentSessionErrorEvent, OpenAI::Models::Beta::AgentSessionEnvironmentReadyEvent, OpenAI::Models::Beta::AgentSessionEnvironmentSuspendedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentExpiredEvent, OpenAI::Models::Beta::AgentSessionEnvironmentResetEvent, OpenAI::Models::Beta::AgentOutputCommandExecutionOutputDeltaEvent, OpenAI::Models::Beta::AgentSessionCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnInProgressEvent, OpenAI::Models::Beta::AgentSessionTurnCompletedEvent, OpenAI::Models::Beta::AgentSessionTurnFailedEvent, OpenAI::Models::Beta::AgentSessionTurnCancelledEvent, OpenAI::Models::Beta::AgentSessionTurnItemAddedEvent, OpenAI::Models::Beta::AgentSessionIdleEvent, OpenAI::Models::Beta::AgentSessionInProgressEvent, OpenAI::Models::Beta::AgentSessionRequiresActionEvent, OpenAI::Models::Beta::AgentSessionFailedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentPendingEvent, OpenAI::Models::Beta::AgentSessionEnvironmentConnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentDisconnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentFailedEvent, OpenAI::Models::Beta::AgentSessionSubagentCreatedEvent, OpenAI::Models::Beta::AgentSessionSubagentActiveEvent, OpenAI::Models::Beta::AgentSessionSubagentClosedEvent, OpenAI::Models::Beta::AgentSessionTurnItemDoneEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDoneEvent>]
61
61
  #
62
62
  # @see OpenAI::Models::Beta::Agents::Sessions::EventStreamParams
63
63
  def stream_streaming(session_id, params = {})