openai 0.97.0 → 0.99.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 (244) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/README.md +76 -1
  4. data/lib/openai/helpers/agents/session_stream.rb +60 -3
  5. data/lib/openai/helpers/beta/agents/artifacts.rb +72 -0
  6. data/lib/openai/helpers/beta/agents/creation_stream.rb +69 -0
  7. data/lib/openai/helpers/beta/agents/files.rb +236 -0
  8. data/lib/openai/helpers/beta/agents/function_tool.rb +65 -0
  9. data/lib/openai/helpers/beta/agents/model_adapter.rb +27 -0
  10. data/lib/openai/helpers/beta/agents/result.rb +170 -0
  11. data/lib/openai/helpers/beta/agents/typed_output.rb +191 -0
  12. data/lib/openai/helpers/live/websocket.rb +7 -1
  13. data/lib/openai/helpers/realtime/conversation_item_variant_resolver.rb +1 -1
  14. data/lib/openai/helpers/responses_websocket/connection.rb +7 -1
  15. data/lib/openai/helpers/responses_websocket/session.rb +5 -1
  16. data/lib/openai/helpers/responses_websocket/transports/async_websocket.rb +12 -2
  17. data/lib/openai/internal/transport/base_client.rb +18 -0
  18. data/lib/openai/internal/type/array_of.rb +1 -1
  19. data/lib/openai/internal/type/base_model.rb +6 -3
  20. data/lib/openai/internal/type/converter.rb +50 -3
  21. data/lib/openai/internal/type/hash_of.rb +1 -1
  22. data/lib/openai/internal/type/union.rb +6 -6
  23. data/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +16 -3
  24. data/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +16 -3
  25. data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +16 -3
  26. data/lib/openai/models/admin/organization/usage_completions_response.rb +16 -3
  27. data/lib/openai/models/admin/organization/usage_costs_response.rb +16 -3
  28. data/lib/openai/models/admin/organization/usage_embeddings_response.rb +16 -3
  29. data/lib/openai/models/admin/organization/usage_file_search_calls_response.rb +16 -3
  30. data/lib/openai/models/admin/organization/usage_images_response.rb +16 -3
  31. data/lib/openai/models/admin/organization/usage_moderations_response.rb +16 -3
  32. data/lib/openai/models/admin/organization/usage_vector_stores_response.rb +16 -3
  33. data/lib/openai/models/admin/organization/usage_web_search_calls_response.rb +16 -3
  34. data/lib/openai/models/all_models.rb +42 -0
  35. data/lib/openai/models/audio/speech_create_params.rb +6 -0
  36. data/lib/openai/models/audio/voice.rb +75 -0
  37. data/lib/openai/models/audio/voice_create_params.rb +217 -0
  38. data/lib/openai/models/beta/agent_create_params.rb +0 -3
  39. data/lib/openai/models/beta/agent_update_params.rb +0 -3
  40. data/lib/openai/models/beta/agents/session_create_params.rb +0 -3
  41. data/lib/openai/models/beta/agents/session_update_params.rb +0 -3
  42. data/lib/openai/models/beta/agents/sessions/session_trace.rb +64 -0
  43. data/lib/openai/models/beta/agents/sessions/trace_list_params.rb +68 -0
  44. data/lib/openai/models/beta/agents/vaults/credential.rb +8 -4
  45. data/lib/openai/models/beta/beta_response.rb +220 -0
  46. data/lib/openai/models/beta/beta_response_output_text.rb +2 -2
  47. data/lib/openai/models/beta/beta_response_output_text_annotation_added_event.rb +2 -2
  48. data/lib/openai/models/beta/beta_responses_client_event.rb +220 -0
  49. data/lib/openai/models/beta/beta_tool.rb +3 -9
  50. data/lib/openai/models/beta/environment.rb +33 -1
  51. data/lib/openai/models/beta/environment_param.rb +24 -1
  52. data/lib/openai/models/beta/response_compact_params.rb +220 -0
  53. data/lib/openai/models/beta/response_create_params.rb +220 -0
  54. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  55. data/lib/openai/models/chat/chat_completion_audio_param.rb +6 -3
  56. data/lib/openai/models/chat/chat_completion_content_part_image.rb +1 -0
  57. data/lib/openai/models/chat_model.rb +178 -0
  58. data/lib/openai/models/image.rb +14 -14
  59. data/lib/openai/models/image_create_variation_params.rb +7 -7
  60. data/lib/openai/models/image_edit_params.rb +76 -87
  61. data/lib/openai/models/image_generate_params.rb +51 -62
  62. data/lib/openai/models/image_model.rb +5 -3
  63. data/lib/openai/models/live/fork_server_event.rb +14 -3
  64. data/lib/openai/models/live/server_event.rb +14 -3
  65. data/lib/openai/models/realtime/realtime_audio_config_output.rb +9 -6
  66. data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +9 -6
  67. data/lib/openai/models/realtime/translations/client_secret_create_params.rb +28 -0
  68. data/lib/openai/models/responses/response_compact_params.rb +220 -0
  69. data/lib/openai/models/responses/response_output_text.rb +2 -2
  70. data/lib/openai/models/responses/response_output_text_annotation_added_event.rb +2 -2
  71. data/lib/openai/models/responses/tool.rb +3 -9
  72. data/lib/openai/models/responses_model.rb +42 -0
  73. data/lib/openai/models/webhooks/agent_session_action_required_webhook_event.rb +109 -0
  74. data/lib/openai/models/webhooks/agent_session_created_webhook_event.rb +106 -0
  75. data/lib/openai/models/webhooks/agent_session_failed_webhook_event.rb +86 -0
  76. data/lib/openai/models/webhooks/agent_session_idle_webhook_event.rb +86 -0
  77. data/lib/openai/models/webhooks/agent_session_in_progress_webhook_event.rb +86 -0
  78. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +18 -2
  79. data/lib/openai/models/webhooks/webhook_create_params.rb +5 -0
  80. data/lib/openai/models/webhooks/webhook_test_params.rb +5 -0
  81. data/lib/openai/models/webhooks/webhook_update_params.rb +5 -0
  82. data/lib/openai/resources/audio/speech.rb +2 -0
  83. data/lib/openai/resources/audio/voices.rb +53 -0
  84. data/lib/openai/resources/audio.rb +5 -0
  85. data/lib/openai/resources/beta/agents/environments/files.rb +31 -0
  86. data/lib/openai/resources/beta/agents/sessions/artifacts.rb +8 -0
  87. data/lib/openai/resources/beta/agents/sessions/events.rb +6 -5
  88. data/lib/openai/resources/beta/agents/sessions/traces.rb +58 -0
  89. data/lib/openai/resources/beta/agents/sessions.rb +18 -5
  90. data/lib/openai/resources/evals/runs.rb +1 -1
  91. data/lib/openai/resources/images.rb +71 -103
  92. data/lib/openai/resources/realtime/translations/client_secrets.rb +58 -0
  93. data/lib/openai/resources/realtime/translations.rb +20 -0
  94. data/lib/openai/resources/realtime.rb +4 -0
  95. data/lib/openai/resources/webhooks.rb +1 -1
  96. data/lib/openai/version.rb +1 -1
  97. data/lib/openai.rb +17 -1
  98. data/rbi/openai/helpers/agents.rbi +20 -1
  99. data/rbi/openai/helpers/beta/agents/artifacts.rbi +29 -0
  100. data/rbi/openai/helpers/beta/agents/files.rbi +65 -0
  101. data/rbi/openai/helpers/beta/agents/function_tool.rbi +40 -0
  102. data/rbi/openai/helpers/beta/agents/model_adapter.rbi +22 -0
  103. data/rbi/openai/helpers/beta/agents.rbi +146 -0
  104. data/rbi/openai/internal/transport/base_client.rbi +12 -0
  105. data/rbi/openai/internal/type/base_model.rbi +2 -2
  106. data/rbi/openai/internal/type/converter.rbi +21 -3
  107. data/rbi/openai/internal/type/union.rbi +6 -2
  108. data/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi +19 -2
  109. data/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi +19 -2
  110. data/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi +19 -2
  111. data/rbi/openai/models/admin/organization/usage_completions_response.rbi +19 -2
  112. data/rbi/openai/models/admin/organization/usage_costs_response.rbi +19 -2
  113. data/rbi/openai/models/admin/organization/usage_embeddings_response.rbi +19 -2
  114. data/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi +19 -2
  115. data/rbi/openai/models/admin/organization/usage_images_response.rbi +19 -2
  116. data/rbi/openai/models/admin/organization/usage_moderations_response.rbi +19 -2
  117. data/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi +19 -2
  118. data/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi +19 -2
  119. data/rbi/openai/models/audio/speech_create_params.rbi +6 -0
  120. data/rbi/openai/models/audio/voice.rbi +111 -0
  121. data/rbi/openai/models/audio/voice_create_params.rbi +321 -0
  122. data/rbi/openai/models/beta/agent_create_params.rbi +0 -3
  123. data/rbi/openai/models/beta/agent_update_params.rbi +0 -3
  124. data/rbi/openai/models/beta/agents/session_create_params.rbi +0 -3
  125. data/rbi/openai/models/beta/agents/session_update_params.rbi +0 -3
  126. data/rbi/openai/models/beta/agents/sessions/session_trace.rbi +97 -0
  127. data/rbi/openai/models/beta/agents/sessions/trace_list_params.rbi +121 -0
  128. data/rbi/openai/models/beta/agents/vaults/credential.rbi +5 -5
  129. data/rbi/openai/models/beta/beta_response_output_text.rbi +2 -2
  130. data/rbi/openai/models/beta/beta_response_output_text_annotation_added_event.rbi +2 -2
  131. data/rbi/openai/models/beta/beta_tool.rbi +3 -9
  132. data/rbi/openai/models/beta/environment.rbi +29 -0
  133. data/rbi/openai/models/beta/environment_param.rbi +31 -0
  134. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  135. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +6 -3
  136. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +1 -0
  137. data/rbi/openai/models/image.rbi +14 -14
  138. data/rbi/openai/models/image_create_variation_params.rbi +6 -6
  139. data/rbi/openai/models/image_edit_params.rbi +61 -82
  140. data/rbi/openai/models/image_generate_params.rbi +30 -61
  141. data/rbi/openai/models/image_model.rbi +3 -3
  142. data/rbi/openai/models/live/fork_server_event.rbi +14 -2
  143. data/rbi/openai/models/live/server_event.rbi +14 -2
  144. data/rbi/openai/models/realtime/realtime_audio_config_output.rbi +9 -6
  145. data/rbi/openai/models/realtime/realtime_response_create_audio_output.rbi +9 -6
  146. data/rbi/openai/models/realtime/translations/client_secret_create_params.rbi +68 -0
  147. data/rbi/openai/models/responses/response_output_text.rbi +2 -2
  148. data/rbi/openai/models/responses/response_output_text_annotation_added_event.rbi +2 -2
  149. data/rbi/openai/models/responses/tool.rbi +3 -9
  150. data/rbi/openai/models/webhooks/agent_session_action_required_webhook_event.rbi +222 -0
  151. data/rbi/openai/models/webhooks/agent_session_created_webhook_event.rbi +202 -0
  152. data/rbi/openai/models/webhooks/agent_session_failed_webhook_event.rbi +151 -0
  153. data/rbi/openai/models/webhooks/agent_session_idle_webhook_event.rbi +151 -0
  154. data/rbi/openai/models/webhooks/agent_session_in_progress_webhook_event.rbi +151 -0
  155. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +7 -1
  156. data/rbi/openai/models/webhooks/webhook_create_params.rbi +20 -0
  157. data/rbi/openai/models/webhooks/webhook_test_params.rbi +20 -0
  158. data/rbi/openai/models/webhooks/webhook_update_params.rbi +20 -0
  159. data/rbi/openai/resources/audio/speech.rbi +2 -0
  160. data/rbi/openai/resources/audio/voices.rbi +49 -0
  161. data/rbi/openai/resources/audio.rbi +4 -0
  162. data/rbi/openai/resources/beta/agents/environments/files.rbi +31 -0
  163. data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +8 -0
  164. data/rbi/openai/resources/beta/agents/sessions/events.rbi +6 -5
  165. data/rbi/openai/resources/beta/agents/sessions/traces.rbi +54 -0
  166. data/rbi/openai/resources/beta/agents/sessions.rbi +6 -1
  167. data/rbi/openai/resources/images.rbi +69 -103
  168. data/rbi/openai/resources/realtime/translations/client_secrets.rbi +54 -0
  169. data/rbi/openai/resources/realtime/translations.rbi +22 -0
  170. data/rbi/openai/resources/realtime.rbi +3 -0
  171. data/rbi/openai/resources/webhooks.rbi +5 -0
  172. data/sig/openai/helpers/agents.rbs +7 -0
  173. data/sig/openai/helpers/beta/agents/artifacts.rbs +20 -0
  174. data/sig/openai/helpers/beta/agents/files.rbs +41 -0
  175. data/sig/openai/helpers/beta/agents/function_tool.rbs +24 -0
  176. data/sig/openai/helpers/beta/agents/model_adapter.rbs +16 -0
  177. data/sig/openai/helpers/beta/agents.rbs +71 -0
  178. data/sig/openai/helpers/structured_output.rbs +12 -0
  179. data/sig/openai/internal/transport/base_client.rbs +8 -0
  180. data/sig/openai/internal/type/base_model.rbs +3 -1
  181. data/sig/openai/internal/type/converter.rbs +16 -2
  182. data/sig/openai/internal/type/union.rbs +2 -1
  183. data/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +20 -3
  184. data/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +20 -3
  185. data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +20 -3
  186. data/sig/openai/models/admin/organization/usage_completions_response.rbs +20 -3
  187. data/sig/openai/models/admin/organization/usage_costs_response.rbs +20 -3
  188. data/sig/openai/models/admin/organization/usage_embeddings_response.rbs +20 -3
  189. data/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs +20 -3
  190. data/sig/openai/models/admin/organization/usage_images_response.rbs +20 -3
  191. data/sig/openai/models/admin/organization/usage_moderations_response.rbs +20 -3
  192. data/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +20 -3
  193. data/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs +20 -3
  194. data/sig/openai/models/audio/speech_create_params.rbs +4 -0
  195. data/sig/openai/models/audio/voice.rbs +70 -0
  196. data/sig/openai/models/audio/voice_create_params.rbs +203 -0
  197. data/sig/openai/models/beta/agent_create_params.rbs +1 -5
  198. data/sig/openai/models/beta/agent_update_params.rbs +1 -5
  199. data/sig/openai/models/beta/agents/session_create_params.rbs +1 -5
  200. data/sig/openai/models/beta/agents/session_update_params.rbs +1 -5
  201. data/sig/openai/models/beta/agents/sessions/session_trace.rbs +65 -0
  202. data/sig/openai/models/beta/agents/sessions/trace_list_params.rbs +81 -0
  203. data/sig/openai/models/beta/agents/vaults/credential.rbs +5 -5
  204. data/sig/openai/models/beta/beta_response_output_text.rbs +2 -2
  205. data/sig/openai/models/beta/beta_response_output_text_annotation_added_event.rbs +2 -2
  206. data/sig/openai/models/beta/beta_tool.rbs +3 -9
  207. data/sig/openai/models/beta/environment.rbs +22 -0
  208. data/sig/openai/models/beta/environment_param.rbs +25 -0
  209. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  210. data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -2
  211. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +2 -1
  212. data/sig/openai/models/image.rbs +21 -21
  213. data/sig/openai/models/image_create_variation_params.rbs +4 -4
  214. data/sig/openai/models/image_edit_params.rbs +46 -60
  215. data/sig/openai/models/image_generate_params.rbs +23 -45
  216. data/sig/openai/models/image_model.rbs +6 -6
  217. data/sig/openai/models/live/fork_server_event.rbs +17 -2
  218. data/sig/openai/models/live/server_event.rbs +17 -2
  219. data/sig/openai/models/realtime/realtime_audio_config_output.rbs +9 -6
  220. data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +9 -6
  221. data/sig/openai/models/realtime/translations/client_secret_create_params.rbs +39 -0
  222. data/sig/openai/models/responses/response_output_text.rbs +2 -2
  223. data/sig/openai/models/responses/response_output_text_annotation_added_event.rbs +2 -2
  224. data/sig/openai/models/responses/tool.rbs +3 -9
  225. data/sig/openai/models/webhooks/agent_session_action_required_webhook_event.rbs +114 -0
  226. data/sig/openai/models/webhooks/agent_session_created_webhook_event.rbs +115 -0
  227. data/sig/openai/models/webhooks/agent_session_failed_webhook_event.rbs +89 -0
  228. data/sig/openai/models/webhooks/agent_session_idle_webhook_event.rbs +89 -0
  229. data/sig/openai/models/webhooks/agent_session_in_progress_webhook_event.rbs +89 -0
  230. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +6 -1
  231. data/sig/openai/models/webhooks/webhook_create_params.rbs +10 -0
  232. data/sig/openai/models/webhooks/webhook_test_params.rbs +10 -0
  233. data/sig/openai/models/webhooks/webhook_update_params.rbs +10 -0
  234. data/sig/openai/resources/audio/voices.rbs +14 -0
  235. data/sig/openai/resources/audio.rbs +2 -0
  236. data/sig/openai/resources/beta/agents/environments/files.rbs +17 -0
  237. data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +4 -0
  238. data/sig/openai/resources/beta/agents/sessions/traces.rbs +21 -0
  239. data/sig/openai/resources/beta/agents/sessions.rbs +4 -1
  240. data/sig/openai/resources/realtime/translations/client_secrets.rbs +17 -0
  241. data/sig/openai/resources/realtime/translations.rbs +11 -0
  242. data/sig/openai/resources/realtime.rbs +2 -0
  243. data/sig/openai/resources/webhooks.rbs +6 -1
  244. metadata +61 -1
