# 201602 SWITCH
#
# This schema implements the swissEdu attributes from the
# AAI Attribute Specification Version 1.5.1, which can be found at
#   https://www.switch.ch/aai/attributes/
# Note: The changes applied in version 1.6 had no effect on this schema
#
# SwissEduPerson directory schema (201602)
# The latest version of this document is available at
#   https://www.switch.ch/aai/docs/swissedu.ldif
#
# See also: https://www.switch.ch/aai/docs/LDAP-schemas
#
# depends upon the following schemas:
#   core, cosine, eduperson, inetorgperson
#
# Consult the AAI document 'Attribute Specification'
# which explains the use of these attributes with examples.
#        https://www.switch.ch/aai/attributes/
#
# additonal attributes are inherited and derived
# from standard object classes as follows:
#
# Object Class person:
#       sn (surname), cn (commonName), telephoneNumber
#
# Object Class organizationalPerson:
#       facsimileTelephoneNumber, ou, postalAddress
#
# Object Class inetOrgPerson:
#       givenName, displayName, employeeNumber, homePhone, homePostalAddress
#       mail, mobile (mobileTelephoneNumber), preferredLanguage, uid
#
# Object Class eduPerson:
#       eduPersonAffiliation, eduPersonAssurance, eduPersonEntitlement
#       eduPersonNickname, eduPersonOrcid, eduPersonOrgDN, eduPersonOrgUnitDN
#       eduPersonPrimaryAffiliation, eduPersonPrimaryOrgUnitDN
#       eduPersonPrincipalName, eduPersonScopedAffiliation
#       eduPersonTargetedID, eduPersonUniqueId
#
# Object Class eduMember:
#       isMemberOf
#----------------------------------------------------------------------------
dn: cn=swissedu,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: swissedu
olcObjectIdentifier: SwissEduroot 2.16.756.1.2.5
olcObjectIdentifier: SwissEdu SwissEduroot:1
olcObjectIdentifier: SwissEduAttributeType SwissEdu:1
olcObjectIdentifier: SwissEduObjectClass SwissEdu:2
olcAttributeTypes: ( SwissEduAttributeType:1 
 NAME 'swissEduPersonUniqueID' 
 DESC 'Unique identifier for inter-institutional user identification' 
 EQUALITY caseIgnoreMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 
 SINGLE-VALUE )
olcAttributeTypes: ( SwissEduAttributeType:2 
 NAME 'swissEduPersonDateOfBirth' 
 DESC 'Date of birth (format YYYYMMDD, only numeric chars)' 
 EQUALITY numericStringMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{8} 
 SINGLE-VALUE )
olcAttributeTypes: ( SwissEduAttributeType:3 
 NAME 'swissEduPersonGender' 
 DESC 'Representation of human sex (see ISO 5218)' 
 EQUALITY integerMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27{1} 
 SINGLE-VALUE )
olcAttributeTypes: ( SwissEduAttributeType:4 
 NAME 'swissEduPersonHomeOrganization' 
 DESC 'Domain name of the home organization' 
 EQUALITY caseIgnoreMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 
 SINGLE-VALUE )
olcAttributeTypes: ( SwissEduAttributeType:5 
 NAME 'swissEduPersonHomeOrganizationType' 
 DESC 'Type of the home organization' 
 EQUALITY caseIgnoreMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 
 SINGLE-VALUE )
olcAttributeTypes: ( SwissEduAttributeType:6 
 NAME 'swissEduPersonStudyBranch1' 
 DESC 'Study branch of a student, first level of classification' 
 EQUALITY integerMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27{6} )
olcAttributeTypes: ( SwissEduAttributeType:7 
 NAME 'swissEduPersonStudyBranch2' 
 DESC 'Study branch of a student, intermediate level of classification' 
 EQUALITY integerMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27{6} )
olcAttributeTypes: ( SwissEduAttributeType:8 
 NAME 'swissEduPersonStudyBranch3' 
 DESC 'Study branch of a student' 
 EQUALITY integerMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27{6} )
