docs: def _instantiate_model(self, response, attrs, additional_properties=None):
          """Instantiate a response model passing in deserialized args.
  
          :param response: The response model class.
          :param d_attrs: The deserialized response attributes.
          """
          if callable(response):
              subtype = getattr(response, '_subtype_map', {})
              try:
                  readonly = [k for k, v in response._validation.items()
                              if v.get('readonly')]
                  const = [k for k, v in response._validation.items()
                           if v.get('constant')]
                  kwargs = {k: v for k, v in attrs.items()
                            if k not in subtype and k not in readonly + const}
                  response_obj = response(**kwargs)
                  for attr in readonly:
                      setattr(response_obj, attr, attrs.get(attr))
                  if additional_properties:
                      response_obj.additional_properties = additional_properties
                  return response_obj
              except TypeError as err:
                  msg = "Unable to deserialize {} into model {}. ".format(
                      kwargs, response)
                  raise DeserializationError(msg + str(err))
          else:
              try:
                  for attr, value in attrs.items():
                      setattr(response, attr, value)
                  return response
              except Exception as exp:
                  msg = "Unable to populate response model. "
                  msg += "Type: {}, Error: {}".format(type(response), exp)
                  raise DeserializationError(msg)