openai 0.110.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 (255) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -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 +802 -28
  29. data/lib/openai/models/decision_input_json.rb +45 -0
  30. data/lib/openai/models/decision_input_message.rb +304 -48
  31. data/lib/openai/models/decision_input_part.rb +4 -1
  32. data/lib/openai/models/decision_question_input_image.rb +54 -0
  33. data/lib/openai/models/decision_question_input_part.rb +23 -0
  34. data/lib/openai/models/decision_question_input_text.rb +21 -0
  35. data/lib/openai/models/image_edit_params.rb +20 -4
  36. data/lib/openai/models/image_generate_params.rb +23 -7
  37. data/lib/openai/models/image_model.rb +2 -0
  38. data/lib/openai/models/live/client_delegation.rb +20 -1
  39. data/lib/openai/models/live/client_event.rb +4 -4
  40. data/lib/openai/models/live/commentary_append_event.rb +1 -1
  41. data/lib/openai/models/live/decision_assistant_message.rb +154 -0
  42. data/lib/openai/models/live/decision_choice_option.rb +35 -0
  43. data/lib/openai/models/live/decision_developer_message.rb +70 -0
  44. data/lib/openai/models/live/decision_input_text.rb +26 -0
  45. data/lib/openai/models/live/decision_item_create_event.rb +490 -131
  46. data/lib/openai/models/live/decision_item_created_event.rb +486 -131
  47. data/lib/openai/models/live/decision_json_object.rb +10 -0
  48. data/lib/openai/models/live/decision_question.rb +172 -0
  49. data/lib/openai/models/live/decision_stored_assistant_message.rb +152 -0
  50. data/lib/openai/models/live/decision_stored_developer_message.rb +68 -0
  51. data/lib/openai/models/live/decision_stored_system_message.rb +68 -0
  52. data/lib/openai/models/live/decision_stored_user_message.rb +195 -0
  53. data/lib/openai/models/live/decision_system_message.rb +70 -0
  54. data/lib/openai/models/live/decision_trigger.rb +6 -185
  55. data/lib/openai/models/live/decision_user_message.rb +193 -0
  56. data/lib/openai/models/live/decisions_delegation_config.rb +5 -177
  57. data/lib/openai/models/live/decisions_delegation_update_config.rb +5 -184
  58. data/lib/openai/models/live/fork_client_event.rb +4 -4
  59. data/lib/openai/models/live/fork_server_event.rb +2 -2
  60. data/lib/openai/models/live/fork_session_config.rb +20 -1
  61. data/lib/openai/models/live/input_audio_muted_event.rb +3 -2
  62. data/lib/openai/models/live/input_audio_unmute_event.rb +2 -1
  63. data/lib/openai/models/live/input_audio_unmuted_event.rb +3 -2
  64. data/lib/openai/models/live/instructions_append_event.rb +5 -2
  65. data/lib/openai/models/live/media_session_config.rb +39 -2
  66. data/lib/openai/models/live/media_session_fork_config.rb +20 -1
  67. data/lib/openai/models/live/server_event.rb +2 -2
  68. data/lib/openai/models/live/session_accept_params.rb +39 -2
  69. data/lib/openai/models/live/session_config.rb +39 -2
  70. data/lib/openai/models/live/session_resource.rb +39 -2
  71. data/lib/openai/models/live/session_update_config.rb +41 -2
  72. data/lib/openai/models/live/sideband_client_event.rb +4 -4
  73. data/lib/openai/models/live/sideband_server_event.rb +2 -2
  74. data/lib/openai/models/live/thinking_append_event.rb +1 -1
  75. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +10 -12
  76. data/lib/openai/models/realtime/realtime_error_event.rb +1 -1
  77. data/lib/openai/models/realtime/realtime_server_event.rb +1 -1
  78. data/lib/openai/models/realtime/realtime_translation_server_event.rb +1 -1
  79. data/lib/openai/models/responses/response_input_file.rb +23 -1
  80. data/lib/openai/models/responses/response_input_file_content.rb +23 -1
  81. data/lib/openai/models/responses/response_input_image.rb +23 -1
  82. data/lib/openai/models/responses/response_input_image_content.rb +23 -1
  83. data/lib/openai/models/responses/response_input_text.rb +23 -1
  84. data/lib/openai/models/responses/response_input_text_content.rb +23 -1
  85. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +26 -15
  86. data/lib/openai/models/responses/tool.rb +26 -15
  87. data/lib/openai/models.rb +8 -0
  88. data/lib/openai/resources/beta/agents.rb +2 -2
  89. data/lib/openai/resources/beta/responses.rb +2 -2
  90. data/lib/openai/resources/decisions.rb +5 -6
  91. data/lib/openai/resources/images.rb +18 -6
  92. data/lib/openai/resources/live/forks.rb +2 -2
  93. data/lib/openai/resources/live/sideband.rb +2 -2
  94. data/lib/openai/resources/live.rb +2 -2
  95. data/lib/openai/resources/realtime/translations.rb +2 -2
  96. data/lib/openai/resources/realtime.rb +2 -2
  97. data/lib/openai/resources/responses.rb +2 -2
  98. data/lib/openai/version.rb +1 -1
  99. data/lib/openai.rb +16 -0
  100. data/rbi/openai/models/beta/agent.rbi +2 -1
  101. data/rbi/openai/models/beta/agent_create_params.rbi +6 -3
  102. data/rbi/openai/models/beta/agent_session.rbi +2 -1
  103. data/rbi/openai/models/beta/agent_tool.rbi +40 -1
  104. data/rbi/openai/models/beta/agent_tool_param.rbi +40 -1
  105. data/rbi/openai/models/beta/agent_update_params.rbi +6 -3
  106. data/rbi/openai/models/beta/agents/session_create_params.rbi +6 -3
  107. data/rbi/openai/models/beta/beta_response_input_file.rbi +31 -1
  108. data/rbi/openai/models/beta/beta_response_input_file_content.rbi +39 -1
  109. data/rbi/openai/models/beta/beta_response_input_image.rbi +31 -1
  110. data/rbi/openai/models/beta/beta_response_input_image_content.rbi +39 -1
  111. data/rbi/openai/models/beta/beta_response_input_text.rbi +31 -1
  112. data/rbi/openai/models/beta/beta_response_input_text_content.rbi +39 -1
  113. data/rbi/openai/models/beta/beta_response_item.rbi +58 -1
  114. data/rbi/openai/models/beta/beta_response_output_item.rbi +58 -1
  115. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +24 -15
  116. data/rbi/openai/models/beta/beta_tool.rbi +24 -15
  117. data/rbi/openai/models/beta/persisted_agent_tool.rbi +40 -1
  118. data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +40 -1
  119. data/rbi/openai/models/chat/chat_completion_content_part.rbi +43 -1
  120. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +41 -1
  121. data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +46 -1
  122. data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +39 -1
  123. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +48 -1
  124. data/rbi/openai/models/decision_create_params.rbi +1273 -26
  125. data/rbi/openai/models/decision_input_json.rbi +75 -0
  126. data/rbi/openai/models/decision_input_message.rbi +455 -52
  127. data/rbi/openai/models/decision_input_part.rbi +2 -1
  128. data/rbi/openai/models/decision_question_input_image.rbi +82 -0
  129. data/rbi/openai/models/decision_question_input_part.rbi +25 -0
  130. data/rbi/openai/models/decision_question_input_text.rbi +49 -0
  131. data/rbi/openai/models/image_edit_params.rbi +12 -3
  132. data/rbi/openai/models/image_generate_params.rbi +15 -6
  133. data/rbi/openai/models/live/client_delegation.rbi +23 -1
  134. data/rbi/openai/models/live/commentary_append_event.rbi +1 -1
  135. data/rbi/openai/models/live/decision_assistant_message.rbi +247 -0
  136. data/rbi/openai/models/live/decision_choice_option.rbi +67 -0
  137. data/rbi/openai/models/live/decision_developer_message.rbi +109 -0
  138. data/rbi/openai/models/live/decision_input_text.rbi +55 -0
  139. data/rbi/openai/models/live/decision_item_create_event.rbi +765 -184
  140. data/rbi/openai/models/live/decision_item_created_event.rbi +737 -184
  141. data/rbi/openai/models/live/decision_json_object.rbi +16 -0
  142. data/rbi/openai/models/live/decision_question.rbi +300 -0
  143. data/rbi/openai/models/live/decision_stored_assistant_message.rbi +245 -0
  144. data/rbi/openai/models/live/decision_stored_developer_message.rbi +107 -0
  145. data/rbi/openai/models/live/decision_stored_system_message.rbi +107 -0
  146. data/rbi/openai/models/live/decision_stored_user_message.rbi +333 -0
  147. data/rbi/openai/models/live/decision_system_message.rbi +109 -0
  148. data/rbi/openai/models/live/decision_trigger.rbi +11 -320
  149. data/rbi/openai/models/live/decision_user_message.rbi +320 -0
  150. data/rbi/openai/models/live/decisions_delegation_config.rbi +10 -321
  151. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +13 -324
  152. data/rbi/openai/models/live/fork_session_config.rbi +27 -1
  153. data/rbi/openai/models/live/input_audio_muted_event.rbi +3 -2
  154. data/rbi/openai/models/live/input_audio_unmute_event.rbi +2 -1
  155. data/rbi/openai/models/live/input_audio_unmuted_event.rbi +3 -2
  156. data/rbi/openai/models/live/instructions_append_event.rbi +5 -2
  157. data/rbi/openai/models/live/media_session_config.rbi +44 -2
  158. data/rbi/openai/models/live/media_session_fork_config.rbi +27 -1
  159. data/rbi/openai/models/live/session_accept_params.rbi +44 -2
  160. data/rbi/openai/models/live/session_config.rbi +44 -2
  161. data/rbi/openai/models/live/session_resource.rbi +44 -2
  162. data/rbi/openai/models/live/session_update_config.rbi +54 -2
  163. data/rbi/openai/models/live/thinking_append_event.rbi +1 -1
  164. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +10 -12
  165. data/rbi/openai/models/realtime/realtime_error_event.rbi +1 -1
  166. data/rbi/openai/models/responses/response_input_file.rbi +31 -1
  167. data/rbi/openai/models/responses/response_input_file_content.rbi +39 -1
  168. data/rbi/openai/models/responses/response_input_image.rbi +33 -1
  169. data/rbi/openai/models/responses/response_input_image_content.rbi +41 -1
  170. data/rbi/openai/models/responses/response_input_text.rbi +31 -1
  171. data/rbi/openai/models/responses/response_input_text_content.rbi +39 -1
  172. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +24 -15
  173. data/rbi/openai/models/responses/tool.rbi +24 -15
  174. data/rbi/openai/models.rbi +8 -0
  175. data/rbi/openai/resources/beta/agents.rbi +4 -2
  176. data/rbi/openai/resources/beta/responses.rbi +8 -1
  177. data/rbi/openai/resources/decisions.rbi +4 -5
  178. data/rbi/openai/resources/images.rbi +18 -6
  179. data/rbi/openai/resources/live/forks.rbi +8 -1
  180. data/rbi/openai/resources/live/sideband.rbi +8 -1
  181. data/rbi/openai/resources/live.rbi +8 -1
  182. data/rbi/openai/resources/realtime/translations.rbi +8 -1
  183. data/rbi/openai/resources/realtime.rbi +8 -1
  184. data/rbi/openai/resources/responses.rbi +8 -1
  185. data/sig/openai/models/beta/agent_tool.rbs +14 -0
  186. data/sig/openai/models/beta/agent_tool_param.rbs +14 -0
  187. data/sig/openai/models/beta/beta_response_input_file.rbs +34 -3
  188. data/sig/openai/models/beta/beta_response_input_file_content.rbs +34 -3
  189. data/sig/openai/models/beta/beta_response_input_image.rbs +34 -3
  190. data/sig/openai/models/beta/beta_response_input_image_content.rbs +34 -3
  191. data/sig/openai/models/beta/beta_response_input_text.rbs +34 -3
  192. data/sig/openai/models/beta/beta_response_input_text_content.rbs +34 -3
  193. data/sig/openai/models/beta/beta_response_item.rbs +34 -3
  194. data/sig/openai/models/beta/beta_response_output_item.rbs +34 -3
  195. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +24 -15
  196. data/sig/openai/models/beta/beta_tool.rbs +24 -15
  197. data/sig/openai/models/beta/persisted_agent_tool.rbs +14 -0
  198. data/sig/openai/models/beta/persisted_agent_tool_param.rbs +14 -0
  199. data/sig/openai/models/chat/chat_completion_content_part.rbs +34 -3
  200. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +34 -3
  201. data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +34 -3
  202. data/sig/openai/models/chat/chat_completion_content_part_text.rbs +34 -3
  203. data/sig/openai/models/conversations/computer_screenshot_content.rbs +34 -3
  204. data/sig/openai/models/decision_create_params.rbs +610 -24
  205. data/sig/openai/models/decision_input_json.rbs +34 -0
  206. data/sig/openai/models/decision_input_message.rbs +264 -35
  207. data/sig/openai/models/decision_input_part.rbs +3 -1
  208. data/sig/openai/models/decision_question_input_image.rbs +51 -0
  209. data/sig/openai/models/decision_question_input_part.rbs +14 -0
  210. data/sig/openai/models/decision_question_input_text.rbs +15 -0
  211. data/sig/openai/models/image_edit_params.rbs +8 -2
  212. data/sig/openai/models/image_generate_params.rbs +10 -4
  213. data/sig/openai/models/live/client_delegation.rbs +30 -3
  214. data/sig/openai/models/live/decision_assistant_message.rbs +134 -0
  215. data/sig/openai/models/live/decision_choice_option.rbs +37 -0
  216. data/sig/openai/models/live/decision_developer_message.rbs +67 -0
  217. data/sig/openai/models/live/decision_input_text.rbs +20 -0
  218. data/sig/openai/models/live/decision_item_create_event.rbs +413 -131
  219. data/sig/openai/models/live/decision_item_created_event.rbs +401 -131
  220. data/sig/openai/models/live/decision_json_object.rbs +9 -0
  221. data/sig/openai/models/live/decision_question.rbs +164 -0
  222. data/sig/openai/models/live/decision_stored_assistant_message.rbs +131 -0
  223. data/sig/openai/models/live/decision_stored_developer_message.rbs +64 -0
  224. data/sig/openai/models/live/decision_stored_system_message.rbs +64 -0
  225. data/sig/openai/models/live/decision_stored_user_message.rbs +177 -0
  226. data/sig/openai/models/live/decision_system_message.rbs +67 -0
  227. data/sig/openai/models/live/decision_trigger.rbs +8 -171
  228. data/sig/openai/models/live/decision_user_message.rbs +180 -0
  229. data/sig/openai/models/live/decisions_delegation_config.rbs +6 -167
  230. data/sig/openai/models/live/decisions_delegation_update_config.rbs +8 -169
  231. data/sig/openai/models/live/fork_session_config.rbs +26 -0
  232. data/sig/openai/models/live/media_session_config.rbs +53 -4
  233. data/sig/openai/models/live/media_session_fork_config.rbs +26 -0
  234. data/sig/openai/models/live/session_accept_params.rbs +53 -4
  235. data/sig/openai/models/live/session_config.rbs +53 -4
  236. data/sig/openai/models/live/session_resource.rbs +53 -4
  237. data/sig/openai/models/live/session_update_config.rbs +52 -0
  238. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +10 -12
  239. data/sig/openai/models/responses/response_input_file.rbs +34 -3
  240. data/sig/openai/models/responses/response_input_file_content.rbs +34 -3
  241. data/sig/openai/models/responses/response_input_image.rbs +34 -3
  242. data/sig/openai/models/responses/response_input_image_content.rbs +34 -3
  243. data/sig/openai/models/responses/response_input_text.rbs +34 -3
  244. data/sig/openai/models/responses/response_input_text_content.rbs +34 -3
  245. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +24 -15
  246. data/sig/openai/models/responses/tool.rbs +24 -15
  247. data/sig/openai/models.rbs +9 -1
  248. data/sig/openai/resources/beta/responses.rbs +2 -1
  249. data/sig/openai/resources/live/forks.rbs +2 -1
  250. data/sig/openai/resources/live/sideband.rbs +2 -1
  251. data/sig/openai/resources/live.rbs +2 -1
  252. data/sig/openai/resources/realtime/translations.rbs +2 -1
  253. data/sig/openai/resources/realtime.rbs +2 -1
  254. data/sig/openai/resources/responses.rbs +2 -1
  255. metadata +49 -1
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ class DecisionInputJSON < OpenAI::Internal::Type::BaseModel
6
+ # @!attribute data
7
+ #
8
+ # @return [Hash{Symbol=>Object}, Array<Hash{Symbol=>Object}>]
9
+ required :data, union: -> { OpenAI::DecisionInputJSON::Data }
10
+
11
+ # @!attribute type
12
+ #
13
+ # @return [Symbol, :input_json]
14
+ required :type, const: :input_json
15
+
16
+ # @!method initialize(data:, type: :input_json)
17
+ # A JSON object or an array of objects rendered as text. Nested values may be any
18
+ # JSON value. Limited to 32 container levels, 10,000 values, and 256 KiB of
19
+ # compact UTF-8 JSON.
20
+ #
21
+ # @param data [Hash{Symbol=>Object}, Array<Hash{Symbol=>Object}>]
22
+ # @param type [Symbol, :input_json]
23
+
24
+ # @see OpenAI::Models::DecisionInputJSON#data
25
+ module Data
26
+ extend OpenAI::Internal::Type::Union
27
+
28
+ variant -> { OpenAI::Models::DecisionInputJSON::Data::UnionMember0Map }
29
+
30
+ variant -> { OpenAI::Models::DecisionInputJSON::Data::UnionMember1Array }
31
+
32
+ # @!method self.variants
33
+ # @return [Array(Hash{Symbol=>Object}, Array<Hash{Symbol=>Object, nil}>)]
34
+
35
+ # @type [OpenAI::Internal::Type::Converter]
36
+ UnionMember0Map = OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Unknown]
37
+
38
+ # @type [OpenAI::Internal::Type::Converter]
39
+ UnionMember1Array = OpenAI::Internal::Type::ArrayOf[
40
+ OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Unknown, nil?: true]
41
+ ]
42
+ end
43
+ end
44
+ end
45
+ end
@@ -2,59 +2,315 @@
2
2
 
