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
@@ -1294,6 +1294,43 @@ module OpenAI
1294
1294
  }
1295
1295
  attr_writer :background
1296
1296
 
1297
+ # Computation spent planning the image, independently of rendering quality.
1298
+ # Overrides the outer response's `reasoning.effort` for image generation. When
1299
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
1300
+ # configured default. For SVG output, controls the reference image, not the SVG
1301
+ # author's reasoning.
1302
+ sig {
1303
+ returns(
1304
+ T.nilable(
1305
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::OrSymbol
1306
+ )
1307
+ )
1308
+ }
1309
+ attr_reader :complexity
1310
+
1311
+ sig {
1312
+ params(
1313
+ complexity: OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::OrSymbol
1314
+ )
1315
+ .void
1316
+ }
1317
+ attr_writer :complexity
1318
+
1319
+ # Number of GIF frames. Requires `output_format` to be `gif`. Default: 9.
1320
+ sig { returns(T.nilable(Integer)) }
1321
+ attr_reader :frame_count
1322
+
1323
+ sig { params(frame_count: Integer).void }
1324
+ attr_writer :frame_count
1325
+
1326
+ # Duration of each GIF frame in milliseconds, rounded to 10 ms. Requires
1327
+ # `output_format` to be `gif`. Default: 200.
1328
+ sig { returns(T.nilable(Integer)) }
1329
+ attr_reader :frame_duration_ms
1330
+
1331
+ sig { params(frame_duration_ms: Integer).void }
1332
+ attr_writer :frame_duration_ms
1333
+
1297
1334
  # Control how much effort the model will exert to match the style and features,
1298
1335
  # especially facial features, of input images. Supports `high` and `low` on
1299
1336
  # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
@@ -1327,8 +1364,8 @@ module OpenAI
1327
1364
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1328
1365
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1329
1366
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1330
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1331
- # `gpt-image-2`.
1367
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1368
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1332
1369
  #
1333
1370
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1334
1371
  # `gpt-image-2.5-flare` instead.
@@ -1380,8 +1417,12 @@ module OpenAI
1380
1417
  sig { params(output_compression: Integer).void }
1381
1418
  attr_writer :output_compression
1382
1419
 
1383
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
1384
- # Default: `png`.
1420
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
1421
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
1422
+ # selected format. GIF output does not support partial image streaming
1423
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
1424
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
1425
+ # output.
1385
1426
  sig {
1386
1427
  returns(
1387
1428
  T.nilable(
@@ -1461,6 +1502,20 @@ module OpenAI
1461
1502
  }
1462
1503
  attr_writer :size
1463
1504
 
1505
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
1506
+ # selection is enabled, omitting this object uses the outer response model.
1507
+ # Otherwise, the default SVG author is used and explicit model overrides are
1508
+ # unavailable.
1509
+ sig {
1510
+ returns(T.nilable(OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg))
1511
+ }
1512
+ attr_reader :svg
1513
+
1514
+ sig {
1515
+ params(svg: OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::OrHash).void
1516
+ }
1517
+ attr_writer :svg
1518
+
1464
1519
  # A tool that generates images using the GPT image models.
1465
1520
  sig do
1466
1521
  params(
@@ -1469,6 +1524,12 @@ module OpenAI
1469
1524
 
1470
1525
  background: OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Background::OrSymbol,
1471
1526
 
1527
+ complexity: OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::OrSymbol,
1528
+
1529
+ frame_count: Integer,
1530
+
1531
+ frame_duration_ms: Integer,
1532
+
1472
1533
  input_fidelity: T.nilable(
1473
1534
  OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::InputFidelity::OrSymbol
1474
1535
  ),
@@ -1495,6 +1556,8 @@ module OpenAI
1495
1556
  OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Size::OrSymbol
1496
1557
  ),
1497
1558
 
1559
+ svg: OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::OrHash,
1560
+
1498
1561
  type: Symbol
1499
1562
  )
1500
1563
  .returns(T.attached_class)
@@ -1515,6 +1578,20 @@ module OpenAI
1515
1578
  # set the output format to `png` or `webp`.
1516
1579
  background: nil,
1517
1580
 
1581
+ # Computation spent planning the image, independently of rendering quality.
1582
+ # Overrides the outer response's `reasoning.effort` for image generation. When
1583
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
1584
+ # configured default. For SVG output, controls the reference image, not the SVG
1585
+ # author's reasoning.
1586
+ complexity: nil,
1587
+
1588
+ # Number of GIF frames. Requires `output_format` to be `gif`. Default: 9.
1589
+ frame_count: nil,
1590
+
1591
+ # Duration of each GIF frame in milliseconds, rounded to 10 ms. Requires
1592
+ # `output_format` to be `gif`. Default: 200.
1593
+ frame_duration_ms: nil,
1594
+
1518
1595
  # Control how much effort the model will exert to match the style and features,
1519
1596
  # especially facial features, of input images. Supports `high` and `low` on
1520
1597
  # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
@@ -1528,8 +1605,8 @@ module OpenAI
1528
1605
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1529
1606
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1530
1607
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1531
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1532
- # `gpt-image-2`.
1608
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1609
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1533
1610
  #
1534
1611
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1535
1612
  # `gpt-image-2.5-flare` instead.
@@ -1541,8 +1618,12 @@ module OpenAI
1541
1618
  # Compression level for the output image. Default: 100.
1542
1619
  output_compression: nil,
1543
1620
 
1544
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
1545
- # Default: `png`.
1621
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
1622
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
1623
+ # selected format. GIF output does not support partial image streaming
1624
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
1625
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
1626
+ # output.
1546
1627
  output_format: nil,
1547
1628
 
1548
1629
  # Number of partial images to generate in streaming mode, from 0 (default value)
@@ -1567,6 +1648,12 @@ module OpenAI
1567
1648
  # `auto` is supported for models that allow automatic sizing.
1568
1649
  size: nil,
1569
1650
 
1651
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
1652
+ # selection is enabled, omitting this object uses the outer response model.
1653
+ # Otherwise, the default SVG author is used and explicit model overrides are
1654
+ # unavailable.
1655
+ svg: nil,
1656
+
1570
1657
  # The type of the image generation tool. Always `image_generation`.
1571
1658
 
1572
1659
  type: :image_generation
@@ -1579,6 +1666,9 @@ module OpenAI
1579
1666
  type: Symbol,
1580
1667
  action: OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Action::OrSymbol,
1581
1668
  background: OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Background::OrSymbol,
1669
+ complexity: OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::OrSymbol,
1670
+ frame_count: Integer,
1671
+ frame_duration_ms: Integer,
1582
1672
  input_fidelity: T.nilable(
1583
1673
  OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::InputFidelity::OrSymbol
1584
1674
  ),
@@ -1595,7 +1685,8 @@ module OpenAI
1595
1685
  size: T.any(
1596
1686
  String,
1597
1687
  OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Size::OrSymbol
1598
- )
1688
+ ),
1689
+ svg: OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg
1599
1690
  }
