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
@@ -0,0 +1,183 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Admin
7
+
8
+ module Organization
9
+
10
+ module Projects
11
+
12
+ class ServiceTierSettingUpdateParams < OpenAI::Internal::Type::BaseModel
13
+
14
+ extend OpenAI::Internal::Type::RequestParameters::Converter
15
+ include OpenAI::Internal::Type::RequestParameters
16
+
17
+ OrHash = T.type_alias do
18
+ T.any(
19
+ OpenAI::Admin::Organization::Projects::ServiceTierSettingUpdateParams,
20
+ OpenAI::Internal::AnyHash
21
+ )
22
+ end
23
+
24
+ # The ID of the project
25
+ sig { returns(String) }
26
+ attr_accessor :project_id
27
+
28
+ # Default tier for requests that omit service_tier or use auto.
29
+ sig {
30
+ returns(
31
+ T.nilable(OpenAI::Admin::Organization::Projects::ServiceTierSettingUpdateParams::Default::OrSymbol)
32
+ )
33
+ }
34
+ attr_reader :default
35
+
36
+ sig {
37
+ params(default: OpenAI::Admin::Organization::Projects::ServiceTierSettingUpdateParams::Default::OrSymbol)
38
+ .void
39
+ }
40
+ attr_writer :default
41
+
42
+ # Additional service tiers enabled for this project. "all" includes future tiers.
43
+ # An empty array allows only Standard. Organization policy and eligibility still
44
+ # apply.
45
+ sig {
46
+ returns(
47
+ T.nilable(
48
+ T.any(Symbol, T::Array[OpenAI::Admin::Organization::Projects::ProjectOptionalServiceTier::OrSymbol])
49
+ )
50
+ )
51
+ }
52
+ attr_reader :enabled_tiers
53
+
54
+ sig {
55
+ params(
56
+ enabled_tiers: T.any(
57
+ Symbol,
58
+ T::Array[OpenAI::Admin::Organization::Projects::ProjectOptionalServiceTier::OrSymbol]
59
+ )
60
+ )
61
+ .void
62
+ }
63
+ attr_writer :enabled_tiers
64
+
65
+ sig do
66
+ params(
67
+
68
+ project_id: String,
69
+
70
+ default: OpenAI::Admin::Organization::Projects::ServiceTierSettingUpdateParams::Default::OrSymbol,
71
+
72
+ enabled_tiers: T.any(
73
+ Symbol,
74
+ T::Array[OpenAI::Admin::Organization::Projects::ProjectOptionalServiceTier::OrSymbol]
75
+ ),
76
+
77
+ request_options: OpenAI::RequestOptions::OrHash
78
+ )
79
+ .returns(T.attached_class)
80
+ end
81
+ def self.new(
82
+
83
+ # The ID of the project
84
+ project_id:,
85
+
86
+ # Default tier for requests that omit service_tier or use auto.
87
+ default: nil,
88
+
89
+ # Additional service tiers enabled for this project. "all" includes future tiers.
90
+ # An empty array allows only Standard. Organization policy and eligibility still
91
+ # apply.
92
+ enabled_tiers: nil,
93
+
94
+ request_options: {}
95
+ )
96
+ end
97
+
98
+ sig do
99
+ override.returns(
100
+ {
101
+ project_id: String,
102
+ default: OpenAI::Admin::Organization::Projects::ServiceTierSettingUpdateParams::Default::OrSymbol,
103
+ enabled_tiers: T.any(
104
+ Symbol,
105
+ T::Array[OpenAI::Admin::Organization::Projects::ProjectOptionalServiceTier::OrSymbol]
106
+ ),
107
+ request_options: OpenAI::RequestOptions
108
+ }
109
+ )
110
+ end
111
+ def to_hash
112
+ end
113
+
114
+ # Default tier for requests that omit service_tier or use auto.
115
+ module Default
116
+ extend OpenAI::Internal::Type::Enum
117
+
118
+ TaggedSymbol = T.type_alias {
119
+ T.all(Symbol, OpenAI::Admin::Organization::Projects::ServiceTierSettingUpdateParams::Default)
120
+ }
121
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
122
+
123
+ STANDARD = T.let(
124
+ :standard,
125
+ OpenAI::Admin::Organization::Projects::ServiceTierSettingUpdateParams::Default::TaggedSymbol
126
+ )
127
+ FAST = T.let(
128
+ :fast,
129
+ OpenAI::Admin::Organization::Projects::ServiceTierSettingUpdateParams::Default::TaggedSymbol
130
+ )
131
+ SCALE = T.let(
132
+ :scale,
133
+ OpenAI::Admin::Organization::Projects::ServiceTierSettingUpdateParams::Default::TaggedSymbol
134
+ )
135
+
136
+ sig {
137
+ override.returns(
138
+ T::Array[OpenAI::Admin::Organization::Projects::ServiceTierSettingUpdateParams::Default::TaggedSymbol]
139
+ )
140
+ }
141
+ def self.values
142
+ end
143
+ end
144
+
145
+ # Additional service tiers enabled for this project. "all" includes future tiers.
146
+ # An empty array allows only Standard. Organization policy and eligibility still
147
+ # apply.
148
+ module EnabledTiers
149
+ extend OpenAI::Internal::Type::Union
150
+
151
+ Variants = T.type_alias {
152
+ T.any(Symbol, T::Array[OpenAI::Admin::Organization::Projects::ProjectOptionalServiceTier::TaggedSymbol])
153
+ }
154
+
155
+ sig {
156
+ override.returns(
157
+ T::Array[
158
+ OpenAI::Admin::Organization::Projects::ServiceTierSettingUpdateParams::EnabledTiers::Variants
159
+ ]
160
+ )
161
+ }
162
+ def self.variants
163
+ end
164
+
165
+ ProjectOptionalServiceTierArray = T.let(
166
+ OpenAI::Internal::Type::ArrayOf[
167
+ enum: -> { OpenAI::Models::Admin::Organization::Projects::ProjectOptionalServiceTier }
168
+ ],
169
+ OpenAI::Internal::Type::Converter
170
+ )
171
+
172
+ end
173
+
174
+ end
175
+
176
+ end
177
+
178
+ end
179
+
180
+ end
181
+
182
+ end
183
+ end
@@ -52,6 +52,7 @@ module OpenAI
52
52
  GPT_DAYBREAK_RED_LATEST = T.let(:"gpt-daybreak-red-latest", OpenAI::AllModels::ResponsesOnlyModel::TaggedSymbol)
