openai 0.103.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 (395) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +81 -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_update_params.rb +4 -2
  49. data/lib/openai/models/beta/agents/environment_list_params.rb +7 -7
  50. data/lib/openai/models/beta/agents/session_create_params.rb +39 -3
  51. data/lib/openai/models/beta/agents/session_list_params.rb +7 -10
  52. data/lib/openai/models/beta/agents/session_update_params.rb +33 -1
  53. data/lib/openai/models/beta/agents/sessions/artifact_list_params.rb +11 -11
  54. data/lib/openai/models/beta/agents/vault_list_params.rb +23 -13
  55. data/lib/openai/models/beta/agents/vault_status_filter.rb +1 -3
  56. data/lib/openai/models/beta/agents/vault_update_params.rb +47 -0
  57. data/lib/openai/models/beta/agents/vaults/credential_list_params.rb +23 -13
  58. data/lib/openai/models/beta/beta_response.rb +23 -2
  59. data/lib/openai/models/beta/beta_response_error.rb +19 -1
  60. data/lib/openai/models/beta/beta_response_input_item.rb +107 -1
  61. data/lib/openai/models/beta/beta_response_item.rb +107 -1
  62. data/lib/openai/models/beta/beta_response_output_item.rb +107 -1
  63. data/lib/openai/models/beta/beta_responses_client_event.rb +23 -2
  64. data/lib/openai/models/beta/response_compact_params.rb +21 -0
  65. data/lib/openai/models/beta/response_create_params.rb +23 -2
  66. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  67. data/lib/openai/models/chat/chat_completion_audio_param.rb +3 -3
  68. data/lib/openai/models/chat/chat_completion_message.rb +0 -8
  69. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +0 -8
  70. data/lib/openai/models/chat/completion_create_params.rb +5 -12
  71. data/lib/openai/models/chat_model.rb +21 -0
  72. data/lib/openai/models/conversations/conversation_item.rb +107 -1
  73. data/lib/openai/models/decision.rb +17 -2
  74. data/lib/openai/models/decision_create_params.rb +29 -12
  75. data/lib/openai/models/decision_input_image.rb +4 -3
  76. data/lib/openai/models/decision_input_message.rb +4 -4
  77. data/lib/openai/models/decision_input_part.rb +3 -2
  78. data/lib/openai/models/image_edit_completed_event.rb +1 -2
  79. data/lib/openai/models/image_edit_partial_image_event.rb +1 -2
  80. data/lib/openai/models/image_gen_completed_event.rb +1 -2
  81. data/lib/openai/models/image_gen_partial_image_event.rb +1 -2
  82. data/lib/openai/models/images_response.rb +1 -2
  83. data/lib/openai/models/live/built_in_voice.rb +1 -0
  84. data/lib/openai/models/live/client_event.rb +14 -2
  85. data/lib/openai/models/live/decision_create_event.rb +26 -0
  86. data/lib/openai/models/live/decision_event.rb +117 -0
  87. data/lib/openai/models/live/decision_item_create_event.rb +194 -0
  88. data/lib/openai/models/live/decision_item_created_event.rb +202 -0
  89. data/lib/openai/models/live/decision_item_delete_event.rb +38 -0
  90. data/lib/openai/models/live/decision_item_deleted_event.rb +46 -0
  91. data/lib/openai/models/live/decision_trigger.rb +244 -0
  92. data/lib/openai/models/live/decisions_delegation_config.rb +201 -0
  93. data/lib/openai/models/live/decisions_delegation_update_config.rb +208 -0
  94. data/lib/openai/models/live/delegation_created_event.rb +10 -10
  95. data/lib/openai/models/live/fork_client_event.rb +14 -2
  96. data/lib/openai/models/live/fork_server_event.rb +17 -2
  97. data/lib/openai/models/live/media_session_config.rb +47 -11
  98. data/lib/openai/models/live/output_audio_fixture_play_event.rb +48 -0
  99. data/lib/openai/models/live/output_audio_fixture_played_event.rb +42 -0
  100. data/lib/openai/models/live/output_audio_fixture_playing_event.rb +41 -0
  101. data/lib/openai/models/live/server_event.rb +17 -2
  102. data/lib/openai/models/live/session_accept_params.rb +47 -11
  103. data/lib/openai/models/live/session_config.rb +47 -11
  104. data/lib/openai/models/live/session_resource.rb +47 -11
  105. data/lib/openai/models/live/session_update_config.rb +38 -6
  106. data/lib/openai/models/live/session_update_event.rb +8 -8
  107. data/lib/openai/models/live/sideband_client_event.rb +57 -0
  108. data/lib/openai/models/live/sideband_server_event.rb +78 -0
  109. data/lib/openai/models/realtime/realtime_audio_config_output.rb +6 -3
  110. data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +6 -3
  111. data/lib/openai/models/realtime/realtime_response_status.rb +10 -1
  112. data/lib/openai/models/response_format_json_schema.rb +1 -1
  113. data/lib/openai/models/responses/function_tool.rb +8 -6
  114. data/lib/openai/models/responses/response.rb +2 -23
  115. data/lib/openai/models/responses/response_compact_params.rb +21 -0
  116. data/lib/openai/models/responses/response_create_params.rb +3 -6
  117. data/lib/openai/models/responses/response_error.rb +19 -1
  118. data/lib/openai/models/responses/response_format_text_config.rb +0 -4
  119. data/lib/openai/models/responses/response_function_tool_call.rb +0 -8
  120. data/lib/openai/models/responses/response_input_item.rb +107 -1
  121. data/lib/openai/models/responses/response_item.rb +107 -1
  122. data/lib/openai/models/responses/response_output_item.rb +107 -1
  123. data/lib/openai/models/responses/response_output_text.rb +0 -8
  124. data/lib/openai/models/responses/responses_client_event.rb +2 -2
  125. data/lib/openai/models/safety/safety_alert.rb +12 -1
  126. data/lib/openai/models/video_create_error.rb +19 -1
  127. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -4
  128. data/lib/openai/models/webhooks/webhook_endpoint_with_secret.rb +0 -9
  129. data/lib/openai/resources/admin/organization/external_storage.rb +1 -1
  130. data/lib/openai/resources/admin/organization/projects/api_keys.rb +61 -0
  131. data/lib/openai/resources/admin/organization/usage.rb +67 -0
  132. data/lib/openai/resources/audio/speech.rb +2 -1
  133. data/lib/openai/resources/audio/voices.rb +10 -10
  134. data/lib/openai/resources/beta/agents/environments/files.rb +3 -31
  135. data/lib/openai/resources/beta/agents/environments.rb +3 -3
  136. data/lib/openai/resources/beta/agents/sessions/artifacts.rb +5 -11
  137. data/lib/openai/resources/beta/agents/sessions.rb +20 -56
  138. data/lib/openai/resources/beta/agents/vaults/credentials.rb +10 -6
  139. data/lib/openai/resources/beta/agents/vaults.rb +45 -6
  140. data/lib/openai/resources/beta/agents.rb +6 -4
  141. data/lib/openai/resources/beta/responses.rb +2 -2
  142. data/lib/openai/resources/chat/completions.rb +11 -37
  143. data/lib/openai/resources/decisions.rb +9 -15
  144. data/lib/openai/resources/files.rb +0 -39
  145. data/lib/openai/resources/live/forks.rb +19 -0
  146. data/lib/openai/resources/live/sideband.rb +19 -0
  147. data/lib/openai/resources/live.rb +19 -0
  148. data/lib/openai/resources/realtime/translations.rb +19 -0
  149. data/lib/openai/resources/realtime.rb +19 -0
  150. data/lib/openai/resources/responses.rb +44 -95
  151. data/lib/openai/resources/vector_stores/file_batches.rb +0 -178
  152. data/lib/openai/resources/vector_stores/files.rb +0 -188
  153. data/lib/openai/resources/webhooks.rb +13 -29
  154. data/lib/openai/version.rb +1 -1
  155. data/lib/openai.rb +31 -0
  156. data/rbi/openai/client.rbi +0 -103
  157. data/rbi/openai/helpers/admin/organization/projects/api_keys.rbi +25 -0
  158. data/rbi/openai/helpers/beta/agents/artifacts.rbi +25 -0
  159. data/rbi/openai/helpers/beta/agents/files.rbi +48 -0
  160. data/rbi/openai/helpers/client_runtime.rbi +108 -0
  161. data/rbi/openai/helpers/files.rbi +25 -0
  162. data/rbi/openai/helpers/models/chat/parsed.rbi +21 -0
  163. data/rbi/openai/helpers/models/responses/parsed.rbi +19 -0
  164. data/rbi/openai/helpers/models/responses/response.rbi +15 -0
  165. data/rbi/openai/helpers/streaming/response_stream.rbi +301 -0
  166. data/rbi/openai/helpers/vector_stores/file_batches.rbi +102 -0
  167. data/rbi/openai/helpers/vector_stores/files.rbi +122 -0
  168. data/rbi/openai/helpers/websocket.rbi +82 -0
  169. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +6 -3
  170. data/rbi/openai/models/admin/organization/external_storage_configuration.rbi +4 -2
  171. data/rbi/openai/models/admin/organization/external_storage_create_params.rbi +63 -4
  172. data/rbi/openai/models/admin/organization/oci_external_storage_provider.rbi +71 -0
  173. data/rbi/openai/models/admin/organization/project_residency.rbi +12 -0
  174. data/rbi/openai/models/admin/organization/projects/api_key_update_params.rbi +110 -0
  175. data/rbi/openai/models/admin/organization/projects/api_key_update_scopes_params.rbi +72 -0
  176. data/rbi/openai/models/admin/organization/usage_decisions_params.rbi +229 -0
  177. data/rbi/openai/models/admin/organization/usage_decisions_response.rbi +479 -0
  178. data/rbi/openai/models/audio/speech_create_params.rbi +6 -3
  179. data/rbi/openai/models/audio/voice.rbi +21 -2
  180. data/rbi/openai/models/audio/voice_create_params.rbi +149 -4
  181. data/rbi/openai/models/beta/agent_create_params.rbi +4 -2
  182. data/rbi/openai/models/beta/agent_list_params.rbi +8 -5
  183. data/rbi/openai/models/beta/agent_session.rbi +64 -1
  184. data/rbi/openai/models/beta/agent_update_params.rbi +4 -2
  185. data/rbi/openai/models/beta/agents/environment_list_params.rbi +7 -7
  186. data/rbi/openai/models/beta/agents/session_create_params.rbi +62 -2
  187. data/rbi/openai/models/beta/agents/session_list_params.rbi +11 -11
  188. data/rbi/openai/models/beta/agents/session_update_params.rbi +56 -0
  189. data/rbi/openai/models/beta/agents/sessions/artifact_list_params.rbi +19 -13
  190. data/rbi/openai/models/beta/agents/vault_list_params.rbi +30 -13
  191. data/rbi/openai/models/beta/agents/vault_status_filter.rbi +1 -3
  192. data/rbi/openai/models/beta/agents/vault_update_params.rbi +87 -0
  193. data/rbi/openai/models/beta/agents/vaults/credential_list_params.rbi +30 -13
  194. data/rbi/openai/models/beta/beta_response.rbi +2 -2
  195. data/rbi/openai/models/beta/beta_response_error.rbi +24 -3
  196. data/rbi/openai/models/beta/beta_response_input_item.rbi +191 -0
  197. data/rbi/openai/models/beta/beta_response_item.rbi +189 -0
  198. data/rbi/openai/models/beta/beta_response_output_item.rbi +191 -0
  199. data/rbi/openai/models/beta/beta_responses_client_event.rbi +2 -2
  200. data/rbi/openai/models/beta/response_create_params.rbi +2 -2
  201. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  202. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +3 -3
  203. data/rbi/openai/models/chat/chat_completion_message.rbi +0 -4
  204. data/rbi/openai/models/chat/chat_completion_message_function_tool_call.rbi +0 -4
  205. data/rbi/openai/models/chat/completion_create_params.rbi +63 -78
  206. data/rbi/openai/models/conversations/conversation_item.rbi +191 -0
  207. data/rbi/openai/models/decision.rbi +14 -1
  208. data/rbi/openai/models/decision_create_params.rbi +23 -12
  209. data/rbi/openai/models/decision_input_image.rbi +4 -3
  210. data/rbi/openai/models/decision_input_message.rbi +4 -4
  211. data/rbi/openai/models/decision_input_part.rbi +2 -1
  212. data/rbi/openai/models/image_edit_completed_event.rbi +1 -0
  213. data/rbi/openai/models/image_edit_partial_image_event.rbi +1 -0
  214. data/rbi/openai/models/image_gen_completed_event.rbi +1 -0
  215. data/rbi/openai/models/image_gen_partial_image_event.rbi +1 -0
  216. data/rbi/openai/models/images_response.rbi +1 -0
  217. data/rbi/openai/models/live/built_in_voice.rbi +1 -0
  218. data/rbi/openai/models/live/client_event.rbi +4 -0
  219. data/rbi/openai/models/live/decision_create_event.rbi +55 -0
  220. data/rbi/openai/models/live/decision_event.rbi +185 -0
  221. data/rbi/openai/models/live/decision_item_create_event.rbi +338 -0
  222. data/rbi/openai/models/live/decision_item_created_event.rbi +354 -0
  223. data/rbi/openai/models/live/decision_item_delete_event.rbi +66 -0
  224. data/rbi/openai/models/live/decision_item_deleted_event.rbi +77 -0
  225. data/rbi/openai/models/live/decision_trigger.rbi +465 -0
  226. data/rbi/openai/models/live/decisions_delegation_config.rbi +393 -0
  227. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +412 -0
  228. data/rbi/openai/models/live/delegation_created_event.rbi +8 -10
  229. data/rbi/openai/models/live/fork_client_event.rbi +4 -0
  230. data/rbi/openai/models/live/fork_server_event.rbi +5 -0
  231. data/rbi/openai/models/live/media_session_config.rbi +95 -14
  232. data/rbi/openai/models/live/output_audio_fixture_play_event.rbi +76 -0
  233. data/rbi/openai/models/live/output_audio_fixture_played_event.rbi +73 -0
  234. data/rbi/openai/models/live/output_audio_fixture_playing_event.rbi +72 -0
  235. data/rbi/openai/models/live/server_event.rbi +5 -0
  236. data/rbi/openai/models/live/session_accept_params.rbi +88 -12
  237. data/rbi/openai/models/live/session_config.rbi +100 -14
  238. data/rbi/openai/models/live/session_resource.rbi +81 -10
  239. data/rbi/openai/models/live/session_update_config.rbi +86 -9
  240. data/rbi/openai/models/live/session_update_event.rbi +8 -8
  241. data/rbi/openai/models/live/sideband_client_event.rbi +40 -0
  242. data/rbi/openai/models/live/sideband_server_event.rbi +47 -0
  243. data/rbi/openai/models/realtime/realtime_audio_config_output.rbi +6 -3
  244. data/rbi/openai/models/realtime/realtime_response_create_audio_output.rbi +6 -3
  245. data/rbi/openai/models/realtime/realtime_response_status.rbi +13 -1
  246. data/rbi/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rbi +1 -1
  247. data/rbi/openai/models/realtime/realtime_translation_output_audio_delta_event.rbi +3 -3
  248. data/rbi/openai/models/realtime/realtime_translation_session_close_event.rbi +1 -1
  249. data/rbi/openai/models/realtime/realtime_translation_session_update_event.rbi +5 -1
  250. data/rbi/openai/models/responses/response.rbi +2 -7
  251. data/rbi/openai/models/responses/response_create_params.rbi +5 -9
  252. data/rbi/openai/models/responses/response_error.rbi +24 -3
  253. data/rbi/openai/models/responses/response_function_tool_call.rbi +0 -4
  254. data/rbi/openai/models/responses/response_function_web_search.rbi +21 -17
  255. data/rbi/openai/models/responses/response_input_item.rbi +191 -0
  256. data/rbi/openai/models/responses/response_item.rbi +189 -0
  257. data/rbi/openai/models/responses/response_output_item.rbi +191 -0
  258. data/rbi/openai/models/responses/response_output_text.rbi +0 -4
  259. data/rbi/openai/models/responses/responses_client_event.rbi +2 -2
  260. data/rbi/openai/models/safety/safety_alert.rbi +13 -1
  261. data/rbi/openai/models/video_create_error.rbi +24 -3
  262. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -1
  263. data/rbi/openai/resources/admin/organization/external_storage.rbi +2 -1
  264. data/rbi/openai/resources/admin/organization/projects/api_keys.rbi +48 -0
  265. data/rbi/openai/resources/admin/organization/usage.rbi +56 -0
  266. data/rbi/openai/resources/audio/speech.rbi +2 -1
  267. data/rbi/openai/resources/audio/voices.rbi +13 -10
  268. data/rbi/openai/resources/beta/agents/environments/files.rbi +3 -33
  269. data/rbi/openai/resources/beta/agents/environments.rbi +3 -3
  270. data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +5 -13
  271. data/rbi/openai/resources/beta/agents/sessions.rbi +15 -4
  272. data/rbi/openai/resources/beta/agents/vaults/credentials.rbi +9 -5
  273. data/rbi/openai/resources/beta/agents/vaults.rbi +34 -5
  274. data/rbi/openai/resources/beta/agents.rbi +6 -4
  275. data/rbi/openai/resources/beta/responses.rbi +2 -2
  276. data/rbi/openai/resources/chat/completions.rbi +26 -29
  277. data/rbi/openai/resources/decisions.rbi +9 -15
  278. data/rbi/openai/resources/files.rbi +0 -18
  279. data/rbi/openai/resources/live/forks.rbi +17 -0
  280. data/rbi/openai/resources/live/sideband.rbi +17 -0
  281. data/rbi/openai/resources/live.rbi +17 -0
  282. data/rbi/openai/resources/realtime/translations.rbi +17 -0
  283. data/rbi/openai/resources/realtime.rbi +17 -0
  284. data/rbi/openai/resources/responses.rbi +41 -333
  285. data/rbi/openai/resources/vector_stores/file_batches.rbi +0 -93
  286. data/rbi/openai/resources/vector_stores/files.rbi +0 -113
  287. data/rbi/openai/resources/webhooks.rbi +1 -1
  288. data/sig/openai/client.rbs +0 -50
  289. data/sig/openai/helpers/admin/organization/projects/api_keys.rbs +18 -0
  290. data/sig/openai/helpers/beta/agents/artifacts.rbs +17 -0
  291. data/sig/openai/helpers/beta/agents/files.rbs +30 -0
  292. data/sig/openai/helpers/client_runtime.rbs +53 -0
  293. data/sig/openai/helpers/files.rbs +12 -0
  294. data/sig/openai/helpers/models/responses/response.rbs +9 -0
  295. data/sig/openai/helpers/streaming/response_stream.rbs +37 -0
  296. data/sig/openai/helpers/vector_stores/file_batches.rbs +38 -0
  297. data/sig/openai/helpers/vector_stores/files.rbs +43 -0
  298. data/sig/openai/helpers/websocket.rbs +40 -0
  299. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +1 -0
  300. data/sig/openai/models/admin/organization/external_storage_configuration.rbs +1 -0
  301. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +33 -0
  302. data/sig/openai/models/admin/organization/oci_external_storage_provider.rbs +34 -0
  303. data/sig/openai/models/admin/organization/project_residency.rbs +6 -0
  304. data/sig/openai/models/admin/organization/projects/api_key_update_params.rbs +77 -0
  305. data/sig/openai/models/admin/organization/projects/api_key_update_scopes_params.rbs +38 -0
  306. data/sig/openai/models/admin/organization/usage_decisions_params.rbs +170 -0
  307. data/sig/openai/models/admin/organization/usage_decisions_response.rbs +319 -0
  308. data/sig/openai/models/audio/speech_create_params.rbs +4 -2
  309. data/sig/openai/models/audio/voice.rbs +21 -3
  310. data/sig/openai/models/audio/voice_create_params.rbs +90 -1
  311. data/sig/openai/models/beta/agent_create_params.rbs +4 -2
  312. data/sig/openai/models/beta/agent_list_params.rbs +9 -6
  313. data/sig/openai/models/beta/agent_session.rbs +36 -2
  314. data/sig/openai/models/beta/agent_update_params.rbs +4 -2
  315. data/sig/openai/models/beta/agents/environment_list_params.rbs +9 -9
  316. data/sig/openai/models/beta/agents/session_create_params.rbs +29 -2
  317. data/sig/openai/models/beta/agents/session_list_params.rbs +12 -12
  318. data/sig/openai/models/beta/agents/session_update_params.rbs +23 -0
  319. data/sig/openai/models/beta/agents/sessions/artifact_list_params.rbs +21 -15
  320. data/sig/openai/models/beta/agents/vault_list_params.rbs +32 -14
  321. data/sig/openai/models/beta/agents/vault_update_params.rbs +54 -0
  322. data/sig/openai/models/beta/agents/vaults/credential_list_params.rbs +32 -14
  323. data/sig/openai/models/beta/beta_response.rbs +2 -2
  324. data/sig/openai/models/beta/beta_response_error.rbs +19 -3
  325. data/sig/openai/models/beta/beta_response_input_item.rbs +110 -0
  326. data/sig/openai/models/beta/beta_response_item.rbs +110 -0
  327. data/sig/openai/models/beta/beta_response_output_item.rbs +110 -0
  328. data/sig/openai/models/beta/beta_responses_client_event.rbs +2 -2
  329. data/sig/openai/models/beta/response_create_params.rbs +2 -2
  330. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  331. data/sig/openai/models/chat/chat_completion_audio_param.rbs +2 -2
  332. data/sig/openai/models/chat/completion_create_params.rbs +2 -2
  333. data/sig/openai/models/conversations/conversation_item.rbs +110 -0
  334. data/sig/openai/models/decision.rbs +13 -0
  335. data/sig/openai/models/decision_create_params.rbs +19 -8
  336. data/sig/openai/models/decision_input_image.rbs +2 -2
  337. data/sig/openai/models/decision_input_message.rbs +2 -2
  338. data/sig/openai/models/live/built_in_voice.rbs +2 -0
  339. data/sig/openai/models/live/client_event.rbs +4 -0
  340. data/sig/openai/models/live/decision_create_event.rbs +18 -0
  341. data/sig/openai/models/live/decision_event.rbs +102 -0
  342. data/sig/openai/models/live/decision_item_create_event.rbs +183 -0
  343. data/sig/openai/models/live/decision_item_created_event.rbs +195 -0
  344. data/sig/openai/models/live/decision_item_delete_event.rbs +33 -0
  345. data/sig/openai/models/live/decision_item_deleted_event.rbs +49 -0
  346. data/sig/openai/models/live/decision_trigger.rbs +234 -0
  347. data/sig/openai/models/live/decisions_delegation_config.rbs +195 -0
  348. data/sig/openai/models/live/decisions_delegation_update_config.rbs +202 -0
  349. data/sig/openai/models/live/delegation_created_event.rbs +6 -7
  350. data/sig/openai/models/live/fork_client_event.rbs +4 -0
  351. data/sig/openai/models/live/fork_server_event.rbs +5 -0
  352. data/sig/openai/models/live/media_session_config.rbs +58 -11
  353. data/sig/openai/models/live/output_audio_fixture_play_event.rbs +42 -0
  354. data/sig/openai/models/live/output_audio_fixture_played_event.rbs +44 -0
  355. data/sig/openai/models/live/output_audio_fixture_playing_event.rbs +44 -0
  356. data/sig/openai/models/live/server_event.rbs +5 -0
  357. data/sig/openai/models/live/session_accept_params.rbs +57 -10
  358. data/sig/openai/models/live/session_config.rbs +58 -11
  359. data/sig/openai/models/live/session_resource.rbs +57 -10
  360. data/sig/openai/models/live/session_update_config.rbs +54 -3
  361. data/sig/openai/models/live/session_update_event.rbs +6 -6
  362. data/sig/openai/models/live/sideband_client_event.rbs +26 -0
  363. data/sig/openai/models/live/sideband_server_event.rbs +33 -0
  364. data/sig/openai/models/realtime/realtime_audio_config_output.rbs +6 -3
  365. data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +6 -3
  366. data/sig/openai/models/realtime/realtime_response_status.rbs +15 -3
  367. data/sig/openai/models/responses/response.rbs +2 -4
  368. data/sig/openai/models/responses/response_create_params.rbs +2 -2
  369. data/sig/openai/models/responses/response_error.rbs +19 -3
  370. data/sig/openai/models/responses/response_input_item.rbs +110 -0
  371. data/sig/openai/models/responses/response_item.rbs +110 -0
  372. data/sig/openai/models/responses/response_output_item.rbs +110 -0
  373. data/sig/openai/models/responses/responses_client_event.rbs +2 -2
  374. data/sig/openai/models/safety/safety_alert.rbs +12 -2
  375. data/sig/openai/models/video_create_error.rbs +19 -3
  376. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -1
  377. data/sig/openai/resources/admin/organization/projects/api_keys.rbs +8 -0
  378. data/sig/openai/resources/admin/organization/usage.rbs +15 -0
  379. data/sig/openai/resources/beta/agents/environments/files.rbs +0 -17
  380. data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +2 -6
  381. data/sig/openai/resources/beta/agents/sessions.rbs +4 -1
  382. data/sig/openai/resources/beta/agents/vaults/credentials.rbs +2 -1
  383. data/sig/openai/resources/beta/agents/vaults.rbs +9 -1
  384. data/sig/openai/resources/beta/agents.rbs +1 -1
  385. data/sig/openai/resources/files.rbs +0 -7
  386. data/sig/openai/resources/live/forks.rbs +8 -0
  387. data/sig/openai/resources/live/sideband.rbs +8 -0
  388. data/sig/openai/resources/live.rbs +7 -0
  389. data/sig/openai/resources/realtime/translations.rbs +7 -0
  390. data/sig/openai/resources/realtime.rbs +7 -0
  391. data/sig/openai/resources/responses.rbs +7 -31
  392. data/sig/openai/resources/vector_stores/file_batches.rbs +0 -31
  393. data/sig/openai/resources/vector_stores/files.rbs +0 -36
  394. data/sig/openai/resources/webhooks.rbs +1 -1
  395. metadata +89 -1
