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
@@ -202,6 +202,21 @@ module OpenAI
202
202
  # @return [String, nil]
203
203
  optional :api_key_id, String, nil?: true
204
204
 
205
+ # @!attribute api_source
206
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
207
+ # activity and `unlabeled` includes all records without published source
208
+ # attribution, including historical and unknown origins. Unlabeled does not imply
209
+ # direct API usage. Without source grouping, this field is null.
210
+ #
211
+ # @return [Symbol, OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource, nil]
212
+ optional(
213
+ :api_source,
214
+ enum: -> {
215
+ OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource
216
+ },
217
+ nil?: true
218
+ )
219
+
205
220
  # @!attribute batch
206
221
  # When `group_by=batch`, this field tells whether the grouped usage result is
207
222
  # batch or not.
@@ -215,8 +230,16 @@ module OpenAI
215
230
  # @return [Integer, nil]
216
231
  optional :input_audio_tokens, Integer
217
232
 
233
+ # @!attribute input_cache_write_12h_tokens
234
+ # The aggregated number of input tokens written to the cache with a 12-hour
235
+ # retention period.
236
+ #
237
+ # @return [Integer, nil]
238
+ optional :input_cache_write_12h_tokens, Integer
239
+
218
240
  # @!attribute input_cache_write_tokens
219
- # The aggregated number of input tokens written to the cache.
241
+ # The aggregated number of input tokens written to the cache with a 30-minute
242
+ # retention period.
220
243
  #
221
244
  # @return [Integer, nil]
222
245
  optional :input_cache_write_tokens, Integer
@@ -312,7 +335,7 @@ module OpenAI
312
335
  # @return [String, nil]
313
336
  optional :user_id, String, nil?: true
314
337
 
315
- # @!method initialize(input_tokens:, num_model_requests:, output_tokens:, api_key_id: nil, batch: nil, input_audio_tokens: nil, input_cache_write_tokens: nil, input_cached_audio_tokens: nil, input_cached_image_tokens: nil, input_cached_text_tokens: nil, input_cached_tokens: nil, input_image_tokens: nil, input_text_tokens: nil, input_uncached_tokens: nil, model: nil, output_audio_tokens: nil, output_image_tokens: nil, output_text_tokens: nil, project_id: nil, service_tier: nil, user_id: nil, object: :"organization.usage.completions.result")
338
+ # @!method initialize(input_tokens:, num_model_requests:, output_tokens:, api_key_id: nil, api_source: nil, batch: nil, input_audio_tokens: nil, input_cache_write_12h_tokens: nil, input_cache_write_tokens: nil, input_cached_audio_tokens: nil, input_cached_image_tokens: nil, input_cached_text_tokens: nil, input_cached_tokens: nil, input_image_tokens: nil, input_text_tokens: nil, input_uncached_tokens: nil, model: nil, output_audio_tokens: nil, output_image_tokens: nil, output_text_tokens: nil, project_id: nil, service_tier: nil, user_id: nil, object: :"organization.usage.completions.result")
316
339
  # The aggregated completions usage details of the specific time bucket.
317
340
  #
318
341
  # @param input_tokens [Integer]
@@ -332,6 +355,12 @@ module OpenAI
332
355
  # When `group_by=api_key_id`, this field provides the API key ID of the grouped
333
356
  # usage result.
334
357
  #
358
+ # @param api_source [Symbol, OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource, nil]
359
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
360
+ # activity and `unlabeled` includes all records without published source
361
+ # attribution, including historical and unknown origins. Unlabeled does not imply
362
+ # direct API usage. Without source grouping, this field is null.
363
+ #
335
364
  # @param batch [Boolean, nil]
336
365
  # When `group_by=batch`, this field tells whether the grouped usage result is
337
366
  # batch or not.
@@ -339,8 +368,13 @@ module OpenAI
339
368
  # @param input_audio_tokens [Integer]
340
369
  # The aggregated number of uncached audio input tokens used.
341
370
  #
371
+ # @param input_cache_write_12h_tokens [Integer]
372
+ # The aggregated number of input tokens written to the cache with a 12-hour
373
+ # retention period.
374
+ #
342
375
  # @param input_cache_write_tokens [Integer]
