openai 0.117.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 (154) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -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/admin/organization/projects/project_optional_service_tier.rb +24 -0
  7. data/lib/openai/models/admin/organization/projects/project_service_tier_settings.rb +88 -0
  8. data/lib/openai/models/admin/organization/projects/service_tier_setting_retrieve_params.rb +29 -0
  9. data/lib/openai/models/admin/organization/projects/service_tier_setting_update_params.rb +92 -0
  10. data/lib/openai/models/all_models.rb +1 -0
  11. data/lib/openai/models/beta/beta_compacted_response.rb +34 -1
  12. data/lib/openai/models/beta/beta_response.rb +35 -1
  13. data/lib/openai/models/beta/beta_response_input_item.rb +45 -1
  14. data/lib/openai/models/beta/beta_response_item.rb +45 -1
  15. data/lib/openai/models/beta/beta_response_output_item.rb +45 -1
  16. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +186 -13
  17. data/lib/openai/models/beta/beta_response_usage.rb +33 -1
  18. data/lib/openai/models/beta/beta_responses_client_event.rb +58 -10
  19. data/lib/openai/models/beta/beta_tool.rb +164 -13
  20. data/lib/openai/models/beta/response_compact_params.rb +47 -4
  21. data/lib/openai/models/beta/response_create_params.rb +54 -10
  22. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  23. data/lib/openai/models/chat/completion_create_params.rb +3 -3
  24. data/lib/openai/models/conversations/conversation_item.rb +45 -1
  25. data/lib/openai/models/image_edit_params.rb +72 -16
  26. data/lib/openai/models/image_generate_params.rb +160 -8
  27. data/lib/openai/models/image_model.rb +2 -0
  28. data/lib/openai/models/images_response.rb +55 -4
  29. data/lib/openai/models/realtime/realtime_audio_config_input.rb +14 -1
  30. data/lib/openai/models/realtime/realtime_session_create_response.rb +14 -1
  31. data/lib/openai/models/realtime/realtime_transcription_session_audio_input.rb +14 -1
  32. data/lib/openai/models/realtime/realtime_transcription_session_create_response.rb +14 -1
  33. data/lib/openai/models/realtime/realtime_translation_session.rb +14 -1
  34. data/lib/openai/models/realtime/realtime_translation_session_create_request.rb +14 -1
  35. data/lib/openai/models/realtime/realtime_translation_session_update_request.rb +14 -1
  36. data/lib/openai/models/responses/compacted_response.rb +37 -1
  37. data/lib/openai/models/responses/response.rb +35 -1
  38. data/lib/openai/models/responses/response_compact_params.rb +53 -4
  39. data/lib/openai/models/responses/response_create_params.rb +57 -10
  40. data/lib/openai/models/responses/response_input_item.rb +45 -1
  41. data/lib/openai/models/responses/response_item.rb +45 -1
  42. data/lib/openai/models/responses/response_output_item.rb +45 -1
  43. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +186 -13
  44. data/lib/openai/models/responses/response_usage.rb +33 -1
  45. data/lib/openai/models/responses/responses_client_event.rb +58 -10
  46. data/lib/openai/models/responses/tool.rb +164 -13
  47. data/lib/openai/models/responses_model.rb +1 -0
  48. data/lib/openai/resources/admin/organization/projects/service_tier_settings.rb +77 -0
  49. data/lib/openai/resources/admin/organization/projects.rb +6 -0
  50. data/lib/openai/resources/admin/organization.rb +6 -6
  51. data/lib/openai/resources/beta/responses.rb +18 -9
  52. data/lib/openai/resources/chat/completions.rb +2 -2
  53. data/lib/openai/resources/images.rb +102 -18
  54. data/lib/openai/resources/responses.rb +15 -6
  55. data/lib/openai/version.rb +1 -1
  56. data/lib/openai.rb +5 -0
  57. data/rbi/openai/models/admin/organization/projects/project_optional_service_tier.rbi +45 -0
  58. data/rbi/openai/models/admin/organization/projects/project_service_tier_settings.rbi +143 -0
  59. data/rbi/openai/models/admin/organization/projects/service_tier_setting_retrieve_params.rbi +63 -0
  60. data/rbi/openai/models/admin/organization/projects/service_tier_setting_update_params.rbi +183 -0
  61. data/rbi/openai/models/all_models.rbi +1 -0
  62. data/rbi/openai/models/beta/beta_compacted_response.rbi +67 -1
  63. data/rbi/openai/models/beta/beta_response.rbi +63 -0
  64. data/rbi/openai/models/beta/beta_response_input_item.rbi +82 -1
  65. data/rbi/openai/models/beta/beta_response_item.rbi +82 -1
  66. data/rbi/openai/models/beta/beta_response_output_item.rbi +82 -1
  67. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +338 -13
  68. data/rbi/openai/models/beta/beta_response_usage.rbi +66 -3
  69. data/rbi/openai/models/beta/beta_responses_client_event.rbi +118 -9
  70. data/rbi/openai/models/beta/beta_tool.rbi +245 -13
  71. data/rbi/openai/models/beta/response_compact_params.rbi +84 -3
  72. data/rbi/openai/models/beta/response_create_params.rbi +91 -9
  73. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  74. data/rbi/openai/models/chat/completion_create_params.rbi +3 -3
  75. data/rbi/openai/models/conversations/conversation_item.rbi +84 -1
  76. data/rbi/openai/models/image_edit_params.rbi +76 -14
  77. data/rbi/openai/models/image_generate_params.rbi +218 -6
  78. data/rbi/openai/models/image_model.rbi +2 -0
  79. data/rbi/openai/models/images_response.rbi +90 -3
  80. data/rbi/openai/models/realtime/realtime_audio_config_input.rbi +17 -1
  81. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +17 -1
  82. data/rbi/openai/models/realtime/realtime_transcription_session_audio_input.rbi +17 -1
  83. data/rbi/openai/models/realtime/realtime_transcription_session_create_response.rbi +17 -1
  84. data/rbi/openai/models/realtime/realtime_translation_session.rbi +19 -3
  85. data/rbi/openai/models/realtime/realtime_translation_session_create_request.rbi +19 -3
  86. data/rbi/openai/models/realtime/realtime_translation_session_update_request.rbi +19 -3
  87. data/rbi/openai/models/responses/compacted_response.rbi +67 -1
  88. data/rbi/openai/models/responses/response.rbi +63 -0
  89. data/rbi/openai/models/responses/response_compact_params.rbi +91 -3
  90. data/rbi/openai/models/responses/response_create_params.rbi +97 -9
  91. data/rbi/openai/models/responses/response_input_item.rbi +82 -1
  92. data/rbi/openai/models/responses/response_item.rbi +82 -1
  93. data/rbi/openai/models/responses/response_output_item.rbi +82 -1
  94. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +340 -13
  95. data/rbi/openai/models/responses/response_usage.rbi +66 -3
  96. data/rbi/openai/models/responses/responses_client_event.rbi +118 -9
  97. data/rbi/openai/models/responses/tool.rbi +248 -13
  98. data/rbi/openai/models/responses_model.rbi +1 -0
  99. data/rbi/openai/resources/admin/organization/projects/service_tier_settings.rbi +67 -0
  100. data/rbi/openai/resources/admin/organization/projects.rbi +3 -0
  101. data/rbi/openai/resources/admin/organization.rbi +3 -3
  102. data/rbi/openai/resources/beta/responses.rbi +15 -6
  103. data/rbi/openai/resources/chat/completions.rbi +2 -2
  104. data/rbi/openai/resources/images.rbi +98 -14
  105. data/rbi/openai/resources/responses.rbi +14 -3
  106. data/sig/openai/models/admin/organization/projects/project_optional_service_tier.rbs +23 -0
  107. data/sig/openai/models/admin/organization/projects/project_service_tier_settings.rbs +72 -0
  108. data/sig/openai/models/admin/organization/projects/service_tier_setting_retrieve_params.rbs +32 -0
  109. data/sig/openai/models/admin/organization/projects/service_tier_setting_update_params.rbs +91 -0
  110. data/sig/openai/models/all_models.rbs +2 -0
  111. data/sig/openai/models/beta/beta_compacted_response.rbs +42 -2
  112. data/sig/openai/models/beta/beta_response.rbs +42 -1
  113. data/sig/openai/models/beta/beta_response_input_item.rbs +51 -3
  114. data/sig/openai/models/beta/beta_response_item.rbs +51 -3
  115. data/sig/openai/models/beta/beta_response_output_item.rbs +51 -3
  116. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +188 -15
  117. data/sig/openai/models/beta/beta_response_usage.rbs +40 -3
  118. data/sig/openai/models/beta/beta_responses_client_event.rbs +67 -10
  119. data/sig/openai/models/beta/beta_tool.rbs +188 -15
  120. data/sig/openai/models/beta/response_compact_params.rbs +58 -2
  121. data/sig/openai/models/beta/response_create_params.rbs +67 -10
  122. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  123. data/sig/openai/models/chat/completion_create_params.rbs +3 -3
  124. data/sig/openai/models/conversations/conversation_item.rbs +51 -3
  125. data/sig/openai/models/image_edit_params.rbs +63 -12
  126. data/sig/openai/models/image_generate_params.rbs +150 -5
  127. data/sig/openai/models/image_model.rbs +4 -0
  128. data/sig/openai/models/images_response.rbs +59 -4
  129. data/sig/openai/models/realtime/realtime_audio_config_input.rbs +20 -1
  130. data/sig/openai/models/realtime/realtime_session_create_response.rbs +20 -1
  131. data/sig/openai/models/realtime/realtime_transcription_session_audio_input.rbs +20 -1
  132. data/sig/openai/models/realtime/realtime_transcription_session_create_response.rbs +20 -1
  133. data/sig/openai/models/realtime/realtime_translation_session.rbs +22 -3
  134. data/sig/openai/models/realtime/realtime_translation_session_create_request.rbs +22 -3
  135. data/sig/openai/models/realtime/realtime_translation_session_update_request.rbs +22 -3
  136. data/sig/openai/models/responses/compacted_response.rbs +42 -2
  137. data/sig/openai/models/responses/response.rbs +42 -1
  138. data/sig/openai/models/responses/response_compact_params.rbs +60 -2
  139. data/sig/openai/models/responses/response_create_params.rbs +67 -10
  140. data/sig/openai/models/responses/response_input_item.rbs +51 -3
  141. data/sig/openai/models/responses/response_item.rbs +51 -3
  142. data/sig/openai/models/responses/response_output_item.rbs +51 -3
  143. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +188 -15
  144. data/sig/openai/models/responses/response_usage.rbs +40 -3
  145. data/sig/openai/models/responses/responses_client_event.rbs +67 -10
  146. data/sig/openai/models/responses/tool.rbs +188 -15
  147. data/sig/openai/models/responses_model.rbs +2 -0
  148. data/sig/openai/resources/admin/organization/projects/service_tier_settings.rbs +25 -0
  149. data/sig/openai/resources/admin/organization/projects.rbs +2 -0
  150. data/sig/openai/resources/admin/organization.rbs +2 -2
  151. data/sig/openai/resources/beta/responses.rbs +3 -0
  152. data/sig/openai/resources/images.rbs +14 -0
  153. data/sig/openai/resources/responses.rbs +4 -0
  154. metadata +16 -1
