':calls: `PATCH /authorizations/:id <http://developer.github.com/v3/oauth>`_
:param scopes: list of string
:param add_scopes: list of string
:param remove_scopes: list of string
:param note: string
:param note_url: string
:rtype: None'

def edit(self, scopes=github.GithubObject.NotSet, add_scopes=github.GithubObject.NotSet, remove_scopes=github.GithubObject.NotSet, note=github.GithubObject.NotSet, note_url=github.GithubObject.NotSet):

    assert ((scopes is github.GithubObject.NotSet) or all((isinstance(element, (str, unicode)) for element in scopes))), scopes
    assert ((add_scopes is github.GithubObject.NotSet) or all((isinstance(element, (str, unicode)) for element in add_scopes))), add_scopes
    assert ((remove_scopes is github.GithubObject.NotSet) or all((isinstance(element, (str, unicode)) for element in remove_scopes))), remove_scopes
    assert ((note is github.GithubObject.NotSet) or isinstance(note, (str, unicode))), note
    assert ((note_url is github.GithubObject.NotSet) or isinstance(note_url, (str, unicode))), note_url
    post_parameters = dict()
    if (scopes is not github.GithubObject.NotSet):
        post_parameters['scopes'] = scopes
    if (add_scopes is not github.GithubObject.NotSet):
        post_parameters['add_scopes'] = add_scopes
    if (remove_scopes is not github.GithubObject.NotSet):
        post_parameters['remove_scopes'] = remove_scopes
    if (note is not github.GithubObject.NotSet):
        post_parameters['note'] = note
    if (note_url is not github.GithubObject.NotSet):
        post_parameters['note_url'] = note_url
    (headers, data) = self._requester.requestJsonAndCheck('PATCH', self.url, input=post_parameters)
    self._useAttributes(data)
