# RFC1274: Cosine and Internet X.500 schema
# $OpenLDAP: pkg/ldap/servers/slapd/schema/cosine.schema,v 1.19.2.5 2007/01/02 21:44:09 kurt Exp $
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
## Copyright 1998-2007 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted only as authorized by the OpenLDAP
## Public License.
##
## A copy of this license is available in the file LICENSE in the
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.

# RFC1274: Cosine and Internet X.500 schema
#
# This file contains LDAPv3 schema derived from X.500 COSINE "pilot"
# schema.  As this schema was defined for X.500(89), some
# oddities were introduced in the mapping to LDAPv3.  The
# mappings were based upon: draft-ietf-asid-ldapv3-attributes-03.txt
# (a work in progress)
#
# Note: It seems that the pilot schema evolved beyond what was
# described in RFC1274.  However, this document attempts to describes
# RFC1274 as published.
#
# Depends on core.schema

# The version of this file as distributed by the OpenLDAP Foundation
# contains text from an IETF RFC explaining the schema.  Unfortunately,
# that text is covered by a license that doesn't meet Debian's Free
# Software Guidelines.  This is a stripped version of the schema that
# contains only the functional schema definition, not the text of the
# RFC.
#
# For an explanation of this schema, see RFC 1274, at (among other
# places):  http://www.ietf.org/rfc/rfc1274.txt

#(in core.schema)
##attributetype ( 0.9.2342.19200300.100.1.1 NAME ( 'uid' 'userid' )
##	EQUALITY caseIgnoreMatch
##	SUBSTR caseIgnoreSubstringsMatch
##	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.2 NAME 'textEncodedORAddress'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

#(in core.schema)
##attributetype ( 0.9.2342.19200300.100.1.3 NAME ( 'mail' 'rfc822Mailbox' )
##	EQUALITY caseIgnoreIA5Match
##	SUBSTR caseIgnoreIA5SubstringsMatch
##	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )

attributetype ( 0.9.2342.19200300.100.1.4 NAME 'info'
	DESC 'RFC1274: general information'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{2048} )

attributetype ( 0.9.2342.19200300.100.1.5
	NAME ( 'drink' 'favouriteDrink' )
	DESC 'RFC1274: favorite drink'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.6 NAME 'roomNumber'
	DESC 'RFC1274: room number'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.7 NAME 'photo'
	DESC 'RFC1274: photo (G3 fax)'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.23{25000} )

attributetype ( 0.9.2342.19200300.100.1.8 NAME 'userClass'
	DESC 'RFC1274: category of user'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.9 NAME 'host'
	DESC 'RFC1274: host computer'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.10 NAME 'manager'
	DESC 'RFC1274: DN of manager'
	EQUALITY distinguishedNameMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )

attributetype ( 0.9.2342.19200300.100.1.11 NAME 'documentIdentifier'
	DESC 'RFC1274: unique identifier of document'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.12 NAME 'documentTitle'
	DESC 'RFC1274: title of document'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.13 NAME 'documentVersion'
	DESC 'RFC1274: version of document'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.14 NAME 'documentAuthor'
	DESC 'RFC1274: DN of author of document'
	EQUALITY distinguishedNameMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )

attributetype ( 0.9.2342.19200300.100.1.15 NAME 'documentLocation'
	DESC 'RFC1274: location of document original'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.20
	NAME ( 'homePhone' 'homeTelephoneNumber' )
	DESC 'RFC1274: home telephone number'
	EQUALITY telephoneNumberMatch
	SUBSTR telephoneNumberSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 )

attributetype ( 0.9.2342.19200300.100.1.21 NAME 'secretary'
	DESC 'RFC1274: DN of secretary'
	EQUALITY distinguishedNameMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )

attributetype ( 0.9.2342.19200300.100.1.22 NAME 'otherMailbox'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.39 )

## Deprecated in favor of modifyTimeStamp
#attributetype ( 0.9.2342.19200300.100.1.23 NAME 'lastModifiedTime'
#	DESC 'RFC1274: time of last modify, replaced by modifyTimestamp'
#	OBSOLETE
#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.53
#	USAGE directoryOperation )

## Deprecated in favor of modifiersName
#attributetype ( 0.9.2342.19200300.100.1.24 NAME 'lastModifiedBy'
#	DESC 'RFC1274: last modifier, replaced by modifiersName'
#	OBSOLETE
#	EQUALITY distinguishedNameMatch
#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
#	USAGE directoryOperation )

##(in core.schema)
##attributetype ( 0.9.2342.19200300.100.1.25 NAME ( 'dc' 'domainComponent' )
##	EQUALITY caseIgnoreIA5Match
##	SUBSTR caseIgnoreIA5SubstringsMatch
##	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