3
3
  module OpenAI
4
4
  module Models
5
- class DecisionInputMessage < OpenAI::Internal::Type::BaseModel
6
- # @!attribute content
7
- # Text evidence or an ordered list of text and image parts.
8
- #
9
- # @return [String, Array<OpenAI::Models::DecisionInputText, OpenAI::Models::DecisionInputImage>]
10
- required :content, union: -> { OpenAI::DecisionInputMessage::Content }
11
-
12
- # @!attribute role
13
- #
14
- # @return [Symbol, :user]
15
- required :role, const: :user
16
-
17
- # @!attribute type
18
- #
19
- # @return [Symbol, OpenAI::Models::DecisionInputMessage::Type, nil]
20
- optional :type, enum: -> { OpenAI::DecisionInputMessage::Type }
21
-
22
- # @!method initialize(content:, type: nil, role: :user)
23
- # A user message containing text or images.
24
- #
25
- # @param content [String, Array<OpenAI::Models::DecisionInputText, OpenAI::Models::DecisionInputImage>]
26
- # Text evidence or an ordered list of text and image parts.
27
- #
28
- # @param type [Symbol, OpenAI::Models::DecisionInputMessage::Type]
29
- #
30
- # @param role [Symbol, :user]
31
-
32
- # Text evidence or an ordered list of text and image parts.
33
- #
34
- # @see OpenAI::Models::DecisionInputMessage#content
35
- module Content
36
- extend OpenAI::Internal::Type::Union
37
-
38
- variant String
39
-
40
- variant -> { OpenAI::Models::DecisionInputMessage::Content::DecisionInputPartArray }
41
-
42
- # @!method self.variants
43
- # @return [Array(String, Array<OpenAI::Models::DecisionInputText, OpenAI::Models::DecisionInputImage>)]
44
-
45
- # @type [OpenAI::Internal::Type::Converter]
46
- DecisionInputPartArray = OpenAI::Internal::Type::ArrayOf[union: -> { OpenAI::DecisionInputPart }]
5
+ # A user message containing input text, images, or JSON.
6
+ module DecisionInputMessage
7
+ extend OpenAI::Internal::Type::Union
8
+
9
+ discriminator :role
10
+
11
+ # A user message containing input text, images, or JSON.
12
+ variant :user, -> { OpenAI::DecisionInputMessage::User }
13
+
14
+ # A developer message containing input text.
15
+ variant :developer, -> { OpenAI::DecisionInputMessage::Developer }
16
+
17
+ # A system message containing input text.
18
+ variant :system, -> { OpenAI::DecisionInputMessage::System }
19
+
20
+ # An assistant message containing output text or refusals.
21
+ variant :assistant, -> { OpenAI::DecisionInputMessage::Assistant }
22
+
23
+ class User < OpenAI::Internal::Type::BaseModel
24
+ # @!attribute content
25
+ # A text string or an ordered list of text, image, and JSON parts.
26
+ #
27
+ # @return [String, Array<OpenAI::Models::DecisionInputText, OpenAI::Models::DecisionInputImage, OpenAI::Models::DecisionInputJSON>]
28
+ required :content, union: -> { OpenAI::DecisionInputMessage::User::Content }
29
+
30
+ # @!attribute role
31
+ #
32
+ # @return [Symbol, :user]
33
+ required :role, const: :user
34
+
35
+ # @!attribute type
36
+ #
37
+ # @return [Symbol, OpenAI::Models::DecisionInputMessage::User::Type, nil]
38
+ optional :type, enum: -> { OpenAI::DecisionInputMessage::User::Type }
39
+
40
+ # @!method initialize(content:, type: nil, role: :user)
41
+ # A user message containing input text, images, or JSON.
42
+ #
43
+ # @param content [String, Array<OpenAI::Models::DecisionInputText, OpenAI::Models::DecisionInputImage, OpenAI::Models::DecisionInputJSON>]
44
+ # A text string or an ordered list of text, image, and JSON parts.
45
+ #
46
+ # @param type [Symbol, OpenAI::Models::DecisionInputMessage::User::Type]
47
+ #
48
+ # @param role [Symbol, :user]
49
+
50
+ # A text string or an ordered list of text, image, and JSON parts.
51
+ #
52
+ # @see OpenAI::Models::DecisionInputMessage::User#content
53
+ module Content
54
+ extend OpenAI::Internal::Type::Union
55
+
56
+ variant String
57
+
58
+ variant -> { OpenAI::Models::DecisionInputMessage::User::Content::DecisionInputPartArray }
59
+
60
+ # @!method self.variants
61
+ # @return [Array(String, Array<OpenAI::Models::DecisionInputText, OpenAI::Models::DecisionInputImage, OpenAI::Models::DecisionInputJSON>)]
62
+
63
+ # @type [OpenAI::Internal::Type::Converter]
64
+ DecisionInputPartArray = OpenAI::Internal::Type::ArrayOf[union: -> { OpenAI::DecisionInputPart }]
65
+ end
66
+
67
+ # @see OpenAI::Models::DecisionInputMessage::User#type
68
+ module Type
69
+ extend OpenAI::Internal::Type::Enum
70
+
71
+ MESSAGE = :message
72
+
73
+ # @!method self.values
74
+ # @return [Array<Symbol>]
75
+ end
76
+ end
77
+
78
+ class Developer < OpenAI::Internal::Type::BaseModel
79
+ # @!attribute content
80
+ # A text string or an ordered list of input text parts.
81
+ #
82
+ # @return [String, Array<OpenAI::Models::DecisionInputText>]
83
+ required :content, union: -> { OpenAI::DecisionInputMessage::Developer::Content }
84
+
85
+ # @!attribute role
86
+ #
87
+ # @return [Symbol, :developer]
88
+ required :role, const: :developer
89
+
90
+ # @!attribute type
91
+ #
92
+ # @return [Symbol, OpenAI::Models::DecisionInputMessage::Developer::Type, nil]
93
+ optional :type, enum: -> { OpenAI::DecisionInputMessage::Developer::Type }
94
+
95
+ # @!method initialize(content:, type: nil, role: :developer)
96
+ # A developer message containing input text.
97
+ #
98
+ # @param content [String, Array<OpenAI::Models::DecisionInputText>]
99
+ # A text string or an ordered list of input text parts.
100
+ #
101
+ # @param type [Symbol, OpenAI::Models::DecisionInputMessage::Developer::Type]
102
+ #
103
+ # @param role [Symbol, :developer]
104
+
105
+ # A text string or an ordered list of input text parts.
106
+ #
107
+ # @see OpenAI::Models::DecisionInputMessage::Developer#content
108
+ module Content
109
+ extend OpenAI::Internal::Type::Union
110
+
111
+ variant String
112
+
113
+ variant -> { OpenAI::Models::DecisionInputMessage::Developer::Content::DecisionInputTextArray }
114
+
115
+ # @!method self.variants
116
+ # @return [Array(String, Array<OpenAI::Models::DecisionInputText>)]
117
+
118
+ # @type [OpenAI::Internal::Type::Converter]
119
+ DecisionInputTextArray = OpenAI::Internal::Type::ArrayOf[-> { OpenAI::DecisionInputText }]
120
+ end
121
+
122
+ # @see OpenAI::Models::DecisionInputMessage::Developer#type
123
+ module Type
124
+ extend OpenAI::Internal::Type::Enum
125
+
126
+ MESSAGE = :message
127
+
128
+ # @!method self.values
129
+ # @return [Array<Symbol>]
130
+ end
131
+ end
132
+
133
+ class System < OpenAI::Internal::Type::BaseModel
134
+ # @!attribute content
135
+ # A text string or an ordered list of input text parts.
136
+ #
137
+ # @return [String, Array<OpenAI::Models::DecisionInputText>]
138
+ required :content, union: -> { OpenAI::DecisionInputMessage::System::Content }
139
+
140
+ # @!attribute role
141
+ #
142
+ # @return [Symbol, :system]
143
+ required :role, const: :system
144
+
145
+ # @!attribute type
146
+ #
147
+ # @return [Symbol, OpenAI::Models::DecisionInputMessage::System::Type, nil]
148
+ optional :type, enum: -> { OpenAI::DecisionInputMessage::System::Type }
149
+
150
+ # @!method initialize(content:, type: nil, role: :system)
151
+ # A system message containing input text.
152
+ #
153
+ # @param content [String, Array<OpenAI::Models::DecisionInputText>]
154
+ # A text string or an ordered list of input text parts.
155
+ #
156
+ # @param type [Symbol, OpenAI::Models::DecisionInputMessage::System::Type]
157
+ #
158
+ # @param role [Symbol, :system]
159
+
160
+ # A text string or an ordered list of input text parts.
161
+ #
162
+ # @see OpenAI::Models::DecisionInputMessage::System#content
163
+ module Content
164
+ extend OpenAI::Internal::Type::Union
165
+
166
+ variant String
167
+
168
+ variant -> { OpenAI::Models::DecisionInputMessage::System::Content::DecisionInputTextArray }
169
+
170
+ # @!method self.variants
171
+ # @return [Array(String, Array<OpenAI::Models::DecisionInputText>)]
172
+
173
+ # @type [OpenAI::Internal::Type::Converter]
174
+ DecisionInputTextArray = OpenAI::Internal::Type::ArrayOf[-> { OpenAI::DecisionInputText }]
175
+ end
176
+
177
+ # @see OpenAI::Models::DecisionInputMessage::System#type
178
+ module Type
179
+ extend OpenAI::Internal::Type::Enum
180
+
181
+ MESSAGE = :message
182
+
183
+ # @!method self.values
184
+ # @return [Array<Symbol>]
185
+ end
47
186
  end
