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,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class InputAudioBufferClearedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute type
14
+ # The event type, must be `input_audio_buffer.cleared`.
15
+ #
16
+ # @return [Symbol, :"input_audio_buffer.cleared"]
17
+ required :type, const: :"input_audio_buffer.cleared"
18
+
19
+ # @!method initialize(event_id:, type: :"input_audio_buffer.cleared")
20
+ # Returned when the input audio buffer is cleared by the client with a
21
+ # `input_audio_buffer.clear` event.
22
+ #
23
+ # @param event_id [String] The unique ID of the server event.
24
+ #
25
+ # @param type [Symbol, :"input_audio_buffer.cleared"] The event type, must be `input_audio_buffer.cleared`.
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class InputAudioBufferCommitEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute type
8
+ # The event type, must be `input_audio_buffer.commit`.
9
+ #
10
+ # @return [Symbol, :"input_audio_buffer.commit"]
11
+ required :type, const: :"input_audio_buffer.commit"
12
+
13
+ # @!attribute event_id
14
+ # Optional client-generated ID used to identify this event.
15
+ #
16
+ # @return [String, nil]
17
+ optional :event_id, String
18
+
19
+ # @!method initialize(event_id: nil, type: :"input_audio_buffer.commit")
20
+ # Send this event to commit the user input audio buffer, which will create a new
21
+ # user message item in the conversation. This event will produce an error if the
22
+ # input audio buffer is empty. When in Server VAD mode, the client does not need
23
+ # to send this event, the server will commit the audio buffer automatically.
24
+ #
25
+ # Committing the input audio buffer will trigger input audio transcription (if
26
+ # enabled in session configuration), but it will not create a response from the
27
+ # model. The server will respond with an `input_audio_buffer.committed` event.
28
+ #
29
+ # @param event_id [String] Optional client-generated ID used to identify this event.
30
+ #
31
+ # @param type [Symbol, :"input_audio_buffer.commit"] The event type, must be `input_audio_buffer.commit`.
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class InputAudioBufferCommittedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute item_id
14
+ # The ID of the user message item that will be created.
15
+ #
16
+ # @return [String]
17
+ required :item_id, String
18
+
19
+ # @!attribute type
20
+ # The event type, must be `input_audio_buffer.committed`.
21
+ #
22
+ # @return [Symbol, :"input_audio_buffer.committed"]
23
+ required :type, const: :"input_audio_buffer.committed"
24
+
25
+ # @!attribute previous_item_id
26
+ # The ID of the preceding item after which the new item will be inserted. Can be
27
+ # `null` if the item has no predecessor.
28
+ #
29
+ # @return [String, nil]
30
+ optional :previous_item_id, String, nil?: true
31
+
32
+ # @!method initialize(event_id:, item_id:, previous_item_id: nil, type: :"input_audio_buffer.committed")
33
+ # Some parameter documentations has been truncated, see
34
+ # {OpenAI::Models::Realtime::InputAudioBufferCommittedEvent} for more details.
35
+ #
36
+ # Returned when an input audio buffer is committed, either by the client or
37
+ # automatically in server VAD mode. The `item_id` property is the ID of the user
38
+ # message item that will be created, thus a `conversation.item.created` event will
39
+ # also be sent to the client.
40
+ #
41
+ # @param event_id [String] The unique ID of the server event.
42
+ #
43
+ # @param item_id [String] The ID of the user message item that will be created.
44
+ #
45
+ # @param previous_item_id [String, nil] The ID of the preceding item after which the new item will be inserted.
46
+ #
47
+ # @param type [Symbol, :"input_audio_buffer.committed"] The event type, must be `input_audio_buffer.committed`.
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class InputAudioBufferSpeechStartedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute audio_start_ms
8
+ # Milliseconds from the start of all audio written to the buffer during the
9
+ # session when speech was first detected. This will correspond to the beginning of
10
+ # audio sent to the model, and thus includes the `prefix_padding_ms` configured in
11
+ # the Session.
12
+ #
13
+ # @return [Integer]
14
+ required :audio_start_ms, Integer
15
+
16
+ # @!attribute event_id
17
+ # The unique ID of the server event.
18
+ #
19
+ # @return [String]
20
+ required :event_id, String
21
+
22
+ # @!attribute item_id
23
+ # The ID of the user message item that will be created when speech stops.
24
+ #
25
+ # @return [String]
26
+ required :item_id, String
27
+
28
+ # @!attribute type
29
+ # The event type, must be `input_audio_buffer.speech_started`.
30
+ #
31
+ # @return [Symbol, :"input_audio_buffer.speech_started"]
32
+ required :type, const: :"input_audio_buffer.speech_started"
33
+
34
+ # @!method initialize(audio_start_ms:, event_id:, item_id:, type: :"input_audio_buffer.speech_started")
35
+ # Some parameter documentations has been truncated, see
36
+ # {OpenAI::Models::Realtime::InputAudioBufferSpeechStartedEvent} for more details.
37
+ #
38
+ # Sent by the server when in `server_vad` mode to indicate that speech has been
39
+ # detected in the audio buffer. This can happen any time audio is added to the
40
+ # buffer (unless speech is already detected). The client may want to use this
41
+ # event to interrupt audio playback or provide visual feedback to the user.
42
+ #
43
+ # The client should expect to receive a `input_audio_buffer.speech_stopped` event
44
+ # when speech stops. The `item_id` property is the ID of the user message item
45
+ # that will be created when speech stops and will also be included in the
46
+ # `input_audio_buffer.speech_stopped` event (unless the client manually commits
47
+ # the audio buffer during VAD activation).
48
+ #
49
+ # @param audio_start_ms [Integer] Milliseconds from the start of all audio written to the buffer during the
50
+ #
51
+ # @param event_id [String] The unique ID of the server event.
52
+ #
53
+ # @param item_id [String] The ID of the user message item that will be created when speech stops.
54
+ #
55
+ # @param type [Symbol, :"input_audio_buffer.speech_started"] The event type, must be `input_audio_buffer.speech_started`.
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class InputAudioBufferSpeechStoppedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute audio_end_ms
8
+ # Milliseconds since the session started when speech stopped. This will correspond
9
+ # to the end of audio sent to the model, and thus includes the
10
+ # `min_silence_duration_ms` configured in the Session.
11
+ #
12
+ # @return [Integer]
13
+ required :audio_end_ms, Integer
14
+
15
+ # @!attribute event_id
16
+ # The unique ID of the server event.
17
+ #
18
+ # @return [String]
19
+ required :event_id, String
20
+
21
+ # @!attribute item_id
22
+ # The ID of the user message item that will be created.
23
+ #
24
+ # @return [String]
25
+ required :item_id, String
26
+
27
+ # @!attribute type
28
+ # The event type, must be `input_audio_buffer.speech_stopped`.
29
+ #
30
+ # @return [Symbol, :"input_audio_buffer.speech_stopped"]
31
+ required :type, const: :"input_audio_buffer.speech_stopped"
32
+
33
+ # @!method initialize(audio_end_ms:, event_id:, item_id:, type: :"input_audio_buffer.speech_stopped")
34
+ # Some parameter documentations has been truncated, see
35
+ # {OpenAI::Models::Realtime::InputAudioBufferSpeechStoppedEvent} for more details.
36
+ #
37
+ # Returned in `server_vad` mode when the server detects the end of speech in the
38
+ # audio buffer. The server will also send an `conversation.item.created` event
39
+ # with the user message item that is created from the audio buffer.
40
+ #
41
+ # @param audio_end_ms [Integer] Milliseconds since the session started when speech stopped. This will
42
+ #
43
+ # @param event_id [String] The unique ID of the server event.
44
+ #
45
+ # @param item_id [String] The ID of the user message item that will be created.
46
+ #
47
+ # @param type [Symbol, :"input_audio_buffer.speech_stopped"] The event type, must be `input_audio_buffer.speech_stopped`.
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class InputAudioBufferTimeoutTriggered < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute audio_end_ms
8
+ # Millisecond offset where speech ended within the buffered audio.
9
+ #
10
+ # @return [Integer]
11
+ required :audio_end_ms, Integer
12
+
13
+ # @!attribute audio_start_ms
14
+ # Millisecond offset where speech started within the buffered audio.
15
+ #
16
+ # @return [Integer]
17
+ required :audio_start_ms, Integer
18
+
19
+ # @!attribute event_id
20
+ # The unique ID of the server event.
21
+ #
22
+ # @return [String]
23
+ required :event_id, String
24
+
25
+ # @!attribute item_id
26
+ # The ID of the item associated with this segment.
27
+ #
28
+ # @return [String]
29
+ required :item_id, String
30
+
31
+ # @!attribute type
32
+ # The event type, must be `input_audio_buffer.timeout_triggered`.
33
+ #
34
+ # @return [Symbol, :"input_audio_buffer.timeout_triggered"]
35
+ required :type, const: :"input_audio_buffer.timeout_triggered"
36
+
37
+ # @!method initialize(audio_end_ms:, audio_start_ms:, event_id:, item_id:, type: :"input_audio_buffer.timeout_triggered")
38
+ # Returned when the server VAD timeout is triggered for the input audio buffer.
39
+ #
40
+ # @param audio_end_ms [Integer] Millisecond offset where speech ended within the buffered audio.
41
+ #
42
+ # @param audio_start_ms [Integer] Millisecond offset where speech started within the buffered audio.
43
+ #
44
+ # @param event_id [String] The unique ID of the server event.
45
+ #
46
+ # @param item_id [String] The ID of the item associated with this segment.
47
+ #
48
+ # @param type [Symbol, :"input_audio_buffer.timeout_triggered"] The event type, must be `input_audio_buffer.timeout_triggered`.
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class LogProbProperties < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute token
8
+ # The token that was used to generate the log probability.
9
+ #
10
+ # @return [String]
11
+ required :token, String
12
+
13
+ # @!attribute bytes
14
+ # The bytes that were used to generate the log probability.
15
+ #
16
+ # @return [Array<Integer>]
17
+ required :bytes, OpenAI::Internal::Type::ArrayOf[Integer]
18
+
19
+ # @!attribute logprob
20
+ # The log probability of the token.
21
+ #
22
+ # @return [Float]
23
+ required :logprob, Float
24
+
25
+ # @!method initialize(token:, bytes:, logprob:)
26
+ # Some parameter documentations has been truncated, see
27
+ # {OpenAI::Models::Realtime::LogProbProperties} for more details.
28
+ #
29
+ # A log probability object.
30
+ #
31
+ # @param token [String] The token that was used to generate the log probability.
32
+ #
33
+ # @param bytes [Array<Integer>] The bytes that were used to generate the log probability.
34
+ #
35
+ # @param logprob [Float] The log probability of the token.
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class McpListToolsCompleted < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute item_id
14
+ # The ID of the MCP list tools item.
15
+ #
16
+ # @return [String]
17
+ required :item_id, String
18
+
19
+ # @!attribute type
20
+ # The event type, must be `mcp_list_tools.completed`.
21
+ #
22
+ # @return [Symbol, :"mcp_list_tools.completed"]
23
+ required :type, const: :"mcp_list_tools.completed"
24
+
25
+ # @!method initialize(event_id:, item_id:, type: :"mcp_list_tools.completed")
26
+ # Returned when listing MCP tools has completed for an item.
27
+ #
28
+ # @param event_id [String] The unique ID of the server event.
29
+ #
30
+ # @param item_id [String] The ID of the MCP list tools item.
31
+ #
32
+ # @param type [Symbol, :"mcp_list_tools.completed"] The event type, must be `mcp_list_tools.completed`.
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class McpListToolsFailed < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute item_id
14
+ # The ID of the MCP list tools item.
15
+ #
16
+ # @return [String]
17
+ required :item_id, String
18
+
19
+ # @!attribute type
20
+ # The event type, must be `mcp_list_tools.failed`.
21
+ #
22
+ # @return [Symbol, :"mcp_list_tools.failed"]
23
+ required :type, const: :"mcp_list_tools.failed"
24
+
25
+ # @!method initialize(event_id:, item_id:, type: :"mcp_list_tools.failed")
26
+ # Returned when listing MCP tools has failed for an item.
27
+ #
28
+ # @param event_id [String] The unique ID of the server event.
29
+ #
30
+ # @param item_id [String] The ID of the MCP list tools item.
31
+ #
32
+ # @param type [Symbol, :"mcp_list_tools.failed"] The event type, must be `mcp_list_tools.failed`.
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class McpListToolsInProgress < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute item_id
14
+ # The ID of the MCP list tools item.
15
+ #
16
+ # @return [String]
17
+ required :item_id, String
18
+
19
+ # @!attribute type
20
+ # The event type, must be `mcp_list_tools.in_progress`.
21
+ #
22
+ # @return [Symbol, :"mcp_list_tools.in_progress"]
23
+ required :type, const: :"mcp_list_tools.in_progress"
24
+
25
+ # @!method initialize(event_id:, item_id:, type: :"mcp_list_tools.in_progress")
26
+ # Returned when listing MCP tools is in progress for an item.
27
+ #
28
+ # @param event_id [String] The unique ID of the server event.
29
+ #
30
+ # @param item_id [String] The ID of the MCP list tools item.
31
+ #
32
+ # @param type [Symbol, :"mcp_list_tools.in_progress"] The event type, must be `mcp_list_tools.in_progress`.
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class OutputAudioBufferClearEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute type
8
+ # The event type, must be `output_audio_buffer.clear`.
9
+ #
10
+ # @return [Symbol, :"output_audio_buffer.clear"]
11
+ required :type, const: :"output_audio_buffer.clear"
12
+
13
+ # @!attribute event_id
14
+ # The unique ID of the client event used for error handling.
15
+ #
16
+ # @return [String, nil]
17
+ optional :event_id, String
18
+
19
+ # @!method initialize(event_id: nil, type: :"output_audio_buffer.clear")
20
+ # **WebRTC Only:** Emit to cut off the current audio response. This will trigger
21
+ # the server to stop generating audio and emit a `output_audio_buffer.cleared`
22
+ # event. This event should be preceded by a `response.cancel` client event to stop
23
+ # the generation of the current response.
24
+ # [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
25
+ #
26
+ # @param event_id [String] The unique ID of the client event used for error handling.
27
+ #
28
+ # @param type [Symbol, :"output_audio_buffer.clear"] The event type, must be `output_audio_buffer.clear`.
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RateLimitsUpdatedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute rate_limits
14
+ # List of rate limit information.
15
+ #
16
+ # @return [Array<OpenAI::Models::Realtime::RateLimitsUpdatedEvent::RateLimit>]
17
+ required :rate_limits,
18
+ -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Realtime::RateLimitsUpdatedEvent::RateLimit] }
19
+
20
+ # @!attribute type
21
+ # The event type, must be `rate_limits.updated`.
22
+ #
23
+ # @return [Symbol, :"rate_limits.updated"]
24
+ required :type, const: :"rate_limits.updated"
25
+
26
+ # @!method initialize(event_id:, rate_limits:, type: :"rate_limits.updated")
27
+ # Emitted at the beginning of a Response to indicate the updated rate limits. When
28
+ # a Response is created some tokens will be "reserved" for the output tokens, the
29
+ # rate limits shown here reflect that reservation, which is then adjusted
30
+ # accordingly once the Response is completed.
31
+ #
32
+ # @param event_id [String] The unique ID of the server event.
33
+ #
34
+ # @param rate_limits [Array<OpenAI::Models::Realtime::RateLimitsUpdatedEvent::RateLimit>] List of rate limit information.
35
+ #
36
+ # @param type [Symbol, :"rate_limits.updated"] The event type, must be `rate_limits.updated`.
37
+
38
+ class RateLimit < OpenAI::Internal::Type::BaseModel
39
+ # @!attribute limit
40
+ # The maximum allowed value for the rate limit.
41
+ #
42
+ # @return [Integer, nil]
43
+ optional :limit, Integer
44
+
45
+ # @!attribute name
46
+ # The name of the rate limit (`requests`, `tokens`).
47
+ #
48
+ # @return [Symbol, OpenAI::Models::Realtime::RateLimitsUpdatedEvent::RateLimit::Name, nil]
49
+ optional :name, enum: -> { OpenAI::Realtime::RateLimitsUpdatedEvent::RateLimit::Name }
50
+
51
+ # @!attribute remaining
52
+ # The remaining value before the limit is reached.
53
+ #
54
+ # @return [Integer, nil]
55
+ optional :remaining, Integer
56
+
57
+ # @!attribute reset_seconds
58
+ # Seconds until the rate limit resets.
59
+ #
60
+ # @return [Float, nil]
61
+ optional :reset_seconds, Float
62
+
63
+ # @!method initialize(limit: nil, name: nil, remaining: nil, reset_seconds: nil)
64
+ # Some parameter documentations has been truncated, see
65
+ # {OpenAI::Models::Realtime::RateLimitsUpdatedEvent::RateLimit} for more details.
66
+ #
67
+ # @param limit [Integer] The maximum allowed value for the rate limit.
68
+ #
69
+ # @param name [Symbol, OpenAI::Models::Realtime::RateLimitsUpdatedEvent::RateLimit::Name] The name of the rate limit (`requests`, `tokens`).
70
+ #
71
+ # @param remaining [Integer] The remaining value before the limit is reached.
72
+ #
73
+ # @param reset_seconds [Float] Seconds until the rate limit resets.
74
+
75
+ # The name of the rate limit (`requests`, `tokens`).
76
+ #
77
+ # @see OpenAI::Models::Realtime::RateLimitsUpdatedEvent::RateLimit#name
78
+ module Name
79
+ extend OpenAI::Internal::Type::Enum
80
+
81
+ REQUESTS = :requests
82
+ TOKENS = :tokens
83
+
84
+ # @!method self.values
85
+ # @return [Array<Symbol>]
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end