## incorrect syntax?
attributetype ( 0.9.2342.19200300.100.1.26 NAME 'aRecord'
	EQUALITY caseIgnoreIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

## missing from RFC1274
## incorrect syntax?
attributetype ( 0.9.2342.19200300.100.1.27 NAME 'mDRecord'
	EQUALITY caseIgnoreIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

## incorrect syntax!!
attributetype ( 0.9.2342.19200300.100.1.28 NAME 'mXRecord'
	EQUALITY caseIgnoreIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

## incorrect syntax!!
attributetype ( 0.9.2342.19200300.100.1.29 NAME 'nSRecord'
	EQUALITY caseIgnoreIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

## incorrect syntax!!
attributetype ( 0.9.2342.19200300.100.1.30 NAME 'sOARecord'
	EQUALITY caseIgnoreIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

## incorrect syntax!!
attributetype ( 0.9.2342.19200300.100.1.31 NAME 'cNAMERecord'
	EQUALITY caseIgnoreIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

#attributetype ( 0.9.2342.19200300.100.1.37 NAME 'associatedDomain'
#	EQUALITY caseIgnoreIA5Match
#	SUBSTR caseIgnoreIA5SubstringsMatch
#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

attributetype ( 0.9.2342.19200300.100.1.38 NAME 'associatedName'
	DESC 'RFC1274: DN of entry associated with domain'
	EQUALITY distinguishedNameMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )

attributetype ( 0.9.2342.19200300.100.1.39 NAME 'homePostalAddress'
	DESC 'RFC1274: home postal address'
	EQUALITY caseIgnoreListMatch
	SUBSTR caseIgnoreListSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 )

attributetype ( 0.9.2342.19200300.100.1.40 NAME 'personalTitle'
	DESC 'RFC1274: personal title'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.41
	NAME ( 'mobile' 'mobileTelephoneNumber' )
	DESC 'RFC1274: mobile telephone number'
	EQUALITY telephoneNumberMatch
	SUBSTR telephoneNumberSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 )

attributetype ( 0.9.2342.19200300.100.1.42
	NAME ( 'pager' 'pagerTelephoneNumber' )
	DESC 'RFC1274: pager telephone number'
	EQUALITY telephoneNumberMatch
	SUBSTR telephoneNumberSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 )

attributetype ( 0.9.2342.19200300.100.1.43
	NAME ( 'co' 'friendlyCountryName' )
	DESC 'RFC1274: friendly country name'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 0.9.2342.19200300.100.1.44 NAME 'uniqueIdentifier'
	DESC 'RFC1274: unique identifer'
	EQUALITY caseIgnoreMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.45 NAME 'organizationalStatus'
	DESC 'RFC1274: organizational status'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.46 NAME 'janetMailbox'
	DESC 'RFC1274: Janet mailbox'
	EQUALITY caseIgnoreIA5Match
	SUBSTR caseIgnoreIA5SubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )

attributetype ( 0.9.2342.19200300.100.1.47
	NAME 'mailPreferenceOption'
	DESC 'RFC1274: mail preference option'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )

attributetype ( 0.9.2342.19200300.100.1.48 NAME 'buildingName'
	DESC 'RFC1274: name of building'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )

attributetype ( 0.9.2342.19200300.100.1.49 NAME 'dSAQuality'
	DESC 'RFC1274: DSA Quality'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.19 SINGLE-VALUE )

attributetype ( 0.9.2342.19200300.100.1.50 NAME 'singleLevelQuality'
	DESC 'RFC1274: Single Level Quality'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.13 SINGLE-VALUE )

attributetype ( 0.9.2342.19200300.100.1.51 NAME 'subtreeMinimumQuality'
	DESC 'RFC1274: Subtree Mininum Quality'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.13 SINGLE-VALUE )

attributetype ( 0.9.2342.19200300.100.1.52 NAME 'subtreeMaximumQuality'
	DESC 'RFC1274: Subtree Maximun Quality'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.13 SINGLE-VALUE )

attributetype ( 0.9.2342.19200300.100.1.53 NAME 'personalSignature'
	DESC 'RFC1274: Personal Signature (G3 fax)'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.23 )

attributetype ( 0.9.2342.19200300.100.1.54 NAME 'dITRedirect'
	DESC 'RFC1274: DIT Redirect'
	EQUALITY distinguishedNameMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )

attributetype ( 0.9.2342.19200300.100.1.55 NAME 'audio'
	DESC 'RFC1274: audio (u-law)'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.4{25000} )

attributetype ( 0.9.2342.19200300.100.1.56 NAME 'documentPublisher'
	DESC 'RFC1274: publisher of document'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

#objectclass ( 0.9.2342.19200300.100.4.3 NAME 'pilotObject'
#	DESC 'RFC1274: pilot object'
#	SUP top AUXILIARY
#	MAY ( info $ photo $ manager $ uniqueIdentifier $
#		lastModifiedTime $ lastModifiedBy $ dITRedirect $ audio )
#	)

objectclass ( 0.9.2342.19200300.100.4.4
	NAME ( 'pilotPerson' 'newPilotPerson' )
	SUP person STRUCTURAL
	MAY ( userid $ textEncodedORAddress $ rfc822Mailbox $
		favouriteDrink $ roomNumber $ userClass $
		homeTelephoneNumber $ homePostalAddress $ secretary $
		personalTitle $ preferredDeliveryMethod $ businessCategory $
		janetMailbox $ otherMailbox $ mobileTelephoneNumber $
		pagerTelephoneNumber $ organizationalStatus $
		mailPreferenceOption $ personalSignature )
	)

objectclass ( 0.9.2342.19200300.100.4.5 NAME 'account'
	SUP top STRUCTURAL
	MUST userid
	MAY ( description $ seeAlso $ localityName $
		organizationName $ organizationalUnitName $ host )
	)

objectclass ( 0.9.2342.19200300.100.4.6 NAME 'document'
	SUP top STRUCTURAL
	MUST documentIdentifier
	MAY ( commonName $ description $ seeAlso $ localityName $
		organizationName $ organizationalUnitName $
		documentTitle $ documentVersion $ documentAuthor $
		documentLocation $ documentPublisher )
	)

objectclass ( 0.9.2342.19200300.100.4.7 NAME 'room'
	SUP top STRUCTURAL
	MUST commonName
	MAY ( roomNumber $ description $ seeAlso $ telephoneNumber )
	)

objectclass ( 0.9.2342.19200300.100.4.9 NAME 'documentSeries'
	SUP top STRUCTURAL
	MUST commonName
	MAY ( description $ seeAlso $ telephonenumber $
		localityName $ organizationName $ organizationalUnitName )
	)

objectclass ( 0.9.2342.19200300.100.4.13 NAME 'domain'
	SUP top STRUCTURAL
	MUST domainComponent
	MAY ( associatedName $ organizationName $ description $
		businessCategory $ seeAlso $ searchGuide $ userPassword $
		localityName $ stateOrProvinceName $ streetAddress $
		physicalDeliveryOfficeName $ postalAddress $ postalCode $
		postOfficeBox $ streetAddress $
		facsimileTelephoneNumber $ internationalISDNNumber $
		telephoneNumber $ teletexTerminalIdentifier $ telexNumber $
		preferredDeliveryMethod $ destinationIndicator $
		registeredAddress $ x121Address )
	)

objectclass ( 0.9.2342.19200300.100.4.14 NAME 'RFC822localPart'
	SUP domain STRUCTURAL
	MAY ( commonName $ surname $ description $ seeAlso $ telephoneNumber $
		physicalDeliveryOfficeName $ postalAddress $ postalCode $
		postOfficeBox $ streetAddress $
		facsimileTelephoneNumber $ internationalISDNNumber $
		telephoneNumber $ teletexTerminalIdentifier $
		telexNumber $ preferredDeliveryMethod $ destinationIndicator $
		registeredAddress $ x121Address )
	)

objectclass ( 0.9.2342.19200300.100.4.15 NAME 'dNSDomain'
	SUP domain STRUCTURAL
	MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $
		SOARecord $ CNAMERecord )
	)

objectclass ( 0.9.2342.19200300.100.4.17 NAME 'domainRelatedObject'
	DESC 'RFC1274: an object related to an domain'
	SUP top AUXILIARY
	MUST associatedDomain )

objectclass ( 0.9.2342.19200300.100.4.18 NAME 'friendlyCountry'
	SUP country STRUCTURAL
	MUST friendlyCountryName )

## (in core.schema)
## objectclass ( 0.9.2342.19200300.100.4.19 NAME 'simpleSecurityObject'
##	SUP top AUXILIARY
##	MUST userPassword )

objectclass ( 0.9.2342.19200300.100.4.20 NAME 'pilotOrganization'
	SUP ( organization $ organizationalUnit ) STRUCTURAL
	MAY buildingName )

objectclass ( 0.9.2342.19200300.100.4.21 NAME 'pilotDSA'
	SUP dsa STRUCTURAL
	MAY dSAQuality )

objectclass ( 0.9.2342.19200300.100.4.22 NAME 'qualityLabelledData'
	SUP top AUXILIARY
	MUST dsaQuality
	MAY ( subtreeMinimumQuality $ subtreeMaximumQuality )
	)
