def METHOD_NAME(self, action="GET", url="/", data=None, query_params=None):
    if data is None:
        data = {}
    if query_params is None:
        query_params = {}
    query_params["ResponseFormat"] = "json"
    query_params["ApiKey"] = self._get_provider_option("auth_key")
    query_params["Password"] = self._get_provider_option("auth_password")
    request = requests.request(
        action,
        self.api_endpoint + url,
        params=query_params,
        data=json.dumps(data),
        headers={"Content-Type": "application/json"},
    )
    # if the request fails for any reason, throw an error.
    request.raise_for_status()
    return request.json()