openai 0.83.0 → 0.85.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 (293) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +59 -0
  3. data/README.md +1 -1
  4. data/SECURITY.md +10 -0
  5. data/docs/architecture/security-model.md +267 -0
  6. data/lib/openai/auth/workload_identity_auth.rb +17 -2
  7. data/lib/openai/client.rb +24 -6
  8. data/lib/openai/errors.rb +1 -1
  9. data/lib/openai/helpers/streaming/chat_completion_stream.rb +18 -10
  10. data/lib/openai/helpers/streaming/response_events.rb +2 -2
  11. data/lib/openai/helpers/streaming/response_stream.rb +80 -44
  12. data/lib/openai/helpers/structured_output/array_of.rb +2 -2
  13. data/lib/openai/helpers/structured_output/base_model.rb +19 -5
  14. data/lib/openai/helpers/structured_output/chat_completion_parser.rb +12 -3
  15. data/lib/openai/helpers/structured_output/json_schema_converter.rb +34 -11
  16. data/lib/openai/helpers/structured_output/response_parser.rb +1 -1
  17. data/lib/openai/internal/type/base_model.rb +2 -2
  18. data/lib/openai/internal/type/converter.rb +1 -1
  19. data/lib/openai/internal/util.rb +2 -2
  20. data/lib/openai/internal/vector_store_file_uploader.rb +1 -1
  21. data/lib/openai/models/admin/organization/usage_costs_params.rb +10 -1
  22. data/lib/openai/models/batch.rb +4 -4
  23. data/lib/openai/models/beta/beta_custom_tool.rb +13 -1
  24. data/lib/openai/models/beta/beta_function_tool.rb +8 -1
  25. data/lib/openai/models/beta/beta_namespace_tool.rb +10 -1
  26. data/lib/openai/models/beta/beta_response.rb +26 -18
  27. data/lib/openai/models/beta/beta_response_configuration_update_item.rb +103 -0
  28. data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +104 -0
  29. data/lib/openai/models/beta/beta_response_custom_tool_call.rb +9 -1
  30. data/lib/openai/models/beta/beta_response_custom_tool_call_item.rb +3 -1
  31. data/lib/openai/models/beta/beta_response_error.rb +96 -1
  32. data/lib/openai/models/beta/beta_response_function_tool_call.rb +9 -1
  33. data/lib/openai/models/beta/beta_response_function_tool_call_item.rb +3 -1
  34. data/lib/openai/models/beta/beta_response_incomplete_event.rb +4 -0
  35. data/lib/openai/models/beta/beta_response_inject_event.rb +2 -2
  36. data/lib/openai/models/beta/beta_response_inject_failed_event.rb +2 -2
  37. data/lib/openai/models/beta/beta_response_input_item.rb +6 -1
  38. data/lib/openai/models/beta/beta_response_item.rb +5 -1
  39. data/lib/openai/models/beta/beta_response_steer_accepted_event.rb +81 -0
  40. data/lib/openai/models/beta/beta_response_steer_error_code.rb +61 -0
  41. data/lib/openai/models/beta/beta_response_steer_event.rb +75 -0
  42. data/lib/openai/models/beta/beta_response_steer_failed_event.rb +151 -0
  43. data/lib/openai/models/beta/beta_response_steer_input.rb +360 -0
  44. data/lib/openai/models/beta/beta_response_steer_input_content.rb +28 -0
  45. data/lib/openai/models/beta/beta_response_steer_pending_event.rb +113 -0
  46. data/lib/openai/models/beta/beta_response_steer_pending_reason.rb +26 -0
  47. data/lib/openai/models/beta/beta_response_steer_required_input.rb +215 -0
  48. data/lib/openai/models/beta/beta_response_stream_event.rb +4 -0
  49. data/lib/openai/models/beta/beta_response_usage.rb +1 -12
  50. data/lib/openai/models/beta/beta_responses_client_event.rb +45 -16
  51. data/lib/openai/models/beta/beta_responses_server_event.rb +164 -2
  52. data/lib/openai/models/beta/response_compact_params.rb +13 -10
  53. data/lib/openai/models/beta/response_create_params.rb +14 -15
  54. data/lib/openai/models/beta/responses/beta_response_item_list.rb +2 -2
  55. data/lib/openai/models/beta/responses/input_token_count_params.rb +3 -3
  56. data/lib/openai/models/chat/completion_create_params.rb +8 -8
  57. data/lib/openai/models/chat_model.rb +1 -0
  58. data/lib/openai/models/completion_usage.rb +1 -12
  59. data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
  60. data/lib/openai/models/conversations/conversation_item.rb +5 -1
  61. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  62. data/lib/openai/models/conversations/item_create_params.rb +2 -2
  63. data/lib/openai/models/error_object.rb +90 -1
  64. data/lib/openai/models/eval_create_response.rb +1 -1
  65. data/lib/openai/models/eval_list_response.rb +1 -1
  66. data/lib/openai/models/eval_retrieve_response.rb +1 -1
  67. data/lib/openai/models/eval_update_response.rb +1 -1
  68. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +2 -2
  69. data/lib/openai/models/reasoning.rb +0 -2
  70. data/lib/openai/models/responses/custom_tool.rb +13 -1
  71. data/lib/openai/models/responses/function_tool.rb +8 -1
  72. data/lib/openai/models/responses/input_token_count_params.rb +3 -3
  73. data/lib/openai/models/responses/namespace_tool.rb +10 -1
  74. data/lib/openai/models/responses/response.rb +20 -13
  75. data/lib/openai/models/responses/response_compact_params.rb +13 -10
  76. data/lib/openai/models/responses/response_configuration_update_item.rb +56 -0
  77. data/lib/openai/models/responses/response_configuration_update_item_param.rb +57 -0
  78. data/lib/openai/models/responses/response_create_params.rb +8 -10
  79. data/lib/openai/models/responses/response_custom_tool_call.rb +9 -1
  80. data/lib/openai/models/responses/response_custom_tool_call_item.rb +3 -1
  81. data/lib/openai/models/responses/response_error.rb +96 -1
  82. data/lib/openai/models/responses/response_function_tool_call.rb +9 -1
  83. data/lib/openai/models/responses/response_function_tool_call_item.rb +3 -1
  84. data/lib/openai/models/responses/response_incomplete_event.rb +4 -0
  85. data/lib/openai/models/responses/response_input_item.rb +6 -1
  86. data/lib/openai/models/responses/response_item.rb +5 -1
  87. data/lib/openai/models/responses/response_item_list.rb +2 -2
  88. data/lib/openai/models/responses/response_steer_accepted_event.rb +79 -0
  89. data/lib/openai/models/responses/response_steer_error_code.rb +59 -0
  90. data/lib/openai/models/responses/response_steer_event.rb +73 -0
  91. data/lib/openai/models/responses/response_steer_failed_event.rb +149 -0
  92. data/lib/openai/models/responses/response_steer_input.rb +304 -0
  93. data/lib/openai/models/responses/response_steer_input_content.rb +26 -0
  94. data/lib/openai/models/responses/response_steer_pending_event.rb +111 -0
  95. data/lib/openai/models/responses/response_steer_pending_reason.rb +24 -0
  96. data/lib/openai/models/responses/response_steer_required_input.rb +213 -0
  97. data/lib/openai/models/responses/response_stream_event.rb +4 -0
  98. data/lib/openai/models/responses/response_usage.rb +1 -12
  99. data/lib/openai/models/responses/responses_client_event.rb +872 -771
  100. data/lib/openai/models/responses/responses_server_event.rb +162 -2
  101. data/lib/openai/models/safety/alert_retrieve_params.rb +24 -0
  102. data/lib/openai/models/safety/safety_alert.rb +96 -0
  103. data/lib/openai/models/video_create_error.rb +93 -1
  104. data/lib/openai/models/webhooks/safety_alert_created_webhook_event.rb +63 -0
  105. data/lib/openai/models/webhooks/safety_org_alert_created_webhook_event.rb +63 -0
  106. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +7 -1
  107. data/lib/openai/models.rb +2 -0
  108. data/lib/openai/net_http_client.rb +1 -1
  109. data/lib/openai/providers/bedrock.rb +20 -12
  110. data/lib/openai/resources/admin/organization/usage.rb +3 -1
  111. data/lib/openai/resources/beta/responses/input_items.rb +1 -1
  112. data/lib/openai/resources/beta/responses/input_tokens.rb +1 -1
  113. data/lib/openai/resources/beta/responses.rb +8 -8
  114. data/lib/openai/resources/chat/completions.rb +2 -2
  115. data/lib/openai/resources/conversations/items.rb +3 -3
  116. data/lib/openai/resources/conversations.rb +1 -1
  117. data/lib/openai/resources/responses/input_items.rb +1 -1
  118. data/lib/openai/resources/responses/input_tokens.rb +1 -1
  119. data/lib/openai/resources/responses.rb +10 -9
  120. data/lib/openai/resources/safety/alerts.rb +37 -0
  121. data/lib/openai/resources/safety.rb +18 -0
  122. data/lib/openai/resources/webhooks.rb +1 -1
  123. data/lib/openai/version.rb +1 -1
  124. data/lib/openai.rb +29 -0
  125. data/rbi/openai/client.rbi +3 -0
  126. data/rbi/openai/errors.rbi +1 -1
  127. data/rbi/openai/helpers/streaming/events.rbi +2 -2
  128. data/rbi/openai/helpers/streaming/response_stream.rbi +3 -3
  129. data/rbi/openai/models/admin/organization/usage_costs_params.rbi +15 -0
  130. data/rbi/openai/models/batch.rbi +6 -6
  131. data/rbi/openai/models/beta/beta_custom_tool.rbi +15 -0
  132. data/rbi/openai/models/beta/beta_function_tool.rbi +11 -0
  133. data/rbi/openai/models/beta/beta_namespace_tool.rbi +15 -0
  134. data/rbi/openai/models/beta/beta_response.rbi +21 -18
  135. data/rbi/openai/models/beta/beta_response_configuration_update_item.rbi +200 -0
  136. data/rbi/openai/models/beta/beta_response_configuration_update_item_param.rbi +207 -0
  137. data/rbi/openai/models/beta/beta_response_custom_tool_call.rbi +13 -0
  138. data/rbi/openai/models/beta/beta_response_custom_tool_call_item.rbi +6 -0
  139. data/rbi/openai/models/beta/beta_response_error.rbi +161 -3
  140. data/rbi/openai/models/beta/beta_response_function_tool_call.rbi +13 -0
  141. data/rbi/openai/models/beta/beta_response_function_tool_call_item.rbi +6 -0
  142. data/rbi/openai/models/beta/beta_response_incomplete_event.rbi +4 -0
  143. data/rbi/openai/models/beta/beta_response_inject_event.rbi +3 -0
  144. data/rbi/openai/models/beta/beta_response_inject_failed_event.rbi +3 -0
  145. data/rbi/openai/models/beta/beta_response_input_item.rbi +1 -0
  146. data/rbi/openai/models/beta/beta_response_item.rbi +1 -0
  147. data/rbi/openai/models/beta/beta_response_steer_accepted_event.rbi +148 -0
  148. data/rbi/openai/models/beta/beta_response_steer_error_code.rbi +65 -0
  149. data/rbi/openai/models/beta/beta_response_steer_event.rbi +118 -0
  150. data/rbi/openai/models/beta/beta_response_steer_failed_event.rbi +267 -0
  151. data/rbi/openai/models/beta/beta_response_steer_input.rbi +602 -0
  152. data/rbi/openai/models/beta/beta_response_steer_input_content.rbi +31 -0
  153. data/rbi/openai/models/beta/beta_response_steer_pending_event.rbi +222 -0
  154. data/rbi/openai/models/beta/beta_response_steer_pending_reason.rbi +35 -0
  155. data/rbi/openai/models/beta/beta_response_steer_required_input.rbi +379 -0
  156. data/rbi/openai/models/beta/beta_response_usage.rbi +3 -13
  157. data/rbi/openai/models/beta/beta_responses_client_event.rbi +14 -15
  158. data/rbi/openai/models/beta/beta_responses_server_event.rbi +206 -3
  159. data/rbi/openai/models/beta/response_compact_params.rbi +10 -9
  160. data/rbi/openai/models/beta/response_create_params.rbi +10 -15
  161. data/rbi/openai/models/beta/responses/beta_response_item_list.rbi +1 -0
  162. data/rbi/openai/models/chat/completion_create_params.rbi +9 -9
  163. data/rbi/openai/models/chat_model.rbi +1 -0
  164. data/rbi/openai/models/completion_usage.rbi +0 -10
  165. data/rbi/openai/models/conversations/conversation_create_params.rbi +3 -0
  166. data/rbi/openai/models/conversations/conversation_item.rbi +1 -0
  167. data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
  168. data/rbi/openai/models/conversations/item_create_params.rbi +3 -0
  169. data/rbi/openai/models/error_object.rbi +156 -3
  170. data/rbi/openai/models/eval_create_response.rbi +1 -1
  171. data/rbi/openai/models/eval_list_response.rbi +1 -1
  172. data/rbi/openai/models/eval_retrieve_response.rbi +1 -1
  173. data/rbi/openai/models/eval_update_response.rbi +1 -1
  174. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +2 -2
  175. data/rbi/openai/models/reasoning.rbi +0 -2
  176. data/rbi/openai/models/responses/custom_tool.rbi +15 -0
  177. data/rbi/openai/models/responses/function_tool.rbi +11 -0
  178. data/rbi/openai/models/responses/namespace_tool.rbi +15 -0
  179. data/rbi/openai/models/responses/response.rbi +17 -13
  180. data/rbi/openai/models/responses/response_compact_params.rbi +10 -9
  181. data/rbi/openai/models/responses/response_configuration_update_item.rbi +112 -0
  182. data/rbi/openai/models/responses/response_configuration_update_item_param.rbi +117 -0
  183. data/rbi/openai/models/responses/response_create_params.rbi +6 -10
  184. data/rbi/openai/models/responses/response_custom_tool_call.rbi +13 -0
  185. data/rbi/openai/models/responses/response_custom_tool_call_item.rbi +6 -0
  186. data/rbi/openai/models/responses/response_error.rbi +161 -3
  187. data/rbi/openai/models/responses/response_function_tool_call.rbi +13 -0
  188. data/rbi/openai/models/responses/response_function_tool_call_item.rbi +6 -0
  189. data/rbi/openai/models/responses/response_incomplete_event.rbi +4 -0
  190. data/rbi/openai/models/responses/response_input_item.rbi +1 -0
  191. data/rbi/openai/models/responses/response_item.rbi +1 -0
  192. data/rbi/openai/models/responses/response_item_list.rbi +1 -0
  193. data/rbi/openai/models/responses/response_steer_accepted_event.rbi +146 -0
  194. data/rbi/openai/models/responses/response_steer_error_code.rbi +63 -0
  195. data/rbi/openai/models/responses/response_steer_event.rbi +119 -0
  196. data/rbi/openai/models/responses/response_steer_failed_event.rbi +268 -0
  197. data/rbi/openai/models/responses/response_steer_input.rbi +474 -0
  198. data/rbi/openai/models/responses/response_steer_input_content.rbi +29 -0
  199. data/rbi/openai/models/responses/response_steer_pending_event.rbi +220 -0
  200. data/rbi/openai/models/responses/response_steer_pending_reason.rbi +33 -0
  201. data/rbi/openai/models/responses/response_steer_required_input.rbi +377 -0
  202. data/rbi/openai/models/responses/response_usage.rbi +3 -13
  203. data/rbi/openai/models/responses/responses_client_event.rbi +1205 -1041
  204. data/rbi/openai/models/responses/responses_server_event.rbi +202 -3
  205. data/rbi/openai/models/safety/alert_retrieve_params.rbi +55 -0
  206. data/rbi/openai/models/safety/safety_alert.rbi +147 -0
  207. data/rbi/openai/models/video_create_error.rbi +149 -3
  208. data/rbi/openai/models/webhooks/safety_alert_created_webhook_event.rbi +130 -0
  209. data/rbi/openai/models/webhooks/safety_org_alert_created_webhook_event.rbi +130 -0
  210. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +3 -1
  211. data/rbi/openai/models.rbi +2 -0
  212. data/rbi/openai/resources/admin/organization/usage.rbi +4 -0
  213. data/rbi/openai/resources/beta/responses.rbi +7 -11
  214. data/rbi/openai/resources/chat/completions.rbi +6 -6
  215. data/rbi/openai/resources/conversations/items.rbi +1 -0
  216. data/rbi/openai/resources/conversations.rbi +1 -0
  217. data/rbi/openai/resources/responses.rbi +9 -13
  218. data/rbi/openai/resources/safety/alerts.rbi +30 -0
  219. data/rbi/openai/resources/safety.rbi +18 -0
  220. data/rbi/openai/resources/webhooks.rbi +3 -1
  221. data/sig/openai/client.rbs +2 -0
  222. data/sig/openai/errors.rbs +1 -1
  223. data/sig/openai/internal/transport/base_client.rbs +4 -19
  224. data/sig/openai/models/admin/organization/usage_costs_params.rbs +7 -0
  225. data/sig/openai/models/beta/beta_custom_tool.rbs +7 -0
  226. data/sig/openai/models/beta/beta_function_tool.rbs +7 -0
  227. data/sig/openai/models/beta/beta_namespace_tool.rbs +7 -0
  228. data/sig/openai/models/beta/beta_response.rbs +7 -2
  229. data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +91 -0
  230. data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +87 -0
  231. data/sig/openai/models/beta/beta_response_custom_tool_call.rbs +7 -0
  232. data/sig/openai/models/beta/beta_response_custom_tool_call_item.rbs +3 -0
  233. data/sig/openai/models/beta/beta_response_error.rbs +82 -3
  234. data/sig/openai/models/beta/beta_response_function_tool_call.rbs +7 -0
  235. data/sig/openai/models/beta/beta_response_function_tool_call_item.rbs +3 -0
  236. data/sig/openai/models/beta/beta_response_input_item.rbs +1 -0
  237. data/sig/openai/models/beta/beta_response_item.rbs +1 -0
  238. data/sig/openai/models/beta/beta_response_steer_accepted_event.rbs +53 -0
  239. data/sig/openai/models/beta/beta_response_steer_error_code.rbs +31 -0
  240. data/sig/openai/models/beta/beta_response_steer_event.rbs +34 -0
  241. data/sig/openai/models/beta/beta_response_steer_failed_event.rbs +102 -0
  242. data/sig/openai/models/beta/beta_response_steer_input.rbs +214 -0
  243. data/sig/openai/models/beta/beta_response_steer_input_content.rbs +18 -0
  244. data/sig/openai/models/beta/beta_response_steer_pending_event.rbs +63 -0
  245. data/sig/openai/models/beta/beta_response_steer_pending_reason.rbs +16 -0
  246. data/sig/openai/models/beta/beta_response_steer_required_input.rbs +161 -0
  247. data/sig/openai/models/beta/beta_response_usage.rbs +3 -8
  248. data/sig/openai/models/beta/beta_responses_client_event.rbs +4 -1
  249. data/sig/openai/models/beta/beta_responses_server_event.rbs +80 -3
  250. data/sig/openai/models/beta/response_compact_params.rbs +3 -1
  251. data/sig/openai/models/beta/response_create_params.rbs +3 -1
  252. data/sig/openai/models/chat_model.rbs +3 -1
  253. data/sig/openai/models/completion_usage.rbs +0 -5
  254. data/sig/openai/models/conversations/conversation_item.rbs +1 -0
  255. data/sig/openai/models/error_object.rbs +82 -3
  256. data/sig/openai/models/responses/custom_tool.rbs +7 -0
  257. data/sig/openai/models/responses/function_tool.rbs +7 -0
  258. data/sig/openai/models/responses/namespace_tool.rbs +7 -0
  259. data/sig/openai/models/responses/response.rbs +4 -1
  260. data/sig/openai/models/responses/response_compact_params.rbs +3 -1
  261. data/sig/openai/models/responses/response_configuration_update_item.rbs +46 -0
  262. data/sig/openai/models/responses/response_configuration_update_item_param.rbs +46 -0
  263. data/sig/openai/models/responses/response_custom_tool_call.rbs +7 -0
  264. data/sig/openai/models/responses/response_custom_tool_call_item.rbs +3 -0
  265. data/sig/openai/models/responses/response_error.rbs +79 -3
  266. data/sig/openai/models/responses/response_function_tool_call.rbs +7 -0
  267. data/sig/openai/models/responses/response_function_tool_call_item.rbs +3 -0
  268. data/sig/openai/models/responses/response_input_item.rbs +1 -0
  269. data/sig/openai/models/responses/response_item.rbs +1 -0
  270. data/sig/openai/models/responses/response_steer_accepted_event.rbs +51 -0
  271. data/sig/openai/models/responses/response_steer_error_code.rbs +29 -0
  272. data/sig/openai/models/responses/response_steer_event.rbs +32 -0
  273. data/sig/openai/models/responses/response_steer_failed_event.rbs +100 -0
  274. data/sig/openai/models/responses/response_steer_input.rbs +182 -0
  275. data/sig/openai/models/responses/response_steer_input_content.rbs +16 -0
  276. data/sig/openai/models/responses/response_steer_pending_event.rbs +61 -0
  277. data/sig/openai/models/responses/response_steer_pending_reason.rbs +13 -0
  278. data/sig/openai/models/responses/response_steer_required_input.rbs +159 -0
  279. data/sig/openai/models/responses/response_usage.rbs +3 -8
  280. data/sig/openai/models/responses/responses_client_event.rbs +355 -344
  281. data/sig/openai/models/responses/responses_server_event.rbs +80 -3
  282. data/sig/openai/models/safety/alert_retrieve_params.rbs +22 -0
  283. data/sig/openai/models/safety/safety_alert.rbs +81 -0
  284. data/sig/openai/models/video_create_error.rbs +87 -3
  285. data/sig/openai/models/webhooks/safety_alert_created_webhook_event.rbs +52 -0
  286. data/sig/openai/models/webhooks/safety_org_alert_created_webhook_event.rbs +52 -0
  287. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +2 -0
  288. data/sig/openai/models.rbs +2 -0
  289. data/sig/openai/resources/admin/organization/usage.rbs +1 -0
  290. data/sig/openai/resources/safety/alerts.rbs +14 -0
  291. data/sig/openai/resources/safety.rbs +9 -0
  292. data/sig/openai/resources/webhooks.rbs +3 -1
  293. metadata +86 -1
