defmodule GitHub.SecretScanning.Location do
@moduledoc """
Provides struct and type for a SecretScanning.Location
"""
use GitHub.Encoder
@type t :: %__MODULE__{
__info__: map,
details:
GitHub.SecretScanning.LocationCommit.t()
| GitHub.SecretScanning.LocationIssueBody.t()
| GitHub.SecretScanning.LocationIssueComment.t()
| GitHub.SecretScanning.LocationIssueTitle.t(),
type: String.t()
}
defstruct [:__info__, :details, :type]
@doc false
@spec __fields__(atom) :: keyword
def __fields__(type \\ :t)
def __fields__(:t) do
[
details:
{:union,
[
{GitHub.SecretScanning.LocationCommit, :t},
{GitHub.SecretScanning.LocationIssueBody, :t},
{GitHub.SecretScanning.LocationIssueComment, :t},
{GitHub.SecretScanning.LocationIssueTitle, :t}
]},
type: {:enum, ["commit", "issue_title", "issue_body", "issue_comment"]}
]
end
end