olcAttributeTypes: ( SwissEduAttributeType:9 
 NAME 'swissEduPersonStudyLevel' 
 DESC 'Study level of a student in a particular studyBranch3' 
 EQUALITY caseIgnoreMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( SwissEduAttributeType:10 
 NAME 'swissEduPersonStaffCategory' 
 DESC 'Workbranch of a staff member' 
 EQUALITY integerMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27{3} )
olcAttributeTypes: ( SwissEduAttributeType:11 
 NAME 'swissEduPersonMatriculationNumber' 
 DESC 'Matriculation number of a student' 
 EQUALITY numericStringMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{8} 
 SINGLE-VALUE )
olcAttributeTypes: ( SwissEduAttributeType:12 
 NAME 'swissEduPersonCardUID' 
 DESC 'Card unique identifier' 
 EQUALITY caseIgnoreMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( SwissEduAttributeType:13 
 NAME 'swissEduID' 
 DESC 'The Swiss edu-ID persistent identifier for Swiss Higher Education users' 
 EQUALITY caseIgnoreMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 
 SINGLE-VALUE )
olcAttributeTypes: ( SwissEduAttributeType:1023 
 NAME 'swissLibraryPersonAffiliation' 
 DESC 'Type of library affiliation' 
 EQUALITY caseIgnoreMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( SwissEduAttributeType:1025 
 NAME 'swissLibraryPersonResidence' 
 DESC 'Defines the current residence of the patron' 
 EQUALITY caseIgnoreMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcObjectClasses: ( SwissEduObjectClass:1 
 NAME 'swissEduPerson' 
 DESC 'Swiss eduPerson Object for use in e-Academia' 
 SUP inetOrgPerson 
 STRUCTURAL 
 MAY ( swissEduPersonUniqueID $ swissEduPersonDateOfBirth $ 
 swissEduPersonGender $ swissEduPersonHomeOrganization $ 
 swissEduPersonHomeOrganizationType $ swissEduPersonStudyBranch1 $ 
 swissEduPersonStudyBranch2 $ swissEduPersonStudyBranch3 $ 
 swissEduPersonStudyLevel $ swissEduPersonStaffCategory $ 
 swissEduPersonMatriculationNumber $ swissEduPersonCardUID $ 
 swissEduID $ swissLibraryPersonAffiliation $ swissLibraryPersonResidence $ 
 eduPersonAffiliation $ eduPersonNickname $ eduPersonOrgDN $ 
 eduPersonOrgUnitDN $ eduPersonPrimaryAffiliation $ 
 eduPersonPrincipalName $ eduPersonEntitlement $ 
 eduPersonPrimaryOrgUnitDN $ eduPersonScopedAffiliation $ 
 eduPersonTargetedID $ eduPersonAssurance $ eduPersonUniqueId ) )
#----------------------------------------------------------------------------
# Changelog:
#
# 201706
#       Syntax now conformant with RFC 4512:
#       - SYNTAX OID's without single quotes
#       - SINGLE-VALUE after SYNTAX
#
# 201704
#       Attribute Specification 1.6 has no effect on this schema file
#
# 201602
#       Updated to match the attribute specification 1.5.1
#       New attributes: swissEduID, swissLibraryPersonAffiliation, swissLibraryPersonResidence
#       New eduPerson attribute adopted: eduPersonUniqueId
#
# 1.5   01. May 2010
#       Added swissEduPersonCardUID and attributes from eduPerson specifi-
#       cation
#
# 1.4   25. September 2007
#       Changed matriculation number from integerMatch to numericStringMatch
#
# 1.3   05. September 2007
#       Added swissEduPersonMatriculationNumber because it is a new
#       attribute in the new SWITCHaai Attribute Specification 1.2
#
# 1.2   09. May 2003
#       eduPersonEntitlement was missing in the schema, even it was
#       part of the specification document
#
# 1.1   18. December 2002
#       Allowed length of the attributes
#               swissEduPersonStudyBranch1
#               swissEduPersonStudyBranch2
#               swissEduPersonStudyBranch3
#       extended to six digits to allow for the values of the universities
#       of applied sciences.
#
# 1.0   21. November 2002
#       Initial version published
#----------------------------------------------------------------------------