@@ -0,0 +1,130 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Webhooks
7
+
8
+ class SafetyAlertCreatedWebhookEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Webhooks::SafetyAlertCreatedWebhookEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The unique ID of the webhook event.
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ # The Unix timestamp in seconds when the event was created.
22
+ sig { returns(Integer) }
23
+ attr_accessor :created_at
24
+
25
+ sig { returns(OpenAI::Webhooks::SafetyAlertCreatedWebhookEvent::Data) }
26
+ attr_reader :data
27
+
28
+ sig { params(data: OpenAI::Webhooks::SafetyAlertCreatedWebhookEvent::Data::OrHash).void }
29
+ attr_writer :data
30
+
31
+ # Always `event`.
32
+ sig { returns(Symbol) }
33
+ attr_accessor :object
34
+
35
+ # Always `safety.alert.created`.
36
+ sig { returns(Symbol) }
37
+ attr_accessor :type
38
+
39
+ # Sent when an approved safety alert is available for an API project.
40
+ sig do
41
+ params(
42
+
43
+ id: String,
44
+
45
+ created_at: Integer,
46
+
47
+ data: OpenAI::Webhooks::SafetyAlertCreatedWebhookEvent::Data::OrHash,
48
+
49
+ object: Symbol,
50
+
51
+ type: Symbol
52
+ )
53
+ .returns(T.attached_class)
54
+ end
55
+ def self.new(
56
+
57
+ # The unique ID of the webhook event.
58
+ id:,
59
+
60
+ # The Unix timestamp in seconds when the event was created.
61
+ created_at:,
62
+
63
+ data:,
64
+
65
+ # Always `event`.
66
+ object: :event,
67
+
68
+ # Always `safety.alert.created`.
69
+
70
+ type: :"safety.alert.created"
71
+ )
72
+ end
73
+
74
+ sig do
75
+ override.returns(
76
+ {
77
+ id: String,
78
+ created_at: Integer,
79
+ data: OpenAI::Webhooks::SafetyAlertCreatedWebhookEvent::Data,
80
+ object: Symbol,
81
+ type: Symbol
82
+ }
83
+ )
84
+ end
85
+ def to_hash
86
+ end
87
+
88
+ class Data < OpenAI::Internal::Type::BaseModel
89
+ OrHash = T.type_alias do
90
+ T.any(
91
+ OpenAI::Webhooks::SafetyAlertCreatedWebhookEvent::Data,
92
+ OpenAI::Internal::AnyHash
93
+ )
94
+ end
95
+
96
+ # The safety alert ID to pass to `GET /v1/safety/alerts/{id}`.
97
+ sig { returns(String) }
98
+ attr_accessor :id
99
+
100
+ sig do
101
+ params(
102
+
103
+ id: String
104
+ )
105
+ .returns(T.attached_class)
106
+ end
107
+ def self.new(
108
+
109
+ # The safety alert ID to pass to `GET /v1/safety/alerts/{id}`.
110
+
111
+ id:
112
+ )
113
+ end
114
+
115
+ sig do
116
+ override.returns(
117
+ {id: String}
118
+ )
119
+ end
120
+ def to_hash
121
+ end
122
+
123
+ end
124
+
125
+ end
126
+
127
+ end
128
+
129
+ end
130
+ end
@@ -0,0 +1,130 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Webhooks
7
+
8
+ class SafetyOrgAlertCreatedWebhookEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Webhooks::SafetyOrgAlertCreatedWebhookEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The unique ID of the webhook event.
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ # The Unix timestamp in seconds when the event was created.
22
+ sig { returns(Integer) }
23
+ attr_accessor :created_at
24
+
25
+ sig { returns(OpenAI::Webhooks::SafetyOrgAlertCreatedWebhookEvent::Data) }
26
+ attr_reader :data
27
+
28
+ sig { params(data: OpenAI::Webhooks::SafetyOrgAlertCreatedWebhookEvent::Data::OrHash).void }
29
+ attr_writer :data
30
+
31
+ # Always `event`.
32
+ sig { returns(Symbol) }
33
+ attr_accessor :object
34
+
35
+ # Always `safety.org_alert.created`.
36
+ sig { returns(Symbol) }
37
+ attr_accessor :type
38
+
39
+ # Sent when an approved safety alert is available for an enterprise workspace.
40
+ sig do
41
+ params(
42
+
43
+ id: String,
44
+
45
+ created_at: Integer,
46
+
47
+ data: OpenAI::Webhooks::SafetyOrgAlertCreatedWebhookEvent::Data::OrHash,
48
+
49
+ object: Symbol,
50
+
51
+ type: Symbol
52
+ )
53
+ .returns(T.attached_class)
54
+ end
55
+ def self.new(
56
+
57
+ # The unique ID of the webhook event.
58
+ id:,
59
+
60
+ # The Unix timestamp in seconds when the event was created.
61
+ created_at:,
62
+
63
+ data:,
64
+
65
+ # Always `event`.
66
+ object: :event,
67
+
68
+ # Always `safety.org_alert.created`.
69
+
70
+ type: :"safety.org_alert.created"
71
+ )
72
+ end
73
+
74
+ sig do
75
+ override.returns(
76
+ {
77
+ id: String,
78
+ created_at: Integer,
79
+ data: OpenAI::Webhooks::SafetyOrgAlertCreatedWebhookEvent::Data,
80
+ object: Symbol,
81
+ type: Symbol
82
+ }
83
+ )
84
+ end
85
+ def to_hash
86
+ end
87
+
88
+ class Data < OpenAI::Internal::Type::BaseModel
89
+ OrHash = T.type_alias do
90
+ T.any(
91
+ OpenAI::Webhooks::SafetyOrgAlertCreatedWebhookEvent::Data,
92
+ OpenAI::Internal::AnyHash
93
+ )
94
+ end
95
+
96
+ # The safety alert ID to pass to `GET /v1/safety/alerts/{id}`.
97
+ sig { returns(String) }
98
+ attr_accessor :id
99
+
100
+ sig do
101
+ params(
102
+
103
+ id: String
104
+ )
105
+ .returns(T.attached_class)
106
+ end
107
+ def self.new(
108
+
109
+ # The safety alert ID to pass to `GET /v1/safety/alerts/{id}`.
110
+
111
+ id:
112
+ )
113
+ end
114
+
115
+ sig do
116
+ override.returns(
117
+ {id: String}
118
+ )
119
+ end
120
+ def to_hash
121
+ end
122
+
123
+ end
124
+
125
+ end
126
+
127
+ end
128
+
129
+ end
130
+ end
@@ -26,7 +26,9 @@ module OpenAI
26
26
  OpenAI::Webhooks::ResponseCancelledWebhookEvent,
