openai 0.114.0 → 0.115.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 (226) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -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 +25 -1
@@ -26,6 +26,7 @@ module OpenAI
26
26
  | OpenAI::Live::OutputAudioDeltaEvent
27
27
  | OpenAI::Live::SidebandServerEvent::TransportDtmfReceived
28
28
  | OpenAI::Live::SidebandServerEvent::TransportDtmfSend
29
+ | OpenAI::Live::SidebandServerEvent::TransportDtmfSent
29
30
  | OpenAI::Live::SidebandServerEvent::TransportRinging
30
31
  | OpenAI::Live::SidebandServerEvent::TransportAnswered
31
32
  | OpenAI::Live::SidebandServerEvent::TransportFailed
@@ -123,6 +124,44 @@ module OpenAI
123
124
  }
124
125
  end
125
126
 
127
+ type transport_dtmf_sent =
128
+ {
129
+ event: String,
130
+ event_id: String,
131
+ ?type: :"transport.dtmf.sent",
132
+ ?client_event_id: String
133
+ }
134
+
135
+ class TransportDtmfSent < OpenAI::Internal::Type::BaseModel
136
+ attr_accessor event: String
137
+
138
+ attr_accessor event_id: String
139
+
140
+ attr_accessor type: :"transport.dtmf.sent"
141
+
142
+ # The event_id of the client command, when supplied.
143
+ attr_reader client_event_id: String?
144
+
145
+ # The event_id of the client command, when supplied.
146
+ def client_event_id=: (String) -> String
147
+
148
+ # @param client_event_id
149
+ # The event_id of the client command, when supplied.
150
+ def initialize: (
151
+ event: String,
152
+ event_id: String,
153
+ ?client_event_id: String,
154
+ ?type: :"transport.dtmf.sent"
155
+ ) -> void
156
+
157
+ def to_hash: -> {
158
+ event: String,
159
+ event_id: String,
160
+ ?type: :"transport.dtmf.sent",
161
+ ?client_event_id: String
162
+ }
163
+ end
164
+
126
165
  type transport_ringing =
127
166
  { event_id: String, session_id: String, ?type: :"transport.ringing" }
128
167
 
@@ -11,6 +11,7 @@ module OpenAI
11
11
  | OpenAI::Realtime::RealtimeMcpListTools
12
12
  | OpenAI::Realtime::RealtimeMcpToolCall
13
13
  | OpenAI::Realtime::RealtimeMcpApprovalRequest
14
+ | OpenAI::Realtime::ConversationItemWithReference
14
15
 
15
16
  module ConversationItem
16
17
  extend OpenAI::Internal::Type::Union
@@ -77,7 +77,14 @@ module OpenAI
77
77
  attr_accessor text: OpenAI::Responses::InputTokenCountParams::Text?
78
78
 
79
79
  # Controls which tool the model should use, if any.
80
- attr_accessor tool_choice: OpenAI::Models::Responses::InputTokenCountParams::tool_choice?
80
+ attr_reader tool_choice: OpenAI::Models::Responses::InputTokenCountParams::tool_choice?
81
+
82
+ # Controls which tool the model should use, if any.
83
+ def tool_choice=: (
84
+ (OpenAI::Models::Responses::InputTokenCountParams::tool_choice
85
+ | { type: :programmatic_tool_calling })?
86
+ ) -> (OpenAI::Models::Responses::InputTokenCountParams::tool_choice
87
+ | { type: :programmatic_tool_calling })?
81
88
 
82
89
  # An array of tools the model may call while generating a response. You can
83
90
  # specify which tool to use by setting the `tool_choice` parameter.
@@ -158,7 +165,8 @@ module OpenAI
158
165
  ?previous_response_id: String?,
159
166
  ?reasoning: OpenAI::Reasoning?,
160
167
  ?text: OpenAI::Responses::InputTokenCountParams::Text?,
161
- ?tool_choice: OpenAI::Models::Responses::InputTokenCountParams::tool_choice?,
168
+ ?tool_choice: (OpenAI::Models::Responses::InputTokenCountParams::tool_choice
169
+ | { type: :programmatic_tool_calling })?,
162
170
  ?tools: ::Array[OpenAI::Models::Responses::tool]?,
