openai 0.63.0 → 0.64.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 (265) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/README.md +1 -1
  4. data/lib/openai/internal/transport/base_client.rb +2 -0
  5. data/lib/openai/models/admin/organization/data_retention_retrieve_params.rb +18 -0
  6. data/lib/openai/models/admin/organization/data_retention_update_params.rb +40 -0
  7. data/lib/openai/models/admin/organization/group.rb +16 -3
  8. data/lib/openai/models/admin/organization/group_retrieve_params.rb +24 -0
  9. data/lib/openai/models/admin/organization/groups/role_list_response.rb +27 -1
  10. data/lib/openai/models/admin/organization/groups/role_retrieve_params.rb +32 -0
  11. data/lib/openai/models/admin/organization/groups/role_retrieve_response.rb +134 -0
  12. data/lib/openai/models/admin/organization/groups/user_retrieve_params.rb +32 -0
  13. data/lib/openai/models/admin/organization/groups/user_retrieve_response.rb +79 -0
  14. data/lib/openai/models/admin/organization/invite_create_params.rb +2 -1
  15. data/lib/openai/models/admin/organization/organization_data_retention.rb +48 -0
  16. data/lib/openai/models/admin/organization/organization_spend_alert.rb +120 -0
  17. data/lib/openai/models/admin/organization/organization_spend_alert_deleted.rb +41 -0
  18. data/lib/openai/models/admin/organization/projects/data_retention_retrieve_params.rb +26 -0
  19. data/lib/openai/models/admin/organization/projects/data_retention_update_params.rb +51 -0
  20. data/lib/openai/models/admin/organization/projects/group_retrieve_params.rb +53 -0
  21. data/lib/openai/models/admin/organization/projects/groups/role_list_response.rb +27 -1
  22. data/lib/openai/models/admin/organization/projects/groups/role_retrieve_params.rb +40 -0
  23. data/lib/openai/models/admin/organization/projects/groups/role_retrieve_response.rb +136 -0
  24. data/lib/openai/models/admin/organization/projects/hosted_tool_permission_retrieve_params.rb +26 -0
  25. data/lib/openai/models/admin/organization/projects/hosted_tool_permission_update_params.rb +150 -0
  26. data/lib/openai/models/admin/organization/projects/model_permission_delete_params.rb +26 -0
  27. data/lib/openai/models/admin/organization/projects/model_permission_retrieve_params.rb +26 -0
  28. data/lib/openai/models/admin/organization/projects/model_permission_update_params.rb +54 -0
  29. data/lib/openai/models/admin/organization/projects/project_data_retention.rb +52 -0
  30. data/lib/openai/models/admin/organization/projects/project_group.rb +16 -3
  31. data/lib/openai/models/admin/organization/projects/project_hosted_tool_permissions.rb +133 -0
  32. data/lib/openai/models/admin/organization/projects/project_model_permissions.rb +56 -0
  33. data/lib/openai/models/admin/organization/projects/project_model_permissions_deleted.rb +35 -0
  34. data/lib/openai/models/admin/organization/projects/project_spend_alert.rb +122 -0
  35. data/lib/openai/models/admin/organization/projects/project_spend_alert_deleted.rb +43 -0
  36. data/lib/openai/models/admin/organization/projects/role_retrieve_params.rb +32 -0
  37. data/lib/openai/models/admin/organization/projects/service_account_update_params.rb +61 -0
  38. data/lib/openai/models/admin/organization/projects/spend_alert_create_params.rb +109 -0
  39. data/lib/openai/models/admin/organization/projects/spend_alert_delete_params.rb +32 -0
  40. data/lib/openai/models/admin/organization/projects/spend_alert_list_params.rb +76 -0
  41. data/lib/openai/models/admin/organization/projects/spend_alert_update_params.rb +116 -0
  42. data/lib/openai/models/admin/organization/projects/users/role_list_response.rb +27 -1
  43. data/lib/openai/models/admin/organization/projects/users/role_retrieve_params.rb +40 -0
  44. data/lib/openai/models/admin/organization/projects/users/role_retrieve_response.rb +136 -0
  45. data/lib/openai/models/admin/organization/role_retrieve_params.rb +24 -0
  46. data/lib/openai/models/admin/organization/spend_alert_create_params.rb +100 -0
  47. data/lib/openai/models/admin/organization/spend_alert_delete_params.rb +24 -0
  48. data/lib/openai/models/admin/organization/spend_alert_list_params.rb +66 -0
  49. data/lib/openai/models/admin/organization/spend_alert_update_params.rb +107 -0
  50. data/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +148 -3
  51. data/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +148 -3
  52. data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +148 -3
  53. data/lib/openai/models/admin/organization/usage_completions_response.rb +148 -3
  54. data/lib/openai/models/admin/organization/usage_costs_response.rb +148 -3
  55. data/lib/openai/models/admin/organization/usage_embeddings_response.rb +148 -3
  56. data/lib/openai/models/admin/organization/usage_file_search_calls_params.rb +136 -0
  57. data/lib/openai/models/admin/organization/usage_file_search_calls_response.rb +889 -0
  58. data/lib/openai/models/admin/organization/usage_images_response.rb +148 -3
  59. data/lib/openai/models/admin/organization/usage_moderations_response.rb +148 -3
  60. data/lib/openai/models/admin/organization/usage_vector_stores_response.rb +148 -3
  61. data/lib/openai/models/admin/organization/usage_web_search_calls_params.rb +157 -0
  62. data/lib/openai/models/admin/organization/usage_web_search_calls_response.rb +889 -0
  63. data/lib/openai/models/admin/organization/users/role_list_response.rb +27 -1
  64. data/lib/openai/models/admin/organization/users/role_retrieve_params.rb +32 -0
  65. data/lib/openai/models/admin/organization/users/role_retrieve_response.rb +134 -0
  66. data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
  67. data/lib/openai/models/conversations/item_create_params.rb +2 -2
  68. data/lib/openai/models/responses/input_token_count_params.rb +3 -3
  69. data/lib/openai/models/responses/response.rb +3 -3
  70. data/lib/openai/models/responses/response_compact_params.rb +3 -3
  71. data/lib/openai/models/responses/response_create_params.rb +3 -3
  72. data/lib/openai/models/responses/response_input_item.rb +17 -1
  73. data/lib/openai/models/responses/responses_client_event.rb +3 -3
  74. data/lib/openai/resources/admin/organization/data_retention.rb +60 -0
  75. data/lib/openai/resources/admin/organization/groups/roles.rb +28 -0
  76. data/lib/openai/resources/admin/organization/groups/users.rb +28 -0
  77. data/lib/openai/resources/admin/organization/groups.rb +21 -0
  78. data/lib/openai/resources/admin/organization/projects/data_retention.rb +66 -0
  79. data/lib/openai/resources/admin/organization/projects/groups/roles.rb +34 -0
  80. data/lib/openai/resources/admin/organization/projects/groups.rb +32 -0
  81. data/lib/openai/resources/admin/organization/projects/hosted_tool_permissions.rb +75 -0
  82. data/lib/openai/resources/admin/organization/projects/model_permissions.rb +89 -0
  83. data/lib/openai/resources/admin/organization/projects/roles.rb +28 -0
  84. data/lib/openai/resources/admin/organization/projects/service_accounts.rb +33 -0
  85. data/lib/openai/resources/admin/organization/projects/spend_alerts.rb +153 -0
  86. data/lib/openai/resources/admin/organization/projects/users/roles.rb +34 -0
  87. data/lib/openai/resources/admin/organization/projects.rb +18 -0
  88. data/lib/openai/resources/admin/organization/roles.rb +21 -0
  89. data/lib/openai/resources/admin/organization/spend_alerts.rb +133 -0
  90. data/lib/openai/resources/admin/organization/usage.rb +94 -0
  91. data/lib/openai/resources/admin/organization/users/roles.rb +28 -0
  92. data/lib/openai/resources/admin/organization.rb +8 -0
  93. data/lib/openai/resources/conversations/items.rb +1 -1
  94. data/lib/openai/resources/conversations.rb +1 -1
  95. data/lib/openai/resources/responses/input_tokens.rb +1 -1
  96. data/lib/openai/resources/responses.rb +3 -3
  97. data/lib/openai/version.rb +1 -1
  98. data/lib/openai.rb +51 -0
  99. data/rbi/openai/models/admin/organization/data_retention_retrieve_params.rbi +34 -0
  100. data/rbi/openai/models/admin/organization/data_retention_update_params.rbi +101 -0
  101. data/rbi/openai/models/admin/organization/group.rbi +39 -3
  102. data/rbi/openai/models/admin/organization/group_retrieve_params.rbi +42 -0
  103. data/rbi/openai/models/admin/organization/groups/role_list_response.rbi +58 -0
  104. data/rbi/openai/models/admin/organization/groups/role_retrieve_params.rbi +52 -0
  105. data/rbi/openai/models/admin/organization/groups/role_retrieve_response.rbi +186 -0
  106. data/rbi/openai/models/admin/organization/groups/user_retrieve_params.rbi +52 -0
  107. data/rbi/openai/models/admin/organization/groups/user_retrieve_response.rbi +128 -0
  108. data/rbi/openai/models/admin/organization/invite_create_params.rbi +4 -2
  109. data/rbi/openai/models/admin/organization/organization_data_retention.rbi +106 -0
  110. data/rbi/openai/models/admin/organization/organization_spend_alert.rbi +225 -0
  111. data/rbi/openai/models/admin/organization/organization_spend_alert_deleted.rbi +58 -0
  112. data/rbi/openai/models/admin/organization/projects/data_retention_retrieve_params.rbi +44 -0
  113. data/rbi/openai/models/admin/organization/projects/data_retention_update_params.rbi +119 -0
  114. data/rbi/openai/models/admin/organization/projects/group_retrieve_params.rbi +115 -0
  115. data/rbi/openai/models/admin/organization/projects/groups/role_list_response.rbi +58 -0
  116. data/rbi/openai/models/admin/organization/projects/groups/role_retrieve_params.rbi +64 -0
  117. data/rbi/openai/models/admin/organization/projects/groups/role_retrieve_response.rbi +188 -0
  118. data/rbi/openai/models/admin/organization/projects/hosted_tool_permission_retrieve_params.rbi +44 -0
  119. data/rbi/openai/models/admin/organization/projects/hosted_tool_permission_update_params.rbi +330 -0
  120. data/rbi/openai/models/admin/organization/projects/model_permission_delete_params.rbi +44 -0
  121. data/rbi/openai/models/admin/organization/projects/model_permission_retrieve_params.rbi +44 -0
  122. data/rbi/openai/models/admin/organization/projects/model_permission_update_params.rbi +107 -0
  123. data/rbi/openai/models/admin/organization/projects/project_data_retention.rbi +118 -0
  124. data/rbi/openai/models/admin/organization/projects/project_group.rbi +44 -3
  125. data/rbi/openai/models/admin/organization/projects/project_hosted_tool_permissions.rbi +281 -0
  126. data/rbi/openai/models/admin/organization/projects/project_model_permissions.rbi +106 -0
  127. data/rbi/openai/models/admin/organization/projects/project_model_permissions_deleted.rbi +50 -0
  128. data/rbi/openai/models/admin/organization/projects/project_spend_alert.rbi +227 -0
  129. data/rbi/openai/models/admin/organization/projects/project_spend_alert_deleted.rbi +59 -0
  130. data/rbi/openai/models/admin/organization/projects/role_retrieve_params.rbi +52 -0
  131. data/rbi/openai/models/admin/organization/projects/service_account_update_params.rbi +126 -0
  132. data/rbi/openai/models/admin/organization/projects/spend_alert_create_params.rbi +220 -0
  133. data/rbi/openai/models/admin/organization/projects/spend_alert_delete_params.rbi +52 -0
  134. data/rbi/openai/models/admin/organization/projects/spend_alert_list_params.rbi +146 -0
  135. data/rbi/openai/models/admin/organization/projects/spend_alert_update_params.rbi +226 -0
  136. data/rbi/openai/models/admin/organization/projects/users/role_list_response.rbi +58 -0
  137. data/rbi/openai/models/admin/organization/projects/users/role_retrieve_params.rbi +59 -0
  138. data/rbi/openai/models/admin/organization/projects/users/role_retrieve_response.rbi +188 -0
  139. data/rbi/openai/models/admin/organization/role_retrieve_params.rbi +42 -0
  140. data/rbi/openai/models/admin/organization/spend_alert_create_params.rbi +212 -0
  141. data/rbi/openai/models/admin/organization/spend_alert_delete_params.rbi +42 -0
  142. data/rbi/openai/models/admin/organization/spend_alert_list_params.rbi +138 -0
  143. data/rbi/openai/models/admin/organization/spend_alert_update_params.rbi +218 -0
  144. data/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi +186 -0
  145. data/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi +186 -0
  146. data/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi +186 -0
  147. data/rbi/openai/models/admin/organization/usage_completions_response.rbi +186 -0
  148. data/rbi/openai/models/admin/organization/usage_costs_response.rbi +186 -0
  149. data/rbi/openai/models/admin/organization/usage_embeddings_response.rbi +186 -0
  150. data/rbi/openai/models/admin/organization/usage_file_search_calls_params.rbi +284 -0
  151. data/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi +1225 -0
  152. data/rbi/openai/models/admin/organization/usage_images_response.rbi +186 -0
  153. data/rbi/openai/models/admin/organization/usage_moderations_response.rbi +186 -0
  154. data/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi +186 -0
  155. data/rbi/openai/models/admin/organization/usage_web_search_calls_params.rbi +360 -0
  156. data/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi +1225 -0
  157. data/rbi/openai/models/admin/organization/users/role_list_response.rbi +58 -0
  158. data/rbi/openai/models/admin/organization/users/role_retrieve_params.rbi +52 -0
  159. data/rbi/openai/models/admin/organization/users/role_retrieve_response.rbi +186 -0
  160. data/rbi/openai/models/conversations/conversation_create_params.rbi +3 -0
  161. data/rbi/openai/models/conversations/item_create_params.rbi +3 -0
  162. data/rbi/openai/models/responses/response_input_item.rbi +27 -0
  163. data/rbi/openai/resources/admin/organization/data_retention.rbi +40 -0
  164. data/rbi/openai/resources/admin/organization/groups/roles.rbi +19 -0
  165. data/rbi/openai/resources/admin/organization/groups/users.rbi +19 -0
  166. data/rbi/openai/resources/admin/organization/groups.rbi +14 -0
  167. data/rbi/openai/resources/admin/organization/invites.rbi +2 -1
  168. data/rbi/openai/resources/admin/organization/projects/data_retention.rbi +54 -0
  169. data/rbi/openai/resources/admin/organization/projects/groups/roles.rbi +22 -0
  170. data/rbi/openai/resources/admin/organization/projects/groups.rbi +21 -0
  171. data/rbi/openai/resources/admin/organization/projects/hosted_tool_permissions.rbi +80 -0
  172. data/rbi/openai/resources/admin/organization/projects/model_permissions.rbi +73 -0
  173. data/rbi/openai/resources/admin/organization/projects/roles.rbi +17 -0
  174. data/rbi/openai/resources/admin/organization/projects/service_accounts.rbi +26 -0
  175. data/rbi/openai/resources/admin/organization/projects/spend_alerts.rbi +135 -0
  176. data/rbi/openai/resources/admin/organization/projects/users/roles.rbi +22 -0
  177. data/rbi/openai/resources/admin/organization/projects.rbi +28 -0
  178. data/rbi/openai/resources/admin/organization/roles.rbi +14 -0
  179. data/rbi/openai/resources/admin/organization/spend_alerts.rbi +117 -0
  180. data/rbi/openai/resources/admin/organization/usage.rbi +116 -0
  181. data/rbi/openai/resources/admin/organization/users/roles.rbi +19 -0
  182. data/rbi/openai/resources/admin/organization.rbi +6 -0
  183. data/rbi/openai/resources/conversations/items.rbi +1 -0
  184. data/rbi/openai/resources/conversations.rbi +1 -0
  185. data/sig/openai/models/admin/organization/data_retention_retrieve_params.rbs +19 -0
  186. data/sig/openai/models/admin/organization/data_retention_update_params.rbs +47 -0
  187. data/sig/openai/models/admin/organization/group.rbs +15 -4
  188. data/sig/openai/models/admin/organization/group_retrieve_params.rbs +27 -0
  189. data/sig/openai/models/admin/organization/groups/role_list_response.rbs +21 -0
  190. data/sig/openai/models/admin/organization/groups/role_retrieve_params.rbs +34 -0
  191. data/sig/openai/models/admin/organization/groups/role_retrieve_response.rbs +97 -0
  192. data/sig/openai/models/admin/organization/groups/user_retrieve_params.rbs +34 -0
  193. data/sig/openai/models/admin/organization/groups/user_retrieve_response.rbs +62 -0
  194. data/sig/openai/models/admin/organization/organization_data_retention.rbs +48 -0
  195. data/sig/openai/models/admin/organization/organization_spend_alert.rbs +98 -0
  196. data/sig/openai/models/admin/organization/organization_spend_alert_deleted.rbs +36 -0
  197. data/sig/openai/models/admin/organization/projects/data_retention_retrieve_params.rbs +29 -0
  198. data/sig/openai/models/admin/organization/projects/data_retention_update_params.rbs +58 -0
  199. data/sig/openai/models/admin/organization/projects/group_retrieve_params.rbs +57 -0
  200. data/sig/openai/models/admin/organization/projects/groups/role_list_response.rbs +21 -0
  201. data/sig/openai/models/admin/organization/projects/groups/role_retrieve_params.rbs +40 -0
  202. data/sig/openai/models/admin/organization/projects/groups/role_retrieve_response.rbs +99 -0
  203. data/sig/openai/models/admin/organization/projects/hosted_tool_permission_retrieve_params.rbs +29 -0
  204. data/sig/openai/models/admin/organization/projects/hosted_tool_permission_update_params.rbs +107 -0
  205. data/sig/openai/models/admin/organization/projects/model_permission_delete_params.rbs +29 -0
  206. data/sig/openai/models/admin/organization/projects/model_permission_retrieve_params.rbs +29 -0
  207. data/sig/openai/models/admin/organization/projects/model_permission_update_params.rbs +53 -0
  208. data/sig/openai/models/admin/organization/projects/project_data_retention.rbs +54 -0
  209. data/sig/openai/models/admin/organization/projects/project_group.rbs +15 -4
  210. data/sig/openai/models/admin/organization/projects/project_hosted_tool_permissions.rbs +98 -0
  211. data/sig/openai/models/admin/organization/projects/project_model_permissions.rbs +49 -0
  212. data/sig/openai/models/admin/organization/projects/project_model_permissions_deleted.rbs +30 -0
  213. data/sig/openai/models/admin/organization/projects/project_spend_alert.rbs +100 -0
  214. data/sig/openai/models/admin/organization/projects/project_spend_alert_deleted.rbs +38 -0
  215. data/sig/openai/models/admin/organization/projects/role_retrieve_params.rbs +34 -0
  216. data/sig/openai/models/admin/organization/projects/service_account_update_params.rbs +64 -0
  217. data/sig/openai/models/admin/organization/projects/spend_alert_create_params.rbs +99 -0
  218. data/sig/openai/models/admin/organization/projects/spend_alert_delete_params.rbs +34 -0
  219. data/sig/openai/models/admin/organization/projects/spend_alert_list_params.rbs +73 -0
  220. data/sig/openai/models/admin/organization/projects/spend_alert_update_params.rbs +104 -0
  221. data/sig/openai/models/admin/organization/projects/users/role_list_response.rbs +21 -0
  222. data/sig/openai/models/admin/organization/projects/users/role_retrieve_params.rbs +40 -0
  223. data/sig/openai/models/admin/organization/projects/users/role_retrieve_response.rbs +99 -0
  224. data/sig/openai/models/admin/organization/role_retrieve_params.rbs +27 -0
  225. data/sig/openai/models/admin/organization/spend_alert_create_params.rbs +92 -0
  226. data/sig/openai/models/admin/organization/spend_alert_delete_params.rbs +27 -0
  227. data/sig/openai/models/admin/organization/spend_alert_list_params.rbs +66 -0
  228. data/sig/openai/models/admin/organization/spend_alert_update_params.rbs +97 -0
  229. data/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +96 -0
  230. data/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +96 -0
  231. data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +96 -0
  232. data/sig/openai/models/admin/organization/usage_completions_response.rbs +96 -0
  233. data/sig/openai/models/admin/organization/usage_costs_response.rbs +96 -0
  234. data/sig/openai/models/admin/organization/usage_embeddings_response.rbs +96 -0
  235. data/sig/openai/models/admin/organization/usage_file_search_calls_params.rbs +123 -0
  236. data/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs +628 -0
  237. data/sig/openai/models/admin/organization/usage_images_response.rbs +96 -0
  238. data/sig/openai/models/admin/organization/usage_moderations_response.rbs +96 -0
  239. data/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +96 -0
  240. data/sig/openai/models/admin/organization/usage_web_search_calls_params.rbs +145 -0
  241. data/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs +628 -0
  242. data/sig/openai/models/admin/organization/users/role_list_response.rbs +21 -0
  243. data/sig/openai/models/admin/organization/users/role_retrieve_params.rbs +34 -0
  244. data/sig/openai/models/admin/organization/users/role_retrieve_response.rbs +97 -0
  245. data/sig/openai/models/responses/response_input_item.rbs +11 -0
  246. data/sig/openai/resources/admin/organization/data_retention.rbs +20 -0
  247. data/sig/openai/resources/admin/organization/groups/roles.rbs +6 -0
  248. data/sig/openai/resources/admin/organization/groups/users.rbs +6 -0
  249. data/sig/openai/resources/admin/organization/groups.rbs +5 -0
  250. data/sig/openai/resources/admin/organization/projects/data_retention.rbs +24 -0
  251. data/sig/openai/resources/admin/organization/projects/groups/roles.rbs +7 -0
  252. data/sig/openai/resources/admin/organization/projects/groups.rbs +7 -0
  253. data/sig/openai/resources/admin/organization/projects/hosted_tool_permissions.rbs +28 -0
  254. data/sig/openai/resources/admin/organization/projects/model_permissions.rbs +30 -0
  255. data/sig/openai/resources/admin/organization/projects/roles.rbs +6 -0
  256. data/sig/openai/resources/admin/organization/projects/service_accounts.rbs +8 -0
  257. data/sig/openai/resources/admin/organization/projects/spend_alerts.rbs +47 -0
  258. data/sig/openai/resources/admin/organization/projects/users/roles.rbs +7 -0
  259. data/sig/openai/resources/admin/organization/projects.rbs +8 -0
  260. data/sig/openai/resources/admin/organization/roles.rbs +5 -0
  261. data/sig/openai/resources/admin/organization/spend_alerts.rbs +41 -0
  262. data/sig/openai/resources/admin/organization/usage.rbs +29 -0
  263. data/sig/openai/resources/admin/organization/users/roles.rbs +6 -0
  264. data/sig/openai/resources/admin/organization.rbs +4 -0
  265. metadata +155 -2
