openai 0.70.0 → 0.71.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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -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/projects/project_service_account.rb +4 -3
  10. data/lib/openai/models/admin/organization/projects/service_account_create_params.rb +9 -1
  11. data/lib/openai/models/admin/organization/projects/service_account_create_response.rb +26 -6
  12. data/lib/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rb +54 -0
  13. data/lib/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rb +57 -0
  14. data/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +88 -13
  15. data/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +88 -13
  16. data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +88 -13
  17. data/lib/openai/models/admin/organization/usage_completions_response.rb +88 -13
  18. data/lib/openai/models/admin/organization/usage_costs_response.rb +88 -13
  19. data/lib/openai/models/admin/organization/usage_embeddings_response.rb +88 -13
  20. data/lib/openai/models/admin/organization/usage_file_search_calls_response.rb +88 -13
  21. data/lib/openai/models/admin/organization/usage_images_response.rb +88 -13
  22. data/lib/openai/models/admin/organization/usage_moderations_response.rb +88 -13
  23. data/lib/openai/models/admin/organization/usage_vector_stores_response.rb +88 -13
  24. data/lib/openai/models/admin/organization/usage_web_search_calls_response.rb +88 -13
  25. data/lib/openai/models/beta/beta_response_input_item.rb +16 -32
  26. data/lib/openai/provider.rb +18 -0
  27. data/lib/openai/providers/bedrock.rb +489 -0
  28. data/lib/openai/resources/admin/organization/projects/service_accounts/api_keys.rb +60 -0
  29. data/lib/openai/resources/admin/organization/projects/service_accounts.rb +10 -3
  30. data/lib/openai/version.rb +1 -1
  31. data/lib/openai.rb +6 -0
  32. data/rbi/openai/client.rbi +17 -0
  33. data/rbi/openai/internal/provider.rbi +51 -0
  34. data/rbi/openai/internal/transport/base_client.rbi +32 -0
  35. data/rbi/openai/models/admin/organization/audit_log_list_params.rbi +420 -0
  36. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +420 -0
  37. data/rbi/openai/models/admin/organization/projects/project_service_account.rbi +8 -3
  38. data/rbi/openai/models/admin/organization/projects/service_account_create_params.rbi +8 -0
  39. data/rbi/openai/models/admin/organization/projects/service_account_create_response.rbi +52 -8
  40. data/rbi/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rbi +84 -0
  41. data/rbi/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rbi +80 -0
  42. data/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi +121 -16
  43. data/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi +121 -16
  44. data/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi +121 -16
  45. data/rbi/openai/models/admin/organization/usage_completions_response.rbi +121 -16
  46. data/rbi/openai/models/admin/organization/usage_costs_response.rbi +121 -16
  47. data/rbi/openai/models/admin/organization/usage_embeddings_response.rbi +121 -16
  48. data/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi +121 -16
  49. data/rbi/openai/models/admin/organization/usage_images_response.rbi +121 -16
  50. data/rbi/openai/models/admin/organization/usage_moderations_response.rbi +121 -16
  51. data/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi +121 -16
  52. data/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi +121 -16
  53. data/rbi/openai/models/beta/beta_response_input_item.rbi +39 -46
  54. data/rbi/openai/provider.rbi +9 -0
  55. data/rbi/openai/providers.rbi +33 -0
  56. data/rbi/openai/resources/admin/organization/projects/service_accounts/api_keys.rbi +45 -0
  57. data/rbi/openai/resources/admin/organization/projects/service_accounts.rbi +12 -2
  58. data/sig/openai/client.rbs +7 -0
  59. data/sig/openai/internal/provider.rbs +29 -0
  60. data/sig/openai/internal/transport/base_client.rbs +17 -1
  61. data/sig/openai/models/admin/organization/audit_log_list_params.rbs +168 -0
  62. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +168 -0
  63. data/sig/openai/models/admin/organization/projects/project_service_account.rbs +2 -1
  64. data/sig/openai/models/admin/organization/projects/service_account_create_params.rbs +9 -1
  65. data/sig/openai/models/admin/organization/projects/service_account_create_response.rbs +16 -5
  66. data/sig/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rbs +53 -0
  67. data/sig/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rbs +48 -0
  68. data/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +63 -0
  69. data/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +63 -0
  70. data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +63 -0
  71. data/sig/openai/models/admin/organization/usage_completions_response.rbs +63 -0
  72. data/sig/openai/models/admin/organization/usage_costs_response.rbs +63 -0
  73. data/sig/openai/models/admin/organization/usage_embeddings_response.rbs +63 -0
  74. data/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs +63 -0
  75. data/sig/openai/models/admin/organization/usage_images_response.rbs +63 -0
  76. data/sig/openai/models/admin/organization/usage_moderations_response.rbs +63 -0
  77. data/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +63 -0
  78. data/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs +63 -0
  79. data/sig/openai/models/beta/beta_response_input_item.rbs +18 -24
  80. data/sig/openai/provider.rbs +5 -0
  81. data/sig/openai/providers.rbs +15 -0
  82. data/sig/openai/resources/admin/organization/projects/service_accounts/api_keys.rbs +23 -0
  83. data/sig/openai/resources/admin/organization/projects/service_accounts.rbs +3 -0
  84. metadata +20 -2
