openai 0.98.0 → 0.100.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 (245) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -1
  4. data/bedrock.md +17 -1
  5. data/lib/openai/client.rb +9 -0
  6. data/lib/openai/helpers/agents/session_stream.rb +11 -36
  7. data/lib/openai/helpers/agents/tools.rb +34 -4
  8. data/lib/openai/helpers/beta/agents/creation_stream.rb +26 -0
  9. data/lib/openai/helpers/beta/agents/function_tool.rb +11 -4
  10. data/lib/openai/helpers/beta/agents/tool_dispatcher.rb +74 -0
  11. data/lib/openai/helpers/beta/agents/tool_error.rb +28 -0
  12. data/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +140 -5
  13. data/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +140 -5
  14. data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +140 -5
  15. data/lib/openai/models/admin/organization/usage_completions_params.rb +9 -4
  16. data/lib/openai/models/admin/organization/usage_completions_response.rb +140 -5
  17. data/lib/openai/models/admin/organization/usage_costs_params.rb +16 -4
  18. data/lib/openai/models/admin/organization/usage_costs_response.rb +140 -5
  19. data/lib/openai/models/admin/organization/usage_embeddings_response.rb +140 -5
  20. data/lib/openai/models/admin/organization/usage_file_search_calls_response.rb +140 -5
  21. data/lib/openai/models/admin/organization/usage_images_response.rb +140 -5
  22. data/lib/openai/models/admin/organization/usage_moderations_response.rb +140 -5
  23. data/lib/openai/models/admin/organization/usage_vector_stores_response.rb +140 -5
  24. data/lib/openai/models/admin/organization/usage_web_search_calls_params.rb +9 -4
  25. data/lib/openai/models/admin/organization/usage_web_search_calls_response.rb +140 -5
  26. data/lib/openai/models/all_models.rb +42 -0
  27. data/lib/openai/models/audio/speech_create_params.rb +6 -0
  28. data/lib/openai/models/audio/voice.rb +75 -0
  29. data/lib/openai/models/audio/voice_create_params.rb +217 -0
  30. data/lib/openai/models/beta/agent_create_params.rb +0 -3
  31. data/lib/openai/models/beta/agent_update_params.rb +0 -3
  32. data/lib/openai/models/beta/agents/environments/template_create_params.rb +6 -6
  33. data/lib/openai/models/beta/agents/environments/template_update_params.rb +3 -6
  34. data/lib/openai/models/beta/agents/session_create_params.rb +0 -3
  35. data/lib/openai/models/beta/agents/session_update_params.rb +0 -3
  36. data/lib/openai/models/beta/agents/sessions/turns/item_list_params.rb +79 -0
  37. data/lib/openai/models/beta/beta_response.rb +220 -0
  38. data/lib/openai/models/beta/beta_response_computer_tool_call_output_item.rb +2 -2
  39. data/lib/openai/models/beta/beta_response_error.rb +12 -1
  40. data/lib/openai/models/beta/beta_responses_client_event.rb +220 -0
  41. data/lib/openai/models/beta/beta_responses_server_event.rb +12 -1
  42. data/lib/openai/models/beta/beta_tool.rb +15 -18
  43. data/lib/openai/models/beta/environment_param.rb +6 -6
  44. data/lib/openai/models/beta/response_compact_params.rb +220 -0
  45. data/lib/openai/models/beta/response_create_params.rb +220 -0
  46. data/lib/openai/models/beta/session_turn_error.rb +9 -0
  47. data/lib/openai/models/chat/chat_completion_audio_param.rb +6 -3
  48. data/lib/openai/models/chat/chat_completion_chunk.rb +85 -18
  49. data/lib/openai/models/chat_model.rb +178 -0
  50. data/lib/openai/models/error_object.rb +12 -1
  51. data/lib/openai/models/eval_create_params.rb +1 -1
  52. data/lib/openai/models/eval_create_response.rb +1 -1
  53. data/lib/openai/models/eval_list_response.rb +1 -1
  54. data/lib/openai/models/eval_retrieve_response.rb +1 -1
  55. data/lib/openai/models/eval_update_response.rb +1 -1
  56. data/lib/openai/models/fine_tuning/job_list_params.rb +14 -4
  57. data/lib/openai/models/graders/score_model_grader.rb +2 -2
  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 +88 -96
  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/realtime/realtime_audio_config_output.rb +9 -6
  64. data/lib/openai/models/realtime/realtime_client_event.rb +9 -0
  65. data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +9 -6
  66. data/lib/openai/models/realtime/session_update_event.rb +16 -0
  67. data/lib/openai/models/responses/response_compact_params.rb +220 -0
  68. data/lib/openai/models/responses/response_computer_tool_call_output_item.rb +2 -2
  69. data/lib/openai/models/responses/response_error.rb +12 -1
  70. data/lib/openai/models/responses/responses_server_event.rb +12 -1
  71. data/lib/openai/models/responses/tool.rb +15 -18
  72. data/lib/openai/models/responses_model.rb +42 -0
  73. data/lib/openai/models/video_create_error.rb +12 -1
  74. data/lib/openai/models/webhooks/agent_session_action_required_webhook_event.rb +109 -0
  75. data/lib/openai/models/webhooks/agent_session_created_webhook_event.rb +106 -0
  76. data/lib/openai/models/webhooks/agent_session_failed_webhook_event.rb +86 -0
  77. data/lib/openai/models/webhooks/agent_session_idle_webhook_event.rb +86 -0
  78. data/lib/openai/models/webhooks/agent_session_in_progress_webhook_event.rb +86 -0
  79. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +18 -2
  80. data/lib/openai/models/webhooks/webhook_create_params.rb +5 -0
  81. data/lib/openai/models/webhooks/webhook_test_params.rb +5 -0
  82. data/lib/openai/models/webhooks/webhook_update_params.rb +5 -0
  83. data/lib/openai/providers/bedrock.rb +20 -1
  84. data/lib/openai/resources/admin/organization/usage.rb +15 -6
  85. data/lib/openai/resources/audio/speech.rb +2 -0
  86. data/lib/openai/resources/audio/voices.rb +53 -0
  87. data/lib/openai/resources/audio.rb +5 -0
  88. data/lib/openai/resources/beta/agents/environments/templates.rb +3 -4
  89. data/lib/openai/resources/beta/agents/sessions/turns/items.rb +68 -0
  90. data/lib/openai/resources/beta/agents/sessions/turns.rb +4 -0
  91. data/lib/openai/resources/beta/agents/sessions.rb +22 -2
  92. data/lib/openai/resources/fine_tuning/jobs.rb +7 -2
  93. data/lib/openai/resources/images.rb +79 -109
  94. data/lib/openai/resources/webhooks.rb +1 -1
  95. data/lib/openai/version.rb +1 -1
  96. data/lib/openai.rb +10 -0
  97. data/rbi/openai/helpers/agents.rbi +2 -0
  98. data/rbi/openai/helpers/beta/agents/function_tool.rbi +8 -3
  99. data/rbi/openai/helpers/beta/agents/tool_error.rbi +19 -0
  100. data/rbi/openai/helpers/beta/agents.rbi +12 -0
  101. data/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi +213 -3
  102. data/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi +213 -3
  103. data/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi +213 -3
  104. data/rbi/openai/models/admin/organization/usage_completions_params.rbi +9 -4
  105. data/rbi/openai/models/admin/organization/usage_completions_response.rbi +213 -3
  106. data/rbi/openai/models/admin/organization/usage_costs_params.rbi +16 -4
  107. data/rbi/openai/models/admin/organization/usage_costs_response.rbi +213 -3
  108. data/rbi/openai/models/admin/organization/usage_embeddings_response.rbi +213 -3
  109. data/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi +213 -3
  110. data/rbi/openai/models/admin/organization/usage_images_response.rbi +213 -3
  111. data/rbi/openai/models/admin/organization/usage_moderations_response.rbi +213 -3
  112. data/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi +213 -3
  113. data/rbi/openai/models/admin/organization/usage_web_search_calls_params.rbi +12 -4
  114. data/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi +213 -3
  115. data/rbi/openai/models/audio/speech_create_params.rbi +6 -0
  116. data/rbi/openai/models/audio/voice.rbi +111 -0
  117. data/rbi/openai/models/audio/voice_create_params.rbi +321 -0
  118. data/rbi/openai/models/beta/agent_create_params.rbi +0 -3
  119. data/rbi/openai/models/beta/agent_update_params.rbi +0 -3
  120. data/rbi/openai/models/beta/agents/environments/template_create_params.rbi +6 -6
  121. data/rbi/openai/models/beta/agents/environments/template_update_params.rbi +3 -6
  122. data/rbi/openai/models/beta/agents/session_create_params.rbi +0 -3
  123. data/rbi/openai/models/beta/agents/session_update_params.rbi +0 -3
  124. data/rbi/openai/models/beta/agents/sessions/turns/item_list_params.rbi +139 -0
  125. data/rbi/openai/models/beta/beta_response_computer_tool_call_output_item.rbi +2 -2
  126. data/rbi/openai/models/beta/beta_response_error.rbi +12 -0
  127. data/rbi/openai/models/beta/beta_responses_server_event.rbi +12 -0
  128. data/rbi/openai/models/beta/beta_tool.rbi +15 -18
  129. data/rbi/openai/models/beta/environment_param.rbi +6 -6
  130. data/rbi/openai/models/beta/session_turn_error.rbi +18 -0
  131. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +6 -3
  132. data/rbi/openai/models/chat/chat_completion_chunk.rbi +123 -17
  133. data/rbi/openai/models/error_object.rbi +12 -0
  134. data/rbi/openai/models/eval_create_params.rbi +1 -1
  135. data/rbi/openai/models/eval_create_response.rbi +1 -1
  136. data/rbi/openai/models/eval_list_response.rbi +1 -1
  137. data/rbi/openai/models/eval_retrieve_response.rbi +1 -1
  138. data/rbi/openai/models/eval_update_response.rbi +1 -1
  139. data/rbi/openai/models/fine_tuning/job_list_params.rbi +14 -4
  140. data/rbi/openai/models/graders/score_model_grader.rbi +2 -2
  141. data/rbi/openai/models/image.rbi +14 -14
  142. data/rbi/openai/models/image_create_variation_params.rbi +6 -6
  143. data/rbi/openai/models/image_edit_params.rbi +73 -91
  144. data/rbi/openai/models/image_generate_params.rbi +30 -61
  145. data/rbi/openai/models/image_model.rbi +3 -3
  146. data/rbi/openai/models/realtime/realtime_audio_config_output.rbi +9 -6
  147. data/rbi/openai/models/realtime/realtime_response_create_audio_output.rbi +9 -6
  148. data/rbi/openai/models/realtime/session_update_event.rbi +16 -0
  149. data/rbi/openai/models/responses/response_computer_tool_call_output_item.rbi +2 -2
  150. data/rbi/openai/models/responses/response_error.rbi +12 -0
  151. data/rbi/openai/models/responses/responses_server_event.rbi +12 -0
  152. data/rbi/openai/models/responses/tool.rbi +15 -18
  153. data/rbi/openai/models/video_create_error.rbi +12 -0
  154. data/rbi/openai/models/webhooks/agent_session_action_required_webhook_event.rbi +222 -0
  155. data/rbi/openai/models/webhooks/agent_session_created_webhook_event.rbi +202 -0
  156. data/rbi/openai/models/webhooks/agent_session_failed_webhook_event.rbi +151 -0
  157. data/rbi/openai/models/webhooks/agent_session_idle_webhook_event.rbi +151 -0
  158. data/rbi/openai/models/webhooks/agent_session_in_progress_webhook_event.rbi +151 -0
  159. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +7 -1
  160. data/rbi/openai/models/webhooks/webhook_create_params.rbi +20 -0
  161. data/rbi/openai/models/webhooks/webhook_test_params.rbi +20 -0
  162. data/rbi/openai/models/webhooks/webhook_update_params.rbi +20 -0
  163. data/rbi/openai/resources/admin/organization/usage.rbi +15 -6
  164. data/rbi/openai/resources/audio/speech.rbi +2 -0
  165. data/rbi/openai/resources/audio/voices.rbi +49 -0
  166. data/rbi/openai/resources/audio.rbi +4 -0
  167. data/rbi/openai/resources/beta/agents/environments/templates.rbi +3 -4
  168. data/rbi/openai/resources/beta/agents/sessions/turns/items.rbi +62 -0
  169. data/rbi/openai/resources/beta/agents/sessions/turns.rbi +3 -0
  170. data/rbi/openai/resources/beta/agents/sessions.rbi +2 -0
  171. data/rbi/openai/resources/fine_tuning/jobs.rbi +7 -2
  172. data/rbi/openai/resources/images.rbi +77 -109
  173. data/rbi/openai/resources/webhooks.rbi +5 -0
  174. data/sig/openai/helpers/agents.rbs +3 -0
  175. data/sig/openai/helpers/beta/agents/function_tool.rbs +5 -2
  176. data/sig/openai/helpers/beta/agents/tool_error.rbs +17 -0
  177. data/sig/openai/helpers/beta/agents.rbs +5 -0
  178. data/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +107 -5
  179. data/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +107 -5
  180. data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +107 -5
  181. data/sig/openai/models/admin/organization/usage_completions_params.rbs +14 -6
  182. data/sig/openai/models/admin/organization/usage_completions_response.rbs +107 -5
  183. data/sig/openai/models/admin/organization/usage_costs_params.rbs +25 -7
  184. data/sig/openai/models/admin/organization/usage_costs_response.rbs +107 -5
  185. data/sig/openai/models/admin/organization/usage_embeddings_response.rbs +107 -5
  186. data/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs +107 -5
  187. data/sig/openai/models/admin/organization/usage_images_response.rbs +107 -5
  188. data/sig/openai/models/admin/organization/usage_moderations_response.rbs +107 -5
  189. data/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +107 -5
  190. data/sig/openai/models/admin/organization/usage_web_search_calls_params.rbs +19 -7
  191. data/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs +107 -5
  192. data/sig/openai/models/audio/speech_create_params.rbs +4 -0
  193. data/sig/openai/models/audio/voice.rbs +70 -0
  194. data/sig/openai/models/audio/voice_create_params.rbs +203 -0
  195. data/sig/openai/models/beta/agent_create_params.rbs +1 -5
  196. data/sig/openai/models/beta/agent_update_params.rbs +1 -5
  197. data/sig/openai/models/beta/agents/environments/template_create_params.rbs +4 -4
  198. data/sig/openai/models/beta/agents/environments/template_update_params.rbs +2 -4
  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/turns/item_list_params.rbs +91 -0
  202. data/sig/openai/models/beta/beta_response_computer_tool_call_output_item.rbs +2 -2
  203. data/sig/openai/models/beta/beta_response_error.rbs +10 -0
  204. data/sig/openai/models/beta/beta_responses_server_event.rbs +10 -0
  205. data/sig/openai/models/beta/beta_tool.rbs +11 -15
  206. data/sig/openai/models/beta/environment_param.rbs +4 -4
  207. data/sig/openai/models/beta/session_turn_error.rbs +12 -0
  208. data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -2
  209. data/sig/openai/models/chat/chat_completion_chunk.rbs +96 -12
  210. data/sig/openai/models/error_object.rbs +10 -0
  211. data/sig/openai/models/eval_create_params.rbs +1 -1
  212. data/sig/openai/models/eval_create_response.rbs +1 -1
  213. data/sig/openai/models/eval_list_response.rbs +1 -1
  214. data/sig/openai/models/eval_retrieve_response.rbs +1 -1
  215. data/sig/openai/models/eval_update_response.rbs +1 -1
  216. data/sig/openai/models/fine_tuning/job_list_params.rbs +14 -4
  217. data/sig/openai/models/graders/score_model_grader.rbs +3 -3
  218. data/sig/openai/models/image.rbs +21 -21
  219. data/sig/openai/models/image_create_variation_params.rbs +4 -4
  220. data/sig/openai/models/image_edit_params.rbs +54 -66
  221. data/sig/openai/models/image_generate_params.rbs +23 -45
  222. data/sig/openai/models/image_model.rbs +6 -6
  223. data/sig/openai/models/realtime/realtime_audio_config_output.rbs +9 -6
  224. data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +9 -6
  225. data/sig/openai/models/responses/response_computer_tool_call_output_item.rbs +2 -2
  226. data/sig/openai/models/responses/response_error.rbs +10 -0
  227. data/sig/openai/models/responses/responses_server_event.rbs +10 -0
  228. data/sig/openai/models/responses/tool.rbs +11 -15
  229. data/sig/openai/models/video_create_error.rbs +10 -0
  230. data/sig/openai/models/webhooks/agent_session_action_required_webhook_event.rbs +114 -0
  231. data/sig/openai/models/webhooks/agent_session_created_webhook_event.rbs +115 -0
  232. data/sig/openai/models/webhooks/agent_session_failed_webhook_event.rbs +89 -0
  233. data/sig/openai/models/webhooks/agent_session_idle_webhook_event.rbs +89 -0
  234. data/sig/openai/models/webhooks/agent_session_in_progress_webhook_event.rbs +89 -0
  235. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +6 -1
  236. data/sig/openai/models/webhooks/webhook_create_params.rbs +10 -0
  237. data/sig/openai/models/webhooks/webhook_test_params.rbs +10 -0
  238. data/sig/openai/models/webhooks/webhook_update_params.rbs +10 -0
  239. data/sig/openai/resources/audio/voices.rbs +14 -0
  240. data/sig/openai/resources/audio.rbs +2 -0
  241. data/sig/openai/resources/beta/agents/sessions/turns/items.rbs +24 -0
  242. data/sig/openai/resources/beta/agents/sessions/turns.rbs +2 -0
  243. data/sig/openai/resources/beta/agents/sessions.rbs +1 -0
  244. data/sig/openai/resources/webhooks.rbs +6 -1
  245. metadata +35 -1