163
171
  ?truncation: OpenAI::Models::Responses::InputTokenCountParams::truncation,
164
172
  ?request_options: OpenAI::request_opts
@@ -35,6 +35,7 @@ module OpenAI
35
35
  ?service_tier: OpenAI::Models::Responses::Response::service_tier?,
36
36
  ?status: OpenAI::Models::Responses::response_status,
37
37
  ?text: OpenAI::Responses::ResponseTextConfig,
38
+ ?tool_usage: OpenAI::Responses::Response::ToolUsage,
38
39
  ?top_logprobs: Integer?,
39
40
  ?truncation: OpenAI::Models::Responses::Response::truncation?,
40
41
  ?usage: OpenAI::Responses::ResponseUsage,
@@ -278,6 +279,36 @@ module OpenAI
278
279
  OpenAI::Responses::ResponseTextConfig
279
280
  ) -> OpenAI::Responses::ResponseTextConfig
280
281
 
282
+ # Usage reported by hosted tools, separate from base model `usage`. The field can
283
+ # be omitted when tool usage is unavailable. When present, tool families with no
284
+ # recorded usage have zero counts.
285
+ #
286
+ # `image_gen` sums available token counts across image generation calls. Calls
287
+ # with missing or incomplete usage records may be skipped. Output token details
288
+ # and cached input counts can be omitted. An omitted cache count means cache usage
289
+ # is unknown.
290
+ #
291
+ # `web_search.num_requests` counts billable searches. Discounted searches and
292
+ # actions such as opening a page are excluded. Use billing records to reconcile
293
+ # final charges.
294
+ attr_reader tool_usage: OpenAI::Responses::Response::ToolUsage?
295
+
296
+ # Usage reported by hosted tools, separate from base model `usage`. The field can
297
+ # be omitted when tool usage is unavailable. When present, tool families with no
298
+ # recorded usage have zero counts.
299
+ #
300
+ # `image_gen` sums available token counts across image generation calls. Calls
301
+ # with missing or incomplete usage records may be skipped. Output token details
302
+ # and cached input counts can be omitted. An omitted cache count means cache usage
303
+ # is unknown.
304
+ #
305
+ # `web_search.num_requests` counts billable searches. Discounted searches and
306
+ # actions such as opening a page are excluded. Use billing records to reconcile
307
+ # final charges.
308
+ def tool_usage=: (
309
+ OpenAI::Responses::Response::ToolUsage
310
+ ) -> OpenAI::Responses::Response::ToolUsage
311
+
281
312
  # An integer between 0 and 20 specifying the maximum number of most likely tokens
282
313
  # to return at each token position, each with an associated log probability. In
283
314
  # some cases, the number of returned tokens may be fewer than requested.
@@ -491,6 +522,19 @@ module OpenAI
491
522
  #
492
523
  # - [Text inputs and outputs](https://developers.openai.com/api/docs/guides/text)
493
524
  # - [Structured Outputs](https://developers.openai.com/api/docs/guides/structured-outputs)
525
+ # @param tool_usage
526
+ # Usage reported by hosted tools, separate from base model `usage`. The field can
527
+ # be omitted when tool usage is unavailable. When present, tool families with no
528
+ # recorded usage have zero counts.
529
+ #
530
+ # `image_gen` sums available token counts across image generation calls. Calls
531
+ # with missing or incomplete usage records may be skipped. Output token details
532
+ # and cached input counts can be omitted. An omitted cache count means cache usage
533
+ # is unknown.
534
+ #
535
+ # `web_search.num_requests` counts billable searches. Discounted searches and
536
+ # actions such as opening a page are excluded. Use billing records to reconcile
537
+ # final charges.
494
538
  # @param top_logprobs
495
539
  # An integer between 0 and 20 specifying the maximum number of most likely tokens
496
540
  # to return at each token position, each with an associated log probability. In
@@ -546,6 +590,7 @@ module OpenAI
546
590
  ?service_tier: OpenAI::Models::Responses::Response::service_tier?,
