openai 0.88.0 → 0.89.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 (239) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/models/beta/beta_response_input_item.rb +91 -1
  6. data/lib/openai/models/beta/beta_response_item.rb +93 -1
  7. data/lib/openai/models/beta/beta_response_output_item.rb +91 -1
  8. data/lib/openai/models/conversations/conversation_item.rb +91 -1
  9. data/lib/openai/models/live/audio_format.rb +109 -0
  10. data/lib/openai/models/live/built_in_voice.rb +38 -0
  11. data/lib/openai/models/live/client_config.rb +22 -0
  12. data/lib/openai/models/live/client_delegation.rb +22 -0
  13. data/lib/openai/models/live/client_event.rb +54 -0
  14. data/lib/openai/models/live/commentary_append_event.rb +59 -0
  15. data/lib/openai/models/live/commentary_appended_event.rb +65 -0
  16. data/lib/openai/models/live/custom_voice.rb +17 -0
  17. data/lib/openai/models/live/data_channel_config.rb +81 -0
  18. data/lib/openai/models/live/delegation_created_event.rb +140 -0
  19. data/lib/openai/models/live/error.rb +60 -0
  20. data/lib/openai/models/live/error_event.rb +52 -0
  21. data/lib/openai/models/live/fork_client_event.rb +53 -0
  22. data/lib/openai/models/live/fork_server_event.rb +295 -0
  23. data/lib/openai/models/live/fork_session_config.rb +107 -0
  24. data/lib/openai/models/live/fork_session_start_event.rb +48 -0
  25. data/lib/openai/models/live/function_tool.rb +60 -0
  26. data/lib/openai/models/live/info_event.rb +60 -0
  27. data/lib/openai/models/live/initial_item.rb +419 -0
  28. data/lib/openai/models/live/input_audio_append_event.rb +50 -0
  29. data/lib/openai/models/live/input_audio_mute_event.rb +33 -0
  30. data/lib/openai/models/live/input_audio_muted_event.rb +42 -0
  31. data/lib/openai/models/live/input_audio_unmute_event.rb +33 -0
  32. data/lib/openai/models/live/input_audio_unmuted_event.rb +42 -0
  33. data/lib/openai/models/live/input_transcript_delta_event.rb +76 -0
  34. data/lib/openai/models/live/instructions_append_event.rb +57 -0
  35. data/lib/openai/models/live/instructions_appended_event.rb +65 -0
  36. data/lib/openai/models/live/live_create_params.rb +57 -0
  37. data/lib/openai/models/live/live_create_response.rb +77 -0
  38. data/lib/openai/models/live/media_session_config.rb +227 -0
  39. data/lib/openai/models/live/media_session_fork_config.rb +75 -0
  40. data/lib/openai/models/live/output_audio_delta_event.rb +58 -0
  41. data/lib/openai/models/live/output_transcript_delta_event.rb +76 -0
  42. data/lib/openai/models/live/response_create_event.rb +33 -0
  43. data/lib/openai/models/live/response_event.rb +67 -0
  44. data/lib/openai/models/live/response_item_create_event.rb +44 -0
  45. data/lib/openai/models/live/responses_delegation_config.rb +332 -0
  46. data/lib/openai/models/live/responses_delegation_update_config.rb +332 -0
  47. data/lib/openai/models/live/server_event.rb +295 -0
  48. data/lib/openai/models/live/server_event_selector.rb +32 -0
  49. data/lib/openai/models/live/session_accept_params.rb +257 -0
  50. data/lib/openai/models/live/session_close_event.rb +33 -0
  51. data/lib/openai/models/live/session_closed_event.rb +113 -0
  52. data/lib/openai/models/live/session_config.rb +236 -0
  53. data/lib/openai/models/live/session_download_recording_params.rb +27 -0
  54. data/lib/openai/models/live/session_fork_params.rb +66 -0
  55. data/lib/openai/models/live/session_fork_response.rb +77 -0
  56. data/lib/openai/models/live/session_hangup_params.rb +22 -0
  57. data/lib/openai/models/live/session_refer_params.rb +34 -0
  58. data/lib/openai/models/live/session_reject_params.rb +32 -0
  59. data/lib/openai/models/live/session_resource.rb +268 -0
  60. data/lib/openai/models/live/session_start_event.rb +46 -0
  61. data/lib/openai/models/live/session_started_event.rb +51 -0
  62. data/lib/openai/models/live/session_update_config.rb +69 -0
  63. data/lib/openai/models/live/session_update_event.rb +46 -0
  64. data/lib/openai/models/live/session_updated_event.rb +51 -0
  65. data/lib/openai/models/live/session_usage.rb +24 -0
  66. data/lib/openai/models/live/session_usage_updated_event.rb +81 -0
  67. data/lib/openai/models/live/thinking_append_event.rb +59 -0
  68. data/lib/openai/models/live/thinking_appended_event.rb +65 -0
  69. data/lib/openai/models/responses/response_input_item.rb +91 -1
  70. data/lib/openai/models/responses/response_item.rb +93 -1
  71. data/lib/openai/models/responses/response_output_item.rb +91 -1
  72. data/lib/openai/models/webhooks/live_call_incoming_webhook_event.rb +12 -7
  73. data/lib/openai/models/webhooks/live_transport_incoming_webhook_event.rb +137 -0
  74. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +4 -4
  75. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +9 -2
  76. data/lib/openai/models.rb +2 -0
  77. data/lib/openai/resources/live/forks.rb +16 -0
  78. data/lib/openai/resources/live/sessions.rb +180 -0
  79. data/lib/openai/resources/live/sideband.rb +16 -0
  80. data/lib/openai/resources/live.rb +54 -0
  81. data/lib/openai/resources/webhooks.rb +1 -1
  82. data/lib/openai/version.rb +1 -1
  83. data/lib/openai.rb +65 -0
  84. data/rbi/openai/client.rbi +3 -0
  85. data/rbi/openai/models/beta/beta_response_input_item.rbi +109 -0
  86. data/rbi/openai/models/beta/beta_response_item.rbi +105 -0
  87. data/rbi/openai/models/beta/beta_response_output_item.rbi +119 -0
  88. data/rbi/openai/models/conversations/conversation_item.rbi +133 -0
  89. data/rbi/openai/models/live/audio_format.rbi +185 -0
  90. data/rbi/openai/models/live/built_in_voice.rbi +46 -0
  91. data/rbi/openai/models/live/client_config.rbi +54 -0
  92. data/rbi/openai/models/live/client_delegation.rbi +51 -0
  93. data/rbi/openai/models/live/client_event.rbi +41 -0
  94. data/rbi/openai/models/live/commentary_append_event.rbi +88 -0
  95. data/rbi/openai/models/live/commentary_appended_event.rbi +97 -0
  96. data/rbi/openai/models/live/custom_voice.rbi +46 -0
  97. data/rbi/openai/models/live/data_channel_config.rbi +119 -0
  98. data/rbi/openai/models/live/delegation_created_event.rbi +207 -0
  99. data/rbi/openai/models/live/error.rbi +95 -0
  100. data/rbi/openai/models/live/error_event.rbi +87 -0
  101. data/rbi/openai/models/live/fork_client_event.rbi +40 -0
  102. data/rbi/openai/models/live/fork_server_event.rbi +436 -0
  103. data/rbi/openai/models/live/fork_session_config.rbi +234 -0
  104. data/rbi/openai/models/live/fork_session_start_event.rbi +80 -0
  105. data/rbi/openai/models/live/function_tool.rbi +95 -0
  106. data/rbi/openai/models/live/info_event.rbi +92 -0
  107. data/rbi/openai/models/live/initial_item.rbi +661 -0
  108. data/rbi/openai/models/live/input_audio_append_event.rbi +79 -0
  109. data/rbi/openai/models/live/input_audio_mute_event.rbi +62 -0
  110. data/rbi/openai/models/live/input_audio_muted_event.rbi +74 -0
  111. data/rbi/openai/models/live/input_audio_unmute_event.rbi +62 -0
  112. data/rbi/openai/models/live/input_audio_unmuted_event.rbi +74 -0
  113. data/rbi/openai/models/live/input_transcript_delta_event.rbi +115 -0
  114. data/rbi/openai/models/live/instructions_append_event.rbi +86 -0
  115. data/rbi/openai/models/live/instructions_appended_event.rbi +97 -0
  116. data/rbi/openai/models/live/live_create_params.rbi +121 -0
  117. data/rbi/openai/models/live/live_create_response.rbi +160 -0
  118. data/rbi/openai/models/live/media_session_config.rbi +390 -0
  119. data/rbi/openai/models/live/media_session_fork_config.rbi +143 -0
  120. data/rbi/openai/models/live/output_audio_delta_event.rbi +93 -0
  121. data/rbi/openai/models/live/output_transcript_delta_event.rbi +115 -0
  122. data/rbi/openai/models/live/response_create_event.rbi +62 -0
  123. data/rbi/openai/models/live/response_event.rbi +105 -0
  124. data/rbi/openai/models/live/response_item_create_event.rbi +183 -0
  125. data/rbi/openai/models/live/responses_delegation_config.rbi +562 -0
  126. data/rbi/openai/models/live/responses_delegation_update_config.rbi +585 -0
  127. data/rbi/openai/models/live/server_event.rbi +436 -0
  128. data/rbi/openai/models/live/server_event_selector.rbi +64 -0
  129. data/rbi/openai/models/live/session_accept_params.rbi +451 -0
  130. data/rbi/openai/models/live/session_close_event.rbi +62 -0
  131. data/rbi/openai/models/live/session_closed_event.rbi +148 -0
  132. data/rbi/openai/models/live/session_config.rbi +427 -0
  133. data/rbi/openai/models/live/session_download_recording_params.rbi +57 -0
  134. data/rbi/openai/models/live/session_fork_params.rbi +131 -0
  135. data/rbi/openai/models/live/session_fork_response.rbi +160 -0
  136. data/rbi/openai/models/live/session_hangup_params.rbi +53 -0
  137. data/rbi/openai/models/live/session_refer_params.rbi +64 -0
  138. data/rbi/openai/models/live/session_reject_params.rbi +62 -0
  139. data/rbi/openai/models/live/session_resource.rbi +461 -0
  140. data/rbi/openai/models/live/session_start_event.rbi +78 -0
  141. data/rbi/openai/models/live/session_started_event.rbi +86 -0
  142. data/rbi/openai/models/live/session_update_config.rbi +134 -0
  143. data/rbi/openai/models/live/session_update_event.rbi +78 -0
  144. data/rbi/openai/models/live/session_updated_event.rbi +86 -0
  145. data/rbi/openai/models/live/session_usage.rbi +53 -0
  146. data/rbi/openai/models/live/session_usage_updated_event.rbi +148 -0
  147. data/rbi/openai/models/live/thinking_append_event.rbi +88 -0
  148. data/rbi/openai/models/live/thinking_appended_event.rbi +97 -0
  149. data/rbi/openai/models/responses/response_input_item.rbi +113 -0
  150. data/rbi/openai/models/responses/response_item.rbi +105 -0
  151. data/rbi/openai/models/responses/response_output_item.rbi +125 -0
  152. data/rbi/openai/models/webhooks/live_call_incoming_webhook_event.rbi +11 -7
  153. data/rbi/openai/models/webhooks/live_transport_incoming_webhook_event.rbi +226 -0
  154. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +4 -4
  155. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  156. data/rbi/openai/models.rbi +2 -0
  157. data/rbi/openai/resources/live/forks.rbi +19 -0
  158. data/rbi/openai/resources/live/sessions.rbi +110 -0
  159. data/rbi/openai/resources/live/sideband.rbi +19 -0
  160. data/rbi/openai/resources/live.rbi +43 -0
  161. data/rbi/openai/resources/responses.rbi +75 -38
  162. data/rbi/openai/resources/webhooks.rbi +1 -0
  163. data/sig/openai/client.rbs +2 -0
  164. data/sig/openai/models/beta/beta_response_input_item.rbs +56 -0
  165. data/sig/openai/models/beta/beta_response_item.rbs +56 -0
  166. data/sig/openai/models/beta/beta_response_output_item.rbs +56 -0
  167. data/sig/openai/models/conversations/conversation_item.rbs +56 -0
  168. data/sig/openai/models/live/audio_format.rbs +73 -0
  169. data/sig/openai/models/live/built_in_voice.rbs +58 -0
  170. data/sig/openai/models/live/client_config.rbs +15 -0
  171. data/sig/openai/models/live/client_delegation.rbs +15 -0
  172. data/sig/openai/models/live/client_event.rbs +24 -0
  173. data/sig/openai/models/live/commentary_append_event.rbs +37 -0
  174. data/sig/openai/models/live/commentary_appended_event.rbs +44 -0
  175. data/sig/openai/models/live/custom_voice.rbs +15 -0
  176. data/sig/openai/models/live/data_channel_config.rbs +56 -0
  177. data/sig/openai/models/live/delegation_created_event.rbs +89 -0
  178. data/sig/openai/models/live/error.rbs +46 -0
  179. data/sig/openai/models/live/error_event.rbs +39 -0
  180. data/sig/openai/models/live/fork_client_event.rbs +24 -0
  181. data/sig/openai/models/live/fork_server_event.rbs +212 -0
  182. data/sig/openai/models/live/fork_session_config.rbs +89 -0
  183. data/sig/openai/models/live/fork_session_start_event.rbs +32 -0
  184. data/sig/openai/models/live/function_tool.rbs +42 -0
  185. data/sig/openai/models/live/info_event.rbs +44 -0
  186. data/sig/openai/models/live/initial_item.rbs +332 -0
  187. data/sig/openai/models/live/input_audio_append_event.rbs +32 -0
  188. data/sig/openai/models/live/input_audio_mute_event.rbs +24 -0
  189. data/sig/openai/models/live/input_audio_muted_event.rbs +34 -0
  190. data/sig/openai/models/live/input_audio_unmute_event.rbs +24 -0
  191. data/sig/openai/models/live/input_audio_unmuted_event.rbs +34 -0
  192. data/sig/openai/models/live/input_transcript_delta_event.rbs +49 -0
  193. data/sig/openai/models/live/instructions_append_event.rbs +37 -0
  194. data/sig/openai/models/live/instructions_appended_event.rbs +44 -0
  195. data/sig/openai/models/live/live_create_params.rbs +45 -0
  196. data/sig/openai/models/live/live_create_response.rbs +49 -0
  197. data/sig/openai/models/live/media_session_config.rbs +157 -0
  198. data/sig/openai/models/live/media_session_fork_config.rbs +66 -0
  199. data/sig/openai/models/live/output_audio_delta_event.rbs +41 -0
  200. data/sig/openai/models/live/output_transcript_delta_event.rbs +49 -0
  201. data/sig/openai/models/live/response_create_event.rbs +18 -0
  202. data/sig/openai/models/live/response_event.rbs +44 -0
  203. data/sig/openai/models/live/response_item_create_event.rbs +32 -0
  204. data/sig/openai/models/live/responses_delegation_config.rbs +244 -0
  205. data/sig/openai/models/live/responses_delegation_update_config.rbs +246 -0
  206. data/sig/openai/models/live/server_event.rbs +212 -0
  207. data/sig/openai/models/live/server_event_selector.rbs +19 -0
  208. data/sig/openai/models/live/session_accept_params.rbs +185 -0
  209. data/sig/openai/models/live/session_close_event.rbs +17 -0
  210. data/sig/openai/models/live/session_closed_event.rbs +68 -0
  211. data/sig/openai/models/live/session_config.rbs +168 -0
  212. data/sig/openai/models/live/session_download_recording_params.rbs +25 -0
  213. data/sig/openai/models/live/session_fork_params.rbs +54 -0
  214. data/sig/openai/models/live/session_fork_response.rbs +49 -0
  215. data/sig/openai/models/live/session_hangup_params.rbs +25 -0
  216. data/sig/openai/models/live/session_refer_params.rbs +33 -0
  217. data/sig/openai/models/live/session_reject_params.rbs +33 -0
  218. data/sig/openai/models/live/session_resource.rbs +183 -0
  219. data/sig/openai/models/live/session_start_event.rbs +32 -0
  220. data/sig/openai/models/live/session_started_event.rbs +39 -0
  221. data/sig/openai/models/live/session_update_config.rbs +56 -0
  222. data/sig/openai/models/live/session_update_event.rbs +32 -0
  223. data/sig/openai/models/live/session_updated_event.rbs +39 -0
  224. data/sig/openai/models/live/session_usage.rbs +15 -0
  225. data/sig/openai/models/live/session_usage_updated_event.rbs +58 -0
  226. data/sig/openai/models/live/thinking_append_event.rbs +37 -0
  227. data/sig/openai/models/live/thinking_appended_event.rbs +44 -0
  228. data/sig/openai/models/responses/response_input_item.rbs +56 -0
  229. data/sig/openai/models/responses/response_item.rbs +56 -0
  230. data/sig/openai/models/responses/response_output_item.rbs +56 -0
  231. data/sig/openai/models/webhooks/live_transport_incoming_webhook_event.rbs +95 -0
  232. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  233. data/sig/openai/models.rbs +2 -0
  234. data/sig/openai/resources/live/forks.rbs +9 -0
  235. data/sig/openai/resources/live/sessions.rbs +44 -0
  236. data/sig/openai/resources/live/sideband.rbs +9 -0
  237. data/sig/openai/resources/live.rbs +19 -0
  238. data/sig/openai/resources/webhooks.rbs +1 -0
  239. metadata +196 -1