@@ -671,6 +671,9 @@ module OpenAI
671
671
  ?type: :image_generation,
672
672
  ?action: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::action,
673
673
  ?background: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::background,
674
+ ?complexity: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::complexity,
675
+ ?frame_count: Integer,
676
+ ?frame_duration_ms: Integer,
674
677
  ?input_fidelity: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::input_fidelity?,
675
678
  ?input_image_mask: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::InputImageMask,
676
679
  ?model: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::model,
@@ -679,7 +682,8 @@ module OpenAI
679
682
  ?output_format: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::output_format,
680
683
  ?partial_images: Integer,
681
684
  ?quality: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::quality,
682
- ?size: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::size
685
+ ?size: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::size,
686
+ ?svg: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg
683
687
  }
684
688
 
685
689
  class ImageGeneration < OpenAI::Internal::Type::BaseModel
@@ -718,6 +722,36 @@ module OpenAI
718
722
  OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::background
719
723
  ) -> OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::background
720
724
 
725
+ # Computation spent planning the image, independently of rendering quality.
726
+ # Overrides the outer response's `reasoning.effort` for image generation. When
727
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
728
+ # configured default. For SVG output, controls the reference image, not the SVG
729
+ # author's reasoning.
730
+ attr_reader complexity: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::complexity?
731
+
732
+ # Computation spent planning the image, independently of rendering quality.
733
+ # Overrides the outer response's `reasoning.effort` for image generation. When
734
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
735
+ # configured default. For SVG output, controls the reference image, not the SVG
736
+ # author's reasoning.
737
+ def complexity=: (
738
+ OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::complexity
739
+ ) -> OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::complexity
740
+
741
+ # Number of GIF frames. Requires `output_format` to be `gif`. Default: 9.
742
+ attr_reader frame_count: Integer?
743
+
744
+ # Number of GIF frames. Requires `output_format` to be `gif`. Default: 9.
745
+ def frame_count=: (Integer) -> Integer
746
+
747
+ # Duration of each GIF frame in milliseconds, rounded to 10 ms. Requires
748
+ # `output_format` to be `gif`. Default: 200.
749
+ attr_reader frame_duration_ms: Integer?
750
+
751
+ # Duration of each GIF frame in milliseconds, rounded to 10 ms. Requires
752
+ # `output_format` to be `gif`. Default: 200.
753
+ def frame_duration_ms=: (Integer) -> Integer
754
+
721
755
  # Control how much effort the model will exert to match the style and features,