48
187
 
49
- # @see OpenAI::Models::DecisionInputMessage#type
50
- module Type
51
- extend OpenAI::Internal::Type::Enum
188
+ class Assistant < OpenAI::Internal::Type::BaseModel
189
+ # @!attribute content
190
+ # A text string or an ordered list of output text and refusal parts.
191
+ #
192
+ # @return [String, Array<OpenAI::Models::DecisionInputMessage::Assistant::Content::Part::OutputText, OpenAI::Models::DecisionInputMessage::Assistant::Content::Part::Refusal>]
193
+ required :content, union: -> { OpenAI::DecisionInputMessage::Assistant::Content }
194
+
195
+ # @!attribute role
196
+ #
197
+ # @return [Symbol, :assistant]
198
+ required :role, const: :assistant
199
+
200
+ # @!attribute phase
201
+ # The phase of an assistant message.
202
+ #
203
+ # @return [Symbol, OpenAI::Models::DecisionInputMessage::Assistant::Phase, nil]
204
+ optional :phase, enum: -> { OpenAI::DecisionInputMessage::Assistant::Phase }, nil?: true
205
+
206
+ # @!attribute type
207
+ #
208
+ # @return [Symbol, OpenAI::Models::DecisionInputMessage::Assistant::Type, nil]
209
+ optional :type, enum: -> { OpenAI::DecisionInputMessage::Assistant::Type }
210
+
211
+ # @!method initialize(content:, phase: nil, type: nil, role: :assistant)
212
+ # An assistant message containing output text or refusals.
213
+ #
214
+ # @param content [String, Array<OpenAI::Models::DecisionInputMessage::Assistant::Content::Part::OutputText, OpenAI::Models::DecisionInputMessage::Assistant::Content::Part::Refusal>]
215
+ # A text string or an ordered list of output text and refusal parts.
216
+ #
217
+ # @param phase [Symbol, OpenAI::Models::DecisionInputMessage::Assistant::Phase, nil]
218
+ # The phase of an assistant message.
219
+ #
220
+ # @param type [Symbol, OpenAI::Models::DecisionInputMessage::Assistant::Type]
221
+ #
222
+ # @param role [Symbol, :assistant]
223
+
224
+ # A text string or an ordered list of output text and refusal parts.
225
+ #
226
+ # @see OpenAI::Models::DecisionInputMessage::Assistant#content
227
+ module Content
228
+ extend OpenAI::Internal::Type::Union
229
+
230
+ variant String
231
+
232
+ variant -> { OpenAI::Models::DecisionInputMessage::Assistant::Content::PartsArray }
233
+
234
+ module Part
235
+ extend OpenAI::Internal::Type::Union
52
236
 
