def create_user(self, email, first_name, last_name, password, role="user", metadata={}):
        """
        Create a new user

        :type email: str
        :param email: User's email

        :type first_name: str
        :param first_name: User's first name

        :type last_name: str
        :param last_name: User's last name

        :type password: str
        :param password: User's password

        :type role: str
        :param role: User's default role, one of "admin" or "user"

        :type metadata: dict
        :param metadata: User metadata

        :rtype: dict
        :return: an empty dictionary
        """
        data = {
            'firstName': first_name,
            'lastName': last_name,
            'email': email,
            'metadata': metadata,
            'role': role.upper() if role else role,
            'newPassword': password,
        }
        response = self.post('createUser', data)
        return self._handle_empty(email, response)