diff --git a/.release-please-manifest.json b/.release-please-manifest.json index a9d0cc147..56ee145c9 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.69.0" + ".": "0.70.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 4e142c3c3..3da74b165 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 270 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai/openai-356010b9b9fd6228b457b8fcfa376cf4928a8f3bd4728e7ba5e4b6b5ef4f5843.yml -openapi_spec_hash: 885864ae98a443166f585f856c464fb2 -config_hash: 1f1e3b4050e2cb4bc780ce0b70e2b3e6 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai/openai-ae4c1a92306e31f05678c3de72efbf1903b5c09924dacd42a555cc5ccc0e5eb1.yml +openapi_spec_hash: 0973932f9a3f0b46a0933b143878f9fe +config_hash: b40012963b4619be8229fcca0105b627 diff --git a/CHANGELOG.md b/CHANGELOG.md index e1c362b3b..d6c0f8232 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## 0.70.0 (2026-07-14) + +Full Changelog: [v0.69.0...v0.70.0](https://github.com/openai/openai-ruby/compare/v0.69.0...v0.70.0) + +### Features + +* **api:** add owner_project_access to APIKeyListParams ([2741c65](https://github.com/openai/openai-ruby/commit/2741c6534029f6bb2fb26e3390bbffd30b7febc7)) + + +### Chores + +* **deps-dev:** bump activesupport from 8.1.1 to 8.1.2.1 ([#301](https://github.com/openai/openai-ruby/issues/301)) ([78727df](https://github.com/openai/openai-ruby/commit/78727dfdce3b6b890dbaabc2e55d17f72e4448ba)) +* **deps-dev:** bump addressable from 2.8.7 to 2.9.0 ([#298](https://github.com/openai/openai-ruby/issues/298)) ([6737a88](https://github.com/openai/openai-ruby/commit/6737a8875d5322bf63cc7721fee9cb69742c58b6)) +* **deps-dev:** bump yard from 0.9.37 to 0.9.44 ([#297](https://github.com/openai/openai-ruby/issues/297)) ([857dd68](https://github.com/openai/openai-ruby/commit/857dd6896271218715fc2187bbc918fabb4dba61)) +* fix CodeQL parsing of Sorbet fallback ([#303](https://github.com/openai/openai-ruby/issues/303)) ([7d0dcaf](https://github.com/openai/openai-ruby/commit/7d0dcaf72eafaa7184e2945a8f051ecb8395c158)) +* Harden GitHub Actions permissions ([#292](https://github.com/openai/openai-ruby/issues/292)) ([0a478dc](https://github.com/openai/openai-ruby/commit/0a478dca89668d9d1de58d710822810922189871)) + ## 0.69.0 (2026-07-09) Full Changelog: [v0.68.0...v0.69.0](https://github.com/openai/openai-ruby/compare/v0.68.0...v0.69.0) diff --git a/Gemfile.lock b/Gemfile.lock index 7bac0018c..4b9b7e624 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - openai (0.69.0) + openai (0.70.0) base64 cgi connection_pool diff --git a/README.md b/README.md index c5cf7bb35..dbdb9eb61 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "openai", "~> 0.69.0" +gem "openai", "~> 0.70.0" ``` diff --git a/lib/openai.rb b/lib/openai.rb index 849ec5b85..28b9a6108 100644 --- a/lib/openai.rb +++ b/lib/openai.rb @@ -1138,7 +1138,6 @@ require_relative "openai/models/webhooks/response_completed_webhook_event" require_relative "openai/models/webhooks/response_failed_webhook_event" require_relative "openai/models/webhooks/response_incomplete_webhook_event" -require_relative "openai/models/webhooks/safety_identifier_blocked_webhook_event" require_relative "openai/models/webhooks/unwrap_webhook_event" require_relative "openai/models/webhooks/webhook_unwrap_params" require_relative "openai/models" diff --git a/lib/openai/models/admin/organization/projects/api_key_list_params.rb b/lib/openai/models/admin/organization/projects/api_key_list_params.rb index ad222e6d1..4d319ad98 100644 --- a/lib/openai/models/admin/organization/projects/api_key_list_params.rb +++ b/lib/openai/models/admin/organization/projects/api_key_list_params.rb @@ -31,7 +31,18 @@ class APIKeyListParams < OpenAI::Internal::Type::BaseModel # @return [Integer, nil] optional :limit, Integer - # @!method initialize(project_id:, after: nil, limit: nil, request_options: {}) + # @!attribute owner_project_access + # Filter API keys by whether the owner currently has effective access to the + # project. Use `active` for owners with access, `inactive` for owners without + # access, or `any` for all enabled project API keys. If omitted, the endpoint + # applies its existing membership-based visibility rules, which may exclude some + # enabled keys. + # + # @return [Symbol, OpenAI::Models::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess, nil] + optional :owner_project_access, + enum: -> { OpenAI::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess } + + # @!method initialize(project_id:, after: nil, limit: nil, owner_project_access: nil, request_options: {}) # Some parameter documentations has been truncated, see # {OpenAI::Models::Admin::Organization::Projects::APIKeyListParams} for more # details. @@ -42,7 +53,25 @@ class APIKeyListParams < OpenAI::Internal::Type::BaseModel # # @param limit [Integer] A limit on the number of objects to be returned. Limit can range between 1 and 1 # + # @param owner_project_access [Symbol, OpenAI::Models::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess] Filter API keys by whether the owner currently has effective access to the proje + # # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}] + + # Filter API keys by whether the owner currently has effective access to the + # project. Use `active` for owners with access, `inactive` for owners without + # access, or `any` for all enabled project API keys. If omitted, the endpoint + # applies its existing membership-based visibility rules, which may exclude some + # enabled keys. + module OwnerProjectAccess + extend OpenAI::Internal::Type::Enum + + ACTIVE = :active + INACTIVE = :inactive + ANY = :any + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/openai/models/admin/organization/projects/project_api_key.rb b/lib/openai/models/admin/organization/projects/project_api_key.rb index 12c98cbd6..1bbc79aad 100644 --- a/lib/openai/models/admin/organization/projects/project_api_key.rb +++ b/lib/openai/models/admin/organization/projects/project_api_key.rb @@ -42,13 +42,20 @@ class ProjectAPIKey < OpenAI::Internal::Type::BaseModel # @return [OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey::Owner] required :owner, -> { OpenAI::Admin::Organization::Projects::ProjectAPIKey::Owner } + # @!attribute owner_project_access + # Whether the API key's owner currently has effective access to the project. + # + # @return [Symbol, OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey::OwnerProjectAccess] + required :owner_project_access, + enum: -> { OpenAI::Admin::Organization::Projects::ProjectAPIKey::OwnerProjectAccess } + # @!attribute redacted_value # The redacted value of the API key # # @return [String] required :redacted_value, String - # @!method initialize(id:, created_at:, last_used_at:, name:, owner:, redacted_value:, object: :"organization.project.api_key") + # @!method initialize(id:, created_at:, last_used_at:, name:, owner:, owner_project_access:, redacted_value:, object: :"organization.project.api_key") # Represents an individual API key in a project. # # @param id [String] The identifier, which can be referenced in API endpoints @@ -61,6 +68,8 @@ class ProjectAPIKey < OpenAI::Internal::Type::BaseModel # # @param owner [OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey::Owner] # + # @param owner_project_access [Symbol, OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey::OwnerProjectAccess] Whether the API key's owner currently has effective access to the project. + # # @param redacted_value [String] The redacted value of the API key # # @param object [Symbol, :"organization.project.api_key"] The object type, which is always `organization.project.api_key` @@ -190,6 +199,19 @@ class User < OpenAI::Internal::Type::BaseModel # @param role [String] The user's project role. end end + + # Whether the API key's owner currently has effective access to the project. + # + # @see OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey#owner_project_access + module OwnerProjectAccess + extend OpenAI::Internal::Type::Enum + + ACTIVE = :active + INACTIVE = :inactive + + # @!method self.values + # @return [Array] + end end end diff --git a/lib/openai/models/beta/beta_response_reasoning_item.rb b/lib/openai/models/beta/beta_response_reasoning_item.rb index 9d7bcb3c7..adb4c4825 100644 --- a/lib/openai/models/beta/beta_response_reasoning_item.rb +++ b/lib/openai/models/beta/beta_response_reasoning_item.rb @@ -37,8 +37,9 @@ class BetaResponseReasoningItem < OpenAI::Internal::Type::BaseModel -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Beta::BetaResponseReasoningItem::Content] } # @!attribute encrypted_content - # The encrypted content of the reasoning item - populated when a response is - # generated with `reasoning.encrypted_content` in the `include` parameter. + # The encrypted content of the reasoning item. This is populated by default for + # reasoning items returned by `POST /v1/responses` and WebSocket `response.create` + # requests. # # @return [String, nil] optional :encrypted_content, String, nil?: true @@ -67,7 +68,7 @@ class BetaResponseReasoningItem < OpenAI::Internal::Type::BaseModel # # @param content [Array] Reasoning text content. # - # @param encrypted_content [String, nil] The encrypted content of the reasoning item - populated when a response is + # @param encrypted_content [String, nil] The encrypted content of the reasoning item. This is populated by default # # @param status [Symbol, OpenAI::Models::Beta::BetaResponseReasoningItem::Status] The status of the item. One of `in_progress`, `completed`, or # diff --git a/lib/openai/models/responses/response_reasoning_item.rb b/lib/openai/models/responses/response_reasoning_item.rb index e73da69b7..08aaa52a8 100644 --- a/lib/openai/models/responses/response_reasoning_item.rb +++ b/lib/openai/models/responses/response_reasoning_item.rb @@ -31,8 +31,9 @@ class ResponseReasoningItem < OpenAI::Internal::Type::BaseModel -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Responses::ResponseReasoningItem::Content] } # @!attribute encrypted_content - # The encrypted content of the reasoning item - populated when a response is - # generated with `reasoning.encrypted_content` in the `include` parameter. + # The encrypted content of the reasoning item. This is populated by default for + # reasoning items returned by `POST /v1/responses` and WebSocket `response.create` + # requests. # # @return [String, nil] optional :encrypted_content, String, nil?: true @@ -59,7 +60,7 @@ class ResponseReasoningItem < OpenAI::Internal::Type::BaseModel # # @param content [Array] Reasoning text content. # - # @param encrypted_content [String, nil] The encrypted content of the reasoning item - populated when a response is + # @param encrypted_content [String, nil] The encrypted content of the reasoning item. This is populated by default # # @param status [Symbol, OpenAI::Models::Responses::ResponseReasoningItem::Status] The status of the item. One of `in_progress`, `completed`, or # diff --git a/lib/openai/models/webhooks/safety_identifier_blocked_webhook_event.rb b/lib/openai/models/webhooks/safety_identifier_blocked_webhook_event.rb deleted file mode 100644 index 41a5d2449..000000000 --- a/lib/openai/models/webhooks/safety_identifier_blocked_webhook_event.rb +++ /dev/null @@ -1,118 +0,0 @@ -# frozen_string_literal: true - -module OpenAI - module Models - module Webhooks - class SafetyIdentifierBlockedWebhookEvent < OpenAI::Internal::Type::BaseModel - # @!attribute id - # The unique ID of the event. - # - # @return [String] - required :id, String - - # @!attribute created_at - # The Unix timestamp (in seconds) of when the request was blocked. - # - # @return [Integer] - required :created_at, Integer - - # @!attribute data - # Event data payload. - # - # @return [OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data] - required :data, -> { OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data } - - # @!attribute type - # The type of the event. Always `safety_identifier.blocked`. - # - # @return [Symbol, :"safety_identifier.blocked"] - required :type, const: :"safety_identifier.blocked" - - # @!attribute object - # The object of the event. Always `event`. - # - # @return [Symbol, OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent::Object, nil] - optional :object, enum: -> { OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Object } - - # @!method initialize(id:, created_at:, data:, object: nil, type: :"safety_identifier.blocked") - # Some parameter documentations has been truncated, see - # {OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent} for more - # details. - # - # Sent when a request associated with a safety identifier has been blocked. - # - # @param id [String] The unique ID of the event. - # - # @param created_at [Integer] The Unix timestamp (in seconds) of when the request was blocked. - # - # @param data [OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data] Event data payload. - # - # @param object [Symbol, OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent::Object] The object of the event. Always `event`. - # - # @param type [Symbol, :"safety_identifier.blocked"] The type of the event. Always `safety_identifier.blocked`. - - # @see OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent#data - class Data < OpenAI::Internal::Type::BaseModel - # @!attribute safety_category - # The safety category that triggered the block, such as `bio` or `cyber`. - # - # @return [String] - required :safety_category, String - - # @!attribute safety_identifier - # The stable safety identifier associated with the blocked request. - # - # @return [String] - required :safety_identifier, String - - # @!attribute model - # The model used for the blocked request, if available. - # - # @return [String, nil] - optional :model, String - - # @!attribute project_id - # The project associated with the blocked request, if available. - # - # @return [String, nil] - optional :project_id, String - - # @!attribute request_id - # The OpenAI request ID for the blocked request, if available. - # - # @return [String, nil] - optional :request_id, String - - # @!method initialize(safety_category:, safety_identifier:, model: nil, project_id: nil, request_id: nil) - # Some parameter documentations has been truncated, see - # {OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data} for more - # details. - # - # Event data payload. - # - # @param safety_category [String] The safety category that triggered the block, such as `bio` or `cyber`. - # - # @param safety_identifier [String] The stable safety identifier associated with the blocked request. - # - # @param model [String] The model used for the blocked request, if available. - # - # @param project_id [String] The project associated with the blocked request, if available. - # - # @param request_id [String] The OpenAI request ID for the blocked request, if available. - end - - # The object of the event. Always `event`. - # - # @see OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent#object - module Object - extend OpenAI::Internal::Type::Enum - - EVENT = :event - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/openai/models/webhooks/unwrap_webhook_event.rb b/lib/openai/models/webhooks/unwrap_webhook_event.rb index ffe19bed1..e1783c1ca 100644 --- a/lib/openai/models/webhooks/unwrap_webhook_event.rb +++ b/lib/openai/models/webhooks/unwrap_webhook_event.rb @@ -54,11 +54,8 @@ module UnwrapWebhookEvent # Sent when a background response has been interrupted. variant :"response.incomplete", -> { OpenAI::Webhooks::ResponseIncompleteWebhookEvent } - # Sent when a request associated with a safety identifier has been blocked. - variant :"safety_identifier.blocked", -> { OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent } - # @!method self.variants - # @return [Array(OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent)] + # @return [Array(OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent)] end end end diff --git a/lib/openai/resources/admin/organization/projects/api_keys.rb b/lib/openai/resources/admin/organization/projects/api_keys.rb index 23d4af421..5237ea0d3 100644 --- a/lib/openai/resources/admin/organization/projects/api_keys.rb +++ b/lib/openai/resources/admin/organization/projects/api_keys.rb @@ -40,7 +40,7 @@ def retrieve(api_key_id, params) # # Returns a list of API keys in the project. # - # @overload list(project_id, after: nil, limit: nil, request_options: {}) + # @overload list(project_id, after: nil, limit: nil, owner_project_access: nil, request_options: {}) # # @param project_id [String] The ID of the project. # @@ -48,6 +48,8 @@ def retrieve(api_key_id, params) # # @param limit [Integer] A limit on the number of objects to be returned. Limit can range between 1 and 1 # + # @param owner_project_access [Symbol, OpenAI::Models::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess] Filter API keys by whether the owner currently has effective access to the proje + # # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [OpenAI::Internal::ConversationCursorPage] diff --git a/lib/openai/resources/webhooks.rb b/lib/openai/resources/webhooks.rb index 96dd65769..97bf5826c 100644 --- a/lib/openai/resources/webhooks.rb +++ b/lib/openai/resources/webhooks.rb @@ -9,7 +9,7 @@ class Webhooks # @param headers [Hash] The webhook headers # @param webhook_secret [String, nil] The webhook secret (optional, will use client webhook secret or ENV["OPENAI_WEBHOOK_SECRET"] if not provided) # - # @return [OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent] + # @return [OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent] # # @raise [ArgumentError] if signature verification fails def unwrap( diff --git a/lib/openai/version.rb b/lib/openai/version.rb index 3f31ffce8..350a400cb 100644 --- a/lib/openai/version.rb +++ b/lib/openai/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module OpenAI - VERSION = "0.69.0" + VERSION = "0.70.0" end diff --git a/rbi/openai/models/admin/organization/projects/api_key_list_params.rbi b/rbi/openai/models/admin/organization/projects/api_key_list_params.rbi index c88dadf0c..60fc57d02 100644 --- a/rbi/openai/models/admin/organization/projects/api_key_list_params.rbi +++ b/rbi/openai/models/admin/organization/projects/api_key_list_params.rbi @@ -38,11 +38,35 @@ module OpenAI sig { params(limit: Integer).void } attr_writer :limit + # Filter API keys by whether the owner currently has effective access to the + # project. Use `active` for owners with access, `inactive` for owners without + # access, or `any` for all enabled project API keys. If omitted, the endpoint + # applies its existing membership-based visibility rules, which may exclude some + # enabled keys. + sig do + returns( + T.nilable( + OpenAI::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess::OrSymbol + ) + ) + end + attr_reader :owner_project_access + + sig do + params( + owner_project_access: + OpenAI::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess::OrSymbol + ).void + end + attr_writer :owner_project_access + sig do params( project_id: String, after: String, limit: Integer, + owner_project_access: + OpenAI::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess::OrSymbol, request_options: OpenAI::RequestOptions::OrHash ).returns(T.attached_class) end @@ -56,6 +80,12 @@ module OpenAI # A limit on the number of objects to be returned. Limit can range between 1 and # 100, and the default is 20. limit: nil, + # Filter API keys by whether the owner currently has effective access to the + # project. Use `active` for owners with access, `inactive` for owners without + # access, or `any` for all enabled project API keys. If omitted, the endpoint + # applies its existing membership-based visibility rules, which may exclude some + # enabled keys. + owner_project_access: nil, request_options: {} ) end @@ -66,12 +96,58 @@ module OpenAI project_id: String, after: String, limit: Integer, + owner_project_access: + OpenAI::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess::OrSymbol, request_options: OpenAI::RequestOptions } ) end def to_hash end + + # Filter API keys by whether the owner currently has effective access to the + # project. Use `active` for owners with access, `inactive` for owners without + # access, or `any` for all enabled project API keys. If omitted, the endpoint + # applies its existing membership-based visibility rules, which may exclude some + # enabled keys. + module OwnerProjectAccess + extend OpenAI::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + OpenAI::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ACTIVE = + T.let( + :active, + OpenAI::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess::TaggedSymbol + ) + INACTIVE = + T.let( + :inactive, + OpenAI::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess::TaggedSymbol + ) + ANY = + T.let( + :any, + OpenAI::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + OpenAI::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess::TaggedSymbol + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/openai/models/admin/organization/projects/project_api_key.rbi b/rbi/openai/models/admin/organization/projects/project_api_key.rbi index 587fcd057..b69cc3ae3 100644 --- a/rbi/openai/models/admin/organization/projects/project_api_key.rbi +++ b/rbi/openai/models/admin/organization/projects/project_api_key.rbi @@ -51,6 +51,14 @@ module OpenAI end attr_writer :owner + # Whether the API key's owner currently has effective access to the project. + sig do + returns( + OpenAI::Admin::Organization::Projects::ProjectAPIKey::OwnerProjectAccess::TaggedSymbol + ) + end + attr_accessor :owner_project_access + # The redacted value of the API key sig { returns(String) } attr_accessor :redacted_value @@ -64,6 +72,8 @@ module OpenAI name: String, owner: OpenAI::Admin::Organization::Projects::ProjectAPIKey::Owner::OrHash, + owner_project_access: + OpenAI::Admin::Organization::Projects::ProjectAPIKey::OwnerProjectAccess::OrSymbol, redacted_value: String, object: Symbol ).returns(T.attached_class) @@ -78,6 +88,8 @@ module OpenAI # The name of the API key name:, owner:, + # Whether the API key's owner currently has effective access to the project. + owner_project_access:, # The redacted value of the API key redacted_value:, # The object type, which is always `organization.project.api_key` @@ -95,6 +107,8 @@ module OpenAI object: Symbol, owner: OpenAI::Admin::Organization::Projects::ProjectAPIKey::Owner, + owner_project_access: + OpenAI::Admin::Organization::Projects::ProjectAPIKey::OwnerProjectAccess::TaggedSymbol, redacted_value: String } ) @@ -363,6 +377,41 @@ module OpenAI end end end + + # Whether the API key's owner currently has effective access to the project. + module OwnerProjectAccess + extend OpenAI::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + OpenAI::Admin::Organization::Projects::ProjectAPIKey::OwnerProjectAccess + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ACTIVE = + T.let( + :active, + OpenAI::Admin::Organization::Projects::ProjectAPIKey::OwnerProjectAccess::TaggedSymbol + ) + INACTIVE = + T.let( + :inactive, + OpenAI::Admin::Organization::Projects::ProjectAPIKey::OwnerProjectAccess::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + OpenAI::Admin::Organization::Projects::ProjectAPIKey::OwnerProjectAccess::TaggedSymbol + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/openai/models/beta/beta_response_reasoning_item.rbi b/rbi/openai/models/beta/beta_response_reasoning_item.rbi index 74663c8bd..35f20c49a 100644 --- a/rbi/openai/models/beta/beta_response_reasoning_item.rbi +++ b/rbi/openai/models/beta/beta_response_reasoning_item.rbi @@ -60,8 +60,9 @@ module OpenAI end attr_writer :content - # The encrypted content of the reasoning item - populated when a response is - # generated with `reasoning.encrypted_content` in the `include` parameter. + # The encrypted content of the reasoning item. This is populated by default for + # reasoning items returned by `POST /v1/responses` and WebSocket `response.create` + # requests. sig { returns(T.nilable(String)) } attr_accessor :encrypted_content @@ -112,8 +113,9 @@ module OpenAI agent: nil, # Reasoning text content. content: nil, - # The encrypted content of the reasoning item - populated when a response is - # generated with `reasoning.encrypted_content` in the `include` parameter. + # The encrypted content of the reasoning item. This is populated by default for + # reasoning items returned by `POST /v1/responses` and WebSocket `response.create` + # requests. encrypted_content: nil, # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. diff --git a/rbi/openai/models/responses/response_reasoning_item.rbi b/rbi/openai/models/responses/response_reasoning_item.rbi index 5b13375d3..90b60ec1c 100644 --- a/rbi/openai/models/responses/response_reasoning_item.rbi +++ b/rbi/openai/models/responses/response_reasoning_item.rbi @@ -46,8 +46,9 @@ module OpenAI end attr_writer :content - # The encrypted content of the reasoning item - populated when a response is - # generated with `reasoning.encrypted_content` in the `include` parameter. + # The encrypted content of the reasoning item. This is populated by default for + # reasoning items returned by `POST /v1/responses` and WebSocket `response.create` + # requests. sig { returns(T.nilable(String)) } attr_accessor :encrypted_content @@ -96,8 +97,9 @@ module OpenAI summary:, # Reasoning text content. content: nil, - # The encrypted content of the reasoning item - populated when a response is - # generated with `reasoning.encrypted_content` in the `include` parameter. + # The encrypted content of the reasoning item. This is populated by default for + # reasoning items returned by `POST /v1/responses` and WebSocket `response.create` + # requests. encrypted_content: nil, # The status of the item. One of `in_progress`, `completed`, or `incomplete`. # Populated when items are returned via API. diff --git a/rbi/openai/models/webhooks/safety_identifier_blocked_webhook_event.rbi b/rbi/openai/models/webhooks/safety_identifier_blocked_webhook_event.rbi deleted file mode 100644 index cad4ee35d..000000000 --- a/rbi/openai/models/webhooks/safety_identifier_blocked_webhook_event.rbi +++ /dev/null @@ -1,209 +0,0 @@ -# typed: strong - -module OpenAI - module Models - module Webhooks - class SafetyIdentifierBlockedWebhookEvent < OpenAI::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent, - OpenAI::Internal::AnyHash - ) - end - - # The unique ID of the event. - sig { returns(String) } - attr_accessor :id - - # The Unix timestamp (in seconds) of when the request was blocked. - sig { returns(Integer) } - attr_accessor :created_at - - # Event data payload. - sig do - returns(OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data) - end - attr_reader :data - - sig do - params( - data: - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data::OrHash - ).void - end - attr_writer :data - - # The type of the event. Always `safety_identifier.blocked`. - sig { returns(Symbol) } - attr_accessor :type - - # The object of the event. Always `event`. - sig do - returns( - T.nilable( - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Object::TaggedSymbol - ) - ) - end - attr_reader :object - - sig do - params( - object: - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Object::OrSymbol - ).void - end - attr_writer :object - - # Sent when a request associated with a safety identifier has been blocked. - sig do - params( - id: String, - created_at: Integer, - data: - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data::OrHash, - object: - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Object::OrSymbol, - type: Symbol - ).returns(T.attached_class) - end - def self.new( - # The unique ID of the event. - id:, - # The Unix timestamp (in seconds) of when the request was blocked. - created_at:, - # Event data payload. - data:, - # The object of the event. Always `event`. - object: nil, - # The type of the event. Always `safety_identifier.blocked`. - type: :"safety_identifier.blocked" - ) - end - - sig do - override.returns( - { - id: String, - created_at: Integer, - data: OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data, - type: Symbol, - object: - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Object::TaggedSymbol - } - ) - end - def to_hash - end - - class Data < OpenAI::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data, - OpenAI::Internal::AnyHash - ) - end - - # The safety category that triggered the block, such as `bio` or `cyber`. - sig { returns(String) } - attr_accessor :safety_category - - # The stable safety identifier associated with the blocked request. - sig { returns(String) } - attr_accessor :safety_identifier - - # The model used for the blocked request, if available. - sig { returns(T.nilable(String)) } - attr_reader :model - - sig { params(model: String).void } - attr_writer :model - - # The project associated with the blocked request, if available. - sig { returns(T.nilable(String)) } - attr_reader :project_id - - sig { params(project_id: String).void } - attr_writer :project_id - - # The OpenAI request ID for the blocked request, if available. - sig { returns(T.nilable(String)) } - attr_reader :request_id - - sig { params(request_id: String).void } - attr_writer :request_id - - # Event data payload. - sig do - params( - safety_category: String, - safety_identifier: String, - model: String, - project_id: String, - request_id: String - ).returns(T.attached_class) - end - def self.new( - # The safety category that triggered the block, such as `bio` or `cyber`. - safety_category:, - # The stable safety identifier associated with the blocked request. - safety_identifier:, - # The model used for the blocked request, if available. - model: nil, - # The project associated with the blocked request, if available. - project_id: nil, - # The OpenAI request ID for the blocked request, if available. - request_id: nil - ) - end - - sig do - override.returns( - { - safety_category: String, - safety_identifier: String, - model: String, - project_id: String, - request_id: String - } - ) - end - def to_hash - end - end - - # The object of the event. Always `event`. - module Object - extend OpenAI::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Object - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - EVENT = - T.let( - :event, - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Object::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Object::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/openai/models/webhooks/unwrap_webhook_event.rbi b/rbi/openai/models/webhooks/unwrap_webhook_event.rbi index 795b0a514..135ceccca 100644 --- a/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +++ b/rbi/openai/models/webhooks/unwrap_webhook_event.rbi @@ -24,8 +24,7 @@ module OpenAI OpenAI::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Webhooks::ResponseFailedWebhookEvent, - OpenAI::Webhooks::ResponseIncompleteWebhookEvent, - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent + OpenAI::Webhooks::ResponseIncompleteWebhookEvent ) end diff --git a/rbi/openai/resources/admin/organization/projects/api_keys.rbi b/rbi/openai/resources/admin/organization/projects/api_keys.rbi index 5eba71780..0149e092b 100644 --- a/rbi/openai/resources/admin/organization/projects/api_keys.rbi +++ b/rbi/openai/resources/admin/organization/projects/api_keys.rbi @@ -29,6 +29,8 @@ module OpenAI project_id: String, after: String, limit: Integer, + owner_project_access: + OpenAI::Admin::Organization::Projects::APIKeyListParams::OwnerProjectAccess::OrSymbol, request_options: OpenAI::RequestOptions::OrHash ).returns( OpenAI::Internal::ConversationCursorPage[ @@ -47,6 +49,12 @@ module OpenAI # A limit on the number of objects to be returned. Limit can range between 1 and # 100, and the default is 20. limit: nil, + # Filter API keys by whether the owner currently has effective access to the + # project. Use `active` for owners with access, `inactive` for owners without + # access, or `any` for all enabled project API keys. If omitted, the endpoint + # applies its existing membership-based visibility rules, which may exclude some + # enabled keys. + owner_project_access: nil, request_options: {} ) end diff --git a/rbi/openai/resources/webhooks.rbi b/rbi/openai/resources/webhooks.rbi index 602e44010..8835fd601 100644 --- a/rbi/openai/resources/webhooks.rbi +++ b/rbi/openai/resources/webhooks.rbi @@ -25,8 +25,7 @@ module OpenAI OpenAI::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Webhooks::ResponseFailedWebhookEvent, - OpenAI::Webhooks::ResponseIncompleteWebhookEvent, - OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent + OpenAI::Webhooks::ResponseIncompleteWebhookEvent ) ) end diff --git a/sig/openai/models/admin/organization/projects/api_key_list_params.rbs b/sig/openai/models/admin/organization/projects/api_key_list_params.rbs index 4aadf09e5..4930401fa 100644 --- a/sig/openai/models/admin/organization/projects/api_key_list_params.rbs +++ b/sig/openai/models/admin/organization/projects/api_key_list_params.rbs @@ -4,7 +4,12 @@ module OpenAI module Organization module Projects type api_key_list_params = - { project_id: String, after: String, limit: Integer } + { + project_id: String, + after: String, + limit: Integer, + owner_project_access: OpenAI::Models::Admin::Organization::Projects::APIKeyListParams::owner_project_access + } & OpenAI::Internal::Type::request_parameters class APIKeyListParams < OpenAI::Internal::Type::BaseModel @@ -21,10 +26,17 @@ module OpenAI def limit=: (Integer) -> Integer + attr_reader owner_project_access: OpenAI::Models::Admin::Organization::Projects::APIKeyListParams::owner_project_access? + + def owner_project_access=: ( + OpenAI::Models::Admin::Organization::Projects::APIKeyListParams::owner_project_access + ) -> OpenAI::Models::Admin::Organization::Projects::APIKeyListParams::owner_project_access + def initialize: ( project_id: String, ?after: String, ?limit: Integer, + ?owner_project_access: OpenAI::Models::Admin::Organization::Projects::APIKeyListParams::owner_project_access, ?request_options: OpenAI::request_opts ) -> void @@ -32,8 +44,21 @@ module OpenAI project_id: String, after: String, limit: Integer, + owner_project_access: OpenAI::Models::Admin::Organization::Projects::APIKeyListParams::owner_project_access, request_options: OpenAI::RequestOptions } + + type owner_project_access = :active | :inactive | :any + + module OwnerProjectAccess + extend OpenAI::Internal::Type::Enum + + ACTIVE: :active + INACTIVE: :inactive + ANY: :any + + def self?.values: -> ::Array[OpenAI::Models::Admin::Organization::Projects::APIKeyListParams::owner_project_access] + end end end end diff --git a/sig/openai/models/admin/organization/projects/project_api_key.rbs b/sig/openai/models/admin/organization/projects/project_api_key.rbs index 94e97c893..5e9ca75ae 100644 --- a/sig/openai/models/admin/organization/projects/project_api_key.rbs +++ b/sig/openai/models/admin/organization/projects/project_api_key.rbs @@ -13,6 +13,7 @@ module OpenAI name: String, object: :"organization.project.api_key", owner: OpenAI::Admin::Organization::Projects::ProjectAPIKey::Owner, + owner_project_access: OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey::owner_project_access, redacted_value: String } @@ -29,6 +30,8 @@ module OpenAI attr_accessor owner: OpenAI::Admin::Organization::Projects::ProjectAPIKey::Owner + attr_accessor owner_project_access: OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey::owner_project_access + attr_accessor redacted_value: String def initialize: ( @@ -37,6 +40,7 @@ module OpenAI last_used_at: Integer?, name: String, owner: OpenAI::Admin::Organization::Projects::ProjectAPIKey::Owner, + owner_project_access: OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey::owner_project_access, redacted_value: String, ?object: :"organization.project.api_key" ) -> void @@ -48,6 +52,7 @@ module OpenAI name: String, object: :"organization.project.api_key", owner: OpenAI::Admin::Organization::Projects::ProjectAPIKey::Owner, + owner_project_access: OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey::owner_project_access, redacted_value: String } @@ -164,6 +169,17 @@ module OpenAI } end end + + type owner_project_access = :active | :inactive + + module OwnerProjectAccess + extend OpenAI::Internal::Type::Enum + + ACTIVE: :active + INACTIVE: :inactive + + def self?.values: -> ::Array[OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey::owner_project_access] + end end end end diff --git a/sig/openai/models/webhooks/safety_identifier_blocked_webhook_event.rbs b/sig/openai/models/webhooks/safety_identifier_blocked_webhook_event.rbs deleted file mode 100644 index 717c9f177..000000000 --- a/sig/openai/models/webhooks/safety_identifier_blocked_webhook_event.rbs +++ /dev/null @@ -1,99 +0,0 @@ -module OpenAI - module Models - module Webhooks - type safety_identifier_blocked_webhook_event = - { - id: String, - created_at: Integer, - data: OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data, - type: :"safety_identifier.blocked", - object: OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent::object - } - - class SafetyIdentifierBlockedWebhookEvent < OpenAI::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor created_at: Integer - - attr_accessor data: OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data - - attr_accessor type: :"safety_identifier.blocked" - - attr_reader object: OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent::object? - - def object=: ( - OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent::object - ) -> OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent::object - - def initialize: ( - id: String, - created_at: Integer, - data: OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data, - ?object: OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent::object, - ?type: :"safety_identifier.blocked" - ) -> void - - def to_hash: -> { - id: String, - created_at: Integer, - data: OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent::Data, - type: :"safety_identifier.blocked", - object: OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent::object - } - - type data = - { - safety_category: String, - safety_identifier: String, - model: String, - project_id: String, - request_id: String - } - - class Data < OpenAI::Internal::Type::BaseModel - attr_accessor safety_category: String - - attr_accessor safety_identifier: String - - attr_reader model: String? - - def model=: (String) -> String - - attr_reader project_id: String? - - def project_id=: (String) -> String - - attr_reader request_id: String? - - def request_id=: (String) -> String - - def initialize: ( - safety_category: String, - safety_identifier: String, - ?model: String, - ?project_id: String, - ?request_id: String - ) -> void - - def to_hash: -> { - safety_category: String, - safety_identifier: String, - model: String, - project_id: String, - request_id: String - } - end - - type object = :event - - module Object - extend OpenAI::Internal::Type::Enum - - EVENT: :event - - def self?.values: -> ::Array[OpenAI::Models::Webhooks::SafetyIdentifierBlockedWebhookEvent::object] - end - end - end - end -end diff --git a/sig/openai/models/webhooks/unwrap_webhook_event.rbs b/sig/openai/models/webhooks/unwrap_webhook_event.rbs index 982835cd3..747df8cd3 100644 --- a/sig/openai/models/webhooks/unwrap_webhook_event.rbs +++ b/sig/openai/models/webhooks/unwrap_webhook_event.rbs @@ -17,7 +17,6 @@ module OpenAI | OpenAI::Webhooks::ResponseCompletedWebhookEvent | OpenAI::Webhooks::ResponseFailedWebhookEvent | OpenAI::Webhooks::ResponseIncompleteWebhookEvent - | OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent module UnwrapWebhookEvent extend OpenAI::Internal::Type::Union diff --git a/sig/openai/resources/admin/organization/projects/api_keys.rbs b/sig/openai/resources/admin/organization/projects/api_keys.rbs index a72819604..a8a86e217 100644 --- a/sig/openai/resources/admin/organization/projects/api_keys.rbs +++ b/sig/openai/resources/admin/organization/projects/api_keys.rbs @@ -14,6 +14,7 @@ module OpenAI String project_id, ?after: String, ?limit: Integer, + ?owner_project_access: OpenAI::Models::Admin::Organization::Projects::APIKeyListParams::owner_project_access, ?request_options: OpenAI::request_opts ) -> OpenAI::Internal::ConversationCursorPage[OpenAI::Admin::Organization::Projects::ProjectAPIKey] diff --git a/sig/openai/resources/webhooks.rbs b/sig/openai/resources/webhooks.rbs index d8d783363..ca3702199 100644 --- a/sig/openai/resources/webhooks.rbs +++ b/sig/openai/resources/webhooks.rbs @@ -19,8 +19,7 @@ module OpenAI | OpenAI::Webhooks::ResponseCancelledWebhookEvent | OpenAI::Webhooks::ResponseCompletedWebhookEvent | OpenAI::Webhooks::ResponseFailedWebhookEvent - | OpenAI::Webhooks::ResponseIncompleteWebhookEvent - | OpenAI::Webhooks::SafetyIdentifierBlockedWebhookEvent) + | OpenAI::Webhooks::ResponseIncompleteWebhookEvent) def verify_signature: ( String payload, diff --git a/test/openai/resources/admin/organization/projects/api_keys_test.rb b/test/openai/resources/admin/organization/projects/api_keys_test.rb index 792ea5276..182ba94bc 100644 --- a/test/openai/resources/admin/organization/projects/api_keys_test.rb +++ b/test/openai/resources/admin/organization/projects/api_keys_test.rb @@ -18,6 +18,7 @@ def test_retrieve_required_params name: String, object: Symbol, owner: OpenAI::Admin::Organization::Projects::ProjectAPIKey::Owner, + owner_project_access: OpenAI::Admin::Organization::Projects::ProjectAPIKey::OwnerProjectAccess, redacted_value: String } end @@ -45,6 +46,7 @@ def test_list name: String, object: Symbol, owner: OpenAI::Admin::Organization::Projects::ProjectAPIKey::Owner, + owner_project_access: OpenAI::Admin::Organization::Projects::ProjectAPIKey::OwnerProjectAccess, redacted_value: String } end