openai 0.118.0 → 0.119.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 (127) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +1 -1
  5. data/lib/openai/helpers/data_residency.rb +4 -1
  6. data/lib/openai/models/all_models.rb +1 -0
  7. data/lib/openai/models/beta/beta_compacted_response.rb +34 -1
  8. data/lib/openai/models/beta/beta_response.rb +34 -1
  9. data/lib/openai/models/beta/beta_response_input_item.rb +45 -1
  10. data/lib/openai/models/beta/beta_response_item.rb +45 -1
  11. data/lib/openai/models/beta/beta_response_output_item.rb +45 -1
  12. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +186 -13
  13. data/lib/openai/models/beta/beta_responses_client_event.rb +48 -1
  14. data/lib/openai/models/beta/beta_tool.rb +164 -13
  15. data/lib/openai/models/beta/response_compact_params.rb +44 -1
  16. data/lib/openai/models/beta/response_create_params.rb +44 -1
  17. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  18. data/lib/openai/models/conversations/conversation_item.rb +45 -1
  19. data/lib/openai/models/image_edit_params.rb +72 -16
  20. data/lib/openai/models/image_generate_params.rb +160 -8
  21. data/lib/openai/models/image_model.rb +2 -0
  22. data/lib/openai/models/images_response.rb +55 -4
  23. data/lib/openai/models/realtime/realtime_audio_config_input.rb +14 -1
  24. data/lib/openai/models/realtime/realtime_session_create_response.rb +14 -1
  25. data/lib/openai/models/realtime/realtime_transcription_session_audio_input.rb +14 -1
  26. data/lib/openai/models/realtime/realtime_transcription_session_create_response.rb +14 -1
  27. data/lib/openai/models/realtime/realtime_translation_session.rb +14 -1
  28. data/lib/openai/models/realtime/realtime_translation_session_create_request.rb +14 -1
  29. data/lib/openai/models/realtime/realtime_translation_session_update_request.rb +14 -1
  30. data/lib/openai/models/responses/compacted_response.rb +37 -1
  31. data/lib/openai/models/responses/response.rb +34 -1
  32. data/lib/openai/models/responses/response_compact_params.rb +50 -1
  33. data/lib/openai/models/responses/response_create_params.rb +47 -1
  34. data/lib/openai/models/responses/response_input_item.rb +45 -1
  35. data/lib/openai/models/responses/response_item.rb +45 -1
  36. data/lib/openai/models/responses/response_output_item.rb +45 -1
  37. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +186 -13
  38. data/lib/openai/models/responses/responses_client_event.rb +48 -1
  39. data/lib/openai/models/responses/tool.rb +164 -13
  40. data/lib/openai/models/responses_model.rb +1 -0
  41. data/lib/openai/resources/admin/organization/projects.rb +6 -6
  42. data/lib/openai/resources/admin/organization.rb +6 -6
  43. data/lib/openai/resources/beta/responses.rb +12 -3
  44. data/lib/openai/resources/images.rb +102 -18
  45. data/lib/openai/resources/responses.rb +12 -3
  46. data/lib/openai/version.rb +1 -1
  47. data/rbi/openai/models/all_models.rbi +1 -0
  48. data/rbi/openai/models/beta/beta_compacted_response.rbi +67 -1
  49. data/rbi/openai/models/beta/beta_response.rbi +62 -0
  50. data/rbi/openai/models/beta/beta_response_input_item.rbi +82 -1
  51. data/rbi/openai/models/beta/beta_response_item.rbi +82 -1
  52. data/rbi/openai/models/beta/beta_response_output_item.rbi +82 -1
  53. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +338 -13
  54. data/rbi/openai/models/beta/beta_responses_client_event.rbi +105 -0
  55. data/rbi/openai/models/beta/beta_tool.rbi +245 -13
  56. data/rbi/openai/models/beta/response_compact_params.rbi +81 -0
  57. data/rbi/openai/models/beta/response_create_params.rbi +81 -0
  58. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  59. data/rbi/openai/models/conversations/conversation_item.rbi +84 -1
  60. data/rbi/openai/models/image_edit_params.rbi +76 -14
  61. data/rbi/openai/models/image_generate_params.rbi +218 -6
  62. data/rbi/openai/models/image_model.rbi +2 -0
  63. data/rbi/openai/models/images_response.rbi +90 -3
  64. data/rbi/openai/models/realtime/realtime_audio_config_input.rbi +17 -1
  65. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +17 -1
  66. data/rbi/openai/models/realtime/realtime_transcription_session_audio_input.rbi +17 -1
  67. data/rbi/openai/models/realtime/realtime_transcription_session_create_response.rbi +17 -1
  68. data/rbi/openai/models/realtime/realtime_translation_session.rbi +19 -3
  69. data/rbi/openai/models/realtime/realtime_translation_session_create_request.rbi +19 -3
  70. data/rbi/openai/models/realtime/realtime_translation_session_update_request.rbi +19 -3
  71. data/rbi/openai/models/responses/compacted_response.rbi +67 -1
  72. data/rbi/openai/models/responses/response.rbi +62 -0
  73. data/rbi/openai/models/responses/response_compact_params.rbi +88 -0
  74. data/rbi/openai/models/responses/response_create_params.rbi +87 -0
  75. data/rbi/openai/models/responses/response_input_item.rbi +82 -1
  76. data/rbi/openai/models/responses/response_item.rbi +82 -1
  77. data/rbi/openai/models/responses/response_output_item.rbi +82 -1
  78. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +340 -13
  79. data/rbi/openai/models/responses/responses_client_event.rbi +105 -0
  80. data/rbi/openai/models/responses/tool.rbi +248 -13
  81. data/rbi/openai/models/responses_model.rbi +1 -0
  82. data/rbi/openai/resources/admin/organization/projects.rbi +3 -3
  83. data/rbi/openai/resources/admin/organization.rbi +3 -3
  84. data/rbi/openai/resources/beta/responses.rbi +9 -0
  85. data/rbi/openai/resources/images.rbi +98 -14
  86. data/rbi/openai/resources/responses.rbi +11 -0
  87. data/sig/openai/models/all_models.rbs +2 -0
  88. data/sig/openai/models/beta/beta_compacted_response.rbs +42 -2
  89. data/sig/openai/models/beta/beta_response.rbs +40 -0
  90. data/sig/openai/models/beta/beta_response_input_item.rbs +51 -3
  91. data/sig/openai/models/beta/beta_response_item.rbs +51 -3
  92. data/sig/openai/models/beta/beta_response_output_item.rbs +51 -3
  93. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +188 -15
  94. data/sig/openai/models/beta/beta_responses_client_event.rbs +56 -0
  95. data/sig/openai/models/beta/beta_tool.rbs +188 -15
  96. data/sig/openai/models/beta/response_compact_params.rbs +56 -0
  97. data/sig/openai/models/beta/response_create_params.rbs +56 -0
  98. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  99. data/sig/openai/models/conversations/conversation_item.rbs +51 -3
  100. data/sig/openai/models/image_edit_params.rbs +63 -12
  101. data/sig/openai/models/image_generate_params.rbs +150 -5
  102. data/sig/openai/models/image_model.rbs +4 -0
  103. data/sig/openai/models/images_response.rbs +59 -4
  104. data/sig/openai/models/realtime/realtime_audio_config_input.rbs +20 -1
  105. data/sig/openai/models/realtime/realtime_session_create_response.rbs +20 -1
  106. data/sig/openai/models/realtime/realtime_transcription_session_audio_input.rbs +20 -1
  107. data/sig/openai/models/realtime/realtime_transcription_session_create_response.rbs +20 -1
  108. data/sig/openai/models/realtime/realtime_translation_session.rbs +22 -3
  109. data/sig/openai/models/realtime/realtime_translation_session_create_request.rbs +22 -3
  110. data/sig/openai/models/realtime/realtime_translation_session_update_request.rbs +22 -3
  111. data/sig/openai/models/responses/compacted_response.rbs +42 -2
  112. data/sig/openai/models/responses/response.rbs +40 -0
  113. data/sig/openai/models/responses/response_compact_params.rbs +58 -0
  114. data/sig/openai/models/responses/response_create_params.rbs +56 -0
  115. data/sig/openai/models/responses/response_input_item.rbs +51 -3
  116. data/sig/openai/models/responses/response_item.rbs +51 -3
  117. data/sig/openai/models/responses/response_output_item.rbs +51 -3
  118. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +188 -15
  119. data/sig/openai/models/responses/responses_client_event.rbs +56 -0
  120. data/sig/openai/models/responses/tool.rbs +188 -15
  121. data/sig/openai/models/responses_model.rbs +2 -0
  122. data/sig/openai/resources/admin/organization/projects.rbs +2 -2
  123. data/sig/openai/resources/admin/organization.rbs +2 -2
  124. data/sig/openai/resources/beta/responses.rbs +3 -0
  125. data/sig/openai/resources/images.rbs +14 -0
  126. data/sig/openai/resources/responses.rbs +4 -0
  127. metadata +1 -1