722
756
  # especially facial features, of input images. Supports `high` and `low` on
723
757
  # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
@@ -737,8 +771,8 @@ module OpenAI
737
771
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
738
772
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
739
773
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
740
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
741
- # `gpt-image-2`.
774
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
775
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
742
776
  #
743
777
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
744
778
  # `gpt-image-2.5-flare` instead.
@@ -747,8 +781,8 @@ module OpenAI
747
781
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
748
782
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
749
783
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
750
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
751
- # `gpt-image-2`.
784
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
785
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
752
786
  #
753
787
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
754
788
  # `gpt-image-2.5-flare` instead.
@@ -770,12 +804,20 @@ module OpenAI
770
804
  # Compression level for the output image. Default: 100.
771
805
  def output_compression=: (Integer) -> Integer
772
806
 
773
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
774
- # Default: `png`.
807
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
808
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
809
+ # selected format. GIF output does not support partial image streaming
810
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
811
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
812
+ # output.
775
813
  attr_reader output_format: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::output_format?
776
814
 
777
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
778
- # Default: `png`.
815
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
816
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
817
+ # selected format. GIF output does not support partial image streaming
818
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
819
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
820
+ # output.
779
821
  def output_format=: (
780
822
  OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::output_format
781
823
  ) -> OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::output_format
