openai 0.114.0 → 0.115.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/README.md +17 -2
  4. data/docs/architecture/security-model.md +11 -16
  5. data/examples/responses/websocket_workflows.rb +78 -3
  6. data/lib/openai/helpers/chat/tool_runner.rb +1 -1
  7. data/lib/openai/helpers/live/websocket.rb +31 -0
  8. data/lib/openai/helpers/realtime/connection.rb +33 -0
  9. data/lib/openai/helpers/realtime/connection_manager.rb +1 -0
  10. data/lib/openai/helpers/realtime/conversation_item_variant_resolver.rb +5 -0
  11. data/lib/openai/helpers/realtime/recovery.rb +5 -1
  12. data/lib/openai/helpers/realtime/translation.rb +5 -0
  13. data/lib/openai/helpers/realtime/transports/async_websocket.rb +19 -0
  14. data/lib/openai/helpers/responses_websocket/connection.rb +53 -15
  15. data/lib/openai/helpers/responses_websocket/connection_manager.rb +1 -0
  16. data/lib/openai/helpers/responses_websocket/connection_resources.rb +1 -1
  17. data/lib/openai/helpers/structured_output/response_parser.rb +1 -0
  18. data/lib/openai/helpers/structured_output.rb +58 -0
  19. data/lib/openai/helpers/websocket/connection_manager.rb +11 -0
  20. data/lib/openai/helpers/websocket/resource.rb +1 -0
  21. data/lib/openai/helpers/websocket/typed_connection.rb +1 -0
  22. data/lib/openai/internal/type/array_of.rb +1 -1
  23. data/lib/openai/internal/type/hash_of.rb +1 -1
  24. data/lib/openai/internal/type/request_parameters.rb +2 -1
  25. data/lib/openai/internal/type/union.rb +18 -6
  26. data/lib/openai/models/admin/organization/external_key.rb +169 -0
  27. data/lib/openai/models/admin/organization/external_key_create_params.rb +311 -0
  28. data/lib/openai/models/admin/organization/external_key_delete_params.rb +24 -0
  29. data/lib/openai/models/admin/organization/external_key_list_params.rb +69 -0
  30. data/lib/openai/models/admin/organization/external_key_retrieve_params.rb +24 -0
  31. data/lib/openai/models/admin/organization/external_key_validate_params.rb +24 -0
  32. data/lib/openai/models/admin/organization/external_key_validate_response.rb +20 -0
  33. data/lib/openai/models/audio/speech_model.rb +12 -0
  34. data/lib/openai/models/audio_model.rb +15 -0
  35. data/lib/openai/models/beta/agent.rb +49 -1
  36. data/lib/openai/models/beta/agent_create_params.rb +51 -1
  37. data/lib/openai/models/beta/agent_session.rb +75 -2
  38. data/lib/openai/models/beta/agent_update_params.rb +62 -1
  39. data/lib/openai/models/beta/agents/session_create_params.rb +94 -2
  40. data/lib/openai/models/beta/agents/session_list_params.rb +16 -1
  41. data/lib/openai/models/beta/agents/session_update_params.rb +50 -5
  42. data/lib/openai/models/beta/assistant_update_params.rb +18 -0
  43. data/lib/openai/models/beta/beta_response.rb +224 -1
  44. data/lib/openai/models/beta/beta_response_configuration_update_item.rb +64 -3
  45. data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +64 -4
  46. data/lib/openai/models/beta/beta_response_input_item.rb +2 -3
  47. data/lib/openai/models/beta/beta_response_item.rb +2 -2
  48. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +6 -6
  49. data/lib/openai/models/beta/beta_responses_client_event.rb +20 -1
  50. data/lib/openai/models/beta/beta_tool.rb +6 -6
  51. data/lib/openai/models/beta/response_compact_params.rb +6 -0
  52. data/lib/openai/models/beta/response_create_params.rb +6 -0
  53. data/lib/openai/models/chat_model.rb +6 -0
  54. data/lib/openai/models/conversations/conversation_item.rb +2 -2
  55. data/lib/openai/models/image_edit_params.rb +46 -25
  56. data/lib/openai/models/live/fork_server_event.rb +43 -3
  57. data/lib/openai/models/live/server_event.rb +43 -3
  58. data/lib/openai/models/live/sideband_client_event.rb +40 -1
  59. data/lib/openai/models/live/sideband_server_event.rb +43 -3
  60. data/lib/openai/models/realtime/audio_transcription.rb +15 -0
  61. data/lib/openai/models/realtime/conversation_item_added.rb +2 -2
  62. data/lib/openai/models/realtime/conversation_item_create_event.rb +2 -2
  63. data/lib/openai/models/realtime/conversation_item_created_event.rb +2 -2
  64. data/lib/openai/models/realtime/conversation_item_done.rb +2 -2
  65. data/lib/openai/models/realtime/realtime_response.rb +2 -2
  66. data/lib/openai/models/realtime/realtime_response_create_params.rb +2 -2
  67. data/lib/openai/models/realtime/realtime_server_event.rb +2 -2
  68. data/lib/openai/models/realtime/realtime_session.rb +18 -0
  69. data/lib/openai/models/realtime/realtime_session_create_request.rb +18 -0
  70. data/lib/openai/models/realtime/realtime_session_create_response.rb +18 -0
  71. data/lib/openai/models/realtime/response_output_item_added_event.rb +2 -2
  72. data/lib/openai/models/realtime/response_output_item_done_event.rb +2 -2
  73. data/lib/openai/models/responses/response.rb +221 -1
  74. data/lib/openai/models/responses/response_compact_params.rb +6 -0
  75. data/lib/openai/models/responses/response_configuration_update_item.rb +50 -3
  76. data/lib/openai/models/responses/response_configuration_update_item_param.rb +50 -4
  77. data/lib/openai/models/responses/response_input_item.rb +2 -3
  78. data/lib/openai/models/responses/response_item.rb +2 -2
  79. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +6 -6
  80. data/lib/openai/models/responses/responses_client_event.rb +14 -1
  81. data/lib/openai/models/responses/tool.rb +6 -6
  82. data/lib/openai/net_http_client.rb +6 -0
  83. data/lib/openai/providers/vertex.rb +0 -10
  84. data/lib/openai/resources/admin/organization/external_keys.rb +132 -0
  85. data/lib/openai/resources/admin/organization.rb +4 -0
  86. data/lib/openai/resources/audio/speech.rb +8 -0
  87. data/lib/openai/resources/audio/translations.rb +8 -0
  88. data/lib/openai/resources/beta/agents/sessions.rb +22 -6
  89. data/lib/openai/resources/beta/agents.rb +17 -2
  90. data/lib/openai/resources/images.rb +36 -18
  91. data/lib/openai/version.rb +1 -1
  92. data/lib/openai.rb +8 -0
  93. data/rbi/openai/helpers/live/websocket.rbi +1 -12
  94. data/rbi/openai/helpers/realtime/connection.rbi +5 -0
  95. data/rbi/openai/helpers/realtime/transports/async_websocket.rbi +5 -0
  96. data/rbi/openai/helpers/responses_websocket/connection.rbi +7 -2
  97. data/rbi/openai/helpers/structured_output.rbi +10 -0
  98. data/rbi/openai/internal/type/array_of.rbi +1 -1
  99. data/rbi/openai/internal/type/hash_of.rbi +1 -1
  100. data/rbi/openai/internal/type/union.rbi +5 -0
  101. data/rbi/openai/models/admin/organization/external_key.rbi +301 -0
  102. data/rbi/openai/models/admin/organization/external_key_create_params.rbi +532 -0
  103. data/rbi/openai/models/admin/organization/external_key_delete_params.rbi +57 -0
  104. data/rbi/openai/models/admin/organization/external_key_list_params.rbi +129 -0
  105. data/rbi/openai/models/admin/organization/external_key_retrieve_params.rbi +57 -0
  106. data/rbi/openai/models/admin/organization/external_key_validate_params.rbi +57 -0
  107. data/rbi/openai/models/admin/organization/external_key_validate_response.rbi +50 -0
  108. data/rbi/openai/models/beta/agent.rbi +103 -1
  109. data/rbi/openai/models/beta/agent_create_params.rbi +109 -0
  110. data/rbi/openai/models/beta/agent_session.rbi +136 -3
  111. data/rbi/openai/models/beta/agent_update_params.rbi +120 -0
  112. data/rbi/openai/models/beta/agents/session_create_params.rbi +153 -0
  113. data/rbi/openai/models/beta/agents/session_list_params.rbi +19 -0
  114. data/rbi/openai/models/beta/agents/session_update_params.rbi +94 -6
  115. data/rbi/openai/models/beta/beta_response.rbi +394 -0
  116. data/rbi/openai/models/beta/beta_response_configuration_update_item.rbi +113 -3
  117. data/rbi/openai/models/beta/beta_response_configuration_update_item_param.rbi +125 -4
  118. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +6 -6
  119. data/rbi/openai/models/beta/beta_responses_client_event.rbi +17 -0
  120. data/rbi/openai/models/beta/beta_tool.rbi +6 -6
  121. data/rbi/openai/models/decision_create_params.rbi +4 -1
  122. data/rbi/openai/models/image_edit_params.rbi +49 -24
  123. data/rbi/openai/models/live/fork_server_event.rbi +65 -1
  124. data/rbi/openai/models/live/server_event.rbi +65 -1
  125. data/rbi/openai/models/live/sideband_client_event.rbi +60 -0
  126. data/rbi/openai/models/live/sideband_server_event.rbi +65 -1
  127. data/rbi/openai/models/realtime/conversation_item_added.rbi +6 -3
  128. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +6 -3
  129. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +6 -3
  130. data/rbi/openai/models/realtime/conversation_item_done.rbi +6 -3
  131. data/rbi/openai/models/realtime/realtime_response.rbi +8 -4
  132. data/rbi/openai/models/realtime/realtime_response_create_params.rbi +8 -4
  133. data/rbi/openai/models/realtime/realtime_server_event.rbi +6 -3
  134. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +6 -3
  135. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +6 -3
  136. data/rbi/openai/models/responses/response.rbi +394 -0
  137. data/rbi/openai/models/responses/response_configuration_update_item.rbi +76 -3
  138. data/rbi/openai/models/responses/response_configuration_update_item_param.rbi +74 -4
  139. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +6 -6
  140. data/rbi/openai/models/responses/responses_client_event.rbi +17 -0
  141. data/rbi/openai/models/responses/tool.rbi +6 -6
  142. data/rbi/openai/net_http_client.rbi +5 -0
  143. data/rbi/openai/resources/admin/organization/external_keys.rbi +86 -0
  144. data/rbi/openai/resources/admin/organization.rbi +3 -0
  145. data/rbi/openai/resources/audio/speech.rbi +8 -0
  146. data/rbi/openai/resources/audio/translations.rbi +6 -0
  147. data/rbi/openai/resources/beta/agents/sessions.rbi +18 -2
  148. data/rbi/openai/resources/beta/agents.rbi +15 -0
  149. data/rbi/openai/resources/images.rbi +34 -16
  150. data/rbi/openai/resources/responses.rbi +2 -0
  151. data/realtime.md +6 -0
  152. data/responses-websocket.md +53 -0
  153. data/sig/openai/helpers/live/websocket.rbs +1 -9
  154. data/sig/openai/helpers/realtime/connection.rbs +3 -0
  155. data/sig/openai/helpers/realtime/transports/async_websocket.rbs +3 -0
  156. data/sig/openai/helpers/responses_websocket/connection.rbs +7 -1
  157. data/sig/openai/helpers/structured_output.rbs +9 -0
  158. data/sig/openai/internal/type/union.rbs +4 -0
  159. data/sig/openai/models/admin/organization/external_key.rbs +186 -0
  160. data/sig/openai/models/admin/organization/external_key_create_params.rbs +423 -0
  161. data/sig/openai/models/admin/organization/external_key_delete_params.rbs +27 -0
  162. data/sig/openai/models/admin/organization/external_key_list_params.rbs +81 -0
  163. data/sig/openai/models/admin/organization/external_key_retrieve_params.rbs +27 -0
  164. data/sig/openai/models/admin/organization/external_key_validate_params.rbs +27 -0
  165. data/sig/openai/models/admin/organization/external_key_validate_response.rbs +17 -0
  166. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +72 -2
  167. data/sig/openai/models/audio/speech_create_params.rbs +15 -2
  168. data/sig/openai/models/audio/transcription_create_params.rbs +30 -2
  169. data/sig/openai/models/audio/voice_create_params.rbs +47 -2
  170. data/sig/openai/models/beta/agent.rbs +54 -2
  171. data/sig/openai/models/beta/agent_create_params.rbs +54 -0
  172. data/sig/openai/models/beta/agent_session.rbs +82 -3
  173. data/sig/openai/models/beta/agent_update_params.rbs +64 -0
  174. data/sig/openai/models/beta/agents/session_create_params.rbs +91 -0
  175. data/sig/openai/models/beta/agents/session_list_params.rbs +20 -0
  176. data/sig/openai/models/beta/agents/session_update_params.rbs +48 -6
  177. data/sig/openai/models/beta/assistant_create_params.rbs +5 -2
  178. data/sig/openai/models/beta/beta_response.rbs +223 -0
  179. data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +58 -2
  180. data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +58 -2
  181. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +4 -4
  182. data/sig/openai/models/beta/beta_responses_client_event.rbs +17 -0
  183. data/sig/openai/models/beta/beta_tool.rbs +4 -4
  184. data/sig/openai/models/beta/response_create_params.rbs +5 -2
  185. data/sig/openai/models/beta/responses/input_token_count_params.rbs +10 -2
  186. data/sig/openai/models/beta/thread_create_and_run_params.rbs +11 -5
  187. data/sig/openai/models/beta/thread_create_params.rbs +11 -5
  188. data/sig/openai/models/beta/threads/message_create_params.rbs +6 -3
  189. data/sig/openai/models/beta/threads/run_create_params.rbs +6 -3
  190. data/sig/openai/models/decision_create_params.rbs +27 -2
  191. data/sig/openai/models/eval_create_params.rbs +25 -4
  192. data/sig/openai/models/evals/run_create_params.rbs +52 -8
  193. data/sig/openai/models/image_edit_params.rbs +47 -16
  194. data/sig/openai/models/live/fork_server_event.rbs +39 -0
  195. data/sig/openai/models/live/server_event.rbs +39 -0
  196. data/sig/openai/models/live/session_accept_params.rbs +39 -2
  197. data/sig/openai/models/live/sideband_client_event.rbs +32 -0
  198. data/sig/openai/models/live/sideband_server_event.rbs +39 -0
  199. data/sig/openai/models/realtime/conversation_item.rbs +1 -0
  200. data/sig/openai/models/responses/input_token_count_params.rbs +10 -2
  201. data/sig/openai/models/responses/response.rbs +223 -0
  202. data/sig/openai/models/responses/response_configuration_update_item.rbs +45 -2
  203. data/sig/openai/models/responses/response_configuration_update_item_param.rbs +45 -2
  204. data/sig/openai/models/responses/response_create_params.rbs +5 -2
  205. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +4 -4
  206. data/sig/openai/models/responses/responses_client_event.rbs +17 -0
  207. data/sig/openai/models/responses/tool.rbs +4 -4
  208. data/sig/openai/models/video_edit_params.rbs +11 -2
  209. data/sig/openai/models/video_extend_params.rbs +11 -2
  210. data/sig/openai/net_http_client.rbs +3 -0
  211. data/sig/openai/resources/admin/organization/external_keys.rbs +70 -0
  212. data/sig/openai/resources/admin/organization/external_storage.rbs +23 -1
  213. data/sig/openai/resources/admin/organization.rbs +2 -0
  214. data/sig/openai/resources/audio/speech.rbs +2 -1
  215. data/sig/openai/resources/audio/transcriptions.rbs +14 -2
  216. data/sig/openai/resources/audio/voices.rbs +14 -1
  217. data/sig/openai/resources/beta/agents/sessions.rbs +4 -0
  218. data/sig/openai/resources/beta/agents.rbs +4 -0
  219. data/sig/openai/resources/beta/responses/input_tokens.rbs +2 -1
  220. data/sig/openai/resources/beta/responses.rbs +4 -2
  221. data/sig/openai/resources/decisions.rbs +7 -1
  222. data/sig/openai/resources/images.rbs +2 -0
  223. data/sig/openai/resources/responses/input_tokens.rbs +2 -1
  224. data/sig/openai/resources/responses.rbs +5 -2
  225. data/sig/openai/resources/videos.rbs +2 -2
  226. metadata +43 -1