343
- # The aggregated number of input tokens written to the cache.
376
+ # The aggregated number of input tokens written to the cache with a 30-minute
377
+ # retention period.
344
378
  #
345
379
  # @param input_cached_audio_tokens [Integer]
346
380
  # The aggregated number of cached audio input tokens used.
@@ -392,6 +426,22 @@ module OpenAI
392
426
  # result.
393
427
  #
394
428
  # @param object [Symbol, :"organization.usage.completions.result"]
429
+
430
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
431
+ # activity and `unlabeled` includes all records without published source
432
+ # attribution, including historical and unknown origins. Unlabeled does not imply
433
+ # direct API usage. Without source grouping, this field is null.
434
+ #
435
+ # @see OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationUsageCompletionsResult#api_source
436
+ module APISource
437
+ extend OpenAI::Internal::Type::Enum
438
+
439
+ AGENTS_API = :agents_api
440
+ UNLABELED = :unlabeled
441
+
442
+ # @!method self.values
443
+ # @return [Array<Symbol>]
444
+ end
395
445
  end
396
446
 
397
447
  class OrganizationUsageEmbeddingsResult < OpenAI::Internal::Type::BaseModel
@@ -941,6 +991,21 @@ module OpenAI
941
991
  # @return [String, nil]
942
992
  optional :api_key_id, String, nil?: true
943
993
 
994
+ # @!attribute api_source
995
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
996
+ # activity and `unlabeled` includes all records without published source
997
+ # attribution, including historical and unknown origins. Unlabeled does not imply
998
+ # direct API usage. Without source grouping, this field is null.
999
+ #
1000
+ # @return [Symbol, OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource, nil]
1001
+ optional(
1002
+ :api_source,
1003
+ enum: -> {
1004
+ OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource
1005
+ },
1006
+ nil?: true
1007
+ )
1008
+
944
1009
  # @!attribute context_level
945
1010
  # When `group_by=context_level`, this field provides the search context size of
946
1011
  # the grouped usage result.
@@ -969,7 +1034,7 @@ module OpenAI
969
1034
  # @return [String, nil]
970
1035
  optional :user_id, String, nil?: true
971
1036
 
972
- # @!method initialize(num_model_requests:, num_requests:, api_key_id: nil, context_level: nil, model: nil, project_id: nil, user_id: nil, object: :"organization.usage.web_searches.result")
1037
+ # @!method initialize(num_model_requests:, num_requests:, api_key_id: nil, api_source: nil, context_level: nil, model: nil, project_id: nil, user_id: nil, object: :"organization.usage.web_searches.result")
973
1038
  # The aggregated web search calls usage details of the specific time bucket.
974
1039
  #
975
1040
  # @param num_model_requests [Integer]
@@ -982,6 +1047,12 @@ module OpenAI
982
1047
  # When `group_by=api_key_id`, this field provides the API key ID of the grouped
983
1048
  # usage result.
984
1049
  #
1050
+ # @param api_source [Symbol, OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource, nil]
1051
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1052
+ # activity and `unlabeled` includes all records without published source
1053
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1054
+ # direct API usage. Without source grouping, this field is null.
1055
+ #
985
1056
  # @param context_level [String, nil]
986
1057
  # When `group_by=context_level`, this field provides the search context size of
987
1058
  # the grouped usage result.
@@ -999,6 +1070,22 @@ module OpenAI
999
1070
  # result.
1000
1071
  #
1001
1072
  # @param object [Symbol, :"organization.usage.web_searches.result"]
1073
+
1074
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1075
+ # activity and `unlabeled` includes all records without published source
1076
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1077
+ # direct API usage. Without source grouping, this field is null.
1078
+ #
1079
+ # @see OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationUsageWebSearchesResult#api_source
1080
+ module APISource
1081
+ extend OpenAI::Internal::Type::Enum
1082
+
1083
+ AGENTS_API = :agents_api
1084
+ UNLABELED = :unlabeled
1085
+
1086
+ # @!method self.values
1087
+ # @return [Array<Symbol>]
1088
+ end
1002
1089
  end