27
27
  OpenAI::Webhooks::ResponseCompletedWebhookEvent,
28
28
  OpenAI::Webhooks::ResponseFailedWebhookEvent,
29
- OpenAI::Webhooks::ResponseIncompleteWebhookEvent
29
+ OpenAI::Webhooks::ResponseIncompleteWebhookEvent,
30
+ OpenAI::Webhooks::SafetyAlertCreatedWebhookEvent,
31
+ OpenAI::Webhooks::SafetyOrgAlertCreatedWebhookEvent
30
32
  )
31
33
  end
32
34
 
@@ -198,6 +198,8 @@ module OpenAI
198
198
 
199
199
  ResponsesModel = OpenAI::Models::ResponsesModel
200
200
 
201
+ Safety = OpenAI::Models::Safety
202
+
201
203
  Skill = OpenAI::Models::Skill
202
204
 
203
205
  SkillCreateParams = OpenAI::Models::SkillCreateParams
@@ -210,6 +210,7 @@ module OpenAI
210
210
  end_time: Integer,
211
211
  group_by: T::Array[OpenAI::Admin::Organization::UsageCostsParams::GroupBy::OrSymbol],
212
212
  limit: Integer,
213
+ line_items: T::Array[String],
213
214
  page: String,
214
215
  project_ids: T::Array[String],
