openai 0.70.0 → 0.72.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 (172) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/README.md +51 -1
  4. data/lib/openai/client.rb +62 -8
  5. data/lib/openai/internal/provider.rb +31 -0
  6. data/lib/openai/internal/transport/base_client.rb +65 -21
  7. data/lib/openai/models/admin/organization/audit_log_list_params.rb +84 -0
  8. data/lib/openai/models/admin/organization/audit_log_list_response.rb +84 -0
  9. data/lib/openai/models/admin/organization/organization_spend_limit.rb +151 -0
  10. data/lib/openai/models/admin/organization/organization_spend_limit_deleted.rb +33 -0
  11. data/lib/openai/models/admin/organization/projects/project_service_account.rb +4 -3
  12. data/lib/openai/models/admin/organization/projects/project_spend_limit.rb +155 -0
  13. data/lib/openai/models/admin/organization/projects/project_spend_limit_deleted.rb +35 -0
  14. data/lib/openai/models/admin/organization/projects/service_account_create_params.rb +9 -1
  15. data/lib/openai/models/admin/organization/projects/service_account_create_response.rb +26 -6
  16. data/lib/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rb +54 -0
  17. data/lib/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rb +57 -0
  18. data/lib/openai/models/admin/organization/projects/spend_limit_delete_params.rb +26 -0
  19. data/lib/openai/models/admin/organization/projects/spend_limit_retrieve_params.rb +26 -0
  20. data/lib/openai/models/admin/organization/projects/spend_limit_update_params.rb +77 -0
  21. data/lib/openai/models/admin/organization/spend_limit_delete_params.rb +18 -0
  22. data/lib/openai/models/admin/organization/spend_limit_retrieve_params.rb +18 -0
  23. data/lib/openai/models/admin/organization/spend_limit_update_params.rb +67 -0
  24. data/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +88 -13
  25. data/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +88 -13
  26. data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +88 -13
  27. data/lib/openai/models/admin/organization/usage_completions_response.rb +88 -13
  28. data/lib/openai/models/admin/organization/usage_costs_response.rb +88 -13
  29. data/lib/openai/models/admin/organization/usage_embeddings_response.rb +88 -13
  30. data/lib/openai/models/admin/organization/usage_file_search_calls_response.rb +88 -13
  31. data/lib/openai/models/admin/organization/usage_images_response.rb +88 -13
  32. data/lib/openai/models/admin/organization/usage_moderations_response.rb +88 -13
  33. data/lib/openai/models/admin/organization/usage_vector_stores_response.rb +88 -13
  34. data/lib/openai/models/admin/organization/usage_web_search_calls_response.rb +88 -13
  35. data/lib/openai/models/beta/beta_response.rb +12 -6
  36. data/lib/openai/models/beta/beta_response_error.rb +1 -0
  37. data/lib/openai/models/beta/beta_response_input_item.rb +16 -32
  38. data/lib/openai/models/beta/beta_response_text_config.rb +4 -2
  39. data/lib/openai/models/beta/beta_responses_client_event.rb +12 -6
  40. data/lib/openai/models/beta/response_create_params.rb +12 -6
  41. data/lib/openai/models/beta/responses/input_token_count_params.rb +12 -4
  42. data/lib/openai/models/chat/completion_create_params.rb +8 -6
  43. data/lib/openai/models/reasoning.rb +8 -2
  44. data/lib/openai/models/responses/input_token_count_params.rb +4 -2
  45. data/lib/openai/models/responses/response.rb +4 -4
  46. data/lib/openai/models/responses/response_create_params.rb +4 -4
  47. data/lib/openai/models/responses/response_error.rb +1 -0
  48. data/lib/openai/models/responses/response_text_config.rb +4 -2
  49. data/lib/openai/models/responses/responses_client_event.rb +4 -4
  50. data/lib/openai/provider.rb +18 -0
  51. data/lib/openai/providers/bedrock.rb +489 -0
  52. data/lib/openai/resources/admin/organization/projects/service_accounts/api_keys.rb +60 -0
  53. data/lib/openai/resources/admin/organization/projects/service_accounts.rb +10 -3
  54. data/lib/openai/resources/admin/organization/projects/spend_limit.rb +95 -0
  55. data/lib/openai/resources/admin/organization/projects.rb +4 -0
  56. data/lib/openai/resources/admin/organization/spend_limit.rb +86 -0
  57. data/lib/openai/resources/admin/organization.rb +4 -0
  58. data/lib/openai/resources/beta/responses.rb +4 -4
  59. data/lib/openai/resources/chat/completions.rb +4 -4
  60. data/lib/openai/resources/responses.rb +4 -4
  61. data/lib/openai/version.rb +1 -1
  62. data/lib/openai.rb +18 -0
  63. data/rbi/openai/client.rbi +17 -0
  64. data/rbi/openai/internal/provider.rbi +51 -0
  65. data/rbi/openai/internal/transport/base_client.rbi +32 -0
  66. data/rbi/openai/models/admin/organization/audit_log_list_params.rbi +420 -0
  67. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +420 -0
  68. data/rbi/openai/models/admin/organization/organization_spend_limit.rbi +278 -0
  69. data/rbi/openai/models/admin/organization/organization_spend_limit_deleted.rbi +48 -0
  70. data/rbi/openai/models/admin/organization/projects/project_service_account.rbi +8 -3
  71. data/rbi/openai/models/admin/organization/projects/project_spend_limit.rbi +280 -0
  72. data/rbi/openai/models/admin/organization/projects/project_spend_limit_deleted.rbi +49 -0
  73. data/rbi/openai/models/admin/organization/projects/service_account_create_params.rbi +8 -0
  74. data/rbi/openai/models/admin/organization/projects/service_account_create_response.rbi +52 -8
  75. data/rbi/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rbi +84 -0
  76. data/rbi/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rbi +80 -0
  77. data/rbi/openai/models/admin/organization/projects/spend_limit_delete_params.rbi +44 -0
  78. data/rbi/openai/models/admin/organization/projects/spend_limit_retrieve_params.rbi +44 -0
  79. data/rbi/openai/models/admin/organization/projects/spend_limit_update_params.rbi +149 -0
  80. data/rbi/openai/models/admin/organization/spend_limit_delete_params.rbi +34 -0
  81. data/rbi/openai/models/admin/organization/spend_limit_retrieve_params.rbi +34 -0
  82. data/rbi/openai/models/admin/organization/spend_limit_update_params.rbi +141 -0
  83. data/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi +121 -16
  84. data/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi +121 -16
  85. data/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi +121 -16
  86. data/rbi/openai/models/admin/organization/usage_completions_response.rbi +121 -16
  87. data/rbi/openai/models/admin/organization/usage_costs_response.rbi +121 -16
  88. data/rbi/openai/models/admin/organization/usage_embeddings_response.rbi +121 -16
  89. data/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi +121 -16
  90. data/rbi/openai/models/admin/organization/usage_images_response.rbi +121 -16
  91. data/rbi/openai/models/admin/organization/usage_moderations_response.rbi +121 -16
  92. data/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi +121 -16
  93. data/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi +121 -16
  94. data/rbi/openai/models/beta/beta_response.rbi +18 -15
  95. data/rbi/openai/models/beta/beta_response_error.rbi +5 -0
  96. data/rbi/openai/models/beta/beta_response_input_item.rbi +39 -46
  97. data/rbi/openai/models/beta/beta_response_text_config.rbi +6 -3
  98. data/rbi/openai/models/beta/beta_responses_client_event.rbi +18 -15
  99. data/rbi/openai/models/beta/response_create_params.rbi +18 -15
  100. data/rbi/openai/models/beta/responses/input_token_count_params.rbi +18 -6
  101. data/rbi/openai/models/chat/completion_create_params.rbi +12 -15
  102. data/rbi/openai/models/reasoning.rbi +12 -3
  103. data/rbi/openai/models/responses/input_token_count_params.rbi +6 -3
  104. data/rbi/openai/models/responses/response.rbi +6 -12
  105. data/rbi/openai/models/responses/response_create_params.rbi +6 -12
  106. data/rbi/openai/models/responses/response_error.rbi +5 -0
  107. data/rbi/openai/models/responses/response_text_config.rbi +6 -3
  108. data/rbi/openai/models/responses/responses_client_event.rbi +6 -12
  109. data/rbi/openai/provider.rbi +9 -0
  110. data/rbi/openai/providers.rbi +33 -0
  111. data/rbi/openai/resources/admin/organization/projects/service_accounts/api_keys.rbi +45 -0
  112. data/rbi/openai/resources/admin/organization/projects/service_accounts.rbi +12 -2
  113. data/rbi/openai/resources/admin/organization/projects/spend_limit.rbi +78 -0
  114. data/rbi/openai/resources/admin/organization/projects.rbi +7 -0
  115. data/rbi/openai/resources/admin/organization/spend_limit.rbi +57 -0
  116. data/rbi/openai/resources/admin/organization.rbi +3 -0
  117. data/rbi/openai/resources/beta/responses.rbi +4 -4
  118. data/rbi/openai/resources/chat/completions.rbi +8 -6
  119. data/rbi/openai/resources/responses.rbi +4 -4
  120. data/sig/openai/client.rbs +7 -0
  121. data/sig/openai/internal/provider.rbs +29 -0
  122. data/sig/openai/internal/transport/base_client.rbs +17 -1
  123. data/sig/openai/models/admin/organization/audit_log_list_params.rbs +168 -0
  124. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +168 -0
  125. data/sig/openai/models/admin/organization/organization_spend_limit.rbs +94 -0
  126. data/sig/openai/models/admin/organization/organization_spend_limit_deleted.rbs +28 -0
  127. data/sig/openai/models/admin/organization/projects/project_service_account.rbs +2 -1
  128. data/sig/openai/models/admin/organization/projects/project_spend_limit.rbs +96 -0
  129. data/sig/openai/models/admin/organization/projects/project_spend_limit_deleted.rbs +30 -0
  130. data/sig/openai/models/admin/organization/projects/service_account_create_params.rbs +9 -1
  131. data/sig/openai/models/admin/organization/projects/service_account_create_response.rbs +16 -5
  132. data/sig/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rbs +53 -0
  133. data/sig/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rbs +48 -0
  134. data/sig/openai/models/admin/organization/projects/spend_limit_delete_params.rbs +29 -0
  135. data/sig/openai/models/admin/organization/projects/spend_limit_retrieve_params.rbs +29 -0
  136. data/sig/openai/models/admin/organization/projects/spend_limit_update_params.rbs +67 -0
  137. data/sig/openai/models/admin/organization/spend_limit_delete_params.rbs +19 -0
  138. data/sig/openai/models/admin/organization/spend_limit_retrieve_params.rbs +19 -0
  139. data/sig/openai/models/admin/organization/spend_limit_update_params.rbs +60 -0
  140. data/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +63 -0
  141. data/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +63 -0
  142. data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +63 -0
  143. data/sig/openai/models/admin/organization/usage_completions_response.rbs +63 -0
  144. data/sig/openai/models/admin/organization/usage_costs_response.rbs +63 -0
  145. data/sig/openai/models/admin/organization/usage_embeddings_response.rbs +63 -0
  146. data/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs +63 -0
  147. data/sig/openai/models/admin/organization/usage_images_response.rbs +63 -0
  148. data/sig/openai/models/admin/organization/usage_moderations_response.rbs +63 -0
  149. data/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +63 -0
  150. data/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs +63 -0
  151. data/sig/openai/models/beta/beta_response.rbs +8 -12
  152. data/sig/openai/models/beta/beta_response_error.rbs +2 -0
  153. data/sig/openai/models/beta/beta_response_input_item.rbs +18 -24
  154. data/sig/openai/models/beta/beta_responses_client_event.rbs +8 -12
  155. data/sig/openai/models/beta/response_create_params.rbs +8 -12
  156. data/sig/openai/models/chat/completion_create_params.rbs +8 -12
  157. data/sig/openai/models/responses/response.rbs +8 -12
  158. data/sig/openai/models/responses/response_create_params.rbs +8 -12
  159. data/sig/openai/models/responses/response_error.rbs +2 -0
  160. data/sig/openai/models/responses/responses_client_event.rbs +8 -12
  161. data/sig/openai/provider.rbs +5 -0
  162. data/sig/openai/providers.rbs +15 -0
  163. data/sig/openai/resources/admin/organization/projects/service_accounts/api_keys.rbs +23 -0
  164. data/sig/openai/resources/admin/organization/projects/service_accounts.rbs +3 -0
  165. data/sig/openai/resources/admin/organization/projects/spend_limit.rbs +31 -0
  166. data/sig/openai/resources/admin/organization/projects.rbs +2 -0
  167. data/sig/openai/resources/admin/organization/spend_limit.rbs +26 -0
  168. data/sig/openai/resources/admin/organization.rbs +2 -0
  169. data/sig/openai/resources/beta/responses.rbs +4 -4
  170. data/sig/openai/resources/chat/completions.rbs +4 -4
  171. data/sig/openai/resources/responses.rbs +4 -4
  172. metadata +56 -2
