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
@@ -14,21 +14,63 @@ module OpenAI
14
14
  module ResponsesOnlyModel
15
15
  extend OpenAI::Internal::Type::Enum
16
16
 
17
+ # @deprecated Announced shutdown date: 2026-10-23. See
18
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
19
+ # replacements.
17
20
  O1_PRO = :"o1-pro"
21
+ # @deprecated Announced shutdown date: 2026-10-23. See
22
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
23
+ # replacements.
18
24
  O1_PRO_2025_03_19 = :"o1-pro-2025-03-19"
25
+ # @deprecated Announced shutdown date: 2026-12-11. See
26
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
27
+ # replacements.
19
28
  O3_PRO = :"o3-pro"
29
+ # @deprecated Announced shutdown date: 2026-12-11. See
30
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
31
+ # replacements.
20
32
  O3_PRO_2025_06_10 = :"o3-pro-2025-06-10"
33
+ # @deprecated Announced shutdown date: 2026-07-23. See
34
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
35
+ # replacements.
21
36
  O3_DEEP_RESEARCH = :"o3-deep-research"
37
+ # @deprecated Announced shutdown date: 2026-07-23. See
38
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
39
+ # replacements.
22
40
  O3_DEEP_RESEARCH_2025_06_26 = :"o3-deep-research-2025-06-26"
41
+ # @deprecated Announced shutdown date: 2026-07-23. See
42
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
43
+ # replacements.
23
44
  O4_MINI_DEEP_RESEARCH = :"o4-mini-deep-research"
45
+ # @deprecated Announced shutdown date: 2026-07-23. See
46
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
47
+ # replacements.
24
48
  O4_MINI_DEEP_RESEARCH_2025_06_26 = :"o4-mini-deep-research-2025-06-26"
49
+ # @deprecated Announced shutdown date: 2026-07-23. See
50
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
51
+ # replacements.
25
52
  COMPUTER_USE_PREVIEW = :"computer-use-preview"
53
+ # @deprecated Announced shutdown date: 2026-07-23. See
54
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
55
+ # replacements.
26
56
  COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11"
27
57
  GPT_5_5_PRO = :"gpt-5.5-pro"
28
58
  GPT_5_5_PRO_2026_04_23 = :"gpt-5.5-pro-2026-04-23"
59
+ # @deprecated Announced shutdown date: 2026-07-23. See
60
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
61
+ # replacements.
29
62
  GPT_5_CODEX = :"gpt-5-codex"
63
+ # @deprecated Announced shutdown date: 2026-12-11. See
64
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
65
+ # replacements.
30
66
  GPT_5_PRO = :"gpt-5-pro"
67
+ # @deprecated Announced shutdown date: 2026-12-11. See
68
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
69
+ # replacements.
31
70
  GPT_5_PRO_2025_10_06 = :"gpt-5-pro-2025-10-06"
71
+ # @deprecated Announced shutdown date: 2026-07-23. See
72
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
73
+ # replacements.
32
74
  GPT_5_1_CODEX_MAX = :"gpt-5.1-codex-max"
33
75
  GPT_DAYBREAK_BLUE_LATEST = :"gpt-daybreak-blue-latest"
34
76
  GPT_DAYBREAK_RED_LATEST = :"gpt-daybreak-red-latest"
@@ -29,6 +29,8 @@ module OpenAI
29
29
  # object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
30
30
  # voices are available in the
31
31
  # [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
32
+ # Custom voices must be created from audio samples. Voices created from text
33
+ # prompts are supported only in Live.
32
34
  #
33
35
  # @return [String, Symbol, OpenAI::Models::Audio::SpeechCreateParams::Voice::ID, OpenAI::Models::Audio::SpeechCreateParams::Voice]
34
36
  required :voice, union: -> { OpenAI::Audio::SpeechCreateParams::Voice }
@@ -77,6 +79,8 @@ module OpenAI
77
79
  # object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
78
80
  # voices are available in the
79
81
  # [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
82
+ # Custom voices must be created from audio samples. Voices created from text
83
+ # prompts are supported only in Live.
80
84
  #
81
85
  # @param instructions [String]
82
86
  # Control the voice of your generated audio with additional instructions. Does not
@@ -117,6 +121,8 @@ module OpenAI
117
121
  # object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
118
122
  # voices are available in the
119
123
  # [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
124
+ # Custom voices must be created from audio samples. Voices created from text
125
+ # prompts are supported only in Live.
120
126
  module Voice
