Module: OpenAI::Internal::Type::Enum Private

Includes:
Converter, Util::SorbetRuntimeSupport
Included in:
Helpers::StructuredOutput::EnumOf, Models::AllModels::ResponsesOnlyModel, Models::Audio::SpeechCreateParams::ResponseFormat, Models::Audio::SpeechModel, Models::Audio::TranscriptionCreateParams::ChunkingStrategy::VadConfig::Type, Models::Audio::TranscriptionCreateParams::TimestampGranularity, Models::Audio::TranscriptionInclude, Models::Audio::TranslationCreateParams::ResponseFormat, Models::AudioModel, Models::AudioResponseFormat, Models::Batch::Status, Models::BatchCreateParams::CompletionWindow, Models::BatchCreateParams::Endpoint, Models::Beta::AssistantListParams::Order, Models::Beta::AssistantToolChoice::Type, Models::Beta::AssistantToolChoiceOption::Auto, Models::Beta::FileSearchTool::FileSearch::RankingOptions::Ranker, Models::Beta::ThreadCreateAndRunParams::Thread::Message::Role, Models::Beta::ThreadCreateAndRunParams::TruncationStrategy::Type, Models::Beta::ThreadCreateParams::Message::Role, Models::Beta::Threads::ImageFile::Detail, Models::Beta::Threads::ImageFileDelta::Detail, Models::Beta::Threads::ImageURL::Detail, Models::Beta::Threads::ImageURLDelta::Detail, Models::Beta::Threads::Message::IncompleteDetails::Reason, Models::Beta::Threads::Message::Role, Models::Beta::Threads::Message::Status, Models::Beta::Threads::MessageCreateParams::Role, Models::Beta::Threads::MessageDelta::Role, Models::Beta::Threads::MessageListParams::Order, Models::Beta::Threads::Run::IncompleteDetails::Reason, Models::Beta::Threads::Run::LastError::Code, Models::Beta::Threads::Run::TruncationStrategy::Type, Models::Beta::Threads::RunCreateParams::AdditionalMessage::Role, Models::Beta::Threads::RunCreateParams::TruncationStrategy::Type, Models::Beta::Threads::RunListParams::Order, Models::Beta::Threads::RunStatus, Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::RankingOptions::Ranker, Models::Beta::Threads::Runs::FileSearchToolCall::FileSearch::Result::Content::Type, Models::Beta::Threads::Runs::RunStep::LastError::Code, Models::Beta::Threads::Runs::RunStep::Status, Models::Beta::Threads::Runs::RunStep::Type, Models::Beta::Threads::Runs::RunStepInclude, Models::Beta::Threads::Runs::StepListParams::Order, Models::Chat::ChatCompletion::Choice::FinishReason, Models::Chat::ChatCompletion::ServiceTier, Models::Chat::ChatCompletionAudioParam::Format, Models::Chat::ChatCompletionChunk::Choice::Delta::Role, Models::Chat::ChatCompletionChunk::Choice::Delta::ToolCall::Type, Models::Chat::ChatCompletionChunk::Choice::FinishReason, Models::Chat::ChatCompletionChunk::ServiceTier, Models::Chat::ChatCompletionContentPartImage::ImageURL::Detail, Models::Chat::ChatCompletionContentPartInputAudio::InputAudio::Format, Models::Chat::ChatCompletionModality, Models::Chat::ChatCompletionRole, Models::Chat::ChatCompletionToolChoiceOption::Auto, Models::Chat::CompletionCreateParams::FunctionCall::FunctionCallMode, Models::Chat::CompletionCreateParams::Modality, Models::Chat::CompletionCreateParams::ServiceTier, Models::Chat::CompletionCreateParams::WebSearchOptions::SearchContextSize, Models::Chat::CompletionListParams::Order, Models::Chat::Completions::MessageListParams::Order, Models::ChatModel, Models::ComparisonFilter::Type, Models::CompletionChoice::FinishReason, Models::CompoundFilter::Type, Models::ContainerCreateParams::ExpiresAfter::Anchor, Models::ContainerCreateResponse::ExpiresAfter::Anchor, Models::ContainerListParams::Order, Models::ContainerListResponse::ExpiresAfter::Anchor, Models::ContainerRetrieveResponse::ExpiresAfter::Anchor, Models::Containers::FileListParams::Order, Models::EmbeddingCreateParams::EncodingFormat, Models::EmbeddingModel, Models::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::Role, Models::EvalCreateParams::TestingCriterion::LabelModel::Input::EvalItem::Type, Models::EvalListParams::Order, Models::EvalListParams::OrderBy, Models::Evals::CreateEvalCompletionsRunDataSource::InputMessages::Template::Template::Message::Role, Models::Evals::CreateEvalCompletionsRunDataSource::InputMessages::Template::Template::Message::Type, Models::Evals::CreateEvalCompletionsRunDataSource::Type, Models::Evals::RunCancelResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Role, Models::Evals::RunCancelResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Type, Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::Role, Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::InputMessages::Template::Template::EvalItem::Type, Models::Evals::RunCreateParams::DataSource::CreateEvalResponsesRunDataSource::Type, Models::Evals::RunCreateResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Role, Models::Evals::RunCreateResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Type, Models::Evals::RunListParams::Order, Models::Evals::RunListParams::Status, Models::Evals::RunListResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Role, Models::Evals::RunListResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Type, Models::Evals::RunRetrieveResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Role, Models::Evals::RunRetrieveResponse::DataSource::Responses::InputMessages::Template::Template::EvalItem::Type, Models::Evals::Runs::OutputItemListParams::Order, Models::Evals::Runs::OutputItemListParams::Status, Models::FileListParams::Order, Models::FileObject::Purpose, Models::FileObject::Status, Models::FilePurpose, Models::FineTuning::Checkpoints::PermissionRetrieveParams::Order, Models::FineTuning::FineTuningJob::Method::Type, Models::FineTuning::FineTuningJob::Status, Models::FineTuning::FineTuningJobEvent::Level, Models::FineTuning::FineTuningJobEvent::Type, Models::FineTuning::JobCreateParams::Method::Type, Models::FineTuning::ReinforcementHyperparameters::ReasoningEffort, Models::Graders::LabelModelGrader::Input::Role, Models::Graders::LabelModelGrader::Input::Type, Models::Graders::ScoreModelGrader::Input::Role, Models::Graders::ScoreModelGrader::Input::Type, Models::Graders::StringCheckGrader::Operation, Models::Graders::TextSimilarityGrader::EvaluationMetric, Models::ImageCreateVariationParams::ResponseFormat, Models::ImageCreateVariationParams::Size, Models::ImageEditParams::Background, Models::ImageEditParams::Quality, Models::ImageEditParams::ResponseFormat, Models::ImageEditParams::Size, Models::ImageGenerateParams::Background, Models::ImageGenerateParams::Moderation, Models::ImageGenerateParams::OutputFormat, Models::ImageGenerateParams::Quality, Models::ImageGenerateParams::ResponseFormat, Models::ImageGenerateParams::Size, Models::ImageGenerateParams::Style, Models::ImageModel, Models::Moderation::CategoryAppliedInputTypes::Harassment, Models::Moderation::CategoryAppliedInputTypes::HarassmentThreatening, Models::Moderation::CategoryAppliedInputTypes::Hate, Models::Moderation::CategoryAppliedInputTypes::HateThreatening, Models::Moderation::CategoryAppliedInputTypes::Illicit, Models::Moderation::CategoryAppliedInputTypes::IllicitViolent, Models::Moderation::CategoryAppliedInputTypes::SelfHarm, Models::Moderation::CategoryAppliedInputTypes::SelfHarmInstruction, Models::Moderation::CategoryAppliedInputTypes::SelfHarmIntent, Models::Moderation::CategoryAppliedInputTypes::Sexual, Models::Moderation::CategoryAppliedInputTypes::SexualMinor, Models::Moderation::CategoryAppliedInputTypes::Violence, Models::Moderation::CategoryAppliedInputTypes::ViolenceGraphic, Models::ModerationModel, Models::Reasoning::GenerateSummary, Models::Reasoning::Summary, Models::ReasoningEffort, Models::Responses::ComputerTool::Environment, Models::Responses::EasyInputMessage::Role, Models::Responses::EasyInputMessage::Type, Models::Responses::FileSearchTool::RankingOptions::Ranker, Models::Responses::InputItemListParams::Order, Models::Responses::Response::IncompleteDetails::Reason, Models::Responses::Response::ServiceTier, Models::Responses::Response::Truncation, Models::Responses::ResponseCodeInterpreterToolCall::Status, Models::Responses::ResponseComputerToolCall::Action::Click::Button, Models::Responses::ResponseComputerToolCall::Status, Models::Responses::ResponseComputerToolCall::Type, Models::Responses::ResponseComputerToolCallOutputItem::Status, Models::Responses::ResponseCreateParams::ServiceTier, Models::Responses::ResponseCreateParams::Truncation, Models::Responses::ResponseError::Code, Models::Responses::ResponseFileSearchToolCall::Status, Models::Responses::ResponseFunctionToolCall::Status, Models::Responses::ResponseFunctionToolCallOutputItem::Status, Models::Responses::ResponseFunctionWebSearch::Status, Models::Responses::ResponseIncludable, Models::Responses::ResponseInputAudio::Format, Models::Responses::ResponseInputImage::Detail, Models::Responses::ResponseInputItem::ComputerCallOutput::Status, Models::Responses::ResponseInputItem::FunctionCallOutput::Status, Models::Responses::ResponseInputItem::ImageGenerationCall::Status, Models::Responses::ResponseInputItem::ItemReference::Type, Models::Responses::ResponseInputItem::LocalShellCall::Status, Models::Responses::ResponseInputItem::LocalShellCallOutput::Status, Models::Responses::ResponseInputItem::Message::Role, Models::Responses::ResponseInputItem::Message::Status, Models::Responses::ResponseInputItem::Message::Type, Models::Responses::ResponseInputMessageItem::Role, Models::Responses::ResponseInputMessageItem::Status, Models::Responses::ResponseInputMessageItem::Type, Models::Responses::ResponseItem::ImageGenerationCall::Status, Models::Responses::ResponseItem::LocalShellCall::Status, Models::Responses::ResponseItem::LocalShellCallOutput::Status, Models::Responses::ResponseOutputItem::ImageGenerationCall::Status, Models::Responses::ResponseOutputItem::LocalShellCall::Status, Models::Responses::ResponseOutputMessage::Status, Models::Responses::ResponseReasoningItem::Status, Models::Responses::ResponseStatus, Models::Responses::Tool::ImageGeneration::Background, Models::Responses::Tool::ImageGeneration::Model, Models::Responses::Tool::ImageGeneration::Moderation, Models::Responses::Tool::ImageGeneration::OutputFormat, Models::Responses::Tool::ImageGeneration::Quality, Models::Responses::Tool::ImageGeneration::Size, Models::Responses::Tool::Mcp::RequireApproval::McpToolApprovalSetting, Models::Responses::ToolChoiceOptions, Models::Responses::ToolChoiceTypes::Type, Models::Responses::WebSearchTool::SearchContextSize, Models::Responses::WebSearchTool::Type, Models::ResponsesModel::ResponsesOnlyModel, Models::Upload::Status, Models::VectorStore::Status, Models::VectorStoreListParams::Order, Models::VectorStoreSearchParams::RankingOptions::Ranker, Models::VectorStoreSearchResponse::Content::Type, Models::VectorStores::FileBatchListFilesParams::Filter, Models::VectorStores::FileBatchListFilesParams::Order, Models::VectorStores::FileListParams::Filter, Models::VectorStores::FileListParams::Order, Models::VectorStores::VectorStoreFile::LastError::Code, Models::VectorStores::VectorStoreFile::Status, Models::VectorStores::VectorStoreFileBatch::Status
Defined in:
lib/openai/internal/type/enum.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

