Current section
Files
Jump to
Current section
Files
lib/schemas/response/input/message_resource.ex
defmodule OpenAi.Response.Input.MessageResource do
@moduledoc """
Provides struct and type for a Response.Input.MessageResource
"""
@type t :: %__MODULE__{
content:
[
OpenAi.Response.Input.FileContent.t()
| OpenAi.Response.Input.ImageContent.t()
| OpenAi.Response.Input.TextContent.t()
]
| nil,
id: String.t() | nil,
role: String.t() | nil,
status: String.t() | nil,
type: String.t() | nil
}
defstruct [:content, :id, :role, :status, :type]
@doc false
@spec __fields__(atom) :: keyword
def __fields__(type \\ :t)
def __fields__(:t) do
[
content: [
union: [
{OpenAi.Response.Input.FileContent, :t},
{OpenAi.Response.Input.ImageContent, :t},
{OpenAi.Response.Input.TextContent, :t}
]
],
id: {:string, :generic},
role: {:enum, ["user", "system", "developer"]},
status: {:enum, ["in_progress", "completed", "incomplete"]},
type: {:const, "message"}
]
end
end