openai 0.114.0 → 0.115.1

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 (226) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/README.md +17 -2
  4. data/docs/architecture/security-model.md +11 -16
  5. data/examples/responses/websocket_workflows.rb +78 -3
  6. data/lib/openai/helpers/chat/tool_runner.rb +1 -1
  7. data/lib/openai/helpers/live/websocket.rb +31 -0
  8. data/lib/openai/helpers/realtime/connection.rb +33 -0
  9. data/lib/openai/helpers/realtime/connection_manager.rb +1 -0
  10. data/lib/openai/helpers/realtime/conversation_item_variant_resolver.rb +5 -0
  11. data/lib/openai/helpers/realtime/recovery.rb +5 -1
  12. data/lib/openai/helpers/realtime/translation.rb +5 -0
  13. data/lib/openai/helpers/realtime/transports/async_websocket.rb +19 -0
  14. data/lib/openai/helpers/responses_websocket/connection.rb +53 -15
  15. data/lib/openai/helpers/responses_websocket/connection_manager.rb +1 -0
  16. data/lib/openai/helpers/responses_websocket/connection_resources.rb +1 -1
  17. data/lib/openai/helpers/structured_output/response_parser.rb +1 -0
  18. data/lib/openai/helpers/structured_output.rb +58 -0
  19. data/lib/openai/helpers/websocket/connection_manager.rb +11 -0
  20. data/lib/openai/helpers/websocket/resource.rb +1 -0
  21. data/lib/openai/helpers/websocket/typed_connection.rb +1 -0
  22. data/lib/openai/internal/type/array_of.rb +1 -1
  23. data/lib/openai/internal/type/hash_of.rb +1 -1
  24. data/lib/openai/internal/type/request_parameters.rb +2 -1
  25. data/lib/openai/internal/type/union.rb +18 -6
  26. data/lib/openai/models/admin/organization/external_key.rb +169 -0
  27. data/lib/openai/models/admin/organization/external_key_create_params.rb +311 -0
  28. data/lib/openai/models/admin/organization/external_key_delete_params.rb +24 -0
  29. data/lib/openai/models/admin/organization/external_key_list_params.rb +69 -0
  30. data/lib/openai/models/admin/organization/external_key_retrieve_params.rb +24 -0
  31. data/lib/openai/models/admin/organization/external_key_validate_params.rb +24 -0
  32. data/lib/openai/models/admin/organization/external_key_validate_response.rb +20 -0
  33. data/lib/openai/models/audio/speech_model.rb +12 -0
  34. data/lib/openai/models/audio_model.rb +15 -0
  35. data/lib/openai/models/beta/agent.rb +49 -1
  36. data/lib/openai/models/beta/agent_create_params.rb +51 -1
  37. data/lib/openai/models/beta/agent_session.rb +75 -2
  38. data/lib/openai/models/beta/agent_update_params.rb +62 -1
  39. data/lib/openai/models/beta/agents/session_create_params.rb +94 -2
  40. data/lib/openai/models/beta/agents/session_list_params.rb +16 -1
  41. data/lib/openai/models/beta/agents/session_update_params.rb +50 -5
  42. data/lib/openai/models/beta/assistant_update_params.rb +18 -0
  43. data/lib/openai/models/beta/beta_response.rb +224 -1
  44. data/lib/openai/models/beta/beta_response_configuration_update_item.rb +64 -3
  45. data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +64 -4
  46. data/lib/openai/models/beta/beta_response_input_item.rb +2 -3
  47. data/lib/openai/models/beta/beta_response_item.rb +2 -2
  48. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +6 -6
  49. data/lib/openai/models/beta/beta_responses_client_event.rb +20 -1
  50. data/lib/openai/models/beta/beta_tool.rb +6 -6
  51. data/lib/openai/models/beta/response_compact_params.rb +6 -0
  52. data/lib/openai/models/beta/response_create_params.rb +6 -0
  53. data/lib/openai/models/chat_model.rb +6 -0
  54. data/lib/openai/models/conversations/conversation_item.rb +2 -2
  55. data/lib/openai/models/image_edit_params.rb +46 -25
  56. data/lib/openai/models/live/fork_server_event.rb +43 -3
  57. data/lib/openai/models/live/server_event.rb +43 -3
  58. data/lib/openai/models/live/sideband_client_event.rb +40 -1
  59. data/lib/openai/models/live/sideband_server_event.rb +43 -3
  60. data/lib/openai/models/realtime/audio_transcription.rb +15 -0
  61. data/lib/openai/models/realtime/conversation_item_added.rb +2 -2
  62. data/lib/openai/models/realtime/conversation_item_create_event.rb +2 -2
  63. data/lib/openai/models/realtime/conversation_item_created_event.rb +2 -2
  64. data/lib/openai/models/realtime/conversation_item_done.rb +2 -2
  65. data/lib/openai/models/realtime/realtime_response.rb +2 -2
  66. data/lib/openai/models/realtime/realtime_response_create_params.rb +2 -2
  67. data/lib/openai/models/realtime/realtime_server_event.rb +2 -2
  68. data/lib/openai/models/realtime/realtime_session.rb +18 -0
  69. data/lib/openai/models/realtime/realtime_session_create_request.rb +18 -0
  70. data/lib/openai/models/realtime/realtime_session_create_response.rb +18 -0
  71. data/lib/openai/models/realtime/response_output_item_added_event.rb +2 -2
  72. data/lib/openai/models/realtime/response_output_item_done_event.rb +2 -2
  73. data/lib/openai/models/responses/response.rb +221 -1
  74. data/lib/openai/models/responses/response_compact_params.rb +6 -0
  75. data/lib/openai/models/responses/response_configuration_update_item.rb +50 -3
  76. data/lib/openai/models/responses/response_configuration_update_item_param.rb +50 -4
  77. data/lib/openai/models/responses/response_input_item.rb +2 -3
  78. data/lib/openai/models/responses/response_item.rb +2 -2
  79. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +6 -6
  80. data/lib/openai/models/responses/responses_client_event.rb +14 -1
  81. data/lib/openai/models/responses/tool.rb +6 -6
  82. data/lib/openai/net_http_client.rb +6 -0
  83. data/lib/openai/providers/vertex.rb +0 -10
  84. data/lib/openai/resources/admin/organization/external_keys.rb +132 -0
  85. data/lib/openai/resources/admin/organization.rb +4 -0
  86. data/lib/openai/resources/audio/speech.rb +8 -0
  87. data/lib/openai/resources/audio/translations.rb +8 -0
  88. data/lib/openai/resources/beta/agents/sessions.rb +22 -6
  89. data/lib/openai/resources/beta/agents.rb +17 -2
  90. data/lib/openai/resources/images.rb +36 -18
  91. data/lib/openai/version.rb +1 -1
  92. data/lib/openai.rb +8 -0
  93. data/rbi/openai/helpers/live/websocket.rbi +1 -12
  94. data/rbi/openai/helpers/realtime/connection.rbi +5 -0
  95. data/rbi/openai/helpers/realtime/transports/async_websocket.rbi +5 -0
  96. data/rbi/openai/helpers/responses_websocket/connection.rbi +7 -2
  97. data/rbi/openai/helpers/structured_output.rbi +10 -0
  98. data/rbi/openai/internal/type/array_of.rbi +1 -1
  99. data/rbi/openai/internal/type/hash_of.rbi +1 -1
  100. data/rbi/openai/internal/type/union.rbi +5 -0
  101. data/rbi/openai/models/admin/organization/external_key.rbi +301 -0
  102. data/rbi/openai/models/admin/organization/external_key_create_params.rbi +532 -0
  103. data/rbi/openai/models/admin/organization/external_key_delete_params.rbi +57 -0
  104. data/rbi/openai/models/admin/organization/external_key_list_params.rbi +129 -0
  105. data/rbi/openai/models/admin/organization/external_key_retrieve_params.rbi +57 -0
  106. data/rbi/openai/models/admin/organization/external_key_validate_params.rbi +57 -0
  107. data/rbi/openai/models/admin/organization/external_key_validate_response.rbi +50 -0
  108. data/rbi/openai/models/beta/agent.rbi +103 -1
  109. data/rbi/openai/models/beta/agent_create_params.rbi +109 -0
  110. data/rbi/openai/models/beta/agent_session.rbi +136 -3
  111. data/rbi/openai/models/beta/agent_update_params.rbi +120 -0
  112. data/rbi/openai/models/beta/agents/session_create_params.rbi +153 -0
  113. data/rbi/openai/models/beta/agents/session_list_params.rbi +19 -0
  114. data/rbi/openai/models/beta/agents/session_update_params.rbi +94 -6
  115. data/rbi/openai/models/beta/beta_response.rbi +394 -0
  116. data/rbi/openai/models/beta/beta_response_configuration_update_item.rbi +113 -3
  117. data/rbi/openai/models/beta/beta_response_configuration_update_item_param.rbi +125 -4
  118. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +6 -6
  119. data/rbi/openai/models/beta/beta_responses_client_event.rbi +17 -0
  120. data/rbi/openai/models/beta/beta_tool.rbi +6 -6
  121. data/rbi/openai/models/decision_create_params.rbi +4 -1
  122. data/rbi/openai/models/image_edit_params.rbi +49 -24
  123. data/rbi/openai/models/live/fork_server_event.rbi +65 -1
  124. data/rbi/openai/models/live/server_event.rbi +65 -1
  125. data/rbi/openai/models/live/sideband_client_event.rbi +60 -0
  126. data/rbi/openai/models/live/sideband_server_event.rbi +65 -1
  127. data/rbi/openai/models/realtime/conversation_item_added.rbi +6 -3
  128. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +6 -3
  129. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +6 -3
  130. data/rbi/openai/models/realtime/conversation_item_done.rbi +6 -3
  131. data/rbi/openai/models/realtime/realtime_response.rbi +8 -4
  132. data/rbi/openai/models/realtime/realtime_response_create_params.rbi +8 -4
  133. data/rbi/openai/models/realtime/realtime_server_event.rbi +6 -3
  134. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +6 -3
  135. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +6 -3
  136. data/rbi/openai/models/responses/response.rbi +394 -0
  137. data/rbi/openai/models/responses/response_configuration_update_item.rbi +76 -3
  138. data/rbi/openai/models/responses/response_configuration_update_item_param.rbi +74 -4
  139. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +6 -6
  140. data/rbi/openai/models/responses/responses_client_event.rbi +17 -0
  141. data/rbi/openai/models/responses/tool.rbi +6 -6
  142. data/rbi/openai/net_http_client.rbi +5 -0
  143. data/rbi/openai/resources/admin/organization/external_keys.rbi +86 -0
  144. data/rbi/openai/resources/admin/organization.rbi +3 -0
  145. data/rbi/openai/resources/audio/speech.rbi +8 -0
  146. data/rbi/openai/resources/audio/translations.rbi +6 -0
  147. data/rbi/openai/resources/beta/agents/sessions.rbi +18 -2
  148. data/rbi/openai/resources/beta/agents.rbi +15 -0
  149. data/rbi/openai/resources/images.rbi +34 -16
  150. data/rbi/openai/resources/responses.rbi +2 -0
  151. data/realtime.md +6 -0
  152. data/responses-websocket.md +53 -0
  153. data/sig/openai/helpers/live/websocket.rbs +1 -9
  154. data/sig/openai/helpers/realtime/connection.rbs +3 -0
  155. data/sig/openai/helpers/realtime/transports/async_websocket.rbs +3 -0
  156. data/sig/openai/helpers/responses_websocket/connection.rbs +7 -1
  157. data/sig/openai/helpers/structured_output.rbs +9 -0
  158. data/sig/openai/internal/type/union.rbs +4 -0
  159. data/sig/openai/models/admin/organization/external_key.rbs +186 -0
  160. data/sig/openai/models/admin/organization/external_key_create_params.rbs +423 -0
  161. data/sig/openai/models/admin/organization/external_key_delete_params.rbs +27 -0
  162. data/sig/openai/models/admin/organization/external_key_list_params.rbs +81 -0
  163. data/sig/openai/models/admin/organization/external_key_retrieve_params.rbs +27 -0
  164. data/sig/openai/models/admin/organization/external_key_validate_params.rbs +27 -0
  165. data/sig/openai/models/admin/organization/external_key_validate_response.rbs +17 -0
  166. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +72 -2
  167. data/sig/openai/models/audio/speech_create_params.rbs +15 -2
  168. data/sig/openai/models/audio/transcription_create_params.rbs +30 -2
  169. data/sig/openai/models/audio/voice_create_params.rbs +47 -2
  170. data/sig/openai/models/beta/agent.rbs +54 -2
  171. data/sig/openai/models/beta/agent_create_params.rbs +54 -0
  172. data/sig/openai/models/beta/agent_session.rbs +82 -3
  173. data/sig/openai/models/beta/agent_update_params.rbs +64 -0
  174. data/sig/openai/models/beta/agents/session_create_params.rbs +91 -0
  175. data/sig/openai/models/beta/agents/session_list_params.rbs +20 -0
  176. data/sig/openai/models/beta/agents/session_update_params.rbs +48 -6
  177. data/sig/openai/models/beta/assistant_create_params.rbs +5 -2
  178. data/sig/openai/models/beta/beta_response.rbs +223 -0
  179. data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +58 -2
  180. data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +58 -2
  181. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +4 -4
  182. data/sig/openai/models/beta/beta_responses_client_event.rbs +17 -0
  183. data/sig/openai/models/beta/beta_tool.rbs +4 -4
  184. data/sig/openai/models/beta/response_create_params.rbs +5 -2
  185. data/sig/openai/models/beta/responses/input_token_count_params.rbs +10 -2
  186. data/sig/openai/models/beta/thread_create_and_run_params.rbs +11 -5
  187. data/sig/openai/models/beta/thread_create_params.rbs +11 -5
  188. data/sig/openai/models/beta/threads/message_create_params.rbs +6 -3
  189. data/sig/openai/models/beta/threads/run_create_params.rbs +6 -3
  190. data/sig/openai/models/decision_create_params.rbs +27 -2
  191. data/sig/openai/models/eval_create_params.rbs +25 -4
  192. data/sig/openai/models/evals/run_create_params.rbs +52 -8
  193. data/sig/openai/models/image_edit_params.rbs +47 -16
  194. data/sig/openai/models/live/fork_server_event.rbs +39 -0
  195. data/sig/openai/models/live/server_event.rbs +39 -0
  196. data/sig/openai/models/live/session_accept_params.rbs +39 -2
  197. data/sig/openai/models/live/sideband_client_event.rbs +32 -0
  198. data/sig/openai/models/live/sideband_server_event.rbs +39 -0
  199. data/sig/openai/models/realtime/conversation_item.rbs +1 -0
  200. data/sig/openai/models/responses/input_token_count_params.rbs +10 -2
  201. data/sig/openai/models/responses/response.rbs +223 -0
  202. data/sig/openai/models/responses/response_configuration_update_item.rbs +45 -2
  203. data/sig/openai/models/responses/response_configuration_update_item_param.rbs +45 -2
  204. data/sig/openai/models/responses/response_create_params.rbs +5 -2
  205. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +4 -4
  206. data/sig/openai/models/responses/responses_client_event.rbs +17 -0
  207. data/sig/openai/models/responses/tool.rbs +4 -4
  208. data/sig/openai/models/video_edit_params.rbs +11 -2
  209. data/sig/openai/models/video_extend_params.rbs +11 -2
  210. data/sig/openai/net_http_client.rbs +3 -0
  211. data/sig/openai/resources/admin/organization/external_keys.rbs +70 -0
  212. data/sig/openai/resources/admin/organization/external_storage.rbs +23 -1
  213. data/sig/openai/resources/admin/organization.rbs +2 -0
  214. data/sig/openai/resources/audio/speech.rbs +2 -1
  215. data/sig/openai/resources/audio/transcriptions.rbs +14 -2
  216. data/sig/openai/resources/audio/voices.rbs +14 -1
  217. data/sig/openai/resources/beta/agents/sessions.rbs +4 -0
  218. data/sig/openai/resources/beta/agents.rbs +4 -0
  219. data/sig/openai/resources/beta/responses/input_tokens.rbs +2 -1
  220. data/sig/openai/resources/beta/responses.rbs +4 -2
  221. data/sig/openai/resources/decisions.rbs +7 -1
  222. data/sig/openai/resources/images.rbs +2 -0
  223. data/sig/openai/resources/responses/input_tokens.rbs +2 -1
  224. data/sig/openai/resources/responses.rbs +5 -2
  225. data/sig/openai/resources/videos.rbs +2 -2
  226. metadata +43 -1