1600
1691
  )
1601
1692
  end
@@ -1676,6 +1767,43 @@ module OpenAI
1676
1767
  end
1677
1768
  end
1678
1769
 
1770
+ # Computation spent planning the image, independently of rendering quality.
1771
+ # Overrides the outer response's `reasoning.effort` for image generation. When
1772
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
1773
+ # configured default. For SVG output, controls the reference image, not the SVG
1774
+ # author's reasoning.
1775
+ module Complexity
1776
+ extend OpenAI::Internal::Type::Enum
1777
+
1778
+ TaggedSymbol = T.type_alias {
1779
+ T.all(Symbol, OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity)
1780
+ }
1781
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1782
+
1783
+ LOW = T.let(
1784
+ :low,
1785
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::TaggedSymbol
1786
+ )
1787
+ MEDIUM = T.let(
1788
+ :medium,
1789
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::TaggedSymbol
1790
+ )
1791
+ HIGH = T.let(
1792
+ :high,
1793
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::TaggedSymbol
1794
+ )
1795
+
1796
+ sig {
1797
+ override.returns(
1798
+ T::Array[
1799
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::TaggedSymbol
1800
+ ]
1801
+ )
1802
+ }
1803
+ def self.values
1804
+ end
1805
+ end
1806
+
1679
1807
  # Control how much effort the model will exert to match the style and features,
1680
1808
  # especially facial features, of input images. Supports `high` and `low` on
1681
1809
  # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
@@ -1768,8 +1896,8 @@ module OpenAI
1768
1896
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1769
1897
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1770
1898
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1771
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1772
- # `gpt-image-2`.
1899
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1900
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1773
1901
  #
1774
1902
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1775
1903
  # `gpt-image-2.5-flare` instead.
@@ -1829,6 +1957,14 @@ module OpenAI
1829
1957
  :"gpt-image-2.5-flare-2026-09-08",
1830
1958
  OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Model::TaggedSymbol
1831
1959
  )