1003
1090
 
1004
1091
  class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel
@@ -1025,6 +1112,21 @@ module OpenAI
1025
1112
  # @return [String, nil]
1026
1113
  optional :api_key_id, String, nil?: true
1027
1114
 
1115
+ # @!attribute api_source
1116
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1117
+ # activity and `unlabeled` includes all records without published source
1118
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1119
+ # direct API usage. Without source grouping, this field is null.
1120
+ #
1121
+ # @return [Symbol, OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationCostsResult::APISource, nil]
1122
+ optional(
1123
+ :api_source,
1124
+ enum: -> {
1125
+ OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationCostsResult::APISource
1126
+ },
1127
+ nil?: true
1128
+ )
1129
+
1028
1130
  # @!attribute line_item
1029
1131
  # When `group_by=line_item`, this field provides the line item of the grouped
1030
1132
  # costs result.
@@ -1059,7 +1161,14 @@ module OpenAI
1059
1161
  nil?: true
1060
1162
  )
1061
1163
 
1062
- # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result")
1164
+ # @!attribute user_id
1165
+ # When `group_by=user_id`, this field provides the user ID of the grouped costs
1166
+ # result.
1167
+ #
1168
+ # @return [String, nil]
1169
+ optional :user_id, String, nil?: true
1170
+
1171
+ # @!method initialize(amount: nil, api_key_id: nil, api_source: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, user_id: nil, object: :"organization.costs.result")
1063
1172
  # The aggregated costs details of the specific time bucket.
1064
1173
  #
1065
1174
  # @param amount [OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationCostsResult::Amount]
@@ -1069,6 +1178,12 @@ module OpenAI
1069
1178
  # When `group_by=api_key_id`, this field provides the API Key ID of the grouped
1070
1179
  # costs result.
1071
1180
  #
1181
+ # @param api_source [Symbol, OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationCostsResult::APISource, nil]
1182
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1183
+ # activity and `unlabeled` includes all records without published source
1184
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1185
+ # direct API usage. Without source grouping, this field is null.
1186
+ #
1072
1187
  # @param line_item [String, nil]
1073
1188
  # When `group_by=line_item`, this field provides the line item of the grouped
1074
1189
  # costs result.
@@ -1085,6 +1200,10 @@ module OpenAI
1085
1200
  # The unit of the `quantity` value. If no single supported unit applies to the
1086
1201
  # result, this field is `null`.
1087
1202
  #
1203
+ # @param user_id [String, nil]
1204
+ # When `group_by=user_id`, this field provides the user ID of the grouped costs
1205
+ # result.
1206
+ #
1088
1207
  # @param object [Symbol, :"organization.costs.result"]
1089
1208
 
1090
1209
  # @see OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationCostsResult#amount
@@ -1110,6 +1229,22 @@ module OpenAI
1110
1229
  # @param value [Float]
1111
1230
  # The numeric value of the cost.
1112
1231
  end
1232
+
1233
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1234
+ # activity and `unlabeled` includes all records without published source
1235
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1236
+ # direct API usage. Without source grouping, this field is null.
1237
+ #
1238
+ # @see OpenAI::Models::Admin::Organization::UsageCodeInterpreterSessionsResponse::Data::Result::OrganizationCostsResult#api_source
1239
+ module APISource
1240
+ extend OpenAI::Internal::Type::Enum
1241
+
1242
+ AGENTS_API = :agents_api
1243
+ UNLABELED = :unlabeled
1244
+
1245
+ # @!method self.values
1246
+ # @return [Array<Symbol>]
1247
+ end
1113
1248
  end
1114
1249
 
1115
1250
  # @!method self.variants
@@ -43,8 +43,10 @@ module OpenAI
43
43
 
44
44
  # @!attribute group_by
45
45
  # Group the usage data by the specified fields. Support fields include
