openai 0.28.1 → 0.30.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 (196) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/internal/conversation_cursor_page.rb +2 -2
  6. data/lib/openai/models/all_models.rb +2 -0
  7. data/lib/openai/models/beta/chatkit/chat_session.rb +94 -0
  8. data/lib/openai/models/beta/chatkit/chat_session_automatic_thread_titling.rb +22 -0
  9. data/lib/openai/models/beta/chatkit/chat_session_chatkit_configuration.rb +38 -0
  10. data/lib/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rb +125 -0
  11. data/lib/openai/models/beta/chatkit/chat_session_expires_after_param.rb +30 -0
  12. data/lib/openai/models/beta/chatkit/chat_session_file_upload.rb +38 -0
  13. data/lib/openai/models/beta/chatkit/chat_session_history.rb +34 -0
  14. data/lib/openai/models/beta/chatkit/chat_session_rate_limits.rb +22 -0
  15. data/lib/openai/models/beta/chatkit/chat_session_rate_limits_param.rb +22 -0
  16. data/lib/openai/models/beta/chatkit/chat_session_status.rb +20 -0
  17. data/lib/openai/models/beta/chatkit/chat_session_workflow_param.rb +80 -0
  18. data/lib/openai/models/beta/chatkit/chatkit_attachment.rb +69 -0
  19. data/lib/openai/models/beta/chatkit/chatkit_response_output_text.rb +143 -0
  20. data/lib/openai/models/beta/chatkit/chatkit_thread.rb +145 -0
  21. data/lib/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rb +65 -0
  22. data/lib/openai/models/beta/chatkit/chatkit_thread_item_list.rb +374 -0
  23. data/lib/openai/models/beta/chatkit/chatkit_thread_user_message_item.rb +183 -0
  24. data/lib/openai/models/beta/chatkit/chatkit_widget_item.rb +64 -0
  25. data/lib/openai/models/beta/chatkit/session_cancel_params.rb +18 -0
  26. data/lib/openai/models/beta/chatkit/session_create_params.rb +63 -0
  27. data/lib/openai/models/beta/chatkit/thread_delete_params.rb +18 -0
  28. data/lib/openai/models/beta/chatkit/thread_delete_response.rb +39 -0
  29. data/lib/openai/models/beta/chatkit/thread_list_items_params.rb +66 -0
  30. data/lib/openai/models/beta/chatkit/thread_list_params.rb +75 -0
  31. data/lib/openai/models/beta/chatkit/thread_retrieve_params.rb +18 -0
  32. data/lib/openai/models/beta/chatkit_upload_file_params.rb +28 -0
  33. data/lib/openai/models/beta/chatkit_upload_file_response.rb +25 -0
  34. data/lib/openai/models/beta/chatkit_workflow.rb +78 -0
  35. data/lib/openai/models/beta/file_part.rb +56 -0
  36. data/lib/openai/models/beta/image_part.rb +64 -0
  37. data/lib/openai/models/image_edit_params.rb +4 -2
  38. data/lib/openai/models/image_model.rb +1 -0
  39. data/lib/openai/models/realtime/call_accept_params.rb +16 -0
  40. data/lib/openai/models/realtime/call_hangup_params.rb +16 -0
  41. data/lib/openai/models/realtime/call_refer_params.rb +28 -0
  42. data/lib/openai/models/realtime/call_reject_params.rb +28 -0
  43. data/lib/openai/models/realtime/realtime_session.rb +4 -0
  44. data/lib/openai/models/realtime/realtime_session_create_request.rb +12 -0
  45. data/lib/openai/models/realtime/realtime_session_create_response.rb +12 -0
  46. data/lib/openai/models/responses/tool.rb +5 -2
  47. data/lib/openai/models/responses_model.rb +2 -0
  48. data/lib/openai/models/video.rb +122 -0
  49. data/lib/openai/models/video_create_error.rb +21 -0
  50. data/lib/openai/models/video_create_params.rb +54 -0
  51. data/lib/openai/models/video_delete_params.rb +14 -0
  52. data/lib/openai/models/video_delete_response.rb +35 -0
  53. data/lib/openai/models/video_download_content_params.rb +34 -0
  54. data/lib/openai/models/video_list_params.rb +54 -0
  55. data/lib/openai/models/video_model.rb +15 -0
  56. data/lib/openai/models/video_remix_params.rb +22 -0
  57. data/lib/openai/models/video_retrieve_params.rb +14 -0
  58. data/lib/openai/models/video_seconds.rb +16 -0
  59. data/lib/openai/models/video_size.rb +17 -0
  60. data/lib/openai/models.rb +22 -0
  61. data/lib/openai/resources/beta/chatkit/sessions.rb +71 -0
  62. data/lib/openai/resources/beta/chatkit/threads.rb +126 -0
  63. data/lib/openai/resources/beta/chatkit.rb +50 -0
  64. data/lib/openai/resources/beta.rb +4 -0
  65. data/lib/openai/resources/realtime/calls.rb +143 -0
  66. data/lib/openai/resources/realtime.rb +4 -0
  67. data/lib/openai/resources/videos.rb +165 -0
  68. data/lib/openai/version.rb +1 -1
  69. data/lib/openai.rb +52 -1
  70. data/rbi/openai/client.rbi +3 -0
  71. data/rbi/openai/models/all_models.rbi +10 -0
  72. data/rbi/openai/models/beta/chatkit/chat_session.rbi +141 -0
  73. data/rbi/openai/models/beta/chatkit/chat_session_automatic_thread_titling.rbi +35 -0
  74. data/rbi/openai/models/beta/chatkit/chat_session_chatkit_configuration.rbi +87 -0
  75. data/rbi/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rbi +256 -0
  76. data/rbi/openai/models/beta/chatkit/chat_session_expires_after_param.rbi +43 -0
  77. data/rbi/openai/models/beta/chatkit/chat_session_file_upload.rbi +61 -0
  78. data/rbi/openai/models/beta/chatkit/chat_session_history.rbi +52 -0
  79. data/rbi/openai/models/beta/chatkit/chat_session_rate_limits.rbi +37 -0
  80. data/rbi/openai/models/beta/chatkit/chat_session_rate_limits_param.rbi +40 -0
  81. data/rbi/openai/models/beta/chatkit/chat_session_status.rbi +43 -0
  82. data/rbi/openai/models/beta/chatkit/chat_session_workflow_param.rbi +166 -0
  83. data/rbi/openai/models/beta/chatkit/chatkit_attachment.rbi +116 -0
  84. data/rbi/openai/models/beta/chatkit/chatkit_response_output_text.rbi +287 -0
  85. data/rbi/openai/models/beta/chatkit/chatkit_thread.rbi +220 -0
  86. data/rbi/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rbi +94 -0
  87. data/rbi/openai/models/beta/chatkit/chatkit_thread_item_list.rbi +590 -0
  88. data/rbi/openai/models/beta/chatkit/chatkit_thread_user_message_item.rbi +324 -0
  89. data/rbi/openai/models/beta/chatkit/chatkit_widget_item.rbi +87 -0
  90. data/rbi/openai/models/beta/chatkit/session_cancel_params.rbi +34 -0
  91. data/rbi/openai/models/beta/chatkit/session_create_params.rbi +136 -0
  92. data/rbi/openai/models/beta/chatkit/thread_delete_params.rbi +34 -0
  93. data/rbi/openai/models/beta/chatkit/thread_delete_response.rbi +55 -0
  94. data/rbi/openai/models/beta/chatkit/thread_list_items_params.rbi +138 -0
  95. data/rbi/openai/models/beta/chatkit/thread_list_params.rbi +145 -0
  96. data/rbi/openai/models/beta/chatkit/thread_retrieve_params.rbi +34 -0
  97. data/rbi/openai/models/beta/chatkit_upload_file_params.rbi +50 -0
  98. data/rbi/openai/models/beta/chatkit_upload_file_response.rbi +25 -0
  99. data/rbi/openai/models/beta/chatkit_workflow.rbi +134 -0
  100. data/rbi/openai/models/beta/file_part.rbi +74 -0
  101. data/rbi/openai/models/beta/image_part.rbi +82 -0
  102. data/rbi/openai/models/image_edit_params.rbi +6 -3
  103. data/rbi/openai/models/image_model.rbi +2 -0
  104. data/rbi/openai/models/realtime/call_accept_params.rbi +29 -0
  105. data/rbi/openai/models/realtime/call_hangup_params.rbi +29 -0
  106. data/rbi/openai/models/realtime/call_refer_params.rbi +44 -0
  107. data/rbi/openai/models/realtime/call_reject_params.rbi +47 -0
  108. data/rbi/openai/models/realtime/realtime_session.rbi +20 -0
  109. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +20 -0
  110. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +20 -0
  111. data/rbi/openai/models/responses/tool.rbi +11 -3
  112. data/rbi/openai/models/responses_model.rbi +10 -0
  113. data/rbi/openai/models/video.rbi +143 -0
  114. data/rbi/openai/models/video_create_error.rbi +26 -0
  115. data/rbi/openai/models/video_create_params.rbi +87 -0
  116. data/rbi/openai/models/video_delete_params.rbi +27 -0
  117. data/rbi/openai/models/video_delete_response.rbi +46 -0
  118. data/rbi/openai/models/video_download_content_params.rbi +89 -0
  119. data/rbi/openai/models/video_list_params.rbi +91 -0
  120. data/rbi/openai/models/video_model.rbi +19 -0
  121. data/rbi/openai/models/video_remix_params.rbi +40 -0
  122. data/rbi/openai/models/video_retrieve_params.rbi +27 -0
  123. data/rbi/openai/models/video_seconds.rbi +20 -0
  124. data/rbi/openai/models/video_size.rbi +23 -0
  125. data/rbi/openai/models.rbi +22 -0
  126. data/rbi/openai/resources/beta/chatkit/sessions.rbi +61 -0
  127. data/rbi/openai/resources/beta/chatkit/threads.rbi +110 -0
  128. data/rbi/openai/resources/beta/chatkit.rbi +35 -0
  129. data/rbi/openai/resources/beta.rbi +3 -0
  130. data/rbi/openai/resources/images.rbi +4 -2
  131. data/rbi/openai/resources/realtime/calls.rbi +182 -0
  132. data/rbi/openai/resources/realtime.rbi +3 -0
  133. data/rbi/openai/resources/videos.rbi +121 -0
  134. data/sig/openai/client.rbs +2 -0
  135. data/sig/openai/models/all_models.rbs +4 -0
  136. data/sig/openai/models/beta/chatkit/chat_session.rbs +69 -0
  137. data/sig/openai/models/beta/chatkit/chat_session_automatic_thread_titling.rbs +17 -0
  138. data/sig/openai/models/beta/chatkit/chat_session_chatkit_configuration.rbs +34 -0
  139. data/sig/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rbs +103 -0
  140. data/sig/openai/models/beta/chatkit/chat_session_expires_after_param.rbs +20 -0
  141. data/sig/openai/models/beta/chatkit/chat_session_file_upload.rbs +30 -0
  142. data/sig/openai/models/beta/chatkit/chat_session_history.rbs +19 -0
  143. data/sig/openai/models/beta/chatkit/chat_session_rate_limits.rbs +18 -0
  144. data/sig/openai/models/beta/chatkit/chat_session_rate_limits_param.rbs +20 -0
  145. data/sig/openai/models/beta/chatkit/chat_session_status.rbs +19 -0
  146. data/sig/openai/models/beta/chatkit/chat_session_workflow_param.rbs +69 -0
  147. data/sig/openai/models/beta/chatkit/chatkit_attachment.rbs +57 -0
  148. data/sig/openai/models/beta/chatkit/chatkit_response_output_text.rbs +114 -0
  149. data/sig/openai/models/beta/chatkit/chatkit_thread.rbs +96 -0
  150. data/sig/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rbs +51 -0
  151. data/sig/openai/models/beta/chatkit/chatkit_thread_item_list.rbs +276 -0
  152. data/sig/openai/models/beta/chatkit/chatkit_thread_user_message_item.rbs +127 -0
  153. data/sig/openai/models/beta/chatkit/chatkit_widget_item.rbs +51 -0
  154. data/sig/openai/models/beta/chatkit/session_cancel_params.rbs +19 -0
  155. data/sig/openai/models/beta/chatkit/session_create_params.rbs +62 -0
  156. data/sig/openai/models/beta/chatkit/thread_delete_params.rbs +19 -0
  157. data/sig/openai/models/beta/chatkit/thread_delete_response.rbs +30 -0
  158. data/sig/openai/models/beta/chatkit/thread_list_items_params.rbs +66 -0
  159. data/sig/openai/models/beta/chatkit/thread_list_params.rbs +73 -0
  160. data/sig/openai/models/beta/chatkit/thread_retrieve_params.rbs +19 -0
  161. data/sig/openai/models/beta/chatkit_upload_file_params.rbs +26 -0
  162. data/sig/openai/models/beta/chatkit_upload_file_response.rbs +14 -0
  163. data/sig/openai/models/beta/chatkit_workflow.rbs +55 -0
  164. data/sig/openai/models/beta/file_part.rbs +42 -0
  165. data/sig/openai/models/beta/image_part.rbs +47 -0
  166. data/sig/openai/models/image_model.rbs +3 -1
  167. data/sig/openai/models/realtime/call_accept_params.rbs +17 -0
  168. data/sig/openai/models/realtime/call_hangup_params.rbs +17 -0
  169. data/sig/openai/models/realtime/call_refer_params.rbs +25 -0
  170. data/sig/openai/models/realtime/call_reject_params.rbs +27 -0
  171. data/sig/openai/models/realtime/realtime_session.rbs +8 -0
  172. data/sig/openai/models/realtime/realtime_session_create_request.rbs +8 -0
  173. data/sig/openai/models/realtime/realtime_session_create_response.rbs +8 -0
  174. data/sig/openai/models/responses/tool.rbs +2 -1
  175. data/sig/openai/models/responses_model.rbs +4 -0
  176. data/sig/openai/models/video.rbs +88 -0
  177. data/sig/openai/models/video_create_error.rbs +15 -0
  178. data/sig/openai/models/video_create_params.rbs +58 -0
  179. data/sig/openai/models/video_delete_params.rbs +14 -0
  180. data/sig/openai/models/video_delete_response.rbs +22 -0
  181. data/sig/openai/models/video_download_content_params.rbs +40 -0
  182. data/sig/openai/models/video_list_params.rbs +55 -0
  183. data/sig/openai/models/video_model.rbs +14 -0
  184. data/sig/openai/models/video_remix_params.rbs +23 -0
  185. data/sig/openai/models/video_retrieve_params.rbs +15 -0
  186. data/sig/openai/models/video_seconds.rbs +15 -0
  187. data/sig/openai/models/video_size.rbs +16 -0
  188. data/sig/openai/models.rbs +22 -0
  189. data/sig/openai/resources/beta/chatkit/sessions.rbs +25 -0
  190. data/sig/openai/resources/beta/chatkit/threads.rbs +39 -0
  191. data/sig/openai/resources/beta/chatkit.rbs +18 -0
  192. data/sig/openai/resources/beta.rbs +2 -0
  193. data/sig/openai/resources/realtime/calls.rbs +43 -0
  194. data/sig/openai/resources/realtime.rbs +2 -0
  195. data/sig/openai/resources/videos.rbs +45 -0
  196. metadata +155 -2
