FalEx.Types (fal_ex v0.1.0)

View Source

Type definitions for the FalEx client library.

Summary

Types

completed_queue_status()

@type completed_queue_status() :: %{
  status: :completed,
  request_id: request_id(),
  response_url: String.t(),
  logs: [log_entry()],
  metrics: metrics()
}

endpoint_id()

@type endpoint_id() :: String.t()

input()

@type input() :: map() | keyword() | nil

log_entry()

@type log_entry() :: %{
  message: String.t(),
  level: String.t(),
  timestamp: String.t(),
  source: String.t()
}

metrics()

@type metrics() :: %{
  inference_time: number() | nil,
  queue_time: number() | nil,
  total_time: number() | nil
}

output()

@type output() :: any()

queue_status()

@type queue_status() :: :in_queue | :in_progress | :completed

queue_status_response()

@type queue_status_response() :: %{
  status: queue_status(),
  request_id: request_id(),
  response_url: String.t() | nil,
  logs: [log_entry()] | nil,
  metrics: metrics() | nil
}

request_id()

@type request_id() :: String.t()

result()

@type result() :: map()

run_options()

@type run_options() :: %{
  optional(:input) => input(),
  optional(:path) => String.t(),
  optional(:method) => :get | :post,
  optional(:query) => map(),
  optional(:abort_signal) => reference(),
  optional(:request_strategy) => String.t()
}

storage_file()

@type storage_file() :: %{
  file_name: String.t(),
  file_size: integer(),
  file_data: binary(),
  content_type: String.t() | nil
}

url_options()

@type url_options() :: %{
  optional(:subdomain) => String.t(),
  optional(:path) => String.t()
}

validation_error_info()

@type validation_error_info() :: %{
  loc: [String.t() | integer()],
  msg: String.t(),
  type: String.t()
}

webhook_response()

@type webhook_response() :: %{
  request_id: request_id(),
  status: queue_status(),
  payload: output() | nil,
  error: String.t() | nil,
  metrics: metrics() | nil
}