openai 0.79.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 (106) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +1 -1
  4. data/bedrock.md +67 -2
  5. data/lib/openai/models/all_models.rb +2 -0
  6. data/lib/openai/models/beta/beta_mcp_tool_call_error.rb +84 -0
  7. data/lib/openai/models/beta/beta_response.rb +18 -0
  8. data/lib/openai/models/beta/beta_response_input_item.rb +3 -3
  9. data/lib/openai/models/beta/beta_response_item.rb +3 -3
  10. data/lib/openai/models/beta/beta_response_output_item.rb +3 -3
  11. data/lib/openai/models/beta/beta_response_output_item_added_event.rb +5 -2
  12. data/lib/openai/models/beta/beta_response_output_text_annotation_added_event.rb +201 -4
  13. data/lib/openai/models/beta/beta_response_reasoning_item.rb +5 -0
  14. data/lib/openai/models/beta/beta_responses_client_event.rb +18 -0
  15. data/lib/openai/models/beta/beta_responses_server_event.rb +126 -22
  16. data/lib/openai/models/beta/beta_web_search_tool.rb +11 -1
  17. data/lib/openai/models/beta/response_compact_params.rb +9 -0
  18. data/lib/openai/models/beta/response_create_params.rb +18 -0
  19. data/lib/openai/models/chat_model.rb +1 -0
  20. data/lib/openai/models/completion_usage.rb +26 -2
  21. data/lib/openai/models/conversations/conversation_item.rb +3 -3
  22. data/lib/openai/models/model.rb +9 -1
  23. data/lib/openai/models/responses/mcp_tool_call_error.rb +82 -0
  24. data/lib/openai/models/responses/response.rb +9 -0
  25. data/lib/openai/models/responses/response_compact_params.rb +9 -0
  26. data/lib/openai/models/responses/response_create_params.rb +9 -0
  27. data/lib/openai/models/responses/response_input_item.rb +3 -3
  28. data/lib/openai/models/responses/response_item.rb +3 -3
  29. data/lib/openai/models/responses/response_output_item.rb +3 -3
  30. data/lib/openai/models/responses/response_output_item_added_event.rb +5 -2
  31. data/lib/openai/models/responses/response_output_text_annotation_added_event.rb +201 -4
  32. data/lib/openai/models/responses/response_reasoning_item.rb +5 -0
  33. data/lib/openai/models/responses/responses_client_event.rb +9 -0
  34. data/lib/openai/models/responses/responses_server_event.rb +100 -22
  35. data/lib/openai/models/responses/web_search_tool.rb +11 -1
  36. data/lib/openai/models/responses_model.rb +2 -0
  37. data/lib/openai/providers/bedrock.rb +127 -16
  38. data/lib/openai/resources/files.rb +1 -1
  39. data/lib/openai/version.rb +1 -1
  40. data/lib/openai.rb +4 -2
  41. data/rbi/openai/models/all_models.rbi +10 -0
  42. data/rbi/openai/models/beta/beta_mcp_tool_call_error.rbi +122 -0
  43. data/rbi/openai/models/beta/beta_response.rbi +32 -0
  44. data/rbi/openai/models/beta/beta_response_input_item.rbi +27 -3
  45. data/rbi/openai/models/beta/beta_response_item.rbi +27 -3
  46. data/rbi/openai/models/beta/beta_response_output_item.rbi +27 -3
  47. data/rbi/openai/models/beta/beta_response_output_item_added_event.rbi +8 -2
  48. data/rbi/openai/models/beta/beta_response_output_text_annotation_added_event.rbi +297 -5
  49. data/rbi/openai/models/beta/beta_response_reasoning_item.rbi +10 -0
  50. data/rbi/openai/models/beta/beta_responses_client_event.rbi +32 -0
  51. data/rbi/openai/models/beta/beta_responses_server_event.rbi +221 -67
  52. data/rbi/openai/models/beta/beta_web_search_tool.rbi +15 -0
  53. data/rbi/openai/models/beta/response_compact_params.rbi +15 -0
  54. data/rbi/openai/models/beta/response_create_params.rbi +32 -0
  55. data/rbi/openai/models/chat_model.rbi +2 -0
  56. data/rbi/openai/models/completion_usage.rbi +39 -6
  57. data/rbi/openai/models/conversations/conversation_item.rbi +12 -3
  58. data/rbi/openai/models/model.rbi +14 -1
  59. data/rbi/openai/models/responses/mcp_tool_call_error.rbi +120 -0
  60. data/rbi/openai/models/responses/response.rbi +17 -0
  61. data/rbi/openai/models/responses/response_compact_params.rbi +15 -0
  62. data/rbi/openai/models/responses/response_create_params.rbi +17 -0
  63. data/rbi/openai/models/responses/response_input_item.rbi +27 -3
  64. data/rbi/openai/models/responses/response_item.rbi +27 -3
  65. data/rbi/openai/models/responses/response_output_item.rbi +27 -3
  66. data/rbi/openai/models/responses/response_output_item_added_event.rbi +8 -2
  67. data/rbi/openai/models/responses/response_output_text_annotation_added_event.rbi +297 -5
  68. data/rbi/openai/models/responses/response_reasoning_item.rbi +10 -0
  69. data/rbi/openai/models/responses/responses_client_event.rbi +17 -0
  70. data/rbi/openai/models/responses/responses_server_event.rbi +165 -62
  71. data/rbi/openai/models/responses/web_search_tool.rbi +15 -0
  72. data/rbi/openai/models/responses_model.rbi +10 -0
  73. data/rbi/openai/providers.rbi +2 -0
  74. data/rbi/openai/resources/beta/responses.rbi +8 -0
  75. data/rbi/openai/resources/files.rbi +1 -1
  76. data/rbi/openai/resources/responses.rbi +8 -0
  77. data/sig/openai/models/all_models.rbs +4 -0
  78. data/sig/openai/models/beta/beta_mcp_tool_call_error.rbs +75 -0
  79. data/sig/openai/models/beta/beta_response.rbs +8 -1
  80. data/sig/openai/models/beta/beta_response_input_item.rbs +4 -4
  81. data/sig/openai/models/beta/beta_response_item.rbs +4 -4
  82. data/sig/openai/models/beta/beta_response_output_item.rbs +4 -4
  83. data/sig/openai/models/beta/beta_response_output_text_annotation_added_event.rbs +149 -4
  84. data/sig/openai/models/beta/beta_responses_client_event.rbs +8 -1
  85. data/sig/openai/models/beta/beta_responses_server_event.rbs +99 -39
  86. data/sig/openai/models/beta/beta_web_search_tool.rbs +7 -0
  87. data/sig/openai/models/beta/response_compact_params.rbs +6 -0
  88. data/sig/openai/models/beta/response_create_params.rbs +8 -1
  89. data/sig/openai/models/chat_model.rbs +2 -0
  90. data/sig/openai/models/completion_usage.rbs +27 -6
  91. data/sig/openai/models/conversations/conversation_item.rbs +4 -4
  92. data/sig/openai/models/model.rbs +12 -2
  93. data/sig/openai/models/responses/mcp_tool_call_error.rbs +73 -0
  94. data/sig/openai/models/responses/response.rbs +2 -1
  95. data/sig/openai/models/responses/response_compact_params.rbs +6 -0
  96. data/sig/openai/models/responses/response_create_params.rbs +2 -1
  97. data/sig/openai/models/responses/response_input_item.rbs +4 -4
  98. data/sig/openai/models/responses/response_item.rbs +4 -4
  99. data/sig/openai/models/responses/response_output_item.rbs +4 -4
  100. data/sig/openai/models/responses/response_output_text_annotation_added_event.rbs +149 -4
  101. data/sig/openai/models/responses/responses_client_event.rbs +2 -1
  102. data/sig/openai/models/responses/responses_server_event.rbs +84 -36
  103. data/sig/openai/models/responses/web_search_tool.rbs +7 -0
  104. data/sig/openai/models/responses_model.rbs +4 -0
  105. data/sig/openai/providers.rbs +1 -0
  106. metadata +7 -1
