openai 0.84.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 (267) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -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/client.rb +4 -0
  7. data/lib/openai/helpers/streaming/chat_completion_stream.rb +17 -8
  8. data/lib/openai/helpers/streaming/response_stream.rb +13 -8
  9. data/lib/openai/helpers/structured_output/array_of.rb +2 -2
  10. data/lib/openai/helpers/structured_output/base_model.rb +19 -5
  11. data/lib/openai/helpers/structured_output/chat_completion_parser.rb +6 -3
  12. data/lib/openai/helpers/structured_output/json_schema_converter.rb +34 -11
  13. data/lib/openai/internal/vector_store_file_uploader.rb +1 -1
  14. data/lib/openai/models/admin/organization/usage_costs_params.rb +1 -1
  15. data/lib/openai/models/batch.rb +2 -2
  16. data/lib/openai/models/beta/beta_custom_tool.rb +13 -1
  17. data/lib/openai/models/beta/beta_function_tool.rb +8 -1
  18. data/lib/openai/models/beta/beta_namespace_tool.rb +10 -1
  19. data/lib/openai/models/beta/beta_response.rb +20 -9
  20. data/lib/openai/models/beta/beta_response_configuration_update_item.rb +103 -0
  21. data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +104 -0
  22. data/lib/openai/models/beta/beta_response_custom_tool_call.rb +9 -1
  23. data/lib/openai/models/beta/beta_response_custom_tool_call_item.rb +3 -1
  24. data/lib/openai/models/beta/beta_response_error.rb +96 -1
  25. data/lib/openai/models/beta/beta_response_function_tool_call.rb +9 -1
  26. data/lib/openai/models/beta/beta_response_function_tool_call_item.rb +3 -1
  27. data/lib/openai/models/beta/beta_response_incomplete_event.rb +4 -0
  28. data/lib/openai/models/beta/beta_response_inject_event.rb +2 -2
  29. data/lib/openai/models/beta/beta_response_inject_failed_event.rb +2 -2
  30. data/lib/openai/models/beta/beta_response_input_item.rb +6 -1
  31. data/lib/openai/models/beta/beta_response_item.rb +5 -1
  32. data/lib/openai/models/beta/beta_response_steer_accepted_event.rb +81 -0
  33. data/lib/openai/models/beta/beta_response_steer_error_code.rb +61 -0
  34. data/lib/openai/models/beta/beta_response_steer_event.rb +75 -0
  35. data/lib/openai/models/beta/beta_response_steer_failed_event.rb +151 -0
  36. data/lib/openai/models/beta/beta_response_steer_input.rb +360 -0
  37. data/lib/openai/models/beta/beta_response_steer_input_content.rb +28 -0
  38. data/lib/openai/models/beta/beta_response_steer_pending_event.rb +113 -0
  39. data/lib/openai/models/beta/beta_response_steer_pending_reason.rb +26 -0
  40. data/lib/openai/models/beta/beta_response_steer_required_input.rb +215 -0
  41. data/lib/openai/models/beta/beta_response_stream_event.rb +4 -0
  42. data/lib/openai/models/beta/beta_responses_client_event.rb +40 -7
  43. data/lib/openai/models/beta/beta_responses_server_event.rb +164 -2
  44. data/lib/openai/models/beta/response_compact_params.rb +9 -6
  45. data/lib/openai/models/beta/response_create_params.rb +9 -6
  46. data/lib/openai/models/beta/responses/beta_response_item_list.rb +2 -2
  47. data/lib/openai/models/beta/responses/input_token_count_params.rb +3 -3
  48. data/lib/openai/models/chat/completion_create_params.rb +4 -4
  49. data/lib/openai/models/chat_model.rb +1 -0
  50. data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
  51. data/lib/openai/models/conversations/conversation_item.rb +5 -1
  52. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  53. data/lib/openai/models/conversations/item_create_params.rb +2 -2
  54. data/lib/openai/models/error_object.rb +90 -1
  55. data/lib/openai/models/eval_create_response.rb +1 -1
  56. data/lib/openai/models/eval_list_response.rb +1 -1
  57. data/lib/openai/models/eval_retrieve_response.rb +1 -1
  58. data/lib/openai/models/eval_update_response.rb +1 -1
  59. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +2 -2
  60. data/lib/openai/models/responses/custom_tool.rb +13 -1
  61. data/lib/openai/models/responses/function_tool.rb +8 -1
  62. data/lib/openai/models/responses/input_token_count_params.rb +3 -3
  63. data/lib/openai/models/responses/namespace_tool.rb +10 -1
  64. data/lib/openai/models/responses/response.rb +16 -8
  65. data/lib/openai/models/responses/response_compact_params.rb +9 -6
  66. data/lib/openai/models/responses/response_configuration_update_item.rb +56 -0
  67. data/lib/openai/models/responses/response_configuration_update_item_param.rb +57 -0
  68. data/lib/openai/models/responses/response_create_params.rb +5 -5
  69. data/lib/openai/models/responses/response_custom_tool_call.rb +9 -1
  70. data/lib/openai/models/responses/response_custom_tool_call_item.rb +3 -1
  71. data/lib/openai/models/responses/response_error.rb +96 -1
  72. data/lib/openai/models/responses/response_function_tool_call.rb +9 -1
  73. data/lib/openai/models/responses/response_function_tool_call_item.rb +3 -1
  74. data/lib/openai/models/responses/response_incomplete_event.rb +4 -0
  75. data/lib/openai/models/responses/response_input_item.rb +6 -1
  76. data/lib/openai/models/responses/response_item.rb +5 -1
  77. data/lib/openai/models/responses/response_item_list.rb +2 -2
  78. data/lib/openai/models/responses/response_steer_accepted_event.rb +79 -0
  79. data/lib/openai/models/responses/response_steer_error_code.rb +59 -0
  80. data/lib/openai/models/responses/response_steer_event.rb +73 -0
  81. data/lib/openai/models/responses/response_steer_failed_event.rb +149 -0
  82. data/lib/openai/models/responses/response_steer_input.rb +304 -0
  83. data/lib/openai/models/responses/response_steer_input_content.rb +26 -0
  84. data/lib/openai/models/responses/response_steer_pending_event.rb +111 -0
  85. data/lib/openai/models/responses/response_steer_pending_reason.rb +24 -0
  86. data/lib/openai/models/responses/response_steer_required_input.rb +213 -0
  87. data/lib/openai/models/responses/response_stream_event.rb +4 -0
  88. data/lib/openai/models/responses/responses_client_event.rb +872 -769
  89. data/lib/openai/models/responses/responses_server_event.rb +162 -2
  90. data/lib/openai/models/safety/alert_retrieve_params.rb +24 -0
  91. data/lib/openai/models/safety/safety_alert.rb +96 -0
  92. data/lib/openai/models/video_create_error.rb +93 -1
  93. data/lib/openai/models/webhooks/safety_alert_created_webhook_event.rb +63 -0
  94. data/lib/openai/models/webhooks/safety_org_alert_created_webhook_event.rb +63 -0
  95. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +7 -1
  96. data/lib/openai/models.rb +2 -0
  97. data/lib/openai/net_http_client.rb +1 -1
  98. data/lib/openai/providers/bedrock.rb +20 -12
  99. data/lib/openai/resources/beta/responses/input_items.rb +1 -1
  100. data/lib/openai/resources/beta/responses/input_tokens.rb +1 -1
  101. data/lib/openai/resources/beta/responses.rb +6 -6
  102. data/lib/openai/resources/chat/completions.rb +2 -2
  103. data/lib/openai/resources/conversations/items.rb +3 -3
  104. data/lib/openai/resources/conversations.rb +1 -1
  105. data/lib/openai/resources/responses/input_items.rb +1 -1
  106. data/lib/openai/resources/responses/input_tokens.rb +1 -1
  107. data/lib/openai/resources/responses.rb +6 -6
  108. data/lib/openai/resources/safety/alerts.rb +37 -0
  109. data/lib/openai/resources/safety.rb +18 -0
  110. data/lib/openai/resources/webhooks.rb +1 -1
  111. data/lib/openai/version.rb +1 -1
  112. data/lib/openai.rb +28 -0
  113. data/rbi/openai/client.rbi +3 -0
  114. data/rbi/openai/models/admin/organization/usage_costs_params.rbi +2 -2
  115. data/rbi/openai/models/batch.rbi +2 -2
  116. data/rbi/openai/models/beta/beta_custom_tool.rbi +15 -0
  117. data/rbi/openai/models/beta/beta_function_tool.rbi +11 -0
  118. data/rbi/openai/models/beta/beta_namespace_tool.rbi +15 -0
  119. data/rbi/openai/models/beta/beta_response.rbi +14 -6
  120. data/rbi/openai/models/beta/beta_response_configuration_update_item.rbi +200 -0
  121. data/rbi/openai/models/beta/beta_response_configuration_update_item_param.rbi +207 -0
  122. data/rbi/openai/models/beta/beta_response_custom_tool_call.rbi +13 -0
  123. data/rbi/openai/models/beta/beta_response_custom_tool_call_item.rbi +6 -0
  124. data/rbi/openai/models/beta/beta_response_error.rbi +161 -3
  125. data/rbi/openai/models/beta/beta_response_function_tool_call.rbi +13 -0
  126. data/rbi/openai/models/beta/beta_response_function_tool_call_item.rbi +6 -0
  127. data/rbi/openai/models/beta/beta_response_incomplete_event.rbi +4 -0
  128. data/rbi/openai/models/beta/beta_response_inject_event.rbi +3 -0
  129. data/rbi/openai/models/beta/beta_response_inject_failed_event.rbi +3 -0
  130. data/rbi/openai/models/beta/beta_response_input_item.rbi +1 -0
  131. data/rbi/openai/models/beta/beta_response_item.rbi +1 -0
  132. data/rbi/openai/models/beta/beta_response_steer_accepted_event.rbi +148 -0
  133. data/rbi/openai/models/beta/beta_response_steer_error_code.rbi +65 -0
  134. data/rbi/openai/models/beta/beta_response_steer_event.rbi +118 -0
  135. data/rbi/openai/models/beta/beta_response_steer_failed_event.rbi +267 -0
  136. data/rbi/openai/models/beta/beta_response_steer_input.rbi +602 -0
  137. data/rbi/openai/models/beta/beta_response_steer_input_content.rbi +31 -0
  138. data/rbi/openai/models/beta/beta_response_steer_pending_event.rbi +222 -0
  139. data/rbi/openai/models/beta/beta_response_steer_pending_reason.rbi +35 -0
  140. data/rbi/openai/models/beta/beta_response_steer_required_input.rbi +379 -0
  141. data/rbi/openai/models/beta/beta_responses_client_event.rbi +8 -3
  142. data/rbi/openai/models/beta/beta_responses_server_event.rbi +206 -3
  143. data/rbi/openai/models/beta/response_compact_params.rbi +4 -3
  144. data/rbi/openai/models/beta/response_create_params.rbi +4 -3
  145. data/rbi/openai/models/beta/responses/beta_response_item_list.rbi +1 -0
  146. data/rbi/openai/models/chat/completion_create_params.rbi +3 -3
  147. data/rbi/openai/models/chat_model.rbi +1 -0
  148. data/rbi/openai/models/conversations/conversation_create_params.rbi +3 -0
  149. data/rbi/openai/models/conversations/conversation_item.rbi +1 -0
  150. data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
  151. data/rbi/openai/models/conversations/item_create_params.rbi +3 -0
  152. data/rbi/openai/models/error_object.rbi +156 -3
  153. data/rbi/openai/models/eval_create_response.rbi +1 -1
  154. data/rbi/openai/models/eval_list_response.rbi +1 -1
  155. data/rbi/openai/models/eval_retrieve_response.rbi +1 -1
  156. data/rbi/openai/models/eval_update_response.rbi +1 -1
  157. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +2 -2
  158. data/rbi/openai/models/responses/custom_tool.rbi +15 -0
  159. data/rbi/openai/models/responses/function_tool.rbi +11 -0
  160. data/rbi/openai/models/responses/namespace_tool.rbi +15 -0
  161. data/rbi/openai/models/responses/response.rbi +12 -5
  162. data/rbi/openai/models/responses/response_compact_params.rbi +4 -3
  163. data/rbi/openai/models/responses/response_configuration_update_item.rbi +112 -0
  164. data/rbi/openai/models/responses/response_configuration_update_item_param.rbi +117 -0
  165. data/rbi/openai/models/responses/response_create_params.rbi +2 -2
  166. data/rbi/openai/models/responses/response_custom_tool_call.rbi +13 -0
  167. data/rbi/openai/models/responses/response_custom_tool_call_item.rbi +6 -0
  168. data/rbi/openai/models/responses/response_error.rbi +161 -3
  169. data/rbi/openai/models/responses/response_function_tool_call.rbi +13 -0
  170. data/rbi/openai/models/responses/response_function_tool_call_item.rbi +6 -0
  171. data/rbi/openai/models/responses/response_incomplete_event.rbi +4 -0
  172. data/rbi/openai/models/responses/response_input_item.rbi +1 -0
  173. data/rbi/openai/models/responses/response_item.rbi +1 -0
  174. data/rbi/openai/models/responses/response_item_list.rbi +1 -0
  175. data/rbi/openai/models/responses/response_steer_accepted_event.rbi +146 -0
  176. data/rbi/openai/models/responses/response_steer_error_code.rbi +63 -0
  177. data/rbi/openai/models/responses/response_steer_event.rbi +119 -0
  178. data/rbi/openai/models/responses/response_steer_failed_event.rbi +268 -0
  179. data/rbi/openai/models/responses/response_steer_input.rbi +474 -0
  180. data/rbi/openai/models/responses/response_steer_input_content.rbi +29 -0
  181. data/rbi/openai/models/responses/response_steer_pending_event.rbi +220 -0
  182. data/rbi/openai/models/responses/response_steer_pending_reason.rbi +33 -0
  183. data/rbi/openai/models/responses/response_steer_required_input.rbi +377 -0
  184. data/rbi/openai/models/responses/responses_client_event.rbi +1204 -1036
  185. data/rbi/openai/models/responses/responses_server_event.rbi +202 -3
  186. data/rbi/openai/models/safety/alert_retrieve_params.rbi +55 -0
  187. data/rbi/openai/models/safety/safety_alert.rbi +147 -0
  188. data/rbi/openai/models/video_create_error.rbi +149 -3
  189. data/rbi/openai/models/webhooks/safety_alert_created_webhook_event.rbi +130 -0
  190. data/rbi/openai/models/webhooks/safety_org_alert_created_webhook_event.rbi +130 -0
  191. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +3 -1
  192. data/rbi/openai/models.rbi +2 -0
  193. data/rbi/openai/resources/admin/organization/usage.rbi +1 -1
  194. data/rbi/openai/resources/beta/responses.rbi +3 -3
  195. data/rbi/openai/resources/chat/completions.rbi +2 -2
  196. data/rbi/openai/resources/conversations/items.rbi +1 -0
  197. data/rbi/openai/resources/conversations.rbi +1 -0
  198. data/rbi/openai/resources/responses.rbi +3 -3
  199. data/rbi/openai/resources/safety/alerts.rbi +30 -0
  200. data/rbi/openai/resources/safety.rbi +18 -0
  201. data/rbi/openai/resources/webhooks.rbi +3 -1
  202. data/sig/openai/client.rbs +2 -0
  203. data/sig/openai/models/beta/beta_custom_tool.rbs +7 -0
  204. data/sig/openai/models/beta/beta_function_tool.rbs +7 -0
  205. data/sig/openai/models/beta/beta_namespace_tool.rbs +7 -0
  206. data/sig/openai/models/beta/beta_response.rbs +6 -2
  207. data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +91 -0
  208. data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +87 -0
  209. data/sig/openai/models/beta/beta_response_custom_tool_call.rbs +7 -0
  210. data/sig/openai/models/beta/beta_response_custom_tool_call_item.rbs +3 -0
  211. data/sig/openai/models/beta/beta_response_error.rbs +82 -3
  212. data/sig/openai/models/beta/beta_response_function_tool_call.rbs +7 -0
  213. data/sig/openai/models/beta/beta_response_function_tool_call_item.rbs +3 -0
  214. data/sig/openai/models/beta/beta_response_input_item.rbs +1 -0
  215. data/sig/openai/models/beta/beta_response_item.rbs +1 -0
  216. data/sig/openai/models/beta/beta_response_steer_accepted_event.rbs +53 -0
  217. data/sig/openai/models/beta/beta_response_steer_error_code.rbs +31 -0
  218. data/sig/openai/models/beta/beta_response_steer_event.rbs +34 -0
  219. data/sig/openai/models/beta/beta_response_steer_failed_event.rbs +102 -0
  220. data/sig/openai/models/beta/beta_response_steer_input.rbs +214 -0
  221. data/sig/openai/models/beta/beta_response_steer_input_content.rbs +18 -0
  222. data/sig/openai/models/beta/beta_response_steer_pending_event.rbs +63 -0
  223. data/sig/openai/models/beta/beta_response_steer_pending_reason.rbs +16 -0
  224. data/sig/openai/models/beta/beta_response_steer_required_input.rbs +161 -0
  225. data/sig/openai/models/beta/beta_responses_client_event.rbs +4 -1
  226. data/sig/openai/models/beta/beta_responses_server_event.rbs +80 -3
  227. data/sig/openai/models/beta/response_compact_params.rbs +3 -1
  228. data/sig/openai/models/beta/response_create_params.rbs +3 -1
  229. data/sig/openai/models/chat_model.rbs +3 -1
  230. data/sig/openai/models/conversations/conversation_item.rbs +1 -0
  231. data/sig/openai/models/error_object.rbs +82 -3
  232. data/sig/openai/models/responses/custom_tool.rbs +7 -0
  233. data/sig/openai/models/responses/function_tool.rbs +7 -0
  234. data/sig/openai/models/responses/namespace_tool.rbs +7 -0
  235. data/sig/openai/models/responses/response.rbs +3 -1
  236. data/sig/openai/models/responses/response_compact_params.rbs +3 -1
  237. data/sig/openai/models/responses/response_configuration_update_item.rbs +46 -0
  238. data/sig/openai/models/responses/response_configuration_update_item_param.rbs +46 -0
  239. data/sig/openai/models/responses/response_custom_tool_call.rbs +7 -0
  240. data/sig/openai/models/responses/response_custom_tool_call_item.rbs +3 -0
  241. data/sig/openai/models/responses/response_error.rbs +79 -3
  242. data/sig/openai/models/responses/response_function_tool_call.rbs +7 -0
  243. data/sig/openai/models/responses/response_function_tool_call_item.rbs +3 -0
  244. data/sig/openai/models/responses/response_input_item.rbs +1 -0
  245. data/sig/openai/models/responses/response_item.rbs +1 -0
  246. data/sig/openai/models/responses/response_steer_accepted_event.rbs +51 -0
  247. data/sig/openai/models/responses/response_steer_error_code.rbs +29 -0
  248. data/sig/openai/models/responses/response_steer_event.rbs +32 -0
  249. data/sig/openai/models/responses/response_steer_failed_event.rbs +100 -0
  250. data/sig/openai/models/responses/response_steer_input.rbs +182 -0
  251. data/sig/openai/models/responses/response_steer_input_content.rbs +16 -0
  252. data/sig/openai/models/responses/response_steer_pending_event.rbs +61 -0
  253. data/sig/openai/models/responses/response_steer_pending_reason.rbs +13 -0
  254. data/sig/openai/models/responses/response_steer_required_input.rbs +159 -0
  255. data/sig/openai/models/responses/responses_client_event.rbs +355 -344
  256. data/sig/openai/models/responses/responses_server_event.rbs +80 -3
  257. data/sig/openai/models/safety/alert_retrieve_params.rbs +22 -0
  258. data/sig/openai/models/safety/safety_alert.rbs +81 -0
  259. data/sig/openai/models/video_create_error.rbs +87 -3
  260. data/sig/openai/models/webhooks/safety_alert_created_webhook_event.rbs +52 -0
  261. data/sig/openai/models/webhooks/safety_org_alert_created_webhook_event.rbs +52 -0
  262. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +2 -0
  263. data/sig/openai/models.rbs +2 -0
  264. data/sig/openai/resources/safety/alerts.rbs +14 -0
  265. data/sig/openai/resources/safety.rbs +9 -0
  266. data/sig/openai/resources/webhooks.rbs +3 -1
  267. 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
