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
@@ -0,0 +1,151 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ # @see OpenAI::Resources::Admin::Organization::SpendLimit#retrieve
8
+ class OrganizationSpendLimit < OpenAI::Internal::Type::BaseModel
9
+ # @!attribute currency
10
+ # The currency for the threshold amount. Currently, only `USD` is supported.
11
+ #
12
+ # @return [String, Symbol, OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Currency]
13
+ required :currency, union: -> { OpenAI::Admin::Organization::OrganizationSpendLimit::Currency }
14
+
15
+ # @!attribute enforcement
16
+ # The current enforcement state of the hard spend limit.
17
+ #
18
+ # @return [OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Enforcement]
19
+ required :enforcement, -> { OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement }
20
+
21
+ # @!attribute interval
22
+ # The time interval for evaluating spend against the threshold. Currently, only
23
+ # `month` is supported.
24
+ #
25
+ # @return [String, Symbol, OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Interval]
26
+ required :interval, union: -> { OpenAI::Admin::Organization::OrganizationSpendLimit::Interval }
27
+
28
+ # @!attribute object
29
+ # The object type, which is always `organization.spend_limit`.
30
+ #
31
+ # @return [Symbol, :"organization.spend_limit"]
32
+ required :object, const: :"organization.spend_limit"
33
+
34
+ # @!attribute threshold_amount
35
+ # The hard spend limit amount, in cents.
36
+ #
37
+ # @return [Integer]
38
+ required :threshold_amount, Integer
39
+
40
+ # @!method initialize(currency:, enforcement:, interval:, threshold_amount:, object: :"organization.spend_limit")
41
+ # Some parameter documentations has been truncated, see
42
+ # {OpenAI::Models::Admin::Organization::OrganizationSpendLimit} for more details.
43
+ #
44
+ # Represents a hard spend limit configured at the organization level.
45
+ #
46
+ # @param currency [String, Symbol, OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Currency] The currency for the threshold amount. Currently, only `USD` is supported.
47
+ #
48
+ # @param enforcement [OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Enforcement] The current enforcement state of the hard spend limit.
49
+ #
50
+ # @param interval [String, Symbol, OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Interval] The time interval for evaluating spend against the threshold. Currently, only `m
51
+ #
52
+ # @param threshold_amount [Integer] The hard spend limit amount, in cents.
53
+ #
54
+ # @param object [Symbol, :"organization.spend_limit"] The object type, which is always `organization.spend_limit`.
55
+
56
+ # The currency for the threshold amount. Currently, only `USD` is supported.
57
+ #
58
+ # @see OpenAI::Models::Admin::Organization::OrganizationSpendLimit#currency
59
+ module Currency
60
+ extend OpenAI::Internal::Type::Union
61
+
62
+ variant String
63
+
64
+ variant const: -> { OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Currency::USD }
65
+
66
+ # @!method self.variants
67
+ # @return [Array(String, Symbol)]
68
+
69
+ define_sorbet_constant!(:Variants) do
70
+ T.type_alias { T.any(String, OpenAI::Admin::Organization::OrganizationSpendLimit::Currency::TaggedSymbol) }
71
+ end
72
+
73
+ # @!group
74
+
75
+ USD = :USD
76
+
77
+ # @!endgroup
78
+ end
79
+
80
+ # @see OpenAI::Models::Admin::Organization::OrganizationSpendLimit#enforcement
81
+ class Enforcement < OpenAI::Internal::Type::BaseModel
82
+ # @!attribute status
83
+ # Whether the hard spend limit is currently enforcing.
84
+ #
85
+ # @return [String, Symbol, OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Enforcement::Status]
86
+ required :status, union: -> { OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement::Status }
87
+
88
+ # @!method initialize(status:)
89
+ # The current enforcement state of the hard spend limit.
90
+ #
91
+ # @param status [String, Symbol, OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Enforcement::Status] Whether the hard spend limit is currently enforcing.
92
+
93
+ # Whether the hard spend limit is currently enforcing.
94
+ #
95
+ # @see OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Enforcement#status
96
+ module Status
97
+ extend OpenAI::Internal::Type::Union
98
+
99
+ variant String
100
+
101
+ variant const: -> { OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Enforcement::Status::INACTIVE }
102
+
103
+ variant const: -> { OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Enforcement::Status::ENFORCING }
104
+
105
+ # @!method self.variants
106
+ # @return [Array(String, Symbol)]
107
+
108
+ define_sorbet_constant!(:Variants) do
109
+ T.type_alias { T.any(String, OpenAI::Admin::Organization::OrganizationSpendLimit::Enforcement::Status::TaggedSymbol) }
110
+ end
111
+
112
+ # @!group
113
+
114
+ INACTIVE = :inactive
115
+ ENFORCING = :enforcing
116
+
117
+ # @!endgroup
118
+ end
119
+ end
120
+
121
+ # The time interval for evaluating spend against the threshold. Currently, only
122
+ # `month` is supported.
123
+ #
124
+ # @see OpenAI::Models::Admin::Organization::OrganizationSpendLimit#interval
125
+ module Interval
126
+ extend OpenAI::Internal::Type::Union
127
+
128
+ variant String
129
+
130
+ variant const: -> { OpenAI::Models::Admin::Organization::OrganizationSpendLimit::Interval::MONTH }
131
+
132
+ # @!method self.variants
133
+ # @return [Array(String, Symbol)]
134
+
135
+ define_sorbet_constant!(:Variants) do
136
+ T.type_alias { T.any(String, OpenAI::Admin::Organization::OrganizationSpendLimit::Interval::TaggedSymbol) }
137
+ end
138
+
139
+ # @!group
140
+
141
+ MONTH = :month
142
+
143
+ # @!endgroup
144
+ end
145
+ end
146
+ end
147
+
148
+ OrganizationSpendLimit = Organization::OrganizationSpendLimit
149
+ end
150
+ end
151
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ # @see OpenAI::Resources::Admin::Organization::SpendLimit#delete
8
+ class OrganizationSpendLimitDeleted < OpenAI::Internal::Type::BaseModel
9
+ # @!attribute deleted
10
+ # Whether the hard spend limit was deleted.
11
+ #
12
+ # @return [Boolean]
13
+ required :deleted, OpenAI::Internal::Type::Boolean
14
+
15
+ # @!attribute object
16
+ # The object type, which is always `organization.spend_limit.deleted`.
17
+ #
18
+ # @return [Symbol, :"organization.spend_limit.deleted"]
19
+ required :object, const: :"organization.spend_limit.deleted"
20
+
21
+ # @!method initialize(deleted:, object: :"organization.spend_limit.deleted")
22
+ # Confirmation payload returned after deleting an organization hard spend limit.
23
+ #
24
+ # @param deleted [Boolean] Whether the hard spend limit was deleted.
25
+ #
26
+ # @param object [Symbol, :"organization.spend_limit.deleted"] The object type, which is always `organization.spend_limit.deleted`.
27
+ end
28
+ end
29
+
30
+ OrganizationSpendLimitDeleted = Organization::OrganizationSpendLimitDeleted
31
+ end
32
+ end
33
+ end
@@ -32,7 +32,7 @@ module OpenAI
32
32
  required :object, const: :"organization.project.service_account"
