@classmethod
def factory(cls, **kwargs) -> 'PostgresConnectionOptions':
    parameters: Dict = cls.schema_validate_arguments(cls._factory_schema, kwargs)
    return cls(SqlDialect.postgres, parameters['host'], parameters['port'], parameters['username'], parameters['password'], parameters['database_name'], parameters.get('timeout'))
@classmethod
def factory(cls, **kwargs) -> 'PostgresConnectionOptions':
    parameters: Dict = cls.schema_validate_arguments(cls._factory_schema, kwargs)
    return cls(SqlDialect.postgres, parameters['host'], parameters['port'], parameters['username'], parameters['password'], parameters['database_name'], parameters.get('timeout'))