openai 0.103.0 → 0.104.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 (395) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +81 -0
  3. data/README.md +23 -1
  4. data/lib/openai/client.rb +3 -386
  5. data/lib/openai/helpers/admin/organization/projects/api_keys.rb +42 -0
  6. data/lib/openai/helpers/agents/session_stream_resource.rb +60 -0
  7. data/lib/openai/helpers/beta/agents/artifacts.rb +18 -0
  8. data/lib/openai/helpers/beta/agents/files.rb +41 -0
  9. data/lib/openai/helpers/client_runtime.rb +391 -0
  10. data/lib/openai/helpers/files.rb +47 -0
  11. data/lib/openai/helpers/live/websocket.rb +8 -57
  12. data/lib/openai/helpers/models/chat/parsed.rb +32 -0
  13. data/lib/openai/helpers/models/responses/parsed.rb +30 -0
  14. data/lib/openai/helpers/models/responses/response.rb +32 -0
  15. data/lib/openai/helpers/models/webhooks/webhook_endpoint_with_secret.rb +20 -0
  16. data/lib/openai/helpers/realtime/client_extension.rb +1 -2
  17. data/lib/openai/helpers/realtime/connection_manager.rb +1 -1
  18. data/lib/openai/helpers/realtime/translation.rb +7 -50
  19. data/lib/openai/helpers/responses_websocket/client_extension.rb +1 -2
  20. data/lib/openai/helpers/streaming/chat_completion_resource.rb +36 -0
  21. data/lib/openai/helpers/streaming/response_stream.rb +1 -16
  22. data/lib/openai/helpers/streaming/response_stream_resource.rb +78 -0
  23. data/lib/openai/helpers/vector_stores/file_batches.rb +188 -0
  24. data/lib/openai/helpers/vector_stores/files.rb +198 -0
  25. data/lib/openai/helpers/websocket/client_request.rb +31 -6
  26. data/lib/openai/helpers/websocket/connection.rb +58 -0
  27. data/lib/openai/helpers/websocket/connection_manager.rb +4 -2
  28. data/lib/openai/helpers/websocket/protocol.rb +2 -1
  29. data/lib/openai/helpers/websocket/resource.rb +54 -0
  30. data/lib/openai/helpers/websocket/typed_connection.rb +95 -0
  31. data/lib/openai/helpers/websocket.rb +4 -0
  32. data/lib/openai/models/admin/organization/audit_log_list_response.rb +5 -3
  33. data/lib/openai/models/admin/organization/external_storage_configuration.rb +5 -3
  34. data/lib/openai/models/admin/organization/external_storage_create_params.rb +33 -3
  35. data/lib/openai/models/admin/organization/oci_external_storage_provider.rb +37 -0
  36. data/lib/openai/models/admin/organization/project_residency.rb +3 -0
  37. data/lib/openai/models/admin/organization/projects/api_key_update_params.rb +64 -0
  38. data/lib/openai/models/admin/organization/projects/api_key_update_scopes_params.rb +34 -0
  39. data/lib/openai/models/admin/organization/usage_decisions_params.rb +177 -0
  40. data/lib/openai/models/admin/organization/usage_decisions_response.rb +351 -0
  41. data/lib/openai/models/audio/speech_create_params.rb +6 -3
  42. data/lib/openai/models/audio/translation_create_response.rb +0 -1
  43. data/lib/openai/models/audio/voice.rb +17 -2
  44. data/lib/openai/models/audio/voice_create_params.rb +100 -3
  45. data/lib/openai/models/beta/agent_create_params.rb +4 -2
  46. data/lib/openai/models/beta/agent_list_params.rb +4 -4
  47. data/lib/openai/models/beta/agent_session.rb +37 -1
  48. data/lib/openai/models/beta/agent_update_params.rb +4 -2
  49. data/lib/openai/models/beta/agents/environment_list_params.rb +7 -7
  50. data/lib/openai/models/beta/agents/session_create_params.rb +39 -3
  51. data/lib/openai/models/beta/agents/session_list_params.rb +7 -10
  52. data/lib/openai/models/beta/agents/session_update_params.rb +33 -1
  53. data/lib/openai/models/beta/agents/sessions/artifact_list_params.rb +11 -11
  54. data/lib/openai/models/beta/agents/vault_list_params.rb +23 -13
  55. data/lib/openai/models/beta/agents/vault_status_filter.rb +1 -3
  56. data/lib/openai/models/beta/agents/vault_update_params.rb +47 -0
  57. data/lib/openai/models/beta/agents/vaults/credential_list_params.rb +23 -13
  58. data/lib/openai/models/beta/beta_response.rb +23 -2
  59. data/lib/openai/models/beta/beta_response_error.rb +19 -1
  60. data/lib/openai/models/beta/beta_response_input_item.rb +107 -1
  61. data/lib/openai/models/beta/beta_response_item.rb +107 -1
  62. data/lib/openai/models/beta/beta_response_output_item.rb +107 -1
  63. data/lib/openai/models/beta/beta_responses_client_event.rb +23 -2
  64. data/lib/openai/models/beta/response_compact_params.rb +21 -0
  65. data/lib/openai/models/beta/response_create_params.rb +23 -2
  66. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  67. data/lib/openai/models/chat/chat_completion_audio_param.rb +3 -3
  68. data/lib/openai/models/chat/chat_completion_message.rb +0 -8
  69. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +0 -8
  70. data/lib/openai/models/chat/completion_create_params.rb +5 -12
  71. data/lib/openai/models/chat_model.rb +21 -0
  72. data/lib/openai/models/conversations/conversation_item.rb +107 -1
  73. data/lib/openai/models/decision.rb +17 -2
  74. data/lib/openai/models/decision_create_params.rb +29 -12
  75. data/lib/openai/models/decision_input_image.rb +4 -3
  76. data/lib/openai/models/decision_input_message.rb +4 -4
  77. data/lib/openai/models/decision_input_part.rb +3 -2
  78. data/lib/openai/models/image_edit_completed_event.rb +1 -2
  79. data/lib/openai/models/image_edit_partial_image_event.rb +1 -2
  80. data/lib/openai/models/image_gen_completed_event.rb +1 -2
  81. data/lib/openai/models/image_gen_partial_image_event.rb +1 -2
  82. data/lib/openai/models/images_response.rb +1 -2
  83. data/lib/openai/models/live/built_in_voice.rb +1 -0
  84. data/lib/openai/models/live/client_event.rb +14 -2
  85. data/lib/openai/models/live/decision_create_event.rb +26 -0
  86. data/lib/openai/models/live/decision_event.rb +117 -0
  87. data/lib/openai/models/live/decision_item_create_event.rb +194 -0
  88. data/lib/openai/models/live/decision_item_created_event.rb +202 -0
  89. data/lib/openai/models/live/decision_item_delete_event.rb +38 -0
  90. data/lib/openai/models/live/decision_item_deleted_event.rb +46 -0
  91. data/lib/openai/models/live/decision_trigger.rb +244 -0
  92. data/lib/openai/models/live/decisions_delegation_config.rb +201 -0
  93. data/lib/openai/models/live/decisions_delegation_update_config.rb +208 -0
  94. data/lib/openai/models/live/delegation_created_event.rb +10 -10
  95. data/lib/openai/models/live/fork_client_event.rb +14 -2
  96. data/lib/openai/models/live/fork_server_event.rb +17 -2
  97. data/lib/openai/models/live/media_session_config.rb +47 -11
  98. data/lib/openai/models/live/output_audio_fixture_play_event.rb +48 -0
  99. data/lib/openai/models/live/output_audio_fixture_played_event.rb +42 -0
  100. data/lib/openai/models/live/output_audio_fixture_playing_event.rb +41 -0
  101. data/lib/openai/models/live/server_event.rb +17 -2
  102. data/lib/openai/models/live/session_accept_params.rb +47 -11
  103. data/lib/openai/models/live/session_config.rb +47 -11
  104. data/lib/openai/models/live/session_resource.rb +47 -11
  105. data/lib/openai/models/live/session_update_config.rb +38 -6
  106. data/lib/openai/models/live/session_update_event.rb +8 -8
  107. data/lib/openai/models/live/sideband_client_event.rb +57 -0
  108. data/lib/openai/models/live/sideband_server_event.rb +78 -0
  109. data/lib/openai/models/realtime/realtime_audio_config_output.rb +6 -3
  110. data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +6 -3
  111. data/lib/openai/models/realtime/realtime_response_status.rb +10 -1
  112. data/lib/openai/models/response_format_json_schema.rb +1 -1
  113. data/lib/openai/models/responses/function_tool.rb +8 -6
  114. data/lib/openai/models/responses/response.rb +2 -23
  115. data/lib/openai/models/responses/response_compact_params.rb +21 -0
  116. data/lib/openai/models/responses/response_create_params.rb +3 -6
  117. data/lib/openai/models/responses/response_error.rb +19 -1
  118. data/lib/openai/models/responses/response_format_text_config.rb +0 -4
  119. data/lib/openai/models/responses/response_function_tool_call.rb +0 -8
  120. data/lib/openai/models/responses/response_input_item.rb +107 -1
  121. data/lib/openai/models/responses/response_item.rb +107 -1
  122. data/lib/openai/models/responses/response_output_item.rb +107 -1
  123. data/lib/openai/models/responses/response_output_text.rb +0 -8
  124. data/lib/openai/models/responses/responses_client_event.rb +2 -2
  125. data/lib/openai/models/safety/safety_alert.rb +12 -1
  126. data/lib/openai/models/video_create_error.rb +19 -1
  127. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -4
  128. data/lib/openai/models/webhooks/webhook_endpoint_with_secret.rb +0 -9
  129. data/lib/openai/resources/admin/organization/external_storage.rb +1 -1
  130. data/lib/openai/resources/admin/organization/projects/api_keys.rb +61 -0
  131. data/lib/openai/resources/admin/organization/usage.rb +67 -0
  132. data/lib/openai/resources/audio/speech.rb +2 -1
  133. data/lib/openai/resources/audio/voices.rb +10 -10
  134. data/lib/openai/resources/beta/agents/environments/files.rb +3 -31
  135. data/lib/openai/resources/beta/agents/environments.rb +3 -3
  136. data/lib/openai/resources/beta/agents/sessions/artifacts.rb +5 -11
  137. data/lib/openai/resources/beta/agents/sessions.rb +20 -56
  138. data/lib/openai/resources/beta/agents/vaults/credentials.rb +10 -6
  139. data/lib/openai/resources/beta/agents/vaults.rb +45 -6
  140. data/lib/openai/resources/beta/agents.rb +6 -4
  141. data/lib/openai/resources/beta/responses.rb +2 -2
  142. data/lib/openai/resources/chat/completions.rb +11 -37
  143. data/lib/openai/resources/decisions.rb +9 -15
  144. data/lib/openai/resources/files.rb +0 -39
  145. data/lib/openai/resources/live/forks.rb +19 -0
  146. data/lib/openai/resources/live/sideband.rb +19 -0
  147. data/lib/openai/resources/live.rb +19 -0
  148. data/lib/openai/resources/realtime/translations.rb +19 -0
  149. data/lib/openai/resources/realtime.rb +19 -0
  150. data/lib/openai/resources/responses.rb +44 -95
  151. data/lib/openai/resources/vector_stores/file_batches.rb +0 -178
  152. data/lib/openai/resources/vector_stores/files.rb +0 -188
  153. data/lib/openai/resources/webhooks.rb +13 -29
  154. data/lib/openai/version.rb +1 -1
  155. data/lib/openai.rb +31 -0
  156. data/rbi/openai/client.rbi +0 -103
  157. data/rbi/openai/helpers/admin/organization/projects/api_keys.rbi +25 -0
  158. data/rbi/openai/helpers/beta/agents/artifacts.rbi +25 -0
  159. data/rbi/openai/helpers/beta/agents/files.rbi +48 -0
  160. data/rbi/openai/helpers/client_runtime.rbi +108 -0
  161. data/rbi/openai/helpers/files.rbi +25 -0
  162. data/rbi/openai/helpers/models/chat/parsed.rbi +21 -0
  163. data/rbi/openai/helpers/models/responses/parsed.rbi +19 -0
  164. data/rbi/openai/helpers/models/responses/response.rbi +15 -0
  165. data/rbi/openai/helpers/streaming/response_stream.rbi +301 -0
  166. data/rbi/openai/helpers/vector_stores/file_batches.rbi +102 -0
  167. data/rbi/openai/helpers/vector_stores/files.rbi +122 -0
  168. data/rbi/openai/helpers/websocket.rbi +82 -0
  169. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +6 -3
  170. data/rbi/openai/models/admin/organization/external_storage_configuration.rbi +4 -2
  171. data/rbi/openai/models/admin/organization/external_storage_create_params.rbi +63 -4
  172. data/rbi/openai/models/admin/organization/oci_external_storage_provider.rbi +71 -0
  173. data/rbi/openai/models/admin/organization/project_residency.rbi +12 -0
  174. data/rbi/openai/models/admin/organization/projects/api_key_update_params.rbi +110 -0
  175. data/rbi/openai/models/admin/organization/projects/api_key_update_scopes_params.rbi +72 -0
  176. data/rbi/openai/models/admin/organization/usage_decisions_params.rbi +229 -0
  177. data/rbi/openai/models/admin/organization/usage_decisions_response.rbi +479 -0
  178. data/rbi/openai/models/audio/speech_create_params.rbi +6 -3
  179. data/rbi/openai/models/audio/voice.rbi +21 -2
  180. data/rbi/openai/models/audio/voice_create_params.rbi +149 -4
  181. data/rbi/openai/models/beta/agent_create_params.rbi +4 -2
  182. data/rbi/openai/models/beta/agent_list_params.rbi +8 -5
  183. data/rbi/openai/models/beta/agent_session.rbi +64 -1
  184. data/rbi/openai/models/beta/agent_update_params.rbi +4 -2
  185. data/rbi/openai/models/beta/agents/environment_list_params.rbi +7 -7
  186. data/rbi/openai/models/beta/agents/session_create_params.rbi +62 -2
  187. data/rbi/openai/models/beta/agents/session_list_params.rbi +11 -11
  188. data/rbi/openai/models/beta/agents/session_update_params.rbi +56 -0
  189. data/rbi/openai/models/beta/agents/sessions/artifact_list_params.rbi +19 -13
  190. data/rbi/openai/models/beta/agents/vault_list_params.rbi +30 -13
  191. data/rbi/openai/models/beta/agents/vault_status_filter.rbi +1 -3
  192. data/rbi/openai/models/beta/agents/vault_update_params.rbi +87 -0
  193. data/rbi/openai/models/beta/agents/vaults/credential_list_params.rbi +30 -13
  194. data/rbi/openai/models/beta/beta_response.rbi +2 -2
  195. data/rbi/openai/models/beta/beta_response_error.rbi +24 -3
  196. data/rbi/openai/models/beta/beta_response_input_item.rbi +191 -0
  197. data/rbi/openai/models/beta/beta_response_item.rbi +189 -0
  198. data/rbi/openai/models/beta/beta_response_output_item.rbi +191 -0
  199. data/rbi/openai/models/beta/beta_responses_client_event.rbi +2 -2
  200. data/rbi/openai/models/beta/response_create_params.rbi +2 -2
  201. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  202. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +3 -3
  203. data/rbi/openai/models/chat/chat_completion_message.rbi +0 -4
  204. data/rbi/openai/models/chat/chat_completion_message_function_tool_call.rbi +0 -4
  205. data/rbi/openai/models/chat/completion_create_params.rbi +63 -78
  206. data/rbi/openai/models/conversations/conversation_item.rbi +191 -0
  207. data/rbi/openai/models/decision.rbi +14 -1
  208. data/rbi/openai/models/decision_create_params.rbi +23 -12
  209. data/rbi/openai/models/decision_input_image.rbi +4 -3
  210. data/rbi/openai/models/decision_input_message.rbi +4 -4
  211. data/rbi/openai/models/decision_input_part.rbi +2 -1
  212. data/rbi/openai/models/image_edit_completed_event.rbi +1 -0
  213. data/rbi/openai/models/image_edit_partial_image_event.rbi +1 -0
  214. data/rbi/openai/models/image_gen_completed_event.rbi +1 -0
  215. data/rbi/openai/models/image_gen_partial_image_event.rbi +1 -0
  216. data/rbi/openai/models/images_response.rbi +1 -0
  217. data/rbi/openai/models/live/built_in_voice.rbi +1 -0
  218. data/rbi/openai/models/live/client_event.rbi +4 -0
  219. data/rbi/openai/models/live/decision_create_event.rbi +55 -0
  220. data/rbi/openai/models/live/decision_event.rbi +185 -0
  221. data/rbi/openai/models/live/decision_item_create_event.rbi +338 -0
  222. data/rbi/openai/models/live/decision_item_created_event.rbi +354 -0
  223. data/rbi/openai/models/live/decision_item_delete_event.rbi +66 -0
  224. data/rbi/openai/models/live/decision_item_deleted_event.rbi +77 -0
  225. data/rbi/openai/models/live/decision_trigger.rbi +465 -0
  226. data/rbi/openai/models/live/decisions_delegation_config.rbi +393 -0
  227. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +412 -0
  228. data/rbi/openai/models/live/delegation_created_event.rbi +8 -10
  229. data/rbi/openai/models/live/fork_client_event.rbi +4 -0
  230. data/rbi/openai/models/live/fork_server_event.rbi +5 -0
  231. data/rbi/openai/models/live/media_session_config.rbi +95 -14
  232. data/rbi/openai/models/live/output_audio_fixture_play_event.rbi +76 -0
  233. data/rbi/openai/models/live/output_audio_fixture_played_event.rbi +73 -0
  234. data/rbi/openai/models/live/output_audio_fixture_playing_event.rbi +72 -0
  235. data/rbi/openai/models/live/server_event.rbi +5 -0
  236. data/rbi/openai/models/live/session_accept_params.rbi +88 -12
  237. data/rbi/openai/models/live/session_config.rbi +100 -14
  238. data/rbi/openai/models/live/session_resource.rbi +81 -10
  239. data/rbi/openai/models/live/session_update_config.rbi +86 -9
  240. data/rbi/openai/models/live/session_update_event.rbi +8 -8
  241. data/rbi/openai/models/live/sideband_client_event.rbi +40 -0
  242. data/rbi/openai/models/live/sideband_server_event.rbi +47 -0
  243. data/rbi/openai/models/realtime/realtime_audio_config_output.rbi +6 -3
  244. data/rbi/openai/models/realtime/realtime_response_create_audio_output.rbi +6 -3
  245. data/rbi/openai/models/realtime/realtime_response_status.rbi +13 -1
  246. data/rbi/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rbi +1 -1
  247. data/rbi/openai/models/realtime/realtime_translation_output_audio_delta_event.rbi +3 -3
  248. data/rbi/openai/models/realtime/realtime_translation_session_close_event.rbi +1 -1
  249. data/rbi/openai/models/realtime/realtime_translation_session_update_event.rbi +5 -1
  250. data/rbi/openai/models/responses/response.rbi +2 -7
  251. data/rbi/openai/models/responses/response_create_params.rbi +5 -9
  252. data/rbi/openai/models/responses/response_error.rbi +24 -3
  253. data/rbi/openai/models/responses/response_function_tool_call.rbi +0 -4
  254. data/rbi/openai/models/responses/response_function_web_search.rbi +21 -17
  255. data/rbi/openai/models/responses/response_input_item.rbi +191 -0
  256. data/rbi/openai/models/responses/response_item.rbi +189 -0
  257. data/rbi/openai/models/responses/response_output_item.rbi +191 -0
  258. data/rbi/openai/models/responses/response_output_text.rbi +0 -4
  259. data/rbi/openai/models/responses/responses_client_event.rbi +2 -2
  260. data/rbi/openai/models/safety/safety_alert.rbi +13 -1
  261. data/rbi/openai/models/video_create_error.rbi +24 -3
  262. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -1
  263. data/rbi/openai/resources/admin/organization/external_storage.rbi +2 -1
  264. data/rbi/openai/resources/admin/organization/projects/api_keys.rbi +48 -0
  265. data/rbi/openai/resources/admin/organization/usage.rbi +56 -0
  266. data/rbi/openai/resources/audio/speech.rbi +2 -1
  267. data/rbi/openai/resources/audio/voices.rbi +13 -10
  268. data/rbi/openai/resources/beta/agents/environments/files.rbi +3 -33
  269. data/rbi/openai/resources/beta/agents/environments.rbi +3 -3
  270. data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +5 -13
  271. data/rbi/openai/resources/beta/agents/sessions.rbi +15 -4
  272. data/rbi/openai/resources/beta/agents/vaults/credentials.rbi +9 -5
  273. data/rbi/openai/resources/beta/agents/vaults.rbi +34 -5
  274. data/rbi/openai/resources/beta/agents.rbi +6 -4
  275. data/rbi/openai/resources/beta/responses.rbi +2 -2
  276. data/rbi/openai/resources/chat/completions.rbi +26 -29
  277. data/rbi/openai/resources/decisions.rbi +9 -15
  278. data/rbi/openai/resources/files.rbi +0 -18
  279. data/rbi/openai/resources/live/forks.rbi +17 -0
  280. data/rbi/openai/resources/live/sideband.rbi +17 -0
  281. data/rbi/openai/resources/live.rbi +17 -0
  282. data/rbi/openai/resources/realtime/translations.rbi +17 -0
  283. data/rbi/openai/resources/realtime.rbi +17 -0
  284. data/rbi/openai/resources/responses.rbi +41 -333
  285. data/rbi/openai/resources/vector_stores/file_batches.rbi +0 -93
  286. data/rbi/openai/resources/vector_stores/files.rbi +0 -113
  287. data/rbi/openai/resources/webhooks.rbi +1 -1
  288. data/sig/openai/client.rbs +0 -50
  289. data/sig/openai/helpers/admin/organization/projects/api_keys.rbs +18 -0
  290. data/sig/openai/helpers/beta/agents/artifacts.rbs +17 -0
  291. data/sig/openai/helpers/beta/agents/files.rbs +30 -0
  292. data/sig/openai/helpers/client_runtime.rbs +53 -0
  293. data/sig/openai/helpers/files.rbs +12 -0
  294. data/sig/openai/helpers/models/responses/response.rbs +9 -0
  295. data/sig/openai/helpers/streaming/response_stream.rbs +37 -0
  296. data/sig/openai/helpers/vector_stores/file_batches.rbs +38 -0
  297. data/sig/openai/helpers/vector_stores/files.rbs +43 -0
  298. data/sig/openai/helpers/websocket.rbs +40 -0
  299. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +1 -0
  300. data/sig/openai/models/admin/organization/external_storage_configuration.rbs +1 -0
  301. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +33 -0
  302. data/sig/openai/models/admin/organization/oci_external_storage_provider.rbs +34 -0
  303. data/sig/openai/models/admin/organization/project_residency.rbs +6 -0
  304. data/sig/openai/models/admin/organization/projects/api_key_update_params.rbs +77 -0
  305. data/sig/openai/models/admin/organization/projects/api_key_update_scopes_params.rbs +38 -0
  306. data/sig/openai/models/admin/organization/usage_decisions_params.rbs +170 -0
  307. data/sig/openai/models/admin/organization/usage_decisions_response.rbs +319 -0
  308. data/sig/openai/models/audio/speech_create_params.rbs +4 -2
  309. data/sig/openai/models/audio/voice.rbs +21 -3
  310. data/sig/openai/models/audio/voice_create_params.rbs +90 -1
  311. data/sig/openai/models/beta/agent_create_params.rbs +4 -2
  312. data/sig/openai/models/beta/agent_list_params.rbs +9 -6
  313. data/sig/openai/models/beta/agent_session.rbs +36 -2
  314. data/sig/openai/models/beta/agent_update_params.rbs +4 -2
  315. data/sig/openai/models/beta/agents/environment_list_params.rbs +9 -9
  316. data/sig/openai/models/beta/agents/session_create_params.rbs +29 -2
  317. data/sig/openai/models/beta/agents/session_list_params.rbs +12 -12
  318. data/sig/openai/models/beta/agents/session_update_params.rbs +23 -0
  319. data/sig/openai/models/beta/agents/sessions/artifact_list_params.rbs +21 -15
  320. data/sig/openai/models/beta/agents/vault_list_params.rbs +32 -14
  321. data/sig/openai/models/beta/agents/vault_update_params.rbs +54 -0
  322. data/sig/openai/models/beta/agents/vaults/credential_list_params.rbs +32 -14
  323. data/sig/openai/models/beta/beta_response.rbs +2 -2
  324. data/sig/openai/models/beta/beta_response_error.rbs +19 -3
  325. data/sig/openai/models/beta/beta_response_input_item.rbs +110 -0
  326. data/sig/openai/models/beta/beta_response_item.rbs +110 -0
  327. data/sig/openai/models/beta/beta_response_output_item.rbs +110 -0
  328. data/sig/openai/models/beta/beta_responses_client_event.rbs +2 -2
  329. data/sig/openai/models/beta/response_create_params.rbs +2 -2
  330. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  331. data/sig/openai/models/chat/chat_completion_audio_param.rbs +2 -2
  332. data/sig/openai/models/chat/completion_create_params.rbs +2 -2
  333. data/sig/openai/models/conversations/conversation_item.rbs +110 -0
  334. data/sig/openai/models/decision.rbs +13 -0
  335. data/sig/openai/models/decision_create_params.rbs +19 -8
  336. data/sig/openai/models/decision_input_image.rbs +2 -2
  337. data/sig/openai/models/decision_input_message.rbs +2 -2
  338. data/sig/openai/models/live/built_in_voice.rbs +2 -0
  339. data/sig/openai/models/live/client_event.rbs +4 -0
  340. data/sig/openai/models/live/decision_create_event.rbs +18 -0
  341. data/sig/openai/models/live/decision_event.rbs +102 -0
  342. data/sig/openai/models/live/decision_item_create_event.rbs +183 -0
  343. data/sig/openai/models/live/decision_item_created_event.rbs +195 -0
  344. data/sig/openai/models/live/decision_item_delete_event.rbs +33 -0
  345. data/sig/openai/models/live/decision_item_deleted_event.rbs +49 -0
  346. data/sig/openai/models/live/decision_trigger.rbs +234 -0
  347. data/sig/openai/models/live/decisions_delegation_config.rbs +195 -0
  348. data/sig/openai/models/live/decisions_delegation_update_config.rbs +202 -0
  349. data/sig/openai/models/live/delegation_created_event.rbs +6 -7
  350. data/sig/openai/models/live/fork_client_event.rbs +4 -0
  351. data/sig/openai/models/live/fork_server_event.rbs +5 -0
  352. data/sig/openai/models/live/media_session_config.rbs +58 -11
  353. data/sig/openai/models/live/output_audio_fixture_play_event.rbs +42 -0
  354. data/sig/openai/models/live/output_audio_fixture_played_event.rbs +44 -0
  355. data/sig/openai/models/live/output_audio_fixture_playing_event.rbs +44 -0
  356. data/sig/openai/models/live/server_event.rbs +5 -0
  357. data/sig/openai/models/live/session_accept_params.rbs +57 -10
  358. data/sig/openai/models/live/session_config.rbs +58 -11
  359. data/sig/openai/models/live/session_resource.rbs +57 -10
  360. data/sig/openai/models/live/session_update_config.rbs +54 -3
  361. data/sig/openai/models/live/session_update_event.rbs +6 -6
  362. data/sig/openai/models/live/sideband_client_event.rbs +26 -0
  363. data/sig/openai/models/live/sideband_server_event.rbs +33 -0
  364. data/sig/openai/models/realtime/realtime_audio_config_output.rbs +6 -3
  365. data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +6 -3
  366. data/sig/openai/models/realtime/realtime_response_status.rbs +15 -3
  367. data/sig/openai/models/responses/response.rbs +2 -4
  368. data/sig/openai/models/responses/response_create_params.rbs +2 -2
  369. data/sig/openai/models/responses/response_error.rbs +19 -3
  370. data/sig/openai/models/responses/response_input_item.rbs +110 -0
  371. data/sig/openai/models/responses/response_item.rbs +110 -0
  372. data/sig/openai/models/responses/response_output_item.rbs +110 -0
  373. data/sig/openai/models/responses/responses_client_event.rbs +2 -2
  374. data/sig/openai/models/safety/safety_alert.rbs +12 -2
  375. data/sig/openai/models/video_create_error.rbs +19 -3
  376. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -1
  377. data/sig/openai/resources/admin/organization/projects/api_keys.rbs +8 -0
  378. data/sig/openai/resources/admin/organization/usage.rbs +15 -0
  379. data/sig/openai/resources/beta/agents/environments/files.rbs +0 -17
  380. data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +2 -6
  381. data/sig/openai/resources/beta/agents/sessions.rbs +4 -1
  382. data/sig/openai/resources/beta/agents/vaults/credentials.rbs +2 -1
  383. data/sig/openai/resources/beta/agents/vaults.rbs +9 -1
  384. data/sig/openai/resources/beta/agents.rbs +1 -1
  385. data/sig/openai/resources/files.rbs +0 -7
  386. data/sig/openai/resources/live/forks.rbs +8 -0
  387. data/sig/openai/resources/live/sideband.rbs +8 -0
  388. data/sig/openai/resources/live.rbs +7 -0
  389. data/sig/openai/resources/realtime/translations.rbs +7 -0
  390. data/sig/openai/resources/realtime.rbs +7 -0
  391. data/sig/openai/resources/responses.rbs +7 -31
  392. data/sig/openai/resources/vector_stores/file_batches.rbs +0 -31
  393. data/sig/openai/resources/vector_stores/files.rbs +0 -36
  394. data/sig/openai/resources/webhooks.rbs +1 -1
  395. metadata +89 -1
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ class OciExternalStorageProvider < OpenAI::Internal::Type::BaseModel
8
+ # @!attribute bucket
9
+ #
10
+ # @return [String]
11
+ required :bucket, String
12
+
13
+ # @!attribute region
14
+ #
15
+ # @return [String]
16
+ required :region, String
17
+
18
+ # @!attribute tenancy_ocid
19
+ #
20
+ # @return [String]
21
+ required :tenancy_ocid, String
22
+
23
+ # @!attribute type
24
+ #
25
+ # @return [Symbol, :oci]
26
+ required :type, const: :oci
27
+
28
+ # @!method initialize(bucket:, region:, tenancy_ocid:, type: :oci)
29
+ # @param bucket [String]
30
+ # @param region [String]
31
+ # @param tenancy_ocid [String]
32
+ # @param type [Symbol, :oci]
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -11,11 +11,14 @@ module OpenAI
11
11
  US_STORAGE_PROCESSING = :US_STORAGE_PROCESSING
