openai 0.113.0 → 0.115.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 (284) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -0
  3. data/README.md +17 -2
  4. data/docs/architecture/security-model.md +11 -16
  5. data/examples/responses/websocket_workflows.rb +78 -3
  6. data/lib/openai/auth/subject_token_providers/azure_managed_identity_token_provider.rb +10 -8
  7. data/lib/openai/auth/subject_token_providers/gcp_id_token_provider.rb +8 -7
  8. data/lib/openai/helpers/chat/tool_runner.rb +1 -1
  9. data/lib/openai/helpers/live/websocket.rb +31 -0
  10. data/lib/openai/helpers/realtime/connection.rb +33 -0
  11. data/lib/openai/helpers/realtime/connection_manager.rb +1 -0
  12. data/lib/openai/helpers/realtime/conversation_item_variant_resolver.rb +5 -0
  13. data/lib/openai/helpers/realtime/recovery.rb +5 -1
  14. data/lib/openai/helpers/realtime/translation.rb +5 -0
  15. data/lib/openai/helpers/realtime/transports/async_websocket.rb +19 -0
  16. data/lib/openai/helpers/responses_websocket/connection.rb +53 -15
  17. data/lib/openai/helpers/responses_websocket/connection_manager.rb +1 -0
  18. data/lib/openai/helpers/responses_websocket/connection_resources.rb +1 -1
  19. data/lib/openai/helpers/structured_output/response_parser.rb +1 -0
  20. data/lib/openai/helpers/structured_output.rb +58 -0
  21. data/lib/openai/helpers/websocket/connection_manager.rb +11 -0
  22. data/lib/openai/helpers/websocket/resource.rb +1 -0
  23. data/lib/openai/helpers/websocket/typed_connection.rb +1 -0
  24. data/lib/openai/internal/type/array_of.rb +1 -1
  25. data/lib/openai/internal/type/hash_of.rb +1 -1
  26. data/lib/openai/internal/type/request_parameters.rb +2 -1
  27. data/lib/openai/internal/type/union.rb +18 -6
  28. data/lib/openai/models/admin/organization/external_key.rb +169 -0
  29. data/lib/openai/models/admin/organization/external_key_create_params.rb +311 -0
  30. data/lib/openai/models/admin/organization/external_key_delete_params.rb +24 -0
  31. data/lib/openai/models/admin/organization/external_key_list_params.rb +69 -0
  32. data/lib/openai/models/admin/organization/external_key_retrieve_params.rb +24 -0
  33. data/lib/openai/models/admin/organization/external_key_validate_params.rb +24 -0
  34. data/lib/openai/models/admin/organization/external_key_validate_response.rb +20 -0
  35. data/lib/openai/models/audio/speech_model.rb +12 -0
  36. data/lib/openai/models/audio_model.rb +15 -0
  37. data/lib/openai/models/beta/agent.rb +49 -1
  38. data/lib/openai/models/beta/agent_create_params.rb +51 -1
  39. data/lib/openai/models/beta/agent_session.rb +75 -2
  40. data/lib/openai/models/beta/agent_update_params.rb +62 -1
  41. data/lib/openai/models/beta/agents/session_create_params.rb +94 -2
  42. data/lib/openai/models/beta/agents/session_list_params.rb +16 -1
  43. data/lib/openai/models/beta/agents/session_update_params.rb +50 -5
  44. data/lib/openai/models/beta/assistant_update_params.rb +18 -0
  45. data/lib/openai/models/beta/beta_response.rb +224 -1
  46. data/lib/openai/models/beta/beta_response_configuration_update_item.rb +64 -3
  47. data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +64 -4
  48. data/lib/openai/models/beta/beta_response_input_file.rb +9 -9
  49. data/lib/openai/models/beta/beta_response_input_file_content.rb +9 -9
  50. data/lib/openai/models/beta/beta_response_input_image.rb +9 -9
  51. data/lib/openai/models/beta/beta_response_input_image_content.rb +9 -9
  52. data/lib/openai/models/beta/beta_response_input_item.rb +2 -3
  53. data/lib/openai/models/beta/beta_response_input_text.rb +9 -9
  54. data/lib/openai/models/beta/beta_response_input_text_content.rb +9 -9
  55. data/lib/openai/models/beta/beta_response_item.rb +11 -11
  56. data/lib/openai/models/beta/beta_response_output_item.rb +9 -9
  57. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +6 -6
  58. data/lib/openai/models/beta/beta_responses_client_event.rb +20 -1
  59. data/lib/openai/models/beta/beta_tool.rb +6 -6
  60. data/lib/openai/models/beta/response_compact_params.rb +6 -0
  61. data/lib/openai/models/beta/response_create_params.rb +6 -0
  62. data/lib/openai/models/chat/chat_completion_content_part.rb +9 -9
  63. data/lib/openai/models/chat/chat_completion_content_part_image.rb +9 -9
  64. data/lib/openai/models/chat/chat_completion_content_part_input_audio.rb +9 -9
  65. data/lib/openai/models/chat/chat_completion_content_part_text.rb +9 -9
  66. data/lib/openai/models/chat_model.rb +6 -0
  67. data/lib/openai/models/conversations/computer_screenshot_content.rb +9 -9
  68. data/lib/openai/models/conversations/conversation_item.rb +2 -2
  69. data/lib/openai/models/image_edit_params.rb +46 -25
  70. data/lib/openai/models/live/fork_server_event.rb +43 -3
  71. data/lib/openai/models/live/server_event.rb +43 -3
  72. data/lib/openai/models/live/sideband_client_event.rb +40 -1
  73. data/lib/openai/models/live/sideband_server_event.rb +43 -3
  74. data/lib/openai/models/realtime/audio_transcription.rb +15 -0
  75. data/lib/openai/models/realtime/conversation_item_added.rb +2 -2
  76. data/lib/openai/models/realtime/conversation_item_create_event.rb +2 -2
  77. data/lib/openai/models/realtime/conversation_item_created_event.rb +2 -2
  78. data/lib/openai/models/realtime/conversation_item_done.rb +2 -2
  79. data/lib/openai/models/realtime/realtime_response.rb +2 -2
  80. data/lib/openai/models/realtime/realtime_response_create_params.rb +2 -2
  81. data/lib/openai/models/realtime/realtime_server_event.rb +2 -2
  82. data/lib/openai/models/realtime/realtime_session.rb +18 -0
  83. data/lib/openai/models/realtime/realtime_session_create_request.rb +18 -0
  84. data/lib/openai/models/realtime/realtime_session_create_response.rb +18 -0
  85. data/lib/openai/models/realtime/response_output_item_added_event.rb +2 -2
  86. data/lib/openai/models/realtime/response_output_item_done_event.rb +2 -2
  87. data/lib/openai/models/responses/response.rb +221 -1
  88. data/lib/openai/models/responses/response_compact_params.rb +6 -0
  89. data/lib/openai/models/responses/response_configuration_update_item.rb +50 -3
  90. data/lib/openai/models/responses/response_configuration_update_item_param.rb +50 -4
  91. data/lib/openai/models/responses/response_input_file.rb +9 -9
  92. data/lib/openai/models/responses/response_input_file_content.rb +9 -9
  93. data/lib/openai/models/responses/response_input_image.rb +9 -9
  94. data/lib/openai/models/responses/response_input_image_content.rb +9 -9
  95. data/lib/openai/models/responses/response_input_item.rb +2 -3
  96. data/lib/openai/models/responses/response_input_text.rb +9 -9
  97. data/lib/openai/models/responses/response_input_text_content.rb +9 -9
  98. data/lib/openai/models/responses/response_item.rb +2 -2
  99. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +6 -6
  100. data/lib/openai/models/responses/responses_client_event.rb +14 -1
  101. data/lib/openai/models/responses/tool.rb +6 -6
  102. data/lib/openai/net_http_client.rb +6 -0
  103. data/lib/openai/providers/vertex.rb +0 -10
  104. data/lib/openai/resources/admin/organization/external_keys.rb +132 -0
  105. data/lib/openai/resources/admin/organization.rb +4 -0
  106. data/lib/openai/resources/audio/speech.rb +8 -0
  107. data/lib/openai/resources/audio/translations.rb +8 -0
  108. data/lib/openai/resources/beta/agents/sessions.rb +22 -6
  109. data/lib/openai/resources/beta/agents.rb +17 -2
  110. data/lib/openai/resources/images.rb +36 -18
  111. data/lib/openai/version.rb +1 -1
  112. data/lib/openai.rb +8 -0
  113. data/rbi/openai/helpers/live/websocket.rbi +1 -12
  114. data/rbi/openai/helpers/realtime/connection.rbi +5 -0
  115. data/rbi/openai/helpers/realtime/transports/async_websocket.rbi +5 -0
  116. data/rbi/openai/helpers/responses_websocket/connection.rbi +7 -2
  117. data/rbi/openai/helpers/structured_output.rbi +10 -0
  118. data/rbi/openai/internal/type/array_of.rbi +1 -1
  119. data/rbi/openai/internal/type/hash_of.rbi +1 -1
  120. data/rbi/openai/internal/type/union.rbi +5 -0
  121. data/rbi/openai/models/admin/organization/external_key.rbi +301 -0
  122. data/rbi/openai/models/admin/organization/external_key_create_params.rbi +532 -0
  123. data/rbi/openai/models/admin/organization/external_key_delete_params.rbi +57 -0
  124. data/rbi/openai/models/admin/organization/external_key_list_params.rbi +129 -0
  125. data/rbi/openai/models/admin/organization/external_key_retrieve_params.rbi +57 -0
  126. data/rbi/openai/models/admin/organization/external_key_validate_params.rbi +57 -0
  127. data/rbi/openai/models/admin/organization/external_key_validate_response.rbi +50 -0
  128. data/rbi/openai/models/beta/agent.rbi +103 -1
  129. data/rbi/openai/models/beta/agent_create_params.rbi +109 -0
  130. data/rbi/openai/models/beta/agent_session.rbi +136 -3
  131. data/rbi/openai/models/beta/agent_update_params.rbi +120 -0
  132. data/rbi/openai/models/beta/agents/session_create_params.rbi +153 -0
  133. data/rbi/openai/models/beta/agents/session_list_params.rbi +19 -0
  134. data/rbi/openai/models/beta/agents/session_update_params.rbi +94 -6
  135. data/rbi/openai/models/beta/beta_response.rbi +394 -0
  136. data/rbi/openai/models/beta/beta_response_configuration_update_item.rbi +113 -3
  137. data/rbi/openai/models/beta/beta_response_configuration_update_item_param.rbi +125 -4
  138. data/rbi/openai/models/beta/beta_response_input_file.rbi +9 -9
  139. data/rbi/openai/models/beta/beta_response_input_file_content.rbi +9 -9
  140. data/rbi/openai/models/beta/beta_response_input_image.rbi +9 -9
  141. data/rbi/openai/models/beta/beta_response_input_image_content.rbi +9 -9
  142. data/rbi/openai/models/beta/beta_response_input_text.rbi +9 -9
  143. data/rbi/openai/models/beta/beta_response_input_text_content.rbi +9 -9
  144. data/rbi/openai/models/beta/beta_response_item.rbi +9 -9
  145. data/rbi/openai/models/beta/beta_response_output_item.rbi +9 -9
  146. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +6 -6
  147. data/rbi/openai/models/beta/beta_responses_client_event.rbi +17 -0
  148. data/rbi/openai/models/beta/beta_tool.rbi +6 -6
  149. data/rbi/openai/models/chat/chat_completion_content_part.rbi +9 -9
  150. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +9 -9
  151. data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +9 -9
  152. data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +9 -9
  153. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +9 -9
  154. data/rbi/openai/models/decision_create_params.rbi +4 -1
  155. data/rbi/openai/models/image_edit_params.rbi +49 -24
  156. data/rbi/openai/models/live/fork_server_event.rbi +65 -1
  157. data/rbi/openai/models/live/server_event.rbi +65 -1
  158. data/rbi/openai/models/live/sideband_client_event.rbi +60 -0
  159. data/rbi/openai/models/live/sideband_server_event.rbi +65 -1
  160. data/rbi/openai/models/realtime/conversation_item_added.rbi +6 -3
  161. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +6 -3
  162. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +6 -3
  163. data/rbi/openai/models/realtime/conversation_item_done.rbi +6 -3
  164. data/rbi/openai/models/realtime/realtime_response.rbi +8 -4
  165. data/rbi/openai/models/realtime/realtime_response_create_params.rbi +8 -4
  166. data/rbi/openai/models/realtime/realtime_server_event.rbi +6 -3
  167. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +6 -3
  168. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +6 -3
  169. data/rbi/openai/models/responses/response.rbi +394 -0
  170. data/rbi/openai/models/responses/response_configuration_update_item.rbi +76 -3
  171. data/rbi/openai/models/responses/response_configuration_update_item_param.rbi +74 -4
  172. data/rbi/openai/models/responses/response_input_file.rbi +9 -9
  173. data/rbi/openai/models/responses/response_input_file_content.rbi +9 -9
  174. data/rbi/openai/models/responses/response_input_image.rbi +9 -9
  175. data/rbi/openai/models/responses/response_input_image_content.rbi +9 -9
  176. data/rbi/openai/models/responses/response_input_text.rbi +9 -9
  177. data/rbi/openai/models/responses/response_input_text_content.rbi +9 -9
  178. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +6 -6
  179. data/rbi/openai/models/responses/responses_client_event.rbi +17 -0
  180. data/rbi/openai/models/responses/tool.rbi +6 -6
  181. data/rbi/openai/net_http_client.rbi +5 -0
  182. data/rbi/openai/resources/admin/organization/external_keys.rbi +86 -0
  183. data/rbi/openai/resources/admin/organization.rbi +3 -0
  184. data/rbi/openai/resources/audio/speech.rbi +8 -0
  185. data/rbi/openai/resources/audio/translations.rbi +6 -0
  186. data/rbi/openai/resources/beta/agents/sessions.rbi +18 -2
  187. data/rbi/openai/resources/beta/agents.rbi +15 -0
  188. data/rbi/openai/resources/images.rbi +34 -16
  189. data/rbi/openai/resources/responses.rbi +2 -0
  190. data/realtime.md +6 -0
  191. data/responses-websocket.md +53 -0
  192. data/sig/openai/helpers/live/websocket.rbs +1 -9
  193. data/sig/openai/helpers/realtime/connection.rbs +3 -0
  194. data/sig/openai/helpers/realtime/transports/async_websocket.rbs +3 -0
  195. data/sig/openai/helpers/responses_websocket/connection.rbs +7 -1
  196. data/sig/openai/helpers/structured_output.rbs +9 -0
  197. data/sig/openai/internal/type/union.rbs +4 -0
  198. data/sig/openai/models/admin/organization/external_key.rbs +186 -0
  199. data/sig/openai/models/admin/organization/external_key_create_params.rbs +423 -0
  200. data/sig/openai/models/admin/organization/external_key_delete_params.rbs +27 -0
  201. data/sig/openai/models/admin/organization/external_key_list_params.rbs +81 -0
  202. data/sig/openai/models/admin/organization/external_key_retrieve_params.rbs +27 -0
  203. data/sig/openai/models/admin/organization/external_key_validate_params.rbs +27 -0
  204. data/sig/openai/models/admin/organization/external_key_validate_response.rbs +17 -0
  205. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +72 -2
  206. data/sig/openai/models/audio/speech_create_params.rbs +15 -2
  207. data/sig/openai/models/audio/transcription_create_params.rbs +30 -2
  208. data/sig/openai/models/audio/voice_create_params.rbs +47 -2
  209. data/sig/openai/models/beta/agent.rbs +54 -2
  210. data/sig/openai/models/beta/agent_create_params.rbs +54 -0
  211. data/sig/openai/models/beta/agent_session.rbs +82 -3
  212. data/sig/openai/models/beta/agent_update_params.rbs +64 -0
  213. data/sig/openai/models/beta/agents/session_create_params.rbs +91 -0
  214. data/sig/openai/models/beta/agents/session_list_params.rbs +20 -0
  215. data/sig/openai/models/beta/agents/session_update_params.rbs +48 -6
  216. data/sig/openai/models/beta/assistant_create_params.rbs +5 -2
  217. data/sig/openai/models/beta/beta_response.rbs +223 -0
  218. data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +58 -2
  219. data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +58 -2
  220. data/sig/openai/models/beta/beta_response_input_file.rbs +9 -9
  221. data/sig/openai/models/beta/beta_response_input_file_content.rbs +6 -6
  222. data/sig/openai/models/beta/beta_response_input_image.rbs +9 -9
  223. data/sig/openai/models/beta/beta_response_input_image_content.rbs +6 -6
  224. data/sig/openai/models/beta/beta_response_input_text.rbs +9 -9
  225. data/sig/openai/models/beta/beta_response_input_text_content.rbs +6 -6
  226. data/sig/openai/models/beta/beta_response_item.rbs +9 -9
  227. data/sig/openai/models/beta/beta_response_output_item.rbs +9 -9
  228. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +4 -4
  229. data/sig/openai/models/beta/beta_responses_client_event.rbs +17 -0
  230. data/sig/openai/models/beta/beta_tool.rbs +4 -4
  231. data/sig/openai/models/beta/response_create_params.rbs +5 -2
  232. data/sig/openai/models/beta/responses/input_token_count_params.rbs +10 -2
  233. data/sig/openai/models/beta/thread_create_and_run_params.rbs +11 -5
  234. data/sig/openai/models/beta/thread_create_params.rbs +11 -5
  235. data/sig/openai/models/beta/threads/message_create_params.rbs +6 -3
  236. data/sig/openai/models/beta/threads/run_create_params.rbs +6 -3
  237. data/sig/openai/models/chat/chat_completion_content_part.rbs +9 -9
  238. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +9 -9
  239. data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +9 -9
  240. data/sig/openai/models/chat/chat_completion_content_part_text.rbs +9 -9
  241. data/sig/openai/models/conversations/computer_screenshot_content.rbs +9 -9
  242. data/sig/openai/models/decision_create_params.rbs +27 -2
  243. data/sig/openai/models/eval_create_params.rbs +25 -4
  244. data/sig/openai/models/evals/run_create_params.rbs +52 -8
  245. data/sig/openai/models/image_edit_params.rbs +47 -16
  246. data/sig/openai/models/live/fork_server_event.rbs +39 -0
  247. data/sig/openai/models/live/server_event.rbs +39 -0
  248. data/sig/openai/models/live/session_accept_params.rbs +39 -2
  249. data/sig/openai/models/live/sideband_client_event.rbs +32 -0
  250. data/sig/openai/models/live/sideband_server_event.rbs +39 -0
  251. data/sig/openai/models/realtime/conversation_item.rbs +1 -0
  252. data/sig/openai/models/responses/input_token_count_params.rbs +10 -2
  253. data/sig/openai/models/responses/response.rbs +223 -0
  254. data/sig/openai/models/responses/response_configuration_update_item.rbs +45 -2
  255. data/sig/openai/models/responses/response_configuration_update_item_param.rbs +45 -2
  256. data/sig/openai/models/responses/response_create_params.rbs +5 -2
  257. data/sig/openai/models/responses/response_input_file.rbs +9 -9
  258. data/sig/openai/models/responses/response_input_file_content.rbs +6 -6
  259. data/sig/openai/models/responses/response_input_image.rbs +9 -9
  260. data/sig/openai/models/responses/response_input_image_content.rbs +6 -6
  261. data/sig/openai/models/responses/response_input_text.rbs +9 -9
  262. data/sig/openai/models/responses/response_input_text_content.rbs +6 -6
  263. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +4 -4
  264. data/sig/openai/models/responses/responses_client_event.rbs +17 -0
  265. data/sig/openai/models/responses/tool.rbs +4 -4
  266. data/sig/openai/models/video_edit_params.rbs +11 -2
  267. data/sig/openai/models/video_extend_params.rbs +11 -2
  268. data/sig/openai/net_http_client.rbs +3 -0
  269. data/sig/openai/resources/admin/organization/external_keys.rbs +70 -0
  270. data/sig/openai/resources/admin/organization/external_storage.rbs +23 -1
  271. data/sig/openai/resources/admin/organization.rbs +2 -0
  272. data/sig/openai/resources/audio/speech.rbs +2 -1
  273. data/sig/openai/resources/audio/transcriptions.rbs +14 -2
  274. data/sig/openai/resources/audio/voices.rbs +14 -1
  275. data/sig/openai/resources/beta/agents/sessions.rbs +4 -0
  276. data/sig/openai/resources/beta/agents.rbs +4 -0
  277. data/sig/openai/resources/beta/responses/input_tokens.rbs +2 -1
  278. data/sig/openai/resources/beta/responses.rbs +4 -2
  279. data/sig/openai/resources/decisions.rbs +7 -1
  280. data/sig/openai/resources/images.rbs +2 -0
  281. data/sig/openai/resources/responses/input_tokens.rbs +2 -1
  282. data/sig/openai/resources/responses.rbs +5 -2
  283. data/sig/openai/resources/videos.rbs +2 -2
  284. metadata +25 -1