53
- MESSAGE = :message
237
+ discriminator :type
54
238
 
55
- # @!method self.values
56
- # @return [Array<Symbol>]
239
+ variant :output_text, -> { OpenAI::DecisionInputMessage::Assistant::Content::Part::OutputText }
240
+
241
+ variant :refusal, -> { OpenAI::DecisionInputMessage::Assistant::Content::Part::Refusal }
242
+
243
+ class OutputText < OpenAI::Internal::Type::BaseModel
244
+ # @!attribute text
245
+ #
246
+ # @return [String]
247
+ required :text, String
248
+
249
+ # @!attribute type
250
+ #
251
+ # @return [Symbol, :output_text]
252
+ required :type, const: :output_text
253
+
254
+ # @!method initialize(text:, type: :output_text)
255
+ # @param text [String]
256
+ # @param type [Symbol, :output_text]
257
+ end
258
+
259
+ class Refusal < OpenAI::Internal::Type::BaseModel
260
+ # @!attribute refusal
261
+ #
262
+ # @return [String]
263
+ required :refusal, String
264
+
265
+ # @!attribute type
266
+ #
267
+ # @return [Symbol, :refusal]
268
+ required :type, const: :refusal
269
+
270
+ # @!method initialize(refusal:, type: :refusal)
271
+ # @param refusal [String]
272
+ # @param type [Symbol, :refusal]
273
+ end
274
+
275
+ # @!method self.variants
276
+ # @return [Array(OpenAI::Models::DecisionInputMessage::Assistant::Content::Part::OutputText, OpenAI::Models::DecisionInputMessage::Assistant::Content::Part::Refusal)]
277
+ end
278
+
279
+ # @!method self.variants
280
+ # @return [Array(String, Array<OpenAI::Models::DecisionInputMessage::Assistant::Content::Part::OutputText, OpenAI::Models::DecisionInputMessage::Assistant::Content::Part::Refusal>)]
281
+
282
+ # @type [OpenAI::Internal::Type::Converter]
283
+ PartsArray = OpenAI::Internal::Type::ArrayOf[
284
+ union: -> { OpenAI::DecisionInputMessage::Assistant::Content::Part }
285
+ ]
286
+ end
287
+
288
+ # The phase of an assistant message.
289
+ #
290
+ # @see OpenAI::Models::DecisionInputMessage::Assistant#phase
291
+ module Phase
292
+ extend OpenAI::Internal::Type::Enum
293
+
294
+ COMMENTARY = :commentary
295
+ FINAL_ANSWER = :final_answer
296
+
297
+ # @!method self.values
298
+ # @return [Array<Symbol>]
299
+ end
300
+
301
+ # @see OpenAI::Models::DecisionInputMessage::Assistant#type
302
+ module Type
303
+ extend OpenAI::Internal::Type::Enum
304
+
305
+ MESSAGE = :message
306
+
307
+ # @!method self.values
308
+ # @return [Array<Symbol>]
309
+ end
57
310
  end