53
53
  GPT_5_6_CYBER = T.let(:"gpt-5.6-cyber", OpenAI::AllModels::ResponsesOnlyModel::TaggedSymbol)
54
54
  GPT_ROSALIND_RESEARCH = T.let(:"gpt-rosalind-research", OpenAI::AllModels::ResponsesOnlyModel::TaggedSymbol)
55
+ GPT_6_ROSALIND = T.let(:"gpt-6-rosalind", OpenAI::AllModels::ResponsesOnlyModel::TaggedSymbol)
55
56
 
56
57
  sig { override.returns(T::Array[OpenAI::AllModels::ResponsesOnlyModel::TaggedSymbol]) }
57
58
  def self.values
@@ -41,6 +41,12 @@ module OpenAI
41
41
  sig { params(usage: OpenAI::Beta::BetaResponseUsage::OrHash).void }
42
42
  attr_writer :usage
43
43
 
44
+ sig { returns(T.nilable(OpenAI::Beta::BetaCompactedResponse::Image)) }
45
+ attr_reader :image
46
+
47
+ sig { params(image: OpenAI::Beta::BetaCompactedResponse::Image::OrHash).void }
48
+ attr_writer :image
49
+
44
50
  sig do
45
51
  params(
46
52
 
@@ -86,6 +92,8 @@ module OpenAI
86
92
 
87
93
  usage: OpenAI::Beta::BetaResponseUsage::OrHash,
88
94
 
95
+ image: OpenAI::Beta::BetaCompactedResponse::Image::OrHash,
96
+
89
97
  object: Symbol
90
98
  )
91
99
  .returns(T.attached_class)
@@ -106,6 +114,8 @@ module OpenAI
106
114
  # tokens.
107
115
  usage:,
108
116
 
117
+ image: nil,
118
+
109
119
  # The object type. Always `response.compaction`.