33
33
 
34
34
  # @!attribute role
35
- # `owner` or `member`
35
+ # `owner`, `member`, or `none`
36
36
  #
37
37
  # @return [Symbol, OpenAI::Models::Admin::Organization::Projects::ProjectServiceAccount::Role]
38
38
  required :role, enum: -> { OpenAI::Admin::Organization::Projects::ProjectServiceAccount::Role }
@@ -46,11 +46,11 @@ module OpenAI
46
46
  #
47
47
  # @param name [String] The name of the service account
48
48
  #
49
- # @param role [Symbol, OpenAI::Models::Admin::Organization::Projects::ProjectServiceAccount::Role] `owner` or `member`
49
+ # @param role [Symbol, OpenAI::Models::Admin::Organization::Projects::ProjectServiceAccount::Role] `owner`, `member`, or `none`
50
50
  #
51
51
  # @param object [Symbol, :"organization.project.service_account"] The object type, which is always `organization.project.service_account`
52
52
 
53
- # `owner` or `member`
53
+ # `owner`, `member`, or `none`
54
54
  #
55
55
  # @see OpenAI::Models::Admin::Organization::Projects::ProjectServiceAccount#role
56
56
  module Role
@@ -58,6 +58,7 @@ module OpenAI
58
58
 
59
59
  OWNER = :owner