311
+
312
+ # @!method self.variants
313
+ # @return [Array(OpenAI::Models::DecisionInputMessage::User, OpenAI::Models::DecisionInputMessage::Developer, OpenAI::Models::DecisionInputMessage::System, OpenAI::Models::DecisionInputMessage::Assistant)]
58
314
  end
59
315
  end
60
316
  end
@@ -14,8 +14,11 @@ module OpenAI
14
14
  # An image provided as a base64 data URL or a publicly accessible HTTP(S) URL. File IDs are not supported.
15
15
  variant :input_image, -> { OpenAI::DecisionInputImage }
16
16
 
17
+ # A JSON object or an array of objects rendered as text. Nested values may be any JSON value. Limited to 32 container levels, 10,000 values, and 256 KiB of compact UTF-8 JSON.
18
+ variant :input_json, -> { OpenAI::DecisionInputJSON }
19
+
17
20
  # @!method self.variants
18
- # @return [Array(OpenAI::Models::DecisionInputText, OpenAI::Models::DecisionInputImage)]
21
+ # @return [Array(OpenAI::Models::DecisionInputText, OpenAI::Models::DecisionInputImage, OpenAI::Models::DecisionInputJSON)]
19
22
  end
20
23
  end
21
24
  end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ class DecisionQuestionInputImage < OpenAI::Internal::Type::BaseModel