110
120
 
111
121
  object: :"response.compaction"
@@ -119,13 +129,69 @@ module OpenAI
119
129
  created_at: Integer,
120
130
  object: Symbol,
121
131
  output: T::Array[OpenAI::Beta::BetaResponseOutputItem::Variants],
122
- usage: OpenAI::Beta::BetaResponseUsage
132
+ usage: OpenAI::Beta::BetaResponseUsage,
133
+ image: OpenAI::Beta::BetaCompactedResponse::Image
123
134
  }
124
135
  )
125
136
  end
126
137
  def to_hash
127
138
  end
128
139
 
140
+ class Image < OpenAI::Internal::Type::BaseModel
141
+ OrHash = T.type_alias do
142
+ T.any(
143
+ OpenAI::Beta::BetaCompactedResponse::Image,
144
+ OpenAI::Internal::AnyHash
145
+ )
146
+ end
147
+
148
+ # Effective image context optimization policy.
149
+ sig { returns(OpenAI::Beta::BetaCompactedResponse::Image::ContextCompression::TaggedSymbol) }
150
+ attr_accessor :context_compression
151
+
152
+ sig do
153
+ params(
154
+
155
+ context_compression: OpenAI::Beta::BetaCompactedResponse::Image::ContextCompression::OrSymbol
156
+ )
157
+ .returns(T.attached_class)
158
+ end
159
+ def self.new(
160
+
161
+ # Effective image context optimization policy.
162
+
163
+ context_compression:
164
+ )
165
+ end
166
+
167
+ sig do
168
+ override.returns(
169
+ {context_compression: OpenAI::Beta::BetaCompactedResponse::Image::ContextCompression::TaggedSymbol}
170
+ )
171
+ end
172
+ def to_hash
173
+ end
174
+
175
+ # Effective image context optimization policy.
176
+ module ContextCompression
177
+ extend OpenAI::Internal::Type::Enum
178
+
179
+ TaggedSymbol = T.type_alias {
180
+ T.all(Symbol, OpenAI::Beta::BetaCompactedResponse::Image::ContextCompression)
181
+ }
182
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
183
+
184
+ ENABLED = T.let(:enabled, OpenAI::Beta::BetaCompactedResponse::Image::ContextCompression::TaggedSymbol)
185
+ DISABLED = T.let(:disabled, OpenAI::Beta::BetaCompactedResponse::Image::ContextCompression::TaggedSymbol)
186
+
187
+ sig {
188
+ override.returns(T::Array[OpenAI::Beta::BetaCompactedResponse::Image::ContextCompression::TaggedSymbol])
189
+ }
190
+ def self.values
191
+ end
192
+ end
193
+ end
194
+
129
195
  end
130
196
 
131
197
  end
@@ -149,6 +149,12 @@ module OpenAI
149
149
  sig { params(conversation: T.nilable(OpenAI::Beta::BetaResponse::Conversation::OrHash)).void }
150
150
  attr_writer :conversation
151
151
 
152
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponse::Image)) }
153
+ attr_reader :image
154
+
155
+ sig { params(image: OpenAI::Beta::BetaResponse::Image::OrHash).void }
156
+ attr_writer :image
157
+
152
158
  # An upper bound for the number of tokens that can be generated for a response,
153
159
  # including visible output tokens and
154
160
  # [reasoning tokens](https://developers.openai.com/api/docs/guides/reasoning).
@@ -454,6 +460,8 @@ module OpenAI
454
460
 
455
461
  conversation: T.nilable(OpenAI::Beta::BetaResponse::Conversation::OrHash),
456
462
 
463
+ image: OpenAI::Beta::BetaResponse::Image::OrHash,
464
+
457
465
  max_output_tokens: T.nilable(Integer),
458
466
 
459
467
  max_tool_calls: T.nilable(Integer),
@@ -603,6 +611,8 @@ module OpenAI
603
611
  # from this response were automatically added to this conversation.
604
612
  conversation: nil,
605
613
 
614
+ image: nil,
615
+
606
616
  # An upper bound for the number of tokens that can be generated for a response,
607
617
  # including visible output tokens and
608
618
  # [reasoning tokens](https://developers.openai.com/api/docs/guides/reasoning).