@@ -285,6 +285,36 @@ module OpenAI
285
285
  # @return [Symbol, :image_generation_call]
286
286
  required :type, const: :image_generation_call
287
287
 
288
+ # @!attribute action
289
+ # The action used for image generation.
290
+ #
291
+ # @return [Symbol, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall::Action, nil]
292
+ optional(
293
+ :action,
294
+ enum: -> { OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Action },
295
+ nil?: true
296
+ )
297
+
298
+ # @!attribute background
299
+ # The background setting used for generation.
300
+ #
301
+ # @return [Symbol, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall::Background, nil]
302
+ optional(
303
+ :background,
304
+ enum: -> { OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::Background },
305
+ nil?: true
306
+ )
307
+
308
+ # @!attribute output_format
309
+ # The output format used for generation.
310
+ #
311
+ # @return [Symbol, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall::OutputFormat, nil]
312
+ optional(
313
+ :output_format,
314
+ enum: -> { OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OutputFormat },
315
+ nil?: true
316
+ )
317
+
288
318
  # @!attribute quality
289
319
  # The quality of the image generated by the image generation tool call. One of
290
320
  # `low`, `medium`, `high`, `xhigh`, `max`, or `auto`.
@@ -296,6 +326,12 @@ module OpenAI
296
326
  nil?: true
