#
# qmail-ldap v3 directory schema
#
# The offical qmail-ldap OID assigned by IANA is 7914
#
# Created by: David E. Storey <dave@tamos.net>
#
# Modified and included into qmail-ldap by Andre Oppermann <opi@nrg4u.com>
# 
# Schema fixes by Mike Jackson <mjj@pp.fi>
#
#
# This schema depends on:
#	- core.schema
#	- cosine.schema
#	- nis.schema
#

#
# Example from new format
#
# attributetype ( 1.3.6.1.1.1.1.0 NAME 'uidNumber'
#        DESC 'An integer uniquely identifying a user in an administrative domain'
#        EQUALITY integerMatch
#        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

# Attribute Type Definitions

attributetype ( 1.3.6.1.4.1.7914.1.2.1.1 NAME 'qmailUID'
	DESC 'UID of the user on the mailsystem'
	EQUALITY integerMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.7914.1.2.1.2 NAME 'qmailGID'
	DESC 'GID of the user on the mailsystem'
	EQUALITY integerMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.7914.1.2.1.3 NAME 'mailMessageStore'
	DESC 'Path to the maildir/mbox on the mail system'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.7914.1.2.1.4 NAME 'mailAlternateAddress'
	DESC 'Secondary (alias) mailaddresses for the same user'
	EQUALITY caseIgnoreIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )

attributetype ( 1.3.6.1.4.1.7914.1.2.1.5 NAME 'mailQuota'
	DESC 'The amount of space the user can use until all further messages get bounced.'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.7914.1.2.1.6 NAME 'mailHost'
	DESC 'On which qmail server the messagestore of this user is located.'
	EQUALITY caseIgnoreIA5Match
	SUBSTR caseIgnoreIA5SubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE)

attributetype ( 1.3.6.1.4.1.7914.1.2.1.7 NAME 'mailForwardingAddress'
	DESC 'Address(es) to forward all incoming messages to.'
	EQUALITY caseIgnoreIA5Match
	SUBSTR caseIgnoreIA5SubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )

attributetype ( 1.3.6.1.4.1.7914.1.2.1.8 NAME 'deliveryProgramPath'
	DESC 'Program to execute for all incoming mails.'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.7914.1.2.1.9 NAME 'qmailDotMode'
	DESC 'Interpretation of .qmail files: both, dotonly, ldaponly, ldapwithprog, none'
	EQUALITY caseIgnoreMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.7914.1.2.1.10 NAME 'deliveryMode'
	DESC 'multi field entries of: normal, forwardonly, nombox, localdelivery, reply, echo'
	EQUALITY caseIgnoreMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 )

attributetype ( 1.3.6.1.4.1.7914.1.2.1.11 NAME 'mailReplyText'
	DESC 'A reply text for every incoming message'
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{4096} SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.7914.1.2.1.12 NAME 'accountStatus'
	DESC 'The status of a user account: active, nopop, disabled, deleted'
	EQUALITY caseIgnoreMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.7914.1.2.1.14 NAME 'qmailAccountPurge'
        DESC 'The earliest date when a mailMessageStore will be purged'
        EQUALITY numericStringMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 SINGLE-VALUE )

# Object Class Definitions

objectclass ( 1.3.6.1.4.1.7914.1.2.2.1 NAME 'qmailUser'
	DESC 'QMail-LDAP User' SUP top AUXILIARY
	MUST ( mail $ uid )
	MAY ( mailMessageStore $ homeDirectory $ userPassword $
	      mailAlternateAddress $ qmailUID $ qmailGID $ mailQuota $
	      mailHost $ mailForwardingAddress $ deliveryProgramPath $
	      qmailDotMode $ deliveryMode $ mailReplyText $
	      accountStatus $ qmailAccountPurge ) )