@@ -234,7 +234,7 @@ module OpenAI
234
234
  # 180, and the default is 7.
235
235
  limit: nil,
236
236
  # Return only costs for these exact line item names. Each value must match the
237
- # complete `line_item` value, for example `gpt-5.6-sol, input_tokens`.
237
+ # complete `line_item` value, for example `gpt-6-astra, input_tokens`.
238
238
  line_items: nil,
239
239
  # A cursor for use in pagination. Corresponding to the `next_page` field from the
240
240
  # previous response.
@@ -157,7 +157,7 @@ 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-5.6-sol`. OpenAI
160
+ # Body param: Model ID used to generate the response, like `gpt-6-astra`. OpenAI
161
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
@@ -471,7 +471,7 @@ module OpenAI
471
471
  # Keys are strings with a maximum length of 64 characters. Values are strings with
472
472
  # a maximum length of 512 characters.
473
473
  metadata: nil,
474
- # Body param: Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI
474
+ # Body param: Model ID used to generate the response, like `gpt-6-astra`. OpenAI
475
475
  # offers a wide range of models with different capabilities, performance
476
476
  # characteristics, and price points. Refer to the
477
477
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -782,7 +782,7 @@ module OpenAI
782
782
  .returns(OpenAI::Beta::BetaCompactedResponse)
783
783
  }
784
784
  def compact(
785
- # Body param: Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI
785
+ # Body param: Model ID used to generate the response, like `gpt-6-astra`. OpenAI
786
786
  # offers a wide range of models with different capabilities, performance
787
787
  # characteristics, and price points. Refer to the
788
788
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -115,7 +115,7 @@ 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-5.6-sol` or `o3`. OpenAI
118
+ # Model ID used to generate the response, like `gpt-6-astra` or `o3`. OpenAI
119
119
  # offers a wide range of models with different capabilities, performance
