openai 0.71.0 → 0.73.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 (129) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/admin/organization/organization_spend_limit.rb +151 -0
  5. data/lib/openai/models/admin/organization/organization_spend_limit_deleted.rb +33 -0
  6. data/lib/openai/models/admin/organization/projects/project_spend_limit.rb +155 -0
  7. data/lib/openai/models/admin/organization/projects/project_spend_limit_deleted.rb +35 -0
  8. data/lib/openai/models/admin/organization/projects/spend_limit_delete_params.rb +26 -0
  9. data/lib/openai/models/admin/organization/projects/spend_limit_retrieve_params.rb +26 -0
  10. data/lib/openai/models/admin/organization/projects/spend_limit_update_params.rb +77 -0
  11. data/lib/openai/models/admin/organization/spend_limit_delete_params.rb +18 -0
  12. data/lib/openai/models/admin/organization/spend_limit_retrieve_params.rb +18 -0
  13. data/lib/openai/models/admin/organization/spend_limit_update_params.rb +67 -0
  14. data/lib/openai/models/audio/transcription.rb +10 -1
  15. data/lib/openai/models/audio/transcription_create_params.rb +24 -5
  16. data/lib/openai/models/audio/transcription_language.rb +20 -0
  17. data/lib/openai/models/audio/transcription_text_done_event.rb +10 -1
  18. data/lib/openai/models/audio_model.rb +1 -0
  19. data/lib/openai/models/beta/beta_response.rb +12 -6
  20. data/lib/openai/models/beta/beta_response_error.rb +1 -0
  21. data/lib/openai/models/beta/beta_response_text_config.rb +4 -2
  22. data/lib/openai/models/beta/beta_responses_client_event.rb +12 -6
  23. data/lib/openai/models/beta/response_create_params.rb +12 -6
  24. data/lib/openai/models/beta/responses/input_token_count_params.rb +12 -4
  25. data/lib/openai/models/chat/completion_create_params.rb +8 -6
  26. data/lib/openai/models/realtime/audio_transcription.rb +35 -8
  27. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +10 -1
  28. data/lib/openai/models/reasoning.rb +8 -2
  29. data/lib/openai/models/responses/input_token_count_params.rb +4 -2
  30. data/lib/openai/models/responses/response.rb +4 -4
  31. data/lib/openai/models/responses/response_create_params.rb +4 -4
  32. data/lib/openai/models/responses/response_error.rb +1 -0
  33. data/lib/openai/models/responses/response_text_config.rb +4 -2
  34. data/lib/openai/models/responses/responses_client_event.rb +4 -4
  35. data/lib/openai/models/webhooks/live_call_incoming_webhook_event.rb +121 -0
  36. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +6 -3
  37. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +9 -2
  38. data/lib/openai/resources/admin/organization/projects/spend_limit.rb +95 -0
  39. data/lib/openai/resources/admin/organization/projects.rb +4 -0
  40. data/lib/openai/resources/admin/organization/spend_limit.rb +86 -0
  41. data/lib/openai/resources/admin/organization.rb +4 -0
  42. data/lib/openai/resources/audio/transcriptions.rb +12 -4
  43. data/lib/openai/resources/beta/responses.rb +4 -4
  44. data/lib/openai/resources/chat/completions.rb +4 -4
  45. data/lib/openai/resources/responses.rb +4 -4
  46. data/lib/openai/resources/webhooks.rb +1 -1
  47. data/lib/openai/version.rb +1 -1
  48. data/lib/openai.rb +14 -0
  49. data/rbi/openai/models/admin/organization/organization_spend_limit.rbi +278 -0
  50. data/rbi/openai/models/admin/organization/organization_spend_limit_deleted.rbi +48 -0
  51. data/rbi/openai/models/admin/organization/projects/project_spend_limit.rbi +280 -0
  52. data/rbi/openai/models/admin/organization/projects/project_spend_limit_deleted.rbi +49 -0
  53. data/rbi/openai/models/admin/organization/projects/spend_limit_delete_params.rbi +44 -0
  54. data/rbi/openai/models/admin/organization/projects/spend_limit_retrieve_params.rbi +44 -0
  55. data/rbi/openai/models/admin/organization/projects/spend_limit_update_params.rbi +149 -0
  56. data/rbi/openai/models/admin/organization/spend_limit_delete_params.rbi +34 -0
  57. data/rbi/openai/models/admin/organization/spend_limit_retrieve_params.rbi +34 -0
  58. data/rbi/openai/models/admin/organization/spend_limit_update_params.rbi +141 -0
  59. data/rbi/openai/models/audio/transcription.rbi +19 -0
  60. data/rbi/openai/models/audio/transcription_create_params.rbi +31 -3
  61. data/rbi/openai/models/audio/transcription_language.rbi +33 -0
  62. data/rbi/openai/models/audio/transcription_text_done_event.rbi +19 -0
  63. data/rbi/openai/models/audio_model.rbi +2 -0
  64. data/rbi/openai/models/beta/beta_response.rbi +18 -15
  65. data/rbi/openai/models/beta/beta_response_error.rbi +5 -0
  66. data/rbi/openai/models/beta/beta_response_text_config.rbi +6 -3
  67. data/rbi/openai/models/beta/beta_responses_client_event.rbi +18 -15
  68. data/rbi/openai/models/beta/response_create_params.rbi +18 -15
  69. data/rbi/openai/models/beta/responses/input_token_count_params.rbi +18 -6
  70. data/rbi/openai/models/chat/completion_create_params.rbi +12 -15
  71. data/rbi/openai/models/realtime/audio_transcription.rbi +50 -9
  72. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +19 -0
  73. data/rbi/openai/models/reasoning.rbi +12 -3
  74. data/rbi/openai/models/responses/input_token_count_params.rbi +6 -3
  75. data/rbi/openai/models/responses/response.rbi +6 -12
  76. data/rbi/openai/models/responses/response_create_params.rbi +6 -12
  77. data/rbi/openai/models/responses/response_error.rbi +5 -0
  78. data/rbi/openai/models/responses/response_text_config.rbi +6 -3
  79. data/rbi/openai/models/responses/responses_client_event.rbi +6 -12
  80. data/rbi/openai/models/webhooks/live_call_incoming_webhook_event.rbi +222 -0
  81. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +7 -3
  82. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  83. data/rbi/openai/resources/admin/organization/projects/spend_limit.rbi +78 -0
  84. data/rbi/openai/resources/admin/organization/projects.rbi +7 -0
  85. data/rbi/openai/resources/admin/organization/spend_limit.rbi +57 -0
  86. data/rbi/openai/resources/admin/organization.rbi +3 -0
  87. data/rbi/openai/resources/audio/transcriptions.rbi +20 -2
  88. data/rbi/openai/resources/beta/responses.rbi +4 -4
  89. data/rbi/openai/resources/chat/completions.rbi +8 -6
  90. data/rbi/openai/resources/responses.rbi +4 -4
  91. data/rbi/openai/resources/webhooks.rbi +1 -0
  92. data/sig/openai/models/admin/organization/organization_spend_limit.rbs +94 -0
  93. data/sig/openai/models/admin/organization/organization_spend_limit_deleted.rbs +28 -0
  94. data/sig/openai/models/admin/organization/projects/project_spend_limit.rbs +96 -0
  95. data/sig/openai/models/admin/organization/projects/project_spend_limit_deleted.rbs +30 -0
  96. data/sig/openai/models/admin/organization/projects/spend_limit_delete_params.rbs +29 -0
  97. data/sig/openai/models/admin/organization/projects/spend_limit_retrieve_params.rbs +29 -0
  98. data/sig/openai/models/admin/organization/projects/spend_limit_update_params.rbs +67 -0
  99. data/sig/openai/models/admin/organization/spend_limit_delete_params.rbs +19 -0
  100. data/sig/openai/models/admin/organization/spend_limit_retrieve_params.rbs +19 -0
  101. data/sig/openai/models/admin/organization/spend_limit_update_params.rbs +60 -0
  102. data/sig/openai/models/audio/transcription.rbs +9 -0
  103. data/sig/openai/models/audio/transcription_create_params.rbs +14 -0
  104. data/sig/openai/models/audio/transcription_language.rbs +15 -0
  105. data/sig/openai/models/audio/transcription_text_done_event.rbs +9 -0
  106. data/sig/openai/models/audio_model.rbs +2 -0
  107. data/sig/openai/models/beta/beta_response.rbs +8 -12
  108. data/sig/openai/models/beta/beta_response_error.rbs +2 -0
  109. data/sig/openai/models/beta/beta_responses_client_event.rbs +8 -12
  110. data/sig/openai/models/beta/response_create_params.rbs +8 -12
  111. data/sig/openai/models/chat/completion_create_params.rbs +8 -12
  112. data/sig/openai/models/realtime/audio_transcription.rbs +18 -0
  113. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +9 -0
  114. data/sig/openai/models/responses/response.rbs +8 -12
  115. data/sig/openai/models/responses/response_create_params.rbs +8 -12
  116. data/sig/openai/models/responses/response_error.rbs +2 -0
  117. data/sig/openai/models/responses/responses_client_event.rbs +8 -12
  118. data/sig/openai/models/webhooks/live_call_incoming_webhook_event.rbs +90 -0
  119. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  120. data/sig/openai/resources/admin/organization/projects/spend_limit.rbs +31 -0
  121. data/sig/openai/resources/admin/organization/projects.rbs +2 -0
  122. data/sig/openai/resources/admin/organization/spend_limit.rbs +26 -0
  123. data/sig/openai/resources/admin/organization.rbs +2 -0
  124. data/sig/openai/resources/audio/transcriptions.rbs +4 -0
  125. data/sig/openai/resources/beta/responses.rbs +4 -4
  126. data/sig/openai/resources/chat/completions.rbs +4 -4
  127. data/sig/openai/resources/responses.rbs +4 -4
  128. data/sig/openai/resources/webhooks.rbs +1 -0
  129. metadata +44 -2