60
60
  MEMBER = :member
61
+ NONE = :none
61
62
 
62
63
  # @!method self.values
63
64
  # @return [Array<Symbol>]
@@ -0,0 +1,155 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ # @see OpenAI::Resources::Admin::Organization::Projects::SpendLimit#retrieve
9
+ class ProjectSpendLimit < OpenAI::Internal::Type::BaseModel
10
+ # @!attribute currency
11
+ # The currency for the threshold amount. Currently, only `USD` is supported.
12
+ #
13
+ # @return [String, Symbol, OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Currency]
14
+ required :currency, union: -> { OpenAI::Admin::Organization::Projects::ProjectSpendLimit::Currency }
15
+
16
+ # @!attribute enforcement
17
+ # The current enforcement state of the hard spend limit.
18
+ #
19
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Enforcement]
20
+ required :enforcement, -> { OpenAI::Admin::Organization::Projects::ProjectSpendLimit::Enforcement }
21
+
22
+ # @!attribute interval
23
+ # The time interval for evaluating spend against the threshold. Currently, only
24
+ # `month` is supported.
25
+ #
26
+ # @return [String, Symbol, OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Interval]
27
+ required :interval, union: -> { OpenAI::Admin::Organization::Projects::ProjectSpendLimit::Interval }
28
+
29
+ # @!attribute object
30
+ # The object type, which is always `project.spend_limit`.
31
+ #
32
+ # @return [Symbol, :"project.spend_limit"]
33
+ required :object, const: :"project.spend_limit"
34
+
35
+ # @!attribute threshold_amount
36
+ # The hard spend limit amount, in cents.
37
+ #
38
+ # @return [Integer]
39
+ required :threshold_amount, Integer
40
+
41
+ # @!method initialize(currency:, enforcement:, interval:, threshold_amount:, object: :"project.spend_limit")
42
+ # Some parameter documentations has been truncated, see
43
+ # {OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit} for more
44
+ # details.
45
+ #
46
+ # Represents a hard spend limit configured at the project level.
47
+ #
48
+ # @param currency [String, Symbol, OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Currency] The currency for the threshold amount. Currently, only `USD` is supported.
49
+ #
50
+ # @param enforcement [OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Enforcement] The current enforcement state of the hard spend limit.
51
+ #
52
+ # @param interval [String, Symbol, OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Interval] The time interval for evaluating spend against the threshold. Currently, only `m
53
+ #
54
+ # @param threshold_amount [Integer] The hard spend limit amount, in cents.
55
+ #
56
+ # @param object [Symbol, :"project.spend_limit"] The object type, which is always `project.spend_limit`.
57
+
58
+ # The currency for the threshold amount. Currently, only `USD` is supported.
59
+ #
60
+ # @see OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit#currency
61
+ module Currency
62
+ extend OpenAI::Internal::Type::Union
63
+
64
+ variant String
65
+
66
+ variant const: -> { OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Currency::USD }
67
+
68
+ # @!method self.variants
69
+ # @return [Array(String, Symbol)]
70
+
71
+ define_sorbet_constant!(:Variants) do
72
+ T.type_alias { T.any(String, OpenAI::Admin::Organization::Projects::ProjectSpendLimit::Currency::TaggedSymbol) }
73
+ end
74
+
75
+ # @!group
76
+
77
+ USD = :USD
78
+
79
+ # @!endgroup
80
+ end
81
+
82
+ # @see OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit#enforcement
83
+ class Enforcement < OpenAI::Internal::Type::BaseModel
84
+ # @!attribute status
85
+ # Whether the hard spend limit is currently enforcing.
86
+ #
87
+ # @return [String, Symbol, OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Enforcement::Status]
88
+ required :status,
89
+ union: -> { OpenAI::Admin::Organization::Projects::ProjectSpendLimit::Enforcement::Status }
90
+
91
+ # @!method initialize(status:)
92
+ # The current enforcement state of the hard spend limit.
93
+ #
94
+ # @param status [String, Symbol, OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Enforcement::Status] Whether the hard spend limit is currently enforcing.
95
+
96
+ # Whether the hard spend limit is currently enforcing.
97
+ #
98
+ # @see OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Enforcement#status
99
+ module Status
100
+ extend OpenAI::Internal::Type::Union
101
+
102
+ variant String
103
+
104
+ variant const: -> { OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Enforcement::Status::INACTIVE }
105
+
106
+ variant const: -> { OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Enforcement::Status::ENFORCING }
107
+
108
+ # @!method self.variants
109
+ # @return [Array(String, Symbol)]
110
+
111
+ define_sorbet_constant!(:Variants) do
112
+ T.type_alias { T.any(String, OpenAI::Admin::Organization::Projects::ProjectSpendLimit::Enforcement::Status::TaggedSymbol) }
113
+ end
114
+
115
+ # @!group
116
+
117
+ INACTIVE = :inactive
118
+ ENFORCING = :enforcing
119
+
120
+ # @!endgroup
121
+ end
122
+ end
123
+
124
+ # The time interval for evaluating spend against the threshold. Currently, only
125
+ # `month` is supported.
126
+ #
127
+ # @see OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit#interval
128
+ module Interval
129
+ extend OpenAI::Internal::Type::Union
130
+
131
+ variant String
132
+
133
+ variant const: -> { OpenAI::Models::Admin::Organization::Projects::ProjectSpendLimit::Interval::MONTH }
134
+
135
+ # @!method self.variants
136
+ # @return [Array(String, Symbol)]
137
+
138
+ define_sorbet_constant!(:Variants) do
139
+ T.type_alias { T.any(String, OpenAI::Admin::Organization::Projects::ProjectSpendLimit::Interval::TaggedSymbol) }
140
+ end
141
+
142
+ # @!group
143
+
144
+ MONTH = :month
145
+
146
+ # @!endgroup
147
+ end
148
+ end
149
+ end
150
+
151
+ ProjectSpendLimit = Projects::ProjectSpendLimit
152
+ end
153
+ end
154
+ end
155
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ # @see OpenAI::Resources::Admin::Organization::Projects::SpendLimit#delete
9
+ class ProjectSpendLimitDeleted < OpenAI::Internal::Type::BaseModel
10
+ # @!attribute deleted
11
+ # Whether the hard spend limit was deleted.
12
+ #
13
+ # @return [Boolean]
14
+ required :deleted, OpenAI::Internal::Type::Boolean
15
+
16
+ # @!attribute object
17
+ # The object type, which is always `project.spend_limit.deleted`.
18
+ #
19
+ # @return [Symbol, :"project.spend_limit.deleted"]
20
+ required :object, const: :"project.spend_limit.deleted"
21
+
22
+ # @!method initialize(deleted:, object: :"project.spend_limit.deleted")
23
+ # Confirmation payload returned after deleting a project hard spend limit.
24
+ #
25
+ # @param deleted [Boolean] Whether the hard spend limit was deleted.
26
+ #
27
+ # @param object [Symbol, :"project.spend_limit.deleted"] The object type, which is always `project.spend_limit.deleted`.
28
+ end
29
+ end
30
+
31
+ ProjectSpendLimitDeleted = Projects::ProjectSpendLimitDeleted
32
+ end
33
+ end
34
+ end
35
+ end
@@ -21,11 +21,19 @@ module OpenAI
21
21
  # @return [String]