@@ -89,6 +89,7 @@ module OpenAI
89
89
  ?api_key_id: String?,
90
90
  ?batch: bool?,
91
91
  ?input_audio_tokens: Integer,
92
+ ?:input_cache_write_12h_tokens => Integer,
92
93
  ?input_cache_write_tokens: Integer,
93
94
  ?input_cached_audio_tokens: Integer,
94
95
  ?input_cached_image_tokens: Integer,
@@ -136,10 +137,20 @@ module OpenAI
136
137
  # The aggregated number of uncached audio input tokens used.
137
138
  def input_audio_tokens=: (Integer) -> Integer
138
139
 
139
- # The aggregated number of input tokens written to the cache.
140
+ # The aggregated number of input tokens written to the cache with a 12-hour
141
+ # retention period.
142
+ attr_reader input_cache_write_12h_tokens: Integer?
143
+
144
+ # The aggregated number of input tokens written to the cache with a 12-hour
145
+ # retention period.
146
+ def input_cache_write_12h_tokens=: (Integer) -> Integer
147
+
148
+ # The aggregated number of input tokens written to the cache with a 30-minute
149
+ # retention period.
140
150
  attr_reader input_cache_write_tokens: Integer?
141
151
 
142
- # The aggregated number of input tokens written to the cache.
152
+ # The aggregated number of input tokens written to the cache with a 30-minute
153
+ # retention period.
143
154
  def input_cache_write_tokens=: (Integer) -> Integer
