openai 0.78.0 → 0.80.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 (239) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +99 -0
  3. data/README.md +241 -8
  4. data/SECURITY.md +6 -22
  5. data/azure.md +110 -0
  6. data/bedrock.md +197 -0
  7. data/examples/mtls_custom_http_client.rb +61 -0
  8. data/lib/openai/auth/workload_identity.rb +13 -2
  9. data/lib/openai/auth/workload_identity_auth.rb +2 -1
  10. data/lib/openai/client.rb +29 -6
  11. data/lib/openai/errors.rb +11 -1
  12. data/lib/openai/helpers/streaming/chat_completion_stream.rb +3 -3
  13. data/lib/openai/helpers/streaming/response_stream.rb +5 -6
  14. data/lib/openai/helpers/structured_output/base_model.rb +20 -19
  15. data/lib/openai/helpers/structured_output/json_schema_converter.rb +12 -5
  16. data/lib/openai/http_client.rb +99 -7
  17. data/lib/openai/internal/conversation_cursor_page.rb +5 -6
  18. data/lib/openai/internal/cursor_page.rb +3 -3
  19. data/lib/openai/internal/logging.rb +419 -0
  20. data/lib/openai/internal/next_cursor_page.rb +5 -6
  21. data/lib/openai/internal/page.rb +2 -2
  22. data/lib/openai/internal/provider.rb +7 -1
  23. data/lib/openai/internal/read_io_adapter.rb +42 -18
  24. data/lib/openai/internal/stream.rb +2 -2
  25. data/lib/openai/internal/transport/base_client.rb +137 -37
  26. data/lib/openai/internal/type/array_of.rb +6 -4
  27. data/lib/openai/internal/type/base_model.rb +39 -1
  28. data/lib/openai/internal/type/base_page.rb +19 -2
  29. data/lib/openai/internal/type/base_stream.rb +39 -7
  30. data/lib/openai/internal/type/hash_of.rb +3 -3
  31. data/lib/openai/internal/util.rb +52 -27
  32. data/lib/openai/models/admin/organization/audit_log_list_params.rb +3 -1
  33. data/lib/openai/models/admin/organization/audit_log_list_response.rb +33 -11
  34. data/lib/openai/models/admin/organization/groups/role_list_response.rb +5 -1
  35. data/lib/openai/models/admin/organization/groups/role_retrieve_response.rb +5 -1
  36. data/lib/openai/models/admin/organization/projects/groups/role_list_response.rb +6 -1
  37. data/lib/openai/models/admin/organization/projects/groups/role_retrieve_response.rb +6 -1
  38. data/lib/openai/models/admin/organization/projects/service_account_create_response.rb +3 -1
  39. data/lib/openai/models/admin/organization/projects/users/role_list_response.rb +6 -1
  40. data/lib/openai/models/admin/organization/projects/users/role_retrieve_response.rb +6 -1
  41. data/lib/openai/models/admin/organization/users/role_list_response.rb +5 -1
  42. data/lib/openai/models/admin/organization/users/role_retrieve_response.rb +5 -1
  43. data/lib/openai/models/all_models.rb +5 -0
  44. data/lib/openai/models/audio/transcription_create_params.rb +7 -1
  45. data/lib/openai/models/audio/translation_create_params.rb +7 -1
  46. data/lib/openai/models/beta/beta_mcp_tool_call_error.rb +84 -0
  47. data/lib/openai/models/beta/beta_response.rb +27 -0
  48. data/lib/openai/models/beta/beta_response_input_item.rb +3 -3
  49. data/lib/openai/models/beta/beta_response_item.rb +3 -3
  50. data/lib/openai/models/beta/beta_response_output_item.rb +3 -3
  51. data/lib/openai/models/beta/beta_response_output_item_added_event.rb +5 -2
  52. data/lib/openai/models/beta/beta_response_output_text_annotation_added_event.rb +201 -4
  53. data/lib/openai/models/beta/beta_response_reasoning_item.rb +5 -0
  54. data/lib/openai/models/beta/beta_response_stream_event.rb +1 -1
  55. data/lib/openai/models/beta/beta_responses_client_event.rb +46 -3
  56. data/lib/openai/models/beta/beta_responses_server_event.rb +1143 -63
  57. data/lib/openai/models/beta/beta_web_search_tool.rb +11 -1
  58. data/lib/openai/models/beta/response_compact_params.rb +18 -0
  59. data/lib/openai/models/beta/response_create_params.rb +27 -0
  60. data/lib/openai/models/chat_model.rb +1 -0
  61. data/lib/openai/models/completion_usage.rb +26 -2
  62. data/lib/openai/models/containers/file_create_params.rb +4 -0
  63. data/lib/openai/models/content_provenance_check_create_params.rb +4 -0
  64. data/lib/openai/models/conversations/conversation_item.rb +3 -3
  65. data/lib/openai/models/file_create_params.rb +4 -0
  66. data/lib/openai/models/image_create_variation_params.rb +4 -0
  67. data/lib/openai/models/image_edit_params.rb +8 -0
  68. data/lib/openai/models/model.rb +9 -1
  69. data/lib/openai/models/responses/mcp_tool_call_error.rb +82 -0
  70. data/lib/openai/models/responses/response.rb +9 -0
  71. data/lib/openai/models/responses/response_compact_params.rb +18 -0
  72. data/lib/openai/models/responses/response_create_params.rb +9 -0
  73. data/lib/openai/models/responses/response_input_item.rb +3 -3
  74. data/lib/openai/models/responses/response_item.rb +3 -3
  75. data/lib/openai/models/responses/response_output_item.rb +3 -3
  76. data/lib/openai/models/responses/response_output_item_added_event.rb +5 -2
  77. data/lib/openai/models/responses/response_output_text_annotation_added_event.rb +201 -4
  78. data/lib/openai/models/responses/response_reasoning_item.rb +5 -0
  79. data/lib/openai/models/responses/response_stream_event.rb +1 -1
  80. data/lib/openai/models/responses/responses_client_event.rb +22 -1
  81. data/lib/openai/models/responses/responses_server_event.rb +1107 -56
  82. data/lib/openai/models/responses/web_search_tool.rb +11 -1
  83. data/lib/openai/models/responses_model.rb +5 -0
  84. data/lib/openai/models/skill_create_params.rb +4 -0
  85. data/lib/openai/models/skills/version_create_params.rb +4 -0
  86. data/lib/openai/models/uploads/part_create_params.rb +4 -0
  87. data/lib/openai/models/vector_store_search_response.rb +3 -1
  88. data/lib/openai/models/video_create_character_params.rb +4 -0
  89. data/lib/openai/models/video_create_params.rb +4 -0
  90. data/lib/openai/models/video_edit_params.rb +4 -0
  91. data/lib/openai/models/video_extend_params.rb +4 -0
  92. data/lib/openai/models.rb +9 -1
  93. data/lib/openai/net_http_client.rb +20 -6
  94. data/lib/openai/providers/azure.rb +216 -0
  95. data/lib/openai/providers/bedrock.rb +130 -17
  96. data/lib/openai/resources/admin/organization/projects/groups/roles.rb +1 -1
  97. data/lib/openai/resources/admin/organization/projects/groups.rb +1 -1
  98. data/lib/openai/resources/admin/organization/projects/users/roles.rb +1 -1
  99. data/lib/openai/resources/admin/organization/projects.rb +4 -2
  100. data/lib/openai/resources/audio/transcriptions.rb +8 -0
  101. data/lib/openai/resources/audio/translations.rb +4 -0
  102. data/lib/openai/resources/beta/responses.rb +1 -1
  103. data/lib/openai/resources/beta/threads/runs/steps.rb +2 -2
  104. data/lib/openai/resources/containers/files.rb +4 -0
  105. data/lib/openai/resources/content_provenance_checks.rb +4 -0
  106. data/lib/openai/resources/conversations/items.rb +1 -1
  107. data/lib/openai/resources/evals/runs/output_items.rb +1 -1
  108. data/lib/openai/resources/files.rb +5 -1
  109. data/lib/openai/resources/images.rb +12 -0
  110. data/lib/openai/resources/responses.rb +3 -2
  111. data/lib/openai/resources/skills/versions.rb +4 -0
  112. data/lib/openai/resources/skills.rb +4 -0
  113. data/lib/openai/resources/uploads/parts.rb +4 -0
  114. data/lib/openai/resources/vector_stores/file_batches.rb +1 -1
  115. data/lib/openai/resources/videos.rb +38 -0
  116. data/lib/openai/resources/webhooks.rb +18 -6
  117. data/lib/openai/version.rb +1 -1
  118. data/lib/openai.rb +111 -105
  119. data/rbi/openai/auth.rbi +4 -4
  120. data/rbi/openai/client.rbi +13 -3
  121. data/rbi/openai/errors.rbi +7 -0
  122. data/rbi/openai/helpers/streaming/events.rbi +12 -0
  123. data/rbi/openai/http_client.rbi +62 -2
  124. data/rbi/openai/internal/logging.rbi +192 -0
  125. data/rbi/openai/internal/provider.rbi +3 -0
  126. data/rbi/openai/internal/read_io_adapter.rbi +6 -1
  127. data/rbi/openai/internal/transport/base_client.rbi +61 -7
  128. data/rbi/openai/internal/type/base_model.rbi +24 -1
  129. data/rbi/openai/internal/type/base_page.rbi +13 -2
  130. data/rbi/openai/internal/type/base_stream.rbi +15 -4
  131. data/rbi/openai/internal/util.rbi +26 -2
  132. data/rbi/openai/models/admin/organization/audit_log_list_params.rbi +5 -0
  133. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +5 -0
  134. data/rbi/openai/models/all_models.rbi +25 -0
  135. data/rbi/openai/models/audio/transcription_create_params.rbi +14 -2
  136. data/rbi/openai/models/audio/translation_create_params.rbi +14 -2
  137. data/rbi/openai/models/beta/beta_mcp_tool_call_error.rbi +122 -0
  138. data/rbi/openai/models/beta/beta_response.rbi +47 -0
  139. data/rbi/openai/models/beta/beta_response_input_item.rbi +27 -3
  140. data/rbi/openai/models/beta/beta_response_item.rbi +27 -3
  141. data/rbi/openai/models/beta/beta_response_output_item.rbi +27 -3
  142. data/rbi/openai/models/beta/beta_response_output_item_added_event.rbi +8 -2
  143. data/rbi/openai/models/beta/beta_response_output_text_annotation_added_event.rbi +297 -5
  144. data/rbi/openai/models/beta/beta_response_reasoning_item.rbi +10 -0
  145. data/rbi/openai/models/beta/beta_response_stream_event.rbi +1 -1
  146. data/rbi/openai/models/beta/beta_responses_client_event.rbi +69 -1
  147. data/rbi/openai/models/beta/beta_responses_server_event.rbi +3945 -54
  148. data/rbi/openai/models/beta/beta_web_search_tool.rbi +15 -0
  149. data/rbi/openai/models/beta/response_compact_params.rbi +30 -0
  150. data/rbi/openai/models/beta/response_create_params.rbi +47 -0
  151. data/rbi/openai/models/chat_model.rbi +2 -0
  152. data/rbi/openai/models/completion_usage.rbi +39 -6
  153. data/rbi/openai/models/containers/file_create_params.rbi +8 -0
  154. data/rbi/openai/models/content_provenance_check_create_params.rbi +8 -0
  155. data/rbi/openai/models/conversations/conversation_item.rbi +12 -3
  156. data/rbi/openai/models/file_create_params.rbi +8 -0
  157. data/rbi/openai/models/image_create_variation_params.rbi +8 -0
  158. data/rbi/openai/models/image_edit_params.rbi +16 -0
  159. data/rbi/openai/models/model.rbi +14 -1
  160. data/rbi/openai/models/responses/mcp_tool_call_error.rbi +120 -0
  161. data/rbi/openai/models/responses/response.rbi +17 -0
  162. data/rbi/openai/models/responses/response_compact_params.rbi +30 -0
  163. data/rbi/openai/models/responses/response_create_params.rbi +17 -0
  164. data/rbi/openai/models/responses/response_input_item.rbi +27 -3
  165. data/rbi/openai/models/responses/response_item.rbi +27 -3
  166. data/rbi/openai/models/responses/response_output_item.rbi +27 -3
  167. data/rbi/openai/models/responses/response_output_item_added_event.rbi +8 -2
  168. data/rbi/openai/models/responses/response_output_text_annotation_added_event.rbi +297 -5
  169. data/rbi/openai/models/responses/response_reasoning_item.rbi +10 -0
  170. data/rbi/openai/models/responses/response_stream_event.rbi +1 -1
  171. data/rbi/openai/models/responses/responses_client_event.rbi +36 -0
  172. data/rbi/openai/models/responses/responses_server_event.rbi +3385 -53
  173. data/rbi/openai/models/responses/web_search_tool.rbi +15 -0
  174. data/rbi/openai/models/responses_model.rbi +25 -0
  175. data/rbi/openai/models/skill_create_params.rbi +8 -0
  176. data/rbi/openai/models/skills/version_create_params.rbi +8 -0
  177. data/rbi/openai/models/uploads/part_create_params.rbi +8 -0
  178. data/rbi/openai/models/video_create_character_params.rbi +8 -0
  179. data/rbi/openai/models/video_create_params.rbi +8 -0
  180. data/rbi/openai/models/video_edit_params.rbi +8 -0
  181. data/rbi/openai/models/video_extend_params.rbi +8 -0
  182. data/rbi/openai/net_http_client.rbi +2 -2
  183. data/rbi/openai/providers.rbi +11 -0
  184. data/rbi/openai/resources/audio/transcriptions.rbi +14 -2
  185. data/rbi/openai/resources/audio/translations.rbi +7 -1
  186. data/rbi/openai/resources/beta/responses.rbi +8 -0
  187. data/rbi/openai/resources/containers/files.rbi +4 -0
  188. data/rbi/openai/resources/content_provenance_checks.rbi +4 -0
  189. data/rbi/openai/resources/files.rbi +5 -1
  190. data/rbi/openai/resources/images.rbi +20 -0
  191. data/rbi/openai/resources/responses.rbi +8 -0
  192. data/rbi/openai/resources/skills/versions.rbi +4 -0
  193. data/rbi/openai/resources/skills.rbi +4 -0
  194. data/rbi/openai/resources/uploads/parts.rbi +4 -0
  195. data/rbi/openai/resources/videos.rbi +16 -0
  196. data/sig/openai/client.rbs +6 -2
  197. data/sig/openai/errors.rbs +5 -0
  198. data/sig/openai/http_client.rbs +37 -2
  199. data/sig/openai/internal/logging.rbs +88 -0
  200. data/sig/openai/internal/provider.rbs +3 -1
  201. data/sig/openai/internal/read_io_adapter.rbs +3 -1
  202. data/sig/openai/internal/transport/base_client.rbs +33 -5
  203. data/sig/openai/internal/type/base_model.rbs +13 -0
  204. data/sig/openai/internal/type/base_page.rbs +8 -1
  205. data/sig/openai/internal/type/base_stream.rbs +8 -2
  206. data/sig/openai/internal/util.rbs +12 -0
  207. data/sig/openai/models/admin/organization/audit_log_list_params.rbs +2 -0
  208. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +2 -0
  209. data/sig/openai/models/all_models.rbs +10 -0
  210. data/sig/openai/models/beta/beta_mcp_tool_call_error.rbs +75 -0
  211. data/sig/openai/models/beta/beta_response.rbs +14 -1
  212. data/sig/openai/models/beta/beta_response_input_item.rbs +4 -4
  213. data/sig/openai/models/beta/beta_response_item.rbs +4 -4
  214. data/sig/openai/models/beta/beta_response_output_item.rbs +4 -4
  215. data/sig/openai/models/beta/beta_response_output_text_annotation_added_event.rbs +149 -4
  216. data/sig/openai/models/beta/beta_responses_client_event.rbs +21 -1
  217. data/sig/openai/models/beta/beta_responses_server_event.rbs +2005 -53
  218. data/sig/openai/models/beta/beta_web_search_tool.rbs +7 -0
  219. data/sig/openai/models/beta/response_compact_params.rbs +12 -0
  220. data/sig/openai/models/beta/response_create_params.rbs +14 -1
  221. data/sig/openai/models/chat_model.rbs +2 -0
  222. data/sig/openai/models/completion_usage.rbs +27 -6
  223. data/sig/openai/models/conversations/conversation_item.rbs +4 -4
  224. data/sig/openai/models/model.rbs +12 -2
  225. data/sig/openai/models/responses/mcp_tool_call_error.rbs +73 -0
  226. data/sig/openai/models/responses/response.rbs +2 -1
  227. data/sig/openai/models/responses/response_compact_params.rbs +12 -0
  228. data/sig/openai/models/responses/response_create_params.rbs +2 -1
  229. data/sig/openai/models/responses/response_input_item.rbs +4 -4
  230. data/sig/openai/models/responses/response_item.rbs +4 -4
  231. data/sig/openai/models/responses/response_output_item.rbs +4 -4
  232. data/sig/openai/models/responses/response_output_text_annotation_added_event.rbs +149 -4
  233. data/sig/openai/models/responses/responses_client_event.rbs +9 -1
  234. data/sig/openai/models/responses/responses_server_event.rbs +1834 -53
  235. data/sig/openai/models/responses/web_search_tool.rbs +7 -0
  236. data/sig/openai/models/responses_model.rbs +10 -0
  237. data/sig/openai/net_http_client.rbs +2 -2
  238. data/sig/openai/providers.rbs +7 -0
  239. metadata +30 -1
