def list_functions(
        self,
        catalog: str,
        schema: str,
        max_results: Optional[int] = None,
        page_token: Optional[str] = None,
        include_browse: Optional[bool] = None,
    ) -> PagedList["FunctionInfo"]:
        """
        List functions in a catalog and schema.

        Args:
            catalog: The catalog name.
            schema: The schema name.
            max_results: The maximum number of functions to return. Defaults to None.
            page_token: The token for the next page. Defaults to None.
            include_browse: Whether to include functions in the response for which the
            principal can only access selective metadata for. Defaults to None.

        Returns:
            PageList[FunctionInfo]: The paginated list of function infos.
        """
        from databricks.sdk.service.catalog import FunctionInfo

        # do not reuse self.client.functions.list because the list API in databricks-sdk
        # doesn't work for max_results and page_token
        query = {}
        if catalog is not None:
            query["catalog_name"] = catalog
        if max_results is not None:
            query["max_results"] = max_results
        if page_token is not None:
            query["page_token"] = page_token
        if schema is not None:
            query["schema_name"] = schema
        if include_browse is not None:
            query["include_browse"] = include_browse
        headers = {
            "Accept": "application/json",
        }

        function_infos = []
        json = self.client.functions._api.do(
            "GET", "/api/2.1/unity-catalog/functions", query=query, headers=headers
        )
        if "functions" in json:
            function_infos = [FunctionInfo.from_dict(v) for v in json["functions"]]
        token = json.get("next_page_token")
        return PagedList(function_infos, token)

        List functions in a catalog and schema.

        Args:
            catalog: The catalog name.
            schema: The schema name.
            max_results: The maximum number of functions to return. Defaults to None.
            page_token: The token for the next page. Defaults to None.
            include_browse: Whether to include functions in the response for which the
            principal can only access selective metadata for. Defaults to None.

        Returns:
            PageList[FunctionInfo]: The paginated list of function infos.
        
ai/core/src/unitycatalog/ai/core/databricks.py