openai 0.68.0 → 0.69.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 (701) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +7 -7
  4. data/lib/openai/internal/type/enum.rb +6 -6
  5. data/lib/openai/internal/util.rb +14 -2
  6. data/lib/openai/models/beta/assistant_create_params.rb +7 -14
  7. data/lib/openai/models/beta/assistant_update_params.rb +7 -14
  8. data/lib/openai/models/beta/beta_apply_patch_tool.rb +44 -0
  9. data/lib/openai/models/beta/beta_compacted_response.rb +58 -0
  10. data/lib/openai/models/beta/beta_computer_action.rb +398 -0
  11. data/lib/openai/models/beta/beta_computer_action_list.rb +13 -0
  12. data/lib/openai/models/beta/beta_computer_tool.rb +23 -0
  13. data/lib/openai/models/beta/beta_computer_use_preview_tool.rb +63 -0
  14. data/lib/openai/models/beta/beta_container_auto.rb +96 -0
  15. data/lib/openai/models/beta/beta_container_network_policy_allowlist.rb +37 -0
  16. data/lib/openai/models/beta/beta_container_network_policy_disabled.rb +20 -0
  17. data/lib/openai/models/beta/beta_container_network_policy_domain_secret.rb +36 -0
  18. data/lib/openai/models/beta/beta_container_reference.rb +28 -0
  19. data/lib/openai/models/beta/beta_custom_tool.rb +148 -0
  20. data/lib/openai/models/beta/beta_easy_input_message.rb +120 -0
  21. data/lib/openai/models/beta/beta_file_search_tool.rb +424 -0
  22. data/lib/openai/models/beta/beta_function_shell_tool.rb +67 -0
  23. data/lib/openai/models/beta/beta_function_tool.rb +97 -0
  24. data/lib/openai/models/beta/beta_inline_skill.rb +44 -0
  25. data/lib/openai/models/beta/beta_inline_skill_source.rb +38 -0
  26. data/lib/openai/models/beta/beta_local_environment.rb +28 -0
  27. data/lib/openai/models/beta/beta_local_skill.rb +36 -0
  28. data/lib/openai/models/beta/beta_namespace_tool.rb +146 -0
  29. data/lib/openai/models/beta/beta_response.rb +1425 -0
  30. data/lib/openai/models/beta/beta_response_apply_patch_tool_call.rb +258 -0
  31. data/lib/openai/models/beta/beta_response_apply_patch_tool_call_output.rb +156 -0
  32. data/lib/openai/models/beta/beta_response_audio_delta_event.rb +63 -0
  33. data/lib/openai/models/beta/beta_response_audio_done_event.rb +55 -0
  34. data/lib/openai/models/beta/beta_response_audio_transcript_delta_event.rb +63 -0
  35. data/lib/openai/models/beta/beta_response_audio_transcript_done_event.rb +55 -0
  36. data/lib/openai/models/beta/beta_response_code_interpreter_call_code_delta_event.rb +81 -0
  37. data/lib/openai/models/beta/beta_response_code_interpreter_call_code_done_event.rb +76 -0
  38. data/lib/openai/models/beta/beta_response_code_interpreter_call_completed_event.rb +73 -0
  39. data/lib/openai/models/beta/beta_response_code_interpreter_call_in_progress_event.rb +77 -0
  40. data/lib/openai/models/beta/beta_response_code_interpreter_call_interpreting_event.rb +77 -0
  41. data/lib/openai/models/beta/beta_response_code_interpreter_tool_call.rb +168 -0
  42. data/lib/openai/models/beta/beta_response_compaction_item.rb +69 -0
  43. data/lib/openai/models/beta/beta_response_compaction_item_param.rb +61 -0
  44. data/lib/openai/models/beta/beta_response_completed_event.rb +63 -0
  45. data/lib/openai/models/beta/beta_response_computer_tool_call.rb +156 -0
  46. data/lib/openai/models/beta/beta_response_computer_tool_call_output_item.rb +141 -0
  47. data/lib/openai/models/beta/beta_response_computer_tool_call_output_screenshot.rb +43 -0
  48. data/lib/openai/models/beta/beta_response_container_reference.rb +29 -0
  49. data/lib/openai/models/beta/beta_response_content.rb +56 -0
  50. data/lib/openai/models/beta/beta_response_content_part_added_event.rb +129 -0
  51. data/lib/openai/models/beta/beta_response_content_part_done_event.rb +129 -0
  52. data/lib/openai/models/beta/beta_response_conversation_param.rb +22 -0
  53. data/lib/openai/models/beta/beta_response_created_event.rb +63 -0
  54. data/lib/openai/models/beta/beta_response_custom_tool_call.rb +142 -0
  55. data/lib/openai/models/beta/beta_response_custom_tool_call_input_delta_event.rb +76 -0
  56. data/lib/openai/models/beta/beta_response_custom_tool_call_input_done_event.rb +76 -0
  57. data/lib/openai/models/beta/beta_response_custom_tool_call_item.rb +55 -0
  58. data/lib/openai/models/beta/beta_response_custom_tool_call_output.rb +171 -0
  59. data/lib/openai/models/beta/beta_response_custom_tool_call_output_item.rb +55 -0
  60. data/lib/openai/models/beta/beta_response_error.rb +63 -0
  61. data/lib/openai/models/beta/beta_response_error_event.rb +79 -0
  62. data/lib/openai/models/beta/beta_response_failed_event.rb +63 -0
  63. data/lib/openai/models/beta/beta_response_file_search_call_completed_event.rb +72 -0
  64. data/lib/openai/models/beta/beta_response_file_search_call_in_progress_event.rb +72 -0
  65. data/lib/openai/models/beta/beta_response_file_search_call_searching_event.rb +72 -0
  66. data/lib/openai/models/beta/beta_response_file_search_tool_call.rb +168 -0
  67. data/lib/openai/models/beta/beta_response_format_text_config.rb +72 -0
  68. data/lib/openai/models/beta/beta_response_format_text_json_schema_config.rb +66 -0
  69. data/lib/openai/models/beta/beta_response_function_call_arguments_delta_event.rb +80 -0
  70. data/lib/openai/models/beta/beta_response_function_call_arguments_done_event.rb +83 -0
  71. data/lib/openai/models/beta/beta_response_function_call_output_item.rb +28 -0
  72. data/lib/openai/models/beta/beta_response_function_call_output_item_list.rb +14 -0
  73. data/lib/openai/models/beta/beta_response_function_shell_call_output_content.rb +90 -0
  74. data/lib/openai/models/beta/beta_response_function_shell_tool_call.rb +216 -0
  75. data/lib/openai/models/beta/beta_response_function_shell_tool_call_output.rb +265 -0
  76. data/lib/openai/models/beta/beta_response_function_tool_call.rb +168 -0
  77. data/lib/openai/models/beta/beta_response_function_tool_call_item.rb +57 -0
  78. data/lib/openai/models/beta/beta_response_function_tool_call_output_item.rb +201 -0
  79. data/lib/openai/models/beta/beta_response_function_web_search.rb +238 -0
  80. data/lib/openai/models/beta/beta_response_image_gen_call_completed_event.rb +69 -0
  81. data/lib/openai/models/beta/beta_response_image_gen_call_generating_event.rb +69 -0
  82. data/lib/openai/models/beta/beta_response_image_gen_call_in_progress_event.rb +68 -0
  83. data/lib/openai/models/beta/beta_response_image_gen_call_partial_image_event.rb +89 -0
  84. data/lib/openai/models/beta/beta_response_in_progress_event.rb +63 -0
  85. data/lib/openai/models/beta/beta_response_includable.rb +45 -0
  86. data/lib/openai/models/beta/beta_response_incomplete_event.rb +63 -0
  87. data/lib/openai/models/beta/beta_response_inject_created_event.rb +51 -0
  88. data/lib/openai/models/beta/beta_response_inject_event.rb +40 -0
  89. data/lib/openai/models/beta/beta_response_inject_failed_event.rb +103 -0
  90. data/lib/openai/models/beta/beta_response_input.rb +13 -0
  91. data/lib/openai/models/beta/beta_response_input_audio.rb +70 -0
  92. data/lib/openai/models/beta/beta_response_input_content.rb +28 -0
  93. data/lib/openai/models/beta/beta_response_input_file.rb +113 -0
  94. data/lib/openai/models/beta/beta_response_input_file_content.rb +115 -0
  95. data/lib/openai/models/beta/beta_response_input_image.rb +94 -0
  96. data/lib/openai/models/beta/beta_response_input_image_content.rb +96 -0
  97. data/lib/openai/models/beta/beta_response_input_item.rb +2819 -0
  98. data/lib/openai/models/beta/beta_response_input_message_content_list.rb +14 -0
  99. data/lib/openai/models/beta/beta_response_input_message_item.rb +108 -0
  100. data/lib/openai/models/beta/beta_response_input_text.rb +59 -0
  101. data/lib/openai/models/beta/beta_response_input_text_content.rb +61 -0
  102. data/lib/openai/models/beta/beta_response_item.rb +1438 -0
  103. data/lib/openai/models/beta/beta_response_local_environment.rb +22 -0
  104. data/lib/openai/models/beta/beta_response_mcp_call_arguments_delta_event.rb +81 -0
  105. data/lib/openai/models/beta/beta_response_mcp_call_arguments_done_event.rb +79 -0
  106. data/lib/openai/models/beta/beta_response_mcp_call_completed_event.rb +68 -0
  107. data/lib/openai/models/beta/beta_response_mcp_call_failed_event.rb +68 -0
  108. data/lib/openai/models/beta/beta_response_mcp_call_in_progress_event.rb +68 -0
  109. data/lib/openai/models/beta/beta_response_mcp_list_tools_completed_event.rb +68 -0
  110. data/lib/openai/models/beta/beta_response_mcp_list_tools_failed_event.rb +68 -0
  111. data/lib/openai/models/beta/beta_response_mcp_list_tools_in_progress_event.rb +69 -0
  112. data/lib/openai/models/beta/beta_response_output_audio.rb +41 -0
  113. data/lib/openai/models/beta/beta_response_output_item.rb +1444 -0
  114. data/lib/openai/models/beta/beta_response_output_item_added_event.rb +71 -0
  115. data/lib/openai/models/beta/beta_response_output_item_done_event.rb +71 -0
  116. data/lib/openai/models/beta/beta_response_output_message.rb +139 -0
  117. data/lib/openai/models/beta/beta_response_output_refusal.rb +30 -0
  118. data/lib/openai/models/beta/beta_response_output_text.rb +292 -0
  119. data/lib/openai/models/beta/beta_response_output_text_annotation_added_event.rb +92 -0
  120. data/lib/openai/models/beta/beta_response_prompt.rb +65 -0
  121. data/lib/openai/models/beta/beta_response_queued_event.rb +60 -0
  122. data/lib/openai/models/beta/beta_response_reasoning_item.rb +151 -0
  123. data/lib/openai/models/beta/beta_response_reasoning_summary_part_added_event.rb +110 -0
  124. data/lib/openai/models/beta/beta_response_reasoning_summary_part_done_event.rb +132 -0
  125. data/lib/openai/models/beta/beta_response_reasoning_summary_text_delta_event.rb +88 -0
  126. data/lib/openai/models/beta/beta_response_reasoning_summary_text_done_event.rb +88 -0
  127. data/lib/openai/models/beta/beta_response_reasoning_text_delta_event.rb +87 -0
  128. data/lib/openai/models/beta/beta_response_reasoning_text_done_event.rb +87 -0
  129. data/lib/openai/models/beta/beta_response_refusal_delta_event.rb +87 -0
  130. data/lib/openai/models/beta/beta_response_refusal_done_event.rb +87 -0
  131. data/lib/openai/models/beta/beta_response_status.rb +25 -0
  132. data/lib/openai/models/beta/beta_response_stream_event.rb +203 -0
  133. data/lib/openai/models/beta/beta_response_text_config.rb +67 -0
  134. data/lib/openai/models/beta/beta_response_text_delta_event.rb +150 -0
  135. data/lib/openai/models/beta/beta_response_text_done_event.rb +150 -0
  136. data/lib/openai/models/beta/beta_response_tool_search_call.rb +117 -0
  137. data/lib/openai/models/beta/beta_response_tool_search_output_item.rb +117 -0
  138. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +109 -0
  139. data/lib/openai/models/beta/beta_response_usage.rb +95 -0
  140. data/lib/openai/models/beta/beta_response_web_search_call_completed_event.rb +72 -0
  141. data/lib/openai/models/beta/beta_response_web_search_call_in_progress_event.rb +72 -0
  142. data/lib/openai/models/beta/beta_response_web_search_call_searching_event.rb +72 -0
  143. data/lib/openai/models/beta/beta_responses_client_event.rb +1432 -0
  144. data/lib/openai/models/beta/beta_responses_server_event.rb +212 -0
  145. data/lib/openai/models/beta/beta_skill_reference.rb +36 -0
  146. data/lib/openai/models/beta/beta_tool.rb +910 -0
  147. data/lib/openai/models/beta/beta_tool_choice_allowed.rb +75 -0
  148. data/lib/openai/models/beta/beta_tool_choice_apply_patch.rb +22 -0
  149. data/lib/openai/models/beta/beta_tool_choice_custom.rb +30 -0
  150. data/lib/openai/models/beta/beta_tool_choice_function.rb +30 -0
  151. data/lib/openai/models/beta/beta_tool_choice_mcp.rb +42 -0
  152. data/lib/openai/models/beta/beta_tool_choice_options.rb +28 -0
  153. data/lib/openai/models/beta/beta_tool_choice_shell.rb +22 -0
  154. data/lib/openai/models/beta/beta_tool_choice_types.rb +67 -0
  155. data/lib/openai/models/beta/beta_tool_search_tool.rb +59 -0
  156. data/lib/openai/models/beta/beta_web_search_preview_tool.rb +143 -0
  157. data/lib/openai/models/beta/beta_web_search_tool.rb +162 -0
  158. data/lib/openai/models/beta/response_cancel_params.rb +37 -0
  159. data/lib/openai/models/beta/response_compact_params.rb +549 -0
  160. data/lib/openai/models/beta/response_create_params.rb +1343 -0
  161. data/lib/openai/models/beta/response_delete_params.rb +37 -0
  162. data/lib/openai/models/beta/response_retrieve_params.rb +74 -0
  163. data/lib/openai/models/beta/responses/beta_response_item_list.rb +54 -0
  164. data/lib/openai/models/beta/responses/input_item_list_params.rb +96 -0
  165. data/lib/openai/models/beta/responses/input_token_count_params.rb +542 -0
  166. data/lib/openai/models/beta/responses/input_token_count_response.rb +26 -0
  167. data/lib/openai/models/beta/threads/run_create_params.rb +7 -14
  168. data/lib/openai/models/chat/chat_completion_content_part.rb +31 -1
  169. data/lib/openai/models/chat/chat_completion_content_part_image.rb +31 -1
  170. data/lib/openai/models/chat/chat_completion_content_part_input_audio.rb +31 -1
  171. data/lib/openai/models/chat/chat_completion_content_part_text.rb +31 -1
  172. data/lib/openai/models/chat/completion_create_params.rb +200 -19
  173. data/lib/openai/models/chat_model.rb +3 -0
  174. data/lib/openai/models/completion_usage.rb +9 -1
  175. data/lib/openai/models/conversations/computer_screenshot_content.rb +28 -1
  176. data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
  177. data/lib/openai/models/conversations/conversation_item.rb +106 -3
  178. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  179. data/lib/openai/models/conversations/item_create_params.rb +2 -2
  180. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +7 -14
  181. data/lib/openai/models/evals/run_cancel_response.rb +16 -30
  182. data/lib/openai/models/evals/run_create_params.rb +16 -30
  183. data/lib/openai/models/evals/run_create_response.rb +16 -30
  184. data/lib/openai/models/evals/run_list_response.rb +16 -30
  185. data/lib/openai/models/evals/run_retrieve_response.rb +16 -30
  186. data/lib/openai/models/graders/score_model_grader.rb +7 -14
  187. data/lib/openai/models/realtime/realtime_response_create_mcp_tool.rb +23 -1
  188. data/lib/openai/models/realtime/realtime_session_create_request.rb +6 -0
  189. data/lib/openai/models/realtime/realtime_session_create_response.rb +29 -1
  190. data/lib/openai/models/realtime/realtime_tools_config_union.rb +23 -1
  191. data/lib/openai/models/reasoning.rb +47 -15
  192. data/lib/openai/models/reasoning_effort.rb +7 -13
  193. data/lib/openai/models/responses/apply_patch_tool.rb +23 -1
  194. data/lib/openai/models/responses/compacted_response.rb +2 -2
  195. data/lib/openai/models/responses/custom_tool.rb +21 -1
  196. data/lib/openai/models/responses/function_shell_tool.rb +23 -1
  197. data/lib/openai/models/responses/function_tool.rb +32 -3
  198. data/lib/openai/models/responses/input_token_count_params.rb +21 -8
  199. data/lib/openai/models/responses/namespace_tool.rb +41 -2
  200. data/lib/openai/models/responses/response.rb +98 -14
  201. data/lib/openai/models/responses/response_apply_patch_tool_call.rb +56 -1
  202. data/lib/openai/models/responses/response_apply_patch_tool_call_output.rb +56 -1
  203. data/lib/openai/models/responses/response_compact_params.rb +107 -4
  204. data/lib/openai/models/responses/response_create_params.rb +214 -13
  205. data/lib/openai/models/responses/response_custom_tool_call.rb +56 -1
  206. data/lib/openai/models/responses/response_custom_tool_call_output.rb +58 -1
  207. data/lib/openai/models/responses/response_error.rb +1 -0
  208. data/lib/openai/models/responses/response_function_shell_tool_call.rb +56 -1
  209. data/lib/openai/models/responses/response_function_shell_tool_call_output.rb +56 -1
  210. data/lib/openai/models/responses/response_function_tool_call.rb +56 -1
  211. data/lib/openai/models/responses/response_function_tool_call_output_item.rb +58 -1
  212. data/lib/openai/models/responses/response_input_file.rb +39 -8
  213. data/lib/openai/models/responses/response_input_file_content.rb +41 -8
  214. data/lib/openai/models/responses/response_input_image.rb +27 -1
  215. data/lib/openai/models/responses/response_input_image_content.rb +29 -1
  216. data/lib/openai/models/responses/response_input_item.rb +396 -8
  217. data/lib/openai/models/responses/response_input_text.rb +30 -1
  218. data/lib/openai/models/responses/response_input_text_content.rb +32 -1
  219. data/lib/openai/models/responses/response_item.rb +106 -3
  220. data/lib/openai/models/responses/response_item_list.rb +2 -2
  221. data/lib/openai/models/responses/response_output_item.rb +106 -3
  222. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  223. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  224. data/lib/openai/models/responses/response_reasoning_summary_part_done_event.rb +23 -1
  225. data/lib/openai/models/responses/response_tool_search_output_item.rb +2 -2
  226. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +2 -2
  227. data/lib/openai/models/responses/response_usage.rb +9 -1
  228. data/lib/openai/models/responses/responses_client_event.rb +215 -13
  229. data/lib/openai/models/responses/tool.rb +58 -3
  230. data/lib/openai/models/webhooks/safety_identifier_blocked_webhook_event.rb +118 -0
  231. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
  232. data/lib/openai/resources/beta/assistants.rb +2 -2
  233. data/lib/openai/resources/beta/responses/input_items.rb +58 -0
  234. data/lib/openai/resources/beta/responses/input_tokens.rb +73 -0
  235. data/lib/openai/resources/beta/responses.rb +440 -0
  236. data/lib/openai/resources/beta/threads/runs.rb +2 -2
  237. data/lib/openai/resources/beta.rb +4 -0
  238. data/lib/openai/resources/chat/completions.rb +10 -6
  239. data/lib/openai/resources/conversations/items.rb +3 -3
  240. data/lib/openai/resources/conversations.rb +1 -1
  241. data/lib/openai/resources/responses/input_items.rb +1 -1
  242. data/lib/openai/resources/responses/input_tokens.rb +3 -3
  243. data/lib/openai/resources/responses.rb +22 -12
  244. data/lib/openai/resources/webhooks.rb +1 -1
  245. data/lib/openai/version.rb +1 -1
  246. data/lib/openai.rb +163 -0
  247. data/rbi/openai/models/beta/assistant_create_params.rbi +12 -26
  248. data/rbi/openai/models/beta/assistant_update_params.rbi +12 -26
  249. data/rbi/openai/models/beta/beta_apply_patch_tool.rbi +99 -0
  250. data/rbi/openai/models/beta/beta_compacted_response.rbi +120 -0
  251. data/rbi/openai/models/beta/beta_computer_action.rbi +593 -0
  252. data/rbi/openai/models/beta/beta_computer_action_list.rbi +18 -0
  253. data/rbi/openai/models/beta/beta_computer_tool.rbi +33 -0
  254. data/rbi/openai/models/beta/beta_computer_use_preview_tool.rbi +126 -0
  255. data/rbi/openai/models/beta/beta_container_auto.rbi +231 -0
  256. data/rbi/openai/models/beta/beta_container_network_policy_allowlist.rbi +81 -0
  257. data/rbi/openai/models/beta/beta_container_network_policy_disabled.rbi +35 -0
  258. data/rbi/openai/models/beta/beta_container_network_policy_domain_secret.rbi +53 -0
  259. data/rbi/openai/models/beta/beta_container_reference.rbi +42 -0
  260. data/rbi/openai/models/beta/beta_custom_tool.rbi +302 -0
  261. data/rbi/openai/models/beta/beta_easy_input_message.rbi +211 -0
  262. data/rbi/openai/models/beta/beta_file_search_tool.rbi +863 -0
  263. data/rbi/openai/models/beta/beta_function_shell_tool.rbi +155 -0
  264. data/rbi/openai/models/beta/beta_function_tool.rbi +154 -0
  265. data/rbi/openai/models/beta/beta_inline_skill.rbi +68 -0
  266. data/rbi/openai/models/beta/beta_inline_skill_source.rbi +53 -0
  267. data/rbi/openai/models/beta/beta_local_environment.rbi +51 -0
  268. data/rbi/openai/models/beta/beta_local_skill.rbi +49 -0
  269. data/rbi/openai/models/beta/beta_namespace_tool.rbi +252 -0
  270. data/rbi/openai/models/beta/beta_response.rbi +2495 -0
  271. data/rbi/openai/models/beta/beta_response_apply_patch_tool_call.rbi +431 -0
  272. data/rbi/openai/models/beta/beta_response_apply_patch_tool_call_output.rbi +277 -0
  273. data/rbi/openai/models/beta/beta_response_audio_delta_event.rbi +110 -0
  274. data/rbi/openai/models/beta/beta_response_audio_done_event.rbi +100 -0
  275. data/rbi/openai/models/beta/beta_response_audio_transcript_delta_event.rbi +118 -0
  276. data/rbi/openai/models/beta/beta_response_audio_transcript_done_event.rbi +108 -0
  277. data/rbi/openai/models/beta/beta_response_code_interpreter_call_code_delta_event.rbi +136 -0
  278. data/rbi/openai/models/beta/beta_response_code_interpreter_call_code_done_event.rbi +134 -0
  279. data/rbi/openai/models/beta/beta_response_code_interpreter_call_completed_event.rbi +128 -0
  280. data/rbi/openai/models/beta/beta_response_code_interpreter_call_in_progress_event.rbi +128 -0
  281. data/rbi/openai/models/beta/beta_response_code_interpreter_call_interpreting_event.rbi +128 -0
  282. data/rbi/openai/models/beta/beta_response_code_interpreter_tool_call.rbi +315 -0
  283. data/rbi/openai/models/beta/beta_response_compaction_item.rbi +116 -0
  284. data/rbi/openai/models/beta/beta_response_compaction_item_param.rbi +114 -0
  285. data/rbi/openai/models/beta/beta_response_completed_event.rbi +111 -0
  286. data/rbi/openai/models/beta/beta_response_computer_tool_call.rbi +404 -0
  287. data/rbi/openai/models/beta/beta_response_computer_tool_call_output_item.rbi +296 -0
  288. data/rbi/openai/models/beta/beta_response_computer_tool_call_output_screenshot.rbi +62 -0
  289. data/rbi/openai/models/beta/beta_response_container_reference.rbi +41 -0
  290. data/rbi/openai/models/beta/beta_response_content.rbi +66 -0
  291. data/rbi/openai/models/beta/beta_response_content_part_added_event.rbi +205 -0
  292. data/rbi/openai/models/beta/beta_response_content_part_done_event.rbi +203 -0
  293. data/rbi/openai/models/beta/beta_response_conversation_param.rbi +35 -0
  294. data/rbi/openai/models/beta/beta_response_created_event.rbi +109 -0
  295. data/rbi/openai/models/beta/beta_response_custom_tool_call.rbi +242 -0
  296. data/rbi/openai/models/beta/beta_response_custom_tool_call_input_delta_event.rbi +134 -0
  297. data/rbi/openai/models/beta/beta_response_custom_tool_call_input_done_event.rbi +134 -0
  298. data/rbi/openai/models/beta/beta_response_custom_tool_call_item.rbi +113 -0
  299. data/rbi/openai/models/beta/beta_response_custom_tool_call_output.rbi +303 -0
  300. data/rbi/openai/models/beta/beta_response_custom_tool_call_output_item.rbi +114 -0
  301. data/rbi/openai/models/beta/beta_response_error.rbi +165 -0
  302. data/rbi/openai/models/beta/beta_response_error_event.rbi +120 -0
  303. data/rbi/openai/models/beta/beta_response_failed_event.rbi +107 -0
  304. data/rbi/openai/models/beta/beta_response_file_search_call_completed_event.rbi +126 -0
  305. data/rbi/openai/models/beta/beta_response_file_search_call_in_progress_event.rbi +126 -0
  306. data/rbi/openai/models/beta/beta_response_file_search_call_searching_event.rbi +126 -0
  307. data/rbi/openai/models/beta/beta_response_file_search_tool_call.rbi +328 -0
  308. data/rbi/openai/models/beta/beta_response_format_text_config.rbi +97 -0
  309. data/rbi/openai/models/beta/beta_response_format_text_json_schema_config.rbi +97 -0
  310. data/rbi/openai/models/beta/beta_response_function_call_arguments_delta_event.rbi +134 -0
  311. data/rbi/openai/models/beta/beta_response_function_call_arguments_done_event.rbi +140 -0
  312. data/rbi/openai/models/beta/beta_response_function_call_output_item.rbi +32 -0
  313. data/rbi/openai/models/beta/beta_response_function_call_output_item_list.rbi +21 -0
  314. data/rbi/openai/models/beta/beta_response_function_shell_call_output_content.rbi +160 -0
  315. data/rbi/openai/models/beta/beta_response_function_shell_tool_call.rbi +389 -0
  316. data/rbi/openai/models/beta/beta_response_function_shell_tool_call_output.rbi +470 -0
  317. data/rbi/openai/models/beta/beta_response_function_tool_call.rbi +310 -0
  318. data/rbi/openai/models/beta/beta_response_function_tool_call_item.rbi +115 -0
  319. data/rbi/openai/models/beta/beta_response_function_tool_call_output_item.rbi +364 -0
  320. data/rbi/openai/models/beta/beta_response_function_web_search.rbi +416 -0
  321. data/rbi/openai/models/beta/beta_response_image_gen_call_completed_event.rbi +127 -0
  322. data/rbi/openai/models/beta/beta_response_image_gen_call_generating_event.rbi +127 -0
  323. data/rbi/openai/models/beta/beta_response_image_gen_call_in_progress_event.rbi +126 -0
  324. data/rbi/openai/models/beta/beta_response_image_gen_call_partial_image_event.rbi +144 -0
  325. data/rbi/openai/models/beta/beta_response_in_progress_event.rbi +113 -0
  326. data/rbi/openai/models/beta/beta_response_includable.rbi +86 -0
  327. data/rbi/openai/models/beta/beta_response_incomplete_event.rbi +113 -0
  328. data/rbi/openai/models/beta/beta_response_inject_created_event.rbi +75 -0
  329. data/rbi/openai/models/beta/beta_response_inject_event.rbi +183 -0
  330. data/rbi/openai/models/beta/beta_response_inject_failed_event.rbi +304 -0
  331. data/rbi/openai/models/beta/beta_response_input.rbi +18 -0
  332. data/rbi/openai/models/beta/beta_response_input_audio.rbi +144 -0
  333. data/rbi/openai/models/beta/beta_response_input_content.rbi +31 -0
  334. data/rbi/openai/models/beta/beta_response_input_file.rbi +210 -0
  335. data/rbi/openai/models/beta/beta_response_input_file_content.rbi +211 -0
  336. data/rbi/openai/models/beta/beta_response_input_image.rbi +173 -0
  337. data/rbi/openai/models/beta/beta_response_input_image_content.rbi +191 -0
  338. data/rbi/openai/models/beta/beta_response_input_item.rbi +5505 -0
  339. data/rbi/openai/models/beta/beta_response_input_message_content_list.rbi +21 -0
  340. data/rbi/openai/models/beta/beta_response_input_message_item.rbi +235 -0
  341. data/rbi/openai/models/beta/beta_response_input_text.rbi +109 -0
  342. data/rbi/openai/models/beta/beta_response_input_text_content.rbi +115 -0
  343. data/rbi/openai/models/beta/beta_response_item.rbi +2592 -0
  344. data/rbi/openai/models/beta/beta_response_local_environment.rbi +35 -0
  345. data/rbi/openai/models/beta/beta_response_mcp_call_arguments_delta_event.rbi +137 -0
  346. data/rbi/openai/models/beta/beta_response_mcp_call_arguments_done_event.rbi +134 -0
  347. data/rbi/openai/models/beta/beta_response_mcp_call_completed_event.rbi +123 -0
  348. data/rbi/openai/models/beta/beta_response_mcp_call_failed_event.rbi +121 -0
  349. data/rbi/openai/models/beta/beta_response_mcp_call_in_progress_event.rbi +124 -0
  350. data/rbi/openai/models/beta/beta_response_mcp_list_tools_completed_event.rbi +126 -0
  351. data/rbi/openai/models/beta/beta_response_mcp_list_tools_failed_event.rbi +124 -0
  352. data/rbi/openai/models/beta/beta_response_mcp_list_tools_in_progress_event.rbi +127 -0
  353. data/rbi/openai/models/beta/beta_response_output_audio.rbi +53 -0
  354. data/rbi/openai/models/beta/beta_response_output_item.rbi +2627 -0
  355. data/rbi/openai/models/beta/beta_response_output_item_added_event.rbi +154 -0
  356. data/rbi/openai/models/beta/beta_response_output_item_done_event.rbi +154 -0
  357. data/rbi/openai/models/beta/beta_response_output_message.rbi +267 -0
  358. data/rbi/openai/models/beta/beta_response_output_refusal.rbi +41 -0
  359. data/rbi/openai/models/beta/beta_response_output_text.rbi +479 -0
  360. data/rbi/openai/models/beta/beta_response_output_text_annotation_added_event.rbi +150 -0
  361. data/rbi/openai/models/beta/beta_response_prompt.rbi +122 -0
  362. data/rbi/openai/models/beta/beta_response_queued_event.rbi +107 -0
  363. data/rbi/openai/models/beta/beta_response_reasoning_item.rbi +274 -0
  364. data/rbi/openai/models/beta/beta_response_reasoning_summary_part_added_event.rbi +188 -0
  365. data/rbi/openai/models/beta/beta_response_reasoning_summary_part_done_event.rbi +243 -0
  366. data/rbi/openai/models/beta/beta_response_reasoning_summary_text_delta_event.rbi +142 -0
  367. data/rbi/openai/models/beta/beta_response_reasoning_summary_text_done_event.rbi +142 -0
  368. data/rbi/openai/models/beta/beta_response_reasoning_text_delta_event.rbi +140 -0
  369. data/rbi/openai/models/beta/beta_response_reasoning_text_done_event.rbi +140 -0
  370. data/rbi/openai/models/beta/beta_response_refusal_delta_event.rbi +135 -0
  371. data/rbi/openai/models/beta/beta_response_refusal_done_event.rbi +135 -0
  372. data/rbi/openai/models/beta/beta_response_status.rbi +38 -0
  373. data/rbi/openai/models/beta/beta_response_stream_event.rbi +81 -0
  374. data/rbi/openai/models/beta/beta_response_text_config.rbi +166 -0
  375. data/rbi/openai/models/beta/beta_response_text_delta_event.rbi +263 -0
  376. data/rbi/openai/models/beta/beta_response_text_done_event.rbi +261 -0
  377. data/rbi/openai/models/beta/beta_response_tool_search_call.rbi +218 -0
  378. data/rbi/openai/models/beta/beta_response_tool_search_output_item.rbi +248 -0
  379. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +307 -0
  380. data/rbi/openai/models/beta/beta_response_usage.rbi +163 -0
  381. data/rbi/openai/models/beta/beta_response_web_search_call_completed_event.rbi +126 -0
  382. data/rbi/openai/models/beta/beta_response_web_search_call_in_progress_event.rbi +126 -0
  383. data/rbi/openai/models/beta/beta_response_web_search_call_searching_event.rbi +126 -0
  384. data/rbi/openai/models/beta/beta_responses_client_event.rbi +2831 -0
  385. data/rbi/openai/models/beta/beta_responses_server_event.rbi +83 -0
  386. data/rbi/openai/models/beta/beta_skill_reference.rbi +52 -0
  387. data/rbi/openai/models/beta/beta_tool.rbi +1835 -0
  388. data/rbi/openai/models/beta/beta_tool_choice_allowed.rbi +126 -0
  389. data/rbi/openai/models/beta/beta_tool_choice_apply_patch.rbi +35 -0
  390. data/rbi/openai/models/beta/beta_tool_choice_custom.rbi +38 -0
  391. data/rbi/openai/models/beta/beta_tool_choice_function.rbi +41 -0
  392. data/rbi/openai/models/beta/beta_tool_choice_mcp.rbi +55 -0
  393. data/rbi/openai/models/beta/beta_tool_choice_options.rbi +38 -0
  394. data/rbi/openai/models/beta/beta_tool_choice_shell.rbi +32 -0
  395. data/rbi/openai/models/beta/beta_tool_choice_types.rbi +134 -0
  396. data/rbi/openai/models/beta/beta_tool_search_tool.rbi +109 -0
  397. data/rbi/openai/models/beta/beta_web_search_preview_tool.rbi +311 -0
  398. data/rbi/openai/models/beta/beta_web_search_tool.rbi +329 -0
  399. data/rbi/openai/models/beta/response_cancel_params.rbi +83 -0
  400. data/rbi/openai/models/beta/response_compact_params.rbi +1033 -0
  401. data/rbi/openai/models/beta/response_create_params.rbi +2739 -0
  402. data/rbi/openai/models/beta/response_delete_params.rbi +83 -0
  403. data/rbi/openai/models/beta/response_retrieve_params.rbi +145 -0
  404. data/rbi/openai/models/beta/responses/beta_response_item_list.rbi +113 -0
  405. data/rbi/openai/models/beta/responses/input_item_list_params.rbi +223 -0
  406. data/rbi/openai/models/beta/responses/input_token_count_params.rbi +1248 -0
  407. data/rbi/openai/models/beta/responses/input_token_count_response.rbi +37 -0
  408. data/rbi/openai/models/beta/threads/run_create_params.rbi +12 -26
  409. data/rbi/openai/models/chat/chat_completion_content_part.rbi +57 -1
  410. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +57 -1
  411. data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +57 -1
  412. data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +70 -2
  413. data/rbi/openai/models/chat/completion_create_params.rbi +513 -32
  414. data/rbi/openai/models/chat_model.rbi +3 -0
  415. data/rbi/openai/models/completion_usage.rbi +21 -4
  416. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +57 -1
  417. data/rbi/openai/models/conversations/conversation_create_params.rbi +9 -3
  418. data/rbi/openai/models/conversations/conversation_item.rbi +178 -0
  419. data/rbi/openai/models/conversations/conversation_item_list.rbi +2 -0
  420. data/rbi/openai/models/conversations/item_create_params.rbi +9 -3
  421. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +12 -26
  422. data/rbi/openai/models/evals/run_cancel_response.rbi +26 -52
  423. data/rbi/openai/models/evals/run_create_params.rbi +28 -52
  424. data/rbi/openai/models/evals/run_create_response.rbi +26 -52
  425. data/rbi/openai/models/evals/run_list_response.rbi +26 -52
  426. data/rbi/openai/models/evals/run_retrieve_response.rbi +26 -52
  427. data/rbi/openai/models/graders/score_model_grader.rbi +12 -26
  428. data/rbi/openai/models/realtime/realtime_response_create_mcp_tool.rbi +60 -0
  429. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +10 -0
  430. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +70 -0
  431. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +60 -0
  432. data/rbi/openai/models/reasoning.rbi +51 -26
  433. data/rbi/openai/models/reasoning_effort.rbi +7 -13
  434. data/rbi/openai/models/responses/apply_patch_tool.rbi +69 -2
  435. data/rbi/openai/models/responses/compacted_response.rbi +2 -0
  436. data/rbi/openai/models/responses/custom_tool.rbi +53 -0
  437. data/rbi/openai/models/responses/function_shell_tool.rbi +57 -0
  438. data/rbi/openai/models/responses/function_tool.rbi +68 -3
  439. data/rbi/openai/models/responses/input_token_count_params.rbi +32 -0
  440. data/rbi/openai/models/responses/namespace_tool.rbi +76 -0
  441. data/rbi/openai/models/responses/response.rbi +192 -3
  442. data/rbi/openai/models/responses/response_apply_patch_tool_call.rbi +98 -0
  443. data/rbi/openai/models/responses/response_apply_patch_tool_call_output.rbi +98 -0
  444. data/rbi/openai/models/responses/response_compact_params.rbi +231 -0
  445. data/rbi/openai/models/responses/response_create_params.rbi +537 -6
  446. data/rbi/openai/models/responses/response_custom_tool_call.rbi +104 -0
  447. data/rbi/openai/models/responses/response_custom_tool_call_output.rbi +111 -1
  448. data/rbi/openai/models/responses/response_error.rbi +5 -0
  449. data/rbi/openai/models/responses/response_function_shell_tool_call.rbi +98 -0
  450. data/rbi/openai/models/responses/response_function_shell_tool_call_output.rbi +98 -0
  451. data/rbi/openai/models/responses/response_function_tool_call.rbi +104 -0
  452. data/rbi/openai/models/responses/response_function_tool_call_output_item.rbi +104 -0
  453. data/rbi/openai/models/responses/response_input_file.rbi +77 -10
  454. data/rbi/openai/models/responses/response_input_file_content.rbi +83 -10
  455. data/rbi/openai/models/responses/response_input_image.rbi +57 -1
  456. data/rbi/openai/models/responses/response_input_image_content.rbi +63 -1
  457. data/rbi/openai/models/responses/response_input_item.rbi +748 -8
  458. data/rbi/openai/models/responses/response_input_text.rbi +70 -2
  459. data/rbi/openai/models/responses/response_input_text_content.rbi +76 -2
  460. data/rbi/openai/models/responses/response_item.rbi +178 -0
  461. data/rbi/openai/models/responses/response_item_list.rbi +2 -0
  462. data/rbi/openai/models/responses/response_output_item.rbi +178 -0
  463. data/rbi/openai/models/responses/response_output_item_added_event.rbi +2 -0
  464. data/rbi/openai/models/responses/response_output_item_done_event.rbi +2 -0
  465. data/rbi/openai/models/responses/response_reasoning_summary_part_done_event.rbi +58 -1
  466. data/rbi/openai/models/responses/response_tool_search_output_item.rbi +1 -0
  467. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +3 -0
  468. data/rbi/openai/models/responses/response_usage.rbi +16 -2
  469. data/rbi/openai/models/responses/responses_client_event.rbi +537 -6
  470. data/rbi/openai/models/responses/tool.rbi +142 -1
  471. data/rbi/openai/models/webhooks/safety_identifier_blocked_webhook_event.rbi +209 -0
  472. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +2 -1
  473. data/rbi/openai/resources/beta/assistants.rbi +12 -26
  474. data/rbi/openai/resources/beta/responses/input_items.rbi +58 -0
  475. data/rbi/openai/resources/beta/responses/input_tokens.rbi +154 -0
  476. data/rbi/openai/resources/beta/responses.rbi +903 -0
  477. data/rbi/openai/resources/beta/threads/runs.rbi +12 -26
  478. data/rbi/openai/resources/beta.rbi +3 -0
  479. data/rbi/openai/resources/chat/completions.rbi +48 -28
  480. data/rbi/openai/resources/conversations/items.rbi +3 -1
  481. data/rbi/openai/resources/conversations.rbi +3 -1
  482. data/rbi/openai/resources/responses/input_tokens.rbi +2 -0
  483. data/rbi/openai/resources/responses.rbi +54 -2
  484. data/rbi/openai/resources/webhooks.rbi +2 -1
  485. data/sig/openai/client.rbs +1 -1
  486. data/sig/openai/internal/transport/base_client.rbs +2 -2
  487. data/sig/openai/models/beta/beta_apply_patch_tool.rbs +40 -0
  488. data/sig/openai/models/beta/beta_compacted_response.rbs +44 -0
  489. data/sig/openai/models/beta/beta_computer_action.rbs +259 -0
  490. data/sig/openai/models/beta/beta_computer_action_list.rbs +12 -0
  491. data/sig/openai/models/beta/beta_computer_tool.rbs +17 -0
  492. data/sig/openai/models/beta/beta_computer_use_preview_tool.rbs +53 -0
  493. data/sig/openai/models/beta/beta_container_auto.rbs +86 -0
  494. data/sig/openai/models/beta/beta_container_network_policy_allowlist.rbs +38 -0
  495. data/sig/openai/models/beta/beta_container_network_policy_disabled.rbs +17 -0
  496. data/sig/openai/models/beta/beta_container_network_policy_domain_secret.rbs +22 -0
  497. data/sig/openai/models/beta/beta_container_reference.rbs +23 -0
  498. data/sig/openai/models/beta/beta_custom_tool.rbs +126 -0
  499. data/sig/openai/models/beta/beta_easy_input_message.rbs +87 -0
  500. data/sig/openai/models/beta/beta_file_search_tool.rbs +298 -0
  501. data/sig/openai/models/beta/beta_function_shell_tool.rbs +56 -0
  502. data/sig/openai/models/beta/beta_function_tool.rbs +72 -0
  503. data/sig/openai/models/beta/beta_inline_skill.rbs +39 -0
  504. data/sig/openai/models/beta/beta_inline_skill_source.rbs +30 -0
  505. data/sig/openai/models/beta/beta_local_environment.rbs +30 -0
  506. data/sig/openai/models/beta/beta_local_skill.rbs +26 -0
  507. data/sig/openai/models/beta/beta_namespace_tool.rbs +114 -0
  508. data/sig/openai/models/beta/beta_response.rbs +860 -0
  509. data/sig/openai/models/beta/beta_response_apply_patch_tool_call.rbs +177 -0
  510. data/sig/openai/models/beta/beta_response_apply_patch_tool_call_output.rbs +118 -0
  511. data/sig/openai/models/beta/beta_response_audio_delta_event.rbs +49 -0
  512. data/sig/openai/models/beta/beta_response_audio_done_event.rbs +44 -0
  513. data/sig/openai/models/beta/beta_response_audio_transcript_delta_event.rbs +49 -0
  514. data/sig/openai/models/beta/beta_response_audio_transcript_done_event.rbs +44 -0
  515. data/sig/openai/models/beta/beta_response_code_interpreter_call_code_delta_event.rbs +59 -0
  516. data/sig/openai/models/beta/beta_response_code_interpreter_call_code_done_event.rbs +59 -0
  517. data/sig/openai/models/beta/beta_response_code_interpreter_call_completed_event.rbs +54 -0
  518. data/sig/openai/models/beta/beta_response_code_interpreter_call_in_progress_event.rbs +54 -0
  519. data/sig/openai/models/beta/beta_response_code_interpreter_call_interpreting_event.rbs +54 -0
  520. data/sig/openai/models/beta/beta_response_code_interpreter_tool_call.rbs +113 -0
  521. data/sig/openai/models/beta/beta_response_compaction_item.rbs +60 -0
  522. data/sig/openai/models/beta/beta_response_compaction_item_param.rbs +49 -0
  523. data/sig/openai/models/beta/beta_response_completed_event.rbs +49 -0
  524. data/sig/openai/models/beta/beta_response_computer_tool_call.rbs +118 -0
  525. data/sig/openai/models/beta/beta_response_computer_tool_call_output_item.rbs +107 -0
  526. data/sig/openai/models/beta/beta_response_computer_tool_call_output_screenshot.rbs +34 -0
  527. data/sig/openai/models/beta/beta_response_container_reference.rbs +23 -0
  528. data/sig/openai/models/beta/beta_response_content.rbs +33 -0
  529. data/sig/openai/models/beta/beta_response_content_part_added_event.rbs +87 -0
  530. data/sig/openai/models/beta/beta_response_content_part_done_event.rbs +87 -0
  531. data/sig/openai/models/beta/beta_response_conversation_param.rbs +17 -0
  532. data/sig/openai/models/beta/beta_response_created_event.rbs +49 -0
  533. data/sig/openai/models/beta/beta_response_custom_tool_call.rbs +105 -0
  534. data/sig/openai/models/beta/beta_response_custom_tool_call_input_delta_event.rbs +59 -0
  535. data/sig/openai/models/beta/beta_response_custom_tool_call_input_done_event.rbs +59 -0
  536. data/sig/openai/models/beta/beta_response_custom_tool_call_item.rbs +54 -0
  537. data/sig/openai/models/beta/beta_response_custom_tool_call_output.rbs +116 -0
  538. data/sig/openai/models/beta/beta_response_custom_tool_call_output_item.rbs +54 -0
  539. data/sig/openai/models/beta/beta_response_error.rbs +73 -0
  540. data/sig/openai/models/beta/beta_response_error_event.rbs +59 -0
  541. data/sig/openai/models/beta/beta_response_failed_event.rbs +49 -0
  542. data/sig/openai/models/beta/beta_response_file_search_call_completed_event.rbs +54 -0
  543. data/sig/openai/models/beta/beta_response_file_search_call_in_progress_event.rbs +54 -0
  544. data/sig/openai/models/beta/beta_response_file_search_call_searching_event.rbs +54 -0
  545. data/sig/openai/models/beta/beta_response_file_search_tool_call.rbs +127 -0
  546. data/sig/openai/models/beta/beta_response_format_text_config.rbs +38 -0
  547. data/sig/openai/models/beta/beta_response_format_text_json_schema_config.rbs +46 -0
  548. data/sig/openai/models/beta/beta_response_function_call_arguments_delta_event.rbs +59 -0
  549. data/sig/openai/models/beta/beta_response_function_call_arguments_done_event.rbs +64 -0
  550. data/sig/openai/models/beta/beta_response_function_call_output_item.rbs +18 -0
  551. data/sig/openai/models/beta/beta_response_function_call_output_item_list.rbs +12 -0
  552. data/sig/openai/models/beta/beta_response_function_shell_call_output_content.rbs +66 -0
  553. data/sig/openai/models/beta/beta_response_function_shell_tool_call.rbs +161 -0
  554. data/sig/openai/models/beta/beta_response_function_shell_tool_call_output.rbs +190 -0
  555. data/sig/openai/models/beta/beta_response_function_tool_call.rbs +126 -0
  556. data/sig/openai/models/beta/beta_response_function_tool_call_item.rbs +54 -0
  557. data/sig/openai/models/beta/beta_response_function_tool_call_output_item.rbs +138 -0
  558. data/sig/openai/models/beta/beta_response_function_web_search.rbs +165 -0
  559. data/sig/openai/models/beta/beta_response_image_gen_call_completed_event.rbs +54 -0
  560. data/sig/openai/models/beta/beta_response_image_gen_call_generating_event.rbs +54 -0
  561. data/sig/openai/models/beta/beta_response_image_gen_call_in_progress_event.rbs +54 -0
  562. data/sig/openai/models/beta/beta_response_image_gen_call_partial_image_event.rbs +64 -0
  563. data/sig/openai/models/beta/beta_response_in_progress_event.rbs +49 -0
  564. data/sig/openai/models/beta/beta_response_includable.rbs +32 -0
  565. data/sig/openai/models/beta/beta_response_incomplete_event.rbs +49 -0
  566. data/sig/openai/models/beta/beta_response_inject_created_event.rbs +41 -0
  567. data/sig/openai/models/beta/beta_response_inject_event.rbs +34 -0
  568. data/sig/openai/models/beta/beta_response_inject_failed_event.rbs +84 -0
  569. data/sig/openai/models/beta/beta_response_input.rbs +12 -0
  570. data/sig/openai/models/beta/beta_response_input_audio.rbs +62 -0
  571. data/sig/openai/models/beta/beta_response_input_content.rbs +18 -0
  572. data/sig/openai/models/beta/beta_response_input_file.rbs +90 -0
  573. data/sig/openai/models/beta/beta_response_input_file_content.rbs +80 -0
  574. data/sig/openai/models/beta/beta_response_input_image.rbs +71 -0
  575. data/sig/openai/models/beta/beta_response_input_image_content.rbs +67 -0
  576. data/sig/openai/models/beta/beta_response_input_item.rbs +2064 -0
  577. data/sig/openai/models/beta/beta_response_input_message_content_list.rbs +12 -0
  578. data/sig/openai/models/beta/beta_response_input_message_item.rbs +87 -0
  579. data/sig/openai/models/beta/beta_response_input_text.rbs +48 -0
  580. data/sig/openai/models/beta/beta_response_input_text_content.rbs +44 -0
  581. data/sig/openai/models/beta/beta_response_item.rbs +1097 -0
  582. data/sig/openai/models/beta/beta_response_local_environment.rbs +17 -0
  583. data/sig/openai/models/beta/beta_response_mcp_call_arguments_delta_event.rbs +59 -0
  584. data/sig/openai/models/beta/beta_response_mcp_call_arguments_done_event.rbs +59 -0
  585. data/sig/openai/models/beta/beta_response_mcp_call_completed_event.rbs +54 -0
  586. data/sig/openai/models/beta/beta_response_mcp_call_failed_event.rbs +54 -0
  587. data/sig/openai/models/beta/beta_response_mcp_call_in_progress_event.rbs +54 -0
  588. data/sig/openai/models/beta/beta_response_mcp_list_tools_completed_event.rbs +54 -0
  589. data/sig/openai/models/beta/beta_response_mcp_list_tools_failed_event.rbs +54 -0
  590. data/sig/openai/models/beta/beta_response_mcp_list_tools_in_progress_event.rbs +54 -0
  591. data/sig/openai/models/beta/beta_response_output_audio.rbs +30 -0
  592. data/sig/openai/models/beta/beta_response_output_item.rbs +1096 -0
  593. data/sig/openai/models/beta/beta_response_output_item_added_event.rbs +54 -0
  594. data/sig/openai/models/beta/beta_response_output_item_done_event.rbs +54 -0
  595. data/sig/openai/models/beta/beta_response_output_message.rbs +97 -0
  596. data/sig/openai/models/beta/beta_response_output_refusal.rbs +19 -0
  597. data/sig/openai/models/beta/beta_response_output_text.rbs +243 -0
  598. data/sig/openai/models/beta/beta_response_output_text_annotation_added_event.rbs +69 -0
  599. data/sig/openai/models/beta/beta_response_prompt.rbs +46 -0
  600. data/sig/openai/models/beta/beta_response_queued_event.rbs +49 -0
  601. data/sig/openai/models/beta/beta_response_reasoning_item.rbs +108 -0
  602. data/sig/openai/models/beta/beta_response_reasoning_summary_part_added_event.rbs +76 -0
  603. data/sig/openai/models/beta/beta_response_reasoning_summary_part_done_event.rbs +95 -0
  604. data/sig/openai/models/beta/beta_response_reasoning_summary_text_delta_event.rbs +64 -0
  605. data/sig/openai/models/beta/beta_response_reasoning_summary_text_done_event.rbs +64 -0
  606. data/sig/openai/models/beta/beta_response_reasoning_text_delta_event.rbs +64 -0
  607. data/sig/openai/models/beta/beta_response_reasoning_text_done_event.rbs +64 -0
  608. data/sig/openai/models/beta/beta_response_refusal_delta_event.rbs +64 -0
  609. data/sig/openai/models/beta/beta_response_refusal_done_event.rbs +64 -0
  610. data/sig/openai/models/beta/beta_response_status.rbs +23 -0
  611. data/sig/openai/models/beta/beta_response_stream_event.rbs +68 -0
  612. data/sig/openai/models/beta/beta_response_text_config.rbs +45 -0
  613. data/sig/openai/models/beta/beta_response_text_delta_event.rbs +116 -0
  614. data/sig/openai/models/beta/beta_response_text_done_event.rbs +116 -0
  615. data/sig/openai/models/beta/beta_response_tool_search_call.rbs +98 -0
  616. data/sig/openai/models/beta/beta_response_tool_search_output_item.rbs +98 -0
  617. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +91 -0
  618. data/sig/openai/models/beta/beta_response_usage.rbs +73 -0
  619. data/sig/openai/models/beta/beta_response_web_search_call_completed_event.rbs +54 -0
  620. data/sig/openai/models/beta/beta_response_web_search_call_in_progress_event.rbs +54 -0
  621. data/sig/openai/models/beta/beta_response_web_search_call_searching_event.rbs +54 -0
  622. data/sig/openai/models/beta/beta_responses_client_event.rbs +804 -0
  623. data/sig/openai/models/beta/beta_responses_server_event.rbs +70 -0
  624. data/sig/openai/models/beta/beta_skill_reference.rbs +32 -0
  625. data/sig/openai/models/beta/beta_tool.rbs +634 -0
  626. data/sig/openai/models/beta/beta_tool_choice_allowed.rbs +45 -0
  627. data/sig/openai/models/beta/beta_tool_choice_apply_patch.rbs +17 -0
  628. data/sig/openai/models/beta/beta_tool_choice_custom.rbs +19 -0
  629. data/sig/openai/models/beta/beta_tool_choice_function.rbs +19 -0
  630. data/sig/openai/models/beta/beta_tool_choice_mcp.rbs +26 -0
  631. data/sig/openai/models/beta/beta_tool_choice_options.rbs +19 -0
  632. data/sig/openai/models/beta/beta_tool_choice_shell.rbs +17 -0
  633. data/sig/openai/models/beta/beta_tool_choice_types.rbs +47 -0
  634. data/sig/openai/models/beta/beta_tool_search_tool.rbs +54 -0
  635. data/sig/openai/models/beta/beta_web_search_preview_tool.rbs +118 -0
  636. data/sig/openai/models/beta/beta_web_search_tool.rbs +127 -0
  637. data/sig/openai/models/beta/response_cancel_params.rbs +47 -0
  638. data/sig/openai/models/beta/response_compact_params.rbs +368 -0
  639. data/sig/openai/models/beta/response_create_params.rbs +804 -0
  640. data/sig/openai/models/beta/response_delete_params.rbs +47 -0
  641. data/sig/openai/models/beta/response_retrieve_params.rbs +70 -0
  642. data/sig/openai/models/beta/responses/beta_response_item_list.rbs +44 -0
  643. data/sig/openai/models/beta/responses/input_item_list_params.rbs +92 -0
  644. data/sig/openai/models/beta/responses/input_token_count_params.rbs +325 -0
  645. data/sig/openai/models/beta/responses/input_token_count_response.rbs +26 -0
  646. data/sig/openai/models/chat/chat_completion_content_part.rbs +21 -2
  647. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +21 -2
  648. data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +21 -2
  649. data/sig/openai/models/chat/chat_completion_content_part_text.rbs +32 -3
  650. data/sig/openai/models/chat/completion_create_params.rbs +153 -3
  651. data/sig/openai/models/chat_model.rbs +7 -1
  652. data/sig/openai/models/completion_usage.rbs +15 -2
  653. data/sig/openai/models/conversations/computer_screenshot_content.rbs +21 -2
  654. data/sig/openai/models/conversations/conversation_item.rbs +87 -0
  655. data/sig/openai/models/realtime/realtime_response_create_mcp_tool.rbs +16 -0
  656. data/sig/openai/models/realtime/realtime_session_create_request.rbs +4 -0
  657. data/sig/openai/models/realtime/realtime_session_create_response.rbs +20 -0
  658. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +16 -0
  659. data/sig/openai/models/reasoning.rbs +20 -0
  660. data/sig/openai/models/reasoning_effort.rbs +3 -1
  661. data/sig/openai/models/responses/apply_patch_tool.rbs +26 -3
  662. data/sig/openai/models/responses/custom_tool.rbs +16 -0
  663. data/sig/openai/models/responses/function_shell_tool.rbs +16 -0
  664. data/sig/openai/models/responses/function_tool.rbs +23 -2
  665. data/sig/openai/models/responses/input_token_count_params.rbs +12 -0
  666. data/sig/openai/models/responses/namespace_tool.rbs +21 -0
  667. data/sig/openai/models/responses/response.rbs +64 -0
  668. data/sig/openai/models/responses/response_apply_patch_tool_call.rbs +37 -0
  669. data/sig/openai/models/responses/response_apply_patch_tool_call_output.rbs +37 -0
  670. data/sig/openai/models/responses/response_compact_params.rbs +63 -1
  671. data/sig/openai/models/responses/response_create_params.rbs +165 -3
  672. data/sig/openai/models/responses/response_custom_tool_call.rbs +37 -0
  673. data/sig/openai/models/responses/response_custom_tool_call_output.rbs +39 -2
  674. data/sig/openai/models/responses/response_error.rbs +2 -0
  675. data/sig/openai/models/responses/response_function_shell_tool_call.rbs +37 -0
  676. data/sig/openai/models/responses/response_function_shell_tool_call_output.rbs +37 -0
  677. data/sig/openai/models/responses/response_function_tool_call.rbs +37 -0
  678. data/sig/openai/models/responses/response_function_tool_call_output_item.rbs +37 -0
  679. data/sig/openai/models/responses/response_input_file.rbs +23 -3
  680. data/sig/openai/models/responses/response_input_file_content.rbs +19 -3
  681. data/sig/openai/models/responses/response_input_image.rbs +21 -2
  682. data/sig/openai/models/responses/response_input_image_content.rbs +17 -2
  683. data/sig/openai/models/responses/response_input_item.rbs +274 -2
  684. data/sig/openai/models/responses/response_input_text.rbs +32 -3
  685. data/sig/openai/models/responses/response_input_text_content.rbs +28 -3
  686. data/sig/openai/models/responses/response_item.rbs +87 -0
  687. data/sig/openai/models/responses/response_output_item.rbs +87 -0
  688. data/sig/openai/models/responses/response_reasoning_summary_part_done_event.rbs +21 -2
  689. data/sig/openai/models/responses/response_usage.rbs +12 -3
  690. data/sig/openai/models/responses/responses_client_event.rbs +165 -3
  691. data/sig/openai/models/responses/tool.rbs +45 -2
  692. data/sig/openai/models/webhooks/safety_identifier_blocked_webhook_event.rbs +99 -0
  693. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  694. data/sig/openai/resources/beta/responses/input_items.rbs +21 -0
  695. data/sig/openai/resources/beta/responses/input_tokens.rbs +28 -0
  696. data/sig/openai/resources/beta/responses.rbs +128 -0
  697. data/sig/openai/resources/beta.rbs +2 -0
  698. data/sig/openai/resources/chat/completions.rbs +2 -0
  699. data/sig/openai/resources/responses.rbs +3 -0
  700. data/sig/openai/resources/webhooks.rbs +2 -1
  701. metadata +491 -2