@@ -6,7 +6,10 @@ module OpenAI
6
6
  OrHash =
7
7
  T.type_alias { T.any(OpenAI::Reasoning, OpenAI::Internal::AnyHash) }
8
8
 
9
- # Controls which reasoning items are rendered back to the model on later turns.
9
+ # Controls which reasoning items are rendered back to the model on later turns. If
10
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
11
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
12
+ #
10
13
  # When returned on a response, this is the effective reasoning context mode used
11
14
  # for the response.
12
15
  sig { returns(T.nilable(OpenAI::Reasoning::Context::OrSymbol)) }
@@ -66,7 +69,10 @@ module OpenAI
66
69
  ).returns(T.attached_class)
67
70
  end
68
71
  def self.new(
69
- # Controls which reasoning items are rendered back to the model on later turns.
72
+ # Controls which reasoning items are rendered back to the model on later turns. If
73
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
74
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
75
+ #
70
76
  # When returned on a response, this is the effective reasoning context mode used
71
77
  # for the response.
72
78
  context: nil,
@@ -112,7 +118,10 @@ module OpenAI
112
118
  def to_hash
113
119
  end
114
120
 
115
- # Controls which reasoning items are rendered back to the model on later turns.
121
+ # Controls which reasoning items are rendered back to the model on later turns. If
122
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
123
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
124
+ #
116
125
  # When returned on a response, this is the effective reasoning context mode used
117
126
  # for the response.
118
127
  module Context
@@ -523,7 +523,8 @@ module OpenAI
523
523
 
524
524
  # Constrains the verbosity of the model's response. Lower values will result in
525
525
  # more concise responses, while higher values will result in more verbose
526
- # responses. Currently supported values are `low`, `medium`, and `high`.
526
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
527
+ # default is `medium`.
527
528
  sig do
528
529
  returns(
529
530
  T.nilable(
@@ -569,7 +570,8 @@ module OpenAI
569
570
  format_: nil,
570
571
  # Constrains the verbosity of the model's response. Lower values will result in
571
572
  # more concise responses, while higher values will result in more verbose
572
- # responses. Currently supported values are `low`, `medium`, and `high`.
573
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
574
+ # default is `medium`.
573
575
  verbosity: nil
574
576
  )
575
577
  end
@@ -595,7 +597,8 @@ module OpenAI
595
597
 
596
598
  # Constrains the verbosity of the model's response. Lower values will result in
597
599
  # more concise responses, while higher values will result in more verbose
598
- # responses. Currently supported values are `low`, `medium`, and `high`.
600
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
601
+ # default is `medium`.
599
602
  module Verbosity
600
603
  extend OpenAI::Internal::Type::Enum
601
604
 
@@ -206,10 +206,7 @@ module OpenAI
206
206
  # hit rates. Replaces the `user` field.
207
207
  # [Learn more](https://platform.openai.com/docs/guides/prompt-caching).
208
208
  sig { returns(T.nilable(String)) }
209
- attr_reader :prompt_cache_key
210
-
211
- sig { params(prompt_cache_key: String).void }
212
- attr_writer :prompt_cache_key
209
+ attr_accessor :prompt_cache_key
213
210
 
214
211
  # The prompt-caching options that were applied to the response. Supported for
215
212
  # `gpt-5.6` and later models.
@@ -269,10 +266,7 @@ module OpenAI
269
266
  # identifying information.
270
267
  # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
271
268
  sig { returns(T.nilable(String)) }
272
- attr_reader :safety_identifier
273
-
274
- sig { params(safety_identifier: String).void }
275
- attr_writer :safety_identifier
269
+ attr_accessor :safety_identifier
276
270
 
277
271
  # Specifies the processing type used for serving the request.
278
272
  #
@@ -452,7 +446,7 @@ module OpenAI
452
446
  T.nilable(OpenAI::Responses::Response::Moderation::OrHash),
453
447
  previous_response_id: T.nilable(String),
454
448
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt::OrHash),
455
- prompt_cache_key: String,
449
+ prompt_cache_key: T.nilable(String),
456
450
  prompt_cache_options:
457
451
  OpenAI::Responses::Response::PromptCacheOptions::OrHash,
458
452
  prompt_cache_retention:
@@ -460,7 +454,7 @@ module OpenAI
460
454
  OpenAI::Responses::Response::PromptCacheRetention::OrSymbol
461
455
  ),