@@ -31,6 +31,34 @@ module OpenAI
31
31
  )
32
32
  end
33
33
 
34
+ # Retrieves an organization role assigned to a group.
35
+ #
36
+ # @overload retrieve(role_id, group_id:, request_options: {})
37
+ #
38
+ # @param role_id [String] The ID of the organization role to retrieve for the group.
39
+ #
40
+ # @param group_id [String] The ID of the group to inspect.
41
+ #
42
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
43
+ #
44
+ # @return [OpenAI::Models::Admin::Organization::Groups::RoleRetrieveResponse]
45
+ #
46
+ # @see OpenAI::Models::Admin::Organization::Groups::RoleRetrieveParams
47
+ def retrieve(role_id, params)
48
+ parsed, options = OpenAI::Admin::Organization::Groups::RoleRetrieveParams.dump_request(params)
49
+ group_id =
50
+ parsed.delete(:group_id) do
51
+ raise ArgumentError.new("missing required path argument #{_1}")
52
+ end
53
+ @client.request(
54
+ method: :get,
55
+ path: ["organization/groups/%1$s/roles/%2$s", group_id, role_id],
56
+ model: OpenAI::Models::Admin::Organization::Groups::RoleRetrieveResponse,
57
+ security: {admin_api_key_auth: true},
58
+ options: options
59
+ )
60
+ end
61
+
34
62
  # Some parameter documentations has been truncated, see
