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
@@ -0,0 +1,321 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Audio
7
+
8
+ class VoiceCreateParams < OpenAI::Internal::Type::BaseModel
9
+
10
+ extend OpenAI::Internal::Type::RequestParameters::Converter
11
+ include OpenAI::Internal::Type::RequestParameters
12
+
13
+ OrHash = T.type_alias do
14
+ T.any(
15
+ OpenAI::Audio::VoiceCreateParams,
16
+ OpenAI::Internal::AnyHash
17
+ )
18
+ end
19
+
20
+ # Creates a voice from a consent recording and an audio sample. Requires
21
+ # multipart/form-data.
22
+ sig {
23
+ returns(
24
+ T.any(OpenAI::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Audio::VoiceCreateParams::Body::Prompt)
25
+ )
26
+ }
27
+ attr_accessor :body
28
+
29
+ sig do
30
+ params(
31
+
32
+ body: T.any(
33
+ OpenAI::Audio::VoiceCreateParams::Body::AudioSample::OrHash,
34
+ OpenAI::Audio::VoiceCreateParams::Body::Prompt::OrHash
35
+ ),
36
+
37
+ request_options: OpenAI::RequestOptions::OrHash
38
+ )
39
+ .returns(T.attached_class)
40
+ end
41
+ def self.new(
42
+
43
+ # Creates a voice from a consent recording and an audio sample. Requires
44
+ # multipart/form-data.
45
+ body:,
46
+
47
+ request_options: {}
48
+ )
49
+ end
50
+
51
+ sig do
52
+ override.returns(
53
+ {
54
+ body: T.any(
55
+ OpenAI::Audio::VoiceCreateParams::Body::AudioSample,
56
+ OpenAI::Audio::VoiceCreateParams::Body::Prompt
57
+ ),
58
+ request_options: OpenAI::RequestOptions
59
+ }
60
+ )
61
+ end
62
+ def to_hash
63
+ end
64
+
65
+ # Creates a voice from a consent recording and an audio sample. Requires
66
+ # multipart/form-data.
67
+ module Body
68
+ extend OpenAI::Internal::Type::Union
69
+
70
+ Variants = T.type_alias {
71
+ T.any(OpenAI::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Audio::VoiceCreateParams::Body::Prompt)
72
+ }
73
+
74
+ class AudioSample < OpenAI::Internal::Type::BaseModel
75
+ OrHash = T.type_alias do
76
+ T.any(
77
+ OpenAI::Audio::VoiceCreateParams::Body::AudioSample,
78
+ OpenAI::Internal::AnyHash
79
+ )
80
+ end
81
+
82
+ # The sample audio recording file. Maximum size is 10 MiB.
83
+ #
84
+ # Supported MIME types: `audio/mpeg`, `audio/wav`, `audio/x-wav`, `audio/ogg`,
85
+ # `audio/aac`, `audio/flac`, `audio/webm`, `audio/mp4`.
86
+ #
87
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
88
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
89
+ # content type.
90
+ sig { returns(OpenAI::Internal::FileInput) }
91
+ attr_accessor :audio_sample
92
+
93
+ # The consent recording ID (for example, `cons_1234`).
94
+ sig { returns(String) }
95
+ attr_accessor :consent
96
+
97
+ # The name of the new voice.
98
+ sig { returns(String) }
99
+ attr_accessor :name
100
+
101
+ # The voice creation method. Defaults to `audio_sample` when omitted.
102
+ sig { returns(T.nilable(OpenAI::Audio::VoiceCreateParams::Body::AudioSample::Type::OrSymbol)) }
103
+ attr_reader :type
104
+
105
+ sig { params(type: OpenAI::Audio::VoiceCreateParams::Body::AudioSample::Type::OrSymbol).void }
106
+ attr_writer :type
107
+
108
+ # Creates a voice from a consent recording and an audio sample. Requires
109
+ # multipart/form-data.
110
+ sig do
111
+ params(
112
+
113
+ audio_sample: OpenAI::Internal::FileInput,
114
+
115
+ consent: String,
116
+
117
+ name: String,
118
+
119
+ type: OpenAI::Audio::VoiceCreateParams::Body::AudioSample::Type::OrSymbol
120
+ )
121
+ .returns(T.attached_class)
122
+ end
123
+ def self.new(
124
+
125
+ # The sample audio recording file. Maximum size is 10 MiB.
126
+ #
127
+ # Supported MIME types: `audio/mpeg`, `audio/wav`, `audio/x-wav`, `audio/ogg`,
128
+ # `audio/aac`, `audio/flac`, `audio/webm`, `audio/mp4`.
129
+ #
130
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
131
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
132
+ # content type.
133
+ audio_sample:,
134
+
135
+ # The consent recording ID (for example, `cons_1234`).
136
+ consent:,
137
+
138
+ # The name of the new voice.
139
+ name:,
140
+
141
+ # The voice creation method. Defaults to `audio_sample` when omitted.
142
+
143
+ type: nil
144
+ )
145
+ end
146
+
147
+ sig do
148
+ override.returns(
149
+ {
150
+ audio_sample: OpenAI::Internal::FileInput,
151
+ consent: String,
152
+ name: String,
153
+ type: OpenAI::Audio::VoiceCreateParams::Body::AudioSample::Type::OrSymbol
154
+ }
155
+ )
156
+ end
157
+ def to_hash
158
+ end
159
+
160
+ # The voice creation method. Defaults to `audio_sample` when omitted.
161
+ module Type
162
+ extend OpenAI::Internal::Type::Enum
163
+
164
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Audio::VoiceCreateParams::Body::AudioSample::Type) }
165
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
166
+
167
+ AUDIO_SAMPLE = T.let(
168
+ :audio_sample,
169
+ OpenAI::Audio::VoiceCreateParams::Body::AudioSample::Type::TaggedSymbol
170
+ )
171
+
172
+ sig {
173
+ override.returns(T::Array[OpenAI::Audio::VoiceCreateParams::Body::AudioSample::Type::TaggedSymbol])
174
+ }
175
+ def self.values
176
+ end
177
+ end
178
+ end
179
+
180
+ class Prompt < OpenAI::Internal::Type::BaseModel
181
+ OrHash = T.type_alias do
182
+ T.any(
183
+ OpenAI::Audio::VoiceCreateParams::Body::Prompt,
184
+ OpenAI::Internal::AnyHash
185
+ )
186
+ end
187
+
188
+ # The name of the new voice.
189
+ sig { returns(String) }
190
+ attr_accessor :name
191
+
192
+ # A description of the desired voice. Must not contain only whitespace.
193
+ sig { returns(String) }
194
+ attr_accessor :prompt
195
+
196
+ # Set to `prompt` to create a voice from a text description.
197
+ sig { returns(OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type::OrSymbol) }
198
+ attr_accessor :type
199
+
200
+ # The voice creation model to use. Defaults to `auto`.
201
+ sig { returns(T.nilable(T.any(String, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::OrSymbol))) }
202
+ attr_reader :model
203
+
204
+ sig { params(model: T.any(String, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::OrSymbol)).void }
205
+ attr_writer :model
206
+
207
+ # Optional text for the voice to speak during creation. If omitted, a script is
208
+ # generated from the prompt. Must not be blank after trimming whitespace; scripts
209
+ # that are too short are rejected.
210
+ sig { returns(T.nilable(String)) }
211
+ attr_reader :script_hint
212
+
213
+ sig { params(script_hint: String).void }
214
+ attr_writer :script_hint
215
+
216
+ # Creates a synthetic voice from a text description. Supports application/json or
217
+ # multipart/form-data.
218
+ sig do
219
+ params(
220
+
221
+ name: String,
222
+
223
+ prompt: String,
224
+
225
+ type: OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type::OrSymbol,
226
+
227
+ model: T.any(String, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::OrSymbol),
228
+
229
+ script_hint: String
230
+ )
231
+ .returns(T.attached_class)
232
+ end
233
+ def self.new(
234
+
235
+ # The name of the new voice.
236
+ name:,
237
+
238
+ # A description of the desired voice. Must not contain only whitespace.
239
+ prompt:,
240
+
241
+ # Set to `prompt` to create a voice from a text description.
242
+ type:,
243
+
244
+ # The voice creation model to use. Defaults to `auto`.
245
+ model: nil,
246
+
247
+ # Optional text for the voice to speak during creation. If omitted, a script is
248
+ # generated from the prompt. Must not be blank after trimming whitespace; scripts
249
+ # that are too short are rejected.
250
+
251
+ script_hint: nil
252
+ )
253
+ end
254
+
255
+ sig do
256
+ override.returns(
257
+ {
258
+ name: String,
259
+ prompt: String,
260
+ type: OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type::OrSymbol,
261
+ model: T.any(String, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::OrSymbol),
262
+ script_hint: String
263
+ }
264
+ )
265
+ end
266
+ def to_hash
267
+ end
268
+
269
+ # Set to `prompt` to create a voice from a text description.
270
+ module Type
271
+ extend OpenAI::Internal::Type::Enum
272
+
273
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type) }
274
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
275
+
276
+ PROMPT = T.let(:prompt, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type::TaggedSymbol)
277
+
278
+ sig { override.returns(T::Array[OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type::TaggedSymbol]) }
279
+ def self.values
280
+ end
281
+ end
282
+
283
+ # The voice creation model to use. Defaults to `auto`.
284
+ module Model
285
+ extend OpenAI::Internal::Type::Union
286
+
287
+ Variants = T.type_alias {
288
+ T.any(String, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::TaggedSymbol)
289
+ }
290
+
291
+ sig { override.returns(T::Array[OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::Variants]) }
292
+ def self.variants
293
+ end
294
+
295
+ TaggedSymbol = T.type_alias do
296
+ T.all(Symbol, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model)
297
+ end
298
+
299
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
300
+
301
+ AUTO = T.let(:auto, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::TaggedSymbol)
302
+ MODEL_2026_10_01 = T.let(
303
+ :"2026-10-01",
304
+ OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::TaggedSymbol
305
+ )
306
+
307
+ end
308
+ end
309
+
310
+ sig { override.returns(T::Array[OpenAI::Audio::VoiceCreateParams::Body::Variants]) }
311
+ def self.variants
312
+ end
313
+
314
+ end
315
+
316
+ end
317
+
318
+ end
319
+
320
+ end
321
+ end
@@ -206,9 +206,6 @@ module OpenAI
206
206
  # Uses the fast service tier.
