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
@@ -9,7 +9,8 @@ module OpenAI
9
9
  quality: OpenAI::Models::ImageGenCompletedEvent::quality,
10
10
  size: OpenAI::Models::ImageGenCompletedEvent::size,
11
11
  ?type: :"image_generation.completed",
12
- usage: OpenAI::ImageGenCompletedEvent::Usage
12
+ usage: OpenAI::ImageGenCompletedEvent::Usage,
13
+ ?safety_identifier: String?
13
14
  }
14
15
 
15
16
  class ImageGenCompletedEvent < OpenAI::Internal::Type::BaseModel
@@ -38,6 +39,11 @@ module OpenAI
38
39
  # generation.
39
40
  attr_accessor usage: OpenAI::ImageGenCompletedEvent::Usage
40
41
 
42
+ # The effective safety identifier used for safety monitoring and abuse detection.
43
+ # This is the non-empty `safety_identifier` from the request, or the deprecated
44
+ # `user` value when `safety_identifier` is omitted, null, or empty.
45
+ attr_accessor safety_identifier: String?
46
+
41
47
  # @param b64_json
42
48
  # Base64-encoded image data, suitable for rendering as an image.
43
49
  # @param background
@@ -53,6 +59,10 @@ module OpenAI
53
59
  # @param usage
54
60
  # For the GPT image models only, the token usage information for the image
55
61
  # generation.
62
+ # @param safety_identifier
63
+ # The effective safety identifier used for safety monitoring and abuse detection.
64
+ # This is the non-empty `safety_identifier` from the request, or the deprecated
65
+ # `user` value when `safety_identifier` is omitted, null, or empty.
56
66
  # @param type
57
67
  # The type of the event. Always `image_generation.completed`.
58
68
  def initialize: (
@@ -63,6 +73,7 @@ module OpenAI
63
73
  quality: OpenAI::Models::ImageGenCompletedEvent::quality,
64
74
  size: OpenAI::Models::ImageGenCompletedEvent::size,
65
75
  usage: OpenAI::ImageGenCompletedEvent::Usage,
76
+ ?safety_identifier: String?,
66
77
  ?type: :"image_generation.completed"
67
78
  ) -> void
68
79
 
@@ -74,7 +85,8 @@ module OpenAI
74
85
  quality: OpenAI::Models::ImageGenCompletedEvent::quality,
75
86
  size: OpenAI::Models::ImageGenCompletedEvent::size,
76
87
  ?type: :"image_generation.completed",
77
- usage: OpenAI::ImageGenCompletedEvent::Usage
88
+ usage: OpenAI::ImageGenCompletedEvent::Usage,
89
+ ?safety_identifier: String?
78
90
  }
79
91
 
80
92
  type background = :transparent | :opaque | :auto
@@ -12,6 +12,7 @@ module OpenAI
12
12
  ?partial_images: Integer?,
13
13
  ?quality: OpenAI::Models::ImageGenerateParams::quality?,
14
14
  ?response_format: OpenAI::Models::ImageGenerateParams::response_format?,
15
+ ?safety_identifier: String?,
15
16
  ?size: OpenAI::Models::ImageGenerateParams::size?,
16
17
  ?style: OpenAI::Models::ImageGenerateParams::style?,
17
18
  ?user: String,
@@ -82,6 +83,14 @@ module OpenAI
82
83
  # image models, which always return base64-encoded images.
83
84
  attr_accessor response_format: OpenAI::Models::ImageGenerateParams::response_format?
84
85
 
86
+ # A stable identifier for an end user in your organization, used for safety
87
+ # monitoring and abuse detection. Hash a username or email address to avoid
88
+ # sending identifying information. A non-empty value takes precedence over the
89
+ # deprecated `user` parameter. If omitted, null, or empty, the API uses `user`
90
+ # when available.
91
+ # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
92
+ attr_accessor safety_identifier: String?
93
+
85
94
  # The size of the generated images. For `gpt-image-2`, `gpt-image-2-2026-04-21`,
86
95
  # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
87
96
  # `gpt-image-2.5-flare`, and `gpt-image-2.5-flare-2026-09-08`, arbitrary
@@ -98,13 +107,15 @@ module OpenAI
98
107
  # models; describe the desired style in the prompt instead.
99
108
  attr_accessor style: OpenAI::Models::ImageGenerateParams::style?
100
109
 
