def __schemas_descriptor(self):
    result = {}
    for schema_key, schema_value in self.__parser.schemas().iteritems():
      field_keys = schema_value.keys()
      key_result = {}
      if 'properties' in field_keys:
        key_result['properties'] = schema_value['properties'].copy()
        for prop_key, prop_value in schema_value['properties'].iteritems():
          if 'enum' in prop_value:
            num_enums = len(prop_value['enum'])
            key_result['properties'][prop_key]['enumDescriptions'] = (
                [''] * num_enums)
          elif 'default' in prop_value:
            if prop_value.get('type') == 'boolean':
              prop_value['default'] = 'true' if prop_value['default'] else 'false'
            else:
              prop_value['default'] = str(prop_value['default'])
          key_result['properties'][prop_key].pop('required', None)
      for key in ('type', 'id', 'description'):
        if key in field_keys:
          key_result[key] = schema_value[key]
      if key_result:
        result[schema_key] = key_result
    for schema_value in result.itervalues():
      for field_value in schema_value.itervalues():
        if isinstance(field_value, dict):
          if '$ref' in field_value:
            field_value['type'] = 'object'
    return result