297
327
  )
298
328
 
329
+ # @!attribute revised_prompt
330
+ # The prompt that was used after any model prompt rewriting.
331
+ #
332
+ # @return [String, nil]
333
+ optional :revised_prompt, String, nil?: true
334
+
299
335
  # @!attribute size
300
336
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
301
337
  #
@@ -308,7 +344,7 @@ module OpenAI
308
344
  nil?: true
309
345
  )
310
346
 
311
- # @!method initialize(id:, result:, status:, quality: nil, size: nil, type: :image_generation_call)
347
+ # @!method initialize(id:, result:, status:, action: nil, background: nil, output_format: nil, quality: nil, revised_prompt: nil, size: nil, type: :image_generation_call)
312
348
  # An image generation request made by the model.
313
349
  #
314
350
  # @param id [String]
@@ -320,10 +356,22 @@ module OpenAI
320
356
  # @param status [Symbol, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall::Status]
321
357
  # The status of the image generation call.
322
358
  #
359
+ # @param action [Symbol, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall::Action, nil]
360
+ # The action used for image generation.
361
+ #
362
+ # @param background [Symbol, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall::Background, nil]
363
+ # The background setting used for generation.
364
+ #
365
+ # @param output_format [Symbol, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall::OutputFormat, nil]
366
+ # The output format used for generation.
367
+ #
323
368
  # @param quality [Symbol, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall::Quality, nil]