@@ -828,6 +870,20 @@ module OpenAI
828
870
  OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::size
829
871
  ) -> OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::size
830
872
 
873
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
874
+ # selection is enabled, omitting this object uses the outer response model.
875
+ # Otherwise, the default SVG author is used and explicit model overrides are
876
+ # unavailable.
877
+ attr_reader svg: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg?
878
+
879
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
880
+ # selection is enabled, omitting this object uses the outer response model.
881
+ # Otherwise, the default SVG author is used and explicit model overrides are
882
+ # unavailable.
883
+ def svg=: (
884
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg
885
+ ) -> OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg
886
+
831
887
  # @param action
832
888
  # Whether to generate a new image or edit an existing image. Default: `auto`.
833
889
  # @param background
@@ -840,6 +896,17 @@ module OpenAI
840
896
  # backgrounds are available for supported GPT Image models. For `gpt-image-2` and
841
897
  # `gpt-image-2-2026-04-21`, this support is in preview. When using `transparent`,
842
898
  # set the output format to `png` or `webp`.
899
+ # @param complexity
900
+ # Computation spent planning the image, independently of rendering quality.
901
+ # Overrides the outer response's `reasoning.effort` for image generation. When
902
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
903
+ # configured default. For SVG output, controls the reference image, not the SVG
904
+ # author's reasoning.
905
+ # @param frame_count
906
+ # Number of GIF frames. Requires `output_format` to be `gif`. Default: 9.
907
+ # @param frame_duration_ms
908
+ # Duration of each GIF frame in milliseconds, rounded to 10 ms. Requires
909
+ # `output_format` to be `gif`. Default: 200.
843
910
  # @param input_fidelity
844
911
  # Control how much effort the model will exert to match the style and features,
845
912
  # especially facial features, of input images. Supports `high` and `low` on
@@ -852,8 +919,8 @@ module OpenAI
852
919
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
853
920
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
854
921
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
855
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
856
- # `gpt-image-2`.
922
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
923
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
857
924
  #
858
925
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
859
926
  # `gpt-image-2.5-flare` instead.
@@ -862,8 +929,12 @@ module OpenAI
862
929
  # @param output_compression
863
930
  # Compression level for the output image. Default: 100.
864
931
  # @param output_format
865
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
866
- # Default: `png`.
932
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
933
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
934
+ # selected format. GIF output does not support partial image streaming
935
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
936
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
937
+ # output.
867
938
  # @param partial_images