6
+ # @!attribute image_url
7
+ # A base64-encoded image in a data URL or a publicly accessible HTTP(S) image URL.
8
+ #
9
+ # @return [String]
10
+ required :image_url, String
11
+
12
+ # @!attribute type
13
+ #
14
+ # @return [Symbol, :input_image]
15
+ required :type, const: :input_image
16
+
17
+ # @!attribute detail
18
+ # The image detail level, using the selected model's image profile. Defaults to
19
+ # auto.
20
+ #
21
+ # @return [Symbol, OpenAI::Models::DecisionQuestionInputImage::Detail, nil]
22
+ optional :detail, enum: -> { OpenAI::DecisionQuestionInputImage::Detail }, nil?: true
23
+
24
+ # @!method initialize(image_url:, detail: nil, type: :input_image)
25
+ # An image provided as a base64 data URL or a publicly accessible HTTP(S) URL.
26
+ # File IDs are not supported.
27
+ #
28
+ # @param image_url [String]
29
+ # A base64-encoded image in a data URL or a publicly accessible HTTP(S) image URL.
30
+ #
31
+ # @param detail [Symbol, OpenAI::Models::DecisionQuestionInputImage::Detail, nil]
32
+ # The image detail level, using the selected model's image profile. Defaults to
33
+ # auto.
34
+ #
35
+ # @param type [Symbol, :input_image]
36
+
37
+ # The image detail level, using the selected model's image profile. Defaults to
38
+ # auto.
39
+ #
40
+ # @see OpenAI::Models::DecisionQuestionInputImage#detail
41
+ module Detail
42
+ extend OpenAI::Internal::Type::Enum
43
+
44
+ LOW = :low
45
+ HIGH = :high
46
+ AUTO = :auto
47
+ ORIGINAL = :original
48
+
49
+ # @!method self.values
50
+ # @return [Array<Symbol>]
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # A text, image, or JSON content part in a question instruction.
6
+ module DecisionQuestionInputPart
7
+ extend OpenAI::Internal::Type::Union
8
+
9
+ discriminator :type
10
+
11
+ variant :input_text, -> { OpenAI::DecisionQuestionInputText }
12
+
13
+ # An image provided as a base64 data URL or a publicly accessible HTTP(S) URL. File IDs are not supported.
14
+ variant :input_image, -> { OpenAI::DecisionQuestionInputImage }
15
+
16
+ # A JSON object or an array of objects rendered as text. Nested values may be any JSON value. Limited to 32 container levels, 10,000 values, and 256 KiB of compact UTF-8 JSON.
17
+ variant :input_json, -> { OpenAI::DecisionInputJSON }
18
+
19
+ # @!method self.variants
20
+ # @return [Array(OpenAI::Models::DecisionQuestionInputText, OpenAI::Models::DecisionQuestionInputImage, OpenAI::Models::DecisionInputJSON)]
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ class DecisionQuestionInputText < OpenAI::Internal::Type::BaseModel
6
+ # @!attribute text
7
+ #
8
+ # @return [String]
9
+ required :text, String
10
+
11
+ # @!attribute type
12
+ #
13
+ # @return [Symbol, :input_text]
14
+ required :type, const: :input_text
15
+
16
+ # @!method initialize(text:, type: :input_text)
17
+ # @param text [String]
18
+ # @param type [Symbol, :input_text]
19
+ end
20
+ end
21
+ end
@@ -70,12 +70,15 @@ module OpenAI
70
70
  optional :mask, OpenAI::Internal::Type::FileInput