144
155
 
145
156
  # The aggregated number of cached audio input tokens used.
@@ -242,8 +253,12 @@ module OpenAI
242
253
  # batch or not.
243
254
  # @param input_audio_tokens
244
255
  # The aggregated number of uncached audio input tokens used.
256
+ # @param input_cache_write_12h_tokens
257
+ # The aggregated number of input tokens written to the cache with a 12-hour
258
+ # retention period.
245
259
  # @param input_cache_write_tokens
246
- # The aggregated number of input tokens written to the cache.
260
+ # The aggregated number of input tokens written to the cache with a 30-minute
261
+ # retention period.
247
262
  # @param input_cached_audio_tokens
248
263
  # The aggregated number of cached audio input tokens used.
249
264
  # @param input_cached_image_tokens
@@ -286,6 +301,7 @@ module OpenAI
286
301
  ?api_key_id: String?,
287
302
  ?batch: bool?,
288
303
  ?input_audio_tokens: Integer,
304
+ ?input_cache_write_12h_tokens: Integer,
289
305
  ?input_cache_write_tokens: Integer,
290
306
  ?input_cached_audio_tokens: Integer,
291
307
  ?input_cached_image_tokens: Integer,
@@ -312,6 +328,7 @@ module OpenAI
312
328
  ?api_key_id: String?,