215
216
  request_options: OpenAI::RequestOptions::OrHash
@@ -232,6 +233,9 @@ module OpenAI
232
233
  # A limit on the number of buckets to be returned. Limit can range between 1 and
233
234
  # 180, and the default is 7.
234
235
  limit: nil,
236
+ # Return only costs for these exact line item names. Each value must match the
237
+ # complete `line_item` value, for example `gpt-6-astra, input_tokens`.
238
+ line_items: nil,
235
239
  # A cursor for use in pagination. Corresponding to the `next_page` field from the
236
240
  # previous response.
237
241
  page: nil,
@@ -157,8 +157,8 @@ module OpenAI
157
157
  # Keys are strings with a maximum length of 64 characters. Values are strings with
158
158
  # a maximum length of 512 characters.
159
159
  metadata: nil,
160
- # Body param: Model ID used to generate the response, like `gpt-4o` or `o3`.
161
- # OpenAI offers a wide range of models with different capabilities, performance
160
+ # Body param: Model ID used to generate the response, like `gpt-6-astra`. OpenAI
161
+ # offers a wide range of models with different capabilities, performance
162
162
  # characteristics, and price points. Refer to the
163
163
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
164
164
  # available models.
@@ -211,9 +211,7 @@ module OpenAI
211
211
  # - Organizations with ZDR enabled default to `in_memory` when