71
71
 
72
72
  # @!attribute model
73
- # The GPT image model to use for image editing (`gpt-image-1`, `gpt-image-1-mini`,
73
+ # The GPT image model to use for image editing (`gpt-image-1-mini`,
74
74
  # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
75
75
  # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
76
76
  # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
77
77
  # `chatgpt-image-latest`).
78
78
  #
79
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
80
+ # `gpt-image-2.5-flare` instead.
81
+ #
79
82
  # @return [String, Symbol, OpenAI::Models::ImageModel, nil]
80
83
  optional :model, union: -> { OpenAI::ImageEditParams::Model }, nil?: true
81
84
 
@@ -215,12 +218,15 @@ module OpenAI
215
218
  # content type.
216
219
  #
217
220
  # @param model [String, Symbol, OpenAI::Models::ImageModel, nil]
218
- # The GPT image model to use for image editing (`gpt-image-1`, `gpt-image-1-mini`,
221
+ # The GPT image model to use for image editing (`gpt-image-1-mini`,
219
222
  # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
220
223
  # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
221
224
  # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
222
225
  # `chatgpt-image-latest`).
223
226
  #
227
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
228
+ # `gpt-image-2.5-flare` instead.
229
+ #
224
230
  # @param n [Integer, nil]
225
231
  # The number of images to generate. Must be between 1 and 10.
