Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.69.0"
".": "0.70.0"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -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
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ GIT
PATH
remote: .
specs:
openai (0.69.0)
openai (0.70.0)
base64
cgi
connection_pool
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
<!-- x-release-please-start-version -->

```ruby
gem "openai", "~> 0.69.0"
gem "openai", "~> 0.70.0"
```

<!-- x-release-please-end -->
Expand Down
1 change: 0 additions & 1 deletion lib/openai.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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<Symbol>]
end
end
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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`
Expand Down Expand Up @@ -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<Symbol>]
end
end
end

Expand Down
7 changes: 4 additions & 3 deletions lib/openai/models/beta/beta_response_reasoning_item.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -67,7 +68,7 @@ class BetaResponseReasoningItem < OpenAI::Internal::Type::BaseModel
#
# @param content [Array<OpenAI::Models::Beta::BetaResponseReasoningItem::Content>] 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
#
Expand Down
7 changes: 4 additions & 3 deletions lib/openai/models/responses/response_reasoning_item.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -59,7 +60,7 @@ class ResponseReasoningItem < OpenAI::Internal::Type::BaseModel
#
# @param content [Array<OpenAI::Models::Responses::ResponseReasoningItem::Content>] 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
#
Expand Down

This file was deleted.

5 changes: 1 addition & 4 deletions lib/openai/models/webhooks/unwrap_webhook_event.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,16 @@ 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.
#
# @param after [String] A cursor for use in pagination. `after` is an object ID that defines your place
#
# @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<OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey>]
Expand Down
Loading