@@ -183,6 +183,14 @@ module OpenAI
183
183
 
184
184
  variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateRequest::Model::GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17 }
185
185
 
186
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateRequest::Model::GPT_REALTIME_MINI }
187
+
188
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateRequest::Model::GPT_REALTIME_MINI_2025_10_06 }
189
+
190
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateRequest::Model::GPT_AUDIO_MINI }
191
+
192
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateRequest::Model::GPT_AUDIO_MINI_2025_10_06 }
193
+
186
194
  # @!method self.variants
187
195
  # @return [Array(String, Symbol)]
188
196
 
@@ -200,6 +208,10 @@ module OpenAI
200
208
  GPT_4O_REALTIME_PREVIEW_2025_06_03 = :"gpt-4o-realtime-preview-2025-06-03"
201
209
  GPT_4O_MINI_REALTIME_PREVIEW = :"gpt-4o-mini-realtime-preview"
202
210
  GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17 = :"gpt-4o-mini-realtime-preview-2024-12-17"
211
+ GPT_REALTIME_MINI = :"gpt-realtime-mini"
212
+ GPT_REALTIME_MINI_2025_10_06 = :"gpt-realtime-mini-2025-10-06"
213
+ GPT_AUDIO_MINI = :"gpt-audio-mini"
214
+ GPT_AUDIO_MINI_2025_10_06 = :"gpt-audio-mini-2025-10-06"
203
215
 