@@ -596,6 +596,9 @@ module OpenAI
596
596
  ?type: :image_generation,
597
597
  ?action: OpenAI::Models::Beta::BetaTool::ImageGeneration::action,
598
598
  ?background: OpenAI::Models::Beta::BetaTool::ImageGeneration::background,
599
+ ?complexity: OpenAI::Models::Beta::BetaTool::ImageGeneration::complexity,
600
+ ?frame_count: Integer,
601
+ ?frame_duration_ms: Integer,
599
602
  ?input_fidelity: OpenAI::Models::Beta::BetaTool::ImageGeneration::input_fidelity?,
600
603
  ?input_image_mask: OpenAI::Beta::BetaTool::ImageGeneration::InputImageMask,
601
604
  ?model: OpenAI::Models::Beta::BetaTool::ImageGeneration::model,
@@ -604,7 +607,8 @@ module OpenAI
604
607
  ?output_format: OpenAI::Models::Beta::BetaTool::ImageGeneration::output_format,
605
608
  ?partial_images: Integer,
606
609
  ?quality: OpenAI::Models::Beta::BetaTool::ImageGeneration::quality,
607
- ?size: OpenAI::Models::Beta::BetaTool::ImageGeneration::size
610
+ ?size: OpenAI::Models::Beta::BetaTool::ImageGeneration::size,
611
+ ?svg: OpenAI::Beta::BetaTool::ImageGeneration::Svg
608
612
  }