22
22
  required :name, String
23
23
 
24
- # @!method initialize(project_id:, name:, request_options: {})
24
+ # @!attribute create_service_account_only
25
+ # Create the service account without default roles or an API key.
26
+ #
27
+ # @return [Boolean, nil]
28
+ optional :create_service_account_only, OpenAI::Internal::Type::Boolean, nil?: true
29
+
30
+ # @!method initialize(project_id:, name:, create_service_account_only: nil, request_options: {})
25
31
  # @param project_id [String]
26
32
  #
27
33
  # @param name [String] The name of the service account being created.
28
34
  #
35
+ # @param create_service_account_only [Boolean, nil] Create the service account without default roles or an API key.
36
+ #
29
37
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
30
38
  end
31
39
  end
@@ -35,12 +35,18 @@ module OpenAI
35
35
  required :object, const: :"organization.project.service_account"
36
36
 
37
37
  # @!attribute role
38
- # Service accounts can only have one role of type `member`
38
+ # Service accounts created with default project membership have role `member`.
39
+ # Accounts created with `create_service_account_only` have role `none`.
39
40
  #
40
- # @return [Symbol, :member]
41
- required :role, const: :member
41
+ # @return [Symbol, OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::Role]
42
+ required :role,
43
+ enum: -> { OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::Role }
42
44
 