204
216
  # @!endgroup
205
217
  end
@@ -584,6 +584,14 @@ module OpenAI
584
584
 
585
585
  variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Model::GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17 }
586
586
 
587
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Model::GPT_REALTIME_MINI }
588
+
589
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Model::GPT_REALTIME_MINI_2025_10_06 }
590
+
591
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Model::GPT_AUDIO_MINI }
592
+
593
+ variant const: -> { OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Model::GPT_AUDIO_MINI_2025_10_06 }
594
+
587
595
  # @!method self.variants
588
596
  # @return [Array(String, Symbol)]
589
597
 
@@ -601,6 +609,10 @@ module OpenAI
601
609
  GPT_4O_REALTIME_PREVIEW_2025_06_03 = :"gpt-4o-realtime-preview-2025-06-03"
602
610
  GPT_4O_MINI_REALTIME_PREVIEW = :"gpt-4o-mini-realtime-preview"
603
611
  GPT_4O_MINI_REALTIME_PREVIEW_2024_12_17 = :"gpt-4o-mini-realtime-preview-2024-12-17"
612
+ GPT_REALTIME_MINI = :"gpt-realtime-mini"
613
+ GPT_REALTIME_MINI_2025_10_06 = :"gpt-realtime-mini-2025-10-06"
614
+ GPT_AUDIO_MINI = :"gpt-audio-mini"
615
+ GPT_AUDIO_MINI_2025_10_06 = :"gpt-audio-mini-2025-10-06"
604
616
 