@@ -433,8 +433,14 @@ module OpenAI
433
433
 
434
434
  # @!group
435
435
 
436
+ # @deprecated Announced shutdown date: 2027-01-20. See
437
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
438
+ # replacements.
436
439
  GPT_REALTIME = :"gpt-realtime"
437
440
  GPT_REALTIME_1_5 = :"gpt-realtime-1.5"
441
+ # @deprecated Announced shutdown date: 2027-01-20. See
442
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
443
+ # replacements.
438
444
  GPT_REALTIME_2025_08_28 = :"gpt-realtime-2025-08-28"
439
445
  GPT_4O_REALTIME_PREVIEW = :"gpt-4o-realtime-preview"
440
446
  GPT_4O_REALTIME_PREVIEW_2024_10_01 = :"gpt-4o-realtime-preview-2024-10-01"
@@ -442,12 +448,24 @@ module OpenAI
442
448
  GPT_4O_REALTIME_PREVIEW_2025_06_03 = :"gpt-4o-realtime-preview-2025-06-03"
443
449
  GPT_4O_MINI_REALTIME_PREVIEW = :"gpt-4o-mini-realtime-preview"
444
450
  GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17 = :"gpt-4o-mini-realtime-preview-2024-12-17"
451
+ # @deprecated Announced shutdown date: 2027-01-20. See
452
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
453
+ # replacements.
445
454
  GPT_REALTIME_MINI = :"gpt-realtime-mini"