101
- # A unique identifier representing your end-user, which can help OpenAI to monitor
102
- # and detect abuse.
110
+ # Deprecated: use `safety_identifier` instead. This parameter remains accepted for
111
+ # backward compatibility and is used when `safety_identifier` is omitted, null, or
112
+ # empty.
103
113
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
104
114
  attr_reader user: String?
105
115
 
106
- # A unique identifier representing your end-user, which can help OpenAI to monitor
107
- # and detect abuse.
116
+ # Deprecated: use `safety_identifier` instead. This parameter remains accepted for
117
+ # backward compatibility and is used when `safety_identifier` is omitted, null, or
118
+ # empty.
108
119
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
109
120
  def user=: (String) -> String
110
121
 
@@ -158,6 +169,13 @@ module OpenAI
158
169
  # @param response_format
159
170
  # Legacy response format parameter for retired image models. Unsupported for GPT
160
171
  # image models, which always return base64-encoded images.
172
+ # @param safety_identifier
173
+ # A stable identifier for an end user in your organization, used for safety
174
+ # monitoring and abuse detection. Hash a username or email address to avoid
175
+ # sending identifying information. A non-empty value takes precedence over the
176
+ # deprecated `user` parameter. If omitted, null, or empty, the API uses `user`
177
+ # when available.
178
+ # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
161
179
  # @param size
162
180
  # The size of the generated images. For `gpt-image-2`, `gpt-image-2-2026-04-21`,
163
181
  # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
@@ -173,8 +191,9 @@ module OpenAI
173
191
  # Legacy style parameter for retired image models. Unsupported for GPT image
174
192
  # models; describe the desired style in the prompt instead.
175
193
  # @param user
176
- # A unique identifier representing your end-user, which can help OpenAI to monitor
177
- # and detect abuse.
194
+ # Deprecated: use `safety_identifier` instead. This parameter remains accepted for
195
+ # backward compatibility and is used when `safety_identifier` is omitted, null, or
196
+ # empty.
178
197
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
179
198
  def initialize: (
180
199
  prompt: String,
@@ -187,6 +206,7 @@ module OpenAI
187
206
  ?partial_images: Integer?,
188
207
  ?quality: OpenAI::Models::ImageGenerateParams::quality?,
189
208
  ?response_format: OpenAI::Models::ImageGenerateParams::response_format?,
209
+ ?safety_identifier: String?,
190
210
  ?size: OpenAI::Models::ImageGenerateParams::size?,
191
211
  ?style: OpenAI::Models::ImageGenerateParams::style?,
192
212
  ?user: String,
@@ -204,6 +224,7 @@ module OpenAI
204
224
  ?partial_images: Integer?,
205
225
  ?quality: OpenAI::Models::ImageGenerateParams::quality?,
206
226
  ?response_format: OpenAI::Models::ImageGenerateParams::response_format?,
227
+ ?safety_identifier: String?,
207
228
  ?size: OpenAI::Models::ImageGenerateParams::size?,
208
229
  ?style: OpenAI::Models::ImageGenerateParams::style?,
209
230
  ?user: String,
@@ -7,6 +7,7 @@ module OpenAI
7
7
  ?data: ::Array[OpenAI::Image],
8
8
  ?output_format: OpenAI::Models::ImagesResponse::output_format,
9
9
  ?quality: OpenAI::Models::ImagesResponse::quality,
10
+ ?safety_identifier: String?,
10
11
  ?size: OpenAI::Models::ImagesResponse::size,
11
12
  ?usage: OpenAI::ImagesResponse::Usage
12
13
  }
@@ -49,6 +50,11 @@ module OpenAI
49
50
  OpenAI::Models::ImagesResponse::quality
50
51
  ) -> OpenAI::Models::ImagesResponse::quality
51
52
 
53
+ # The effective safety identifier used for safety monitoring and abuse detection.
54
+ # This is the non-empty `safety_identifier` from the request, or the deprecated
55
+ # `user` value when `safety_identifier` is omitted, null, or empty.
56
+ attr_accessor safety_identifier: String?
57
+
52
58
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
53
59
  attr_reader size: OpenAI::Models::ImagesResponse::size?
54
60
 
@@ -77,6 +83,10 @@ module OpenAI
77
83
  # @param quality
78
84
  # The quality of the image generated. One of `low`, `medium`, `high`, `xhigh`, or
79
85
  # `max`.
86
+ # @param safety_identifier
87
+ # The effective safety identifier used for safety monitoring and abuse detection.
88
+ # This is the non-empty `safety_identifier` from the request, or the deprecated
89
+ # `user` value when `safety_identifier` is omitted, null, or empty.
80
90
  # @param size