868
939
  # Number of partial images to generate in streaming mode, from 0 (default value)
869
940
  # to 3.
@@ -883,11 +954,19 @@ module OpenAI
883
954
  # satisfy the model's current pixel and edge limits. The standard sizes
884
955
  # `1024x1024`, `1536x1024`, and `1024x1536` are supported by the GPT image models;
885
956
  # `auto` is supported for models that allow automatic sizing.
957
+ # @param svg
958
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
959
+ # selection is enabled, omitting this object uses the outer response model.
960
+ # Otherwise, the default SVG author is used and explicit model overrides are
961
+ # unavailable.
886
962
  # @param type
887
963
  # The type of the image generation tool. Always `image_generation`.
888
964
  def initialize: (
889
965
  ?action: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::action,
890
966
  ?background: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::background,
967
+ ?complexity: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::complexity,
968
+ ?frame_count: Integer,
969
+ ?frame_duration_ms: Integer,
891
970
  ?input_fidelity: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::input_fidelity?,
892
971
  ?input_image_mask: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::InputImageMask,
893
972
  ?model: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::model,
@@ -897,6 +976,7 @@ module OpenAI
897
976
  ?partial_images: Integer,
898
977
  ?quality: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::quality,
899
978
  ?size: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::size,
979
+ ?svg: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg,
900
980
  ?type: :image_generation
901
981
  ) -> void
902
982
 
@@ -904,6 +984,9 @@ module OpenAI
904
984
  ?type: :image_generation,
905
985
  ?action: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::action,
906
986
  ?background: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::background,
987
+ ?complexity: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::complexity,
988
+ ?frame_count: Integer,
989
+ ?frame_duration_ms: Integer,
907
990
  ?input_fidelity: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::input_fidelity?,
908
991
  ?input_image_mask: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::InputImageMask,
909
992
  ?model: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::model,
@@ -912,7 +995,8 @@ module OpenAI
912
995
  ?output_format: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::output_format,
913
996
  ?partial_images: Integer,
914
997
  ?quality: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::quality,
915
- ?size: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::size
998
+ ?size: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::size,
999
+ ?svg: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg
916
1000
  }
917
1001
 
918
1002
  type action = :generate | :edit | :auto
@@ -939,6 +1023,18 @@ module OpenAI
939
1023
  def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::background]
940
1024
  end
941
1025
 
1026
+ type complexity = :low | :medium | :high
1027
+
1028
+ module Complexity
1029
+ extend OpenAI::Internal::Type::Enum
1030
+
1031
+ LOW: :low
1032
+ MEDIUM: :medium
1033
+ HIGH: :high
1034
+
1035
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::complexity]
1036
+ end
1037
+
942
1038
  type input_fidelity = :high | :low
943
1039
 
944
1040
  module InputFidelity
@@ -984,6 +1080,8 @@ module OpenAI
984
1080
  | :"gpt-image-2.5-sunburst-2026-09-08"
985
1081
  | :"gpt-image-2.5-flare"
986
1082
  | :"gpt-image-2.5-flare-2026-09-08"
1083
+ | :"gpt-image-2.6-sunburst"
1084
+ | :"gpt-image-2.6-flare"
987
1085
  | :"gpt-image-1.5"
988
1086
  | :"chatgpt-image-latest"
989
1087
 
@@ -1000,6 +1098,8 @@ module OpenAI
1000
1098
  GPT_IMAGE_2_5_SUNBURST_2026_09_08: :"gpt-image-2.5-sunburst-2026-09-08"
1001
1099
  GPT_IMAGE_2_5_FLARE: :"gpt-image-2.5-flare"
1002
1100
  GPT_IMAGE_2_5_FLARE_2026_09_08: :"gpt-image-2.5-flare-2026-09-08"
1101
+ GPT_IMAGE_2_6_SUNBURST: :"gpt-image-2.6-sunburst"
1102
+ GPT_IMAGE_2_6_FLARE: :"gpt-image-2.6-flare"
1003
1103
  GPT_IMAGE_1_5: :"gpt-image-1.5"
1004
1104
  CHATGPT_IMAGE_LATEST: :"chatgpt-image-latest"
1005
1105
  end
@@ -1015,7 +1115,7 @@ module OpenAI
1015
1115
  def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::moderation]
1016
1116
  end
1017
1117
 
1018
- type output_format = :png | :webp | :jpeg
1118
+ type output_format = :png | :webp | :jpeg | :gif | :svg
1019
1119
 
