def get_type_description(self, _type, suffix='', *args, **kwargs):
        """ Get description of type
        :param suffix:
        :param str _type:
        :rtype: str
        """
        if not SchemaObjects.contains(_type):
            return _type
        schema = SchemaObjects.get(_type)
        if schema.all_of:
            models = ','.join(
                (self.get_type_description(_type, *args, **kwargs) for _type in schema.all_of)
            )
            result = '{}'.format(models.split(',')[0])
            for r in models.split(',')[1:]:
                result += ' extended {}'.format(r)
        elif schema.is_array:
            result = 'array of {}'.format(
                self.get_type_description(schema.item['type'], *args, **kwargs))
        else:
            result = ':ref:`{} <{}{}>`'.format(schema.name, schema.schema_id, suffix)
        return result