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
10 changes: 5 additions & 5 deletions .castiron.stats.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
schema_version: 1
generation_id: 60cabc7f-33ad-4107-8c39-81500a6cd9a1
openapi_spec_hash: d342651bd77c6cd6ea10a9d889b35bb8
openapi_transformed_spec_hash: 259f19fd2d38c6e784bbb40bf2f9a971
config_hash: fce3820c4f95b555e486349bc7d297d8
codegen_sha: dd6200c1ca35bd686e5d86ab47986f84f11bb58a
generation_id: 05ef12b3-2068-40e2-949c-be1207c85819
openapi_spec_hash: 1aa8e9d2137d0218960a6b6de3a21f3d
openapi_transformed_spec_hash: f496c5cc5d72567c2c42d3c94593b2ac
config_hash: 4617b0962f16d328804312ac81aac630
codegen_sha: 483f7296a38a74d8d1e8e048685053e7af0854c0
18 changes: 14 additions & 4 deletions api_reference/openapi.transformed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27401,6 +27401,18 @@ components:
anyOf:
- $ref: '#/components/schemas/AuditLogActor'
- type: 'null'
source:
type: string
description: The server-derived administrative authorization context recorded for the action, when available. API-key paths identify the authenticated API surface; biscuit-authorized paths identify the permission namespace used for authorization. This does not necessarily identify the literal client software.
enum:
- cloud_console
- adminapi
- retool
- glass
- managementapi
- tenantapi
- scim
- backfill
api_key.created:
type: object
description: The details for events with this `type`.
Expand Down Expand Up @@ -61674,7 +61686,6 @@ components:
description: The namespace name used in tool calls (for example, `crm`).
description:
type: string
minLength: 1
description: A description of the namespace shown to the model.
tools:
items:
Expand Down Expand Up @@ -62651,8 +62662,8 @@ components:
- type: 'null'
type: object
required:
- call_id
- type
- call_id
- output
title: Function tool call output
description: The output of a function tool call.
Expand Down Expand Up @@ -66541,7 +66552,6 @@ components:
description: The namespace name used in tool calls (for example, `crm`).
description:
type: string
minLength: 1
description: A description of the namespace shown to the model.
tools:
items:
Expand Down Expand Up @@ -69679,8 +69689,8 @@ components:
- type: 'null'
type: object
required:
- call_id
- type
- call_id
- output
title: Function tool call output
description: The output of a function tool call.
Expand Down
10 changes: 9 additions & 1 deletion lib/openai/models.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
# frozen_string_literal: true

module OpenAI
[OpenAI::Internal::Type::BaseModel, *OpenAI::Internal::Type::BaseModel.subclasses].each do |cls|
# ActiveSupport 6 implements Class#subclasses using ==, which invokes BaseModel's
# structural equality before all model aliases are loaded.
base_model = OpenAI::Internal::Type::BaseModel
subclasses =
ObjectSpace.each_object(base_model.singleton_class).select do |candidate|
!candidate.singleton_class? && candidate.superclass.equal?(base_model)
end

[base_model, *subclasses].each do |cls|
cls.define_sorbet_constant!(:OrHash) { T.type_alias { T.any(cls, OpenAI::Internal::AnyHash) } }
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,15 @@ class AuditLogListResponse < OpenAI::Internal::Type::BaseModel
-> { OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountUpdated },
api_name: :"service_account.updated"

# @!attribute source
# The server-derived administrative authorization context recorded for the action,
# when available. API-key paths identify the authenticated API surface;
# biscuit-authorized paths identify the permission namespace used for
# authorization. This does not necessarily identify the literal client software.
#
# @return [Symbol, OpenAI::Models::Admin::Organization::AuditLogListResponse::Source, nil]
optional :source, enum: -> { OpenAI::Models::Admin::Organization::AuditLogListResponse::Source }

# @!attribute user_added
# The details for events with this `type`.
#
Expand Down Expand Up @@ -475,7 +484,7 @@ class AuditLogListResponse < OpenAI::Internal::Type::BaseModel
-> { OpenAI::Models::Admin::Organization::AuditLogListResponse::WorkloadIdentityProviderUpdated },
api_name: :"workload_identity_provider.updated"