@@ -196,6 +196,19 @@ module OpenAI
196
196
  sig { returns(T.nilable(String)) }
197
197
  attr_accessor :api_key_id
198
198
 
199
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
200
+ # activity and `unlabeled` includes all records without published source
201
+ # attribution, including historical and unknown origins. Unlabeled does not imply
202
+ # direct API usage. Without source grouping, this field is null.
203
+ sig {
204
+ returns(
205
+ T.nilable(
206
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource::TaggedSymbol
207
+ )
208
+ )
209
+ }
210
+ attr_accessor :api_source
211
+
199
212
  # When `group_by=batch`, this field tells whether the grouped usage result is
200
213
  # batch or not.
201
214
  sig { returns(T.nilable(T::Boolean)) }
@@ -208,7 +221,16 @@ module OpenAI
208
221
  sig { params(input_audio_tokens: Integer).void }
209
222
  attr_writer :input_audio_tokens
210
223
 
211
- # The aggregated number of input tokens written to the cache.
224
+ # The aggregated number of input tokens written to the cache with a 12-hour
225
+ # retention period.
226
+ sig { returns(T.nilable(Integer)) }
227
+ attr_reader :input_cache_write_12h_tokens
228
+
229
+ sig { params(input_cache_write_12h_tokens: Integer).void }
230
+ attr_writer :input_cache_write_12h_tokens
231
+
232
+ # The aggregated number of input tokens written to the cache with a 30-minute
233
+ # retention period.
212
234
  sig { returns(T.nilable(Integer)) }
