openai 0.110.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 (255) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -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 +802 -28
  29. data/lib/openai/models/decision_input_json.rb +45 -0
  30. data/lib/openai/models/decision_input_message.rb +304 -48
  31. data/lib/openai/models/decision_input_part.rb +4 -1
  32. data/lib/openai/models/decision_question_input_image.rb +54 -0
  33. data/lib/openai/models/decision_question_input_part.rb +23 -0
  34. data/lib/openai/models/decision_question_input_text.rb +21 -0
  35. data/lib/openai/models/image_edit_params.rb +20 -4
  36. data/lib/openai/models/image_generate_params.rb +23 -7
  37. data/lib/openai/models/image_model.rb +2 -0
  38. data/lib/openai/models/live/client_delegation.rb +20 -1
  39. data/lib/openai/models/live/client_event.rb +4 -4
  40. data/lib/openai/models/live/commentary_append_event.rb +1 -1
  41. data/lib/openai/models/live/decision_assistant_message.rb +154 -0
  42. data/lib/openai/models/live/decision_choice_option.rb +35 -0
  43. data/lib/openai/models/live/decision_developer_message.rb +70 -0
  44. data/lib/openai/models/live/decision_input_text.rb +26 -0
  45. data/lib/openai/models/live/decision_item_create_event.rb +490 -131
  46. data/lib/openai/models/live/decision_item_created_event.rb +486 -131
  47. data/lib/openai/models/live/decision_json_object.rb +10 -0
  48. data/lib/openai/models/live/decision_question.rb +172 -0
  49. data/lib/openai/models/live/decision_stored_assistant_message.rb +152 -0
  50. data/lib/openai/models/live/decision_stored_developer_message.rb +68 -0
  51. data/lib/openai/models/live/decision_stored_system_message.rb +68 -0
  52. data/lib/openai/models/live/decision_stored_user_message.rb +195 -0
  53. data/lib/openai/models/live/decision_system_message.rb +70 -0
  54. data/lib/openai/models/live/decision_trigger.rb +6 -185
  55. data/lib/openai/models/live/decision_user_message.rb +193 -0
  56. data/lib/openai/models/live/decisions_delegation_config.rb +5 -177
  57. data/lib/openai/models/live/decisions_delegation_update_config.rb +5 -184
  58. data/lib/openai/models/live/fork_client_event.rb +4 -4
  59. data/lib/openai/models/live/fork_server_event.rb +2 -2
  60. data/lib/openai/models/live/fork_session_config.rb +20 -1
  61. data/lib/openai/models/live/input_audio_muted_event.rb +3 -2
  62. data/lib/openai/models/live/input_audio_unmute_event.rb +2 -1
  63. data/lib/openai/models/live/input_audio_unmuted_event.rb +3 -2
  64. data/lib/openai/models/live/instructions_append_event.rb +5 -2
  65. data/lib/openai/models/live/media_session_config.rb +39 -2
  66. data/lib/openai/models/live/media_session_fork_config.rb +20 -1
  67. data/lib/openai/models/live/server_event.rb +2 -2
  68. data/lib/openai/models/live/session_accept_params.rb +39 -2
  69. data/lib/openai/models/live/session_config.rb +39 -2
  70. data/lib/openai/models/live/session_resource.rb +39 -2
  71. data/lib/openai/models/live/session_update_config.rb +41 -2
  72. data/lib/openai/models/live/sideband_client_event.rb +4 -4
  73. data/lib/openai/models/live/sideband_server_event.rb +2 -2
  74. data/lib/openai/models/live/thinking_append_event.rb +1 -1
  75. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +10 -12
  76. data/lib/openai/models/realtime/realtime_error_event.rb +1 -1
  77. data/lib/openai/models/realtime/realtime_server_event.rb +1 -1
  78. data/lib/openai/models/realtime/realtime_translation_server_event.rb +1 -1
  79. data/lib/openai/models/responses/response_input_file.rb +23 -1
  80. data/lib/openai/models/responses/response_input_file_content.rb +23 -1
  81. data/lib/openai/models/responses/response_input_image.rb +23 -1
  82. data/lib/openai/models/responses/response_input_image_content.rb +23 -1
  83. data/lib/openai/models/responses/response_input_text.rb +23 -1
  84. data/lib/openai/models/responses/response_input_text_content.rb +23 -1
  85. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +26 -15
  86. data/lib/openai/models/responses/tool.rb +26 -15
  87. data/lib/openai/models.rb +8 -0
  88. data/lib/openai/resources/beta/agents.rb +2 -2
  89. data/lib/openai/resources/beta/responses.rb +2 -2
  90. data/lib/openai/resources/decisions.rb +5 -6
  91. data/lib/openai/resources/images.rb +18 -6
  92. data/lib/openai/resources/live/forks.rb +2 -2
  93. data/lib/openai/resources/live/sideband.rb +2 -2
  94. data/lib/openai/resources/live.rb +2 -2
  95. data/lib/openai/resources/realtime/translations.rb +2 -2
  96. data/lib/openai/resources/realtime.rb +2 -2
  97. data/lib/openai/resources/responses.rb +2 -2
  98. data/lib/openai/version.rb +1 -1
  99. data/lib/openai.rb +16 -0
  100. data/rbi/openai/models/beta/agent.rbi +2 -1
  101. data/rbi/openai/models/beta/agent_create_params.rbi +6 -3
  102. data/rbi/openai/models/beta/agent_session.rbi +2 -1
  103. data/rbi/openai/models/beta/agent_tool.rbi +40 -1
  104. data/rbi/openai/models/beta/agent_tool_param.rbi +40 -1
  105. data/rbi/openai/models/beta/agent_update_params.rbi +6 -3
  106. data/rbi/openai/models/beta/agents/session_create_params.rbi +6 -3
  107. data/rbi/openai/models/beta/beta_response_input_file.rbi +31 -1
  108. data/rbi/openai/models/beta/beta_response_input_file_content.rbi +39 -1
  109. data/rbi/openai/models/beta/beta_response_input_image.rbi +31 -1
  110. data/rbi/openai/models/beta/beta_response_input_image_content.rbi +39 -1
  111. data/rbi/openai/models/beta/beta_response_input_text.rbi +31 -1
  112. data/rbi/openai/models/beta/beta_response_input_text_content.rbi +39 -1
  113. data/rbi/openai/models/beta/beta_response_item.rbi +58 -1
  114. data/rbi/openai/models/beta/beta_response_output_item.rbi +58 -1
  115. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +24 -15
  116. data/rbi/openai/models/beta/beta_tool.rbi +24 -15
  117. data/rbi/openai/models/beta/persisted_agent_tool.rbi +40 -1
  118. data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +40 -1
  119. data/rbi/openai/models/chat/chat_completion_content_part.rbi +43 -1
  120. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +41 -1
  121. data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +46 -1
  122. data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +39 -1
  123. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +48 -1
  124. data/rbi/openai/models/decision_create_params.rbi +1273 -26
  125. data/rbi/openai/models/decision_input_json.rbi +75 -0
  126. data/rbi/openai/models/decision_input_message.rbi +455 -52
  127. data/rbi/openai/models/decision_input_part.rbi +2 -1
  128. data/rbi/openai/models/decision_question_input_image.rbi +82 -0
  129. data/rbi/openai/models/decision_question_input_part.rbi +25 -0
  130. data/rbi/openai/models/decision_question_input_text.rbi +49 -0
  131. data/rbi/openai/models/image_edit_params.rbi +12 -3
  132. data/rbi/openai/models/image_generate_params.rbi +15 -6
  133. data/rbi/openai/models/live/client_delegation.rbi +23 -1
  134. data/rbi/openai/models/live/commentary_append_event.rbi +1 -1
  135. data/rbi/openai/models/live/decision_assistant_message.rbi +247 -0
  136. data/rbi/openai/models/live/decision_choice_option.rbi +67 -0
  137. data/rbi/openai/models/live/decision_developer_message.rbi +109 -0
  138. data/rbi/openai/models/live/decision_input_text.rbi +55 -0
  139. data/rbi/openai/models/live/decision_item_create_event.rbi +765 -184
  140. data/rbi/openai/models/live/decision_item_created_event.rbi +737 -184
  141. data/rbi/openai/models/live/decision_json_object.rbi +16 -0
  142. data/rbi/openai/models/live/decision_question.rbi +300 -0
  143. data/rbi/openai/models/live/decision_stored_assistant_message.rbi +245 -0
  144. data/rbi/openai/models/live/decision_stored_developer_message.rbi +107 -0
  145. data/rbi/openai/models/live/decision_stored_system_message.rbi +107 -0
  146. data/rbi/openai/models/live/decision_stored_user_message.rbi +333 -0
  147. data/rbi/openai/models/live/decision_system_message.rbi +109 -0
  148. data/rbi/openai/models/live/decision_trigger.rbi +11 -320
  149. data/rbi/openai/models/live/decision_user_message.rbi +320 -0
  150. data/rbi/openai/models/live/decisions_delegation_config.rbi +10 -321
  151. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +13 -324
  152. data/rbi/openai/models/live/fork_session_config.rbi +27 -1
  153. data/rbi/openai/models/live/input_audio_muted_event.rbi +3 -2
  154. data/rbi/openai/models/live/input_audio_unmute_event.rbi +2 -1
  155. data/rbi/openai/models/live/input_audio_unmuted_event.rbi +3 -2
  156. data/rbi/openai/models/live/instructions_append_event.rbi +5 -2
  157. data/rbi/openai/models/live/media_session_config.rbi +44 -2
  158. data/rbi/openai/models/live/media_session_fork_config.rbi +27 -1
  159. data/rbi/openai/models/live/session_accept_params.rbi +44 -2
  160. data/rbi/openai/models/live/session_config.rbi +44 -2
  161. data/rbi/openai/models/live/session_resource.rbi +44 -2
  162. data/rbi/openai/models/live/session_update_config.rbi +54 -2
  163. data/rbi/openai/models/live/thinking_append_event.rbi +1 -1
  164. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +10 -12
  165. data/rbi/openai/models/realtime/realtime_error_event.rbi +1 -1
  166. data/rbi/openai/models/responses/response_input_file.rbi +31 -1
  167. data/rbi/openai/models/responses/response_input_file_content.rbi +39 -1
  168. data/rbi/openai/models/responses/response_input_image.rbi +33 -1
  169. data/rbi/openai/models/responses/response_input_image_content.rbi +41 -1
  170. data/rbi/openai/models/responses/response_input_text.rbi +31 -1
  171. data/rbi/openai/models/responses/response_input_text_content.rbi +39 -1
  172. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +24 -15
  173. data/rbi/openai/models/responses/tool.rbi +24 -15
  174. data/rbi/openai/models.rbi +8 -0
  175. data/rbi/openai/resources/beta/agents.rbi +4 -2
  176. data/rbi/openai/resources/beta/responses.rbi +8 -1
  177. data/rbi/openai/resources/decisions.rbi +4 -5
  178. data/rbi/openai/resources/images.rbi +18 -6
  179. data/rbi/openai/resources/live/forks.rbi +8 -1
  180. data/rbi/openai/resources/live/sideband.rbi +8 -1
  181. data/rbi/openai/resources/live.rbi +8 -1
  182. data/rbi/openai/resources/realtime/translations.rbi +8 -1
  183. data/rbi/openai/resources/realtime.rbi +8 -1
  184. data/rbi/openai/resources/responses.rbi +8 -1
  185. data/sig/openai/models/beta/agent_tool.rbs +14 -0
  186. data/sig/openai/models/beta/agent_tool_param.rbs +14 -0
  187. data/sig/openai/models/beta/beta_response_input_file.rbs +34 -3
  188. data/sig/openai/models/beta/beta_response_input_file_content.rbs +34 -3
  189. data/sig/openai/models/beta/beta_response_input_image.rbs +34 -3
  190. data/sig/openai/models/beta/beta_response_input_image_content.rbs +34 -3
  191. data/sig/openai/models/beta/beta_response_input_text.rbs +34 -3
  192. data/sig/openai/models/beta/beta_response_input_text_content.rbs +34 -3
  193. data/sig/openai/models/beta/beta_response_item.rbs +34 -3
  194. data/sig/openai/models/beta/beta_response_output_item.rbs +34 -3
  195. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +24 -15
  196. data/sig/openai/models/beta/beta_tool.rbs +24 -15
  197. data/sig/openai/models/beta/persisted_agent_tool.rbs +14 -0
  198. data/sig/openai/models/beta/persisted_agent_tool_param.rbs +14 -0
  199. data/sig/openai/models/chat/chat_completion_content_part.rbs +34 -3
  200. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +34 -3
  201. data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +34 -3
  202. data/sig/openai/models/chat/chat_completion_content_part_text.rbs +34 -3
  203. data/sig/openai/models/conversations/computer_screenshot_content.rbs +34 -3
  204. data/sig/openai/models/decision_create_params.rbs +610 -24
  205. data/sig/openai/models/decision_input_json.rbs +34 -0
  206. data/sig/openai/models/decision_input_message.rbs +264 -35
  207. data/sig/openai/models/decision_input_part.rbs +3 -1
  208. data/sig/openai/models/decision_question_input_image.rbs +51 -0
  209. data/sig/openai/models/decision_question_input_part.rbs +14 -0
  210. data/sig/openai/models/decision_question_input_text.rbs +15 -0
  211. data/sig/openai/models/image_edit_params.rbs +8 -2
  212. data/sig/openai/models/image_generate_params.rbs +10 -4
  213. data/sig/openai/models/live/client_delegation.rbs +30 -3
  214. data/sig/openai/models/live/decision_assistant_message.rbs +134 -0
  215. data/sig/openai/models/live/decision_choice_option.rbs +37 -0
  216. data/sig/openai/models/live/decision_developer_message.rbs +67 -0
  217. data/sig/openai/models/live/decision_input_text.rbs +20 -0
  218. data/sig/openai/models/live/decision_item_create_event.rbs +413 -131
  219. data/sig/openai/models/live/decision_item_created_event.rbs +401 -131
  220. data/sig/openai/models/live/decision_json_object.rbs +9 -0
  221. data/sig/openai/models/live/decision_question.rbs +164 -0
  222. data/sig/openai/models/live/decision_stored_assistant_message.rbs +131 -0
  223. data/sig/openai/models/live/decision_stored_developer_message.rbs +64 -0
  224. data/sig/openai/models/live/decision_stored_system_message.rbs +64 -0
  225. data/sig/openai/models/live/decision_stored_user_message.rbs +177 -0
  226. data/sig/openai/models/live/decision_system_message.rbs +67 -0
  227. data/sig/openai/models/live/decision_trigger.rbs +8 -171
  228. data/sig/openai/models/live/decision_user_message.rbs +180 -0
  229. data/sig/openai/models/live/decisions_delegation_config.rbs +6 -167
  230. data/sig/openai/models/live/decisions_delegation_update_config.rbs +8 -169
  231. data/sig/openai/models/live/fork_session_config.rbs +26 -0
  232. data/sig/openai/models/live/media_session_config.rbs +53 -4
  233. data/sig/openai/models/live/media_session_fork_config.rbs +26 -0
  234. data/sig/openai/models/live/session_accept_params.rbs +53 -4
  235. data/sig/openai/models/live/session_config.rbs +53 -4
  236. data/sig/openai/models/live/session_resource.rbs +53 -4
  237. data/sig/openai/models/live/session_update_config.rbs +52 -0
  238. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +10 -12
  239. data/sig/openai/models/responses/response_input_file.rbs +34 -3
  240. data/sig/openai/models/responses/response_input_file_content.rbs +34 -3
  241. data/sig/openai/models/responses/response_input_image.rbs +34 -3
  242. data/sig/openai/models/responses/response_input_image_content.rbs +34 -3
  243. data/sig/openai/models/responses/response_input_text.rbs +34 -3
  244. data/sig/openai/models/responses/response_input_text_content.rbs +34 -3
  245. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +24 -15
  246. data/sig/openai/models/responses/tool.rbs +24 -15
  247. data/sig/openai/models.rbs +9 -1
  248. data/sig/openai/resources/beta/responses.rbs +2 -1
  249. data/sig/openai/resources/live/forks.rbs +2 -1
  250. data/sig/openai/resources/live/sideband.rbs +2 -1
  251. data/sig/openai/resources/live.rbs +2 -1
  252. data/sig/openai/resources/realtime/translations.rbs +2 -1
  253. data/sig/openai/resources/realtime.rbs +2 -1
  254. data/sig/openai/resources/responses.rbs +2 -1
  255. metadata +49 -1
