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<EOL>assert add_scopes is github.GithubObject.NotSet or all(isinstance(element, (str, unicode)) for element in add_scopes), add_scopes<EOL>assert remove_scopes is github.GithubObject.NotSet or all(isinstance(element, (str, unicode)) for element in remove_scopes), remove_scopes<EOL>assert note is github.GithubObject.NotSet or isinstance(note, (str, unicode)), note<EOL>assert note_url is github.GithubObject.NotSet or isinstance(note_url, (str, unicode)), note_url<EOL>post_parameters = dict()<EOL>if scopes is not github.GithubObject.NotSet:<EOL><INDENT>post_parameters["<STR_LIT>"] = scopes<EOL><DEDENT>if add_scopes is not github.GithubObject.NotSet:<EOL><INDENT>post_parameters["<STR_LIT>"] = add_scopes<EOL><DEDENT>if remove_scopes is not github.GithubObject.NotSet:<EOL><INDENT>post_parameters["<STR_LIT>"] = remove_scopes<EOL><DEDENT>if note is not github.GithubObject.NotSet:<EOL><INDENT>post_parameters["<STR_LIT>"] = note<EOL><DEDENT>if note_url is not github.GithubObject.NotSet:<EOL><INDENT>post_parameters["<STR_LIT>"] = note_url<EOL><DEDENT>headers, data = self._requester.requestJsonAndCheck(<EOL>"<STR_LIT>",<EOL>self.url,<EOL>input=post_parameters<EOL>)<EOL>self._useAttributes(data)<EOL>
: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