605
617
  # @!endgroup
606
618
  end
@@ -427,7 +427,8 @@ module OpenAI
427
427
  # @!attribute input_fidelity
428
428
  # Control how much effort the model will exert to match the style and features,
429
429
  # especially facial features, of input images. This parameter is only supported
430
- # for `gpt-image-1`. Supports `high` and `low`. Defaults to `low`.
430
+ # for `gpt-image-1`. Unsupported for `gpt-image-1-mini`. Supports `high` and
431
+ # `low`. Defaults to `low`.
431
432
  #
432
433
  # @return [Symbol, OpenAI::Models::Responses::Tool::ImageGeneration::InputFidelity, nil]
433
434
  optional :input_fidelity,
@@ -534,7 +535,8 @@ module OpenAI
534
535
 
535
536
  # Control how much effort the model will exert to match the style and features,
536
537
  # especially facial features, of input images. This parameter is only supported
537
- # for `gpt-image-1`. Supports `high` and `low`. Defaults to `low`.
538
+ # for `gpt-image-1`. Unsupported for `gpt-image-1-mini`. Supports `high` and
539
+ # `low`. Defaults to `low`.
538
540
  #
539
541
  # @see OpenAI::Models::Responses::Tool::ImageGeneration#input_fidelity
540
542
  module InputFidelity
