openai 0.20.0 → 0.21.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 (332) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/internal/stream.rb +3 -2
  6. data/lib/openai/models/audio/speech_create_params.rb +6 -0
  7. data/lib/openai/models/chat/chat_completion_audio_param.rb +6 -0
  8. data/lib/openai/models/evals/run_cancel_response.rb +2 -2
  9. data/lib/openai/models/evals/run_create_params.rb +2 -2
  10. data/lib/openai/models/evals/run_create_response.rb +2 -2
  11. data/lib/openai/models/evals/run_list_response.rb +2 -2
  12. data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
  13. data/lib/openai/models/realtime/client_secret_create_params.rb +93 -0
  14. data/lib/openai/models/realtime/client_secret_create_response.rb +300 -0
  15. data/lib/openai/models/realtime/conversation_created_event.rb +70 -0
  16. data/lib/openai/models/realtime/conversation_item.rb +44 -0
  17. data/lib/openai/models/realtime/conversation_item_added.rb +48 -0
  18. data/lib/openai/models/realtime/conversation_item_create_event.rb +57 -0
  19. data/lib/openai/models/realtime/conversation_item_created_event.rb +59 -0
  20. data/lib/openai/models/realtime/conversation_item_delete_event.rb +39 -0
  21. data/lib/openai/models/realtime/conversation_item_deleted_event.rb +38 -0
  22. data/lib/openai/models/realtime/conversation_item_done.rb +48 -0
  23. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +189 -0
  24. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +63 -0
  25. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +96 -0
  26. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +84 -0
  27. data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +40 -0
  28. data/lib/openai/models/realtime/conversation_item_truncate_event.rb +68 -0
  29. data/lib/openai/models/realtime/conversation_item_truncated_event.rb +60 -0
  30. data/lib/openai/models/realtime/conversation_item_with_reference.rb +235 -0
  31. data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +49 -0
  32. data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +29 -0
  33. data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +29 -0
  34. data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +35 -0
  35. data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +51 -0
  36. data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +59 -0
  37. data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +51 -0
  38. data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +52 -0
  39. data/lib/openai/models/realtime/log_prob_properties.rb +39 -0
  40. data/lib/openai/models/realtime/mcp_list_tools_completed.rb +36 -0
  41. data/lib/openai/models/realtime/mcp_list_tools_failed.rb +36 -0
  42. data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +36 -0
  43. data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +32 -0
  44. data/lib/openai/models/realtime/rate_limits_updated_event.rb +91 -0
  45. data/lib/openai/models/realtime/realtime_audio_config.rb +446 -0
  46. data/lib/openai/models/realtime/realtime_client_event.rb +123 -0
  47. data/lib/openai/models/realtime/realtime_client_secret_config.rb +64 -0
  48. data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +118 -0
  49. data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +94 -0
  50. data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +86 -0
  51. data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +118 -0
  52. data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +135 -0
  53. data/lib/openai/models/realtime/realtime_error.rb +55 -0
  54. data/lib/openai/models/realtime/realtime_error_event.rb +38 -0
  55. data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +52 -0
  56. data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +52 -0
  57. data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +84 -0
  58. data/lib/openai/models/realtime/realtime_mcp_protocol_error.rb +29 -0
  59. data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +94 -0
  60. data/lib/openai/models/realtime/realtime_mcp_tool_execution_error.rb +23 -0
  61. data/lib/openai/models/realtime/realtime_mcphttp_error.rb +29 -0
  62. data/lib/openai/models/realtime/realtime_response.rb +259 -0
  63. data/lib/openai/models/realtime/realtime_response_status.rb +103 -0
  64. data/lib/openai/models/realtime/realtime_response_usage.rb +61 -0
  65. data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +36 -0
  66. data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +28 -0
  67. data/lib/openai/models/realtime/realtime_server_event.rb +369 -0
  68. data/lib/openai/models/realtime/realtime_session.rb +696 -0
  69. data/lib/openai/models/realtime/realtime_session_create_request.rb +234 -0
  70. data/lib/openai/models/realtime/realtime_session_create_response.rb +579 -0
  71. data/lib/openai/models/realtime/realtime_tool_choice_config.rb +32 -0
  72. data/lib/openai/models/realtime/realtime_tools_config.rb +11 -0
  73. data/lib/openai/models/realtime/realtime_tools_config_union.rb +379 -0
  74. data/lib/openai/models/realtime/realtime_tracing_config.rb +61 -0
  75. data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +312 -0
  76. data/lib/openai/models/realtime/realtime_truncation.rb +67 -0
  77. data/lib/openai/models/realtime/response_audio_delta_event.rb +68 -0
  78. data/lib/openai/models/realtime/response_audio_done_event.rb +61 -0
  79. data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +68 -0
  80. data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +70 -0
  81. data/lib/openai/models/realtime/response_cancel_event.rb +42 -0
  82. data/lib/openai/models/realtime/response_content_part_added_event.rb +120 -0
  83. data/lib/openai/models/realtime/response_content_part_done_event.rb +120 -0
  84. data/lib/openai/models/realtime/response_create_event.rb +391 -0
  85. data/lib/openai/models/realtime/response_created_event.rb +37 -0
  86. data/lib/openai/models/realtime/response_done_event.rb +38 -0
  87. data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +72 -0
  88. data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +73 -0
  89. data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +68 -0
  90. data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +60 -0
  91. data/lib/openai/models/realtime/response_mcp_call_completed.rb +44 -0
  92. data/lib/openai/models/realtime/response_mcp_call_failed.rb +44 -0
  93. data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +44 -0
  94. data/lib/openai/models/realtime/response_output_item_added_event.rb +52 -0
  95. data/lib/openai/models/realtime/response_output_item_done_event.rb +53 -0
  96. data/lib/openai/models/realtime/response_text_delta_event.rb +68 -0
  97. data/lib/openai/models/realtime/response_text_done_event.rb +69 -0
  98. data/lib/openai/models/realtime/session_created_event.rb +38 -0
  99. data/lib/openai/models/realtime/session_update_event.rb +44 -0
  100. data/lib/openai/models/realtime/session_updated_event.rb +37 -0
  101. data/lib/openai/models/realtime/transcription_session_created.rb +278 -0
  102. data/lib/openai/models/realtime/transcription_session_update.rb +36 -0
  103. data/lib/openai/models/realtime/transcription_session_updated_event.rb +279 -0
  104. data/lib/openai/models/responses/response.rb +6 -3
  105. data/lib/openai/models/responses/response_create_params.rb +6 -3
  106. data/lib/openai/models/responses/tool.rb +3 -156
  107. data/lib/openai/models/responses/web_search_preview_tool.rb +124 -0
  108. data/lib/openai/models/responses/web_search_tool.rb +58 -21
  109. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +119 -0
  110. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
  111. data/lib/openai/models.rb +2 -0
  112. data/lib/openai/resources/realtime/client_secrets.rb +44 -0
  113. data/lib/openai/resources/realtime.rb +18 -0
  114. data/lib/openai/resources/responses.rb +2 -2
  115. data/lib/openai/resources/webhooks.rb +1 -1
  116. data/lib/openai/version.rb +1 -1
  117. data/lib/openai.rb +95 -0
  118. data/rbi/openai/client.rbi +3 -0
  119. data/rbi/openai/models/audio/speech_create_params.rbi +10 -0
  120. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +10 -0
  121. data/rbi/openai/models/evals/run_cancel_response.rbi +4 -4
  122. data/rbi/openai/models/evals/run_create_params.rbi +8 -8
  123. data/rbi/openai/models/evals/run_create_response.rbi +4 -4
  124. data/rbi/openai/models/evals/run_list_response.rbi +4 -4
  125. data/rbi/openai/models/evals/run_retrieve_response.rbi +4 -4
  126. data/rbi/openai/models/realtime/client_secret_create_params.rbi +222 -0
  127. data/rbi/openai/models/realtime/client_secret_create_response.rbi +676 -0
  128. data/rbi/openai/models/realtime/conversation_created_event.rbi +164 -0
  129. data/rbi/openai/models/realtime/conversation_item.rbi +35 -0
  130. data/rbi/openai/models/realtime/conversation_item_added.rbi +105 -0
  131. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +123 -0
  132. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +117 -0
  133. data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +57 -0
  134. data/rbi/openai/models/realtime/conversation_item_deleted_event.rbi +53 -0
  135. data/rbi/openai/models/realtime/conversation_item_done.rbi +105 -0
  136. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +305 -0
  137. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +93 -0
  138. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +158 -0
  139. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbi +107 -0
  140. data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +58 -0
  141. data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +94 -0
  142. data/rbi/openai/models/realtime/conversation_item_truncated_event.rbi +80 -0
  143. data/rbi/openai/models/realtime/conversation_item_with_reference.rbi +549 -0
  144. data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +65 -0
  145. data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +43 -0
  146. data/rbi/openai/models/realtime/input_audio_buffer_cleared_event.rbi +40 -0
  147. data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +49 -0
  148. data/rbi/openai/models/realtime/input_audio_buffer_committed_event.rbi +72 -0
  149. data/rbi/openai/models/realtime/input_audio_buffer_speech_started_event.rbi +82 -0
  150. data/rbi/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbi +73 -0
  151. data/rbi/openai/models/realtime/input_audio_buffer_timeout_triggered.rbi +75 -0
  152. data/rbi/openai/models/realtime/log_prob_properties.rbi +55 -0
  153. data/rbi/openai/models/realtime/mcp_list_tools_completed.rbi +51 -0
  154. data/rbi/openai/models/realtime/mcp_list_tools_failed.rbi +51 -0
  155. data/rbi/openai/models/realtime/mcp_list_tools_in_progress.rbi +51 -0
  156. data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +46 -0
  157. data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +187 -0
  158. data/rbi/openai/models/realtime/realtime_audio_config.rbi +1004 -0
  159. data/rbi/openai/models/realtime/realtime_client_event.rbi +38 -0
  160. data/rbi/openai/models/realtime/realtime_client_secret_config.rbi +147 -0
  161. data/rbi/openai/models/realtime/realtime_conversation_item_assistant_message.rbi +292 -0
  162. data/rbi/openai/models/realtime/realtime_conversation_item_function_call.rbi +199 -0
  163. data/rbi/openai/models/realtime/realtime_conversation_item_function_call_output.rbi +188 -0
  164. data/rbi/openai/models/realtime/realtime_conversation_item_system_message.rbi +292 -0
  165. data/rbi/openai/models/realtime/realtime_conversation_item_user_message.rbi +319 -0
  166. data/rbi/openai/models/realtime/realtime_error.rbi +72 -0
  167. data/rbi/openai/models/realtime/realtime_error_event.rbi +64 -0
  168. data/rbi/openai/models/realtime/realtime_mcp_approval_request.rbi +75 -0
  169. data/rbi/openai/models/realtime/realtime_mcp_approval_response.rbi +75 -0
  170. data/rbi/openai/models/realtime/realtime_mcp_list_tools.rbi +131 -0
  171. data/rbi/openai/models/realtime/realtime_mcp_protocol_error.rbi +40 -0
  172. data/rbi/openai/models/realtime/realtime_mcp_tool_call.rbi +145 -0
  173. data/rbi/openai/models/realtime/realtime_mcp_tool_execution_error.rbi +31 -0
  174. data/rbi/openai/models/realtime/realtime_mcphttp_error.rbi +40 -0
  175. data/rbi/openai/models/realtime/realtime_response.rbi +573 -0
  176. data/rbi/openai/models/realtime/realtime_response_status.rbi +233 -0
  177. data/rbi/openai/models/realtime/realtime_response_usage.rbi +121 -0
  178. data/rbi/openai/models/realtime/realtime_response_usage_input_token_details.rbi +68 -0
  179. data/rbi/openai/models/realtime/realtime_response_usage_output_token_details.rbi +51 -0
  180. data/rbi/openai/models/realtime/realtime_server_event.rbi +311 -0
  181. data/rbi/openai/models/realtime/realtime_session.rbi +1426 -0
  182. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +560 -0
  183. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +1249 -0
  184. data/rbi/openai/models/realtime/realtime_tool_choice_config.rbi +30 -0
  185. data/rbi/openai/models/realtime/realtime_tools_config.rbi +15 -0
  186. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +755 -0
  187. data/rbi/openai/models/realtime/realtime_tracing_config.rbi +95 -0
  188. data/rbi/openai/models/realtime/realtime_transcription_session_create_request.rbi +703 -0
  189. data/rbi/openai/models/realtime/realtime_truncation.rbi +117 -0
  190. data/rbi/openai/models/realtime/response_audio_delta_event.rbi +91 -0
  191. data/rbi/openai/models/realtime/response_audio_done_event.rbi +84 -0
  192. data/rbi/openai/models/realtime/response_audio_transcript_delta_event.rbi +91 -0
  193. data/rbi/openai/models/realtime/response_audio_transcript_done_event.rbi +93 -0
  194. data/rbi/openai/models/realtime/response_cancel_event.rbi +63 -0
  195. data/rbi/openai/models/realtime/response_content_part_added_event.rbi +219 -0
  196. data/rbi/openai/models/realtime/response_content_part_done_event.rbi +219 -0
  197. data/rbi/openai/models/realtime/response_create_event.rbi +863 -0
  198. data/rbi/openai/models/realtime/response_created_event.rbi +65 -0
  199. data/rbi/openai/models/realtime/response_done_event.rbi +66 -0
  200. data/rbi/openai/models/realtime/response_function_call_arguments_delta_event.rbi +91 -0
  201. data/rbi/openai/models/realtime/response_function_call_arguments_done_event.rbi +92 -0
  202. data/rbi/openai/models/realtime/response_mcp_call_arguments_delta.rbi +91 -0
  203. data/rbi/openai/models/realtime/response_mcp_call_arguments_done.rbi +83 -0
  204. data/rbi/openai/models/realtime/response_mcp_call_completed.rbi +67 -0
  205. data/rbi/openai/models/realtime/response_mcp_call_failed.rbi +67 -0
  206. data/rbi/openai/models/realtime/response_mcp_call_in_progress.rbi +67 -0
  207. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +111 -0
  208. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +112 -0
  209. data/rbi/openai/models/realtime/response_text_delta_event.rbi +91 -0
  210. data/rbi/openai/models/realtime/response_text_done_event.rbi +92 -0
  211. data/rbi/openai/models/realtime/session_created_event.rbi +64 -0
  212. data/rbi/openai/models/realtime/session_update_event.rbi +77 -0
  213. data/rbi/openai/models/realtime/session_updated_event.rbi +63 -0
  214. data/rbi/openai/models/realtime/transcription_session_created.rbi +653 -0
  215. data/rbi/openai/models/realtime/transcription_session_update.rbi +74 -0
  216. data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +657 -0
  217. data/rbi/openai/models/responses/response.rbi +10 -4
  218. data/rbi/openai/models/responses/response_create_params.rbi +16 -10
  219. data/rbi/openai/models/responses/tool.rbi +2 -348
  220. data/rbi/openai/models/responses/web_search_preview_tool.rbi +245 -0
  221. data/rbi/openai/models/responses/web_search_tool.rbi +120 -23
  222. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +222 -0
  223. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  224. data/rbi/openai/models.rbi +2 -0
  225. data/rbi/openai/resources/realtime/client_secrets.rbi +38 -0
  226. data/rbi/openai/resources/realtime.rbi +15 -0
  227. data/rbi/openai/resources/responses.rbi +12 -6
  228. data/rbi/openai/resources/webhooks.rbi +1 -0
  229. data/sig/openai/client.rbs +2 -0
  230. data/sig/openai/models/audio/speech_create_params.rbs +4 -0
  231. data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -0
  232. data/sig/openai/models/realtime/client_secret_create_params.rbs +89 -0
  233. data/sig/openai/models/realtime/client_secret_create_response.rbs +292 -0
  234. data/sig/openai/models/realtime/conversation_created_event.rbs +70 -0
  235. data/sig/openai/models/realtime/conversation_item.rbs +22 -0
  236. data/sig/openai/models/realtime/conversation_item_added.rbs +37 -0
  237. data/sig/openai/models/realtime/conversation_item_create_event.rbs +41 -0
  238. data/sig/openai/models/realtime/conversation_item_created_event.rbs +37 -0
  239. data/sig/openai/models/realtime/conversation_item_delete_event.rbs +30 -0
  240. data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +32 -0
  241. data/sig/openai/models/realtime/conversation_item_done.rbs +37 -0
  242. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +136 -0
  243. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +51 -0
  244. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +77 -0
  245. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +62 -0
  246. data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +34 -0
  247. data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +44 -0
  248. data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +42 -0
  249. data/sig/openai/models/realtime/conversation_item_with_reference.rbs +207 -0
  250. data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +30 -0
  251. data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +23 -0
  252. data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +24 -0
  253. data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +23 -0
  254. data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +37 -0
  255. data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +37 -0
  256. data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +37 -0
  257. data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +42 -0
  258. data/sig/openai/models/realtime/log_prob_properties.rbs +28 -0
  259. data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +28 -0
  260. data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +28 -0
  261. data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +32 -0
  262. data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +23 -0
  263. data/sig/openai/models/realtime/rate_limits_updated_event.rbs +85 -0
  264. data/sig/openai/models/realtime/realtime_audio_config.rbs +354 -0
  265. data/sig/openai/models/realtime/realtime_client_event.rbs +25 -0
  266. data/sig/openai/models/realtime/realtime_client_secret_config.rbs +60 -0
  267. data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +117 -0
  268. data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +86 -0
  269. data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +79 -0
  270. data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +117 -0
  271. data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +132 -0
  272. data/sig/openai/models/realtime/realtime_error.rbs +42 -0
  273. data/sig/openai/models/realtime/realtime_error_event.rbs +32 -0
  274. data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +42 -0
  275. data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +42 -0
  276. data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +71 -0
  277. data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +28 -0
  278. data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +68 -0
  279. data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +18 -0
  280. data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +24 -0
  281. data/sig/openai/models/realtime/realtime_response.rbs +210 -0
  282. data/sig/openai/models/realtime/realtime_response_status.rbs +90 -0
  283. data/sig/openai/models/realtime/realtime_response_usage.rbs +56 -0
  284. data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +34 -0
  285. data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +22 -0
  286. data/sig/openai/models/realtime/realtime_server_event.rbs +168 -0
  287. data/sig/openai/models/realtime/realtime_session.rbs +521 -0
  288. data/sig/openai/models/realtime/realtime_session_create_request.rbs +178 -0
  289. data/sig/openai/models/realtime/realtime_session_create_response.rbs +526 -0
  290. data/sig/openai/models/realtime/realtime_tool_choice_config.rbs +16 -0
  291. data/sig/openai/models/realtime/realtime_tools_config.rbs +10 -0
  292. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +280 -0
  293. data/sig/openai/models/realtime/realtime_tracing_config.rbs +43 -0
  294. data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +242 -0
  295. data/sig/openai/models/realtime/realtime_truncation.rbs +53 -0
  296. data/sig/openai/models/realtime/response_audio_delta_event.rbs +52 -0
  297. data/sig/openai/models/realtime/response_audio_done_event.rbs +47 -0
  298. data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +52 -0
  299. data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +52 -0
  300. data/sig/openai/models/realtime/response_cancel_event.rbs +32 -0
  301. data/sig/openai/models/realtime/response_content_part_added_event.rbs +105 -0
  302. data/sig/openai/models/realtime/response_content_part_done_event.rbs +105 -0
  303. data/sig/openai/models/realtime/response_create_event.rbs +281 -0
  304. data/sig/openai/models/realtime/response_created_event.rbs +32 -0
  305. data/sig/openai/models/realtime/response_done_event.rbs +32 -0
  306. data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +52 -0
  307. data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +52 -0
  308. data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +52 -0
  309. data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +47 -0
  310. data/sig/openai/models/realtime/response_mcp_call_completed.rbs +37 -0
  311. data/sig/openai/models/realtime/response_mcp_call_failed.rbs +37 -0
  312. data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +37 -0
  313. data/sig/openai/models/realtime/response_output_item_added_event.rbs +42 -0
  314. data/sig/openai/models/realtime/response_output_item_done_event.rbs +42 -0
  315. data/sig/openai/models/realtime/response_text_delta_event.rbs +52 -0
  316. data/sig/openai/models/realtime/response_text_done_event.rbs +52 -0
  317. data/sig/openai/models/realtime/session_created_event.rbs +32 -0
  318. data/sig/openai/models/realtime/session_update_event.rbs +34 -0
  319. data/sig/openai/models/realtime/session_updated_event.rbs +32 -0
  320. data/sig/openai/models/realtime/transcription_session_created.rbs +282 -0
  321. data/sig/openai/models/realtime/transcription_session_update.rbs +34 -0
  322. data/sig/openai/models/realtime/transcription_session_updated_event.rbs +282 -0
  323. data/sig/openai/models/responses/tool.rbs +1 -121
  324. data/sig/openai/models/responses/web_search_preview_tool.rbs +96 -0
  325. data/sig/openai/models/responses/web_search_tool.rbs +39 -10
  326. data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +90 -0
  327. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  328. data/sig/openai/models.rbs +2 -0
  329. data/sig/openai/resources/realtime/client_secrets.rbs +15 -0
  330. data/sig/openai/resources/realtime.rbs +9 -0
  331. data/sig/openai/resources/webhooks.rbs +1 -0
  332. metadata +287 -2