1020
1120
  module OutputFormat
1021
1121
  extend OpenAI::Internal::Type::Enum
@@ -1023,6 +1123,8 @@ module OpenAI
1023
1123
  PNG: :png
1024
1124
  WEBP: :webp
1025
1125
  JPEG: :jpeg
1126
+ GIF: :gif
1127
+ SVG: :svg
1026
1128
 
1027
1129
  def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::output_format]
1028
1130
  end
@@ -1055,6 +1157,77 @@ module OpenAI
1055
1157
  SIZE_1536X1024: :"1536x1024"
1056
1158
  AUTO: :auto
1057
1159
  end
1160
+
1161
+ type svg =
1162
+ {
1163
+ ?model: String,
1164
+ ?reasoning: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning?
1165
+ }
1166
+
1167
+ class Svg < OpenAI::Internal::Type::BaseModel
1168
+ attr_reader model: String?
1169
+
1170
+ def model=: (String) -> String
1171
+
1172
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
1173
+ # default in both Images and Responses.
1174
+ attr_accessor reasoning: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning?
1175
+
1176
+ # @param reasoning
1177
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
1178
+ # default in both Images and Responses.
1179
+ def initialize: (
1180
+ ?model: String,
1181
+ ?reasoning: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning?
1182
+ ) -> void
1183
+
1184
+ def to_hash: -> {
1185
+ ?model: String,
1186
+ ?reasoning: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning?
1187
+ }
1188
+
1189
+ type reasoning =
1190
+ {
1191
+ ?effort: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::effort
1192
+ }
1193
+
1194
+ class Reasoning < OpenAI::Internal::Type::BaseModel
1195
+ # Controls how much effort the model should spend on reasoning for this request.
1196
+ attr_reader effort: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::effort?
1197
+
1198
+ # Controls how much effort the model should spend on reasoning for this request.
1199
+ def effort=: (
1200
+ OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::effort
1201
+ ) -> OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::effort
1202
+
1203
+ # @param effort
1204
+ # Controls how much effort the model should spend on reasoning for this request.
1205
+ def initialize: (
1206
+ ?effort: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::effort
1207
+ ) -> void
1208
+
1209
+ def to_hash: -> {
1210
+ ?effort: OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::effort
1211
+ }
1212
+
1213
+ type effort =
1214
+ :none | :minimal | :low | :medium | :high | :xhigh | :max
1215
+
1216
+ module Effort
1217
+ extend OpenAI::Internal::Type::Enum
1218
+
1219
+ NONE: :none
1220
+ MINIMAL: :minimal
1221
+ LOW: :low
1222
+ MEDIUM: :medium
1223
+ HIGH: :high
1224
+ XHIGH: :xhigh
1225
+ MAX: :max
1226
+
1227
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::effort]
1228
+ end
1229
+ end
1230
+ end
1058
1231
  end
1059
1232
 
1060
1233
  type local_shell = { ?type: :local_shell }
@@ -55,7 +55,11 @@ module OpenAI
55
55
  }
56
56
 
57
57
  type input_tokens_details =
58
- { cache_write_tokens: Integer, cached_tokens: Integer }
58
+ {
59
+ cache_write_tokens: Integer,
60
+ cached_tokens: Integer,
61
+ ?cache_write_tokens_details: OpenAI::Beta::BetaResponseUsage::InputTokensDetails::CacheWriteTokensDetails
62
+ }
59
63
 
60
64
  class InputTokensDetails < OpenAI::Internal::Type::BaseModel
61
65
  # The number of input tokens that were written to the cache.
@@ -65,6 +69,12 @@ module OpenAI
65
69
  # [More on prompt caching](https://developers.openai.com/api/docs/guides/prompt-caching).
66
70
  attr_accessor cached_tokens: Integer
67
71
 
72
+ attr_reader cache_write_tokens_details: OpenAI::Beta::BetaResponseUsage::InputTokensDetails::CacheWriteTokensDetails?
73
+
74
+ def cache_write_tokens_details=: (
75
+ OpenAI::Beta::BetaResponseUsage::InputTokensDetails::CacheWriteTokensDetails
76
+ ) -> OpenAI::Beta::BetaResponseUsage::InputTokensDetails::CacheWriteTokensDetails
77
+
68
78
  # @param cache_write_tokens
69
79
  # The number of input tokens that were written to the cache.
70
80
  # @param cached_tokens