35
63
  # {OpenAI::Models::Admin::Organization::Groups::RoleListParams} for more details.
36
64
  #
@@ -31,6 +31,34 @@ module OpenAI
31
31
  )
32
32
  end
33
33
 
34
+ # Retrieves a user in a group.
35
+ #
36
+ # @overload retrieve(user_id, group_id:, request_options: {})
37
+ #
38
+ # @param user_id [String] The ID of the user to retrieve from the group.
39
+ #
40
+ # @param group_id [String] The ID of the group to inspect.
41
+ #
42
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
43
+ #
44
+ # @return [OpenAI::Models::Admin::Organization::Groups::UserRetrieveResponse]
45
+ #
46
+ # @see OpenAI::Models::Admin::Organization::Groups::UserRetrieveParams
47
+ def retrieve(user_id, params)
48
+ parsed, options = OpenAI::Admin::Organization::Groups::UserRetrieveParams.dump_request(params)
49
+ group_id =
50
+ parsed.delete(:group_id) do
51
+ raise ArgumentError.new("missing required path argument #{_1}")
52
+ end
53
+ @client.request(
54
+ method: :get,
55
+ path: ["organization/groups/%1$s/users/%2$s", group_id, user_id],
56
+ model: OpenAI::Models::Admin::Organization::Groups::UserRetrieveResponse,
57
+ security: {admin_api_key_auth: true},
58
+ options: options
59
+ )
60
+ end
61
+
34
62
  # Some parameter documentations has been truncated, see
