@type external() :: %{url: binary()}
@type file() :: %{url: binary(), expiry_time: binary()}
@type t() :: %{type: binary(), file: file(), external: external()}