Packages

Elixir SDK for Bifrost, the LLM gateway by Maxim

Current section

Files

Jump to
ex_bifrost lib ex_bifrost model gemini_schema.ex
Raw

lib/ex_bifrost/model/gemini_schema.ex

# NOTE: This file is auto generated by OpenAPI Generator 7.23.0 (https://openapi-generator.tech)
# using the Elixir SDK Generator template (https://github.com/houllette/elixir-sdk-generator).
# Do not edit this file manually — edit the templates and regenerate instead.
defmodule ExBifrost.Model.GeminiSchema do
@moduledoc """
Schema object for defining input/output data types (OpenAPI 3.0 subset)
"""
@derive JSON.Encoder
defstruct [
:type,
:format,
:title,
:description,
:nullable,
:enum,
:properties,
:required,
:items,
:minItems,
:maxItems,
:minLength,
:maxLength,
:minimum,
:maximum,
:pattern,
:default,
:example,
:anyOf,
:propertyOrdering,
:minProperties,
:maxProperties
]
@type t :: %__MODULE__{
:type => String.t() | nil,
:format => String.t() | nil,
:title => String.t() | nil,
:description => String.t() | nil,
:nullable => boolean() | nil,
:enum => [String.t()] | nil,
:properties => %{optional(String.t()) => ExBifrost.Model.GeminiSchema.t()} | nil,
:required => [String.t()] | nil,
:items => ExBifrost.Model.GeminiSchema.t() | nil,
:minItems => integer() | nil,
:maxItems => integer() | nil,
:minLength => integer() | nil,
:maxLength => integer() | nil,
:minimum => number() | nil,
:maximum => number() | nil,
:pattern => String.t() | nil,
:default => any() | nil,
:example => any() | nil,
:anyOf => [ExBifrost.Model.GeminiSchema.t()] | nil,
:propertyOrdering => [String.t()] | nil,
:minProperties => integer() | nil,
:maxProperties => integer() | nil
}
alias ExBifrost.Deserializer
def decode(value) do
value
|> Deserializer.deserialize(:properties, :map, ExBifrost.Model.GeminiSchema)
|> Deserializer.deserialize(:items, :struct, ExBifrost.Model.GeminiSchema)
|> Deserializer.deserialize(:anyOf, :list, ExBifrost.Model.GeminiSchema)
end
end