@@ -6,6 +6,7 @@ module OpenAI
6
6
  type beta_web_search_tool =
7
7
  {
8
8
  type: OpenAI::Models::Beta::BetaWebSearchTool::type_,
9
+ external_web_access: bool,
9
10
  filters: OpenAI::Beta::BetaWebSearchTool::Filters?,
10
11
  search_context_size: OpenAI::Models::Beta::BetaWebSearchTool::search_context_size,
11
12
  user_location: OpenAI::Beta::BetaWebSearchTool::UserLocation?
@@ -14,6 +15,10 @@ module OpenAI
14
15
  class BetaWebSearchTool < OpenAI::Internal::Type::BaseModel
15
16
  attr_accessor type: OpenAI::Models::Beta::BetaWebSearchTool::type_
16
17
 
18
+ attr_reader external_web_access: bool?
19
+
20
+ def external_web_access=: (bool) -> bool
21
+
17
22
  attr_accessor filters: OpenAI::Beta::BetaWebSearchTool::Filters?
18
23
 
19
24
  attr_reader search_context_size: OpenAI::Models::Beta::BetaWebSearchTool::search_context_size?
@@ -26,6 +31,7 @@ module OpenAI
26
31
 
27
32
  def initialize: (
28
33
  type: OpenAI::Models::Beta::BetaWebSearchTool::type_,
34
+ ?external_web_access: bool,
29
35
  ?filters: OpenAI::Beta::BetaWebSearchTool::Filters?,
30
36
  ?search_context_size: OpenAI::Models::Beta::BetaWebSearchTool::search_context_size,
31
37
  ?user_location: OpenAI::Beta::BetaWebSearchTool::UserLocation?
@@ -33,6 +39,7 @@ module OpenAI
33
39
 
34
40
  def to_hash: -> {
35
41
  type: OpenAI::Models::Beta::BetaWebSearchTool::type_,
42
+ external_web_access: bool,
36
43
  filters: OpenAI::Beta::BetaWebSearchTool::Filters?,
37
44
  search_context_size: OpenAI::Models::Beta::BetaWebSearchTool::search_context_size,
38
45
  user_location: OpenAI::Beta::BetaWebSearchTool::UserLocation?
@@ -72,6 +72,7 @@ module OpenAI
72
72
  | :"gpt-5.6-terra"
73
73
  | :"gpt-5.6-luna"
74
74
  | :"gpt-5.5"
75
+ | :"gpt-5.5-2026-04-23"
75
76
  | :"gpt-5.4"
76
77
  | :"gpt-5.4-mini"
77
78
  | :"gpt-5.4-nano"
@@ -160,10 +161,15 @@ module OpenAI
160
161
  | :"o4-mini-deep-research-2025-06-26"
161
162
  | :"computer-use-preview"
162
163
  | :"computer-use-preview-2025-03-11"
164
+ | :"gpt-5.5-pro"
165
+ | :"gpt-5.5-pro-2026-04-23"
163
166
  | :"gpt-5-codex"
164
167
  | :"gpt-5-pro"
165
168
  | :"gpt-5-pro-2025-10-06"
166
169
  | :"gpt-5.1-codex-max"
170
+ | :"gpt-daybreak-blue-latest"
171
+ | :"gpt-daybreak-red-latest"
172
+ | :"gpt-5.6-cyber"
167
173
  | String
168
174
 
169
175
  module Model
@@ -175,6 +181,7 @@ module OpenAI
175
181
  GPT_5_6_TERRA: :"gpt-5.6-terra"
176
182
  GPT_5_6_LUNA: :"gpt-5.6-luna"
177
183
  GPT_5_5: :"gpt-5.5"
184
+ GPT_5_5_2026_04_23: :"gpt-5.5-2026-04-23"
178
185
  GPT_5_4: :"gpt-5.4"
179
186
  GPT_5_4_MINI: :"gpt-5.4-mini"
180
187
  GPT_5_4_NANO: :"gpt-5.4-nano"
@@ -263,10 +270,15 @@ module OpenAI
263
270
  O4_MINI_DEEP_RESEARCH_2025_06_26: :"o4-mini-deep-research-2025-06-26"
264
271
  COMPUTER_USE_PREVIEW: :"computer-use-preview"
265
272
  COMPUTER_USE_PREVIEW_2025_03_11: :"computer-use-preview-2025-03-11"
273
+ GPT_5_5_PRO: :"gpt-5.5-pro"
274
+ GPT_5_5_PRO_2026_04_23: :"gpt-5.5-pro-2026-04-23"
266
275
  GPT_5_CODEX: :"gpt-5-codex"
267
276
  GPT_5_PRO: :"gpt-5-pro"
268
277
  GPT_5_PRO_2025_10_06: :"gpt-5-pro-2025-10-06"
269
278
  GPT_5_1_CODEX_MAX: :"gpt-5.1-codex-max"
279
+ GPT_DAYBREAK_BLUE_LATEST: :"gpt-daybreak-blue-latest"
280
+ GPT_DAYBREAK_RED_LATEST: :"gpt-daybreak-red-latest"
281
+ GPT_5_6_CYBER: :"gpt-5.6-cyber"
270
282
  end
271
283
 
272
284
  type input =
@@ -241,6 +241,7 @@ module OpenAI
241
241
  | :"gpt-5.6-terra"
242
242
  | :"gpt-5.6-luna"
243
243
  | :"gpt-5.5"
244
+ | :"gpt-5.5-2026-04-23"
244
245
  | :"gpt-5.4"
245
246
  | :"gpt-5.4-mini"
246
247
  | :"gpt-5.4-nano"
@@ -329,10 +330,15 @@ module OpenAI
329
330
  | :"o4-mini-deep-research-2025-06-26"
330
331
  | :"computer-use-preview"
331
332
  | :"computer-use-preview-2025-03-11"
333
+ | :"gpt-5.5-pro"
334
+ | :"gpt-5.5-pro-2026-04-23"
332
335
  | :"gpt-5-codex"
333
336
  | :"gpt-5-pro"
334
337
  | :"gpt-5-pro-2025-10-06"
335
338
  | :"gpt-5.1-codex-max"
339
+ | :"gpt-daybreak-blue-latest"
340
+ | :"gpt-daybreak-red-latest"
341
+ | :"gpt-5.6-cyber"
336
342
  | String
337
343
 
338
344
  module Model
@@ -344,6 +350,7 @@ module OpenAI
344
350
  GPT_5_6_TERRA: :"gpt-5.6-terra"
345
351
  GPT_5_6_LUNA: :"gpt-5.6-luna"
346
352
  GPT_5_5: :"gpt-5.5"
353
+ GPT_5_5_2026_04_23: :"gpt-5.5-2026-04-23"
347
354
  GPT_5_4: :"gpt-5.4"
348
355
  GPT_5_4_MINI: :"gpt-5.4-mini"
349
356
  GPT_5_4_NANO: :"gpt-5.4-nano"
@@ -432,10 +439,15 @@ module OpenAI
432
439
  O4_MINI_DEEP_RESEARCH_2025_06_26: :"o4-mini-deep-research-2025-06-26"
433
440
  COMPUTER_USE_PREVIEW: :"computer-use-preview"
434
441
  COMPUTER_USE_PREVIEW_2025_03_11: :"computer-use-preview-2025-03-11"
442
+ GPT_5_5_PRO: :"gpt-5.5-pro"
443
+ GPT_5_5_PRO_2026_04_23: :"gpt-5.5-pro-2026-04-23"
435
444
  GPT_5_CODEX: :"gpt-5-codex"
436
445
  GPT_5_PRO: :"gpt-5-pro"
437
446
  GPT_5_PRO_2025_10_06: :"gpt-5-pro-2025-10-06"
438
447
  GPT_5_1_CODEX_MAX: :"gpt-5.1-codex-max"
448
+ GPT_DAYBREAK_BLUE_LATEST: :"gpt-daybreak-blue-latest"
449
+ GPT_DAYBREAK_RED_LATEST: :"gpt-daybreak-red-latest"
450
+ GPT_5_6_CYBER: :"gpt-5.6-cyber"
439
451
  end
440
452
 
441
453
  type moderation =
@@ -723,7 +735,7 @@ module OpenAI
723
735
  end
724
736
 
725
737
  type service_tier =
726
- :auto | :default | :flex | :scale | :priority | :fast
738
+ :auto | :default | :flex | :scale | :priority | :fast | :ultrafast
727
739
 
728
740
  module ServiceTier
729
741
  extend OpenAI::Internal::Type::Enum
@@ -734,6 +746,7 @@ module OpenAI
734
746
  SCALE: :scale
735
747
  PRIORITY: :priority
736
748
  FAST: :fast
749
+ ULTRAFAST: :ultrafast
737
750
 
738
751
  def self?.values: -> ::Array[OpenAI::Models::Beta::ResponseCreateParams::service_tier]
739
752
  end
@@ -5,6 +5,7 @@ module OpenAI
5
5
  | :"gpt-5.6-terra"
6
6
  | :"gpt-5.6-luna"
7
7
  | :"gpt-5.5"
8
+ | :"gpt-5.5-2026-04-23"
8
9
  | :"gpt-5.4"
9
10
  | :"gpt-5.4-mini"
10
11
  | :"gpt-5.4-nano"
@@ -91,6 +92,7 @@ module OpenAI
91
92
  GPT_5_6_TERRA: :"gpt-5.6-terra"
92
93
  GPT_5_6_LUNA: :"gpt-5.6-luna"
93
94
  GPT_5_5: :"gpt-5.5"
95
+ GPT_5_5_2026_04_23: :"gpt-5.5-2026-04-23"
94
96
  GPT_5_4: :"gpt-5.4"
95
97
  GPT_5_4_MINI: :"gpt-5.4-mini"
96
98
  GPT_5_4_NANO: :"gpt-5.4-nano"
@@ -49,7 +49,8 @@ module OpenAI
49
49
  accepted_prediction_tokens: Integer,
50
50
  audio_tokens: Integer,
51
51
  reasoning_tokens: Integer,
52
- rejected_prediction_tokens: Integer
52
+ rejected_prediction_tokens: Integer,
53
+ text_tokens: Integer
53
54
  }
54
55
 
55
56
  class CompletionTokensDetails < OpenAI::Internal::Type::BaseModel
@@ -69,18 +70,24 @@ module OpenAI
69
70
 
70
71
  def rejected_prediction_tokens=: (Integer) -> Integer
71
72
 
73
+ attr_reader text_tokens: Integer?
74
+
75
+ def text_tokens=: (Integer) -> Integer
76
+
72
77
  def initialize: (
73
78
  ?accepted_prediction_tokens: Integer,
74
79
  ?audio_tokens: Integer,
75
80
  ?reasoning_tokens: Integer,
76
- ?rejected_prediction_tokens: Integer
81
+ ?rejected_prediction_tokens: Integer,
82
+ ?text_tokens: Integer
77
83
  ) -> void
78
84
 
79
85
  def to_hash: -> {
80
86
  accepted_prediction_tokens: Integer,
81
87
  audio_tokens: Integer,
82
88
  reasoning_tokens: Integer,
83
- rejected_prediction_tokens: Integer
89
+ rejected_prediction_tokens: Integer,
90
+ text_tokens: Integer
84
91
  }
85
92
  end
86
93
 
@@ -88,7 +95,9 @@ module OpenAI
88
95
  {
89
96
  audio_tokens: Integer,
90
97
  cache_write_tokens: Integer,
91
- cached_tokens: Integer
98
+ cached_tokens: Integer,
99
+ image_tokens: Integer,
100
+ text_tokens: Integer
92
101
  }
93
102
 
94
103
  class PromptTokensDetails < OpenAI::Internal::Type::BaseModel
@@ -104,16 +113,28 @@ module OpenAI
104
113
 
105
114
  def cached_tokens=: (Integer) -> Integer
106
115
 
116
+ attr_reader image_tokens: Integer?
117
+
118
+ def image_tokens=: (Integer) -> Integer
119
+
120
+ attr_reader text_tokens: Integer?
121
+
122
+ def text_tokens=: (Integer) -> Integer
123
+
107
124
  def initialize: (
108
125
  ?audio_tokens: Integer,
109
126
  ?cache_write_tokens: Integer,
110
- ?cached_tokens: Integer
127
+ ?cached_tokens: Integer,
128
+ ?image_tokens: Integer,
129
+ ?text_tokens: Integer
111
130
  ) -> void
112
131
 
113
132
  def to_hash: -> {
114
133
  audio_tokens: Integer,
115
134
  cache_write_tokens: Integer,
116
- cached_tokens: Integer
135
+ cached_tokens: Integer,
136
+ image_tokens: Integer,
137
+ text_tokens: Integer
117
138
  }
118
139
  end
119
140
  end
@@ -509,7 +509,7 @@ module OpenAI
509
509
  server_label: String,
510
510
  type: :mcp_call,
511
511
  approval_request_id: String?,
512
- error: String?,
512
+ error: OpenAI::Models::Responses::mcp_tool_call_error?,
513
513
  output: String?,
514
514
  status: OpenAI::Models::Conversations::ConversationItem::McpCall::status
515
515
  }
@@ -527,7 +527,7 @@ module OpenAI
527
527
 
528
528
  attr_accessor approval_request_id: String?
529
529
 
530
- attr_accessor error: String?
530
+ attr_accessor error: OpenAI::Models::Responses::mcp_tool_call_error?
531
531
 
532
532
  attr_accessor output: String?
533
533
 
@@ -543,7 +543,7 @@ module OpenAI
543
543
  name: String,
544
544
  server_label: String,
545
545
  ?approval_request_id: String?,
546
- ?error: String?,
546
+ ?error: OpenAI::Models::Responses::mcp_tool_call_error?,
547
547
  ?output: String?,
548
548
  ?status: OpenAI::Models::Conversations::ConversationItem::McpCall::status,
549
549
  ?type: :mcp_call
@@ -556,7 +556,7 @@ module OpenAI
556
556
  server_label: String,
557
557
  type: :mcp_call,
558
558
  approval_request_id: String?,
559
- error: String?,
559
+ error: OpenAI::Models::Responses::mcp_tool_call_error?,
560
560
  output: String?,
561
561
  status: OpenAI::Models::Conversations::ConversationItem::McpCall::status
562
562
  }
