openai 0.111.0 → 0.112.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 (230) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/beta/agent.rb +2 -2
  5. data/lib/openai/models/beta/agent_create_params.rb +2 -2
  6. data/lib/openai/models/beta/agent_session.rb +2 -2
  7. data/lib/openai/models/beta/agent_tool.rb +18 -1
  8. data/lib/openai/models/beta/agent_tool_param.rb +18 -1
  9. data/lib/openai/models/beta/agent_update_params.rb +2 -2
  10. data/lib/openai/models/beta/agents/session_create_params.rb +2 -2
  11. data/lib/openai/models/beta/beta_response_input_file.rb +23 -1
  12. data/lib/openai/models/beta/beta_response_input_file_content.rb +23 -1
  13. data/lib/openai/models/beta/beta_response_input_image.rb +23 -1
  14. data/lib/openai/models/beta/beta_response_input_image_content.rb +23 -1
  15. data/lib/openai/models/beta/beta_response_input_text.rb +23 -1
  16. data/lib/openai/models/beta/beta_response_input_text_content.rb +23 -1
  17. data/lib/openai/models/beta/beta_response_item.rb +28 -1
  18. data/lib/openai/models/beta/beta_response_output_item.rb +28 -1
  19. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +26 -15
  20. data/lib/openai/models/beta/beta_tool.rb +26 -15
  21. data/lib/openai/models/beta/persisted_agent_tool.rb +18 -1
  22. data/lib/openai/models/beta/persisted_agent_tool_param.rb +18 -1
  23. data/lib/openai/models/chat/chat_completion_content_part.rb +23 -1
  24. data/lib/openai/models/chat/chat_completion_content_part_image.rb +23 -1
  25. data/lib/openai/models/chat/chat_completion_content_part_input_audio.rb +23 -1
  26. data/lib/openai/models/chat/chat_completion_content_part_text.rb +23 -1
  27. data/lib/openai/models/conversations/computer_screenshot_content.rb +23 -1
  28. data/lib/openai/models/decision_create_params.rb +8 -4
  29. data/lib/openai/models/image_edit_params.rb +20 -4
  30. data/lib/openai/models/image_generate_params.rb +23 -7
  31. data/lib/openai/models/image_model.rb +2 -0
  32. data/lib/openai/models/live/client_delegation.rb +20 -1
  33. data/lib/openai/models/live/client_event.rb +4 -4
  34. data/lib/openai/models/live/commentary_append_event.rb +1 -1
  35. data/lib/openai/models/live/decision_assistant_message.rb +154 -0
  36. data/lib/openai/models/live/decision_choice_option.rb +35 -0
  37. data/lib/openai/models/live/decision_developer_message.rb +70 -0
  38. data/lib/openai/models/live/decision_input_text.rb +26 -0
  39. data/lib/openai/models/live/decision_item_create_event.rb +490 -131
  40. data/lib/openai/models/live/decision_item_created_event.rb +486 -131
  41. data/lib/openai/models/live/decision_json_object.rb +10 -0
  42. data/lib/openai/models/live/decision_question.rb +172 -0
  43. data/lib/openai/models/live/decision_stored_assistant_message.rb +152 -0
  44. data/lib/openai/models/live/decision_stored_developer_message.rb +68 -0
  45. data/lib/openai/models/live/decision_stored_system_message.rb +68 -0
  46. data/lib/openai/models/live/decision_stored_user_message.rb +195 -0
  47. data/lib/openai/models/live/decision_system_message.rb +70 -0
  48. data/lib/openai/models/live/decision_trigger.rb +6 -258
  49. data/lib/openai/models/live/decision_user_message.rb +193 -0
  50. data/lib/openai/models/live/decisions_delegation_config.rb +5 -250
  51. data/lib/openai/models/live/decisions_delegation_update_config.rb +5 -257
  52. data/lib/openai/models/live/fork_client_event.rb +4 -4
  53. data/lib/openai/models/live/fork_server_event.rb +2 -2
  54. data/lib/openai/models/live/fork_session_config.rb +20 -1
  55. data/lib/openai/models/live/input_audio_muted_event.rb +3 -2
  56. data/lib/openai/models/live/input_audio_unmute_event.rb +2 -1
  57. data/lib/openai/models/live/input_audio_unmuted_event.rb +3 -2
  58. data/lib/openai/models/live/instructions_append_event.rb +5 -2
  59. data/lib/openai/models/live/media_session_config.rb +39 -2
  60. data/lib/openai/models/live/media_session_fork_config.rb +20 -1
  61. data/lib/openai/models/live/server_event.rb +2 -2
  62. data/lib/openai/models/live/session_accept_params.rb +39 -2
  63. data/lib/openai/models/live/session_config.rb +39 -2
  64. data/lib/openai/models/live/session_resource.rb +39 -2
  65. data/lib/openai/models/live/session_update_config.rb +41 -2
  66. data/lib/openai/models/live/sideband_client_event.rb +4 -4
  67. data/lib/openai/models/live/sideband_server_event.rb +2 -2
  68. data/lib/openai/models/live/thinking_append_event.rb +1 -1
  69. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +10 -12
  70. data/lib/openai/models/realtime/realtime_error_event.rb +1 -1
  71. data/lib/openai/models/realtime/realtime_server_event.rb +1 -1
  72. data/lib/openai/models/realtime/realtime_translation_server_event.rb +1 -1
  73. data/lib/openai/models/responses/response_input_file.rb +23 -1
  74. data/lib/openai/models/responses/response_input_file_content.rb +23 -1
  75. data/lib/openai/models/responses/response_input_image.rb +23 -1
  76. data/lib/openai/models/responses/response_input_image_content.rb +23 -1
  77. data/lib/openai/models/responses/response_input_text.rb +23 -1
  78. data/lib/openai/models/responses/response_input_text_content.rb +23 -1
  79. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +26 -15
  80. data/lib/openai/models/responses/tool.rb +26 -15
  81. data/lib/openai/resources/beta/agents.rb +2 -2
  82. data/lib/openai/resources/beta/responses.rb +2 -2
  83. data/lib/openai/resources/images.rb +18 -6
  84. data/lib/openai/resources/live/forks.rb +2 -2
  85. data/lib/openai/resources/live/sideband.rb +2 -2
  86. data/lib/openai/resources/live.rb +2 -2
  87. data/lib/openai/resources/realtime/translations.rb +2 -2
  88. data/lib/openai/resources/realtime.rb +2 -2
  89. data/lib/openai/resources/responses.rb +2 -2
  90. data/lib/openai/version.rb +1 -1
  91. data/lib/openai.rb +12 -0
  92. data/rbi/openai/models/beta/agent.rbi +2 -1
  93. data/rbi/openai/models/beta/agent_create_params.rbi +6 -3
  94. data/rbi/openai/models/beta/agent_session.rbi +2 -1
  95. data/rbi/openai/models/beta/agent_tool.rbi +40 -1
  96. data/rbi/openai/models/beta/agent_tool_param.rbi +40 -1
  97. data/rbi/openai/models/beta/agent_update_params.rbi +6 -3
  98. data/rbi/openai/models/beta/agents/session_create_params.rbi +6 -3
  99. data/rbi/openai/models/beta/beta_response_input_file.rbi +31 -1
  100. data/rbi/openai/models/beta/beta_response_input_file_content.rbi +39 -1
  101. data/rbi/openai/models/beta/beta_response_input_image.rbi +31 -1
  102. data/rbi/openai/models/beta/beta_response_input_image_content.rbi +39 -1
  103. data/rbi/openai/models/beta/beta_response_input_text.rbi +31 -1
  104. data/rbi/openai/models/beta/beta_response_input_text_content.rbi +39 -1
  105. data/rbi/openai/models/beta/beta_response_item.rbi +58 -1
  106. data/rbi/openai/models/beta/beta_response_output_item.rbi +58 -1
  107. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +24 -15
  108. data/rbi/openai/models/beta/beta_tool.rbi +24 -15
  109. data/rbi/openai/models/beta/persisted_agent_tool.rbi +40 -1
  110. data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +40 -1
  111. data/rbi/openai/models/chat/chat_completion_content_part.rbi +43 -1
  112. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +41 -1
  113. data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +46 -1
  114. data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +39 -1
  115. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +48 -1
  116. data/rbi/openai/models/image_edit_params.rbi +12 -3
  117. data/rbi/openai/models/image_generate_params.rbi +15 -6
  118. data/rbi/openai/models/live/client_delegation.rbi +23 -1
  119. data/rbi/openai/models/live/commentary_append_event.rbi +1 -1
  120. data/rbi/openai/models/live/decision_assistant_message.rbi +247 -0
  121. data/rbi/openai/models/live/decision_choice_option.rbi +67 -0
  122. data/rbi/openai/models/live/decision_developer_message.rbi +109 -0
  123. data/rbi/openai/models/live/decision_input_text.rbi +55 -0
  124. data/rbi/openai/models/live/decision_item_create_event.rbi +765 -184
  125. data/rbi/openai/models/live/decision_item_created_event.rbi +737 -184
  126. data/rbi/openai/models/live/decision_json_object.rbi +16 -0
  127. data/rbi/openai/models/live/decision_question.rbi +300 -0
  128. data/rbi/openai/models/live/decision_stored_assistant_message.rbi +245 -0
  129. data/rbi/openai/models/live/decision_stored_developer_message.rbi +107 -0
  130. data/rbi/openai/models/live/decision_stored_system_message.rbi +107 -0
  131. data/rbi/openai/models/live/decision_stored_user_message.rbi +333 -0
  132. data/rbi/openai/models/live/decision_system_message.rbi +109 -0
  133. data/rbi/openai/models/live/decision_trigger.rbi +11 -383
  134. data/rbi/openai/models/live/decision_user_message.rbi +320 -0
  135. data/rbi/openai/models/live/decisions_delegation_config.rbi +10 -384
  136. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +13 -387
  137. data/rbi/openai/models/live/fork_session_config.rbi +27 -1
  138. data/rbi/openai/models/live/input_audio_muted_event.rbi +3 -2
  139. data/rbi/openai/models/live/input_audio_unmute_event.rbi +2 -1
  140. data/rbi/openai/models/live/input_audio_unmuted_event.rbi +3 -2
  141. data/rbi/openai/models/live/instructions_append_event.rbi +5 -2
  142. data/rbi/openai/models/live/media_session_config.rbi +44 -2
  143. data/rbi/openai/models/live/media_session_fork_config.rbi +27 -1
  144. data/rbi/openai/models/live/session_accept_params.rbi +44 -2
  145. data/rbi/openai/models/live/session_config.rbi +44 -2
  146. data/rbi/openai/models/live/session_resource.rbi +44 -2
  147. data/rbi/openai/models/live/session_update_config.rbi +54 -2
  148. data/rbi/openai/models/live/thinking_append_event.rbi +1 -1
  149. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +10 -12
  150. data/rbi/openai/models/realtime/realtime_error_event.rbi +1 -1
  151. data/rbi/openai/models/responses/response_input_file.rbi +31 -1
  152. data/rbi/openai/models/responses/response_input_file_content.rbi +39 -1
  153. data/rbi/openai/models/responses/response_input_image.rbi +33 -1
  154. data/rbi/openai/models/responses/response_input_image_content.rbi +41 -1
  155. data/rbi/openai/models/responses/response_input_text.rbi +31 -1
  156. data/rbi/openai/models/responses/response_input_text_content.rbi +39 -1
  157. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +24 -15
  158. data/rbi/openai/models/responses/tool.rbi +24 -15
  159. data/rbi/openai/resources/beta/agents.rbi +4 -2
  160. data/rbi/openai/resources/beta/responses.rbi +8 -1
  161. data/rbi/openai/resources/images.rbi +18 -6
  162. data/rbi/openai/resources/live/forks.rbi +8 -1
  163. data/rbi/openai/resources/live/sideband.rbi +8 -1
  164. data/rbi/openai/resources/live.rbi +8 -1
  165. data/rbi/openai/resources/realtime/translations.rbi +8 -1
  166. data/rbi/openai/resources/realtime.rbi +8 -1
  167. data/rbi/openai/resources/responses.rbi +8 -1
  168. data/sig/openai/models/beta/agent_tool.rbs +14 -0
  169. data/sig/openai/models/beta/agent_tool_param.rbs +14 -0
  170. data/sig/openai/models/beta/beta_response_input_file.rbs +34 -3
  171. data/sig/openai/models/beta/beta_response_input_file_content.rbs +34 -3
  172. data/sig/openai/models/beta/beta_response_input_image.rbs +34 -3
  173. data/sig/openai/models/beta/beta_response_input_image_content.rbs +34 -3
  174. data/sig/openai/models/beta/beta_response_input_text.rbs +34 -3
  175. data/sig/openai/models/beta/beta_response_input_text_content.rbs +34 -3
  176. data/sig/openai/models/beta/beta_response_item.rbs +34 -3
  177. data/sig/openai/models/beta/beta_response_output_item.rbs +34 -3
  178. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +24 -15
  179. data/sig/openai/models/beta/beta_tool.rbs +24 -15
  180. data/sig/openai/models/beta/persisted_agent_tool.rbs +14 -0
  181. data/sig/openai/models/beta/persisted_agent_tool_param.rbs +14 -0
  182. data/sig/openai/models/chat/chat_completion_content_part.rbs +34 -3
  183. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +34 -3
  184. data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +34 -3
  185. data/sig/openai/models/chat/chat_completion_content_part_text.rbs +34 -3
  186. data/sig/openai/models/conversations/computer_screenshot_content.rbs +34 -3
  187. data/sig/openai/models/image_edit_params.rbs +8 -2
  188. data/sig/openai/models/image_generate_params.rbs +10 -4
  189. data/sig/openai/models/live/client_delegation.rbs +30 -3
  190. data/sig/openai/models/live/decision_assistant_message.rbs +134 -0
  191. data/sig/openai/models/live/decision_choice_option.rbs +37 -0
  192. data/sig/openai/models/live/decision_developer_message.rbs +67 -0
  193. data/sig/openai/models/live/decision_input_text.rbs +20 -0
  194. data/sig/openai/models/live/decision_item_create_event.rbs +413 -131
  195. data/sig/openai/models/live/decision_item_created_event.rbs +401 -131
  196. data/sig/openai/models/live/decision_json_object.rbs +9 -0
  197. data/sig/openai/models/live/decision_question.rbs +164 -0
  198. data/sig/openai/models/live/decision_stored_assistant_message.rbs +131 -0
  199. data/sig/openai/models/live/decision_stored_developer_message.rbs +64 -0
  200. data/sig/openai/models/live/decision_stored_system_message.rbs +64 -0
  201. data/sig/openai/models/live/decision_stored_user_message.rbs +177 -0
  202. data/sig/openai/models/live/decision_system_message.rbs +67 -0
  203. data/sig/openai/models/live/decision_trigger.rbs +8 -208
  204. data/sig/openai/models/live/decision_user_message.rbs +180 -0
  205. data/sig/openai/models/live/decisions_delegation_config.rbs +6 -204
  206. data/sig/openai/models/live/decisions_delegation_update_config.rbs +8 -206
  207. data/sig/openai/models/live/fork_session_config.rbs +26 -0
  208. data/sig/openai/models/live/media_session_config.rbs +53 -4
  209. data/sig/openai/models/live/media_session_fork_config.rbs +26 -0
  210. data/sig/openai/models/live/session_accept_params.rbs +53 -4
  211. data/sig/openai/models/live/session_config.rbs +53 -4
  212. data/sig/openai/models/live/session_resource.rbs +53 -4
  213. data/sig/openai/models/live/session_update_config.rbs +52 -0
  214. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +10 -12
  215. data/sig/openai/models/responses/response_input_file.rbs +34 -3
  216. data/sig/openai/models/responses/response_input_file_content.rbs +34 -3
  217. data/sig/openai/models/responses/response_input_image.rbs +34 -3
  218. data/sig/openai/models/responses/response_input_image_content.rbs +34 -3
  219. data/sig/openai/models/responses/response_input_text.rbs +34 -3
  220. data/sig/openai/models/responses/response_input_text_content.rbs +34 -3
  221. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +24 -15
  222. data/sig/openai/models/responses/tool.rbs +24 -15
  223. data/sig/openai/resources/beta/responses.rbs +2 -1
  224. data/sig/openai/resources/live/forks.rbs +2 -1
  225. data/sig/openai/resources/live/sideband.rbs +2 -1
  226. data/sig/openai/resources/live.rbs +2 -1
  227. data/sig/openai/resources/realtime/translations.rbs +2 -1
  228. data/sig/openai/resources/realtime.rbs +2 -1
  229. data/sig/openai/resources/responses.rbs +2 -1
  230. metadata +37 -1
