'Delete this file.
:param str message: (required), commit message to describe the removal
:param str branch: (optional), branch where the file exists.
Defaults to the default branch of the repository.
:param dict committer: (optional), if no information is given the
authenticated user\'s information will be used. You must specify
both a name and email.
:param dict author: (optional), if omitted this will be filled in with
committer information. If passed, you must specify both a name and
email.
:returns: dictionary of new content and associated commit
:rtype: :class:`~github3.repos.contents.Contents` and
:class:`~github3.git.Commit`'

@requires_auth
def delete(self, message, branch=None, committer=None, author=None):

    json = {}
    if message:
        data = {u'message': message, u'sha': self.sha, u'branch': branch, u'committer': validate_commmitter(committer), u'author': validate_commmitter(author)}
        self._remove_none(data)
        json = self._json(self._delete(self._api, data=dumps(data)), 200)
        if (json and (u'commit' in json)):
            json[u'commit'] = Commit(json[u'commit'], self)
        if (json and (u'content' in json)):
            json[u'content'] = self._instance_or_null(Contents, json[u'content'])
    return json