@@ -581,6 +583,7 @@ module OpenAI
581
583
  extend OpenAI::Internal::Type::Enum
582
584
 
583
585
  GPT_IMAGE_1 = :"gpt-image-1"
586
+ GPT_IMAGE_1_MINI = :"gpt-image-1-mini"
584
587
 
585
588
  # @!method self.values
586
589
  # @return [Array<Symbol>]
@@ -25,6 +25,8 @@ module OpenAI
25
25
  COMPUTER_USE_PREVIEW = :"computer-use-preview"
26
26
  COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11"
27
27
  GPT_5_CODEX = :"gpt-5-codex"
28
+ GPT_5_PRO = :"gpt-5-pro"
29
+ GPT_5_PRO_2025_10_06 = :"gpt-5-pro-2025-10-06"
28
30
 
29
31
  # @!method self.values
30
32
  # @return [Array<Symbol>]
@@ -0,0 +1,122 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#create
6
+ class Video < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # Unique identifier for the video job.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute completed_at
14
+ # Unix timestamp (seconds) for when the job completed, if finished.
15
+ #
16
+ # @return [Integer, nil]
17
+ required :completed_at, Integer, nil?: true
18
+
19
+ # @!attribute created_at
20
+ # Unix timestamp (seconds) for when the job was created.
21
+ #
22
+ # @return [Integer]
23
+ required :created_at, Integer
24
+
25
+ # @!attribute error
26
+ # Error payload that explains why generation failed, if applicable.
27
+ #
28
+ # @return [OpenAI::Models::VideoCreateError, nil]
29
+ required :error, -> { OpenAI::VideoCreateError }, nil?: true
30
+
31
+ # @!attribute expires_at
32
+ # Unix timestamp (seconds) for when the downloadable assets expire, if set.
33
+ #
34
+ # @return [Integer, nil]
35
+ required :expires_at, Integer, nil?: true
36
+
37
+ # @!attribute model
38
+ # The video generation model that produced the job.
39
+ #
40
+ # @return [Symbol, OpenAI::Models::VideoModel]
41
+ required :model, enum: -> { OpenAI::VideoModel }
42
+
43
+ # @!attribute object
44
+ # The object type, which is always `video`.
45
+ #
46
+ # @return [Symbol, :video]
47
+ required :object, const: :video
48
+
49
+ # @!attribute progress
50
+ # Approximate completion percentage for the generation task.
51
+ #
52
+ # @return [Integer]
53
+ required :progress, Integer
54
+
55
+ # @!attribute remixed_from_video_id
56
+ # Identifier of the source video if this video is a remix.
57
+ #
58
+ # @return [String, nil]
59
+ required :remixed_from_video_id, String, nil?: true
60
+
61
+ # @!attribute seconds
62
+ # Duration of the generated clip in seconds.
63
+ #
64
+ # @return [Symbol, OpenAI::Models::VideoSeconds]
65
+ required :seconds, enum: -> { OpenAI::VideoSeconds }
66
+
67
+ # @!attribute size
68
+ # The resolution of the generated video.
69
+ #
70
+ # @return [Symbol, OpenAI::Models::VideoSize]
71
+ required :size, enum: -> { OpenAI::VideoSize }
72
+
73
+ # @!attribute status
74
+ # Current lifecycle status of the video job.
75
+ #
76
+ # @return [Symbol, OpenAI::Models::Video::Status]
77
+ required :status, enum: -> { OpenAI::Video::Status }
78
+
79
+ # @!method initialize(id:, completed_at:, created_at:, error:, expires_at:, model:, progress:, remixed_from_video_id:, seconds:, size:, status:, object: :video)
80
+ # Structured information describing a generated video job.
81
+ #
82
+ # @param id [String] Unique identifier for the video job.
83
+ #
84
+ # @param completed_at [Integer, nil] Unix timestamp (seconds) for when the job completed, if finished.
85
+ #
86
+ # @param created_at [Integer] Unix timestamp (seconds) for when the job was created.
87
+ #
88
+ # @param error [OpenAI::Models::VideoCreateError, nil] Error payload that explains why generation failed, if applicable.
89
+ #
90
+ # @param expires_at [Integer, nil] Unix timestamp (seconds) for when the downloadable assets expire, if set.
91
+ #
92
+ # @param model [Symbol, OpenAI::Models::VideoModel] The video generation model that produced the job.
93
+ #
94
+ # @param progress [Integer] Approximate completion percentage for the generation task.
95
+ #
96
+ # @param remixed_from_video_id [String, nil] Identifier of the source video if this video is a remix.
97
+ #
98
+ # @param seconds [Symbol, OpenAI::Models::VideoSeconds] Duration of the generated clip in seconds.
99
+ #
100
+ # @param size [Symbol, OpenAI::Models::VideoSize] The resolution of the generated video.
101
+ #
102
+ # @param status [Symbol, OpenAI::Models::Video::Status] Current lifecycle status of the video job.
103
+ #
104
+ # @param object [Symbol, :video] The object type, which is always `video`.
105
+
106
+ # Current lifecycle status of the video job.
107
+ #
108
+ # @see OpenAI::Models::Video#status
109
+ module Status
110
+ extend OpenAI::Internal::Type::Enum
111
+
112
+ QUEUED = :queued
113
+ IN_PROGRESS = :in_progress
114
+ COMPLETED = :completed
115
+ FAILED = :failed
116
+
117
+ # @!method self.values
118
+ # @return [Array<Symbol>]
119
+ end
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ class VideoCreateError < OpenAI::Internal::Type::BaseModel
6
+ # @!attribute code
7
+ #
8
+ # @return [String]
9
+ required :code, String
10
+
11
+ # @!attribute message
12
+ #
13
+ # @return [String]
14
+ required :message, String
15
+
16
+ # @!method initialize(code:, message:)
17
+ # @param code [String]
18
+ # @param message [String]
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#create
6
+ class VideoCreateParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute prompt
11
+ # Text prompt that describes the video to generate.
12
+ #
13
+ # @return [String]
14
+ required :prompt, String
15
+
16
+ # @!attribute input_reference
17
+ # Optional image reference that guides generation.
18
+ #
19
+ # @return [Pathname, StringIO, IO, String, OpenAI::FilePart, nil]
20
+ optional :input_reference, OpenAI::Internal::Type::FileInput
21
+
22
+ # @!attribute model
23
+ # The video generation model to use. Defaults to `sora-2`.
24
+ #
25
+ # @return [Symbol, OpenAI::Models::VideoModel, nil]
26
+ optional :model, enum: -> { OpenAI::VideoModel }
27
+
28
+ # @!attribute seconds
29
+ # Clip duration in seconds. Defaults to 4 seconds.
30
+ #
31
+ # @return [Symbol, OpenAI::Models::VideoSeconds, nil]
32
+ optional :seconds, enum: -> { OpenAI::VideoSeconds }
33
+
34
+ # @!attribute size
35
+ # Output resolution formatted as width x height. Defaults to 720x1280.
36
+ #
37
+ # @return [Symbol, OpenAI::Models::VideoSize, nil]
38
+ optional :size, enum: -> { OpenAI::VideoSize }
39
+
40
+ # @!method initialize(prompt:, input_reference: nil, model: nil, seconds: nil, size: nil, request_options: {})
41
+ # @param prompt [String] Text prompt that describes the video to generate.
42
+ #
43
+ # @param input_reference [Pathname, StringIO, IO, String, OpenAI::FilePart] Optional image reference that guides generation.
44
+ #
45
+ # @param model [Symbol, OpenAI::Models::VideoModel] The video generation model to use. Defaults to `sora-2`.
46
+ #
47
+ # @param seconds [Symbol, OpenAI::Models::VideoSeconds] Clip duration in seconds. Defaults to 4 seconds.
48
+ #
49
+ # @param size [Symbol, OpenAI::Models::VideoSize] Output resolution formatted as width x height. Defaults to 720x1280.
50
+ #
51
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#delete
6
+ class VideoDeleteParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#delete
6
+ class VideoDeleteResponse < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # Identifier of the deleted video.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute deleted
14
+ # Indicates that the video resource was deleted.
15
+ #
16
+ # @return [Boolean]
17
+ required :deleted, OpenAI::Internal::Type::Boolean
18
+
19
+ # @!attribute object
20
+ # The object type that signals the deletion response.
21
+ #
22
+ # @return [Symbol, :"video.deleted"]
23
+ required :object, const: :"video.deleted"
24
+
25
+ # @!method initialize(id:, deleted:, object: :"video.deleted")
26
+ # Confirmation payload returned after deleting a video.
27
+ #
28
+ # @param id [String] Identifier of the deleted video.
29
+ #
30
+ # @param deleted [Boolean] Indicates that the video resource was deleted.
31
+ #
32
+ # @param object [Symbol, :"video.deleted"] The object type that signals the deletion response.
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#download_content
6
+ class VideoDownloadContentParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute variant
11
+ # Which downloadable asset to return. Defaults to the MP4 video.
12
+ #
13
+ # @return [Symbol, OpenAI::Models::VideoDownloadContentParams::Variant, nil]
14
+ optional :variant, enum: -> { OpenAI::VideoDownloadContentParams::Variant }
15
+
16
+ # @!method initialize(variant: nil, request_options: {})
17
+ # @param variant [Symbol, OpenAI::Models::VideoDownloadContentParams::Variant] Which downloadable asset to return. Defaults to the MP4 video.
18
+ #
19
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
20
+
21
+ # Which downloadable asset to return. Defaults to the MP4 video.
22
+ module Variant
23
+ extend OpenAI::Internal::Type::Enum
24
+
25
+ VIDEO = :video
26
+ THUMBNAIL = :thumbnail
27
+ SPRITESHEET = :spritesheet
28
+
29
+ # @!method self.values
30
+ # @return [Array<Symbol>]
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#list
6
+ class VideoListParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute after
11
+ # Identifier for the last item from the previous pagination request
12
+ #
13
+ # @return [String, nil]
14
+ optional :after, String
15
+
16
+ # @!attribute limit
17
+ # Number of items to retrieve
18
+ #
19
+ # @return [Integer, nil]
20
+ optional :limit, Integer
21
+
22
+ # @!attribute order
23
+ # Sort order of results by timestamp. Use `asc` for ascending order or `desc` for
24
+ # descending order.
25
+ #
26
+ # @return [Symbol, OpenAI::Models::VideoListParams::Order, nil]
27
+ optional :order, enum: -> { OpenAI::VideoListParams::Order }
28
+
29
+ # @!method initialize(after: nil, limit: nil, order: nil, request_options: {})
30
+ # Some parameter documentations has been truncated, see
31
+ # {OpenAI::Models::VideoListParams} for more details.
32
+ #
33
+ # @param after [String] Identifier for the last item from the previous pagination request
34
+ #
35
+ # @param limit [Integer] Number of items to retrieve
36
+ #
37
+ # @param order [Symbol, OpenAI::Models::VideoListParams::Order] Sort order of results by timestamp. Use `asc` for ascending order or `desc` for
38
+ #
39
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
40
+
41
+ # Sort order of results by timestamp. Use `asc` for ascending order or `desc` for
42
+ # descending order.
43
+ module Order
44
+ extend OpenAI::Internal::Type::Enum
45
+
46
+ ASC = :asc
47
+ DESC = :desc
48
+
49
+ # @!method self.values
50
+ # @return [Array<Symbol>]
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module VideoModel
6
+ extend OpenAI::Internal::Type::Enum
7
+
8
+ SORA_2 = :"sora-2"
9
+ SORA_2_PRO = :"sora-2-pro"
10
+
11
+ # @!method self.values
12
+ # @return [Array<Symbol>]
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#remix
6
+ class VideoRemixParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!attribute prompt
11
+ # Updated text prompt that directs the remix generation.
12
+ #
13
+ # @return [String]
14
+ required :prompt, String
15
+
16
+ # @!method initialize(prompt:, request_options: {})
17
+ # @param prompt [String] Updated text prompt that directs the remix generation.
18
+ #
19
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Videos#retrieve
6
+ class VideoRetrieveParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module VideoSeconds
6
+ extend OpenAI::Internal::Type::Enum
7
+
8
+ VIDEO_SECONDS_4 = :"4"
9
+ VIDEO_SECONDS_8 = :"8"
10
+ VIDEO_SECONDS_12 = :"12"
11
+
12
+ # @!method self.values
13
+ # @return [Array<Symbol>]
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module VideoSize
6
+ extend OpenAI::Internal::Type::Enum
7
+
8
+ VIDEO_SIZE_720X1280 = :"720x1280"
9
+ VIDEO_SIZE_1280X720 = :"1280x720"
10
+ VIDEO_SIZE_1024X1792 = :"1024x1792"
11
+ VIDEO_SIZE_1792X1024 = :"1792x1024"
12
+
13
+ # @!method self.values
14
+ # @return [Array<Symbol>]
15
+ end
16
+ end
17
+ end
data/lib/openai/models.rb CHANGED
@@ -259,5 +259,27 @@ module OpenAI
259
259
 