@@ -73,7 +73,7 @@ module OpenAI
73
73
  #
74
74
  # @param presence_penalty [Float, nil] Number between -2.0 and 2.0. Positive values penalize new tokens based on
75
75
  #
76
- # @param prompt_cache_key [String] Used by OpenAI to cache responses for similar requests to optimize your cache hi
76
+ # @param prompt_cache_key [String, nil] Used by OpenAI to cache responses for similar requests to optimize your cache hi
77
77
  #
78
78
  # @param prompt_cache_options [OpenAI::Models::Chat::CompletionCreateParams::PromptCacheOptions] Options for prompt caching. Supported for `gpt-5.6` and later models. By default
79
79
  #
@@ -83,7 +83,7 @@ module OpenAI
83
83
  #
84
84
  # @param response_format [OpenAI::Models::ResponseFormatText, OpenAI::Models::ResponseFormatJSONSchema, OpenAI::Models::ResponseFormatJSONObject] An object specifying the format that the model must output.
85
85
  #
86
- # @param safety_identifier [String] A stable identifier used to help detect users of your application that may be vi
86
+ # @param safety_identifier [String, nil] A stable identifier used to help detect users of your application that may be vi
87
87
  #
88
88
  # @param seed [Integer, nil] This feature is in Beta.
89
89
  #