@@ -0,0 +1,105 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemDone < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::ConversationItemDone,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The unique ID of the server event.
16
+ sig { returns(String) }
17
+ attr_accessor :event_id
18
+
19
+ # A single item within a Realtime conversation.
20
+ sig do
21
+ returns(
22
+ T.any(
23
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage,
24
+ OpenAI::Realtime::RealtimeConversationItemUserMessage,
25
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage,
26
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall,
27
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput,
28
+ OpenAI::Realtime::RealtimeMcpApprovalResponse,
29
+ OpenAI::Realtime::RealtimeMcpListTools,
30
+ OpenAI::Realtime::RealtimeMcpToolCall,
31
+ OpenAI::Realtime::RealtimeMcpApprovalRequest
32
+ )
33
+ )
34
+ end
35
+ attr_accessor :item
36
+
37
+ # The event type, must be `conversation.item.done`.
38
+ sig { returns(Symbol) }
39
+ attr_accessor :type
40
+
41
+ # The ID of the item that precedes this one, if any. This is used to maintain
42
+ # ordering when items are inserted.
43
+ sig { returns(T.nilable(String)) }
44
+ attr_accessor :previous_item_id
45
+
46
+ # Returned when a conversation item is finalized.
47
+ sig do
48
+ params(
49
+ event_id: String,
50
+ item:
51
+ T.any(
52
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage::OrHash,
53
+ OpenAI::Realtime::RealtimeConversationItemUserMessage::OrHash,
54
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage::OrHash,
55
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall::OrHash,
56
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput::OrHash,
57
+ OpenAI::Realtime::RealtimeMcpApprovalResponse::OrHash,
58
+ OpenAI::Realtime::RealtimeMcpListTools::OrHash,
59
+ OpenAI::Realtime::RealtimeMcpToolCall::OrHash,
60
+ OpenAI::Realtime::RealtimeMcpApprovalRequest::OrHash
61
+ ),
62
+ previous_item_id: T.nilable(String),
63
+ type: Symbol
64
+ ).returns(T.attached_class)
65
+ end
66
+ def self.new(
67
+ # The unique ID of the server event.
68
+ event_id:,
69
+ # A single item within a Realtime conversation.
70
+ item:,
71
+ # The ID of the item that precedes this one, if any. This is used to maintain
72
+ # ordering when items are inserted.
73
+ previous_item_id: nil,
74
+ # The event type, must be `conversation.item.done`.
75
+ type: :"conversation.item.done"
76
+ )
77
+ end
78
+
79
+ sig do
80
+ override.returns(
81
+ {
82
+ event_id: String,
83
+ item:
84
+ T.any(
85
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage,
86
+ OpenAI::Realtime::RealtimeConversationItemUserMessage,
87
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage,
88
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall,
89
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput,
90
+ OpenAI::Realtime::RealtimeMcpApprovalResponse,
91
+ OpenAI::Realtime::RealtimeMcpListTools,
92
+ OpenAI::Realtime::RealtimeMcpToolCall,
93
+ OpenAI::Realtime::RealtimeMcpApprovalRequest
94
+ ),
95
+ type: Symbol,
96
+ previous_item_id: T.nilable(String)
97
+ }
98
+ )
99
+ end
100
+ def to_hash
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,305 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemInputAudioTranscriptionCompletedEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The index of the content part containing the audio.
16
+ sig { returns(Integer) }
17
+ attr_accessor :content_index
18
+
19
+ # The unique ID of the server event.
20
+ sig { returns(String) }
21
+ attr_accessor :event_id
22
+
23
+ # The ID of the user message item containing the audio.
24
+ sig { returns(String) }
25
+ attr_accessor :item_id
26
+
27
+ # The transcribed text.
28
+ sig { returns(String) }
29
+ attr_accessor :transcript
30
+
31
+ # The event type, must be `conversation.item.input_audio_transcription.completed`.
32
+ sig { returns(Symbol) }
33
+ attr_accessor :type
34
+
35
+ # Usage statistics for the transcription.
36
+ sig do
37
+ returns(
38
+ T.any(
39
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens,
40
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageDuration
41
+ )
42
+ )
43
+ end
44
+ attr_accessor :usage
45
+
46
+ # The log probabilities of the transcription.
47
+ sig do
48
+ returns(T.nilable(T::Array[OpenAI::Realtime::LogProbProperties]))
49
+ end
50
+ attr_accessor :logprobs
51
+
52
+ # This event is the output of audio transcription for user audio written to the
53
+ # user audio buffer. Transcription begins when the input audio buffer is committed
54
+ # by the client or server (in `server_vad` mode). Transcription runs
55
+ # asynchronously with Response creation, so this event may come before or after
56
+ # the Response events.
57
+ #
58
+ # Realtime API models accept audio natively, and thus input transcription is a
59
+ # separate process run on a separate ASR (Automatic Speech Recognition) model. The
60
+ # transcript may diverge somewhat from the model's interpretation, and should be
61
+ # treated as a rough guide.
62
+ sig do
63
+ params(
64
+ content_index: Integer,
65
+ event_id: String,
66
+ item_id: String,
67
+ transcript: String,
68
+ usage:
69
+ T.any(
70
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens::OrHash,
71
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageDuration::OrHash
72
+ ),
73
+ logprobs:
74
+ T.nilable(T::Array[OpenAI::Realtime::LogProbProperties::OrHash]),
75
+ type: Symbol
76
+ ).returns(T.attached_class)
77
+ end
78
+ def self.new(
79
+ # The index of the content part containing the audio.
80
+ content_index:,
81
+ # The unique ID of the server event.
82
+ event_id:,
83
+ # The ID of the user message item containing the audio.
84
+ item_id:,
85
+ # The transcribed text.
86
+ transcript:,
87
+ # Usage statistics for the transcription.
88
+ usage:,
89
+ # The log probabilities of the transcription.
90
+ logprobs: nil,
91
+ # The event type, must be `conversation.item.input_audio_transcription.completed`.
92
+ type: :"conversation.item.input_audio_transcription.completed"
93
+ )
94
+ end
95
+
96
+ sig do
97
+ override.returns(
98
+ {
99
+ content_index: Integer,
100
+ event_id: String,
101
+ item_id: String,
102
+ transcript: String,
103
+ type: Symbol,
104
+ usage:
105
+ T.any(
106
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens,
107
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageDuration
108
+ ),
109
+ logprobs: T.nilable(T::Array[OpenAI::Realtime::LogProbProperties])
110
+ }
111
+ )
112
+ end
113
+ def to_hash
114
+ end
115
+
116
+ # Usage statistics for the transcription.
117
+ module Usage
118
+ extend OpenAI::Internal::Type::Union
119
+
120
+ Variants =
121
+ T.type_alias do
122
+ T.any(
123
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens,
124
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageDuration
125
+ )
126
+ end
127
+
128
+ class TranscriptTextUsageTokens < OpenAI::Internal::Type::BaseModel
129
+ OrHash =
130
+ T.type_alias do
131
+ T.any(
132
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens,
133
+ OpenAI::Internal::AnyHash
134
+ )
135
+ end
136
+
137
+ # Number of input tokens billed for this request.
138
+ sig { returns(Integer) }
139
+ attr_accessor :input_tokens
140
+
141
+ # Number of output tokens generated.
142
+ sig { returns(Integer) }
143
+ attr_accessor :output_tokens
144
+
145
+ # Total number of tokens used (input + output).
146
+ sig { returns(Integer) }
147
+ attr_accessor :total_tokens
148
+
149
+ # The type of the usage object. Always `tokens` for this variant.
150
+ sig { returns(Symbol) }
151
+ attr_accessor :type
152
+
153
+ # Details about the input tokens billed for this request.
154
+ sig do
155
+ returns(
156
+ T.nilable(
157
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens::InputTokenDetails
158
+ )
159
+ )
160
+ end
161
+ attr_reader :input_token_details
162
+
163
+ sig do
164
+ params(
165
+ input_token_details:
166
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens::InputTokenDetails::OrHash
167
+ ).void
168
+ end
169
+ attr_writer :input_token_details
170
+
171
+ # Usage statistics for models billed by token usage.
172
+ sig do
173
+ params(
174
+ input_tokens: Integer,
175
+ output_tokens: Integer,
176
+ total_tokens: Integer,
177
+ input_token_details:
178
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens::InputTokenDetails::OrHash,
179
+ type: Symbol
180
+ ).returns(T.attached_class)
181
+ end
182
+ def self.new(
183
+ # Number of input tokens billed for this request.
184
+ input_tokens:,
185
+ # Number of output tokens generated.
186
+ output_tokens:,
187
+ # Total number of tokens used (input + output).
188
+ total_tokens:,
189
+ # Details about the input tokens billed for this request.
190
+ input_token_details: nil,
191
+ # The type of the usage object. Always `tokens` for this variant.
192
+ type: :tokens
193
+ )
194
+ end
195
+
196
+ sig do
197
+ override.returns(
198
+ {
199
+ input_tokens: Integer,
200
+ output_tokens: Integer,
201
+ total_tokens: Integer,
202
+ type: Symbol,
203
+ input_token_details:
204
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens::InputTokenDetails
205
+ }
206
+ )
207
+ end
208
+ def to_hash
209
+ end
210
+
211
+ class InputTokenDetails < OpenAI::Internal::Type::BaseModel
212
+ OrHash =
213
+ T.type_alias do
214
+ T.any(
215
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens::InputTokenDetails,
216
+ OpenAI::Internal::AnyHash
217
+ )
218
+ end
219
+
220
+ # Number of audio tokens billed for this request.
221
+ sig { returns(T.nilable(Integer)) }
222
+ attr_reader :audio_tokens
223
+
224
+ sig { params(audio_tokens: Integer).void }
225
+ attr_writer :audio_tokens
226
+
227
+ # Number of text tokens billed for this request.
228
+ sig { returns(T.nilable(Integer)) }
229
+ attr_reader :text_tokens
230
+
231
+ sig { params(text_tokens: Integer).void }
232
+ attr_writer :text_tokens
233
+
234
+ # Details about the input tokens billed for this request.
235
+ sig do
236
+ params(audio_tokens: Integer, text_tokens: Integer).returns(
237
+ T.attached_class
238
+ )
239
+ end
240
+ def self.new(
241
+ # Number of audio tokens billed for this request.
242
+ audio_tokens: nil,
243
+ # Number of text tokens billed for this request.
244
+ text_tokens: nil
245
+ )
246
+ end
247
+
248
+ sig do
249
+ override.returns(
250
+ { audio_tokens: Integer, text_tokens: Integer }
251
+ )
252
+ end
253
+ def to_hash
254
+ end
255
+ end
256
+ end
257
+
258
+ class TranscriptTextUsageDuration < OpenAI::Internal::Type::BaseModel
259
+ OrHash =
260
+ T.type_alias do
261
+ T.any(
262
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageDuration,
263
+ OpenAI::Internal::AnyHash
264
+ )
265
+ end
266
+
267
+ # Duration of the input audio in seconds.
268
+ sig { returns(Float) }
269
+ attr_accessor :seconds
270
+
271
+ # The type of the usage object. Always `duration` for this variant.
272
+ sig { returns(Symbol) }
273
+ attr_accessor :type
274
+
275
+ # Usage statistics for models billed by audio input duration.
276
+ sig do
277
+ params(seconds: Float, type: Symbol).returns(T.attached_class)
278
+ end
279
+ def self.new(
280
+ # Duration of the input audio in seconds.
281
+ seconds:,
282
+ # The type of the usage object. Always `duration` for this variant.
283
+ type: :duration
284
+ )
285
+ end
286
+
287
+ sig { override.returns({ seconds: Float, type: Symbol }) }
288
+ def to_hash
289
+ end
290
+ end
291
+
292
+ sig do
293
+ override.returns(
294
+ T::Array[
295
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::Variants
296
+ ]
297
+ )
298
+ end
299
+ def self.variants
300
+ end
301
+ end
302
+ end
303
+ end
304
+ end
305
+ end
@@ -0,0 +1,93 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemInputAudioTranscriptionDeltaEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionDeltaEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The unique ID of the server event.
16
+ sig { returns(String) }
17
+ attr_accessor :event_id
18
+
19
+ # The ID of the item.
20
+ sig { returns(String) }
21
+ attr_accessor :item_id
22
+
23
+ # The event type, must be `conversation.item.input_audio_transcription.delta`.
24
+ sig { returns(Symbol) }
25
+ attr_accessor :type
26
+
27
+ # The index of the content part in the item's content array.
28
+ sig { returns(T.nilable(Integer)) }
29
+ attr_reader :content_index
30
+
31
+ sig { params(content_index: Integer).void }
32
+ attr_writer :content_index
33
+
34
+ # The text delta.
35
+ sig { returns(T.nilable(String)) }
36
+ attr_reader :delta
37
+
38
+ sig { params(delta: String).void }
39
+ attr_writer :delta
40
+
41
+ # The log probabilities of the transcription.
42
+ sig do
43
+ returns(T.nilable(T::Array[OpenAI::Realtime::LogProbProperties]))
44
+ end
45
+ attr_accessor :logprobs
46
+
47
+ # Returned when the text value of an input audio transcription content part is
48
+ # updated.
49
+ sig do
50
+ params(
51
+ event_id: String,
52
+ item_id: String,
53
+ content_index: Integer,
54
+ delta: String,
55
+ logprobs:
56
+ T.nilable(T::Array[OpenAI::Realtime::LogProbProperties::OrHash]),
57
+ type: Symbol
58
+ ).returns(T.attached_class)
59
+ end
60
+ def self.new(
61
+ # The unique ID of the server event.
62
+ event_id:,
63
+ # The ID of the item.
64
+ item_id:,
65
+ # The index of the content part in the item's content array.
66
+ content_index: nil,
67
+ # The text delta.
68
+ delta: nil,
69
+ # The log probabilities of the transcription.
70
+ logprobs: nil,
71
+ # The event type, must be `conversation.item.input_audio_transcription.delta`.
72
+ type: :"conversation.item.input_audio_transcription.delta"
73
+ )
74
+ end
75
+
76
+ sig do
77
+ override.returns(
78
+ {
79
+ event_id: String,
80
+ item_id: String,
81
+ type: Symbol,
82
+ content_index: Integer,
83
+ delta: String,
84
+ logprobs: T.nilable(T::Array[OpenAI::Realtime::LogProbProperties])
85
+ }
86
+ )
87
+ end
88
+ def to_hash
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,158 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemInputAudioTranscriptionFailedEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionFailedEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The index of the content part containing the audio.
16
+ sig { returns(Integer) }
17
+ attr_accessor :content_index
18
+
19
+ # Details of the transcription error.
20
+ sig do
21
+ returns(
22
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionFailedEvent::Error
23
+ )
24
+ end
25
+ attr_reader :error
26
+
27
+ sig do
28
+ params(
29
+ error:
30
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionFailedEvent::Error::OrHash
31
+ ).void
32
+ end
33
+ attr_writer :error
34
+
35
+ # The unique ID of the server event.
36
+ sig { returns(String) }
37
+ attr_accessor :event_id
38
+
39
+ # The ID of the user message item.
40
+ sig { returns(String) }
41
+ attr_accessor :item_id
42
+
43
+ # The event type, must be `conversation.item.input_audio_transcription.failed`.
44
+ sig { returns(Symbol) }
45
+ attr_accessor :type
46
+
47
+ # Returned when input audio transcription is configured, and a transcription
48
+ # request for a user message failed. These events are separate from other `error`
49
+ # events so that the client can identify the related Item.
50
+ sig do
51
+ params(
52
+ content_index: Integer,
53
+ error:
54
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionFailedEvent::Error::OrHash,
55
+ event_id: String,
56
+ item_id: String,
57
+ type: Symbol
58
+ ).returns(T.attached_class)
59
+ end
60
+ def self.new(
61
+ # The index of the content part containing the audio.
62
+ content_index:,
63
+ # Details of the transcription error.
64
+ error:,
65
+ # The unique ID of the server event.
66
+ event_id:,
67
+ # The ID of the user message item.
68
+ item_id:,
69
+ # The event type, must be `conversation.item.input_audio_transcription.failed`.
70
+ type: :"conversation.item.input_audio_transcription.failed"
71
+ )
72
+ end
73
+
74
+ sig do
75
+ override.returns(
76
+ {
77
+ content_index: Integer,
78
+ error:
79
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionFailedEvent::Error,
80
+ event_id: String,
81
+ item_id: String,
82
+ type: Symbol
83
+ }
84
+ )
85
+ end
86
+ def to_hash
87
+ end
88
+
89
+ class Error < OpenAI::Internal::Type::BaseModel
90
+ OrHash =
91
+ T.type_alias do
92
+ T.any(
93
+ OpenAI::Realtime::ConversationItemInputAudioTranscriptionFailedEvent::Error,
94
+ OpenAI::Internal::AnyHash
95
+ )
96
+ end
97
+
98
+ # Error code, if any.
99
+ sig { returns(T.nilable(String)) }
100
+ attr_reader :code
101
+
102
+ sig { params(code: String).void }
103
+ attr_writer :code
104
+
105
+ # A human-readable error message.
106
+ sig { returns(T.nilable(String)) }
107
+ attr_reader :message
108
+
109
+ sig { params(message: String).void }
110
+ attr_writer :message
111
+
112
+ # Parameter related to the error, if any.
113
+ sig { returns(T.nilable(String)) }
114
+ attr_reader :param
115
+
116
+ sig { params(param: String).void }
117
+ attr_writer :param
118
+
119
+ # The type of error.
120
+ sig { returns(T.nilable(String)) }
121
+ attr_reader :type
122
+
123
+ sig { params(type: String).void }
124
+ attr_writer :type
125
+
126
+ # Details of the transcription error.
127
+ sig do
128
+ params(
129
+ code: String,
130
+ message: String,
131
+ param: String,
132
+ type: String
133
+ ).returns(T.attached_class)
134
+ end
135
+ def self.new(
136
+ # Error code, if any.
137
+ code: nil,
138
+ # A human-readable error message.
139
+ message: nil,
140
+ # Parameter related to the error, if any.
141
+ param: nil,
142
+ # The type of error.
143
+ type: nil
144
+ )
145
+ end
146
+
147
+ sig do
148
+ override.returns(
149
+ { code: String, message: String, param: String, type: String }
150
+ )
151
+ end
152
+ def to_hash
153
+ end
154
+ end
155
+ end
156
+ end
157
+ end
158
+ end