code: def build(self, response):
          
          response_json = response.json()
  
          # Special case for ticket audits.
          if get_endpoint_path(self.api, response).startswith('/ticket_audits.json'):
              return TicketAuditGenerator(self, response_json)
  
          zenpy_objects = self.deserialize(response_json)
  
          # Collection of objects (eg, users/tickets)
          plural_object_type = as_plural(self.api.object_type)
          if plural_object_type in zenpy_objects:
              return ZendeskResultGenerator(self, response_json, response_objects=zenpy_objects[plural_object_type])
  
          # Here the response matches the API object_type, seems legit.
          if self.api.object_type in zenpy_objects:
              return zenpy_objects[self.api.object_type]
  
          # Could be anything, if we know of this object then return it.
          for zenpy_object_name in self.object_mapping.class_mapping:
              if zenpy_object_name in zenpy_objects:
                  return zenpy_objects[zenpy_object_name]
  
          # Maybe a collection of known objects?
          for zenpy_object_name in self.object_mapping.class_mapping:
              plural_zenpy_object_name = as_plural(zenpy_object_name)
              if plural_zenpy_object_name in zenpy_objects:
                  return ZendeskResultGenerator(self, response_json, object_type=plural_zenpy_object_name)
  
          # Bummer, bail out.
          raise ZenpyException("Unknown Response: " + str(response_json))
docs: Deserialize the returned objects and return either a single Zenpy object, or a ResultGenerator in
          the case of multiple results.
  
          :param response: the requests Response object.