<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE repositoryAttributes SYSTEM "wmmAttributesMap.dtd">
<repositoryAttributes repositoryName="wmmLDAP">
        
        <!-- Active Directory sample mapping file, based on the following settings
        * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                Member Type             Member RDN      LDAP RDN        Object Class
        * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                Person                  cn              cn              user                                                      
                Group                   cn              cn              group                                                     
                Organization            o               o               organization                                              
                OrganizationalUnit      ou              ou              organizationalUnit                              
        * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
        -->

        <!-- * * * * *  Internal attributes * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->

        <!-- Define which LDAP attribute is mapped to external identifier -->
        <!-- 'objectGUID' is generated by Active Directory Server, wmmGeneratedExtId in wmm.xml needs to set to false -->
        <attributeMap   wmmAttributeName="extId" 
                        applicableMemberTypes="Person;Group;Organization;OrganizationalUnit"
                        pluginAttributeName="objectGUID"
                        dataType="String"
                        pluginDataType="OctetString"
                        multiValued="false"
                        readOnly="true"/>
                        
        <!-- Define which LDAP attribute is used for storing static group members -->
        <attributeMap   wmmAttributeName="groupMember"
                        pluginAttributeName="member"
                        applicableMemberTypes="Group"
                        dataType="String"
                        valueLength="1024"
                        multiValued="true" />
                        
        <!-- Define which LDAP attribute is used for storing dynamic group queries -->
        <!-- If no dynamic groups are used, comment out this map to improve performance -->
        <!--attributeMap   wmmAttributeName="groupMemberURL"
                        pluginAttributeName="memberURL"
                        applicableMemberTypes="Group"
                        dataType="String"
                        valueLength="1024"
                        multiValued="true" /-->
        
        <!-- Define the userAccountControl in Active Direcoty: = 66048 enables the person -->   
        <attributeMap   wmmAttributeName="userAccountControl"
                        pluginAttributeName="userAccountControl"
                        applicableMemberTypes="Person"                                                                                                                  
                        dataType="String" 
                        valueLength="32"
                        multiValued="false"
                        defaultValue="66048"
                        readOnly="true"/>
                        
        <!-- Define the group type in Active Direcoty: groupType = 8 allows nested group -->                            
        <attributeMap   wmmAttributeName="groupType"
                        pluginAttributeName="groupType"
                        applicableMemberTypes="Group"                                                                                                                   
                        dataType="String" 
                        valueLength="32"
                        multiValued="false"
                        defaultValue="8"
                        readOnly="true"/>
                        

        <!-- * * * * *  Common schema attributes * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
        
        <!-- samAccountName is mandatory for user object class in Active Directory, use uid to map to samAccountName -->
        <attributeMap   wmmAttributeName="uid"
                        pluginAttributeName="samAccountName"
                        applicableMemberTypes="Person"
                        requiredMemberTypes="Person"
                        dataType="String" 
                        valueLength="32"
                        multiValued="false"/>
        
        <attributeMap   wmmAttributeName="sn" 
                        pluginAttributeName="sn"
                        applicableMemberTypes="Person"                  
                        requiredMemberTypes="Person"
                        dataType="String" 
                        valueLength="128" 
                        multiValued="true" />
        
        <attributeMap   wmmAttributeName="givenName"
                        pluginAttributeName="givenName"
                        applicableMemberTypes="Person"                  
                        dataType="String" 
                        valueLength="128" 
                        multiValued="true" />
        
        <attributeMap   wmmAttributeName="initials"
                        pluginAttributeName="initials"
                        applicableMemberTypes="Person"
                        dataType="String"
                        valueLength="20"
                        multiValued="true" />
        
        <attributeMap   wmmAttributeName="ibm-primaryEmail"
                        pluginAttributeName="mail"
                        applicableMemberTypes="Person"
                        dataType="String"
                        valueLength="256"
                        multiValued="false" />
        
        <attributeMap   wmmAttributeName="o"
                        pluginAttributeName="o"
                        applicableMemberTypes="Organization;Person"
                        requiredMemberTypes="Organization"                      
                        dataType="String"
                        valueLength="128"
                        multiValued="false" />          
                        
        <attributeMap   wmmAttributeName="ou"
                        pluginAttributeName="ou"
                        applicableMemberTypes="OrganizationalUnit;Person"
                        requiredMemberTypes="OrganizationalUnit"                        
                        dataType="String"
                        valueLength="128"
                        multiValued="false" />          

        <attributeMap   wmmAttributeName="cn"
                        pluginAttributeName="cn"
                        applicableMemberTypes="Person;Group"
                        dataType="String"
                        valueLength="256" 
                        multiValued="false" />  
                        
        <!-- If samAccountName is not specified when creating a group, samAccountName will use the value of its default attrbiute 'cn' -->              
        <attributeMap   wmmAttributeName="samAccountName"
                        pluginAttributeName="samAccountName"
                        applicableMemberTypes="Group"
                        requiredMemberTypes="Group"
                        dataType="String" 
                        valueLength="32"
                        multiValued="false"
                        defaultAttribute="cn"/>
        
        <!-- userPassword needs to map to unicodePwd, SSL connection is needed in order for creating or updating unicodePwd -->
        <attributeMap   wmmAttributeName="userPassword"
                        pluginAttributeName="unicodePwd"
                        applicableMemberTypes="Person"
                        dataType="String"
                        pluginDataType="OctetString"
                        valueLength="128"
                        multiValued="false" />
                        
        <!-- Read only attribute -->
        <attributeMap   wmmAttributeName="createTimestamp"
                        pluginAttributeName="createTimestamp"
                        applicableMemberTypes="Person;Group;Organization;OrganizationalUnit"  
                        dataType="Timestamp" 
                        multiValued="false" 
                        readOnly="true"/>
                        
        <!-- Read only attribute -->    
        <attributeMap   wmmAttributeName="modifyTimestamp" 
                        pluginAttributeName="modifyTimestamp"
                        applicableMemberTypes="Person;Group;Organization;OrganizationalUnit"  
                        dataType="Timestamp" 
                        multiValued="false" 
                        readOnly="true"/>
        
        <attributeMap   wmmAttributeName="telephoneNumber"
                        pluginAttributeName="telephoneNumber"
                        applicableMemberTypes="Person;Organization;OrganizationalUnit"
                        dataType="String" 
                        valueLength="32"
                        multiValued="true" /> 
        
        <attributeMap   wmmAttributeName="facsimileTelephoneNumber"
                        pluginAttributeName="facsimileTelephoneNumber"
                        applicableMemberTypes="Person;Organization;OrganizationalUnit"
                        dataType="String" 
                        valueLength="32"
                        multiValued="true" /> 

        <attributeMap   wmmAttributeName="mobile"
                        pluginAttributeName="mobile"
                        applicableMemberTypes="Person"
                        dataType="String" 
                        valueLength="32"
                        multiValued="true" />
        
        <attributeMap   wmmAttributeName="homePostalAddress"
                        pluginAttributeName="homePostalAddress"
                        applicableMemberTypes="Person"
                        dataType="String" 
                        valueLength="500"
                        multiValued="true" />  
        
        <attributeMap   wmmAttributeName="postalAddress"
                        pluginAttributeName="postalAddress"
                        applicableMemberTypes="Person;Organization;OrganizationalUnit"
                        dataType="String" 
                        valueLength="500"
                        multiValued="true" /> 
                         
        <attributeMap   wmmAttributeName="street"
                        pluginAttributeName="street"
                        applicableMemberTypes="Person;Organization;OrganizationalUnit"
                        dataType="String" 
                        valueLength="128"
                        multiValued="true" />

        <attributeMap   wmmAttributeName="postalCode"
                        pluginAttributeName="postalCode"
                        applicableMemberTypes="Person;Organization;OrganizationalUnit"
                        dataType="String" 
                        valueLength="40"
                        multiValued="true" />
                        
        <attributeMap   wmmAttributeName="manager"
                        pluginAttributeName="manager"
                        applicableMemberTypes="Person"
                        dataType="MemberIdentifier"
                        multiValued="true" />

        <attributeMap   wmmAttributeName="seeAlso"
                        pluginAttributeName="seeAlso"
                        applicableMemberTypes="Person;Organization;OrganizationalUnit"
                        dataType="MemberIdentifier" 
                        multiValued="true" />
                        
	<!-- Active Directory by default does not have 'preferredLangauge' attribute -->
	<!-- Need to create 'preferredLanague' attribute schema and add to 'user' object class -->
        <attributeMap   wmmAttributeName="preferredLanguage"
                        pluginAttributeName="preferredLanguage"
                        applicableMemberTypes="Person"
                        dataType="String"
                        valueLength="128"
                        multiValued="false" />

	<attributeMap wmmAttributeName="ibm-jobTitle" 
			pluginAttributeName="title" 
			applicableMemberTypes="Person" 
			dataType="String" 
			valueLength="128" 
			multiValued="true"/>

        <attributeMap   wmmAttributeName="displayName"
                        pluginAttributeName="displayName"
                        applicableMemberTypes="Person"
                        dataType="String"
                        valueLength="128"
                        multiValued="true" />


        <!-- The following attributes need to defined in Look Aside database -->
        
        <!--
        <attributeMap   wmmAttributeName="ibm-otherEmail"
                        pluginAttributeName="ibm-otherEmail"
                        applicableMemberTypes="Person"
                        dataType="String"
                        valueLength="256"
                        multiValued="true" />           
        

        <attributeMap   wmmAttributeName="description"
                        pluginAttributeName="description"
                        applicableMemberTypes="Person;Group;Organization;OrganizationalUnit"                    
                        dataType="String"
                        valueLength="1024"
                        multiValued="true" />
                        
        <attributeMap   wmmAttributeName="ibm-personalTitle"
                        pluginAttributeName="ibm-personalTitle"
                        applicableMemberTypes="Person"
                        dataType="String" 
                        valueLength="50"
                        multiValued="true" />    

        <attributeMap   wmmAttributeName="jpegPhoto"
                        pluginAttributeName="jpegPhoto"
                        applicableMemberTypes="Person"
                        dataType="ByteArray"  
                        valueLength="250000"         
                        multiValued="true" />  

        <attributeMap   wmmAttributeName="labeledURI"
                        pluginAttributeName="labeledURI"
                        applicableMemberTypes="Person"
                        dataType="String" 
                        valueLength="32700"             
                        multiValued="true" />

        <attributeMap   wmmAttributeName="carLicense"
                        pluginAttributeName="carLicense"
                        applicableMemberTypes="Person"
                        dataType="String" 
                        valueLength="128"
                        multiValued="true" /> 

        <attributeMap   wmmAttributeName="pager"
                        pluginAttributeName="pager"
                        applicableMemberTypes="Person"
                        dataType="String" 
                        valueLength="32"
                        multiValued="true" />

        <attributeMap   wmmAttributeName="roomNumber"
                        pluginAttributeName="roomNumber"
                        applicableMemberTypes="Person"
                        dataType="String" 
                        valueLength="256"
                        multiValued="true" />

        <attributeMap   wmmAttributeName="localityName"
                        pluginAttributeName="l"
                        applicableMemberTypes="Person;Organization;OrganizationalUnit"
                        dataType="String" 
                        valueLength="128"
                        multiValued="true" />

        <attributeMap   wmmAttributeName="stateOrProvinceName"
                        pluginAttributeName="st"
                        applicableMemberTypes="Person;Organization;OrganizationalUnit"
                        dataType="String" 
                        valueLength="128"
                        multiValued="true" />

        <attributeMap   wmmAttributeName="countryName"  
                        pluginAttributeName="c"    
                        applicableMemberTypes="Person"
                        dataType="String" 
                        valueLength="128"
                        multiValued="true" />   

        <attributeMap   wmmAttributeName="employeeNumber"
                        pluginAttributeName="employeeNumber"
                        applicableMemberTypes="Person"
                        dataType="String" 
                        valueLength="20"
                        multiValued="false" />

        <attributeMap   wmmAttributeName="ibm-personalTitle"
                        pluginAttributeName="ibm-personalTitle"
                        applicableMemberTypes="Person"
                        dataType="String" 
                        valueLength="50"
                        multiValued="true" />
                                
        <attributeMap   wmmAttributeName="employeeType"
                        pluginAttributeName="employeeType"
                        applicableMemberTypes="Person"
                        dataType="String" 
                        valueLength="128"
                        multiValued="true" />

        <attributeMap   wmmAttributeName="secretary"
                        pluginAttributeName="secretary"
                        applicableMemberTypes="Person"
                        dataType="MemberIdentifier" 
                        multiValued="true" />

        <attributeMap   wmmAttributeName="businessCategory"
                        pluginAttributeName="businessCategory"
                        applicableMemberTypes="Person;Organization;OrganizationalUnit"
                        dataType="String" 
                        valueLength="128"
                        multiValued="true" /> 

        <attributeMap   wmmAttributeName="departmentNumber"
                        pluginAttributeName="departmentNumber"
                        applicableMemberTypes="Person"
                        dataType="String" 
                        valueLength="128"
                        multiValued="true" />
        -->

</repositoryAttributes>