openai 0.94.0 → 0.96.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 (170) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +57 -0
  3. data/README.md +5 -2
  4. data/docs/architecture/security-model.md +2 -2
  5. data/examples/audio/record_and_play.rb +1 -1
  6. data/lib/openai/helpers/live/transcript_grouper.rb +264 -0
  7. data/lib/openai/helpers/live/transcript_grouping.rb +309 -0
  8. data/lib/openai/helpers/live/websocket.rb +454 -0
  9. data/lib/openai/helpers/realtime/translation.rb +440 -0
  10. data/lib/openai/helpers/realtime.rb +1 -0
  11. data/lib/openai/helpers/responses_websocket/incremental.rb +246 -0
  12. data/lib/openai/helpers/responses_websocket/transports/async_websocket.rb +183 -0
  13. data/lib/openai/helpers/responses_websocket.rb +1 -0
  14. data/lib/openai/helpers/streaming/response_stream.rb +19 -11
  15. data/lib/openai/helpers/structured_output/chat_completion_parser.rb +0 -2
  16. data/lib/openai/helpers/structured_output/response_parser.rb +1 -2
  17. data/lib/openai/helpers/structured_output/union_of.rb +0 -2
  18. data/lib/openai/helpers/websocket/async_websocket_transport.rb +11 -6
  19. data/lib/openai/helpers/websocket/connection_manager.rb +9 -0
  20. data/lib/openai/internal/read_io_adapter.rb +0 -2
  21. data/lib/openai/internal/stream.rb +0 -2
  22. data/lib/openai/internal/type/base_model.rb +4 -6
  23. data/lib/openai/internal/type/converter.rb +5 -3
  24. data/lib/openai/internal/type/enum.rb +0 -2
  25. data/lib/openai/internal/type/union.rb +0 -6
  26. data/lib/openai/internal/type/unknown.rb +34 -6
  27. data/lib/openai/internal/util.rb +0 -4
  28. data/lib/openai/models/admin/organization/audit_log_list_response.rb +5 -3
  29. data/lib/openai/models/admin/organization/external_storage_configuration.rb +5 -3
  30. data/lib/openai/models/admin/organization/external_storage_create_params.rb +39 -3
  31. data/lib/openai/models/admin/organization/gcp_external_storage_provider.rb +55 -0
  32. data/lib/openai/models/all_models.rb +1 -0
  33. data/lib/openai/models/audio/speech_create_params.rb +9 -0
  34. data/lib/openai/models/audio/transcription_create_response.rb +4 -1
  35. data/lib/openai/models/audio/translation_create_response.rb +4 -1
  36. data/lib/openai/models/beta/agent.rb +1 -0
  37. data/lib/openai/models/beta/agent_create_params.rb +3 -0
  38. data/lib/openai/models/beta/agent_session.rb +1 -0
  39. data/lib/openai/models/beta/agent_update_params.rb +3 -0
  40. data/lib/openai/models/beta/agents/environments/template_create_params.rb +3 -3
  41. data/lib/openai/models/beta/agents/environments/template_update_params.rb +6 -6
  42. data/lib/openai/models/beta/agents/session_create_params.rb +3 -0
  43. data/lib/openai/models/beta/agents/session_update_params.rb +3 -0
  44. data/lib/openai/models/beta/agents/vaults/credential.rb +10 -1
  45. data/lib/openai/models/beta/agents/vaults/credential_create_params.rb +12 -1
  46. data/lib/openai/models/beta/agents/vaults/credential_update_params.rb +14 -3
  47. data/lib/openai/models/beta/beta_response.rb +41 -1
  48. data/lib/openai/models/beta/beta_responses_client_event.rb +80 -1
  49. data/lib/openai/models/beta/beta_web_search_preview_tool.rb +9 -3
  50. data/lib/openai/models/beta/beta_web_search_tool.rb +9 -3
  51. data/lib/openai/models/beta/environment_param.rb +6 -5
  52. data/lib/openai/models/beta/response_compact_params.rb +6 -0
  53. data/lib/openai/models/beta/response_create_params.rb +71 -1
  54. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  55. data/lib/openai/models/chat_model.rb +1 -0
  56. data/lib/openai/models/responses/response.rb +35 -1
  57. data/lib/openai/models/responses/response_compact_params.rb +6 -0
  58. data/lib/openai/models/responses/response_create_params.rb +65 -1
  59. data/lib/openai/models/responses/responses_client_event.rb +70 -1
  60. data/lib/openai/models/responses/web_search_preview_tool.rb +9 -3
  61. data/lib/openai/models/responses/web_search_tool.rb +9 -3
  62. data/lib/openai/models/responses_model.rb +1 -0
  63. data/lib/openai/models/video_create_error.rb +12 -1
  64. data/lib/openai/net_http_client.rb +0 -2
  65. data/lib/openai/resources/admin/organization/external_storage.rb +1 -1
  66. data/lib/openai/resources/audio/transcriptions.rb +5 -3
  67. data/lib/openai/resources/audio/translations.rb +1 -1
  68. data/lib/openai/resources/beta/agents/environments/templates.rb +3 -3
  69. data/lib/openai/resources/beta/agents/vaults/credentials.rb +12 -4
  70. data/lib/openai/resources/beta/responses.rb +8 -2
  71. data/lib/openai/resources/responses.rb +8 -1
  72. data/lib/openai/version.rb +1 -1
  73. data/lib/openai.rb +2 -0
  74. data/rbi/openai/helpers/live/transcript_grouper.rbi +67 -0
  75. data/rbi/openai/helpers/live/websocket.rbi +299 -0
  76. data/rbi/openai/helpers/realtime/translation.rbi +137 -0
  77. data/rbi/openai/helpers/responses_websocket/incremental.rbi +32 -0
  78. data/rbi/openai/helpers/responses_websocket/transports/async_websocket.rbi +24 -0
  79. data/rbi/openai/helpers/streaming/response_stream.rbi +5 -0
  80. data/rbi/openai/internal/type/converter.rbi +3 -2
  81. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +6 -3
  82. data/rbi/openai/models/admin/organization/external_storage_configuration.rbi +4 -2
  83. data/rbi/openai/models/admin/organization/external_storage_create_params.rbi +76 -4
  84. data/rbi/openai/models/admin/organization/gcp_external_storage_provider.rbi +100 -0
  85. data/rbi/openai/models/all_models.rbi +1 -0
  86. data/rbi/openai/models/audio/speech_create_params.rbi +3 -0
  87. data/rbi/openai/models/audio/transcription_create_response.rbi +2 -1
  88. data/rbi/openai/models/audio/translation_create_response.rbi +2 -1
  89. data/rbi/openai/models/beta/agent.rbi +1 -0
  90. data/rbi/openai/models/beta/agent_create_params.rbi +3 -0
  91. data/rbi/openai/models/beta/agent_session.rbi +1 -0
  92. data/rbi/openai/models/beta/agent_update_params.rbi +3 -0
  93. data/rbi/openai/models/beta/agents/environments/template_create_params.rbi +3 -3
  94. data/rbi/openai/models/beta/agents/environments/template_update_params.rbi +6 -6
  95. data/rbi/openai/models/beta/agents/session_create_params.rbi +3 -0
  96. data/rbi/openai/models/beta/agents/session_update_params.rbi +3 -0
  97. data/rbi/openai/models/beta/agents/vaults/credential.rbi +10 -0
  98. data/rbi/openai/models/beta/agents/vaults/credential_create_params.rbi +15 -0
  99. data/rbi/openai/models/beta/agents/vaults/credential_update_params.rbi +35 -6
  100. data/rbi/openai/models/beta/beta_response.rbi +65 -0
  101. data/rbi/openai/models/beta/beta_responses_client_event.rbi +132 -0
  102. data/rbi/openai/models/beta/beta_web_search_preview_tool.rbi +9 -3
  103. data/rbi/openai/models/beta/beta_web_search_tool.rbi +9 -3
  104. data/rbi/openai/models/beta/environment_param.rbi +5 -4
  105. data/rbi/openai/models/beta/response_compact_params.rbi +5 -0
  106. data/rbi/openai/models/beta/response_create_params.rbi +104 -0
  107. data/rbi/openai/models/beta/session_turn_error.rbi +6 -0
  108. data/rbi/openai/models/chat_model.rbi +1 -0
  109. data/rbi/openai/models/responses/response.rbi +63 -0
  110. data/rbi/openai/models/responses/response_compact_params.rbi +5 -0
  111. data/rbi/openai/models/responses/response_create_params.rbi +106 -0
  112. data/rbi/openai/models/responses/responses_client_event.rbi +125 -0
  113. data/rbi/openai/models/responses/web_search_preview_tool.rbi +9 -3
  114. data/rbi/openai/models/responses/web_search_tool.rbi +9 -3
  115. data/rbi/openai/models/responses_model.rbi +4 -0
  116. data/rbi/openai/models/video_create_error.rbi +20 -1
  117. data/rbi/openai/resources/admin/organization/external_storage.rbi +2 -1
  118. data/rbi/openai/resources/audio/transcriptions.rbi +4 -2
  119. data/rbi/openai/resources/beta/agents/environments/templates.rbi +3 -3
  120. data/rbi/openai/resources/beta/agents/vaults/credentials.rbi +11 -3
  121. data/rbi/openai/resources/beta/responses.rbi +6 -0
  122. data/rbi/openai/resources/responses.rbi +11 -0
  123. data/responses-websocket.md +55 -0
  124. data/sig/openai/helpers/live/transcript_grouper.rbs +42 -0
  125. data/sig/openai/helpers/live/websocket.rbs +152 -0
  126. data/sig/openai/helpers/realtime/translation.rbs +81 -0
  127. data/sig/openai/helpers/responses_websocket/incremental.rbs +14 -0
  128. data/sig/openai/helpers/responses_websocket/transports/async_websocket.rbs +21 -0
  129. data/sig/openai/helpers/streaming/response_stream.rbs +9 -0
  130. data/sig/openai/internal/type/converter.rbs +3 -1
  131. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +1 -0
  132. data/sig/openai/models/admin/organization/external_storage_configuration.rbs +1 -0
  133. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +38 -0
  134. data/sig/openai/models/admin/organization/gcp_external_storage_provider.rbs +54 -0
  135. data/sig/openai/models/all_models.rbs +2 -0
  136. data/sig/openai/models/audio/speech_create_params.rbs +6 -0
  137. data/sig/openai/models/audio/transcription_create_response.rbs +1 -0
  138. data/sig/openai/models/audio/translation_create_response.rbs +3 -1
  139. data/sig/openai/models/beta/agent.rbs +3 -1
  140. data/sig/openai/models/beta/agent_create_params.rbs +5 -1
  141. data/sig/openai/models/beta/agent_session.rbs +3 -1
  142. data/sig/openai/models/beta/agent_update_params.rbs +5 -1
  143. data/sig/openai/models/beta/agents/environments/template_create_params.rbs +2 -2
  144. data/sig/openai/models/beta/agents/environments/template_update_params.rbs +4 -4
  145. data/sig/openai/models/beta/agents/session_create_params.rbs +5 -1
  146. data/sig/openai/models/beta/agents/session_update_params.rbs +5 -1
  147. data/sig/openai/models/beta/agents/vaults/credential.rbs +8 -0
  148. data/sig/openai/models/beta/agents/vaults/credential_create_params.rbs +14 -0
  149. data/sig/openai/models/beta/agents/vaults/credential_update_params.rbs +23 -4
  150. data/sig/openai/models/beta/beta_response.rbs +39 -0
  151. data/sig/openai/models/beta/beta_responses_client_event.rbs +81 -0
  152. data/sig/openai/models/beta/beta_web_search_preview_tool.rbs +6 -2
  153. data/sig/openai/models/beta/beta_web_search_tool.rbs +6 -2
  154. data/sig/openai/models/beta/environment_param.rbs +2 -2
  155. data/sig/openai/models/beta/response_compact_params.rbs +4 -0
  156. data/sig/openai/models/beta/response_create_params.rbs +81 -0
  157. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  158. data/sig/openai/models/chat_model.rbs +2 -0
  159. data/sig/openai/models/responses/response.rbs +35 -0
  160. data/sig/openai/models/responses/response_compact_params.rbs +4 -0
  161. data/sig/openai/models/responses/response_create_params.rbs +77 -0
  162. data/sig/openai/models/responses/responses_client_event.rbs +77 -0
  163. data/sig/openai/models/responses/web_search_preview_tool.rbs +6 -2
  164. data/sig/openai/models/responses/web_search_tool.rbs +6 -2
  165. data/sig/openai/models/responses_model.rbs +2 -0
  166. data/sig/openai/models/video_create_error.rbs +14 -0
  167. data/sig/openai/resources/beta/agents/vaults/credentials.rbs +3 -1
  168. data/sig/openai/resources/beta/responses.rbs +2 -0
  169. data/sig/openai/resources/responses.rbs +4 -0
  170. metadata +17 -1