609
613
 
610
614
  class ImageGeneration < OpenAI::Internal::Type::BaseModel
@@ -643,6 +647,36 @@ module OpenAI
643
647
  OpenAI::Models::Beta::BetaTool::ImageGeneration::background
644
648
  ) -> OpenAI::Models::Beta::BetaTool::ImageGeneration::background
645
649
 
650
+ # Computation spent planning the image, independently of rendering quality.
651
+ # Overrides the outer response's `reasoning.effort` for image generation. When
652
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
653
+ # configured default. For SVG output, controls the reference image, not the SVG
654
+ # author's reasoning.
655
+ attr_reader complexity: OpenAI::Models::Beta::BetaTool::ImageGeneration::complexity?
656
+
657
+ # Computation spent planning the image, independently of rendering quality.
658
+ # Overrides the outer response's `reasoning.effort` for image generation. When
659
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
660
+ # configured default. For SVG output, controls the reference image, not the SVG
661
+ # author's reasoning.
662
+ def complexity=: (
663
+ OpenAI::Models::Beta::BetaTool::ImageGeneration::complexity
664
+ ) -> OpenAI::Models::Beta::BetaTool::ImageGeneration::complexity
665
+
666
+ # Number of GIF frames. Requires `output_format` to be `gif`. Default: 9.
667
+ attr_reader frame_count: Integer?
668
+
669
+ # Number of GIF frames. Requires `output_format` to be `gif`. Default: 9.
670
+ def frame_count=: (Integer) -> Integer
671
+
672
+ # Duration of each GIF frame in milliseconds, rounded to 10 ms. Requires
673
+ # `output_format` to be `gif`. Default: 200.
674
+ attr_reader frame_duration_ms: Integer?
675
+
676
+ # Duration of each GIF frame in milliseconds, rounded to 10 ms. Requires
677
+ # `output_format` to be `gif`. Default: 200.
678
+ def frame_duration_ms=: (Integer) -> Integer
679
+
646
680
  # Control how much effort the model will exert to match the style and features,
647
681
  # especially facial features, of input images. Supports `high` and `low` on
648
682
  # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
@@ -662,8 +696,8 @@ module OpenAI
662
696
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
663
697
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
664
698
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
665
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
666
- # `gpt-image-2`.
699
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
700
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
667
701
  #
668
702
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
669
703
  # `gpt-image-2.5-flare` instead.
@@ -672,8 +706,8 @@ module OpenAI
672
706
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
673
707
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
674
708
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
675
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
676
- # `gpt-image-2`.
709
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
710
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
677
711
  #
678
712
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
679
713
  # `gpt-image-2.5-flare` instead.
@@ -695,12 +729,20 @@ module OpenAI
695
729
  # Compression level for the output image. Default: 100.
696
730
  def output_compression=: (Integer) -> Integer
697
731
 
698
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
699
- # Default: `png`.
732
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
733
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
734
+ # selected format. GIF output does not support partial image streaming
735
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
736
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
737
+ # output.
700
738
  attr_reader output_format: OpenAI::Models::Beta::BetaTool::ImageGeneration::output_format?
701
739
 
702
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
703
- # Default: `png`.
740
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
741
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
742
+ # selected format. GIF output does not support partial image streaming
743
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
744
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
745
+ # output.
704
746
  def output_format=: (
705
747
  OpenAI::Models::Beta::BetaTool::ImageGeneration::output_format
706
748
  ) -> OpenAI::Models::Beta::BetaTool::ImageGeneration::output_format
@@ -753,6 +795,20 @@ module OpenAI
753
795
  OpenAI::Models::Beta::BetaTool::ImageGeneration::size
754
796
  ) -> OpenAI::Models::Beta::BetaTool::ImageGeneration::size
755
797
 
798
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
799
+ # selection is enabled, omitting this object uses the outer response model.
800
+ # Otherwise, the default SVG author is used and explicit model overrides are
801
+ # unavailable.
802
+ attr_reader svg: OpenAI::Beta::BetaTool::ImageGeneration::Svg?
803
+
804
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
805
+ # selection is enabled, omitting this object uses the outer response model.
806
+ # Otherwise, the default SVG author is used and explicit model overrides are
807
+ # unavailable.
808
+ def svg=: (
809
+ OpenAI::Beta::BetaTool::ImageGeneration::Svg
810
+ ) -> OpenAI::Beta::BetaTool::ImageGeneration::Svg
811
+
756
812
  # @param action
757
813
  # Whether to generate a new image or edit an existing image. Default: `auto`.
758
814
  # @param background
@@ -765,6 +821,17 @@ module OpenAI
765
821
  # backgrounds are available for supported GPT Image models. For `gpt-image-2` and