121
127
  extend OpenAI::Internal::Type::Union
122
128
 
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Audio
6
+ # @see OpenAI::Resources::Audio::Voices#create
7
+ class Voice < OpenAI::Internal::Type::BaseModel
8
+ # @!attribute id
9
+ # The voice identifier, which can be referenced in API endpoints.
10
+ #
11
+ # @return [String]
12
+ required :id, String
13
+
14
+ # @!attribute created_at
15
+ # The Unix timestamp (in seconds) for when the voice was created.
16
+ #
17
+ # @return [Integer]
18
+ required :created_at, Integer
19
+
20
+ # @!attribute name
21
+ # The name of the voice.
22
+ #
23
+ # @return [String]
24
+ required :name, String
25
+
26
+ # @!attribute object
27
+ # The object type, which is always `audio.voice`.
28
+ #
29
+ # @return [Symbol, :"audio.voice"]
30
+ required :object, const: :"audio.voice"
31
+
32
+ # @!attribute type
33
+ # How the voice was created. Voices created from text prompts are supported only
34
+ # in Live.
35
+ #
36
+ # @return [Symbol, OpenAI::Models::Audio::Voice::Type]
37
+ required :type, enum: -> { OpenAI::Audio::Voice::Type }
38
+
39
+ # @!method initialize(id:, created_at:, name:, type:, object: :"audio.voice")
40
+ # A custom voice that can be used for audio output. Voices created from text
41
+ # prompts are supported only in Live.
42
+ #
43
+ # @param id [String]
44
+ # The voice identifier, which can be referenced in API endpoints.
45
+ #
46
+ # @param created_at [Integer]
47
+ # The Unix timestamp (in seconds) for when the voice was created.
48
+ #
49
+ # @param name [String]
50
+ # The name of the voice.
51
+ #
52
+ # @param type [Symbol, OpenAI::Models::Audio::Voice::Type]
53
+ # How the voice was created. Voices created from text prompts are supported only
54
+ # in Live.
55
+ #
56
+ # @param object [Symbol, :"audio.voice"]
57
+ # The object type, which is always `audio.voice`.
58
+
59
+ # How the voice was created. Voices created from text prompts are supported only
60
+ # in Live.
61
+ #
62
+ # @see OpenAI::Models::Audio::Voice#type
63
+ module Type
64
+ extend OpenAI::Internal::Type::Enum
65
+
66
+ AUDIO_SAMPLE = :audio_sample
67
+ PROMPT = :prompt
68
+
69
+ # @!method self.values
70
+ # @return [Array<Symbol>]
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,217 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Audio
6
+ # @see OpenAI::Resources::Audio::Voices#create
7
+ class VoiceCreateParams < OpenAI::Internal::Type::BaseModel
8
+ extend OpenAI::Internal::Type::RequestParameters::Converter
9
+ include OpenAI::Internal::Type::RequestParameters
10
+
11
+ # @!attribute body
12
+ # Creates a voice from a consent recording and an audio sample. Requires
13
+ # multipart/form-data.
14
+ #
15
+ # @return [OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt]
16
+ required :body, union: -> { OpenAI::Audio::VoiceCreateParams::Body }
17
+
18
+ # @!method initialize(body:, request_options: {})
19
+ # @param body [OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt]
20
+ # Creates a voice from a consent recording and an audio sample. Requires
21
+ # multipart/form-data.
22
+ #
23
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
24
+
25
+ # Creates a voice from a consent recording and an audio sample. Requires
26
+ # multipart/form-data.
27
+ module Body
28
+ extend OpenAI::Internal::Type::Union
29
+
30
+ discriminator :type
31
+
32
+ # @api private
33
+ def self.resolve_variant(value, state: nil)
34
+ if value.is_a?(Hash) && !value.key?(:type) && !value.key?("type")
35
+ OpenAI::Audio::VoiceCreateParams::Body::AudioSample
36
+ else
37
+ super
38
+ end
39
+ end
40
+
41
+ private_class_method :resolve_variant
42
+
43
+ # Creates a voice from a consent recording and an audio sample. Requires multipart/form-data.
44
+ variant :audio_sample, -> { OpenAI::Audio::VoiceCreateParams::Body::AudioSample }
45
+
46
+ # Creates a synthetic voice from a text description. Supports application/json or multipart/form-data.
47
+ variant :prompt, -> { OpenAI::Audio::VoiceCreateParams::Body::Prompt }
48
+
49
+ class AudioSample < OpenAI::Internal::Type::BaseModel
50
+ # @!attribute audio_sample
51
+ # The sample audio recording file. Maximum size is 10 MiB.
52
+ #
53
+ # Supported MIME types: `audio/mpeg`, `audio/wav`, `audio/x-wav`, `audio/ogg`,
54
+ # `audio/aac`, `audio/flac`, `audio/webm`, `audio/mp4`.
55
+ #
56
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
57
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
58
+ # content type.
59
+ #
60
+ # @return [Pathname, StringIO, IO, String, OpenAI::FilePart]
61
+ required :audio_sample, OpenAI::Internal::Type::FileInput
62
+
63
+ # @!attribute consent
64
+ # The consent recording ID (for example, `cons_1234`).
65
+ #
66
+ # @return [String]
67
+ required :consent, String
68
+
69
+ # @!attribute name
70
+ # The name of the new voice.
71
+ #
72
+ # @return [String]
73
+ required :name, String
74
+
75
+ # @!attribute type
76
+ # The voice creation method. Defaults to `audio_sample` when omitted.
77
+ #
78
+ # @return [Symbol, OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample::Type, nil]
79
+ optional :type, enum: -> { OpenAI::Audio::VoiceCreateParams::Body::AudioSample::Type }
80
+
81
+ # @!method initialize(audio_sample:, consent:, name:, type: nil)
82
+ # Creates a voice from a consent recording and an audio sample. Requires
83
+ # multipart/form-data.
84
+ #
85
+ # @param audio_sample [Pathname, StringIO, IO, String, OpenAI::FilePart]
86
+ # The sample audio recording file. Maximum size is 10 MiB.
87
+ #
88
+ # Supported MIME types: `audio/mpeg`, `audio/wav`, `audio/x-wav`, `audio/ogg`,
89
+ # `audio/aac`, `audio/flac`, `audio/webm`, `audio/mp4`.
90
+ #
91
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
92
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
93
+ # content type.
94
+ #
95
+ # @param consent [String]
96
+ # The consent recording ID (for example, `cons_1234`).
97
+ #
98
+ # @param name [String]
99
+ # The name of the new voice.
100
+ #
101
+ # @param type [Symbol, OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample::Type]
102
+ # The voice creation method. Defaults to `audio_sample` when omitted.
103
+
104
+ # The voice creation method. Defaults to `audio_sample` when omitted.
105
+ #
106
+ # @see OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample#type
107
+ module Type
108
+ extend OpenAI::Internal::Type::Enum
109
+
110
+ AUDIO_SAMPLE = :audio_sample
111
+
112
+ # @!method self.values
113
+ # @return [Array<Symbol>]
114
+ end
115
+ end
116
+
117
+ class Prompt < OpenAI::Internal::Type::BaseModel
118
+ # @!attribute name
119
+ # The name of the new voice.
120
+ #
121
+ # @return [String]
122
+ required :name, String
123
+
124
+ # @!attribute prompt
125
+ # A description of the desired voice. Must not contain only whitespace.
126
+ #
127
+ # @return [String]
128
+ required :prompt, String
129
+
130
+ # @!attribute type
131
+ # Set to `prompt` to create a voice from a text description.
132
+ #
133
+ # @return [Symbol, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::Type]
134
+ required :type, enum: -> { OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type }
135
+
136
+ # @!attribute model
137
+ # The voice creation model to use. Defaults to `auto`.
138
+ #
139
+ # @return [String, Symbol, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::Model, nil]
140
+ optional :model, union: -> { OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model }
141
+
142
+ # @!attribute script_hint
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
+ #
147
+ # @return [String, nil]
148
+ optional :script_hint, String
149
+
150
+ # @!method initialize(name:, prompt:, type:, model: nil, script_hint: nil)
151
+ # Creates a synthetic voice from a text description. Supports application/json or
152
+ # multipart/form-data.
153
+ #
154
+ # @param name [String]
155
+ # The name of the new voice.
156
+ #
157
+ # @param prompt [String]
158
+ # A description of the desired voice. Must not contain only whitespace.
159
+ #
160
+ # @param type [Symbol, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::Type]
161
+ # Set to `prompt` to create a voice from a text description.
162
+ #
163
+ # @param model [String, Symbol, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::Model]
164
+ # The voice creation model to use. Defaults to `auto`.
165
+ #
166
+ # @param script_hint [String]
167
+ # Optional text for the voice to speak during creation. If omitted, a script is
168
+ # generated from the prompt. Must not be blank after trimming whitespace; scripts
169
+ # that are too short are rejected.
170
+
171
+ # Set to `prompt` to create a voice from a text description.
172
+ #
173
+ # @see OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt#type
174
+ module Type
175
+ extend OpenAI::Internal::Type::Enum
176
+
177
+ PROMPT = :prompt
178
+
179
+ # @!method self.values
180
+ # @return [Array<Symbol>]
181
+ end
182
+
183
+ # The voice creation model to use. Defaults to `auto`.
184
+ #
185
+ # @see OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt#model
186
+ module Model
187
+ extend OpenAI::Internal::Type::Union
188
+
189
+ variant String
190
+
191
+ variant const: -> { OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::Model::AUTO }
192
+
193
+ variant const: -> { OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::Model::MODEL_2026_10_01 }
194
+
195
+ # @!method self.variants
196
+ # @return [Array(String, Symbol)]
197
+
198
+ define_sorbet_constant!(:Variants) do
199
+ T.type_alias { T.any(String, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::TaggedSymbol) }
200
+ end
201
+
202
+ # @!group
203
+
204
+ AUTO = :auto
205
+ MODEL_2026_10_01 = :"2026-10-01"
206
+
207
+ # @!endgroup
208
+ end
209
+ end
210
+
211
+ # @!method self.variants
212
+ # @return [Array(OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt)]
213
+ end
214
+ end
215
+ end
216
+ end
217
+ end
@@ -123,9 +123,6 @@ module OpenAI
123
123
  # Uses the fast service tier.