@@ -0,0 +1,137 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ class Client < OpenAI::Internal::Transport::BaseClient
5
+ # @api private
6
+ sig do
7
+ params(
8
+ model: String,
9
+ websocket_base_url: T.nilable(String),
10
+ options: T.nilable(OpenAI::RequestOptions::OrHash),
11
+ block: T
12
+ .proc
13
+ .params(
14
+ request: OpenAI::Internal::Transport::BaseClient::RequestInput,
15
+ mark_handshake_completed: T.proc.void
16
+ )
17
+ .returns(T.anything)
18
+ )
19
+ .returns(T.anything)
20
+ end
21
+ def with_translation_connection_request(model:, websocket_base_url: nil, options: nil, &block)
22
+ end
23
+ end
24
+
25
+ module Errors
26
+ class TranslationConnectionError < OpenAI::Errors::WebSocketConnectionError
27
+ end
28
+
29
+ class TranslationProtocolError < OpenAI::Errors::WebSocketProtocolError
30
+ sig { returns(T.attached_class) }
31
+ def self.new
32
+ end
33
+ end
34
+ end
35
+
36
+ module Models
37
+ module Realtime
38
+ class UnknownTranslationServerEvent < OpenAI::Realtime::UnknownServerEvent
39
+ sig { returns(String) }
40
+ def inspect
41
+ end
42
+
43
+ alias to_s inspect
44
+ end
45
+
46
+ class TranslationConnection
47
+ include Enumerable
48
+ ServerEvent = T.type_alias do
49
+ T.any(
50
+ OpenAI::Realtime::RealtimeTranslationServerEvent::Variants,
51
+ OpenAI::Realtime::UnknownTranslationServerEvent
52
+ )
53
+ end
54
+
55
+ ClientEvent = T.type_alias do
56
+ T.any(OpenAI::Realtime::RealtimeTranslationClientEvent::Variants, T::Hash[T.any(String, Symbol), T.anything])
57
+ end
58
+
59
+ Elem = type_member { {fixed: ServerEvent} }
60
+ sig { returns(URI::Generic) }
61
+ attr_reader :url
62
+ sig { params(socket: T.anything, url: URI::Generic).returns(T.attached_class) }
63
+ def self.new(socket:, url:)
64
+ end
65
+
66
+ sig do
67
+ params(block: T.nilable(T.proc.params(event: ServerEvent).void)).returns(
68
+ T.any(OpenAI::Realtime::TranslationConnection, T::Enumerator[ServerEvent])
69
+ )
70
+ end
71
+ def each(&block)
72
+ end
73
+
74
+ sig { returns(T.nilable(ServerEvent)) }
75
+ def receive
76
+ end
77
+
78
+ sig { returns(T.nilable(String)) }
79
+ def receive_raw
80
+ end
81
+
82
+ sig { params(event: ClientEvent).void }
83
+ def send_event(event)
84
+ end
85
+
86
+ sig do
87
+ params(timeout: Numeric, block: T.proc.params(event: ServerEvent).void)
88
+ .returns(OpenAI::Realtime::RealtimeTranslationSessionClosedEvent)
89
+ end
90
+ def finish(timeout:, &block)
91
+ end
92
+
93
+ sig { params(data: String).void }
94
+ def send_raw(data)
95
+ end
96
+
97
+ sig { params(code: Integer, reason: String).void }
98
+ def close(code: 1000, reason: "")
99
+ end
100
+
101
+ sig { void }
102
+ def abort
103
+ end
104
+
105
+ sig { returns(T::Boolean) }
106
+ def closed?
107
+ end
108
+ end
109
+ end
110
+ end
111
+
112
+ module Resources
113
+ class Realtime
114
+ sig do
115
+ type_parameters(:T)
116
+ .params(
117
+ model: String,
118
+ websocket_base_url: T.nilable(String),
119
+ request_options: T.nilable(OpenAI::RequestOptions::OrHash),
120
+ transport: T.untyped,
121
+ transport_options: T::Hash[Symbol, T.anything],
122
+ block: T.proc.params(connection: OpenAI::Realtime::TranslationConnection).returns(T.type_parameter(:T))
123
+ )
124
+ .returns(T.type_parameter(:T))
125
+ end
126
+ def connect_translation(
127
+ model:,
128
+ websocket_base_url: nil,
129
+ request_options: nil,
130
+ transport: nil,
131
+ transport_options: {},
132
+ &block
133
+ )
134
+ end
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class IncrementalResponse
7
+ sig { returns(T.attached_class) }
8
+ def self.new
9
+ end
10
+
11
+ sig { returns(T.nilable(Symbol)) }
12
+ attr_reader :phase
13
+
14
+ sig { returns(T.nilable(T::Array[T.any(ResponseOutputItem::Variants, T::Hash[Symbol, T.untyped])])) }
15
+ def output
16
+ end
17
+
18
+ sig { returns(T.nilable(Connection::ServerEvent)) }
19
+ def terminal_event
20
+ end
21
+
22
+ sig { params(event: Connection::ServerEvent).void }
23
+ def add(event)
24
+ end
25
+
26
+ sig { void }
27
+ def reset
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -5,6 +5,30 @@ module OpenAI
5
5
  module Responses
