def save(self, **kwargs):
updated_data = self._get_updated_data()<EOL>if not updated_data:<EOL><INDENT>return<EOL><DEDENT>obj_id = self.get_id()<EOL>server_data = self.manager.update(obj_id, updated_data, **kwargs)<EOL>if server_data is not None:<EOL><INDENT>self._update_attrs(server_data)<EOL><DEDENT>
Save the changes made to the object to the server.

        The object is updated to match what the server returns.

        Args:
            **kwargs: Extra options to send to the server (e.g. sudo)

        Raise:
            GitlabAuthenticationError: If authentication is not correct
            GitlabUpdateError: If the server cannot perform the request