81
91
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
82
92
  # @param usage
@@ -87,6 +97,7 @@ module OpenAI
87
97
  ?data: ::Array[OpenAI::Image],
88
98
  ?output_format: OpenAI::Models::ImagesResponse::output_format,
89
99
  ?quality: OpenAI::Models::ImagesResponse::quality,
100
+ ?safety_identifier: String?,
90
101
  ?size: OpenAI::Models::ImagesResponse::size,
91
102
  ?usage: OpenAI::ImagesResponse::Usage
92
103
  ) -> void
@@ -97,6 +108,7 @@ module OpenAI
97
108
  ?data: ::Array[OpenAI::Image],
98
109
  ?output_format: OpenAI::Models::ImagesResponse::output_format,
99
110
  ?quality: OpenAI::Models::ImagesResponse::quality,
111
+ ?safety_identifier: String?,
100
112
  ?size: OpenAI::Models::ImagesResponse::size,
101
113
  ?usage: OpenAI::ImagesResponse::Usage
102
114
  }
@@ -18,6 +18,7 @@ module OpenAI
18
18
  | :quartz
19
19
  | :ripple
20
20
  | :sage
21
+ | :shida
21
22
  | :shimmer
22
23
  | :stone
23
24
  | :tempo
@@ -44,6 +45,7 @@ module OpenAI
44
45
  QUARTZ: :quartz
45
46
  RIPPLE: :ripple
46
47
  SAGE: :sage
48
+ SHIDA: :shida
47
49
  SHIMMER: :shimmer
48
50
  STONE: :stone
49
51
  TEMPO: :tempo
@@ -7,9 +7,13 @@ module OpenAI
7
7
  | OpenAI::Live::InputAudioAppendEvent
8
8
  | OpenAI::Live::InputAudioMuteEvent
9
9
  | OpenAI::Live::InputAudioUnmuteEvent
10
+ | OpenAI::Live::OutputAudioFixturePlayEvent
10
11
  | OpenAI::Live::InstructionsAppendEvent
11
12
  | OpenAI::Live::ThinkingAppendEvent
12
13
  | OpenAI::Live::CommentaryAppendEvent
14
+ | OpenAI::Live::DecisionCreateEvent
15
+ | OpenAI::Live::DecisionItemCreateEvent
16
+ | OpenAI::Live::DecisionItemDeleteEvent
13
17
  | OpenAI::Live::ResponseItemCreateEvent
14
18
  | OpenAI::Live::ResponseCreateEvent
15
19
  | OpenAI::Live::SessionCloseEvent