@@ -173,8 +173,10 @@ module OpenAI
173
173
 
174
174
  # The tools to add this file to.
175
175
  def tools=: (
176
- ::Array[OpenAI::Models::Beta::ThreadCreateParams::Message::Attachment::tool]
177
- ) -> ::Array[OpenAI::Models::Beta::ThreadCreateParams::Message::Attachment::tool]
176
+ ::Array[OpenAI::Models::Beta::ThreadCreateParams::Message::Attachment::tool
177
+ | { type: :file_search }]
178
+ ) -> ::Array[(OpenAI::Models::Beta::ThreadCreateParams::Message::Attachment::tool
179
+ | { type: :file_search })]
178
180
 
179
181
  # @param file_id
180
182
  # The ID of the file to attach to the message.
@@ -182,7 +184,8 @@ module OpenAI
182
184
  # The tools to add this file to.
183
185
  def initialize: (
184
186
  ?file_id: String,
185
- ?tools: ::Array[OpenAI::Models::Beta::ThreadCreateParams::Message::Attachment::tool]
187
+ ?tools: ::Array[OpenAI::Models::Beta::ThreadCreateParams::Message::Attachment::tool
188
+ | { type: :file_search }]
186
189
  ) -> void
187
190
 
188
191
  def to_hash: -> {
@@ -335,7 +338,9 @@ module OpenAI
335
338
  # strategy.
336
339
  def chunking_strategy=: (
337
340
  OpenAI::Models::Beta::ThreadCreateParams::ToolResources::FileSearch::VectorStore::chunking_strategy
338
- ) -> OpenAI::Models::Beta::ThreadCreateParams::ToolResources::FileSearch::VectorStore::chunking_strategy
341
+ | { type: :auto }
342
+ ) -> (OpenAI::Models::Beta::ThreadCreateParams::ToolResources::FileSearch::VectorStore::chunking_strategy
343
+ | { type: :auto })
339
344
 