@@ -0,0 +1,311 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ # @see OpenAI::Resources::Admin::Organization::ExternalKeys#create
8
+ class ExternalKeyCreateParams < OpenAI::Internal::Type::BaseModel
9
+ extend OpenAI::Internal::Type::RequestParameters::Converter
10
+ include OpenAI::Internal::Type::RequestParameters
11
+
12
+ # @!attribute body
13
+ #
14
+ # @return [OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Aws, OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Gcp, OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Azure]
15
+ required :body, union: -> { OpenAI::Admin::Organization::ExternalKeyCreateParams::Body }
16
+
17
+ # @!method initialize(body:, request_options: {})
18
+ # @param body [OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Aws, OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Gcp, OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Azure]
19
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
20
+
21
+ module Body
22
+ extend OpenAI::Internal::Type::Union
23
+
24
+ discriminator :type
25
+
26
+ variant :aws, -> { OpenAI::Admin::Organization::ExternalKeyCreateParams::Body::Aws }
27
+
28
+ variant :gcp, -> { OpenAI::Admin::Organization::ExternalKeyCreateParams::Body::Gcp }
29
+
30
+ variant :azure, -> { OpenAI::Admin::Organization::ExternalKeyCreateParams::Body::Azure }
31
+
32
+ class Aws < OpenAI::Internal::Type::BaseModel
33
+ # @!attribute external_id
34
+ # The ExternalID that OpenAI will pass in the AssumeRole call for the customer's
35
+ # AWS account. This must be the OpenAI organization ID or an API project ID that
36
+ # belongs to the organization.
37
+ #
38
+ # @return [String]
39
+ required :external_id, String
40
+
41
+ # @!attribute kms_arn
42
+ # The Key Management System ARN for the master key you manage
43
+ #
44
+ # @return [String]
45
+ required :kms_arn, String
46
+
47
+ # @!attribute name
48
+ # A friendly name to identify this config
49
+ #
50
+ # @return [String]
51
+ required :name, String
52
+
53
+ # @!attribute role_arn
54
+ # The Role ARN that OpenAI will assume to call your KMS
55
+ #
56
+ # @return [String]
57
+ required :role_arn, String
58
+
59
+ # @!attribute type
60
+ #
61
+ # @return [Symbol, :aws]
62
+ required :type, const: :aws
63
+
64
+ # @!attribute purpose
65
+ #
66
+ # @return [Symbol, OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Aws::Purpose, nil]
67
+ optional :purpose, enum: -> { OpenAI::Admin::Organization::ExternalKeyCreateParams::Body::Aws::Purpose }
68
+
69
+ # @!method initialize(external_id:, kms_arn:, name:, role_arn:, purpose: nil, type: :aws)
70
+ # @param external_id [String]
71
+ # The ExternalID that OpenAI will pass in the AssumeRole call for the customer's
72
+ # AWS account. This must be the OpenAI organization ID or an API project ID that
73
+ # belongs to the organization.
74
+ #
75
+ # @param kms_arn [String]
76
+ # The Key Management System ARN for the master key you manage
77
+ #
78
+ # @param name [String]
79
+ # A friendly name to identify this config
80
+ #
81
+ # @param role_arn [String]
82
+ # The Role ARN that OpenAI will assume to call your KMS
83
+ #
84
+ # @param purpose [Symbol, OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Aws::Purpose]
85
+ #
86
+ # @param type [Symbol, :aws]
87
+
88
+ # @see OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Aws#purpose
89
+ module Purpose
90
+ extend OpenAI::Internal::Type::Enum
91
+
92
+ EKM = :ekm
93
+ PSP_DECRYPTION = :psp_decryption
94
+
95
+ # @!method self.values
96
+ # @return [Array<Symbol>]
97
+ end
98
+ end
99
+
100
+ class Gcp < OpenAI::Internal::Type::BaseModel
101
+ # @!attribute audience
102
+ # The aud field in the identity token OpenAI will pass in the call to the
103
+ # customer's GCP STS. This must be the OpenAI organization ID or an API project ID
104
+ # that belongs to the organization.
105
+ #
106
+ # @return [String]
107
+ required :audience, String
108
+
109
+ # @!attribute kms_key_location
110
+ # The region where your Key Management System master key is located
111
+ #
112
+ # @return [String]
113
+ required :kms_key_location, String
114
+
115
+ # @!attribute kms_key_name
116
+ # The name of the Key Management System master key you manage
117
+ #
118
+ # @return [String]
119
+ required :kms_key_name, String
120
+
121
+ # @!attribute kms_key_ring_name
122
+ # The Key Management System key ring for the master key you manage
123
+ #
124
+ # @return [String]
125
+ required :kms_key_ring_name, String
126
+
127
+ # @!attribute kms_project_id
128
+ # The string GCP project name where your KMS resides
129
+ #
130
+ # @return [String]
131
+ required :kms_project_id, String
132
+
133
+ # @!attribute name
134
+ # A friendly name to identify this config
135
+ #
136
+ # @return [String]
137
+ required :name, String
138
+
139
+ # @!attribute type
140
+ #
141
+ # @return [Symbol, :gcp]
142
+ required :type, const: :gcp
143
+
144
+ # @!attribute workload_identity_pool_id
145
+ # The pool containing the Workload Identity provider that you registered for
146
+ # OpenAI
147
+ #
148
+ # @return [String]
149
+ required :workload_identity_pool_id, String
150
+
151
+ # @!attribute workload_identity_project_number
152
+ # The numeric GCP project number where you registered OpenAI's workload identity
153
+ #
154
+ # @return [String]
155
+ required :workload_identity_project_number, String
156
+
157
+ # @!attribute workload_identity_provider_id
158
+ # The Workload Identity provider that you registered for OpenAI
159
+ #
160
+ # @return [String]
161
+ required :workload_identity_provider_id, String
162
+
163
+ # @!attribute kms_key_version
164
+ # An exact CryptoKeyVersion number. Required for PSP decryption; not accepted for
165
+ # EKM.
166
+ #
167
+ # @return [String, nil]
168
+ optional :kms_key_version, String
169
+
170
+ # @!attribute purpose
171
+ #
172
+ # @return [Symbol, OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Gcp::Purpose, nil]
173
+ optional :purpose, enum: -> { OpenAI::Admin::Organization::ExternalKeyCreateParams::Body::Gcp::Purpose }
174
+
175
+ # @!method initialize(audience:, kms_key_location:, kms_key_name:, kms_key_ring_name:, kms_project_id:, name:, workload_identity_pool_id:, workload_identity_project_number:, workload_identity_provider_id:, kms_key_version: nil, purpose: nil, type: :gcp)
176
+ # @param audience [String]
177
+ # The aud field in the identity token OpenAI will pass in the call to the
178
+ # customer's GCP STS. This must be the OpenAI organization ID or an API project ID
179
+ # that belongs to the organization.
180
+ #
181
+ # @param kms_key_location [String]
182
+ # The region where your Key Management System master key is located
183
+ #
184
+ # @param kms_key_name [String]
185
+ # The name of the Key Management System master key you manage
186
+ #
187
+ # @param kms_key_ring_name [String]
188
+ # The Key Management System key ring for the master key you manage
189
+ #
190
+ # @param kms_project_id [String]
191
+ # The string GCP project name where your KMS resides
192
+ #
193
+ # @param name [String]
194
+ # A friendly name to identify this config
195
+ #
196
+ # @param workload_identity_pool_id [String]
197
+ # The pool containing the Workload Identity provider that you registered for
198
+ # OpenAI
199
+ #
200
+ # @param workload_identity_project_number [String]
201
+ # The numeric GCP project number where you registered OpenAI's workload identity
202
+ #
203
+ # @param workload_identity_provider_id [String]
204
+ # The Workload Identity provider that you registered for OpenAI
205
+ #
206
+ # @param kms_key_version [String]
207
+ # An exact CryptoKeyVersion number. Required for PSP decryption; not accepted for
208
+ # EKM.
209
+ #
210
+ # @param purpose [Symbol, OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Gcp::Purpose]
211
+ #
212
+ # @param type [Symbol, :gcp]
213
+
214
+ # @see OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Gcp#purpose
215
+ module Purpose
216
+ extend OpenAI::Internal::Type::Enum
217
+
218
+ EKM = :ekm
219
+ PSP_DECRYPTION = :psp_decryption
220
+
221
+ # @!method self.values
222
+ # @return [Array<Symbol>]
223
+ end
224
+ end
225
+
226
+ class Azure < OpenAI::Internal::Type::BaseModel
227
+ # @!attribute key_name
228
+ # The name of the Azure Key Vault master key that you manage
229
+ #
230
+ # @return [String]
231
+ required :key_name, String
232
+
233
+ # @!attribute name
234
+ # A friendly name to identify this config
235
+ #
236
+ # @return [String]
237
+ required :name, String
238
+
239
+ # @!attribute tenant_id
240
+ # Your Azure tenant UUID
241
+ #
242
+ # @return [String]
243
+ required :tenant_id, String
244
+
245
+ # @!attribute type
246
+ #
247
+ # @return [Symbol, :azure]
248
+ required :type, const: :azure
249
+
250
+ # @!attribute vault_uri
251
+ # The URI of the Azure vault containing the master key you manage
252
+ #
253
+ # @return [String]
254
+ required :vault_uri, String
255
+
256
+ # @!attribute key_version
257
+ # An exact Azure Key Vault key version. Required for PSP decryption; not accepted
258
+ # for EKM.
259
+ #
260
+ # @return [String, nil]
261
+ optional :key_version, String
262
+
263
+ # @!attribute purpose
264
+ #
265
+ # @return [Symbol, OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Azure::Purpose, nil]
266
+ optional(
267
+ :purpose,
268
+ enum: -> { OpenAI::Admin::Organization::ExternalKeyCreateParams::Body::Azure::Purpose }
269
+ )
270
+
271
+ # @!method initialize(key_name:, name:, tenant_id:, vault_uri:, key_version: nil, purpose: nil, type: :azure)
272
+ # @param key_name [String]
273
+ # The name of the Azure Key Vault master key that you manage
274
+ #
275
+ # @param name [String]
276
+ # A friendly name to identify this config
277
+ #
278
+ # @param tenant_id [String]
279
+ # Your Azure tenant UUID
280
+ #
281
+ # @param vault_uri [String]
282
+ # The URI of the Azure vault containing the master key you manage
283
+ #
284
+ # @param key_version [String]
285
+ # An exact Azure Key Vault key version. Required for PSP decryption; not accepted
286
+ # for EKM.
287
+ #
288
+ # @param purpose [Symbol, OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Azure::Purpose]
289
+ #
290
+ # @param type [Symbol, :azure]
291
+
292
+ # @see OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Azure#purpose
293
+ module Purpose
294
+ extend OpenAI::Internal::Type::Enum
295
+
296
+ EKM = :ekm
297
+ PSP_DECRYPTION = :psp_decryption
298
+
299
+ # @!method self.values
300
+ # @return [Array<Symbol>]
301
+ end
302
+ end
303
+
304
+ # @!method self.variants
305
+ # @return [Array(OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Aws, OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Gcp, OpenAI::Models::Admin::Organization::ExternalKeyCreateParams::Body::Azure)]
306
+ end
307
+ end
308
+ end
309
+ end
310
+ end
311
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ # @see OpenAI::Resources::Admin::Organization::ExternalKeys#delete
8
+ class ExternalKeyDeleteParams < OpenAI::Internal::Type::BaseModel
9
+ extend OpenAI::Internal::Type::RequestParameters::Converter
10
+ include OpenAI::Internal::Type::RequestParameters
11
+
12
+ # @!attribute external_key_id
13
+ #
14
+ # @return [String]
15
+ required :external_key_id, String
16
+
17
+ # @!method initialize(external_key_id:, request_options: {})
18
+ # @param external_key_id [String]
19
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ # @see OpenAI::Resources::Admin::Organization::ExternalKeys#list
8
+ class ExternalKeyListParams < OpenAI::Internal::Type::BaseModel
9
+ extend OpenAI::Internal::Type::RequestParameters::Converter
10
+ include OpenAI::Internal::Type::RequestParameters
11
+
12
+ # @!attribute after
13
+ #
14
+ # @return [String, nil]
15
+ optional :after, String, nil?: true
16
+
17
+ # @!attribute limit
18
+ #
19
+ # @return [Integer, nil]
20
+ optional :limit, Integer
21
+
22
+ # @!attribute order
23
+ #
24
+ # @return [Symbol, OpenAI::Models::Admin::Organization::ExternalKeyListParams::Order, nil]
25
+ optional :order, enum: -> { OpenAI::Admin::Organization::ExternalKeyListParams::Order }
26
+
27
+ # @!attribute purpose
28
+ # Filter by key purpose. When omitted, returns keys of all purposes.
29
+ #
30
+ # @return [Symbol, OpenAI::Models::Admin::Organization::ExternalKeyListParams::Purpose, nil]
31
+ optional :purpose, enum: -> { OpenAI::Admin::Organization::ExternalKeyListParams::Purpose }
32
+
33
+ # @!method initialize(after: nil, limit: nil, order: nil, purpose: nil, request_options: {})
34
+ # @param after [String, nil]
35
+ #
36
+ # @param limit [Integer]
37
+ #
38
+ # @param order [Symbol, OpenAI::Models::Admin::Organization::ExternalKeyListParams::Order]
39
+ #
40
+ # @param purpose [Symbol, OpenAI::Models::Admin::Organization::ExternalKeyListParams::Purpose]
41
+ # Filter by key purpose. When omitted, returns keys of all purposes.
42
+ #
43
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
44
+
45
+ module Order
46
+ extend OpenAI::Internal::Type::Enum
47
+
48
+ ASC = :asc
49
+ DESC = :desc
50
+
51
+ # @!method self.values
52
+ # @return [Array<Symbol>]
53
+ end
54
+
55
+ # Filter by key purpose. When omitted, returns keys of all purposes.
56
+ module Purpose
57
+ extend OpenAI::Internal::Type::Enum
58
+
59
+ EKM = :ekm
60
+ PSP_DECRYPTION = :psp_decryption
61
+
62
+ # @!method self.values
63
+ # @return [Array<Symbol>]
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ # @see OpenAI::Resources::Admin::Organization::ExternalKeys#retrieve
8
+ class ExternalKeyRetrieveParams < OpenAI::Internal::Type::BaseModel
9
+ extend OpenAI::Internal::Type::RequestParameters::Converter
10
+ include OpenAI::Internal::Type::RequestParameters
11
+
12
+ # @!attribute external_key_id
13
+ #
14
+ # @return [String]
15
+ required :external_key_id, String
16
+
17
+ # @!method initialize(external_key_id:, request_options: {})
18
+ # @param external_key_id [String]
19
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ # @see OpenAI::Resources::Admin::Organization::ExternalKeys#validate
8
+ class ExternalKeyValidateParams < OpenAI::Internal::Type::BaseModel
9
+ extend OpenAI::Internal::Type::RequestParameters::Converter
10
+ include OpenAI::Internal::Type::RequestParameters
11
+
12
+ # @!attribute external_key_id
13
+ #
14
+ # @return [String]
15
+ required :external_key_id, String
16
+
17
+ # @!method initialize(external_key_id:, request_options: {})
18
+ # @param external_key_id [String]
19
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ # @see OpenAI::Resources::Admin::Organization::ExternalKeys#validate
8
+ class ExternalKeyValidateResponse < OpenAI::Internal::Type::BaseModel
9
+ # @!attribute status
10
+ #
11
+ # @return [String]
12
+ required :status, String
13
+
14
+ # @!method initialize(status:)
15
+ # @param status [String]
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -6,9 +6,21 @@ module OpenAI
6
6
  module SpeechModel