446
455
  GPT_REALTIME_MINI_2025_10_06 = :"gpt-realtime-mini-2025-10-06"
456
+ # @deprecated Announced shutdown date: 2027-01-20. See
457
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
458
+ # replacements.
447
459
  GPT_REALTIME_MINI_2025_12_15 = :"gpt-realtime-mini-2025-12-15"
448
460
  GPT_AUDIO_1_5 = :"gpt-audio-1.5"
461
+ # @deprecated Announced shutdown date: 2027-01-20. See
462
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
463
+ # replacements.
449
464
  GPT_AUDIO_MINI = :"gpt-audio-mini"
450
465
  GPT_AUDIO_MINI_2025_10_06 = :"gpt-audio-mini-2025-10-06"
466
+ # @deprecated Announced shutdown date: 2027-01-20. See
467
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
468
+ # replacements.
451
469
  GPT_AUDIO_MINI_2025_12_15 = :"gpt-audio-mini-2025-12-15"
452
470
 
453
471
  # @!endgroup
@@ -332,11 +332,17 @@ module OpenAI
332
332
 
333
333
  # @!group
334
334
 
335
+ # @deprecated Announced shutdown date: 2027-01-20. See
336
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
337
+ # replacements.
335
338
  GPT_REALTIME = :"gpt-realtime"