@@ -1,7 +1,13 @@
1
1
  module OpenAI
2
2
  module Models
3
3
  type model =
4
- { id: String, created: Integer, object: :model, owned_by: String }
4
+ {
5
+ id: String,
6
+ created: Integer,
7
+ object: :model,
8
+ owned_by: String,
9
+ shutdown_date: Date?
10
+ }
5
11
 
6
12
  class Model < OpenAI::Internal::Type::BaseModel
7
13
  attr_accessor id: String
@@ -12,10 +18,13 @@ module OpenAI
12
18
 
13
19
  attr_accessor owned_by: String
14
20
 
21
+ attr_accessor shutdown_date: Date?
22
+
15
23
  def initialize: (
16
24
  id: String,
17
25
  created: Integer,
18
26
  owned_by: String,
27
+ ?shutdown_date: Date?,
19
28
  ?object: :model
20
29
  ) -> void
21
30
 
@@ -23,7 +32,8 @@ module OpenAI
23
32
  id: String,
24
33
  created: Integer,
25
34
  object: :model,
26
- owned_by: String
35
+ owned_by: String,
36
+ shutdown_date: Date?
27
37
  }
28
38
  end
29
39
  end
@@ -0,0 +1,73 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type mcp_tool_call_error =
5
+ OpenAI::Responses::McpToolCallError::McpProtocolError
6
+ | OpenAI::Responses::McpToolCallError::McpToolExecutionError
7
+ | OpenAI::Responses::McpToolCallError::HTTPError
8
+
9
+ module McpToolCallError
10
+ extend OpenAI::Internal::Type::Union
11
+
12
+ type mcp_protocol_error =
13
+ { code: Integer, message: String, type: :mcp_protocol_error }
14
+
15
+ class McpProtocolError < OpenAI::Internal::Type::BaseModel
16
+ attr_accessor code: Integer
17
+
18
+ attr_accessor message: String
19
+
20
+ attr_accessor type: :mcp_protocol_error
21
+
22
+ def initialize: (
23
+ code: Integer,
24
+ message: String,
25
+ ?type: :mcp_protocol_error
26
+ ) -> void
27
+
28
+ def to_hash: -> {
29
+ code: Integer,
30
+ message: String,
31
+ type: :mcp_protocol_error
32
+ }
33
+ end
34
+
35
+ type mcp_tool_execution_error =
36
+ { content: top, type: :mcp_tool_execution_error }
37
+
38
+ class McpToolExecutionError < OpenAI::Internal::Type::BaseModel
39
+ attr_accessor content: top
40
+
41
+ attr_accessor type: :mcp_tool_execution_error
42
+
43
+ def initialize: (
44
+ content: top,
45
+ ?type: :mcp_tool_execution_error
46
+ ) -> void
47
+
48
+ def to_hash: -> { content: top, type: :mcp_tool_execution_error }
49
+ end
50
+
51
+ type http_error = { code: Integer, message: String, type: :http_error }
52
+
53
+ class HTTPError < OpenAI::Internal::Type::BaseModel
54
+ attr_accessor code: Integer
55
+
56
+ attr_accessor message: String
57
+
58
+ attr_accessor type: :http_error
59
+
60
+ def initialize: (
61
+ code: Integer,
62
+ message: String,
63
+ ?type: :http_error
64
+ ) -> void
65
+
66
+ def to_hash: -> { code: Integer, message: String, type: :http_error }
67
+ end
68
+
69
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::mcp_tool_call_error]
70
+ end
71
+ end
72
+ end
73
+ end
@@ -520,7 +520,7 @@ module OpenAI
520
520
  end