324
369
  # The quality of the image generated by the image generation tool call. One of
325
370
  # `low`, `medium`, `high`, `xhigh`, `max`, or `auto`.
326
371
  #
372
+ # @param revised_prompt [String, nil]
373
+ # The prompt that was used after any model prompt rewriting.
374
+ #
327
375
  # @param size [String, Symbol, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall::Size, nil]
328
376
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
329
377
  #
@@ -345,6 +393,48 @@ module OpenAI
345
393
  # @return [Array<Symbol>]
346
394
  end
347
395
 
396
+ # The action used for image generation.
397
+ #
398
+ # @see OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall#action
399
+ module Action
400
+ extend OpenAI::Internal::Type::Enum
401
+
402
+ GENERATE = :generate
403
+ EDIT = :edit
404
+ AUTO = :auto
405
+
406
+ # @!method self.values
407
+ # @return [Array<Symbol>]
408
+ end
409
+
410
+ # The background setting used for generation.
411
+ #
412
+ # @see OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall#background
413
+ module Background
414
+ extend OpenAI::Internal::Type::Enum
415
+
416
+ TRANSPARENT = :transparent
417
+ OPAQUE = :opaque
418
+ AUTO = :auto
419
+
420
+ # @!method self.values
421
+ # @return [Array<Symbol>]
422
+ end
423
+
424
+ # The output format used for generation.
425
+ #
426
+ # @see OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall#output_format
427
+ module OutputFormat
428
+ extend OpenAI::Internal::Type::Enum
429
+
430
+ PNG = :png
431
+ WEBP = :webp
432
+ JPEG = :jpeg
433
+
434
+ # @!method self.values
435
+ # @return [Array<Symbol>]
436
+ end
437
+
348
438
  # The quality of the image generated by the image generation tool call. One of