# @!method initialize(id:, effective_at:, type:, actor: nil, api_key_created: nil, api_key_deleted: nil, api_key_updated: nil, certificate_created: nil, certificate_deleted: nil, certificate_updated: nil, certificates_activated: nil, certificates_deactivated: nil, checkpoint_permission_created: nil, checkpoint_permission_deleted: nil, external_key_registered: nil, external_key_removed: nil, group_created: nil, group_deleted: nil, group_updated: nil, invite_accepted: nil, invite_deleted: nil, invite_sent: nil, ip_allowlist_config_activated: nil, ip_allowlist_config_deactivated: nil, ip_allowlist_created: nil, ip_allowlist_deleted: nil, ip_allowlist_updated: nil, login_failed: nil, login_succeeded: nil, logout_failed: nil, logout_succeeded: nil, organization_updated: nil, project: nil, project_archived: nil, project_created: nil, project_deleted: nil, project_updated: nil, rate_limit_deleted: nil, rate_limit_updated: nil, role_assignment_created: nil, role_assignment_deleted: nil, role_bound_to_resource: nil, role_created: nil, role_deleted: nil, role_unbound_from_resource: nil, role_updated: nil, scim_disabled: nil, scim_enabled: nil, service_account_created: nil, service_account_deleted: nil, service_account_updated: nil, user_added: nil, user_deleted: nil, user_updated: nil, workload_identity_provider_mapping_created: nil, workload_identity_provider_mapping_deleted: nil, workload_identity_provider_mapping_updated: nil, workload_identity_provider_created: nil, workload_identity_provider_deleted: nil, workload_identity_provider_updated: nil)
# @!method initialize(id:, effective_at:, type:, actor: nil, api_key_created: nil, api_key_deleted: nil, api_key_updated: nil, certificate_created: nil, certificate_deleted: nil, certificate_updated: nil, certificates_activated: nil, certificates_deactivated: nil, checkpoint_permission_created: nil, checkpoint_permission_deleted: nil, external_key_registered: nil, external_key_removed: nil, group_created: nil, group_deleted: nil, group_updated: nil, invite_accepted: nil, invite_deleted: nil, invite_sent: nil, ip_allowlist_config_activated: nil, ip_allowlist_config_deactivated: nil, ip_allowlist_created: nil, ip_allowlist_deleted: nil, ip_allowlist_updated: nil, login_failed: nil, login_succeeded: nil, logout_failed: nil, logout_succeeded: nil, organization_updated: nil, project: nil, project_archived: nil, project_created: nil, project_deleted: nil, project_updated: nil, rate_limit_deleted: nil, rate_limit_updated: nil, role_assignment_created: nil, role_assignment_deleted: nil, role_bound_to_resource: nil, role_created: nil, role_deleted: nil, role_unbound_from_resource: nil, role_updated: nil, scim_disabled: nil, scim_enabled: nil, service_account_created: nil, service_account_deleted: nil, service_account_updated: nil, source: nil, user_added: nil, user_deleted: nil, user_updated: nil, workload_identity_provider_mapping_created: nil, workload_identity_provider_mapping_deleted: nil, workload_identity_provider_mapping_updated: nil, workload_identity_provider_created: nil, workload_identity_provider_deleted: nil, workload_identity_provider_updated: nil)
# Some parameter documentations has been truncated, see
# {OpenAI::Models::Admin::Organization::AuditLogListResponse} for more details.
#
Expand Down Expand Up @@ -583,6 +592,8 @@ class AuditLogListResponse < OpenAI::Internal::Type::BaseModel
#
# @param service_account_updated [OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountUpdated] The details for events with this `type`.
#
# @param source [Symbol, OpenAI::Models::Admin::Organization::AuditLogListResponse::Source] The server-derived administrative authorization context recorded for the action,
#
# @param user_added [OpenAI::Models::Admin::Organization::AuditLogListResponse::UserAdded] The details for events with this `type`.
#
# @param user_deleted [OpenAI::Models::Admin::Organization::AuditLogListResponse::UserDeleted] The details for events with this `type`.
Expand Down Expand Up @@ -2496,6 +2507,28 @@ class ChangesRequested < OpenAI::Internal::Type::BaseModel
end
end