462
456
  reasoning: T.nilable(OpenAI::Reasoning::OrHash),
463
- safety_identifier: String,
457
+ safety_identifier: T.nilable(String),
464
458
  service_tier:
465
459
  T.nilable(OpenAI::Responses::Response::ServiceTier::OrSymbol),
466
460
  status: OpenAI::Responses::ResponseStatus::OrSymbol,
@@ -692,7 +686,7 @@ module OpenAI
692
686
  moderation: T.nilable(OpenAI::Responses::Response::Moderation),
693
687
  previous_response_id: T.nilable(String),
694
688
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt),
695
- prompt_cache_key: String,
689
+ prompt_cache_key: T.nilable(String),
696
690
  prompt_cache_options:
697
691
  OpenAI::Responses::Response::PromptCacheOptions,
698
692
  prompt_cache_retention:
@@ -700,7 +694,7 @@ module OpenAI
700
694
  OpenAI::Responses::Response::PromptCacheRetention::TaggedSymbol
701
695
  ),
702
696
  reasoning: T.nilable(OpenAI::Reasoning),
703
- safety_identifier: String,
697
+ safety_identifier: T.nilable(String),
704
698
  service_tier:
705
699
  T.nilable(
706
700
  OpenAI::Responses::Response::ServiceTier::TaggedSymbol
@@ -198,10 +198,7 @@ module OpenAI
198
198
  # hit rates. Replaces the `user` field.
199
199
  # [Learn more](https://platform.openai.com/docs/guides/prompt-caching).
200
200
  sig { returns(T.nilable(String)) }
201
- attr_reader :prompt_cache_key
202
-
203
- sig { params(prompt_cache_key: String).void }
204
- attr_writer :prompt_cache_key
201
+ attr_accessor :prompt_cache_key
205
202
 
206
203
  # Options for prompt caching. Supported for `gpt-5.6` and later models. By
207
204
  # default, OpenAI automatically chooses one implicit cache breakpoint. You can add
@@ -272,10 +269,7 @@ module OpenAI
272
269
  # identifying information.
273
270
  # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
274
271
  sig { returns(T.nilable(String)) }
275
- attr_reader :safety_identifier
276
-
277
- sig { params(safety_identifier: String).void }
278
- attr_writer :safety_identifier
272
+ attr_accessor :safety_identifier
279
273
 
280
274
  # Specifies the processing type used for serving the request.
281
275
  #
@@ -543,7 +537,7 @@ module OpenAI
543
537
  parallel_tool_calls: T.nilable(T::Boolean),
544
538
  previous_response_id: T.nilable(String),
545
539
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt::OrHash),
546
- prompt_cache_key: String,
540
+ prompt_cache_key: T.nilable(String),
547
541
  prompt_cache_options:
548
542
  OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::OrHash,
549
543
  prompt_cache_retention:
@@ -551,7 +545,7 @@ module OpenAI
551
545
  OpenAI::Responses::ResponseCreateParams::PromptCacheRetention::OrSymbol
552
546
  ),
553
547
  reasoning: T.nilable(OpenAI::Reasoning::OrHash),
554
- safety_identifier: String,
548
+ safety_identifier: T.nilable(String),
555
549
  service_tier:
556
550
  T.nilable(
557
551
  OpenAI::Responses::ResponseCreateParams::ServiceTier::OrSymbol
@@ -848,7 +842,7 @@ module OpenAI
848
842
  parallel_tool_calls: T.nilable(T::Boolean),
849
843
  previous_response_id: T.nilable(String),
850
844
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt),
851
- prompt_cache_key: String,
845
+ prompt_cache_key: T.nilable(String),
852
846
  prompt_cache_options:
853
847
  OpenAI::Responses::ResponseCreateParams::PromptCacheOptions,
854
848
  prompt_cache_retention:
@@ -856,7 +850,7 @@ module OpenAI
856
850
  OpenAI::Responses::ResponseCreateParams::PromptCacheRetention::OrSymbol
857
851
  ),
858
852
  reasoning: T.nilable(OpenAI::Reasoning),