207
207
  FAST = T.let(:fast, OpenAI::Beta::AgentCreateParams::ServiceTier::TaggedSymbol)
208
208
 
209
- # Uses the ultrafast service tier.
210
- ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::AgentCreateParams::ServiceTier::TaggedSymbol)
211
-
212
209
  sig { override.returns(T::Array[OpenAI::Beta::AgentCreateParams::ServiceTier::TaggedSymbol]) }
213
210
  def self.values
214
211
  end
@@ -217,9 +217,6 @@ module OpenAI
217
217
  # Uses the fast service tier.
218
218
  FAST = T.let(:fast, OpenAI::Beta::AgentUpdateParams::ServiceTier::TaggedSymbol)
219
219
 
220
- # Uses the ultrafast service tier.
221
- ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::AgentUpdateParams::ServiceTier::TaggedSymbol)
222
-
223
220
  sig { override.returns(T::Array[OpenAI::Beta::AgentUpdateParams::ServiceTier::TaggedSymbol]) }
224
221
  def self.values
225
222
  end
@@ -312,9 +312,6 @@ module OpenAI
312
312
  # Uses the fast service tier.
313
313
  FAST = T.let(:fast, OpenAI::Beta::Agents::SessionCreateParams::Agent::ServiceTier::TaggedSymbol)