@@ -776,6 +786,7 @@ module OpenAI
776
786
  background: T.nilable(T::Boolean),
777
787
  completed_at: T.nilable(Float),
778
788
  conversation: T.nilable(OpenAI::Beta::BetaResponse::Conversation),
789
+ image: OpenAI::Beta::BetaResponse::Image,
779
790
  max_output_tokens: T.nilable(Integer),
780
791
  max_tool_calls: T.nilable(Integer),
781
792
  moderation: T.nilable(OpenAI::Beta::BetaResponse::Moderation),
@@ -1211,6 +1222,57 @@ module OpenAI
1211
1222
 
1212
1223
  end
1213
1224
 
1225
+ class Image < OpenAI::Internal::Type::BaseModel
1226
+ OrHash = T.type_alias do
1227
+ T.any(
1228
+ OpenAI::Beta::BetaResponse::Image,
1229
+ OpenAI::Internal::AnyHash
1230
+ )
1231
+ end
1232
+
1233
+ # Effective image context optimization policy.
1234
+ sig { returns(OpenAI::Beta::BetaResponse::Image::ContextCompression::TaggedSymbol) }
1235
+ attr_accessor :context_compression
1236
+
1237
+ sig do
1238
+ params(
1239
+
1240
+ context_compression: OpenAI::Beta::BetaResponse::Image::ContextCompression::OrSymbol
1241
+ )
1242
+ .returns(T.attached_class)
1243
+ end
1244
+ def self.new(
1245
+
1246
+ # Effective image context optimization policy.
1247
+
1248
+ context_compression:
1249
+ )
1250
+ end
1251
+
1252
+ sig do
1253
+ override.returns(
1254
+ {context_compression: OpenAI::Beta::BetaResponse::Image::ContextCompression::TaggedSymbol}
1255
+ )
1256
+ end
1257
+ def to_hash
1258
+ end
1259
+
1260
+ # Effective image context optimization policy.
1261
+ module ContextCompression
1262
+ extend OpenAI::Internal::Type::Enum
1263
+
1264
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Beta::BetaResponse::Image::ContextCompression) }
1265
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1266
+
1267
+ ENABLED = T.let(:enabled, OpenAI::Beta::BetaResponse::Image::ContextCompression::TaggedSymbol)
1268
+ DISABLED = T.let(:disabled, OpenAI::Beta::BetaResponse::Image::ContextCompression::TaggedSymbol)
1269
+
1270
+ sig { override.returns(T::Array[OpenAI::Beta::BetaResponse::Image::ContextCompression::TaggedSymbol]) }
1271
+ def self.values
1272
+ end
1273
+ end
1274
+ end
1275
+
1214
1276
  class Moderation < OpenAI::Internal::Type::BaseModel
1215
1277
  OrHash = T.type_alias do
1216
1278
  T.any(
@@ -2027,6 +2089,7 @@ module OpenAI
2027
2089
  OrSymbol = T.type_alias { T.any(Symbol, String) }
2028
2090
 
2029
2091
  TTL_30M = T.let(:"30m", OpenAI::Beta::BetaResponse::PromptCacheOptions::Ttl::TaggedSymbol)
2092
+ TTL_12H = T.let(:"12h", OpenAI::Beta::BetaResponse::PromptCacheOptions::Ttl::TaggedSymbol)
2030
2093
 
2031
2094
  sig { override.returns(T::Array[OpenAI::Beta::BetaResponse::PromptCacheOptions::Ttl::TaggedSymbol]) }
2032
2095
  def self.values
@@ -2143,6 +2143,12 @@ module OpenAI
2143
2143
  }
2144
2144
  attr_accessor :size
2145
2145
 
2146
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::SvgUsage)) }
2147
+ attr_reader :svg_usage
2148
+
2149
+ sig { params(svg_usage: OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::SvgUsage::OrHash).void }
2150
+ attr_writer :svg_usage
2151
+
2146
2152
  # An image generation request made by the model.
2147
2153
  sig do
2148
2154
  params(
@@ -2169,6 +2175,8 @@ module OpenAI
2169
2175
 
2170
2176
  size: T.nilable(T.any(String, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Size::OrSymbol)),
2171
2177
 
2178
+ svg_usage: OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::SvgUsage::OrHash,
2179
+
2172
2180
  type: Symbol
2173
2181
  )