@@ -329,7 +329,7 @@ module OpenAI
329
329
  #
330
330
  # @param presence_penalty [Float, nil] Number between -2.0 and 2.0. Positive values penalize new tokens based on
331
331
  #
332
- # @param prompt_cache_key [String] Used by OpenAI to cache responses for similar requests to optimize your cache hi
332
+ # @param prompt_cache_key [String, nil] Used by OpenAI to cache responses for similar requests to optimize your cache hi
333
333
  #
334
334
  # @param prompt_cache_options [OpenAI::Models::Chat::CompletionCreateParams::PromptCacheOptions] Options for prompt caching. Supported for `gpt-5.6` and later models. By default
335
335
  #
@@ -339,7 +339,7 @@ module OpenAI
339
339
  #
340
340
  # @param response_format [OpenAI::Models::ResponseFormatText, OpenAI::Models::ResponseFormatJSONSchema, OpenAI::Models::ResponseFormatJSONObject] An object specifying the format that the model must output.
341
341
  #
342
- # @param safety_identifier [String] A stable identifier used to help detect users of your application that may be vi
342
+ # @param safety_identifier [String, nil] A stable identifier used to help detect users of your application that may be vi
343
343
  #
344
344
  # @param seed [Integer, nil] This feature is in Beta.
345
345
  #
@@ -56,7 +56,7 @@ module OpenAI
56
56
  #