336
339
  GPT_REALTIME_1_5 = :"gpt-realtime-1.5"
337
340
  GPT_REALTIME_2 = :"gpt-realtime-2"
338
341
  GPT_REALTIME_2_1 = :"gpt-realtime-2.1"
339
342
  GPT_REALTIME_2_1_MINI = :"gpt-realtime-2.1-mini"
343
+ # @deprecated Announced shutdown date: 2027-01-20. See
344
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
345
+ # replacements.
340
346
  GPT_REALTIME_2025_08_28 = :"gpt-realtime-2025-08-28"
341
347
  GPT_4O_REALTIME_PREVIEW = :"gpt-4o-realtime-preview"
342
348
  GPT_4O_REALTIME_PREVIEW_2024_10_01 = :"gpt-4o-realtime-preview-2024-10-01"
@@ -344,12 +350,24 @@ module OpenAI
344
350
  GPT_4O_REALTIME_PREVIEW_2025_06_03 = :"gpt-4o-realtime-preview-2025-06-03"
345
351
  GPT_4O_MINI_REALTIME_PREVIEW = :"gpt-4o-mini-realtime-preview"
346
352
  GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17 = :"gpt-4o-mini-realtime-preview-2024-12-17"
353
+ # @deprecated Announced shutdown date: 2027-01-20. See
354
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
355
+ # replacements.
347
356
  GPT_REALTIME_MINI = :"gpt-realtime-mini"
348
357
  GPT_REALTIME_MINI_2025_10_06 = :"gpt-realtime-mini-2025-10-06"
358
+ # @deprecated Announced shutdown date: 2027-01-20. See
359
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
360
+ # replacements.
349
361
  GPT_REALTIME_MINI_2025_12_15 = :"gpt-realtime-mini-2025-12-15"
350
362
  GPT_AUDIO_1_5 = :"gpt-audio-1.5"
363
+ # @deprecated Announced shutdown date: 2027-01-20. See
364
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
365
+ # replacements.
351
366
  GPT_AUDIO_MINI = :"gpt-audio-mini"
352
367
  GPT_AUDIO_MINI_2025_10_06 = :"gpt-audio-mini-2025-10-06"
368
+ # @deprecated Announced shutdown date: 2027-01-20. See
369
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
370
+ # replacements.
353
371
  GPT_AUDIO_MINI_2025_12_15 = :"gpt-audio-mini-2025-12-15"
354
372
 
355
373
  # @!endgroup
@@ -840,11 +840,17 @@ module OpenAI
840
840
 
841
841
  # @!group
842
842
 
843
+ # @deprecated Announced shutdown date: 2027-01-20. See
844
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
845
+ # replacements.
843
846
  GPT_REALTIME = :"gpt-realtime"
844
847
  GPT_REALTIME_1_5 = :"gpt-realtime-1.5"
845
848
  GPT_REALTIME_2 = :"gpt-realtime-2"
846
849
  GPT_REALTIME_2_1 = :"gpt-realtime-2.1"
847
850
  GPT_REALTIME_2_1_MINI = :"gpt-realtime-2.1-mini"
851
+ # @deprecated Announced shutdown date: 2027-01-20. See
852
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
853
+ # replacements.
848
854
  GPT_REALTIME_2025_08_28 = :"gpt-realtime-2025-08-28"
849
855
  GPT_4O_REALTIME_PREVIEW = :"gpt-4o-realtime-preview"
850
856
  GPT_4O_REALTIME_PREVIEW_2024_10_01 = :"gpt-4o-realtime-preview-2024-10-01"
@@ -852,12 +858,24 @@ module OpenAI
852
858
  GPT_4O_REALTIME_PREVIEW_2025_06_03 = :"gpt-4o-realtime-preview-2025-06-03"
853
859
  GPT_4O_MINI_REALTIME_PREVIEW = :"gpt-4o-mini-realtime-preview"
854
860
  GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17 = :"gpt-4o-mini-realtime-preview-2024-12-17"
861
+ # @deprecated Announced shutdown date: 2027-01-20. See
862
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
863
+ # replacements.
855
864
  GPT_REALTIME_MINI = :"gpt-realtime-mini"
856
865
  GPT_REALTIME_MINI_2025_10_06 = :"gpt-realtime-mini-2025-10-06"
866
+ # @deprecated Announced shutdown date: 2027-01-20. See
867
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
868
+ # replacements.
857
869
  GPT_REALTIME_MINI_2025_12_15 = :"gpt-realtime-mini-2025-12-15"
858
870
  GPT_AUDIO_1_5 = :"gpt-audio-1.5"
871
+ # @deprecated Announced shutdown date: 2027-01-20. See
872
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
873
+ # replacements.
859
874
  GPT_AUDIO_MINI = :"gpt-audio-mini"
860
875
  GPT_AUDIO_MINI_2025_10_06 = :"gpt-audio-mini-2025-10-06"
876
+ # @deprecated Announced shutdown date: 2027-01-20. See
877
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
878
+ # replacements.
861
879
  GPT_AUDIO_MINI_2025_12_15 = :"gpt-audio-mini-2025-12-15"
862
880
 
863
881
  # @!endgroup
@@ -13,7 +13,7 @@ module OpenAI
13
13
  # @!attribute item
14
14
  # A single item within a Realtime conversation.
15
15
  #
16
- # @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
16
+ # @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest, OpenAI::Realtime::ConversationItemWithReference]
17
17
  required :item, union: -> { OpenAI::Realtime::ConversationItem }