859
- safety_identifier: String,
853
+ safety_identifier: T.nilable(String),
860
854
  service_tier:
861
855
  T.nilable(
862
856
  OpenAI::Responses::ResponseCreateParams::ServiceTier::OrSymbol
@@ -68,6 +68,11 @@ module OpenAI
68
68
  :invalid_prompt,
69
69
  OpenAI::Responses::ResponseError::Code::TaggedSymbol
70
70
  )
71
+ DATA_RESIDENCY_MISMATCH =
72
+ T.let(
73
+ :data_residency_mismatch,
74
+ OpenAI::Responses::ResponseError::Code::TaggedSymbol
75
+ )
71
76
  BIO_POLICY =
72
77
  T.let(
73
78
  :bio_policy,
@@ -52,7 +52,8 @@ module OpenAI
52
52
 
53
53
  # Constrains the verbosity of the model's response. Lower values will result in
54
54
  # more concise responses, while higher values will result in more verbose
55
- # responses. Currently supported values are `low`, `medium`, and `high`.
55
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
56
+ # default is `medium`.
56
57
  sig do
57
58
  returns(
58
59
  T.nilable(
@@ -98,7 +99,8 @@ module OpenAI
98
99
  format_: nil,
99
100
  # Constrains the verbosity of the model's response. Lower values will result in
100
101
  # more concise responses, while higher values will result in more verbose
101
- # responses. Currently supported values are `low`, `medium`, and `high`.
102
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
103
+ # default is `medium`.
102
104
  verbosity: nil
103
105
  )
104
106
  end
@@ -124,7 +126,8 @@ module OpenAI
124
126
 
125
127
  # Constrains the verbosity of the model's response. Lower values will result in
126
128
  # more concise responses, while higher values will result in more verbose
127
- # responses. Currently supported values are `low`, `medium`, and `high`.
129
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
130
+ # default is `medium`.
128
131
  module Verbosity
129
132
  extend OpenAI::Internal::Type::Enum
130
133
 
@@ -199,10 +199,7 @@ module OpenAI
199
199
  # hit rates. Replaces the `user` field.
200
200
  # [Learn more](https://platform.openai.com/docs/guides/prompt-caching).
201
201
  sig { returns(T.nilable(String)) }
202
- attr_reader :prompt_cache_key
203
-
204
- sig { params(prompt_cache_key: String).void }
205
- attr_writer :prompt_cache_key
202
+ attr_accessor :prompt_cache_key
206
203
 
207
204
  # Options for prompt caching. Supported for `gpt-5.6` and later models. By
208
205
  # default, OpenAI automatically chooses one implicit cache breakpoint. You can add
@@ -273,10 +270,7 @@ module OpenAI
273
270
  # identifying information.
274
271
  # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
275
272
  sig { returns(T.nilable(String)) }
276
- attr_reader :safety_identifier
277
-
278
- sig { params(safety_identifier: String).void }
279
- attr_writer :safety_identifier
273
+ attr_accessor :safety_identifier
280
274
 
281
275
  # Specifies the processing type used for serving the request.
282
276
  #
@@ -545,7 +539,7 @@ module OpenAI
545
539
  parallel_tool_calls: T.nilable(T::Boolean),
546
540
  previous_response_id: T.nilable(String),
547
541
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt::OrHash),
548
- prompt_cache_key: String,
542
+ prompt_cache_key: T.nilable(String),
549
543
  prompt_cache_options:
550
544
  OpenAI::Responses::ResponsesClientEvent::PromptCacheOptions::OrHash,
551
545
  prompt_cache_retention:
@@ -553,7 +547,7 @@ module OpenAI
553
547
  OpenAI::Responses::ResponsesClientEvent::PromptCacheRetention::OrSymbol
554
548
  ),