6
6
  module Transports
7
7
  class AsyncWebSocket
8
+ # @api private
9
+ module PeekableFramer
10
+ # @api private
11
+ sig { returns(T::Boolean) }
12
+ def next_frame_compressed?
13
+ end
14
+ end
15
+
16
+ # @api private
17
+ class BoundedFramer
18
+ # @api private
19
+ sig { params(value: T::Boolean).returns(T::Boolean) }
20
+ def compression_negotiated=(value)
21
+ end
22
+ end
23
+
24
+ # @api private
25
+ module BoundedInflate
26
+ # @api private
27
+ sig { params(max_bytes: Integer, framer: BoundedFramer).void }
28
+ def bound_decoded_messages(max_bytes, framer)
29
+ end
30
+ end
31
+
8
32
  sig { void }
9
33
  def initialize
10
34
  end
@@ -96,6 +96,11 @@ module OpenAI
96
96
  def accumulate_event(event:, current_snapshot:)
97
97
  end
98
98
 
99
+ # @api private
100
+ sig { params(event: T.untyped, items: T::Array[T.untyped]).void }
101
+ def accumulate_output(event, items)
102
+ end
103
+
99
104
  private
100
105
 
101
106
  sig { params(value: String, delta: String).returns(String) }
@@ -14,6 +14,7 @@ module OpenAI
14
14
  CoerceState = T.type_alias do