213
235
  attr_reader :input_cache_write_tokens
214
236
 
@@ -320,10 +342,16 @@ module OpenAI
320
342
 
321
343
  api_key_id: T.nilable(String),
322
344
 
345
+ api_source: T.nilable(
346
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource::OrSymbol
347
+ ),
348
+
323
349
  batch: T.nilable(T::Boolean),
324
350
 
325
351
  input_audio_tokens: Integer,
326
352
 
353
+ input_cache_write_12h_tokens: Integer,
354
+
327
355
  input_cache_write_tokens: Integer,
328
356
 
329
357
  input_cached_audio_tokens: Integer,
@@ -377,6 +405,12 @@ module OpenAI
377
405
  # usage result.
378
406
  api_key_id: nil,
379
407
 
408
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
409
+ # activity and `unlabeled` includes all records without published source
410
+ # attribution, including historical and unknown origins. Unlabeled does not imply
411
+ # direct API usage. Without source grouping, this field is null.
412
+ api_source: nil,
413
+
380
414
  # When `group_by=batch`, this field tells whether the grouped usage result is
381
415
  # batch or not.
382
416
  batch: nil,
@@ -384,7 +418,12 @@ module OpenAI
384
418
  # The aggregated number of uncached audio input tokens used.
385
419
  input_audio_tokens: nil,