212
212
  # `prompt_cache_retention` is not specified.
213
213
  prompt_cache_retention: nil,
214
- # Body param: **gpt-5 and o-series models only**
215
- #
216
- # Configuration options for
214
+ # Body param: Configuration options for
217
215
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
218
216
  reasoning: nil,
219
217
  # Body param: A stable identifier used to help detect users of your application
@@ -473,8 +471,8 @@ module OpenAI
473
471
  # Keys are strings with a maximum length of 64 characters. Values are strings with
474
472
  # a maximum length of 512 characters.
475
473
  metadata: nil,
476
- # Body param: Model ID used to generate the response, like `gpt-4o` or `o3`.
477
- # OpenAI offers a wide range of models with different capabilities, performance
474
+ # Body param: Model ID used to generate the response, like `gpt-6-astra`. OpenAI
475
+ # offers a wide range of models with different capabilities, performance
478
476
  # characteristics, and price points. Refer to the
479
477
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
480
478
  # available models.
@@ -527,9 +525,7 @@ module OpenAI
527
525
  # - Organizations with ZDR enabled default to `in_memory` when
528
526
  # `prompt_cache_retention` is not specified.
529
527
  prompt_cache_retention: nil,
530
- # Body param: **gpt-5 and o-series models only**
531
- #
532
- # Configuration options for
528
+ # Body param: Configuration options for
533
529
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
534
530
  reasoning: nil,