7
7
  extend OpenAI::Internal::Type::Enum
8
8
 
9
+ # @deprecated Announced shutdown date: 2027-01-06. See
10
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
11
+ # replacements.
9
12
  TTS_1 = :"tts-1"
13
+ # @deprecated Announced shutdown date: 2027-01-06. See
14
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
15
+ # replacements.
10
16
  TTS_1_HD = :"tts-1-hd"
17
+ # @deprecated Announced shutdown date: 2027-01-06. See
18
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
19
+ # replacements.
11
20
  GPT_4O_MINI_TTS = :"gpt-4o-mini-tts"
21
+ # @deprecated Announced shutdown date: 2027-01-06. See
22
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
23
+ # replacements.
12
24
  GPT_4O_MINI_TTS_2025_12_15 = :"gpt-4o-mini-tts-2025-12-15"
13
25
 
14
26
  # @!method self.values
@@ -5,11 +5,26 @@ module OpenAI
5
5
  module AudioModel
6
6
  extend OpenAI::Internal::Type::Enum
7
7
 
8
+ # @deprecated Announced shutdown date: 2027-02-26. See
9
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
10
+ # replacements.
8
11
  WHISPER_1 = :"whisper-1"
9
12
  GPT_TRANSCRIBE = :"gpt-transcribe"