1960
+ GPT_IMAGE_2_6_SUNBURST = T.let(
1961
+ :"gpt-image-2.6-sunburst",
1962
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Model::TaggedSymbol
1963
+ )
1964
+ GPT_IMAGE_2_6_FLARE = T.let(
1965
+ :"gpt-image-2.6-flare",
1966
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Model::TaggedSymbol
1967
+ )
1832
1968
  GPT_IMAGE_1_5 = T.let(
1833
1969
  :"gpt-image-1.5",
1834
1970
  OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Model::TaggedSymbol
@@ -1869,8 +2005,12 @@ module OpenAI
1869
2005
  end
1870
2006
  end
1871
2007
 
1872
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
1873
- # Default: `png`.
2008
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
2009
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
2010
+ # selected format. GIF output does not support partial image streaming
2011
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
2012
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
2013
+ # output.
1874
2014
  module OutputFormat
1875
2015
  extend OpenAI::Internal::Type::Enum
1876
2016
 
@@ -1891,6 +2031,14 @@ module OpenAI
1891
2031
  :jpeg,
1892
2032
  OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::OutputFormat::TaggedSymbol
1893
2033
  )
2034
+ GIF = T.let(
2035
+ :gif,
2036
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::OutputFormat::TaggedSymbol
2037
+ )
2038
+ SVG = T.let(
2039
+ :svg,
2040
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::OutputFormat::TaggedSymbol
2041
+ )
1894
2042
 
1895
2043
  sig {
1896
2044
  override.returns(
@@ -2003,6 +2151,185 @@ module OpenAI
2003
2151
  )
2004
2152
 
2005
2153
  end
2154
+
2155
+ class Svg < OpenAI::Internal::Type::BaseModel
2156
+ OrHash = T.type_alias do
2157
+ T.any(
2158
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg,
2159
+ OpenAI::Internal::AnyHash
2160
+ )
2161
+ end
2162
+
2163
+ sig { returns(T.nilable(String)) }
2164
+ attr_reader :model
2165
+
2166
+ sig { params(model: String).void }
2167
+ attr_writer :model
2168
+
2169
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
2170
+ # default in both Images and Responses.
2171
+ sig {
2172
+ returns(
2173
+ T.nilable(OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning)
2174
+ )
2175
+ }
2176
+ attr_reader :reasoning
2177
+
2178
+ sig {
2179
+ params(
2180
+ reasoning: T.nilable(
2181
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::OrHash
2182
+ )
2183
+ )
2184
+ .void
2185
+ }
2186
+ attr_writer :reasoning
2187
+
2188
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
2189
+ # selection is enabled, omitting this object uses the outer response model.
2190
+ # Otherwise, the default SVG author is used and explicit model overrides are
2191
+ # unavailable.
2192
+ sig do
2193
+ params(
2194
+
2195
+ model: String,
2196
+
2197
+ reasoning: T.nilable(
2198
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::OrHash
2199
+ )
2200
+ )
2201
+ .returns(T.attached_class)
2202
+ end
2203
+ def self.new(
2204
+
2205
+ model: nil,
2206
+
2207
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
2208
+ # default in both Images and Responses.
2209
+
2210
+ reasoning: nil
2211
+ )
2212
+ end
2213
+
2214
+ sig do
2215
+ override.returns(
2216
+ {
2217
+ model: String,
2218
+ reasoning: T.nilable(
2219
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning
2220
+ )
2221
+ }
2222
+ )
2223
+ end
2224
+ def to_hash
2225
+ end
2226
+
2227
+ class Reasoning < OpenAI::Internal::Type::BaseModel
2228
+ OrHash = T.type_alias do
2229
+ T.any(
2230
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning,
2231
+ OpenAI::Internal::AnyHash
2232
+ )
2233
+ end
2234
+
2235
+ # Controls how much effort the model should spend on reasoning for this request.
2236
+ sig {
2237
+ returns(
2238
+ T.nilable(
2239
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::OrSymbol
2240
+ )
2241
+ )
2242
+ }
2243
+ attr_reader :effort
2244
+
2245
+ sig {
2246
+ params(
2247
+ effort: OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::OrSymbol
2248
+ )
2249
+ .void
2250
+ }
2251
+ attr_writer :effort
2252
+
2253
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
2254
+ # default in both Images and Responses.
2255
+ sig do
2256
+ params(
2257
+
2258
+ effort: OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::OrSymbol
2259
+ )
2260
+ .returns(T.attached_class)
2261
+ end
2262
+ def self.new(
2263
+
2264
+ # Controls how much effort the model should spend on reasoning for this request.
2265
+
2266
+ effort: nil
2267
+ )
2268
+ end
2269
+
2270
+ sig do
2271
+ override.returns(
2272
+ {
2273
+ effort: OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::OrSymbol
2274
+ }
2275
+ )
2276
+ end
2277
+ def to_hash
2278
+ end
2279
+
2280
+ # Controls how much effort the model should spend on reasoning for this request.
2281
+ module Effort
2282
+ extend OpenAI::Internal::Type::Enum
2283
+
2284
+ TaggedSymbol = T.type_alias {
2285
+ T.all(
2286
+ Symbol,
2287
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort
2288
+ )
2289
+ }
2290
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2291
+
2292
+ NONE = T.let(
2293
+ :none,
2294
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2295
+ )
2296
+ MINIMAL = T.let(
2297
+ :minimal,
2298
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2299
+ )
2300
+ LOW = T.let(
2301
+ :low,
2302
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2303
+ )
2304
+ MEDIUM = T.let(
2305
+ :medium,
2306
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2307
+ )
2308
+ HIGH = T.let(
2309
+ :high,
2310
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2311
+ )
2312
+ XHIGH = T.let(
2313
+ :xhigh,
2314
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2315
+ )
2316
+ MAX = T.let(
2317
+ :max,
2318
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2319
+ )
2320
+
2321
+ sig {
2322
+ override.returns(
2323
+ T::Array[
2324
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2325
+ ]
2326
+ )
2327
+ }
2328
+ def self.values
2329
+ end
2330
+ end
2331
+ end
2332
+ end
2006
2333
  end
2007
2334
 
2008
2335
  class LocalShell < OpenAI::Internal::Type::BaseModel
@@ -108,13 +108,26 @@ module OpenAI
108
108
  sig { returns(Integer) }
109
109
  attr_accessor :cached_tokens
110
110
 
111
+ sig { returns(T.nilable(OpenAI::Responses::ResponseUsage::InputTokensDetails::CacheWriteTokensDetails)) }
112
+ attr_reader :cache_write_tokens_details
113
+
114
+ sig {
115
+ params(
116
+ cache_write_tokens_details: OpenAI::Responses::ResponseUsage::InputTokensDetails::CacheWriteTokensDetails::OrHash
117
+ )
118
+ .void
119
+ }
120
+ attr_writer :cache_write_tokens_details
121
+
111
122
  # A detailed breakdown of the input tokens.
112
123
  sig do
113
124
  params(
114
125
 
115
126
  cache_write_tokens: Integer,
116
127
 
117
- cached_tokens: Integer
128
+ cached_tokens: Integer,
129
+
130
+ cache_write_tokens_details: OpenAI::Responses::ResponseUsage::InputTokensDetails::CacheWriteTokensDetails::OrHash
118
131
  )
119
132
  .returns(T.attached_class)
120
133
  end
@@ -125,19 +138,69 @@ module OpenAI
125
138
 
126
139
  # The number of tokens that were retrieved from the cache.
127
140
  # [More on prompt caching](https://developers.openai.com/api/docs/guides/prompt-caching).
141
+ cached_tokens:,
128
142
 
129
- cached_tokens:
143
+ cache_write_tokens_details: nil
130
144
  )