547
591
  ?status: OpenAI::Models::Responses::response_status,
548
592
  ?text: OpenAI::Responses::ResponseTextConfig,
593
+ ?tool_usage: OpenAI::Responses::Response::ToolUsage,
549
594
  ?top_logprobs: Integer?,
550
595
  ?truncation: OpenAI::Models::Responses::Response::truncation?,
551
596
  ?usage: OpenAI::Responses::ResponseUsage,
@@ -586,6 +631,7 @@ module OpenAI
586
631
  ?service_tier: OpenAI::Models::Responses::Response::service_tier?,
587
632
  ?status: OpenAI::Models::Responses::response_status,
588
633
  ?text: OpenAI::Responses::ResponseTextConfig,
634
+ ?tool_usage: OpenAI::Responses::Response::ToolUsage,
589
635
  ?top_logprobs: Integer?,
590
636
  ?truncation: OpenAI::Models::Responses::Response::truncation?,
591
637
  ?usage: OpenAI::Responses::ResponseUsage,
@@ -1175,6 +1221,183 @@ module OpenAI
1175
1221
  def self?.values: -> ::Array[OpenAI::Models::Responses::Response::service_tier]
1176
1222
  end
1177
1223
 
1224
+ type tool_usage =
1225
+ {
1226
+ image_gen: OpenAI::Responses::Response::ToolUsage::ImageGen,
1227
+ web_search: OpenAI::Responses::Response::ToolUsage::WebSearch
1228
+ }
1229
+
1230
+ class ToolUsage < OpenAI::Internal::Type::BaseModel
1231
+ # Aggregated usage statistics for image generation tool calls.
1232
+ attr_accessor image_gen: OpenAI::Responses::Response::ToolUsage::ImageGen
1233
+
1234
+ # Aggregated billable usage statistics for web search tool calls.
1235
+ attr_accessor web_search: OpenAI::Responses::Response::ToolUsage::WebSearch
1236
+
1237
+ # @param image_gen
1238
+ # Aggregated usage statistics for image generation tool calls.
1239
+ # @param web_search
1240
+ # Aggregated billable usage statistics for web search tool calls.
1241
+ def initialize: (
1242
+ image_gen: OpenAI::Responses::Response::ToolUsage::ImageGen,
1243
+ web_search: OpenAI::Responses::Response::ToolUsage::WebSearch
1244
+ ) -> void
1245
+
1246
+ def to_hash: -> {
1247
+ image_gen: OpenAI::Responses::Response::ToolUsage::ImageGen,
1248
+ web_search: OpenAI::Responses::Response::ToolUsage::WebSearch
1249
+ }
1250
+
1251
+ type image_gen =
1252
+ {
1253
+ input_tokens: Integer,
1254
+ input_tokens_details: OpenAI::Responses::Response::ToolUsage::ImageGen::InputTokensDetails,
1255
+ output_tokens: Integer,
1256
+ total_tokens: Integer,
1257
+ ?cached_tokens: Integer,
1258
+ ?cached_tokens_details: OpenAI::Responses::Response::ToolUsage::ImageGen::CachedTokensDetails,
1259
+ ?output_tokens_details: OpenAI::Responses::Response::ToolUsage::ImageGen::OutputTokensDetails
1260
+ }
1261
+
1262
+ class ImageGen < OpenAI::Internal::Type::BaseModel
1263
+ # The number of tokens (images and text) in the input prompt.
1264
+ attr_accessor input_tokens: Integer
1265
+
1266
+ # The input tokens detailed information for the image generation.
1267
+ attr_accessor input_tokens_details: OpenAI::Responses::Response::ToolUsage::ImageGen::InputTokensDetails
1268
+
1269
+ # The number of output tokens generated by the model.
1270
+ attr_accessor output_tokens: Integer
1271
+
1272
+ # The total number of tokens (images and text) used for the image generation.
1273
+ attr_accessor total_tokens: Integer
1274
+
1275
+ attr_reader cached_tokens: Integer?
1276
+
1277
+ def cached_tokens=: (Integer) -> Integer
1278
+
1279
+ attr_reader cached_tokens_details: OpenAI::Responses::Response::ToolUsage::ImageGen::CachedTokensDetails?
1280
+
1281
+ def cached_tokens_details=: (
1282
+ OpenAI::Responses::Response::ToolUsage::ImageGen::CachedTokensDetails
1283
+ ) -> OpenAI::Responses::Response::ToolUsage::ImageGen::CachedTokensDetails
1284
+
1285
+ # The output token details for the image generation.
1286
+ attr_reader output_tokens_details: OpenAI::Responses::Response::ToolUsage::ImageGen::OutputTokensDetails?
1287
+
1288
+ # The output token details for the image generation.
1289
+ def output_tokens_details=: (
1290
+ OpenAI::Responses::Response::ToolUsage::ImageGen::OutputTokensDetails
1291
+ ) -> OpenAI::Responses::Response::ToolUsage::ImageGen::OutputTokensDetails
1292
+
1293
+ # @param input_tokens
1294
+ # The number of tokens (images and text) in the input prompt.
1295
+ # @param input_tokens_details
1296
+ # The input tokens detailed information for the image generation.
1297
+ # @param output_tokens
1298
+ # The number of output tokens generated by the model.
1299
+ # @param total_tokens
1300
+ # The total number of tokens (images and text) used for the image generation.
1301
+ # @param output_tokens_details
1302
+ # The output token details for the image generation.
1303
+ def initialize: (
1304
+ input_tokens: Integer,
1305
+ input_tokens_details: OpenAI::Responses::Response::ToolUsage::ImageGen::InputTokensDetails,
1306
+ output_tokens: Integer,
1307
+ total_tokens: Integer,
1308
+ ?cached_tokens: Integer,
1309
+ ?cached_tokens_details: OpenAI::Responses::Response::ToolUsage::ImageGen::CachedTokensDetails,
1310
+ ?output_tokens_details: OpenAI::Responses::Response::ToolUsage::ImageGen::OutputTokensDetails
1311
+ ) -> void
1312
+
1313
+ def to_hash: -> {
1314
+ input_tokens: Integer,
1315
+ input_tokens_details: OpenAI::Responses::Response::ToolUsage::ImageGen::InputTokensDetails,
1316
+ output_tokens: Integer,
1317
+ total_tokens: Integer,
1318
+ ?cached_tokens: Integer,
1319
+ ?cached_tokens_details: OpenAI::Responses::Response::ToolUsage::ImageGen::CachedTokensDetails,
1320
+ ?output_tokens_details: OpenAI::Responses::Response::ToolUsage::ImageGen::OutputTokensDetails
1321
+ }
1322
+
1323
+ type input_tokens_details =
1324
+ { image_tokens: Integer, text_tokens: Integer }
1325
+
1326
+ class InputTokensDetails < OpenAI::Internal::Type::BaseModel
1327
+ # The number of image tokens in the input prompt.
1328
+ attr_accessor image_tokens: Integer
1329
+
1330
+ # The number of text tokens in the input prompt.
1331
+ attr_accessor text_tokens: Integer
1332
+
1333
+ # @param image_tokens
1334
+ # The number of image tokens in the input prompt.
1335
+ # @param text_tokens
1336
+ # The number of text tokens in the input prompt.
1337
+ def initialize: (
1338
+ image_tokens: Integer,
1339
+ text_tokens: Integer
1340
+ ) -> void
1341
+
1342
+ def to_hash: -> { image_tokens: Integer, text_tokens: Integer }
1343
+ end
1344
+
1345
+ type cached_tokens_details =
1346
+ { cached_image_tokens: Integer, cached_text_tokens: Integer }
1347
+
1348
+ class CachedTokensDetails < OpenAI::Internal::Type::BaseModel
1349
+ attr_accessor cached_image_tokens: Integer
1350
+
1351
+ attr_accessor cached_text_tokens: Integer
1352
+
1353
+ def initialize: (
1354
+ cached_image_tokens: Integer,
1355
+ cached_text_tokens: Integer
1356
+ ) -> void
1357
+
1358
+ def to_hash: -> {
1359
+ cached_image_tokens: Integer,
1360
+ cached_text_tokens: Integer
1361
+ }
1362
+ end
1363
+
1364
+ type output_tokens_details =
1365
+ { image_tokens: Integer, text_tokens: Integer }
1366
+
1367
+ class OutputTokensDetails < OpenAI::Internal::Type::BaseModel
1368
+ # The number of image output tokens generated by the model.
1369
+ attr_accessor image_tokens: Integer
1370
+
1371
+ # The number of text output tokens generated by the model.
1372
+ attr_accessor text_tokens: Integer
1373
+
1374
+ # @param image_tokens
1375
+ # The number of image output tokens generated by the model.
1376
+ # @param text_tokens
1377
+ # The number of text output tokens generated by the model.
1378
+ def initialize: (
1379
+ image_tokens: Integer,
1380
+ text_tokens: Integer
1381
+ ) -> void
1382
+
1383
+ def to_hash: -> { image_tokens: Integer, text_tokens: Integer }
1384
+ end
1385
+ end
1386
+
1387
+ type web_search = { num_requests: Integer }
1388
+
1389
+ class WebSearch < OpenAI::Internal::Type::BaseModel
1390
+ # The number of billable web search requests issued.
1391
+ attr_accessor num_requests: Integer
1392
+
1393
+ # @param num_requests
1394
+ # The number of billable web search requests issued.
1395
+ def initialize: (num_requests: Integer) -> void
1396
+
1397
+ def to_hash: -> { num_requests: Integer }
1398
+ end
1399
+ end
1400
+
1178
1401
  type truncation = :auto | :disabled
