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
@@ -0,0 +1,49 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type live_create_response =
5
+ {
6
+ session: OpenAI::Models::Live::LiveCreateResponse::Session,
7
+ transport: OpenAI::Models::Live::LiveCreateResponse::Transport
8
+ }
9
+
10
+ class LiveCreateResponse < OpenAI::Internal::Type::BaseModel
11
+ attr_accessor session: OpenAI::Models::Live::LiveCreateResponse::Session
12
+
13
+ attr_accessor transport: OpenAI::Models::Live::LiveCreateResponse::Transport
14
+
15
+ def initialize: (
16
+ session: OpenAI::Models::Live::LiveCreateResponse::Session,
17
+ transport: OpenAI::Models::Live::LiveCreateResponse::Transport
18
+ ) -> void
19
+
20
+ def to_hash: -> {
21
+ session: OpenAI::Models::Live::LiveCreateResponse::Session,
22
+ transport: OpenAI::Models::Live::LiveCreateResponse::Transport
23
+ }
24
+
25
+ type session = { id: String }
26
+
27
+ class Session < OpenAI::Internal::Type::BaseModel
28
+ attr_accessor id: String
29
+
30
+ def initialize: (id: String) -> void
31
+
32
+ def to_hash: -> { id: String }
33
+ end
34
+
35
+ type transport = { sdp: String, ?type: :webrtc }
36
+
37
+ class Transport < OpenAI::Internal::Type::BaseModel
38
+ attr_accessor sdp: String
39
+
40
+ attr_accessor type: :webrtc
41
+
42
+ def initialize: (sdp: String, ?type: :webrtc) -> void
43
+
44
+ def to_hash: -> { sdp: String, ?type: :webrtc }
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,157 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type media_session_config =
5
+ {
6
+ model: OpenAI::Models::Live::MediaSessionConfig::model,
7
+ ?audio: OpenAI::Live::MediaSessionConfig::Audio,
8
+ ?client: OpenAI::Live::ClientConfig,
9
+ ?delegation: OpenAI::Models::Live::MediaSessionConfig::delegation?,
10
+ ?input: ::Array[OpenAI::Models::Live::initial_item],
11
+ ?instructions: String?,
12
+ ?store: bool
13
+ }
14
+
15
+ class MediaSessionConfig < OpenAI::Internal::Type::BaseModel
16
+ attr_accessor model: OpenAI::Models::Live::MediaSessionConfig::model
17
+
18
+ attr_reader audio: OpenAI::Live::MediaSessionConfig::Audio?
19
+
20
+ def audio=: (
21
+ OpenAI::Live::MediaSessionConfig::Audio
22
+ ) -> OpenAI::Live::MediaSessionConfig::Audio
23
+
24
+ attr_reader client: OpenAI::Live::ClientConfig?
25
+
26
+ def client=: (OpenAI::Live::ClientConfig) -> OpenAI::Live::ClientConfig
27
+
28
+ attr_accessor delegation: OpenAI::Models::Live::MediaSessionConfig::delegation?
29
+
30
+ attr_reader input: ::Array[OpenAI::Models::Live::initial_item]?
31
+
32
+ def input=: (
33
+ ::Array[OpenAI::Models::Live::initial_item]
34
+ ) -> ::Array[OpenAI::Models::Live::initial_item]
35
+
36
+ attr_accessor instructions: String?
37
+
38
+ attr_reader store: bool?
39
+
40
+ def store=: (bool) -> bool
41
+
42
+ def initialize: (
43
+ model: OpenAI::Models::Live::MediaSessionConfig::model,
44
+ ?audio: OpenAI::Live::MediaSessionConfig::Audio,
45
+ ?client: OpenAI::Live::ClientConfig,
46
+ ?delegation: OpenAI::Models::Live::MediaSessionConfig::delegation?,
47
+ ?input: ::Array[OpenAI::Models::Live::initial_item],
48
+ ?instructions: String?,
49
+ ?store: bool
50
+ ) -> void
51
+
52
+ def to_hash: -> {
53
+ model: OpenAI::Models::Live::MediaSessionConfig::model,
54
+ ?audio: OpenAI::Live::MediaSessionConfig::Audio,
55
+ ?client: OpenAI::Live::ClientConfig,
56
+ ?delegation: OpenAI::Models::Live::MediaSessionConfig::delegation?,
57
+ ?input: ::Array[OpenAI::Models::Live::initial_item],
58
+ ?instructions: String?,
59
+ ?store: bool
60
+ }
61
+
62
+ type model = String | :"gpt-live-1"
63
+
64
+ module Model
65
+ extend OpenAI::Internal::Type::Union
66
+
67
+ def self?.variants: -> ::Array[OpenAI::Models::Live::MediaSessionConfig::model]
68
+
69
+ GPT_LIVE_1: :"gpt-live-1"
70
+ end
71
+
72
+ type audio =
73
+ { ?output: OpenAI::Live::MediaSessionConfig::Audio::Output }
74
+
75
+ class Audio < OpenAI::Internal::Type::BaseModel
76
+ attr_reader output: OpenAI::Live::MediaSessionConfig::Audio::Output?
77
+
78
+ def output=: (
79
+ OpenAI::Live::MediaSessionConfig::Audio::Output
80
+ ) -> OpenAI::Live::MediaSessionConfig::Audio::Output
81
+
82
+ def initialize: (
83
+ ?output: OpenAI::Live::MediaSessionConfig::Audio::Output
84
+ ) -> void
85
+
86
+ def to_hash: -> {
87
+ ?output: OpenAI::Live::MediaSessionConfig::Audio::Output
88
+ }
89
+
90
+ type output =
91
+ {
92
+ ?voice: OpenAI::Models::Live::MediaSessionConfig::Audio::Output::voice
93
+ }
94
+
95
+ class Output < OpenAI::Internal::Type::BaseModel
96
+ attr_reader voice: OpenAI::Models::Live::MediaSessionConfig::Audio::Output::voice?
97
+
98
+ def voice=: (
99
+ OpenAI::Models::Live::MediaSessionConfig::Audio::Output::voice
100
+ ) -> OpenAI::Models::Live::MediaSessionConfig::Audio::Output::voice
101
+
102
+ def initialize: (
103
+ ?voice: OpenAI::Models::Live::MediaSessionConfig::Audio::Output::voice
104
+ ) -> void
105
+
106
+ def to_hash: -> {
107
+ ?voice: OpenAI::Models::Live::MediaSessionConfig::Audio::Output::voice
108
+ }
109
+
110
+ type voice =
111
+ String
112
+ | OpenAI::Models::Live::built_in_voice
113
+ | OpenAI::Live::CustomVoice
114
+
115
+ module Voice
116
+ extend OpenAI::Internal::Type::Union
117
+
118
+ def self?.variants: -> ::Array[OpenAI::Models::Live::MediaSessionConfig::Audio::Output::voice]
119
+ end
120
+ end
121
+ end
122
+
123
+ type delegation =
124
+ OpenAI::Live::ClientDelegation
125
+ | OpenAI::Live::MediaSessionConfig::Delegation::Responses
126
+
127
+ module Delegation
128
+ extend OpenAI::Internal::Type::Union
129
+
130
+ type responses =
131
+ {
132
+ responses: OpenAI::Live::ResponsesDelegationConfig,
133
+ ?type: :responses
134
+ }
135
+
136
+ class Responses < OpenAI::Internal::Type::BaseModel
137
+ attr_accessor responses: OpenAI::Live::ResponsesDelegationConfig
138
+
139
+ attr_accessor type: :responses
140
+
141
+ def initialize: (
142
+ responses: OpenAI::Live::ResponsesDelegationConfig,
143
+ ?type: :responses
144
+ ) -> void
145
+
146
+ def to_hash: -> {
147
+ responses: OpenAI::Live::ResponsesDelegationConfig,
148
+ ?type: :responses
149
+ }
150
+ end
151
+
152
+ def self?.variants: -> ::Array[OpenAI::Models::Live::MediaSessionConfig::delegation]
153
+ end
154
+ end
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,66 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type media_session_fork_config =
5
+ {
6
+ ?client: OpenAI::Live::ClientConfig,
7
+ ?delegation: OpenAI::Live::MediaSessionForkConfig::Delegation,
8
+ ?store: bool
9
+ }
10
+
11
+ class MediaSessionForkConfig < OpenAI::Internal::Type::BaseModel
12
+ attr_reader client: OpenAI::Live::ClientConfig?
13
+
14
+ def client=: (OpenAI::Live::ClientConfig) -> OpenAI::Live::ClientConfig
15
+
16
+ attr_reader delegation: OpenAI::Live::MediaSessionForkConfig::Delegation?
17
+
18
+ def delegation=: (
19
+ OpenAI::Live::MediaSessionForkConfig::Delegation
20
+ ) -> OpenAI::Live::MediaSessionForkConfig::Delegation
21
+
22
+ attr_reader store: bool?
23
+
24
+ def store=: (bool) -> bool
25
+
26
+ def initialize: (
27
+ ?client: OpenAI::Live::ClientConfig,
28
+ ?delegation: OpenAI::Live::MediaSessionForkConfig::Delegation,
29
+ ?store: bool
30
+ ) -> void
31
+
32
+ def to_hash: -> {
33
+ ?client: OpenAI::Live::ClientConfig,
34
+ ?delegation: OpenAI::Live::MediaSessionForkConfig::Delegation,
35
+ ?store: bool
36
+ }
37
+
38
+ type delegation =
39
+ {
40
+ ?type: :responses,
41
+ ?responses: OpenAI::Live::ResponsesDelegationUpdateConfig
42
+ }
43
+
44
+ class Delegation < OpenAI::Internal::Type::BaseModel
45
+ attr_accessor type: :responses
46
+
47
+ attr_reader responses: OpenAI::Live::ResponsesDelegationUpdateConfig?
48
+
49
+ def responses=: (
50
+ OpenAI::Live::ResponsesDelegationUpdateConfig
51
+ ) -> OpenAI::Live::ResponsesDelegationUpdateConfig
52
+
53
+ def initialize: (
54
+ ?responses: OpenAI::Live::ResponsesDelegationUpdateConfig,
55
+ ?type: :responses
56
+ ) -> void
57
+
58
+ def to_hash: -> {
59
+ ?type: :responses,
60
+ ?responses: OpenAI::Live::ResponsesDelegationUpdateConfig
61
+ }
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,41 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type output_audio_delta_event =
5
+ {
6
+ delta: String,
7
+ ?type: :"session.output_audio.delta",
8
+ ?end_ms: Integer,
9
+ ?start_ms: Integer
10
+ }
11
+
12
+ class OutputAudioDeltaEvent < OpenAI::Internal::Type::BaseModel
13
+ attr_accessor delta: String
14
+
15
+ attr_accessor type: :"session.output_audio.delta"
16
+
17
+ attr_reader end_ms: Integer?
18
+
19
+ def end_ms=: (Integer) -> Integer
20
+
21
+ attr_reader start_ms: Integer?
22
+
23
+ def start_ms=: (Integer) -> Integer
24
+
25
+ def initialize: (
26
+ delta: String,
27
+ ?end_ms: Integer,
28
+ ?start_ms: Integer,
29
+ ?type: :"session.output_audio.delta"
30
+ ) -> void
31
+
32
+ def to_hash: -> {
33
+ delta: String,
34
+ ?type: :"session.output_audio.delta",
35
+ ?end_ms: Integer,
36
+ ?start_ms: Integer
37
+ }
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,49 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type output_transcript_delta_event =
5
+ {
6
+ delta: String,
7
+ end_ms: Integer,
8
+ event_id: String,
9
+ start_ms: Integer,
10
+ ?type: :"session.output_transcript.delta",
11
+ ?client_event_id: String
12
+ }
13
+
14
+ class OutputTranscriptDeltaEvent < OpenAI::Internal::Type::BaseModel
15
+ attr_accessor delta: String
16
+
17
+ attr_accessor end_ms: Integer
18
+
19
+ attr_accessor event_id: String
20
+
21
+ attr_accessor start_ms: Integer
22
+
23
+ attr_accessor type: :"session.output_transcript.delta"
24
+
25
+ attr_reader client_event_id: String?
26
+
27
+ def client_event_id=: (String) -> String
28
+
29
+ def initialize: (
30
+ delta: String,
31
+ end_ms: Integer,
32
+ event_id: String,
33
+ start_ms: Integer,
34
+ ?client_event_id: String,
35
+ ?type: :"session.output_transcript.delta"
36
+ ) -> void
37
+
38
+ def to_hash: -> {
39
+ delta: String,
40
+ end_ms: Integer,
41
+ event_id: String,
42
+ start_ms: Integer,
43
+ ?type: :"session.output_transcript.delta",
44
+ ?client_event_id: String
45
+ }
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,18 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type response_create_event =
5
+ { ?type: :"response.create", ?event_id: String? }
6
+
7
+ class ResponseCreateEvent < OpenAI::Internal::Type::BaseModel
8
+ attr_accessor type: :"response.create"
9
+
10
+ attr_accessor event_id: String?
11
+
12
+ def initialize: (?event_id: String?, ?type: :"response.create") -> void
13
+
14
+ def to_hash: -> { ?type: :"response.create", ?event_id: String? }
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,44 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type response_event =
5
+ {
6
+ event: ::Hash[Symbol, top],
7
+ event_id: String,
8
+ ?type: :"response.event",
9
+ ?client_event_id: String,
10
+ ?delegation_id: String?
11
+ }
12
+
13
+ class ResponseEvent < OpenAI::Internal::Type::BaseModel
14
+ attr_accessor event: ::Hash[Symbol, top]
15
+
16
+ attr_accessor event_id: String
17
+
18
+ attr_accessor type: :"response.event"
19
+
20
+ attr_reader client_event_id: String?
21
+
22
+ def client_event_id=: (String) -> String
23
+
24
+ attr_accessor delegation_id: String?
25
+
26
+ def initialize: (
27
+ event: ::Hash[Symbol, top],
28
+ event_id: String,
29
+ ?client_event_id: String,
30
+ ?delegation_id: String?,
31
+ ?type: :"response.event"
32
+ ) -> void
33
+
34
+ def to_hash: -> {
35
+ event: ::Hash[Symbol, top],
36
+ event_id: String,
37
+ ?type: :"response.event",
38
+ ?client_event_id: String,
39
+ ?delegation_id: String?
40
+ }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,32 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type response_item_create_event =
5
+ {
6
+ item: OpenAI::Models::Responses::response_input_item,
7
+ ?type: :"response.item.create",
8
+ ?event_id: String?
9
+ }
10
+
11
+ class ResponseItemCreateEvent < OpenAI::Internal::Type::BaseModel
12
+ attr_accessor item: OpenAI::Models::Responses::response_input_item
13
+
14
+ attr_accessor type: :"response.item.create"
15
+
16
+ attr_accessor event_id: String?
17
+
18
+ def initialize: (
19
+ item: OpenAI::Models::Responses::response_input_item,
20
+ ?event_id: String?,
21
+ ?type: :"response.item.create"
22
+ ) -> void
23
+
24
+ def to_hash: -> {
25
+ item: OpenAI::Models::Responses::response_input_item,
26
+ ?type: :"response.item.create",
27
+ ?event_id: String?
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,244 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type responses_delegation_config =
5
+ {
6
+ model: String,
7
+ ?instructions: String?,
8
+ ?max_output_tokens: Integer?,
9
+ ?parallel_tool_calls: bool?,
10
+ ?reasoning: OpenAI::Live::ResponsesDelegationConfig::Reasoning?,
11
+ ?service_tier: OpenAI::Models::Live::ResponsesDelegationConfig::service_tier?,
12
+ ?text: OpenAI::Live::ResponsesDelegationConfig::Text?,
13
+ ?tool_choice: OpenAI::Models::Live::ResponsesDelegationConfig::tool_choice,
14
+ ?tools: ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::tool]
15
+ }
16
+
17
+ class ResponsesDelegationConfig < OpenAI::Internal::Type::BaseModel
18
+ attr_accessor model: String
19
+
20
+ attr_accessor instructions: String?
21
+
22
+ attr_accessor max_output_tokens: Integer?
23
+
24
+ attr_accessor parallel_tool_calls: bool?
25
+
26
+ attr_accessor reasoning: OpenAI::Live::ResponsesDelegationConfig::Reasoning?
27
+
28
+ attr_accessor service_tier: OpenAI::Models::Live::ResponsesDelegationConfig::service_tier?
29
+
30
+ attr_accessor text: OpenAI::Live::ResponsesDelegationConfig::Text?
31
+
32
+ attr_reader tool_choice: OpenAI::Models::Live::ResponsesDelegationConfig::tool_choice?
33
+
34
+ def tool_choice=: (
35
+ OpenAI::Models::Live::ResponsesDelegationConfig::tool_choice
36
+ ) -> OpenAI::Models::Live::ResponsesDelegationConfig::tool_choice
37
+
38
+ attr_reader tools: ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::tool]?
39
+
40
+ def tools=: (
41
+ ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::tool]
42
+ ) -> ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::tool]
43
+
44
+ def initialize: (
45
+ model: String,
46
+ ?instructions: String?,
47
+ ?max_output_tokens: Integer?,
48
+ ?parallel_tool_calls: bool?,
49
+ ?reasoning: OpenAI::Live::ResponsesDelegationConfig::Reasoning?,
50
+ ?service_tier: OpenAI::Models::Live::ResponsesDelegationConfig::service_tier?,
51
+ ?text: OpenAI::Live::ResponsesDelegationConfig::Text?,
52
+ ?tool_choice: OpenAI::Models::Live::ResponsesDelegationConfig::tool_choice,
53
+ ?tools: ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::tool]
54
+ ) -> void
55
+
56
+ def to_hash: -> {
57
+ model: String,
58
+ ?instructions: String?,
59
+ ?max_output_tokens: Integer?,
60
+ ?parallel_tool_calls: bool?,
61
+ ?reasoning: OpenAI::Live::ResponsesDelegationConfig::Reasoning?,
62
+ ?service_tier: OpenAI::Models::Live::ResponsesDelegationConfig::service_tier?,
63
+ ?text: OpenAI::Live::ResponsesDelegationConfig::Text?,
64
+ ?tool_choice: OpenAI::Models::Live::ResponsesDelegationConfig::tool_choice,
65
+ ?tools: ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::tool]
66
+ }
67
+
68
+ type reasoning =
69
+ {
70
+ ?effort: OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::effort?,
71
+ ?summary: OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::summary?
72
+ }
73
+
74
+ class Reasoning < OpenAI::Internal::Type::BaseModel
75
+ attr_accessor effort: OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::effort?
76
+
77
+ attr_accessor summary: OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::summary?
78
+
79
+ def initialize: (
80
+ ?effort: OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::effort?,
81
+ ?summary: OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::summary?
82
+ ) -> void
83
+
84
+ def to_hash: -> {
85
+ ?effort: OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::effort?,
86
+ ?summary: OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::summary?
87
+ }
88
+
89
+ type effort = :none | :minimal | :low | :medium | :high | :xhigh
90
+
91
+ module Effort
92
+ extend OpenAI::Internal::Type::Enum
93
+
94
+ NONE: :none
95
+ MINIMAL: :minimal
96
+ LOW: :low
97
+ MEDIUM: :medium
98
+ HIGH: :high
99
+ XHIGH: :xhigh
100
+
101
+ def self?.values: -> ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::effort]
102
+ end
103
+
104
+ type summary = :concise | :detailed | :auto
105
+
106
+ module Summary
107
+ extend OpenAI::Internal::Type::Enum
108
+
109
+ CONCISE: :concise
110
+ DETAILED: :detailed
111
+ AUTO: :auto
112
+
113
+ def self?.values: -> ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::summary]
114
+ end
115
+ end
116
+
117
+ type service_tier =
118
+ :auto
119
+ | :default
120
+ | :fast_tier_temp_pilot
121
+ | :flex
122
+ | :priority
123
+ | :ultrafast
124
+
125
+ module ServiceTier
126
+ extend OpenAI::Internal::Type::Enum
127
+
128
+ AUTO: :auto
129
+ DEFAULT: :default
130
+ FAST_TIER_TEMP_PILOT: :fast_tier_temp_pilot
131
+ FLEX: :flex
132
+ PRIORITY: :priority
133
+ ULTRAFAST: :ultrafast
134
+
135
+ def self?.values: -> ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::service_tier]
136
+ end
137
+
138
+ type text =
139
+ {
140
+ ?verbosity: OpenAI::Models::Live::ResponsesDelegationConfig::Text::verbosity?
141
+ }
142
+
143
+ class Text < OpenAI::Internal::Type::BaseModel
144
+ attr_accessor verbosity: OpenAI::Models::Live::ResponsesDelegationConfig::Text::verbosity?
145
+
146
+ def initialize: (
147
+ ?verbosity: OpenAI::Models::Live::ResponsesDelegationConfig::Text::verbosity?
148
+ ) -> void
149
+
150
+ def to_hash: -> {
151
+ ?verbosity: OpenAI::Models::Live::ResponsesDelegationConfig::Text::verbosity?
152
+ }
153
+
154
+ type verbosity = :low | :medium | :high
155
+
156
+ module Verbosity
157
+ extend OpenAI::Internal::Type::Enum
158
+
159
+ LOW: :low
160
+ MEDIUM: :medium
161
+ HIGH: :high
162
+
163
+ def self?.values: -> ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::Text::verbosity]
164
+ end
165
+ end
166
+
167
+ type tool_choice =
168
+ OpenAI::Models::Live::ResponsesDelegationConfig::ToolChoice::live_tool_choice_enum
169
+ | OpenAI::Live::ResponsesDelegationConfig::ToolChoice::LiveFunctionToolChoiceParam
170
+ | OpenAI::Live::ResponsesDelegationConfig::ToolChoice::LiveMCPToolChoiceParam
171
+
172
+ module ToolChoice
173
+ extend OpenAI::Internal::Type::Union
174
+
175
+ type live_tool_choice_enum = :auto | :none | :required
176
+
177
+ module LiveToolChoiceEnum
178
+ extend OpenAI::Internal::Type::Enum
179
+
180
+ AUTO: :auto
181
+ NONE: :none
182
+ REQUIRED: :required
183
+
184
+ def self?.values: -> ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::ToolChoice::live_tool_choice_enum]
185
+ end
186
+
187
+ type live_function_tool_choice_param =
188
+ { name: String, ?type: :function }
189
+
190
+ class LiveFunctionToolChoiceParam < OpenAI::Internal::Type::BaseModel
191
+ attr_accessor name: String
192
+
193
+ attr_accessor type: :function
194
+
195
+ def initialize: (name: String, ?type: :function) -> void
196
+
197
+ def to_hash: -> { name: String, ?type: :function }
198
+ end
199
+
200
+ type live_mcp_tool_choice_param =
201
+ { name: String, server_label: String, ?type: :mcp }
202
+
203
+ class LiveMCPToolChoiceParam < OpenAI::Internal::Type::BaseModel
204
+ attr_accessor name: String
205
+
206
+ attr_accessor server_label: String
207
+
208
+ attr_accessor type: :mcp
209
+
210
+ def initialize: (
211
+ name: String,
212
+ server_label: String,
213
+ ?type: :mcp
214
+ ) -> void
215
+
216
+ def to_hash: -> { name: String, server_label: String, ?type: :mcp }
217
+ end
218
+
219
+ def self?.variants: -> ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::tool_choice]
220
+ end
221
+
222
+ type tool =
223
+ OpenAI::Live::FunctionTool
224
+ | OpenAI::Live::ResponsesDelegationConfig::Tool::WebSearch
225
+
226
+ module Tool
227
+ extend OpenAI::Internal::Type::Union
228
+
229
+ type web_search = { ?type: :web_search }
230
+
231
+ class WebSearch < OpenAI::Internal::Type::BaseModel
232
+ attr_accessor type: :web_search
233
+
234
+ def initialize: (?type: :web_search) -> void
235
+
236
+ def to_hash: -> { ?type: :web_search }
237
+ end
238
+
239
+ def self?.variants: -> ::Array[OpenAI::Models::Live::ResponsesDelegationConfig::tool]
240
+ end
241
+ end
242
+ end
243
+ end
244
+ end