code: def validate(self):
          
          validation_result = []
          for attr_name, value in [(attr, getattr(self, attr)) for attr in self._attribute_map]:
              attr_desc = self._attribute_map[attr_name]
              if attr_name == "additional_properties" and attr_desc["key"] == '':
                  # Do NOT validate additional_properties
                  continue
              attr_type = attr_desc['type']
  
              try:
                  debug_name = "{}.{}".format(self.__class__.__name__, attr_name)
                  Serializer.validate(value, debug_name, **self._validation.get(attr_name, {}))
              except ValidationError as validation_error:
                  validation_result.append(validation_error)
  
              validation_result += _recursive_validate(attr_name, attr_type, value)
          return validation_result
docs: Validate this model recursively and return a list of ValidationError.
  
          :returns: A list of validation error
          :rtype: list