35
63
  # {OpenAI::Models::Admin::Organization::Groups::UserListParams} for more details.
36
64
  #
@@ -34,6 +34,27 @@ module OpenAI
34
34
  )
35
35
  end
36
36
 
37
+ # Retrieves a group.
38
+ #
39
+ # @overload retrieve(group_id, request_options: {})
40
+ #
41
+ # @param group_id [String] The ID of the group to retrieve.
42
+ #
43
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
44
+ #
45
+ # @return [OpenAI::Models::Admin::Organization::Group]
46
+ #
47
+ # @see OpenAI::Models::Admin::Organization::GroupRetrieveParams
48
+ def retrieve(group_id, params = {})
49
+ @client.request(
50
+ method: :get,
51
+ path: ["organization/groups/%1$s", group_id],
52
+ model: OpenAI::Admin::Organization::Group,
53
+ security: {admin_api_key_auth: true},
54
+ options: params[:request_options]
55
+ )
56
+ end
57
+
37
58
  # Updates a group's information.
38
59
  #
39
60
  # @overload update(group_id, name:, request_options: {})
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Admin
6
+ class Organization
7
+ class Projects
8
+ class DataRetention
9
+ # Retrieves project data retention controls.
10
+ #
11
+ # @overload retrieve(project_id, request_options: {})
12
+ #
13
+ # @param project_id [String] The ID of the project to inspect.
14
+ #
15
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
16
+ #
17
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectDataRetention]
18
+ #
19
+ # @see OpenAI::Models::Admin::Organization::Projects::DataRetentionRetrieveParams
20
+ def retrieve(project_id, params = {})
21
+ @client.request(
22
+ method: :get,
23
+ path: ["organization/projects/%1$s/data_retention", project_id],
24
+ model: OpenAI::Admin::Organization::Projects::ProjectDataRetention,
25
+ security: {admin_api_key_auth: true},
26
+ options: params[:request_options]
27
+ )
28
+ end
29
+
30
+ # Updates project data retention controls.
31
+ #
32
+ # @overload update(project_id, retention_type:, request_options: {})
33
+ #
34
+ # @param project_id [String] The ID of the project to update.
35
+ #
36
+ # @param retention_type [Symbol, OpenAI::Models::Admin::Organization::Projects::DataRetentionUpdateParams::RetentionType] The desired project data retention type.
37
+ #
38
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
39
+ #
40
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectDataRetention]
41
+ #
42
+ # @see OpenAI::Models::Admin::Organization::Projects::DataRetentionUpdateParams
43
+ def update(project_id, params)
44
+ parsed, options = OpenAI::Admin::Organization::Projects::DataRetentionUpdateParams.dump_request(params)
45
+ @client.request(
46
+ method: :post,
47
+ path: ["organization/projects/%1$s/data_retention", project_id],
48
+ body: parsed,
49
+ model: OpenAI::Admin::Organization::Projects::ProjectDataRetention,
50
+ security: {admin_api_key_auth: true},
51
+ options: options
52
+ )
53
+ end
54
+
55
+ # @api private
56
+ #
57
+ # @param client [OpenAI::Client]
58
+ def initialize(client:)
59
+ @client = client
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -38,6 +38,40 @@ module OpenAI
38
38
  )