766
822
  # `gpt-image-2-2026-04-21`, this support is in preview. When using `transparent`,
767
823
  # set the output format to `png` or `webp`.
824
+ # @param complexity
825
+ # Computation spent planning the image, independently of rendering quality.
826
+ # Overrides the outer response's `reasoning.effort` for image generation. When
827
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
828
+ # configured default. For SVG output, controls the reference image, not the SVG
829
+ # author's reasoning.
830
+ # @param frame_count
831
+ # Number of GIF frames. Requires `output_format` to be `gif`. Default: 9.
832
+ # @param frame_duration_ms
833
+ # Duration of each GIF frame in milliseconds, rounded to 10 ms. Requires
834
+ # `output_format` to be `gif`. Default: 200.
768
835
  # @param input_fidelity
769
836
  # Control how much effort the model will exert to match the style and features,
770
837
  # especially facial features, of input images. Supports `high` and `low` on
@@ -777,8 +844,8 @@ module OpenAI
777
844
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
778
845
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
779
846
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
780
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
781
- # `gpt-image-2`.
847
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
848
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
782
849
  #
783
850
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
784
851
  # `gpt-image-2.5-flare` instead.
@@ -787,8 +854,12 @@ module OpenAI
787
854
  # @param output_compression
788
855
  # Compression level for the output image. Default: 100.
789
856
  # @param output_format
790
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
791
- # Default: `png`.
857
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
858
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
859
+ # selected format. GIF output does not support partial image streaming
860
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
861
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
862
+ # output.
792
863
  # @param partial_images
793
864
  # Number of partial images to generate in streaming mode, from 0 (default value)
794
865
  # to 3.
@@ -808,11 +879,19 @@ module OpenAI
808
879
  # satisfy the model's current pixel and edge limits. The standard sizes
809
880
  # `1024x1024`, `1536x1024`, and `1024x1536` are supported by the GPT image models;
810
881
  # `auto` is supported for models that allow automatic sizing.
882
+ # @param svg
883
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
884
+ # selection is enabled, omitting this object uses the outer response model.
885
+ # Otherwise, the default SVG author is used and explicit model overrides are
886
+ # unavailable.
811
887
  # @param type
812
888
  # The type of the image generation tool. Always `image_generation`.
813
889
  def initialize: (
814
890
  ?action: OpenAI::Models::Beta::BetaTool::ImageGeneration::action,
815
891
  ?background: OpenAI::Models::Beta::BetaTool::ImageGeneration::background,
892
+ ?complexity: OpenAI::Models::Beta::BetaTool::ImageGeneration::complexity,
893
+ ?frame_count: Integer,
894
+ ?frame_duration_ms: Integer,
816
895
  ?input_fidelity: OpenAI::Models::Beta::BetaTool::ImageGeneration::input_fidelity?,
817
896
  ?input_image_mask: OpenAI::Beta::BetaTool::ImageGeneration::InputImageMask,
818
897
  ?model: OpenAI::Models::Beta::BetaTool::ImageGeneration::model,
@@ -822,6 +901,7 @@ module OpenAI
822
901
  ?partial_images: Integer,
823
902
  ?quality: OpenAI::Models::Beta::BetaTool::ImageGeneration::quality,
824
903
  ?size: OpenAI::Models::Beta::BetaTool::ImageGeneration::size,
904
+ ?svg: OpenAI::Beta::BetaTool::ImageGeneration::Svg,
825
905
  ?type: :image_generation
826
906
  ) -> void
827
907
 
@@ -829,6 +909,9 @@ module OpenAI
829
909
  ?type: :image_generation,
830
910
  ?action: OpenAI::Models::Beta::BetaTool::ImageGeneration::action,
831
911
  ?background: OpenAI::Models::Beta::BetaTool::ImageGeneration::background,
912
+ ?complexity: OpenAI::Models::Beta::BetaTool::ImageGeneration::complexity,
913
+ ?frame_count: Integer,
914
+ ?frame_duration_ms: Integer,
832
915
  ?input_fidelity: OpenAI::Models::Beta::BetaTool::ImageGeneration::input_fidelity?,
833
916
  ?input_image_mask: OpenAI::Beta::BetaTool::ImageGeneration::InputImageMask,
834
917
  ?model: OpenAI::Models::Beta::BetaTool::ImageGeneration::model,
@@ -837,7 +920,8 @@ module OpenAI
837
920
  ?output_format: OpenAI::Models::Beta::BetaTool::ImageGeneration::output_format,
838
921
  ?partial_images: Integer,
839
922
  ?quality: OpenAI::Models::Beta::BetaTool::ImageGeneration::quality,
840
- ?size: OpenAI::Models::Beta::BetaTool::ImageGeneration::size
923
+ ?size: OpenAI::Models::Beta::BetaTool::ImageGeneration::size,
924
+ ?svg: OpenAI::Beta::BetaTool::ImageGeneration::Svg
841
925
  }
842
926
 
843
927
  type action = :generate | :edit | :auto
