defmodule GitHub.Snapshot do @moduledoc """ Provides struct and type for a Snapshot """ use GitHub.Encoder @type t :: %__MODULE__{ __info__: map, detector: map, job: map, manifests: map | nil, metadata: GitHub.Metadata.t() | nil, ref: String.t(), scanned: DateTime.t(), sha: String.t(), version: integer } defstruct [:__info__, :detector, :job, :manifests, :metadata, :ref, :scanned, :sha, :version] @doc false @spec __fields__(atom) :: keyword def __fields__(type \\ :t) def __fields__(:t) do [ detector: :map, job: :map, manifests: :map, metadata: {GitHub.Metadata, :t}, ref: {:string, :generic}, scanned: {:string, :date_time}, sha: {:string, :generic}, version: :integer ] end end