A value from among a specified list of options. OpenAPI enum values map to Ruby values in the SDK as follows:

  1. boolean => true | false

  2. integer => Integer

  3. float => Float

  4. string => Symbol

We can therefore convert string values to Symbols, but can’t convert other values safely.

Examples:

# `chat_model` is a `OpenAI::ChatModel`
case chat_model
when OpenAI::ChatModel::GPT_4_1
  # ...
when OpenAI::ChatModel::GPT_4_1_MINI
  # ...
when OpenAI::ChatModel::GPT_4_1_NANO
  # ...
else
  puts(chat_model)
end
case chat_model
in :"gpt-4.1"
  # ...
in :"gpt-4.1-mini"
  # ...
in :"gpt-4.1-nano"
  # ...
else
  puts(chat_model)
end

Instance Method Summary collapse

Methods included from Util::SorbetRuntimeSupport

#const_missing, #define_sorbet_constant!, #sorbet_constant_defined?, to_sorbet_type

Methods included from Converter

coerce, dump, inspect, type_info

Instance Method Details

#==(other) ⇒ Boolean

Parameters:

  • other (Object)

Returns:



64
65
66
67
68
# File 'lib/openai/internal/type/enum.rb', line 64

def ==(other)
  # rubocop:disable Style/CaseEquality
  OpenAI::Internal::Type::Enum === other && other.values.to_set == values.to_set
  # rubocop:enable Style/CaseEquality