@@ -89,9 +89,18 @@ module OpenAI
89
89
  api_key_id: String?,
90
90
  batch: bool?,
91
91
  input_audio_tokens: Integer,
92
+ input_cache_write_tokens: Integer,
93
+ input_cached_audio_tokens: Integer,
94
+ input_cached_image_tokens: Integer,
95
+ input_cached_text_tokens: Integer,
92
96
  input_cached_tokens: Integer,
97
+ input_image_tokens: Integer,
98
+ input_text_tokens: Integer,
99
+ input_uncached_tokens: Integer,
93
100
  model: String?,
94
101
  output_audio_tokens: Integer,
102
+ output_image_tokens: Integer,
103
+ output_text_tokens: Integer,
95
104
  project_id: String?,
96
105
  service_tier: String?,
97
106
  user_id: String?
@@ -114,16 +123,52 @@ module OpenAI
114
123
 
115
124
  def input_audio_tokens=: (Integer) -> Integer
116
125
 
126
+ attr_reader input_cache_write_tokens: Integer?
127
+
128
+ def input_cache_write_tokens=: (Integer) -> Integer
129
+
130
+ attr_reader input_cached_audio_tokens: Integer?
131
+
132
+ def input_cached_audio_tokens=: (Integer) -> Integer
133
+
134
+ attr_reader input_cached_image_tokens: Integer?
135
+
136
+ def input_cached_image_tokens=: (Integer) -> Integer
137
+
138
+ attr_reader input_cached_text_tokens: Integer?
139
+
140
+ def input_cached_text_tokens=: (Integer) -> Integer
141
+
117
142
  attr_reader input_cached_tokens: Integer?
118
143
 
119
144
  def input_cached_tokens=: (Integer) -> Integer
120
145
 
146
+ attr_reader input_image_tokens: Integer?
147
+
148
+ def input_image_tokens=: (Integer) -> Integer
149
+
150
+ attr_reader input_text_tokens: Integer?
151
+
152
+ def input_text_tokens=: (Integer) -> Integer
153
+
154
+ attr_reader input_uncached_tokens: Integer?
155
+
156
+ def input_uncached_tokens=: (Integer) -> Integer
157
+
121
158
  attr_accessor model: String?
122
159
 
123
160
  attr_reader output_audio_tokens: Integer?
124
161
 
125
162
  def output_audio_tokens=: (Integer) -> Integer
126
163
 
164
+ attr_reader output_image_tokens: Integer?
165
+
166
+ def output_image_tokens=: (Integer) -> Integer
167
+
168
+ attr_reader output_text_tokens: Integer?
169
+
170
+ def output_text_tokens=: (Integer) -> Integer
171
+
127
172
  attr_accessor project_id: String?
128
173
 
129
174
  attr_accessor service_tier: String?