@@ -0,0 +1,1425 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ # @see OpenAI::Resources::Beta::Responses#create
7
+ #
8
+ # @see OpenAI::Resources::Beta::Responses#stream_raw
9
+ class BetaResponse < OpenAI::Internal::Type::BaseModel
10
+ # @!attribute id
11
+ # Unique identifier for this Response.
12
+ #
13
+ # @return [String]
14
+ required :id, String
15
+
16
+ # @!attribute created_at
17
+ # Unix timestamp (in seconds) of when this Response was created.
18
+ #
19
+ # @return [Float]
20
+ required :created_at, Float
21
+
22
+ # @!attribute error
23
+ # An error object returned when the model fails to generate a Response.
24
+ #
25
+ # @return [OpenAI::Models::Beta::BetaResponseError, nil]
26
+ required :error, -> { OpenAI::Beta::BetaResponseError }, nil?: true
27
+
28
+ # @!attribute incomplete_details
29
+ # Details about why the response is incomplete.
30
+ #
31
+ # @return [OpenAI::Models::Beta::BetaResponse::IncompleteDetails, nil]
32
+ required :incomplete_details, -> { OpenAI::Beta::BetaResponse::IncompleteDetails }, nil?: true
33
+
34
+ # @!attribute instructions
35
+ # A system (or developer) message inserted into the model's context.
36
+ #
37
+ # When using along with `previous_response_id`, the instructions from a previous
38
+ # response will not be carried over to the next response. This makes it simple to
39
+ # swap out system (or developer) messages in new responses.
40
+ #
41
+ # @return [String, Array<OpenAI::Models::Beta::BetaEasyInputMessage, OpenAI::Models::Beta::BetaResponseInputItem::Message, OpenAI::Models::Beta::BetaResponseOutputMessage, OpenAI::Models::Beta::BetaResponseFileSearchToolCall, OpenAI::Models::Beta::BetaResponseComputerToolCall, OpenAI::Models::Beta::BetaResponseInputItem::ComputerCallOutput, OpenAI::Models::Beta::BetaResponseFunctionWebSearch, OpenAI::Models::Beta::BetaResponseFunctionToolCall, OpenAI::Models::Beta::BetaResponseInputItem::FunctionCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::AgentMessage, OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCall, OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::ToolSearchCall, OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam, OpenAI::Models::Beta::BetaResponseInputItem::AdditionalTools, OpenAI::Models::Beta::BetaResponseReasoningItem, OpenAI::Models::Beta::BetaResponseCompactionItemParam, OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall, OpenAI::Models::Beta::BetaResponseCodeInterpreterToolCall, OpenAI::Models::Beta::BetaResponseInputItem::LocalShellCall, OpenAI::Models::Beta::BetaResponseInputItem::LocalShellCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::ShellCall, OpenAI::Models::Beta::BetaResponseInputItem::ShellCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::ApplyPatchCall, OpenAI::Models::Beta::BetaResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::McpListTools, OpenAI::Models::Beta::BetaResponseInputItem::McpApprovalRequest, OpenAI::Models::Beta::BetaResponseInputItem::McpApprovalResponse, OpenAI::Models::Beta::BetaResponseInputItem::McpCall, OpenAI::Models::Beta::BetaResponseCustomToolCallOutput, OpenAI::Models::Beta::BetaResponseCustomToolCall, OpenAI::Models::Beta::BetaResponseInputItem::CompactionTrigger, OpenAI::Models::Beta::BetaResponseInputItem::ItemReference, OpenAI::Models::Beta::BetaResponseInputItem::Program, OpenAI::Models::Beta::BetaResponseInputItem::ProgramOutput>, nil]
42
+ required :instructions, union: -> { OpenAI::Beta::BetaResponse::Instructions }, nil?: true
43
+
44
+ # @!attribute metadata
45
+ # Set of 16 key-value pairs that can be attached to an object. This can be useful
46
+ # for storing additional information about the object in a structured format, and
47
+ # querying for objects via API or the dashboard.
48
+ #
49
+ # Keys are strings with a maximum length of 64 characters. Values are strings with
50
+ # a maximum length of 512 characters.
51
+ #
52
+ # @return [Hash{Symbol=>String}, nil]
53
+ required :metadata, OpenAI::Internal::Type::HashOf[String], nil?: true
54
+
55
+ # @!attribute model
56
+ # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
57
+ # wide range of models with different capabilities, performance characteristics,
58
+ # and price points. Refer to the
59
+ # [model guide](https://platform.openai.com/docs/models) to browse and compare
60
+ # available models.
61
+ #
62
+ # @return [Symbol, String, OpenAI::Models::Beta::BetaResponse::Model]
63
+ required :model, union: -> { OpenAI::Beta::BetaResponse::Model }
64
+
65
+ # @!attribute object
66
+ # The object type of this resource - always set to `response`.
67
+ #
68
+ # @return [Symbol, :response]
69
+ required :object, const: :response
70
+
71
+ # @!attribute output
72
+ # An array of content items generated by the model.
73
+ #
74
+ # - The length and order of items in the `output` array is dependent on the
75
+ # model's response.
76
+ # - Rather than accessing the first item in the `output` array and assuming it's
77
+ # an `assistant` message with the content generated by the model, you might
78
+ # consider using the `output_text` property where supported in SDKs.
79
+ #
80
+ # @return [Array<OpenAI::Models::Beta::BetaResponseOutputMessage, OpenAI::Models::Beta::BetaResponseFileSearchToolCall, OpenAI::Models::Beta::BetaResponseFunctionToolCall, OpenAI::Models::Beta::BetaResponseFunctionToolCallOutputItem, OpenAI::Models::Beta::BetaResponseOutputItem::AgentMessage, OpenAI::Models::Beta::BetaResponseOutputItem::MultiAgentCall, OpenAI::Models::Beta::BetaResponseOutputItem::MultiAgentCallOutput, OpenAI::Models::Beta::BetaResponseFunctionWebSearch, OpenAI::Models::Beta::BetaResponseComputerToolCall, OpenAI::Models::Beta::BetaResponseComputerToolCallOutputItem, OpenAI::Models::Beta::BetaResponseReasoningItem, OpenAI::Models::Beta::BetaResponseOutputItem::Program, OpenAI::Models::Beta::BetaResponseOutputItem::ProgramOutput, OpenAI::Models::Beta::BetaResponseToolSearchCall, OpenAI::Models::Beta::BetaResponseToolSearchOutputItem, OpenAI::Models::Beta::BetaResponseOutputItem::AdditionalTools, OpenAI::Models::Beta::BetaResponseCompactionItem, OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall, OpenAI::Models::Beta::BetaResponseCodeInterpreterToolCall, OpenAI::Models::Beta::BetaResponseOutputItem::LocalShellCall, OpenAI::Models::Beta::BetaResponseOutputItem::LocalShellCallOutput, OpenAI::Models::Beta::BetaResponseFunctionShellToolCall, OpenAI::Models::Beta::BetaResponseFunctionShellToolCallOutput, OpenAI::Models::Beta::BetaResponseApplyPatchToolCall, OpenAI::Models::Beta::BetaResponseApplyPatchToolCallOutput, OpenAI::Models::Beta::BetaResponseOutputItem::McpCall, OpenAI::Models::Beta::BetaResponseOutputItem::McpListTools, OpenAI::Models::Beta::BetaResponseOutputItem::McpApprovalRequest, OpenAI::Models::Beta::BetaResponseOutputItem::McpApprovalResponse, OpenAI::Models::Beta::BetaResponseCustomToolCall, OpenAI::Models::Beta::BetaResponseCustomToolCallOutputItem>]
81
+ required :output, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Beta::BetaResponseOutputItem] }
82
+
83
+ # @!attribute parallel_tool_calls
84
+ # Whether to allow the model to run tool calls in parallel.
85
+ #
86
+ # @return [Boolean]
87
+ required :parallel_tool_calls, OpenAI::Internal::Type::Boolean
88
+
89
+ # @!attribute temperature
90
+ # What sampling temperature to use, between 0 and 2. Higher values like 0.8 will
91
+ # make the output more random, while lower values like 0.2 will make it more
92
+ # focused and deterministic. We generally recommend altering this or `top_p` but
93
+ # not both.
94
+ #
95
+ # @return [Float, nil]
96
+ required :temperature, Float, nil?: true
97
+
98
+ # @!attribute tool_choice
99
+ # How the model should select which tool (or tools) to use when generating a
100
+ # response. See the `tools` parameter to see how to specify which tools the model
101
+ # can call.
102
+ #
103
+ # @return [Symbol, OpenAI::Models::Beta::BetaToolChoiceOptions, OpenAI::Models::Beta::BetaToolChoiceAllowed, OpenAI::Models::Beta::BetaToolChoiceTypes, OpenAI::Models::Beta::BetaToolChoiceFunction, OpenAI::Models::Beta::BetaToolChoiceMcp, OpenAI::Models::Beta::BetaToolChoiceCustom, OpenAI::Models::Beta::BetaResponse::ToolChoice::BetaSpecificProgrammaticToolCallingParam, OpenAI::Models::Beta::BetaToolChoiceApplyPatch, OpenAI::Models::Beta::BetaToolChoiceShell]
104
+ required :tool_choice, union: -> { OpenAI::Beta::BetaResponse::ToolChoice }
105
+
106
+ # @!attribute tools
107
+ # An array of tools the model may call while generating a response. You can
108
+ # specify which tool to use by setting the `tool_choice` parameter.
109
+ #
110
+ # We support the following categories of tools:
111
+ #
112
+ # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
113
+ # capabilities, like
114
+ # [web search](https://platform.openai.com/docs/guides/tools-web-search) or
115
+ # [file search](https://platform.openai.com/docs/guides/tools-file-search).
116
+ # Learn more about
117
+ # [built-in tools](https://platform.openai.com/docs/guides/tools).
118
+ # - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
119
+ # predefined connectors such as Google Drive and SharePoint. Learn more about
120
+ # [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
121
+ # - **Function calls (custom tools)**: Functions that are defined by you, enabling
122
+ # the model to call your own code with strongly typed arguments and outputs.
123
+ # Learn more about
124
+ # [function calling](https://platform.openai.com/docs/guides/function-calling).
125
+ # You can also use custom tools to call your own code.
126
+ #
127
+ # @return [Array<OpenAI::Models::Beta::BetaFunctionTool, OpenAI::Models::Beta::BetaFileSearchTool, OpenAI::Models::Beta::BetaComputerTool, OpenAI::Models::Beta::BetaComputerUsePreviewTool, OpenAI::Models::Beta::BetaTool::Mcp, OpenAI::Models::Beta::BetaTool::CodeInterpreter, OpenAI::Models::Beta::BetaTool::ProgrammaticToolCalling, OpenAI::Models::Beta::BetaTool::ImageGeneration, OpenAI::Models::Beta::BetaTool::LocalShell, OpenAI::Models::Beta::BetaFunctionShellTool, OpenAI::Models::Beta::BetaCustomTool, OpenAI::Models::Beta::BetaNamespaceTool, OpenAI::Models::Beta::BetaToolSearchTool, OpenAI::Models::Beta::BetaApplyPatchTool, OpenAI::Models::Beta::BetaWebSearchTool, OpenAI::Models::Beta::BetaWebSearchPreviewTool>]
128
+ required :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Beta::BetaTool] }
129
+
130
+ # @!attribute top_p
131
+ # An alternative to sampling with temperature, called nucleus sampling, where the
132
+ # model considers the results of the tokens with top_p probability mass. So 0.1
133
+ # means only the tokens comprising the top 10% probability mass are considered.
134
+ #
135
+ # We generally recommend altering this or `temperature` but not both.
136
+ #
137
+ # @return [Float, nil]
138
+ required :top_p, Float, nil?: true
139
+
140
+ # @!attribute background
141
+ # Whether to run the model response in the background.
142
+ # [Learn more](https://platform.openai.com/docs/guides/background).
143
+ #
144
+ # @return [Boolean, nil]
145
+ optional :background, OpenAI::Internal::Type::Boolean, nil?: true
146
+
147
+ # @!attribute completed_at
148
+ # Unix timestamp (in seconds) of when this Response was completed. Only present
149
+ # when the status is `completed`.
150
+ #
151
+ # @return [Float, nil]
152
+ optional :completed_at, Float, nil?: true
153
+
154
+ # @!attribute conversation
155
+ # The conversation that this response belonged to. Input items and output items
156
+ # from this response were automatically added to this conversation.
157
+ #
158
+ # @return [OpenAI::Models::Beta::BetaResponse::Conversation, nil]
159
+ optional :conversation, -> { OpenAI::Beta::BetaResponse::Conversation }, nil?: true
160
+
161
+ # @!attribute max_output_tokens
162
+ # An upper bound for the number of tokens that can be generated for a response,
163
+ # including visible output tokens and
164
+ # [reasoning tokens](https://platform.openai.com/docs/guides/reasoning).
165
+ #
166
+ # @return [Integer, nil]
167
+ optional :max_output_tokens, Integer, nil?: true
168
+
169
+ # @!attribute max_tool_calls
170
+ # The maximum number of total calls to built-in tools that can be processed in a
171
+ # response. This maximum number applies across all built-in tool calls, not per
172
+ # individual tool. Any further attempts to call a tool by the model will be
173
+ # ignored.
174
+ #
175
+ # @return [Integer, nil]
176
+ optional :max_tool_calls, Integer, nil?: true
177
+
178
+ # @!attribute moderation
179
+ # Moderation results for the response input and output, if moderated completions
180
+ # were requested.
181
+ #
182
+ # @return [OpenAI::Models::Beta::BetaResponse::Moderation, nil]
183
+ optional :moderation, -> { OpenAI::Beta::BetaResponse::Moderation }, nil?: true
184
+
185
+ # @!attribute previous_response_id
186
+ # The unique ID of the previous response to the model. Use this to create
187
+ # multi-turn conversations. Learn more about
188
+ # [conversation state](https://platform.openai.com/docs/guides/conversation-state).
189
+ # Cannot be used in conjunction with `conversation`.
190
+ #
191
+ # @return [String, nil]
192
+ optional :previous_response_id, String, nil?: true
193
+
194
+ # @!attribute prompt
195
+ # Reference to a prompt template and its variables.
196
+ # [Learn more](https://platform.openai.com/docs/guides/text?api-mode=responses#reusable-prompts).
197
+ #
198
+ # @return [OpenAI::Models::Beta::BetaResponsePrompt, nil]
199
+ optional :prompt, -> { OpenAI::Beta::BetaResponsePrompt }, nil?: true
200
+
201
+ # @!attribute prompt_cache_key
202
+ # Used by OpenAI to cache responses for similar requests to optimize your cache
203
+ # hit rates. Replaces the `user` field.
204
+ # [Learn more](https://platform.openai.com/docs/guides/prompt-caching).
205
+ #
206
+ # @return [String, nil]
207
+ optional :prompt_cache_key, String
208
+
209
+ # @!attribute prompt_cache_options
210
+ # The prompt-caching options that were applied to the response. Supported for
211
+ # `gpt-5.6` and later models.
212
+ #
213
+ # @return [OpenAI::Models::Beta::BetaResponse::PromptCacheOptions, nil]
214
+ optional :prompt_cache_options, -> { OpenAI::Beta::BetaResponse::PromptCacheOptions }
215
+
216
+ # @!attribute prompt_cache_retention
217
+ # @deprecated
218
+ #
219
+ # Deprecated. Use `prompt_cache_options.ttl` instead.
220
+ #
221
+ # The retention policy for the prompt cache. Set to `24h` to enable extended
222
+ # prompt caching, which keeps cached prefixes active for longer, up to a maximum
223
+ # of 24 hours.
224
+ # [Learn more](https://platform.openai.com/docs/guides/prompt-caching#prompt-cache-retention).
225
+ # This field expresses a maximum retention policy, while
226
+ # `prompt_cache_options.ttl` expresses a minimum cache lifetime. The two fields
227
+ # are independent and do not interact. For `gpt-5.5`, `gpt-5.5-pro`, and future
228
+ # models, only `24h` is supported.
229
+ #
230
+ # For older models that support both `in_memory` and `24h`, the default depends on
231
+ # your organization's data retention policy:
232
+ #
233
+ # - Organizations without ZDR enabled default to `24h`.
234
+ # - Organizations with ZDR enabled default to `in_memory` when
235
+ # `prompt_cache_retention` is not specified.
236
+ #
237
+ # @return [Symbol, OpenAI::Models::Beta::BetaResponse::PromptCacheRetention, nil]
238
+ optional :prompt_cache_retention,
239
+ enum: -> { OpenAI::Beta::BetaResponse::PromptCacheRetention },
240
+ nil?: true
241
+
242
+ # @!attribute reasoning
243
+ # **gpt-5 and o-series models only**
244
+ #
245
+ # Configuration options for
246
+ # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
247
+ #
248
+ # @return [OpenAI::Models::Beta::BetaResponse::Reasoning, nil]
249
+ optional :reasoning, -> { OpenAI::Beta::BetaResponse::Reasoning }, nil?: true
250
+
251
+ # @!attribute safety_identifier
252
+ # A stable identifier used to help detect users of your application that may be
253
+ # violating OpenAI's usage policies. The IDs should be a string that uniquely
254
+ # identifies each user, with a maximum length of 64 characters. We recommend
255
+ # hashing their username or email address, in order to avoid sending us any
256
+ # identifying information.
257
+ # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
258
+ #
259
+ # @return [String, nil]
260
+ optional :safety_identifier, String
261
+
262
+ # @!attribute service_tier
263
+ # Specifies the processing type used for serving the request.
264
+ #
265
+ # - If set to 'auto', then the request will be processed with the service tier
266
+ # configured in the Project settings. Unless otherwise configured, the Project
267
+ # will use 'default'.
268
+ # - If set to 'default', then the request will be processed with the standard
269
+ # pricing and performance for the selected model.
270
+ # - If set to '[flex](https://platform.openai.com/docs/guides/flex-processing)' or
271
+ # '[priority](https://openai.com/api-priority-processing/)', then the request
272
+ # will be processed with the corresponding service tier.
273
+ # - When not set, the default behavior is 'auto'.
274
+ #
275
+ # When the `service_tier` parameter is set, the response body will include the
276
+ # `service_tier` value based on the processing mode actually used to serve the
277
+ # request. This response value may be different from the value set in the
278
+ # parameter.
279
+ #
280
+ # @return [Symbol, OpenAI::Models::Beta::BetaResponse::ServiceTier, nil]
281
+ optional :service_tier, enum: -> { OpenAI::Beta::BetaResponse::ServiceTier }, nil?: true
282
+
283
+ # @!attribute status
284
+ # The status of the response generation. One of `completed`, `failed`,
285
+ # `in_progress`, `cancelled`, `queued`, or `incomplete`.
286
+ #
287
+ # @return [Symbol, OpenAI::Models::Beta::BetaResponseStatus, nil]
288
+ optional :status, enum: -> { OpenAI::Beta::BetaResponseStatus }
289
+
290
+ # @!attribute text
291
+ # Configuration options for a text response from the model. Can be plain text or
292
+ # structured JSON data. Learn more:
293
+ #
294
+ # - [Text inputs and outputs](https://platform.openai.com/docs/guides/text)
295
+ # - [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)
296
+ #
297
+ # @return [OpenAI::Models::Beta::BetaResponseTextConfig, nil]
298
+ optional :text, -> { OpenAI::Beta::BetaResponseTextConfig }
299
+
300
+ # @!attribute top_logprobs
301
+ # An integer between 0 and 20 specifying the maximum number of most likely tokens
302
+ # to return at each token position, each with an associated log probability. In
303
+ # some cases, the number of returned tokens may be fewer than requested.
304
+ #
305
+ # @return [Integer, nil]
306
+ optional :top_logprobs, Integer, nil?: true
307
+
308
+ # @!attribute truncation
309
+ # The truncation strategy to use for the model response.
310
+ #
311
+ # - `auto`: If the input to this Response exceeds the model's context window size,
312
+ # the model will truncate the response to fit the context window by dropping
313
+ # items from the beginning of the conversation.
314
+ # - `disabled` (default): If the input size will exceed the context window size
315
+ # for a model, the request will fail with a 400 error.
316
+ #
317
+ # @return [Symbol, OpenAI::Models::Beta::BetaResponse::Truncation, nil]
318
+ optional :truncation, enum: -> { OpenAI::Beta::BetaResponse::Truncation }, nil?: true
319
+
320
+ # @!attribute usage
321
+ # Represents token usage details including input tokens, output tokens, a
322
+ # breakdown of output tokens, and the total tokens used.
323
+ #
324
+ # @return [OpenAI::Models::Beta::BetaResponseUsage, nil]
325
+ optional :usage, -> { OpenAI::Beta::BetaResponseUsage }
326
+
327
+ # @!attribute user
328
+ # @deprecated
329
+ #
330
+ # This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use
331
+ # `prompt_cache_key` instead to maintain caching optimizations. A stable
332
+ # identifier for your end-users. Used to boost cache hit rates by better bucketing
333
+ # similar requests and to help OpenAI detect and prevent abuse.
334
+ # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
335
+ #
336
+ # @return [String, nil]
337
+ optional :user, String
338
+
339
+ # @!method initialize(id:, created_at:, error:, incomplete_details:, instructions:, metadata:, model:, output:, parallel_tool_calls:, temperature:, tool_choice:, tools:, top_p:, background: nil, completed_at: nil, conversation: nil, max_output_tokens: nil, max_tool_calls: nil, moderation: nil, previous_response_id: nil, prompt: nil, prompt_cache_key: nil, prompt_cache_options: nil, prompt_cache_retention: nil, reasoning: nil, safety_identifier: nil, service_tier: nil, status: nil, text: nil, top_logprobs: nil, truncation: nil, usage: nil, user: nil, object: :response)
340
+ # Some parameter documentations has been truncated, see
341
+ # {OpenAI::Models::Beta::BetaResponse} for more details.
342
+ #
343
+ # @param id [String] Unique identifier for this Response.
344
+ #
345
+ # @param created_at [Float] Unix timestamp (in seconds) of when this Response was created.
346
+ #
347
+ # @param error [OpenAI::Models::Beta::BetaResponseError, nil] An error object returned when the model fails to generate a Response.
348
+ #
349
+ # @param incomplete_details [OpenAI::Models::Beta::BetaResponse::IncompleteDetails, nil] Details about why the response is incomplete.
350
+ #
351
+ # @param instructions [String, Array<OpenAI::Models::Beta::BetaEasyInputMessage, OpenAI::Models::Beta::BetaResponseInputItem::Message, OpenAI::Models::Beta::BetaResponseOutputMessage, OpenAI::Models::Beta::BetaResponseFileSearchToolCall, OpenAI::Models::Beta::BetaResponseComputerToolCall, OpenAI::Models::Beta::BetaResponseInputItem::ComputerCallOutput, OpenAI::Models::Beta::BetaResponseFunctionWebSearch, OpenAI::Models::Beta::BetaResponseFunctionToolCall, OpenAI::Models::Beta::BetaResponseInputItem::FunctionCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::AgentMessage, OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCall, OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::ToolSearchCall, OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam, OpenAI::Models::Beta::BetaResponseInputItem::AdditionalTools, OpenAI::Models::Beta::BetaResponseReasoningItem, OpenAI::Models::Beta::BetaResponseCompactionItemParam, OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall, OpenAI::Models::Beta::BetaResponseCodeInterpreterToolCall, OpenAI::Models::Beta::BetaResponseInputItem::LocalShellCall, OpenAI::Models::Beta::BetaResponseInputItem::LocalShellCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::ShellCall, OpenAI::Models::Beta::BetaResponseInputItem::ShellCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::ApplyPatchCall, OpenAI::Models::Beta::BetaResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::McpListTools, OpenAI::Models::Beta::BetaResponseInputItem::McpApprovalRequest, OpenAI::Models::Beta::BetaResponseInputItem::McpApprovalResponse, OpenAI::Models::Beta::BetaResponseInputItem::McpCall, OpenAI::Models::Beta::BetaResponseCustomToolCallOutput, OpenAI::Models::Beta::BetaResponseCustomToolCall, OpenAI::Models::Beta::BetaResponseInputItem::CompactionTrigger, OpenAI::Models::Beta::BetaResponseInputItem::ItemReference, OpenAI::Models::Beta::BetaResponseInputItem::Program, OpenAI::Models::Beta::BetaResponseInputItem::ProgramOutput>, nil] A system (or developer) message inserted into the model's context.
352
+ #
353
+ # @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
354
+ #
355
+ # @param model [Symbol, String, OpenAI::Models::Beta::BetaResponse::Model] Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI
356
+ #
357
+ # @param output [Array<OpenAI::Models::Beta::BetaResponseOutputMessage, OpenAI::Models::Beta::BetaResponseFileSearchToolCall, OpenAI::Models::Beta::BetaResponseFunctionToolCall, OpenAI::Models::Beta::BetaResponseFunctionToolCallOutputItem, OpenAI::Models::Beta::BetaResponseOutputItem::AgentMessage, OpenAI::Models::Beta::BetaResponseOutputItem::MultiAgentCall, OpenAI::Models::Beta::BetaResponseOutputItem::MultiAgentCallOutput, OpenAI::Models::Beta::BetaResponseFunctionWebSearch, OpenAI::Models::Beta::BetaResponseComputerToolCall, OpenAI::Models::Beta::BetaResponseComputerToolCallOutputItem, OpenAI::Models::Beta::BetaResponseReasoningItem, OpenAI::Models::Beta::BetaResponseOutputItem::Program, OpenAI::Models::Beta::BetaResponseOutputItem::ProgramOutput, OpenAI::Models::Beta::BetaResponseToolSearchCall, OpenAI::Models::Beta::BetaResponseToolSearchOutputItem, OpenAI::Models::Beta::BetaResponseOutputItem::AdditionalTools, OpenAI::Models::Beta::BetaResponseCompactionItem, OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall, OpenAI::Models::Beta::BetaResponseCodeInterpreterToolCall, OpenAI::Models::Beta::BetaResponseOutputItem::LocalShellCall, OpenAI::Models::Beta::BetaResponseOutputItem::LocalShellCallOutput, OpenAI::Models::Beta::BetaResponseFunctionShellToolCall, OpenAI::Models::Beta::BetaResponseFunctionShellToolCallOutput, OpenAI::Models::Beta::BetaResponseApplyPatchToolCall, OpenAI::Models::Beta::BetaResponseApplyPatchToolCallOutput, OpenAI::Models::Beta::BetaResponseOutputItem::McpCall, OpenAI::Models::Beta::BetaResponseOutputItem::McpListTools, OpenAI::Models::Beta::BetaResponseOutputItem::McpApprovalRequest, OpenAI::Models::Beta::BetaResponseOutputItem::McpApprovalResponse, OpenAI::Models::Beta::BetaResponseCustomToolCall, OpenAI::Models::Beta::BetaResponseCustomToolCallOutputItem>] An array of content items generated by the model.
358
+ #
359
+ # @param parallel_tool_calls [Boolean] Whether to allow the model to run tool calls in parallel.
360
+ #
361
+ # @param temperature [Float, nil] What sampling temperature to use, between 0 and 2. Higher values like 0.8 will m
362
+ #
363
+ # @param tool_choice [Symbol, OpenAI::Models::Beta::BetaToolChoiceOptions, OpenAI::Models::Beta::BetaToolChoiceAllowed, OpenAI::Models::Beta::BetaToolChoiceTypes, OpenAI::Models::Beta::BetaToolChoiceFunction, OpenAI::Models::Beta::BetaToolChoiceMcp, OpenAI::Models::Beta::BetaToolChoiceCustom, OpenAI::Models::Beta::BetaResponse::ToolChoice::BetaSpecificProgrammaticToolCallingParam, OpenAI::Models::Beta::BetaToolChoiceApplyPatch, OpenAI::Models::Beta::BetaToolChoiceShell] How the model should select which tool (or tools) to use when generating
364
+ #
365
+ # @param tools [Array<OpenAI::Models::Beta::BetaFunctionTool, OpenAI::Models::Beta::BetaFileSearchTool, OpenAI::Models::Beta::BetaComputerTool, OpenAI::Models::Beta::BetaComputerUsePreviewTool, OpenAI::Models::Beta::BetaTool::Mcp, OpenAI::Models::Beta::BetaTool::CodeInterpreter, OpenAI::Models::Beta::BetaTool::ProgrammaticToolCalling, OpenAI::Models::Beta::BetaTool::ImageGeneration, OpenAI::Models::Beta::BetaTool::LocalShell, OpenAI::Models::Beta::BetaFunctionShellTool, OpenAI::Models::Beta::BetaCustomTool, OpenAI::Models::Beta::BetaNamespaceTool, OpenAI::Models::Beta::BetaToolSearchTool, OpenAI::Models::Beta::BetaApplyPatchTool, OpenAI::Models::Beta::BetaWebSearchTool, OpenAI::Models::Beta::BetaWebSearchPreviewTool>] An array of tools the model may call while generating a response. You
366
+ #
367
+ # @param top_p [Float, nil] An alternative to sampling with temperature, called nucleus sampling,
368
+ #
369
+ # @param background [Boolean, nil] Whether to run the model response in the background.
370
+ #
371
+ # @param completed_at [Float, nil] Unix timestamp (in seconds) of when this Response was completed.
372
+ #
373
+ # @param conversation [OpenAI::Models::Beta::BetaResponse::Conversation, nil] The conversation that this response belonged to. Input items and output items fr
374
+ #
375
+ # @param max_output_tokens [Integer, nil] An upper bound for the number of tokens that can be generated for a response, in
376
+ #
377
+ # @param max_tool_calls [Integer, nil] The maximum number of total calls to built-in tools that can be processed in a r
378
+ #
379
+ # @param moderation [OpenAI::Models::Beta::BetaResponse::Moderation, nil] Moderation results for the response input and output, if moderated completions w
380
+ #
381
+ # @param previous_response_id [String, nil] The unique ID of the previous response to the model. Use this to
382
+ #
383
+ # @param prompt [OpenAI::Models::Beta::BetaResponsePrompt, nil] Reference to a prompt template and its variables.
384
+ #
385
+ # @param prompt_cache_key [String] Used by OpenAI to cache responses for similar requests to optimize your cache hi
386
+ #
387
+ # @param prompt_cache_options [OpenAI::Models::Beta::BetaResponse::PromptCacheOptions] The prompt-caching options that were applied to the response. Supported for `gpt
388
+ #
389
+ # @param prompt_cache_retention [Symbol, OpenAI::Models::Beta::BetaResponse::PromptCacheRetention, nil] Deprecated. Use `prompt_cache_options.ttl` instead.
390
+ #
391
+ # @param reasoning [OpenAI::Models::Beta::BetaResponse::Reasoning, nil] **gpt-5 and o-series models only**
392
+ #
393
+ # @param safety_identifier [String] A stable identifier used to help detect users of your application that may be vi
394
+ #
395
+ # @param service_tier [Symbol, OpenAI::Models::Beta::BetaResponse::ServiceTier, nil] Specifies the processing type used for serving the request.
396
+ #
397
+ # @param status [Symbol, OpenAI::Models::Beta::BetaResponseStatus] The status of the response generation. One of `completed`, `failed`,
398
+ #
399
+ # @param text [OpenAI::Models::Beta::BetaResponseTextConfig] Configuration options for a text response from the model. Can be plain
400
+ #
401
+ # @param top_logprobs [Integer, nil] An integer between 0 and 20 specifying the maximum number of most likely
402
+ #
403
+ # @param truncation [Symbol, OpenAI::Models::Beta::BetaResponse::Truncation, nil] The truncation strategy to use for the model response.
404
+ #
405
+ # @param usage [OpenAI::Models::Beta::BetaResponseUsage] Represents token usage details including input tokens, output tokens,
406
+ #
407
+ # @param user [String] This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use
408
+ #
409
+ # @param object [Symbol, :response] The object type of this resource - always set to `response`.
410
+
411
+ # @see OpenAI::Models::Beta::BetaResponse#incomplete_details
412
+ class IncompleteDetails < OpenAI::Internal::Type::BaseModel
413
+ # @!attribute reason
414
+ # The reason why the response is incomplete.
415
+ #
416
+ # @return [Symbol, OpenAI::Models::Beta::BetaResponse::IncompleteDetails::Reason, nil]
417
+ optional :reason, enum: -> { OpenAI::Beta::BetaResponse::IncompleteDetails::Reason }
418
+
419
+ # @!method initialize(reason: nil)
420
+ # Details about why the response is incomplete.
421
+ #
422
+ # @param reason [Symbol, OpenAI::Models::Beta::BetaResponse::IncompleteDetails::Reason] The reason why the response is incomplete.
423
+
424
+ # The reason why the response is incomplete.
425
+ #
426
+ # @see OpenAI::Models::Beta::BetaResponse::IncompleteDetails#reason
427
+ module Reason
428
+ extend OpenAI::Internal::Type::Enum
429
+
430
+ MAX_OUTPUT_TOKENS = :max_output_tokens
431
+ CONTENT_FILTER = :content_filter
432
+
433
+ # @!method self.values
434
+ # @return [Array<Symbol>]
435
+ end
436
+ end
437
+
438
+ # A system (or developer) message inserted into the model's context.
439
+ #
440
+ # When using along with `previous_response_id`, the instructions from a previous
441
+ # response will not be carried over to the next response. This makes it simple to
442
+ # swap out system (or developer) messages in new responses.
443
+ #
444
+ # @see OpenAI::Models::Beta::BetaResponse#instructions
445
+ module Instructions
446
+ extend OpenAI::Internal::Type::Union
447
+
448
+ # A text input to the model, equivalent to a text input with the
449
+ # `developer` role.
450
+ variant String
451
+
452
+ # A list of one or many input items to the model, containing
453
+ # different content types.
454
+ variant -> { OpenAI::Models::Beta::BetaResponse::Instructions::BetaResponseInputItemArray }
455
+
456
+ # @!method self.variants
457
+ # @return [Array(String, Array<OpenAI::Models::Beta::BetaEasyInputMessage, OpenAI::Models::Beta::BetaResponseInputItem::Message, OpenAI::Models::Beta::BetaResponseOutputMessage, OpenAI::Models::Beta::BetaResponseFileSearchToolCall, OpenAI::Models::Beta::BetaResponseComputerToolCall, OpenAI::Models::Beta::BetaResponseInputItem::ComputerCallOutput, OpenAI::Models::Beta::BetaResponseFunctionWebSearch, OpenAI::Models::Beta::BetaResponseFunctionToolCall, OpenAI::Models::Beta::BetaResponseInputItem::FunctionCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::AgentMessage, OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCall, OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::ToolSearchCall, OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam, OpenAI::Models::Beta::BetaResponseInputItem::AdditionalTools, OpenAI::Models::Beta::BetaResponseReasoningItem, OpenAI::Models::Beta::BetaResponseCompactionItemParam, OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall, OpenAI::Models::Beta::BetaResponseCodeInterpreterToolCall, OpenAI::Models::Beta::BetaResponseInputItem::LocalShellCall, OpenAI::Models::Beta::BetaResponseInputItem::LocalShellCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::ShellCall, OpenAI::Models::Beta::BetaResponseInputItem::ShellCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::ApplyPatchCall, OpenAI::Models::Beta::BetaResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Beta::BetaResponseInputItem::McpListTools, OpenAI::Models::Beta::BetaResponseInputItem::McpApprovalRequest, OpenAI::Models::Beta::BetaResponseInputItem::McpApprovalResponse, OpenAI::Models::Beta::BetaResponseInputItem::McpCall, OpenAI::Models::Beta::BetaResponseCustomToolCallOutput, OpenAI::Models::Beta::BetaResponseCustomToolCall, OpenAI::Models::Beta::BetaResponseInputItem::CompactionTrigger, OpenAI::Models::Beta::BetaResponseInputItem::ItemReference, OpenAI::Models::Beta::BetaResponseInputItem::Program, OpenAI::Models::Beta::BetaResponseInputItem::ProgramOutput>)]
458
+
459
+ # @type [OpenAI::Internal::Type::Converter]
460
+ BetaResponseInputItemArray =
461
+ OpenAI::Internal::Type::ArrayOf[union: -> { OpenAI::Beta::BetaResponseInputItem }]
462
+ end
463
+
464
+ # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
465
+ # wide range of models with different capabilities, performance characteristics,
466
+ # and price points. Refer to the
467
+ # [model guide](https://platform.openai.com/docs/models) to browse and compare
468
+ # available models.
469
+ #
470
+ # @see OpenAI::Models::Beta::BetaResponse#model
471
+ module Model
472
+ extend OpenAI::Internal::Type::Union
473
+
474
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_6_SOL }
475
+
476
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_6_TERRA }
477
+
478
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_6_LUNA }
479
+
480
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_4 }
481
+
482
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_4_MINI }
483
+
484
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_4_NANO }
485
+
486
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_4_MINI_2026_03_17 }
487
+
488
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_4_NANO_2026_03_17 }
489
+
490
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_3_CHAT_LATEST }
491
+
492
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_2 }
493
+
494
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_2_2025_12_11 }
495
+
496
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_2_CHAT_LATEST }
497
+
498
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_2_PRO }
499
+
500
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_2_PRO_2025_12_11 }
501
+
502
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_1 }
503
+
504
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_1_2025_11_13 }
505
+
506
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_1_CODEX }
507
+
508
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_1_MINI }
509
+
510
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_1_CHAT_LATEST }
511
+
512
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5 }
513
+
514
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_MINI }
515
+
516
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_NANO }
517
+
518
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_2025_08_07 }
519
+
520
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_MINI_2025_08_07 }
521
+
522
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_NANO_2025_08_07 }
523
+
524
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_CHAT_LATEST }
525
+
526
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_1 }
527
+
528
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_1_MINI }
529
+
530
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_1_NANO }
531
+
532
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_1_2025_04_14 }
533
+
534
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_1_MINI_2025_04_14 }
535
+
536
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_1_NANO_2025_04_14 }
537
+
538
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O4_MINI }
539
+
540
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O4_MINI_2025_04_16 }
541
+
542
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O3 }
543
+
544
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O3_2025_04_16 }
545
+
546
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O3_MINI }
547
+
548
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O3_MINI_2025_01_31 }
549
+
550
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O1 }
551
+
552
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O1_2024_12_17 }
553
+
554
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O1_PREVIEW }
555
+
556
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O1_PREVIEW_2024_09_12 }
557
+
558
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O1_MINI }
559
+
560
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O1_MINI_2024_09_12 }
561
+
562
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O }
563
+
564
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_2024_11_20 }
565
+
566
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_2024_08_06 }
567
+
568
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_2024_05_13 }
569
+
570
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_AUDIO_PREVIEW }
571
+
572
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_AUDIO_PREVIEW_2024_10_01 }
573
+
574
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_AUDIO_PREVIEW_2024_12_17 }
575
+
576
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_AUDIO_PREVIEW_2025_06_03 }
577
+
578
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_MINI_AUDIO_PREVIEW }
579
+
580
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_MINI_AUDIO_PREVIEW_2024_12_17 }
581
+
582
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_SEARCH_PREVIEW }
583
+
584
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_MINI_SEARCH_PREVIEW }
585
+
586
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_SEARCH_PREVIEW_2025_03_11 }
587
+
588
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_MINI_SEARCH_PREVIEW_2025_03_11 }
589
+
590
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::CHATGPT_4O_LATEST }
591
+
592
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::CODEX_MINI_LATEST }
593
+
594
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_MINI }
595
+
596
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4O_MINI_2024_07_18 }
597
+
598
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_TURBO }
599
+
600
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_TURBO_2024_04_09 }
601
+
602
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_0125_PREVIEW }
603
+
604
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_TURBO_PREVIEW }
605
+
606
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_1106_PREVIEW }
607
+
608
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_VISION_PREVIEW }
609
+
610
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4 }
611
+
612
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_0314 }
613
+
614
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_0613 }
615
+
616
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_32K }
617
+
618
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_32K_0314 }
619
+
620
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_4_32K_0613 }
621
+
622
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_3_5_TURBO }
623
+
624
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_3_5_TURBO_16K }
625
+
626
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_3_5_TURBO_0301 }
627
+
628
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_3_5_TURBO_0613 }
629
+
630
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_3_5_TURBO_1106 }
631
+
632
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_3_5_TURBO_0125 }
633
+
634
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_3_5_TURBO_16K_0613 }
635
+
636
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O1_PRO }
637
+
638
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O1_PRO_2025_03_19 }
639
+
640
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O3_PRO }
641
+
642
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O3_PRO_2025_06_10 }
643
+
644
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O3_DEEP_RESEARCH }
645
+
646
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O3_DEEP_RESEARCH_2025_06_26 }
647
+
648
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O4_MINI_DEEP_RESEARCH }
649
+
650
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::O4_MINI_DEEP_RESEARCH_2025_06_26 }
651
+
652
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::COMPUTER_USE_PREVIEW }
653
+
654
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::COMPUTER_USE_PREVIEW_2025_03_11 }
655
+
656
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_CODEX }
657
+
658
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_PRO }
659
+
660
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_PRO_2025_10_06 }
661
+
662
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Model::GPT_5_1_CODEX_MAX }
663
+
664
+ variant String
665
+
666
+ # @!method self.variants
667
+ # @return [Array(Symbol, String)]
668
+
669
+ define_sorbet_constant!(:Variants) do
670
+ T.type_alias { T.any(OpenAI::Beta::BetaResponse::Model::TaggedSymbol, String) }
671
+ end
672
+
673
+ # @!group
674
+
675
+ GPT_5_6_SOL = :"gpt-5.6-sol"
676
+ GPT_5_6_TERRA = :"gpt-5.6-terra"
677
+ GPT_5_6_LUNA = :"gpt-5.6-luna"
678
+ GPT_5_4 = :"gpt-5.4"
679
+ GPT_5_4_MINI = :"gpt-5.4-mini"
680
+ GPT_5_4_NANO = :"gpt-5.4-nano"
681
+ GPT_5_4_MINI_2026_03_17 = :"gpt-5.4-mini-2026-03-17"
682
+ GPT_5_4_NANO_2026_03_17 = :"gpt-5.4-nano-2026-03-17"
683
+ GPT_5_3_CHAT_LATEST = :"gpt-5.3-chat-latest"
684
+ GPT_5_2 = :"gpt-5.2"
685
+ GPT_5_2_2025_12_11 = :"gpt-5.2-2025-12-11"
686
+ GPT_5_2_CHAT_LATEST = :"gpt-5.2-chat-latest"
687
+ GPT_5_2_PRO = :"gpt-5.2-pro"
688
+ GPT_5_2_PRO_2025_12_11 = :"gpt-5.2-pro-2025-12-11"
689
+ GPT_5_1 = :"gpt-5.1"
690
+ GPT_5_1_2025_11_13 = :"gpt-5.1-2025-11-13"
691
+ GPT_5_1_CODEX = :"gpt-5.1-codex"
692
+ GPT_5_1_MINI = :"gpt-5.1-mini"
693
+ GPT_5_1_CHAT_LATEST = :"gpt-5.1-chat-latest"
694
+ GPT_5 = :"gpt-5"
695
+ GPT_5_MINI = :"gpt-5-mini"
696
+ GPT_5_NANO = :"gpt-5-nano"
697
+ GPT_5_2025_08_07 = :"gpt-5-2025-08-07"
698
+ GPT_5_MINI_2025_08_07 = :"gpt-5-mini-2025-08-07"
699
+ GPT_5_NANO_2025_08_07 = :"gpt-5-nano-2025-08-07"
700
+ GPT_5_CHAT_LATEST = :"gpt-5-chat-latest"
701
+ GPT_4_1 = :"gpt-4.1"
702
+ GPT_4_1_MINI = :"gpt-4.1-mini"
703
+ GPT_4_1_NANO = :"gpt-4.1-nano"
704
+ GPT_4_1_2025_04_14 = :"gpt-4.1-2025-04-14"
705
+ GPT_4_1_MINI_2025_04_14 = :"gpt-4.1-mini-2025-04-14"
706
+ GPT_4_1_NANO_2025_04_14 = :"gpt-4.1-nano-2025-04-14"
707
+ O4_MINI = :"o4-mini"
708
+ O4_MINI_2025_04_16 = :"o4-mini-2025-04-16"
709
+ O3 = :o3
710
+ O3_2025_04_16 = :"o3-2025-04-16"
711
+ O3_MINI = :"o3-mini"
712
+ O3_MINI_2025_01_31 = :"o3-mini-2025-01-31"
713
+ O1 = :o1
714
+ O1_2024_12_17 = :"o1-2024-12-17"
715
+ O1_PREVIEW = :"o1-preview"
716
+ O1_PREVIEW_2024_09_12 = :"o1-preview-2024-09-12"
717
+ O1_MINI = :"o1-mini"
718
+ O1_MINI_2024_09_12 = :"o1-mini-2024-09-12"
719
+ GPT_4O = :"gpt-4o"
720
+ GPT_4O_2024_11_20 = :"gpt-4o-2024-11-20"
721
+ GPT_4O_2024_08_06 = :"gpt-4o-2024-08-06"
722
+ GPT_4O_2024_05_13 = :"gpt-4o-2024-05-13"
723
+ GPT_4O_AUDIO_PREVIEW = :"gpt-4o-audio-preview"
724
+ GPT_4O_AUDIO_PREVIEW_2024_10_01 = :"gpt-4o-audio-preview-2024-10-01"
725
+ GPT_4O_AUDIO_PREVIEW_2024_12_17 = :"gpt-4o-audio-preview-2024-12-17"
726
+ GPT_4O_AUDIO_PREVIEW_2025_06_03 = :"gpt-4o-audio-preview-2025-06-03"
727
+ GPT_4O_MINI_AUDIO_PREVIEW = :"gpt-4o-mini-audio-preview"
728
+ GPT_4O_MINI_AUDIO_PREVIEW_2024_12_17 = :"gpt-4o-mini-audio-preview-2024-12-17"
729
+ GPT_4O_SEARCH_PREVIEW = :"gpt-4o-search-preview"
730
+ GPT_4O_MINI_SEARCH_PREVIEW = :"gpt-4o-mini-search-preview"
731
+ GPT_4O_SEARCH_PREVIEW_2025_03_11 = :"gpt-4o-search-preview-2025-03-11"
732
+ GPT_4O_MINI_SEARCH_PREVIEW_2025_03_11 = :"gpt-4o-mini-search-preview-2025-03-11"
733
+ CHATGPT_4O_LATEST = :"chatgpt-4o-latest"
734
+ CODEX_MINI_LATEST = :"codex-mini-latest"
735
+ GPT_4O_MINI = :"gpt-4o-mini"
736
+ GPT_4O_MINI_2024_07_18 = :"gpt-4o-mini-2024-07-18"
737
+ GPT_4_TURBO = :"gpt-4-turbo"
738
+ GPT_4_TURBO_2024_04_09 = :"gpt-4-turbo-2024-04-09"
739
+ GPT_4_0125_PREVIEW = :"gpt-4-0125-preview"
740
+ GPT_4_TURBO_PREVIEW = :"gpt-4-turbo-preview"
741
+ GPT_4_1106_PREVIEW = :"gpt-4-1106-preview"
742
+ GPT_4_VISION_PREVIEW = :"gpt-4-vision-preview"
743
+ GPT_4 = :"gpt-4"
744
+ GPT_4_0314 = :"gpt-4-0314"
745
+ GPT_4_0613 = :"gpt-4-0613"
746
+ GPT_4_32K = :"gpt-4-32k"
747
+ GPT_4_32K_0314 = :"gpt-4-32k-0314"
748
+ GPT_4_32K_0613 = :"gpt-4-32k-0613"
749
+ GPT_3_5_TURBO = :"gpt-3.5-turbo"
750
+ GPT_3_5_TURBO_16K = :"gpt-3.5-turbo-16k"
751
+ GPT_3_5_TURBO_0301 = :"gpt-3.5-turbo-0301"
752
+ GPT_3_5_TURBO_0613 = :"gpt-3.5-turbo-0613"
753
+ GPT_3_5_TURBO_1106 = :"gpt-3.5-turbo-1106"
754
+ GPT_3_5_TURBO_0125 = :"gpt-3.5-turbo-0125"
755
+ GPT_3_5_TURBO_16K_0613 = :"gpt-3.5-turbo-16k-0613"
756
+ O1_PRO = :"o1-pro"
757
+ O1_PRO_2025_03_19 = :"o1-pro-2025-03-19"
758
+ O3_PRO = :"o3-pro"
759
+ O3_PRO_2025_06_10 = :"o3-pro-2025-06-10"
760
+ O3_DEEP_RESEARCH = :"o3-deep-research"
761
+ O3_DEEP_RESEARCH_2025_06_26 = :"o3-deep-research-2025-06-26"
762
+ O4_MINI_DEEP_RESEARCH = :"o4-mini-deep-research"
763
+ O4_MINI_DEEP_RESEARCH_2025_06_26 = :"o4-mini-deep-research-2025-06-26"
764
+ COMPUTER_USE_PREVIEW = :"computer-use-preview"
765
+ COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11"
766
+ GPT_5_CODEX = :"gpt-5-codex"
767
+ GPT_5_PRO = :"gpt-5-pro"
768
+ GPT_5_PRO_2025_10_06 = :"gpt-5-pro-2025-10-06"
769
+ GPT_5_1_CODEX_MAX = :"gpt-5.1-codex-max"
770
+
771
+ # @!endgroup
772
+ end
773
+
774
+ # How the model should select which tool (or tools) to use when generating a
775
+ # response. See the `tools` parameter to see how to specify which tools the model
776
+ # can call.
777
+ #
778
+ # @see OpenAI::Models::Beta::BetaResponse#tool_choice
779
+ module ToolChoice
780
+ extend OpenAI::Internal::Type::Union
781
+
782
+ # Controls which (if any) tool is called by the model.
783
+ #
784
+ # `none` means the model will not call any tool and instead generates a message.
785
+ #
786
+ # `auto` means the model can pick between generating a message or calling one or
787
+ # more tools.
788
+ #
789
+ # `required` means the model must call one or more tools.
790
+ variant enum: -> { OpenAI::Beta::BetaToolChoiceOptions }
791
+
792
+ # Constrains the tools available to the model to a pre-defined set.
793
+ variant -> { OpenAI::Beta::BetaToolChoiceAllowed }
794
+
795
+ # Indicates that the model should use a built-in tool to generate a response.
796
+ # [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).
797
+ variant -> { OpenAI::Beta::BetaToolChoiceTypes }
798
+
799
+ # Use this option to force the model to call a specific function.
800
+ variant -> { OpenAI::Beta::BetaToolChoiceFunction }
801
+
802
+ # Use this option to force the model to call a specific tool on a remote MCP server.
803
+ variant -> { OpenAI::Beta::BetaToolChoiceMcp }
804
+
805
+ # Use this option to force the model to call a specific custom tool.
806
+ variant -> { OpenAI::Beta::BetaToolChoiceCustom }
807
+
808
+ variant -> { OpenAI::Beta::BetaResponse::ToolChoice::BetaSpecificProgrammaticToolCallingParam }
809
+
810
+ # Forces the model to call the apply_patch tool when executing a tool call.
811
+ variant -> { OpenAI::Beta::BetaToolChoiceApplyPatch }
812
+
813
+ # Forces the model to call the shell tool when a tool call is required.
814
+ variant -> { OpenAI::Beta::BetaToolChoiceShell }
815
+
816
+ class BetaSpecificProgrammaticToolCallingParam < OpenAI::Internal::Type::BaseModel
817
+ # @!attribute type
818
+ # The tool to call. Always `programmatic_tool_calling`.
819
+ #
820
+ # @return [Symbol, :programmatic_tool_calling]
821
+ required :type, const: :programmatic_tool_calling
822
+
823
+ # @!method initialize(type: :programmatic_tool_calling)
824
+ # @param type [Symbol, :programmatic_tool_calling] The tool to call. Always `programmatic_tool_calling`.
825
+ end
826
+
827
+ # @!method self.variants
828
+ # @return [Array(Symbol, OpenAI::Models::Beta::BetaToolChoiceOptions, OpenAI::Models::Beta::BetaToolChoiceAllowed, OpenAI::Models::Beta::BetaToolChoiceTypes, OpenAI::Models::Beta::BetaToolChoiceFunction, OpenAI::Models::Beta::BetaToolChoiceMcp, OpenAI::Models::Beta::BetaToolChoiceCustom, OpenAI::Models::Beta::BetaResponse::ToolChoice::BetaSpecificProgrammaticToolCallingParam, OpenAI::Models::Beta::BetaToolChoiceApplyPatch, OpenAI::Models::Beta::BetaToolChoiceShell)]
829
+ end
830
+
831
+ # @see OpenAI::Models::Beta::BetaResponse#conversation
832
+ class Conversation < OpenAI::Internal::Type::BaseModel
833
+ # @!attribute id
834
+ # The unique ID of the conversation that this response was associated with.
835
+ #
836
+ # @return [String]
837
+ required :id, String
838
+
839
+ # @!method initialize(id:)
840
+ # The conversation that this response belonged to. Input items and output items
841
+ # from this response were automatically added to this conversation.
842
+ #
843
+ # @param id [String] The unique ID of the conversation that this response was associated with.
844
+ end
845
+
846
+ # @see OpenAI::Models::Beta::BetaResponse#moderation
847
+ class Moderation < OpenAI::Internal::Type::BaseModel
848
+ # @!attribute input
849
+ # Moderation for the response input.
850
+ #
851
+ # @return [OpenAI::Models::Beta::BetaResponse::Moderation::Input::ModerationResult, OpenAI::Models::Beta::BetaResponse::Moderation::Input::Error]
852
+ required :input, union: -> { OpenAI::Beta::BetaResponse::Moderation::Input }
853
+
854
+ # @!attribute output
855
+ # Moderation for the response output.
856
+ #
857
+ # @return [OpenAI::Models::Beta::BetaResponse::Moderation::Output::ModerationResult, OpenAI::Models::Beta::BetaResponse::Moderation::Output::Error]
858
+ required :output, union: -> { OpenAI::Beta::BetaResponse::Moderation::Output }
859
+
860
+ # @!method initialize(input:, output:)
861
+ # Moderation results for the response input and output, if moderated completions
862
+ # were requested.
863
+ #
864
+ # @param input [OpenAI::Models::Beta::BetaResponse::Moderation::Input::ModerationResult, OpenAI::Models::Beta::BetaResponse::Moderation::Input::Error] Moderation for the response input.
865
+ #
866
+ # @param output [OpenAI::Models::Beta::BetaResponse::Moderation::Output::ModerationResult, OpenAI::Models::Beta::BetaResponse::Moderation::Output::Error] Moderation for the response output.
867
+
868
+ # Moderation for the response input.
869
+ #
870
+ # @see OpenAI::Models::Beta::BetaResponse::Moderation#input
871
+ module Input
872
+ extend OpenAI::Internal::Type::Union
873
+
874
+ discriminator :type
875
+
876
+ # A moderation result produced for the response input or output.
877
+ variant :moderation_result, -> { OpenAI::Beta::BetaResponse::Moderation::Input::ModerationResult }
878
+
879
+ # An error produced while attempting moderation for the response input or output.
880
+ variant :error, -> { OpenAI::Beta::BetaResponse::Moderation::Input::Error }
881
+
882
+ class ModerationResult < OpenAI::Internal::Type::BaseModel
883
+ # @!attribute categories
884
+ # A dictionary of moderation categories to booleans, True if the input is flagged
885
+ # under this category.
886
+ #
887
+ # @return [Hash{Symbol=>Boolean}]
888
+ required :categories, OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Boolean]
889
+
890
+ # @!attribute category_applied_input_types
891
+ # Which modalities of input are reflected by the score for each category.
892
+ #
893
+ # @return [Hash{Symbol=>Array<Symbol, OpenAI::Models::Beta::BetaResponse::Moderation::Input::ModerationResult::CategoryAppliedInputType>}]
894
+ required :category_applied_input_types,
895
+ -> do
896
+ OpenAI::Internal::Type::HashOf[
897
+ OpenAI::Internal::Type::ArrayOf[enum: OpenAI::Beta::BetaResponse::Moderation::Input::ModerationResult::CategoryAppliedInputType]
898
+ ]
899
+ end
900
+
901
+ # @!attribute category_scores
902
+ # A dictionary of moderation categories to scores.
903
+ #
904
+ # @return [Hash{Symbol=>Float}]
905
+ required :category_scores, OpenAI::Internal::Type::HashOf[Float]
906
+
907
+ # @!attribute flagged
908
+ # A boolean indicating whether the content was flagged by any category.
909
+ #
910
+ # @return [Boolean]
911
+ required :flagged, OpenAI::Internal::Type::Boolean
912
+
913
+ # @!attribute model
914
+ # The moderation model that produced this result.
915
+ #
916
+ # @return [String]
917
+ required :model, String
918
+
919
+ # @!attribute type
920
+ # The object type, which was always `moderation_result` for successful moderation
921
+ # results.
922
+ #
923
+ # @return [Symbol, :moderation_result]
924
+ required :type, const: :moderation_result
925
+
926
+ # @!method initialize(categories:, category_applied_input_types:, category_scores:, flagged:, model:, type: :moderation_result)
927
+ # Some parameter documentations has been truncated, see
928
+ # {OpenAI::Models::Beta::BetaResponse::Moderation::Input::ModerationResult} for
929
+ # more details.
930
+ #
931
+ # A moderation result produced for the response input or output.
932
+ #
933
+ # @param categories [Hash{Symbol=>Boolean}] A dictionary of moderation categories to booleans, True if the input is flagged
934
+ #
935
+ # @param category_applied_input_types [Hash{Symbol=>Array<Symbol, OpenAI::Models::Beta::BetaResponse::Moderation::Input::ModerationResult::CategoryAppliedInputType>}] Which modalities of input are reflected by the score for each category.
936
+ #
937
+ # @param category_scores [Hash{Symbol=>Float}] A dictionary of moderation categories to scores.
938
+ #
939
+ # @param flagged [Boolean] A boolean indicating whether the content was flagged by any category.
940
+ #
941
+ # @param model [String] The moderation model that produced this result.
942
+ #
943
+ # @param type [Symbol, :moderation_result] The object type, which was always `moderation_result` for successful moderation
944
+
945
+ module CategoryAppliedInputType
946
+ extend OpenAI::Internal::Type::Enum
947
+
948
+ TEXT = :text
949
+ IMAGE = :image
950
+
951
+ # @!method self.values
952
+ # @return [Array<Symbol>]
953
+ end
954
+ end
955
+
956
+ class Error < OpenAI::Internal::Type::BaseModel
957
+ # @!attribute code
958
+ # The error code.
959
+ #
960
+ # @return [String]
961
+ required :code, String
962
+
963
+ # @!attribute message
964
+ # The error message.
965
+ #
966
+ # @return [String]
967
+ required :message, String
968
+
969
+ # @!attribute type
970
+ # The object type, which was always `error` for moderation failures.
971
+ #
972
+ # @return [Symbol, :error]
973
+ required :type, const: :error
974
+
975
+ # @!method initialize(code:, message:, type: :error)
976
+ # An error produced while attempting moderation for the response input or output.
977
+ #
978
+ # @param code [String] The error code.
979
+ #
980
+ # @param message [String] The error message.
981
+ #
982
+ # @param type [Symbol, :error] The object type, which was always `error` for moderation failures.
983
+ end
984
+
985
+ # @!method self.variants
986
+ # @return [Array(OpenAI::Models::Beta::BetaResponse::Moderation::Input::ModerationResult, OpenAI::Models::Beta::BetaResponse::Moderation::Input::Error)]
987
+ end
988
+
989
+ # Moderation for the response output.
990
+ #
991
+ # @see OpenAI::Models::Beta::BetaResponse::Moderation#output
992
+ module Output
993
+ extend OpenAI::Internal::Type::Union
994
+
995
+ discriminator :type
996
+
997
+ # A moderation result produced for the response input or output.
998
+ variant :moderation_result, -> { OpenAI::Beta::BetaResponse::Moderation::Output::ModerationResult }
999
+
1000
+ # An error produced while attempting moderation for the response input or output.
1001
+ variant :error, -> { OpenAI::Beta::BetaResponse::Moderation::Output::Error }
1002
+
1003
+ class ModerationResult < OpenAI::Internal::Type::BaseModel
1004
+ # @!attribute categories
1005
+ # A dictionary of moderation categories to booleans, True if the input is flagged
1006
+ # under this category.
1007
+ #
1008
+ # @return [Hash{Symbol=>Boolean}]
1009
+ required :categories, OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Boolean]
1010
+
1011
+ # @!attribute category_applied_input_types
1012
+ # Which modalities of input are reflected by the score for each category.
1013
+ #
1014
+ # @return [Hash{Symbol=>Array<Symbol, OpenAI::Models::Beta::BetaResponse::Moderation::Output::ModerationResult::CategoryAppliedInputType>}]
1015
+ required :category_applied_input_types,
1016
+ -> do
1017
+ OpenAI::Internal::Type::HashOf[
1018
+ OpenAI::Internal::Type::ArrayOf[enum: OpenAI::Beta::BetaResponse::Moderation::Output::ModerationResult::CategoryAppliedInputType]
1019
+ ]
1020
+ end
1021
+
1022
+ # @!attribute category_scores
1023
+ # A dictionary of moderation categories to scores.
1024
+ #
1025
+ # @return [Hash{Symbol=>Float}]
1026
+ required :category_scores, OpenAI::Internal::Type::HashOf[Float]
1027
+
1028
+ # @!attribute flagged
1029
+ # A boolean indicating whether the content was flagged by any category.
1030
+ #
1031
+ # @return [Boolean]
1032
+ required :flagged, OpenAI::Internal::Type::Boolean
1033
+
1034
+ # @!attribute model
1035
+ # The moderation model that produced this result.
1036
+ #
1037
+ # @return [String]
1038
+ required :model, String
1039
+
1040
+ # @!attribute type
1041
+ # The object type, which was always `moderation_result` for successful moderation
1042
+ # results.
1043
+ #
1044
+ # @return [Symbol, :moderation_result]
1045
+ required :type, const: :moderation_result
1046
+
1047
+ # @!method initialize(categories:, category_applied_input_types:, category_scores:, flagged:, model:, type: :moderation_result)
1048
+ # Some parameter documentations has been truncated, see
1049
+ # {OpenAI::Models::Beta::BetaResponse::Moderation::Output::ModerationResult} for
1050
+ # more details.
1051
+ #
1052
+ # A moderation result produced for the response input or output.
1053
+ #
1054
+ # @param categories [Hash{Symbol=>Boolean}] A dictionary of moderation categories to booleans, True if the input is flagged
1055
+ #
1056
+ # @param category_applied_input_types [Hash{Symbol=>Array<Symbol, OpenAI::Models::Beta::BetaResponse::Moderation::Output::ModerationResult::CategoryAppliedInputType>}] Which modalities of input are reflected by the score for each category.
1057
+ #
1058
+ # @param category_scores [Hash{Symbol=>Float}] A dictionary of moderation categories to scores.
1059
+ #
1060
+ # @param flagged [Boolean] A boolean indicating whether the content was flagged by any category.
1061
+ #
1062
+ # @param model [String] The moderation model that produced this result.
1063
+ #
1064
+ # @param type [Symbol, :moderation_result] The object type, which was always `moderation_result` for successful moderation
1065
+
1066
+ module CategoryAppliedInputType
1067
+ extend OpenAI::Internal::Type::Enum
1068
+
1069
+ TEXT = :text
1070
+ IMAGE = :image
1071
+
1072
+ # @!method self.values
1073
+ # @return [Array<Symbol>]
1074
+ end
1075
+ end
1076
+
1077
+ class Error < OpenAI::Internal::Type::BaseModel
1078
+ # @!attribute code
1079
+ # The error code.
1080
+ #
1081
+ # @return [String]
1082
+ required :code, String
1083
+
1084
+ # @!attribute message
1085
+ # The error message.
1086
+ #
1087
+ # @return [String]
1088
+ required :message, String
1089
+
1090
+ # @!attribute type
1091
+ # The object type, which was always `error` for moderation failures.
1092
+ #
1093
+ # @return [Symbol, :error]
1094
+ required :type, const: :error
1095
+
1096
+ # @!method initialize(code:, message:, type: :error)
1097
+ # An error produced while attempting moderation for the response input or output.
1098
+ #
1099
+ # @param code [String] The error code.
1100
+ #
1101
+ # @param message [String] The error message.
1102
+ #
1103
+ # @param type [Symbol, :error] The object type, which was always `error` for moderation failures.
1104
+ end
1105
+
1106
+ # @!method self.variants
1107
+ # @return [Array(OpenAI::Models::Beta::BetaResponse::Moderation::Output::ModerationResult, OpenAI::Models::Beta::BetaResponse::Moderation::Output::Error)]
1108
+ end
1109
+ end
1110
+
1111
+ # @see OpenAI::Models::Beta::BetaResponse#prompt_cache_options
1112
+ class PromptCacheOptions < OpenAI::Internal::Type::BaseModel
1113
+ # @!attribute mode
1114
+ # Whether implicit prompt-cache breakpoints were enabled.
1115
+ #
1116
+ # @return [Symbol, OpenAI::Models::Beta::BetaResponse::PromptCacheOptions::Mode]
1117
+ required :mode, enum: -> { OpenAI::Beta::BetaResponse::PromptCacheOptions::Mode }
1118
+
1119
+ # @!attribute ttl
1120
+ # The minimum lifetime applied to each cache breakpoint.
1121
+ #
1122
+ # @return [Symbol, OpenAI::Models::Beta::BetaResponse::PromptCacheOptions::Ttl]
1123
+ required :ttl, enum: -> { OpenAI::Beta::BetaResponse::PromptCacheOptions::Ttl }
1124
+
1125
+ # @!method initialize(mode:, ttl:)
1126
+ # The prompt-caching options that were applied to the response. Supported for
1127
+ # `gpt-5.6` and later models.
1128
+ #
1129
+ # @param mode [Symbol, OpenAI::Models::Beta::BetaResponse::PromptCacheOptions::Mode] Whether implicit prompt-cache breakpoints were enabled.
1130
+ #
1131
+ # @param ttl [Symbol, OpenAI::Models::Beta::BetaResponse::PromptCacheOptions::Ttl] The minimum lifetime applied to each cache breakpoint.
1132
+
1133
+ # Whether implicit prompt-cache breakpoints were enabled.
1134
+ #
1135
+ # @see OpenAI::Models::Beta::BetaResponse::PromptCacheOptions#mode
1136
+ module Mode
1137
+ extend OpenAI::Internal::Type::Enum
1138
+
1139
+ IMPLICIT = :implicit
1140
+ EXPLICIT = :explicit
1141
+
1142
+ # @!method self.values
1143
+ # @return [Array<Symbol>]
1144
+ end
1145
+
1146
+ # The minimum lifetime applied to each cache breakpoint.
1147
+ #
1148
+ # @see OpenAI::Models::Beta::BetaResponse::PromptCacheOptions#ttl
1149
+ module Ttl
1150
+ extend OpenAI::Internal::Type::Enum
1151
+
1152
+ TTL_30M = :"30m"
1153
+
1154
+ # @!method self.values
1155
+ # @return [Array<Symbol>]
1156
+ end
1157
+ end
1158
+
1159
+ # @deprecated
1160
+ #
1161
+ # Deprecated. Use `prompt_cache_options.ttl` instead.
1162
+ #
1163
+ # The retention policy for the prompt cache. Set to `24h` to enable extended
1164
+ # prompt caching, which keeps cached prefixes active for longer, up to a maximum
1165
+ # of 24 hours.
1166
+ # [Learn more](https://platform.openai.com/docs/guides/prompt-caching#prompt-cache-retention).
1167
+ # This field expresses a maximum retention policy, while
1168
+ # `prompt_cache_options.ttl` expresses a minimum cache lifetime. The two fields
1169
+ # are independent and do not interact. For `gpt-5.5`, `gpt-5.5-pro`, and future
1170
+ # models, only `24h` is supported.
1171
+ #
1172
+ # For older models that support both `in_memory` and `24h`, the default depends on
1173
+ # your organization's data retention policy:
1174
+ #
1175
+ # - Organizations without ZDR enabled default to `24h`.
1176
+ # - Organizations with ZDR enabled default to `in_memory` when
1177
+ # `prompt_cache_retention` is not specified.
1178
+ #
1179
+ # @see OpenAI::Models::Beta::BetaResponse#prompt_cache_retention
1180
+ module PromptCacheRetention
1181
+ extend OpenAI::Internal::Type::Enum
1182
+
1183
+ IN_MEMORY = :in_memory
1184
+ PROMPT_CACHE_RETENTION_24H = :"24h"
1185
+
1186
+ # @!method self.values
1187
+ # @return [Array<Symbol>]
1188
+ end
1189
+
1190
+ # @see OpenAI::Models::Beta::BetaResponse#reasoning
1191
+ class Reasoning < OpenAI::Internal::Type::BaseModel
1192
+ # @!attribute context
1193
+ # Controls which reasoning items are rendered back to the model on later turns.
1194
+ # When returned on a response, this is the effective reasoning context mode used
1195
+ # for the response.
1196
+ #
1197
+ # @return [Symbol, OpenAI::Models::Beta::BetaResponse::Reasoning::Context, nil]
1198
+ optional :context, enum: -> { OpenAI::Beta::BetaResponse::Reasoning::Context }, nil?: true
1199
+
1200
+ # @!attribute effort
1201
+ # Constrains effort on reasoning for reasoning models. Currently supported values
1202
+ # are `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. Reducing
1203
+ # reasoning effort can result in faster responses and fewer tokens used on
1204
+ # reasoning in a response. Not all reasoning models support every value. See the
1205
+ # [reasoning guide](https://platform.openai.com/docs/guides/reasoning) for
1206
+ # model-specific support.
1207
+ #
1208
+ # @return [Symbol, OpenAI::Models::Beta::BetaResponse::Reasoning::Effort, nil]
1209
+ optional :effort, enum: -> { OpenAI::Beta::BetaResponse::Reasoning::Effort }, nil?: true
1210
+
1211
+ # @!attribute generate_summary
1212
+ # @deprecated
1213
+ #
1214
+ # **Deprecated:** use `summary` instead.
1215
+ #
1216
+ # A summary of the reasoning performed by the model. This can be useful for
1217
+ # debugging and understanding the model's reasoning process. One of `auto`,
1218
+ # `concise`, or `detailed`.
1219
+ #
1220
+ # @return [Symbol, OpenAI::Models::Beta::BetaResponse::Reasoning::GenerateSummary, nil]
1221
+ optional :generate_summary,
1222
+ enum: -> { OpenAI::Beta::BetaResponse::Reasoning::GenerateSummary },
1223
+ nil?: true
1224
+
1225
+ # @!attribute mode
1226
+ # Controls the reasoning execution mode for the request.
1227
+ #
1228
+ # When returned on a response, this is the effective execution mode.
1229
+ #
1230
+ # @return [String, Symbol, OpenAI::Models::Beta::BetaResponse::Reasoning::Mode, nil]
1231
+ optional :mode, union: -> { OpenAI::Beta::BetaResponse::Reasoning::Mode }
1232
+
1233
+ # @!attribute summary
1234
+ # A summary of the reasoning performed by the model. This can be useful for
1235
+ # debugging and understanding the model's reasoning process. One of `auto`,
1236
+ # `concise`, or `detailed`.
1237
+ #
1238
+ # `concise` is supported for `computer-use-preview` models and all reasoning
1239
+ # models after `gpt-5`.
1240
+ #
1241
+ # @return [Symbol, OpenAI::Models::Beta::BetaResponse::Reasoning::Summary, nil]
1242
+ optional :summary, enum: -> { OpenAI::Beta::BetaResponse::Reasoning::Summary }, nil?: true
1243
+
1244
+ # @!method initialize(context: nil, effort: nil, generate_summary: nil, mode: nil, summary: nil)
1245
+ # Some parameter documentations has been truncated, see
1246
+ # {OpenAI::Models::Beta::BetaResponse::Reasoning} for more details.
1247
+ #
1248
+ # **gpt-5 and o-series models only**
1249
+ #
1250
+ # Configuration options for
1251
+ # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
1252
+ #
1253
+ # @param context [Symbol, OpenAI::Models::Beta::BetaResponse::Reasoning::Context, nil] Controls which reasoning items are rendered back to the model on later turns.
1254
+ #
1255
+ # @param effort [Symbol, OpenAI::Models::Beta::BetaResponse::Reasoning::Effort, nil] Constrains effort on reasoning for reasoning models. Currently supported
1256
+ #
1257
+ # @param generate_summary [Symbol, OpenAI::Models::Beta::BetaResponse::Reasoning::GenerateSummary, nil] **Deprecated:** use `summary` instead.
1258
+ #
1259
+ # @param mode [String, Symbol, OpenAI::Models::Beta::BetaResponse::Reasoning::Mode] Controls the reasoning execution mode for the request.
1260
+ #
1261
+ # @param summary [Symbol, OpenAI::Models::Beta::BetaResponse::Reasoning::Summary, nil] A summary of the reasoning performed by the model. This can be
1262
+
1263
+ # Controls which reasoning items are rendered back to the model on later turns.
1264
+ # When returned on a response, this is the effective reasoning context mode used
1265
+ # for the response.
1266
+ #
1267
+ # @see OpenAI::Models::Beta::BetaResponse::Reasoning#context
1268
+ module Context
1269
+ extend OpenAI::Internal::Type::Enum
1270
+
1271
+ AUTO = :auto
1272
+ CURRENT_TURN = :current_turn
1273
+ ALL_TURNS = :all_turns
1274
+
1275
+ # @!method self.values
1276
+ # @return [Array<Symbol>]
1277
+ end
1278
+
1279
+ # Constrains effort on reasoning for reasoning models. Currently supported values
1280
+ # are `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. Reducing
1281
+ # reasoning effort can result in faster responses and fewer tokens used on
1282
+ # reasoning in a response. Not all reasoning models support every value. See the
1283
+ # [reasoning guide](https://platform.openai.com/docs/guides/reasoning) for
1284
+ # model-specific support.
1285
+ #
1286
+ # @see OpenAI::Models::Beta::BetaResponse::Reasoning#effort
1287
+ module Effort
1288
+ extend OpenAI::Internal::Type::Enum
1289
+
1290
+ NONE = :none
1291
+ MINIMAL = :minimal
1292
+ LOW = :low
1293
+ MEDIUM = :medium
1294
+ HIGH = :high
1295
+ XHIGH = :xhigh
1296
+ MAX = :max
1297
+
1298
+ # @!method self.values
1299
+ # @return [Array<Symbol>]
1300
+ end
1301
+
1302
+ # @deprecated
1303
+ #
1304
+ # **Deprecated:** use `summary` instead.
1305
+ #
1306
+ # A summary of the reasoning performed by the model. This can be useful for
1307
+ # debugging and understanding the model's reasoning process. One of `auto`,
1308
+ # `concise`, or `detailed`.
1309
+ #
1310
+ # @see OpenAI::Models::Beta::BetaResponse::Reasoning#generate_summary
1311
+ module GenerateSummary
1312
+ extend OpenAI::Internal::Type::Enum
1313
+
1314
+ AUTO = :auto
1315
+ CONCISE = :concise
1316
+ DETAILED = :detailed
1317
+
1318
+ # @!method self.values
1319
+ # @return [Array<Symbol>]
1320
+ end
1321
+
1322
+ # Controls the reasoning execution mode for the request.
1323
+ #
1324
+ # When returned on a response, this is the effective execution mode.
1325
+ #
1326
+ # @see OpenAI::Models::Beta::BetaResponse::Reasoning#mode
1327
+ module Mode
1328
+ extend OpenAI::Internal::Type::Union
1329
+
1330
+ variant String
1331
+
1332
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Reasoning::Mode::STANDARD }
1333
+
1334
+ variant const: -> { OpenAI::Models::Beta::BetaResponse::Reasoning::Mode::PRO }
1335
+
1336
+ # @!method self.variants
1337
+ # @return [Array(String, Symbol)]
1338
+
1339
+ define_sorbet_constant!(:Variants) do
1340
+ T.type_alias { T.any(String, OpenAI::Beta::BetaResponse::Reasoning::Mode::TaggedSymbol) }
1341
+ end
1342
+
1343
+ # @!group
1344
+
1345
+ STANDARD = :standard
1346
+ PRO = :pro
1347
+
1348
+ # @!endgroup
1349
+ end
1350
+
1351
+ # A summary of the reasoning performed by the model. This can be useful for
1352
+ # debugging and understanding the model's reasoning process. One of `auto`,
1353
+ # `concise`, or `detailed`.
1354
+ #
1355
+ # `concise` is supported for `computer-use-preview` models and all reasoning
1356
+ # models after `gpt-5`.
1357
+ #
1358
+ # @see OpenAI::Models::Beta::BetaResponse::Reasoning#summary
1359
+ module Summary
1360
+ extend OpenAI::Internal::Type::Enum
1361
+
1362
+ AUTO = :auto
1363
+ CONCISE = :concise
1364
+ DETAILED = :detailed
1365
+
1366
+ # @!method self.values
1367
+ # @return [Array<Symbol>]
1368
+ end
1369
+ end
1370
+
1371
+ # Specifies the processing type used for serving the request.
1372
+ #
1373
+ # - If set to 'auto', then the request will be processed with the service tier
1374
+ # configured in the Project settings. Unless otherwise configured, the Project
1375
+ # will use 'default'.
1376
+ # - If set to 'default', then the request will be processed with the standard
1377
+ # pricing and performance for the selected model.
1378
+ # - If set to '[flex](https://platform.openai.com/docs/guides/flex-processing)' or
1379
+ # '[priority](https://openai.com/api-priority-processing/)', then the request
1380
+ # will be processed with the corresponding service tier.
1381
+ # - When not set, the default behavior is 'auto'.
1382
+ #
1383
+ # When the `service_tier` parameter is set, the response body will include the
1384
+ # `service_tier` value based on the processing mode actually used to serve the
1385
+ # request. This response value may be different from the value set in the
1386
+ # parameter.
1387
+ #
1388
+ # @see OpenAI::Models::Beta::BetaResponse#service_tier
1389
+ module ServiceTier
1390
+ extend OpenAI::Internal::Type::Enum
1391
+
1392
+ AUTO = :auto
1393
+ DEFAULT = :default
1394
+ FLEX = :flex
1395
+ SCALE = :scale
1396
+ PRIORITY = :priority
1397
+
1398
+ # @!method self.values
1399
+ # @return [Array<Symbol>]
1400
+ end
1401
+
1402
+ # The truncation strategy to use for the model response.
1403
+ #
1404
+ # - `auto`: If the input to this Response exceeds the model's context window size,
1405
+ # the model will truncate the response to fit the context window by dropping
1406
+ # items from the beginning of the conversation.
1407
+ # - `disabled` (default): If the input size will exceed the context window size
1408
+ # for a model, the request will fail with a 400 error.
1409
+ #
1410
+ # @see OpenAI::Models::Beta::BetaResponse#truncation
1411
+ module Truncation
1412
+ extend OpenAI::Internal::Type::Enum
1413
+
1414
+ AUTO = :auto
1415
+ DISABLED = :disabled
1416
+
1417
+ # @!method self.values
1418
+ # @return [Array<Symbol>]
1419
+ end
1420
+ end
1421
+ end
1422
+
1423
+ BetaResponse = Beta::BetaResponse
1424
+ end
1425
+ end