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