@@ -137,9 +182,18 @@ module OpenAI
137
182
  ?api_key_id: String?,
138
183
  ?batch: bool?,
139
184
  ?input_audio_tokens: Integer,
185
+ ?input_cache_write_tokens: Integer,
186
+ ?input_cached_audio_tokens: Integer,
187
+ ?input_cached_image_tokens: Integer,
188
+ ?input_cached_text_tokens: Integer,
140
189
  ?input_cached_tokens: Integer,
190
+ ?input_image_tokens: Integer,
191
+ ?input_text_tokens: Integer,
192
+ ?input_uncached_tokens: Integer,
141
193
  ?model: String?,
142
194
  ?output_audio_tokens: Integer,
195
+ ?output_image_tokens: Integer,
196
+ ?output_text_tokens: Integer,
143
197
  ?project_id: String?,
144
198
  ?service_tier: String?,
145
199
  ?user_id: String?,
@@ -154,9 +208,18 @@ module OpenAI
154
208
  api_key_id: String?,
155
209
  batch: bool?,
156
210
  input_audio_tokens: Integer,
211
+ input_cache_write_tokens: Integer,
212
+ input_cached_audio_tokens: Integer,
213
+ input_cached_image_tokens: Integer,
214
+ input_cached_text_tokens: Integer,
157
215
  input_cached_tokens: Integer,
216
+ input_image_tokens: Integer,
217
+ input_text_tokens: Integer,
218
+ input_uncached_tokens: Integer,
158
219
  model: String?,
159
220
  output_audio_tokens: Integer,
221
+ output_image_tokens: Integer,
222
+ output_text_tokens: Integer,
160
223
  project_id: String?,
161
224
  service_tier: String?,
162
225
  user_id: String?
@@ -89,9 +89,18 @@ module OpenAI
89
89
  api_key_id: String?,
90
90
  batch: bool?,
91
91
  input_audio_tokens: Integer,
92
+ input_cache_write_tokens: Integer,
93
+ input_cached_audio_tokens: Integer,
94
+ input_cached_image_tokens: Integer,
95
+ input_cached_text_tokens: Integer,
92
96
  input_cached_tokens: Integer,
97
+ input_image_tokens: Integer,
98
+ input_text_tokens: Integer,
99
+ input_uncached_tokens: Integer,
93
100
  model: String?,
94
101
  output_audio_tokens: Integer,
102
+ output_image_tokens: Integer,
103
+ output_text_tokens: Integer,
95
104
  project_id: String?,
96
105
  service_tier: String?,
97
106
  user_id: String?
@@ -114,16 +123,52 @@ module OpenAI
114
123
 
115
124
  def input_audio_tokens=: (Integer) -> Integer
116
125
 
126
+ attr_reader input_cache_write_tokens: Integer?
127
+
128
+ def input_cache_write_tokens=: (Integer) -> Integer
129
+
130
+ attr_reader input_cached_audio_tokens: Integer?
131
+
132
+ def input_cached_audio_tokens=: (Integer) -> Integer
133
+
134
+ attr_reader input_cached_image_tokens: Integer?
135
+
136
+ def input_cached_image_tokens=: (Integer) -> Integer
137
+
138
+ attr_reader input_cached_text_tokens: Integer?
139
+
140
+ def input_cached_text_tokens=: (Integer) -> Integer
141
+
117
142
  attr_reader input_cached_tokens: Integer?
118
143
 
119
144
  def input_cached_tokens=: (Integer) -> Integer
120
145
 
146
+ attr_reader input_image_tokens: Integer?
147
+
148
+ def input_image_tokens=: (Integer) -> Integer
149
+
150
+ attr_reader input_text_tokens: Integer?
151
+
152
+ def input_text_tokens=: (Integer) -> Integer
153
+
154
+ attr_reader input_uncached_tokens: Integer?
155
+
156
+ def input_uncached_tokens=: (Integer) -> Integer
157
+
121
158
  attr_accessor model: String?
122
159
 
123
160
  attr_reader output_audio_tokens: Integer?
124
161
 
