lib/k8s/middleware/request.ex

defmodule K8s.Middleware.Request do
  @moduledoc "HTTP Request middleware"

  @typedoc "Middleware Request type"
  @type t :: %__MODULE__{
          conn: K8s.Conn.t(),
          method: atom(),
          url: String.t(),
          body: String.t() | map() | list(map()) | nil,
          headers: Keyword.t() | nil,
          opts: Keyword.t() | nil
        }

  defstruct conn: nil, method: nil, url: nil, body: nil, headers: [], opts: []

  @doc "Request middleware callback"
  @callback call(t()) :: {:ok, t()} | {:error, any()}
end