@@ -72,13 +82,40 @@ module OpenAI
72
82
  # [More on prompt caching](https://developers.openai.com/api/docs/guides/prompt-caching).
73
83
  def initialize: (
74
84
  cache_write_tokens: Integer,
75
- cached_tokens: Integer
85
+ cached_tokens: Integer,
86
+ ?cache_write_tokens_details: OpenAI::Beta::BetaResponseUsage::InputTokensDetails::CacheWriteTokensDetails
76
87
  ) -> void
77
88
 
78
89
  def to_hash: -> {
79
90
  cache_write_tokens: Integer,
80
- cached_tokens: Integer
91
+ cached_tokens: Integer,
92
+ ?cache_write_tokens_details: OpenAI::Beta::BetaResponseUsage::InputTokensDetails::CacheWriteTokensDetails
81
93
  }
94
+
95
+ type cache_write_tokens_details =
96
+ { :ttl_12h_tokens => Integer, :ttl_30m_tokens => Integer }
97
+
98
+ class CacheWriteTokensDetails < OpenAI::Internal::Type::BaseModel
99
+ # The number of input tokens written with 12-hour retention.
100
+ attr_accessor ttl_12h_tokens: Integer
101
+
102
+ # The number of input tokens written with 30-minute retention.
103
+ attr_accessor ttl_30m_tokens: Integer
104
+
105
+ # @param ttl_12h_tokens
106
+ # The number of input tokens written with 12-hour retention.
107
+ # @param ttl_30m_tokens
108
+ # The number of input tokens written with 30-minute retention.
109
+ def initialize: (
110
+ ttl_12h_tokens: Integer,
111
+ ttl_30m_tokens: Integer
112
+ ) -> void
113
+
114
+ def to_hash: -> {
115
+ :ttl_12h_tokens => Integer,
116
+ :ttl_30m_tokens => Integer
117
+ }
118
+ end
82
119
  end
83
120
 
84
121
  type output_tokens_details = { reasoning_tokens: Integer }
@@ -19,6 +19,7 @@ module OpenAI
19
19
  ?context_management: ::Array[OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ContextManagement]?,
20
20
  ?conversation: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::conversation?,
21
21
  ?generate: bool,
22
+ ?image: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image,
22
23
  ?include: ::Array[OpenAI::Models::Beta::beta_response_includable]?,
23
24
  ?input: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::input,
24
25
  ?instructions: String?,
@@ -86,6 +87,14 @@ module OpenAI
86
87
  # used as previous_response_id on a later turn.
87
88
  def generate=: (bool) -> bool
88
89
 
90
+ # Request level image options.
91
+ attr_reader image: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image?
92
+
93
+ # Request level image options.
94
+ def image=: (
95
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image
96
+ ) -> OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image
97
+
89
98
  # Specify additional output data to include in the model response. Currently
90
99
  # supported values are:
91
100
  #
@@ -202,7 +211,7 @@ module OpenAI
202
211
  # request can write up to four breakpoints. For cache matching, OpenAI considers
203
212
  # up to the latest 80 breakpoints in the conversation, without a content-block
204
213
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
205
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
214
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
206
215
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
207
216
  # for current details.
208
217
  attr_reader prompt_cache_options: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions?
@@ -213,7 +222,7 @@ module OpenAI
213
222
  # request can write up to four breakpoints. For cache matching, OpenAI considers
214
223
  # up to the latest 80 breakpoints in the conversation, without a content-block
215
224
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
216
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
225
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
217
226
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
218
227
  # for current details.
219
228
  def prompt_cache_options=: (
@@ -441,6 +450,8 @@ module OpenAI
441
450
  # Whether to generate output for this response. Defaults to true when omitted. Set
442
451
  # to false to prepare request state without model output; the response ID can be
443
452
  # used as previous_response_id on a later turn.
453
+ # @param image
454
+ # Request level image options.
444
455
  # @param include
445
456
  # Specify additional output data to include in the model response. Currently
446
457
  # supported values are:
@@ -523,7 +534,7 @@ module OpenAI
523
534
  # request can write up to four breakpoints. For cache matching, OpenAI considers
524
535
  # up to the latest 80 breakpoints in the conversation, without a content-block
525
536
  # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
526
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
537
+ # `ttl` defaults to `30m`. Supported lifetimes depend on the API. See the
527
538
  # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
528
539
  # for current details.
529
540
  # @param prompt_cache_retention
@@ -669,6 +680,7 @@ module OpenAI
669
680
  ?context_management: ::Array[OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ContextManagement]?,
670
681
  ?conversation: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::conversation?,
671
682
  ?generate: bool,
683
+ ?image: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image,
672
684
  ?include: ::Array[OpenAI::Models::Beta::beta_response_includable]?,
673
685
  ?input: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::input,
674
686
  ?instructions: String?,
@@ -709,6 +721,7 @@ module OpenAI
709
721
  ?context_management: ::Array[OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ContextManagement]?,
710
722
  ?conversation: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::conversation?,
711
723
  ?generate: bool,
724
+ ?image: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image,
712
725
  ?include: ::Array[OpenAI::Models::Beta::beta_response_includable]?,
713
726
  ?input: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::input,
714
727
  ?instructions: String?,
@@ -833,6 +846,49 @@ module OpenAI
833
846
  def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::conversation]
