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