57
57
  # @param prompt [OpenAI::Models::Responses::ResponsePrompt, nil] Reference to a prompt template and its variables.
58
58
  #
59
- # @param prompt_cache_key [String] Used by OpenAI to cache responses for similar requests to optimize your cache hi
59
+ # @param prompt_cache_key [String, nil] Used by OpenAI to cache responses for similar requests to optimize your cache hi
60
60
  #
61
61
  # @param prompt_cache_options [OpenAI::Models::Responses::ResponseCreateParams::PromptCacheOptions] Options for prompt caching. Supported for `gpt-5.6` and later models. By default
62
62
  #
@@ -64,7 +64,7 @@ module OpenAI
64
64
  #
65
65
  # @param reasoning [OpenAI::Models::Reasoning, nil] **gpt-5 and o-series models only**
66
66
  #
67
- # @param safety_identifier [String] A stable identifier used to help detect users of your application that may be vi
67
+ # @param safety_identifier [String, nil] A stable identifier used to help detect users of your application that may be vi
68
68
  #
69
69
  # @param service_tier [Symbol, OpenAI::Models::Responses::ResponseCreateParams::ServiceTier, nil] Specifies the processing type used for serving the request.
70
70
  #
@@ -287,7 +287,7 @@ module OpenAI
287
287
  #
288
288
  # @param prompt [OpenAI::Models::Responses::ResponsePrompt, nil] Reference to a prompt template and its variables.
289
289
  #
290
- # @param prompt_cache_key [String] Used by OpenAI to cache responses for similar requests to optimize your cache hi
290
+ # @param prompt_cache_key [String, nil] Used by OpenAI to cache responses for similar requests to optimize your cache hi
291
291
  #
292
292
  # @param prompt_cache_options [OpenAI::Models::Responses::ResponseCreateParams::PromptCacheOptions] Options for prompt caching. Supported for `gpt-5.6` and later models. By default
293
293
  #
@@ -295,7 +295,7 @@ module OpenAI
295
295
  #
296
296
  # @param reasoning [OpenAI::Models::Reasoning, nil] **gpt-5 and o-series models only**
297
297
  #
298
- # @param safety_identifier [String] A stable identifier used to help detect users of your application that may be vi
298
+ # @param safety_identifier [String, nil] A stable identifier used to help detect users of your application that may be vi
299
299
  #
300
300
  # @param service_tier [Symbol, OpenAI::Models::Responses::ResponseCreateParams::ServiceTier, nil] Specifies the processing type used for serving the request.
301
301
  #
@@ -9,7 +9,7 @@ module OpenAI
9
9
  # @param headers [Hash] The webhook headers
10
10
  # @param webhook_secret [String, nil] The webhook secret (optional, will use client webhook secret or ENV["OPENAI_WEBHOOK_SECRET"] if not provided)
11
11
  #
12
- # @return [OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent]
12
+ # @return [OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent]
13
13
  #
14
14
  # @raise [ArgumentError] if signature verification fails