226
232
  #
@@ -337,17 +343,27 @@ module OpenAI
337
343
  # @return [Array<Symbol>]
338
344
  end
339
345
 
340
- # The GPT image model to use for image editing (`gpt-image-1`, `gpt-image-1-mini`,
346
+ # The GPT image model to use for image editing (`gpt-image-1-mini`,
341
347
  # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
342
348
  # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
343
349
  # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
344
350
  # `chatgpt-image-latest`).
351
+ #
352
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
353
+ # `gpt-image-2.5-flare` instead.
345
354
  module Model
346
355
  extend OpenAI::Internal::Type::Union
347
356
 
348
357
  variant String
349
358
 
350
- # The GPT image model to use for image editing (`gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`).
359
+ # The GPT image model to use for image editing
360
+ # (`gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
361
+ # `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
362
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
363
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`).
364
+ #
365
+ # `gpt-image-1` was shut down on October 23, 2026. Use
366
+ # `gpt-image-2.5-sunburst` or `gpt-image-2.5-flare` instead.
351
367
  variant enum: -> { OpenAI::ImageModel }
352
368
 
353
369
  # @!method self.variants
@@ -32,11 +32,14 @@ module OpenAI
32
32
 
33
33
  # @!attribute model
34
34
  # The GPT image model to use for image generation. Specify a model explicitly.
35
- # Supported models include `gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`,
36
- # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
35
+ # Supported models include `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
36
+ # `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
37
37
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
38
38
  # `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`.
39
39
  #
40
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
41
+ # `gpt-image-2.5-flare` instead.
42
+ #
40
43
  # @return [String, Symbol, OpenAI::Models::ImageModel, nil]
41
44
  optional :model, union: -> { OpenAI::ImageGenerateParams::Model }, nil?: true
42
45
 
@@ -165,11 +168,14 @@ module OpenAI
165
168
  #
166
169
  # @param model [String, Symbol, OpenAI::Models::ImageModel, nil]
167
170
  # The GPT image model to use for image generation. Specify a model explicitly.
168
- # Supported models include `gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`,
169
- # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
171
+ # Supported models include `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
172
+ # `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
170
173
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
171
174
  # `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`.
172
175
  #
176
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
177
+ # `gpt-image-2.5-flare` instead.
178
+ #
173
179
  # @param moderation [Symbol, OpenAI::Models::ImageGenerateParams::Moderation, nil]
174
180
  # Control the content-moderation level for images generated by the GPT image
175
181
  # models. Must be either `low` for less restrictive filtering or `auto` (default
@@ -261,16 +267,26 @@ module OpenAI
261
267
  end
262
268
 
263
269
  # The GPT image model to use for image generation. Specify a model explicitly.
264
- # Supported models include `gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`,
265
- # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
270
+ # Supported models include `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
271
+ # `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
266
272
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
267
273
  # `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`.
274
+ #
275
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
276
+ # `gpt-image-2.5-flare` instead.
268
277
  module Model
269
278
  extend OpenAI::Internal::Type::Union
270
279
 
271
280
  variant String
272
281
 
273
- # The GPT image model to use for image generation. Specify a model explicitly. Supported models include `gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`.
282
+ # The GPT image model to use for image generation. Specify a model explicitly.
283
+ # Supported models include `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
284
+ # `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
285
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
286
+ # `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`.
287
+ #
288
+ # `gpt-image-1` was shut down on October 23, 2026. Use
289
+ # `gpt-image-2.5-sunburst` or `gpt-image-2.5-flare` instead.
274
290
  variant enum: -> { OpenAI::ImageModel }
275
291
 
276
292
  # @!method self.variants
@@ -12,6 +12,8 @@ module OpenAI
12
12
  GPT_IMAGE_2_5_SUNBURST_2026_09_08 = :"gpt-image-2.5-sunburst-2026-09-08"
13
13
  GPT_IMAGE_2_5_FLARE = :"gpt-image-2.5-flare"
14
14
  GPT_IMAGE_2_5_FLARE_2026_09_08 = :"gpt-image-2.5-flare-2026-09-08"
15
+ # @deprecated GPT Image 1 was shut down on October 23, 2026. Use gpt-image-2.5-sunburst or
16
+ # gpt-image-2.5-flare instead.
15
17
  GPT_IMAGE_1 = :"gpt-image-1"
16
18
  GPT_IMAGE_1_MINI = :"gpt-image-1-mini"
17
19
  CHATGPT_IMAGE_LATEST = :"chatgpt-image-latest"