521
521
 
522
522
  type service_tier =
523
- :auto | :default | :flex | :scale | :priority | :fast
523
+ :auto | :default | :flex | :scale | :priority | :fast | :ultrafast
524
524
 
525
525
  module ServiceTier
526
526
  extend OpenAI::Internal::Type::Enum
@@ -531,6 +531,7 @@ module OpenAI
531
531
  SCALE: :scale
532
532
  PRIORITY: :priority
533
533
  FAST: :fast
534
+ ULTRAFAST: :ultrafast
534
535
 
535
536
  def self?.values: -> ::Array[OpenAI::Models::Responses::Response::service_tier]
536
537
  end
@@ -63,6 +63,7 @@ module OpenAI
63
63
  | :"gpt-5.6-terra"
64
64
  | :"gpt-5.6-luna"
65
65
  | :"gpt-5.5"
66
+ | :"gpt-5.5-2026-04-23"
66
67
  | :"gpt-5.4"
67
68
  | :"gpt-5.4-mini"
68
69
  | :"gpt-5.4-nano"
@@ -151,10 +152,15 @@ module OpenAI
151
152
  | :"o4-mini-deep-research-2025-06-26"
152
153
  | :"computer-use-preview"
153
154
  | :"computer-use-preview-2025-03-11"
155
+ | :"gpt-5.5-pro"
156
+ | :"gpt-5.5-pro-2026-04-23"
154
157
  | :"gpt-5-codex"
