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,226 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Webhooks
7
+
8
+ class LiveTransportIncomingWebhookEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Webhooks::LiveTransportIncomingWebhookEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The unique ID of the event.
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ # The Unix timestamp (in seconds) of when the event was created.
22
+ sig { returns(Integer) }
23
+ attr_accessor :created_at
24
+
25
+ # Event data payload.
26
+ sig { returns(OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Data) }
27
+ attr_reader :data
28
+
29
+ sig { params(data: OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Data::OrHash).void }
30
+ attr_writer :data
31
+
32
+ # The type of the event. Always `live.transport.incoming`.
33
+ sig { returns(Symbol) }
34
+ attr_accessor :type
35
+
36
+ # The object of the event. Always `event`.
37
+ sig { returns(T.nilable(OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Object::TaggedSymbol)) }
38
+ attr_reader :object
39
+
40
+ sig { params(object: OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Object::OrSymbol).void }
41
+ attr_writer :object
42
+
43
+ # Sent when an incoming API SIP session is available for Live acceptance. The same
44
+ # pending session can also emit `realtime.call.incoming`; the first successful
45
+ # Realtime or Live accept endpoint selects the runtime surface.
46
+ sig do
47
+ params(
48
+
49
+ id: String,
50
+
51
+ created_at: Integer,
52
+
53
+ data: OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Data::OrHash,
54
+
55
+ object: OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Object::OrSymbol,
56
+
57
+ type: Symbol
58
+ )
59
+ .returns(T.attached_class)
60
+ end
61
+ def self.new(
62
+
63
+ # The unique ID of the event.
64
+ id:,
65
+
66
+ # The Unix timestamp (in seconds) of when the event was created.
67
+ created_at:,
68
+
69
+ # Event data payload.
70
+ data:,
71
+
72
+ # The object of the event. Always `event`.
73
+ object: nil,
74
+
75
+ # The type of the event. Always `live.transport.incoming`.
76
+
77
+ type: :"live.transport.incoming"
78
+ )
79
+ end
80
+
81
+ sig do
82
+ override.returns(
83
+ {
84
+ id: String,
85
+ created_at: Integer,
86
+ data: OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Data,
87
+ type: Symbol,
88
+ object: OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Object::TaggedSymbol
89
+ }
90
+ )
91
+ end
92
+ def to_hash
93
+ end
94
+
95
+ class Data < OpenAI::Internal::Type::BaseModel
96
+ OrHash = T.type_alias do
97
+ T.any(
98
+ OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Data,
99
+ OpenAI::Internal::AnyHash
100
+ )
101
+ end
102
+
103
+ # The `live_...` ID of the pending SIP session. Forward this value unchanged when
104
+ # accepting or rejecting the call through the Live API.
105
+ sig { returns(String) }
106
+ attr_accessor :session_id
107
+
108
+ # Headers from the SIP INVITE, excluding SIP authorization headers. Retained
109
+ # names, values, repeated entries, and order are preserved. Treat these values as
110
+ # untrusted call metadata.
111
+ sig { returns(T::Array[OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Data::SipHeader]) }
112
+ attr_accessor :sip_headers
113
+
114
+ # The incoming transport type. Always `sip`.
115
+ sig { returns(Symbol) }
116
+ attr_accessor :type
117
+
118
+ # Event data payload.
119
+ sig do
120
+ params(
121
+
122
+ session_id: String,
123
+
124
+ sip_headers: T::Array[OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Data::SipHeader::OrHash],
125
+
126
+ type: Symbol
127
+ )
128
+ .returns(T.attached_class)
129
+ end
130
+ def self.new(
131
+
132
+ # The `live_...` ID of the pending SIP session. Forward this value unchanged when
133
+ # accepting or rejecting the call through the Live API.
134
+ session_id:,
135
+
136
+ # Headers from the SIP INVITE, excluding SIP authorization headers. Retained
137
+ # names, values, repeated entries, and order are preserved. Treat these values as
138
+ # untrusted call metadata.
139
+ sip_headers:,
140
+
141
+ # The incoming transport type. Always `sip`.
142
+
143
+ type: :sip
144
+ )
145
+ end
146
+
147
+ sig do
148
+ override.returns(
149
+ {
150
+ session_id: String,
151
+ sip_headers: T::Array[OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Data::SipHeader],
152
+ type: Symbol
153
+ }
154
+ )
155
+ end
156
+ def to_hash
157
+ end
158
+
159
+ class SipHeader < OpenAI::Internal::Type::BaseModel
160
+ OrHash = T.type_alias do
161
+ T.any(
162
+ OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Data::SipHeader,
163
+ OpenAI::Internal::AnyHash
164
+ )
165
+ end
166
+
167
+ # Name of the SIP Header.
168
+ sig { returns(String) }
169
+ attr_accessor :name
170
+
171
+ # Value of the SIP Header.
172
+ sig { returns(String) }
173
+ attr_accessor :value
174
+
175
+ # A header from the SIP Invite.
176
+ sig do
177
+ params(
178
+
179
+ name: String,
180
+
181
+ value: String
182
+ )
183
+ .returns(T.attached_class)
184
+ end
185
+ def self.new(
186
+
187
+ # Name of the SIP Header.
188
+ name:,
189
+
190
+ # Value of the SIP Header.
191
+
192
+ value:
193
+ )
194
+ end
195
+
196
+ sig do
197
+ override.returns(
198
+ {name: String, value: String}
199
+ )
200
+ end
201
+ def to_hash
202
+ end
203
+
204
+ end
205
+ end
206
+
207
+ # The object of the event. Always `event`.
208
+ module Object
209
+ extend OpenAI::Internal::Type::Enum
210
+
211
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Object) }
212
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
213
+
214
+ EVENT = T.let(:event, OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Object::TaggedSymbol)
215
+
216
+ sig { override.returns(T::Array[OpenAI::Webhooks::LiveTransportIncomingWebhookEvent::Object::TaggedSymbol]) }
217
+ def self.values
218
+ end
219
+ end
220
+
221
+ end
222
+
223
+ end
224
+
225
+ end
226
+ end
@@ -41,8 +41,8 @@ module OpenAI
41
41
  attr_writer :object