@@ -170,18 +170,34 @@ module OpenAI
170
170
  sig { returns(Symbol) }
171
171
  attr_accessor :mode
172
172
 
173
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
174
+ sig {
175
+ returns(T.nilable(OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::OrSymbol))
176
+ }
177
+ attr_reader :ttl
178
+
179
+ sig {
180
+ params(ttl: OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::OrSymbol).void
181
+ }
182
+ attr_writer :ttl
183
+
173
184
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
174
185
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
175
186
  # token block.
176
187
  sig do
177
188
  params(
178
189
 
190
+ ttl: OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::OrSymbol,
191
+
179
192
  mode: Symbol
180
193
  )
181
194
  .returns(T.attached_class)
182
195
  end
183
196
  def self.new(
184
197
 
198
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
199
+ ttl: nil,
200
+
185
201
  # The breakpoint mode. Always `explicit`.
186
202
 
187
203
  mode: :explicit
@@ -190,12 +206,38 @@ module OpenAI
190
206
 
191
207
  sig do
192
208
  override.returns(
193
- {mode: Symbol}
209
+ {mode: Symbol, ttl: OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::OrSymbol}
194
210
  )
195
211
  end
196
212
  def to_hash
197
213
  end
198
214
 
215
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
216
+ module Ttl
217
+ extend OpenAI::Internal::Type::Enum
218
+
219
+ TaggedSymbol = T.type_alias {
220
+ T.all(Symbol, OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl)
221
+ }
222
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
223
+
224
+ TTL_30M = T.let(
225
+ :"30m",
226
+ OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::TaggedSymbol
227
+ )
228
+ TTL_12H = T.let(
229
+ :"12h",
230
+ OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::TaggedSymbol
231
+ )
232
+
233
+ sig {
234
+ override.returns(
235
+ T::Array[OpenAI::Chat::ChatCompletionContentPart::File::PromptCacheBreakpoint::Ttl::TaggedSymbol]
236
+ )
237
+ }
238
+ def self.values
239
+ end
240
+ end
199
241
  end
200
242
  end
201
243
 
@@ -162,18 +162,32 @@ module OpenAI
162
162
  sig { returns(Symbol) }
163
163
  attr_accessor :mode
164
164
 
165
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
166
+ sig {
167
+ returns(T.nilable(OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::OrSymbol))
168
+ }
169
+ attr_reader :ttl
170
+
171
+ sig { params(ttl: OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::OrSymbol).void }
172
+ attr_writer :ttl
173
+
165
174
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
166
175
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
167
176
  # token block.
168
177
  sig do
169
178
  params(
170
179
 
180
+ ttl: OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::OrSymbol,
181
+
171
182
  mode: Symbol
172
183
  )
173
184
  .returns(T.attached_class)
174
185
  end
175
186
  def self.new(
176
187
 
188
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
189
+ ttl: nil,
190
+
177
191
  # The breakpoint mode. Always `explicit`.
178
192
 
179
193
  mode: :explicit
@@ -182,12 +196,38 @@ module OpenAI
182
196
 
183
197
  sig do
184
198
  override.returns(
185
- {mode: Symbol}
199
+ {mode: Symbol, ttl: OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::OrSymbol}
186
200
  )
187
201
  end
188
202
  def to_hash
189
203
  end
190
204
 
205
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
206
+ module Ttl
207
+ extend OpenAI::Internal::Type::Enum
208
+
209
+ TaggedSymbol = T.type_alias {
210
+ T.all(Symbol, OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl)
211
+ }
212
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
213
+
214
+ TTL_30M = T.let(
215
+ :"30m",
216
+ OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::TaggedSymbol
217
+ )
218
+ TTL_12H = T.let(
219
+ :"12h",
220
+ OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::TaggedSymbol
221
+ )
222
+
223
+ sig {
224
+ override.returns(
225
+ T::Array[OpenAI::Chat::ChatCompletionContentPartImage::PromptCacheBreakpoint::Ttl::TaggedSymbol]
226
+ )
227
+ }
228
+ def self.values
229
+ end
230
+ end
191
231
  end
192
232
 
193
233
  end
@@ -157,18 +157,34 @@ module OpenAI
157
157
  sig { returns(Symbol) }
158
158
  attr_accessor :mode
159
159
 
160
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
161
+ sig {
162
+ returns(T.nilable(OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::OrSymbol))
163
+ }
164
+ attr_reader :ttl
165
+
166
+ sig {
167
+ params(ttl: OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::OrSymbol).void
168
+ }
169
+ attr_writer :ttl
170
+
160
171
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
161
172
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
162
173
  # token block.
163
174
  sig do
164
175
  params(
165
176
 
177
+ ttl: OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::OrSymbol,
178
+
166
179
  mode: Symbol
167
180
  )
168
181
  .returns(T.attached_class)
169
182
  end
170
183
  def self.new(
171
184
 
185
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
186
+ ttl: nil,
187
+
172
188
  # The breakpoint mode. Always `explicit`.
173
189
 
174
190
  mode: :explicit
@@ -177,12 +193,41 @@ module OpenAI
177
193
 
178
194
  sig do
179
195
  override.returns(
180
- {mode: Symbol}
196
+ {
197
+ mode: Symbol,
198
+ ttl: OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::OrSymbol
199
+ }
181
200
  )
182
201
  end
183
202
  def to_hash
184
203
  end
185
204
 
205
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
206
+ module Ttl
207
+ extend OpenAI::Internal::Type::Enum
208
+
209
+ TaggedSymbol = T.type_alias {
210
+ T.all(Symbol, OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl)
211
+ }
212
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
213
+
214
+ TTL_30M = T.let(
215
+ :"30m",
216
+ OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::TaggedSymbol
217
+ )
218
+ TTL_12H = T.let(
219
+ :"12h",
220
+ OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::TaggedSymbol
221
+ )
222
+
223
+ sig {
224
+ override.returns(
225
+ T::Array[OpenAI::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::Ttl::TaggedSymbol]
226
+ )
227
+ }
228
+ def self.values
229
+ end
230
+ end
186
231
  end
187
232
 
188
233
  end
@@ -88,18 +88,30 @@ module OpenAI
88
88
  sig { returns(Symbol) }
89
89
  attr_accessor :mode
90
90
 
91
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
92
+ sig { returns(T.nilable(OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::OrSymbol)) }
93
+ attr_reader :ttl
94
+
95
+ sig { params(ttl: OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::OrSymbol).void }
96
+ attr_writer :ttl
97
+
91
98
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
92
99
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
93
100
  # token block.
94
101
  sig do
95
102
  params(
96
103
 
104
+ ttl: OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::OrSymbol,
105
+
97
106
  mode: Symbol
98
107
  )
99
108
  .returns(T.attached_class)
100
109
  end
101
110
  def self.new(
102
111
 
112
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
113
+ ttl: nil,
114
+
103
115
  # The breakpoint mode. Always `explicit`.
104
116
 
105
117
  mode: :explicit
@@ -108,12 +120,38 @@ module OpenAI
108
120
 
109
121
  sig do
110
122
  override.returns(
111
- {mode: Symbol}
123
+ {mode: Symbol, ttl: OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::OrSymbol}
112
124
  )
113
125
  end
114
126
  def to_hash
115
127
  end
116
128
 
129
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
130
+ module Ttl
131
+ extend OpenAI::Internal::Type::Enum
132
+
133
+ TaggedSymbol = T.type_alias {
134
+ T.all(Symbol, OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl)
135
+ }
136
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
137
+
138
+ TTL_30M = T.let(
139
+ :"30m",
140
+ OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::TaggedSymbol
141
+ )
142
+ TTL_12H = T.let(
143
+ :"12h",
144
+ OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::TaggedSymbol
145
+ )
146
+
147
+ sig {
148
+ override.returns(
149
+ T::Array[OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::Ttl::TaggedSymbol]
150
+ )
151
+ }
152
+ def self.values
153
+ end
154
+ end
117
155
  end
118
156
 
119
157
  end
@@ -130,18 +130,36 @@ module OpenAI
130
130
  sig { returns(Symbol) }
131
131
  attr_accessor :mode
132
132
 
133
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
134
+ sig {
135
+ returns(
136
+ T.nilable(OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::TaggedSymbol)
137
+ )
138
+ }
139
+ attr_reader :ttl
140
+
141
+ sig {
142
+ params(ttl: OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::OrSymbol).void
143
+ }
144
+ attr_writer :ttl
145
+
133
146
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
134
147
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
135
148
  # token block.
136
149
  sig do
137
150
  params(
138
151
 
152
+ ttl: OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::OrSymbol,
153
+
139
154
  mode: Symbol
140
155
  )
141
156
  .returns(T.attached_class)
142
157
  end
143
158
  def self.new(
144
159
 
160
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
161
+ ttl: nil,
162
+
145
163
  # The breakpoint mode. Always `explicit`.
146
164
 
147
165
  mode: :explicit
@@ -150,12 +168,41 @@ module OpenAI
150
168
 
151
169
  sig do
152
170
  override.returns(
153
- {mode: Symbol}
171
+ {
172
+ mode: Symbol,
173
+ ttl: OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
174
+ }
154
175
  )
155
176
  end
156
177
  def to_hash
157
178
  end
158
179
 
180
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
181
+ module Ttl
182
+ extend OpenAI::Internal::Type::Enum
183
+
184
+ TaggedSymbol = T.type_alias {
185
+ T.all(Symbol, OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl)
186
+ }
187
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
188
+
189
+ TTL_30M = T.let(
190
+ :"30m",
191
+ OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
192
+ )
193
+ TTL_12H = T.let(
194
+ :"12h",
195
+ OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
196
+ )
197
+
198
+ sig {
199
+ override.returns(
200
+ T::Array[OpenAI::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::Ttl::TaggedSymbol]
201
+ )
202
+ }
203
+ def self.values
204
+ end
205
+ end
159
206
  end
160
207
 
161
208
  end