18
18
 
19
19
  # @!attribute output_index
@@ -40,7 +40,7 @@ module OpenAI
40
40
  # @param event_id [String]
41
41
  # The unique ID of the server event.
42
42
  #
43
- # @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
43
+ # @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest, OpenAI::Realtime::ConversationItemWithReference]
44
44
  # A single item within a Realtime conversation.
45
45
  #
46
46
  # @param output_index [Integer]
@@ -13,7 +13,7 @@ module OpenAI
13
13
  # @!attribute item
14
14
  # A single item within a Realtime conversation.
15
15
  #
16
- # @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
16
+ # @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest, OpenAI::Realtime::ConversationItemWithReference]
17
17
  required :item, union: -> { OpenAI::Realtime::ConversationItem }
18
18
 
19
19
  # @!attribute output_index
@@ -41,7 +41,7 @@ module OpenAI
41
41
  # @param event_id [String]
42
42
  # The unique ID of the server event.
43
43
  #
44
- # @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
44
+ # @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest, OpenAI::Realtime::ConversationItemWithReference]
45
45
  # A single item within a Realtime conversation.
46
46
  #
47
47
  # @param output_index [Integer]
@@ -319,6 +319,23 @@ module OpenAI
319
319
  # @return [OpenAI::Models::Responses::ResponseTextConfig, nil]
320
320
  optional :text, -> { OpenAI::Responses::ResponseTextConfig }
321
321
 
322
+ # @!attribute tool_usage
323
+ # Usage reported by hosted tools, separate from base model `usage`. The field can
324
+ # be omitted when tool usage is unavailable. When present, tool families with no
325
+ # recorded usage have zero counts.
326
+ #
327
+ # `image_gen` sums available token counts across image generation calls. Calls
328
+ # with missing or incomplete usage records may be skipped. Output token details
329
+ # and cached input counts can be omitted. An omitted cache count means cache usage
330
+ # is unknown.
331
+ #
332
+ # `web_search.num_requests` counts billable searches. Discounted searches and
333
+ # actions such as opening a page are excluded. Use billing records to reconcile
334
+ # final charges.
335
+ #
336
+ # @return [OpenAI::Models::Responses::Response::ToolUsage, nil]
337
+ optional :tool_usage, -> { OpenAI::Responses::Response::ToolUsage }
338
+
322
339
  # @!attribute top_logprobs
323
340
  # An integer between 0 and 20 specifying the maximum number of most likely tokens
324
341
  # to return at each token position, each with an associated log probability. In
@@ -358,7 +375,7 @@ module OpenAI
358
375
  # @return [String, nil]
359
376
  optional :user, String
360
377
 
361
- # @!method initialize(id:, access_programs:, 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_diagnostics: 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)
378
+ # @!method initialize(id:, access_programs:, 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_diagnostics: 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, tool_usage: nil, top_logprobs: nil, truncation: nil, usage: nil, user: nil, object: :response)
362
379
  # @param id [String]
363
380
  # Unique identifier for this Response.
364
381
  #
@@ -566,6 +583,20 @@ module OpenAI
566
583
  # - [Text inputs and outputs](https://developers.openai.com/api/docs/guides/text)
567
584
  # - [Structured Outputs](https://developers.openai.com/api/docs/guides/structured-outputs)
568
585
  #
586
+ # @param tool_usage [OpenAI::Models::Responses::Response::ToolUsage]
587
+ # Usage reported by hosted tools, separate from base model `usage`. The field can
588
+ # be omitted when tool usage is unavailable. When present, tool families with no
589
+ # recorded usage have zero counts.
590
+ #
591
+ # `image_gen` sums available token counts across image generation calls. Calls
592
+ # with missing or incomplete usage records may be skipped. Output token details
593
+ # and cached input counts can be omitted. An omitted cache count means cache usage
594
+ # is unknown.
595
+ #
596
+ # `web_search.num_requests` counts billable searches. Discounted searches and
597
+ # actions such as opening a page are excluded. Use billing records to reconcile
598
+ # final charges.
599
+ #
569
600
  # @param top_logprobs [Integer, nil]
570
601
  # An integer between 0 and 20 specifying the maximum number of most likely tokens
571
602
  # to return at each token position, each with an associated log probability. In
@@ -1288,6 +1319,195 @@ module OpenAI
1288
1319
  # @return [Array<Symbol>]
1289
1320
  end
1290
1321
 
