openai 0.111.0 → 0.112.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 (230) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/beta/agent.rb +2 -2
  5. data/lib/openai/models/beta/agent_create_params.rb +2 -2
  6. data/lib/openai/models/beta/agent_session.rb +2 -2
  7. data/lib/openai/models/beta/agent_tool.rb +18 -1
  8. data/lib/openai/models/beta/agent_tool_param.rb +18 -1
  9. data/lib/openai/models/beta/agent_update_params.rb +2 -2
  10. data/lib/openai/models/beta/agents/session_create_params.rb +2 -2
  11. data/lib/openai/models/beta/beta_response_input_file.rb +23 -1
  12. data/lib/openai/models/beta/beta_response_input_file_content.rb +23 -1
  13. data/lib/openai/models/beta/beta_response_input_image.rb +23 -1
  14. data/lib/openai/models/beta/beta_response_input_image_content.rb +23 -1
  15. data/lib/openai/models/beta/beta_response_input_text.rb +23 -1
  16. data/lib/openai/models/beta/beta_response_input_text_content.rb +23 -1
  17. data/lib/openai/models/beta/beta_response_item.rb +28 -1
  18. data/lib/openai/models/beta/beta_response_output_item.rb +28 -1
  19. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +26 -15
  20. data/lib/openai/models/beta/beta_tool.rb +26 -15
  21. data/lib/openai/models/beta/persisted_agent_tool.rb +18 -1
  22. data/lib/openai/models/beta/persisted_agent_tool_param.rb +18 -1
  23. data/lib/openai/models/chat/chat_completion_content_part.rb +23 -1
  24. data/lib/openai/models/chat/chat_completion_content_part_image.rb +23 -1
  25. data/lib/openai/models/chat/chat_completion_content_part_input_audio.rb +23 -1
  26. data/lib/openai/models/chat/chat_completion_content_part_text.rb +23 -1
  27. data/lib/openai/models/conversations/computer_screenshot_content.rb +23 -1
  28. data/lib/openai/models/decision_create_params.rb +8 -4
  29. data/lib/openai/models/image_edit_params.rb +20 -4
  30. data/lib/openai/models/image_generate_params.rb +23 -7
  31. data/lib/openai/models/image_model.rb +2 -0
  32. data/lib/openai/models/live/client_delegation.rb +20 -1
  33. data/lib/openai/models/live/client_event.rb +4 -4
  34. data/lib/openai/models/live/commentary_append_event.rb +1 -1
  35. data/lib/openai/models/live/decision_assistant_message.rb +154 -0
  36. data/lib/openai/models/live/decision_choice_option.rb +35 -0
  37. data/lib/openai/models/live/decision_developer_message.rb +70 -0
  38. data/lib/openai/models/live/decision_input_text.rb +26 -0
  39. data/lib/openai/models/live/decision_item_create_event.rb +490 -131
  40. data/lib/openai/models/live/decision_item_created_event.rb +486 -131
  41. data/lib/openai/models/live/decision_json_object.rb +10 -0
  42. data/lib/openai/models/live/decision_question.rb +172 -0
  43. data/lib/openai/models/live/decision_stored_assistant_message.rb +152 -0
  44. data/lib/openai/models/live/decision_stored_developer_message.rb +68 -0
  45. data/lib/openai/models/live/decision_stored_system_message.rb +68 -0
  46. data/lib/openai/models/live/decision_stored_user_message.rb +195 -0
  47. data/lib/openai/models/live/decision_system_message.rb +70 -0
  48. data/lib/openai/models/live/decision_trigger.rb +6 -258
  49. data/lib/openai/models/live/decision_user_message.rb +193 -0
  50. data/lib/openai/models/live/decisions_delegation_config.rb +5 -250
  51. data/lib/openai/models/live/decisions_delegation_update_config.rb +5 -257
  52. data/lib/openai/models/live/fork_client_event.rb +4 -4
  53. data/lib/openai/models/live/fork_server_event.rb +2 -2
  54. data/lib/openai/models/live/fork_session_config.rb +20 -1
  55. data/lib/openai/models/live/input_audio_muted_event.rb +3 -2
  56. data/lib/openai/models/live/input_audio_unmute_event.rb +2 -1
  57. data/lib/openai/models/live/input_audio_unmuted_event.rb +3 -2
  58. data/lib/openai/models/live/instructions_append_event.rb +5 -2
  59. data/lib/openai/models/live/media_session_config.rb +39 -2
  60. data/lib/openai/models/live/media_session_fork_config.rb +20 -1
  61. data/lib/openai/models/live/server_event.rb +2 -2
  62. data/lib/openai/models/live/session_accept_params.rb +39 -2
  63. data/lib/openai/models/live/session_config.rb +39 -2
  64. data/lib/openai/models/live/session_resource.rb +39 -2
  65. data/lib/openai/models/live/session_update_config.rb +41 -2
  66. data/lib/openai/models/live/sideband_client_event.rb +4 -4
  67. data/lib/openai/models/live/sideband_server_event.rb +2 -2
  68. data/lib/openai/models/live/thinking_append_event.rb +1 -1
  69. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +10 -12
  70. data/lib/openai/models/realtime/realtime_error_event.rb +1 -1
  71. data/lib/openai/models/realtime/realtime_server_event.rb +1 -1
  72. data/lib/openai/models/realtime/realtime_translation_server_event.rb +1 -1
  73. data/lib/openai/models/responses/response_input_file.rb +23 -1
  74. data/lib/openai/models/responses/response_input_file_content.rb +23 -1
  75. data/lib/openai/models/responses/response_input_image.rb +23 -1
  76. data/lib/openai/models/responses/response_input_image_content.rb +23 -1
  77. data/lib/openai/models/responses/response_input_text.rb +23 -1
  78. data/lib/openai/models/responses/response_input_text_content.rb +23 -1
  79. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +26 -15
  80. data/lib/openai/models/responses/tool.rb +26 -15
  81. data/lib/openai/resources/beta/agents.rb +2 -2
  82. data/lib/openai/resources/beta/responses.rb +2 -2
  83. data/lib/openai/resources/images.rb +18 -6
  84. data/lib/openai/resources/live/forks.rb +2 -2
  85. data/lib/openai/resources/live/sideband.rb +2 -2
  86. data/lib/openai/resources/live.rb +2 -2
  87. data/lib/openai/resources/realtime/translations.rb +2 -2
  88. data/lib/openai/resources/realtime.rb +2 -2
  89. data/lib/openai/resources/responses.rb +2 -2
  90. data/lib/openai/version.rb +1 -1
  91. data/lib/openai.rb +12 -0
  92. data/rbi/openai/models/beta/agent.rbi +2 -1
  93. data/rbi/openai/models/beta/agent_create_params.rbi +6 -3
  94. data/rbi/openai/models/beta/agent_session.rbi +2 -1
  95. data/rbi/openai/models/beta/agent_tool.rbi +40 -1
  96. data/rbi/openai/models/beta/agent_tool_param.rbi +40 -1
  97. data/rbi/openai/models/beta/agent_update_params.rbi +6 -3
  98. data/rbi/openai/models/beta/agents/session_create_params.rbi +6 -3
  99. data/rbi/openai/models/beta/beta_response_input_file.rbi +31 -1
  100. data/rbi/openai/models/beta/beta_response_input_file_content.rbi +39 -1
  101. data/rbi/openai/models/beta/beta_response_input_image.rbi +31 -1
  102. data/rbi/openai/models/beta/beta_response_input_image_content.rbi +39 -1
  103. data/rbi/openai/models/beta/beta_response_input_text.rbi +31 -1
  104. data/rbi/openai/models/beta/beta_response_input_text_content.rbi +39 -1
  105. data/rbi/openai/models/beta/beta_response_item.rbi +58 -1
  106. data/rbi/openai/models/beta/beta_response_output_item.rbi +58 -1
  107. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +24 -15
  108. data/rbi/openai/models/beta/beta_tool.rbi +24 -15
  109. data/rbi/openai/models/beta/persisted_agent_tool.rbi +40 -1
  110. data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +40 -1
  111. data/rbi/openai/models/chat/chat_completion_content_part.rbi +43 -1
  112. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +41 -1
  113. data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +46 -1
  114. data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +39 -1
  115. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +48 -1
  116. data/rbi/openai/models/image_edit_params.rbi +12 -3
  117. data/rbi/openai/models/image_generate_params.rbi +15 -6
  118. data/rbi/openai/models/live/client_delegation.rbi +23 -1
  119. data/rbi/openai/models/live/commentary_append_event.rbi +1 -1
  120. data/rbi/openai/models/live/decision_assistant_message.rbi +247 -0
  121. data/rbi/openai/models/live/decision_choice_option.rbi +67 -0
  122. data/rbi/openai/models/live/decision_developer_message.rbi +109 -0
  123. data/rbi/openai/models/live/decision_input_text.rbi +55 -0
  124. data/rbi/openai/models/live/decision_item_create_event.rbi +765 -184
  125. data/rbi/openai/models/live/decision_item_created_event.rbi +737 -184
  126. data/rbi/openai/models/live/decision_json_object.rbi +16 -0
  127. data/rbi/openai/models/live/decision_question.rbi +300 -0
  128. data/rbi/openai/models/live/decision_stored_assistant_message.rbi +245 -0
  129. data/rbi/openai/models/live/decision_stored_developer_message.rbi +107 -0
  130. data/rbi/openai/models/live/decision_stored_system_message.rbi +107 -0
  131. data/rbi/openai/models/live/decision_stored_user_message.rbi +333 -0
  132. data/rbi/openai/models/live/decision_system_message.rbi +109 -0
  133. data/rbi/openai/models/live/decision_trigger.rbi +11 -383
  134. data/rbi/openai/models/live/decision_user_message.rbi +320 -0
  135. data/rbi/openai/models/live/decisions_delegation_config.rbi +10 -384
  136. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +13 -387
  137. data/rbi/openai/models/live/fork_session_config.rbi +27 -1
  138. data/rbi/openai/models/live/input_audio_muted_event.rbi +3 -2
  139. data/rbi/openai/models/live/input_audio_unmute_event.rbi +2 -1
  140. data/rbi/openai/models/live/input_audio_unmuted_event.rbi +3 -2
  141. data/rbi/openai/models/live/instructions_append_event.rbi +5 -2
  142. data/rbi/openai/models/live/media_session_config.rbi +44 -2
  143. data/rbi/openai/models/live/media_session_fork_config.rbi +27 -1
  144. data/rbi/openai/models/live/session_accept_params.rbi +44 -2
  145. data/rbi/openai/models/live/session_config.rbi +44 -2
  146. data/rbi/openai/models/live/session_resource.rbi +44 -2
  147. data/rbi/openai/models/live/session_update_config.rbi +54 -2
  148. data/rbi/openai/models/live/thinking_append_event.rbi +1 -1
  149. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +10 -12
  150. data/rbi/openai/models/realtime/realtime_error_event.rbi +1 -1
  151. data/rbi/openai/models/responses/response_input_file.rbi +31 -1
  152. data/rbi/openai/models/responses/response_input_file_content.rbi +39 -1
  153. data/rbi/openai/models/responses/response_input_image.rbi +33 -1
  154. data/rbi/openai/models/responses/response_input_image_content.rbi +41 -1
  155. data/rbi/openai/models/responses/response_input_text.rbi +31 -1
  156. data/rbi/openai/models/responses/response_input_text_content.rbi +39 -1
  157. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +24 -15
  158. data/rbi/openai/models/responses/tool.rbi +24 -15
  159. data/rbi/openai/resources/beta/agents.rbi +4 -2
  160. data/rbi/openai/resources/beta/responses.rbi +8 -1
  161. data/rbi/openai/resources/images.rbi +18 -6
  162. data/rbi/openai/resources/live/forks.rbi +8 -1
  163. data/rbi/openai/resources/live/sideband.rbi +8 -1
  164. data/rbi/openai/resources/live.rbi +8 -1
  165. data/rbi/openai/resources/realtime/translations.rbi +8 -1
  166. data/rbi/openai/resources/realtime.rbi +8 -1
  167. data/rbi/openai/resources/responses.rbi +8 -1
  168. data/sig/openai/models/beta/agent_tool.rbs +14 -0
  169. data/sig/openai/models/beta/agent_tool_param.rbs +14 -0
  170. data/sig/openai/models/beta/beta_response_input_file.rbs +34 -3
  171. data/sig/openai/models/beta/beta_response_input_file_content.rbs +34 -3
  172. data/sig/openai/models/beta/beta_response_input_image.rbs +34 -3
  173. data/sig/openai/models/beta/beta_response_input_image_content.rbs +34 -3
  174. data/sig/openai/models/beta/beta_response_input_text.rbs +34 -3
  175. data/sig/openai/models/beta/beta_response_input_text_content.rbs +34 -3
  176. data/sig/openai/models/beta/beta_response_item.rbs +34 -3
  177. data/sig/openai/models/beta/beta_response_output_item.rbs +34 -3
  178. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +24 -15
  179. data/sig/openai/models/beta/beta_tool.rbs +24 -15
  180. data/sig/openai/models/beta/persisted_agent_tool.rbs +14 -0
  181. data/sig/openai/models/beta/persisted_agent_tool_param.rbs +14 -0
  182. data/sig/openai/models/chat/chat_completion_content_part.rbs +34 -3
  183. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +34 -3
  184. data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +34 -3
  185. data/sig/openai/models/chat/chat_completion_content_part_text.rbs +34 -3
  186. data/sig/openai/models/conversations/computer_screenshot_content.rbs +34 -3
  187. data/sig/openai/models/image_edit_params.rbs +8 -2
  188. data/sig/openai/models/image_generate_params.rbs +10 -4
  189. data/sig/openai/models/live/client_delegation.rbs +30 -3
  190. data/sig/openai/models/live/decision_assistant_message.rbs +134 -0
  191. data/sig/openai/models/live/decision_choice_option.rbs +37 -0
  192. data/sig/openai/models/live/decision_developer_message.rbs +67 -0
  193. data/sig/openai/models/live/decision_input_text.rbs +20 -0
  194. data/sig/openai/models/live/decision_item_create_event.rbs +413 -131
  195. data/sig/openai/models/live/decision_item_created_event.rbs +401 -131
  196. data/sig/openai/models/live/decision_json_object.rbs +9 -0
  197. data/sig/openai/models/live/decision_question.rbs +164 -0
  198. data/sig/openai/models/live/decision_stored_assistant_message.rbs +131 -0
  199. data/sig/openai/models/live/decision_stored_developer_message.rbs +64 -0
  200. data/sig/openai/models/live/decision_stored_system_message.rbs +64 -0
  201. data/sig/openai/models/live/decision_stored_user_message.rbs +177 -0
  202. data/sig/openai/models/live/decision_system_message.rbs +67 -0
  203. data/sig/openai/models/live/decision_trigger.rbs +8 -208
  204. data/sig/openai/models/live/decision_user_message.rbs +180 -0
  205. data/sig/openai/models/live/decisions_delegation_config.rbs +6 -204
  206. data/sig/openai/models/live/decisions_delegation_update_config.rbs +8 -206
  207. data/sig/openai/models/live/fork_session_config.rbs +26 -0
  208. data/sig/openai/models/live/media_session_config.rbs +53 -4
  209. data/sig/openai/models/live/media_session_fork_config.rbs +26 -0
  210. data/sig/openai/models/live/session_accept_params.rbs +53 -4
  211. data/sig/openai/models/live/session_config.rbs +53 -4
  212. data/sig/openai/models/live/session_resource.rbs +53 -4
  213. data/sig/openai/models/live/session_update_config.rbs +52 -0
  214. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +10 -12
  215. data/sig/openai/models/responses/response_input_file.rbs +34 -3
  216. data/sig/openai/models/responses/response_input_file_content.rbs +34 -3
  217. data/sig/openai/models/responses/response_input_image.rbs +34 -3
  218. data/sig/openai/models/responses/response_input_image_content.rbs +34 -3
  219. data/sig/openai/models/responses/response_input_text.rbs +34 -3
  220. data/sig/openai/models/responses/response_input_text_content.rbs +34 -3
  221. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +24 -15
  222. data/sig/openai/models/responses/tool.rbs +24 -15
  223. data/sig/openai/resources/beta/responses.rbs +2 -1
  224. data/sig/openai/resources/live/forks.rbs +2 -1
  225. data/sig/openai/resources/live/sideband.rbs +2 -1
  226. data/sig/openai/resources/live.rbs +2 -1
  227. data/sig/openai/resources/realtime/translations.rbs +2 -1
  228. data/sig/openai/resources/realtime.rbs +2 -1
  229. data/sig/openai/resources/responses.rbs +2 -1
  230. metadata +37 -1