314
314
 
315
- # Uses the ultrafast service tier.
316
- ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::Agents::SessionCreateParams::Agent::ServiceTier::TaggedSymbol)
317
-
318
315
  sig {
319
316
  override.returns(T::Array[OpenAI::Beta::Agents::SessionCreateParams::Agent::ServiceTier::TaggedSymbol])
320
317
  }
@@ -234,9 +234,6 @@ module OpenAI
234
234
  # Uses the fast service tier.
235
235
  FAST = T.let(:fast, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
236
236
 
237
- # Uses the ultrafast service tier.
238
- ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
239
-
240
237
  sig {
241
238
  override.returns(T::Array[OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol])
242
239
  }
@@ -0,0 +1,97 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Beta
7
+
8
+ module Agents
9
+
10
+ SessionTrace = Sessions::SessionTrace
11
+
12
+ module Sessions
13
+
14
+ class SessionTrace < OpenAI::Internal::Type::BaseModel
15
+
16
+ OrHash = T.type_alias do
17
+ T.any(
18
+ OpenAI::Beta::Agents::Sessions::SessionTrace,
19
+ OpenAI::Internal::AnyHash
20
+ )
21
+ end
22
+
23
+ # The root turn ID. Use this ID as the pagination anchor.
24
+ sig { returns(String) }
25
+ attr_accessor :id
26
+
27
+ # The Unix timestamp in seconds when the root turn was created.
28
+ sig { returns(Integer) }
29
+ attr_accessor :created_at
30
+
31
+ # The object type, which is always `agent.session.trace`.
32
+ sig { returns(Symbol) }
33
+ attr_accessor :object
34
+
35
+ # An OTLP JSON ExportTraceServiceRequest containing resourceSpans. Only currently
36
+ # published data is returned; later trace updates are not awaited.
37
+ sig { returns(T::Hash[Symbol, T.anything]) }
38
+ attr_accessor :otlp
39
+
40
+ # The session that owns this trace.
41
+ sig { returns(String) }
42
+ attr_accessor :session_id
43
+
44
+ sig do
45
+ params(
46
+
47
+ id: String,
48
+
49
+ created_at: Integer,
50
+
51
+ otlp: T::Hash[Symbol, T.anything],
52
+
53
+ session_id: String,
54
+
55
+ object: Symbol
56
+ )
57
+ .returns(T.attached_class)
58
+ end
59
+ def self.new(
60
+
61
+ # The root turn ID. Use this ID as the pagination anchor.
62
+ id:,
63
+
64
+ # The Unix timestamp in seconds when the root turn was created.
65
+ created_at:,
66
+
67
+ # An OTLP JSON ExportTraceServiceRequest containing resourceSpans. Only currently
68
+ # published data is returned; later trace updates are not awaited.
69
+ otlp:,
70
+
71
+ # The session that owns this trace.
72
+ session_id:,
73
+
74
+ # The object type, which is always `agent.session.trace`.
75
+
76
+ object: :"agent.session.trace"
77
+ )
78
+ end
79
+
80
+ sig do
81
+ override.returns(
82
+ {id: String, created_at: Integer, object: Symbol, otlp: T::Hash[Symbol, T.anything], session_id: String}
83
+ )
84
+ end
85
+ def to_hash
86
+ end
87
+
88
+ end
89
+
90
+ end
91
+
92
+ end
93
+
94
+ end
95
+
96
+ end
97
+ end
@@ -0,0 +1,121 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Beta
7
+
8
+ module Agents
9
+
10
+ module Sessions
11
+
12
+ class TraceListParams < OpenAI::Internal::Type::BaseModel
13
+
14
+ extend OpenAI::Internal::Type::RequestParameters::Converter
15
+ include OpenAI::Internal::Type::RequestParameters
16
+
17
+ OrHash = T.type_alias do
18
+ T.any(
19
+ OpenAI::Beta::Agents::Sessions::TraceListParams,
20
+ OpenAI::Internal::AnyHash
21
+ )
22
+ end
23
+
24
+ sig { returns(String) }
25
+ attr_accessor :session_id
26
+
27
+ # Return resources after this resource ID in the selected order.
28
+ sig { returns(T.nilable(String)) }
29
+ attr_reader :after
30
+
31
+ sig { params(after: String).void }
32
+ attr_writer :after
33
+
34
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
35
+ sig { returns(T.nilable(Integer)) }
36
+ attr_reader :limit
37
+
38
+ sig { params(limit: Integer).void }
39
+ attr_writer :limit
40
+
41
+ # The order in which resources are returned. Defaults to `desc`.
42
+ sig { returns(T.nilable(OpenAI::Beta::Agents::Sessions::TraceListParams::Order::OrSymbol)) }
43
+ attr_reader :order
44
+
45
+ sig { params(order: OpenAI::Beta::Agents::Sessions::TraceListParams::Order::OrSymbol).void }
46
+ attr_writer :order
47
+
48
+ sig do
49
+ params(
50
+
51
+ session_id: String,
52
+
53
+ after: String,
54
+
55
+ limit: Integer,
56
+
57
+ order: OpenAI::Beta::Agents::Sessions::TraceListParams::Order::OrSymbol,
58
+
59
+ request_options: OpenAI::RequestOptions::OrHash
60
+ )
61
+ .returns(T.attached_class)
62
+ end
63
+ def self.new(
64
+
65
+ session_id:,
66
+
67
+ # Return resources after this resource ID in the selected order.
68
+ after: nil,
69
+
70
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
71
+ limit: nil,
72
+
73
+ # The order in which resources are returned. Defaults to `desc`.
74
+ order: nil,
75
+
76
+ request_options: {}
77
+ )
78
+ end
79
+
80
+ sig do
81
+ override.returns(
82
+ {
83
+ session_id: String,
84
+ after: String,
85
+ limit: Integer,
86
+ order: OpenAI::Beta::Agents::Sessions::TraceListParams::Order::OrSymbol,
87
+ request_options: OpenAI::RequestOptions
88
+ }
89
+ )
90
+ end
91
+ def to_hash
92
+ end
93
+
94
+ # The order in which resources are returned. Defaults to `desc`.
95
+ module Order
96
+ extend OpenAI::Internal::Type::Enum
97
+
98
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Beta::Agents::Sessions::TraceListParams::Order) }
99
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
100
+
101
+ # Returns resources in ascending order.
102
+ ASC = T.let(:asc, OpenAI::Beta::Agents::Sessions::TraceListParams::Order::TaggedSymbol)
103
+
104
+ # Returns resources in descending order.
105
+ DESC = T.let(:desc, OpenAI::Beta::Agents::Sessions::TraceListParams::Order::TaggedSymbol)
106
+
107
+ sig { override.returns(T::Array[OpenAI::Beta::Agents::Sessions::TraceListParams::Order::TaggedSymbol]) }
108
+ def self.values
109
+ end
110
+ end
111
+
112
+ end
113
+
114
+ end
115
+
116
+ end
117
+
118
+ end
119
+
120
+ end
121
+ end
@@ -64,14 +64,14 @@ module OpenAI
64
64
 