13
+ # @deprecated Announced shutdown date: 2027-02-26. See
14
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
15
+ # replacements.
10
16
  GPT_4O_TRANSCRIBE = :"gpt-4o-transcribe"
17
+ # @deprecated Announced shutdown date: 2027-02-26. See
18
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
19
+ # replacements.
11
20
  GPT_4O_MINI_TRANSCRIBE = :"gpt-4o-mini-transcribe"
21
+ # @deprecated Announced shutdown date: 2027-02-26. See
22
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
23
+ # replacements.
12
24
  GPT_4O_MINI_TRANSCRIBE_2025_12_15 = :"gpt-4o-mini-transcribe-2025-12-15"
25
+ # @deprecated Announced shutdown date: 2027-02-26. See
26
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
27
+ # replacements.
13
28
  GPT_4O_TRANSCRIBE_DIARIZE = :"gpt-4o-transcribe-diarize"
14
29
 
15
30
  # @!method self.values
@@ -84,7 +84,19 @@ module OpenAI
84
84
  # @return [Integer]
85
85
  required :updated_at, Integer
86
86
 
87
- # @!method initialize(id:, created_at:, instructions:, metadata:, model:, multi_agent:, name:, reasoning:, service_tier:, text:, tools:, updated_at:, object: :agent)
87
+ # @!attribute compaction
88
+ # The effective context compaction settings.
89
+ #
90
+ # @return [OpenAI::Models::Beta::Agent::Compaction, nil]
91
+ optional :compaction, -> { OpenAI::Beta::Agent::Compaction }
92
+
93
+ # @!attribute experimental
94
+ # The effective experimental settings for the agent.
95
+ #
96
+ # @return [OpenAI::Models::Beta::Agent::Experimental, nil]
97
+ optional :experimental, -> { OpenAI::Beta::Agent::Experimental }
98
+
99
+ # @!method initialize(id:, created_at:, instructions:, metadata:, model:, multi_agent:, name:, reasoning:, service_tier:, text:, tools:, updated_at:, compaction: nil, experimental: nil, object: :agent)
88
100
  # A reusable agent scoped to the caller's project.