15
15
  def unwrap(
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.71.0"
4
+ VERSION = "0.73.0"
5
5
  end
data/lib/openai.rb CHANGED
@@ -147,6 +147,8 @@ require_relative "openai/models/admin/organization/invite_retrieve_params"
147
147
  require_relative "openai/models/admin/organization/organization_data_retention"
148
148
  require_relative "openai/models/admin/organization/organization_spend_alert"
149
149
  require_relative "openai/models/admin/organization/organization_spend_alert_deleted"
150
+ require_relative "openai/models/admin/organization/organization_spend_limit"
151
+ require_relative "openai/models/admin/organization/organization_spend_limit_deleted"
150
152
  require_relative "openai/models/admin/organization/organization_user"
151
153
  require_relative "openai/models/admin/organization/project"
152
154
  require_relative "openai/models/admin/organization/project_archive_params"
@@ -193,6 +195,8 @@ require_relative "openai/models/admin/organization/projects/project_rate_limit"
193
195
  require_relative "openai/models/admin/organization/projects/project_service_account"
194
196
  require_relative "openai/models/admin/organization/projects/project_spend_alert"
195
197
  require_relative "openai/models/admin/organization/projects/project_spend_alert_deleted"
198
+ require_relative "openai/models/admin/organization/projects/project_spend_limit"
199
+ require_relative "openai/models/admin/organization/projects/project_spend_limit_deleted"
196
200
  require_relative "openai/models/admin/organization/projects/project_user"
197
201
  require_relative "openai/models/admin/organization/projects/rate_limit_list_rate_limits_params"
198
202
  require_relative "openai/models/admin/organization/projects/rate_limit_update_rate_limit_params"
@@ -216,6 +220,9 @@ require_relative "openai/models/admin/organization/projects/spend_alert_delete_p
216
220
  require_relative "openai/models/admin/organization/projects/spend_alert_list_params"
217
221
  require_relative "openai/models/admin/organization/projects/spend_alert_retrieve_params"
218
222
  require_relative "openai/models/admin/organization/projects/spend_alert_update_params"
223
+ require_relative "openai/models/admin/organization/projects/spend_limit_delete_params"
224
+ require_relative "openai/models/admin/organization/projects/spend_limit_retrieve_params"
225
+ require_relative "openai/models/admin/organization/projects/spend_limit_update_params"
219
226
  require_relative "openai/models/admin/organization/projects/user_create_params"
220
227
  require_relative "openai/models/admin/organization/projects/user_delete_params"
221
228
  require_relative "openai/models/admin/organization/projects/user_delete_response"
@@ -243,6 +250,9 @@ require_relative "openai/models/admin/organization/spend_alert_delete_params"
243
250
  require_relative "openai/models/admin/organization/spend_alert_list_params"
244
251
  require_relative "openai/models/admin/organization/spend_alert_retrieve_params"
245
252
  require_relative "openai/models/admin/organization/spend_alert_update_params"
253
+ require_relative "openai/models/admin/organization/spend_limit_delete_params"
254
+ require_relative "openai/models/admin/organization/spend_limit_retrieve_params"
255
+ require_relative "openai/models/admin/organization/spend_limit_update_params"
246
256
  require_relative "openai/models/admin/organization/usage_audio_speeches_params"
247
257
  require_relative "openai/models/admin/organization/usage_audio_speeches_response"
248
258
  require_relative "openai/models/admin/organization/usage_audio_transcriptions_params"
@@ -287,6 +297,7 @@ require_relative "openai/models/audio/transcription_create_response"
287
297
  require_relative "openai/models/audio/transcription_diarized"
288
298
  require_relative "openai/models/audio/transcription_diarized_segment"
289
299
  require_relative "openai/models/audio/transcription_include"
300
+ require_relative "openai/models/audio/transcription_language"
290
301
  require_relative "openai/models/audio/transcription_segment"
291
302
  require_relative "openai/models/audio/transcription_stream_event"
292
303
  require_relative "openai/models/audio/transcription_text_delta_event"
@@ -1138,6 +1149,7 @@ require_relative "openai/models/webhooks/eval_run_succeeded_webhook_event"
1138
1149
  require_relative "openai/models/webhooks/fine_tuning_job_cancelled_webhook_event"
1139
1150
  require_relative "openai/models/webhooks/fine_tuning_job_failed_webhook_event"
1140
1151
  require_relative "openai/models/webhooks/fine_tuning_job_succeeded_webhook_event"
1152
+ require_relative "openai/models/webhooks/live_call_incoming_webhook_event"
1141
1153
  require_relative "openai/models/webhooks/realtime_call_incoming_webhook_event"
1142
1154
  require_relative "openai/models/webhooks/response_cancelled_webhook_event"
1143
1155
  require_relative "openai/models/webhooks/response_completed_webhook_event"
@@ -1169,10 +1181,12 @@ require_relative "openai/resources/admin/organization/projects/roles"
1169
1181
  require_relative "openai/resources/admin/organization/projects/service_accounts"
1170
1182
  require_relative "openai/resources/admin/organization/projects/service_accounts/api_keys"
1171
1183
  require_relative "openai/resources/admin/organization/projects/spend_alerts"
1184
+ require_relative "openai/resources/admin/organization/projects/spend_limit"
1172
1185
  require_relative "openai/resources/admin/organization/projects/users"
1173
1186
  require_relative "openai/resources/admin/organization/projects/users/roles"
1174
1187
  require_relative "openai/resources/admin/organization/roles"
1175
1188
  require_relative "openai/resources/admin/organization/spend_alerts"
1189
+ require_relative "openai/resources/admin/organization/spend_limit"
1176
1190
  require_relative "openai/resources/admin/organization/usage"
1177
1191
  require_relative "openai/resources/admin/organization/users"
1178
1192
  require_relative "openai/resources/admin/organization/users/roles"
@@ -0,0 +1,278 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ OrganizationSpendLimit = Organization::OrganizationSpendLimit
7
+
8
+ module Organization
9
+ class OrganizationSpendLimit < OpenAI::Internal::Type::BaseModel
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ OpenAI::Admin::Organization::OrganizationSpendLimit,
14
+ OpenAI::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # The currency for the threshold amount. Currently, only `USD` is supported.
19
+ sig do
20
+ returns(
21
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Currency::Variants
22
+ )
23
+ end
24
+ attr_accessor :currency
25
+
26
+ # The current enforcement state of the hard spend limit.
27
+ sig do
28
+ returns(
29
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement
30
+ )
31
+ end
32
+ attr_reader :enforcement
33
+
34
+ sig do
35
+ params(
36
+ enforcement:
37
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement::OrHash
38
+ ).void
39
+ end
40
+ attr_writer :enforcement
41
+
42
+ # The time interval for evaluating spend against the threshold. Currently, only
43
+ # `month` is supported.
44
+ sig do
45
+ returns(
46
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Interval::Variants
47
+ )
48
+ end
49
+ attr_accessor :interval
50
+
51
+ # The object type, which is always `organization.spend_limit`.
52
+ sig { returns(Symbol) }
53
+ attr_accessor :object
54
+
55
+ # The hard spend limit amount, in cents.
56
+ sig { returns(Integer) }
57
+ attr_accessor :threshold_amount
58
+
59
+ # Represents a hard spend limit configured at the organization level.
60
+ sig do
61
+ params(
62
+ currency:
63
+ T.any(
64
+ String,
65
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Currency::OrSymbol
66
+ ),
67
+ enforcement:
68
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement::OrHash,
69
+ interval:
70
+ T.any(
71
+ String,
72
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Interval::OrSymbol
73
+ ),
74
+ threshold_amount: Integer,
75
+ object: Symbol
76
+ ).returns(T.attached_class)
77
+ end
78
+ def self.new(
79
+ # The currency for the threshold amount. Currently, only `USD` is supported.
80
+ currency:,
81
+ # The current enforcement state of the hard spend limit.
82
+ enforcement:,
83
+ # The time interval for evaluating spend against the threshold. Currently, only
84
+ # `month` is supported.
85
+ interval:,
86
+ # The hard spend limit amount, in cents.
87
+ threshold_amount:,
88
+ # The object type, which is always `organization.spend_limit`.
89
+ object: :"organization.spend_limit"
90
+ )
91
+ end
92
+
93
+ sig do
94
+ override.returns(
95
+ {
96
+ currency:
97
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Currency::Variants,
98
+ enforcement:
99
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement,
100
+ interval:
101
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Interval::Variants,
102
+ object: Symbol,
103
+ threshold_amount: Integer
104
+ }
105
+ )
106
+ end
107
+ def to_hash
108
+ end
109
+
110
+ # The currency for the threshold amount. Currently, only `USD` is supported.
111
+ module Currency
112
+ extend OpenAI::Internal::Type::Union
113
+
114
+ Variants =
115
+ T.type_alias do
116
+ T.any(
117
+ String,
118
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Currency::TaggedSymbol
119
+ )
120
+ end
121
+
122
+ sig do
123
+ override.returns(
124
+ T::Array[
125
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Currency::Variants
126
+ ]
127
+ )
128
+ end
129
+ def self.variants
130
+ end
131
+
132
+ TaggedSymbol =
133
+ T.type_alias do
134
+ T.all(
135
+ Symbol,
136
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Currency
137
+ )
138
+ end
139
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
140
+
141
+ USD =
142
+ T.let(
143
+ :USD,
144
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Currency::TaggedSymbol
145
+ )
146
+ end
147
+
148
+ class Enforcement < OpenAI::Internal::Type::BaseModel
149
+ OrHash =
150
+ T.type_alias do
151
+ T.any(
152
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement,
153
+ OpenAI::Internal::AnyHash
154
+ )
155
+ end
156
+
157
+ # Whether the hard spend limit is currently enforcing.
158
+ sig do
159
+ returns(
160
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement::Status::Variants
161
+ )
162
+ end
163
+ attr_accessor :status
164
+
165
+ # The current enforcement state of the hard spend limit.
166
+ sig do
167
+ params(
168
+ status:
169
+ T.any(
170
+ String,
171
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement::Status::OrSymbol
172
+ )
173
+ ).returns(T.attached_class)
174
+ end
175
+ def self.new(
176
+ # Whether the hard spend limit is currently enforcing.
177
+ status:
178
+ )
179
+ end
180
+
181
+ sig do
182
+ override.returns(
183
+ {
184
+ status:
185
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement::Status::Variants
186
+ }
187
+ )
188
+ end
189
+ def to_hash
190
+ end
191
+
192
+ # Whether the hard spend limit is currently enforcing.
193
+ module Status
194
+ extend OpenAI::Internal::Type::Union
195
+
196
+ Variants =
197
+ T.type_alias do
198
+ T.any(
199
+ String,
200
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement::Status::TaggedSymbol
201
+ )
202
+ end
203
+
204
+ sig do
205
+ override.returns(
206
+ T::Array[
207
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement::Status::Variants
208
+ ]
209
+ )
210
+ end
211
+ def self.variants
212
+ end
213
+
214
+ TaggedSymbol =
215
+ T.type_alias do
216
+ T.all(
217
+ Symbol,
218
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement::Status
219
+ )
220
+ end
221
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
222
+
223
+ INACTIVE =
224
+ T.let(
225
+ :inactive,
226
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement::Status::TaggedSymbol
227
+ )
228
+ ENFORCING =
229
+ T.let(
230
+ :enforcing,
231
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement::Status::TaggedSymbol
232
+ )
233
+ end
234
+ end
235
+
236
+ # The time interval for evaluating spend against the threshold. Currently, only
237
+ # `month` is supported.
238
+ module Interval
239
+ extend OpenAI::Internal::Type::Union
240
+
241
+ Variants =
242
+ T.type_alias do
243
+ T.any(
244
+ String,
245
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Interval::TaggedSymbol
246
+ )
247
+ end
248
+
249
+ sig do
250
+ override.returns(
251
+ T::Array[
252
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Interval::Variants
253
+ ]
254
+ )
255
+ end
256
+ def self.variants
257
+ end
258
+
259
+ TaggedSymbol =
260
+ T.type_alias do
261
+ T.all(
262
+ Symbol,
263
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Interval
264
+ )
265
+ end
266
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
267
+
268
+ MONTH =
269
+ T.let(
270
+ :month,
271
+ OpenAI::Admin::Organization::OrganizationSpendLimit::Interval::TaggedSymbol
272
+ )
273
+ end
274
+ end
275
+ end
276
+ end
277
+ end
278
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ OrganizationSpendLimitDeleted =
7
+ Organization::OrganizationSpendLimitDeleted
8
+
9
+ module Organization
10
+ class OrganizationSpendLimitDeleted < OpenAI::Internal::Type::BaseModel
11
+ OrHash =
12
+ T.type_alias do
13
+ T.any(
14
+ OpenAI::Admin::Organization::OrganizationSpendLimitDeleted,
15
+ OpenAI::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ # Whether the hard spend limit was deleted.
20
+ sig { returns(T::Boolean) }
21
+ attr_accessor :deleted
22
+
23
+ # The object type, which is always `organization.spend_limit.deleted`.
24
+ sig { returns(Symbol) }
25
+ attr_accessor :object
26
+
27
+ # Confirmation payload returned after deleting an organization hard spend limit.
28
+ sig do
29
+ params(deleted: T::Boolean, object: Symbol).returns(
30
+ T.attached_class
31
+ )
32
+ end
33
+ def self.new(
34
+ # Whether the hard spend limit was deleted.
35
+ deleted:,
36
+ # The object type, which is always `organization.spend_limit.deleted`.
37
+ object: :"organization.spend_limit.deleted"
38
+ )
39
+ end
40
+
41
+ sig { override.returns({ deleted: T::Boolean, object: Symbol }) }
42
+ def to_hash
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end