535
531
  # Body param: A stable identifier used to help detect users of your application
@@ -786,7 +782,7 @@ module OpenAI
786
782
  .returns(OpenAI::Beta::BetaCompactedResponse)
787
783
  }
788
784
  def compact(
789
- # Body param: Model ID used to generate the response, like `gpt-5` or `o3`. OpenAI
785
+ # Body param: Model ID used to generate the response, like `gpt-6-astra`. OpenAI
790
786
  # offers a wide range of models with different capabilities, performance
791
787
  # characteristics, and price points. Refer to the
792
788
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -115,9 +115,9 @@ module OpenAI
115
115
  # [images](https://platform.openai.com/docs/guides/vision), and
116
116
  # [audio](https://platform.openai.com/docs/guides/audio).
117
117
  messages:,
118
- # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
119
- # wide range of models with different capabilities, performance characteristics,
120
- # and price points. Refer to the
118
+ # Model ID used to generate the response, like `gpt-6-astra` or `o3`. OpenAI
119
+ # offers a wide range of models with different capabilities, performance
120
+ # characteristics, and price points. Refer to the
121
121
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
122
122
  # available models.
123
123
  model:,
@@ -453,9 +453,9 @@ module OpenAI
453
453
  # [images](https://platform.openai.com/docs/guides/vision), and
454
454
  # [audio](https://platform.openai.com/docs/guides/audio).
455
455
  messages:,
456
- # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
457
- # wide range of models with different capabilities, performance characteristics,
458
- # and price points. Refer to the
456
+ # Model ID used to generate the response, like `gpt-6-astra` or `o3`. OpenAI
457
+ # offers a wide range of models with different capabilities, performance
458
+ # characteristics, and price points. Refer to the
459
459
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
460
460
  # available models.
461
461
  model:,
@@ -26,6 +26,7 @@ module OpenAI
26
26
  OpenAI::Responses::ResponseInputItem::ToolSearchCall::OrHash,
27
27
  OpenAI::Responses::ResponseToolSearchOutputItemParam::OrHash,
28
28
  OpenAI::Responses::ResponseInputItem::AdditionalTools::OrHash,
29
+ OpenAI::Responses::ResponseConfigurationUpdateItemParam::OrHash,
29
30
  OpenAI::Responses::ResponseReasoningItem::OrHash,
30
31
  OpenAI::Responses::ResponseCompactionItemParam::OrHash,
31
32
  OpenAI::Responses::ResponseInputItem::ImageGenerationCall::OrHash,
@@ -28,6 +28,7 @@ module OpenAI
28
28
  OpenAI::Responses::ResponseInputItem::ToolSearchCall::OrHash,
29
29
  OpenAI::Responses::ResponseToolSearchOutputItemParam::OrHash,
30
30
  OpenAI::Responses::ResponseInputItem::AdditionalTools::OrHash,
31
+ OpenAI::Responses::ResponseConfigurationUpdateItemParam::OrHash,
31
32
  OpenAI::Responses::ResponseReasoningItem::OrHash,
32
33
  OpenAI::Responses::ResponseCompactionItemParam::OrHash,
33
34
  OpenAI::Responses::ResponseInputItem::ImageGenerationCall::OrHash,
@@ -155,9 +155,9 @@ module OpenAI
155
155
  # Keys are strings with a maximum length of 64 characters. Values are strings with
156
156
  # a maximum length of 512 characters.
157
157
  metadata: nil,
158
- # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
159
- # wide range of models with different capabilities, performance characteristics,
160
- # and price points. Refer to the
158
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
159
+ # range of models with different capabilities, performance characteristics, and
160
+ # price points. Refer to the
161
161
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
162
162
  # available models.
163
163
  model: nil,
@@ -205,8 +205,6 @@ module OpenAI
205
205
  # - Organizations with ZDR enabled default to `in_memory` when
206
206
  # `prompt_cache_retention` is not specified.
207
207
  prompt_cache_retention: nil,
208
- # **gpt-5 and o-series models only**
209
- #
210
208
  # Configuration options for
211
209
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
212
210
  reasoning: nil,
@@ -462,9 +460,9 @@ module OpenAI
462
460
  # Keys are strings with a maximum length of 64 characters. Values are strings with
463
461
  # a maximum length of 512 characters.
464
462
  metadata: nil,
465
- # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
466
- # wide range of models with different capabilities, performance characteristics,
467
- # and price points. Refer to the
463
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
464
+ # range of models with different capabilities, performance characteristics, and
465
+ # price points. Refer to the
468
466
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
469
467
  # available models.
470
468
  model: nil,
@@ -512,8 +510,6 @@ module OpenAI
512
510
  # - Organizations with ZDR enabled default to `in_memory` when
513
511
  # `prompt_cache_retention` is not specified.
514
512
  prompt_cache_retention: nil,
515
- # **gpt-5 and o-series models only**
516
- #
517
513
  # Configuration options for
518
514
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
519
515
  reasoning: nil,
@@ -990,9 +986,9 @@ module OpenAI
990
986
  .returns(OpenAI::Responses::CompactedResponse)
991
987
  end
992
988
  def compact(
993
- # Model ID used to generate the response, like `gpt-5` or `o3`. OpenAI offers a
994
- # wide range of models with different capabilities, performance characteristics,
995
- # and price points. Refer to the
989
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
990
+ # range of models with different capabilities, performance characteristics, and
991
+ # price points. Refer to the
996
992
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
997
993
  # available models.
998
994
  model:,
@@ -0,0 +1,30 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Resources
5
+
6
+ class Safety
7
+
8
+ class Alerts
9
+
10
+ # Get a safety alert belonging to the authenticated API project.
11
+ sig {
12
+ params(id: String, request_options: OpenAI::RequestOptions::OrHash).returns(OpenAI::Safety::SafetyAlert)
13
+ }
14
+ def retrieve(
15
+ # Project safety alert ID
16
+ id,
17
+ request_options: {}
18
+ )
19
+ end
20
+
21
+ # @api private
22
+ sig { params(client: OpenAI::Client).returns(T.attached_class) }
23
+ def self.new(client:)
24
+ end
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,18 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Resources
5
+
6
+ class Safety
7
+
8
+ sig { returns(OpenAI::Resources::Safety::Alerts) }
9
+ attr_reader :alerts
10
+
11
+ # @api private
12
+ sig { params(client: OpenAI::Client).returns(T.attached_class) }
13
+ def self.new(client:)
14
+ end
15
+ end
16
+
17
+ end
18
+ end
@@ -29,7 +29,9 @@ module OpenAI
29
29
  OpenAI::Webhooks::ResponseCancelledWebhookEvent,
30
30
  OpenAI::Webhooks::ResponseCompletedWebhookEvent,
31
31
  OpenAI::Webhooks::ResponseFailedWebhookEvent,
32
- OpenAI::Webhooks::ResponseIncompleteWebhookEvent
32
+ OpenAI::Webhooks::ResponseIncompleteWebhookEvent,
33
+ OpenAI::Webhooks::SafetyAlertCreatedWebhookEvent,
34
+ OpenAI::Webhooks::SafetyOrgAlertCreatedWebhookEvent
33
35
  )
34
36
  )