12
12
  EU_STORAGE_PROCESSING = :EU_STORAGE_PROCESSING
13
13
  JP_STORAGE = :JP_STORAGE
14
+ JP_STORAGE_PROCESSING = :JP_STORAGE_PROCESSING
14
15
  KR_STORAGE = :KR_STORAGE
15
16
  CA_STORAGE = :CA_STORAGE
16
17
  SG_STORAGE = :SG_STORAGE
17
18
  IN_STORAGE = :IN_STORAGE
19
+ IN_STORAGE_PROCESSING = :IN_STORAGE_PROCESSING
18
20
  AU_STORAGE = :AU_STORAGE
21
+ AU_STORAGE_PROCESSING = :AU_STORAGE_PROCESSING
19
22
  GB_STORAGE = :GB_STORAGE
20
23
  AE_STORAGE = :AE_STORAGE
21
24
  AE_STORAGE_PROCESSING = :AE_STORAGE_PROCESSING
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ # @see OpenAI::Resources::Admin::Organization::Projects::APIKeys#update
9
+ class APIKeyUpdateParams < OpenAI::Internal::Type::BaseModel
10
+ extend OpenAI::Internal::Type::RequestParameters::Converter
11
+ include OpenAI::Internal::Type::RequestParameters
12
+
13
+ # @!attribute project_id
14
+ #
15
+ # @return [String]
16
+ required :project_id, String
17
+
18
+ # @!attribute api_key_id
19
+ #
20
+ # @return [String]
21
+ required :api_key_id, String
22
+
23
+ # @!attribute expires_in_seconds
24
+ # Number of seconds from this request until the API key expires. Must comply with
25
+ # the organization and project expiry policies. Expired keys cannot be updated.
26
+ # Retrying resets the expiry relative to the new request. Omit to keep the current
27
+ # expiration.
28
+ #
29
+ # @return [Integer, nil]
30
+ optional :expires_in_seconds, Integer
31
+
32
+ # @!attribute scopes
33
+ # Replace the API key scope restrictions. Omit to leave scopes unchanged. An empty
34
+ # array removes key restrictions (All permissions), subject to the owner's
35
+ # effective permissions. Use ["api.all.read"] for read-only access. Scopes do not
36
+ # change the owner's roles or grant administrative permissions.
37
+ #
38
+ # @return [Array<String>, nil]
39
+ optional :scopes, OpenAI::Internal::Type::ArrayOf[String]
40
+
41
+ # @!method initialize(project_id:, api_key_id:, expires_in_seconds: nil, scopes: nil, request_options: {})
42
+ # @param project_id [String]
43
+ #
44
+ # @param api_key_id [String]
45
+ #
46
+ # @param expires_in_seconds [Integer]
47
+ # Number of seconds from this request until the API key expires. Must comply with
48
+ # the organization and project expiry policies. Expired keys cannot be updated.
49
+ # Retrying resets the expiry relative to the new request. Omit to keep the current
50
+ # expiration.
51
+ #
52
+ # @param scopes [Array<String>]
53
+ # Replace the API key scope restrictions. Omit to leave scopes unchanged. An empty
54
+ # array removes key restrictions (All permissions), subject to the owner's
55
+ # effective permissions. Use ["api.all.read"] for read-only access. Scopes do not
56
+ # change the owner's roles or grant administrative permissions.
57
+ #
58
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ # @see OpenAI::Resources::Admin::Organization::Projects::APIKeys#update_scopes
9
+ class APIKeyUpdateScopesParams < OpenAI::Internal::Type::BaseModel
10
+ extend OpenAI::Internal::Type::RequestParameters::Converter
11
+ include OpenAI::Internal::Type::RequestParameters
12
+
13
+ # @!attribute project_id
14
+ #
15
+ # @return [String]
16
+ required :project_id, String
17
+
18
+ # @!attribute scopes
19
+ #
20
+ # @return [Array<String>]
21
+ required :scopes, OpenAI::Internal::Type::ArrayOf[String]
22
+
23
+ # @!method initialize(project_id:, scopes:, request_options: {})
24
+ # @param project_id [String]
25
+ #
26
+ # @param scopes [Array<String>]
27
+ #
28
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,177 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ # @see OpenAI::Resources::Admin::Organization::Usage#decisions
8
+ class UsageDecisionsParams < OpenAI::Internal::Type::BaseModel
9
+ extend OpenAI::Internal::Type::RequestParameters::Converter
10
+ include OpenAI::Internal::Type::RequestParameters
11
+
12
+ # @!attribute start_time
13
+ # Start time (Unix seconds) of the query time range, inclusive.
14
+ #
15
+ # @return [Integer]
16
+ required :start_time, Integer
17
+
18
+ # @!attribute api_key_ids
19
+ # Return only usage for these API keys.
20
+ #
21
+ # @return [Array<String>, nil]
22
+ optional :api_key_ids, OpenAI::Internal::Type::ArrayOf[String], nil?: true
23
+
24
+ # @!attribute batch
25
+ # If `true`, return batch jobs only. If `false`, return non-batch jobs only. By
26
+ # default, return both.
27
+ #
28
+ # @return [Boolean, nil]
29
+ optional :batch, OpenAI::Internal::Type::Boolean, nil?: true
30
+
31
+ # @!attribute bucket_width
32
+ # Width of each time bucket in response. Currently `1m`, `1h` and `1d` are
33
+ # supported, default to `1d`.
34
+ #
35
+ # @return [Symbol, OpenAI::Models::Admin::Organization::UsageDecisionsParams::BucketWidth, nil]
36
+ optional(
37
+ :bucket_width,
38
+ enum: -> { OpenAI::Admin::Organization::UsageDecisionsParams::BucketWidth },
39
+ nil?: true
40
+ )
41
+
42
+ # @!attribute end_time
43
+ # End time (Unix seconds) of the query time range, exclusive.
44
+ #
45
+ # @return [Integer, nil]
46
+ optional :end_time, Integer, nil?: true
47
+
48
+ # @!attribute group_by
49
+ # Group the usage data by the specified fields. Support fields include
50
+ # `project_id`, `user_id`, `api_key_id`, `model`, `batch`, `service_tier`,
51
+ # `api_source` or any combination of them. When grouped by `api_source`, results
52
+ # use `agents_api` for attributed Agents API activity and `unlabeled` for all
53
+ # other activity. Without source grouping, `api_source` is null.
54
+ #
55
+ # @return [Array<Symbol, OpenAI::Models::Admin::Organization::UsageDecisionsParams::GroupBy>, nil]
56
+ optional(
57
+ :group_by,
58
+ -> {
59
+ OpenAI::Internal::Type::ArrayOf[enum: OpenAI::Admin::Organization::UsageDecisionsParams::GroupBy]
60
+ },
61
+ nil?: true
62
+ )
63
+
64
+ # @!attribute limit
65
+ # Specifies the number of buckets to return.
66
+ #
67
+ # - `bucket_width=1d`: default: 7, max: 31
68
+ # - `bucket_width=1h`: default: 24, max: 168
69
+ # - `bucket_width=1m`: default: 60, max: 1440
70
+ #
71
+ # @return [Integer, nil]
72
+ optional :limit, Integer, nil?: true
73
+
74
+ # @!attribute models
75
+ # Return only usage for these models.
76
+ #
77
+ # @return [Array<String>, nil]
78
+ optional :models, OpenAI::Internal::Type::ArrayOf[String], nil?: true
79
+
80
+ # @!attribute page
81
+ # A cursor for use in pagination. Corresponding to the `next_page` field from the
82
+ # previous response.
83
+ #
84
+ # @return [String, nil]
85
+ optional :page, String, nil?: true
86
+
87
+ # @!attribute project_ids
88
+ # Return only usage for these projects.
89
+ #
90
+ # @return [Array<String>, nil]
91
+ optional :project_ids, OpenAI::Internal::Type::ArrayOf[String], nil?: true
92
+
93
+ # @!attribute user_ids
94
+ # Return only usage for these users.
95
+ #
96
+ # @return [Array<String>, nil]
97
+ optional :user_ids, OpenAI::Internal::Type::ArrayOf[String], nil?: true
98
+
99
+ # @!method initialize(start_time:, api_key_ids: nil, batch: nil, bucket_width: nil, end_time: nil, group_by: nil, limit: nil, models: nil, page: nil, project_ids: nil, user_ids: nil, request_options: {})
100
+ # @param start_time [Integer]
101
+ # Start time (Unix seconds) of the query time range, inclusive.
102
+ #
103
+ # @param api_key_ids [Array<String>, nil]
104
+ # Return only usage for these API keys.
105
+ #
106
+ # @param batch [Boolean, nil]
107
+ # If `true`, return batch jobs only. If `false`, return non-batch jobs only. By
108
+ # default, return both.
109
+ #
110
+ # @param bucket_width [Symbol, OpenAI::Models::Admin::Organization::UsageDecisionsParams::BucketWidth, nil]
111
+ # Width of each time bucket in response. Currently `1m`, `1h` and `1d` are
112
+ # supported, default to `1d`.
113
+ #
114
+ # @param end_time [Integer, nil]
115
+ # End time (Unix seconds) of the query time range, exclusive.
116
+ #
117
+ # @param group_by [Array<Symbol, OpenAI::Models::Admin::Organization::UsageDecisionsParams::GroupBy>, nil]
118
+ # Group the usage data by the specified fields. Support fields include
119
+ # `project_id`, `user_id`, `api_key_id`, `model`, `batch`, `service_tier`,
120
+ # `api_source` or any combination of them. When grouped by `api_source`, results
121
+ # use `agents_api` for attributed Agents API activity and `unlabeled` for all
122
+ # other activity. Without source grouping, `api_source` is null.
123
+ #
124
+ # @param limit [Integer, nil]
125
+ # Specifies the number of buckets to return.
126
+ #
127
+ # - `bucket_width=1d`: default: 7, max: 31
128
+ # - `bucket_width=1h`: default: 24, max: 168
129
+ # - `bucket_width=1m`: default: 60, max: 1440
130
+ #
131
+ # @param models [Array<String>, nil]
132
+ # Return only usage for these models.
133
+ #
134
+ # @param page [String, nil]
135
+ # A cursor for use in pagination. Corresponding to the `next_page` field from the
136
+ # previous response.
137
+ #
138
+ # @param project_ids [Array<String>, nil]
139
+ # Return only usage for these projects.
140
+ #
141
+ # @param user_ids [Array<String>, nil]
142
+ # Return only usage for these users.
143
+ #
144
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
145
+
146
+ # Width of each time bucket in response. Currently `1m`, `1h` and `1d` are
147
+ # supported, default to `1d`.
148
+ module BucketWidth
149
+ extend OpenAI::Internal::Type::Enum
150
+
151
+ BUCKET_WIDTH_1M = :"1m"
152
+ BUCKET_WIDTH_1H = :"1h"
153
+ BUCKET_WIDTH_1D = :"1d"
154
+
155
+ # @!method self.values
156
+ # @return [Array<Symbol>]
157
+ end
158
+
159
+ module GroupBy
160
+ extend OpenAI::Internal::Type::Enum
161
+
162
+ PROJECT_ID = :project_id
163
+ USER_ID = :user_id
164
+ API_KEY_ID = :api_key_id
165
+ MODEL = :model
166
+ BATCH = :batch
167
+ SERVICE_TIER = :service_tier
168
+ API_SOURCE = :api_source
169
+
170
+ # @!method self.values
171
+ # @return [Array<Symbol>]
172
+ end
173
+ end
174
+ end
175
+ end
176
+ end
177
+ end
@@ -0,0 +1,351 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ # @see OpenAI::Resources::Admin::Organization::Usage#decisions
8
+ class UsageDecisionsResponse < OpenAI::Internal::Type::BaseModel
9
+ # @!attribute data
10
+ #
11
+ # @return [Array<OpenAI::Models::Admin::Organization::UsageDecisionsResponse::Data>]
12
+ required(
13
+ :data,
14
+ -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Models::Admin::Organization::UsageDecisionsResponse::Data] }
15
+ )
16
+
17
+ # @!attribute has_more
18
+ #
19
+ # @return [Boolean]
20
+ required :has_more, OpenAI::Internal::Type::Boolean
21
+
22
+ # @!attribute next_page
23
+ #
24
+ # @return [String, nil]
25
+ required :next_page, String, nil?: true
26
+
27
+ # @!attribute object
28
+ #
29
+ # @return [Symbol, :page]
30
+ required :object, const: :page
31
+
32
+ # @!method initialize(data:, has_more:, next_page:, object: :page)
33
+ # @param data [Array<OpenAI::Models::Admin::Organization::UsageDecisionsResponse::Data>]
34
+ # @param has_more [Boolean]
35
+ # @param next_page [String, nil]
36
+ # @param object [Symbol, :page]
37
+
38
+ class Data < OpenAI::Internal::Type::BaseModel
39
+ # @!attribute end_time
40
+ #
41
+ # @return [Integer]
42
+ required :end_time, Integer
43
+
44
+ # @!attribute object
45
+ #
46
+ # @return [Symbol, :bucket]
47
+ required :object, const: :bucket
48
+
49
+ # @!attribute results
50
+ #
51
+ # @return [Array<OpenAI::Models::Admin::Organization::UsageDecisionsResponse::Data::Result>]
52
+ required(
53
+ :results,
54
+ -> {
55
+ OpenAI::Internal::Type::ArrayOf[
56
+ OpenAI::Models::Admin::Organization::UsageDecisionsResponse::Data::Result
57
+ ]
58
+ }
59
+ )
60
+
61
+ # @!attribute start_time
62
+ #
63
+ # @return [Integer]
64
+ required :start_time, Integer
65
+
66
+ # @!method initialize(end_time:, results:, start_time:, object: :bucket)
67
+ # @param end_time [Integer]
68
+ # @param results [Array<OpenAI::Models::Admin::Organization::UsageDecisionsResponse::Data::Result>]
69
+ # @param start_time [Integer]
70
+ # @param object [Symbol, :bucket]
71
+
72
+ class Result < OpenAI::Internal::Type::BaseModel
73
+ # @!attribute input_tokens
74
+ # The aggregated number of input tokens used, including cached and cache-write
75
+ # tokens. This includes text, audio, and image tokens. For customers subscribed to
76
+ # Scale Tier, this includes Scale Tier tokens.
77
+ #
78
+ # @return [Integer]
79
+ required :input_tokens, Integer
80
+
81
+ # @!attribute num_model_requests
82
+ # The count of requests made to the model.
83
+ #
84
+ # @return [Integer]
85
+ required :num_model_requests, Integer
86
+
87
+ # @!attribute object
88
+ #
89
+ # @return [Symbol, :"organization.usage.decisions.result"]
90
+ required :object, const: :"organization.usage.decisions.result"
91
+
92
+ # @!attribute output_tokens
93
+ # The aggregated number of output tokens used across text, audio, and image
94
+ # outputs. For customers subscribed to Scale Tier, this includes Scale Tier
95
+ # tokens.
96
+ #
97
+ # @return [Integer]
98
+ required :output_tokens, Integer
99
+
100
+ # @!attribute api_key_id
101
+ # When `group_by=api_key_id`, this field provides the API key ID of the grouped
102
+ # usage result.
103
+ #
104
+ # @return [String, nil]
105
+ optional :api_key_id, String, nil?: true
106
+
107
+ # @!attribute api_source
108
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
109
+ # activity and `unlabeled` includes all records without published source
110
+ # attribution, including historical and unknown origins. Unlabeled does not imply
111
+ # direct API usage. Without source grouping, this field is null.
112
+ #
113
+ # @return [Symbol, OpenAI::Models::Admin::Organization::UsageDecisionsResponse::Data::Result::APISource, nil]
114
+ optional(
115
+ :api_source,
116
+ enum: -> { OpenAI::Models::Admin::Organization::UsageDecisionsResponse::Data::Result::APISource },
117
+ nil?: true
118
+ )
119
+
120
+ # @!attribute batch
121
+ # When `group_by=batch`, this field tells whether the grouped usage result is
122
+ # batch or not.
123
+ #
124
+ # @return [Boolean, nil]
125
+ optional :batch, OpenAI::Internal::Type::Boolean, nil?: true
126
+
127
+ # @!attribute input_audio_tokens
128
+ # The aggregated number of uncached audio input tokens used.
129
+ #
130
+ # @return [Integer, nil]
131
+ optional :input_audio_tokens, Integer, nil?: true
132
+
133
+ # @!attribute input_cache_write_12h_tokens
134
+ # The aggregated number of input tokens written to the cache with a 12-hour
135
+ # retention period.
136
+ #
137
+ # @return [Integer, nil]
138
+ optional :input_cache_write_12h_tokens, Integer, nil?: true
139
+
140
+ # @!attribute input_cache_write_tokens
141
+ # The aggregated number of input tokens written to the cache with a 30-minute
142
+ # retention period.
143
+ #
144
+ # @return [Integer, nil]
145
+ optional :input_cache_write_tokens, Integer, nil?: true
146
+
147
+ # @!attribute input_cached_audio_tokens
148
+ # The aggregated number of cached audio input tokens used.
149
+ #
150
+ # @return [Integer, nil]
151
+ optional :input_cached_audio_tokens, Integer, nil?: true
152
+
153
+ # @!attribute input_cached_image_tokens
154
+ # The aggregated number of cached image input tokens used.
155
+ #
156
+ # @return [Integer, nil]
157
+ optional :input_cached_image_tokens, Integer, nil?: true
158
+
159
+ # @!attribute input_cached_text_tokens
160
+ # The aggregated number of cached text input tokens used.
161
+ #
162
+ # @return [Integer, nil]
163
+ optional :input_cached_text_tokens, Integer, nil?: true
164
+
165
+ # @!attribute input_cached_tokens
166
+ # The aggregated number of cached input tokens used across text, audio, and image
167
+ # inputs. For customers subscribed to Scale Tier, this includes Scale Tier tokens.
168
+ #
169
+ # @return [Integer, nil]
170
+ optional :input_cached_tokens, Integer, nil?: true
171
+
172
+ # @!attribute input_image_tokens
173
+ # The aggregated number of uncached image input tokens used.
174
+ #
175
+ # @return [Integer, nil]
176
+ optional :input_image_tokens, Integer, nil?: true
177
+
178
+ # @!attribute input_text_tokens
179
+ # The aggregated number of uncached text input tokens used, excluding cache-write
180
+ # tokens.
181
+ #
182
+ # @return [Integer, nil]
183
+ optional :input_text_tokens, Integer, nil?: true
184
+
185
+ # @!attribute input_uncached_tokens
186
+ # The aggregated number of uncached input tokens used across text, audio, and
187
+ # image inputs, excluding cache-write tokens.
188
+ #
189
+ # @return [Integer, nil]
190
+ optional :input_uncached_tokens, Integer, nil?: true
191
+
192
+ # @!attribute model
193
+ # When `group_by=model`, this field provides the model name of the grouped usage
194
+ # result.
195
+ #
196
+ # @return [String, nil]
197
+ optional :model, String, nil?: true
198
+
199
+ # @!attribute output_audio_tokens
200
+ # The aggregated number of audio output tokens used.
201
+ #
202
+ # @return [Integer, nil]
203
+ optional :output_audio_tokens, Integer, nil?: true
204
+
205
+ # @!attribute output_image_tokens
206
+ # The aggregated number of image output tokens used.
207
+ #
208
+ # @return [Integer, nil]
209
+ optional :output_image_tokens, Integer, nil?: true
210
+
211
+ # @!attribute output_text_tokens
212
+ # The aggregated number of text output tokens used.
213
+ #
214
+ # @return [Integer, nil]
215
+ optional :output_text_tokens, Integer, nil?: true
216
+
217
+ # @!attribute project_id
218
+ # When `group_by=project_id`, this field provides the project ID of the grouped
219
+ # usage result.
220
+ #
221
+ # @return [String, nil]
222
+ optional :project_id, String, nil?: true
223
+
224
+ # @!attribute service_tier
225
+ # When `group_by=service_tier`, this field provides the service tier of the
226
+ # grouped usage result.
227
+ #
228
+ # @return [String, nil]
229
+ optional :service_tier, String, nil?: true
230
+
231
+ # @!attribute user_id
232
+ # When `group_by=user_id`, this field provides the user ID of the grouped usage
233
+ # result.
234
+ #
235
+ # @return [String, nil]
236
+ optional :user_id, String, nil?: true
237
+
238
+ # @!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.decisions.result")
239
+ # The aggregated Decisions API usage details of the specific time bucket.
240
+ #
241
+ # @param input_tokens [Integer]
242
+ # The aggregated number of input tokens used, including cached and cache-write
243
+ # tokens. This includes text, audio, and image tokens. For customers subscribed to
244
+ # Scale Tier, this includes Scale Tier tokens.
245
+ #
246
+ # @param num_model_requests [Integer]
247
+ # The count of requests made to the model.
248
+ #
249
+ # @param output_tokens [Integer]
250
+ # The aggregated number of output tokens used across text, audio, and image
251
+ # outputs. For customers subscribed to Scale Tier, this includes Scale Tier
252
+ # tokens.
253
+ #
254
+ # @param api_key_id [String, nil]
255
+ # When `group_by=api_key_id`, this field provides the API key ID of the grouped
256
+ # usage result.
257
+ #
258
+ # @param api_source [Symbol, OpenAI::Models::Admin::Organization::UsageDecisionsResponse::Data::Result::APISource, nil]
259
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
260
+ # activity and `unlabeled` includes all records without published source
261
+ # attribution, including historical and unknown origins. Unlabeled does not imply
262
+ # direct API usage. Without source grouping, this field is null.
263
+ #
264
+ # @param batch [Boolean, nil]
265
+ # When `group_by=batch`, this field tells whether the grouped usage result is
266
+ # batch or not.
267
+ #
268
+ # @param input_audio_tokens [Integer, nil]
269
+ # The aggregated number of uncached audio input tokens used.
270
+ #
271
+ # @param input_cache_write_12h_tokens [Integer, nil]
272
+ # The aggregated number of input tokens written to the cache with a 12-hour
273
+ # retention period.
274
+ #
275
+ # @param input_cache_write_tokens [Integer, nil]
276
+ # The aggregated number of input tokens written to the cache with a 30-minute
277
+ # retention period.
278
+ #
279
+ # @param input_cached_audio_tokens [Integer, nil]
280
+ # The aggregated number of cached audio input tokens used.
281
+ #
282
+ # @param input_cached_image_tokens [Integer, nil]
283
+ # The aggregated number of cached image input tokens used.
284
+ #
285
+ # @param input_cached_text_tokens [Integer, nil]
286
+ # The aggregated number of cached text input tokens used.
287
+ #
288
+ # @param input_cached_tokens [Integer, nil]
289
+ # The aggregated number of cached input tokens used across text, audio, and image
290
+ # inputs. For customers subscribed to Scale Tier, this includes Scale Tier tokens.
291
+ #
292
+ # @param input_image_tokens [Integer, nil]
293
+ # The aggregated number of uncached image input tokens used.
294
+ #
295
+ # @param input_text_tokens [Integer, nil]
296
+ # The aggregated number of uncached text input tokens used, excluding cache-write
297
+ # tokens.
298
+ #
299
+ # @param input_uncached_tokens [Integer, nil]
300
+ # The aggregated number of uncached input tokens used across text, audio, and
301
+ # image inputs, excluding cache-write tokens.
302
+ #
303
+ # @param model [String, nil]
304
+ # When `group_by=model`, this field provides the model name of the grouped usage
305
+ # result.
306
+ #
307
+ # @param output_audio_tokens [Integer, nil]
308
+ # The aggregated number of audio output tokens used.
309
+ #
310
+ # @param output_image_tokens [Integer, nil]
311
+ # The aggregated number of image output tokens used.
312
+ #
313
+ # @param output_text_tokens [Integer, nil]
314
+ # The aggregated number of text output tokens used.
315
+ #
316
+ # @param project_id [String, nil]
317
+ # When `group_by=project_id`, this field provides the project ID of the grouped
318
+ # usage result.
319
+ #
320
+ # @param service_tier [String, nil]
321
+ # When `group_by=service_tier`, this field provides the service tier of the
322
+ # grouped usage result.
323
+ #
324
+ # @param user_id [String, nil]
325
+ # When `group_by=user_id`, this field provides the user ID of the grouped usage
326
+ # result.
327
+ #
328
+ # @param object [Symbol, :"organization.usage.decisions.result"]
329
+
330
+ # When grouped by `api_source`, `agents_api` identifies attributed Agents API
331
+ # activity and `unlabeled` includes all records without published source
332
+ # attribution, including historical and unknown origins. Unlabeled does not imply
333
+ # direct API usage. Without source grouping, this field is null.
334
+ #
335
+ # @see OpenAI::Models::Admin::Organization::UsageDecisionsResponse::Data::Result#api_source
336
+ module APISource
337
+ extend OpenAI::Internal::Type::Enum
338
+
339
+ AGENTS_API = :agents_api
340
+ UNLABELED = :unlabeled
341
+
342
+ # @!method self.values
343
+ # @return [Array<Symbol>]
344
+ end
345
+ end
346
+ end
347
+ end
348
+ end
349
+ end
350
+ end
351
+ end