340
345
  # A list of [file](https://developers.openai.com/api/reference/resources/files)
341
346
  # IDs to add to the vector store. For vector stores created before Nov 2025, there
@@ -373,7 +378,8 @@ module OpenAI
373
378
  # Keys are strings with a maximum length of 64 characters. Values are strings with
374
379
  # a maximum length of 512 characters.
375
380
  def initialize: (
376
- ?chunking_strategy: OpenAI::Models::Beta::ThreadCreateParams::ToolResources::FileSearch::VectorStore::chunking_strategy,
381
+ ?chunking_strategy: OpenAI::Models::Beta::ThreadCreateParams::ToolResources::FileSearch::VectorStore::chunking_strategy
382
+ | { type: :auto },
377
383
  ?file_ids: ::Array[String],
378
384
  ?metadata: OpenAI::Models::metadata?
379
385
  ) -> void
@@ -117,8 +117,10 @@ module OpenAI
117
117
 
118
118
  # The tools to add this file to.
119
119
  def tools=: (
120
- ::Array[OpenAI::Models::Beta::Threads::MessageCreateParams::Attachment::tool]
121
- ) -> ::Array[OpenAI::Models::Beta::Threads::MessageCreateParams::Attachment::tool]
120
+ ::Array[OpenAI::Models::Beta::Threads::MessageCreateParams::Attachment::tool
121
+ | { type: :file_search }]
122
+ ) -> ::Array[(OpenAI::Models::Beta::Threads::MessageCreateParams::Attachment::tool
123
+ | { type: :file_search })]
122
124
 