124
124
  FAST = :fast
125
125
 
126
- # Uses the ultrafast service tier.
127
- ULTRAFAST = :ultrafast
128
-
129
126
  # @!method self.values
130
127
  # @return [Array<Symbol>]
131
128
  end
@@ -130,9 +130,6 @@ module OpenAI
130
130
  # Uses the fast service tier.
131
131
  FAST = :fast
132
132
 
133
- # Uses the ultrafast service tier.
134
- ULTRAFAST = :ultrafast
135
-
136
133
  # @!method self.values
137
134
  # @return [Array<Symbol>]
138
135
  end
@@ -183,9 +183,6 @@ module OpenAI
183
183
  # Uses the fast service tier.
184
184
  FAST = :fast
185
185
 
186
- # Uses the ultrafast service tier.
187
- ULTRAFAST = :ultrafast
188
-
189
186
  # @!method self.values
190
187
  # @return [Array<Symbol>]
191
188
  end
@@ -134,9 +134,6 @@ module OpenAI
134
134
  # Uses the fast service tier.
135
135
  FAST = :fast
136
136
 
137
- # Uses the ultrafast service tier.
138
- ULTRAFAST = :ultrafast
139
-
140
137
  # @!method self.values
141
138
  # @return [Array<Symbol>]
142
139
  end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module Agents