15
15
  {
16
16
  translate_names: T::Boolean,
17
+ request_only: T::Boolean,
17
18
  strictness: T::Boolean,
18
19
  exactness: {
19
20
  yes: Integer,
@@ -122,11 +123,11 @@ module OpenAI
122
123
 
123
124
  # @api private
124
125
  sig do
125
- params(translate_names: T::Boolean).returns(
126
+ params(translate_names: T::Boolean, request_only: T::Boolean).returns(
126
127
  OpenAI::Internal::Type::Converter::CoerceState
127
128
  )
128
129
  end
129
- def self.new_coerce_state(translate_names: true)
130
+ def self.new_coerce_state(translate_names: true, request_only: false)
130
131
  end
131
132
 
132
133
  # @api private
@@ -3129,7 +3129,8 @@ module OpenAI
3129
3129
  params(
3130
3130
  provider: T.any(
3131
3131
  OpenAI::Admin::Organization::AwsExternalStorageProvider::OrHash,
3132
- OpenAI::Admin::Organization::AzureExternalStorageProvider::OrHash
3132
+ OpenAI::Admin::Organization::AzureExternalStorageProvider::OrHash,
3133
+ OpenAI::Admin::Organization::GcpExternalStorageProvider::OrHash
3133
3134
  )
3134
3135
  )
3135
3136
  .void
@@ -3144,7 +3145,8 @@ module OpenAI
3144
3145
 
3145
3146
  provider: T.any(
3146
3147
  OpenAI::Admin::Organization::AwsExternalStorageProvider::OrHash,
3147
- OpenAI::Admin::Organization::AzureExternalStorageProvider::OrHash
3148
+ OpenAI::Admin::Organization::AzureExternalStorageProvider::OrHash,
3149
+ OpenAI::Admin::Organization::GcpExternalStorageProvider::OrHash
3148
3150
  )
3149
3151
  )
3150
3152
  .returns(T.attached_class)
@@ -3178,7 +3180,8 @@ module OpenAI
3178
3180
  Variants = T.type_alias {
3179
3181
  T.any(
3180
3182
  OpenAI::Admin::Organization::AwsExternalStorageProvider,
3181
- OpenAI::Admin::Organization::AzureExternalStorageProvider
3183
+ OpenAI::Admin::Organization::AzureExternalStorageProvider,
3184
+ OpenAI::Admin::Organization::GcpExternalStorageProvider
3182
3185
  )
3183
3186
  }
3184
3187
 
@@ -50,7 +50,8 @@ module OpenAI
50
50
 
51
51
  provider: T.any(
52
52
  OpenAI::Admin::Organization::AwsExternalStorageProvider::OrHash,
53
- OpenAI::Admin::Organization::AzureExternalStorageProvider::OrHash
53
+ OpenAI::Admin::Organization::AzureExternalStorageProvider::OrHash,
54
+ OpenAI::Admin::Organization::GcpExternalStorageProvider::OrHash
54
55
  ),
55
56
 
56
57
  status: OpenAI::Admin::Organization::ExternalStorageConfiguration::Status::OrSymbol,
@@ -99,7 +100,8 @@ module OpenAI
99
100
  Variants = T.type_alias {
100
101
  T.any(
101
102
  OpenAI::Admin::Organization::AwsExternalStorageProvider,
102
- OpenAI::Admin::Organization::AzureExternalStorageProvider
103
+ OpenAI::Admin::Organization::AzureExternalStorageProvider,
104
+ OpenAI::Admin::Organization::GcpExternalStorageProvider
103
105
  )
104
106
  }
105
107
 
@@ -26,7 +26,8 @@ module OpenAI
26
26
  returns(
27
27
  T.any(
28
28
  OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Aws,
29
- OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Azure
29
+ OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Azure,
30
+ OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Gcp
30
31
  )
31
32
  )
32
33
  }
@@ -39,7 +40,8 @@ module OpenAI
39
40
 
40
41
  provider: T.any(
41
42
  OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Aws::OrHash,
42
- OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Azure::OrHash
43
+ OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Azure::OrHash,
44
+ OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Gcp::OrHash
43
45
  ),
44
46
 
45
47
  request_options: OpenAI::RequestOptions::OrHash
@@ -62,7 +64,8 @@ module OpenAI
62
64
  project_id: String,
63
65
  provider: T.any(
64
66
  OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Aws,
65
- OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Azure
67
+ OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Azure,
68
+ OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Gcp
66
69
  ),
67
70
  request_options: OpenAI::RequestOptions
68
71
  }