155
158
  | :"gpt-5-pro"
156
159
  | :"gpt-5-pro-2025-10-06"
157
160
  | :"gpt-5.1-codex-max"
161
+ | :"gpt-daybreak-blue-latest"
162
+ | :"gpt-daybreak-red-latest"
163
+ | :"gpt-5.6-cyber"
158
164
  | String
159
165
 
160
166
  module Model
@@ -166,6 +172,7 @@ module OpenAI
166
172
  GPT_5_6_TERRA: :"gpt-5.6-terra"
167
173
  GPT_5_6_LUNA: :"gpt-5.6-luna"
168
174
  GPT_5_5: :"gpt-5.5"
175
+ GPT_5_5_2026_04_23: :"gpt-5.5-2026-04-23"
169
176
  GPT_5_4: :"gpt-5.4"
170
177
  GPT_5_4_MINI: :"gpt-5.4-mini"
171
178
  GPT_5_4_NANO: :"gpt-5.4-nano"
@@ -254,10 +261,15 @@ module OpenAI
254
261
  O4_MINI_DEEP_RESEARCH_2025_06_26: :"o4-mini-deep-research-2025-06-26"
255
262
  COMPUTER_USE_PREVIEW: :"computer-use-preview"
256
263
  COMPUTER_USE_PREVIEW_2025_03_11: :"computer-use-preview-2025-03-11"