120
120
  # characteristics, and price points. Refer to the
121
121
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -453,7 +453,7 @@ 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-5.6-sol` or `o3`. OpenAI
456
+ # Model ID used to generate the response, like `gpt-6-astra` or `o3`. OpenAI
457
457
  # offers a wide range of models with different capabilities, performance
458
458
  # characteristics, and price points. Refer to the
459
459
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -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,7 +155,7 @@ 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-5.6-sol`. OpenAI offers a wide
158
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
159
159
  # range of models with different capabilities, performance characteristics, and
160
160
  # price points. Refer to the
161
161
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -460,7 +460,7 @@ module OpenAI
460
460
  # Keys are strings with a maximum length of 64 characters. Values are strings with
461
461
  # a maximum length of 512 characters.
462
462
  metadata: nil,
463
- # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
463
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
464
464
  # range of models with different capabilities, performance characteristics, and
465
465
  # price points. Refer to the
466
466
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -986,7 +986,7 @@ module OpenAI
986
986
  .returns(OpenAI::Responses::CompactedResponse)
987
987
  end
988
988
  def compact(
989
- # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
989
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
990
990
  # range of models with different capabilities, performance characteristics, and
991
991
  # price points. Refer to the
992
992
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -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
@@ -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_
@@ -10,6 +10,7 @@ module OpenAI
10
10
  strict: bool?,
11
11
  type: :function,
12
12
  allowed_callers: ::Array[OpenAI::Models::Beta::BetaFunctionTool::allowed_caller]?,
13
+ async: bool,
13
14
  defer_loading: bool,
14
15
  description: String?,
15
16
  output_schema: ::Hash[Symbol, top]?
@@ -26,6 +27,10 @@ module OpenAI
26
27
 
27
28
  attr_accessor allowed_callers: ::Array[OpenAI::Models::Beta::BetaFunctionTool::allowed_caller]?
28
29
 
30
+ attr_reader async: bool?
31
+
32
+ def async=: (bool) -> bool
33
+
29
34
  attr_reader defer_loading: bool?
30
35
 
31
36
  def defer_loading=: (bool) -> bool
@@ -39,6 +44,7 @@ module OpenAI
39
44
  parameters: ::Hash[Symbol, top]?,
40
45
  strict: bool?,
41
46
  ?allowed_callers: ::Array[OpenAI::Models::Beta::BetaFunctionTool::allowed_caller]?,
47
+ ?async: bool,
42
48
  ?defer_loading: bool,
43
49
  ?description: String?,
44
50
  ?output_schema: ::Hash[Symbol, top]?,
@@ -51,6 +57,7 @@ module OpenAI
51
57
  strict: bool?,
52
58
  type: :function,
53
59
  allowed_callers: ::Array[OpenAI::Models::Beta::BetaFunctionTool::allowed_caller]?,
60
+ async: bool,
54
61
  defer_loading: bool,
55
62
  description: String?,
56
63
  output_schema: ::Hash[Symbol, top]?
@@ -46,6 +46,7 @@ module OpenAI
46
46
  name: String,
47
47
  type: :function,
48
48
  allowed_callers: ::Array[OpenAI::Models::Beta::BetaNamespaceTool::Tool::Function::allowed_caller]?,
49
+ async: bool,
49
50
  defer_loading: bool,
50
51
  description: String?,
51
52
  output_schema: ::Hash[Symbol, top]?,
@@ -60,6 +61,10 @@ module OpenAI
60
61
 
61
62
  attr_accessor allowed_callers: ::Array[OpenAI::Models::Beta::BetaNamespaceTool::Tool::Function::allowed_caller]?
62
63
 
64
+ attr_reader async: bool?
65
+
66
+ def async=: (bool) -> bool
67
+
63
68
  attr_reader defer_loading: bool?
64
69
 
65
70
  def defer_loading=: (bool) -> bool
@@ -75,6 +80,7 @@ module OpenAI
75
80
  def initialize: (
76
81
  name: String,
77
82
  ?allowed_callers: ::Array[OpenAI::Models::Beta::BetaNamespaceTool::Tool::Function::allowed_caller]?,
83
+ ?async: bool,
78
84
  ?defer_loading: bool,
79
85
  ?description: String?,
80
86
  ?output_schema: ::Hash[Symbol, top]?,
@@ -87,6 +93,7 @@ module OpenAI
87
93
  name: String,
88
94
  type: :function,
89
95
  allowed_callers: ::Array[OpenAI::Models::Beta::BetaNamespaceTool::Tool::Function::allowed_caller]?,
96
+ async: bool,
90
97
  defer_loading: bool,
91
98
  description: String?,
92
99
  output_schema: ::Hash[Symbol, top]?,
@@ -222,7 +222,8 @@ module OpenAI
222
222
  reason: OpenAI::Models::Beta::BetaResponse::IncompleteDetails::reason
223
223
  }
224
224
 
225
- type reason = :max_output_tokens | :max_messages | :content_filter
225
+ type reason =
226
+ :max_output_tokens | :max_messages | :content_filter | :steered
226
227
 
227
228
  module Reason
228
229
  extend OpenAI::Internal::Type::Enum
@@ -230,6 +231,7 @@ module OpenAI
230
231
  MAX_OUTPUT_TOKENS: :max_output_tokens
231
232
  MAX_MESSAGES: :max_messages
232
233
  CONTENT_FILTER: :content_filter
234
+ STEERED: :steered
233
235
 
234
236
  def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponse::IncompleteDetails::reason]