1179
1402
 
1180
1403
  module Truncation
@@ -5,7 +5,8 @@ module OpenAI
5
5
  {
6
6
  id: String,
7
7
  ?type: :configuration_update,
8
- ?reasoning: OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning
8
+ ?reasoning: OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning,
9
+ ?text: OpenAI::Responses::ResponseConfigurationUpdateItem::Text
9
10
  }
10
11
 
11
12
  class ResponseConfigurationUpdateItem < OpenAI::Internal::Type::BaseModel
@@ -23,22 +24,34 @@ module OpenAI
23
24
  OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning
24
25
  ) -> OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning
25
26
 
27
+ # The text output configuration for subsequent responses.
28
+ attr_reader text: OpenAI::Responses::ResponseConfigurationUpdateItem::Text?
29
+
30
+ # The text output configuration for subsequent responses.
31
+ def text=: (
32
+ OpenAI::Responses::ResponseConfigurationUpdateItem::Text
33
+ ) -> OpenAI::Responses::ResponseConfigurationUpdateItem::Text
34
+
26
35
  # @param id
27
36
  # The unique ID of the configuration update item.
28
37
  # @param reasoning
29
38
  # The reasoning configuration applied by this update.
39
+ # @param text
40
+ # The text output configuration for subsequent responses.
30
41
  # @param type