264
+ GPT_5_5_PRO: :"gpt-5.5-pro"
265
+ GPT_5_5_PRO_2026_04_23: :"gpt-5.5-pro-2026-04-23"
257
266
  GPT_5_CODEX: :"gpt-5-codex"
258
267
  GPT_5_PRO: :"gpt-5-pro"
259
268
  GPT_5_PRO_2025_10_06: :"gpt-5-pro-2025-10-06"
260
269
  GPT_5_1_CODEX_MAX: :"gpt-5.1-codex-max"
270
+ GPT_DAYBREAK_BLUE_LATEST: :"gpt-daybreak-blue-latest"
271
+ GPT_DAYBREAK_RED_LATEST: :"gpt-daybreak-red-latest"
272
+ GPT_5_6_CYBER: :"gpt-5.6-cyber"
261
273
  end
262
274
 
263
275
  type input =
@@ -386,7 +386,7 @@ module OpenAI
386
386
  end
387
387
 
388
388
  type service_tier =
389
- :auto | :default | :flex | :scale | :priority | :fast
389
+ :auto | :default | :flex | :scale | :priority | :fast | :ultrafast
390
390
 
391
391
  module ServiceTier
392
392
  extend OpenAI::Internal::Type::Enum
@@ -397,6 +397,7 @@ module OpenAI
397
397
  SCALE: :scale