@@ -0,0 +1,18 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type decision_create_event =
5
+ { event_id: String, ?type: :"decision.create" }
6
+
7
+ class DecisionCreateEvent < OpenAI::Internal::Type::BaseModel
8
+ attr_accessor event_id: String
9
+
10
+ attr_accessor type: :"decision.create"
11
+
12
+ def initialize: (event_id: String, ?type: :"decision.create") -> void
13
+
14
+ def to_hash: -> { event_id: String, ?type: :"decision.create" }
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,102 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type decision_event =
5
+ {
6
+ delegation_id: String?,
7
+ event: OpenAI::Live::DecisionEvent::Event,
8
+ event_id: String,
9
+ source_event_id: String?,
10
+ source_event_type: OpenAI::Models::Live::DecisionEvent::source_event_type?,
11
+ trigger_id: String?,
12
+ ?type: :"decision.event"
13
+ }
14
+
15
+ class DecisionEvent < OpenAI::Internal::Type::BaseModel
16
+ # The Live delegation ID, or null for a transcript trigger.
17
+ attr_accessor delegation_id: String?
18
+
19
+ attr_accessor event: OpenAI::Live::DecisionEvent::Event
20
+
21
+ # The unique ID of this Live server event.
22
+ attr_accessor event_id: String
23
+
24
+ # The event_id of the transcript delta that fired this trigger, or null for a
25
+ # delegation.
26
+ attr_accessor source_event_id: String?
27
+
28
+ attr_accessor source_event_type: OpenAI::Models::Live::DecisionEvent::source_event_type?
29
+
30
+ # The Live-assigned ID of this trigger firing, or null for a delegation.
31
+ attr_accessor trigger_id: String?
32
+
33
+ attr_accessor type: :"decision.event"
34
+
35
+ # @param delegation_id
36
+ # The Live delegation ID, or null for a transcript trigger.
37
+ # @param event_id
38
+ # The unique ID of this Live server event.
39
+ # @param source_event_id
40
+ # The event_id of the transcript delta that fired this trigger, or null for a
41
+ # delegation.
42
+ # @param trigger_id
43
+ # The Live-assigned ID of this trigger firing, or null for a delegation.
44
+ def initialize: (
45
+ delegation_id: String?,
46
+ event: OpenAI::Live::DecisionEvent::Event,
47
+ event_id: String,
48
+ source_event_id: String?,
49
+ source_event_type: OpenAI::Models::Live::DecisionEvent::source_event_type?,
50
+ trigger_id: String?,
51
+ ?type: :"decision.event"
52
+ ) -> void
53
+
54
+ def to_hash: -> {
55
+ delegation_id: String?,
56
+ event: OpenAI::Live::DecisionEvent::Event,
57
+ event_id: String,
58
+ source_event_id: String?,
59
+ source_event_type: OpenAI::Models::Live::DecisionEvent::source_event_type?,
60
+ trigger_id: String?,
61
+ ?type: :"decision.event"
62
+ }
63
+
64
+ type event =
65
+ { decision: OpenAI::Decision, ?type: :"decision.completed" }
66
+
67
+ class Event < OpenAI::Internal::Type::BaseModel
68
+ # The native Decision API response, including its model, ordered answers, and
69
+ # token usage.
70
+ attr_accessor decision: OpenAI::Decision
71
+
72
+ attr_accessor type: :"decision.completed"
73
+
74
+ # @param decision
75
+ # The native Decision API response, including its model, ordered answers, and
76
+ # token usage.
77
+ def initialize: (
78
+ decision: OpenAI::Decision,
79
+ ?type: :"decision.completed"
80
+ ) -> void
81
+
82
+ def to_hash: -> {
83
+ decision: OpenAI::Decision,
84
+ ?type: :"decision.completed"
85
+ }
86
+ end
87
+
88
+ type source_event_type =
89
+ :"session.input_transcript.delta" | :"session.output_transcript.delta"
90
+
91
+ module SourceEventType
92
+ extend OpenAI::Internal::Type::Union
93
+
94
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionEvent::source_event_type]
95
+
96
+ SESSION_INPUT_TRANSCRIPT_DELTA: :"session.input_transcript.delta"
97
+ SESSION_OUTPUT_TRANSCRIPT_DELTA: :"session.output_transcript.delta"
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,183 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type decision_item_create_event =
5
+ {
6
+ item: OpenAI::Live::DecisionItemCreateEvent::Item,
7
+ ?type: :"decision.item.create",
8
+ ?event_id: String?
9
+ }
10
+
11
+ class DecisionItemCreateEvent < OpenAI::Internal::Type::BaseModel
12
+ attr_accessor item: OpenAI::Live::DecisionItemCreateEvent::Item
13
+
14
+ attr_accessor type: :"decision.item.create"
15
+
16
+ # Optional client identifier for correlating this command with a server event's
17
+ # client_event_id or error.client_event_id.
18
+ attr_accessor event_id: String?
19
+
20
+ # @param event_id
21
+ # Optional client identifier for correlating this command with a server event's
22
+ # client_event_id or error.client_event_id.
23
+ def initialize: (
24
+ item: OpenAI::Live::DecisionItemCreateEvent::Item,
25
+ ?event_id: String?,
26
+ ?type: :"decision.item.create"
27
+ ) -> void
28
+
29
+ def to_hash: -> {
30
+ item: OpenAI::Live::DecisionItemCreateEvent::Item,
31
+ ?type: :"decision.item.create",
32
+ ?event_id: String?
33
+ }
34
+
35
+ type item =
36
+ {
37
+ content: OpenAI::Models::Live::DecisionItemCreateEvent::Item::content,
38
+ ?role: :user,
39
+ ?id: String?,
40
+ ?type: OpenAI::Models::Live::DecisionItemCreateEvent::Item::type_
41
+ }
42
+
43
+ class Item < OpenAI::Internal::Type::BaseModel
44
+ # The text input to the model.
45
+ attr_accessor content: OpenAI::Models::Live::DecisionItemCreateEvent::Item::content
46
+
47
+ # The message role. Always `user`.
48
+ attr_accessor role: :user
49
+
50
+ # The unique ID of this message item.
51
+ attr_accessor id: String?
52
+
53
+ attr_reader type: OpenAI::Models::Live::DecisionItemCreateEvent::Item::type_?
54
+
55
+ def type=: (
56
+ OpenAI::Models::Live::DecisionItemCreateEvent::Item::type_
57
+ ) -> OpenAI::Models::Live::DecisionItemCreateEvent::Item::type_
58
+
59
+ # @param content
60
+ # The text input to the model.
61
+ # @param id
62
+ # The unique ID of this message item.
63
+ # @param role
64
+ # The message role. Always `user`.
65
+ def initialize: (
66
+ content: OpenAI::Models::Live::DecisionItemCreateEvent::Item::content,
67
+ ?id: String?,
68
+ ?type: OpenAI::Models::Live::DecisionItemCreateEvent::Item::type_,
69
+ ?role: :user
70
+ ) -> void
71
+
72
+ def to_hash: -> {
73
+ content: OpenAI::Models::Live::DecisionItemCreateEvent::Item::content,
74
+ ?role: :user,
75
+ ?id: String?,
76
+ ?type: OpenAI::Models::Live::DecisionItemCreateEvent::Item::type_
77
+ }
78
+
79
+ type content =
80
+ String
81
+ | ::Array[OpenAI::Models::Live::DecisionItemCreateEvent::Item::Content::part]
82
+
83
+ module Content
84
+ extend OpenAI::Internal::Type::Union
85
+
86
+ type part =
87
+ OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputText
88
+ | OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage
89
+
90
+ module Part
91
+ extend OpenAI::Internal::Type::Union
92
+
93
+ type input_text = { text: String, ?type: :input_text }
94
+
95
+ class InputText < OpenAI::Internal::Type::BaseModel
96
+ # The text input to the model.
97
+ attr_accessor text: String
98
+
99
+ # The type of the input item. Always `input_text`.
100
+ attr_accessor type: :input_text
101
+
102
+ # @param text
103
+ # The text input to the model.
104
+ # @param type
105
+ # The type of the input item. Always `input_text`.
106
+ def initialize: (text: String, ?type: :input_text) -> void
107
+
108
+ def to_hash: -> { text: String, ?type: :input_text }
109
+ end
110
+
111
+ type input_image =
112
+ {
113
+ image_url: String,
114
+ ?type: :input_image,
115
+ ?detail: OpenAI::Models::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::detail?
116
+ }
117
+
118
+ class InputImage < OpenAI::Internal::Type::BaseModel
119
+ # An inline image encoded as a data URL.
120
+ attr_accessor image_url: String
121
+
122
+ # The type of the input item. Always `input_image`.
123
+ attr_accessor type: :input_image
124
+
125
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
126
+ # `auto`, or `original`. Defaults to `auto`.
127
+ attr_accessor detail: OpenAI::Models::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::detail?
128
+
129
+ # @param image_url
130
+ # An inline image encoded as a data URL.
131
+ # @param detail
132
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
133
+ # `auto`, or `original`. Defaults to `auto`.
134
+ # @param type
135
+ # The type of the input item. Always `input_image`.
136
+ def initialize: (
137
+ image_url: String,
138
+ ?detail: OpenAI::Models::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::detail?,
139
+ ?type: :input_image
140
+ ) -> void
141
+
142
+ def to_hash: -> {
143
+ image_url: String,
144
+ ?type: :input_image,
145
+ ?detail: OpenAI::Models::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::detail?
146
+ }
147
+
148
+ type detail = :low | :high | :auto | :original
149
+
150
+ module Detail
151
+ extend OpenAI::Internal::Type::Enum
152
+
153
+ LOW: :low
154
+ HIGH: :high
155
+ AUTO: :auto
156
+ ORIGINAL: :original
157
+
158
+ def self?.values: -> ::Array[OpenAI::Models::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::detail]
159
+ end
160
+ end
161
+
162
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionItemCreateEvent::Item::Content::part]
163
+ end
164
+
165
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionItemCreateEvent::Item::content]
166
+
167
+ PartsArray: OpenAI::Internal::Type::Converter
168
+ end
169
+
170
+ type type_ = :message
171
+
172
+ module Type
173
+ extend OpenAI::Internal::Type::Enum
174
+
175
+ MESSAGE: :message
176
+
177
+ def self?.values: -> ::Array[OpenAI::Models::Live::DecisionItemCreateEvent::Item::type_]
178
+ end
179
+ end
180
+ end
181
+ end
182
+ end
183
+ end