<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_or_update_group_alias(self, name, alias_id=None, mount_accessor=None, canonical_id=None, mount_point=DEFAULT_MOUNT_POINT):
 """Creates or update a group alias. Supported methods: POST: /{mount_point}/group-alias. Produces: 200 application/json :param alias_id: ID of the group alias. If set, updates the corresponding existing group alias. :type alias_id: str | unicode :param name: Name of the group alias. :type name: str | unicode :param mount_accessor: Mount accessor to which this alias belongs to :type mount_accessor: str | unicode :param canonical_id: ID of the group to which this is an alias. :type canonical_id: str | unicode :param mount_point: The "path" the method/backend was mounted on. :type mount_point: str | unicode :return: The JSON response of the request. :rtype: requests.Response """

        params = {
            'name': name,
            'mount_accessor': mount_accessor,
            'canonical_id': canonical_id,
        }
        if alias_id is not None:
            params['id'] = alias_id
        api_path = '/v1/{mount_point}/group-alias'.format(mount_point=mount_point)
        response = self._adapter.post(
            url=api_path,
            json=params,
        )
        return response.json()