39
39
  end
40
40
 
41
+ # Retrieves a project role assigned to a group.
42
+ #
43
+ # @overload retrieve(role_id, project_id:, group_id:, request_options: {})
44
+ #
45
+ # @param role_id [String] The ID of the project role to retrieve for the group.
46
+ #
47
+ # @param project_id [String] The ID of the project to inspect.
48
+ #
49
+ # @param group_id [String] The ID of the group to inspect.
50
+ #
51
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
52
+ #
53
+ # @return [OpenAI::Models::Admin::Organization::Projects::Groups::RoleRetrieveResponse]
54
+ #
55
+ # @see OpenAI::Models::Admin::Organization::Projects::Groups::RoleRetrieveParams
56
+ def retrieve(role_id, params)
57
+ parsed, options = OpenAI::Admin::Organization::Projects::Groups::RoleRetrieveParams.dump_request(params)
58
+ project_id =
59
+ parsed.delete(:project_id) do
60
+ raise ArgumentError.new("missing required path argument #{_1}")
61
+ end
62
+ group_id =
63
+ parsed.delete(:group_id) do
64
+ raise ArgumentError.new("missing required path argument #{_1}")
65
+ end
66
+ @client.request(
67
+ method: :get,
68
+ path: ["projects/%1$s/groups/%2$s/roles/%3$s", project_id, group_id, role_id],
69
+ model: OpenAI::Models::Admin::Organization::Projects::Groups::RoleRetrieveResponse,
70
+ security: {admin_api_key_auth: true},
71
+ options: options
72
+ )
73
+ end
74
+
41
75
  # Some parameter documentations has been truncated, see
