<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def search_reports_page(self, search_term=None, enclave_ids=None, from_time=None, to_time=None, tags=None, excluded_tags=None, page_size=None, page_number=None):
 """ Search for reports containing a search term. :param str search_term: The term to search for. If empty, no search term will be applied. Otherwise, must be at least 3 characters. :param list(str) enclave_ids: list of enclave ids used to restrict reports to specific enclaves (optional - by default reports from all of user's enclaves are returned) :param int from_time: start of time window in milliseconds since epoch (optional) :param int to_time: end of time window in milliseconds since epoch (optional) :param list(str) tags: Name (or list of names) of tag(s) to filter reports by. Only reports containing ALL of these tags will be returned. (optional) :param list(str) excluded_tags: Reports containing ANY of these tags will be excluded from the results. :param int page_number: the page number to get. (optional) :param int page_size: the size of the page to be returned. :return: a |Page| of |Report| objects. *NOTE*: The bodies of these reports will be ``None``. """


        body = {
            'searchTerm': search_term
        }

        params = {
            'enclaveIds': enclave_ids,
            'from': from_time,
            'to': to_time,
            'tags': tags,
            'excludedTags': excluded_tags,
            'pageSize': page_size,
            'pageNumber': page_number
        }

        resp = self._client.post("reports/search", params=params, data=json.dumps(body))
        page = Page.from_dict(resp.json(), content_type=Report)

        return page