@@ -1336,11 +1336,14 @@ module OpenAI
1336
1336
  }
1337
1337
  attr_writer :input_image_mask
1338
1338
 
1339
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1340
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1341
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1342
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1343
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1339
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1340
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1341
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1342
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1343
+ # `gpt-image-2`.
1344
+ #
1345
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1346
+ # `gpt-image-2.5-flare` instead.
1344
1347
  sig {
1345
1348
  returns(
1346
1349
  T.nilable(
@@ -1532,11 +1535,14 @@ module OpenAI
1532
1535
  # `file_id` (string, optional).
1533
1536
  input_image_mask: nil,
1534
1537
 
1535
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1536
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1537
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1538
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1539
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1538
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1539
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1540
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1541
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1542
+ # `gpt-image-2`.
1543
+ #
1544
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1545
+ # `gpt-image-2.5-flare` instead.
1540
1546
  model: nil,
1541
1547
 
1542
1548
  # Moderation level for the generated image. Default: `auto`.
@@ -1766,11 +1772,14 @@ module OpenAI
1766
1772
 
1767
1773
  end
1768
1774
 
1769
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1770
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1771
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1772
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1773
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1775
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1776
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1777
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1778
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1779
+ # `gpt-image-2`.
1780
+ #
1781
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1782
+ # `gpt-image-2.5-flare` instead.
1774
1783
  module Model
1775
1784
  extend OpenAI::Internal::Type::Union
1776
1785
 
@@ -991,11 +991,14 @@ module OpenAI
991
991
  sig { params(input_image_mask: OpenAI::Beta::BetaTool::ImageGeneration::InputImageMask::OrHash).void }
992
992
  attr_writer :input_image_mask
993
993
 
994
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
995
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
996
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
997
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
998
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
994
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
995
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
996
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
997
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
998
+ # `gpt-image-2`.
999
+ #
1000
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1001
+ # `gpt-image-2.5-flare` instead.
999
1002
  sig { returns(T.nilable(T.any(String, OpenAI::Beta::BetaTool::ImageGeneration::Model::OrSymbol))) }
1000
1003
  attr_reader :model
1001
1004
 
@@ -1114,11 +1117,14 @@ module OpenAI
1114
1117
  # `file_id` (string, optional).
1115
1118
  input_image_mask: nil,
1116
1119
 
1117
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1118
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1119
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1120
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1121
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1120
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1121
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1122
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1123
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1124
+ # `gpt-image-2`.
1125
+ #
1126
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1127
+ # `gpt-image-2.5-flare` instead.
1122
1128
  model: nil,
1123
1129
 
1124
1130
  # Moderation level for the generated image. Default: `auto`.
@@ -1292,11 +1298,14 @@ module OpenAI
1292
1298
 
1293
1299
  end
1294
1300
 
1295
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1296
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1297
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1298
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1299
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1301
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1302
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1303
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1304
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1305
+ # `gpt-image-2`.
1306
+ #
1307
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1308
+ # `gpt-image-2.5-flare` instead.
1300
1309
  module Model
1301
1310
  extend OpenAI::Internal::Type::Union
1302
1311
 
@@ -16,7 +16,8 @@ module OpenAI
16
16
  OpenAI::Beta::PersistedAgentTool::ProgrammaticToolCalling,
17
17
  OpenAI::Beta::PersistedAgentTool::Mcp,
18
18
  OpenAI::Beta::PersistedAgentTool::WebSearch,
19
- OpenAI::Beta::PersistedAgentTool::ComputerUse
19
+ OpenAI::Beta::PersistedAgentTool::ComputerUse,
20
+ OpenAI::Beta::PersistedAgentTool::Automations
20
21
  )
21
22
  end
22
23
 
@@ -543,6 +544,44 @@ module OpenAI
543
544
 
544
545
  end
545
546
 
547
+ class Automations < OpenAI::Internal::Type::BaseModel
548
+ OrHash = T.type_alias do
549
+ T.any(
550
+ OpenAI::Beta::PersistedAgentTool::Automations,
551
+ OpenAI::Internal::AnyHash
552
+ )
553
+ end
554
+
555
+ # The type of the object. Always `automations`.
556
+ sig { returns(Symbol) }
557
+ attr_accessor :type
558
+
559
+ # Lets the agent manage its own scheduled wakeups.
560
+ sig do
561
+ params(
562
+
563
+ type: Symbol
564
+ )
565
+ .returns(T.attached_class)
566
+ end
567
+ def self.new(
568
+
569
+ # The type of the object. Always `automations`.
570
+
571
+ type: :automations
572
+ )
573
+ end
574
+
575
+ sig do
576
+ override.returns(
577
+ {type: Symbol}
578
+ )
579
+ end
580
+ def to_hash
581
+ end
582
+
583
+ end
584
+
546
585
  sig { override.returns(T::Array[OpenAI::Beta::PersistedAgentTool::Variants]) }
547
586
  def self.variants
548
587
  end
@@ -16,7 +16,8 @@ module OpenAI
16
16
  OpenAI::Beta::PersistedAgentToolParam::ProgrammaticToolCalling,
17
17
  OpenAI::Beta::PersistedAgentToolParam::Mcp,
18
18
  OpenAI::Beta::PersistedAgentToolParam::WebSearch,
19
- OpenAI::Beta::PersistedAgentToolParam::ComputerUse
19
+ OpenAI::Beta::PersistedAgentToolParam::ComputerUse,
20
+ OpenAI::Beta::PersistedAgentToolParam::Automations
20
21
  )
21
22
  end
22
23
 
@@ -585,6 +586,44 @@ module OpenAI
585
586
 
586
587
  end
587
588
 
589
+ class Automations < OpenAI::Internal::Type::BaseModel
590
+ OrHash = T.type_alias do
591
+ T.any(
592
+ OpenAI::Beta::PersistedAgentToolParam::Automations,
593
+ OpenAI::Internal::AnyHash
594
+ )
595
+ end
596
+
597
+ # The type of the object. Always `automations`.
598
+ sig { returns(Symbol) }
599
+ attr_accessor :type
600
+
601
+ # Lets the agent manage its own scheduled wakeups.
602
+ sig do
603
+ params(
604
+
605
+ type: Symbol
606
+ )
607
+ .returns(T.attached_class)
608
+ end
609
+ def self.new(
610
+
611
+ # The type of the object. Always `automations`.
612
+
613
+ type: :automations
614
+ )
615
+ end
616
+
617
+ sig do
618
+ override.returns(
619
+ {type: Symbol}
620
+ )
621
+ end
622
+ def to_hash
623
+ end
624
+
625
+ end
626
+
588
627
  sig { override.returns(T::Array[OpenAI::Beta::PersistedAgentToolParam::Variants]) }
589
628
  def self.variants
590
629
  end
@@ -170,18 +170,34 @@ module OpenAI
170
170
  sig { returns(Symbol) }
171
171
  attr_accessor :mode
172
172
 
173
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
174
+ sig {
175
+ returns(T.nilable(OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::OrSymbol))
176
+ }
177
+ attr_reader :ttl
178
+
179
+ sig {
180
+ params(ttl: OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::OrSymbol).void
181
+ }
182
+ attr_writer :ttl
183
+
173
184
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
174
185
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
175
186
  # token block.
176
187
  sig do
177
188
  params(
178
189
 
190
+ ttl: OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::OrSymbol,
191
+
179
192
  mode: Symbol
180
193
  )
181
194
  .returns(T.attached_class)
182
195
  end
183
196
  def self.new(
184
197
 
198
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
199
+ ttl: nil,
200
+
185
201
  # The breakpoint mode. Always `explicit`.
186
202
 
187
203
  mode: :explicit
@@ -190,12 +206,38 @@ module OpenAI
190
206
 
191
207
  sig do
192
208
  override.returns(
193
- {mode: Symbol}
209
+ {mode: Symbol, ttl: OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::OrSymbol}
194
210
  )
195
211
  end
196
212
  def to_hash
197
213
  end
198
214
 
215
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
216
+ module Ttl
217
+ extend OpenAI::Internal::Type::Enum
218
+
219
+ TaggedSymbol = T.type_alias {
220
+ T.all(Symbol, OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl)
221
+ }
222
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
223
+
224
+ TTL_30M = T.let(
225
+ :"30m",
226
+ OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::TaggedSymbol
227
+ )
228
+ TTL_12H = T.let(
229
+ :"12h",
230
+ OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::TaggedSymbol
231
+ )
232
+
233
+ sig {
234
+ override.returns(
235
+ T::Array[OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::TaggedSymbol]
236
+ )
237
+ }
238
+ def self.values
239
+ end
240
+ end
199
241
  end
200
242
  end
201
243
 
@@ -162,18 +162,32 @@ module OpenAI
162
162
  sig { returns(Symbol) }
163
163
  attr_accessor :mode
164
164
 
165
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
166
+ sig {
167
+ returns(T.nilable(OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::OrSymbol))
168
+ }
169
+ attr_reader :ttl
170
+
171
+ sig { params(ttl: OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::OrSymbol).void }
172
+ attr_writer :ttl
173
+
165
174
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
166
175
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
167
176
  # token block.
168
177
  sig do
169
178
  params(
170
179
 
180
+ ttl: OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::OrSymbol,
181
+
171
182
  mode: Symbol
172
183
  )
173
184
  .returns(T.attached_class)
174
185
  end
175
186
  def self.new(
176
187
 
188
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
189
+ ttl: nil,
190
+
177
191
  # The breakpoint mode. Always `explicit`.
178
192
 
179
193
  mode: :explicit
@@ -182,12 +196,38 @@ module OpenAI
182
196
 
183
197
  sig do
184
198
  override.returns(
185
- {mode: Symbol}
199
+ {mode: Symbol, ttl: OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::OrSymbol}
186
200
  )
187
201
  end
188
202
  def to_hash
189
203
  end
190
204
 
205
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
206
+ module Ttl
207
+ extend OpenAI::Internal::Type::Enum
208
+
209
+ TaggedSymbol = T.type_alias {
210
+ T.all(Symbol, OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl)
211
+ }
212
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
213
+
214
+ TTL_30M = T.let(
215
+ :"30m",
216
+ OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::TaggedSymbol
217
+ )
218
+ TTL_12H = T.let(
219
+ :"12h",
220
+ OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::TaggedSymbol
221
+ )
222
+
223
+ sig {
224
+ override.returns(
225
+ T::Array[OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::TaggedSymbol]
226
+ )
227
+ }
228
+ def self.values
229
+ end
230
+ end
191
231
  end
192
232
 
193
233
  end
@@ -157,18 +157,34 @@ module OpenAI
157
157
  sig { returns(Symbol) }
158
158
  attr_accessor :mode
159
159
 
160
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
161
+ sig {
162
+ returns(T.nilable(OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::OrSymbol))
163
+ }
164
+ attr_reader :ttl
165
+
166
+ sig {
167
+ params(ttl: OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::OrSymbol).void
168
+ }
169
+ attr_writer :ttl
170
+
160
171
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
161
172
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
162
173
  # token block.
163
174
  sig do
164
175
  params(
165
176
 
177
+ ttl: OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::OrSymbol,
178
+
166
179
  mode: Symbol
167
180
  )
168
181
  .returns(T.attached_class)
169
182
  end
170
183
  def self.new(
171
184
 
185
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
186
+ ttl: nil,
187
+
172
188
  # The breakpoint mode. Always `explicit`.
173
189
 
174
190
  mode: :explicit
@@ -177,12 +193,41 @@ module OpenAI
177
193
 
178
194
  sig do
179
195
  override.returns(
180
- {mode: Symbol}
196
+ {
197
+ mode: Symbol,
198
+ ttl: OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::OrSymbol
199
+ }
181
200
  )
182
201
  end
183
202
  def to_hash
184
203
  end
185
204
 
205
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
206
+ module Ttl
207
+ extend OpenAI::Internal::Type::Enum
208
+
209
+ TaggedSymbol = T.type_alias {
210
+ T.all(Symbol, OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl)
211
+ }
212
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
213
+
214
+ TTL_30M = T.let(
215
+ :"30m",
216
+ OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::TaggedSymbol
217
+ )
218
+ TTL_12H = T.let(
219
+ :"12h",
220
+ OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::TaggedSymbol
221
+ )
222
+
223
+ sig {
224
+ override.returns(
225
+ T::Array[OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::TaggedSymbol]
226
+ )
227
+ }
228
+ def self.values
229
+ end
230
+ end
186
231
  end
187
232
 
188
233
  end
@@ -88,18 +88,30 @@ module OpenAI
88
88
  sig { returns(Symbol) }
89
89
  attr_accessor :mode
90
90
 
91
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
92
+ sig { returns(T.nilable(OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::OrSymbol)) }
93
+ attr_reader :ttl
94
+
95
+ sig { params(ttl: OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::OrSymbol).void }
96
+ attr_writer :ttl
97
+
91
98
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
92
99
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
93
100
  # token block.
94
101
  sig do
95
102
  params(
96
103
 
104
+ ttl: OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::OrSymbol,
105
+
97
106
  mode: Symbol
98
107
  )
99
108
  .returns(T.attached_class)
100
109
  end
101
110
  def self.new(
102
111
 
112
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
113
+ ttl: nil,
114
+
103
115
  # The breakpoint mode. Always `explicit`.
104
116
 
105
117
  mode: :explicit
@@ -108,12 +120,38 @@ module OpenAI
108
120
 
109
121
  sig do
110
122
  override.returns(
111
- {mode: Symbol}
123
+ {mode: Symbol, ttl: OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::OrSymbol}
112
124
  )
113
125
  end
114
126
  def to_hash
115
127
  end
116
128
 
129
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
130
+ module Ttl
131
+ extend OpenAI::Internal::Type::Enum
132
+
133
+ TaggedSymbol = T.type_alias {
134
+ T.all(Symbol, OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl)
135
+ }
136
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
137
+
138
+ TTL_30M = T.let(
139
+ :"30m",
140
+ OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::TaggedSymbol
141
+ )
142
+ TTL_12H = T.let(
143
+ :"12h",
144
+ OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::TaggedSymbol
145
+ )
146
+
147
+ sig {
148
+ override.returns(
149
+ T::Array[OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::TaggedSymbol]
150
+ )
151
+ }
152
+ def self.values
153
+ end
154
+ end
117
155
  end
118
156
 
119
157
  end
@@ -130,18 +130,36 @@ module OpenAI
130
130
  sig { returns(Symbol) }
131
131
  attr_accessor :mode
132
132
 
133
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
134
+ sig {
135
+ returns(
136
+ T.nilable(OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::TaggedSymbol)
137
+ )
138
+ }
139
+ attr_reader :ttl
140
+
141
+ sig {
142
+ params(ttl: OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::OrSymbol).void
143
+ }
144
+ attr_writer :ttl
145
+
133
146
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
134
147
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
135
148
  # token block.
136
149
  sig do
137
150
  params(
138
151
 
152
+ ttl: OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::OrSymbol,
153
+
139
154
  mode: Symbol
140
155
  )
141
156
  .returns(T.attached_class)
142
157
  end
143
158
  def self.new(
144
159
 
160
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
161
+ ttl: nil,
162
+
145
163
  # The breakpoint mode. Always `explicit`.
146
164
 
147
165
  mode: :explicit
@@ -150,12 +168,41 @@ module OpenAI
150
168
 
151
169
  sig do
152
170
  override.returns(
153
- {mode: Symbol}
171
+ {
172
+ mode: Symbol,
173
+ ttl: OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
174
+ }
154
175
  )
155
176
  end
156
177
  def to_hash
157
178
  end
158
179
 
180
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
181
+ module Ttl
182
+ extend OpenAI::Internal::Type::Enum
183
+
184
+ TaggedSymbol = T.type_alias {
185
+ T.all(Symbol, OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl)
186
+ }
187
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
188
+
189
+ TTL_30M = T.let(
190
+ :"30m",
191
+ OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
192
+ )
193
+ TTL_12H = T.let(
194
+ :"12h",
195
+ OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
196
+ )
197
+
198
+ sig {
199
+ override.returns(
200
+ T::Array[OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::TaggedSymbol]
201
+ )
202
+ }
203
+ def self.values
204
+ end
205
+ end
159
206
  end
160
207
 
161
208
  end
@@ -68,11 +68,14 @@ module OpenAI
68
68
  sig { params(mask: OpenAI::Internal::FileInput).void }
69
69
  attr_writer :mask
70
70
 
71
- # The GPT image model to use for image editing (`gpt-image-1`, `gpt-image-1-mini`,
71
+ # The GPT image model to use for image editing (`gpt-image-1-mini`,
72
72
  # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
73
73
  # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
74
74
  # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
75
75
  # `chatgpt-image-latest`).
76
+ #
77
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
78
+ # `gpt-image-2.5-flare` instead.
76
79
  sig { returns(T.nilable(T.any(String, OpenAI::ImageModel::OrSymbol))) }
77
80
  attr_accessor :model
78
81
 
@@ -230,11 +233,14 @@ module OpenAI
230
233
  # content type.
231
234
  mask: nil,
232
235
 
233
- # The GPT image model to use for image editing (`gpt-image-1`, `gpt-image-1-mini`,
236
+ # The GPT image model to use for image editing (`gpt-image-1-mini`,
234
237
  # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
235
238
  # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
236
239
  # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
237
240
  # `chatgpt-image-latest`).
241
+ #
242
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
243
+ # `gpt-image-2.5-flare` instead.
238
244
  model: nil,
239
245
 
240
246
  # The number of images to generate. Must be between 1 and 10.
@@ -390,11 +396,14 @@ module OpenAI
390
396
  end
391
397
  end
392
398
 
393
- # The GPT image model to use for image editing (`gpt-image-1`, `gpt-image-1-mini`,
399
+ # The GPT image model to use for image editing (`gpt-image-1-mini`,
394
400
  # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
395
401
  # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
396
402
  # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
397
403
  # `chatgpt-image-latest`).
404
+ #
405
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
406
+ # `gpt-image-2.5-flare` instead.
398
407
  module Model
399
408
  extend OpenAI::Internal::Type::Union
400
409