end

#===(other) ⇒ Boolean

Parameters:

  • other (Object)

Returns:



57
# File 'lib/openai/internal/type/enum.rb', line 57

def ===(other) = values.include?(other)

#coerce(value, state:) ⇒ Symbol, Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Unlike with primitives, ‘Enum` additionally validates that the value is a member of the enum.

Parameters:

  • value (String, Symbol, Object)
  • state (Hash{Symbol=>Object})

    .

    @option state [Boolean, :strong] :strictness

    @option state [HashSymbol=>Object] :exactness

    @option state [Integer] :branched

Returns:

  • (Symbol, Object)


91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/openai/internal/type/enum.rb', line 91

def coerce(value, state:)
  exactness = state.fetch(:exactness)
  val = value.is_a?(String) ? value.to_sym : value

  if values.include?(val)
    exactness[:yes] += 1
    val
  else
    exactness[values.first&.class == val.class ? :maybe : :no] += 1
    value
  end
end

#dump(value, state: ) ⇒ Symbol, Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • value (Symbol, Object)
  • state (Hash{Symbol=>Object}) (defaults to: )

    .

    @option state [Boolean] :can_retry

Returns:

  • (Symbol, Object)


# File 'lib/openai/internal/type/enum.rb', line 104

#hashInteger

Returns:

  • (Integer)


73
# File 'lib/openai/internal/type/enum.rb', line 73

def hash = values.to_set.hash

#inspect(depth: 0) ⇒ String

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • depth (Integer) (defaults to: 0)

Returns:

  • (String)


132
133
134
135
136
137
138
139
140
141
# File 'lib/openai/internal/type/enum.rb', line 132

def inspect(depth: 0)
  if depth.positive?
    return is_a?(Module) ? super() : self.class.name
  end

  members = values.map { OpenAI::Internal::Type::Converter.inspect(_1, depth: depth.succ) }
  prefix = is_a?(Module) ? name : self.class.name

  "#{prefix}[#{members.join(' | ')}]"
end

#to_sorbet_typeObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Object)


118
119
120
121
122
123
124
125
# File 'lib/openai/internal/type/enum.rb', line 118

def to_sorbet_type
  case values
  in []
    T.noreturn
  in [value, *_]
    T.all(OpenAI::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(value), self)
  end
end

#valuesArray<NilClass, Boolean, Integer, Float, Symbol>

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

All of the valid Symbol values for this enum.

Returns:

  • (Array<NilClass, Boolean, Integer, Float, Symbol>)


50
# File 'lib/openai/internal/type/enum.rb', line 50

def values = constants.map { const_get(_1) }