43
- # @!method initialize(id:, api_key:, created_at:, name:, object: :"organization.project.service_account", role: :member)
45
+ # @!method initialize(id:, api_key:, created_at:, name:, role:, object: :"organization.project.service_account")
46
+ # Some parameter documentations has been truncated, see
47
+ # {OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse}
48
+ # for more details.
49
+ #
44
50
  # @param id [String]
45
51
  #
46
52
  # @param api_key [OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::APIKey, nil]
@@ -49,9 +55,9 @@ module OpenAI
49
55
  #
50
56
  # @param name [String]
51
57
  #
52
- # @param object [Symbol, :"organization.project.service_account"]
58
+ # @param role [Symbol, OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse::Role] Service accounts created with default project membership have role `member`. Acc
53
59
  #
54
- # @param role [Symbol, :member] Service accounts can only have one role of type `member`
60
+ # @param object [Symbol, :"organization.project.service_account"]
55
61
 
56
62
  # @see OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse#api_key
57
63
  class APIKey < OpenAI::Internal::Type::BaseModel
@@ -92,6 +98,20 @@ module OpenAI
92
98
  #
93
99
  # @param object [Symbol, :"organization.project.service_account.api_key"] The object type, which is always `organization.project.service_account.api_key`
94
100
  end
101
+
102
+ # Service accounts created with default project membership have role `member`.
103
+ # Accounts created with `create_service_account_only` have role `none`.
104
+ #
105
+ # @see OpenAI::Models::Admin::Organization::Projects::ServiceAccountCreateResponse#role
106
+ module Role
107
+ extend OpenAI::Internal::Type::Enum
108
+
109
+ MEMBER = :member
110
+ NONE = :none
111
+
112
+ # @!method self.values
113
+ # @return [Array<Symbol>]
114
+ end
95
115
  end
96
116
  end
97
117
  end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ module ServiceAccounts