# The server-derived administrative authorization context recorded for the action,
# when available. API-key paths identify the authenticated API surface;
# biscuit-authorized paths identify the permission namespace used for
# authorization. This does not necessarily identify the literal client software.
#
# @see OpenAI::Models::Admin::Organization::AuditLogListResponse#source
module Source
extend OpenAI::Internal::Type::Enum

CLOUD_CONSOLE = :cloud_console
ADMINAPI = :adminapi
RETOOL = :retool
GLASS = :glass
MANAGEMENTAPI = :managementapi
TENANTAPI = :tenantapi
SCIM = :scim
BACKFILL = :backfill

# @!method self.values
# @return [Array<Symbol>]
end

# @see OpenAI::Models::Admin::Organization::AuditLogListResponse#user_added
class UserAdded < OpenAI::Internal::Type::BaseModel
# @!attribute id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -876,6 +876,27 @@ module OpenAI
end
attr_writer :service_account_updated

# The server-derived administrative authorization context recorded for the action,
# when available. API-key paths identify the authenticated API surface;
# biscuit-authorized paths identify the permission namespace used for
# authorization. This does not necessarily identify the literal client software.
sig do
returns(
T.nilable(
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::TaggedSymbol
)
)
end
attr_reader :source

sig do
params(
source:
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::OrSymbol
).void
end
attr_writer :source

# The details for events with this `type`.
sig do
returns(
Expand Down Expand Up @@ -1141,6 +1162,8 @@ module OpenAI
OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountDeleted::OrHash,
service_account_updated:
OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountUpdated::OrHash,
source:
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::OrSymbol,
user_added:
OpenAI::Models::Admin::Organization::AuditLogListResponse::UserAdded::OrHash,
user_deleted:
Expand Down Expand Up @@ -1267,6 +1290,11 @@ module OpenAI
service_account_deleted: nil,
# The details for events with this `type`.
service_account_updated: nil,
# The server-derived administrative authorization context recorded for the action,
# when available. API-key paths identify the authenticated API surface;
# biscuit-authorized paths identify the permission namespace used for
# authorization. This does not necessarily identify the literal client software.
source: nil,
# The details for events with this `type`.
user_added: nil,
# The details for events with this `type`.
Expand Down Expand Up @@ -1391,6 +1419,8 @@ module OpenAI
OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountDeleted,
service_account_updated:
OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountUpdated,
source:
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::TaggedSymbol,
user_added:
OpenAI::Models::Admin::Organization::AuditLogListResponse::UserAdded,
user_deleted:
Expand Down Expand Up @@ -5945,6 +5975,74 @@ module OpenAI
end
end

# The server-derived administrative authorization context recorded for the action,
# when available. API-key paths identify the authenticated API surface;
# biscuit-authorized paths identify the permission namespace used for
# authorization. This does not necessarily identify the literal client software.
module Source
extend OpenAI::Internal::Type::Enum

TaggedSymbol =
T.type_alias do
T.all(
Symbol,
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source
)
end
OrSymbol = T.type_alias { T.any(Symbol, String) }

CLOUD_CONSOLE =
T.let(
:cloud_console,
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::TaggedSymbol
)
ADMINAPI =
T.let(
:adminapi,
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::TaggedSymbol
)
RETOOL =
T.let(
:retool,
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::TaggedSymbol
)
GLASS =
T.let(
:glass,
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::TaggedSymbol
)
MANAGEMENTAPI =
T.let(
:managementapi,
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::TaggedSymbol
)
TENANTAPI =
T.let(
:tenantapi,
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::TaggedSymbol
)
SCIM =
T.let(
:scim,
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::TaggedSymbol
)
BACKFILL =
T.let(
:backfill,
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::TaggedSymbol
)

sig do
override.returns(
T::Array[
OpenAI::Models::Admin::Organization::AuditLogListResponse::Source::TaggedSymbol
]
)
end
def self.values
end
end

class UserAdded < OpenAI::Internal::Type::BaseModel
OrHash =
T.type_alias do
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ module OpenAI
service_account_created: OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountCreated,
service_account_deleted: OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountDeleted,
service_account_updated: OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountUpdated,
source: OpenAI::Models::Admin::Organization::AuditLogListResponse::source,
user_added: OpenAI::Models::Admin::Organization::AuditLogListResponse::UserAdded,
user_deleted: OpenAI::Models::Admin::Organization::AuditLogListResponse::UserDeleted,
user_updated: OpenAI::Models::Admin::Organization::AuditLogListResponse::UserUpdated,
Expand Down Expand Up @@ -353,6 +354,12 @@ module OpenAI
OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountUpdated
) -> OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountUpdated

attr_reader source: OpenAI::Models::Admin::Organization::AuditLogListResponse::source?

def source=: (
OpenAI::Models::Admin::Organization::AuditLogListResponse::source
) -> OpenAI::Models::Admin::Organization::AuditLogListResponse::source

attr_reader user_added: OpenAI::Models::Admin::Organization::AuditLogListResponse::UserAdded?

def user_added=: (
Expand Down Expand Up @@ -459,6 +466,7 @@ module OpenAI
?service_account_created: OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountCreated,
?service_account_deleted: OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountDeleted,
?service_account_updated: OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountUpdated,
?source: OpenAI::Models::Admin::Organization::AuditLogListResponse::source,
?user_added: OpenAI::Models::Admin::Organization::AuditLogListResponse::UserAdded,
?user_deleted: OpenAI::Models::Admin::Organization::AuditLogListResponse::UserDeleted,
?user_updated: OpenAI::Models::Admin::Organization::AuditLogListResponse::UserUpdated,
Expand Down Expand Up @@ -522,6 +530,7 @@ module OpenAI
service_account_created: OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountCreated,
service_account_deleted: OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountDeleted,
service_account_updated: OpenAI::Models::Admin::Organization::AuditLogListResponse::ServiceAccountUpdated,
source: OpenAI::Models::Admin::Organization::AuditLogListResponse::source,
user_added: OpenAI::Models::Admin::Organization::AuditLogListResponse::UserAdded,
user_deleted: OpenAI::Models::Admin::Organization::AuditLogListResponse::UserDeleted,
user_updated: OpenAI::Models::Admin::Organization::AuditLogListResponse::UserUpdated,
Expand Down Expand Up @@ -2539,6 +2548,31 @@ module OpenAI
end
end

type source =
:cloud_console
| :adminapi
| :retool
| :glass
| :managementapi
| :tenantapi
| :scim
| :backfill

module Source
extend OpenAI::Internal::Type::Enum

CLOUD_CONSOLE: :cloud_console
ADMINAPI: :adminapi
RETOOL: :retool
GLASS: :glass
MANAGEMENTAPI: :managementapi
TENANTAPI: :tenantapi
SCIM: :scim
BACKFILL: :backfill

def self?.values: -> ::Array[OpenAI::Models::Admin::Organization::AuditLogListResponse::source]
end

type user_added =
{
id: String,
Expand Down
39 changes: 39 additions & 0 deletions test/openai/load_order_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# frozen_string_literal: true

require "open3"
require "rbconfig"

require_relative "test_helper"

class OpenAI::Test::LoadOrderTest < Minitest::Test
def test_loads_after_active_support_6_subclass_extensions
script = <<~RUBY
class Class
def descendants
ObjectSpace.each_object(singleton_class).reject do |candidate|
candidate.singleton_class? || candidate == self
end
end

def subclasses
descendants.select { |candidate| candidate.superclass == self }
end
end

require "openai"

raise "missing OrHash" unless OpenAI::Models::Batch.sorbet_constant_defined?(:OrHash)
RUBY

_, stderr, status =
Open3.capture3(
RbConfig.ruby,
"-I",
File.expand_path("../../lib", __dir__),
"-e",
script
)

assert_predicate(status, :success?, stderr)
end
end
Loading