@@ -357,6 +357,13 @@ module OpenAI
357
357
  }
358
358
  attr_accessor :background
359
359
 
360
+ # Details of a moderation failure, when available.
361
+ sig { returns(T.nilable(OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error)) }
362
+ attr_reader :error
363
+
364
+ sig { params(error: OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::OrHash).void }
365
+ attr_writer :error
366
+
360
367
  # The output format used for generation.
361
368
  sig {
362
369
  returns(T.nilable(OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OutputFormat::TaggedSymbol))
@@ -390,6 +397,8 @@ module OpenAI
390
397
 
391
398
  background: T.nilable(OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Background::OrSymbol),
392
399
 
400
+ error: OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::OrHash,
401
+
393
402
  output_format: T.nilable(
394
403
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OutputFormat::OrSymbol
395
404
  ),
@@ -421,6 +430,9 @@ module OpenAI
421
430
  # The background setting used for generation.
422
431
  background: nil,
423
432
 
433
+ # Details of a moderation failure, when available.
434
+ error: nil,
435
+
424
436
  # The output format used for generation.
425
437
  output_format: nil,
426
438
 
@@ -451,6 +463,7 @@ module OpenAI
451
463
  background: T.nilable(
452
464
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Background::TaggedSymbol
453
465
  ),
466
+ error: OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error,
454
467
  output_format: T.nilable(
455
468
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OutputFormat::TaggedSymbol
456
469
  ),
@@ -548,6 +561,184 @@ module OpenAI
548
561
  end
549
562
  end
550
563
 
564
+ class Error < OpenAI::Internal::Type::BaseModel
565
+ OrHash = T.type_alias do
566
+ T.any(
567
+ OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error,
568
+ OpenAI::Internal::AnyHash
569
+ )
570
+ end
571
+
572
+ # The error code.
573
+ sig { returns(T.nilable(String)) }
574
+ attr_accessor :code
575
+
576
+ # A description of the error.
577
+ sig { returns(String) }
578
+ attr_accessor :message
579
+
580
+ # The related request parameter.
581
+ sig { returns(T.nilable(String)) }
582
+ attr_accessor :param
583
+
584
+ # The error type.
585
+ sig { returns(String) }
586
+ attr_accessor :type
587
+
588
+ # Public details for a `moderation_blocked` error, when available.
589
+ sig {
590
+ returns(T.nilable(OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails))
591
+ }
592
+ attr_reader :moderation_details
593
+
594
+ sig {
595
+ params(
596
+ moderation_details: OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails::OrHash
597
+ )
598
+ .void
599
+ }
600
+ attr_writer :moderation_details
601
+
602
+ # Details of a moderation failure, when available.
603
+ sig do
604
+ params(
605
+
606
+ code: T.nilable(String),
607
+
608
+ message: String,
609
+
610
+ param: T.nilable(String),
611
+
612
+ type: String,
613
+
614
+ moderation_details: OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails::OrHash
615
+ )
616
+ .returns(T.attached_class)
617
+ end
618
+ def self.new(
619
+
620
+ # The error code.
621
+ code:,
622
+
623
+ # A description of the error.
624
+ message:,
625
+
626
+ # The related request parameter.
627
+ param:,
628
+
629
+ # The error type.
630
+ type:,
631
+
632
+ # Public details for a `moderation_blocked` error, when available.
633
+
634
+ moderation_details: nil
635
+ )
636
+ end
637
+
638
+ sig do
639
+ override.returns(
640
+ {
641
+ code: T.nilable(String),
642
+ message: String,
643
+ param: T.nilable(String),
644
+ type: String,
645
+ moderation_details: OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails
646
+ }
647
+ )
648
+ end
649
+ def to_hash
650
+ end
651
+
652
+ class ModerationDetails < OpenAI::Internal::Type::BaseModel
653
+ OrHash = T.type_alias do
654
+ T.any(
655
+ OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails,
656
+ OpenAI::Internal::AnyHash
657
+ )
658
+ end
659
+
660
+ # Public moderation categories. New category values may be added over time.
661
+ sig { returns(T::Array[String]) }
662
+ attr_accessor :categories
663
+
664
+ # The stage where moderation blocked the image generation call.
665
+ sig {
666
+ returns(
667
+ OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails::ModerationStage::TaggedSymbol
668
+ )
669
+ }
670
+ attr_accessor :moderation_stage
671
+
672
+ # Public details for a `moderation_blocked` error, when available.
673
+ sig do
674
+ params(
675
+
676
+ categories: T::Array[String],
677
+
678
+ moderation_stage: OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails::ModerationStage::OrSymbol
679
+ )
680
+ .returns(T.attached_class)
681
+ end
682
+ def self.new(
683
+
684
+ # Public moderation categories. New category values may be added over time.
685
+ categories:,
686
+
687
+ # The stage where moderation blocked the image generation call.
688
+
689
+ moderation_stage:
690
+ )
691
+ end
692
+
693
+ sig do
694
+ override.returns(
695
+ {
696
+ categories: T::Array[String],
697
+ moderation_stage: OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails::ModerationStage::TaggedSymbol
698
+ }
699
+ )
700
+ end
701
+ def to_hash
702
+ end
703
+
704
+ # The stage where moderation blocked the image generation call.
705
+ module ModerationStage
706
+ extend OpenAI::Internal::Type::Enum
707
+
708
+ TaggedSymbol = T.type_alias {
709
+ T.all(
710
+ Symbol,
711
+ OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails::ModerationStage
712
+ )
713
+ }
714
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
715
+
716
+ INPUT = T.let(
717
+ :input,
718
+ OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails::ModerationStage::TaggedSymbol
719
+ )
720
+ OUTPUT = T.let(
721
+ :output,
722
+ OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails::ModerationStage::TaggedSymbol
723
+ )
724
+ UNKNOWN = T.let(
725
+ :unknown,
726
+ OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails::ModerationStage::TaggedSymbol
727
+ )
728
+
729
+ sig {
730
+ override.returns(
731
+ T::Array[
732
+ OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Error::ModerationDetails::ModerationStage::TaggedSymbol
733
+ ]
734
+ )
735
+ }
736
+ def self.values
737
+ end
738
+ end
739
+ end
740
+ end
741
+
551
742
  # The output format used for generation.
552
743
  module OutputFormat
553
744
  extend OpenAI::Internal::Type::Enum
@@ -33,10 +33,6 @@ module OpenAI
33
33
  sig { returns(String) }
34
34
  attr_accessor :text
35
35
 
36
- # The parsed contents of the output, if JSON schema is specified.
37
- sig { returns(T.anything) }
38
- attr_accessor :parsed
39
-
40
36
  # The type of the output text. Always `output_text`.
41
37
  sig { returns(Symbol) }
42
38
  attr_accessor :type
@@ -231,7 +231,7 @@ module OpenAI
231
231
 
232
232
  # A stable identifier used to help detect users of your application that may be
233
233
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
234
- # identifies each user, with a maximum length of 64 characters. We recommend
234
+ # identifies each user, with a maximum length of 128 characters. We recommend
235
235
  # hashing their username or email address, in order to avoid sending us any
236
236
  # identifying information.
237
237
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -728,7 +728,7 @@ module OpenAI
728
728
 
729
729
  # A stable identifier used to help detect users of your application that may be
730
730
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
731
- # identifies each user, with a maximum length of 64 characters. We recommend
731
+ # identifies each user, with a maximum length of 128 characters. We recommend
732
732
  # hashing their username or email address, in order to avoid sending us any
733
733
  # identifying information.
734
734
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -47,6 +47,11 @@ module OpenAI
47
47
  sig { returns(String) }
48
48
  attr_accessor :response_id
49
49
 
50
+ # A generated explanation, temporarily available for eligible zero data retention
51
+ # alerts. Omitted when unavailable.
52
+ sig { returns(T.nilable(String)) }
53
+ attr_accessor :detailed_explanation
54
+
50
55
  sig do
51
56
  params(
52
57
 
@@ -66,6 +71,8 @@ module OpenAI
66
71
 
67
72
  response_id: String,
68
73
 
74
+ detailed_explanation: T.nilable(String),
75
+
69
76
  object: Symbol
70
77
  )
71
78
  .returns(T.attached_class)
@@ -92,6 +99,10 @@ module OpenAI
92
99
 
93
100
  response_id:,
94
101
 
102
+ # A generated explanation, temporarily available for eligible zero data retention
103
+ # alerts. Omitted when unavailable.
104
+ detailed_explanation: nil,
105
+
95
106
  object: :"safety.alert"
96
107
  )