2174
2182
  .returns(T.attached_class)
@@ -2209,6 +2217,8 @@ module OpenAI
2209
2217
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
2210
2218
  size: nil,
2211
2219
 
2220
+ svg_usage: nil,
2221
+
2212
2222
  # The type of the image generation call. Always `image_generation_call`.
2213
2223
 
2214
2224
  type: :image_generation_call
@@ -2231,7 +2241,8 @@ module OpenAI
2231
2241
  ),
2232
2242
  quality: T.nilable(OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Quality::OrSymbol),
2233
2243
  revised_prompt: T.nilable(String),
2234
- size: T.nilable(T.any(String, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Size::OrSymbol))
2244
+ size: T.nilable(T.any(String, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Size::OrSymbol)),
2245
+ svg_usage: OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::SvgUsage
2235
2246
  }
2236
2247
  )
2237
2248
  end
@@ -2541,6 +2552,8 @@ module OpenAI
2541
2552
  PNG = T.let(:png, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
2542
2553
  WEBP = T.let(:webp, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
2543
2554
  JPEG = T.let(:jpeg, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
2555
+ GIF = T.let(:gif, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
2556
+ SVG = T.let(:svg, OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
2544
2557
 
2545
2558
  sig {
2546
2559
  override.returns(
@@ -2611,6 +2624,74 @@ module OpenAI
2611
2624
  )
2612
2625
 
2613
2626
  end
2627
+
2628
+ class SvgUsage < OpenAI::Internal::Type::BaseModel
2629
+ OrHash = T.type_alias do
2630
+ T.any(
2631
+ OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::SvgUsage,
2632
+ OpenAI::Internal::AnyHash
2633
+ )
2634
+ end
2635
+
2636
+ sig { returns(Integer) }
2637
+ attr_accessor :input_tokens
2638
+
2639
+ sig { returns(String) }
2640
+ attr_accessor :model
2641
+
2642
+ sig { returns(Integer) }
2643
+ attr_accessor :output_tokens
2644
+
2645
+ sig { returns(Integer) }
2646
+ attr_accessor :reasoning_tokens
2647
+
2648
+ sig { returns(Integer) }
2649
+ attr_accessor :total_tokens
2650
+
2651
+ sig do
2652
+ params(
2653
+
2654
+ input_tokens: Integer,
2655
+
2656
+ model: String,
2657
+
2658
+ output_tokens: Integer,
2659
+
2660
+ reasoning_tokens: Integer,
2661
+
2662
+ total_tokens: Integer
2663
+ )
2664
+ .returns(T.attached_class)
2665
+ end
2666
+ def self.new(
2667
+
2668
+ input_tokens:,
2669
+
2670
+ model:,
2671
+
2672
+ output_tokens:,
2673
+
2674
+ reasoning_tokens:,
2675
+
2676
+ total_tokens:
2677
+ )
2678
+ end
2679
+
2680
+ sig do
2681
+ override.returns(
2682
+ {
2683
+ input_tokens: Integer,
2684
+ model: String,
2685
+ output_tokens: Integer,
2686
+ reasoning_tokens: Integer,
2687
+ total_tokens: Integer
2688
+ }
2689
+ )
2690
+ end
2691
+ def to_hash
2692
+ end
2693
+
2694
+ end
2614
2695
  end
2615
2696
 
2616
2697
  class LocalShellCall < OpenAI::Internal::Type::BaseModel
@@ -1449,6 +1449,12 @@ module OpenAI
1449
1449
  sig { returns(T.nilable(OpenAI::Beta::BetaResponseItem::ImageGenerationCall::Size::Variants)) }
1450
1450
  attr_accessor :size
1451
1451
 
1452
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage)) }
1453
+ attr_reader :svg_usage
1454
+
1455
+ sig { params(svg_usage: OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage::OrHash).void }
1456
+ attr_writer :svg_usage
1457
+
1452
1458
  # An image generation request made by the model.
1453
1459
  sig do
1454
1460
  params(
@@ -1475,6 +1481,8 @@ module OpenAI
1475
1481
 
1476
1482
  size: T.nilable(T.any(String, OpenAI::Beta::BetaResponseItem::ImageGenerationCall::Size::OrSymbol)),
1477
1483
 
1484
+ svg_usage: OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage::OrHash,
1485
+
1478
1486
  type: Symbol
1479
1487
  )
1480
1488
  .returns(T.attached_class)
@@ -1515,6 +1523,8 @@ module OpenAI
1515
1523
  # The image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.
1516
1524
  size: nil,
1517
1525
 
1526
+ svg_usage: nil,
1527
+
1518
1528
  # The type of the image generation call. Always `image_generation_call`.
1519
1529
 
1520
1530
  type: :image_generation_call
@@ -1537,7 +1547,8 @@ module OpenAI
1537
1547
  ),
1538
1548
  quality: T.nilable(OpenAI::Beta::BetaResponseItem::ImageGenerationCall::Quality::TaggedSymbol),
1539
1549
  revised_prompt: T.nilable(String),
1540
- size: T.nilable(OpenAI::Beta::BetaResponseItem::ImageGenerationCall::Size::Variants)
1550
+ size: T.nilable(OpenAI::Beta::BetaResponseItem::ImageGenerationCall::Size::Variants),
1551
+ svg_usage: OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage
1541
1552
  }
1542
1553
  )