@@ -864,6 +948,18 @@ module OpenAI
864
948
  def self?.values: -> ::Array[OpenAI::Models::Beta::BetaTool::ImageGeneration::background]
865
949
  end
866
950
 
951
+ type complexity = :low | :medium | :high
952
+
953
+ module Complexity
954
+ extend OpenAI::Internal::Type::Enum
955
+
956
+ LOW: :low
957
+ MEDIUM: :medium
958
+ HIGH: :high
959
+
960
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaTool::ImageGeneration::complexity]
961
+ end
962
+
867
963
  type input_fidelity = :high | :low
868
964
 
869
965
  module InputFidelity
@@ -909,6 +1005,8 @@ module OpenAI
909
1005
  | :"gpt-image-2.5-sunburst-2026-09-08"
910
1006
  | :"gpt-image-2.5-flare"
911
1007
  | :"gpt-image-2.5-flare-2026-09-08"
1008
+ | :"gpt-image-2.6-sunburst"
1009
+ | :"gpt-image-2.6-flare"
912
1010
  | :"gpt-image-1.5"
913
1011
  | :"chatgpt-image-latest"
914
1012
 
@@ -925,6 +1023,8 @@ module OpenAI
925
1023
  GPT_IMAGE_2_5_SUNBURST_2026_09_08: :"gpt-image-2.5-sunburst-2026-09-08"
926
1024
  GPT_IMAGE_2_5_FLARE: :"gpt-image-2.5-flare"
927
1025
  GPT_IMAGE_2_5_FLARE_2026_09_08: :"gpt-image-2.5-flare-2026-09-08"
1026
+ GPT_IMAGE_2_6_SUNBURST: :"gpt-image-2.6-sunburst"
1027
+ GPT_IMAGE_2_6_FLARE: :"gpt-image-2.6-flare"
928
1028
  GPT_IMAGE_1_5: :"gpt-image-1.5"
929
1029
  CHATGPT_IMAGE_LATEST: :"chatgpt-image-latest"
930
1030
  end
@@ -940,7 +1040,7 @@ module OpenAI
940
1040
  def self?.values: -> ::Array[OpenAI::Models::Beta::BetaTool::ImageGeneration::moderation]
941
1041
  end
942
1042
 
943
- type output_format = :png | :webp | :jpeg
1043
+ type output_format = :png | :webp | :jpeg | :gif | :svg
944
1044
 
945
1045
  module OutputFormat
946
1046
  extend OpenAI::Internal::Type::Enum
@@ -948,6 +1048,8 @@ module OpenAI
948
1048
  PNG: :png
949
1049
  WEBP: :webp
950
1050
  JPEG: :jpeg
1051
+ GIF: :gif
1052
+ SVG: :svg
951
1053
 
952
1054
  def self?.values: -> ::Array[OpenAI::Models::Beta::BetaTool::ImageGeneration::output_format]
953
1055
  end
@@ -980,6 +1082,77 @@ module OpenAI
980
1082
  SIZE_1536X1024: :"1536x1024"
981
1083
  AUTO: :auto
982
1084
  end
1085
+
1086
+ type svg =
1087
+ {
1088
+ ?model: String,
1089
+ ?reasoning: OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning?
1090
+ }
1091
+
1092
+ class Svg < OpenAI::Internal::Type::BaseModel
1093
+ attr_reader model: String?
1094
+
1095
+ def model=: (String) -> String
1096
+
1097
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
1098
+ # default in both Images and Responses.
1099
+ attr_accessor reasoning: OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning?
1100
+
1101
+ # @param reasoning
1102
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
1103
+ # default in both Images and Responses.
1104
+ def initialize: (
1105
+ ?model: String,
1106
+ ?reasoning: OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning?
1107
+ ) -> void
1108
+
1109
+ def to_hash: -> {
1110
+ ?model: String,
1111
+ ?reasoning: OpenAI::Beta::BetaTool::ImageGeneration::Svg::Reasoning?
1112
+ }
1113
+
1114
+ type reasoning =
1115
+ {
1116
+ ?effort: OpenAI::Models::Beta::BetaTool::ImageGeneration::Svg::Reasoning::effort
1117
+ }
1118
+
1119
+ class Reasoning < OpenAI::Internal::Type::BaseModel
1120
+ # Controls how much effort the model should spend on reasoning for this request.
1121
+ attr_reader effort: OpenAI::Models::Beta::BetaTool::ImageGeneration::Svg::Reasoning::effort?
1122
+
1123
+ # Controls how much effort the model should spend on reasoning for this request.
1124
+ def effort=: (
1125
+ OpenAI::Models::Beta::BetaTool::ImageGeneration::Svg::Reasoning::effort
1126
+ ) -> OpenAI::Models::Beta::BetaTool::ImageGeneration::Svg::Reasoning::effort
1127
+
1128
+ # @param effort
1129
+ # Controls how much effort the model should spend on reasoning for this request.
1130
+ def initialize: (
1131
+ ?effort: OpenAI::Models::Beta::BetaTool::ImageGeneration::Svg::Reasoning::effort
1132
+ ) -> void
1133
+
1134
+ def to_hash: -> {
1135
+ ?effort: OpenAI::Models::Beta::BetaTool::ImageGeneration::Svg::Reasoning::effort
1136
+ }
1137
+
1138
+ type effort =
1139
+ :none | :minimal | :low | :medium | :high | :xhigh | :max
1140
+
1141
+ module Effort
1142
+ extend OpenAI::Internal::Type::Enum
1143
+
1144
+ NONE: :none
1145
+ MINIMAL: :minimal
1146
+ LOW: :low
1147
+ MEDIUM: :medium
1148
+ HIGH: :high
1149
+ XHIGH: :xhigh
1150
+ MAX: :max
1151
+
1152
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaTool::ImageGeneration::Svg::Reasoning::effort]
1153
+ end
1154
+ end
1155
+ end
983
1156
  end