260
260
  VectorStoreUpdateParams = OpenAI::Models::VectorStoreUpdateParams
261
261
 
262
+ Video = OpenAI::Models::Video
263
+
264
+ VideoCreateError = OpenAI::Models::VideoCreateError
265
+
266
+ VideoCreateParams = OpenAI::Models::VideoCreateParams
267
+
268
+ VideoDeleteParams = OpenAI::Models::VideoDeleteParams
269
+
270
+ VideoDownloadContentParams = OpenAI::Models::VideoDownloadContentParams
271
+
272
+ VideoListParams = OpenAI::Models::VideoListParams
273
+
274
+ VideoModel = OpenAI::Models::VideoModel
275
+
276
+ VideoRemixParams = OpenAI::Models::VideoRemixParams
277
+
278
+ VideoRetrieveParams = OpenAI::Models::VideoRetrieveParams
279
+
280
+ VideoSeconds = OpenAI::Models::VideoSeconds
281
+
282
+ VideoSize = OpenAI::Models::VideoSize
283
+
262
284
  Webhooks = OpenAI::Models::Webhooks
263
285
  end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Beta
6
+ class ChatKit
7
+ class Sessions
8
+ # Some parameter documentations has been truncated, see
9
+ # {OpenAI::Models::Beta::ChatKit::SessionCreateParams} for more details.
10
+ #
11
+ # Create a ChatKit session
12
+ #
13
+ # @overload create(user:, workflow:, chatkit_configuration: nil, expires_after: nil, rate_limits: nil, request_options: {})
14
+ #
15
+ # @param user [String] A free-form string that identifies your end user; ensures this Session can acces
16
+ #
17
+ # @param workflow [OpenAI::Models::Beta::ChatKit::ChatSessionWorkflowParam] Workflow that powers the session.
18
+ #
19
+ # @param chatkit_configuration [OpenAI::Models::Beta::ChatKit::ChatSessionChatKitConfigurationParam] Optional overrides for ChatKit runtime configuration features
20
+ #
21
+ # @param expires_after [OpenAI::Models::Beta::ChatKit::ChatSessionExpiresAfterParam] Optional override for session expiration timing in seconds from creation. Defaul
22
+ #
23
+ # @param rate_limits [OpenAI::Models::Beta::ChatKit::ChatSessionRateLimitsParam] Optional override for per-minute request limits. When omitted, defaults to 10.
24
+ #
25
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
26
+ #
27
+ # @return [OpenAI::Models::Beta::ChatKit::ChatSession]
28
+ #
29
+ # @see OpenAI::Models::Beta::ChatKit::SessionCreateParams
30
+ def create(params)
31
+ parsed, options = OpenAI::Beta::ChatKit::SessionCreateParams.dump_request(params)
32
+ @client.request(
33
+ method: :post,
34
+ path: "chatkit/sessions",
35
+ body: parsed,
36
+ model: OpenAI::Beta::ChatKit::ChatSession,
37
+ options: {extra_headers: {"OpenAI-Beta" => "chatkit_beta=v1"}, **options}
38
+ )
39
+ end
40
+
41
+ # Cancel a ChatKit session
42
+ #
43
+ # @overload cancel(session_id, request_options: {})
44
+ #
45
+ # @param session_id [String] Unique identifier for the ChatKit session to cancel.
46
+ #
47
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
48
+ #
49
+ # @return [OpenAI::Models::Beta::ChatKit::ChatSession]
50
+ #
51
+ # @see OpenAI::Models::Beta::ChatKit::SessionCancelParams
52
+ def cancel(session_id, params = {})
53
+ @client.request(
54
+ method: :post,
55
+ path: ["chatkit/sessions/%1$s/cancel", session_id],
56
+ model: OpenAI::Beta::ChatKit::ChatSession,
57
+ options: {extra_headers: {"OpenAI-Beta" => "chatkit_beta=v1"}, **params[:request_options].to_h}
58
+ )
59
+ end
60
+
61
+ # @api private
62
+ #
63
+ # @param client [OpenAI::Client]
64
+ def initialize(client:)
65
+ @client = client
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end