lib/schemas/dependency_graph/spdx_sbom_sbom.ex

defmodule GitHub.DependencyGraph.SpdxSbomSbom do
  @moduledoc """
  Provides struct and type for a DependencyGraph.SpdxSbomSbom
  """
  use GitHub.Encoder

  @type t :: %__MODULE__{
          SPDXID: String.t(),
          __info__: map,
          creationInfo: GitHub.DependencyGraph.SpdxSbomSbomCreationInfo.t(),
          dataLicense: String.t(),
          documentDescribes: [String.t()],
          documentNamespace: String.t(),
          name: String.t(),
          packages: [GitHub.DependencyGraph.SpdxSbomSbomPackages.t()],
          spdxVersion: String.t()
        }

  defstruct [
    :SPDXID,
    :__info__,
    :creationInfo,
    :dataLicense,
    :documentDescribes,
    :documentNamespace,
    :name,
    :packages,
    :spdxVersion
  ]

  @doc false
  @spec __fields__(atom) :: keyword
  def __fields__(type \\ :t)

  def __fields__(:t) do
    [
      SPDXID: {:string, :generic},
      creationInfo: {GitHub.DependencyGraph.SpdxSbomSbomCreationInfo, :t},
      dataLicense: {:string, :generic},
      documentDescribes: [string: :generic],
      documentNamespace: {:string, :generic},
      name: {:string, :generic},
      packages: [{GitHub.DependencyGraph.SpdxSbomSbomPackages, :t}],
      spdxVersion: {:string, :generic}
    ]
  end
end