46
- # `project_id`, `user_id`, `api_key_id`, `model`, `batch`, `service_tier` or any
47
- # combination of them.
46
+ # `project_id`, `user_id`, `api_key_id`, `model`, `batch`, `service_tier`,
47
+ # `api_source` or any combination of them. When grouped by `api_source`, results
48
+ # use `agents_api` for attributed Agents API activity and `unlabeled` for all
49
+ # other activity. Without source grouping, `api_source` is null.
48
50
  #
49
51
  # @return [Array<Symbol, OpenAI::Models::Admin::Organization::UsageCompletionsParams::GroupBy>, nil]
50
52
  optional(
@@ -107,8 +109,10 @@ module OpenAI
107
109
  #
108
110
  # @param group_by [Array<Symbol, OpenAI::Models::Admin::Organization::UsageCompletionsParams::GroupBy>]
109
111
  # Group the usage data by the specified fields. Support fields include
110
- # `project_id`, `user_id`, `api_key_id`, `model`, `batch`, `service_tier` or any
111
- # combination of them.
112
+ # `project_id`, `user_id`, `api_key_id`, `model`, `batch`, `service_tier`,
113
+ # `api_source` or any combination of them. When grouped by `api_source`, results
114
+ # use `agents_api` for attributed Agents API activity and `unlabeled` for all
115
+ # other activity. Without source grouping, `api_source` is null.
112
116
  #
113
117
  # @param limit [Integer]
114
118
  # Specifies the number of buckets to return.
@@ -154,6 +158,7 @@ module OpenAI
154
158
  MODEL = :model
155
159
  BATCH = :batch
156
160
  SERVICE_TIER = :service_tier
161
+ API_SOURCE = :api_source
157
162
 
158
163
  # @!method self.values
159
164
  # @return [Array<Symbol>]
@@ -198,6 +198,21 @@ module OpenAI
198
198
  # @return [String, nil]
199
199
  optional :api_key_id, String, nil?: true
200
200
 
201
+ # @!attribute api_source
202
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
203
+ # activity and `unlabeled` includes all records without published source
204
+ # attribution, including historical and unknown origins. Unlabeled does not imply
205
+ # direct API usage. Without source grouping, this field is null.
206
+ #
207
+ # @return [Symbol, OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource, nil]
208
+ optional(
209
+ :api_source,
210
+ enum: -> {
211
+ OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource
212
+ },
213
+ nil?: true
214
+ )
215
+
201
216
  # @!attribute batch
202
217
  # When `group_by=batch`, this field tells whether the grouped usage result is
203
218
  # batch or not.
@@ -211,8 +226,16 @@ module OpenAI
211
226
  # @return [Integer, nil]
212
227
  optional :input_audio_tokens, Integer
213
228
 
229
+ # @!attribute input_cache_write_12h_tokens
230
+ # The aggregated number of input tokens written to the cache with a 12-hour
231
+ # retention period.
232
+ #
233
+ # @return [Integer, nil]
234
+ optional :input_cache_write_12h_tokens, Integer
235
+
214
236
  # @!attribute input_cache_write_tokens
215
- # The aggregated number of input tokens written to the cache.
237
+ # The aggregated number of input tokens written to the cache with a 30-minute
238
+ # retention period.
216
239
  #
217
240
  # @return [Integer, nil]
218
241
  optional :input_cache_write_tokens, Integer
@@ -308,7 +331,7 @@ module OpenAI
308
331
  # @return [String, nil]
309
332
  optional :user_id, String, nil?: true
310
333
 
311
- # @!method initialize(input_tokens:, num_model_requests:, output_tokens:, api_key_id: nil, batch: nil, input_audio_tokens: nil, input_cache_write_tokens: nil, input_cached_audio_tokens: nil, input_cached_image_tokens: nil, input_cached_text_tokens: nil, input_cached_tokens: nil, input_image_tokens: nil, input_text_tokens: nil, input_uncached_tokens: nil, model: nil, output_audio_tokens: nil, output_image_tokens: nil, output_text_tokens: nil, project_id: nil, service_tier: nil, user_id: nil, object: :"organization.usage.completions.result")
334
+ # @!method initialize(input_tokens:, num_model_requests:, output_tokens:, api_key_id: nil, api_source: nil, batch: nil, input_audio_tokens: nil, input_cache_write_12h_tokens: nil, input_cache_write_tokens: nil, input_cached_audio_tokens: nil, input_cached_image_tokens: nil, input_cached_text_tokens: nil, input_cached_tokens: nil, input_image_tokens: nil, input_text_tokens: nil, input_uncached_tokens: nil, model: nil, output_audio_tokens: nil, output_image_tokens: nil, output_text_tokens: nil, project_id: nil, service_tier: nil, user_id: nil, object: :"organization.usage.completions.result")
312
335
  # The aggregated completions usage details of the specific time bucket.
313
336
  #
314
337
  # @param input_tokens [Integer]
@@ -328,6 +351,12 @@ module OpenAI
328
351
  # When `group_by=api_key_id`, this field provides the API key ID of the grouped
329
352
  # usage result.
330
353
  #
354
+ # @param api_source [Symbol, OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationUsageCompletionsResult::APISource, nil]
355
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
356
+ # activity and `unlabeled` includes all records without published source
357
+ # attribution, including historical and unknown origins. Unlabeled does not imply
358
+ # direct API usage. Without source grouping, this field is null.
359
+ #
331
360
  # @param batch [Boolean, nil]
332
361
  # When `group_by=batch`, this field tells whether the grouped usage result is
333
362
  # batch or not.
@@ -335,8 +364,13 @@ module OpenAI
335
364
  # @param input_audio_tokens [Integer]
336
365
  # The aggregated number of uncached audio input tokens used.
337
366
  #
367
+ # @param input_cache_write_12h_tokens [Integer]
368
+ # The aggregated number of input tokens written to the cache with a 12-hour
369
+ # retention period.
370
+ #
338
371
  # @param input_cache_write_tokens [Integer]
339
- # The aggregated number of input tokens written to the cache.
372
+ # The aggregated number of input tokens written to the cache with a 30-minute
373
+ # retention period.
340
374
  #
341
375
  # @param input_cached_audio_tokens [Integer]
342
376
  # The aggregated number of cached audio input tokens used.
@@ -388,6 +422,22 @@ module OpenAI
388
422
  # result.
389
423
  #
390
424
  # @param object [Symbol, :"organization.usage.completions.result"]
425
+
426
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
427
+ # activity and `unlabeled` includes all records without published source
428
+ # attribution, including historical and unknown origins. Unlabeled does not imply
429
+ # direct API usage. Without source grouping, this field is null.
430
+ #
431
+ # @see OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationUsageCompletionsResult#api_source
432
+ module APISource
433
+ extend OpenAI::Internal::Type::Enum
434
+
435
+ AGENTS_API = :agents_api
436
+ UNLABELED = :unlabeled
437
+
438
+ # @!method self.values
439
+ # @return [Array<Symbol>]
440
+ end
391
441
  end
392
442
 
393
443
  class OrganizationUsageEmbeddingsResult < OpenAI::Internal::Type::BaseModel
@@ -937,6 +987,21 @@ module OpenAI
937
987
  # @return [String, nil]
938
988
  optional :api_key_id, String, nil?: true
939
989
 
990
+ # @!attribute api_source
991
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
992
+ # activity and `unlabeled` includes all records without published source
993
+ # attribution, including historical and unknown origins. Unlabeled does not imply
994
+ # direct API usage. Without source grouping, this field is null.
995
+ #
996
+ # @return [Symbol, OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource, nil]
997
+ optional(
998
+ :api_source,
999
+ enum: -> {
1000
+ OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource
1001
+ },
1002
+ nil?: true
1003
+ )
1004
+
940
1005
  # @!attribute context_level
941
1006
  # When `group_by=context_level`, this field provides the search context size of
942
1007
  # the grouped usage result.
@@ -965,7 +1030,7 @@ module OpenAI
965
1030
  # @return [String, nil]
966
1031
  optional :user_id, String, nil?: true
967
1032
 
968
- # @!method initialize(num_model_requests:, num_requests:, api_key_id: nil, context_level: nil, model: nil, project_id: nil, user_id: nil, object: :"organization.usage.web_searches.result")
1033
+ # @!method initialize(num_model_requests:, num_requests:, api_key_id: nil, api_source: nil, context_level: nil, model: nil, project_id: nil, user_id: nil, object: :"organization.usage.web_searches.result")
969
1034
  # The aggregated web search calls usage details of the specific time bucket.
970
1035
  #
971
1036
  # @param num_model_requests [Integer]
@@ -978,6 +1043,12 @@ module OpenAI
978
1043
  # When `group_by=api_key_id`, this field provides the API key ID of the grouped
979
1044
  # usage result.
980
1045
  #
1046
+ # @param api_source [Symbol, OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationUsageWebSearchesResult::APISource, nil]
1047
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1048
+ # activity and `unlabeled` includes all records without published source
1049
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1050
+ # direct API usage. Without source grouping, this field is null.
1051
+ #
981
1052
  # @param context_level [String, nil]
982
1053
  # When `group_by=context_level`, this field provides the search context size of
983
1054
  # the grouped usage result.
@@ -995,6 +1066,22 @@ module OpenAI
995
1066
  # result.
996
1067
  #
997
1068
  # @param object [Symbol, :"organization.usage.web_searches.result"]
1069
+
1070
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1071
+ # activity and `unlabeled` includes all records without published source
1072
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1073
+ # direct API usage. Without source grouping, this field is null.
1074
+ #
1075
+ # @see OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationUsageWebSearchesResult#api_source
1076
+ module APISource
1077
+ extend OpenAI::Internal::Type::Enum
1078
+
1079
+ AGENTS_API = :agents_api
1080
+ UNLABELED = :unlabeled
1081
+
1082
+ # @!method self.values
1083
+ # @return [Array<Symbol>]
1084
+ end
998
1085
  end
999
1086
 
1000
1087
  class OrganizationCostsResult < OpenAI::Internal::Type::BaseModel
@@ -1021,6 +1108,21 @@ module OpenAI
1021
1108
  # @return [String, nil]
1022
1109
  optional :api_key_id, String, nil?: true
1023
1110
 
1111
+ # @!attribute api_source
1112
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1113
+ # activity and `unlabeled` includes all records without published source
1114
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1115
+ # direct API usage. Without source grouping, this field is null.
1116
+ #
1117
+ # @return [Symbol, OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationCostsResult::APISource, nil]
1118
+ optional(
1119
+ :api_source,
1120
+ enum: -> {
1121
+ OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationCostsResult::APISource
1122
+ },
1123
+ nil?: true
1124
+ )
1125
+
1024
1126
  # @!attribute line_item
1025
1127
  # When `group_by=line_item`, this field provides the line item of the grouped
1026
1128
  # costs result.
@@ -1055,7 +1157,14 @@ module OpenAI
1055
1157
  nil?: true
1056
1158
  )