398
398
  PRIORITY: :priority
399
399
  FAST: :fast
400
+ ULTRAFAST: :ultrafast
400
401
 
401
402
  def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseCreateParams::service_tier]
402
403
  end
@@ -1173,7 +1173,7 @@ module OpenAI
1173
1173
  server_label: String,
1174
1174
  type: :mcp_call,
1175
1175
  approval_request_id: String?,
1176
- error: String?,
1176
+ error: OpenAI::Models::Responses::mcp_tool_call_error?,
1177
1177
  output: String?,
1178
1178
  status: OpenAI::Models::Responses::ResponseInputItem::McpCall::status
1179
1179
  }
@@ -1191,7 +1191,7 @@ module OpenAI
1191
1191
 
1192
1192
  attr_accessor approval_request_id: String?
1193
1193
 
1194
- attr_accessor error: String?
1194
+ attr_accessor error: OpenAI::Models::Responses::mcp_tool_call_error?
1195
1195
 
1196
1196
  attr_accessor output: String?
1197
1197
 
@@ -1207,7 +1207,7 @@ module OpenAI
1207
1207
  name: String,
1208
1208
  server_label: String,
1209
1209
  ?approval_request_id: String?,
1210
- ?error: String?,
1210
+ ?error: OpenAI::Models::Responses::mcp_tool_call_error?,
1211
1211
  ?output: String?,