349
439
  # `low`, `medium`, `high`, `xhigh`, `max`, or `auto`.
350
440
  #
@@ -3,6 +3,7 @@
3
3
  module OpenAI
4
4
  module Models
5
5
  module Webhooks
6
+ # @deprecated
6
7
  class LiveCallIncomingWebhookEvent < OpenAI::Internal::Type::BaseModel
7
8
  # @!attribute id
8
9
  # The unique ID of the event.
@@ -35,9 +36,11 @@ module OpenAI
35
36
  optional :object, enum: -> { OpenAI::Webhooks::LiveCallIncomingWebhookEvent::Object }
36
37
 
37
38
  # @!method initialize(id:, created_at:, data:, object: nil, type: :"live.call.incoming")
38
- # Sent when an incoming API SIP session is available for Live acceptance. The same
39
- # pending session can also emit `realtime.call.incoming`; the first successful
40
- # Realtime or Live accept endpoint selects the runtime surface.
39
+ # Deprecated: use `live.transport.incoming`. Retained for existing subscriptions
40
+ # during migration; new subscriptions to this event are not allowed. Sent when an
41
+ # incoming API SIP session is available for Live acceptance. The same pending
42
+ # session can also emit `realtime.call.incoming`; the first successful Realtime or
43
+ # Live accept endpoint selects the runtime surface.
41
44
  #
42
45
  # @param id [String]
43
46
  # The unique ID of the event.
@@ -57,8 +60,9 @@ module OpenAI
57
60
  # @see OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent#data
58
61
  class Data < OpenAI::Internal::Type::BaseModel
59
62
  # @!attribute session_id
60
- # The `live_...` ID of the pending SIP session. Forward this value unchanged when
61
- # accepting or rejecting the call through the Live API.
63
+ # The `live_...` ID of the pending SIP session. Pass this value unchanged to Live
64
+ # call controls and sideband connections. The corresponding
65
+ # `realtime.call.incoming` event uses a separate `rtc_...` call ID.
62
66
  #
63
67
  # @return [String]
64
68
  required :session_id, String
@@ -78,8 +82,9 @@ module OpenAI
78
82
  # Event data payload.
79
83
  #
80
84
  # @param session_id [String]
81
- # The `live_...` ID of the pending SIP session. Forward this value unchanged when
82
- # accepting or rejecting the call through the Live API.
85
+ # The `live_...` ID of the pending SIP session. Pass this value unchanged to Live
86
+ # call controls and sideband connections. The corresponding
87
+ # `realtime.call.incoming` event uses a separate `rtc_...` call ID.
83
88
  #
84
89
  # @param sip_headers [Array<OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent::Data::SipHeader>]
85
90
  # Headers from the SIP INVITE, excluding SIP authorization headers. Retained
