':calls: `POST /orgs/:org/teams <http://developer.github.com/v3/orgs/teams>`_
:param name: string
:param repo_names: list of :class:`github.Repository.Repository`
:param permission: string
:rtype: :class:`github.Team.Team`'

def create_team(self, name, repo_names=github.GithubObject.NotSet, permission=github.GithubObject.NotSet):

    assert isinstance(name, (str, unicode)), name
    assert ((repo_names is github.GithubObject.NotSet) or all((isinstance(element, github.Repository.Repository) for element in repo_names))), repo_names
    assert ((permission is github.GithubObject.NotSet) or isinstance(permission, (str, unicode))), permission
    post_parameters = {'name': name}
    if (repo_names is not github.GithubObject.NotSet):
        post_parameters['repo_names'] = [element._identity for element in repo_names]
    if (permission is not github.GithubObject.NotSet):
        post_parameters['permission'] = permission
    (headers, data) = self._requester.requestJsonAndCheck('POST', (self.url + '/teams'), input=post_parameters)
    return github.Team.Team(self._requester, headers, data, completed=True)