834
847
  end
835
848
 
849
+ type image =
850
+ {
851
+ ?context_compression: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::Image::context_compression
852
+ }
853
+
854
+ class Image < OpenAI::Internal::Type::BaseModel
855
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
856
+ # transport, and input to select a policy. Use `enabled` to require compression
857
+ # support or `disabled` to turn it off.
858
+ attr_reader context_compression: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::Image::context_compression?
859
+
860
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
861
+ # transport, and input to select a policy. Use `enabled` to require compression
862
+ # support or `disabled` to turn it off.
863
+ def context_compression=: (
864
+ OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::Image::context_compression
865
+ ) -> OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::Image::context_compression
866
+
867
+ # @param context_compression
868
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
869
+ # transport, and input to select a policy. Use `enabled` to require compression
870
+ # support or `disabled` to turn it off.
871
+ def initialize: (
872
+ ?context_compression: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::Image::context_compression
873
+ ) -> void
874
+
875
+ def to_hash: -> {
876
+ ?context_compression: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::Image::context_compression
877
+ }
878
+
879
+ type context_compression = :auto | :enabled | :disabled
880
+
881
+ module ContextCompression
882
+ extend OpenAI::Internal::Type::Enum
883
+
884
+ AUTO: :auto
885
+ ENABLED: :enabled
886
+ DISABLED: :disabled
887
+
888
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::Image::context_compression]
889
+ end
890
+ end
891
+
836
892
  type input = String | OpenAI::Models::Beta::beta_response_input
837
893
 
838
894
  module Input
@@ -1268,13 +1324,13 @@ module OpenAI
1268
1324
  def prewarm=: (bool) -> bool
1269
1325
 
1270
1326
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1271
- # written by the request. Defaults to `30m`, which is currently the only supported
1272
- # value. The backend may retain cache entries for longer.
1327
+ # written by the request. Supported values are `30m` (the default) and `12h`. The
1328
+ # backend may retain cache entries for longer.
1273
1329
  attr_reader ttl: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::ttl?
1274
1330
 
1275
1331
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1276
- # written by the request. Defaults to `30m`, which is currently the only supported
1277
- # value. The backend may retain cache entries for longer.
1332
+ # written by the request. Supported values are `30m` (the default) and `12h`. The
1333
+ # backend may retain cache entries for longer.
1278
1334
  def ttl=: (
1279
1335
  OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::ttl
1280
1336
  ) -> OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::ttl
@@ -1294,8 +1350,8 @@ module OpenAI
1294
1350
  # set to `true`, overrides the `generate` field to `false`.
1295
1351
  # @param ttl
1296
1352
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1297
- # written by the request. Defaults to `30m`, which is currently the only supported
1298
- # value. The backend may retain cache entries for longer.
1353
+ # written by the request. Supported values are `30m` (the default) and `12h`. The
1354
+ # backend may retain cache entries for longer.
1299
1355
  def initialize: (
1300
1356
  ?comparison_response_id: String?,
1301
1357
  ?mode: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::mode,
@@ -1321,12 +1377,13 @@ module OpenAI
1321
1377
  def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::mode]
1322
1378
  end
1323
1379
 
1324
- type ttl = :"30m"
1380
+ type ttl = :"30m" | :"12h"
1325
1381
 
1326
1382
  module Ttl
1327
1383
  extend OpenAI::Internal::Type::Enum
1328
1384
 
1329
1385
  TTL_30M: :"30m"
1386
+ TTL_12H: :"12h"
1330
1387
 
1331
1388
  def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::ttl]
1332
1389
  end