@@ -0,0 +1,137 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ class LiveTransportIncomingWebhookEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the event.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ # The Unix timestamp (in seconds) of when the event was created.
15
+ #
16
+ # @return [Integer]
17
+ required :created_at, Integer
18
+
19
+ # @!attribute data
20
+ # Event data payload.
21
+ #
22
+ # @return [OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent::Data]
23
+ required :data, -> { OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Data }
24
+
25
+ # @!attribute type
26
+ # The type of the event. Always `live.transport.incoming`.
27
+ #
28
+ # @return [Symbol, :"live.transport.incoming"]
29
+ required :type, const: :"live.transport.incoming"
30
+
31
+ # @!attribute object
32
+ # The object of the event. Always `event`.
33
+ #
34
+ # @return [Symbol, OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent::Object, nil]
35
+ optional :object, enum: -> { OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Object }
36
+
37
+ # @!method initialize(id:, created_at:, data:, object: nil, type: :"live.transport.incoming")
38
+ # Sent when an incoming API SIP session is available for Live acceptance. The same
39
+ # pending session can also emit `realtime.call.incoming`; the first successful
40
+ # Realtime or Live accept endpoint selects the runtime surface.
41
+ #
42
+ # @param id [String]
43
+ # The unique ID of the event.
44
+ #
45
+ # @param created_at [Integer]
46
+ # The Unix timestamp (in seconds) of when the event was created.
47
+ #
48
+ # @param data [OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent::Data]
49
+ # Event data payload.
50
+ #
51
+ # @param object [Symbol, OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent::Object]
52
+ # The object of the event. Always `event`.
53
+ #
54
+ # @param type [Symbol, :"live.transport.incoming"]
55
+ # The type of the event. Always `live.transport.incoming`.
56
+
57
+ # @see OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent#data
58
+ class Data < OpenAI::Internal::Type::BaseModel
59
+ # @!attribute session_id
60
+ # The `live_...` ID of the pending SIP session. Forward this value unchanged when
61
+ # accepting or rejecting the call through the Live API.
62
+ #
63
+ # @return [String]
64
+ required :session_id, String
65
+
66
+ # @!attribute sip_headers
67
+ # Headers from the SIP INVITE, excluding SIP authorization headers. Retained
68
+ # names, values, repeated entries, and order are preserved. Treat these values as
69
+ # untrusted call metadata.
70
+ #
71
+ # @return [Array<OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent::Data::SipHeader>]
72
+ required(
73
+ :sip_headers,
74
+ -> {
75
+ OpenAI::Internal::Type::ArrayOf[OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Data::SipHeader]
76
+ }
77
+ )
78
+
79
+ # @!attribute type
80
+ # The incoming transport type. Always `sip`.
81
+ #
82
+ # @return [Symbol, :sip]
83
+ required :type, const: :sip
84
+
85
+ # @!method initialize(session_id:, sip_headers:, type: :sip)
86
+ # Event data payload.
87
+ #
88
+ # @param session_id [String]
89
+ # The `live_...` ID of the pending SIP session. Forward this value unchanged when
90
+ # accepting or rejecting the call through the Live API.
91
+ #
92
+ # @param sip_headers [Array<OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent::Data::SipHeader>]
93
+ # Headers from the SIP INVITE, excluding SIP authorization headers. Retained
94
+ # names, values, repeated entries, and order are preserved. Treat these values as
95
+ # untrusted call metadata.
96
+ #
97
+ # @param type [Symbol, :sip]
98
+ # The incoming transport type. Always `sip`.
99
+ class SipHeader < OpenAI::Internal::Type::BaseModel
100
+ # @!attribute name
101
+ # Name of the SIP Header.
102
+ #
103
+ # @return [String]
104
+ required :name, String
105
+
106
+ # @!attribute value
107
+ # Value of the SIP Header.
108
+ #
109
+ # @return [String]
110
+ required :value, String
111
+
112
+ # @!method initialize(name:, value:)
113
+ # A header from the SIP Invite.
114
+ #
115
+ # @param name [String]
116
+ # Name of the SIP Header.
117
+ #
118
+ # @param value [String]
119
+ # Value of the SIP Header.
120
+ end
121
+ end
122
+
123
+ # The object of the event. Always `event`.
124
+ #
125
+ # @see OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent#object
126
+ module Object
127
+ extend OpenAI::Internal::Type::Enum
128
+
129
+ EVENT = :event
130
+
131
+ # @!method self.values
132
+ # @return [Array<Symbol>]
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end
@@ -36,8 +36,8 @@ module OpenAI
36
36
 
37
37
  # @!method initialize(id:, created_at:, data:, object: nil, type: :"realtime.call.incoming")
38
38
  # Sent when an incoming API SIP session is available for Realtime acceptance. The
39
- # same pending session can also emit `live.call.incoming`; the first successful
40
- # Realtime or Live accept endpoint selects the runtime surface.
39
+ # same pending session can also emit `live.transport.incoming`; the first
40
+ # successful Realtime or Live accept endpoint selects the runtime surface.
41
41
  #
42
42
  # @param id [String]
43
43
  # The unique ID of the event.
@@ -58,7 +58,7 @@ module OpenAI
58
58
  class Data < OpenAI::Internal::Type::BaseModel
59
59
  # @!attribute call_id
60
60
  # The Transceiver `rtc_...` ID of the pending SIP session. The paired
61
- # `live.call.incoming` event derives its `session_id` by replacing the `rtc_`
61
+ # `live.transport.incoming` event derives its `session_id` by replacing the `rtc_`
62
62
  # prefix with `live_`. Use the ID returned by the event with the corresponding
63
63
  # Realtime or Live API.
64
64
  #
@@ -81,7 +81,7 @@ module OpenAI
81
81
  #
82
82
  # @param call_id [String]
83
83
  # The Transceiver `rtc_...` ID of the pending SIP session. The paired
84
- # `live.call.incoming` event derives its `session_id` by replacing the `rtc_`
84
+ # `live.transport.incoming` event derives its `session_id` by replacing the `rtc_`
85
85
  # prefix with `live_`. Use the ID returned by the event with the corresponding
86
86
  # Realtime or Live API.
87
87
  #
@@ -39,13 +39,20 @@ module OpenAI
39
39
  # Sent when a fine-tuning job has succeeded.
40
40
  variant :"fine_tuning.job.succeeded", -> { OpenAI::Webhooks::FineTuningJobSucceededWebhookEvent }
41
41
 
42
+ # Deprecated: use `live.transport.incoming`. Retained for existing subscriptions
43
+ # during migration; new subscriptions to this event are not allowed.
42
44
  # Sent when an incoming API SIP session is available for Live acceptance. The
43
45
  # same pending session can also emit `realtime.call.incoming`; the first
44
46
  # successful Realtime or Live accept endpoint selects the runtime surface.
45
47
  variant :"live.call.incoming", -> { OpenAI::Webhooks::LiveCallIncomingWebhookEvent }
