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
@@ -807,7 +807,8 @@ module OpenAI
807
807
  ?output_format: OpenAI::Models::Beta::BetaResponseItem::ImageGenerationCall::output_format?,
808
808
  ?quality: OpenAI::Models::Beta::BetaResponseItem::ImageGenerationCall::quality?,
809
809
  ?revised_prompt: String?,
810
- ?size: OpenAI::Models::Beta::BetaResponseItem::ImageGenerationCall::size?
810
+ ?size: OpenAI::Models::Beta::BetaResponseItem::ImageGenerationCall::size?,
811
+ ?svg_usage: OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage
811
812
  }
812
813
 
813
814
  class ImageGenerationCall < OpenAI::Internal::Type::BaseModel
@@ -853,6 +854,12 @@ module OpenAI
853
854
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
854
855
  attr_accessor size: OpenAI::Models::Beta::BetaResponseItem::ImageGenerationCall::size?
855
856
 
857
+ attr_reader svg_usage: OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage?
858
+
859
+ def svg_usage=: (
860
+ OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage
861
+ ) -> OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage
862
+
856
863
  # @param id
857
864
  # The unique ID of the image generation call.
858
865
  # @param result
@@ -890,6 +897,7 @@ module OpenAI
890
897
  ?quality: OpenAI::Models::Beta::BetaResponseItem::ImageGenerationCall::quality?,
891
898
  ?revised_prompt: String?,
892
899
  ?size: OpenAI::Models::Beta::BetaResponseItem::ImageGenerationCall::size?,
900
+ ?svg_usage: OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage,
893
901
  ?type: :image_generation_call
894
902
  ) -> void
895
903
 
@@ -905,7 +913,8 @@ module OpenAI
905
913
  ?output_format: OpenAI::Models::Beta::BetaResponseItem::ImageGenerationCall::output_format?,
906
914
  ?quality: OpenAI::Models::Beta::BetaResponseItem::ImageGenerationCall::quality?,
907
915
  ?revised_prompt: String?,
908
- ?size: OpenAI::Models::Beta::BetaResponseItem::ImageGenerationCall::size?
916
+ ?size: OpenAI::Models::Beta::BetaResponseItem::ImageGenerationCall::size?,
917
+ ?svg_usage: OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage
909
918
  }
910
919
 
911
920
  type status = :in_progress | :completed | :generating | :failed
@@ -1055,7 +1064,7 @@ module OpenAI
1055
1064
  end
1056
1065
  end
1057
1066
 
1058
- type output_format = :png | :webp | :jpeg
1067
+ type output_format = :png | :webp | :jpeg | :gif | :svg
1059
1068
 
1060
1069
  module OutputFormat
1061
1070
  extend OpenAI::Internal::Type::Enum
@@ -1063,6 +1072,8 @@ module OpenAI
1063
1072
  PNG: :png
1064
1073
  WEBP: :webp
1065
1074
  JPEG: :jpeg
1075
+ GIF: :gif
1076
+ SVG: :svg
1066
1077
 
1067
1078
  def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseItem::ImageGenerationCall::output_format]
1068
1079
  end
@@ -1093,6 +1104,43 @@ module OpenAI
1093
1104
  SIZE_1024X1536: :"1024x1536"
1094
1105
  SIZE_1536X1024: :"1536x1024"
1095
1106
  end
1107
+
1108
+ type svg_usage =
1109
+ {
1110
+ input_tokens: Integer,
1111
+ model: String,
1112
+ output_tokens: Integer,
1113
+ reasoning_tokens: Integer,
1114
+ total_tokens: Integer
1115
+ }
1116
+
1117
+ class SvgUsage < OpenAI::Internal::Type::BaseModel
1118
+ attr_accessor input_tokens: Integer
1119
+
1120
+ attr_accessor model: String
1121
+
1122
+ attr_accessor output_tokens: Integer
1123
+
1124
+ attr_accessor reasoning_tokens: Integer
1125
+
1126
+ attr_accessor total_tokens: Integer
1127
+
1128
+ def initialize: (
1129
+ input_tokens: Integer,
1130
+ model: String,
1131
+ output_tokens: Integer,
1132
+ reasoning_tokens: Integer,
1133
+ total_tokens: Integer
1134
+ ) -> void
1135
+
1136
+ def to_hash: -> {
1137
+ input_tokens: Integer,
1138
+ model: String,
1139
+ output_tokens: Integer,
1140
+ reasoning_tokens: Integer,
1141
+ total_tokens: Integer
1142
+ }
1143
+ end
1096
1144
  end