386
420
 
387
- # The aggregated number of input tokens written to the cache.
421
+ # The aggregated number of input tokens written to the cache with a 12-hour
422
+ # retention period.
423
+ input_cache_write_12h_tokens: nil,
424
+
425
+ # The aggregated number of input tokens written to the cache with a 30-minute
426
+ # retention period.
388
427
  input_cache_write_tokens: nil,
389
428
 
390
429
  # The aggregated number of cached audio input tokens used.
@@ -448,8 +487,12 @@ module OpenAI
448
487
  object: Symbol,
449
488
  output_tokens: Integer,
450
489
  api_key_id: T.nilable(String),
490
+ api_source: T.nilable(
491
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource::TaggedSymbol
492
+ ),
451
493
  batch: T.nilable(T::Boolean),
452
494
  input_audio_tokens: Integer,
495
+ input_cache_write_12h_tokens: Integer,
453
496
  input_cache_write_tokens: Integer,
454
497
  input_cached_audio_tokens: Integer,
455
498
  input_cached_image_tokens: Integer,
@@ -471,6 +514,40 @@ module OpenAI
471
514
  def to_hash
472
515
  end
473
516
 
517
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
518
+ # activity and `unlabeled` includes all records without published source
519
+ # attribution, including historical and unknown origins. Unlabeled does not imply
520
+ # direct API usage. Without source grouping, this field is null.
521
+ module APISource
522
+ extend OpenAI::Internal::Type::Enum
523
+
524
+ TaggedSymbol = T.type_alias {
525
+ T.all(
526
+ Symbol,
527
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource
528
+ )
529
+ }
530
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
531
+
532
+ AGENTS_API = T.let(
533
+ :agents_api,
534
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource::TaggedSymbol
535
+ )
536
+ UNLABELED = T.let(
537
+ :unlabeled,
538
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource::TaggedSymbol
539
+ )
540
+
541
+ sig {
542
+ override.returns(
543
+ T::Array[
544
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource::TaggedSymbol
545
+ ]
546
+ )
547
+ }
548
+ def self.values
549
+ end
550
+ end
474
551
  end