1057
1159
 
1058
- # @!method initialize(amount: nil, api_key_id: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, object: :"organization.costs.result")
1160
+ # @!attribute user_id
1161
+ # When `group_by=user_id`, this field provides the user ID of the grouped costs
1162
+ # result.
1163
+ #
1164
+ # @return [String, nil]
1165
+ optional :user_id, String, nil?: true
1166
+
1167
+ # @!method initialize(amount: nil, api_key_id: nil, api_source: nil, line_item: nil, project_id: nil, quantity: nil, quantity_unit: nil, user_id: nil, object: :"organization.costs.result")
1059
1168
  # The aggregated costs details of the specific time bucket.
1060
1169
  #
1061
1170
  # @param amount [OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationCostsResult::Amount]
@@ -1065,6 +1174,12 @@ module OpenAI
1065
1174
  # When `group_by=api_key_id`, this field provides the API Key ID of the grouped
1066
1175
  # costs result.
1067
1176
  #
1177
+ # @param api_source [Symbol, OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationCostsResult::APISource, nil]
1178
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1179
+ # activity and `unlabeled` includes all records without published source
1180
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1181
+ # direct API usage. Without source grouping, this field is null.
1182
+ #
1068
1183
  # @param line_item [String, nil]
1069
1184
  # When `group_by=line_item`, this field provides the line item of the grouped