1543
1554
  end
@@ -1830,6 +1841,8 @@ module OpenAI
1830
1841
  PNG = T.let(:png, OpenAI::Beta::BetaResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1831
1842
  WEBP = T.let(:webp, OpenAI::Beta::BetaResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1832
1843
  JPEG = T.let(:jpeg, OpenAI::Beta::BetaResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1844
+ GIF = T.let(:gif, OpenAI::Beta::BetaResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1845
+ SVG = T.let(:svg, OpenAI::Beta::BetaResponseItem::ImageGenerationCall::OutputFormat::TaggedSymbol)
1833
1846
 
1834
1847
  sig {
1835
1848
  override.returns(
@@ -1894,6 +1907,74 @@ module OpenAI
1894
1907
  )
1895
1908
 
1896
1909
  end
1910
+
1911
+ class SvgUsage < OpenAI::Internal::Type::BaseModel
1912
+ OrHash = T.type_alias do
1913
+ T.any(
1914
+ OpenAI::Beta::BetaResponseItem::ImageGenerationCall::SvgUsage,
1915
+ OpenAI::Internal::AnyHash
1916
+ )
1917
+ end
1918
+
1919
+ sig { returns(Integer) }
1920
+ attr_accessor :input_tokens
1921
+
1922
+ sig { returns(String) }
1923
+ attr_accessor :model
1924
+
1925
+ sig { returns(Integer) }
1926
+ attr_accessor :output_tokens
1927
+
1928
+ sig { returns(Integer) }
1929
+ attr_accessor :reasoning_tokens
1930
+
1931
+ sig { returns(Integer) }
1932
+ attr_accessor :total_tokens
1933
+
1934
+ sig do
1935
+ params(
1936
+
1937
+ input_tokens: Integer,
1938
+
1939
+ model: String,
1940
+
1941
+ output_tokens: Integer,
1942
+
1943
+ reasoning_tokens: Integer,
1944
+
1945
+ total_tokens: Integer
1946
+ )
1947
+ .returns(T.attached_class)
1948
+ end
1949
+ def self.new(
1950
+
1951
+ input_tokens:,
1952
+
1953
+ model:,
1954
+
1955
+ output_tokens:,
1956
+
1957
+ reasoning_tokens:,
1958
+
1959
+ total_tokens:
1960
+ )
1961
+ end
1962
+
1963
+ sig do
1964
+ override.returns(
1965
+ {
1966
+ input_tokens: Integer,
1967
+ model: String,
1968
+ output_tokens: Integer,
1969
+ reasoning_tokens: Integer,
1970
+ total_tokens: Integer
1971
+ }
1972
+ )
1973
+ end
1974
+ def to_hash
1975
+ end
1976
+
1977
+ end
1897
1978
  end
1898
1979
 
1899
1980
  class LocalShellCall < OpenAI::Internal::Type::BaseModel