475
552
 
476
553
  class OrganizationUsageEmbeddingsResult < OpenAI::Internal::Type::BaseModel
@@ -1252,6 +1329,19 @@ module OpenAI
1252
1329
  sig { returns(T.nilable(String)) }
1253
1330
  attr_accessor :api_key_id
1254
1331
 
1332
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1333
+ # activity and `unlabeled` includes all records without published source
1334
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1335
+ # direct API usage. Without source grouping, this field is null.
1336
+ sig {
1337
+ returns(
1338
+ T.nilable(
1339
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource::TaggedSymbol
1340
+ )
1341
+ )
1342
+ }
1343
+ attr_accessor :api_source
1344
+
1255
1345
  # When `group_by=context_level`, this field provides the search context size of
1256
1346
  # the grouped usage result.
1257
1347
  sig { returns(T.nilable(String)) }
@@ -1282,6 +1372,10 @@ module OpenAI
1282
1372
 
1283
1373
  api_key_id: T.nilable(String),
1284
1374
 
1375
+ api_source: T.nilable(
1376
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource::OrSymbol
1377
+ ),
1378
+
1285
1379
  context_level: T.nilable(String),
1286
1380
 
1287
1381
  model: T.nilable(String),
@@ -1306,6 +1400,12 @@ module OpenAI
1306
1400
  # usage result.