42
42
 
43
43
  # Sent when an incoming API SIP session is available for Realtime acceptance. The
44
- # same pending session can also emit `live.call.incoming`; the first successful
45
- # Realtime or Live accept endpoint selects the runtime surface.
44
+ # same pending session can also emit `live.transport.incoming`; the first
45
+ # successful Realtime or Live accept endpoint selects the runtime surface.
46
46
  sig do
47
47
  params(
48
48
 
@@ -101,7 +101,7 @@ module OpenAI
101
101
  end
102
102
 
103
103
  # The Transceiver `rtc_...` ID of the pending SIP session. The paired
104
- # `live.call.incoming` event derives its `session_id` by replacing the `rtc_`
104
+ # `live.transport.incoming` event derives its `session_id` by replacing the `rtc_`
105
105
  # prefix with `live_`. Use the ID returned by the event with the corresponding
106
106
  # Realtime or Live API.
107
107
  sig { returns(String) }
@@ -126,7 +126,7 @@ module OpenAI
126
126
  def self.new(
127
127
 
128
128
  # The Transceiver `rtc_...` ID of the pending SIP session. The paired
129
- # `live.call.incoming` event derives its `session_id` by replacing the `rtc_`
129
+ # `live.transport.incoming` event derives its `session_id` by replacing the `rtc_`
130
130
  # prefix with `live_`. Use the ID returned by the event with the corresponding
131
131
  # Realtime or Live API.
132
132
  call_id:,
@@ -22,6 +22,7 @@ module OpenAI
22
22
  OpenAI::Webhooks::FineTuningJobFailedWebhookEvent,
23
23
  OpenAI::Webhooks::FineTuningJobSucceededWebhookEvent,
24
24
  OpenAI::Webhooks::LiveCallIncomingWebhookEvent,
25
+ OpenAI::Webhooks::LiveTransportIncomingWebhookEvent,
25
26
  OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent,
26
27
  OpenAI::Webhooks::ResponseCancelledWebhookEvent,
27
28
  OpenAI::Webhooks::ResponseCompletedWebhookEvent,
@@ -150,6 +150,8 @@ module OpenAI
150
150
 
151
151
  ImagesResponse = OpenAI::Models::ImagesResponse
152
152
 
153
+ Live = OpenAI::Models::Live
154
+
153
155
  Metadata = T.let(OpenAI::Models::Metadata, OpenAI::Internal::Type::Converter)
154
156
 
155
157
  Model = OpenAI::Models::Model
@@ -0,0 +1,19 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Resources
5
+
6
+ class Live
7
+
8
+ class Forks
9
+
10
+ # @api private
11
+ sig { params(client: OpenAI::Client).returns(T.attached_class) }
12
+ def self.new(client:)
13
+ end
14
+ end
15
+
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,110 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Resources
5
+
6
+ class Live
7
+
8
+ class Sessions
9
+
10
+ # Accept an incoming SIP call with Live startup configuration.
11
+ sig {
12
+ params(
13
+ session_id: String,
14
+ session: OpenAI::Live::SessionAcceptParams::Session::OrHash,
15
+ request_options: OpenAI::RequestOptions::OrHash
16
+ )
17
+ .void
18
+ }
19
+ def accept(
20
+ # Opaque Live session identifier from the creation response or incoming-call
21
+ # webhook. Preserve the returned value unchanged, including its prefix.
22
+ session_id,
23
+ # Model and startup configuration for the Live session that answers the incoming
24
+ # SIP call.
25
+ session:,
26
+ request_options: {}
27
+ )
28
+ end
29
+
30
+ # Get Live session content
31
+ sig {
32
+ params(session_id: String, request_options: OpenAI::RequestOptions::OrHash).returns(
33
+ T.all(StringIO, OpenAI::ResponseCarrier)
34
+ )
35
+ }
36
+ def download_recording(
37
+ # The ID of the stored Live session to download. Use the session ID returned when
38
+ # the session started with storage enabled.
39
+ session_id,
40
+ request_options: {}
41
+ )
42
+ end
43
+
44
+ # Fork a stored Live session onto a new WebRTC connection.
45
+ sig {
46
+ params(
47
+ session_id: String,
48
+ transport: OpenAI::Live::SessionForkParams::Transport::OrHash,
49
+ session: OpenAI::Live::MediaSessionForkConfig::OrHash,
50
+ request_options: OpenAI::RequestOptions::OrHash
51
+ )
52
+ .returns(OpenAI::Models::Live::SessionForkResponse)
53
+ }
54
+ def fork(
55
+ # The ID of the stored Live session to fork.
56
+ session_id,
57
+ # WebRTC transport with an SDP offer for the new connection to the forked session.
58
+ transport:,
59
+ # Optional configuration overrides for the new Live session. Omit this object or
60
+ # send an empty object to inherit the stored session's settings.
61
+ session: nil,
62
+ request_options: {}
63
+ )
64
+ end
65
+
66
+ # Hang up a Live session.
67
+ sig { params(session_id: String, request_options: OpenAI::RequestOptions::OrHash).void }
68
+ def hangup(
69
+ # Opaque Live session identifier from the creation response or incoming-call
70
+ # webhook. Preserve the returned value unchanged, including its prefix.
71
+ session_id,
72
+ request_options: {}
73
+ )
74
+ end
75
+
76
+ # Transfer a Live SIP call to another destination.
77
+ sig { params(session_id: String, target_uri: String, request_options: OpenAI::RequestOptions::OrHash).void }
78
+ def refer(
79
+ # Opaque Live session identifier from the creation response or incoming-call
80
+ # webhook. Preserve the returned value unchanged, including its prefix.
81
+ session_id,
82
+ # Nonblank URI for the SIP Refer-To header, such as tel:+14155550123 or
83
+ # sip:agent@example.com.
84
+ target_uri:,
85
+ request_options: {}
86
+ )
87
+ end
88
+
89
+ # Reject an incoming SIP call.
90
+ sig { params(session_id: String, status_code: Integer, request_options: OpenAI::RequestOptions::OrHash).void }
91
+ def reject(
92
+ # Opaque Live session identifier from the creation response or incoming-call
93
+ # webhook. Preserve the returned value unchanged, including its prefix.
94
+ session_id,
95
+ # SIP rejection status sent to the caller. This field is required.
96
+ status_code:,
97
+ request_options: {}
98
+ )
99
+ end
100
+
101
+ # @api private
102
+ sig { params(client: OpenAI::Client).returns(T.attached_class) }
103
+ def self.new(client:)
104
+ end
105
+ end
106
+
107
+ end
108
+
109
+ end
110
+ end
@@ -0,0 +1,19 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Resources
5
+
6
+ class Live
7
+
8
+ class Sideband
9
+
10
+ # @api private
11
+ sig { params(client: OpenAI::Client).returns(T.attached_class) }
12
+ def self.new(client:)
13
+ end
14
+ end
15
+
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Resources
5
+
6
+ class Live
7
+
8
+ sig { returns(OpenAI::Resources::Live::Sideband) }
9
+ attr_reader :sideband
10
+
11
+ sig { returns(OpenAI::Resources::Live::Forks) }
12
+ attr_reader :forks
13
+
14
+ sig { returns(OpenAI::Resources::Live::Sessions) }
15
+ attr_reader :sessions
16
+
17
+ # Create a Live WebRTC session. Start with the
18
+ # [Live prompting guide](https://developers.openai.com/api/docs/guides/live-prompting).
19
+ sig {
20
+ params(
21
+ session: OpenAI::Live::MediaSessionConfig::OrHash,
22
+ transport: OpenAI::Live::LiveCreateParams::Transport::OrHash,
23
+ request_options: OpenAI::RequestOptions::OrHash
24
+ )
25
+ .returns(OpenAI::Models::Live::LiveCreateResponse)
26
+ }
27
+ def create(
28
+ # Startup configuration for the Live session.
29
+ session:,
30
+ # WebRTC transport with the browser's SDP offer.
31
+ transport:,
32
+ request_options: {}
33
+ )
34
+ end
35
+
36
+ # @api private
37
+ sig { params(client: OpenAI::Client).returns(T.attached_class) }
38
+ def self.new(client:)
39
+ end
40
+ end
41
+
42
+ end
43
+ end
@@ -662,6 +662,8 @@ module OpenAI
662
662
  previous_response_id: T.nilable(String),
663
663
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt::OrHash),
664
664
  prompt_cache_key: String,
665
+ prompt_cache_options: T.nilable(OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::OrHash),
666
+ prompt_cache_retention: T.nilable(OpenAI::Responses::ResponseCreateParams::PromptCacheRetention::OrSymbol),
665
667
  reasoning: T.nilable(OpenAI::Reasoning::OrHash),
666
668
  response_id: T.nilable(String),
667
669
  safety_identifier: String,
@@ -711,7 +713,7 @@ module OpenAI
711
713
  end
712
714
  def stream(
713
715
  # Whether to run the model response in the background.
714
- # [Learn more](https://platform.openai.com/docs/guides/background).
716
+ # [Learn more](https://developers.openai.com/api/docs/guides/background).
715
717
  background: nil,
716
718
  # Specify additional output data to include in the model response. Currently
717
719
  # supported values are:
@@ -734,11 +736,11 @@ module OpenAI
734
736
  #
735
737
  # Learn more:
736
738
  #
737
- # - [Text inputs and outputs](https://platform.openai.com/docs/guides/text)
738
- # - [Image inputs](https://platform.openai.com/docs/guides/images)
739
- # - [File inputs](https://platform.openai.com/docs/guides/pdf-files)
740
- # - [Conversation state](https://platform.openai.com/docs/guides/conversation-state)
741
- # - [Function calling](https://platform.openai.com/docs/guides/function-calling)
739
+ # - [Text inputs and outputs](https://developers.openai.com/api/docs/guides/text)
740
+ # - [Image inputs](https://developers.openai.com/api/docs/guides/images-vision)
741
+ # - [File inputs](https://developers.openai.com/api/docs/guides/file-inputs)
742
+ # - [Conversation state](https://developers.openai.com/api/docs/guides/conversation-state)
743
+ # - [Function calling](https://developers.openai.com/api/docs/guides/function-calling)
742
744
  input: nil,
743
745
  # A system (or developer) message inserted into the model's context.
744
746
  #
@@ -748,7 +750,7 @@ module OpenAI
748
750
  instructions: nil,
749
751
  # An upper bound for the number of tokens that can be generated for a response,
750
752
  # including visible output tokens and
751
- # [reasoning tokens](https://platform.openai.com/docs/guides/reasoning).
753
+ # [reasoning tokens](https://developers.openai.com/api/docs/guides/reasoning).
752
754
  max_output_tokens: nil,
753
755
  # The maximum number of total calls to built-in tools that can be processed in a
754
756
  # response. This maximum number applies across all built-in tool calls, not per
@@ -762,37 +764,65 @@ module OpenAI
762
764
  # Keys are strings with a maximum length of 64 characters. Values are strings with
763
765
  # a maximum length of 512 characters.
764
766
  metadata: nil,
765
- # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
766
- # wide range of models with different capabilities, performance characteristics,
767
- # and price points. Refer to the
768
- # [model guide](https://platform.openai.com/docs/models) to browse and compare
769
- # available models.
767
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
768
+ # range of models with different capabilities, performance characteristics, and
769
+ # price points. Refer to the
770
+ # [model guide](https://developers.openai.com/api/docs/models) to browse and
771
+ # compare available models.
770
772
  model: nil,
771
773
  # Whether to allow the model to run tool calls in parallel.
772
774
  parallel_tool_calls: nil,
773
775
  # The unique ID of the previous response to the model. Use this to create
774
776
  # multi-turn conversations. Learn more about
775
- # [conversation state](https://platform.openai.com/docs/guides/conversation-state).
777
+ # [conversation state](https://developers.openai.com/api/docs/guides/conversation-state).
778
+ # Cannot be used in conjunction with `conversation`.
776
779
  previous_response_id: nil,
777
780
  # Reference to a prompt template and its variables.
778
- # [Learn more](https://platform.openai.com/docs/guides/text?api-mode=responses#reusable-prompts).
781
+ # [Learn more](https://developers.openai.com/api/docs/guides/text?api-mode=responses#version-prompts-in-code).
779
782
  prompt: nil,
780
783
  # Used by OpenAI to cache responses for similar requests to optimize your cache
781
784
  # hit rates. Replaces the `user` field.
782
- # [Learn more](https://platform.openai.com/docs/guides/prompt-caching).
785
+ # [Learn more](https://developers.openai.com/api/docs/guides/prompt-caching).
783
786
  prompt_cache_key: nil,
784
- # **o-series models only**
787
+ # Options for prompt caching. Supported for `gpt-5.6` and later models. By
788
+ # default, OpenAI automatically chooses one implicit cache breakpoint. You can add
789
+ # explicit breakpoints to content blocks with `prompt_cache_breakpoint`. Each
790
+ # request can write up to four breakpoints. For cache matching, OpenAI considers
791
+ # up to the latest 80 breakpoints in the conversation, without a content-block
792
+ # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
793
+ # `ttl` defaults to `30m`, which is currently the only supported value. See the
794
+ # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
795
+ # for current details.
796
+ prompt_cache_options: nil,
797
+ # Deprecated. Use `prompt_cache_options.ttl` instead.
798
+ #
799
+ # The retention policy for the prompt cache. Set to `24h` to enable extended
800
+ # prompt caching, which keeps cached prefixes active for longer, up to a maximum
801
+ # of 24 hours.
802
+ # [Learn more](https://developers.openai.com/api/docs/guides/prompt-caching#prompt-cache-retention).
803
+ # This field expresses a maximum retention policy, while
804
+ # `prompt_cache_options.ttl` expresses a minimum cache lifetime. The two fields
805
+ # are independent and do not interact. For `gpt-5.5`, `gpt-5.5-pro`, and future
806
+ # models, only `24h` is supported.
785
807
  #
808
+ # For older models that support both `in_memory` and `24h`, the default depends on
809
+ # your organization's data retention policy:
810
+ #
811
+ # - Organizations without ZDR enabled default to `24h`.
812
+ # - Organizations with ZDR enabled default to `in_memory` when
813
+ # `prompt_cache_retention` is not specified.
814
+ prompt_cache_retention: nil,
786
815
  # Configuration options for
787
- # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
816
+ # [reasoning models](https://developers.openai.com/api/docs/guides/reasoning).
788
817
  reasoning: nil,
789
818
  # The ID of the response whose stream to resume.
790
819
  response_id: nil,
791
820
  # A stable identifier used to help detect users of your application that may be
792
821
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
793
- # identifies each user. We recommend hashing their username or email address, in
794
- # order to avoid sending us any identifying information.
795
- # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
822
+ # identifies each user, with a maximum length of 64 characters. We recommend
823
+ # hashing their username or email address, in order to avoid sending us any
824
+ # identifying information.
825
+ # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
796
826
  safety_identifier: nil,
797
827
  # Specifies the processing type used for serving the request.
798
828
  #
@@ -801,10 +831,19 @@ module OpenAI
801
831
  # will use 'default'.
802
832
  # - If set to 'default', then the request will be processed with the standard
803
833
  # pricing and performance for the selected model.
804
- # - If set to '[flex](https://platform.openai.com/docs/guides/flex-processing)' or
805
- # 'priority', then the request will be processed with the corresponding service
806
- # tier. [Contact sales](https://openai.com/contact-sales) to learn more about
807
- # Priority processing.
834
+ # - If set to
835
+ # '[flex](https://developers.openai.com/api/docs/guides/flex-processing)', then
836
+ # the request will be processed with the Flex Processing service tier.
837
+ # - To opt-in to
838
+ # [Fast mode](https://developers.openai.com/api/docs/guides/fast-mode) at the
839
+ # request level, include the `service_tier=fast` or `service_tier=priority`
840
+ # parameter for Responses or Chat Completions. The response will show
841
+ # `service_tier=priority` regardless of if you specify `service_tier=fast` or
842
+ # `priority` in your request.
843
+ # - If set to 'ultrafast', then the request will be processed with the
844
+ # access-controlled Ultrafast Processing service tier. This tier is currently
845
+ # available for `gpt-5.6-sol`; a response served through it will show
846
+ # `service_tier=ultrafast`.
808
847
  # - When not set, the default behavior is 'auto'.
809
848
  #
810
849
  # When the `service_tier` parameter is set, the response body will include the
@@ -825,9 +864,8 @@ module OpenAI
825
864
  # Configuration options for a text response from the model. Can be plain text,
826
865
  # structured JSON data, or text that conforms to a custom grammar. Learn more:
827
866
  #
828
- # - [Text inputs and outputs](https://platform.openai.com/docs/guides/text)
829
- # - [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)
830
- # - [Custom grammars](https://platform.openai.com/docs/guides/custom-grammars)
867
+ # - [Text inputs and outputs](https://developers.openai.com/api/docs/guides/text)
868
+ # - [Structured Outputs](https://developers.openai.com/api/docs/guides/structured-outputs)
831
869
  text: nil,
832
870
  # How the model should select which tool (or tools) to use when generating a
833
871
  # response. See the `tools` parameter to see how to specify which tools the model
@@ -840,20 +878,19 @@ module OpenAI
840
878
  #
841
879
  # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
842
880
  # capabilities, like
843
- # [web search](https://platform.openai.com/docs/guides/tools-web-search) or
844
- # [file search](https://platform.openai.com/docs/guides/tools-file-search).
881
+ # [web search](https://developers.openai.com/api/docs/guides/tools-web-search)
882
+ # or
883
+ # [file search](https://developers.openai.com/api/docs/guides/tools-file-search).
845
884
  # Learn more about
846
- # [built-in tools](https://platform.openai.com/docs/guides/tools).
847
- # - **Custom tools**: Free form tools which the model can call with flexible
848
- # inputs and outputs. Learn more about
849
- # [custom tools](https://platform.openai.com/docs/guides/custom-tools).
885
+ # [built-in tools](https://developers.openai.com/api/docs/guides/tools).
886
+ # - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
887
+ # predefined connectors such as Google Drive and SharePoint. Learn more about
888
+ # [MCP Tools](https://developers.openai.com/api/docs/guides/tools-connectors-mcp).
850
889
  # - **Function calls (custom tools)**: Functions that are defined by you, enabling
851
890
  # the model to call your own code with strongly typed arguments and outputs.
852
891
  # Learn more about
853
- # [function calling](https://platform.openai.com/docs/guides/function-calling).
854
- # You can also use
855
- # [custom tools](https://platform.openai.com/docs/guides/custom-tools) to call
856
- # your own code.
892
+ # [function calling](https://developers.openai.com/api/docs/guides/function-calling).
893
+ # You can also use custom tools to call your own code.
857
894
  tools: nil,
858
895
  # An integer between 0 and 20 specifying the number of most likely tokens to
859
896
  # return at each token position, each with an associated log probability.
@@ -876,7 +913,7 @@ module OpenAI
876
913
  # `prompt_cache_key` instead to maintain caching optimizations. A stable
877
914
  # identifier for your end-users. Used to boost cache hit rates by better bucketing
878
915
  # similar requests and to help OpenAI detect and prevent abuse.
879
- # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
916
+ # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
880
917
  user: nil,
881
918
  request_options: {}
882
919
  )
@@ -25,6 +25,7 @@ module OpenAI
25
25
  OpenAI::Webhooks::FineTuningJobFailedWebhookEvent,
26
26
  OpenAI::Webhooks::FineTuningJobSucceededWebhookEvent,
27
27
  OpenAI::Webhooks::LiveCallIncomingWebhookEvent,
28
+ OpenAI::Webhooks::LiveTransportIncomingWebhookEvent,
28
29
  OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent,
29
30
  OpenAI::Webhooks::ResponseCancelledWebhookEvent,
30
31
  OpenAI::Webhooks::ResponseCompletedWebhookEvent,