@@ -77,7 +80,8 @@ module OpenAI
77
80
  Variants = T.type_alias {
78
81
  T.any(
79
82
  OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Aws,
80
- OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Azure
83
+ OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Azure,
84
+ OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Gcp
81
85
  )
82
86
  }
83
87
 
@@ -205,6 +209,74 @@ module OpenAI
205
209
 
206
210
  end
207
211
 
212
+ class Gcp < OpenAI::Internal::Type::BaseModel
213
+ OrHash = T.type_alias do
214
+ T.any(
215
+ OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Gcp,
216
+ OpenAI::Internal::AnyHash
217
+ )
218
+ end
219
+
220
+ sig { returns(String) }
221
+ attr_accessor :bucket
222
+
223
+ sig { returns(Symbol) }
224
+ attr_accessor :type
225
+
226
+ sig { returns(String) }
227
+ attr_accessor :workload_identity_pool_id
228
+
229
+ sig { returns(String) }
230
+ attr_accessor :workload_identity_project_number
231
+
232
+ sig { returns(String) }
233
+ attr_accessor :workload_identity_provider_id
234
+
235
+ sig do
236
+ params(
237
+
238
+ bucket: String,
239
+
240
+ workload_identity_pool_id: String,
241
+
242
+ workload_identity_project_number: String,
243
+
244
+ workload_identity_provider_id: String,
245
+
246
+ type: Symbol
247
+ )
248
+ .returns(T.attached_class)
249
+ end
250
+ def self.new(
251
+
252
+ bucket:,
253
+
254
+ workload_identity_pool_id:,
255
+
256
+ workload_identity_project_number:,
257
+
258
+ workload_identity_provider_id:,
259
+
260
+ type: :gcp
261
+ )
262
+ end
263
+
264
+ sig do
265
+ override.returns(
266
+ {
267
+ bucket: String,
268
+ type: Symbol,
269
+ workload_identity_pool_id: String,
270
+ workload_identity_project_number: String,
271
+ workload_identity_provider_id: String
272
+ }
273
+ )
274
+ end
275
+ def to_hash
276
+ end
277
+
278
+ end
279
+
208
280
  sig {
209
281
  override.returns(T::Array[OpenAI::Admin::Organization::ExternalStorageCreateParams::Provider::Variants])
210
282
  }