42
76
  # {OpenAI::Models::Admin::Organization::Projects::Groups::RoleListParams} for more
43
77
  # details.
@@ -36,6 +36,38 @@ module OpenAI
36
36
  )
37
37
  end
38
38
 
39
+ # Retrieves a project's group.
40
+ #
41
+ # @overload retrieve(group_id, project_id:, group_type: nil, request_options: {})
42
+ #
43
+ # @param group_id [String] Path param: The ID of the group to retrieve.
44
+ #
45
+ # @param project_id [String] Path param: The ID of the project to inspect.
46
+ #
47
+ # @param group_type [Symbol, OpenAI::Models::Admin::Organization::Projects::GroupRetrieveParams::GroupType] Query param: The type of group to retrieve.
48
+ #
49
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
50
+ #
51
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectGroup]
52
+ #
53
+ # @see OpenAI::Models::Admin::Organization::Projects::GroupRetrieveParams
54
+ def retrieve(group_id, params)
55
+ parsed, options = OpenAI::Admin::Organization::Projects::GroupRetrieveParams.dump_request(params)
56
+ query = OpenAI::Internal::Util.encode_query_params(parsed)
57
+ project_id =
58
+ parsed.delete(:project_id) do
59
+ raise ArgumentError.new("missing required path argument #{_1}")
60
+ end
61
+ @client.request(
62
+ method: :get,
63
+ path: ["organization/projects/%1$s/groups/%2$s", project_id, group_id],
64
+ query: query,
65
+ model: OpenAI::Admin::Organization::Projects::ProjectGroup,
66
+ security: {admin_api_key_auth: true},
67
+ options: options
68
+ )
69
+ end
70
+
39
71
  # Some parameter documentations has been truncated, see
40
72
  # {OpenAI::Models::Admin::Organization::Projects::GroupListParams} for more
41
73
  # details.
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Admin
6
+ class Organization
7
+ class Projects
8
+ class HostedToolPermissions
9
+ # Returns hosted tool permissions for a project.
10
+ #
11
+ # @overload retrieve(project_id, request_options: {})
12
+ #
13
+ # @param project_id [String] The ID of the project.
14
+ #
15
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
16
+ #
17
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectHostedToolPermissions]
18
+ #
19
+ # @see OpenAI::Models::Admin::Organization::Projects::HostedToolPermissionRetrieveParams
20
+ def retrieve(project_id, params = {})
21
+ @client.request(
22
+ method: :get,
23
+ path: ["organization/projects/%1$s/hosted_tool_permissions", project_id],
24
+ model: OpenAI::Admin::Organization::Projects::ProjectHostedToolPermissions,
25
+ security: {admin_api_key_auth: true},
26
+ options: params[:request_options]
27
+ )
28
+ end
29
+
30
+ # Updates hosted tool permissions for a project.
31
+ #
32
+ # @overload update(project_id, code_interpreter: nil, file_search: nil, image_generation: nil, mcp: nil, web_search: nil, request_options: {})
33
+ #
34
+ # @param project_id [String] The ID of the project.
35
+ #
36
+ # @param code_interpreter [OpenAI::Models::Admin::Organization::Projects::HostedToolPermissionUpdateParams::CodeInterpreter, nil] The code interpreter permission update.
37
+ #
38
+ # @param file_search [OpenAI::Models::Admin::Organization::Projects::HostedToolPermissionUpdateParams::FileSearch, nil] The file search permission update.
39
+ #
40
+ # @param image_generation [OpenAI::Models::Admin::Organization::Projects::HostedToolPermissionUpdateParams::ImageGeneration, nil] The image generation permission update.
41
+ #
42
+ # @param mcp [OpenAI::Models::Admin::Organization::Projects::HostedToolPermissionUpdateParams::Mcp, nil] The MCP permission update.
43
+ #
44
+ # @param web_search [OpenAI::Models::Admin::Organization::Projects::HostedToolPermissionUpdateParams::WebSearch, nil] The web search permission update.
45
+ #
46
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
47
+ #
48
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectHostedToolPermissions]
49
+ #
50
+ # @see OpenAI::Models::Admin::Organization::Projects::HostedToolPermissionUpdateParams
51
+ def update(project_id, params = {})
52
+ parsed, options =
53
+ OpenAI::Admin::Organization::Projects::HostedToolPermissionUpdateParams.dump_request(params)
54
+ @client.request(
55
+ method: :post,
56
+ path: ["organization/projects/%1$s/hosted_tool_permissions", project_id],
57
+ body: parsed,
58
+ model: OpenAI::Admin::Organization::Projects::ProjectHostedToolPermissions,
59
+ security: {admin_api_key_auth: true},
60
+ options: options
61
+ )
62
+ end
63
+
64
+ # @api private
65
+ #
66
+ # @param client [OpenAI::Client]
67
+ def initialize(client:)
68
+ @client = client
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,89 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Admin
6
+ class Organization
7
+ class Projects
8
+ class ModelPermissions
9
+ # Returns model permissions for a project.
10
+ #
11
+ # @overload retrieve(project_id, request_options: {})
12
+ #
13
+ # @param project_id [String] The ID of the project.
14
+ #
15
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
16
+ #
17
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectModelPermissions]
18
+ #
19
+ # @see OpenAI::Models::Admin::Organization::Projects::ModelPermissionRetrieveParams
20
+ def retrieve(project_id, params = {})
21
+ @client.request(
22
+ method: :get,
23
+ path: ["organization/projects/%1$s/model_permissions", project_id],
24
+ model: OpenAI::Admin::Organization::Projects::ProjectModelPermissions,
25
+ security: {admin_api_key_auth: true},
26
+ options: params[:request_options]
27
+ )
28
+ end
29
+
30
+ # Updates model permissions for a project.
31
+ #
32
+ # @overload update(project_id, mode:, model_ids:, request_options: {})
33
+ #
34
+ # @param project_id [String] The ID of the project.
35
+ #
36
+ # @param mode [Symbol, OpenAI::Models::Admin::Organization::Projects::ModelPermissionUpdateParams::Mode] The model permissions mode to apply.
37
+ #
38
+ # @param model_ids [Array<String>] The model IDs included in this permissions policy.
39
+ #
40
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
41
+ #
42
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectModelPermissions]
43
+ #
44
+ # @see OpenAI::Models::Admin::Organization::Projects::ModelPermissionUpdateParams
45
+ def update(project_id, params)
46
+ parsed, options = OpenAI::Admin::Organization::Projects::ModelPermissionUpdateParams.dump_request(params)
47
+ @client.request(
48
+ method: :post,
49
+ path: ["organization/projects/%1$s/model_permissions", project_id],
50
+ body: parsed,
51
+ model: OpenAI::Admin::Organization::Projects::ProjectModelPermissions,
52
+ security: {admin_api_key_auth: true},
53
+ options: options
54
+ )
55
+ end
56
+
57
+ # Deletes model permissions for a project.
58
+ #
59
+ # @overload delete(project_id, request_options: {})
60
+ #
61
+ # @param project_id [String] The ID of the project.
62
+ #
63
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
64
+ #
65
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectModelPermissionsDeleted]
66
+ #
67
+ # @see OpenAI::Models::Admin::Organization::Projects::ModelPermissionDeleteParams
68
+ def delete(project_id, params = {})
69
+ @client.request(
70
+ method: :delete,
71
+ path: ["organization/projects/%1$s/model_permissions", project_id],
72
+ model: OpenAI::Admin::Organization::Projects::ProjectModelPermissionsDeleted,
73
+ security: {admin_api_key_auth: true},
74
+ options: params[:request_options]
75
+ )
76
+ end
77
+
78
+ # @api private
79
+ #
80
+ # @param client [OpenAI::Client]
81
+ def initialize(client:)
82
+ @client = client
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
@@ -35,6 +35,34 @@ module OpenAI
35
35
  )