31
42
  # The item type. Always `configuration_update`.
32
43
  def initialize: (
33
44
  id: String,
34
45
  ?reasoning: OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning,
46
+ ?text: OpenAI::Responses::ResponseConfigurationUpdateItem::Text,
35
47
  ?type: :configuration_update
36
48
  ) -> void
37
49
 
38
50
  def to_hash: -> {
39
51
  id: String,
40
52
  ?type: :configuration_update,
41
- ?reasoning: OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning
53
+ ?reasoning: OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning,
54
+ ?text: OpenAI::Responses::ResponseConfigurationUpdateItem::Text
42
55
  }
43
56
 
44
57
  type reasoning = { ?effort: OpenAI::Models::reasoning_effort? }
@@ -55,6 +68,36 @@ module OpenAI
55
68
 
56
69
  def to_hash: -> { ?effort: OpenAI::Models::reasoning_effort? }
57
70
  end
71
+
72
+ type text =
73
+ {
74
+ format_: OpenAI::Models::Responses::ResponseConfigurationUpdateItem::Text::format_
75
+ }
76
+
77
+ class Text < OpenAI::Internal::Type::BaseModel
78
+ # Use a JSON schema for structured output or text to return to plain text.
79
+ attr_accessor format_: OpenAI::Models::Responses::ResponseConfigurationUpdateItem::Text::format_
80
+
81
+ # @param format_
82
+ # Use a JSON schema for structured output or text to return to plain text.
83
+ def initialize: (
84
+ format_: OpenAI::Models::Responses::ResponseConfigurationUpdateItem::Text::format_
85
+ ) -> void
86
+
87
+ def to_hash: -> {
88
+ format_: OpenAI::Models::Responses::ResponseConfigurationUpdateItem::Text::format_
89
+ }
90
+
91
+ type format_ =
92
+ OpenAI::ResponseFormatText
93
+ | OpenAI::Responses::ResponseFormatTextJSONSchemaConfig
94
+
95
+ module Format
96
+ extend OpenAI::Internal::Type::Union
97
+
98
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseConfigurationUpdateItem::Text::format_]
99
+ end
100
+ end
58
101
  end