123
125
  # @param file_id
124
126
  # The ID of the file to attach to the message.
@@ -126,7 +128,8 @@ module OpenAI
126
128
  # The tools to add this file to.
127
129
  def initialize: (
128
130
  ?file_id: String,
129
- ?tools: ::Array[OpenAI::Models::Beta::Threads::MessageCreateParams::Attachment::tool]
131
+ ?tools: ::Array[OpenAI::Models::Beta::Threads::MessageCreateParams::Attachment::tool
132
+ | { type: :file_search }]
130
133
  ) -> void
131
134
 
132
135
  def to_hash: -> {
@@ -418,8 +418,10 @@ module OpenAI
418
418
 
419
419
  # The tools to add this file to.
420
420
  def tools=: (
421
- ::Array[OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Attachment::tool]
422
- ) -> ::Array[OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Attachment::tool]
421
+ ::Array[OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Attachment::tool
422
+ | { type: :file_search }]
423
+ ) -> ::Array[(OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Attachment::tool
424
+ | { type: :file_search })]
423
425
 
424
426
  # @param file_id
425
427
  # The ID of the file to attach to the message.
@@ -427,7 +429,8 @@ module OpenAI
427
429
  # The tools to add this file to.
428
430
  def initialize: (
429
431
  ?file_id: String,
430
- ?tools: ::Array[OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Attachment::tool]
432
+ ?tools: ::Array[OpenAI::Models::Beta::Threads::RunCreateParams::AdditionalMessage::Attachment::tool
433
+ | { type: :file_search }]
431
434
  ) -> void