65
65
  created_at: Integer,
66
66
 
67
- metadata: T::Hash[Symbol, String],
68
-
69
67
  name: String,
70
68
 
71
69
  updated_at: Integer,
72
70
 
73
71
  vault_id: String,
74
72
 
73
+ metadata: T::Hash[Symbol, String],
74
+
75
75
  object: Symbol
76
76
  )
77
77
  .returns(T.attached_class)
@@ -87,9 +87,6 @@ module OpenAI
87
87
  # The Unix timestamp, in seconds, when the credential was created.
88
88
  created_at:,
89
89
 
90
- # Application-defined key-value pairs associated with this credential.
91
- metadata:,
92
-
93
90
  # The human-readable name of the credential.
94
91
  name:,
95
92
 
@@ -99,6 +96,9 @@ module OpenAI
99
96
  # The ID of the vault containing this credential.
100
97
  vault_id:,
101
98
 
99
+ # Application-defined key-value pairs associated with this credential.
100
+ metadata: {},
101
+
102
102
  # The object type. Always `vault.credential`.
103
103
 
104
104
  object: :"vault.credential"
@@ -131,7 +131,7 @@ module OpenAI
131
131
  sig { returns(String) }
132
132
  attr_accessor :filename
133
133
 
134
- # The index of the file in the list of files.
134
+ # The index in the output text at which to insert the file citation.
135
135
  sig { returns(Integer) }