59
102
  end
60
103
  end
@@ -5,7 +5,8 @@ module OpenAI
5
5
  {
6
6
  ?type: :configuration_update,
7
7
  ?id: String?,
8
- ?reasoning: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning
8
+ ?reasoning: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning,
9
+ ?text: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Text
9
10
  }
10
11
 
11
12
  class ResponseConfigurationUpdateItemParam < OpenAI::Internal::Type::BaseModel
@@ -23,22 +24,34 @@ module OpenAI
23
24
  OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning
24
25
  ) -> OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning
25
26
 
27
+ # The text output configuration for subsequent responses.
28
+ attr_reader text: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Text?
29
+
30
+ # The text output configuration for subsequent responses.
31
+ def text=: (
32
+ OpenAI::Responses::ResponseConfigurationUpdateItemParam::Text
33
+ ) -> OpenAI::Responses::ResponseConfigurationUpdateItemParam::Text
34
+
26
35
  # @param id
27
36
  # The unique ID of the configuration update item.
28
37
  # @param reasoning
29
38
  # Updates to reasoning configuration. Only effort is supported.
39
+ # @param text
40
+ # The text output configuration for subsequent responses.
30
41
  # @param type
31
42
  # The item type. Always `configuration_update`.
32
43
  def initialize: (
33
44
  ?id: String?,
34
45
  ?reasoning: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning,
46
+ ?text: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Text,
35
47
  ?type: :configuration_update
36
48
  ) -> void
37
49
 
38
50
  def to_hash: -> {
39
51
  ?type: :configuration_update,
40
52
  ?id: String?,
41
- ?reasoning: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning
53
+ ?reasoning: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning,
54
+ ?text: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Text
42
55
  }
43
56
 
44
57
  type reasoning = { ?effort: OpenAI::Models::reasoning_effort? }
@@ -55,6 +68,36 @@ module OpenAI
55
68
 
56
69
  def to_hash: -> { ?effort: OpenAI::Models::reasoning_effort? }
57
70
  end
71
+
72
+ type text =
73
+ {
74
+ format_: OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam::Text::format_
75
+ }
76
+
77
+ class Text < OpenAI::Internal::Type::BaseModel
78
+ # Use a JSON schema for structured output or text to return to plain text.
79
+ attr_accessor format_: OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam::Text::format_
80
+
81
+ # @param format_
82
+ # Use a JSON schema for structured output or text to return to plain text.
83
+ def initialize: (
84
+ format_: OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam::Text::format_
85
+ ) -> void
86
+
87
+ def to_hash: -> {
88
+ format_: OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam::Text::format_
89
+ }
90
+
91
+ type format_ =
92
+ OpenAI::ResponseFormatText
93
+ | OpenAI::Responses::ResponseFormatTextJSONSchemaConfig
94
+
95
+ module Format
96
+ extend OpenAI::Internal::Type::Union
97
+
98
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam::Text::format_]
99
+ end
100
+ end
58
101
  end
59
102
  end
60
103
  end