125
162
  def output_audio_tokens=: (Integer) -> Integer
126
163
 
164
+ attr_reader output_image_tokens: Integer?
165
+
166
+ def output_image_tokens=: (Integer) -> Integer
167
+
168
+ attr_reader output_text_tokens: Integer?
169
+
170
+ def output_text_tokens=: (Integer) -> Integer
171
+
127
172
  attr_accessor project_id: String?
128
173
 
129
174
  attr_accessor service_tier: String?
@@ -137,9 +182,18 @@ module OpenAI
137
182
  ?api_key_id: String?,
138
183
  ?batch: bool?,
139
184
  ?input_audio_tokens: Integer,
185
+ ?input_cache_write_tokens: Integer,
186
+ ?input_cached_audio_tokens: Integer,
187
+ ?input_cached_image_tokens: Integer,
188
+ ?input_cached_text_tokens: Integer,
140
189
  ?input_cached_tokens: Integer,
190
+ ?input_image_tokens: Integer,
191
+ ?input_text_tokens: Integer,
192
+ ?input_uncached_tokens: Integer,
141
193
  ?model: String?,
142
194
  ?output_audio_tokens: Integer,
195
+ ?output_image_tokens: Integer,
196
+ ?output_text_tokens: Integer,
143
197
  ?project_id: String?,
144
198
  ?service_tier: String?,
145
199
  ?user_id: String?,
@@ -154,9 +208,18 @@ module OpenAI
154
208
  api_key_id: String?,
155
209
  batch: bool?,
156
210
  input_audio_tokens: Integer,
211
+ input_cache_write_tokens: Integer,
212
+ input_cached_audio_tokens: Integer,
213
+ input_cached_image_tokens: Integer,
214
+ input_cached_text_tokens: Integer,
157
215
  input_cached_tokens: Integer,
216
+ input_image_tokens: Integer,
217
+ input_text_tokens: Integer,
218
+ input_uncached_tokens: Integer,
158
219
  model: String?,
159
220
  output_audio_tokens: Integer,
221
+ output_image_tokens: Integer,
222
+ output_text_tokens: Integer,
160
223
  project_id: String?,
161
224
  service_tier: String?,
162
225
  user_id: String?
@@ -89,9 +89,18 @@ module OpenAI
89
89
  api_key_id: String?,
90
90
  batch: bool?,
91
91
  input_audio_tokens: Integer,
92
+ input_cache_write_tokens: Integer,
93
+ input_cached_audio_tokens: Integer,
94
+ input_cached_image_tokens: Integer,
95
+ input_cached_text_tokens: Integer,
92
96
  input_cached_tokens: Integer,
97
+ input_image_tokens: Integer,
98
+ input_text_tokens: Integer,
99
+ input_uncached_tokens: Integer,
93
100
  model: String?,
94
101
  output_audio_tokens: Integer,
102
+ output_image_tokens: Integer,
103
+ output_text_tokens: Integer,
95
104
  project_id: String?,
96
105
  service_tier: String?,
97
106
  user_id: String?
@@ -114,16 +123,52 @@ module OpenAI
114
123
 
115
124
  def input_audio_tokens=: (Integer) -> Integer
116
125
 
126
+ attr_reader input_cache_write_tokens: Integer?
127
+
128
+ def input_cache_write_tokens=: (Integer) -> Integer
129
+
130
+ attr_reader input_cached_audio_tokens: Integer?
131
+
132
+ def input_cached_audio_tokens=: (Integer) -> Integer
133
+
134
+ attr_reader input_cached_image_tokens: Integer?
135
+
136
+ def input_cached_image_tokens=: (Integer) -> Integer
137
+
138
+ attr_reader input_cached_text_tokens: Integer?
139
+
140
+ def input_cached_text_tokens=: (Integer) -> Integer
141
+
117
142
  attr_reader input_cached_tokens: Integer?
118
143
 
119
144
  def input_cached_tokens=: (Integer) -> Integer
120
145
 