432
435
 
433
436
  def to_hash: -> {
@@ -26,7 +26,25 @@ module OpenAI
26
26
 
27
27
  # Ask 1–400 questions about the input. Each question can be a predicate, choice,
28
28
  # or score. Answers come back in the same order.
29
- attr_accessor questions: ::Array[OpenAI::Models::DecisionCreateParams::question]
29
+ attr_reader questions: ::Array[OpenAI::Models::DecisionCreateParams::question]
30
+
31
+ # Ask 1–400 questions about the input. Each question can be a predicate, choice,
32
+ # or score. Answers come back in the same order.
33
+ def questions=: (
34
+ ::Array[OpenAI::Models::DecisionCreateParams::question
35
+ | {
36
+ instructions: String
37
+ | ::Array[OpenAI::Models::decision_question_input_part],
38
+ type: :predicate,
39
+ ?name: String
40
+ }]
41
+ ) -> ::Array[(OpenAI::Models::DecisionCreateParams::question
42
+ | {
43
+ instructions: (String
44
+ | ::Array[OpenAI::Models::decision_question_input_part]),
45
+ type: :predicate,
46
+ ?name: String
47
+ })]
30
48
 
31
49
  # Partition prompt cache reuse by caller-provided key.
32
50
  attr_accessor prompt_cache_key: String?
@@ -74,7 +92,13 @@ module OpenAI
74
92
  def initialize: (
75
93
  input: OpenAI::Models::DecisionCreateParams::input,
76
94
  model: String,
77
- questions: ::Array[OpenAI::Models::DecisionCreateParams::question],
95
+ questions: ::Array[OpenAI::Models::DecisionCreateParams::question
96
+ | {
97
+ instructions: String
98
+ | ::Array[OpenAI::Models::decision_question_input_part],
99
+ type: :predicate,
100
+ ?name: String
101
+ }],
78
102
  ?prompt_cache_key: String?,
79
103
  ?prompt_cache_options: (OpenAI::DecisionCreateParams::PromptCacheOptions
80
104
  | OpenAI::Models::DecisionCreateParams::prompt_cache_options)?,
@@ -102,6 +126,7 @@ module OpenAI
102
126
 
103
127
  type union_member1 =
104
128
  OpenAI::Models::decision_input_message
129
+ | OpenAI::DecisionCreateParams::Input::UnionMember1::DecisionInputUserMessage
105
130
  | OpenAI::DecisionCreateParams::Input::UnionMember1::DecisionInputDeveloperMessage
106
131
  | OpenAI::DecisionCreateParams::Input::UnionMember1::DecisionInputSystemMessage
107
132
  | OpenAI::DecisionCreateParams::Input::UnionMember1::DecisionInputAssistantMessage
@@ -195,7 +195,15 @@ module OpenAI
195
195
  class LabelModel < OpenAI::Internal::Type::BaseModel
196
196
  # A list of chat messages forming the prompt or context. May include variable
197
197
  # references to the `item` namespace, ie {{item.name}}.
198
- attr_accessor input: ::Array[OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::input]
198
+ attr_reader input: ::Array[OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::input]
199
+
200
+ # A list of chat messages forming the prompt or context. May include variable
201
+ # references to the `item` namespace, ie {{item.name}}.
202
+ def input=: (
203
+ ::Array[OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::input
204
+ | { content: String, role: String }]
205
+ ) -> ::Array[(OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::input
206
+ | { content: String, role: String })]
199
207
 
200
208
  # The labels to classify to each item in the evaluation.
201
209
  attr_accessor labels: ::Array[String]
@@ -226,7 +234,8 @@ module OpenAI
226
234
  # @param type
227
235
  # The object type, which is always `label_model`.
228
236
  def initialize: (
229
- input: ::Array[OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::input],
237
+ input: ::Array[OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::input
238
+ | { content: String, role: String }],
230
239
  labels: ::Array[String],
231
240
  model: String,
232
241
  name: String,
@@ -278,7 +287,17 @@ module OpenAI
278
287
  class EvalItem < OpenAI::Internal::Type::BaseModel
279
288
  # Inputs to the model - can contain template strings. Supports text, output text,
280
289
  # input images, and input audio, either as a single item or an array of items.
281
- attr_accessor content: OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::content
290
+ attr_reader content: OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::content
291
+
292
+ # Inputs to the model - can contain template strings. Supports text, output text,
293
+ # input images, and input audio, either as a single item or an array of items.
294
+ def content=: (
295
+ OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::content
296
+ | { text: String, type: :output_text }
297
+ | { image_url: String, type: :input_image, ?detail: String }
298
+ ) -> (OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::content
299
+ | { text: String, type: :output_text }
300
+ | { image_url: String, type: :input_image, ?detail: String })
282
301
 
283
302
  # The role of the message input. One of `user`, `assistant`, `system`, or
284
303
  # `developer`.
@@ -301,7 +320,9 @@ module OpenAI
301
320
  # @param type
302
321
  # The type of the message input. Always `message`.
303
322
  def initialize: (
304
- content: OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::content,
323
+ content: OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::content
324
+ | { text: String, type: :output_text }
325
+ | { image_url: String, type: :input_image, ?detail: String },
305
326
  role: OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::role,
306
327
  ?type: OpenAI::Models::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::type_
307
328
  ) -> void
@@ -79,7 +79,14 @@ module OpenAI
79
79
 
80
80
  class CreateEvalResponsesRunDataSource < OpenAI::Internal::Type::BaseModel
81
81
  # Determines what populates the `item` namespace in this run's data source.
82
- attr_accessor source: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::source
82
+ attr_reader source: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::source
83
+
84
+ # Determines what populates the `item` namespace in this run's data source.
85
+ def source=: (
86
+ OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::source
87
+ | { id: String, type: :file_id }
88
+ ) -> (OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::source
89
+ | { id: String, type: :file_id })
83
90
 
84
91
  # The type of run data source. Always `responses`.
85
92
  attr_accessor type: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::type_
@@ -96,7 +103,9 @@ module OpenAI
96
103
  # namespace.
97
104
  def input_messages=: (
98
105
  OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::input_messages
99
- ) -> OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::input_messages
106
+ | { item_reference: String, type: :item_reference }
107
+ ) -> (OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::input_messages
108
+ | { item_reference: String, type: :item_reference })
100
109
 
101
110
  # The name of the model to use for generating completions (e.g. "o3-mini").
102
111
  attr_reader model: String?
@@ -122,9 +131,11 @@ module OpenAI
122
131
  # @param model
123
132
  # The name of the model to use for generating completions (e.g. "o3-mini").
124
133
  def initialize: (
125
- source: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::source,
134
+ source: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::source
135
+ | { id: String, type: :file_id },
126
136
  type: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::type_,
127
- ?input_messages: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::input_messages,
137
+ ?input_messages: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::input_messages
138
+ | { item_reference: String, type: :item_reference },
128
139
  ?model: String,
129
140
  ?sampling_params: OpenAI::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::SamplingParams
130
141
  ) -> void
@@ -361,7 +372,15 @@ module OpenAI
361
372
  class Template < OpenAI::Internal::Type::BaseModel
362
373
  # A list of chat messages forming the prompt or context. May include variable
363
374
  # references to the `item` namespace, ie {{item.name}}.
364
- attr_accessor template: ::Array[OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::template]
375
+ attr_reader template: ::Array[OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::template]
376
+
377
+ # A list of chat messages forming the prompt or context. May include variable
378
+ # references to the `item` namespace, ie {{item.name}}.
379
+ def template=: (
380
+ ::Array[OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::template
381
+ | { content: String, role: String }]
382
+ ) -> ::Array[(OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::template
383
+ | { content: String, role: String })]
365
384
 
366
385
  # The type of input messages. Always `template`.
367
386
  attr_accessor type: :template
@@ -372,7 +391,8 @@ module OpenAI
372
391
  # @param type
373
392
  # The type of input messages. Always `template`.
374
393
  def initialize: (
375
- template: ::Array[OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::template],
394
+ template: ::Array[OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::template
395
+ | { content: String, role: String }],
376
396
  ?type: :template
377
397
  ) -> void
378
398
 
@@ -416,7 +436,25 @@ module OpenAI
416
436
  class EvalItem < OpenAI::Internal::Type::BaseModel
417
437
  # Inputs to the model - can contain template strings. Supports text, output text,
418
438
  # input images, and input audio, either as a single item or an array of items.
419
- attr_accessor content: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::content
439
+ attr_reader content: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::content
440
+
441
+ # Inputs to the model - can contain template strings. Supports text, output text,
442
+ # input images, and input audio, either as a single item or an array of items.
443
+ def content=: (
444
+ OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::content
445
+ | { text: String, type: :output_text }
446
+ | {
447
+ image_url: String,
448
+ type: :input_image,
449
+ ?detail: String
450
+ }
451
+ ) -> (OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::content
452
+ | { text: String, type: :output_text }
453
+ | {
454
+ image_url: String,
455
+ type: :input_image,
456
+ ?detail: String
457
+ })
420
458
 
421
459
  # The role of the message input. One of `user`, `assistant`, `system`, or
422
460
  # `developer`.
@@ -439,7 +477,13 @@ module OpenAI
439
477
  # @param type
440
478
  # The type of the message input. Always `message`.
441
479
  def initialize: (
442
- content: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::content,
480
+ content: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::content
481
+ | { text: String, type: :output_text }
482
+ | {
483
+ image_url: String,
484
+ type: :input_image,
485
+ ?detail: String
486
+ },
443
487
  role: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::role,
444
488
  ?type: OpenAI::Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::type_
445
489
  ) -> void
@@ -6,6 +6,7 @@ module OpenAI
6
6
  prompt: String,
7
7
  ?background: OpenAI::Models::ImageEditParams::background?,
8
8
  ?input_fidelity: OpenAI::Models::ImageEditParams::input_fidelity?,
9
+ ?markup: OpenAI::Internal::file_input,
9
10
  ?mask: OpenAI::Internal::file_input,
10
11
  ?model: OpenAI::Models::ImageEditParams::model?,
11
12
  ?n: Integer?,
@@ -26,12 +27,12 @@ module OpenAI
26
27
 
27
28
  # The image(s) to edit. Must be a supported image file or an array of images.
28
29
  #
29
- # For the GPT image models (`gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`,
30
- # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
31
- # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
32
- # `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`), each image should
33
- # be a `png`, `webp`, or `jpg` file less than 50MB. You can provide up to 16
34
- # images.
30
+ # For the GPT image models (`gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
31
+ # `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
32
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, and
33
+ # `gpt-image-2.5-flare-2026-09-08`), each image should be a `png`, `webp`, or
34
+ # `jpg` file less than 50MB. You can provide up to 16 images.
35
+ # `chatgpt-image-latest` follows the same input constraints as GPT image models.
35
36
  #
36
37
  # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
37
38
  # metadata. Use `OpenAI::FilePart` when you need to override the filename or
@@ -55,10 +56,30 @@ module OpenAI
55
56
 
56
57
  # Control how much effort the model will exert to match the style and features,
57
58
  # especially facial features, of input images. Supports `high` and `low` on
58
- # `gpt-image-1` and `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For
59
- # `gpt-image-2`, omit this parameter. Defaults to `low` on supported models.
59
+ # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
60
+ # this parameter. Defaults to `low` on supported models.
60
61
  attr_accessor input_fidelity: OpenAI::Models::ImageEditParams::input_fidelity?
61
62
 
63
+ # A transparent PNG overlaid on the first image to guide the edit. Must match that
64
+ # image's dimensions after orientation and contain transparent pixels. Supports
65
+ # GPT Image 2.5 and 2.6. Cannot be combined with mask.
66
+ #
67
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
68
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
69
+ # content type.
70
+ attr_reader markup: OpenAI::Internal::file_input?
71
+
72
+ # A transparent PNG overlaid on the first image to guide the edit. Must match that
73
+ # image's dimensions after orientation and contain transparent pixels. Supports
74
+ # GPT Image 2.5 and 2.6. Cannot be combined with mask.
75
+ #
76
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
77
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
78
+ # content type.
79
+ def markup=: (
80
+ OpenAI::Internal::file_input
81
+ ) -> OpenAI::Internal::file_input
82
+
62
83
  # An additional image whose fully transparent areas (e.g. where alpha is zero)
63
84
  # indicate where `image` should be edited. If there are multiple images provided,
64
85
  # the mask will be applied on the first image. Must be a valid PNG file, less than
@@ -156,12 +177,12 @@ module OpenAI
156
177
  # @param image
157
178
  # The image(s) to edit. Must be a supported image file or an array of images.
158
179
  #
159
- # For the GPT image models (`gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`,
160
- # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
161
- # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
162
- # `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`), each image should
163
- # be a `png`, `webp`, or `jpg` file less than 50MB. You can provide up to 16
164
- # images.
180
+ # For the GPT image models (`gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
181
+ # `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
182
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, and
183
+ # `gpt-image-2.5-flare-2026-09-08`), each image should be a `png`, `webp`, or
184
+ # `jpg` file less than 50MB. You can provide up to 16 images.
185
+ # `chatgpt-image-latest` follows the same input constraints as GPT image models.
165
186
  #
166
187
  # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
167
188
  # metadata. Use `OpenAI::FilePart` when you need to override the filename or
@@ -182,8 +203,16 @@ module OpenAI
182
203
  # @param input_fidelity
183
204
  # Control how much effort the model will exert to match the style and features,
184
205
  # especially facial features, of input images. Supports `high` and `low` on
185
- # `gpt-image-1` and `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For
186
- # `gpt-image-2`, omit this parameter. Defaults to `low` on supported models.
206
+ # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
207
+ # this parameter. Defaults to `low` on supported models.
208
+ # @param markup
209
+ # A transparent PNG overlaid on the first image to guide the edit. Must match that
210
+ # image's dimensions after orientation and contain transparent pixels. Supports
211
+ # GPT Image 2.5 and 2.6. Cannot be combined with mask.
212
+ #
213
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
214
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
215
+ # content type.
187
216
  # @param mask
188
217
  # An additional image whose fully transparent areas (e.g. where alpha is zero)
189
218
  # indicate where `image` should be edited. If there are multiple images provided,
@@ -256,6 +285,7 @@ module OpenAI
256
285
  prompt: String,
257
286
  ?background: OpenAI::Models::ImageEditParams::background?,
258
287
  ?input_fidelity: OpenAI::Models::ImageEditParams::input_fidelity?,
288
+ ?markup: OpenAI::Internal::file_input,
259
289
  ?mask: OpenAI::Internal::file_input,
260
290
  ?model: OpenAI::Models::ImageEditParams::model?,
261
291
  ?n: Integer?,
@@ -275,6 +305,7 @@ module OpenAI
275
305
  prompt: String,
276
306
  ?background: OpenAI::Models::ImageEditParams::background?,
277
307
  ?input_fidelity: OpenAI::Models::ImageEditParams::input_fidelity?,
308
+ ?markup: OpenAI::Internal::file_input,
278
309
  ?mask: OpenAI::Internal::file_input,
279
310
  ?model: OpenAI::Models::ImageEditParams::model?,
280
311
  ?n: Integer?,
@@ -26,6 +26,7 @@ module OpenAI
26
26
  | OpenAI::Live::InfoEvent
27
27
  | OpenAI::Live::ForkServerEvent::TransportDtmfReceived
28
28
  | OpenAI::Live::ForkServerEvent::TransportDtmfSend
29
+ | OpenAI::Live::ForkServerEvent::TransportDtmfSent
29
30
  | OpenAI::Live::ForkServerEvent::TransportRinging
30
31
  | OpenAI::Live::ForkServerEvent::TransportAnswered
31
32
  | OpenAI::Live::ForkServerEvent::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
 
@@ -26,6 +26,7 @@ module OpenAI
26
26
  | OpenAI::Live::InfoEvent
27
27
  | OpenAI::Live::ServerEvent::TransportDtmfReceived
28
28
  | OpenAI::Live::ServerEvent::TransportDtmfSend
29
+ | OpenAI::Live::ServerEvent::TransportDtmfSent
29
30
  | OpenAI::Live::ServerEvent::TransportRinging
30
31
  | OpenAI::Live::ServerEvent::TransportAnswered
31
32
  | OpenAI::Live::ServerEvent::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
 
@@ -67,7 +67,34 @@ module OpenAI
67
67
  # Who handles tasks delegated by the Live model. Omitted or null selects your
68
68
  # application; use `responses` or `decisions` to delegate to the corresponding
69
69
  # API.
70
- attr_accessor delegation: OpenAI::Models::Live::SessionAcceptParams::Session::delegation?
70
+ attr_reader delegation: OpenAI::Models::Live::SessionAcceptParams::Session::delegation?
71
+
72
+ # Who handles tasks delegated by the Live model. Omitted or null selects your
73
+ # application; use `responses` or `decisions` to delegate to the corresponding
74
+ # API.
75
+ def delegation=: (
76
+ (OpenAI::Models::Live::SessionAcceptParams::Session::delegation
77
+ | {
78
+ responses: OpenAI::Live::ResponsesDelegationConfig,
79
+ type: :responses,
80
+ ?acknowledgement_delay_ms: Integer
81
+ }
82
+ | {
83
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
84
+ type: :decisions,
85
+ ?acknowledgement_delay_ms: Integer
86
+ })?
87
+ ) -> (OpenAI::Models::Live::SessionAcceptParams::Session::delegation
88
+ | {
89
+ responses: OpenAI::Live::ResponsesDelegationConfig,
90
+ type: :responses,
91
+ ?acknowledgement_delay_ms: Integer
92
+ }
93
+ | {
94
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
95
+ type: :decisions,
96
+ ?acknowledgement_delay_ms: Integer
97
+ })?
71
98
 
72
99
  # Ordered text-only history supplied before startup. Supports developer, user, and
73
100
  # assistant messages with one text part each; at most 128 messages and a
@@ -147,7 +174,17 @@ module OpenAI
147
174
  def initialize: (
148
175
  model: OpenAI::Models::Live::SessionAcceptParams::Session::model,
149
176
  ?audio: OpenAI::Live::SessionAcceptParams::Session::Audio,
150
- ?delegation: OpenAI::Models::Live::SessionAcceptParams::Session::delegation?,
177
+ ?delegation: (OpenAI::Models::Live::SessionAcceptParams::Session::delegation
178
+ | {
179
+ responses: OpenAI::Live::ResponsesDelegationConfig,
180
+ type: :responses,
181
+ ?acknowledgement_delay_ms: Integer
182
+ }
183
+ | {
184
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
185
+ type: :decisions,
186
+ ?acknowledgement_delay_ms: Integer
187
+ })?,
151
188
  ?input: ::Array[OpenAI::Models::Live::initial_item],
152
189
  ?instructions: String?,
153
190
  ?store: bool,
@@ -6,6 +6,7 @@ module OpenAI
6
6
  | OpenAI::Live::InputAudioMuteEvent
7
7
  | OpenAI::Live::InputAudioUnmuteEvent
8
8
  | OpenAI::Live::OutputAudioFixturePlayEvent
9
+ | OpenAI::Live::SidebandClientEvent::TransportDtmfSend
9
10
  | OpenAI::Live::InstructionsAppendEvent
10
11
  | OpenAI::Live::ThinkingAppendEvent
11
12
  | OpenAI::Live::CommentaryAppendEvent
@@ -19,6 +20,37 @@ module OpenAI
19
20
  module SidebandClientEvent
20
21
  extend OpenAI::Internal::Type::Union
21
22
 
23
+ type transport_dtmf_send =
24
+ { event: String, ?type: :"transport.dtmf.send", ?event_id: String? }
25
+
26
+ class TransportDtmfSend < OpenAI::Internal::Type::BaseModel
27
+ # The DTMF key to send: one of `0`–`9`, `A`–`D`, `*`, or `#`.
28
+ attr_accessor event: String
29
+
30
+ attr_accessor type: :"transport.dtmf.send"
31
+
32
+ # Optional client identifier for correlating this command with a server event's
33
+ # client_event_id or error.client_event_id.
34
+ attr_accessor event_id: String?
35
+
36
+ # @param event
37
+ # The DTMF key to send: one of `0`–`9`, `A`–`D`, `*`, or `#`.
38
+ # @param event_id
39
+ # Optional client identifier for correlating this command with a server event's
40
+ # client_event_id or error.client_event_id.
41
+ def initialize: (
42
+ event: String,
43
+ ?event_id: String?,
44
+ ?type: :"transport.dtmf.send"
45
+ ) -> void
46
+
47
+ def to_hash: -> {
48
+ event: String,
49
+ ?type: :"transport.dtmf.send",
50
+ ?event_id: String?
51
+ }
52
+ end
53
+
22
54
  def self?.variants: -> ::Array[OpenAI::Models::Live::sideband_client_event]
23
55
  end
24
56
  end