def METHOD_NAME(self):
    params = {}
    inclusions = []
    if isinstance(self, IncludeCustomEndpoint):
        if self._include_custom:
            inclusions.append("custom")
    if isinstance(self, UserIDIncludeEndpoint):
        if self._uuid_details_level:
            if self._uuid_details_level == UserIDIncludeEndpoint.USER_ID:
                inclusions.append("user_id")
            elif self._uuid_details_level == UserIDIncludeEndpoint.USER_ID_WITH_CUSTOM:
                inclusions.append("user_id.custom")
    if isinstance(self, SpaceIDIncludeEndpoint):
        if self._space_details_level:
            if self._space_details_level == SpaceIDIncludeEndpoint.CHANNEL:
                inclusions.append("space")
            elif self._space_details_level == SpaceIDIncludeEndpoint.CHANNEL_WITH_CUSTOM:
                inclusions.append("space.custom")
    if isinstance(self, ListEndpoint):
        if self._filter:
            params["filter"] = str(self._filter)
        if self._limit:
            params["limit"] = int(self._limit)
        if self._include_total_count:
            params["count"] = bool(self._include_total_count)
        if self._sort_keys:
            joined_sort_params_array = []
            for sort_key in self._sort_keys:
                joined_sort_params_array.append("%s:%s" % (sort_key.key_str(), sort_key.dir_str()))
            params["sort"] = ",".join(joined_sort_params_array)
        if self._page:
            if isinstance(self._page, Next):
                params["start"] = self._page.hash
            elif isinstance(self._page, Previous):
                params["end"] = self._page.hash
            else:
                raise ValueError()
    if len(inclusions) > 0:
        params["include"] = ",".join(inclusions)
    return params