1070
1185
  # costs result.
@@ -1081,6 +1196,10 @@ module OpenAI
1081
1196
  # The unit of the `quantity` value. If no single supported unit applies to the
1082
1197
  # result, this field is `null`.
1083
1198
  #
1199
+ # @param user_id [String, nil]
1200
+ # When `group_by=user_id`, this field provides the user ID of the grouped costs
1201
+ # result.
1202
+ #
1084
1203
  # @param object [Symbol, :"organization.costs.result"]
1085
1204
 
1086
1205
  # @see OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationCostsResult#amount
@@ -1106,6 +1225,22 @@ module OpenAI
1106
1225
  # @param value [Float]
1107
1226
  # The numeric value of the cost.
1108
1227
  end
1228
+
1229
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
1230
+ # activity and `unlabeled` includes all records without published source
1231
+ # attribution, including historical and unknown origins. Unlabeled does not imply
1232
+ # direct API usage. Without source grouping, this field is null.
1233
+ #
1234
+ # @see OpenAI::Models::Admin::Organization::UsageCompletionsResponse::Data::Result::OrganizationCostsResult#api_source
1235
+ module APISource
1236
+ extend OpenAI::Internal::Type::Enum
1237
+
1238
+ AGENTS_API = :agents_api
1239
+ UNLABELED = :unlabeled
1240
+
1241
+ # @!method self.values
1242
+ # @return [Array<Symbol>]
1243
+ end
1109
1244
  end