136
136
  attr_accessor :index
137
137
 
@@ -161,7 +161,7 @@ module OpenAI
161
161
  # The filename of the file cited.
162
162
  filename:,
163
163
 
164
- # The index of the file in the list of files.
164
+ # The index in the output text at which to insert the file citation.
165
165
  index:,
166
166
 
167
167
  # The type of the file citation. Always `file_citation`.
@@ -155,7 +155,7 @@ module OpenAI
155
155
  sig { returns(String) }
156
156
  attr_accessor :filename
157
157
 
158
- # The index of the file in the list of files.
158
+ # The index in the output text at which to insert the file citation.
159
159
  sig { returns(Integer) }
160
160
  attr_accessor :index
161
161
 
@@ -185,7 +185,7 @@ module OpenAI
185
185
  # The filename of the file cited.
186
186
  filename:,
187
187
 
188
- # The index of the file in the list of files.
188
+ # The index in the output text at which to insert the file citation.
189
189
  index:,
190
190
 
191
191
  # The type of the file citation. Always `file_citation`.
@@ -1050,9 +1050,7 @@ module OpenAI
1050
1050
  # the maximum supported resolution is `3840x2160`. The requested size must also
1051
1051
  # satisfy the model's current pixel and edge limits. The standard sizes
1052
1052
  # `1024x1024`, `1536x1024`, and `1024x1536` are supported by the GPT image models;