7
+ module Sessions
8
+ # @see OpenAI::Resources::Beta::Agents::Sessions::Traces#list
9
+ class SessionTrace < OpenAI::Internal::Type::BaseModel
10
+ # @!attribute id
11
+ # The root turn ID. Use this ID as the pagination anchor.
12
+ #
13
+ # @return [String]
14
+ required :id, String
15
+
16
+ # @!attribute created_at
17
+ # The Unix timestamp in seconds when the root turn was created.
18
+ #
19
+ # @return [Integer]
20
+ required :created_at, Integer
21
+
22
+ # @!attribute object
23
+ # The object type, which is always `agent.session.trace`.
24
+ #
25
+ # @return [Symbol, :"agent.session.trace"]
26
+ required :object, const: :"agent.session.trace"
27
+
28
+ # @!attribute otlp
29
+ # An OTLP JSON ExportTraceServiceRequest containing resourceSpans. Only currently
30
+ # published data is returned; later trace updates are not awaited.
31
+ #
32
+ # @return [Hash{Symbol=>Object}]
33
+ required :otlp, OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Unknown]
34
+
35
+ # @!attribute session_id
36
+ # The session that owns this trace.
37
+ #
38
+ # @return [String]
39
+ required :session_id, String
40
+
41
+ # @!method initialize(id:, created_at:, otlp:, session_id:, object: :"agent.session.trace")
42
+ # @param id [String]
43
+ # The root turn ID. Use this ID as the pagination anchor.
44
+ #
45
+ # @param created_at [Integer]
46
+ # The Unix timestamp in seconds when the root turn was created.
47
+ #
48
+ # @param otlp [Hash{Symbol=>Object}]
49
+ # An OTLP JSON ExportTraceServiceRequest containing resourceSpans. Only currently
50
+ # published data is returned; later trace updates are not awaited.
51
+ #
52
+ # @param session_id [String]
53
+ # The session that owns this trace.
54
+ #
55
+ # @param object [Symbol, :"agent.session.trace"]
56
+ # The object type, which is always `agent.session.trace`.
57
+ end
58
+ end
59
+
60
+ SessionTrace = Sessions::SessionTrace
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module Agents
7
+ module Sessions
8
+ # @see OpenAI::Resources::Beta::Agents::Sessions::Traces#list
9
+ class TraceListParams < OpenAI::Internal::Type::BaseModel
10
+ extend OpenAI::Internal::Type::RequestParameters::Converter
11
+ include OpenAI::Internal::Type::RequestParameters
12
+
13
+ # @!attribute session_id
14
+ #
15
+ # @return [String]
16
+ required :session_id, String
17
+
18
+ # @!attribute after
19
+ # Return resources after this resource ID in the selected order.
20
+ #
21
+ # @return [String, nil]
22
+ optional :after, String
23
+
24
+ # @!attribute limit
25
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
26
+ #
27
+ # @return [Integer, nil]
28
+ optional :limit, Integer
29
+
30
+ # @!attribute order
31
+ # The order in which resources are returned. Defaults to `desc`.
32
+ #
33
+ # @return [Symbol, OpenAI::Models::Beta::Agents::Sessions::TraceListParams::Order, nil]
34
+ optional :order, enum: -> { OpenAI::Beta::Agents::Sessions::TraceListParams::Order }
35
+
36
+ # @!method initialize(session_id:, after: nil, limit: nil, order: nil, request_options: {})
37
+ # @param session_id [String]
38
+ #
39
+ # @param after [String]
40
+ # Return resources after this resource ID in the selected order.
41
+ #
42
+ # @param limit [Integer]
43
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
44
+ #
45
+ # @param order [Symbol, OpenAI::Models::Beta::Agents::Sessions::TraceListParams::Order]
46
+ # The order in which resources are returned. Defaults to `desc`.
47
+ #
48
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
49
+
50
+ # The order in which resources are returned. Defaults to `desc`.
51
+ module Order
52
+ extend OpenAI::Internal::Type::Enum
53
+
54
+ # Returns resources in ascending order.
55
+ ASC = :asc
56
+
57
+ # Returns resources in descending order.
58
+ DESC = :desc
59
+
60
+ # @!method self.values
61
+ # @return [Array<Symbol>]
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -55,7 +55,11 @@ module OpenAI
55
55
  # @return [String]