313
329
  ?batch: bool?,
314
330
  ?input_audio_tokens: Integer,
331
+ ?:input_cache_write_12h_tokens => Integer,
315
332
  ?input_cache_write_tokens: Integer,
316
333
  ?input_cached_audio_tokens: Integer,
317
334
  ?input_cached_image_tokens: Integer,
@@ -89,6 +89,7 @@ module OpenAI
89
89
  ?api_key_id: String?,
90
90
  ?batch: bool?,
91
91
  ?input_audio_tokens: Integer,
92
+ ?:input_cache_write_12h_tokens => Integer,
92
93
  ?input_cache_write_tokens: Integer,
93
94
  ?input_cached_audio_tokens: Integer,
94
95
  ?input_cached_image_tokens: Integer,
@@ -136,10 +137,20 @@ module OpenAI
136
137
  # The aggregated number of uncached audio input tokens used.
137
138
  def input_audio_tokens=: (Integer) -> Integer
138
139
 
139
- # The aggregated number of input tokens written to the cache.
140
+ # The aggregated number of input tokens written to the cache with a 12-hour
141
+ # retention period.
142
+ attr_reader input_cache_write_12h_tokens: Integer?
143
+
144
+ # The aggregated number of input tokens written to the cache with a 12-hour
145
+ # retention period.
146
+ def input_cache_write_12h_tokens=: (Integer) -> Integer
147
+
148
+ # The aggregated number of input tokens written to the cache with a 30-minute
149
+ # retention period.
140
150
  attr_reader input_cache_write_tokens: Integer?