1322
+ # @see OpenAI::Models::Responses::Response#tool_usage
1323
+ class ToolUsage < OpenAI::Internal::Type::BaseModel
1324
+ # @!attribute image_gen
1325
+ # Aggregated usage statistics for image generation tool calls.
1326
+ #
1327
+ # @return [OpenAI::Models::Responses::Response::ToolUsage::ImageGen]
1328
+ required :image_gen, -> { OpenAI::Responses::Response::ToolUsage::ImageGen }
1329
+
1330
+ # @!attribute web_search
1331
+ # Aggregated billable usage statistics for web search tool calls.
1332
+ #
1333
+ # @return [OpenAI::Models::Responses::Response::ToolUsage::WebSearch]
1334
+ required :web_search, -> { OpenAI::Responses::Response::ToolUsage::WebSearch }
1335
+
1336
+ # @!method initialize(image_gen:, web_search:)
1337
+ # Usage reported by hosted tools, separate from base model `usage`. The field can
1338
+ # be omitted when tool usage is unavailable. When present, tool families with no
1339
+ # recorded usage have zero counts.
1340
+ #
1341
+ # `image_gen` sums available token counts across image generation calls. Calls
1342
+ # with missing or incomplete usage records may be skipped. Output token details
1343
+ # and cached input counts can be omitted. An omitted cache count means cache usage
1344
+ # is unknown.
1345
+ #
1346
+ # `web_search.num_requests` counts billable searches. Discounted searches and
1347
+ # actions such as opening a page are excluded. Use billing records to reconcile
1348
+ # final charges.
1349
+ #
1350
+ # @param image_gen [OpenAI::Models::Responses::Response::ToolUsage::ImageGen]
1351
+ # Aggregated usage statistics for image generation tool calls.
1352
+ #
1353
+ # @param web_search [OpenAI::Models::Responses::Response::ToolUsage::WebSearch]
1354
+ # Aggregated billable usage statistics for web search tool calls.
1355
+
1356
+ # @see OpenAI::Models::Responses::Response::ToolUsage#image_gen
1357
+ class ImageGen < OpenAI::Internal::Type::BaseModel
1358
+ # @!attribute input_tokens
1359
+ # The number of tokens (images and text) in the input prompt.
1360
+ #
1361
+ # @return [Integer]
1362
+ required :input_tokens, Integer
1363
+
1364
+ # @!attribute input_tokens_details
1365
+ # The input tokens detailed information for the image generation.
1366
+ #
1367
+ # @return [OpenAI::Models::Responses::Response::ToolUsage::ImageGen::InputTokensDetails]
1368
+ required(
1369
+ :input_tokens_details,
1370
+ -> { OpenAI::Responses::Response::ToolUsage::ImageGen::InputTokensDetails }
1371
+ )
1372
+
1373
+ # @!attribute output_tokens
1374
+ # The number of output tokens generated by the model.
1375
+ #
1376
+ # @return [Integer]
1377
+ required :output_tokens, Integer
1378
+
1379
+ # @!attribute total_tokens
1380
+ # The total number of tokens (images and text) used for the image generation.
1381
+ #
1382
+ # @return [Integer]
1383
+ required :total_tokens, Integer
1384
+
1385
+ # @!attribute cached_tokens
1386
+ #
1387
+ # @return [Integer, nil]
1388
+ optional :cached_tokens, Integer
1389
+
1390
+ # @!attribute cached_tokens_details
1391
+ #
1392
+ # @return [OpenAI::Models::Responses::Response::ToolUsage::ImageGen::CachedTokensDetails, nil]
1393
+ optional(
1394
+ :cached_tokens_details,
1395
+ -> { OpenAI::Responses::Response::ToolUsage::ImageGen::CachedTokensDetails }
1396
+ )
1397
+
1398
+ # @!attribute output_tokens_details
1399
+ # The output token details for the image generation.
1400
+ #
1401
+ # @return [OpenAI::Models::Responses::Response::ToolUsage::ImageGen::OutputTokensDetails, nil]
1402
+ optional(
1403
+ :output_tokens_details,
1404
+ -> { OpenAI::Responses::Response::ToolUsage::ImageGen::OutputTokensDetails }
1405
+ )
1406
+
1407
+ # @!method initialize(input_tokens:, input_tokens_details:, output_tokens:, total_tokens:, cached_tokens: nil, cached_tokens_details: nil, output_tokens_details: nil)
1408
+ # Aggregated usage statistics for image generation tool calls.
1409
+ #
1410
+ # @param input_tokens [Integer]
1411
+ # The number of tokens (images and text) in the input prompt.
1412
+ #
1413
+ # @param input_tokens_details [OpenAI::Models::Responses::Response::ToolUsage::ImageGen::InputTokensDetails]
1414
+ # The input tokens detailed information for the image generation.
1415
+ #
1416
+ # @param output_tokens [Integer]
1417
+ # The number of output tokens generated by the model.
1418
+ #
1419
+ # @param total_tokens [Integer]
1420
+ # The total number of tokens (images and text) used for the image generation.
1421
+ #
1422
+ # @param cached_tokens [Integer]
1423
+ #
1424
+ # @param cached_tokens_details [OpenAI::Models::Responses::Response::ToolUsage::ImageGen::CachedTokensDetails]
1425
+ #
1426
+ # @param output_tokens_details [OpenAI::Models::Responses::Response::ToolUsage::ImageGen::OutputTokensDetails]
1427
+ # The output token details for the image generation.
1428
+
1429
+ # @see OpenAI::Models::Responses::Response::ToolUsage::ImageGen#input_tokens_details
1430
+ class InputTokensDetails < OpenAI::Internal::Type::BaseModel
1431
+ # @!attribute image_tokens
1432
+ # The number of image tokens in the input prompt.
1433
+ #
1434
+ # @return [Integer]
1435
+ required :image_tokens, Integer
1436
+
1437
+ # @!attribute text_tokens
1438
+ # The number of text tokens in the input prompt.
1439
+ #
1440
+ # @return [Integer]
1441
+ required :text_tokens, Integer
1442
+
1443
+ # @!method initialize(image_tokens:, text_tokens:)
1444
+ # The input tokens detailed information for the image generation.
1445
+ #
1446
+ # @param image_tokens [Integer]
1447
+ # The number of image tokens in the input prompt.
1448
+ #
1449
+ # @param text_tokens [Integer]
1450
+ # The number of text tokens in the input prompt.
1451
+ end
1452
+
1453
+ # @see OpenAI::Models::Responses::Response::ToolUsage::ImageGen#cached_tokens_details
1454
+ class CachedTokensDetails < OpenAI::Internal::Type::BaseModel
1455
+ # @!attribute cached_image_tokens
1456
+ #
1457
+ # @return [Integer]
1458
+ required :cached_image_tokens, Integer
1459
+
1460
+ # @!attribute cached_text_tokens
1461
+ #
1462
+ # @return [Integer]
1463
+ required :cached_text_tokens, Integer
1464
+
1465
+ # @!method initialize(cached_image_tokens:, cached_text_tokens:)
1466
+ # @param cached_image_tokens [Integer]
1467
+ # @param cached_text_tokens [Integer]
1468
+ end
1469
+
1470
+ # @see OpenAI::Models::Responses::Response::ToolUsage::ImageGen#output_tokens_details
1471
+ class OutputTokensDetails < OpenAI::Internal::Type::BaseModel
1472
+ # @!attribute image_tokens
1473
+ # The number of image output tokens generated by the model.
1474
+ #
1475
+ # @return [Integer]
1476
+ required :image_tokens, Integer
1477
+
1478
+ # @!attribute text_tokens
1479
+ # The number of text output tokens generated by the model.
1480
+ #
1481
+ # @return [Integer]
1482
+ required :text_tokens, Integer
1483
+
1484
+ # @!method initialize(image_tokens:, text_tokens:)
1485
+ # The output token details for the image generation.
1486
+ #
1487
+ # @param image_tokens [Integer]
1488
+ # The number of image output tokens generated by the model.
1489
+ #
1490
+ # @param text_tokens [Integer]
1491
+ # The number of text output tokens generated by the model.
1492
+ end
1493
+ end
1494
+
1495
+ # @see OpenAI::Models::Responses::Response::ToolUsage#web_search
1496
+ class WebSearch < OpenAI::Internal::Type::BaseModel
1497
+ # @!attribute num_requests
1498
+ # The number of billable web search requests issued.
1499
+ #
1500
+ # @return [Integer]
1501
+ required :num_requests, Integer
1502
+
1503
+ # @!method initialize(num_requests:)
1504
+ # Aggregated billable usage statistics for web search tool calls.
1505
+ #
1506
+ # @param num_requests [Integer]
1507
+ # The number of billable web search requests issued.
1508
+ end
1509
+ end
1510
+
1291
1511
  # The truncation strategy to use for the model response.