146
+ attr_reader input_image_tokens: Integer?
147
+
148
+ def input_image_tokens=: (Integer) -> Integer
149
+
150
+ attr_reader input_text_tokens: Integer?
151
+
152
+ def input_text_tokens=: (Integer) -> Integer
153
+
154
+ attr_reader input_uncached_tokens: Integer?
155
+
156
+ def input_uncached_tokens=: (Integer) -> Integer
157
+
121
158
  attr_accessor model: String?
122
159
 
123
160
  attr_reader output_audio_tokens: Integer?
124
161
 
125
162
  def output_audio_tokens=: (Integer) -> Integer
126
163
 
164
+ attr_reader output_image_tokens: Integer?
165
+
166
+ def output_image_tokens=: (Integer) -> Integer
167
+
168
+ attr_reader output_text_tokens: Integer?
169
+
170
+ def output_text_tokens=: (Integer) -> Integer
171
+
127
172
  attr_accessor project_id: String?
128
173
 
129
174
  attr_accessor service_tier: String?
@@ -137,9 +182,18 @@ module OpenAI
137
182
  ?api_key_id: String?,
138
183
  ?batch: bool?,
139
184
  ?input_audio_tokens: Integer,
185
+ ?input_cache_write_tokens: Integer,
186
+ ?input_cached_audio_tokens: Integer,
187
+ ?input_cached_image_tokens: Integer,
188
+ ?input_cached_text_tokens: Integer,
140
189
  ?input_cached_tokens: Integer,
190
+ ?input_image_tokens: Integer,
191
+ ?input_text_tokens: Integer,
192
+ ?input_uncached_tokens: Integer,
141
193
  ?model: String?,
142
194
  ?output_audio_tokens: Integer,
195
+ ?output_image_tokens: Integer,
196
+ ?output_text_tokens: Integer,
143
197
  ?project_id: String?,
144
198
  ?service_tier: String?,
145
199
  ?user_id: String?,
@@ -154,9 +208,18 @@ module OpenAI
154
208
  api_key_id: String?,
155
209
  batch: bool?,
156
210
  input_audio_tokens: Integer,
211
+ input_cache_write_tokens: Integer,
212
+ input_cached_audio_tokens: Integer,
213
+ input_cached_image_tokens: Integer,
214
+ input_cached_text_tokens: Integer,
157
215
  input_cached_tokens: Integer,
216
+ input_image_tokens: Integer,
217
+ input_text_tokens: Integer,
218
+ input_uncached_tokens: Integer,
158
219
  model: String?,
159
220
  output_audio_tokens: Integer,
221
+ output_image_tokens: Integer,
222
+ output_text_tokens: Integer,
160
223
  project_id: String?,
161
224
  service_tier: String?,
162
225
  user_id: String?
@@ -552,7 +552,7 @@ module OpenAI
552
552
  {
553
553
  text: String,
554
554
  type: :output_text,
555
- annotations: OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotations
555
+ annotations: ::Array[OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotation]
556
556
  }
557
557
 
558
558
  class Output < OpenAI::Internal::Type::BaseModel
@@ -560,33 +560,33 @@ module OpenAI
560
560
 
561
561
  attr_accessor type: :output_text
562
562
 
563
- attr_reader annotations: OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotations?
563
+ attr_reader annotations: ::Array[OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotation]?
564
564
 
565
565
  def annotations=: (
566
- OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotations
567
- ) -> OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotations
566
+ ::Array[OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotation]
567
+ ) -> ::Array[OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotation]
568
568
 
569
569
  def initialize: (
570
570
  text: String,
571
- ?annotations: OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotations,
571
+ ?annotations: ::Array[OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotation],
572
572
  ?type: :output_text
573
573
  ) -> void
574
574
 
575
575
  def to_hash: -> {
576
576
  text: String,
577
577
  type: :output_text,
578
- annotations: OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotations
578
+ annotations: ::Array[OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotation]
579
579
  }
580
580
 
