openai 0.114.0 → 0.115.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 (226) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -0
  3. data/README.md +17 -2
  4. data/docs/architecture/security-model.md +11 -16
  5. data/examples/responses/websocket_workflows.rb +78 -3
  6. data/lib/openai/helpers/chat/tool_runner.rb +1 -1
  7. data/lib/openai/helpers/live/websocket.rb +31 -0
  8. data/lib/openai/helpers/realtime/connection.rb +33 -0
  9. data/lib/openai/helpers/realtime/connection_manager.rb +1 -0
  10. data/lib/openai/helpers/realtime/conversation_item_variant_resolver.rb +5 -0
  11. data/lib/openai/helpers/realtime/recovery.rb +5 -1
  12. data/lib/openai/helpers/realtime/translation.rb +5 -0
  13. data/lib/openai/helpers/realtime/transports/async_websocket.rb +19 -0
  14. data/lib/openai/helpers/responses_websocket/connection.rb +53 -15
  15. data/lib/openai/helpers/responses_websocket/connection_manager.rb +1 -0
  16. data/lib/openai/helpers/responses_websocket/connection_resources.rb +1 -1
  17. data/lib/openai/helpers/structured_output/response_parser.rb +1 -0
  18. data/lib/openai/helpers/structured_output.rb +58 -0
  19. data/lib/openai/helpers/websocket/connection_manager.rb +11 -0
  20. data/lib/openai/helpers/websocket/resource.rb +1 -0
  21. data/lib/openai/helpers/websocket/typed_connection.rb +1 -0
  22. data/lib/openai/internal/type/array_of.rb +1 -1
  23. data/lib/openai/internal/type/hash_of.rb +1 -1
  24. data/lib/openai/internal/type/request_parameters.rb +2 -1
  25. data/lib/openai/internal/type/union.rb +18 -6
  26. data/lib/openai/models/admin/organization/external_key.rb +169 -0
  27. data/lib/openai/models/admin/organization/external_key_create_params.rb +311 -0
  28. data/lib/openai/models/admin/organization/external_key_delete_params.rb +24 -0
  29. data/lib/openai/models/admin/organization/external_key_list_params.rb +69 -0
  30. data/lib/openai/models/admin/organization/external_key_retrieve_params.rb +24 -0
  31. data/lib/openai/models/admin/organization/external_key_validate_params.rb +24 -0
  32. data/lib/openai/models/admin/organization/external_key_validate_response.rb +20 -0
  33. data/lib/openai/models/audio/speech_model.rb +12 -0
  34. data/lib/openai/models/audio_model.rb +15 -0
  35. data/lib/openai/models/beta/agent.rb +49 -1
  36. data/lib/openai/models/beta/agent_create_params.rb +51 -1
  37. data/lib/openai/models/beta/agent_session.rb +75 -2
  38. data/lib/openai/models/beta/agent_update_params.rb +62 -1
  39. data/lib/openai/models/beta/agents/session_create_params.rb +94 -2
  40. data/lib/openai/models/beta/agents/session_list_params.rb +16 -1
  41. data/lib/openai/models/beta/agents/session_update_params.rb +50 -5
  42. data/lib/openai/models/beta/assistant_update_params.rb +18 -0
  43. data/lib/openai/models/beta/beta_response.rb +224 -1
  44. data/lib/openai/models/beta/beta_response_configuration_update_item.rb +64 -3
  45. data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +64 -4
  46. data/lib/openai/models/beta/beta_response_input_item.rb +2 -3
  47. data/lib/openai/models/beta/beta_response_item.rb +2 -2
  48. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +6 -6
  49. data/lib/openai/models/beta/beta_responses_client_event.rb +20 -1
  50. data/lib/openai/models/beta/beta_tool.rb +6 -6
  51. data/lib/openai/models/beta/response_compact_params.rb +6 -0
  52. data/lib/openai/models/beta/response_create_params.rb +6 -0
  53. data/lib/openai/models/chat_model.rb +6 -0
  54. data/lib/openai/models/conversations/conversation_item.rb +2 -2
  55. data/lib/openai/models/image_edit_params.rb +46 -25
  56. data/lib/openai/models/live/fork_server_event.rb +43 -3
  57. data/lib/openai/models/live/server_event.rb +43 -3
  58. data/lib/openai/models/live/sideband_client_event.rb +40 -1
  59. data/lib/openai/models/live/sideband_server_event.rb +43 -3
  60. data/lib/openai/models/realtime/audio_transcription.rb +15 -0
  61. data/lib/openai/models/realtime/conversation_item_added.rb +2 -2
  62. data/lib/openai/models/realtime/conversation_item_create_event.rb +2 -2
  63. data/lib/openai/models/realtime/conversation_item_created_event.rb +2 -2
  64. data/lib/openai/models/realtime/conversation_item_done.rb +2 -2
  65. data/lib/openai/models/realtime/realtime_response.rb +2 -2
  66. data/lib/openai/models/realtime/realtime_response_create_params.rb +2 -2
  67. data/lib/openai/models/realtime/realtime_server_event.rb +2 -2
  68. data/lib/openai/models/realtime/realtime_session.rb +18 -0
  69. data/lib/openai/models/realtime/realtime_session_create_request.rb +18 -0
  70. data/lib/openai/models/realtime/realtime_session_create_response.rb +18 -0
  71. data/lib/openai/models/realtime/response_output_item_added_event.rb +2 -2
  72. data/lib/openai/models/realtime/response_output_item_done_event.rb +2 -2
  73. data/lib/openai/models/responses/response.rb +221 -1
  74. data/lib/openai/models/responses/response_compact_params.rb +6 -0
  75. data/lib/openai/models/responses/response_configuration_update_item.rb +50 -3
  76. data/lib/openai/models/responses/response_configuration_update_item_param.rb +50 -4
  77. data/lib/openai/models/responses/response_input_item.rb +2 -3
  78. data/lib/openai/models/responses/response_item.rb +2 -2
  79. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +6 -6
  80. data/lib/openai/models/responses/responses_client_event.rb +14 -1
  81. data/lib/openai/models/responses/tool.rb +6 -6
  82. data/lib/openai/net_http_client.rb +6 -0
  83. data/lib/openai/providers/vertex.rb +0 -10
  84. data/lib/openai/resources/admin/organization/external_keys.rb +132 -0
  85. data/lib/openai/resources/admin/organization.rb +4 -0
  86. data/lib/openai/resources/audio/speech.rb +8 -0
  87. data/lib/openai/resources/audio/translations.rb +8 -0
  88. data/lib/openai/resources/beta/agents/sessions.rb +22 -6
  89. data/lib/openai/resources/beta/agents.rb +17 -2
  90. data/lib/openai/resources/images.rb +36 -18
  91. data/lib/openai/version.rb +1 -1
  92. data/lib/openai.rb +8 -0
  93. data/rbi/openai/helpers/live/websocket.rbi +1 -12
  94. data/rbi/openai/helpers/realtime/connection.rbi +5 -0
  95. data/rbi/openai/helpers/realtime/transports/async_websocket.rbi +5 -0
  96. data/rbi/openai/helpers/responses_websocket/connection.rbi +7 -2
  97. data/rbi/openai/helpers/structured_output.rbi +10 -0
  98. data/rbi/openai/internal/type/array_of.rbi +1 -1
  99. data/rbi/openai/internal/type/hash_of.rbi +1 -1
  100. data/rbi/openai/internal/type/union.rbi +5 -0
  101. data/rbi/openai/models/admin/organization/external_key.rbi +301 -0
  102. data/rbi/openai/models/admin/organization/external_key_create_params.rbi +532 -0
  103. data/rbi/openai/models/admin/organization/external_key_delete_params.rbi +57 -0
  104. data/rbi/openai/models/admin/organization/external_key_list_params.rbi +129 -0
  105. data/rbi/openai/models/admin/organization/external_key_retrieve_params.rbi +57 -0
  106. data/rbi/openai/models/admin/organization/external_key_validate_params.rbi +57 -0
  107. data/rbi/openai/models/admin/organization/external_key_validate_response.rbi +50 -0
  108. data/rbi/openai/models/beta/agent.rbi +103 -1
  109. data/rbi/openai/models/beta/agent_create_params.rbi +109 -0
  110. data/rbi/openai/models/beta/agent_session.rbi +136 -3
  111. data/rbi/openai/models/beta/agent_update_params.rbi +120 -0
  112. data/rbi/openai/models/beta/agents/session_create_params.rbi +153 -0
  113. data/rbi/openai/models/beta/agents/session_list_params.rbi +19 -0
  114. data/rbi/openai/models/beta/agents/session_update_params.rbi +94 -6
  115. data/rbi/openai/models/beta/beta_response.rbi +394 -0
  116. data/rbi/openai/models/beta/beta_response_configuration_update_item.rbi +113 -3
  117. data/rbi/openai/models/beta/beta_response_configuration_update_item_param.rbi +125 -4
  118. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +6 -6
  119. data/rbi/openai/models/beta/beta_responses_client_event.rbi +17 -0
  120. data/rbi/openai/models/beta/beta_tool.rbi +6 -6
  121. data/rbi/openai/models/decision_create_params.rbi +4 -1
  122. data/rbi/openai/models/image_edit_params.rbi +49 -24
  123. data/rbi/openai/models/live/fork_server_event.rbi +65 -1
  124. data/rbi/openai/models/live/server_event.rbi +65 -1
  125. data/rbi/openai/models/live/sideband_client_event.rbi +60 -0
  126. data/rbi/openai/models/live/sideband_server_event.rbi +65 -1
  127. data/rbi/openai/models/realtime/conversation_item_added.rbi +6 -3
  128. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +6 -3
  129. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +6 -3
  130. data/rbi/openai/models/realtime/conversation_item_done.rbi +6 -3
  131. data/rbi/openai/models/realtime/realtime_response.rbi +8 -4
  132. data/rbi/openai/models/realtime/realtime_response_create_params.rbi +8 -4
  133. data/rbi/openai/models/realtime/realtime_server_event.rbi +6 -3
  134. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +6 -3
  135. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +6 -3
  136. data/rbi/openai/models/responses/response.rbi +394 -0
  137. data/rbi/openai/models/responses/response_configuration_update_item.rbi +76 -3
  138. data/rbi/openai/models/responses/response_configuration_update_item_param.rbi +74 -4
  139. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +6 -6
  140. data/rbi/openai/models/responses/responses_client_event.rbi +17 -0
  141. data/rbi/openai/models/responses/tool.rbi +6 -6
  142. data/rbi/openai/net_http_client.rbi +5 -0
  143. data/rbi/openai/resources/admin/organization/external_keys.rbi +86 -0
  144. data/rbi/openai/resources/admin/organization.rbi +3 -0
  145. data/rbi/openai/resources/audio/speech.rbi +8 -0
  146. data/rbi/openai/resources/audio/translations.rbi +6 -0
  147. data/rbi/openai/resources/beta/agents/sessions.rbi +18 -2
  148. data/rbi/openai/resources/beta/agents.rbi +15 -0
  149. data/rbi/openai/resources/images.rbi +34 -16
  150. data/rbi/openai/resources/responses.rbi +2 -0
  151. data/realtime.md +6 -0
  152. data/responses-websocket.md +53 -0
  153. data/sig/openai/helpers/live/websocket.rbs +1 -9
  154. data/sig/openai/helpers/realtime/connection.rbs +3 -0
  155. data/sig/openai/helpers/realtime/transports/async_websocket.rbs +3 -0
  156. data/sig/openai/helpers/responses_websocket/connection.rbs +7 -1
  157. data/sig/openai/helpers/structured_output.rbs +9 -0
  158. data/sig/openai/internal/type/union.rbs +4 -0
  159. data/sig/openai/models/admin/organization/external_key.rbs +186 -0
  160. data/sig/openai/models/admin/organization/external_key_create_params.rbs +423 -0
  161. data/sig/openai/models/admin/organization/external_key_delete_params.rbs +27 -0
  162. data/sig/openai/models/admin/organization/external_key_list_params.rbs +81 -0
  163. data/sig/openai/models/admin/organization/external_key_retrieve_params.rbs +27 -0
  164. data/sig/openai/models/admin/organization/external_key_validate_params.rbs +27 -0
  165. data/sig/openai/models/admin/organization/external_key_validate_response.rbs +17 -0
  166. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +72 -2
  167. data/sig/openai/models/audio/speech_create_params.rbs +15 -2
  168. data/sig/openai/models/audio/transcription_create_params.rbs +30 -2
  169. data/sig/openai/models/audio/voice_create_params.rbs +47 -2
  170. data/sig/openai/models/beta/agent.rbs +54 -2
  171. data/sig/openai/models/beta/agent_create_params.rbs +54 -0
  172. data/sig/openai/models/beta/agent_session.rbs +82 -3
  173. data/sig/openai/models/beta/agent_update_params.rbs +64 -0
  174. data/sig/openai/models/beta/agents/session_create_params.rbs +91 -0
  175. data/sig/openai/models/beta/agents/session_list_params.rbs +20 -0
  176. data/sig/openai/models/beta/agents/session_update_params.rbs +48 -6
  177. data/sig/openai/models/beta/assistant_create_params.rbs +5 -2
  178. data/sig/openai/models/beta/beta_response.rbs +223 -0
  179. data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +58 -2
  180. data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +58 -2
  181. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +4 -4
  182. data/sig/openai/models/beta/beta_responses_client_event.rbs +17 -0
  183. data/sig/openai/models/beta/beta_tool.rbs +4 -4
  184. data/sig/openai/models/beta/response_create_params.rbs +5 -2
  185. data/sig/openai/models/beta/responses/input_token_count_params.rbs +10 -2
  186. data/sig/openai/models/beta/thread_create_and_run_params.rbs +11 -5
  187. data/sig/openai/models/beta/thread_create_params.rbs +11 -5
  188. data/sig/openai/models/beta/threads/message_create_params.rbs +6 -3
  189. data/sig/openai/models/beta/threads/run_create_params.rbs +6 -3
  190. data/sig/openai/models/decision_create_params.rbs +27 -2
  191. data/sig/openai/models/eval_create_params.rbs +25 -4
  192. data/sig/openai/models/evals/run_create_params.rbs +52 -8
  193. data/sig/openai/models/image_edit_params.rbs +47 -16
  194. data/sig/openai/models/live/fork_server_event.rbs +39 -0
  195. data/sig/openai/models/live/server_event.rbs +39 -0
  196. data/sig/openai/models/live/session_accept_params.rbs +39 -2
  197. data/sig/openai/models/live/sideband_client_event.rbs +32 -0
  198. data/sig/openai/models/live/sideband_server_event.rbs +39 -0
  199. data/sig/openai/models/realtime/conversation_item.rbs +1 -0
  200. data/sig/openai/models/responses/input_token_count_params.rbs +10 -2
  201. data/sig/openai/models/responses/response.rbs +223 -0
  202. data/sig/openai/models/responses/response_configuration_update_item.rbs +45 -2
  203. data/sig/openai/models/responses/response_configuration_update_item_param.rbs +45 -2
  204. data/sig/openai/models/responses/response_create_params.rbs +5 -2
  205. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +4 -4
  206. data/sig/openai/models/responses/responses_client_event.rbs +17 -0
  207. data/sig/openai/models/responses/tool.rbs +4 -4
  208. data/sig/openai/models/video_edit_params.rbs +11 -2
  209. data/sig/openai/models/video_extend_params.rbs +11 -2
  210. data/sig/openai/net_http_client.rbs +3 -0
  211. data/sig/openai/resources/admin/organization/external_keys.rbs +70 -0
  212. data/sig/openai/resources/admin/organization/external_storage.rbs +23 -1
  213. data/sig/openai/resources/admin/organization.rbs +2 -0
  214. data/sig/openai/resources/audio/speech.rbs +2 -1
  215. data/sig/openai/resources/audio/transcriptions.rbs +14 -2
  216. data/sig/openai/resources/audio/voices.rbs +14 -1
  217. data/sig/openai/resources/beta/agents/sessions.rbs +4 -0
  218. data/sig/openai/resources/beta/agents.rbs +4 -0
  219. data/sig/openai/resources/beta/responses/input_tokens.rbs +2 -1
  220. data/sig/openai/resources/beta/responses.rbs +4 -2
  221. data/sig/openai/resources/decisions.rbs +7 -1
  222. data/sig/openai/resources/images.rbs +2 -0
  223. data/sig/openai/resources/responses/input_tokens.rbs +2 -1
  224. data/sig/openai/resources/responses.rbs +5 -2
  225. data/sig/openai/resources/videos.rbs +2 -2
  226. metadata +25 -1