1292
1512
  #
1293
1513
  # - `auto`: If the input to this Response exceeds the model's context window size,
@@ -433,6 +433,9 @@ module OpenAI
433
433
  # replacements.
434
434
  GPT_5_4_NANO = :"gpt-5.4-nano"
435
435
  GPT_5_4_MINI_2026_03_17 = :"gpt-5.4-mini-2026-03-17"
436
+ # @deprecated Announced shutdown date: 2027-04-01. See
437
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
438
+ # replacements.
436
439
  GPT_5_4_NANO_2026_03_17 = :"gpt-5.4-nano-2026-03-17"
437
440
  # @deprecated Announced shutdown date: 2026-08-10. See
438
441
  # https://developers.openai.com/api/docs/deprecations for details and recommended
@@ -450,6 +453,9 @@ module OpenAI
450
453
  # https://developers.openai.com/api/docs/deprecations for details and recommended
451
454
  # replacements.
452
455
  GPT_5_1 = :"gpt-5.1"
456
+ # @deprecated Announced shutdown date: 2027-04-01. See
457
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
458
+ # replacements.
453
459
  GPT_5_1_2025_11_13 = :"gpt-5.1-2025-11-13"
454
460
  # @deprecated Announced shutdown date: 2026-07-23. See
455
461
  # https://developers.openai.com/api/docs/deprecations for details and recommended
@@ -22,9 +22,15 @@ module OpenAI
22
22
  # @return [OpenAI::Models::Responses::ResponseConfigurationUpdateItem::Reasoning, nil]
23
23
  optional :reasoning, -> { OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning }
24
24
 
25
- # @!method initialize(id:, reasoning: nil, type: :configuration_update)
26
- # A configuration update that applies to subsequent responses until it is replaced
27
- # by another configuration update.
25
+ # @!attribute text
26
+ # The text output configuration for subsequent responses.
27
+ #
28
+ # @return [OpenAI::Models::Responses::ResponseConfigurationUpdateItem::Text, nil]
29
+ optional :text, -> { OpenAI::Responses::ResponseConfigurationUpdateItem::Text }
30
+
31
+ # @!method initialize(id:, reasoning: nil, text: nil, type: :configuration_update)
32
+ # A configuration update for subsequent responses. Each setting stays in effect
33
+ # until a later update replaces that setting.
28
34
  #
29
35
  # @param id [String]
30
36
  # The unique ID of the configuration update item.
@@ -32,6 +38,9 @@ module OpenAI
32
38
  # @param reasoning [OpenAI::Models::Responses::ResponseConfigurationUpdateItem::Reasoning]
33
39
  # The reasoning configuration applied by this update.
34
40
  #
41
+ # @param text [OpenAI::Models::Responses::ResponseConfigurationUpdateItem::Text]
42
+ # The text output configuration for subsequent responses.
43
+ #
35
44
  # @param type [Symbol, :configuration_update]
36
45
  # The item type. Always `configuration_update`.
37
46
 
@@ -51,6 +60,44 @@ module OpenAI
51
60
  # The reasoning effort used for subsequent responses until another configuration
52
61
  # update replaces it.
53
62
  end
63
+
64
+ # @see OpenAI::Models::Responses::ResponseConfigurationUpdateItem#text
65
+ class Text < OpenAI::Internal::Type::BaseModel
66
+ # @!attribute format_
67
+ # Use a JSON schema for structured output or text to return to plain text.
68
+ #
69
+ # @return [OpenAI::Models::ResponseFormatText, OpenAI::Models::Responses::ResponseFormatTextJSONSchemaConfig]
70
+ required(
71
+ :format_,
72
+ union: -> { OpenAI::Responses::ResponseConfigurationUpdateItem::Text::Format },
73
+ api_name: :format
74
+ )
75
+
76
+ # @!method initialize(format_:)
77
+ # The text output configuration for subsequent responses.
78
+ #
79
+ # @param format_ [OpenAI::Models::ResponseFormatText, OpenAI::Models::Responses::ResponseFormatTextJSONSchemaConfig]
80
+ # Use a JSON schema for structured output or text to return to plain text.
81
+
82
+ # Use a JSON schema for structured output or text to return to plain text.
83
+ #
84
+ # @see OpenAI::Models::Responses::ResponseConfigurationUpdateItem::Text#format_
85
+ module Format
86
+ extend OpenAI::Internal::Type::Union
87
+
88
+ discriminator :type
89
+
90
+ # Default response format. Used to generate text responses.
91
+ variant :text, -> { OpenAI::ResponseFormatText }
92
+
93
+ # JSON Schema response format. Used to generate structured JSON responses.
94
+ # Learn more about [Structured Outputs](https://developers.openai.com/api/docs/guides/structured-outputs).
95
+ variant :json_schema, -> { OpenAI::Responses::ResponseFormatTextJSONSchemaConfig }
96
+
97
+ # @!method self.variants
98
+ # @return [Array(OpenAI::Models::ResponseFormatText, OpenAI::Models::Responses::ResponseFormatTextJSONSchemaConfig)]
99
+ end
100
+ end
54
101
  end
55
102
  end
56
103
  end
@@ -22,10 +22,15 @@ module OpenAI
22
22
  # @return [OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam::Reasoning, nil]
23
23
  optional :reasoning, -> { OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning }
24
24
 
