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
@@ -24,10 +24,15 @@ module OpenAI
24
24
  sig { returns(String) }
25
25
  attr_accessor :name
26
26
 
27
+ # Create the service account without default roles or an API key.
28
+ sig { returns(T.nilable(T::Boolean)) }
29
+ attr_accessor :create_service_account_only
30
+
27
31
  sig do
28
32
  params(
29
33
  project_id: String,
30
34
  name: String,
35
+ create_service_account_only: T.nilable(T::Boolean),
31
36
  request_options: OpenAI::RequestOptions::OrHash
32
37
  ).returns(T.attached_class)
33
38
  end
@@ -35,6 +40,8 @@ module OpenAI
35
40
  project_id:,
36
41
  # The name of the service account being created.
37
42
  name:,
43
+ # Create the service account without default roles or an API key.
44
+ create_service_account_only: nil,
38
45
  request_options: {}
39
46
  )
40
47
  end
@@ -44,6 +51,7 @@ module OpenAI
44
51
  {
45
52
  project_id: String,
46
53
  name: String,
54
+ create_service_account_only: T.nilable(T::Boolean),
47
55
  request_options: OpenAI::RequestOptions
48
56
  }
49
57
  )
@@ -45,8 +45,13 @@ module OpenAI
45
45
  sig { returns(Symbol) }
46
46
  attr_accessor :object
47
47
 
48
- # Service accounts can only have one role of type `member`
49
- sig { returns(Symbol) }
48
+ # Service accounts created with default project membership have role `member`.
49
+ # Accounts created with `create_service_account_only` have role `none`.
50
+ sig do
51
+ returns(
52
+ OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::Role::TaggedSymbol
53
+ )
54
+ end
50
55
  attr_accessor :role
51
56
 
52
57
  sig do
@@ -58,8 +63,9 @@ module OpenAI
58
63
  ),
59
64
  created_at: Integer,
60
65
  name: String,
61
- object: Symbol,
62
- role: Symbol
66
+ role:
67
+ OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::Role::OrSymbol,
68
+ object: Symbol
63
69
  ).returns(T.attached_class)
64
70
  end
65
71
  def self.new(
@@ -67,9 +73,10 @@ module OpenAI
67
73
  api_key:,
68
74
  created_at:,
69
75
  name:,
70
- object: :"organization.project.service_account",
71
- # Service accounts can only have one role of type `member`
72
- role: :member
76
+ # Service accounts created with default project membership have role `member`.
77
+ # Accounts created with `create_service_account_only` have role `none`.
78
+ role:,
79
+ object: :"organization.project.service_account"
73
80
  )
74
81
  end
75
82
 
@@ -84,7 +91,8 @@ module OpenAI
84
91
  created_at: Integer,
85
92
  name: String,
86
93
  object: Symbol,
87
- role: Symbol
94
+ role:
95
+ OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::Role::TaggedSymbol
88
96
  }
89
97
  )
90
98
  end
@@ -149,6 +157,42 @@ module OpenAI
149
157
  def to_hash
150
158
  end
151
159
  end
160
+
161
+ # Service accounts created with default project membership have role `member`.
162
+ # Accounts created with `create_service_account_only` have role `none`.
163
+ module Role
164
+ extend OpenAI::Internal::Type::Enum
165
+
166
+ TaggedSymbol =
167
+ T.type_alias do
168
+ T.all(
169
+ Symbol,
170
+ OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::Role
171
+ )
172
+ end
173
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
174
+
175
+ MEMBER =
176
+ T.let(
177
+ :member,
178
+ OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::Role::TaggedSymbol
179
+ )
180
+ NONE =
181
+ T.let(
182
+ :none,
183
+ OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::Role::TaggedSymbol
184
+ )
185
+
186
+ sig do
187
+ override.returns(
188
+ T::Array[
189
+ OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::Role::TaggedSymbol
190
+ ]
191
+ )
192
+ end
193
+ def self.values
194
+ end
195
+ end
152
196
  end
153
197
  end
154
198
  end