@@ -135,18 +135,32 @@ module OpenAI
135
135
  sig { returns(Symbol) }
136
136
  attr_accessor :mode
137
137
 
138
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
139
+ sig {
140
+ returns(T.nilable(OpenAI::Responses::ResponseInputImageContent::PromptCacheBreakpoint::Ttl::OrSymbol))
141
+ }
142
+ attr_reader :ttl
143
+
144
+ sig { params(ttl: OpenAI::Responses::ResponseInputImageContent::PromptCacheBreakpoint::Ttl::OrSymbol).void }
145
+ attr_writer :ttl
146
+
138
147
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
139
148
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
140
149
  # token block.
141
150
  sig do
142
151
  params(
143
152
 
153
+ ttl: OpenAI::Responses::ResponseInputImageContent::PromptCacheBreakpoint::Ttl::OrSymbol,
154
+
144
155
  mode: Symbol
145
156
  )
146
157
  .returns(T.attached_class)
147
158
  end
148
159
  def self.new(
149
160
 
161
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
162
+ ttl: nil,
163
+
150
164
  # The breakpoint mode. Always `explicit`.
151
165
 
152
166
  mode: :explicit
@@ -155,12 +169,38 @@ module OpenAI
155
169
 
156
170
  sig do
157
171
  override.returns(
158
- {mode: Symbol}
172
+ {mode: Symbol, ttl: OpenAI::Responses::ResponseInputImageContent::PromptCacheBreakpoint::Ttl::OrSymbol}
159
173
  )
160
174
  end
161
175
  def to_hash
162
176
  end
163
177
 
178
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
179
+ module Ttl
180
+ extend OpenAI::Internal::Type::Enum
181
+
182
+ TaggedSymbol = T.type_alias {
183
+ T.all(Symbol, OpenAI::Responses::ResponseInputImageContent::PromptCacheBreakpoint::Ttl)
184
+ }
185
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
186
+
187
+ TTL_30M = T.let(
188
+ :"30m",
189
+ OpenAI::Responses::ResponseInputImageContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
190
+ )
191
+ TTL_12H = T.let(
192
+ :"12h",
193
+ OpenAI::Responses::ResponseInputImageContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
194
+ )
195
+
196
+ sig {
197
+ override.returns(
198
+ T::Array[OpenAI::Responses::ResponseInputImageContent::PromptCacheBreakpoint::Ttl::TaggedSymbol]
199
+ )
200
+ }
201
+ def self.values
202
+ end
203
+ end
164
204
  end
165
205
 
166
206
  end
@@ -85,18 +85,30 @@ module OpenAI
85
85
  sig { returns(Symbol) }
86
86
  attr_accessor :mode
87
87
 
88
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
89
+ sig { returns(T.nilable(OpenAI::Responses::ResponseInputText::PromptCacheBreakpoint::Ttl::OrSymbol)) }
90
+ attr_reader :ttl
91
+
92
+ sig { params(ttl: OpenAI::Responses::ResponseInputText::PromptCacheBreakpoint::Ttl::OrSymbol).void }
93
+ attr_writer :ttl
94
+
88
95
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
89
96
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
90
97
  # token block.
91
98
  sig do
92
99
  params(
93
100
 
101
+ ttl: OpenAI::Responses::ResponseInputText::PromptCacheBreakpoint::Ttl::OrSymbol,
102
+
94
103
  mode: Symbol
95
104
  )
96
105
  .returns(T.attached_class)
97
106
  end
98
107
  def self.new(
99
108
 
109
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
110
+ ttl: nil,
111
+
100
112
  # The breakpoint mode. Always `explicit`.
101
113
 
102
114
  mode: :explicit
@@ -105,12 +117,30 @@ module OpenAI
105
117
 
106
118
  sig do
107
119
  override.returns(
108
- {mode: Symbol}
120
+ {mode: Symbol, ttl: OpenAI::Responses::ResponseInputText::PromptCacheBreakpoint::Ttl::OrSymbol}
109
121
  )
110
122
  end
111
123
  def to_hash
112
124
  end
113
125
 
126
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
127
+ module Ttl
128
+ extend OpenAI::Internal::Type::Enum
129
+
130
+ TaggedSymbol = T.type_alias {
131
+ T.all(Symbol, OpenAI::Responses::ResponseInputText::PromptCacheBreakpoint::Ttl)
132
+ }
133
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
134
+
135
+ TTL_30M = T.let(:"30m", OpenAI::Responses::ResponseInputText::PromptCacheBreakpoint::Ttl::TaggedSymbol)
136
+ TTL_12H = T.let(:"12h", OpenAI::Responses::ResponseInputText::PromptCacheBreakpoint::Ttl::TaggedSymbol)
137
+
138
+ sig {
139
+ override.returns(T::Array[OpenAI::Responses::ResponseInputText::PromptCacheBreakpoint::Ttl::TaggedSymbol])
140
+ }
141
+ def self.values
142
+ end
143
+ end
114
144
  end
115
145
 
116
146
  end
@@ -92,18 +92,30 @@ module OpenAI
92
92
  sig { returns(Symbol) }
93
93
  attr_accessor :mode
94
94
 
95
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
96
+ sig { returns(T.nilable(OpenAI::Responses::ResponseInputTextContent::PromptCacheBreakpoint::Ttl::OrSymbol)) }
97
+ attr_reader :ttl
98
+
99
+ sig { params(ttl: OpenAI::Responses::ResponseInputTextContent::PromptCacheBreakpoint::Ttl::OrSymbol).void }
100
+ attr_writer :ttl
101
+
95
102
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
96
103
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
97
104
  # token block.
98
105
  sig do
99
106
  params(
100
107
 
108
+ ttl: OpenAI::Responses::ResponseInputTextContent::PromptCacheBreakpoint::Ttl::OrSymbol,
109
+
101
110
  mode: Symbol
102
111
  )
103
112
  .returns(T.attached_class)
104
113
  end
105
114
  def self.new(
106
115
 
116
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
117
+ ttl: nil,
118
+
107
119
  # The breakpoint mode. Always `explicit`.
108
120
 
109
121
  mode: :explicit
@@ -112,12 +124,38 @@ module OpenAI
112
124
 
113
125
  sig do
114
126
  override.returns(
115
- {mode: Symbol}
127
+ {mode: Symbol, ttl: OpenAI::Responses::ResponseInputTextContent::PromptCacheBreakpoint::Ttl::OrSymbol}
116
128
  )
117
129
  end
118
130
  def to_hash
119
131
  end
120
132
 
133
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
134
+ module Ttl
135
+ extend OpenAI::Internal::Type::Enum
136
+
137
+ TaggedSymbol = T.type_alias {
138
+ T.all(Symbol, OpenAI::Responses::ResponseInputTextContent::PromptCacheBreakpoint::Ttl)
139
+ }
140
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
141
+
142
+ TTL_30M = T.let(
143
+ :"30m",
144
+ OpenAI::Responses::ResponseInputTextContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
145
+ )
146
+ TTL_12H = T.let(
147
+ :"12h",
148
+ OpenAI::Responses::ResponseInputTextContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
149
+ )
150
+
151
+ sig {
152
+ override.returns(
153
+ T::Array[OpenAI::Responses::ResponseInputTextContent::PromptCacheBreakpoint::Ttl::TaggedSymbol]
154
+ )
155
+ }
156
+ def self.values
157
+ end
158
+ end
121
159
  end
122
160
 
123
161
  end
@@ -1324,11 +1324,14 @@ module OpenAI
1324
1324
  }
1325
1325
  attr_writer :input_image_mask
1326
1326
 
1327
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1328
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1329
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1330
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1331
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1327
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1328
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1329
+ # `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`.
1332
+ #
1333
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1334
+ # `gpt-image-2.5-flare` instead.
1332
1335
  sig {
1333
1336
  returns(
1334
1337
  T.nilable(
@@ -1522,11 +1525,14 @@ module OpenAI
1522
1525
  # `file_id` (string, optional).
1523
1526
  input_image_mask: nil,
1524
1527
 
1525
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1526
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1527
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1528
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1529
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1528
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1529
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1530
+ # `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`.
1533
+ #
1534
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1535
+ # `gpt-image-2.5-flare` instead.
1530
1536
  model: nil,
1531
1537
 
1532
1538
  # Moderation level for the generated image. Default: `auto`.
@@ -1759,11 +1765,14 @@ module OpenAI
1759
1765
 
1760
1766
  end
1761
1767
 
1762
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1763
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1764
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1765
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1766
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1768
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1769
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1770
+ # `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`.
1773
+ #
1774
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1775
+ # `gpt-image-2.5-flare` instead.
1767
1776
  module Model
1768
1777
  extend OpenAI::Internal::Type::Union
1769
1778
 
@@ -992,11 +992,14 @@ module OpenAI
992
992
  sig { params(input_image_mask: OpenAI::Responses::Tool::ImageGeneration::InputImageMask::OrHash).void }
993
993
  attr_writer :input_image_mask
994
994
 
995
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
996
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
997
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
998
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
999
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
995
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
996
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
997
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
998
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
999
+ # `gpt-image-2`.
1000
+ #
1001
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1002
+ # `gpt-image-2.5-flare` instead.
1000
1003
  sig { returns(T.nilable(T.any(String, OpenAI::Responses::Tool::ImageGeneration::Model::OrSymbol))) }
1001
1004
  attr_reader :model
1002
1005
 
@@ -1115,11 +1118,14 @@ module OpenAI
1115
1118
  # `file_id` (string, optional).
1116
1119
  input_image_mask: nil,
1117
1120
 
1118
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1119
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1120
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1121
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1122
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1121
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1122
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1123
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1124
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1125
+ # `gpt-image-2`.
1126
+ #
1127
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1128
+ # `gpt-image-2.5-flare` instead.
1123
1129
  model: nil,
1124
1130
 
1125
1131
  # Moderation level for the generated image. Default: `auto`.
@@ -1293,11 +1299,14 @@ module OpenAI
1293
1299
 
1294
1300
  end
1295
1301
 
1296
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1297
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1298
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1299
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1300
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1302
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1303
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1304
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1305
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1306
+ # `gpt-image-2`.
1307
+ #
1308
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1309
+ # `gpt-image-2.5-flare` instead.
1301
1310
  module Model
1302
1311
  extend OpenAI::Internal::Type::Union
1303
1312
 
@@ -36,7 +36,8 @@ module OpenAI
36
36
  OpenAI::Beta::PersistedAgentToolParam::ProgrammaticToolCalling::OrHash,
37
37
  OpenAI::Beta::PersistedAgentToolParam::Mcp::OrHash,
38
38
  OpenAI::Beta::PersistedAgentToolParam::WebSearch::OrHash,
39
- OpenAI::Beta::PersistedAgentToolParam::ComputerUse::OrHash
39
+ OpenAI::Beta::PersistedAgentToolParam::ComputerUse::OrHash,
40
+ OpenAI::Beta::PersistedAgentToolParam::Automations::OrHash
40
41
  )
41
42
  ]
42
43
  ),
@@ -103,7 +104,8 @@ module OpenAI
103
104
  OpenAI::Beta::PersistedAgentToolParam::ProgrammaticToolCalling::OrHash,
104
105
  OpenAI::Beta::PersistedAgentToolParam::Mcp::OrHash,
105
106
  OpenAI::Beta::PersistedAgentToolParam::WebSearch::OrHash,
106
- OpenAI::Beta::PersistedAgentToolParam::ComputerUse::OrHash
107
+ OpenAI::Beta::PersistedAgentToolParam::ComputerUse::OrHash,
108
+ OpenAI::Beta::PersistedAgentToolParam::Automations::OrHash
107
109
  )
108
110
  ]