581
- type annotations =
582
- ::Array[OpenAI::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::Annotations::UnionMember0]
583
- | ::Array[OpenAI::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::Annotations::UnionMember1]
584
- | ::Array[OpenAI::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::Annotations::UnionMember2]
581
+ type annotation =
582
+ OpenAI::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::Annotation::FileCitation
583
+ | OpenAI::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::Annotation::URLCitation
584
+ | OpenAI::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::Annotation::ContainerFileCitation
585
585
 
586
- module Annotations
586
+ module Annotation
587
587
  extend OpenAI::Internal::Type::Union
588
588
 
589
- type union_member0 =
589
+ type file_citation =
590
590
  {
591
591
  file_id: String,
592
592
  filename: String,
@@ -594,7 +594,7 @@ module OpenAI
594
594
  type: :file_citation
595
595
  }
596
596
 
597
- class UnionMember0 < OpenAI::Internal::Type::BaseModel
597
+ class FileCitation < OpenAI::Internal::Type::BaseModel
598
598
  attr_accessor file_id: String
599
599
 
600
600
  attr_accessor filename: String
@@ -618,7 +618,7 @@ module OpenAI
618
618
  }
619
619
  end
620
620
 
621
- type union_member1 =
621
+ type url_citation =
622
622
  {
623
623
  end_index: Integer,
624
624
  start_index: Integer,
@@ -627,7 +627,7 @@ module OpenAI
627
627
  url: String
628
628
  }
629
629
 
630
- class UnionMember1 < OpenAI::Internal::Type::BaseModel
630
+ class URLCitation < OpenAI::Internal::Type::BaseModel
631
631
  attr_accessor end_index: Integer
632
632
 
633
633
  attr_accessor start_index: Integer
@@ -655,7 +655,7 @@ module OpenAI
655
655
  }
656
656
  end
657
657
 
658
- type union_member2 =
658
+ type container_file_citation =
659
659
  {
660
660
  container_id: String,
661
661
  end_index: Integer,
@@ -665,7 +665,7 @@ module OpenAI
665
665
  type: :container_file_citation
666
666
  }
667
667
 
668
- class UnionMember2 < OpenAI::Internal::Type::BaseModel
668
+ class ContainerFileCitation < OpenAI::Internal::Type::BaseModel
669
669
  attr_accessor container_id: String
670
670
 
671
671
  attr_accessor end_index: Integer
@@ -697,13 +697,7 @@ module OpenAI
697
697
  }
698
698
  end
699
699
 
700
- def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotations]
701
-
702
- UnionMember0Array: OpenAI::Internal::Type::Converter
703
-
704
- UnionMember1Array: OpenAI::Internal::Type::Converter
705
-
706
- UnionMember2Array: OpenAI::Internal::Type::Converter
700
+ def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponseInputItem::MultiAgentCallOutput::Output::annotation]
707
701
  end
708
702
  end
709
703
 
@@ -0,0 +1,5 @@
1
+ module OpenAI
2
+ class Provider
3
+ def inspect: -> String
4
+ end
5
+ end
@@ -0,0 +1,15 @@
1
+ module OpenAI
2
+ module Providers
3
+ def self.bedrock: (
4
+ ?region: String?,
5
+ ?base_url: String?,
6
+ ?api_key: String?,
7
+ ?token_provider: (^-> String)?,
8
+ ?access_key_id: String?,
9
+ ?secret_access_key: String?,
10
+ ?session_token: String?,
11
+ ?profile: String?,
12
+ ?credentials_provider: untyped
13
+ ) -> OpenAI::Provider
14
+ end
15
+ end
@@ -0,0 +1,23 @@
1
+ module OpenAI
2
+ module Resources
3
+ class Admin
4
+ class Organization
5
+ class Projects
6
+ class ServiceAccounts
7
+ class APIKeys
8
+ def create: (
9
+ String service_account_id,
10
+ project_id: String,
11
+ ?name: String,
12
+ ?scopes: ::Array[String],
13
+ ?request_options: OpenAI::request_opts
14
+ ) -> OpenAI::Models::Admin::Organization::Projects::ServiceAccounts::APIKeyCreateResponse
15
+
16
+ def initialize: (client: OpenAI::Client) -> void
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -4,9 +4,12 @@ module OpenAI
4
4
  class Organization