97
108
  end
@@ -107,7 +118,8 @@ module OpenAI
107
118
  reason: T.nilable(String),
108
119
  request_id: String,
109
120
  request_paused: T::Boolean,
110
- response_id: String
121
+ response_id: String,
122
+ detailed_explanation: T.nilable(String)
111
123
  }
112
124
  )
113
125
  end
@@ -34,6 +34,14 @@ module OpenAI
34
34
  sig { params(misalignment: OpenAI::VideoCreateError::Misalignment::OrHash).void }
35
35
  attr_writer :misalignment
36
36
 
37
+ # The request parameter associated with the error, or null if none was recorded.
38
+ sig { returns(T.nilable(String)) }
39
+ attr_accessor :param
40
+
41
+ # The original error type, or null if it was not recorded.
42
+ sig { returns(T.nilable(String)) }
43
+ attr_accessor :type
44
+
37
45
  # An error that occurred while generating the response.
38
46
  sig do
39
47
  params(
@@ -44,7 +52,11 @@ module OpenAI
44
52
 
45
53
  headers: T::Hash[Symbol, String],
46
54
 
47
- misalignment: OpenAI::VideoCreateError::Misalignment::OrHash
55
+ misalignment: OpenAI::VideoCreateError::Misalignment::OrHash,
56
+
57
+ param: T.nilable(String),
58
+
59
+ type: T.nilable(String)
48
60
  )
