root / pykota / trunk / initscripts / ldap / pykota.schema @ 3481

Revision 3481, 12.8 kB (checked in by jerome, 15 years ago)

Changed copyright years.
Copyright years are now dynamic when displayed by a command line tool.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
RevLine 
[1015]1# $Id$
2#
3# pykota.schema
4#
5# LDAP Schema for Pykota Quota System
6#
[3481]7# (c) 2003-2009 Jerome Alet <alet@librelogiciel.com>
[3259]8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
[3413]12#
[3259]13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16# GNU General Public License for more details.
[3413]17#
[3259]18# You should have received a copy of the GNU General Public License
19# along with this program.  If not, see <http://www.gnu.org/licenses/>.
20#
[1098]21# Include it in OpenLDAP's configuration file (/etc/ldap/slapd.conf)
22# and restart slapd.
23#
[1015]24# Written 2003-05-28 by Wayne Godoy and John Flynn <wgodoy =AT= ub -DOT- edu -DOT- bz>
25#
26# Modified by Jerome Alet 2003-06-01
27#
28# 16868.x       => Conseil Internet & Logiciels Libres
29# 16868.1.x     => Pykota
30# 16868.1.1.x   => attributes
31# 16868.1.2.x   => classes
32#
[3413]33# Contributors : Leif Johansson - Stockholm University
[1017]34#
[1015]35
[3413]36#
[1017]37# PyKota Attributes Types
38#
[1015]39
[1017]40# pykotaLimitBy
[1015]41attributetype ( 1.3.6.1.4.1.16868.1.1.1 NAME 'pykotaLimitBy'
42        DESC 'How to limit the user/group : quota or balance'
43        EQUALITY caseIgnoreIA5Match
44        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
45
[1017]46# pykotaBalance
[1015]47attributetype ( 1.3.6.1.4.1.16868.1.1.2 NAME 'pykotaBalance'
48        DESC 'Current account balance for the user, float'
49        EQUALITY caseIgnoreIA5Match
50        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
51
[1017]52# pykotaLifeTimePaid
[1015]53attributetype ( 1.3.6.1.4.1.16868.1.1.3 NAME 'pykotaLifeTimePaid'
54        DESC 'Total money paid by the user to fill his account balance, float'
55        EQUALITY caseIgnoreIA5Match
56        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
57
[1017]58# pykotaPricePerPage
[1015]59attributetype ( 1.3.6.1.4.1.16868.1.1.4 NAME 'pykotaPricePerPage'
60        DESC 'Price per page for a printer, float'
61        EQUALITY caseIgnoreIA5Match
62        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
63
[1017]64# pykotaPricePerJob
[1015]65attributetype ( 1.3.6.1.4.1.16868.1.1.5 NAME 'pykotaPricePerJob'
66        DESC 'Price per job for a printer, float'
67        EQUALITY caseIgnoreIA5Match
68        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
69
[1017]70# pykotaSoftLimit
71attributetype ( 1.3.6.1.4.1.16868.1.1.6 NAME 'pykotaSoftLimit'
[1015]72        DESC 'Soft limit in maximal number of pages'
[1041]73        EQUALITY caseIgnoreIA5Match
74        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[3413]75
76# pykotaHardLimit
[1017]77attributetype ( 1.3.6.1.4.1.16868.1.1.7 NAME 'pykotaHardLimit'
[1015]78        DESC 'Hard limit in maximal number of pages'
[1041]79        EQUALITY caseIgnoreIA5Match
80        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[1015]81
[1017]82# pykotaDateLimit
83attributetype ( 1.3.6.1.4.1.16868.1.1.8 NAME 'pykotaDateLimit'
[1015]84        DESC 'Date at which the soft limit becomes a hard one'
85        EQUALITY caseIgnoreIA5Match
86        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
87
[1017]88# pykotaPageCounter
89attributetype ( 1.3.6.1.4.1.16868.1.1.9 NAME 'pykotaPageCounter'
[1015]90        DESC 'Current page counter for the user on a particular printer'
91        EQUALITY integerMatch
92        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
93
[1017]94# pykotaLifePageCounter
95attributetype ( 1.3.6.1.4.1.16868.1.1.10 NAME 'pykotaLifePageCounter'
[1015]96        DESC 'Total page counter for the user on a particular printer'
97        EQUALITY integerMatch
98        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
99
[1017]100# pykotaJobId
101attributetype ( 1.3.6.1.4.1.16868.1.1.11 NAME 'pykotaJobId'
[1015]102        DESC 'Id of a job in a printer history of jobs'
[1017]103        EQUALITY caseExactIA5Match
104        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[1015]105
[1017]106# pykotaPrinterPageCounter
107attributetype ( 1.3.6.1.4.1.16868.1.1.12 NAME 'pykotaPrinterPageCounter'
[1015]108        DESC 'Life time page counter of a printer when the job began'
109        EQUALITY integerMatch
110        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
111
[1017]112# pykotaJobSize
113attributetype ( 1.3.6.1.4.1.16868.1.1.13 NAME 'pykotaJobSize'
[1015]114        DESC 'Current job size in number of pages in the history'
[1200]115        EQUALITY integerMatch
116        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
[1015]117
[1017]118# pykotaAction
119attributetype ( 1.3.6.1.4.1.16868.1.1.14 NAME 'pykotaAction'
[2631]120        DESC 'Was the job allowed, denied, warned, cancelled or failed : ( "ALLOW" |  "DENY" | "WARN" | "CANCEL" | "PROBLEM" )'
[1018]121        EQUALITY caseExactIA5Match
[1015]122        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[3413]123
124# pykotaPrinterName
[1017]125attributetype ( 1.3.6.1.4.1.16868.1.1.15 NAME 'pykotaPrinterName'
126        DESC 'PyKota printer name as received from the printing subsystem'
[1200]127        EQUALITY caseExactIA5Match
128        SUBSTR caseExactIA5SubstringsMatch
[1015]129        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[3413]130
131# pykotaUserName
[1017]132attributetype ( 1.3.6.1.4.1.16868.1.1.16 NAME 'pykotaUserName'
133        DESC 'PyKota user name'
134        EQUALITY caseExactIA5Match
[1200]135        SUBSTR caseExactIA5SubstringsMatch
[1017]136        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[3413]137
138# pykotaGroupName
[1017]139attributetype ( 1.3.6.1.4.1.16868.1.1.17 NAME 'pykotaGroupName'
140        DESC 'PyKota group name'
141        EQUALITY caseExactIA5Match
[1200]142        SUBSTR caseExactIA5SubstringsMatch
[1017]143        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[3413]144
145# pykotaLastJobIdent
[1018]146attributetype ( 1.3.6.1.4.1.16868.1.1.18 NAME 'pykotaLastJobIdent'
147        DESC 'Identifies the last job in the history'
[1017]148        EQUALITY caseExactIA5Match
149        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[3413]150
151# pykotaFileName
[1200]152attributetype ( 1.3.6.1.4.1.16868.1.1.19 NAME 'pykotaFileName'
153        DESC 'Print job filename'
[1455]154        EQUALITY caseExactMatch
155        SUBSTR caseExactSubstringsMatch
156        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
[3413]157
158# pykotaTitle
[1200]159attributetype ( 1.3.6.1.4.1.16868.1.1.20 NAME 'pykotaTitle'
160        DESC 'Print job title'
[1455]161        EQUALITY caseIgnoreMatch
162        SUBSTR caseIgnoreSubstringsMatch
163        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
[3413]164
[1200]165# pykotaCopies
166attributetype ( 1.3.6.1.4.1.16868.1.1.21 NAME 'pykotaCopies'
167        DESC 'Number of copies of the current print job'
168        EQUALITY integerMatch
169        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
[3413]170
171# pykotaOptions
[1200]172attributetype ( 1.3.6.1.4.1.16868.1.1.22 NAME 'pykotaOptions'
173        DESC 'Print job options'
[1480]174        EQUALITY caseIgnoreMatch
175        SUBSTR caseIgnoreSubstringsMatch
176        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
[3413]177
[1203]178# pykotaJobPrice
179attributetype ( 1.3.6.1.4.1.16868.1.1.23 NAME 'pykotaJobPrice'
180        DESC 'Price of a particular job in the history, float'
181        EQUALITY caseIgnoreIA5Match
182        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
183
[1473]184# pykotaHostName
185attributetype ( 1.3.6.1.4.1.16868.1.1.24 NAME 'pykotaHostName'
186        DESC 'The host the job is coming from'
187        EQUALITY caseIgnoreMatch
188        SUBSTR caseIgnoreSubstringsMatch
189        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
[3413]190
[1520]191# pykotaJobSizeBytes
192attributetype ( 1.3.6.1.4.1.16868.1.1.25 NAME 'pykotaJobSizeBytes'
193        DESC 'Current job size in number of bytes in the history'
194        EQUALITY integerMatch
195        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
[1473]196
[1520]197# pykotaPayments
198attributetype ( 1.3.6.1.4.1.16868.1.1.26 NAME 'pykotaPayments'
[1522]199        DESC 'Stores all payments made by an user, encoded to store both date and amount, separated by a # between two spaces'
[1520]200        EQUALITY caseExactIA5Match
201        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
[3413]202
[2054]203# pykotaOverCharge
204attributetype ( 1.3.6.1.4.1.16868.1.1.27 NAME 'pykotaOverCharge'
205        DESC 'OverCharging factor for a particular user, float'
[1996]206        EQUALITY caseIgnoreIA5Match
207        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[3413]208
[1996]209# pykotaWarnCount
210attributetype ( 1.3.6.1.4.1.16868.1.1.28 NAME 'pykotaWarnCount'
[2571]211        DESC 'Number of times the user was warned because a banner was denied'
[1996]212        EQUALITY integerMatch
213        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
[3413]214
215# pykotaMD5Sum
[1996]216attributetype ( 1.3.6.1.4.1.16868.1.1.29 NAME 'pykotaMD5Sum'
[1997]217        DESC 'MD5 Sum of the job datas'
[1996]218        EQUALITY caseExactIA5Match
219        SUBSTR caseExactIA5SubstringsMatch
220        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[3413]221
222# pykotaPages
[1996]223attributetype ( 1.3.6.1.4.1.16868.1.1.30 NAME 'pykotaPages'
[1997]224        DESC 'Descriptor for each page settings in the history'
[1996]225        EQUALITY caseExactIA5Match
226        SUBSTR caseExactIA5SubstringsMatch
227        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
[3413]228
[1996]229# pykotaPrinterCoefficient
230attributetype ( 1.3.6.1.4.1.16868.1.1.31 NAME 'pykotaPrinterCoefficient'
231        DESC 'Coefficient for a particular page format. Contains label # coeff, e.g. A3 # 2.0'
232        EQUALITY caseIgnoreIA5Match
233        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
[1520]234
[2024]235# pykotaBillingCode
236attributetype ( 1.3.6.1.4.1.16868.1.1.32 NAME 'pykotaBillingCode'
237        DESC 'Optional billing code for the print job'
238        EQUALITY caseIgnoreMatch
239        SUBSTR caseIgnoreSubstringsMatch
240        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
[3413]241
[2317]242# pykotaPrecomputedJobSize
243attributetype ( 1.3.6.1.4.1.16868.1.1.33 NAME 'pykotaPrecomputedJobSize'
244        DESC 'Precomputed job size in number of pages in the history'
245        EQUALITY integerMatch
246        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
[1996]247
[2317]248# pykotaPrecomputedJobPrice
249attributetype ( 1.3.6.1.4.1.16868.1.1.34 NAME 'pykotaPrecomputedJobPrice'
250        DESC 'Precomputed Price of a particular job in the history, float'
251        EQUALITY caseIgnoreIA5Match
252        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[3413]253
[2317]254# pykotaMaxJobSize
255attributetype ( 1.3.6.1.4.1.16868.1.1.35 NAME 'pykotaMaxJobSize'
256        DESC 'Maximum size allowed for a job'
257        EQUALITY integerMatch
258        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
259
260# pykotaPassThrough
[2452]261attributetype ( 1.3.6.1.4.1.16868.1.1.36 NAME 'pykotaPassThrough'
[2317]262        DESC 'Indicates if the printer is in pass through mode'
[2458]263        EQUALITY caseIgnoreIA5Match
264        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[2317]265
[3413]266#
[1017]267# PyKota Object Classes
268#
[1015]269
[1223]270# pykotaAccount
[1017]271objectclass ( 1.3.6.1.4.1.16868.1.2.1 NAME 'pykotaAccount' SUP top AUXILIARY
[1015]272        DESC 'PyKota Auxiliary User Account'
[1018]273        MUST ( uid )
[2317]274        MAY  ( pykotaUserName $ pykotaLimitBy $ mail $ description ) )
[3413]275
276# pykotaGroup
[1015]277objectclass ( 1.3.6.1.4.1.16868.1.2.2 NAME 'pykotaGroup' SUP top AUXILIARY
278        DESC 'PyKota Auxiliary Group'
[1018]279        MUST ( cn )
[2317]280        MAY  ( pykotaGroupName $ pykotaLimitBy $ memberUid $ uniqueMember $ member $ description ) )
[3413]281
282# pykotaPrinter
[1017]283objectclass ( 1.3.6.1.4.1.16868.1.2.3 NAME 'pykotaPrinter' SUP top AUXILIARY
[1015]284        DESC 'PyKota Printer'
[1018]285        MUST ( cn )
[2317]286        MAY  ( pykotaMaxJobSize $ pykotaPassThrough $ description $ pykotaPrinterName $ pykotaPricePerPage $ pykotaPricePerJob $ pykotaPrinterCoefficient $ uniqueMember ) )
[3413]287
288# pykotaUserPQuota
[1017]289objectclass ( 1.3.6.1.4.1.16868.1.2.4 NAME 'pykotaUserPQuota' SUP top AUXILIARY
[1015]290        DESC 'PyKota User Quota on a Printer'
[1017]291        MUST ( cn $ pykotaUserName $ pykotaPrinterName )
[2452]292        MAY  ( pykotaMaxJobSize $ pykotaPageCounter $ pykotaLifePageCounter $ pykotaSoftLimit $ pykotaHardLimit $ pykotaDateLimit $ pykotaWarnCount ) )
[3413]293
294# pykotaGroupPQuota
[1017]295objectclass ( 1.3.6.1.4.1.16868.1.2.5 NAME 'pykotaGroupPQuota' SUP top AUXILIARY
[1015]296        DESC 'PyKota Group Quota on a Printer'
[1017]297        MUST ( cn $ pykotaGroupName $ pykotaPrinterName )
[2317]298        MAY  ( pykotaMaxJobSize $ pykotaSoftLimit $ pykotaHardLimit $ pykotaDateLimit ) )
[3413]299
300# pykotaJob
[1017]301objectclass ( 1.3.6.1.4.1.16868.1.2.6 NAME 'pykotaJob' SUP top AUXILIARY
[1015]302        DESC 'An entry in the job history for a printer'
[1017]303        MUST ( cn $ pykotaUserName $ pykotaPrinterName $ pykotaJobId )
[2317]304        MAY  ( pykotaPrecomputedJobPrice $ pykotaPrecomputedJobSize $ pykotaBillingCode $ pykotaPrinterPageCounter $ pykotaJobSize $ pykotaAction $ pykotaJobPrice $ pykotaFileName $ pykotaTitle $ pykotaCopies $ pykotaOptions $ pykotaHostName $ pykotaJobSizeBytes $ pykotaMD5Sum $ pykotaPages ) )
[3413]305
[1017]306# pykotaAccountBalance
307objectclass ( 1.3.6.1.4.1.16868.1.2.7 NAME 'pykotaAccountBalance' SUP top AUXILIARY
308        DESC 'PyKota User account balance'
[2054]309        MAY  ( pykotaUserName $ pykotaBalance $ pykotaLifeTimePaid $ pykotaOverCharge $ pykotaPayments ) )
[3413]310
311# pykotaLastJob
[1017]312objectclass ( 1.3.6.1.4.1.16868.1.2.8 NAME 'pykotaLastJob' SUP top AUXILIARY
313        DESC 'Last job information for a printer'
[1018]314        MUST ( pykotaLastJobIdent )
[3413]315        MAY ( pykotaPrinterName ) )
316
[2317]317# pykotaBilling
318objectclass ( 1.3.6.1.4.1.16868.1.2.10 NAME 'pykotaBilling' SUP top AUXILIARY
319        DESC 'Allowed billing codes'
320        MUST ( cn $ pykotaBillingCode )
[2318]321        MAY ( pykotaPageCounter $ pykotaBalance $ description ) )
[3413]322
323# pykotaObject - Use it if you have to
[1018]324objectclass ( 1.3.6.1.4.1.16868.1.2.9 NAME 'pykotaObject' SUP top STRUCTURAL
325        DESC 'PyKota Object'
[1017]326        MUST ( cn ) )
[3413]327
Note: See TracBrowser for help on using the browser.