984
1157
 
985
1158
  type local_shell = { ?type: :local_shell }
@@ -4,6 +4,7 @@ module OpenAI
4
4
  type response_compact_params =
5
5
  {
6
6
  model: OpenAI::Models::Beta::ResponseCompactParams::model?,
7
+ ?image: OpenAI::Beta::ResponseCompactParams::Image,
7
8
  ?input: OpenAI::Models::Beta::ResponseCompactParams::input?,
8
9
  ?instructions: String?,
9
10
  ?previous_response_id: String?,
@@ -26,6 +27,14 @@ module OpenAI
26
27
  # compare available models.
27
28
  attr_accessor model: OpenAI::Models::Beta::ResponseCompactParams::model?
28
29
 
30
+ # Request level image options.
31
+ attr_reader image: OpenAI::Beta::ResponseCompactParams::Image?
32
+
33
+ # Request level image options.
34
+ def image=: (
35
+ OpenAI::Beta::ResponseCompactParams::Image
36
+ ) -> OpenAI::Beta::ResponseCompactParams::Image
37
+
29
38
  # Text, image, or file inputs to the model, used to generate a response
30
39
  attr_accessor input: OpenAI::Models::Beta::ResponseCompactParams::input?
31
40
 
@@ -88,6 +97,8 @@ module OpenAI
88
97
  # price points. Refer to the
89
98
  # [model guide](https://developers.openai.com/api/docs/models) to browse and
90
99
  # compare available models.
100
+ # @param image
101
+ # Request level image options.
91
102
  # @param input
92
103
  # Text, image, or file inputs to the model, used to generate a response
93
104
  # @param instructions
@@ -133,6 +144,7 @@ module OpenAI
133
144
  # the parameter.
134
145
  def initialize: (
135
146
  model: OpenAI::Models::Beta::ResponseCompactParams::model?,
147
+ ?image: OpenAI::Beta::ResponseCompactParams::Image,
136
148
  ?input: OpenAI::Models::Beta::ResponseCompactParams::input?,
137
149
  ?instructions: String?,
138
150
  ?previous_response_id: String?,
@@ -146,6 +158,7 @@ module OpenAI
146
158
 
147
159
  def to_hash: -> {
148
160
  model: OpenAI::Models::Beta::ResponseCompactParams::model?,
161
+ ?image: OpenAI::Beta::ResponseCompactParams::Image,
149
162
  ?input: OpenAI::Models::Beta::ResponseCompactParams::input?,
150
163
  ?instructions: String?,
151
164
  ?previous_response_id: String?,
@@ -387,6 +400,49 @@ module OpenAI
387
400
  GPT_ROSALIND_RESEARCH: :"gpt-rosalind-research"
388
401
  end
389
402
 
403
+ type image =
404
+ {
405
+ ?context_compression: OpenAI::Models::Beta::ResponseCompactParams::Image::context_compression
406
+ }
407
+
408
+ class Image < OpenAI::Internal::Type::BaseModel
409
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
410
+ # transport, and input to select a policy. Use `enabled` to require compression
411
+ # support or `disabled` to turn it off.
412
+ attr_reader context_compression: OpenAI::Models::Beta::ResponseCompactParams::Image::context_compression?
413
+
414
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
415
+ # transport, and input to select a policy. Use `enabled` to require compression
416
+ # support or `disabled` to turn it off.
417
+ def context_compression=: (
418
+ OpenAI::Models::Beta::ResponseCompactParams::Image::context_compression
419
+ ) -> OpenAI::Models::Beta::ResponseCompactParams::Image::context_compression
420
+
421
+ # @param context_compression
422
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
423
+ # transport, and input to select a policy. Use `enabled` to require compression
424
+ # support or `disabled` to turn it off.
425
+ def initialize: (
426
+ ?context_compression: OpenAI::Models::Beta::ResponseCompactParams::Image::context_compression
427
+ ) -> void
428
+
429
+ def to_hash: -> {
430
+ ?context_compression: OpenAI::Models::Beta::ResponseCompactParams::Image::context_compression
431
+ }
432
+
433
+ type context_compression = :auto | :enabled | :disabled
434
+
435
+ module ContextCompression
436
+ extend OpenAI::Internal::Type::Enum
437
+
438
+ AUTO: :auto
439
+ ENABLED: :enabled
440
+ DISABLED: :disabled
441
+
442
+ def self?.values: -> ::Array[OpenAI::Models::Beta::ResponseCompactParams::Image::context_compression]
443
+ end
444
+ end
445
+
390
446
  type input =
391
447
  String | ::Array[OpenAI::Models::Beta::beta_response_input_item]
392
448
 
@@ -7,6 +7,7 @@ module OpenAI
7
7
  ?background: bool?,
8
8
  ?context_management: ::Array[OpenAI::Beta::ResponseCreateParams::ContextManagement]?,
9
9
  ?conversation: OpenAI::Models::Beta::ResponseCreateParams::conversation?,
10
+ ?image: OpenAI::Beta::ResponseCreateParams::Image,
10
11
  ?include: ::Array[OpenAI::Models::Beta::beta_response_includable]?,
11
12
  ?input: OpenAI::Models::Beta::ResponseCreateParams::input,
12
13
  ?instructions: String?,
@@ -64,6 +65,14 @@ module OpenAI
64
65
  # response completes.
65
66
  attr_accessor conversation: OpenAI::Models::Beta::ResponseCreateParams::conversation?
66
67
 
68
+ # Request level image options.
69
+ attr_reader image: OpenAI::Beta::ResponseCreateParams::Image?
70
+
71
+ # Request level image options.
72
+ def image=: (
73
+ OpenAI::Beta::ResponseCreateParams::Image
74
+ ) -> OpenAI::Beta::ResponseCreateParams::Image
75
+
67
76
  # Specify additional output data to include in the model response. Currently
68
77
  # supported values are:
69
78
  #
@@ -401,6 +410,8 @@ module OpenAI
401
410
  # prepended to `input_items` for this response request. Input items and output
402
411
  # items from this response are automatically added to this conversation after this
403
412
  # response completes.
413
+ # @param image
414
+ # Request level image options.
404
415
  # @param include
405
416
  # Specify additional output data to include in the model response. Currently
406
417
  # supported values are:
@@ -613,6 +624,7 @@ module OpenAI
613
624
  ?background: bool?,
614
625
  ?context_management: ::Array[OpenAI::Beta::ResponseCreateParams::ContextManagement]?,
615
626
  ?conversation: OpenAI::Models::Beta::ResponseCreateParams::conversation?,
627
+ ?image: OpenAI::Beta::ResponseCreateParams::Image,
616
628
  ?include: ::Array[OpenAI::Models::Beta::beta_response_includable]?,
617
629
  ?input: OpenAI::Models::Beta::ResponseCreateParams::input,
618
630
  ?instructions: String?,
@@ -651,6 +663,7 @@ module OpenAI
651
663
  ?background: bool?,
652
664
  ?context_management: ::Array[OpenAI::Beta::ResponseCreateParams::ContextManagement]?,
653
665
  ?conversation: OpenAI::Models::Beta::ResponseCreateParams::conversation?,
666
+ ?image: OpenAI::Beta::ResponseCreateParams::Image,
654
667
  ?include: ::Array[OpenAI::Models::Beta::beta_response_includable]?,
655
668
  ?input: OpenAI::Models::Beta::ResponseCreateParams::input,
656
669
  ?instructions: String?,
@@ -773,6 +786,49 @@ module OpenAI
773
786
  def self?.variants: -> ::Array[OpenAI::Models::Beta::ResponseCreateParams::conversation]
774
787
  end
775
788
 
789
+ type image =
790
+ {
791
+ ?context_compression: OpenAI::Models::Beta::ResponseCreateParams::Image::context_compression
792
+ }
793
+
794
+ class Image < OpenAI::Internal::Type::BaseModel
795
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
796
+ # transport, and input to select a policy. Use `enabled` to require compression
797
+ # support or `disabled` to turn it off.
798
+ attr_reader context_compression: OpenAI::Models::Beta::ResponseCreateParams::Image::context_compression?
799
+
800
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
801
+ # transport, and input to select a policy. Use `enabled` to require compression
802
+ # support or `disabled` to turn it off.
803
+ def context_compression=: (
804
+ OpenAI::Models::Beta::ResponseCreateParams::Image::context_compression
805
+ ) -> OpenAI::Models::Beta::ResponseCreateParams::Image::context_compression
806
+
807
+ # @param context_compression
808
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
809
+ # transport, and input to select a policy. Use `enabled` to require compression
810
+ # support or `disabled` to turn it off.
811
+ def initialize: (
812
+ ?context_compression: OpenAI::Models::Beta::ResponseCreateParams::Image::context_compression
813
+ ) -> void
814
+
815
+ def to_hash: -> {
816
+ ?context_compression: OpenAI::Models::Beta::ResponseCreateParams::Image::context_compression
817
+ }
818
+
819
+ type context_compression = :auto | :enabled | :disabled
820
+
821
+ module ContextCompression
822
+ extend OpenAI::Internal::Type::Enum
823
+
824
+ AUTO: :auto
825
+ ENABLED: :enabled
826
+ DISABLED: :disabled
827
+
828
+ def self?.values: -> ::Array[OpenAI::Models::Beta::ResponseCreateParams::Image::context_compression]
829
+ end
830
+ end
831
+
776
832
  type input = String | OpenAI::Models::Beta::beta_response_input
777
833
 
778
834
  module Input
@@ -27,6 +27,7 @@ module OpenAI
27
27
 
28
28
  type code =
29
29
  :context_length_exceeded
30
+ | :max_output_tokens
30
31
  | :session_budget_exceeded
31
32
  | :usage_limit_exceeded
32
33
  | :project_spend_limit_exceeded
@@ -56,6 +57,9 @@ module OpenAI
56
57
  # The request exceeds the model's context window.
57
58
  CONTEXT_LENGTH_EXCEEDED: :context_length_exceeded
58
59
 
60
+ # The model reached its output token limit before finishing the response.
61
+ MAX_OUTPUT_TOKENS: :max_output_tokens
62
+
59
63
  # The session has reached its usage budget.
60
64
  SESSION_BUDGET_EXCEEDED: :session_budget_exceeded
61
65
 
@@ -49,7 +49,8 @@ module OpenAI
49
49
  ?output_format: OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::output_format?,
50
50
  ?quality: OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::quality?,
51
51
  ?revised_prompt: String?,
52
- ?size: OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::size?
52
+ ?size: OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::size?,
53
+ ?svg_usage: OpenAI::Conversations::ConversationItem::ImageGenerationCall::SvgUsage
53
54
  }
54
55
 
55
56
  class ImageGenerationCall < OpenAI::Internal::Type::BaseModel
@@ -92,6 +93,12 @@ module OpenAI
92
93
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
93
94
  attr_accessor size: OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::size?
94
95
 
96
+ attr_reader svg_usage: OpenAI::Conversations::ConversationItem::ImageGenerationCall::SvgUsage?
97
+
98
+ def svg_usage=: (
99
+ OpenAI::Conversations::ConversationItem::ImageGenerationCall::SvgUsage
100
+ ) -> OpenAI::Conversations::ConversationItem::ImageGenerationCall::SvgUsage
101
+
95
102
  # @param id
96
103
  # The unique ID of the image generation call.
97
104
  # @param result
@@ -126,6 +133,7 @@ module OpenAI
126
133
  ?quality: OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::quality?,
127
134
  ?revised_prompt: String?,
128
135
  ?size: OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::size?,
136
+ ?svg_usage: OpenAI::Conversations::ConversationItem::ImageGenerationCall::SvgUsage,
129
137
  ?type: :image_generation_call
130
138
  ) -> void
131
139
 
@@ -140,7 +148,8 @@ module OpenAI
140
148
  ?output_format: OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::output_format?,
141
149
  ?quality: OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::quality?,
142
150
  ?revised_prompt: String?,
143
- ?size: OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::size?
151
+ ?size: OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::size?,
152
+ ?svg_usage: OpenAI::Conversations::ConversationItem::ImageGenerationCall::SvgUsage
144
153
  }