555
549
  reasoning: T.nilable(OpenAI::Reasoning::OrHash),
556
- safety_identifier: String,
550
+ safety_identifier: T.nilable(String),
557
551
  service_tier:
558
552
  T.nilable(
559
553
  OpenAI::Responses::ResponsesClientEvent::ServiceTier::OrSymbol
@@ -860,7 +854,7 @@ module OpenAI
860
854
  parallel_tool_calls: T.nilable(T::Boolean),
861
855
  previous_response_id: T.nilable(String),
862
856
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt),
863
- prompt_cache_key: String,
857
+ prompt_cache_key: T.nilable(String),
864
858
  prompt_cache_options:
865
859
  OpenAI::Responses::ResponsesClientEvent::PromptCacheOptions,
866
860
  prompt_cache_retention:
@@ -868,7 +862,7 @@ module OpenAI
868
862
  OpenAI::Responses::ResponsesClientEvent::PromptCacheRetention::OrSymbol
869
863
  ),
870
864
  reasoning: T.nilable(OpenAI::Reasoning),
871
- safety_identifier: String,
865
+ safety_identifier: T.nilable(String),
872
866
  service_tier:
873
867
  T.nilable(
874
868
  OpenAI::Responses::ResponsesClientEvent::ServiceTier::OrSymbol
@@ -0,0 +1,9 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ class Provider
5
+ sig { returns(String) }
6
+ def inspect
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,33 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Providers
5
+ class << self
6
+ sig do
7
+ params(
8
+ region: T.nilable(String),
9
+ base_url: T.nilable(String),
10
+ api_key: T.nilable(String),
11
+ token_provider: T.nilable(T.proc.returns(String)),
12
+ access_key_id: T.nilable(String),
13
+ secret_access_key: T.nilable(String),
14
+ session_token: T.nilable(String),
15
+ profile: T.nilable(String),
16
+ credentials_provider: T.untyped
17
+ ).returns(OpenAI::Provider)
18
+ end
19
+ def bedrock(
20
+ region: nil,
21
+ base_url: nil,
22
+ api_key: nil,
23
+ token_provider: nil,
24
+ access_key_id: nil,
25
+ secret_access_key: nil,
26
+ session_token: nil,
27
+ profile: nil,
28
+ credentials_provider: nil
29
+ )
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,45 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Admin
6
+ class Organization
7
+ class Projects
8
+ class ServiceAccounts
9
+ class APIKeys
10
+ # Creates an API key for a service account in the project.
11
+ sig do
12
+ params(
13
+ service_account_id: String,
14
+ project_id: String,
15
+ name: String,
16
+ scopes: T::Array[String],
17
+ request_options: OpenAI::RequestOptions::OrHash
18
+ ).returns(
19
+ OpenAI::Models::Admin::Organization::Projects::ServiceAccounts::APIKeyCreateResponse
20
+ )
21
+ end
22
+ def create(
23
+ # Path param: The ID of the service account.
24
+ service_account_id,
25
+ # Path param: The ID of the project.
26
+ project_id:,
27
+ # Body param: API key name.
28
+ name: nil,
29
+ # Body param: API key scopes.
30
+ scopes: nil,
31
+ request_options: {}
32
+ )
33
+ end
34
+
35
+ # @api private
36
+ sig { params(client: OpenAI::Client).returns(T.attached_class) }
37
+ def self.new(client:)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -6,12 +6,20 @@ module OpenAI
6
6
  class Organization
7
7
  class Projects
8
8
  class ServiceAccounts
9
- # Creates a new service account in the project. This also returns an unredacted
10
- # API key for the service account.
9
+ sig do
10
+ returns(
11
+ OpenAI::Resources::Admin::Organization::Projects::ServiceAccounts::APIKeys
12
+ )
13
+ end
14
+ attr_reader :api_keys
15
+
16
+ # Creates a new service account in the project. By default, this also returns an
17
+ # unredacted API key for the service account.
11
18
  sig do
12
19
  params(
13
20
  project_id: String,
14
21
  name: String,
22
+ create_service_account_only: T.nilable(T::Boolean),
15
23
  request_options: OpenAI::RequestOptions::OrHash
16
24
  ).returns(
17
25
  OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse
@@ -22,6 +30,8 @@ module OpenAI
22
30
  project_id,
23
31
  # The name of the service account being created.
24
32
  name:,
33
+ # Create the service account without default roles or an API key.
34
+ create_service_account_only: nil,
25
35
  request_options: {}
26
36
  )
27
37
  end
@@ -0,0 +1,78 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Admin
6
+ class Organization
7
+ class Projects
8
+ class SpendLimit
9
+ # Get a project's hard spend limit.
10
+ sig do
11
+ params(
12
+ project_id: String,
13
+ request_options: OpenAI::RequestOptions::OrHash
14
+ ).returns(
15
+ OpenAI::Admin::Organization::Projects::ProjectSpendLimit
16
+ )
17
+ end
18
+ def retrieve(
19
+ # The ID of the project whose hard spend limit is being managed.
20
+ project_id,
21
+ request_options: {}
22
+ )
23
+ end
24
+
25
+ # Create or replace a project's hard spend limit.
26
+ sig do
27
+ params(
28
+ project_id: String,
29
+ currency:
30
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Currency::OrSymbol,
31
+ interval:
32
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Interval::OrSymbol,
33
+ threshold_amount: Integer,
34
+ request_options: OpenAI::RequestOptions::OrHash
35
+ ).returns(
36
+ OpenAI::Admin::Organization::Projects::ProjectSpendLimit
37
+ )
38
+ end
39
+ def update(
40
+ # The ID of the project whose hard spend limit is being managed.
41
+ project_id,
42
+ # The currency for the threshold amount. Currently, only `USD` is supported.
43
+ currency:,
44
+ # The time interval for evaluating spend against the threshold. Currently, only
45
+ # `month` is supported.
46
+ interval:,
47
+ # The hard spend limit amount, in cents.
48
+ threshold_amount:,
49
+ request_options: {}
50
+ )
51
+ end
52
+
53
+ # Delete a project's hard spend limit.
54
+ sig do
55
+ params(
56
+ project_id: String,
57
+ request_options: OpenAI::RequestOptions::OrHash
58
+ ).returns(
59
+ OpenAI::Admin::Organization::Projects::ProjectSpendLimitDeleted
60
+ )
61
+ end
62
+ def delete(
63
+ # The ID of the project whose hard spend limit is being managed.
64
+ project_id,
65
+ request_options: {}
66
+ )
67
+ end
68
+
69
+ # @api private
70
+ sig { params(client: OpenAI::Client).returns(T.attached_class) }
71
+ def self.new(client:)
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -60,6 +60,13 @@ module OpenAI
60
60
  end
61
61
  attr_reader :data_retention
62
62
 
63
+ sig do
64
+ returns(
65
+ OpenAI::Resources::Admin::Organization::Projects::SpendLimit
66
+ )
67
+ end
68
+ attr_reader :spend_limit
69
+
63
70
  sig do
64
71
  returns(
65
72
  OpenAI::Resources::Admin::Organization::Projects::SpendAlerts
@@ -0,0 +1,57 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Admin
6
+ class Organization
7
+ class SpendLimit
8
+ # Get the organization's hard spend limit.
9
+ sig do
10
+ params(request_options: OpenAI::RequestOptions::OrHash).returns(
11
+ OpenAI::Admin::Organization::OrganizationSpendLimit
12
+ )
13
+ end
14
+ def retrieve(request_options: {})
15
+ end
16
+
17
+ # Create or replace the organization's hard spend limit.
18
+ sig do
19
+ params(
20
+ currency:
21
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Currency::OrSymbol,
22
+ interval:
23
+ OpenAI::Admin::Organization::SpendLimitUpdateParams::Interval::OrSymbol,
24
+ threshold_amount: Integer,
25
+ request_options: OpenAI::RequestOptions::OrHash
26
+ ).returns(OpenAI::Admin::Organization::OrganizationSpendLimit)
27
+ end
28
+ def update(
29
+ # The currency for the threshold amount. Currently, only `USD` is supported.
30
+ currency:,
31
+ # The time interval for evaluating spend against the threshold. Currently, only
32
+ # `month` is supported.
33
+ interval:,
34
+ # The hard spend limit amount, in cents.
35
+ threshold_amount:,
36
+ request_options: {}
37
+ )
38
+ end
39
+
40
+ # Delete the organization's hard spend limit.
41
+ sig do
42
+ params(request_options: OpenAI::RequestOptions::OrHash).returns(
43
+ OpenAI::Admin::Organization::OrganizationSpendLimitDeleted
44
+ )
45
+ end
46
+ def delete(request_options: {})
47
+ end
48
+
49
+ # @api private
50
+ sig { params(client: OpenAI::Client).returns(T.attached_class) }
51
+ def self.new(client:)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -29,6 +29,9 @@ module OpenAI
29
29
  sig { returns(OpenAI::Resources::Admin::Organization::DataRetention) }
30
30
  attr_reader :data_retention
31
31
 
32
+ sig { returns(OpenAI::Resources::Admin::Organization::SpendLimit) }
33
+ attr_reader :spend_limit
34
+
32
35
  sig { returns(OpenAI::Resources::Admin::Organization::SpendAlerts) }
33
36
  attr_reader :spend_alerts
34
37
 
@@ -60,7 +60,7 @@ module OpenAI
60
60
  parallel_tool_calls: T.nilable(T::Boolean),
61
61
  previous_response_id: T.nilable(String),
62
62
  prompt: T.nilable(OpenAI::Beta::BetaResponsePrompt::OrHash),
63
- prompt_cache_key: String,
63
+ prompt_cache_key: T.nilable(String),
64
64
  prompt_cache_options:
65
65
  OpenAI::Beta::ResponseCreateParams::PromptCacheOptions::OrHash,
66
66
  prompt_cache_retention:
@@ -69,7 +69,7 @@ module OpenAI
69
69
  ),
70
70
  reasoning:
71
71
  T.nilable(OpenAI::Beta::ResponseCreateParams::Reasoning::OrHash),
72
- safety_identifier: String,
72
+ safety_identifier: T.nilable(String),
73
73
  service_tier:
74
74
  T.nilable(
75
75
  OpenAI::Beta::ResponseCreateParams::ServiceTier::OrSymbol
@@ -399,7 +399,7 @@ module OpenAI
399
399
  parallel_tool_calls: T.nilable(T::Boolean),
400
400
  previous_response_id: T.nilable(String),
401
401
  prompt: T.nilable(OpenAI::Beta::BetaResponsePrompt::OrHash),
402
- prompt_cache_key: String,
402
+ prompt_cache_key: T.nilable(String),
403
403
  prompt_cache_options:
404
404
  OpenAI::Beta::ResponseCreateParams::PromptCacheOptions::OrHash,
405
405
  prompt_cache_retention:
@@ -408,7 +408,7 @@ module OpenAI
408
408
  ),
409
409
  reasoning:
410
410
  T.nilable(OpenAI::Beta::ResponseCreateParams::Reasoning::OrHash),
411
- safety_identifier: String,
411
+ safety_identifier: T.nilable(String),
412
412
  service_tier:
413
413
  T.nilable(
414
414
  OpenAI::Beta::ResponseCreateParams::ServiceTier::OrSymbol
@@ -76,7 +76,7 @@ module OpenAI
76
76
  prediction:
77
77
  T.nilable(OpenAI::Chat::ChatCompletionPredictionContent::OrHash),
78
78
  presence_penalty: T.nilable(Float),
79
- prompt_cache_key: String,
79
+ prompt_cache_key: T.nilable(String),
80
80
  prompt_cache_options:
81
81
  OpenAI::Chat::CompletionCreateParams::PromptCacheOptions::OrHash,
82
82
  prompt_cache_retention:
@@ -91,7 +91,7 @@ module OpenAI
91
91
  OpenAI::StructuredOutput::JsonSchemaConverter,
92
92
  OpenAI::ResponseFormatJSONObject::OrHash
93
93
  ),
94
- safety_identifier: String,
94
+ safety_identifier: T.nilable(String),
95
95
  seed: T.nilable(Integer),
96
96
  service_tier:
97
97
  T.nilable(
@@ -363,7 +363,8 @@ module OpenAI
363
363
  user: nil,
364
364
  # Constrains the verbosity of the model's response. Lower values will result in
365
365
  # more concise responses, while higher values will result in more verbose
366
- # responses. Currently supported values are `low`, `medium`, and `high`.
366
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
367
+ # default is `medium`.
367
368
  verbosity: nil,
368
369
  # This tool searches the web for relevant results to use in a response. Learn more
369
370
  # about the
@@ -441,7 +442,7 @@ module OpenAI
441
442
  prediction:
442
443
  T.nilable(OpenAI::Chat::ChatCompletionPredictionContent::OrHash),
443
444
  presence_penalty: T.nilable(Float),
444
- prompt_cache_key: String,
445
+ prompt_cache_key: T.nilable(String),
445
446
  prompt_cache_options:
446
447
  OpenAI::Chat::CompletionCreateParams::PromptCacheOptions::OrHash,
447
448
  prompt_cache_retention:
@@ -455,7 +456,7 @@ module OpenAI
455
456
  OpenAI::ResponseFormatJSONSchema::OrHash,
456
457
  OpenAI::ResponseFormatJSONObject::OrHash
457
458
  ),
458
- safety_identifier: String,
459
+ safety_identifier: T.nilable(String),
459
460
  seed: T.nilable(Integer),
460
461
  service_tier:
461
462
  T.nilable(
@@ -726,7 +727,8 @@ module OpenAI
726
727
  user: nil,
727
728
  # Constrains the verbosity of the model's response. Lower values will result in
728
729
  # more concise responses, while higher values will result in more verbose
729
- # responses. Currently supported values are `low`, `medium`, and `high`.
730
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
731
+ # default is `medium`.
730
732
  verbosity: nil,
731
733
  # This tool searches the web for relevant results to use in a response. Learn more
732
734
  # about the