25
- # @!method initialize(id: nil, reasoning: nil, type: :configuration_update)
26
- # An update to the conversation's response configuration. The configuration
27
- # remains in effect for subsequent responses until it is replaced by another
28
- # configuration update.
25
+ # @!attribute text
26
+ # The text output configuration for subsequent responses.
27
+ #
28
+ # @return [OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam::Text, nil]
29
+ optional :text, -> { OpenAI::Responses::ResponseConfigurationUpdateItemParam::Text }
30
+
31
+ # @!method initialize(id: nil, reasoning: nil, text: nil, type: :configuration_update)
32
+ # An update to the conversation's response configuration. Supply reasoning, text,
33
+ # or both. Each setting stays in effect until a later update replaces it.
29
34
  #
30
35
  # @param id [String, nil]
31
36
  # The unique ID of the configuration update item.
@@ -33,6 +38,9 @@ module OpenAI
33
38
  # @param reasoning [OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam::Reasoning]
34
39
  # Updates to reasoning configuration. Only effort is supported.
35
40
  #
41
+ # @param text [OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam::Text]
42
+ # The text output configuration for subsequent responses.
43
+ #
36
44
  # @param type [Symbol, :configuration_update]
37
45
  # The item type. Always `configuration_update`.
38
46
 
@@ -52,6 +60,44 @@ module OpenAI
52
60
  # The reasoning effort to use for subsequent responses until another configuration
53
61
  # update replaces it.
54
62
  end
63
+
64
+ # @see OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam#text
65
+ class Text < OpenAI::Internal::Type::BaseModel
66
+ # @!attribute format_
67
+ # Use a JSON schema for structured output or text to return to plain text.
68
+ #
69
+ # @return [OpenAI::Models::ResponseFormatText, OpenAI::Models::Responses::ResponseFormatTextJSONSchemaConfig]
70
+ required(
71
+ :format_,
72
+ union: -> { OpenAI::Responses::ResponseConfigurationUpdateItemParam::Text::Format },
73
+ api_name: :format
74
+ )
75
+
76
+ # @!method initialize(format_:)
77
+ # The text output configuration for subsequent responses.
78
+ #
79
+ # @param format_ [OpenAI::Models::ResponseFormatText, OpenAI::Models::Responses::ResponseFormatTextJSONSchemaConfig]
80
+ # Use a JSON schema for structured output or text to return to plain text.
81
+
82
+ # Use a JSON schema for structured output or text to return to plain text.
83
+ #
84
+ # @see OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam::Text#format_
85
+ module Format
86
+ extend OpenAI::Internal::Type::Union
87
+
88
+ discriminator :type
89
+
90
+ # Default response format. Used to generate text responses.
91
+ variant :text, -> { OpenAI::ResponseFormatText }
92
+
93
+ # JSON Schema response format. Used to generate structured JSON responses.
94
+ # Learn more about [Structured Outputs](https://developers.openai.com/api/docs/guides/structured-outputs).
95
+ variant :json_schema, -> { OpenAI::Responses::ResponseFormatTextJSONSchemaConfig }
96
+
97
+ # @!method self.variants
98
+ # @return [Array(OpenAI::Models::ResponseFormatText, OpenAI::Models::Responses::ResponseFormatTextJSONSchemaConfig)]
99
+ end
100
+ end
55
101
  end
56
102
  end
57
103
  end
@@ -56,9 +56,8 @@ module OpenAI
56
56
 
57
57
  variant :additional_tools, -> { OpenAI::Responses::ResponseInputItem::AdditionalTools }
58
58
 
59
- # An update to the conversation's response configuration. The configuration
60
- # remains in effect for subsequent responses until it is replaced by another
61
- # configuration update.
59
+ # An update to the conversation's response configuration. Supply reasoning,
60
+ # text, or both. Each setting stays in effect until a later update replaces it.
62
61
  variant :configuration_update, -> { OpenAI::Responses::ResponseConfigurationUpdateItemParam }
63
62
 
64
63
  # A description of the chain of thought used by a reasoning model while generating
@@ -40,8 +40,8 @@ module OpenAI
40
40
 
41
41
  variant :additional_tools, -> { OpenAI::Responses::ResponseItem::AdditionalTools }
42
42
 
43
- # A configuration update that applies to subsequent responses until it is
44
- # replaced by another configuration update.
43
+ # A configuration update for subsequent responses. Each setting stays in effect
44
+ # until a later update replaces that setting.
45
45
  variant :configuration_update, -> { OpenAI::Responses::ResponseConfigurationUpdateItem }
46
46
 
47
47
  # A description of the chain of thought used by a reasoning model while generating
@@ -755,8 +755,8 @@ module OpenAI
755
755
  # @!attribute input_fidelity
756
756
  # Control how much effort the model will exert to match the style and features,
757
757
  # especially facial features, of input images. Supports `high` and `low` on
758
- # `gpt-image-1` and `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For
759
- # `gpt-image-2`, omit this parameter. Defaults to `low` on supported models.
758
+ # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
759
+ # this parameter. Defaults to `low` on supported models.
760
760
  #
761
761
  # @return [Symbol, OpenAI::Models::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::InputFidelity, nil]
762
762
  optional(
@@ -875,8 +875,8 @@ module OpenAI
875
875
  # @param input_fidelity [Symbol, OpenAI::Models::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::InputFidelity, nil]
876
876
  # Control how much effort the model will exert to match the style and features,
877
877
  # especially facial features, of input images. Supports `high` and `low` on
878
- # `gpt-image-1` and `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For
879
- # `gpt-image-2`, omit this parameter. Defaults to `low` on supported models.
878
+ # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
879
+ # this parameter. Defaults to `low` on supported models.
880
880
  #
881
881
  # @param input_image_mask [OpenAI::Models::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::InputImageMask]
882
882
  # Optional mask for inpainting. Contains `image_url` (string, optional) and
@@ -965,8 +965,8 @@ module OpenAI
965
965
 
966
966
  # Control how much effort the model will exert to match the style and features,
967
967
  # especially facial features, of input images. Supports `high` and `low` on
968
- # `gpt-image-1` and `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For
969
- # `gpt-image-2`, omit this parameter. Defaults to `low` on supported models.
968
+ # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
969
+ # this parameter. Defaults to `low` on supported models.
970
970
  #
971
971
  # @see OpenAI::Models::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration#input_fidelity
972
972
  module InputFidelity