@@ -0,0 +1,301 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Admin
7
+
8
+ module Organization
9
+
10
+ class ExternalKey < OpenAI::Internal::Type::BaseModel
11
+
12
+ OrHash = T.type_alias do
13
+ T.any(
14
+ OpenAI::Admin::Organization::ExternalKey,
15
+ OpenAI::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ sig { returns(String) }
20
+ attr_accessor :id
21
+
22
+ sig { returns(T::Array[String]) }
23
+ attr_accessor :api_project_ids
24
+
25
+ sig { returns(Integer) }
26
+ attr_accessor :created_at
27
+
28
+ sig { returns(String) }
29
+ attr_accessor :name
30
+
31
+ sig { returns(String) }
32
+ attr_accessor :object
33
+
34
+ sig { returns(String) }
35
+ attr_accessor :type
36
+
37
+ sig { returns(String) }
38
+ attr_accessor :workspace_id
39
+
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :audience
42
+
43
+ sig { params(audience: String).void }
44
+ attr_writer :audience
45
+
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :external_id
48
+
49
+ sig { params(external_id: String).void }
50
+ attr_writer :external_id
51
+
52
+ sig { returns(T.nilable(String)) }
53
+ attr_reader :key_name
54
+
55
+ sig { params(key_name: String).void }
56
+ attr_writer :key_name
57
+
58
+ sig { returns(T.nilable(String)) }
59
+ attr_reader :key_version
60
+
61
+ sig { params(key_version: String).void }
62
+ attr_writer :key_version
63
+
64
+ sig { returns(T.nilable(String)) }
65
+ attr_reader :kms_arn
66
+
67
+ sig { params(kms_arn: String).void }
68
+ attr_writer :kms_arn
69
+
70
+ sig { returns(T.nilable(String)) }
71
+ attr_reader :kms_key_location
72
+
73
+ sig { params(kms_key_location: String).void }
74
+ attr_writer :kms_key_location
75
+
76
+ sig { returns(T.nilable(String)) }
77
+ attr_reader :kms_key_name
78
+
79
+ sig { params(kms_key_name: String).void }
80
+ attr_writer :kms_key_name
81
+
82
+ sig { returns(T.nilable(String)) }
83
+ attr_reader :kms_key_ring_name
84
+
85
+ sig { params(kms_key_ring_name: String).void }
86
+ attr_writer :kms_key_ring_name
87
+
88
+ sig { returns(T.nilable(String)) }
89
+ attr_reader :kms_key_version
90
+
91
+ sig { params(kms_key_version: String).void }
92
+ attr_writer :kms_key_version
93
+
94
+ sig { returns(T.nilable(String)) }
95
+ attr_reader :kms_project_id
96
+
97
+ sig { params(kms_project_id: String).void }
98
+ attr_writer :kms_project_id
99
+
100
+ sig { returns(T.nilable(OpenAI::Admin::Organization::ExternalKey::Purpose::TaggedSymbol)) }
101
+ attr_reader :purpose
102
+
103
+ sig { params(purpose: OpenAI::Admin::Organization::ExternalKey::Purpose::OrSymbol).void }
104
+ attr_writer :purpose
105
+
106
+ sig { returns(T.nilable(String)) }
107
+ attr_reader :role_arn
108
+
109
+ sig { params(role_arn: String).void }
110
+ attr_writer :role_arn
111
+
112
+ sig { returns(T.nilable(String)) }
113
+ attr_reader :tenant_id
114
+
115
+ sig { params(tenant_id: String).void }
116
+ attr_writer :tenant_id
117
+
118
+ sig { returns(T.nilable(String)) }
119
+ attr_reader :vault_uri
120
+
121
+ sig { params(vault_uri: String).void }
122
+ attr_writer :vault_uri
123
+
124
+ sig { returns(T.nilable(String)) }
125
+ attr_reader :workload_identity_pool_id
126
+
127
+ sig { params(workload_identity_pool_id: String).void }
128
+ attr_writer :workload_identity_pool_id
129
+
130
+ sig { returns(T.nilable(String)) }
131
+ attr_reader :workload_identity_project_number
132
+
133
+ sig { params(workload_identity_project_number: String).void }
134
+ attr_writer :workload_identity_project_number
135
+
136
+ sig { returns(T.nilable(String)) }
137
+ attr_reader :workload_identity_provider_id
138
+
139
+ sig { params(workload_identity_provider_id: String).void }
140
+ attr_writer :workload_identity_provider_id
141
+
142
+ sig do
143
+ params(
144
+
145
+ id: String,
146
+
147
+ api_project_ids: T::Array[String],
148
+
149
+ created_at: Integer,
150
+
151
+ name: String,
152
+
153
+ object: String,
154
+
155
+ type: String,
156
+
157
+ workspace_id: String,
158
+
159
+ audience: String,
160
+
161
+ external_id: String,
162
+
163
+ key_name: String,
164
+
165
+ key_version: String,
166
+
167
+ kms_arn: String,
168
+
169
+ kms_key_location: String,
170
+
171
+ kms_key_name: String,
172
+
173
+ kms_key_ring_name: String,
174
+
175
+ kms_key_version: String,
176
+
177
+ kms_project_id: String,
178
+
179
+ purpose: OpenAI::Admin::Organization::ExternalKey::Purpose::OrSymbol,
180
+
181
+ role_arn: String,
182
+
183
+ tenant_id: String,
184
+
185
+ vault_uri: String,
186
+
187
+ workload_identity_pool_id: String,
188
+
189
+ workload_identity_project_number: String,
190
+
191
+ workload_identity_provider_id: String
192
+ )
193
+ .returns(T.attached_class)
194
+ end
195
+ def self.new(
196
+
197
+ id:,
198
+
199
+ api_project_ids:,
200
+
201
+ created_at:,
202
+
203
+ name:,
204
+
205
+ object:,
206
+
207
+ type:,
208
+
209
+ workspace_id:,
210
+
211
+ audience: nil,
212
+
213
+ external_id: nil,
214
+
215
+ key_name: nil,
216
+
217
+ key_version: nil,
218
+
219
+ kms_arn: nil,
220
+
221
+ kms_key_location: nil,
222
+
223
+ kms_key_name: nil,
224
+
225
+ kms_key_ring_name: nil,
226
+
227
+ kms_key_version: nil,
228
+
229
+ kms_project_id: nil,
230
+
231
+ purpose: nil,
232
+
233
+ role_arn: nil,
234
+
235
+ tenant_id: nil,
236
+
237
+ vault_uri: nil,
238
+
239
+ workload_identity_pool_id: nil,
240
+
241
+ workload_identity_project_number: nil,
242
+
243
+ workload_identity_provider_id: nil
244
+ )
245
+ end
246
+
247
+ sig do
248
+ override.returns(
249
+ {
250
+ id: String,
251
+ api_project_ids: T::Array[String],
252
+ created_at: Integer,
253
+ name: String,
254
+ object: String,
255
+ type: String,
256
+ workspace_id: String,
257
+ audience: String,
258
+ external_id: String,
259
+ key_name: String,
260
+ key_version: String,
261
+ kms_arn: String,
262
+ kms_key_location: String,
263
+ kms_key_name: String,
264
+ kms_key_ring_name: String,
265
+ kms_key_version: String,
266
+ kms_project_id: String,
267
+ purpose: OpenAI::Admin::Organization::ExternalKey::Purpose::TaggedSymbol,
268
+ role_arn: String,
269
+ tenant_id: String,
270
+ vault_uri: String,
271
+ workload_identity_pool_id: String,
272
+ workload_identity_project_number: String,
273
+ workload_identity_provider_id: String
274
+ }
275
+ )
276
+ end
277
+ def to_hash
278
+ end
279
+
280
+ module Purpose
281
+ extend OpenAI::Internal::Type::Enum
282
+
283
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Admin::Organization::ExternalKey::Purpose) }
284
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
285
+
286
+ EKM = T.let(:ekm, OpenAI::Admin::Organization::ExternalKey::Purpose::TaggedSymbol)
287
+ PSP_DECRYPTION = T.let(:psp_decryption, OpenAI::Admin::Organization::ExternalKey::Purpose::TaggedSymbol)
288
+
289
+ sig { override.returns(T::Array[OpenAI::Admin::Organization::ExternalKey::Purpose::TaggedSymbol]) }
290
+ def self.values
291
+ end
292
+ end
293
+
294
+ end
295
+
296
+ end
297
+
298
+ end
299
+
300
+ end
301
+ end