@@ -1999,7 +1999,17 @@ module OpenAI
1999
1999
  attr_accessor :approval_request_id
2000
2000
 
2001
2001
  # The error from the tool call, if any.
2002
- sig { returns(T.nilable(String)) }
2002
+ sig do
2003
+ returns(
2004
+ T.nilable(
2005
+ T.any(
2006
+ OpenAI::Beta::BetaMcpToolCallError::McpProtocolError,
2007
+ OpenAI::Beta::BetaMcpToolCallError::McpToolExecutionError,
2008
+ OpenAI::Beta::BetaMcpToolCallError::HTTPError
2009
+ )
2010
+ )
2011
+ )
2012
+ end
2003
2013
  attr_accessor :error
2004
2014
 
2005
2015
  # The output from the tool call.
@@ -2037,7 +2047,14 @@ module OpenAI
2037
2047
  OpenAI::Beta::BetaResponseOutputItem::McpCall::Agent::OrHash
2038
2048
  ),
2039
2049
  approval_request_id: T.nilable(String),
2040
- error: T.nilable(String),
2050
+ error:
2051
+ T.nilable(
2052
+ T.any(
2053
+ OpenAI::Beta::BetaMcpToolCallError::McpProtocolError::OrHash,
2054
+ OpenAI::Beta::BetaMcpToolCallError::McpToolExecutionError::OrHash,
2055
+ OpenAI::Beta::BetaMcpToolCallError::HTTPError::OrHash
2056
+ )
2057
+ ),
2041
2058
  output: T.nilable(String),
