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,68 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type session_closed_event =
5
+ {
6
+ event_id: String,
7
+ reason: OpenAI::Models::Live::SessionClosedEvent::reason,
8
+ session: OpenAI::Live::SessionResource,
9
+ ?type: :"session.closed",
10
+ usage: OpenAI::Live::SessionUsage,
11
+ ?client_event_id: String
12
+ }
13
+
14
+ class SessionClosedEvent < OpenAI::Internal::Type::BaseModel
15
+ attr_accessor event_id: String
16
+
17
+ attr_accessor reason: OpenAI::Models::Live::SessionClosedEvent::reason
18
+
19
+ attr_accessor session: OpenAI::Live::SessionResource
20
+
21
+ attr_accessor type: :"session.closed"
22
+
23
+ attr_accessor usage: OpenAI::Live::SessionUsage
24
+
25
+ attr_reader client_event_id: String?
26
+
27
+ def client_event_id=: (String) -> String
28
+
29
+ def initialize: (
30
+ event_id: String,
31
+ reason: OpenAI::Models::Live::SessionClosedEvent::reason,
32
+ session: OpenAI::Live::SessionResource,
33
+ usage: OpenAI::Live::SessionUsage,
34
+ ?client_event_id: String,
35
+ ?type: :"session.closed"
36
+ ) -> void
37
+
38
+ def to_hash: -> {
39
+ event_id: String,
40
+ reason: OpenAI::Models::Live::SessionClosedEvent::reason,
41
+ session: OpenAI::Live::SessionResource,
42
+ ?type: :"session.closed",
43
+ usage: OpenAI::Live::SessionUsage,
44
+ ?client_event_id: String
45
+ }
46
+
47
+ type reason =
48
+ :close_requested
49
+ | :expired
50
+ | :content
51
+ | :remote_hangup
52
+ | :connection_lost
53
+
54
+ module Reason
55
+ extend OpenAI::Internal::Type::Union
56
+
57
+ def self?.variants: -> ::Array[OpenAI::Models::Live::SessionClosedEvent::reason]
58
+
59
+ CLOSE_REQUESTED: :close_requested
60
+ EXPIRED: :expired
61
+ CONTENT: :content
62
+ REMOTE_HANGUP: :remote_hangup
63
+ CONNECTION_LOST: :connection_lost
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,168 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type session_config =
5
+ {
6
+ model: OpenAI::Models::Live::SessionConfig::model,
7
+ ?audio: OpenAI::Live::SessionConfig::Audio,
8
+ ?client: OpenAI::Live::ClientConfig,
9
+ ?delegation: OpenAI::Models::Live::SessionConfig::delegation?,
10
+ ?input: ::Array[OpenAI::Models::Live::initial_item],
11
+ ?instructions: String?,
12
+ ?store: bool
13
+ }
14
+
15
+ class SessionConfig < OpenAI::Internal::Type::BaseModel
16
+ attr_accessor model: OpenAI::Models::Live::SessionConfig::model
17
+
18
+ attr_reader audio: OpenAI::Live::SessionConfig::Audio?
19
+
20
+ def audio=: (
21
+ OpenAI::Live::SessionConfig::Audio
22
+ ) -> OpenAI::Live::SessionConfig::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::SessionConfig::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::SessionConfig::model,
44
+ ?audio: OpenAI::Live::SessionConfig::Audio,
45
+ ?client: OpenAI::Live::ClientConfig,
46
+ ?delegation: OpenAI::Models::Live::SessionConfig::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::SessionConfig::model,
54
+ ?audio: OpenAI::Live::SessionConfig::Audio,
55
+ ?client: OpenAI::Live::ClientConfig,
56
+ ?delegation: OpenAI::Models::Live::SessionConfig::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::SessionConfig::model]
68
+
69
+ GPT_LIVE_1: :"gpt-live-1"
70
+ end
71
+
72
+ type audio =
73
+ {
74
+ ?format_: OpenAI::Models::Live::audio_format,
75
+ ?output: OpenAI::Live::SessionConfig::Audio::Output
76
+ }
77
+
78
+ class Audio < OpenAI::Internal::Type::BaseModel
79
+ attr_reader format_: OpenAI::Models::Live::audio_format?
80
+
81
+ def format_=: (
82
+ OpenAI::Models::Live::audio_format
83
+ ) -> OpenAI::Models::Live::audio_format
84
+
85
+ attr_reader output: OpenAI::Live::SessionConfig::Audio::Output?
86
+
87
+ def output=: (
88
+ OpenAI::Live::SessionConfig::Audio::Output
89
+ ) -> OpenAI::Live::SessionConfig::Audio::Output
90
+
91
+ def initialize: (
92
+ ?format_: OpenAI::Models::Live::audio_format,
93
+ ?output: OpenAI::Live::SessionConfig::Audio::Output
94
+ ) -> void
95
+
96
+ def to_hash: -> {
97
+ ?format_: OpenAI::Models::Live::audio_format,
98
+ ?output: OpenAI::Live::SessionConfig::Audio::Output
99
+ }
100
+
101
+ type output =
102
+ {
103
+ ?voice: OpenAI::Models::Live::SessionConfig::Audio::Output::voice
104
+ }
105
+
106
+ class Output < OpenAI::Internal::Type::BaseModel
107
+ attr_reader voice: OpenAI::Models::Live::SessionConfig::Audio::Output::voice?
108
+
109
+ def voice=: (
110
+ OpenAI::Models::Live::SessionConfig::Audio::Output::voice
111
+ ) -> OpenAI::Models::Live::SessionConfig::Audio::Output::voice
112
+
113
+ def initialize: (
114
+ ?voice: OpenAI::Models::Live::SessionConfig::Audio::Output::voice
115
+ ) -> void
116
+
117
+ def to_hash: -> {
118
+ ?voice: OpenAI::Models::Live::SessionConfig::Audio::Output::voice
119
+ }
120
+
121
+ type voice =
122
+ String
123
+ | OpenAI::Models::Live::built_in_voice
124
+ | OpenAI::Live::CustomVoice
125
+
126
+ module Voice
127
+ extend OpenAI::Internal::Type::Union
128
+
129
+ def self?.variants: -> ::Array[OpenAI::Models::Live::SessionConfig::Audio::Output::voice]
130
+ end
131
+ end
132
+ end
133
+
134
+ type delegation =
135
+ OpenAI::Live::ClientDelegation
136
+ | OpenAI::Live::SessionConfig::Delegation::Responses
137
+
138
+ module Delegation
139
+ extend OpenAI::Internal::Type::Union
140
+
141
+ type responses =
142
+ {
143
+ responses: OpenAI::Live::ResponsesDelegationConfig,
144
+ ?type: :responses
145
+ }
146
+
147
+ class Responses < OpenAI::Internal::Type::BaseModel
148
+ attr_accessor responses: OpenAI::Live::ResponsesDelegationConfig
149
+
150
+ attr_accessor type: :responses
151
+
152
+ def initialize: (
153
+ responses: OpenAI::Live::ResponsesDelegationConfig,
154
+ ?type: :responses
155
+ ) -> void
156
+
157
+ def to_hash: -> {
158
+ responses: OpenAI::Live::ResponsesDelegationConfig,
159
+ ?type: :responses
160
+ }
161
+ end
162
+
163
+ def self?.variants: -> ::Array[OpenAI::Models::Live::SessionConfig::delegation]
164
+ end
165
+ end
166
+ end
167
+ end
168
+ end
@@ -0,0 +1,25 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type session_download_recording_params =
5
+ { session_id: String, ?request_options: OpenAI::request_opts }
6
+
7
+ class SessionDownloadRecordingParams < OpenAI::Internal::Type::BaseModel
8
+ extend OpenAI::Internal::Type::RequestParameters::Converter
9
+ include OpenAI::Internal::Type::RequestParameters
10
+
11
+ attr_accessor session_id: String
12
+
13
+ def initialize: (
14
+ session_id: String,
15
+ ?request_options: OpenAI::request_opts
16
+ ) -> void
17
+
18
+ def to_hash: -> {
19
+ session_id: String,
20
+ ?request_options: OpenAI::RequestOptions
21
+ }
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,54 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type session_fork_params =
5
+ {
6
+ session_id: String,
7
+ transport: OpenAI::Live::SessionForkParams::Transport,
8
+ ?session: OpenAI::Live::MediaSessionForkConfig,
9
+ ?request_options: OpenAI::request_opts
10
+ }
11
+
12
+ class SessionForkParams < OpenAI::Internal::Type::BaseModel
13
+ extend OpenAI::Internal::Type::RequestParameters::Converter
14
+ include OpenAI::Internal::Type::RequestParameters
15
+
16
+ attr_accessor session_id: String
17
+
18
+ attr_accessor transport: OpenAI::Live::SessionForkParams::Transport
19
+
20
+ attr_reader session: OpenAI::Live::MediaSessionForkConfig?
21
+
22
+ def session=: (
23
+ OpenAI::Live::MediaSessionForkConfig
24
+ ) -> OpenAI::Live::MediaSessionForkConfig
25
+
26
+ def initialize: (
27
+ session_id: String,
28
+ transport: OpenAI::Live::SessionForkParams::Transport,
29
+ ?session: OpenAI::Live::MediaSessionForkConfig,
30
+ ?request_options: OpenAI::request_opts
31
+ ) -> void
32
+
33
+ def to_hash: -> {
34
+ session_id: String,
35
+ transport: OpenAI::Live::SessionForkParams::Transport,
36
+ ?session: OpenAI::Live::MediaSessionForkConfig,
37
+ ?request_options: OpenAI::RequestOptions
38
+ }
39
+
40
+ type transport = { sdp: String, ?type: :webrtc }
41
+
42
+ class Transport < OpenAI::Internal::Type::BaseModel
43
+ attr_accessor sdp: String
44
+
45
+ attr_accessor type: :webrtc
46
+
47
+ def initialize: (sdp: String, ?type: :webrtc) -> void
48
+
49
+ def to_hash: -> { sdp: String, ?type: :webrtc }
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,49 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type session_fork_response =
5
+ {
6
+ session: OpenAI::Models::Live::SessionForkResponse::Session,
7
+ transport: OpenAI::Models::Live::SessionForkResponse::Transport
8
+ }
9
+
10
+ class SessionForkResponse < OpenAI::Internal::Type::BaseModel
11
+ attr_accessor session: OpenAI::Models::Live::SessionForkResponse::Session
12
+
13
+ attr_accessor transport: OpenAI::Models::Live::SessionForkResponse::Transport
14
+
15
+ def initialize: (
16
+ session: OpenAI::Models::Live::SessionForkResponse::Session,
17
+ transport: OpenAI::Models::Live::SessionForkResponse::Transport
18
+ ) -> void
19
+
20
+ def to_hash: -> {
21
+ session: OpenAI::Models::Live::SessionForkResponse::Session,
22
+ transport: OpenAI::Models::Live::SessionForkResponse::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,25 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type session_hangup_params =
5
+ { session_id: String, ?request_options: OpenAI::request_opts }
6
+
7
+ class SessionHangupParams < OpenAI::Internal::Type::BaseModel
8
+ extend OpenAI::Internal::Type::RequestParameters::Converter
9
+ include OpenAI::Internal::Type::RequestParameters
10
+
11
+ attr_accessor session_id: String
12
+
13
+ def initialize: (
14
+ session_id: String,
15
+ ?request_options: OpenAI::request_opts
16
+ ) -> void
17
+
18
+ def to_hash: -> {
19
+ session_id: String,
20
+ ?request_options: OpenAI::RequestOptions
21
+ }
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,33 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type session_refer_params =
5
+ {
6
+ session_id: String,
7
+ target_uri: String,
8
+ ?request_options: OpenAI::request_opts
9
+ }
10
+
11
+ class SessionReferParams < OpenAI::Internal::Type::BaseModel
12
+ extend OpenAI::Internal::Type::RequestParameters::Converter
13
+ include OpenAI::Internal::Type::RequestParameters
14
+
15
+ attr_accessor session_id: String
16
+
17
+ attr_accessor target_uri: String
18
+
19
+ def initialize: (
20
+ session_id: String,
21
+ target_uri: String,
22
+ ?request_options: OpenAI::request_opts
23
+ ) -> void
24
+
25
+ def to_hash: -> {
26
+ session_id: String,
27
+ target_uri: String,
28
+ ?request_options: OpenAI::RequestOptions
29
+ }
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,33 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type session_reject_params =
5
+ {
6
+ session_id: String,
7
+ status_code: Integer,
8
+ ?request_options: OpenAI::request_opts
9
+ }
10
+
11
+ class SessionRejectParams < OpenAI::Internal::Type::BaseModel
12
+ extend OpenAI::Internal::Type::RequestParameters::Converter
13
+ include OpenAI::Internal::Type::RequestParameters
14
+
15
+ attr_accessor session_id: String
16
+
17
+ attr_accessor status_code: Integer
18
+
19
+ def initialize: (
20
+ session_id: String,
21
+ status_code: Integer,
22
+ ?request_options: OpenAI::request_opts
23
+ ) -> void
24
+
25
+ def to_hash: -> {
26
+ session_id: String,
27
+ status_code: Integer,
28
+ ?request_options: OpenAI::RequestOptions
29
+ }
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,183 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type session_resource =
5
+ {
6
+ id: String,
7
+ expires_at: Integer,
8
+ model: OpenAI::Models::Live::SessionResource::model,
9
+ ?status: :active,
10
+ ?audio: OpenAI::Live::SessionResource::Audio,
11
+ ?client: OpenAI::Live::ClientConfig,
12
+ ?delegation: OpenAI::Models::Live::SessionResource::delegation?,
13
+ ?input: ::Array[OpenAI::Models::Live::initial_item],
14
+ ?instructions: String?,
15
+ ?store: bool
16
+ }
17
+
18
+ class SessionResource < OpenAI::Internal::Type::BaseModel
19
+ attr_accessor id: String
20
+
21
+ attr_accessor expires_at: Integer
22
+
23
+ attr_accessor model: OpenAI::Models::Live::SessionResource::model
24
+
25
+ attr_accessor status: :active
26
+
27
+ attr_reader audio: OpenAI::Live::SessionResource::Audio?
28
+
29
+ def audio=: (
30
+ OpenAI::Live::SessionResource::Audio
31
+ ) -> OpenAI::Live::SessionResource::Audio
32
+
33
+ attr_reader client: OpenAI::Live::ClientConfig?
34
+
35
+ def client=: (OpenAI::Live::ClientConfig) -> OpenAI::Live::ClientConfig
36
+
37
+ attr_accessor delegation: OpenAI::Models::Live::SessionResource::delegation?
38
+
39
+ attr_reader input: ::Array[OpenAI::Models::Live::initial_item]?
40
+
41
+ def input=: (
42
+ ::Array[OpenAI::Models::Live::initial_item]
43
+ ) -> ::Array[OpenAI::Models::Live::initial_item]
44
+
45
+ attr_accessor instructions: String?
46
+
47
+ attr_reader store: bool?
48
+
49
+ def store=: (bool) -> bool
50
+
51
+ def initialize: (
52
+ id: String,
53
+ expires_at: Integer,
54
+ model: OpenAI::Models::Live::SessionResource::model,
55
+ ?audio: OpenAI::Live::SessionResource::Audio,
56
+ ?client: OpenAI::Live::ClientConfig,
57
+ ?delegation: OpenAI::Models::Live::SessionResource::delegation?,
58
+ ?input: ::Array[OpenAI::Models::Live::initial_item],
59
+ ?instructions: String?,
60
+ ?store: bool,
61
+ ?status: :active
62
+ ) -> void
63
+
64
+ def to_hash: -> {
65
+ id: String,
66
+ expires_at: Integer,
67
+ model: OpenAI::Models::Live::SessionResource::model,
68
+ ?status: :active,
69
+ ?audio: OpenAI::Live::SessionResource::Audio,
70
+ ?client: OpenAI::Live::ClientConfig,
71
+ ?delegation: OpenAI::Models::Live::SessionResource::delegation?,
72
+ ?input: ::Array[OpenAI::Models::Live::initial_item],
73
+ ?instructions: String?,
74
+ ?store: bool
75
+ }
76
+
77
+ type model = String | :"gpt-live-1"
78
+
79
+ module Model
80
+ extend OpenAI::Internal::Type::Union
81
+
82
+ def self?.variants: -> ::Array[OpenAI::Models::Live::SessionResource::model]
83
+
84
+ GPT_LIVE_1: :"gpt-live-1"
85
+ end
86
+
87
+ type audio =
88
+ {
89
+ ?format_: OpenAI::Models::Live::audio_format,
90
+ ?output: OpenAI::Live::SessionResource::Audio::Output
91
+ }
92
+
93
+ class Audio < OpenAI::Internal::Type::BaseModel
94
+ attr_reader format_: OpenAI::Models::Live::audio_format?
95
+
96
+ def format_=: (
97
+ OpenAI::Models::Live::audio_format
98
+ ) -> OpenAI::Models::Live::audio_format
99
+
100
+ attr_reader output: OpenAI::Live::SessionResource::Audio::Output?
101
+
102
+ def output=: (
103
+ OpenAI::Live::SessionResource::Audio::Output
104
+ ) -> OpenAI::Live::SessionResource::Audio::Output
105
+
106
+ def initialize: (
107
+ ?format_: OpenAI::Models::Live::audio_format,
108
+ ?output: OpenAI::Live::SessionResource::Audio::Output
109
+ ) -> void
110
+
111
+ def to_hash: -> {
112
+ ?format_: OpenAI::Models::Live::audio_format,
113
+ ?output: OpenAI::Live::SessionResource::Audio::Output
114
+ }
115
+
116
+ type output =
117
+ {
118
+ ?voice: OpenAI::Models::Live::SessionResource::Audio::Output::voice
119
+ }
120
+
121
+ class Output < OpenAI::Internal::Type::BaseModel
122
+ attr_reader voice: OpenAI::Models::Live::SessionResource::Audio::Output::voice?
123
+
124
+ def voice=: (
125
+ OpenAI::Models::Live::SessionResource::Audio::Output::voice
126
+ ) -> OpenAI::Models::Live::SessionResource::Audio::Output::voice
127
+
128
+ def initialize: (
129
+ ?voice: OpenAI::Models::Live::SessionResource::Audio::Output::voice
130
+ ) -> void
131
+
132
+ def to_hash: -> {
133
+ ?voice: OpenAI::Models::Live::SessionResource::Audio::Output::voice
134
+ }
135
+
136
+ type voice =
137
+ String
138
+ | OpenAI::Models::Live::built_in_voice
139
+ | OpenAI::Live::CustomVoice
140
+
141
+ module Voice
142
+ extend OpenAI::Internal::Type::Union
143
+
144
+ def self?.variants: -> ::Array[OpenAI::Models::Live::SessionResource::Audio::Output::voice]
145
+ end
146
+ end
147
+ end
148
+
149
+ type delegation =
150
+ OpenAI::Live::ClientDelegation
151
+ | OpenAI::Live::SessionResource::Delegation::Responses
152
+
153
+ module Delegation
154
+ extend OpenAI::Internal::Type::Union
155
+
156
+ type responses =
157
+ {
158
+ responses: OpenAI::Live::ResponsesDelegationConfig,
159
+ ?type: :responses
160
+ }
161
+
162
+ class Responses < OpenAI::Internal::Type::BaseModel
163
+ attr_accessor responses: OpenAI::Live::ResponsesDelegationConfig
164
+
165
+ attr_accessor type: :responses
166
+
167
+ def initialize: (
168
+ responses: OpenAI::Live::ResponsesDelegationConfig,
169
+ ?type: :responses
170
+ ) -> void
171
+
172
+ def to_hash: -> {
173
+ responses: OpenAI::Live::ResponsesDelegationConfig,
174
+ ?type: :responses
175
+ }
176
+ end
177
+
178
+ def self?.variants: -> ::Array[OpenAI::Models::Live::SessionResource::delegation]
179
+ end
180
+ end
181
+ end
182
+ end
183
+ end
@@ -0,0 +1,32 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type session_start_event =
5
+ {
6
+ session: OpenAI::Live::SessionConfig,
7
+ ?type: :"session.start",
8
+ ?event_id: String?
9
+ }
10
+
11
+ class SessionStartEvent < OpenAI::Internal::Type::BaseModel
12
+ attr_accessor session: OpenAI::Live::SessionConfig
13
+
14
+ attr_accessor type: :"session.start"
15
+
16
+ attr_accessor event_id: String?
17
+
18
+ def initialize: (
19
+ session: OpenAI::Live::SessionConfig,
20
+ ?event_id: String?,
21
+ ?type: :"session.start"
22
+ ) -> void
23
+
24
+ def to_hash: -> {
25
+ session: OpenAI::Live::SessionConfig,
26
+ ?type: :"session.start",
27
+ ?event_id: String?
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end