defmodule Image.Plug.Variant do @moduledoc """ A named, stored pipeline that requests can resolve by name. Variants are the project's analogue of Cloudflare Images variants: reusable templates that any URL can name. The `:options` field holds the original provider-specific options string for round-tripping through the admin API; `:pipeline` holds the parsed canonical form. """ alias Image.Plug.Pipeline @type t :: %__MODULE__{ name: String.t(), pipeline: Pipeline.t(), options: nil | String.t(), metadata: map(), never_require_signed_urls?: boolean(), inserted_at: nil | DateTime.t(), updated_at: nil | DateTime.t() } @enforce_keys [:name, :pipeline] defstruct name: nil, pipeline: nil, options: nil, metadata: %{}, never_require_signed_urls?: false, inserted_at: nil, updated_at: nil end