141
151
 
142
- # The aggregated number of input tokens written to the cache.
152
+ # The aggregated number of input tokens written to the cache with a 30-minute
153
+ # retention period.
143
154
  def input_cache_write_tokens=: (Integer) -> Integer
144
155
 
145
156
  # The aggregated number of cached audio input tokens used.
@@ -242,8 +253,12 @@ module OpenAI
242
253
  # batch or not.
243
254
  # @param input_audio_tokens
244
255
  # The aggregated number of uncached audio input tokens used.
256
+ # @param input_cache_write_12h_tokens
257
+ # The aggregated number of input tokens written to the cache with a 12-hour
258
+ # retention period.
245
259
  # @param input_cache_write_tokens
246
- # The aggregated number of input tokens written to the cache.
260
+ # The aggregated number of input tokens written to the cache with a 30-minute
261
+ # retention period.
247
262
  # @param input_cached_audio_tokens
248
263
  # The aggregated number of cached audio input tokens used.
249
264
  # @param input_cached_image_tokens
@@ -286,6 +301,7 @@ module OpenAI
286
301
  ?api_key_id: String?,
287
302
  ?batch: bool?,
288
303
  ?input_audio_tokens: Integer,
304
+ ?input_cache_write_12h_tokens: Integer,
289
305
  ?input_cache_write_tokens: Integer,
290
306
  ?input_cached_audio_tokens: Integer,
291
307
  ?input_cached_image_tokens: Integer,
@@ -312,6 +328,7 @@ module OpenAI
312
328
  ?api_key_id: String?,
313
329
  ?batch: bool?,
314
330
  ?input_audio_tokens: Integer,
331
+ ?:input_cache_write_12h_tokens => Integer,
315
332
  ?input_cache_write_tokens: Integer,
316
333
  ?input_cached_audio_tokens: Integer,
317
334
  ?input_cached_image_tokens: Integer,
@@ -31,6 +31,8 @@ module OpenAI
31
31
  # object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
32
32
  # voices are available in the
33
33
  # [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
34
+ # Custom voices must be created from audio samples. Voices created from text
35
+ # prompts are supported only in Live.
34
36
  attr_accessor voice: OpenAI::Models::Audio::SpeechCreateParams::voice
35
37
 
36
38
  # Control the voice of your generated audio with additional instructions. Does not
@@ -82,6 +84,8 @@ module OpenAI
82
84
  # object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
83
85
  # voices are available in the
84
86
  # [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
87
+ # Custom voices must be created from audio samples. Voices created from text
88
+ # prompts are supported only in Live.
85
89
  # @param instructions
86
90
  # Control the voice of your generated audio with additional instructions. Does not
87
91
  # work with `tts-1` or `tts-1-hd`.
