class_docstr: Client for interacting with the MLflow Gateway API.
  
  :param gateway_uri: Optional URI of the gateway. If not provided, attempts to resolve from
      first the stored result of `set_gateway_uri()`, then the  environment variable
      `MLFLOW_GATEWAY_URI`.
class_docstr_tok: ["Client","for","interacting","with","the","MLflow","Gateway","API",".",":","param","gateway_uri",":","Optional","URI","of","the","gateway",".","If","not","provided",",","attempts","to","resolve","from","first","the","stored","result","of","`","set_gateway_uri","(",")","`",",","then","the","environment","variable","`","MLFLOW_GATEWAY_URI","`","."]
docstr: Call a specific endpoint on the Gateway API.
  
  Args:
      method: The HTTP method to use.
      route: The API route to call.
      json_body: Optional JSON body to include in the request.
  
  Returns:
      The server's response.
docstr_tok: ["Call","a","specific","endpoint","on","the","Gateway","API",".","Args",":","method",":","The","HTTP","method","to","use",".","route",":","The","API","route","to","call",".","json_body",":","Optional","JSON","body","to","include","in","the","request",".","Returns",":","The","server","'s","response","."]
code: def _call_endpoint(
      self, method: str, route: str, json_body: Optional[str] = None
  ):
      """
      Call a specific endpoint on the Gateway API.
  
      Args:
          method: The HTTP method to use.
          route: The API route to call.
          json_body: Optional JSON body to include in the request.
  
      Returns:
          The server's response.
  
      """
      if json_body:
          json_body = json.loads(json_body)
  
      call_kwargs = {}
      if method.lower() == "get":
          call_kwargs["params"] = json_body
      else:
          call_kwargs["json"] = json_body
  
      response = http_request(
          host_creds=self._host_creds,
          endpoint=route,
          method=method,
          timeout=MLFLOW_GATEWAY_CLIENT_QUERY_TIMEOUT_SECONDS,
          retry_codes=MLFLOW_GATEWAY_CLIENT_QUERY_RETRY_CODES,
          raise_on_status=False,
          **call_kwargs,
      )
      augmented_raise_for_status(response)
      return response
  
imports: import json
  import logging
  from typing import Any, Dict, List, Optional
  import requests.exceptions
  from mlflow import MlflowException
  from mlflow.gateway.config import LimitsConfig, Route
  from mlflow.gateway.constants import MLFLOW_GATEWAY_CLIENT_QUERY_RETRY_CODES, MLFLOW_GATEWAY_CLIENT_QUERY_TIMEOUT_SECONDS, MLFLOW_GATEWAY_CRUD_ROUTE_BASE, MLFLOW_GATEWAY_LIMITS_BASE, MLFLOW_GATEWAY_ROUTE_BASE, MLFLOW_QUERY_SUFFIX
  from mlflow.gateway.utils import assemble_uri_path, gateway_deprecated, get_gateway_uri, resolve_route_url
  from mlflow.protos.databricks_pb2 import BAD_REQUEST
  from mlflow.store.entities.paged_list import PagedList
  from mlflow.tracking._tracking_service.utils import _get_default_host_creds
  from mlflow.utils.databricks_utils import get_databricks_host_creds
  from mlflow.utils.rest_utils import augmented_raise_for_status, http_request
  from mlflow.utils.uri import get_uri_scheme
label_desc: Use image node_id 5 for calling the MlflowGatewayClient obj's underlying member method code with example usage: obj._call_endpoint(method, route, json_body) and returns: response