35
37
  }
@@ -44,6 +44,8 @@ module OpenAI
44
44
 
45
45
  attr_reader vector_stores: OpenAI::Resources::VectorStores
46
46
 
47
+ attr_reader safety: OpenAI::Resources::Safety
48
+
47
49
  attr_reader webhooks: OpenAI::Resources::Webhooks
48
50
 
49
51
  attr_reader beta: OpenAI::Resources::Beta
@@ -1,7 +1,7 @@
1
1
  module OpenAI
2
2
  module Errors
3
3
  class Error < StandardError
4
- attr_accessor cause: StandardError?
4
+ attr_reader cause: StandardError?
5
5
  end
6
6
 
7
7
  class PollingError < OpenAI::Errors::Error
@@ -8,8 +8,8 @@ module OpenAI
8
8
  {
9
9
  method: Symbol,
10
10
  path: String | ::Array[String],
11
- query: ::Hash[String, (::Array[String] | String)?]?,
12
- headers: ::Hash[String, (String
11
+ query: ::Hash[(String | Symbol), (::Array[String] | String)?]?,
12
+ headers: ::Hash[(String | Symbol), (String
13
13
  | Integer
14
14
  | ::Array[(String | Integer)?])?]?,
15
15
  body: top?,
@@ -20,7 +20,7 @@ module OpenAI
20
20
  page: Class?,
21
21
  stream: Class?,
22
22
  model: OpenAI::Internal::Type::Converter::input?,
23
- security: { :bearer_auth? => bool, :admin_api_key_auth? => bool }?,
23
+ security: ::Hash[(:bearer_auth | :admin_api_key_auth), bool]?,
24
24
  options: OpenAI::request_opts?
25
25
  }
26
26
  type request_input =
@@ -154,22 +154,7 @@ module OpenAI
154
154
  } -> OpenAI::HTTPClient::Response
155
155
 
156
156
  def request: (
157
- Symbol method,
158
- String | ::Array[String] path,
159
- ?query: ::Hash[String, (::Array[String] | String)?]?,
160
- ?headers: ::Hash[String, (String
161
- | Integer
162
- | ::Array[(String | Integer)?])?]?,
163
- ?body: top?,
164
- ?unwrap: (Symbol
165
- | Integer
166
- | ::Array[(Symbol | Integer)]
167
- | (^(top arg0) -> top))?,
168
- ?page: Class?,
169
- ?stream: Class?,
170
- ?model: OpenAI::Internal::Type::Converter::input?,
171
- ?security: { :bearer_auth? => bool, :admin_api_key_auth? => bool }?,
172
- ?options: OpenAI::request_opts?
157
+ OpenAI::Internal::Transport::BaseClient::request_components req
173
158
  ) -> top
174
159
 
175
160
  private def perform_request: (
@@ -10,6 +10,7 @@ module OpenAI
10
10
  end_time: Integer,
11
11
  group_by: ::Array[OpenAI::Models::Admin::Organization::UsageCostsParams::group_by],
12
12
  limit: Integer,
13
+ line_items: ::Array[String],
13
14
  page: String,
14
15
  project_ids: ::Array[String]
15
16
  }
@@ -45,6 +46,10 @@ module OpenAI
45
46
 
46
47
  def limit=: (Integer) -> Integer
47
48
 
49
+ attr_reader line_items: ::Array[String]?
50
+
51
+ def line_items=: (::Array[String]) -> ::Array[String]
52
+
48
53
  attr_reader page: String?
49
54
 
50
55
  def page=: (String) -> String
@@ -60,6 +65,7 @@ module OpenAI
60
65
  ?end_time: Integer,
61
66
  ?group_by: ::Array[OpenAI::Models::Admin::Organization::UsageCostsParams::group_by],
62
67
  ?limit: Integer,
68
+ ?line_items: ::Array[String],
63
69
  ?page: String,
64
70
  ?project_ids: ::Array[String],
65
71
  ?request_options: OpenAI::request_opts
@@ -72,6 +78,7 @@ module OpenAI
72
78
  end_time: Integer,
73
79
  group_by: ::Array[OpenAI::Models::Admin::Organization::UsageCostsParams::group_by],
74
80
  limit: Integer,
81
+ line_items: ::Array[String],
75
82
  page: String,
76
83
  project_ids: ::Array[String],
77
84
  request_options: OpenAI::RequestOptions
@@ -8,6 +8,7 @@ module OpenAI
8
8
  name: String,
9
9
  type: :custom,
10
10
  allowed_callers: ::Array[OpenAI::Models::Beta::BetaCustomTool::allowed_caller]?,
11
+ async: bool,
11
12
  defer_loading: bool,
12
13
  description: String,
13
14
  format_: OpenAI::Models::Beta::BetaCustomTool::format_
@@ -20,6 +21,10 @@ module OpenAI
20
21
 
21
22
  attr_accessor allowed_callers: ::Array[OpenAI::Models::Beta::BetaCustomTool::allowed_caller]?
22
23
 
24
+ attr_reader async: bool?
25
+
26
+ def async=: (bool) -> bool
27
+
23
28
  attr_reader defer_loading: bool?
24
29
 
25
30
  def defer_loading=: (bool) -> bool
@@ -37,6 +42,7 @@ module OpenAI
37
42
  def initialize: (
38
43
  name: String,
39
44
  ?allowed_callers: ::Array[OpenAI::Models::Beta::BetaCustomTool::allowed_caller]?,
45
+ ?async: bool,
40
46
  ?defer_loading: bool,
41
47
  ?description: String,
42
48
  ?format_: OpenAI::Models::Beta::BetaCustomTool::format_,
@@ -47,6 +53,7 @@ module OpenAI
47
53
  name: String,
48
54
  type: :custom,
49
55
  allowed_callers: ::Array[OpenAI::Models::Beta::BetaCustomTool::allowed_caller]?,
56
+ async: bool,
50
57
  defer_loading: bool,
51
58
  description: String,
52
59
  format_: OpenAI::Models::Beta::BetaCustomTool::format_