@@ -0,0 +1,100 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Admin
7
+
8
+ module Organization
9
+
10
+ class GcpExternalStorageProvider < OpenAI::Internal::Type::BaseModel
11
+
12
+ OrHash = T.type_alias do
13
+ T.any(
14
+ OpenAI::Admin::Organization::GcpExternalStorageProvider,
15
+ OpenAI::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ sig { returns(String) }
20
+ attr_accessor :audience
21
+
22
+ sig { returns(String) }
23
+ attr_accessor :bucket
24
+
25
+ sig { returns(String) }
26
+ attr_accessor :region
27
+
28
+ sig { returns(Symbol) }
29
+ attr_accessor :type
30
+
31
+ sig { returns(String) }
32
+ attr_accessor :workload_identity_pool_id
33
+
34
+ sig { returns(String) }
35
+ attr_accessor :workload_identity_project_number
36
+
37
+ sig { returns(String) }
38
+ attr_accessor :workload_identity_provider_id
39
+
40
+ sig do
41
+ params(
42
+
43
+ audience: String,
44
+
45
+ bucket: String,
46
+
47
+ region: String,
48
+
49
+ workload_identity_pool_id: String,
50
+
51
+ workload_identity_project_number: String,
52
+
53
+ workload_identity_provider_id: String,
54
+
55
+ type: Symbol
56
+ )
57
+ .returns(T.attached_class)
58
+ end
59
+ def self.new(
60
+
61
+ audience:,
62
+
63
+ bucket:,
64
+
65
+ region:,
66
+
67
+ workload_identity_pool_id:,
68
+
69
+ workload_identity_project_number:,
70
+
71
+ workload_identity_provider_id:,
72
+
73
+ type: :gcp
74
+ )
75
+ end
76
+
77
+ sig do
78
+ override.returns(
79
+ {
80
+ audience: String,
81
+ bucket: String,
82
+ region: String,
83
+ type: Symbol,
84
+ workload_identity_pool_id: String,
85
+ workload_identity_project_number: String,
86
+ workload_identity_provider_id: String
87
+ }
88
+ )
89
+ end
90
+ def to_hash
91
+ end
92
+
93
+ end
94
+
95
+ end
96
+
97
+ end
98
+
99
+ end
100
+ end
@@ -51,6 +51,7 @@ module OpenAI
51
51
  )