1307
1401
  api_key_id: nil,
1308
1402
 
1403
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1404
+ # activity and `unlabeled` includes all records without published source
1405
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1406
+ # direct API usage. Without source grouping, this field is null.
1407
+ api_source: nil,
1408
+
1309
1409
  # When `group_by=context_level`, this field provides the search context size of
1310
1410
  # the grouped usage result.
1311
1411
  context_level: nil,
@@ -1333,6 +1433,9 @@ module OpenAI
1333
1433
  num_requests: Integer,
1334
1434
  object: Symbol,
1335
1435
  api_key_id: T.nilable(String),
1436
+ api_source: T.nilable(
1437
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource::TaggedSymbol
1438
+ ),
1336
1439
  context_level: T.nilable(String),
1337
1440
  model: T.nilable(String),
1338
1441
  project_id: T.nilable(String),
@@ -1343,6 +1446,40 @@ module OpenAI
1343
1446
  def to_hash
1344
1447
  end
1345
1448
 
1449
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1450
+ # activity and `unlabeled` includes all records without published source
1451
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1452
+ # direct API usage. Without source grouping, this field is null.
1453
+ module APISource
1454
+ extend OpenAI::Internal::Type::Enum
1455
+
1456
+ TaggedSymbol = T.type_alias {
1457
+ T.all(
1458
+ Symbol,
1459
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource
1460
+ )
1461
+ }
1462
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1463
+
1464
+ AGENTS_API = T.let(
1465
+ :agents_api,
1466
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource::TaggedSymbol
1467
+ )
1468
+ UNLABELED = T.let(
1469
+ :unlabeled,
1470
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource::TaggedSymbol
1471
+ )
1472
+
1473
+ sig {
1474
+ override.returns(
1475
+ T::Array[
1476
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource::TaggedSymbol
1477
+ ]
1478
+ )
1479
+ }
1480
+ def self.values
1481
+ end
1482
+ end
1346
1483
  end