89
101
  #
90
102
  # @param id [String]
@@ -124,6 +136,12 @@ module OpenAI
124
136
  # @param updated_at [Integer]
125
137
  # The Unix timestamp, in seconds, when the agent was last updated.
126
138
  #
139
+ # @param compaction [OpenAI::Models::Beta::Agent::Compaction]
140
+ # The effective context compaction settings.
141
+ #
142
+ # @param experimental [OpenAI::Models::Beta::Agent::Experimental]
143
+ # The effective experimental settings for the agent.
144
+ #
127
145
  # @param object [Symbol, :agent]
128
146
  # The object type. Always `agent`.
129
147
 
@@ -143,6 +161,36 @@ module OpenAI
143
161
  # @!method self.values
144
162
  # @return [Array<Symbol>]
145
163
  end
164
+
165
+ # @see OpenAI::Models::Beta::Agent#compaction
166
+ class Compaction < OpenAI::Internal::Type::BaseModel
167
+ # @!attribute async
168
+ # Whether context is compacted in the background. Defaults to true.
169
+ #
170
+ # @return [Boolean]
171
+ required :async, OpenAI::Internal::Type::Boolean
172
+
173
+ # @!method initialize(async:)
174
+ # The effective context compaction settings.
175
+ #
176
+ # @param async [Boolean]
177
+ # Whether context is compacted in the background. Defaults to true.
178
+ end
179
+
180
+ # @see OpenAI::Models::Beta::Agent#experimental
181
+ class Experimental < OpenAI::Internal::Type::BaseModel
182
+ # @!attribute time_awareness
183
+ # Whether the model receives periodic current-time reminders.
184
+ #
185
+ # @return [Boolean]
186
+ required :time_awareness, OpenAI::Internal::Type::Boolean
187
+
188
+ # @!method initialize(time_awareness:)
189
+ # The effective experimental settings for the agent.
190
+ #
191
+ # @param time_awareness [Boolean]
192
+ # Whether the model receives periodic current-time reminders.
193
+ end
146
194
  end