36
36
  end
37
37
 
38
+ # Retrieves a project role.
39
+ #
40
+ # @overload retrieve(role_id, project_id:, request_options: {})
41
+ #
42
+ # @param role_id [String] The ID of the role to retrieve.
43
+ #
44
+ # @param project_id [String] The ID of the project.
45
+ #
46
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
47
+ #
48
+ # @return [OpenAI::Models::Admin::Organization::Role]
49
+ #
50
+ # @see OpenAI::Models::Admin::Organization::Projects::RoleRetrieveParams
51
+ def retrieve(role_id, params)
52
+ parsed, options = OpenAI::Admin::Organization::Projects::RoleRetrieveParams.dump_request(params)
53
+ project_id =
54
+ parsed.delete(:project_id) do
55
+ raise ArgumentError.new("missing required path argument #{_1}")
56
+ end
57
+ @client.request(
58
+ method: :get,
59
+ path: ["projects/%1$s/roles/%2$s", project_id, role_id],
60
+ model: OpenAI::Admin::Organization::Role,
61
+ security: {admin_api_key_auth: true},
62
+ options: options
63
+ )
64
+ end
65
+
38
66
  # Updates an existing project role.
39
67
  #
40
68
  # @overload update(role_id, project_id:, description: nil, permissions: nil, role_name: nil, request_options: {})
@@ -61,6 +61,39 @@ module OpenAI
61
61
  )
62
62
  end
63
63
 
64
+ # Updates a service account in the project.
65
+ #
66
+ # @overload update(service_account_id, project_id:, name: nil, role: nil, request_options: {})
67
+ #
68
+ # @param service_account_id [String] Path param: The ID of the service account.
69
+ #
70
+ # @param project_id [String] Path param: The ID of the project.
71
+ #
72
+ # @param name [String] Body param: The updated service account name.
73
+ #
74
+ # @param role [Symbol, OpenAI::Models::Admin::Organization::Projects::ServiceAccountUpdateParams::Role] Body param: The updated service account role.
75
+ #
76
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
77
+ #
78
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectServiceAccount]
79
+ #
80
+ # @see OpenAI::Models::Admin::Organization::Projects::ServiceAccountUpdateParams
81
+ def update(service_account_id, params)
82
+ parsed, options = OpenAI::Admin::Organization::Projects::ServiceAccountUpdateParams.dump_request(params)
83
+ project_id =
84
+ parsed.delete(:project_id) do
85
+ raise ArgumentError.new("missing required path argument #{_1}")
86
+ end
87
+ @client.request(
88
+ method: :post,
89
+ path: ["organization/projects/%1$s/service_accounts/%2$s", project_id, service_account_id],
90
+ body: parsed,
91
+ model: OpenAI::Admin::Organization::Projects::ProjectServiceAccount,
92
+ security: {admin_api_key_auth: true},
93
+ options: options
94
+ )
95
+ end
96
+
64
97
  # Some parameter documentations has been truncated, see
65
98
  # {OpenAI::Models::Admin::Organization::Projects::ServiceAccountListParams} for
66
99
  # more details.