@@ -0,0 +1,70 @@
1
+ module OpenAI
2
+ module Models
3
+ module Audio
4
+ type voice =
5
+ {
6
+ id: String,
7
+ created_at: Integer,
8
+ name: String,
9
+ ?object: :"audio.voice",
10
+ type: OpenAI::Models::Audio::Voice::type_
11
+ }
12
+
13
+ class Voice < OpenAI::Internal::Type::BaseModel
14
+ # The voice identifier, which can be referenced in API endpoints.
15
+ attr_accessor id: String
16
+
17
+ # The Unix timestamp (in seconds) for when the voice was created.
18
+ attr_accessor created_at: Integer
19
+
20
+ # The name of the voice.
21
+ attr_accessor name: String
22
+
23
+ # The object type, which is always `audio.voice`.
24
+ attr_accessor object: :"audio.voice"
25
+
26
+ # How the voice was created. Voices created from text prompts are supported only
27
+ # in Live.
28
+ attr_accessor type: OpenAI::Models::Audio::Voice::type_
29
+
30
+ # @param id
31
+ # The voice identifier, which can be referenced in API endpoints.
32
+ # @param created_at
33
+ # The Unix timestamp (in seconds) for when the voice was created.
34
+ # @param name
35
+ # The name of the voice.
36
+ # @param type
37
+ # How the voice was created. Voices created from text prompts are supported only
38
+ # in Live.
39
+ # @param object
40
+ # The object type, which is always `audio.voice`.
41
+ def initialize: (
42
+ id: String,
43
+ created_at: Integer,
44
+ name: String,
45
+ type: OpenAI::Models::Audio::Voice::type_,
46
+ ?object: :"audio.voice"
47
+ ) -> void
48
+
49
+ def to_hash: -> {
50
+ id: String,
51
+ created_at: Integer,
52
+ name: String,
53
+ ?object: :"audio.voice",
54
+ type: OpenAI::Models::Audio::Voice::type_
55
+ }
56
+
57
+ type type_ = :audio_sample | :prompt
58
+
59
+ module Type
60
+ extend OpenAI::Internal::Type::Enum
61
+
62
+ AUDIO_SAMPLE: :audio_sample
63
+ PROMPT: :prompt
64
+
65
+ def self?.values: -> ::Array[OpenAI::Models::Audio::Voice::type_]
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,203 @@
1
+ module OpenAI
2
+ module Models
3
+ module Audio
4
+ type voice_create_params =
5
+ {
6
+ body: OpenAI::Models::Audio::VoiceCreateParams::body,
7
+ ?request_options: OpenAI::request_opts
8
+ }
9
+
10
+ class VoiceCreateParams < OpenAI::Internal::Type::BaseModel
11
+ extend OpenAI::Internal::Type::RequestParameters::Converter
12
+ include OpenAI::Internal::Type::RequestParameters
13
+
14
+ # Creates a voice from a consent recording and an audio sample. Requires
15
+ # multipart/form-data.
16
+ attr_accessor body: OpenAI::Models::Audio::VoiceCreateParams::body
17
+
18
+ # @param body
19
+ # Creates a voice from a consent recording and an audio sample. Requires
20
+ # multipart/form-data.
21
+ def initialize: (
22
+ body: OpenAI::Models::Audio::VoiceCreateParams::body,
23
+ ?request_options: OpenAI::request_opts
24
+ ) -> void
25
+
26
+ def to_hash: -> {
27
+ body: OpenAI::Models::Audio::VoiceCreateParams::body,
28
+ ?request_options: OpenAI::RequestOptions
29
+ }
30
+
31
+ type body =
32
+ OpenAI::Audio::VoiceCreateParams::Body::AudioSample
33
+ | OpenAI::Audio::VoiceCreateParams::Body::Prompt
34
+
35
+ module Body
36
+ extend OpenAI::Internal::Type::Union
37
+
38
+ type audio_sample =
39
+ {
40
+ audio_sample: OpenAI::Internal::file_input,
41
+ consent: String,
42
+ name: String,
43
+ ?type: OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample::type_
44
+ }
45
+
46
+ class AudioSample < OpenAI::Internal::Type::BaseModel
47
+ # The sample audio recording file. Maximum size is 10 MiB.
48
+ #
49
+ # Supported MIME types: `audio/mpeg`, `audio/wav`, `audio/x-wav`, `audio/ogg`,
50
+ # `audio/aac`, `audio/flac`, `audio/webm`, `audio/mp4`.
51
+ #
52
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
53
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
54
+ # content type.
55
+ attr_accessor audio_sample: OpenAI::Internal::file_input
56
+
57
+ # The consent recording ID (for example, `cons_1234`).
58
+ attr_accessor consent: String
59
+
60
+ # The name of the new voice.
61
+ attr_accessor name: String
62
+
63
+ # The voice creation method. Defaults to `audio_sample` when omitted.
64
+ attr_reader type: OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample::type_?
65
+
66
+ # The voice creation method. Defaults to `audio_sample` when omitted.
67
+ def type=: (
68
+ OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample::type_
69
+ ) -> OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample::type_
70
+
71
+ # @param audio_sample
72
+ # The sample audio recording file. Maximum size is 10 MiB.
73
+ #
74
+ # Supported MIME types: `audio/mpeg`, `audio/wav`, `audio/x-wav`, `audio/ogg`,
75
+ # `audio/aac`, `audio/flac`, `audio/webm`, `audio/mp4`.
76
+ #
77
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
78
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
79
+ # content type.
80
+ # @param consent
81
+ # The consent recording ID (for example, `cons_1234`).
82
+ # @param name
83
+ # The name of the new voice.
84
+ # @param type
85
+ # The voice creation method. Defaults to `audio_sample` when omitted.
86
+ def initialize: (
87
+ audio_sample: OpenAI::Internal::file_input,
88
+ consent: String,
89
+ name: String,
90
+ ?type: OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample::type_
91
+ ) -> void
92
+
93
+ def to_hash: -> {
94
+ audio_sample: OpenAI::Internal::file_input,
95
+ consent: String,
96
+ name: String,
97
+ ?type: OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample::type_
98
+ }
99
+
100
+ type type_ = :audio_sample
101
+
102
+ module Type
103
+ extend OpenAI::Internal::Type::Enum
104
+
105
+ AUDIO_SAMPLE: :audio_sample
106
+
107
+ def self?.values: -> ::Array[OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample::type_]
108
+ end
109
+ end
110
+
111
+ type prompt =
112
+ {
113
+ name: String,
114
+ prompt: String,
115
+ type: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::type_,
116
+ ?model: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model,
117
+ ?script_hint: String
118
+ }
119
+
120
+ class Prompt < OpenAI::Internal::Type::BaseModel
121
+ # The name of the new voice.
122
+ attr_accessor name: String
123
+
124
+ # A description of the desired voice. Must not contain only whitespace.
125
+ attr_accessor prompt: String
126
+
127
+ # Set to `prompt` to create a voice from a text description.
128
+ attr_accessor type: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::type_
129
+
130
+ # The voice creation model to use. Defaults to `auto`.
131
+ attr_reader model: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model?
132
+
133
+ # The voice creation model to use. Defaults to `auto`.
134
+ def model=: (
135
+ OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model
136
+ ) -> OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model
137
+
138
+ # Optional text for the voice to speak during creation. If omitted, a script is
139
+ # generated from the prompt. Must not be blank after trimming whitespace; scripts
140
+ # that are too short are rejected.
141
+ attr_reader script_hint: String?
142
+
143
+ # Optional text for the voice to speak during creation. If omitted, a script is
144
+ # generated from the prompt. Must not be blank after trimming whitespace; scripts
145
+ # that are too short are rejected.
146
+ def script_hint=: (String) -> String
147
+
148
+ # @param name
149
+ # The name of the new voice.
150
+ # @param prompt
151
+ # A description of the desired voice. Must not contain only whitespace.
152
+ # @param type
153
+ # Set to `prompt` to create a voice from a text description.
154
+ # @param model
155
+ # The voice creation model to use. Defaults to `auto`.
156
+ # @param script_hint
157
+ # Optional text for the voice to speak during creation. If omitted, a script is
158
+ # generated from the prompt. Must not be blank after trimming whitespace; scripts
159
+ # that are too short are rejected.
160
+ def initialize: (
161
+ name: String,
162
+ prompt: String,
163
+ type: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::type_,
164
+ ?model: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model,
165
+ ?script_hint: String
166
+ ) -> void
167
+
168
+ def to_hash: -> {
169
+ name: String,
170
+ prompt: String,
171
+ type: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::type_,
172
+ ?model: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model,
173
+ ?script_hint: String
174
+ }
175
+
176
+ type type_ = :prompt
177
+
178
+ module Type
179
+ extend OpenAI::Internal::Type::Enum
180
+
181
+ PROMPT: :prompt
182
+
183
+ def self?.values: -> ::Array[OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::type_]
184
+ end
185
+
186
+ type model = String | :auto | :"2026-10-01"
187
+
188
+ module Model
189
+ extend OpenAI::Internal::Type::Union
190
+
191
+ def self?.variants: -> ::Array[OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model]
192
+
193
+ AUTO: :auto
194
+ MODEL_2026_10_01: :"2026-10-01"
195
+ end
196
+ end
197
+
198
+ def self?.variants: -> ::Array[OpenAI::Models::Audio::VoiceCreateParams::body]
199
+ end
200
+ end
201
+ end
202
+ end
203
+ end
@@ -98,8 +98,7 @@ module OpenAI
98
98
  ?request_options: OpenAI::RequestOptions