1053
- # `auto` is supported for models that allow automatic sizing. For `dall-e-2`, use
1054
- # one of `256x256`, `512x512`, or `1024x1024`. For `dall-e-3`, use one of
1055
- # `1024x1024`, `1792x1024`, or `1024x1792`.
1053
+ # `auto` is supported for models that allow automatic sizing.
1056
1054
  sig { returns(T.nilable(T.any(String, OpenAI::Beta::BetaTool::ImageGeneration::Size::OrSymbol))) }
1057
1055
  attr_reader :size
1058
1056
 
@@ -1150,9 +1148,7 @@ module OpenAI
1150
1148
  # the maximum supported resolution is `3840x2160`. The requested size must also
1151
1149
  # satisfy the model's current pixel and edge limits. The standard sizes
1152
1150
  # `1024x1024`, `1536x1024`, and `1024x1536` are supported by the GPT image models;
1153
- # `auto` is supported for models that allow automatic sizing. For `dall-e-2`, use
1154
- # one of `256x256`, `512x512`, or `1024x1024`. For `dall-e-3`, use one of
1155
- # `1024x1024`, `1792x1024`, or `1024x1792`.
1151
+ # `auto` is supported for models that allow automatic sizing.
1156
1152
  size: nil,
1157
1153
 
1158
1154
  # The type of the image generation tool. Always `image_generation`.
@@ -1407,9 +1403,7 @@ module OpenAI
1407
1403
  # the maximum supported resolution is `3840x2160`. The requested size must also
1408
1404
  # satisfy the model's current pixel and edge limits. The standard sizes
1409
1405
  # `1024x1024`, `1536x1024`, and `1024x1536` are supported by the GPT image models;
1410
- # `auto` is supported for models that allow automatic sizing. For `dall-e-2`, use
1411
- # one of `256x256`, `512x512`, or `1024x1024`. For `dall-e-3`, use one of
1412
- # `1024x1024`, `1792x1024`, or `1024x1792`.
1406
+ # `auto` is supported for models that allow automatic sizing.
1413
1407
  module Size
1414
1408
  extend OpenAI::Internal::Type::Union
1415
1409