code: def __schemas_descriptor(self):
      
      # Filter out any keys that aren't 'properties', 'type', or 'id'
      result = {}
      for schema_key, schema_value in self.__parser.schemas().iteritems():
        field_keys = schema_value.keys()
        key_result = {}
  
        # Some special processing for the properties value
        if 'properties' in field_keys:
          key_result['properties'] = schema_value['properties'].copy()
          # Add in enumDescriptions for any enum properties and strip out
          # the required tag for consistency with Java framework
          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:
              # stringify default values
              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
  
      # Add 'type': 'object' to all object properties
      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
docs: Describes the schemas section of the discovery document.
  
      Returns:
        Dictionary describing the schemas of the document.