99
99
  }
100
100
 
101
- type service_tier =
102
- :auto | :default | :flex | :priority | :fast | :ultrafast
101
+ type service_tier = :auto | :default | :flex | :priority | :fast
103
102
 
104
103
  module ServiceTier
105
104
  extend OpenAI::Internal::Type::Enum
@@ -119,9 +118,6 @@ module OpenAI
119
118
  # Uses the fast service tier.
120
119
  FAST: :fast
121
120
 
122
- # Uses the ultrafast service tier.
123
- ULTRAFAST: :ultrafast
124
-
125
121
  def self?.values: -> ::Array[OpenAI::Models::Beta::AgentCreateParams::service_tier]
126
122
  end
127
123
  end
@@ -106,8 +106,7 @@ module OpenAI
106
106
  ?request_options: OpenAI::RequestOptions
107
107
  }
108
108
 
109
- type service_tier =
110
- :auto | :default | :flex | :priority | :fast | :ultrafast
109
+ type service_tier = :auto | :default | :flex | :priority | :fast
111
110
 
112
111
  module ServiceTier
113
112
  extend OpenAI::Internal::Type::Enum
@@ -127,9 +126,6 @@ module OpenAI
127
126
  # Uses the fast service tier.
128
127
  FAST: :fast
129
128
 
130
- # Uses the ultrafast service tier.
131
- ULTRAFAST: :ultrafast
132
-
133
129
  def self?.values: -> ::Array[OpenAI::Models::Beta::AgentUpdateParams::service_tier]
134
130
  end
135
131
  end
@@ -163,8 +163,7 @@ module OpenAI
163
163
  ?tools: ::Array[OpenAI::Models::Beta::agent_tool_param]?
164
164
  }
165
165
 
166
- type service_tier =
167
- :auto | :default | :flex | :priority | :fast | :ultrafast
166
+ type service_tier = :auto | :default | :flex | :priority | :fast
168
167
 
169
168
  module ServiceTier
170
169
  extend OpenAI::Internal::Type::Enum
@@ -184,9 +183,6 @@ module OpenAI
184
183
  # Uses the fast service tier.
185
184
  FAST: :fast
186
185
 
187
- # Uses the ultrafast service tier.
188
- ULTRAFAST: :ultrafast
189
-
190
186
  def self?.values: -> ::Array[OpenAI::Models::Beta::Agents::SessionCreateParams::Agent::service_tier]
191
187
  end
192
188
  end
@@ -129,8 +129,7 @@ module OpenAI
129
129
  end
130
130
  end
131
131
 
132
- type service_tier =
133
- :auto | :default | :flex | :priority | :fast | :ultrafast
132
+ type service_tier = :auto | :default | :flex | :priority | :fast
134
133
 
135
134
  module ServiceTier
136
135
  extend OpenAI::Internal::Type::Enum
