class_docstr: Client for a remote model registry server accessed via REST API calls
  
  :param get_host_creds: Method to be invoked prior to every REST request to get the
    :py:class:`mlflow.rest_utils.MlflowHostCreds` for the request. Note that this
    is a function so that we can obtain fresh credentials in the case of expiry.
class_docstr_tok: ["Client","for","a","remote","model","registry","server","accessed","via","REST","API","calls",":","param","get_host_creds",":","Method","to","be","invoked","prior","to","every","REST","request","to","get","the",":","py",":","class",":","`","mlflow.rest_utils.MlflowHostCreds","`","for","the","request",".","Note","that","this","is","a","function","so","that","we","can","obtain","fresh","credentials","in","the","case","of","expiry","."]
docstr: Search for model versions in backend that satisfy the filter criteria.
  
  :param filter_string: A filter string expression. Currently supports a single filter
                        condition either name of model like ``name = 'model_name'`` or
                        ``run_id = '...'``.
  :param max_results: Maximum number of model versions desired.
  :param order_by: List of column names with ASC|DESC annotation, to be used for ordering
                   matching search results.
  :param page_token: Token specifying the next page of results. It should be obtained from
                      a ``search_model_versions`` call.
  :return: A PagedList of :py:class:`mlflow.entities.model_registry.ModelVersion`
           objects that satisfy the search expressions. The pagination token for the next
           page can be obtained via the ``token`` attribute of the object.
docstr_tok: ["Search","for","model","versions","in","backend","that","satisfy","the","filter","criteria",".",":","param","filter_string",":","A","filter","string","expression",".","Currently","supports","a","single","filter","condition","either","name","of","model","like","``","name","=","'model_name","'","``","or","``","run_id","=","'","...","'","``",".",":","param","max_results",":","Maximum","number","of","model","versions","desired",".",":","param","order_by",":","List","of","column","names","with","ASC|DESC","annotation",",","to","be","used","for","ordering","matching","search","results",".",":","param","page_token",":","Token","specifying","the","next","page","of","results",".","It","should","be","obtained","from","a","``","search_model_versions","``","call",".",":","return",":","A","PagedList","of",":","py",":","class",":","`","mlflow.entities.model_registry.ModelVersion","`","objects","that","satisfy","the","search","expressions",".","The","pagination","token","for","the","next","page","can","be","obtained","via","the","``","token","``","attribute","of","the","object","."]
code: def search_model_versions(
      self,
      filter_string=None,
      max_results=None,
      order_by=None,
      page_token=None,
  ):
      """
      Search for model versions in backend that satisfy the filter criteria.
  
      :param filter_string: A filter string expression. Currently supports a single filter
                            condition either name of model like ``name = 'model_name'`` or
                            ``run_id = '...'``.
      :param max_results: Maximum number of model versions desired.
      :param order_by: List of column names with ASC|DESC annotation, to be used for ordering
                       matching search results.
      :param page_token: Token specifying the next page of results. It should be obtained from
                          a ``search_model_versions`` call.
      :return: A PagedList of :py:class:`mlflow.entities.model_registry.ModelVersion`
               objects that satisfy the search expressions. The pagination token for the next
               page can be obtained via the ``token`` attribute of the object.
      """
      req_body = message_to_json(
          SearchModelVersions(
              filter=filter_string,
              max_results=max_results,
              order_by=order_by,
              page_token=page_token,
          )
      )
      response_proto = self._call_endpoint(
          SearchModelVersions, req_body
      )
      model_versions = [
          ModelVersion.from_proto(mvd)
          for mvd in response_proto.model_versions
      ]
      return PagedList(model_versions, response_proto.next_page_token)
  
imports: import logging
  from mlflow.entities.model_registry import ModelVersion, RegisteredModel
  from mlflow.protos.model_registry_pb2 import CreateModelVersion, CreateRegisteredModel, DeleteModelVersion, DeleteModelVersionTag, DeleteRegisteredModel, DeleteRegisteredModelAlias, DeleteRegisteredModelTag, GetLatestVersions, GetModelVersion, GetModelVersionByAlias, GetModelVersionDownloadUri, GetRegisteredModel, ModelRegistryService, RenameRegisteredModel, SearchModelVersions, SearchRegisteredModels, SetModelVersionTag, SetRegisteredModelAlias, SetRegisteredModelTag, TransitionModelVersionStage, UpdateModelVersion, UpdateRegisteredModel
  from mlflow.store.entities.paged_list import PagedList
  from mlflow.store.model_registry.base_rest_store import BaseRestStore
  from mlflow.utils.proto_json_utils import message_to_json
  from mlflow.utils.rest_utils import _REST_API_PATH_PREFIX, extract_all_api_info_for_service, extract_api_info_for_service
label_desc: Use image node_id 19 for calling the RestStore obj's underlying member method code with example usage: obj.search_model_versions(filter_string, max_results, order_by, page_token) and returns: PagedList