@@ -293,7 +293,9 @@ module OpenAI
293
293
  # can call.
294
294
  def tool_choice=: (
295
295
  OpenAI::Models::Responses::ResponseCreateParams::tool_choice
296
- ) -> OpenAI::Models::Responses::ResponseCreateParams::tool_choice
296
+ | { type: :programmatic_tool_calling }
297
+ ) -> (OpenAI::Models::Responses::ResponseCreateParams::tool_choice
298
+ | { type: :programmatic_tool_calling })
297
299
 
298
300
  # An array of tools the model may call while generating a response. You can
299
301
  # specify which tool to use by setting the `tool_choice` parameter.
@@ -619,7 +621,8 @@ module OpenAI
619
621
  ?stream_options: OpenAI::Responses::ResponseCreateParams::StreamOptions?,
620
622
  ?temperature: Float?,
621
623
  ?text: OpenAI::Responses::ResponseTextConfig,
622
- ?tool_choice: OpenAI::Models::Responses::ResponseCreateParams::tool_choice,
624
+ ?tool_choice: OpenAI::Models::Responses::ResponseCreateParams::tool_choice
625
+ | { type: :programmatic_tool_calling },
623
626
  ?tools: ::Array[OpenAI::Models::Responses::tool],
624
627
  ?top_logprobs: Integer?,
625
628
  ?top_p: Float?,
@@ -710,8 +710,8 @@ module OpenAI
710
710
 
711
711
  # Control how much effort the model will exert to match the style and features,
712
712
  # especially facial features, of input images. Supports `high` and `low` on
713
- # `gpt-image-1` and `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For
714
- # `gpt-image-2`, omit this parameter. Defaults to `low` on supported models.
713
+ # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
714
+ # this parameter. Defaults to `low` on supported models.
715
715
  attr_accessor input_fidelity: OpenAI::Models::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::input_fidelity?
716
716
 
717
717
  # Optional mask for inpainting. Contains `image_url` (string, optional) and
@@ -833,8 +833,8 @@ module OpenAI
833
833
  # @param input_fidelity
834
834
  # Control how much effort the model will exert to match the style and features,
835
835
  # especially facial features, of input images. Supports `high` and `low` on
836
- # `gpt-image-1` and `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For
837
- # `gpt-image-2`, omit this parameter. Defaults to `low` on supported models.
836
+ # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
837
+ # this parameter. Defaults to `low` on supported models.
838
838
  # @param input_image_mask
839
839
  # Optional mask for inpainting. Contains `image_url` (string, optional) and
840
840
  # `file_id` (string, optional).
@@ -15,6 +15,7 @@ module OpenAI
15
15
  ?background: bool?,
16
16
  ?context_management: ::Array[OpenAI::Responses::ResponsesClientEvent::ResponseCreate::ContextManagement]?,
17
17
  ?conversation: OpenAI::Models::Responses::ResponsesClientEvent::ResponseCreate::conversation?,
18
+ ?generate: bool,
18
19
  ?include: ::Array[OpenAI::Models::Responses::response_includable]?,
19
20
  ?input: OpenAI::Models::Responses::ResponsesClientEvent::ResponseCreate::input,
20
21
  ?instructions: String?,
@@ -71,6 +72,16 @@ module OpenAI
71
72
  # response completes.
72
73
  attr_accessor conversation: OpenAI::Models::Responses::ResponsesClientEvent::ResponseCreate::conversation?
73
74
 
75
+ # Whether to generate output for this response. Defaults to true when omitted. Set
76
+ # to false to prepare request state without model output; the response ID can be
77
+ # used as previous_response_id on a later turn.
78
+ attr_reader generate: bool?
79
+
80
+ # Whether to generate output for this response. Defaults to true when omitted. Set
81
+ # to false to prepare request state without model output; the response ID can be
82
+ # used as previous_response_id on a later turn.
83
+ def generate=: (bool) -> bool
84
+
74
85
  # Specify additional output data to include in the model response. Currently
75
86
  # supported values are:
76
87
  #
@@ -419,6 +430,10 @@ module OpenAI
419
430
  # prepended to `input_items` for this response request. Input items and output
