#
# OID Base is:
#	iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) 
#		sra(13122) experimental(2) user(1) 
#			soda(2924) gfarm2(101)
# i.e. gfarm2 schema OID base is 1.3.6.1.4.1.13122.2.1.2924.101
#
# gfarm2 schema:
#	1.3.6.1.4.1.13122.2.1.2924.101.1.x attribute syntax
#	1.3.6.1.4.1.13122.2.1.2924.101.2.x attribute type
#	1.3.6.1.4.1.13122.2.1.2924.101.3.x object class

# Attribute Type Definitions
# 1.3.6.1.4.1.13122.2.1.2924.101.2.x

attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.1 NAME 'hostname'
	EQUALITY caseIgnoreIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.2 NAME 'port'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.3 NAME 'hostaliases'
	EQUALITY caseIgnoreIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.4 NAME 'architecture'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.5 NAME 'ncpu'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.6 NAME 'flags'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.7 NAME 'username'
	EQUALITY caseExactMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.8 NAME 'homedir'
	EQUALITY caseExactMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.9 NAME 'realname'
	EQUALITY caseExactMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.10 NAME 'gsiDN'
	EQUALITY caseExactMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.11 NAME 'groupname'
	EQUALITY caseExactMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.12 NAME 'groupusers'
	EQUALITY caseExactMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.13 NAME 'inumber'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.14 NAME 'igen'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.15 NAME 'nlink'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.16 NAME 'size'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.17 NAME 'mode'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.18 NAME 'atimesec'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.19 NAME 'atimensec'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.20 NAME 'mtimesec'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.21 NAME 'mtimensec'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.22 NAME 'ctimesec'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.23 NAME 'ctimensec'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.24 NAME 'checksumType'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.25 NAME 'checksum'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.13122.2.1.2924.100.2.26 NAME 'entryName'
	EQUALITY caseExactMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.27 NAME 'entryINumber'
	EQUALITY caseExactIA5Match
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.13122.2.1.2924.100.2.28 NAME 'sourcePath'
	EQUALITY caseExactMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.29 NAME 'attrname'
	EQUALITY caseExactMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.30 NAME 'attrvalue'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.13122.2.1.2924.101.2.31 NAME 'fsngroupname'
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )

# Object Class Definitions
# 1.3.6.1.4.1.13122.2.1.2924.101.3.x

objectclass ( 1.3.6.1.4.1.13122.2.1.2924.101.3.1
	NAME 'GFarmHost' SUP top STRUCTURAL
	MUST ( hostname $ port $ architecture $ ncpu $ flags )
	MAY ( hostaliases $ fsngroupname ) )

objectclass ( 1.3.6.1.4.1.13122.2.1.2924.101.3.2
	NAME 'GFarmUser' SUP top STRUCTURAL
	MUST ( username $ homedir )
	MAY ( realname $ gsiDN ) )

objectclass ( 1.3.6.1.4.1.13122.2.1.2924.101.3.3
	NAME 'GFarmGroup' SUP top STRUCTURAL
	MUST ( groupname )
	MAY ( groupusers ) )

objectclass ( 1.3.6.1.4.1.13122.2.1.2924.101.3.4
	NAME 'GFarmINode' SUP top STRUCTURAL
	MUST ( inumber $
		igen $ nlink $ size $ mode $ username $ groupname $
		atimesec $ atimensec $
		mtimesec $ mtimensec $
		ctimesec $ ctimensec )
	MAY ( checksumType $ checksum ) )

objectclass ( 1.3.6.1.4.1.13122.2.1.2924.101.3.6
	NAME 'GFarmFileCopy' SUP top STRUCTURAL
	MUST ( inumber $ hostname ) )

objectclass ( 1.3.6.1.4.1.13122.2.1.2924.101.3.7
	NAME 'GFarmDeadFileCopy' SUP top STRUCTURAL
	MUST ( inumber $ igen $ hostname ) )

objectclass ( 1.3.6.1.4.1.13122.2.1.2924.101.3.5
	NAME 'GFarmDirEntry' SUP top STRUCTURAL
	MUST ( inumber $ entryName $ entryINumber ) )

objectclass ( 1.3.6.1.4.1.13122.2.1.2924.101.3.8
	NAME 'GFarmSymlink' SUP top AUXILIARY
	MUST ( sourcePath ) )
	
objectclass ( 1.3.6.1.4.1.13122.2.1.2924.101.3.9
	NAME 'XAttr' SUP top STRUCTURAL
	MUST ( inumber $ attrname $ attrvalue ) )