147
195
  end
148
196
  end
@@ -14,6 +14,18 @@ module OpenAI
14
14
  # @return [String]
15
15
  required :model, String
16
16
 
17
+ # @!attribute compaction
18
+ # Context compaction settings. Omission or null enables background compaction.
19
+ #
20
+ # @return [OpenAI::Models::Beta::AgentCreateParams::Compaction, nil]
21
+ optional :compaction, -> { OpenAI::Beta::AgentCreateParams::Compaction }, nil?: true
22
+
23
+ # @!attribute experimental
24
+ # Experimental agent settings. All experimental features default to disabled.
25
+ #
26
+ # @return [OpenAI::Models::Beta::AgentCreateParams::Experimental, nil]
27
+ optional :experimental, -> { OpenAI::Beta::AgentCreateParams::Experimental }
28
+
17
29
  # @!attribute instructions
18
30
  # Additional instructions appended to the agent's default base instructions. Omit
19
31
  # or set to null to add no custom instructions.
@@ -71,10 +83,16 @@ module OpenAI
71
83
  nil?: true
72
84
  )
73
85
 
74
- # @!method initialize(model:, instructions: nil, metadata: nil, multi_agent: nil, name: nil, reasoning: nil, service_tier: nil, text: nil, tools: nil, request_options: {})
86
+ # @!method initialize(model:, compaction: nil, experimental: nil, instructions: nil, metadata: nil, multi_agent: nil, name: nil, reasoning: nil, service_tier: nil, text: nil, tools: nil, request_options: {})
75
87
  # @param model [String]