1110
1245
 
1111
1246
  # @!method self.variants
@@ -35,8 +35,13 @@ module OpenAI
35
35
  optional :end_time, Integer
36
36
 
37
37
  # @!attribute group_by
38
- # Group the costs by the specified fields. Support fields include `project_id`,
39
- # `line_item`, `api_key_id` and any combination of them.
38
+ # Group the costs by the specified fields. Supported fields include `project_id`,
39
+ # `user_id`, `line_item`, `api_key_id`, and `api_source`. Support for combining
40
+ # `user_id` with `project_id` grouping or the `project_ids` filter depends on the
41
+ # organization and requested time range. Unsupported combinations return HTTP 400.
42
+ # When grouped by `api_source`, results use `agents_api` for attributed Agents API
43
+ # activity and `unlabeled` for all other activity. Without source grouping,
44
+ # `api_source` is null.
40
45
  #
41
46
  # @return [Array<Symbol, OpenAI::Models::Admin::Organization::UsageCostsParams::GroupBy>, nil]
42
47
  optional(
@@ -86,8 +91,13 @@ module OpenAI
86
91
  # End time (Unix seconds) of the query time range, exclusive.
87
92
  #
88
93
  # @param group_by [Array<Symbol, OpenAI::Models::Admin::Organization::UsageCostsParams::GroupBy>]
89
- # Group the costs by the specified fields. Support fields include `project_id`,
90
- # `line_item`, `api_key_id` and any combination of them.
94
+ # Group the costs by the specified fields. Supported fields include `project_id`,
95
+ # `user_id`, `line_item`, `api_key_id`, and `api_source`. Support for combining
96
+ # `user_id` with `project_id` grouping or the `project_ids` filter depends on the
97
+ # organization and requested time range. Unsupported combinations return HTTP 400.
98
+ # When grouped by `api_source`, results use `agents_api` for attributed Agents API
99
+ # activity and `unlabeled` for all other activity. Without source grouping,
100
+ # `api_source` is null.
91
101
  #
92
102
  # @param limit [Integer]
93
103
  # A limit on the number of buckets to be returned. Limit can range between 1 and
@@ -121,8 +131,10 @@ module OpenAI
121
131
  extend OpenAI::Internal::Type::Enum
122
132
 
123
133
  PROJECT_ID = :project_id
134
+ USER_ID = :user_id
124
135
  LINE_ITEM = :line_item
125
136
  API_KEY_ID = :api_key_id
137
+ API_SOURCE = :api_source
126
138
 
127
139
  # @!method self.values
128
140
  # @return [Array<Symbol>]