1097
1145
 
1098
1146
  type local_shell_call =
@@ -805,7 +805,8 @@ module OpenAI
805
805
  ?output_format: OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall::output_format?,
806
806
  ?quality: OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall::quality?,
807
807
  ?revised_prompt: String?,
808
- ?size: OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall::size?
808
+ ?size: OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall::size?,
809
+ ?svg_usage: OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::SvgUsage
809
810
  }
810
811
 
811
812
  class ImageGenerationCall < OpenAI::Internal::Type::BaseModel
@@ -851,6 +852,12 @@ module OpenAI
851
852
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
852
853
  attr_accessor size: OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall::size?
853
854
 
855
+ attr_reader svg_usage: OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::SvgUsage?
856
+
857
+ def svg_usage=: (
858
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::SvgUsage
859
+ ) -> OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::SvgUsage
860
+
854
861
  # @param id
855
862
  # The unique ID of the image generation call.
856
863
  # @param result
@@ -888,6 +895,7 @@ module OpenAI
888
895
  ?quality: OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall::quality?,
889
896
  ?revised_prompt: String?,
890
897
  ?size: OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall::size?,
898
+ ?svg_usage: OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::SvgUsage,
891
899
  ?type: :image_generation_call
892
900
  ) -> void
893
901
 
@@ -903,7 +911,8 @@ module OpenAI
903
911
  ?output_format: OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall::output_format?,
904
912
  ?quality: OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall::quality?,
905
913
  ?revised_prompt: String?,
906
- ?size: OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall::size?
914
+ ?size: OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall::size?,
915
+ ?svg_usage: OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::SvgUsage
907
916
  }
908
917
 
909
918
  type status = :in_progress | :completed | :generating | :failed
@@ -1053,7 +1062,7 @@ module OpenAI
1053
1062
  end
1054
1063
  end
1055
1064
 
1056
- type output_format = :png | :webp | :jpeg
1065
+ type output_format = :png | :webp | :jpeg | :gif | :svg
1057
1066
 
1058
1067
  module OutputFormat
1059
1068
  extend OpenAI::Internal::Type::Enum
@@ -1061,6 +1070,8 @@ module OpenAI
1061
1070
  PNG: :png
1062
1071
  WEBP: :webp
1063
1072
  JPEG: :jpeg
1073
+ GIF: :gif
1074
+ SVG: :svg
1064
1075
 
1065
1076
  def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseOutputItem::ImageGenerationCall::output_format]
1066
1077
  end
@@ -1091,6 +1102,43 @@ module OpenAI
1091
1102
  SIZE_1024X1536: :"1024x1536"
1092
1103
  SIZE_1536X1024: :"1536x1024"
1093
1104
  end
1105
+
1106
+ type svg_usage =
1107
+ {
1108
+ input_tokens: Integer,
1109
+ model: String,
1110
+ output_tokens: Integer,
1111
+ reasoning_tokens: Integer,
1112
+ total_tokens: Integer
1113
+ }
1114
+
1115
+ class SvgUsage < OpenAI::Internal::Type::BaseModel
1116
+ attr_accessor input_tokens: Integer
1117
+
1118
+ attr_accessor model: String
1119
+
1120
+ attr_accessor output_tokens: Integer
1121
+
1122
+ attr_accessor reasoning_tokens: Integer
1123
+
1124
+ attr_accessor total_tokens: Integer
1125
+
1126
+ def initialize: (
1127
+ input_tokens: Integer,
1128
+ model: String,
1129
+ output_tokens: Integer,
1130
+ reasoning_tokens: Integer,
1131
+ total_tokens: Integer
1132
+ ) -> void
1133
+
1134
+ def to_hash: -> {
1135
+ input_tokens: Integer,
1136
+ model: String,
1137
+ output_tokens: Integer,
1138
+ reasoning_tokens: Integer,
1139
+ total_tokens: Integer
1140
+ }
1141
+ end
1094
1142
  end
1095
1143
 
1096
1144
  type local_shell_call =
@@ -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 }
@@ -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
  #
@@ -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:
@@ -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