1347
1484
 
1348
1485
  class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel
@@ -1379,6 +1516,19 @@ module OpenAI
1379
1516
  sig { returns(T.nilable(String)) }
1380
1517
  attr_accessor :api_key_id
1381
1518
 
1519
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1520
+ # activity and `unlabeled` includes all records without published source
1521
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1522
+ # direct API usage. Without source grouping, this field is null.
1523
+ sig {
1524
+ returns(
1525
+ T.nilable(
1526
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationCostsResult::APISource::TaggedSymbol
1527
+ )
1528
+ )
1529
+ }
1530
+ attr_accessor :api_source
1531
+
1382
1532
  # When `group_by=line_item`, this field provides the line item of the grouped
1383
1533
  # costs result.
1384
1534
  sig { returns(T.nilable(String)) }
@@ -1399,6 +1549,11 @@ module OpenAI
1399
1549
  sig { returns(T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))) }
1400
1550
  attr_accessor :quantity_unit
1401
1551
 
1552
+ # When `group_by=user_id`, this field provides the user ID of the grouped costs
1553
+ # result.
1554
+ sig { returns(T.nilable(String)) }
1555
+ attr_accessor :user_id
1556
+
1402
1557
  # The aggregated costs details of the specific time bucket.
1403
1558
  sig do