52
52
  GPT_DAYBREAK_RED_LATEST = T.let(:"gpt-daybreak-red-latest", OpenAI::AllModels::ResponsesOnlyModel::TaggedSymbol)
53
53
  GPT_5_6_CYBER = T.let(:"gpt-5.6-cyber", OpenAI::AllModels::ResponsesOnlyModel::TaggedSymbol)
54
+ GPT_ROSALIND_RESEARCH = T.let(:"gpt-rosalind-research", OpenAI::AllModels::ResponsesOnlyModel::TaggedSymbol)
54
55
 
55
56
  sig { override.returns(T::Array[OpenAI::AllModels::ResponsesOnlyModel::TaggedSymbol]) }
56
57
  def self.values
@@ -249,6 +249,9 @@ module OpenAI
249
249
  VERSE = T.let(:verse, OpenAI::Audio::SpeechCreateParams::Voice::TaggedSymbol)
250
250
  MARIN = T.let(:marin, OpenAI::Audio::SpeechCreateParams::Voice::TaggedSymbol)
251
251
  CEDAR = T.let(:cedar, OpenAI::Audio::SpeechCreateParams::Voice::TaggedSymbol)
252
+ FABLE = T.let(:fable, OpenAI::Audio::SpeechCreateParams::Voice::TaggedSymbol)
253
+ ONYX = T.let(:onyx, OpenAI::Audio::SpeechCreateParams::Voice::TaggedSymbol)
254
+ NOVA = T.let(:nova, OpenAI::Audio::SpeechCreateParams::Voice::TaggedSymbol)
252
255
 
253
256
  end
254
257
 
@@ -14,7 +14,8 @@ module OpenAI
14
14
  T.any(
15
15
  OpenAI::Audio::Transcription,
16
16
  OpenAI::Audio::TranscriptionDiarized,
17
- OpenAI::Audio::TranscriptionVerbose
17
+ OpenAI::Audio::TranscriptionVerbose,
18
+ StringIO
18
19
  )
19
20
  end
20
21
 
@@ -11,7 +11,8 @@ module OpenAI
11
11
  Variants = T.type_alias do
12
12
  T.any(
13
13
  OpenAI::Audio::Translation,
14
- OpenAI::Audio::TranslationVerbose
14
+ OpenAI::Audio::TranslationVerbose,
15
+ StringIO
15
16
  )
16
17
  end
17
18
 
@@ -195,6 +195,7 @@ module OpenAI
195
195
  FLEX = T.let(:flex, OpenAI::Beta::Agent::ServiceTier::TaggedSymbol)
196
196
  PRIORITY = T.let(:priority, OpenAI::Beta::Agent::ServiceTier::TaggedSymbol)
197
197
  FAST = T.let(:fast, OpenAI::Beta::Agent::ServiceTier::TaggedSymbol)
198
+ ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::Agent::ServiceTier::TaggedSymbol)
198
199
 
199
200
  sig { override.returns(T::Array[OpenAI::Beta::Agent::ServiceTier::TaggedSymbol]) }
200
201
  def self.values
@@ -203,6 +203,9 @@ module OpenAI
203
203
  # Uses the fast service tier.
204
204
  FAST = T.let(:fast, OpenAI::Beta::AgentCreateParams::ServiceTier::TaggedSymbol)
205
205
 
206
+ # Uses the ultrafast service tier.
207
+ ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::AgentCreateParams::ServiceTier::TaggedSymbol)
208
+
206
209
  sig { override.returns(T::Array[OpenAI::Beta::AgentCreateParams::ServiceTier::TaggedSymbol]) }
207
210
  def self.values
208
211
  end
@@ -319,6 +319,7 @@ module OpenAI
319
319
  FLEX = T.let(:flex, OpenAI::Beta::AgentSession::Agent::ServiceTier::TaggedSymbol)