109
111
  ),
@@ -8,7 +8,14 @@ module OpenAI
8
8
  # Create and manage model responses.
9
9
  class Responses
10
10
 
11
- include OpenAI::WebSocket::Resource
11
+ include OpenAI::WebSocket::TypedResource
12
+
13
+ extend T::Generic
14
+
15
+ WebSocketClientEvent = type_member { {fixed: OpenAI::Beta::BetaResponsesClientEvent::Variants} }
16
+ WebSocketServerEvent = type_member {
17
+ {fixed: T.any(OpenAI::Beta::BetaResponsesServerEvent::Variants, T::Hash[Symbol, T.untyped])}
18
+ }
12
19
 
13
20
  # @api private
14
21
  sig { params(query: T::Hash[T.untyped, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
@@ -116,11 +116,14 @@ module OpenAI
116
116
  # metadata. Use `OpenAI::FilePart` when you need to override the filename or
117
117
  # content type.
118
118
  mask: nil,
119
- # The GPT image model to use for image editing (`gpt-image-1`, `gpt-image-1-mini`,
119
+ # The GPT image model to use for image editing (`gpt-image-1-mini`,
120
120
  # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
121
121
  # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
122
122
  # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
123
123
  # `chatgpt-image-latest`).
124
+ #
125
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
126
+ # `gpt-image-2.5-flare` instead.
124
127
  model: nil,
125
128
  # The number of images to generate. Must be between 1 and 10.
126
129
  n: nil,
@@ -245,11 +248,14 @@ module OpenAI
245
248
  # metadata. Use `OpenAI::FilePart` when you need to override the filename or
246
249
  # content type.
247
250
  mask: nil,
248
- # The GPT image model to use for image editing (`gpt-image-1`, `gpt-image-1-mini`,
251
+ # The GPT image model to use for image editing (`gpt-image-1-mini`,
249
252
  # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
250
253
  # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
251
254
  # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
252
255
  # `chatgpt-image-latest`).
256
+ #
257
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
258
+ # `gpt-image-2.5-flare` instead.
253
259
  model: nil,
254
260
  # The number of images to generate. Must be between 1 and 10.
255
261
  n: nil,
@@ -347,10 +353,13 @@ module OpenAI
347
353
  # set the output format to `png` or `webp`.
348
354
  background: nil,
349
355
  # The GPT image model to use for image generation. Specify a model explicitly.
350
- # Supported models include `gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`,
351
- # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
356
+ # Supported models include `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
357
+ # `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
352
358
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
353
359
  # `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`.
360
+ #
361
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
362
+ # `gpt-image-2.5-flare` instead.
354
363
  model: nil,
355
364
  # Control the content-moderation level for images generated by the GPT image
356
365
  # models. Must be either `low` for less restrictive filtering or `auto` (default
@@ -456,10 +465,13 @@ module OpenAI
456
465
  # set the output format to `png` or `webp`.
457
466
  background: nil,
458
467
  # The GPT image model to use for image generation. Specify a model explicitly.
459
- # Supported models include `gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`,
460
- # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
468
+ # Supported models include `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
469
+ # `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
461
470
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
462
471
  # `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`.
472
+ #
473
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
474
+ # `gpt-image-2.5-flare` instead.
463
475
  model: nil,
464
476
  # Control the content-moderation level for images generated by the GPT image
465
477
  # models. Must be either `low` for less restrictive filtering or `auto` (default
@@ -7,7 +7,14 @@ module OpenAI
7
7
 
8
8
  class Forks
9
9
 
10
- include OpenAI::WebSocket::Resource
10
+ include OpenAI::WebSocket::TypedResource
11
+
12
+ extend T::Generic
13
+
14
+ WebSocketClientEvent = type_member { {fixed: OpenAI::Live::ForkClientEvent::Variants} }
15
+ WebSocketServerEvent = type_member {
16
+ {fixed: T.any(OpenAI::Live::ForkServerEvent::Variants, T::Hash[Symbol, T.untyped])}
17
+ }
11
18
 
12
19
  # @api private
13
20
  sig { params(session_id: String, query: T::Hash[T.untyped, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
@@ -7,7 +7,14 @@ module OpenAI
7
7
 
8
8
  class Sideband
9
9
 
10
- include OpenAI::WebSocket::Resource
10
+ include OpenAI::WebSocket::TypedResource
11
+
12
+ extend T::Generic
13
+
14
+ WebSocketClientEvent = type_member { {fixed: OpenAI::Live::SidebandClientEvent::Variants} }
15
+ WebSocketServerEvent = type_member {
16
+ {fixed: T.any(OpenAI::Live::SidebandServerEvent::Variants, T::Hash[Symbol, T.untyped])}
17
+ }
11
18
 
12
19
  # @api private
13
20
  sig { params(session_id: String, query: T::Hash[T.untyped, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
@@ -5,7 +5,14 @@ module OpenAI
5
5
 
6
6
  class Live
7
7
 
8
- include OpenAI::WebSocket::Resource
8
+ include OpenAI::WebSocket::TypedResource
9
+
10
+ extend T::Generic
11
+
12
+ WebSocketClientEvent = type_member { {fixed: OpenAI::Live::ClientEvent::Variants} }
13
+ WebSocketServerEvent = type_member {
14
+ {fixed: T.any(OpenAI::Live::ServerEvent::Variants, T::Hash[Symbol, T.untyped])}
15
+ }
9
16
 
10
17
  # @api private
11
18
  sig { params(query: T::Hash[T.untyped, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
@@ -7,7 +7,14 @@ module OpenAI
7
7
 
8
8
  class Translations
9
9
 
10
- include OpenAI::WebSocket::Resource
10
+ include OpenAI::WebSocket::TypedResource
11
+
12
+ extend T::Generic
13
+
14
+ WebSocketClientEvent = type_member { {fixed: OpenAI::Realtime::RealtimeTranslationClientEvent::Variants} }
15
+ WebSocketServerEvent = type_member {
16
+ {fixed: T.any(OpenAI::Realtime::RealtimeTranslationServerEvent::Variants, T::Hash[Symbol, T.untyped])}
17
+ }
11
18
 
12
19
  # @api private
13
20
  sig { params(query: T::Hash[T.untyped, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
@@ -5,7 +5,14 @@ module OpenAI
5
5
 
6
6
  class Realtime
7
7
 
8
- include OpenAI::WebSocket::Resource
8
+ include OpenAI::WebSocket::TypedResource
9
+
10
+ extend T::Generic
11
+
12
+ WebSocketClientEvent = type_member { {fixed: OpenAI::Realtime::RealtimeClientEvent::Variants} }
13
+ WebSocketServerEvent = type_member {
14
+ {fixed: T.any(OpenAI::Realtime::RealtimeServerEvent::Variants, T::Hash[Symbol, T.untyped])}
15
+ }
9
16
 
10
17
  # @api private
11
18
  sig { params(query: T::Hash[T.untyped, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
@@ -6,7 +6,14 @@ module OpenAI
6
6
  # Create and manage model responses.
7
7
  class Responses
8
8
 
9
- include OpenAI::WebSocket::Resource
9
+ include OpenAI::WebSocket::TypedResource
10
+
11
+ extend T::Generic
12
+
13
+ WebSocketClientEvent = type_member { {fixed: OpenAI::Responses::ResponsesClientEvent::Variants} }
14
+ WebSocketServerEvent = type_member {
15
+ {fixed: T.any(OpenAI::Responses::ResponsesServerEvent::Variants, T::Hash[Symbol, T.untyped])}
16
+ }
10
17
 
11
18
  # @api private
12
19
  sig { params(query: T::Hash[T.untyped, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
@@ -7,6 +7,7 @@ module OpenAI
7
7
  | OpenAI::Beta::AgentTool::Mcp
8
8
  | OpenAI::Beta::AgentTool::WebSearch
9
9
  | OpenAI::Beta::AgentTool::ComputerUse
10
+ | OpenAI::Beta::AgentTool::Automations
10
11
 
11
12
  module AgentTool
12
13
  extend OpenAI::Internal::Type::Union
@@ -315,6 +316,19 @@ module OpenAI
315
316
  def to_hash: -> { include_screenshots: bool, ?type: :computer_use }
316
317
  end
317
318
 
319
+ type automations = { ?type: :automations }
320
+
321
+ class Automations < OpenAI::Internal::Type::BaseModel
322
+ # The type of the object. Always `automations`.
323
+ attr_accessor type: :automations
324
+
325
+ # @param type
326
+ # The type of the object. Always `automations`.
327
+ def initialize: (?type: :automations) -> void
328
+
329
+ def to_hash: -> { ?type: :automations }
330
+ end
331
+
318
332
  def self?.variants: -> ::Array[OpenAI::Models::Beta::agent_tool]
319
333
  end
320
334
  end
@@ -8,6 +8,7 @@ module OpenAI
8
8
  | OpenAI::Beta::AgentToolParam::Mcp
9
9
  | OpenAI::Beta::AgentToolParam::WebSearch
10
10
  | OpenAI::Beta::AgentToolParam::ComputerUse
11
+ | OpenAI::Beta::AgentToolParam::Automations
11
12
 
12
13
  module AgentToolParam
13
14
  extend OpenAI::Internal::Type::Union
@@ -359,6 +360,19 @@ module OpenAI
359
360
  def to_hash: -> { ?type: :computer_use, ?include_screenshots: bool }
360
361
  end
361
362
 
363
+ type automations = { ?type: :automations }
364
+
365
+ class Automations < OpenAI::Internal::Type::BaseModel
366
+ # The type of the object. Always `automations`.
367
+ attr_accessor type: :automations
368
+
369
+ # @param type
370
+ # The type of the object. Always `automations`.
371
+ def initialize: (?type: :automations) -> void
372
+
373
+ def to_hash: -> { ?type: :automations }
374
+ end
375
+
362
376
  def self?.variants: -> ::Array[OpenAI::Models::Beta::agent_tool_param]
363
377
  end
364
378
  end
@@ -119,17 +119,48 @@ module OpenAI
119
119
  def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseInputFile::detail]
120
120
  end
121
121
 
122
- type prompt_cache_breakpoint = { ?mode: :explicit }
122
+ type prompt_cache_breakpoint =
123
+ {
124
+ ?mode: :explicit,
125
+ ?ttl: OpenAI::Models::Beta::BetaResponseInputFile::PromptCacheBreakpoint::ttl
126
+ }
123
127
 
124
128
  class PromptCacheBreakpoint < OpenAI::Internal::Type::BaseModel
125
129
  # The breakpoint mode. Always `explicit`.
126
130
  attr_accessor mode: :explicit
127
131
 
132
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
133
+ attr_reader ttl: OpenAI::Models::Beta::BetaResponseInputFile::PromptCacheBreakpoint::ttl?
134
+
135
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
136
+ def ttl=: (
137
+ OpenAI::Models::Beta::BetaResponseInputFile::PromptCacheBreakpoint::ttl
138
+ ) -> OpenAI::Models::Beta::BetaResponseInputFile::PromptCacheBreakpoint::ttl
139
+
140
+ # @param ttl
141
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
128
142
  # @param mode
129
143
  # The breakpoint mode. Always `explicit`.
130
- def initialize: (?mode: :explicit) -> void
144
+ def initialize: (
145
+ ?ttl: OpenAI::Models::Beta::BetaResponseInputFile::PromptCacheBreakpoint::ttl,
146
+ ?mode: :explicit
147
+ ) -> void
148
+
149
+ def to_hash: -> {
150
+ ?mode: :explicit,
151
+ ?ttl: OpenAI::Models::Beta::BetaResponseInputFile::PromptCacheBreakpoint::ttl
152
+ }
153
+
154
+ type ttl = :"30m" | :"12h"
155
+
156
+ module Ttl
157
+ extend OpenAI::Internal::Type::Enum
158
+
159
+ TTL_30M: :"30m"
160
+ TTL_12H: :"12h"
131
161
 
132
- def to_hash: -> { ?mode: :explicit }
162
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseInputFile::PromptCacheBreakpoint::ttl]
163
+ end
133
164
  end
134
165
  end
135
166
  end