# Generated by `mix github.gen` from docs/github-api/api.github.com.json.
# Do not edit by hand; re-run the task instead.
defmodule Noizu.Github.Api.EnterpriseTeamMemberships do
@moduledoc """
GitHub `enterprise-team-memberships` API.
"""
import Noizu.Github
@doc """
Add team member
@see https://docs.github.com/rest/enterprise-teams/enterprise-team-members#add-team-member
"""
def add(enterprise, enterprise_team, username, body, options \\ nil) do
url =
github_base() <>
"/enterprises/#{enterprise}/teams/#{enterprise_team}/memberships/#{username}"
body = body
api_call(:put, url, body, Noizu.Github.SimpleUser, options)
end
@doc """
Bulk add team members
@see https://docs.github.com/rest/enterprise-teams/enterprise-team-members#bulk-add-team-members
"""
def bulk_add(enterprise, enterprise_team, body, options \\ nil) do
url = github_base() <> "/enterprises/#{enterprise}/teams/#{enterprise_team}/memberships/add"
body = body
api_call(:post, url, body, Noizu.Github.Collection.SimpleUser, options)
end
@doc """
Bulk remove team members
@see https://docs.github.com/rest/enterprise-teams/enterprise-team-members#bulk-remove-team-members
"""
def bulk_remove(enterprise, enterprise_team, body, options \\ nil) do
url =
github_base() <> "/enterprises/#{enterprise}/teams/#{enterprise_team}/memberships/remove"
body = body
api_call(:post, url, body, Noizu.Github.Collection.SimpleUser, options)
end
@doc """
Get enterprise team membership
@see https://docs.github.com/rest/enterprise-teams/enterprise-team-members#get-enterprise-team-membership
"""
def get(enterprise, enterprise_team, username, options \\ nil) do
url =
github_base() <>
"/enterprises/#{enterprise}/teams/#{enterprise_team}/memberships/#{username}"
body = %{}
api_call(:get, url, body, Noizu.Github.SimpleUser, options)
end
@doc """
List members in an enterprise team
@see https://docs.github.com/rest/enterprise-teams/enterprise-team-members#list-members-in-an-enterprise-team
"""
def list(enterprise, enterprise_team, options \\ nil) do
url =
(
query =
[
get_field(:per_page, options, nil),
get_field(:page, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/enterprises/#{enterprise}/teams/#{enterprise_team}/memberships" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SimpleUser, options)
end
@doc """
Remove team membership
@see https://docs.github.com/rest/enterprise-teams/enterprise-team-members#remove-team-membership
"""
def remove(enterprise, enterprise_team, username, options \\ nil) do
url =
github_base() <>
"/enterprises/#{enterprise}/teams/#{enterprise_team}/memberships/#{username}"
body = %{}
api_call(:delete, url, body, Noizu.Github.Raw, options)
end
end