@@ -0,0 +1,84 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ module ServiceAccounts
9
+ class APIKeyCreateParams < OpenAI::Internal::Type::BaseModel
10
+ extend OpenAI::Internal::Type::RequestParameters::Converter
11
+ include OpenAI::Internal::Type::RequestParameters
12
+
13
+ OrHash =
14
+ T.type_alias do
15
+ T.any(
16
+ OpenAI::Admin::Organization::Projects::ServiceAccounts::APIKeyCreateParams,
17
+ OpenAI::Internal::AnyHash
18
+ )
19
+ end
20
+
21
+ # The ID of the project.
22
+ sig { returns(String) }
23
+ attr_accessor :project_id
24
+
25
+ # The ID of the service account.
26
+ sig { returns(String) }
27
+ attr_accessor :service_account_id
28
+
29
+ # API key name.
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :name
32
+
33
+ sig { params(name: String).void }
34
+ attr_writer :name
35
+
36
+ # API key scopes.
37
+ sig { returns(T.nilable(T::Array[String])) }
38
+ attr_reader :scopes
39
+
40
+ sig { params(scopes: T::Array[String]).void }
41
+ attr_writer :scopes
42
+
43
+ sig do
44
+ params(
45
+ project_id: String,
46
+ service_account_id: String,
47
+ name: String,
48
+ scopes: T::Array[String],
49
+ request_options: OpenAI::RequestOptions::OrHash
50
+ ).returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+ # The ID of the project.
54
+ project_id:,
55
+ # The ID of the service account.
56
+ service_account_id:,
57
+ # API key name.
58
+ name: nil,
59
+ # API key scopes.
60
+ scopes: nil,
61
+ request_options: {}
62
+ )
63
+ end
64
+
65
+ sig do
66
+ override.returns(
67
+ {
68
+ project_id: String,
69
+ service_account_id: String,
70
+ name: String,
71
+ scopes: T::Array[String],
72
+ request_options: OpenAI::RequestOptions
73
+ }
74
+ )
75
+ end
76
+ def to_hash
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,80 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ module ServiceAccounts
9
+ class APIKeyCreateResponse < OpenAI::Internal::Type::BaseModel
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ OpenAI::Models::Admin::Organization::Projects::ServiceAccounts::APIKeyCreateResponse,
14
+ OpenAI::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # The identifier of the API key.
19
+ sig { returns(String) }
20
+ attr_accessor :id
21
+
22
+ # The Unix timestamp (in seconds) when the API key was created.
23
+ sig { returns(Integer) }
24
+ attr_accessor :created_at
25
+
26
+ # The name of the API key.
27
+ sig { returns(String) }
28
+ attr_accessor :name
29
+
30
+ # The object type, which is always `organization.project.service_account.api_key`
31
+ sig { returns(Symbol) }
32
+ attr_accessor :object
33
+
34
+ # The unredacted API key value.
35
+ sig { returns(String) }
36
+ attr_accessor :value
37
+
38
+ sig do
39
+ params(
40
+ id: String,
41
+ created_at: Integer,
42
+ name: String,
43
+ value: String,
44
+ object: Symbol
45
+ ).returns(T.attached_class)
46
+ end
47
+ def self.new(
48
+ # The identifier of the API key.
49
+ id:,
50
+ # The Unix timestamp (in seconds) when the API key was created.
51
+ created_at:,
52
+ # The name of the API key.
53
+ name:,
54
+ # The unredacted API key value.
55
+ value:,
56
+ # The object type, which is always `organization.project.service_account.api_key`
57
+ object: :"organization.project.service_account.api_key"
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ id: String,
65
+ created_at: Integer,
66
+ name: String,
67
+ object: Symbol,
68
+ value: String
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,44 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ class SpendLimitDeleteParams < OpenAI::Internal::Type::BaseModel
9
+ extend OpenAI::Internal::Type::RequestParameters::Converter
10
+ include OpenAI::Internal::Type::RequestParameters
11
+
12
+ OrHash =
13
+ T.type_alias do
14
+ T.any(
15
+ OpenAI::Admin::Organization::Projects::SpendLimitDeleteParams,
16
+ OpenAI::Internal::AnyHash
17
+ )
18
+ end
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :project_id
22
+
23
+ sig do
24
+ params(
25
+ project_id: String,
26
+ request_options: OpenAI::RequestOptions::OrHash
27
+ ).returns(T.attached_class)
28
+ end
29
+ def self.new(project_id:, request_options: {})
30
+ end
31
+
32
+ sig do
33
+ override.returns(
34
+ { project_id: String, request_options: OpenAI::RequestOptions }
35
+ )
36
+ end
37
+ def to_hash
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ class SpendLimitRetrieveParams < OpenAI::Internal::Type::BaseModel
9
+ extend OpenAI::Internal::Type::RequestParameters::Converter
10
+ include OpenAI::Internal::Type::RequestParameters
11
+
12
+ OrHash =
13
+ T.type_alias do
14
+ T.any(
15
+ OpenAI::Admin::Organization::Projects::SpendLimitRetrieveParams,
16
+ OpenAI::Internal::AnyHash
17
+ )
18
+ end
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :project_id
22
+
23
+ sig do
24
+ params(
25
+ project_id: String,
26
+ request_options: OpenAI::RequestOptions::OrHash
27
+ ).returns(T.attached_class)
28
+ end
29
+ def self.new(project_id:, request_options: {})
30
+ end
31
+
32
+ sig do
33
+ override.returns(
34
+ { project_id: String, request_options: OpenAI::RequestOptions }
35
+ )
36
+ end
37
+ def to_hash
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,149 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ class SpendLimitUpdateParams < OpenAI::Internal::Type::BaseModel
9
+ extend OpenAI::Internal::Type::RequestParameters::Converter
10
+ include OpenAI::Internal::Type::RequestParameters
11
+
12
+ OrHash =
13
+ T.type_alias do
14
+ T.any(
15
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams,
16
+ OpenAI::Internal::AnyHash
17
+ )
18
+ end
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :project_id
22
+
23
+ # The currency for the threshold amount. Currently, only `USD` is supported.
24
+ sig do
25
+ returns(
26
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Currency::OrSymbol
27
+ )
28
+ end
29
+ attr_accessor :currency
30
+
31
+ # The time interval for evaluating spend against the threshold. Currently, only
32
+ # `month` is supported.
33
+ sig do
34
+ returns(
35
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Interval::OrSymbol
36
+ )
37
+ end
38
+ attr_accessor :interval
39
+
40
+ # The hard spend limit amount, in cents.
41
+ sig { returns(Integer) }
42
+ attr_accessor :threshold_amount
43
+
44
+ sig do
45
+ params(
46
+ project_id: String,
47
+ currency:
48
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Currency::OrSymbol,
49
+ interval:
50
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Interval::OrSymbol,
51
+ threshold_amount: Integer,
52
+ request_options: OpenAI::RequestOptions::OrHash
53
+ ).returns(T.attached_class)
54
+ end
55
+ def self.new(
56
+ project_id:,
57
+ # The currency for the threshold amount. Currently, only `USD` is supported.
58
+ currency:,
59
+ # The time interval for evaluating spend against the threshold. Currently, only
60
+ # `month` is supported.
61
+ interval:,
62
+ # The hard spend limit amount, in cents.
63
+ threshold_amount:,
64
+ request_options: {}
65
+ )
66
+ end
67
+
68
+ sig do
69
+ override.returns(
70
+ {
71
+ project_id: String,
72
+ currency:
73
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Currency::OrSymbol,
74
+ interval:
75
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Interval::OrSymbol,
76
+ threshold_amount: Integer,
77
+ request_options: OpenAI::RequestOptions
78
+ }
79
+ )
80
+ end
81
+ def to_hash
82
+ end
83
+
84
+ # The currency for the threshold amount. Currently, only `USD` is supported.
85
+ module Currency
86
+ extend OpenAI::Internal::Type::Enum
87
+
88
+ TaggedSymbol =
89
+ T.type_alias do
90
+ T.all(
91
+ Symbol,
92
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Currency
93
+ )
94
+ end
95
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
96
+
97
+ USD =
98
+ T.let(
99
+ :USD,
100
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Currency::TaggedSymbol
101
+ )
102
+
103
+ sig do
104
+ override.returns(
105
+ T::Array[
106
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Currency::TaggedSymbol
107
+ ]
108
+ )
109
+ end
110
+ def self.values
111
+ end
112
+ end
113
+
114
+ # The time interval for evaluating spend against the threshold. Currently, only
115
+ # `month` is supported.
116
+ module Interval
117
+ extend OpenAI::Internal::Type::Enum
118
+
119
+ TaggedSymbol =
120
+ T.type_alias do
121
+ T.all(
122
+ Symbol,
123
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Interval
124
+ )
125
+ end
126
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
127
+
128
+ MONTH =
129
+ T.let(
130
+ :month,
131
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Interval::TaggedSymbol
132
+ )
133
+
134
+ sig do
135
+ override.returns(
136
+ T::Array[
137
+ OpenAI::Admin::Organization::Projects::SpendLimitUpdateParams::Interval::TaggedSymbol
138
+ ]
139
+ )
140
+ end
141
+ def self.values
142
+ end
143
+ end
144
+ end
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,34 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ class SpendLimitDeleteParams < OpenAI::Internal::Type::BaseModel
8
+ extend OpenAI::Internal::Type::RequestParameters::Converter
9
+ include OpenAI::Internal::Type::RequestParameters
10
+
11
+ OrHash =
12
+ T.type_alias do
13
+ T.any(
14
+ OpenAI::Admin::Organization::SpendLimitDeleteParams,
15
+ OpenAI::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ sig do
20
+ params(request_options: OpenAI::RequestOptions::OrHash).returns(
21
+ T.attached_class
22
+ )
23
+ end
24
+ def self.new(request_options: {})
25
+ end
26
+
27
+ sig { override.returns({ request_options: OpenAI::RequestOptions }) }
28
+ def to_hash
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,34 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ class SpendLimitRetrieveParams < OpenAI::Internal::Type::BaseModel
8
+ extend OpenAI::Internal::Type::RequestParameters::Converter
9
+ include OpenAI::Internal::Type::RequestParameters
10
+
11
+ OrHash =
12
+ T.type_alias do
13
+ T.any(
14
+ OpenAI::Admin::Organization::SpendLimitRetrieveParams,
15
+ OpenAI::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ sig do
20
+ params(request_options: OpenAI::RequestOptions::OrHash).returns(
21
+ T.attached_class
22
+ )
23
+ end
24
+ def self.new(request_options: {})
25
+ end
26
+
27
+ sig { override.returns({ request_options: OpenAI::RequestOptions }) }
28
+ def to_hash
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end