131
145
  end
132
146
 
133
147
  sig do
134
148
  override.returns(
135
- {cache_write_tokens: Integer, cached_tokens: Integer}
149
+ {
150
+ cache_write_tokens: Integer,
151
+ cached_tokens: Integer,
152
+ cache_write_tokens_details: OpenAI::Responses::ResponseUsage::InputTokensDetails::CacheWriteTokensDetails
153
+ }
136
154
  )
137
155
  end
138
156
  def to_hash
139
157
  end
140
158
 
159
+ class CacheWriteTokensDetails < OpenAI::Internal::Type::BaseModel
160
+ OrHash = T.type_alias do
161
+ T.any(
162
+ OpenAI::Responses::ResponseUsage::InputTokensDetails::CacheWriteTokensDetails,
163
+ OpenAI::Internal::AnyHash
164
+ )
165
+ end
166
+
167
+ # The number of input tokens written with 12-hour retention.
168
+ sig { returns(Integer) }
169
+ attr_accessor :ttl_12h_tokens
170
+
171
+ # The number of input tokens written with 30-minute retention.
172
+ sig { returns(Integer) }
173
+ attr_accessor :ttl_30m_tokens
174
+
175
+ sig do
176
+ params(
177
+
178
+ ttl_12h_tokens: Integer,
179
+
180
+ ttl_30m_tokens: Integer
181
+ )
182
+ .returns(T.attached_class)
183
+ end
184
+ def self.new(
185
+
186
+ # The number of input tokens written with 12-hour retention.
187
+ ttl_12h_tokens:,
188
+
189
+ # The number of input tokens written with 30-minute retention.
190
+
191
+ ttl_30m_tokens:
192
+ )
193
+ end
194
+
195
+ sig do
196
+ override.returns(
197
+ {ttl_12h_tokens: Integer, ttl_30m_tokens: Integer}
198
+ )
199
+ end
200
+ def to_hash
201
+ end
202
+
203
+ end
141
204
  end
142
205
 
143
206
  class OutputTokensDetails < OpenAI::Internal::Type::BaseModel