@@ -0,0 +1,153 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Admin
6
+ class Organization
7
+ class Projects
8
+ class SpendAlerts
9
+ # Creates a project spend alert.
10
+ #
11
+ # @overload create(project_id, currency:, interval:, notification_channel:, threshold_amount:, request_options: {})
12
+ #
13
+ # @param project_id [String] The ID of the project to update.
14
+ #
15
+ # @param currency [Symbol, OpenAI::Models::Admin::Organization::Projects::SpendAlertCreateParams::Currency] The currency for the threshold amount.
16
+ #
17
+ # @param interval [Symbol, OpenAI::Models::Admin::Organization::Projects::SpendAlertCreateParams::Interval] The time interval for evaluating spend against the threshold.
18
+ #
19
+ # @param notification_channel [OpenAI::Models::Admin::Organization::Projects::SpendAlertCreateParams::NotificationChannel] Email notification settings for a spend alert.
20
+ #
21
+ # @param threshold_amount [Integer] The alert threshold amount, in cents.
22
+ #
23
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
24
+ #
25
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectSpendAlert]
26
+ #
27
+ # @see OpenAI::Models::Admin::Organization::Projects::SpendAlertCreateParams
28
+ def create(project_id, params)
29
+ parsed, options = OpenAI::Admin::Organization::Projects::SpendAlertCreateParams.dump_request(params)
30
+ @client.request(
31
+ method: :post,
32
+ path: ["organization/projects/%1$s/spend_alerts", project_id],
33
+ body: parsed,
34
+ model: OpenAI::Admin::Organization::Projects::ProjectSpendAlert,
35
+ security: {admin_api_key_auth: true},
36
+ options: options
37
+ )
38
+ end
39
+
40
+ # Updates a project spend alert.
41
+ #
42
+ # @overload update(alert_id, project_id:, currency:, interval:, notification_channel:, threshold_amount:, request_options: {})
43
+ #
44
+ # @param alert_id [String] Path param: The ID of the spend alert to update.
45
+ #
46
+ # @param project_id [String] Path param: The ID of the project to update.
47
+ #
48
+ # @param currency [Symbol, OpenAI::Models::Admin::Organization::Projects::SpendAlertUpdateParams::Currency] Body param: The currency for the threshold amount.
49
+ #
50
+ # @param interval [Symbol, OpenAI::Models::Admin::Organization::Projects::SpendAlertUpdateParams::Interval] Body param: The time interval for evaluating spend against the threshold.
51
+ #
52
+ # @param notification_channel [OpenAI::Models::Admin::Organization::Projects::SpendAlertUpdateParams::NotificationChannel] Body param: Email notification settings for a spend alert.
53
+ #
54
+ # @param threshold_amount [Integer] Body param: The alert threshold amount, in cents.
55
+ #
56
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
57
+ #
58
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectSpendAlert]
59
+ #
60
+ # @see OpenAI::Models::Admin::Organization::Projects::SpendAlertUpdateParams
61
+ def update(alert_id, params)
62
+ parsed, options = OpenAI::Admin::Organization::Projects::SpendAlertUpdateParams.dump_request(params)
63
+ project_id =
64
+ parsed.delete(:project_id) do
65
+ raise ArgumentError.new("missing required path argument #{_1}")
66
+ end
67
+ @client.request(
68
+ method: :post,
69
+ path: ["organization/projects/%1$s/spend_alerts/%2$s", project_id, alert_id],
70
+ body: parsed,
71
+ model: OpenAI::Admin::Organization::Projects::ProjectSpendAlert,
72
+ security: {admin_api_key_auth: true},
73
+ options: options
74
+ )
75
+ end
76
+
77
+ # Some parameter documentations has been truncated, see
78
+ # {OpenAI::Models::Admin::Organization::Projects::SpendAlertListParams} for more
79
+ # details.
80
+ #
81
+ # Lists project spend alerts.
82
+ #
83
+ # @overload list(project_id, after: nil, before: nil, limit: nil, order: nil, request_options: {})
84
+ #
85
+ # @param project_id [String] The ID of the project to inspect.
86
+ #
87
+ # @param after [String] Cursor for pagination. Provide the ID of the last spend alert from the previous
88
+ #
89
+ # @param before [String] Cursor for pagination. Provide the ID of the first spend alert from the previous
90
+ #
91
+ # @param limit [Integer] A limit on the number of spend alerts to return. Defaults to 20.
92
+ #
93
+ # @param order [Symbol, OpenAI::Models::Admin::Organization::Projects::SpendAlertListParams::Order] Sort order for the returned spend alerts.
94
+ #
95
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
96
+ #
97
+ # @return [OpenAI::Internal::ConversationCursorPage<OpenAI::Models::Admin::Organization::Projects::ProjectSpendAlert>]
98
+ #
99
+ # @see OpenAI::Models::Admin::Organization::Projects::SpendAlertListParams
100
+ def list(project_id, params = {})
101
+ parsed, options = OpenAI::Admin::Organization::Projects::SpendAlertListParams.dump_request(params)
102
+ query = OpenAI::Internal::Util.encode_query_params(parsed)
103
+ @client.request(
104
+ method: :get,
105
+ path: ["organization/projects/%1$s/spend_alerts", project_id],
106
+ query: query,
107
+ page: OpenAI::Internal::ConversationCursorPage,
108
+ model: OpenAI::Admin::Organization::Projects::ProjectSpendAlert,
109
+ security: {admin_api_key_auth: true},
110
+ options: options
111
+ )
112
+ end
113
+
114
+ # Deletes a project spend alert.
115
+ #
116
+ # @overload delete(alert_id, project_id:, request_options: {})
117
+ #
118
+ # @param alert_id [String] The ID of the spend alert to delete.
119
+ #
120
+ # @param project_id [String] The ID of the project to update.
121
+ #
122
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
123
+ #
124
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectSpendAlertDeleted]
125
+ #
126
+ # @see OpenAI::Models::Admin::Organization::Projects::SpendAlertDeleteParams
127
+ def delete(alert_id, params)
128
+ parsed, options = OpenAI::Admin::Organization::Projects::SpendAlertDeleteParams.dump_request(params)
129
+ project_id =
130
+ parsed.delete(:project_id) do
131
+ raise ArgumentError.new("missing required path argument #{_1}")
132
+ end
133
+ @client.request(
134
+ method: :delete,
135
+ path: ["organization/projects/%1$s/spend_alerts/%2$s", project_id, alert_id],
136
+ model: OpenAI::Admin::Organization::Projects::ProjectSpendAlertDeleted,
137
+ security: {admin_api_key_auth: true},
138
+ options: options
139
+ )
140
+ end
141
+
142
+ # @api private
143
+ #
144
+ # @param client [OpenAI::Client]
145
+ def initialize(client:)
146
+ @client = client
147
+ end
148
+ end
149
+ end
150
+ end
151
+ end
152
+ end
153
+ end