def list(self, name=None, category=None, page=1, limit=conf.api.pagination.limit, sort=None, visibility=Visibility.DEFAULT, all_parameters=True): """ Return filtered list of services. :param str name: Filter for service name :param str category: Filter :param int page: page number :param int limit: number of items per page :param str visibility: Visibility options *visible* - Only active services, [by default] *deleted* - Only removed services. *all* - All services. :return List service_list: List of services **Example**:: { "service_list": { "total": 20, "per_page": 1, "page": 1, "items": [ { "service_id":"net.associated_ip", "localized_name":{ "ru":"net.associated_ip", "en":"net.associated_ip" }, "measure":{ "measure_id":"hour", "localized_name":{ "ru":"\u0447\u0430\u0441", "en":"hour" }, "measure_type":"time" }, "category":{ "localized_name":{ "ru":"\u0421\u0435\u0442\u044c", "en":"Network" }, "category_id":"net" } } ] } } """ if category: category = frozenset(category) services = Service.list(only_categories=category, visibility=visibility) return {"service_list": self.paginate_services(services, limit, page)}