320
320
  PRIORITY = T.let(:priority, OpenAI::Beta::AgentSession::Agent::ServiceTier::TaggedSymbol)
321
321
  FAST = T.let(:fast, OpenAI::Beta::AgentSession::Agent::ServiceTier::TaggedSymbol)
322
+ ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::AgentSession::Agent::ServiceTier::TaggedSymbol)
322
323
 
323
324
  sig { override.returns(T::Array[OpenAI::Beta::AgentSession::Agent::ServiceTier::TaggedSymbol]) }
324
325
  def self.values
@@ -214,6 +214,9 @@ module OpenAI
214
214
  # Uses the fast service tier.
215
215
  FAST = T.let(:fast, OpenAI::Beta::AgentUpdateParams::ServiceTier::TaggedSymbol)
216
216
 
217
+ # Uses the ultrafast service tier.
218
+ ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::AgentUpdateParams::ServiceTier::TaggedSymbol)
219
+
217
220
  sig { override.returns(T::Array[OpenAI::Beta::AgentUpdateParams::ServiceTier::TaggedSymbol]) }
218
221
  def self.values
219
222
  end
@@ -50,7 +50,7 @@ module OpenAI
50
50
  attr_accessor :name
51
51
 
52
52
  # Network access policy for the environment. Defaults to disabled for GA requests
53
- # and enabled for alpha/beta requests.
53
+ # and enabled for beta requests.
54
54
  sig { returns(T.nilable(OpenAI::Beta::Agents::Environments::TemplateCreateParams::Network)) }
55
55
  attr_reader :network
56
56
 
@@ -145,7 +145,7 @@ module OpenAI
145
145
  name: nil,
146
146
 
147
147
  # Network access policy for the environment. Defaults to disabled for GA requests
148
- # and enabled for alpha/beta requests.
148
+ # and enabled for beta requests.
149
149
  network: nil,
150
150
 
151
151
  # Packages to install in the environment. Defaults to empty package lists.
@@ -212,7 +212,7 @@ module OpenAI
212
212
  attr_accessor :allowed_domains
213
213
 
214
214
  # Network access policy for the environment. Defaults to disabled for GA requests
215
- # and enabled for alpha/beta requests.
215
+ # and enabled for beta requests.
216
216
  sig do
217
217
  params(
218
218
 
@@ -52,8 +52,8 @@ module OpenAI
52
52
  attr_accessor :name
53
53
 
54
54
  # Network access available after setup completes. Omit to preserve the current
55
- # policy, or pass `null` to reset to disabled for GA requests or enabled for
56
- # alpha/beta requests.
55
+ # policy, or pass `null` to reset to disabled for GA requests or enabled for beta
56
+ # requests.
57
57
  sig { returns(T.nilable(OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Network)) }
58
58
  attr_reader :network
59
59
 
@@ -150,8 +150,8 @@ module OpenAI
150
150
  name: nil,
151
151
 
152
152
  # Network access available after setup completes. Omit to preserve the current
153
- # policy, or pass `null` to reset to disabled for GA requests or enabled for
154
- # alpha/beta requests.
153
+ # policy, or pass `null` to reset to disabled for GA requests or enabled for beta
154
+ # requests.
155
155
  network: nil,
156
156
 
157
157
  # Packages installed before the runtime network policy applies.
@@ -218,8 +218,8 @@ module OpenAI
218
218
  attr_accessor :allowed_domains
219
219
 
220
220
  # Network access available after setup completes. Omit to preserve the current
221
- # policy, or pass `null` to reset to disabled for GA requests or enabled for
222
- # alpha/beta requests.
221
+ # policy, or pass `null` to reset to disabled for GA requests or enabled for beta
222
+ # requests.
223
223
  sig do
224
224
  params(
225
225
 
@@ -309,6 +309,9 @@ module OpenAI
309
309
  # Uses the fast service tier.
310
310
  FAST = T.let(:fast, OpenAI::Beta::Agents::SessionCreateParams::Agent::ServiceTier::TaggedSymbol)
311
311
 
312
+ # Uses the ultrafast service tier.
313
+ ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::Agents::SessionCreateParams::Agent::ServiceTier::TaggedSymbol)
314
+
312
315
  sig {
313
316
  override.returns(T::Array[OpenAI::Beta::Agents::SessionCreateParams::Agent::ServiceTier::TaggedSymbol])
314
317
  }
@@ -234,6 +234,9 @@ module OpenAI
234
234
  # Uses the fast service tier.
235
235
  FAST = T.let(:fast, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
236
236
 
237
+ # Uses the ultrafast service tier.
238
+ ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
239
+
237
240
  sig {
238
241
  override.returns(T::Array[OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol])
239
242
  }