46
48
 
49
+ # Sent when an incoming API SIP session is available for Live acceptance. The
50
+ # same pending session can also emit `realtime.call.incoming`; the first
51
+ # successful Realtime or Live accept endpoint selects the runtime surface.
52
+ variant :"live.transport.incoming", -> { OpenAI::Webhooks::LiveTransportIncomingWebhookEvent }
53
+
47
54
  # Sent when an incoming API SIP session is available for Realtime acceptance.
48
- # The same pending session can also emit `live.call.incoming`; the first
55
+ # The same pending session can also emit `live.transport.incoming`; the first
49
56
  # successful Realtime or Live accept endpoint selects the runtime surface.
50
57
  variant :"realtime.call.incoming", -> { OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent }
51
58
 
@@ -68,7 +75,7 @@ module OpenAI
68
75
  variant :"safety.org_alert.created", -> { OpenAI::Webhooks::SafetyOrgAlertCreatedWebhookEvent }
69
76
 
70
77
  # @!method self.variants
71
- # @return [Array(OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent)]
78
+ # @return [Array(OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent)]
72
79
  end
73
80
  end
74
81
  end
data/lib/openai/models.rb CHANGED
@@ -196,6 +196,8 @@ module OpenAI
196
196
 
197
197
  ImagesResponse = OpenAI::Models::ImagesResponse
198
198
 
199
+ Live = OpenAI::Models::Live
200
+
199
201
  # @type [OpenAI::Internal::Type::Converter]
200
202
  Metadata = OpenAI::Models::Metadata
