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,338 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class DecisionItemCreateEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::DecisionItemCreateEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(OpenAI::Live::DecisionItemCreateEvent::Item) }
18
+ attr_reader :item
19
+
20
+ sig { params(item: OpenAI::Live::DecisionItemCreateEvent::Item::OrHash).void }
21
+ attr_writer :item
22
+
23
+ sig { returns(Symbol) }
24
+ attr_accessor :type
25
+
26
+ # Optional client identifier for correlating this command with a server event's
27
+ # client_event_id or error.client_event_id.
28
+ sig { returns(T.nilable(String)) }
29
+ attr_accessor :event_id
30
+
31
+ # Append an input item for future decisions without starting an evaluation or
32
+ # changing Live voice context.
33
+ sig do
34
+ params(
35
+
36
+ item: OpenAI::Live::DecisionItemCreateEvent::Item::OrHash,
37
+
38
+ event_id: T.nilable(String),
39
+
40
+ type: Symbol
41
+ )
42
+ .returns(T.attached_class)
43
+ end
44
+ def self.new(
45
+
46
+ item:,
47
+
48
+ # Optional client identifier for correlating this command with a server event's
49
+ # client_event_id or error.client_event_id.
50
+ event_id: nil,
51
+
52
+ type: :"decision.item.create"
53
+ )
54
+ end
55
+
56
+ sig do
57
+ override.returns(
58
+ {item: OpenAI::Live::DecisionItemCreateEvent::Item, type: Symbol, event_id: T.nilable(String)}
59
+ )
60
+ end
61
+ def to_hash
62
+ end
63
+
64
+ class Item < OpenAI::Internal::Type::BaseModel
65
+ OrHash = T.type_alias do
66
+ T.any(
67
+ OpenAI::Live::DecisionItemCreateEvent::Item,
68
+ OpenAI::Internal::AnyHash
69
+ )
70
+ end
71
+
72
+ # The text input to the model.
73
+ sig { returns(OpenAI::Live::DecisionItemCreateEvent::Item::Content::Variants) }
74
+ attr_accessor :content
75
+
76
+ # The message role. Always `user`.
77
+ sig { returns(Symbol) }
78
+ attr_accessor :role
79
+
80
+ # The unique ID of this message item.
81
+ sig { returns(T.nilable(String)) }
82
+ attr_accessor :id
83
+
84
+ sig { returns(T.nilable(OpenAI::Live::DecisionItemCreateEvent::Item::Type::OrSymbol)) }
85
+ attr_reader :type
86
+
87
+ sig { params(type: OpenAI::Live::DecisionItemCreateEvent::Item::Type::OrSymbol).void }
88
+ attr_writer :type
89
+
90
+ sig do
91
+ params(
92
+
93
+ content: OpenAI::Live::DecisionItemCreateEvent::Item::Content::Variants,
94
+
95
+ id: T.nilable(String),
96
+
97
+ type: OpenAI::Live::DecisionItemCreateEvent::Item::Type::OrSymbol,
98
+
99
+ role: Symbol
100
+ )
101
+ .returns(T.attached_class)
102
+ end
103
+ def self.new(
104
+
105
+ # The text input to the model.
106
+ content:,
107
+
108
+ # The unique ID of this message item.
109
+ id: nil,
110
+
111
+ type: nil,
112
+
113
+ # The message role. Always `user`.
114
+
115
+ role: :user
116
+ )
117
+ end
118
+
119
+ sig do
120
+ override.returns(
121
+ {
122
+ content: OpenAI::Live::DecisionItemCreateEvent::Item::Content::Variants,
123
+ role: Symbol,
124
+ id: T.nilable(String),
125
+ type: T.nilable(OpenAI::Live::DecisionItemCreateEvent::Item::Type::OrSymbol)
126
+ }
127
+ )
128
+ end
129
+ def to_hash
130
+ end
131
+
132
+ # The text input to the model.
133
+ module Content
134
+ extend OpenAI::Internal::Type::Union
135
+
136
+ Variants = T.type_alias {
137
+ T.any(String, T::Array[OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::Variants])
138
+ }
139
+
140
+ module Part
141
+ extend OpenAI::Internal::Type::Union
142
+
143
+ Variants = T.type_alias {
144
+ T.any(
145
+ OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputText,
146
+ OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage
147
+ )
148
+ }
149
+
150
+ class InputText < OpenAI::Internal::Type::BaseModel
151
+ OrHash = T.type_alias do
152
+ T.any(
153
+ OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputText,
154
+ OpenAI::Internal::AnyHash
155
+ )
156
+ end
157
+
158
+ # The text input to the model.
159
+ sig { returns(String) }
160
+ attr_accessor :text
161
+
162
+ # The type of the input item. Always `input_text`.
163
+ sig { returns(Symbol) }
164
+ attr_accessor :type
165
+
166
+ sig do
167
+ params(
168
+
169
+ text: String,
170
+
171
+ type: Symbol
172
+ )
173
+ .returns(T.attached_class)
174
+ end
175
+ def self.new(
176
+
177
+ # The text input to the model.
178
+ text:,
179
+
180
+ # The type of the input item. Always `input_text`.
181
+
182
+ type: :input_text
183
+ )
184
+ end
185
+
186
+ sig do
187
+ override.returns(
188
+ {text: String, type: Symbol}
189
+ )
190
+ end
191
+ def to_hash
192
+ end
193
+
194
+ end
195
+
196
+ class InputImage < OpenAI::Internal::Type::BaseModel
197
+ OrHash = T.type_alias do
198
+ T.any(
199
+ OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage,
200
+ OpenAI::Internal::AnyHash
201
+ )
202
+ end
203
+
204
+ # An inline image encoded as a data URL.
205
+ sig { returns(String) }
206
+ attr_accessor :image_url
207
+
208
+ # The type of the input item. Always `input_image`.
209
+ sig { returns(Symbol) }
210
+ attr_accessor :type
211
+
212
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
213
+ # `auto`, or `original`. Defaults to `auto`.
214
+ sig {
215
+ returns(
216
+ T.nilable(OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::Detail::OrSymbol)
217
+ )
218
+ }
219
+ attr_accessor :detail
220
+
221
+ sig do
222
+ params(
223
+
224
+ image_url: String,
225
+
226
+ detail: T.nilable(
227
+ OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::Detail::OrSymbol
228
+ ),
229
+
230
+ type: Symbol
231
+ )
232
+ .returns(T.attached_class)
233
+ end
234
+ def self.new(
235
+
236
+ # An inline image encoded as a data URL.
237
+ image_url:,
238
+
239
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
240
+ # `auto`, or `original`. Defaults to `auto`.
241
+ detail: nil,
242
+
243
+ # The type of the input item. Always `input_image`.
244
+
245
+ type: :input_image
246
+ )
247
+ end
248
+
249
+ sig do
250
+ override.returns(
251
+ {
252
+ image_url: String,
253
+ type: Symbol,
254
+ detail: T.nilable(
255
+ OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::Detail::OrSymbol
256
+ )
257
+ }
258
+ )
259
+ end
260
+ def to_hash
261
+ end
262
+
263
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
264
+ # `auto`, or `original`. Defaults to `auto`.
265
+ module Detail
266
+ extend OpenAI::Internal::Type::Enum
267
+
268
+ TaggedSymbol = T.type_alias {
269
+ T.all(Symbol, OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::Detail)
270
+ }
271
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
272
+
273
+ LOW = T.let(
274
+ :low,
275
+ OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::Detail::TaggedSymbol
276
+ )
277
+ HIGH = T.let(
278
+ :high,
279
+ OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::Detail::TaggedSymbol
280
+ )
281
+ AUTO = T.let(
282
+ :auto,
283
+ OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::Detail::TaggedSymbol
284
+ )
285
+ ORIGINAL = T.let(
286
+ :original,
287
+ OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::Detail::TaggedSymbol
288
+ )
289
+
290
+ sig {
291
+ override.returns(
292
+ T::Array[
293
+ OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::InputImage::Detail::TaggedSymbol
294
+ ]
295
+ )
296
+ }
297
+ def self.values
298
+ end
299
+ end
300
+ end
301
+
302
+ sig { override.returns(T::Array[OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part::Variants]) }
303
+ def self.variants
304
+ end
305
+
306
+ end
307
+
308
+ sig { override.returns(T::Array[OpenAI::Live::DecisionItemCreateEvent::Item::Content::Variants]) }
309
+ def self.variants
310
+ end
311
+
312
+ PartsArray = T.let(
313
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::Live::DecisionItemCreateEvent::Item::Content::Part],
314
+ OpenAI::Internal::Type::Converter
315
+ )
316
+
317
+ end
318
+
319
+ module Type
320
+ extend OpenAI::Internal::Type::Enum
321
+
322
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Live::DecisionItemCreateEvent::Item::Type) }
323
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
324
+
325
+ MESSAGE = T.let(:message, OpenAI::Live::DecisionItemCreateEvent::Item::Type::TaggedSymbol)
326
+
327
+ sig { override.returns(T::Array[OpenAI::Live::DecisionItemCreateEvent::Item::Type::TaggedSymbol]) }
328
+ def self.values
329
+ end
330
+ end
331
+ end
332
+
333
+ end
334
+
335
+ end
336
+
337
+ end
338
+ end
@@ -0,0 +1,354 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class DecisionItemCreatedEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::DecisionItemCreatedEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The unique ID of the Live server event.
18
+ sig { returns(String) }
19
+ attr_accessor :event_id
20
+
21
+ sig { returns(OpenAI::Live::DecisionItemCreatedEvent::Item) }
22
+ attr_reader :item
23
+
24
+ sig { params(item: OpenAI::Live::DecisionItemCreatedEvent::Item::OrHash).void }
25
+ attr_writer :item
26
+
27
+ sig { returns(Symbol) }
28
+ attr_accessor :type
29
+
30
+ # The event_id of the client command associated with this server event, when
31
+ # supplied.
32
+ sig { returns(T.nilable(String)) }
33
+ attr_reader :client_event_id
34
+
35
+ sig { params(client_event_id: String).void }
36
+ attr_writer :client_event_id
37
+
38
+ # An input item was appended for future decisions.
39
+ sig do
40
+ params(
41
+
42
+ event_id: String,
43
+
44
+ item: OpenAI::Live::DecisionItemCreatedEvent::Item::OrHash,
45
+
46
+ client_event_id: String,
47
+
48
+ type: Symbol
49
+ )
50
+ .returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+
54
+ # The unique ID of the Live server event.
55
+ event_id:,
56
+
57
+ item:,
58
+
59
+ # The event_id of the client command associated with this server event, when
60
+ # supplied.
61
+ client_event_id: nil,
62
+
63
+ type: :"decision.item.created"
64
+ )
65
+ end
66
+
67
+ sig do
68
+ override.returns(
69
+ {
70
+ event_id: String,
71
+ item: OpenAI::Live::DecisionItemCreatedEvent::Item,
72
+ type: Symbol,
73
+ client_event_id: T.nilable(String)
74
+ }
75
+ )
76
+ end
77
+ def to_hash
78
+ end
79
+
80
+ class Item < OpenAI::Internal::Type::BaseModel
81
+ OrHash = T.type_alias do
82
+ T.any(
83
+ OpenAI::Live::DecisionItemCreatedEvent::Item,
84
+ OpenAI::Internal::AnyHash
85
+ )
86
+ end
87
+
88
+ # The ID of the stored Decision input item.
89
+ sig { returns(String) }
90
+ attr_accessor :id
91
+
92
+ # The text input to the model.
93
+ sig { returns(OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Variants) }
94
+ attr_accessor :content
95
+
96
+ # The message role. Always `user`.
97
+ sig { returns(Symbol) }
98
+ attr_accessor :role
99
+
100
+ sig { returns(T.nilable(OpenAI::Live::DecisionItemCreatedEvent::Item::Type::OrSymbol)) }
101
+ attr_reader :type
102
+
103
+ sig { params(type: OpenAI::Live::DecisionItemCreatedEvent::Item::Type::OrSymbol).void }
104
+ attr_writer :type
105
+
106
+ sig do
107
+ params(
108
+
109
+ id: String,
110
+
111
+ content: OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Variants,
112
+
113
+ type: OpenAI::Live::DecisionItemCreatedEvent::Item::Type::OrSymbol,
114
+
115
+ role: Symbol
116
+ )
117
+ .returns(T.attached_class)
118
+ end
119
+ def self.new(
120
+
121
+ # The ID of the stored Decision input item.
122
+ id:,
123
+
124
+ # The text input to the model.
125
+ content:,
126
+
127
+ type: nil,
128
+
129
+ # The message role. Always `user`.
130
+
131
+ role: :user
132
+ )
133
+ end
134
+
135
+ sig do
136
+ override.returns(
137
+ {
138
+ id: String,
139
+ content: OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Variants,
140
+ role: Symbol,
141
+ type: T.nilable(OpenAI::Live::DecisionItemCreatedEvent::Item::Type::OrSymbol)
142
+ }
143
+ )
144
+ end
145
+ def to_hash
146
+ end
147
+
148
+ # The text input to the model.
149
+ module Content
150
+ extend OpenAI::Internal::Type::Union
151
+
152
+ Variants = T.type_alias {
153
+ T.any(String, T::Array[OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::Variants])
154
+ }
155
+
156
+ module Part
157
+ extend OpenAI::Internal::Type::Union
158
+
159
+ Variants = T.type_alias {
160
+ T.any(
161
+ OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputText,
162
+ OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputImage
163
+ )
164
+ }
165
+
166
+ class InputText < OpenAI::Internal::Type::BaseModel
167
+ OrHash = T.type_alias do
168
+ T.any(
169
+ OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputText,
170
+ OpenAI::Internal::AnyHash
171
+ )
172
+ end
173
+
174
+ # The text input to the model.
175
+ sig { returns(String) }
176
+ attr_accessor :text
177
+
178
+ # The type of the input item. Always `input_text`.
179
+ sig { returns(Symbol) }
180
+ attr_accessor :type
181
+
182
+ sig do
183
+ params(
184
+
185
+ text: String,
186
+
187
+ type: Symbol
188
+ )
189
+ .returns(T.attached_class)
190
+ end
191
+ def self.new(
192
+
193
+ # The text input to the model.
194
+ text:,
195
+
196
+ # The type of the input item. Always `input_text`.
197
+
198
+ type: :input_text
199
+ )
200
+ end
201
+
202
+ sig do
203
+ override.returns(
204
+ {text: String, type: Symbol}
205
+ )
206
+ end
207
+ def to_hash
208
+ end
209
+
210
+ end
211
+
212
+ class InputImage < OpenAI::Internal::Type::BaseModel
213
+ OrHash = T.type_alias do
214
+ T.any(
215
+ OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputImage,
216
+ OpenAI::Internal::AnyHash
217
+ )
218
+ end
219
+
220
+ # An inline image encoded as a data URL.
221
+ sig { returns(String) }
222
+ attr_accessor :image_url
223
+
224
+ # The type of the input item. Always `input_image`.
225
+ sig { returns(Symbol) }
226
+ attr_accessor :type
227
+
228
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
229
+ # `auto`, or `original`. Defaults to `auto`.
230
+ sig {
231
+ returns(
232
+ T.nilable(OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputImage::Detail::OrSymbol)
233
+ )
234
+ }
235
+ attr_accessor :detail
236
+
237
+ sig do
238
+ params(
239
+
240
+ image_url: String,
241
+
242
+ detail: T.nilable(
243
+ OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputImage::Detail::OrSymbol
244
+ ),
245
+
246
+ type: Symbol
247
+ )
248
+ .returns(T.attached_class)
249
+ end
250
+ def self.new(
251
+
252
+ # An inline image encoded as a data URL.
253
+ image_url:,
254
+
255
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
256
+ # `auto`, or `original`. Defaults to `auto`.
257
+ detail: nil,
258
+
259
+ # The type of the input item. Always `input_image`.
260
+
261
+ type: :input_image
262
+ )
263
+ end
264
+
265
+ sig do
266
+ override.returns(
267
+ {
268
+ image_url: String,
269
+ type: Symbol,
270
+ detail: T.nilable(
271
+ OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputImage::Detail::OrSymbol
272
+ )
273
+ }
274
+ )
275
+ end
276
+ def to_hash
277
+ end
278
+
279
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
280
+ # `auto`, or `original`. Defaults to `auto`.
281
+ module Detail
282
+ extend OpenAI::Internal::Type::Enum
283
+
284
+ TaggedSymbol = T.type_alias {
285
+ T.all(Symbol, OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputImage::Detail)
286
+ }
287
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
288
+
289
+ LOW = T.let(
290
+ :low,
291
+ OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputImage::Detail::TaggedSymbol
292
+ )
293
+ HIGH = T.let(
294
+ :high,
295
+ OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputImage::Detail::TaggedSymbol
296
+ )
297
+ AUTO = T.let(
298
+ :auto,
299
+ OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputImage::Detail::TaggedSymbol
300
+ )
301
+ ORIGINAL = T.let(
302
+ :original,
303
+ OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputImage::Detail::TaggedSymbol
304
+ )
305
+
306
+ sig {
307
+ override.returns(
308
+ T::Array[
309
+ OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::InputImage::Detail::TaggedSymbol
310
+ ]
311
+ )
312
+ }
313
+ def self.values
314
+ end
315
+ end
316
+ end
317
+
318
+ sig { override.returns(T::Array[OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part::Variants]) }
319
+ def self.variants
320
+ end
321
+
322
+ end
323
+
324
+ sig { override.returns(T::Array[OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Variants]) }
325
+ def self.variants
326
+ end
327
+
328
+ PartsArray = T.let(
329
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::Live::DecisionItemCreatedEvent::Item::Content::Part],
330
+ OpenAI::Internal::Type::Converter
331
+ )
332
+
333
+ end
334
+
335
+ module Type
336
+ extend OpenAI::Internal::Type::Enum
337
+
338
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Live::DecisionItemCreatedEvent::Item::Type) }
339
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
340
+
341
+ MESSAGE = T.let(:message, OpenAI::Live::DecisionItemCreatedEvent::Item::Type::TaggedSymbol)
342
+
343
+ sig { override.returns(T::Array[OpenAI::Live::DecisionItemCreatedEvent::Item::Type::TaggedSymbol]) }
344
+ def self.values
345
+ end
346
+ end
347
+ end
348
+
349
+ end
350
+
351
+ end
352
+
353
+ end
354
+ end