145
154
 
146
155
  type status = :in_progress | :completed | :generating | :failed
@@ -277,7 +286,7 @@ module OpenAI
277
286
  end
278
287
  end
279
288
 
280
- type output_format = :png | :webp | :jpeg
289
+ type output_format = :png | :webp | :jpeg | :gif | :svg
281
290
 
282
291
  module OutputFormat
283
292
  extend OpenAI::Internal::Type::Enum
@@ -285,6 +294,8 @@ module OpenAI
285
294
  PNG: :png
286
295
  WEBP: :webp
287
296
  JPEG: :jpeg
297
+ GIF: :gif
298
+ SVG: :svg
288
299
 
289
300
  def self?.values: -> ::Array[OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::output_format]
290
301
  end
@@ -315,6 +326,43 @@ module OpenAI
315
326
  SIZE_1024X1536: :"1024x1536"
316
327
  SIZE_1536X1024: :"1536x1024"
317
328
  end
329
+
330
+ type svg_usage =
331
+ {
332
+ input_tokens: Integer,
333
+ model: String,
334
+ output_tokens: Integer,
335
+ reasoning_tokens: Integer,
336
+ total_tokens: Integer
337
+ }
338
+
339
+ class SvgUsage < OpenAI::Internal::Type::BaseModel
340
+ attr_accessor input_tokens: Integer
341
+
342
+ attr_accessor model: String
343
+
344
+ attr_accessor output_tokens: Integer
345
+
346
+ attr_accessor reasoning_tokens: Integer
347
+
348
+ attr_accessor total_tokens: Integer
349
+
350
+ def initialize: (
351
+ input_tokens: Integer,
352
+ model: String,
353
+ output_tokens: Integer,
354
+ reasoning_tokens: Integer,
355
+ total_tokens: Integer
356
+ ) -> void
357
+
358
+ def to_hash: -> {
359
+ input_tokens: Integer,
360
+ model: String,
361
+ output_tokens: Integer,
362
+ reasoning_tokens: Integer,
363
+ total_tokens: Integer
364
+ }
365
+ end
318
366
  end
319
367
 
320
368
  type additional_tools =