49
61
  .returns(T.attached_class)
50
62
  end
@@ -60,7 +72,14 @@ module OpenAI
60
72
  # any.
61
73
  headers: nil,
62
74
 
63
- misalignment: nil
75
+ misalignment: nil,
76
+
77
+ # The request parameter associated with the error, or null if none was recorded.
78
+ param: nil,
79
+
80
+ # The original error type, or null if it was not recorded.
81
+
82
+ type: nil
64
83
  )
65
84
  end
66
85
 
@@ -70,7 +89,9 @@ module OpenAI
70
89
  code: String,
71
90
  message: String,
72
91
  headers: T::Hash[Symbol, String],
73
- misalignment: OpenAI::VideoCreateError::Misalignment
92
+ misalignment: OpenAI::VideoCreateError::Misalignment,
93
+ param: T.nilable(String),
94
+ type: T.nilable(String)
74
95
  }
75
96
  )
76
97
  end
@@ -12,9 +12,9 @@ module OpenAI
12
12
  Variants = T.type_alias do
13
13
  T.any(
14
14
  OpenAI::Webhooks::AgentEnvironmentExpiredWebhookEvent,
15
- OpenAI::Webhooks::AgentEnvironmentSuspendedWebhookEvent,
16
15
  OpenAI::Webhooks::AgentEnvironmentFailedWebhookEvent,
17
16
  OpenAI::Webhooks::AgentEnvironmentReadyWebhookEvent,
17
+ OpenAI::Webhooks::AgentEnvironmentSuspendedWebhookEvent,
18
18
  OpenAI::Webhooks::AgentSessionActionRequiredWebhookEvent,
19
19
  OpenAI::Webhooks::AgentSessionCreatedWebhookEvent,
20
20
  OpenAI::Webhooks::AgentSessionFailedWebhookEvent,
@@ -16,7 +16,8 @@ module OpenAI
16
16
  provider: T.any(
17
17
  OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Aws::OrHash,
18
18
  OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Azure::OrHash,
19
- OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Gcp::OrHash
19
+ OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Gcp::OrHash,
20
+ OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Oci::OrHash
20
21
  ),
21
22
  request_options: OpenAI::RequestOptions::OrHash
22
23
  )
@@ -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
  )