9
+ # @see OpenAI::Resources::Admin::Organization::Projects::ServiceAccounts::APIKeys#create
10
+ class APIKeyCreateParams < OpenAI::Internal::Type::BaseModel
11
+ extend OpenAI::Internal::Type::RequestParameters::Converter
12
+ include OpenAI::Internal::Type::RequestParameters
13
+
14
+ # @!attribute project_id
15
+ # The ID of the project.
16
+ #
17
+ # @return [String]
18
+ required :project_id, String
19
+
20
+ # @!attribute service_account_id
21
+ # The ID of the service account.
22
+ #
23
+ # @return [String]
24
+ required :service_account_id, String
25
+
26
+ # @!attribute name
27
+ # API key name.
28
+ #
29
+ # @return [String, nil]
30
+ optional :name, String
31
+
32
+ # @!attribute scopes
33
+ # API key scopes.
34
+ #
35
+ # @return [Array<String>, nil]
36
+ optional :scopes, OpenAI::Internal::Type::ArrayOf[String]
37
+
38
+ # @!method initialize(project_id:, service_account_id:, name: nil, scopes: nil, request_options: {})
39
+ # @param project_id [String] The ID of the project.
40
+ #
41
+ # @param service_account_id [String] The ID of the service account.
42
+ #
43
+ # @param name [String] API key name.
44
+ #
45
+ # @param scopes [Array<String>] API key scopes.
46
+ #
47
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ module ServiceAccounts
9
+ # @see OpenAI::Resources::Admin::Organization::Projects::ServiceAccounts::APIKeys#create
10
+ class APIKeyCreateResponse < OpenAI::Internal::Type::BaseModel
11
+ # @!attribute id
12
+ # The identifier of the API key.
13
+ #
14
+ # @return [String]
15
+ required :id, String
16
+
17
+ # @!attribute created_at
18
+ # The Unix timestamp (in seconds) when the API key was created.
19
+ #
20
+ # @return [Integer]
21
+ required :created_at, Integer
22
+
23
+ # @!attribute name
24
+ # The name of the API key.
25
+ #
26
+ # @return [String]
27
+ required :name, String
28
+
29
+ # @!attribute object
30
+ # The object type, which is always `organization.project.service_account.api_key`
31
+ #
32
+ # @return [Symbol, :"organization.project.service_account.api_key"]
33
+ required :object, const: :"organization.project.service_account.api_key"
34
+
35
+ # @!attribute value
36
+ # The unredacted API key value.
37
+ #
38
+ # @return [String]
39
+ required :value, String
40
+
41
+ # @!method initialize(id:, created_at:, name:, value:, object: :"organization.project.service_account.api_key")
42
+ # @param id [String] The identifier of the API key.
43
+ #
44
+ # @param created_at [Integer] The Unix timestamp (in seconds) when the API key was created.
45
+ #
46
+ # @param name [String] The name of the API key.
47
+ #
48
+ # @param value [String] The unredacted API key value.
49
+ #
50
+ # @param object [Symbol, :"organization.project.service_account.api_key"] The object type, which is always `organization.project.service_account.api_key`
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ # @see OpenAI::Resources::Admin::Organization::Projects::SpendLimit#delete
9
+ class SpendLimitDeleteParams < OpenAI::Internal::Type::BaseModel
10
+ extend OpenAI::Internal::Type::RequestParameters::Converter
11
+ include OpenAI::Internal::Type::RequestParameters
12
+
13
+ # @!attribute project_id
14
+ #
15
+ # @return [String]
16
+ required :project_id, String
17
+
18
+ # @!method initialize(project_id:, request_options: {})
19
+ # @param project_id [String]
20
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Admin
6
+ module Organization
7
+ module Projects
8
+ # @see OpenAI::Resources::Admin::Organization::Projects::SpendLimit#retrieve
9
+ class SpendLimitRetrieveParams < OpenAI::Internal::Type::BaseModel
10
+ extend OpenAI::Internal::Type::RequestParameters::Converter
11
+ include OpenAI::Internal::Type::RequestParameters
12
+
13
+ # @!attribute project_id
14
+ #
15
+ # @return [String]
16
+ required :project_id, String
17
+
18
+ # @!method initialize(project_id:, request_options: {})
19
+ # @param project_id [String]
20
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end