async def suggest_user_profiles(
        self,
        *,
        data: t.Optional[t.Union[str, t.Sequence[str]]] = None,
        error_trace: t.Optional[bool] = None,
        filter_path: t.Optional[t.Union[str, t.Sequence[str]]] = None,
        hint: t.Optional[t.Mapping[str, t.Any]] = None,
        human: t.Optional[bool] = None,
        name: t.Optional[str] = None,
        pretty: t.Optional[bool] = None,
        size: t.Optional[int] = None,
        body: t.Optional[t.Dict[str, t.Any]] = None,
    ) -> ObjectApiResponse[t.Any]:
        """
        .. raw:: html

          <p>Suggest a user profile.</p>
          <p>Get suggestions for user profiles that match specified search criteria.</p>
          <p>NOTE: The user profile feature is designed only for use by Kibana and Elastic's Observability, Enterprise Search, and Elastic Security solutions.
          Individual users and external applications should not call this API directly.
          Elastic reserves the right to change or remove this feature in future releases without prior notice.</p>


        `<https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-suggest-user-profiles>`_

        :param data: A comma-separated list of filters for the `data` field of the profile
            document. To return all content use `data=*`. To return a subset of content,
            use `data=<key>` to retrieve content nested under the specified `<key>`.
            By default, the API returns no `data` content. It is an error to specify
            `data` as both the query parameter and the request body field.
        :param hint: Extra search criteria to improve relevance of the suggestion result.
            Profiles matching the spcified hint are ranked higher in the response. Profiles
            not matching the hint aren't excluded from the response as long as the profile
            matches the `name` field query.
        :param name: A query string used to match name-related fields in user profile
            documents. Name-related fields are the user's `username`, `full_name`, and
            `email`.
        :param size: The number of profiles to return.
        """
        __path_parts: t.Dict[str, str] = {}
        __path = "/_security/profile/_suggest"
        __query: t.Dict[str, t.Any] = {}
        __body: t.Dict[str, t.Any] = body if body is not None else {}
        if error_trace is not None:
            __query["error_trace"] = error_trace
        if filter_path is not None:
            __query["filter_path"] = filter_path
        if human is not None:
            __query["human"] = human
        if pretty is not None:
            __query["pretty"] = pretty
        if not __body:
            if data is not None:
                __body["data"] = data
            if hint is not None:
                __body["hint"] = hint
            if name is not None:
                __body["name"] = name
            if size is not None:
                __body["size"] = size
        if not __body:
            __body = None  # type: ignore[assignment]
        __headers = {"accept": "application/json"}
        if __body is not None:
            __headers["content-type"] = "application/json"
        return await self.perform_request(  # type: ignore[return-value]
            "POST",
            __path,
            params=__query,
            headers=__headers,
            body=__body,
            endpoint_id="security.suggest_user_profiles",
            path_parts=__path_parts,
        )

        .. raw:: html

          <p>Suggest a user profile.</p>
          <p>Get suggestions for user profiles that match specified search criteria.</p>
          <p>NOTE: The user profile feature is designed only for use by Kibana and Elastic's Observability, Enterprise Search, and Elastic Security solutions.
          Individual users and external applications should not call this API directly.
          Elastic reserves the right to change or remove this feature in future releases without prior notice.</p>


        `<https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-suggest-user-profiles>`_

        :param data: A comma-separated list of filters for the `data` field of the profile
            document. To return all content use `data=*`. To return a subset of content,
            use `data=<key>` to retrieve content nested under the specified `<key>`.
            By default, the API returns no `data` content. It is an error to specify
            `data` as both the query parameter and the request body field.
        :param hint: Extra search criteria to improve relevance of the suggestion result.
            Profiles matching the spcified hint are ranked higher in the response. Profiles
            not matching the hint aren't excluded from the response as long as the profile
            matches the `name` field query.
        :param name: A query string used to match name-related fields in user profile
            documents. Name-related fields are the user's `username`, `full_name`, and
            `email`.
        :param size: The number of profiles to return.
        
elasticsearch/_async/client/security.py