def values(self, attributes: Dict[(str, 'SimpleAttribMaker')], required_fields: List[str], instance_maker_config: InstanceMakerConfig) -> AttributesDict:
    required = (self.name in required_fields)
    definition = self.definition
    read_only = definition.get('readOnly', False)
    format = definition.get('format')
    if ((type(format) is not dict) and (format in write_only_formats)):
        write_only = True
    else:
        write_only = definition.get('writeOnly', False)
    if ((instance_maker_config.level == 0) and (self.name == 'id')):
        read_only = True
    attribs: AttributesDict = {}
    attribs['metadata'] = {'name': self.name, 'readOnly': read_only, 'writeOnly': write_only, 'format': format, 'base_type': self.base_tpe}
    if ('description' in definition):
        attribs['metadata']['description'] = definition['description']
    if ('example' in definition):
        if isinstance(definition['example'], List):
            attribs['metadata']['example'] = frozenset(definition['example'])
        else:
            attribs['metadata']['example'] = definition['example']
    if (UUID_REFERENCE_FIELD in definition):
        attribs['metadata'][UUID_REFERENCE_FIELD] = definition[UUID_REFERENCE_FIELD]
    if ((self.name in IGNORED_EQ_ATTRIBUTES) or write_only or read_only):
        attribs['eq'] = False
    if ((not required) or read_only or write_only):
        attribs['type'] = Optional[self.tpe]
        attribs['metadata']['type'] = str(Optional[self.tpe])
    elif (required and (read_only or write_only)):
        raise OpenApiParserException(f'readOnly/writeOnly attribute {self.name} can not be required')
    else:
        attribs['type'] = self.tpe
        attribs['metadata']['type'] = str(self.tpe)
    if ((instance_maker_config.level == 0) and (self.name == 'id')):
        attribs['factory'] = (lambda : str(uuid4()))
    elif (self.factory and (not (read_only or write_only))):
        attribs['factory'] = self.factory
    elif ((not required) or read_only or write_only):
        attribs['default'] = definition.get('default', (None if (read_only or write_only) else self.default))
    attribs['repr'] = self.repr
    return attribs
def values(self, attributes: Dict[(str, 'SimpleAttribMaker')], required_fields: List[str], instance_maker_config: InstanceMakerConfig) -> AttributesDict:
    required = (self.name in required_fields)
    definition = self.definition
    read_only = definition.get('readOnly', False)
    format = definition.get('format')
    if ((type(format) is not dict) and (format in write_only_formats)):
        write_only = True
    else:
        write_only = definition.get('writeOnly', False)
    if ((instance_maker_config.level == 0) and (self.name == 'id')):
        read_only = True
    attribs: AttributesDict = {}
    attribs['metadata'] = {'name': self.name, 'readOnly': read_only, 'writeOnly': write_only, 'format': format, 'base_type': self.base_tpe}
    if ('description' in definition):
        attribs['metadata']['description'] = definition['description']
    if ('example' in definition):
        if isinstance(definition['example'], List):
            attribs['metadata']['example'] = frozenset(definition['example'])
        else:
            attribs['metadata']['example'] = definition['example']
    if (UUID_REFERENCE_FIELD in definition):
        attribs['metadata'][UUID_REFERENCE_FIELD] = definition[UUID_REFERENCE_FIELD]
    if ((self.name in IGNORED_EQ_ATTRIBUTES) or write_only or read_only):
        attribs['eq'] = False
    if ((not required) or read_only or write_only):
        attribs['type'] = Optional[self.tpe]
        attribs['metadata']['type'] = str(Optional[self.tpe])
    elif (required and (read_only or write_only)):
        raise OpenApiParserException(f'readOnly/writeOnly attribute {self.name} can not be required')
    else:
        attribs['type'] = self.tpe
        attribs['metadata']['type'] = str(self.tpe)
    if ((instance_maker_config.level == 0) and (self.name == 'id')):
        attribs['factory'] = (lambda : str(uuid4()))
    elif (self.factory and (not (read_only or write_only))):
        attribs['factory'] = self.factory
    elif ((not required) or read_only or write_only):
        attribs['default'] = definition.get('default', (None if (read_only or write_only) else self.default))
    attribs['repr'] = self.repr
    return attribs