76
88
  # The model to use for the agent. The requested model name is preserved.
77
89
  #
90
+ # @param compaction [OpenAI::Models::Beta::AgentCreateParams::Compaction, nil]
91
+ # Context compaction settings. Omission or null enables background compaction.
92
+ #
93
+ # @param experimental [OpenAI::Models::Beta::AgentCreateParams::Experimental]
94
+ # Experimental agent settings. All experimental features default to disabled.
95
+ #
78
96
  # @param instructions [String, nil]
79
97
  # Additional instructions appended to the agent's default base instructions. Omit
80
98
  # or set to null to add no custom instructions.
@@ -106,6 +124,38 @@ module OpenAI
106
124
  #
107
125
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
108
126
 
127
+ class Compaction < OpenAI::Internal::Type::BaseModel
128
+ # @!attribute async
129
+ # Whether to compact context in the background. Omission or null defaults to true.
130
+ # Set to false to use blocking compaction. Background compaction may increase
131
+ # token usage.
132
+ #
133
+ # @return [Boolean, nil]
134
+ optional :async, OpenAI::Internal::Type::Boolean, nil?: true
135
+
136
+ # @!method initialize(async: nil)
137
+ # Context compaction settings. Omission or null enables background compaction.
138
+ #
139
+ # @param async [Boolean, nil]
140
+ # Whether to compact context in the background. Omission or null defaults to true.
141
+ # Set to false to use blocking compaction. Background compaction may increase
142
+ # token usage.
143
+ end
144
+
145
+ class Experimental < OpenAI::Internal::Type::BaseModel
146
+ # @!attribute time_awareness
147
+ # Whether to give the model periodic current-time reminders. Defaults to false.
148
+ #
149
+ # @return [Boolean, nil]
150
+ optional :time_awareness, OpenAI::Internal::Type::Boolean
151
+
152
+ # @!method initialize(time_awareness: nil)
153
+ # Experimental agent settings. All experimental features default to disabled.
154
+ #
155
+ # @param time_awareness [Boolean]
156
+ # Whether to give the model periodic current-time reminders. Defaults to false.
157
+ end
158
+
109
159
  # The service tier used for model requests. Defaults to `auto`.
110
160
  module ServiceTier
111
161
  extend OpenAI::Internal::Type::Enum