@@ -150,9 +149,6 @@ module OpenAI
150
149
  # Uses the fast service tier.
151
150
  FAST: :fast
152
151
 
153
- # Uses the ultrafast service tier.
154
- ULTRAFAST: :ultrafast
155
-
156
152
  def self?.values: -> ::Array[OpenAI::Models::Beta::Agents::SessionUpdateParams::Agent::service_tier]
157
153
  end
158
154
  end
@@ -0,0 +1,65 @@
1
+ module OpenAI
2
+ module Models
3
+ module Beta
4
+ module Agents
5
+ class SessionTrace = Sessions::SessionTrace
6
+
7
+ module Sessions
8
+ type session_trace =
9
+ {
10
+ id: String,
11
+ created_at: Integer,
12
+ ?object: :"agent.session.trace",
13
+ otlp: ::Hash[Symbol, top],
14
+ session_id: String
15
+ }
16
+
17
+ class SessionTrace < OpenAI::Internal::Type::BaseModel
18
+ # The root turn ID. Use this ID as the pagination anchor.
19
+ attr_accessor id: String
20
+
21
+ # The Unix timestamp in seconds when the root turn was created.
22
+ attr_accessor created_at: Integer
23
+
24
+ # The object type, which is always `agent.session.trace`.
25
+ attr_accessor object: :"agent.session.trace"
26
+
27
+ # An OTLP JSON ExportTraceServiceRequest containing resourceSpans. Only currently
28
+ # published data is returned; later trace updates are not awaited.
29
+ attr_accessor otlp: ::Hash[Symbol, top]
30
+
31
+ # The session that owns this trace.
32
+ attr_accessor session_id: String
33
+
34
+ # @param id
35
+ # The root turn ID. Use this ID as the pagination anchor.
36
+ # @param created_at
37
+ # The Unix timestamp in seconds when the root turn was created.
38
+ # @param otlp
39
+ # An OTLP JSON ExportTraceServiceRequest containing resourceSpans. Only currently
40
+ # published data is returned; later trace updates are not awaited.
41
+ # @param session_id
42
+ # The session that owns this trace.
43
+ # @param object
44
+ # The object type, which is always `agent.session.trace`.
45
+ def initialize: (
46
+ id: String,
47
+ created_at: Integer,
48
+ otlp: ::Hash[Symbol, top],
49
+ session_id: String,
50
+ ?object: :"agent.session.trace"
51
+ ) -> void
52
+
53
+ def to_hash: -> {
54
+ id: String,
55
+ created_at: Integer,
56
+ ?object: :"agent.session.trace",
57
+ otlp: ::Hash[Symbol, top],
58
+ session_id: String
59
+ }
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,81 @@
1
+ module OpenAI
2
+ module Models
3
+ module Beta
4
+ module Agents
5
+ module Sessions
6
+ type trace_list_params =
7
+ {
8
+ session_id: String,
9
+ ?after: String,
10
+ ?limit: Integer,
11
+ ?order: OpenAI::Models::Beta::Agents::Sessions::TraceListParams::order,
12
+ ?request_options: OpenAI::request_opts
13
+ }
14
+
15
+ class TraceListParams < OpenAI::Internal::Type::BaseModel
16
+ extend OpenAI::Internal::Type::RequestParameters::Converter
17
+ include OpenAI::Internal::Type::RequestParameters
18
+
19
+ attr_accessor session_id: String
20
+
21
+ # Return resources after this resource ID in the selected order.
22
+ attr_reader after: String?
23
+
24
+ # Return resources after this resource ID in the selected order.
25
+ def after=: (String) -> String
26
+
27
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
28
+ attr_reader limit: Integer?
29
+
30
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
31
+ def limit=: (Integer) -> Integer
32
+
33
+ # The order in which resources are returned. Defaults to `desc`.
34
+ attr_reader order: OpenAI::Models::Beta::Agents::Sessions::TraceListParams::order?
35
+
36
+ # The order in which resources are returned. Defaults to `desc`.
37
+ def order=: (
38
+ OpenAI::Models::Beta::Agents::Sessions::TraceListParams::order
39
+ ) -> OpenAI::Models::Beta::Agents::Sessions::TraceListParams::order
40
+
41
+ # @param after
42
+ # Return resources after this resource ID in the selected order.
43
+ # @param limit
44
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
45
+ # @param order
46
+ # The order in which resources are returned. Defaults to `desc`.
47
+ def initialize: (
48
+ session_id: String,
49
+ ?after: String,
50
+ ?limit: Integer,
51
+ ?order: OpenAI::Models::Beta::Agents::Sessions::TraceListParams::order,
52
+ ?request_options: OpenAI::request_opts
53
+ ) -> void
54
+
55
+ def to_hash: -> {
56
+ session_id: String,
57
+ ?after: String,
58
+ ?limit: Integer,
59
+ ?order: OpenAI::Models::Beta::Agents::Sessions::TraceListParams::order,
60
+ ?request_options: OpenAI::RequestOptions
61
+ }
62
+
63
+ type order = :asc | :desc
64
+
65
+ module Order
66
+ extend OpenAI::Internal::Type::Enum
67
+
68
+ # Returns resources in ascending order.
69
+ ASC: :asc
70
+
71
+ # Returns resources in descending order.
72
+ DESC: :desc
73
+
74
+ def self?.values: -> ::Array[OpenAI::Models::Beta::Agents::Sessions::TraceListParams::order]
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end