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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +99 -0
- data/README.md +241 -8
- data/SECURITY.md +6 -22
- data/azure.md +110 -0
- data/bedrock.md +197 -0
- data/examples/mtls_custom_http_client.rb +61 -0
- data/lib/openai/auth/workload_identity.rb +13 -2
- data/lib/openai/auth/workload_identity_auth.rb +2 -1
- data/lib/openai/client.rb +29 -6
- data/lib/openai/errors.rb +11 -1
- data/lib/openai/helpers/streaming/chat_completion_stream.rb +3 -3
- data/lib/openai/helpers/streaming/response_stream.rb +5 -6
- data/lib/openai/helpers/structured_output/base_model.rb +20 -19
- data/lib/openai/helpers/structured_output/json_schema_converter.rb +12 -5
- data/lib/openai/http_client.rb +99 -7
- data/lib/openai/internal/conversation_cursor_page.rb +5 -6
- data/lib/openai/internal/cursor_page.rb +3 -3
- data/lib/openai/internal/logging.rb +419 -0
- data/lib/openai/internal/next_cursor_page.rb +5 -6
- data/lib/openai/internal/page.rb +2 -2
- data/lib/openai/internal/provider.rb +7 -1
- data/lib/openai/internal/read_io_adapter.rb +42 -18
- data/lib/openai/internal/stream.rb +2 -2
- data/lib/openai/internal/transport/base_client.rb +137 -37
- data/lib/openai/internal/type/array_of.rb +6 -4
- data/lib/openai/internal/type/base_model.rb +39 -1
- data/lib/openai/internal/type/base_page.rb +19 -2
- data/lib/openai/internal/type/base_stream.rb +39 -7
- data/lib/openai/internal/type/hash_of.rb +3 -3
- data/lib/openai/internal/util.rb +52 -27
- data/lib/openai/models/admin/organization/audit_log_list_params.rb +3 -1
- data/lib/openai/models/admin/organization/audit_log_list_response.rb +33 -11
- data/lib/openai/models/admin/organization/groups/role_list_response.rb +5 -1
- data/lib/openai/models/admin/organization/groups/role_retrieve_response.rb +5 -1
- data/lib/openai/models/admin/organization/projects/groups/role_list_response.rb +6 -1
- data/lib/openai/models/admin/organization/projects/groups/role_retrieve_response.rb +6 -1
- data/lib/openai/models/admin/organization/projects/service_account_create_response.rb +3 -1
- data/lib/openai/models/admin/organization/projects/users/role_list_response.rb +6 -1
- data/lib/openai/models/admin/organization/projects/users/role_retrieve_response.rb +6 -1
- data/lib/openai/models/admin/organization/users/role_list_response.rb +5 -1
- data/lib/openai/models/admin/organization/users/role_retrieve_response.rb +5 -1
- data/lib/openai/models/all_models.rb +5 -0
- data/lib/openai/models/audio/transcription_create_params.rb +7 -1
- data/lib/openai/models/audio/translation_create_params.rb +7 -1
- data/lib/openai/models/beta/beta_mcp_tool_call_error.rb +84 -0
- data/lib/openai/models/beta/beta_response.rb +27 -0
- data/lib/openai/models/beta/beta_response_input_item.rb +3 -3
- data/lib/openai/models/beta/beta_response_item.rb +3 -3
- data/lib/openai/models/beta/beta_response_output_item.rb +3 -3
- data/lib/openai/models/beta/beta_response_output_item_added_event.rb +5 -2
- data/lib/openai/models/beta/beta_response_output_text_annotation_added_event.rb +201 -4
- data/lib/openai/models/beta/beta_response_reasoning_item.rb +5 -0
- data/lib/openai/models/beta/beta_response_stream_event.rb +1 -1
- data/lib/openai/models/beta/beta_responses_client_event.rb +46 -3
- data/lib/openai/models/beta/beta_responses_server_event.rb +1143 -63
- data/lib/openai/models/beta/beta_web_search_tool.rb +11 -1
- data/lib/openai/models/beta/response_compact_params.rb +18 -0
- data/lib/openai/models/beta/response_create_params.rb +27 -0
- data/lib/openai/models/chat_model.rb +1 -0
- data/lib/openai/models/completion_usage.rb +26 -2
- data/lib/openai/models/containers/file_create_params.rb +4 -0
- data/lib/openai/models/content_provenance_check_create_params.rb +4 -0
- data/lib/openai/models/conversations/conversation_item.rb +3 -3
- data/lib/openai/models/file_create_params.rb +4 -0
- data/lib/openai/models/image_create_variation_params.rb +4 -0
- data/lib/openai/models/image_edit_params.rb +8 -0
- data/lib/openai/models/model.rb +9 -1
- data/lib/openai/models/responses/mcp_tool_call_error.rb +82 -0
- data/lib/openai/models/responses/response.rb +9 -0
- data/lib/openai/models/responses/response_compact_params.rb +18 -0
- data/lib/openai/models/responses/response_create_params.rb +9 -0
- data/lib/openai/models/responses/response_input_item.rb +3 -3
- data/lib/openai/models/responses/response_item.rb +3 -3
- data/lib/openai/models/responses/response_output_item.rb +3 -3
- data/lib/openai/models/responses/response_output_item_added_event.rb +5 -2
- data/lib/openai/models/responses/response_output_text_annotation_added_event.rb +201 -4
- data/lib/openai/models/responses/response_reasoning_item.rb +5 -0
- data/lib/openai/models/responses/response_stream_event.rb +1 -1
- data/lib/openai/models/responses/responses_client_event.rb +22 -1
- data/lib/openai/models/responses/responses_server_event.rb +1107 -56
- data/lib/openai/models/responses/web_search_tool.rb +11 -1
- data/lib/openai/models/responses_model.rb +5 -0
- data/lib/openai/models/skill_create_params.rb +4 -0
- data/lib/openai/models/skills/version_create_params.rb +4 -0
- data/lib/openai/models/uploads/part_create_params.rb +4 -0
- data/lib/openai/models/vector_store_search_response.rb +3 -1
- data/lib/openai/models/video_create_character_params.rb +4 -0
- data/lib/openai/models/video_create_params.rb +4 -0
- data/lib/openai/models/video_edit_params.rb +4 -0
- data/lib/openai/models/video_extend_params.rb +4 -0
- data/lib/openai/models.rb +9 -1
- data/lib/openai/net_http_client.rb +20 -6
- data/lib/openai/providers/azure.rb +216 -0
- data/lib/openai/providers/bedrock.rb +130 -17
- data/lib/openai/resources/admin/organization/projects/groups/roles.rb +1 -1
- data/lib/openai/resources/admin/organization/projects/groups.rb +1 -1
- data/lib/openai/resources/admin/organization/projects/users/roles.rb +1 -1
- data/lib/openai/resources/admin/organization/projects.rb +4 -2
- data/lib/openai/resources/audio/transcriptions.rb +8 -0
- data/lib/openai/resources/audio/translations.rb +4 -0
- data/lib/openai/resources/beta/responses.rb +1 -1
- data/lib/openai/resources/beta/threads/runs/steps.rb +2 -2
- data/lib/openai/resources/containers/files.rb +4 -0
- data/lib/openai/resources/content_provenance_checks.rb +4 -0
- data/lib/openai/resources/conversations/items.rb +1 -1
- data/lib/openai/resources/evals/runs/output_items.rb +1 -1
- data/lib/openai/resources/files.rb +5 -1
- data/lib/openai/resources/images.rb +12 -0
- data/lib/openai/resources/responses.rb +3 -2
- data/lib/openai/resources/skills/versions.rb +4 -0
- data/lib/openai/resources/skills.rb +4 -0
- data/lib/openai/resources/uploads/parts.rb +4 -0
- data/lib/openai/resources/vector_stores/file_batches.rb +1 -1
- data/lib/openai/resources/videos.rb +38 -0
- data/lib/openai/resources/webhooks.rb +18 -6
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +111 -105
- data/rbi/openai/auth.rbi +4 -4
- data/rbi/openai/client.rbi +13 -3
- data/rbi/openai/errors.rbi +7 -0
- data/rbi/openai/helpers/streaming/events.rbi +12 -0
- data/rbi/openai/http_client.rbi +62 -2
- data/rbi/openai/internal/logging.rbi +192 -0
- data/rbi/openai/internal/provider.rbi +3 -0
- data/rbi/openai/internal/read_io_adapter.rbi +6 -1
- data/rbi/openai/internal/transport/base_client.rbi +61 -7
- data/rbi/openai/internal/type/base_model.rbi +24 -1
- data/rbi/openai/internal/type/base_page.rbi +13 -2
- data/rbi/openai/internal/type/base_stream.rbi +15 -4
- data/rbi/openai/internal/util.rbi +26 -2
- data/rbi/openai/models/admin/organization/audit_log_list_params.rbi +5 -0
- data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +5 -0
- data/rbi/openai/models/all_models.rbi +25 -0
- data/rbi/openai/models/audio/transcription_create_params.rbi +14 -2
- data/rbi/openai/models/audio/translation_create_params.rbi +14 -2
- data/rbi/openai/models/beta/beta_mcp_tool_call_error.rbi +122 -0
- data/rbi/openai/models/beta/beta_response.rbi +47 -0
- data/rbi/openai/models/beta/beta_response_input_item.rbi +27 -3
- data/rbi/openai/models/beta/beta_response_item.rbi +27 -3
- data/rbi/openai/models/beta/beta_response_output_item.rbi +27 -3
- data/rbi/openai/models/beta/beta_response_output_item_added_event.rbi +8 -2
- data/rbi/openai/models/beta/beta_response_output_text_annotation_added_event.rbi +297 -5
- data/rbi/openai/models/beta/beta_response_reasoning_item.rbi +10 -0
- data/rbi/openai/models/beta/beta_response_stream_event.rbi +1 -1
- data/rbi/openai/models/beta/beta_responses_client_event.rbi +69 -1
- data/rbi/openai/models/beta/beta_responses_server_event.rbi +3945 -54
- data/rbi/openai/models/beta/beta_web_search_tool.rbi +15 -0
- data/rbi/openai/models/beta/response_compact_params.rbi +30 -0
- data/rbi/openai/models/beta/response_create_params.rbi +47 -0
- data/rbi/openai/models/chat_model.rbi +2 -0
- data/rbi/openai/models/completion_usage.rbi +39 -6
- data/rbi/openai/models/containers/file_create_params.rbi +8 -0
- data/rbi/openai/models/content_provenance_check_create_params.rbi +8 -0
- data/rbi/openai/models/conversations/conversation_item.rbi +12 -3
- data/rbi/openai/models/file_create_params.rbi +8 -0
- data/rbi/openai/models/image_create_variation_params.rbi +8 -0
- data/rbi/openai/models/image_edit_params.rbi +16 -0
- data/rbi/openai/models/model.rbi +14 -1
- data/rbi/openai/models/responses/mcp_tool_call_error.rbi +120 -0
- data/rbi/openai/models/responses/response.rbi +17 -0
- data/rbi/openai/models/responses/response_compact_params.rbi +30 -0
- data/rbi/openai/models/responses/response_create_params.rbi +17 -0
- data/rbi/openai/models/responses/response_input_item.rbi +27 -3
- data/rbi/openai/models/responses/response_item.rbi +27 -3
- data/rbi/openai/models/responses/response_output_item.rbi +27 -3
- data/rbi/openai/models/responses/response_output_item_added_event.rbi +8 -2
- data/rbi/openai/models/responses/response_output_text_annotation_added_event.rbi +297 -5
- data/rbi/openai/models/responses/response_reasoning_item.rbi +10 -0
- data/rbi/openai/models/responses/response_stream_event.rbi +1 -1
- data/rbi/openai/models/responses/responses_client_event.rbi +36 -0
- data/rbi/openai/models/responses/responses_server_event.rbi +3385 -53
- data/rbi/openai/models/responses/web_search_tool.rbi +15 -0
- data/rbi/openai/models/responses_model.rbi +25 -0
- data/rbi/openai/models/skill_create_params.rbi +8 -0
- data/rbi/openai/models/skills/version_create_params.rbi +8 -0
- data/rbi/openai/models/uploads/part_create_params.rbi +8 -0
- data/rbi/openai/models/video_create_character_params.rbi +8 -0
- data/rbi/openai/models/video_create_params.rbi +8 -0
- data/rbi/openai/models/video_edit_params.rbi +8 -0
- data/rbi/openai/models/video_extend_params.rbi +8 -0
- data/rbi/openai/net_http_client.rbi +2 -2
- data/rbi/openai/providers.rbi +11 -0
- data/rbi/openai/resources/audio/transcriptions.rbi +14 -2
- data/rbi/openai/resources/audio/translations.rbi +7 -1
- data/rbi/openai/resources/beta/responses.rbi +8 -0
- data/rbi/openai/resources/containers/files.rbi +4 -0
- data/rbi/openai/resources/content_provenance_checks.rbi +4 -0
- data/rbi/openai/resources/files.rbi +5 -1
- data/rbi/openai/resources/images.rbi +20 -0
- data/rbi/openai/resources/responses.rbi +8 -0
- data/rbi/openai/resources/skills/versions.rbi +4 -0
- data/rbi/openai/resources/skills.rbi +4 -0
- data/rbi/openai/resources/uploads/parts.rbi +4 -0
- data/rbi/openai/resources/videos.rbi +16 -0
- data/sig/openai/client.rbs +6 -2
- data/sig/openai/errors.rbs +5 -0
- data/sig/openai/http_client.rbs +37 -2
- data/sig/openai/internal/logging.rbs +88 -0
- data/sig/openai/internal/provider.rbs +3 -1
- data/sig/openai/internal/read_io_adapter.rbs +3 -1
- data/sig/openai/internal/transport/base_client.rbs +33 -5
- data/sig/openai/internal/type/base_model.rbs +13 -0
- data/sig/openai/internal/type/base_page.rbs +8 -1
- data/sig/openai/internal/type/base_stream.rbs +8 -2
- data/sig/openai/internal/util.rbs +12 -0
- data/sig/openai/models/admin/organization/audit_log_list_params.rbs +2 -0
- data/sig/openai/models/admin/organization/audit_log_list_response.rbs +2 -0
- data/sig/openai/models/all_models.rbs +10 -0
- data/sig/openai/models/beta/beta_mcp_tool_call_error.rbs +75 -0
- data/sig/openai/models/beta/beta_response.rbs +14 -1
- data/sig/openai/models/beta/beta_response_input_item.rbs +4 -4
- data/sig/openai/models/beta/beta_response_item.rbs +4 -4
- data/sig/openai/models/beta/beta_response_output_item.rbs +4 -4
- data/sig/openai/models/beta/beta_response_output_text_annotation_added_event.rbs +149 -4
- data/sig/openai/models/beta/beta_responses_client_event.rbs +21 -1
- data/sig/openai/models/beta/beta_responses_server_event.rbs +2005 -53
- data/sig/openai/models/beta/beta_web_search_tool.rbs +7 -0
- data/sig/openai/models/beta/response_compact_params.rbs +12 -0
- data/sig/openai/models/beta/response_create_params.rbs +14 -1
- data/sig/openai/models/chat_model.rbs +2 -0
- data/sig/openai/models/completion_usage.rbs +27 -6
- data/sig/openai/models/conversations/conversation_item.rbs +4 -4
- data/sig/openai/models/model.rbs +12 -2
- data/sig/openai/models/responses/mcp_tool_call_error.rbs +73 -0
- data/sig/openai/models/responses/response.rbs +2 -1
- data/sig/openai/models/responses/response_compact_params.rbs +12 -0
- data/sig/openai/models/responses/response_create_params.rbs +2 -1
- data/sig/openai/models/responses/response_input_item.rbs +4 -4
- data/sig/openai/models/responses/response_item.rbs +4 -4
- data/sig/openai/models/responses/response_output_item.rbs +4 -4
- data/sig/openai/models/responses/response_output_text_annotation_added_event.rbs +149 -4
- data/sig/openai/models/responses/responses_client_event.rbs +9 -1
- data/sig/openai/models/responses/responses_server_event.rbs +1834 -53
- data/sig/openai/models/responses/web_search_tool.rbs +7 -0
- data/sig/openai/models/responses_model.rbs +10 -0
- data/sig/openai/net_http_client.rbs +2 -2
- data/sig/openai/providers.rbs +7 -0
- metadata +30 -1
data/lib/openai/internal/util.rb
CHANGED
|
@@ -261,9 +261,13 @@ module OpenAI
|
|
|
261
261
|
#
|
|
262
262
|
# @param path [String, Integer]
|
|
263
263
|
#
|
|
264
|
+
# @raise [ArgumentError]
|
|
264
265
|
# @return [String]
|
|
265
266
|
def encode_path(path)
|
|
266
|
-
path
|
|
267
|
+
path = path.to_s
|
|
268
|
+
raise ArgumentError, "path segment cannot be '.' or '..'" if path == "." || path == ".."
|
|
269
|
+
|
|
270
|
+
path.gsub(OpenAI::Internal::Util::RFC_3986_NOT_PCHARS) { ERB::Util.url_encode(_1) }
|
|
267
271
|
end
|
|
268
272
|
|
|
269
273
|
# @api private
|
|
@@ -389,7 +393,7 @@ module OpenAI
|
|
|
389
393
|
#
|
|
390
394
|
# @return [Hash{String=>String}]
|
|
391
395
|
def normalized_headers(*headers)
|
|
392
|
-
|
|
396
|
+
headers.compact.flat_map(&:to_a).to_h do |key, val|
|
|
393
397
|
value =
|
|
394
398
|
case val
|
|
395
399
|
in Array
|
|
@@ -397,7 +401,7 @@ module OpenAI
|
|
|
397
401
|
else
|
|
398
402
|
val&.to_s&.strip
|
|
399
403
|
end
|
|
400
|
-
[key.downcase, value]
|
|
404
|
+
[key.to_s.downcase, value]
|
|
401
405
|
end
|
|
402
406
|
end
|
|
403
407
|
end
|
|
@@ -420,9 +424,9 @@ module OpenAI
|
|
|
420
424
|
end
|
|
421
425
|
|
|
422
426
|
# @type [Regexp]
|
|
423
|
-
JSON_CONTENT = %r{
|
|
427
|
+
JSON_CONTENT = %r{\Aapplication/(?:[a-z0-9.-]+\+)?json[ \t]*(?:;|\z)}i
|
|
424
428
|
# @type [Regexp]
|
|
425
|
-
JSONL_CONTENT = %r{
|
|
429
|
+
JSONL_CONTENT = %r{\Aapplication/(?:x-[nl]djson|(?:x-)?jsonl)[ \t]*(?:;|\z)}i
|
|
426
430
|
|
|
427
431
|
class << self
|
|
428
432
|
# @api private
|
|
@@ -496,14 +500,14 @@ module OpenAI
|
|
|
496
500
|
|
|
497
501
|
# @api private
|
|
498
502
|
#
|
|
499
|
-
# Multipart
|
|
500
|
-
# delimiters and remove CR/LF without encoding ordinary
|
|
503
|
+
# Multipart disposition parameters are quoted-strings, not URI path segments.
|
|
504
|
+
# Escape header delimiters and remove CR/LF without encoding ordinary characters.
|
|
501
505
|
#
|
|
502
|
-
# @param
|
|
506
|
+
# @param value [Pathname, String, Symbol]
|
|
503
507
|
#
|
|
504
508
|
# @return [String]
|
|
505
|
-
private def
|
|
506
|
-
|
|
509
|
+
private def escape_multipart_header_param(value)
|
|
510
|
+
value.to_s.gsub(/["\\]/) { "\\#{_1}" }.delete("\r\n").b
|
|
507
511
|
end
|
|
508
512
|
|
|
509
513
|
# @api private
|
|
@@ -518,15 +522,16 @@ module OpenAI
|
|
|
518
522
|
y << "Content-Disposition: form-data"
|
|
519
523
|
|
|
520
524
|
unless key.nil?
|
|
521
|
-
|
|
525
|
+
name = escape_multipart_header_param(key)
|
|
526
|
+
y << "; name=\"#{name}\""
|
|
522
527
|
end
|
|
523
528
|
|
|
524
529
|
case val
|
|
525
530
|
in OpenAI::FilePart unless val.filename.nil?
|
|
526
|
-
filename =
|
|
531
|
+
filename = escape_multipart_header_param(val.filename)
|
|
527
532
|
y << "; filename=\"#{filename}\""
|
|
528
533
|
in Pathname | IO
|
|
529
|
-
filename =
|
|
534
|
+
filename = escape_multipart_header_param(::File.basename(val.to_path))
|
|
530
535
|
y << "; filename=\"#{filename}\""
|
|
531
536
|
else
|
|
532
537
|
end
|
|
@@ -535,6 +540,34 @@ module OpenAI
|
|
|
535
540
|
write_multipart_content(y, val: val, closing: closing)
|
|
536
541
|
end
|
|
537
542
|
|
|
543
|
+
# @api private
|
|
544
|
+
#
|
|
545
|
+
# @param y [Enumerator::Yielder]
|
|
546
|
+
# @param boundary [String]
|
|
547
|
+
# @param key [Symbol, String]
|
|
548
|
+
# @param val [Object]
|
|
549
|
+
# @param closing [Array<Proc>]
|
|
550
|
+
private def write_multipart_value(y, boundary:, key:, val:, closing:)
|
|
551
|
+
case val
|
|
552
|
+
in Hash
|
|
553
|
+
val.each do |name, value|
|
|
554
|
+
write_multipart_value(
|
|
555
|
+
y,
|
|
556
|
+
boundary: boundary,
|
|
557
|
+
key: "#{key}[#{name}]",
|
|
558
|
+
val: value,
|
|
559
|
+
closing: closing
|
|
560
|
+
)
|
|
561
|
+
end
|
|
562
|
+
in Array
|
|
563
|
+
val.each do |value|
|
|
564
|
+
write_multipart_value(y, boundary: boundary, key: "#{key}[]", val: value, closing: closing)
|
|
565
|
+
end
|
|
566
|
+
else
|
|
567
|
+
write_multipart_chunk(y, boundary: boundary, key: key, val: val, closing: closing)
|
|
568
|
+
end
|
|
569
|
+
end
|
|
570
|
+
|
|
538
571
|
# @api private
|
|
539
572
|
#
|
|
540
573
|
# https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.1.md#special-considerations-for-multipart-content
|
|
@@ -543,7 +576,6 @@ module OpenAI
|
|
|
543
576
|
#
|
|
544
577
|
# @return [Array(String, Enumerable<String>)]
|
|
545
578
|
private def encode_multipart_streaming(body)
|
|
546
|
-
# rubocop:disable Style/CaseEquality
|
|
547
579
|
# RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length
|
|
548
580
|
boundary = SecureRandom.urlsafe_base64(46)
|
|
549
581
|
|
|
@@ -552,14 +584,7 @@ module OpenAI
|
|
|
552
584
|
case body
|
|
553
585
|
in Hash
|
|
554
586
|
body.each do |key, val|
|
|
555
|
-
|
|
556
|
-
in Array if val.all? { primitive?(_1) || OpenAI::Internal::Type::FileInput === _1 }
|
|
557
|
-
val.each do |v|
|
|
558
|
-
write_multipart_chunk(y, boundary: boundary, key: key, val: v, closing: closing)
|
|
559
|
-
end
|
|
560
|
-
else
|
|
561
|
-
write_multipart_chunk(y, boundary: boundary, key: key, val: val, closing: closing)
|
|
562
|
-
end
|
|
587
|
+
write_multipart_value(y, boundary: boundary, key: key, val: val, closing: closing)
|
|
563
588
|
end
|
|
564
589
|
else
|
|
565
590
|
write_multipart_chunk(y, boundary: boundary, key: nil, val: body, closing: closing)
|
|
@@ -569,7 +594,6 @@ module OpenAI
|
|
|
569
594
|
|
|
570
595
|
fused_io = fused_enum(strio) { closing.each(&:call) }
|
|
571
596
|
[boundary, fused_io]
|
|
572
|
-
# rubocop:enable Style/CaseEquality
|
|
573
597
|
end
|
|
574
598
|
|
|
575
599
|
# @api private
|
|
@@ -580,12 +604,14 @@ module OpenAI
|
|
|
580
604
|
# @return [Object]
|
|
581
605
|
def encode_content(headers, body)
|
|
582
606
|
# rubocop:disable Style/CaseEquality
|
|
583
|
-
# rubocop:disable Layout/LineLength
|
|
584
607
|
content_type = headers["content-type"]
|
|
585
608
|
case [content_type, body]
|
|
586
609
|
in [OpenAI::Internal::Util::JSON_CONTENT, Hash | Array | -> { primitive?(_1) }]
|
|
587
610
|
[headers, JSON.generate(body)]
|
|
588
|
-
in [
|
|
611
|
+
in [
|
|
612
|
+
OpenAI::Internal::Util::JSONL_CONTENT,
|
|
613
|
+
Enumerable
|
|
614
|
+
] unless OpenAI::Internal::Type::FileInput === body
|
|
589
615
|
[headers, body.lazy.map { JSON.generate(_1) }]
|
|
590
616
|
in [%r{^multipart/form-data}, Hash | OpenAI::Internal::Type::FileInput]
|
|
591
617
|
boundary, strio = encode_multipart_streaming(body)
|
|
@@ -600,7 +626,6 @@ module OpenAI
|
|
|
600
626
|
else
|
|
601
627
|
[headers, body]
|
|
602
628
|
end
|
|
603
|
-
# rubocop:enable Layout/LineLength
|
|
604
629
|
# rubocop:enable Style/CaseEquality
|
|
605
630
|
end
|
|
606
631
|
|
|
@@ -653,7 +678,7 @@ module OpenAI
|
|
|
653
678
|
y << JSON.parse(_1, symbolize_names: true)
|
|
654
679
|
end
|
|
655
680
|
end
|
|
656
|
-
in %r{
|
|
681
|
+
in %r{\Atext/event-stream[ \t]*(?:;|\z)}i
|
|
657
682
|
lines = decode_lines(stream)
|
|
658
683
|
decode_sse(lines)
|
|
659
684
|
else
|
|
@@ -229,6 +229,7 @@ module OpenAI
|
|
|
229
229
|
TENANT_WORKLOAD_IDENTITY_MAPPING_ARCHIVED = :"tenant.workload_identity.mapping.archived"
|
|
230
230
|
TENANT_WORKLOAD_IDENTITY_BINDING_CREATED = :"tenant.workload_identity.binding.created"
|
|
231
231
|
TENANT_WORKLOAD_IDENTITY_PRINCIPAL_PROVISIONED = :"tenant.workload_identity.principal.provisioned"
|
|
232
|
+
TENANT_WORKLOAD_IDENTITY_ACCESS_TOKEN_ISSUED = :"tenant.workload_identity.access_token.issued"
|
|
232
233
|
TENANT_ADMIN_API_KEY_CREATED = :"tenant.admin_api_key.created"
|
|
233
234
|
TENANT_ADMIN_API_KEY_UPDATED = :"tenant.admin_api_key.updated"
|
|
234
235
|
TENANT_ADMIN_API_KEY_DELETED = :"tenant.admin_api_key.deleted"
|
|
@@ -246,7 +247,8 @@ module OpenAI
|
|
|
246
247
|
TENANT_POLICY_DELETED = :"tenant.policy.deleted"
|
|
247
248
|
TENANT_POLICY_ATTACHED = :"tenant.policy.attached"
|
|
248
249
|
TENANT_POLICY_DETACHED = :"tenant.policy.detached"
|
|
249
|
-
TENANT_PRINCIPAL_AUTHENTICATION_POLICY_RESOLVED =
|
|
250
|
+
TENANT_PRINCIPAL_AUTHENTICATION_POLICY_RESOLVED =
|
|
251
|
+
:"tenant.principal_authentication_policy.resolved"
|
|
250
252
|
TENANT_SCIM_SETUP_STARTED = :"tenant.scim.setup.started"
|
|
251
253
|
TENANT_SCIM_DELETION_REQUESTED = :"tenant.scim.deletion.requested"
|
|
252
254
|
TENANT_SCIM_DIRECTORY_CREATED = :"tenant.scim.directory.created"
|
|
@@ -100,7 +100,9 @@ module OpenAI
|
|
|
100
100
|
#
|
|
101
101
|
# @return [OpenAI::Models::Admin::Organization::AuditLogListResponse::CheckpointPermissionCreated, nil]
|
|
102
102
|
optional :checkpoint_permission_created,
|
|
103
|
-
-> {
|
|
103
|
+
-> {
|
|
104
|
+
OpenAI::Models::Admin::Organization::AuditLogListResponse::CheckpointPermissionCreated
|
|
105
|
+
},
|
|
104
106
|
api_name: :"checkpoint.permission.created"
|
|
105
107
|
|
|
106
108
|
# @!attribute checkpoint_permission_deleted
|
|
@@ -108,7 +110,9 @@ module OpenAI
|
|
|
108
110
|
#
|
|
109
111
|
# @return [OpenAI::Models::Admin::Organization::AuditLogListResponse::CheckpointPermissionDeleted, nil]
|
|
110
112
|
optional :checkpoint_permission_deleted,
|
|
111
|
-
-> {
|
|
113
|
+
-> {
|
|
114
|
+
OpenAI::Models::Admin::Organization::AuditLogListResponse::CheckpointPermissionDeleted
|
|
115
|
+
},
|
|
112
116
|
api_name: :"checkpoint.permission.deleted"
|
|
113
117
|
|
|
114
118
|
# @!attribute external_key_registered
|
|
@@ -180,7 +184,9 @@ module OpenAI
|
|
|
180
184
|
#
|
|
181
185
|
# @return [OpenAI::Models::Admin::Organization::AuditLogListResponse::IPAllowlistConfigActivated, nil]
|
|
182
186
|
optional :ip_allowlist_config_activated,
|
|
183
|
-
-> {
|
|
187
|
+
-> {
|
|
188
|
+
OpenAI::Models::Admin::Organization::AuditLogListResponse::IPAllowlistConfigActivated
|
|
189
|
+
},
|
|
184
190
|
api_name: :"ip_allowlist.config.activated"
|
|
185
191
|
|
|
186
192
|
# @!attribute ip_allowlist_config_deactivated
|
|
@@ -188,7 +194,9 @@ module OpenAI
|
|
|
188
194
|
#
|
|
189
195
|
# @return [OpenAI::Models::Admin::Organization::AuditLogListResponse::IPAllowlistConfigDeactivated, nil]
|
|
190
196
|
optional :ip_allowlist_config_deactivated,
|
|
191
|
-
-> {
|
|
197
|
+
-> {
|
|
198
|
+
OpenAI::Models::Admin::Organization::AuditLogListResponse::IPAllowlistConfigDeactivated
|
|
199
|
+
},
|
|
192
200
|
api_name: :"ip_allowlist.config.deactivated"
|
|
193
201
|
|
|
194
202
|
# @!attribute ip_allowlist_created
|
|
@@ -432,7 +440,9 @@ module OpenAI
|
|
|
432
440
|
#
|
|
433
441
|
# @return [OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderMappingCreated, nil]
|
|
434
442
|
optional :workload_identity_provider_mapping_created,
|
|
435
|
-
-> {
|
|
443
|
+
-> {
|
|
444
|
+
OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderMappingCreated
|
|
445
|
+
},
|
|
436
446
|
api_name: :"workload_identity_provider_mapping.created"
|
|
437
447
|
|
|
438
448
|
# @!attribute workload_identity_provider_mapping_deleted
|
|
@@ -440,7 +450,9 @@ module OpenAI
|
|
|
440
450
|
#
|
|
441
451
|
# @return [OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderMappingDeleted, nil]
|
|
442
452
|
optional :workload_identity_provider_mapping_deleted,
|
|
443
|
-
-> {
|
|
453
|
+
-> {
|
|
454
|
+
OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderMappingDeleted
|
|
455
|
+
},
|
|
444
456
|
api_name: :"workload_identity_provider_mapping.deleted"
|
|
445
457
|
|
|
446
458
|
# @!attribute workload_identity_provider_mapping_updated
|
|
@@ -448,7 +460,9 @@ module OpenAI
|
|
|
448
460
|
#
|
|
449
461
|
# @return [OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderMappingUpdated, nil]
|
|
450
462
|
optional :workload_identity_provider_mapping_updated,
|
|
451
|
-
-> {
|
|
463
|
+
-> {
|
|
464
|
+
OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderMappingUpdated
|
|
465
|
+
},
|
|
452
466
|
api_name: :"workload_identity_provider_mapping.updated"
|
|
453
467
|
|
|
454
468
|
# @!attribute workload_identity_provider_created
|
|
@@ -456,7 +470,9 @@ module OpenAI
|
|
|
456
470
|
#
|
|
457
471
|
# @return [OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderCreated, nil]
|
|
458
472
|
optional :workload_identity_provider_created,
|
|
459
|
-
-> {
|
|
473
|
+
-> {
|
|
474
|
+
OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderCreated
|
|
475
|
+
},
|
|
460
476
|
api_name: :"workload_identity_provider.created"
|
|
461
477
|
|
|
462
478
|
# @!attribute workload_identity_provider_deleted
|
|
@@ -464,7 +480,9 @@ module OpenAI
|
|
|
464
480
|
#
|
|
465
481
|
# @return [OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderDeleted, nil]
|
|
466
482
|
optional :workload_identity_provider_deleted,
|
|
467
|
-
-> {
|
|
483
|
+
-> {
|
|
484
|
+
OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderDeleted
|
|
485
|
+
},
|
|
468
486
|
api_name: :"workload_identity_provider.deleted"
|
|
469
487
|
|
|
470
488
|
# @!attribute workload_identity_provider_updated
|
|
@@ -472,7 +490,9 @@ module OpenAI
|
|
|
472
490
|
#
|
|
473
491
|
# @return [OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderUpdated, nil]
|
|
474
492
|
optional :workload_identity_provider_updated,
|
|
475
|
-
-> {
|
|
493
|
+
-> {
|
|
494
|
+
OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderUpdated
|
|
495
|
+
},
|
|
476
496
|
api_name: :"workload_identity_provider.updated"
|
|
477
497
|
|
|
478
498
|
# @!method initialize(id:, effective_at:, type:, actor: nil, api_key_created: nil, api_key_deleted: nil, api_key_updated: nil, certificate_created: nil, certificate_deleted: nil, certificate_updated: nil, certificates_activated: nil, certificates_deactivated: nil, checkpoint_permission_created: nil, checkpoint_permission_deleted: nil, external_key_registered: nil, external_key_removed: nil, group_created: nil, group_deleted: nil, group_updated: nil, invite_accepted: nil, invite_deleted: nil, invite_sent: nil, ip_allowlist_config_activated: nil, ip_allowlist_config_deactivated: nil, ip_allowlist_created: nil, ip_allowlist_deleted: nil, ip_allowlist_updated: nil, login_failed: nil, login_succeeded: nil, logout_failed: nil, logout_succeeded: nil, organization_updated: nil, project: nil, project_archived: nil, project_created: nil, project_deleted: nil, project_updated: nil, rate_limit_deleted: nil, rate_limit_updated: nil, role_assignment_created: nil, role_assignment_deleted: nil, role_bound_to_resource: nil, role_created: nil, role_deleted: nil, role_unbound_from_resource: nil, role_updated: nil, scim_disabled: nil, scim_enabled: nil, service_account_created: nil, service_account_deleted: nil, service_account_updated: nil, user_added: nil, user_deleted: nil, user_updated: nil, workload_identity_provider_mapping_created: nil, workload_identity_provider_mapping_deleted: nil, workload_identity_provider_mapping_updated: nil, workload_identity_provider_created: nil, workload_identity_provider_deleted: nil, workload_identity_provider_updated: nil)
|
|
@@ -677,6 +697,7 @@ module OpenAI
|
|
|
677
697
|
TENANT_WORKLOAD_IDENTITY_MAPPING_ARCHIVED = :"tenant.workload_identity.mapping.archived"
|
|
678
698
|
TENANT_WORKLOAD_IDENTITY_BINDING_CREATED = :"tenant.workload_identity.binding.created"
|
|
679
699
|
TENANT_WORKLOAD_IDENTITY_PRINCIPAL_PROVISIONED = :"tenant.workload_identity.principal.provisioned"
|
|
700
|
+
TENANT_WORKLOAD_IDENTITY_ACCESS_TOKEN_ISSUED = :"tenant.workload_identity.access_token.issued"
|
|
680
701
|
TENANT_ADMIN_API_KEY_CREATED = :"tenant.admin_api_key.created"
|
|
681
702
|
TENANT_ADMIN_API_KEY_UPDATED = :"tenant.admin_api_key.updated"
|
|
682
703
|
TENANT_ADMIN_API_KEY_DELETED = :"tenant.admin_api_key.deleted"
|
|
@@ -694,7 +715,8 @@ module OpenAI
|
|
|
694
715
|
TENANT_POLICY_DELETED = :"tenant.policy.deleted"
|
|
695
716
|
TENANT_POLICY_ATTACHED = :"tenant.policy.attached"
|
|
696
717
|
TENANT_POLICY_DETACHED = :"tenant.policy.detached"
|
|
697
|
-
TENANT_PRINCIPAL_AUTHENTICATION_POLICY_RESOLVED =
|
|
718
|
+
TENANT_PRINCIPAL_AUTHENTICATION_POLICY_RESOLVED =
|
|
719
|
+
:"tenant.principal_authentication_policy.resolved"
|
|
698
720
|
TENANT_SCIM_SETUP_STARTED = :"tenant.scim.setup.started"
|
|
699
721
|
TENANT_SCIM_DELETION_REQUESTED = :"tenant.scim.deletion.requested"
|
|
700
722
|
TENANT_SCIM_DIRECTORY_CREATED = :"tenant.scim.directory.created"
|
|
@@ -18,7 +18,11 @@ module OpenAI
|
|
|
18
18
|
#
|
|
19
19
|
# @return [Array<OpenAI::Models::Admin::Organization::Groups::RoleListResponse::AssignmentSource>, nil]
|
|
20
20
|
required :assignment_sources,
|
|
21
|
-
->
|
|
21
|
+
-> do
|
|
22
|
+
OpenAI::Internal::Type::ArrayOf[
|
|
23
|
+
OpenAI::Models::Admin::Organization::Groups::RoleListResponse::AssignmentSource
|
|
24
|
+
]
|
|
25
|
+
end,
|
|
22
26
|
nil?: true
|
|
23
27
|
|
|
24
28
|
# @!attribute created_at
|
|
@@ -18,7 +18,11 @@ module OpenAI
|
|
|
18
18
|
#
|
|
19
19
|
# @return [Array<OpenAI::Models::Admin::Organization::Groups::RoleRetrieveResponse::AssignmentSource>, nil]
|
|
20
20
|
required :assignment_sources,
|
|
21
|
-
->
|
|
21
|
+
-> do
|
|
22
|
+
OpenAI::Internal::Type::ArrayOf[
|
|
23
|
+
OpenAI::Models::Admin::Organization::Groups::RoleRetrieveResponse::AssignmentSource
|
|
24
|
+
]
|
|
25
|
+
end,
|
|
22
26
|
nil?: true
|
|
23
27
|
|
|
24
28
|
# @!attribute created_at
|
|
@@ -19,7 +19,12 @@ module OpenAI
|
|
|
19
19
|
#
|
|
20
20
|
# @return [Array<OpenAI::Models::Admin::Organization::Projects::Groups::RoleListResponse::AssignmentSource>, nil]
|
|
21
21
|
required :assignment_sources,
|
|
22
|
-
->
|
|
22
|
+
-> do
|
|
23
|
+
OpenAI::Internal::Type::ArrayOf[
|
|
24
|
+
OpenAI::Models::Admin::Organization::Projects::Groups::RoleListResponse::
|
|
25
|
+
AssignmentSource
|
|
26
|
+
]
|
|
27
|
+
end,
|
|
23
28
|
nil?: true
|
|
24
29
|
|
|
25
30
|
# @!attribute created_at
|
|
@@ -19,7 +19,12 @@ module OpenAI
|
|
|
19
19
|
#
|
|
20
20
|
# @return [Array<OpenAI::Models::Admin::Organization::Projects::Groups::RoleRetrieveResponse::AssignmentSource>, nil]
|
|
21
21
|
required :assignment_sources,
|
|
22
|
-
->
|
|
22
|
+
-> do
|
|
23
|
+
OpenAI::Internal::Type::ArrayOf[
|
|
24
|
+
OpenAI::Models::Admin::Organization::Projects::Groups::RoleRetrieveResponse::
|
|
25
|
+
AssignmentSource
|
|
26
|
+
]
|
|
27
|
+
end,
|
|
23
28
|
nil?: true
|
|
24
29
|
|
|
25
30
|
# @!attribute created_at
|
|
@@ -16,7 +16,9 @@ module OpenAI
|
|
|
16
16
|
#
|
|
17
17
|
# @return [OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::APIKey, nil]
|
|
18
18
|
required :api_key,
|
|
19
|
-
-> {
|
|
19
|
+
-> {
|
|
20
|
+
OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::APIKey
|
|
21
|
+
},
|
|
20
22
|
nil?: true
|
|
21
23
|
|
|
22
24
|
# @!attribute created_at
|
|
@@ -19,7 +19,12 @@ module OpenAI
|
|
|
19
19
|
#
|
|
20
20
|
# @return [Array<OpenAI::Models::Admin::Organization::Projects::Users::RoleListResponse::AssignmentSource>, nil]
|
|
21
21
|
required :assignment_sources,
|
|
22
|
-
->
|
|
22
|
+
-> do
|
|
23
|
+
OpenAI::Internal::Type::ArrayOf[
|
|
24
|
+
OpenAI::Models::Admin::Organization::Projects::Users::RoleListResponse::
|
|
25
|
+
AssignmentSource
|
|
26
|
+
]
|
|
27
|
+
end,
|
|
23
28
|
nil?: true
|
|
24
29
|
|
|
25
30
|
# @!attribute created_at
|
|
@@ -19,7 +19,12 @@ module OpenAI
|
|
|
19
19
|
#
|
|
20
20
|
# @return [Array<OpenAI::Models::Admin::Organization::Projects::Users::RoleRetrieveResponse::AssignmentSource>, nil]
|
|
21
21
|
required :assignment_sources,
|
|
22
|
-
->
|
|
22
|
+
-> do
|
|
23
|
+
OpenAI::Internal::Type::ArrayOf[
|
|
24
|
+
OpenAI::Models::Admin::Organization::Projects::Users::RoleRetrieveResponse::
|
|
25
|
+
AssignmentSource
|
|
26
|
+
]
|
|
27
|
+
end,
|
|
23
28
|
nil?: true
|
|
24
29
|
|
|
25
30
|
# @!attribute created_at
|
|
@@ -18,7 +18,11 @@ module OpenAI
|
|
|
18
18
|
#
|
|
19
19
|
# @return [Array<OpenAI::Models::Admin::Organization::Users::RoleListResponse::AssignmentSource>, nil]
|
|
20
20
|
required :assignment_sources,
|
|
21
|
-
->
|
|
21
|
+
-> do
|
|
22
|
+
OpenAI::Internal::Type::ArrayOf[
|
|
23
|
+
OpenAI::Models::Admin::Organization::Users::RoleListResponse::AssignmentSource
|
|
24
|
+
]
|
|
25
|
+
end,
|
|
22
26
|
nil?: true
|
|
23
27
|
|
|
24
28
|
# @!attribute created_at
|
|
@@ -18,7 +18,11 @@ module OpenAI
|
|
|
18
18
|
#
|
|
19
19
|
# @return [Array<OpenAI::Models::Admin::Organization::Users::RoleRetrieveResponse::AssignmentSource>, nil]
|
|
20
20
|
required :assignment_sources,
|
|
21
|
-
->
|
|
21
|
+
-> do
|
|
22
|
+
OpenAI::Internal::Type::ArrayOf[
|
|
23
|
+
OpenAI::Models::Admin::Organization::Users::RoleRetrieveResponse::AssignmentSource
|
|
24
|
+
]
|
|
25
|
+
end,
|
|
22
26
|
nil?: true
|
|
23
27
|
|
|
24
28
|
# @!attribute created_at
|
|
@@ -24,10 +24,15 @@ module OpenAI
|
|
|
24
24
|
O4_MINI_DEEP_RESEARCH_2025_06_26 = :"o4-mini-deep-research-2025-06-26"
|
|
25
25
|
COMPUTER_USE_PREVIEW = :"computer-use-preview"
|
|
26
26
|
COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11"
|
|
27
|
+
GPT_5_5_PRO = :"gpt-5.5-pro"
|
|
28
|
+
GPT_5_5_PRO_2026_04_23 = :"gpt-5.5-pro-2026-04-23"
|
|
27
29
|
GPT_5_CODEX = :"gpt-5-codex"
|
|
28
30
|
GPT_5_PRO = :"gpt-5-pro"
|
|
29
31
|
GPT_5_PRO_2025_10_06 = :"gpt-5-pro-2025-10-06"
|
|
30
32
|
GPT_5_1_CODEX_MAX = :"gpt-5.1-codex-max"
|
|
33
|
+
GPT_DAYBREAK_BLUE_LATEST = :"gpt-daybreak-blue-latest"
|
|
34
|
+
GPT_DAYBREAK_RED_LATEST = :"gpt-daybreak-red-latest"
|
|
35
|
+
GPT_5_6_CYBER = :"gpt-5.6-cyber"
|
|
31
36
|
|
|
32
37
|
# @!method self.values
|
|
33
38
|
# @return [Array<Symbol>]
|
|
@@ -12,7 +12,13 @@ module OpenAI
|
|
|
12
12
|
|
|
13
13
|
# @!attribute file
|
|
14
14
|
# The audio file object (not file name) to transcribe, in one of these formats:
|
|
15
|
-
# flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.
|
|
15
|
+
# flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm. The request must include
|
|
16
|
+
# enough format metadata for the file to be identified. We recommend an
|
|
17
|
+
# extension-bearing filename and an appropriate content type.
|
|
18
|
+
#
|
|
19
|
+
# `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
|
|
20
|
+
# metadata. Use `OpenAI::FilePart` when you need to override the filename or
|
|
21
|
+
# content type.
|
|
16
22
|
#
|
|
17
23
|
# @return [Pathname, StringIO, IO, String, OpenAI::FilePart]
|
|
18
24
|
required :file, OpenAI::Internal::Type::FileInput
|
|
@@ -10,7 +10,13 @@ module OpenAI
|
|
|
10
10
|
|
|
11
11
|
# @!attribute file
|
|
12
12
|
# The audio file object (not file name) translate, in one of these formats: flac,
|
|
13
|
-
# mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.
|
|
13
|
+
# mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm. The request must include enough
|
|
14
|
+
# format metadata for the file to be identified. We recommend an extension-bearing
|
|
15
|
+
# filename and an appropriate content type.
|
|
16
|
+
#
|
|
17
|
+
# `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
|
|
18
|
+
# metadata. Use `OpenAI::FilePart` when you need to override the filename or
|
|
19
|
+
# content type.
|
|
14
20
|
#
|
|
15
21
|
# @return [Pathname, StringIO, IO, String, OpenAI::FilePart]
|
|
16
22
|
required :file, OpenAI::Internal::Type::FileInput
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Beta
|
|
6
|
+
module BetaMcpToolCallError
|
|
7
|
+
extend OpenAI::Internal::Type::Union
|
|
8
|
+
|
|
9
|
+
discriminator :type
|
|
10
|
+
|
|
11
|
+
variant :mcp_protocol_error, -> { OpenAI::Beta::BetaMcpToolCallError::McpProtocolError }
|
|
12
|
+
|
|
13
|
+
variant :mcp_tool_execution_error, -> { OpenAI::Beta::BetaMcpToolCallError::McpToolExecutionError }
|
|
14
|
+
|
|
15
|
+
variant :http_error, -> { OpenAI::Beta::BetaMcpToolCallError::HTTPError }
|
|
16
|
+
|
|
17
|
+
class McpProtocolError < OpenAI::Internal::Type::BaseModel
|
|
18
|
+
# @!attribute code
|
|
19
|
+
#
|
|
20
|
+
# @return [Integer]
|
|
21
|
+
required :code, Integer
|
|
22
|
+
|
|
23
|
+
# @!attribute message
|
|
24
|
+
#
|
|
25
|
+
# @return [String]
|
|
26
|
+
required :message, String
|
|
27
|
+
|
|
28
|
+
# @!attribute type
|
|
29
|
+
#
|
|
30
|
+
# @return [Symbol, :mcp_protocol_error]
|
|
31
|
+
required :type, const: :mcp_protocol_error
|
|
32
|
+
|
|
33
|
+
# @!method initialize(code:, message:, type: :mcp_protocol_error)
|
|
34
|
+
# @param code [Integer]
|
|
35
|
+
# @param message [String]
|
|
36
|
+
# @param type [Symbol, :mcp_protocol_error]
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
class McpToolExecutionError < OpenAI::Internal::Type::BaseModel
|
|
40
|
+
# @!attribute content
|
|
41
|
+
#
|
|
42
|
+
# @return [Object]
|
|
43
|
+
required :content, OpenAI::Internal::Type::Unknown
|
|
44
|
+
|
|
45
|
+
# @!attribute type
|
|
46
|
+
#
|
|
47
|
+
# @return [Symbol, :mcp_tool_execution_error]
|
|
48
|
+
required :type, const: :mcp_tool_execution_error
|
|
49
|
+
|
|
50
|
+
# @!method initialize(content:, type: :mcp_tool_execution_error)
|
|
51
|
+
# @param content [Object]
|
|
52
|
+
# @param type [Symbol, :mcp_tool_execution_error]
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
class HTTPError < OpenAI::Internal::Type::BaseModel
|
|
56
|
+
# @!attribute code
|
|
57
|
+
#
|
|
58
|
+
# @return [Integer]
|
|
59
|
+
required :code, Integer
|
|
60
|
+
|
|
61
|
+
# @!attribute message
|
|
62
|
+
#
|
|
63
|
+
# @return [String]
|
|
64
|
+
required :message, String
|
|
65
|
+
|
|
66
|
+
# @!attribute type
|
|
67
|
+
#
|
|
68
|
+
# @return [Symbol, :http_error]
|
|
69
|
+
required :type, const: :http_error
|
|
70
|
+
|
|
71
|
+
# @!method initialize(code:, message:, type: :http_error)
|
|
72
|
+
# @param code [Integer]
|
|
73
|
+
# @param message [String]
|
|
74
|
+
# @param type [Symbol, :http_error]
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# @!method self.variants
|
|
78
|
+
# @return [Array(OpenAI::Models::Beta::BetaMcpToolCallError::McpProtocolError, OpenAI::Models::Beta::BetaMcpToolCallError::McpToolExecutionError, OpenAI::Models::Beta::BetaMcpToolCallError::HTTPError)]
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
BetaMcpToolCallError = Beta::BetaMcpToolCallError
|
|
83
|
+
end
|
|
84
|
+
end
|