201
203
 
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Live
6
+ class Forks
7
+ # @api private
8
+ #
9
+ # @param client [OpenAI::Client]
10
+ def initialize(client:)
11
+ @client = client
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,180 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Live
6
+ class Sessions
7
+ # Accept an incoming SIP call with Live startup configuration.
8
+ #
9
+ # @overload accept(session_id, session:, request_options: {})
10
+ #
11
+ # @param session_id [String]
12
+ # Opaque Live session identifier from the creation response or incoming-call
13
+ # webhook. Preserve the returned value unchanged, including its prefix.
14
+ #
15
+ # @param session [OpenAI::Models::Live::SessionAcceptParams::Session]
16
+ # Model and startup configuration for the Live session that answers the incoming
17
+ # SIP call.
18
+ #
19
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
20
+ #
21
+ # @return [nil]
22
+ #
23
+ # @see OpenAI::Models::Live::SessionAcceptParams
24
+ def accept(session_id, params)
25
+ parsed, options = OpenAI::Live::SessionAcceptParams.dump_request(params)
26
+ @client.request(
27
+ method: :post,
28
+ path: ["live/sessions/%1$s/accept", session_id],
29
+ body: parsed,
30
+ model: NilClass,
31
+ security: {bearer_auth: true},
32
+ options: options
33
+ )
34
+ end
35
+
36
+ # Get Live session content
37
+ #
38
+ # @overload download_recording(session_id, request_options: {})
39
+ #
40
+ # @param session_id [String]
41
+ # The ID of the stored Live session to download. Use the session ID returned when
42
+ # the session started with storage enabled.
43
+ #
44
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
45
+ #
46
+ # @return [StringIO]
47
+ #
48
+ # @see OpenAI::Models::Live::SessionDownloadRecordingParams
49
+ def download_recording(session_id, params = {})
50
+ @client.request(
51
+ method: :get,
52
+ path: ["live/sessions/%1$s/content", session_id],
53
+ headers: {"accept" => "application/binary"},
54
+ model: StringIO,
55
+ security: {bearer_auth: true},
56
+ options: params[:request_options]
57
+ )
58
+ end
59
+
60
+ # Fork a stored Live session onto a new WebRTC connection.
61
+ #
62
+ # @overload fork(session_id, transport:, session: nil, request_options: {})
63
+ #
64
+ # @param session_id [String]
65
+ # The ID of the stored Live session to fork.
66
+ #
67
+ # @param transport [OpenAI::Models::Live::SessionForkParams::Transport]
68
+ # WebRTC transport with an SDP offer for the new connection to the forked session.
69
+ #
70
+ # @param session [OpenAI::Models::Live::MediaSessionForkConfig]
71
+ # Optional configuration overrides for the new Live session. Omit this object or
72
+ # send an empty object to inherit the stored session's settings.
73
+ #
74
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
75
+ #
76
+ # @return [OpenAI::Models::Live::SessionForkResponse]
77
+ #
78
+ # @see OpenAI::Models::Live::SessionForkParams
79
+ def fork(session_id, params)
80
+ parsed, options = OpenAI::Live::SessionForkParams.dump_request(params)
81
+ @client.request(
82
+ method: :post,
83
+ path: ["live/sessions/%1$s/fork", session_id],
84
+ body: parsed,
85
+ model: OpenAI::Models::Live::SessionForkResponse,
86
+ security: {bearer_auth: true},
87
+ options: options
88
+ )
89
+ end
90
+
91
+ # Hang up a Live session.
92
+ #
93
+ # @overload hangup(session_id, request_options: {})
94
+ #
95
+ # @param session_id [String]
96
+ # Opaque Live session identifier from the creation response or incoming-call
97
+ # webhook. Preserve the returned value unchanged, including its prefix.
98
+ #
99
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
100
+ #
101
+ # @return [nil]
102
+ #
103
+ # @see OpenAI::Models::Live::SessionHangupParams
104
+ def hangup(session_id, params = {})
105
+ @client.request(
106
+ method: :post,
107
+ path: ["live/sessions/%1$s/hangup", session_id],
108
+ model: NilClass,
109
+ security: {bearer_auth: true},
110
+ options: params[:request_options]
111
+ )
112
+ end
113
+
114
+ # Transfer a Live SIP call to another destination.
115
+ #
116
+ # @overload refer(session_id, target_uri:, request_options: {})
117
+ #
118
+ # @param session_id [String]
119
+ # Opaque Live session identifier from the creation response or incoming-call
120
+ # webhook. Preserve the returned value unchanged, including its prefix.
121
+ #
122
+ # @param target_uri [String]
123
+ # Nonblank URI for the SIP Refer-To header, such as tel:+14155550123 or
124
+ # sip:agent@example.com.
125
+ #
126
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
127
+ #
128
+ # @return [nil]
129
+ #
130
+ # @see OpenAI::Models::Live::SessionReferParams
131
+ def refer(session_id, params)
132
+ parsed, options = OpenAI::Live::SessionReferParams.dump_request(params)
133
+ @client.request(
134
+ method: :post,
135
+ path: ["live/sessions/%1$s/refer", session_id],
136
+ body: parsed,
137
+ model: NilClass,
138
+ security: {bearer_auth: true},
139
+ options: options
140
+ )
141
+ end
142
+
143
+ # Reject an incoming SIP call.
144
+ #
145
+ # @overload reject(session_id, status_code:, request_options: {})
146
+ #
147
+ # @param session_id [String]
148
+ # Opaque Live session identifier from the creation response or incoming-call
149
+ # webhook. Preserve the returned value unchanged, including its prefix.
150
+ #
151
+ # @param status_code [Integer]
152
+ # SIP rejection status sent to the caller. This field is required.
153
+ #
154
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
155
+ #
156
+ # @return [nil]
157
+ #
158
+ # @see OpenAI::Models::Live::SessionRejectParams
159
+ def reject(session_id, params)
160
+ parsed, options = OpenAI::Live::SessionRejectParams.dump_request(params)
161
+ @client.request(
162
+ method: :post,
163
+ path: ["live/sessions/%1$s/reject", session_id],
164
+ body: parsed,
165
+ model: NilClass,
166
+ security: {bearer_auth: true},
167
+ options: options
168
+ )
169
+ end
170
+
171
+ # @api private
172
+ #
173
+ # @param client [OpenAI::Client]
174
+ def initialize(client:)
175
+ @client = client
176
+ end
177
+ end
178
+ end
179
+ end
180
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Live
6
+ class Sideband
7
+ # @api private
8
+ #
9
+ # @param client [OpenAI::Client]
10
+ def initialize(client:)
11
+ @client = client
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Live
6
+ # @return [OpenAI::Resources::Live::Sideband]
7
+ attr_reader :sideband
8
+
9
+ # @return [OpenAI::Resources::Live::Forks]
10
+ attr_reader :forks
11
+
12
+ # @return [OpenAI::Resources::Live::Sessions]
13
+ attr_reader :sessions
14
+
15
+ # Create a Live WebRTC session. Start with the
16
+ # [Live prompting guide](https://developers.openai.com/api/docs/guides/live-prompting).
17
+ #
18
+ # @overload create(session:, transport:, request_options: {})
19
+ #
20
+ # @param session [OpenAI::Models::Live::MediaSessionConfig]
21
+ # Startup configuration for the Live session.
22
+ #
23
+ # @param transport [OpenAI::Models::Live::LiveCreateParams::Transport]
24
+ # WebRTC transport with the browser's SDP offer.
25
+ #
26
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
27
+ #
28
+ # @return [OpenAI::Models::Live::LiveCreateResponse]
29
+ #
30
+ # @see OpenAI::Models::Live::LiveCreateParams
31
+ def create(params)
32
+ parsed, options = OpenAI::Live::LiveCreateParams.dump_request(params)
33
+ @client.request(
34
+ method: :post,
35
+ path: "live/sessions",
36
+ body: parsed,
37
+ model: OpenAI::Models::Live::LiveCreateResponse,
38
+ security: {bearer_auth: true},
39
+ options: options
40
+ )
41
+ end
42
+
43
+ # @api private
44
+ #
45
+ # @param client [OpenAI::Client]
46
+ def initialize(client:)
47
+ @client = client
48
+ @sideband = OpenAI::Resources::Live::Sideband.new(client: client)
49
+ @forks = OpenAI::Resources::Live::Forks.new(client: client)
50
+ @sessions = OpenAI::Resources::Live::Sessions.new(client: client)
51
+ end
52
+ end
53
+ end
54
+ end
@@ -9,7 +9,7 @@ module OpenAI
9
9
  # @param headers [Hash] The webhook headers
10
10
  # @param webhook_secret [String, nil] The webhook secret (optional, will use client webhook secret or ENV["OPENAI_WEBHOOK_SECRET"] if not provided)
11
11
  #
12
- # @return [OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent]
12
+ # @return [OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent]
13
13
  #
14
14
  # @raise [ArgumentError] if signature verification fails
15
15
  def unwrap(
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.88.0"
4
+ VERSION = "0.89.0"
5
5
  end