1404
1559
  params(
@@ -1407,6 +1562,10 @@ module OpenAI
1407
1562
 
1408
1563
  api_key_id: T.nilable(String),
1409
1564
 
1565
+ api_source: T.nilable(
1566
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationCostsResult::APISource::OrSymbol
1567
+ ),
1568
+
1410
1569
  line_item: T.nilable(String),
1411
1570
 
1412
1571
  project_id: T.nilable(String),
@@ -1415,6 +1574,8 @@ module OpenAI
1415
1574
 
1416
1575
  quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)),
1417
1576
 
1577
+ user_id: T.nilable(String),
1578
+
1418
1579
  object: Symbol
1419
1580
  )
1420
1581
  .returns(T.attached_class)
@@ -1428,6 +1589,12 @@ module OpenAI
1428
1589
  # costs result.
1429
1590
  api_key_id: nil,
1430
1591
 
1592
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1593
+ # activity and `unlabeled` includes all records without published source
1594
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1595
+ # direct API usage. Without source grouping, this field is null.
1596
+ api_source: nil,
1597
+
1431
1598
  # When `group_by=line_item`, this field provides the line item of the grouped
1432
1599
  # costs result.
1433
1600
  line_item: nil,
@@ -1444,6 +1611,10 @@ module OpenAI
1444
1611
  # result, this field is `null`.
1445
1612
  quantity_unit: nil,
1446
1613
 
1614
+ # When `group_by=user_id`, this field provides the user ID of the grouped costs
1615
+ # result.
1616
+ user_id: nil,
1617
+
1447
1618
  object: :"organization.costs.result"
1448
1619
  )
1449
1620
  end
@@ -1454,10 +1625,14 @@ module OpenAI
1454
1625
  object: Symbol,
1455
1626
  amount: OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationCostsResult::Amount,
1456
1627
  api_key_id: T.nilable(String),
1628
+ api_source: T.nilable(
1629
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationCostsResult::APISource::TaggedSymbol
1630
+ ),
1457
1631
  line_item: T.nilable(String),
1458
1632
  project_id: T.nilable(String),
1459
1633
  quantity: T.nilable(Float),
1460
- quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol))
1634
+ quantity_unit: T.nilable(T.any(String, OpenAI::Admin::Organization::CostQuantityUnit::OrSymbol)),
1635
+ user_id: T.nilable(String)
1461
1636
  }
1462
1637
  )
1463
1638
  end
@@ -1516,6 +1691,41 @@ module OpenAI
1516
1691
  end
1517
1692
 
1518
1693
  end
1694
+
1695
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1696
+ # activity and `unlabeled` includes all records without published source
1697
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1698
+ # direct API usage. Without source grouping, this field is null.
1699
+ module APISource
1700
+ extend OpenAI::Internal::Type::Enum
1701
+
1702
+ TaggedSymbol = T.type_alias {
1703
+ T.all(
1704
+ Symbol,
1705
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationCostsResult::APISource
1706
+ )
1707
+ }
1708
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1709
+
1710
+ AGENTS_API = T.let(
1711
+ :agents_api,
1712
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationCostsResult::APISource::TaggedSymbol
1713
+ )
1714
+ UNLABELED = T.let(
1715
+ :unlabeled,
1716
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationCostsResult::APISource::TaggedSymbol
1717
+ )
1718
+
1719
+ sig {
1720
+ override.returns(
1721
+ T::Array[
1722
+ OpenAI::Models::Admin::Organization::UsageFileSearchCallsResponse::Data::Result::OrganizationCostsResult::APISource::TaggedSymbol
1723
+ ]
1724
+ )
1725
+ }
1726
+ def self.values
1727
+ end
1728
+ end
1519
1729
  end
1520
1730
 
1521
1731
  sig {