rbi/lib/openai/errors.rbi (134 lines of code) (raw):
# typed: strong
module OpenAI
module Errors
class Error < StandardError
sig { returns(T.nilable(StandardError)) }
attr_accessor :cause
end
class ConversionError < OpenAI::Errors::Error
end
class APIError < OpenAI::Errors::Error
sig { returns(URI::Generic) }
attr_accessor :url
sig { returns(T.nilable(Integer)) }
attr_accessor :status
sig { returns(T.nilable(T.anything)) }
attr_accessor :body
sig { returns(T.nilable(String)) }
attr_accessor :code
sig { returns(T.nilable(String)) }
attr_accessor :param
sig { returns(T.nilable(String)) }
attr_accessor :type
# @api private
sig do
params(
url: URI::Generic,
status: T.nilable(Integer),
body: T.nilable(Object),
request: NilClass,
response: NilClass,
message: T.nilable(String)
)
.returns(T.attached_class)
end
def self.new(url:, status: nil, body: nil, request: nil, response: nil, message: nil); end
end
class APIConnectionError < OpenAI::Errors::APIError
sig { void }
attr_accessor :status
sig { void }
attr_accessor :body
sig { void }
attr_accessor :code
sig { void }
attr_accessor :param
sig { void }
attr_accessor :type
# @api private
sig do
params(
url: URI::Generic,
status: NilClass,
body: NilClass,
request: NilClass,
response: NilClass,
message: T.nilable(String)
)
.returns(T.attached_class)
end
def self.new(url:, status: nil, body: nil, request: nil, response: nil, message: "Connection error.")
end
end
class APITimeoutError < OpenAI::Errors::APIConnectionError
# @api private
sig do
params(
url: URI::Generic,
status: NilClass,
body: NilClass,
request: NilClass,
response: NilClass,
message: T.nilable(String)
)
.returns(T.attached_class)
end
def self.new(url:, status: nil, body: nil, request: nil, response: nil, message: "Request timed out.")
end
end
class APIStatusError < OpenAI::Errors::APIError
# @api private
sig do
params(
url: URI::Generic,
status: Integer,
body: T.nilable(Object),
request: NilClass,
response: NilClass,
message: T.nilable(String)
)
.returns(T.attached_class)
end
def self.for(url:, status:, body:, request:, response:, message: nil); end
sig { returns(Integer) }
attr_accessor :status
sig { returns(T.nilable(String)) }
attr_accessor :code
sig { returns(T.nilable(String)) }
attr_accessor :param
sig { returns(T.nilable(String)) }
attr_accessor :type
# @api private
sig do
params(
url: URI::Generic,
status: Integer,
body: T.nilable(Object),
request: NilClass,
response: NilClass,
message: T.nilable(String)
)
.returns(T.attached_class)
end
def self.new(url:, status:, body:, request:, response:, message: nil); end
end
class BadRequestError < OpenAI::Errors::APIStatusError
HTTP_STATUS = 400
end
class AuthenticationError < OpenAI::Errors::APIStatusError
HTTP_STATUS = 401
end
class PermissionDeniedError < OpenAI::Errors::APIStatusError
HTTP_STATUS = 403
end
class NotFoundError < OpenAI::Errors::APIStatusError
HTTP_STATUS = 404
end
class ConflictError < OpenAI::Errors::APIStatusError
HTTP_STATUS = 409
end
class UnprocessableEntityError < OpenAI::Errors::APIStatusError
HTTP_STATUS = 422
end
class RateLimitError < OpenAI::Errors::APIStatusError
HTTP_STATUS = 429
end
class InternalServerError < OpenAI::Errors::APIStatusError
HTTP_STATUS = T.let((500..), T::Range[Integer])
end
end
end