5
5
  class Projects
6
6
  class ServiceAccounts
7
+ attr_reader api_keys: OpenAI::Resources::Admin::Organization::Projects::ServiceAccounts::APIKeys
8
+
7
9
  def create: (
8
10
  String project_id,
9
11
  name: String,
12
+ ?create_service_account_only: bool?,
10
13
  ?request_options: OpenAI::request_opts
11
14
  ) -> OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse
12
15
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.70.0
4
+ version: 0.71.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-07-14 00:00:00.000000000 Z
11
+ date: 2026-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -92,6 +92,7 @@ files:
92
92
  - lib/openai/internal/cursor_page.rb
93
93
  - lib/openai/internal/next_cursor_page.rb
94
94
  - lib/openai/internal/page.rb
95
+ - lib/openai/internal/provider.rb
95
96
  - lib/openai/internal/stream.rb
96
97
  - lib/openai/internal/transport/base_client.rb
97
98
  - lib/openai/internal/transport/pooled_net_requester.rb
@@ -228,6 +229,8 @@ files:
228
229
  - lib/openai/models/admin/organization/projects/service_account_list_params.rb
229
230
  - lib/openai/models/admin/organization/projects/service_account_retrieve_params.rb
230
231
  - lib/openai/models/admin/organization/projects/service_account_update_params.rb
232
+ - lib/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rb
233
+ - lib/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rb
231
234
  - lib/openai/models/admin/organization/projects/spend_alert_create_params.rb
232
235
  - lib/openai/models/admin/organization/projects/spend_alert_delete_params.rb
233
236
  - lib/openai/models/admin/organization/projects/spend_alert_list_params.rb
@@ -1179,6 +1182,8 @@ files:
1179
1182
  - lib/openai/models/webhooks/response_incomplete_webhook_event.rb
1180
1183
  - lib/openai/models/webhooks/unwrap_webhook_event.rb
1181
1184
  - lib/openai/models/webhooks/webhook_unwrap_params.rb
1185
+ - lib/openai/provider.rb
1186
+ - lib/openai/providers/bedrock.rb
1182
1187
  - lib/openai/request_options.rb
1183
1188
  - lib/openai/resources/admin.rb
1184
1189
  - lib/openai/resources/admin/organization.rb
@@ -1201,6 +1206,7 @@ files:
1201
1206
  - lib/openai/resources/admin/organization/projects/rate_limits.rb
1202
1207
  - lib/openai/resources/admin/organization/projects/roles.rb
1203
1208
  - lib/openai/resources/admin/organization/projects/service_accounts.rb
1209
+ - lib/openai/resources/admin/organization/projects/service_accounts/api_keys.rb
1204
1210
  - lib/openai/resources/admin/organization/projects/spend_alerts.rb
1205
1211
  - lib/openai/resources/admin/organization/projects/users.rb
1206
1212
  - lib/openai/resources/admin/organization/projects/users/roles.rb
@@ -1292,6 +1298,7 @@ files:
1292
1298
  - rbi/openai/internal/cursor_page.rbi
1293
1299
  - rbi/openai/internal/next_cursor_page.rbi
1294
1300
  - rbi/openai/internal/page.rbi
1301
+ - rbi/openai/internal/provider.rbi
1295
1302
  - rbi/openai/internal/stream.rbi
1296
1303
  - rbi/openai/internal/transport/base_client.rbi
1297
1304
  - rbi/openai/internal/transport/pooled_net_requester.rbi
@@ -1428,6 +1435,8 @@ files:
1428
1435
  - rbi/openai/models/admin/organization/projects/service_account_list_params.rbi
1429
1436
  - rbi/openai/models/admin/organization/projects/service_account_retrieve_params.rbi
1430
1437
  - rbi/openai/models/admin/organization/projects/service_account_update_params.rbi
1438
+ - rbi/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rbi
1439
+ - rbi/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rbi
1431
1440
  - rbi/openai/models/admin/organization/projects/spend_alert_create_params.rbi