235
237
  end
@@ -247,7 +249,8 @@ module OpenAI
247
249
  end
248
250
 
249
251
  type model =
250
- :"gpt-5.6-sol"
252
+ :"gpt-6-astra"
253
+ | :"gpt-5.6-sol"
251
254
  | :"gpt-5.6-terra"
252
255
  | :"gpt-5.6-luna"
253
256
  | :"gpt-5.5"
@@ -356,6 +359,7 @@ module OpenAI
356
359
 
357
360
  def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponse::model]
358
361
 
362
+ GPT_6_ASTRA: :"gpt-6-astra"
359
363
  GPT_5_6_SOL: :"gpt-5.6-sol"
360
364
  GPT_5_6_TERRA: :"gpt-5.6-terra"
361
365
  GPT_5_6_LUNA: :"gpt-5.6-luna"
@@ -0,0 +1,91 @@
1
+ module OpenAI
2
+ module Models
3
+ class BetaResponseConfigurationUpdateItem = Beta::BetaResponseConfigurationUpdateItem
4
+
5
+ module Beta
6
+ type beta_response_configuration_update_item =
7
+ {
8
+ id: String,
9
+ type: :configuration_update,
10
+ agent: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Agent,
11
+ reasoning: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Reasoning
12
+ }
13
+
14
+ class BetaResponseConfigurationUpdateItem < OpenAI::Internal::Type::BaseModel
15
+ attr_accessor id: String
16
+
17
+ attr_accessor type: :configuration_update
18
+
19
+ attr_reader agent: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Agent?
20
+
21
+ def agent=: (
22
+ OpenAI::Beta::BetaResponseConfigurationUpdateItem::Agent
23
+ ) -> OpenAI::Beta::BetaResponseConfigurationUpdateItem::Agent
24
+
25
+ attr_reader reasoning: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Reasoning?
26
+
27
+ def reasoning=: (
28
+ OpenAI::Beta::BetaResponseConfigurationUpdateItem::Reasoning
29
+ ) -> OpenAI::Beta::BetaResponseConfigurationUpdateItem::Reasoning
30
+
31
+ def initialize: (
32
+ id: String,
33
+ ?agent: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Agent,
34
+ ?reasoning: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Reasoning,
35
+ ?type: :configuration_update
36
+ ) -> void
37
+
38
+ def to_hash: -> {
39
+ id: String,
40
+ type: :configuration_update,
41
+ agent: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Agent,
42
+ reasoning: OpenAI::Beta::BetaResponseConfigurationUpdateItem::Reasoning
43
+ }
44
+
45
+ type agent = { agent_name: String }
46
+
47
+ class Agent < OpenAI::Internal::Type::BaseModel
48
+ attr_accessor agent_name: String
49
+
50
+ def initialize: (agent_name: String) -> void
51
+
52
+ def to_hash: -> { agent_name: String }
53
+ end
54
+
55
+ type reasoning =
56
+ {
57
+ effort: OpenAI::Models::Beta::BetaResponseConfigurationUpdateItem::Reasoning::effort?
58
+ }
59
+
60
+ class Reasoning < OpenAI::Internal::Type::BaseModel
61
+ attr_accessor effort: OpenAI::Models::Beta::BetaResponseConfigurationUpdateItem::Reasoning::effort?
62
+
63
+ def initialize: (
64
+ ?effort: OpenAI::Models::Beta::BetaResponseConfigurationUpdateItem::Reasoning::effort?
65
+ ) -> void
66
+
67
+ def to_hash: -> {
68
+ effort: OpenAI::Models::Beta::BetaResponseConfigurationUpdateItem::Reasoning::effort?
69
+ }
70
+
71
+ type effort =
72
+ :none | :minimal | :low | :medium | :high | :xhigh | :max
73
+
74
+ module Effort
75
+ extend OpenAI::Internal::Type::Enum
76
+
77
+ NONE: :none
78
+ MINIMAL: :minimal
79
+ LOW: :low
80
+ MEDIUM: :medium
81
+ HIGH: :high
82
+ XHIGH: :xhigh
83
+ MAX: :max
84
+
85
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseConfigurationUpdateItem::Reasoning::effort]
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end