2042
2059
  status:
2043
2060
  OpenAI::Beta::BetaResponseOutputItem::McpCall::Status::OrSymbol,
@@ -2084,7 +2101,14 @@ module OpenAI
2084
2101
  OpenAI::Beta::BetaResponseOutputItem::McpCall::Agent
2085
2102
  ),
2086
2103
  approval_request_id: T.nilable(String),
2087
- error: T.nilable(String),
2104
+ error:
2105
+ T.nilable(
2106
+ T.any(
2107
+ OpenAI::Beta::BetaMcpToolCallError::McpProtocolError,
2108
+ OpenAI::Beta::BetaMcpToolCallError::McpToolExecutionError,
2109
+ OpenAI::Beta::BetaMcpToolCallError::HTTPError
2110
+ )
2111
+ ),
2088
2112
  output: T.nilable(String),
2089
2113
  status:
2090
2114
  OpenAI::Beta::BetaResponseOutputItem::McpCall::Status::TaggedSymbol
@@ -14,7 +14,10 @@ module OpenAI
14
14
  )
15
15
  end
16
16
 
17
- # The output item that was added.
17
+ # The output item that was added. For reasoning items, `encrypted_content` may be
18
+ # incomplete while the item is in progress. Use the reasoning item from the
19
+ # corresponding `response.output_item.done` event when passing it as input to a
20
+ # subsequent request.
18
21
  sig { returns(OpenAI::Beta::BetaResponseOutputItem::Variants) }
19
22
  attr_accessor :item
20
23
 
@@ -95,7 +98,10 @@ module OpenAI
95
98
  ).returns(T.attached_class)
96
99
  end
97
100
  def self.new(
98
- # The output item that was added.
101
+ # The output item that was added. For reasoning items, `encrypted_content` may be
102
+ # incomplete while the item is in progress. Use the reasoning item from the
103
+ # corresponding `response.output_item.done` event when passing it as input to a
104
+ # subsequent request.
99
105
  item:,
100
106
  # The index of the output item that was added.
101
107
  output_index:,
@@ -15,8 +15,14 @@ module OpenAI
15
15
  )
16
16
  end
17
17
 
18
- # The annotation object being added. (See annotation schema for details.)
19
- sig { returns(T.anything) }
18
+ # An annotation that applies to a span of output text.
19
+ sig do
20
+ returns(
21
+ T.nilable(
22
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::Variants
23
+ )
24
+ )
25
+ end
20
26
  attr_accessor :annotation
21
27
 
22
28
  # The index of the annotation within the content part.
@@ -66,7 +72,15 @@ module OpenAI
66
72
  # Emitted when an annotation is added to output text content.
67
73
  sig do
68
74
  params(
69
- annotation: T.anything,
75
+ annotation:
76
+ T.nilable(
77
+ T.any(
78
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::FileCitation::OrHash,
79
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::URLCitation::OrHash,
80
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::ContainerFileCitation::OrHash,
81
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::FilePath::OrHash
82
+ )
83
+ ),
70
84
  annotation_index: Integer,
71
85
  content_index: Integer,
72
86
  item_id: String,
@@ -80,7 +94,7 @@ module OpenAI
80
94
  ).returns(T.attached_class)
81
95
  end