1432
1441
  - rbi/openai/models/admin/organization/projects/spend_alert_delete_params.rbi
1433
1442
  - rbi/openai/models/admin/organization/projects/spend_alert_list_params.rbi
@@ -2378,6 +2387,8 @@ files:
2378
2387
  - rbi/openai/models/webhooks/response_incomplete_webhook_event.rbi
2379
2388
  - rbi/openai/models/webhooks/unwrap_webhook_event.rbi
2380
2389
  - rbi/openai/models/webhooks/webhook_unwrap_params.rbi
2390
+ - rbi/openai/provider.rbi
2391
+ - rbi/openai/providers.rbi
2381
2392
  - rbi/openai/request_options.rbi
2382
2393
  - rbi/openai/resources/admin.rbi
2383
2394
  - rbi/openai/resources/admin/organization.rbi
@@ -2400,6 +2411,7 @@ files:
2400
2411
  - rbi/openai/resources/admin/organization/projects/rate_limits.rbi
2401
2412
  - rbi/openai/resources/admin/organization/projects/roles.rbi
2402
2413
  - rbi/openai/resources/admin/organization/projects/service_accounts.rbi
2414
+ - rbi/openai/resources/admin/organization/projects/service_accounts/api_keys.rbi
2403
2415
  - rbi/openai/resources/admin/organization/projects/spend_alerts.rbi
2404
2416
  - rbi/openai/resources/admin/organization/projects/users.rbi
2405
2417
  - rbi/openai/resources/admin/organization/projects/users/roles.rbi
@@ -2480,6 +2492,7 @@ files:
2480
2492
  - sig/openai/internal/cursor_page.rbs
2481
2493
  - sig/openai/internal/next_cursor_page.rbs
2482
2494
  - sig/openai/internal/page.rbs
2495
+ - sig/openai/internal/provider.rbs
2483
2496
  - sig/openai/internal/stream.rbs
2484
2497
  - sig/openai/internal/transport/base_client.rbs
2485
2498
  - sig/openai/internal/transport/pooled_net_requester.rbs
@@ -2616,6 +2629,8 @@ files:
2616
2629
  - sig/openai/models/admin/organization/projects/service_account_list_params.rbs
2617
2630
  - sig/openai/models/admin/organization/projects/service_account_retrieve_params.rbs
2618
2631
  - sig/openai/models/admin/organization/projects/service_account_update_params.rbs
2632
+ - sig/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rbs
2633
+ - sig/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rbs
2619
2634
  - sig/openai/models/admin/organization/projects/spend_alert_create_params.rbs
2620
2635
  - sig/openai/models/admin/organization/projects/spend_alert_delete_params.rbs
2621
2636
  - sig/openai/models/admin/organization/projects/spend_alert_list_params.rbs
@@ -3566,6 +3581,8 @@ files:
3566
3581
  - sig/openai/models/webhooks/response_incomplete_webhook_event.rbs
3567
3582
  - sig/openai/models/webhooks/unwrap_webhook_event.rbs
3568
3583
  - sig/openai/models/webhooks/webhook_unwrap_params.rbs
3584
+ - sig/openai/provider.rbs
3585
+ - sig/openai/providers.rbs
3569
3586
  - sig/openai/request_options.rbs
3570
3587
  - sig/openai/resources/admin.rbs
3571
3588
  - sig/openai/resources/admin/organization.rbs
@@ -3588,6 +3605,7 @@ files:
3588
3605
  - sig/openai/resources/admin/organization/projects/rate_limits.rbs
3589
3606
  - sig/openai/resources/admin/organization/projects/roles.rbs
3590
3607
  - sig/openai/resources/admin/organization/projects/service_accounts.rbs
3608
+ - sig/openai/resources/admin/organization/projects/service_accounts/api_keys.rbs
3591
3609
  - sig/openai/resources/admin/organization/projects/spend_alerts.rbs
3592
3610
  - sig/openai/resources/admin/organization/projects/users.rbs
3593
3611
  - sig/openai/resources/admin/organization/projects/users/roles.rbs