420
431
  # items from this response are automatically added to this conversation after this
421
432
  # response completes.
433
+ # @param generate
434
+ # Whether to generate output for this response. Defaults to true when omitted. Set
435
+ # to false to prepare request state without model output; the response ID can be
436
+ # used as previous_response_id on a later turn.
422
437
  # @param include
423
438
  # Specify additional output data to include in the model response. Currently
424
439
  # supported values are:
@@ -644,6 +659,7 @@ module OpenAI
644
659
  ?background: bool?,
645
660
  ?context_management: ::Array[OpenAI::Responses::ResponsesClientEvent::ResponseCreate::ContextManagement]?,
646
661
  ?conversation: OpenAI::Models::Responses::ResponsesClientEvent::ResponseCreate::conversation?,
662
+ ?generate: bool,
647
663
  ?include: ::Array[OpenAI::Models::Responses::response_includable]?,
648
664
  ?input: OpenAI::Models::Responses::ResponsesClientEvent::ResponseCreate::input,
649
665
  ?instructions: String?,
@@ -682,6 +698,7 @@ module OpenAI
682
698
  ?background: bool?,
683
699
  ?context_management: ::Array[OpenAI::Responses::ResponsesClientEvent::ResponseCreate::ContextManagement]?,
684
700
  ?conversation: OpenAI::Models::Responses::ResponsesClientEvent::ResponseCreate::conversation?,
701
+ ?generate: bool,
685
702
  ?include: ::Array[OpenAI::Models::Responses::response_includable]?,
686
703
  ?input: OpenAI::Models::Responses::ResponsesClientEvent::ResponseCreate::input,
687
704
  ?instructions: String?,
@@ -643,8 +643,8 @@ module OpenAI
643
643
 
644
644
  # Control how much effort the model will exert to match the style and features,
645
645
  # especially facial features, of input images. Supports `high` and `low` on
646
- # `gpt-image-1` and `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For
647
- # `gpt-image-2`, omit this parameter. Defaults to `low` on supported models.
646
+ # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
647
+ # this parameter. Defaults to `low` on supported models.
648
648
  attr_accessor input_fidelity: OpenAI::Models::Responses::Tool::ImageGeneration::input_fidelity?
649
649
 
650
650
  # Optional mask for inpainting. Contains `image_url` (string, optional) and
@@ -766,8 +766,8 @@ module OpenAI
766
766
  # @param input_fidelity
767
767
  # Control how much effort the model will exert to match the style and features,
768
768
  # especially facial features, of input images. Supports `high` and `low` on
769
- # `gpt-image-1` and `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For
770
- # `gpt-image-2`, omit this parameter. Defaults to `low` on supported models.
769
+ # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
770
+ # this parameter. Defaults to `low` on supported models.
771
771
  # @param input_image_mask
772
772
  # Optional mask for inpainting. Contains `image_url` (string, optional) and
773
773
  # `file_id` (string, optional).
@@ -19,7 +19,16 @@ module OpenAI
19
19
  # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
20
20
  # metadata. Use `OpenAI::FilePart` when you need to override the filename or
21
21
  # content type.
22
- attr_accessor video: OpenAI::Models::VideoEditParams::video
22
+ attr_reader video: OpenAI::Models::VideoEditParams::video
23
+
24
+ # Reference to the completed video to edit.
25
+ #
26
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
27
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
28
+ # content type.
29
+ def video=: (
30
+ OpenAI::Models::VideoEditParams::video | { id: String }
31
+ ) -> (OpenAI::Models::VideoEditParams::video | { id: String })
23
32
 
24
33
  # @param prompt
25
34
  # Text prompt that describes how to edit the source video.
@@ -31,7 +40,7 @@ module OpenAI
31
40
  # content type.
32
41
  def initialize: (
33
42
  prompt: String,
34
- video: OpenAI::Models::VideoEditParams::video,
43
+ video: OpenAI::Models::VideoEditParams::video | { id: String },
35
44
  ?request_options: OpenAI::request_opts
36
45
  ) -> void
37
46