82
96
  def self.new(
83
- # The annotation object being added. (See annotation schema for details.)
97
+ # An annotation that applies to a span of output text.
84
98
  annotation:,
85
99
  # The index of the annotation within the content part.
86
100
  annotation_index:,
@@ -102,7 +116,10 @@ module OpenAI
102
116
  sig do
103
117
  override.returns(
104
118
  {
105
- annotation: T.anything,
119
+ annotation:
120
+ T.nilable(
121
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::Variants
122
+ ),
106
123
  annotation_index: Integer,
107
124
  content_index: Integer,
108
125
  item_id: String,
@@ -119,6 +136,281 @@ module OpenAI
119
136
  def to_hash
120
137
  end
121
138
 
139
+ # An annotation that applies to a span of output text.
140
+ module Annotation
141
+ extend OpenAI::Internal::Type::Union
142
+
143
+ Variants =
144
+ T.type_alias do
145
+ T.any(
146
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::FileCitation,
147
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::URLCitation,
148
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::ContainerFileCitation,
149
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::FilePath
150
+ )
151
+ end
152
+
153
+ class FileCitation < OpenAI::Internal::Type::BaseModel
154
+ OrHash =
155
+ T.type_alias do
156
+ T.any(
157
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::FileCitation,
158
+ OpenAI::Internal::AnyHash
159
+ )
160
+ end
161
+
162
+ # The ID of the file.
163
+ sig { returns(String) }
164
+ attr_accessor :file_id
165
+
166
+ # The filename of the file cited.
167
+ sig { returns(String) }
168
+ attr_accessor :filename
169
+
170
+ # The index of the file in the list of files.
171
+ sig { returns(Integer) }
172
+ attr_accessor :index
173
+
174
+ # The type of the file citation. Always `file_citation`.
175
+ sig { returns(Symbol) }
176
+ attr_accessor :type
177
+
178
+ # A citation to a file.
179
+ sig do
180
+ params(
181
+ file_id: String,
182
+ filename: String,
183
+ index: Integer,
184
+ type: Symbol
185
+ ).returns(T.attached_class)
186
+ end
187
+ def self.new(
188
+ # The ID of the file.
189
+ file_id:,
190
+ # The filename of the file cited.
191
+ filename:,
192
+ # The index of the file in the list of files.
193
+ index:,
194
+ # The type of the file citation. Always `file_citation`.
195
+ type: :file_citation
196
+ )
197
+ end
198
+
199
+ sig do
200
+ override.returns(
201
+ {
202
+ file_id: String,
203
+ filename: String,
204
+ index: Integer,
205
+ type: Symbol
206
+ }
207
+ )
208
+ end
209
+ def to_hash
210
+ end
211
+ end
212
+
213
+ class URLCitation < OpenAI::Internal::Type::BaseModel
214
+ OrHash =
215
+ T.type_alias do
216
+ T.any(
217
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::URLCitation,
218
+ OpenAI::Internal::AnyHash
219
+ )
220
+ end
221
+
222
+ # The index of the last character of the URL citation in the message.
223
+ sig { returns(Integer) }
224
+ attr_accessor :end_index
225
+
226
+ # The index of the first character of the URL citation in the message.
227
+ sig { returns(Integer) }
228
+ attr_accessor :start_index
229
+
230
+ # The title of the web resource.
231
+ sig { returns(String) }
232
+ attr_accessor :title
233
+
234
+ # The type of the URL citation. Always `url_citation`.
235
+ sig { returns(Symbol) }
236
+ attr_accessor :type
237
+
238
+ # The URL of the web resource.
239
+ sig { returns(String) }
240
+ attr_accessor :url
241
+
242
+ # A citation for a web resource used to generate a model response.
243
+ sig do
244
+ params(
245
+ end_index: Integer,
246
+ start_index: Integer,
247
+ title: String,
248
+ url: String,
249
+ type: Symbol
250
+ ).returns(T.attached_class)
251
+ end
252
+ def self.new(
253
+ # The index of the last character of the URL citation in the message.
254
+ end_index:,
255
+ # The index of the first character of the URL citation in the message.
256
+ start_index:,
257
+ # The title of the web resource.
258
+ title:,
259
+ # The URL of the web resource.
260
+ url:,
261
+ # The type of the URL citation. Always `url_citation`.
262
+ type: :url_citation
263
+ )
264
+ end
265
+
266
+ sig do
267
+ override.returns(
268
+ {
269
+ end_index: Integer,
270
+ start_index: Integer,
271
+ title: String,
272
+ type: Symbol,
273
+ url: String
274
+ }
275
+ )
276
+ end
277
+ def to_hash
278
+ end
279
+ end
280
+
281
+ class ContainerFileCitation < OpenAI::Internal::Type::BaseModel
282
+ OrHash =
283
+ T.type_alias do
284
+ T.any(
285
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::ContainerFileCitation,
286
+ OpenAI::Internal::AnyHash
287
+ )
288
+ end
289
+
290
+ # The ID of the container file.
291
+ sig { returns(String) }
292
+ attr_accessor :container_id
293
+
294
+ # The index of the last character of the container file citation in the message.
295
+ sig { returns(Integer) }
296
+ attr_accessor :end_index
297
+
298
+ # The ID of the file.
299
+ sig { returns(String) }
300
+ attr_accessor :file_id
301
+
302
+ # The filename of the container file cited.
303
+ sig { returns(String) }
304
+ attr_accessor :filename
305
+
306
+ # The index of the first character of the container file citation in the message.
307
+ sig { returns(Integer) }
308
+ attr_accessor :start_index
309
+
310
+ # The type of the container file citation. Always `container_file_citation`.
311
+ sig { returns(Symbol) }
312
+ attr_accessor :type
313
+
314
+ # A citation for a container file used to generate a model response.
315
+ sig do
316
+ params(
317
+ container_id: String,
318
+ end_index: Integer,
319
+ file_id: String,
320
+ filename: String,
321
+ start_index: Integer,
322
+ type: Symbol
323
+ ).returns(T.attached_class)
324
+ end
325
+ def self.new(
326
+ # The ID of the container file.
327
+ container_id:,
328
+ # The index of the last character of the container file citation in the message.
329
+ end_index:,
330
+ # The ID of the file.
331
+ file_id:,
332
+ # The filename of the container file cited.
333
+ filename:,
334
+ # The index of the first character of the container file citation in the message.
335
+ start_index:,
336
+ # The type of the container file citation. Always `container_file_citation`.
337
+ type: :container_file_citation
338
+ )
339
+ end
340
+
341
+ sig do
342
+ override.returns(
343
+ {
344
+ container_id: String,
345
+ end_index: Integer,
346
+ file_id: String,
347
+ filename: String,
348
+ start_index: Integer,
349
+ type: Symbol
350
+ }
351
+ )
352
+ end
353
+ def to_hash
354
+ end
355
+ end
356
+
357
+ class FilePath < OpenAI::Internal::Type::BaseModel
358
+ OrHash =
359
+ T.type_alias do
360
+ T.any(
361
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::FilePath,
362
+ OpenAI::Internal::AnyHash
363
+ )
364
+ end
365
+
366
+ # The ID of the file.
367
+ sig { returns(String) }
368
+ attr_accessor :file_id
369
+
370
+ # The index of the file in the list of files.
371
+ sig { returns(Integer) }
372
+ attr_accessor :index
373
+
374
+ # The type of the file path. Always `file_path`.
375
+ sig { returns(Symbol) }
376
+ attr_accessor :type
377
+
378
+ # A path to a file.
379
+ sig do
380
+ params(file_id: String, index: Integer, type: Symbol).returns(
381
+ T.attached_class
382
+ )
383
+ end
384
+ def self.new(
385
+ # The ID of the file.
386
+ file_id:,
387
+ # The index of the file in the list of files.
388
+ index:,
389
+ # The type of the file path. Always `file_path`.
390
+ type: :file_path
391
+ )
392
+ end
393
+
394
+ sig do
395
+ override.returns(
396
+ { file_id: String, index: Integer, type: Symbol }
397
+ )
398
+ end
399
+ def to_hash
400
+ end
401
+ end
402
+
403
+ sig do
404
+ override.returns(
405
+ T::Array[
406
+ OpenAI::Beta::BetaResponseOutputTextAnnotationAddedEvent::Annotation::Variants
407
+ ]
408
+ )
409
+ end
410
+ def self.variants
411
+ end
412
+ end
413
+
122
414
  class Agent < OpenAI::Internal::Type::BaseModel
123
415
  OrHash =
124
416
  T.type_alias do
@@ -63,6 +63,11 @@ module OpenAI
63
63
  # The encrypted content of the reasoning item. This is populated by default for
64
64
  # reasoning items returned by `POST /v1/responses` and WebSocket `response.create`
65
65
  # requests.
66
+ #
67
+ # When streaming, use the completed reasoning item and its `encrypted_content`
68
+ # from the `response.output_item.done` event in subsequent requests. The
69
+ # `encrypted_content` in `response.output_item.added` may be incomplete. This is
70
+ # especially important when `store` is `false` or when using Zero Data Retention.
66
71
  sig { returns(T.nilable(String)) }
67
72
  attr_accessor :encrypted_content
68
73
 
@@ -116,6 +121,11 @@ module OpenAI
116
121
  # The encrypted content of the reasoning item. This is populated by default for
117
122
  # reasoning items returned by `POST /v1/responses` and WebSocket `response.create`
118
123
  # requests.
124
+ #
125
+ # When streaming, use the completed reasoning item and its `encrypted_content`
126
+ # from the `response.output_item.done` event in subsequent requests. The
127
+ # `encrypted_content` in `response.output_item.added` may be incomplete. This is
128
+ # especially important when `store` is `false` or when using Zero Data Retention.
119
129
  encrypted_content: nil,
120
130
  # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
121
131
  # Populated when items are returned via API.
@@ -338,6 +338,10 @@ module OpenAI
338
338
  # Responses or Chat Completions. The response will show `service_tier=priority`
339
339
  # regardless of if you specify `service_tier=fast` or `priority` in your
340
340
  # request.
341
+ # - If set to 'ultrafast', then the request will be processed with the
342
+ # access-controlled Ultrafast Processing service tier. This tier is currently
343
+ # available for `gpt-5.6-sol`; a response served through it will show
344
+ # `service_tier=ultrafast`.
341
345
  # - When not set, the default behavior is 'auto'.
342
346
  #
343
347
  # When the `service_tier` parameter is set, the response body will include the
@@ -831,6 +835,10 @@ module OpenAI
831
835
  # Responses or Chat Completions. The response will show `service_tier=priority`
832
836
  # regardless of if you specify `service_tier=fast` or `priority` in your
833
837
  # request.
838
+ # - If set to 'ultrafast', then the request will be processed with the
839
+ # access-controlled Ultrafast Processing service tier. This tier is currently
840
+ # available for `gpt-5.6-sol`; a response served through it will show
841
+ # `service_tier=ultrafast`.
834
842
  # - When not set, the default behavior is 'auto'.
835
843
  #
836
844
  # When the `service_tier` parameter is set, the response body will include the
@@ -1180,6 +1188,11 @@ module OpenAI
1180
1188
  :"gpt-5.5",
1181
1189
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
1182
1190
  )
1191
+ GPT_5_5_2026_04_23 =
1192
+ T.let(
1193
+ :"gpt-5.5-2026-04-23",
1194
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
1195
+ )
1183
1196
  GPT_5_4 =
1184
1197
  T.let(
1185
1198
  :"gpt-5.4",
@@ -1620,6 +1633,16 @@ module OpenAI
1620
1633
  :"computer-use-preview-2025-03-11",
1621
1634
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
1622
1635
  )
1636
+ GPT_5_5_PRO =
1637
+ T.let(
1638
+ :"gpt-5.5-pro",
1639
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
1640
+ )
1641
+ GPT_5_5_PRO_2026_04_23 =
1642
+ T.let(
1643
+ :"gpt-5.5-pro-2026-04-23",
1644
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
1645
+ )
1623
1646
  GPT_5_CODEX =
1624
1647
  T.let(
1625
1648
  :"gpt-5-codex",
@@ -2679,6 +2702,10 @@ module OpenAI
2679
2702
  # Responses or Chat Completions. The response will show `service_tier=priority`
2680
2703
  # regardless of if you specify `service_tier=fast` or `priority` in your
2681
2704
  # request.
2705
+ # - If set to 'ultrafast', then the request will be processed with the
2706
+ # access-controlled Ultrafast Processing service tier. This tier is currently
2707
+ # available for `gpt-5.6-sol`; a response served through it will show
2708
+ # `service_tier=ultrafast`.
2682
2709
  # - When not set, the default behavior is 'auto'.
2683
2710
  #
2684
2711
  # When the `service_tier` parameter is set, the response body will include the
@@ -2727,6 +2754,11 @@ module OpenAI
2727
2754
  :fast,
2728
2755
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ServiceTier::TaggedSymbol
2729
2756
  )
2757
+ ULTRAFAST =
2758
+ T.let(
2759
+ :ultrafast,
2760
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ServiceTier::TaggedSymbol
2761
+ )
2730
2762
 
2731
2763
  sig do
2732
2764
  override.returns(