defmodule GitHub.OrgMembership do
@moduledoc """
Provides struct and type for a OrgMembership
"""
use GitHub.Encoder
@type t :: %__MODULE__{
__info__: map,
organization: GitHub.Organization.simple(),
organization_url: String.t(),
permissions: GitHub.OrgMembershipPermissions.t() | nil,
role: String.t(),
state: String.t(),
url: String.t(),
user: GitHub.User.simple() | nil
}
defstruct [
:__info__,
:organization,
:organization_url,
:permissions,
:role,
:state,
:url,
:user
]
@doc false
@spec __fields__(atom) :: keyword
def __fields__(type \\ :t)
def __fields__(:t) do
[
organization: {GitHub.Organization, :simple},
organization_url: {:string, :uri},
permissions: {GitHub.OrgMembershipPermissions, :t},
role: {:enum, ["admin", "member", "billing_manager"]},
state: {:enum, ["active", "pending"]},
url: {:string, :uri},
user: {:union, [{GitHub.User, :simple}, :null]}
]
end
end