docs: def make_request(self, model, action, url_params={}, post_data=None):
          '''
          Send request to API then validate, parse, and return the response
          '''
          url = self._create_url(model, **url_params)
          headers = self._headers(action)
  
          try:
              response = requests.request(action, url, headers=headers, data=post_data)
          except Exception as e:
              raise APIError("There was an error communicating with Union: %s" % e)
  
          if not self._is_valid(response):
              raise ValidationError("The Union response returned an error: %s" % response.content)
  
          return self._parse_response(response)