56
56
  required :vault_id, String
57
57
 
58
- # @!method initialize(id:, auth:, created_at:, metadata:, name:, updated_at:, vault_id:, object: :"vault.credential")
58
+ def initialize(data = {})
59
+ super({metadata: {}, **data})
60
+ end
61
+
62
+ # @!method initialize(id:, auth:, created_at:, name:, updated_at:, vault_id:, metadata: {}, object: :"vault.credential")
59
63
  # Metadata for a stored credential. Secret values are never returned.
60
64
  #
61
65
  # @param id [String]
@@ -67,9 +71,6 @@ module OpenAI
67
71
  # @param created_at [Integer]
68
72
  # The Unix timestamp, in seconds, when the credential was created.
69
73
  #
70
- # @param metadata [Hash{Symbol=>String}]
71
- # Application-defined key-value pairs associated with this credential.
72
- #
73
74
  # @param name [String]
74
75
  # The human-readable name of the credential.
75
76
  #
@@ -79,6 +80,9 @@ module OpenAI
79
80
  # @param vault_id [String]
80
81
  # The ID of the vault containing this credential.
81
82
  #
83
+ # @param metadata [Hash{Symbol=>String}]
84
+ # Application-defined key-value pairs associated with this credential.
85
+ #
82
86
  # @param object [Symbol, :"vault.credential"]
83
87
  # The object type. Always `vault.credential`.
84
88
  end