1212
1212
  ?status: OpenAI::Models::Responses::ResponseInputItem::McpCall::status,
1213
1213
  ?type: :mcp_call
@@ -1220,7 +1220,7 @@ module OpenAI
1220
1220
  server_label: String,
1221
1221
  type: :mcp_call,
1222
1222
  approval_request_id: String?,
1223
- error: String?,
1223
+ error: OpenAI::Models::Responses::mcp_tool_call_error?,
1224
1224
  output: String?,
1225
1225
  status: OpenAI::Models::Responses::ResponseInputItem::McpCall::status
1226
1226
  }
@@ -508,7 +508,7 @@ module OpenAI
508
508
  server_label: String,
509
509
  type: :mcp_call,
510
510
  approval_request_id: String?,
511
- error: String?,
511
+ error: OpenAI::Models::Responses::mcp_tool_call_error?,
512
512
  output: String?,
513
513
  status: OpenAI::Models::Responses::ResponseItem::McpCall::status
514
514
  }
@@ -526,7 +526,7 @@ module OpenAI
526
526
 
527
527
  attr_accessor approval_request_id: String?
528
528
 
529
- attr_accessor error: String?
529
+ attr_accessor error: OpenAI::Models::Responses::mcp_tool_call_error?
530
530
 
531
531
  attr_accessor output: String?
532
532
 
@@ -542,7 +542,7 @@ module OpenAI
542
542
  name: String,
543
543
  server_label: String,
544
544
  ?approval_request_id: String?,
545
- ?error: String?,
545
+ ?error: OpenAI::Models::Responses::mcp_tool_call_error?,
546
546
  ?output: String?,
547
547
  ?status: OpenAI::Models::Responses::ResponseItem::McpCall::status,
548
548
  ?type: :mcp_call
@@ -555,7 +555,7 @@ module OpenAI
555
555
  server_label: String,
556
556
  type: :mcp_call,
557
557
  approval_request_id: String?,
558
- error: String?,
558
+ error: OpenAI::Models::Responses::mcp_tool_call_error?,
559
559
  output: String?,
560
560
  status: OpenAI::Models::Responses::ResponseItem::McpCall::status
561
561
  }
@@ -364,7 +364,7 @@ module OpenAI
364
364
  server_label: String,
365
365
  type: :mcp_call,
366
366
  approval_request_id: String?,
367
- error: String?,
367
+ error: OpenAI::Models::Responses::mcp_tool_call_error?,
368
368
  output: String?,
369
369
  status: OpenAI::Models::Responses::ResponseOutputItem::McpCall::status
370
370
  }
@@ -382,7 +382,7 @@ module OpenAI
382
382
 
383
383
  attr_accessor approval_request_id: String?
384
384
 
385
- attr_accessor error: String?
385
+ attr_accessor error: OpenAI::Models::Responses::mcp_tool_call_error?
386
386
 
387
387
  attr_accessor output: String?
388
388
 
@@ -398,7 +398,7 @@ module OpenAI
398
398
  name: String,
399
399
  server_label: String,
400
400
  ?approval_request_id: String?,
401
- ?error: String?,
401
+ ?error: OpenAI::Models::Responses::mcp_tool_call_error?,
402
402
  ?output: String?,
403
403
  ?status: OpenAI::Models::Responses::ResponseOutputItem::McpCall::status,
404
404
  ?type: :mcp_call
@@ -411,7 +411,7 @@ module OpenAI
411
411
  server_label: String,
412
412
  type: :mcp_call,
413
413
  approval_request_id: String?,
414
- error: String?,
414
+ error: OpenAI::Models::Responses::mcp_tool_call_error?,
415
415
  output: String?,
416
416
  status: OpenAI::Models::Responses::ResponseOutputItem::McpCall::status
417
417
  }