defmodule GitHub.Repository.Permissions do
@moduledoc """
Provides struct and types for a Repository.Permissions
"""
use GitHub.Encoder
@type full :: %__MODULE__{
__info__: map,
admin: boolean,
maintain: boolean | nil,
pull: boolean,
push: boolean,
triage: boolean | nil
}
@type minimal :: %__MODULE__{
__info__: map,
admin: boolean | nil,
maintain: boolean | nil,
pull: boolean | nil,
push: boolean | nil,
triage: boolean | nil
}
@type t :: %__MODULE__{
__info__: map,
admin: boolean,
maintain: boolean | nil,
pull: boolean,
push: boolean,
triage: boolean | nil
}
defstruct [:__info__, :admin, :maintain, :pull, :push, :triage]
@doc false
@spec __fields__(atom) :: keyword
def __fields__(type \\ :t)
def __fields__(:full) do
[admin: :boolean, maintain: :boolean, pull: :boolean, push: :boolean, triage: :boolean]
end
def __fields__(:minimal) do
[admin: :boolean, maintain: :boolean, pull: :boolean, push: :boolean, triage: :boolean]
end
def __fields__(:t) do
[admin: :boolean, maintain: :boolean, pull: :boolean, push: :boolean, triage: :boolean]
end
end