Add res_config_ldap for realtime LDAP engine.
[asterisk/asterisk.git] / contrib / scripts / asterisk.ldap-schema
1 #
2 # Copyright (c) 2007 Suretec Systems Ltd. - <http://www.suretecsystems.com/>
3 #
4 # Asterisk LDAP Schema
5 #
6 # Digium root OID (http://www.iana.org/assignments/enterprise-numbers)
7 #
8 #  1.3.6.1.4.1.22736
9 #  1.3.6.1.4.1.22736.5      LDAP elements
10 #  1.3.6.1.4.1.22736.5.4    Attribute Types
11 #  1.3.6.1.4.1.22736.5.5    Object Classes
12 #
13 objectIdentifier AsteriskRoot 1.3.6.1.4.1.22736
14 objectIdentifier AsteriskLDAP AsteriskRoot:5
15
16 #############################################################################
17 # Attribute group OIDs.  e.g.: objectIdentifier AstAttrType AsteriskLDAP:4
18 #############################################################################
19 objectIdentifier AstAttrType AsteriskLDAP:4
20
21
22 #############################################################################
23 # Attribute OIDs e.g.: objectIdentifier AstContext AstAttrType:1
24 #############################################################################
25 objectIdentifier AstContext AstAttrType:1
26 objectIdentifier AstExtension AstAttrType:2
27 objectIdentifier AstPriority AstAttrType:3
28 objectIdentifier AstApplication AstAttrType:4
29 objectIdentifier AstApplicationData AstAttrType:5
30 objectIdentifier AstAccountAMAFlags AstAttrType:6
31 objectIdentifier AstAccountCallerID AstAttrType:7
32 objectIdentifier AstAccountContext AstAttrType:8
33 objectIdentifier AstAccountMailbox AstAttrType:9
34 objectIdentifier AstMD5secret AstAttrType:10
35 objectIdentifier AstAccountDeny AstAttrType:11
36 objectIdentifier AstAccountPermit AstAttrType:12
37 objectIdentifier AstAccountQualify AstAttrType:13
38 objectIdentifier AstAccountType AstAttrType:14
39 objectIdentifier AstAccountDisallowedCodec AstAttrType:15
40 objectIdentifier AstAccountExpirationTimestamp AstAttrType:16
41 objectIdentifier AstAccountRegistrationContext AstAttrType:17
42 objectIdentifier AstAccountRegistrationExten AstAttrType:18
43 objectIdentifier AstAccountNoTransfer AstAttrType:19
44 objectIdentifier AstAccountCallGroup AstAttrType:20
45 objectIdentifier AstAccountCanReinvite AstAttrType:21
46 objectIdentifier AstAccountDTMFMode AstAttrType:22
47 objectIdentifier AstAccountFromUser AstAttrType:23
48 objectIdentifier AstAccountFromDomain AstAttrType:24
49 objectIdentifier AstAccountFullContact AstAttrType:25
50 objectIdentifier AstAccountHost AstAttrType:26
51 objectIdentifier AstAccountInsecure AstAttrType:27
52 objectIdentifier AstAccountNAT AstAttrType:28
53 objectIdentifier AstAccountPickupGroup AstAttrType:29
54 objectIdentifier AstAccountPort AstAttrType:30
55 objectIdentifier AstAccountRestrictCID AstAttrType:31
56 objectIdentifier AstAccountRTPTimeout AstAttrType:32
57 objectIdentifier AstAccountRTPHoldTimeout AstAttrType:33
58 objectIdentifier AstAccountRealmedPassword AstAttrType:34
59 objectIdentifier AstAccountAllowedCodec AstAttrType:35
60 objectIdentifier AstAccountMusicOnHold AstAttrType:36
61 objectIdentifier AstAccountCanCallForward AstAttrType:37
62 objectIdentifier AstAccountSecret AstAttrType:38
63 objectIdentifier AstAccountName AstAttrType:39
64 objectIdentifier AstConfigFilename AstAttrType:40
65 objectIdentifier AstConfigCategory AstAttrType:41
66 objectIdentifier AstConfigCategoryMetric AstAttrType:42
67 objectIdentifier AstConfigVariableName AstAttrType:43
68 objectIdentifier AstConfigVariableValue AstAttrType:44
69 objectIdentifier AstConfigCommented AstAttrType:45
70
71
72 #############################################################################
73 # Object Class OIDs
74 #############################################################################
75 objectIdentifier AstObjectClass AsteriskLDAP:2
76 objectIdentifier AsteriskExtension AstObjectClass:1
77 objectIdentifier AsteriskIAXUser AstObjectClass:2
78 objectIdentifier AsteriskSIPUser AstObjectClass:3
79 objectIdentifier AsteriskConfig AstObjectClass:4
80
81
82 #############################################################################
83 # attribute definitions
84 #
85 # OID (the first arg) comes from the objectIdentifier defined above
86 #
87 # NAME should be the same as objectIdentifier
88 #
89 # DESC should be the description of the attribute
90 #
91 # EQUALITY is the rule to use when doing a search/compare for an
92 # attribute value.
93 #
94 # SUBSTR is the rule to use when doing a substring search (*foo*)
95 #
96 # SYNTAX is the syntax (i.e., type) of the attribute. We should
97 # probably stick to syntaxes:
98 #
99 #       1.3.6.1.4.1.1466.115.121.1.15   -> directoryString (UTF-8 string)
100 #       1.3.6.1.4.1.1466.115.121.1.26   -> IA5String (ASCII String)
101 #       1.3.6.1.4.1.1466.115.121.1.27   -> integer (Integer value)
102 #
103 # SINGLE-VALUE should be present if only one instance of this
104 # attribute is allowed within an entry.
105 #
106 # {32} is the allowed length
107 #
108 # e.g.:
109
110 # attributetype ( AstExample
111 #    NAME ( 'AstExample' )
112 #    DESC 'Asterisk Example Attribute'
113 #    EQUALITY caseIgnoreMatch
114 #    SUBSTR caseIgnoreSubstringsMatch
115 #    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32} 
116 #    SINGLE-VALUE )
117 #
118 #############################################################################
119
120 attributetype ( AstContext
121         NAME 'AstContext'
122         DESC 'Asterisk Context'
123         EQUALITY caseIgnoreMatch
124         SUBSTR caseIgnoreSubstringsMatch
125         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
126
127 attributetype ( AstExtension
128         NAME 'AstExtension'
129         DESC 'Asterisk Extension'
130         EQUALITY caseIgnoreMatch
131         SUBSTR caseIgnoreSubstringsMatch
132         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
133         
134 attributetype ( AstPriority
135         NAME 'AstPriority'
136         DESC 'Asterisk Priority'
137         EQUALITY caseIgnoreMatch
138         SUBSTR caseIgnoreSubstringsMatch
139         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
140
141 attributetype ( AstApplication 
142         NAME 'AstApplication'
143         DESC 'Asterisk Application'
144         EQUALITY caseIgnoreMatch
145         SUBSTR caseIgnoreSubstringsMatch
146         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
147
148 attributetype ( AstApplicationData 
149         NAME 'AstApplicationData'
150         DESC 'Asterisk Application Data'
151         EQUALITY caseIgnoreMatch
152         SUBSTR caseIgnoreSubstringsMatch
153         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
154         
155 attributetype ( AstAccountAMAFlags 
156         NAME 'AstAccountAMAFlags'
157         DESC 'Asterisk Account AMA Flags'
158         EQUALITY caseIgnoreMatch
159         SUBSTR caseIgnoreSubstringsMatch
160         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
161
162 attributetype ( AstAccountCallerID 
163         NAME 'AstAccountCallerID'
164         DESC 'Asterisk Account CallerID'
165         EQUALITY caseIgnoreMatch
166         SUBSTR caseIgnoreSubstringsMatch
167         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
168
169 attributetype ( AstAccountContext 
170         NAME 'AstAccountContext'
171         DESC 'Asterisk Account Context'
172         EQUALITY caseIgnoreMatch
173         SUBSTR caseIgnoreSubstringsMatch
174         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
175         
176 attributetype ( AstAccountMailbox 
177         NAME 'AstAccountMailbox'
178         DESC 'Asterisk Account Mailbox'
179         EQUALITY caseIgnoreMatch
180         SUBSTR caseIgnoreSubstringsMatch
181         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
182
183 attributetype ( AstMD5secret
184         NAME 'AstMD5secret'
185         DESC 'Asterisk Account MD5 Secret'
186         EQUALITY caseIgnoreMatch
187         SUBSTR caseIgnoreSubstringsMatch
188         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
189
190 attributetype ( AstAccountDeny 
191         NAME 'AstAccountDeny'
192         DESC 'Asterisk Account Deny'
193         EQUALITY caseIgnoreMatch
194         SUBSTR caseIgnoreSubstringsMatch
195         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
196
197 attributetype ( AstAccountPermit 
198         NAME 'AstAccountPermit'
199         DESC 'Asterisk Account Permit'
200         EQUALITY caseIgnoreMatch
201         SUBSTR caseIgnoreSubstringsMatch
202         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
203         
204 attributetype ( AstAccountQualify 
205         NAME 'AstAccountQualify'
206         DESC 'Asterisk Account Qualify'
207         EQUALITY caseIgnoreMatch
208         SUBSTR caseIgnoreSubstringsMatch
209         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
210
211 attributetype ( AstAccountType 
212         NAME 'AstAccountType'
213         DESC 'Asterisk Account Type'
214         EQUALITY caseIgnoreMatch
215         SUBSTR caseIgnoreSubstringsMatch
216         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
217
218 attributetype ( AstAccountDisallowedCodec 
219         NAME 'AstAccountDisallowedCodec'
220         DESC 'Asterisk Account Disallowed Codec'
221         EQUALITY caseIgnoreMatch
222         SUBSTR caseIgnoreSubstringsMatch
223         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
224
225 attributetype ( AstAccountExpirationTimestamp 
226         NAME 'AstAccountExpirationTimestamp'
227         DESC 'Asterisk Account Allowed Codec'
228         EQUALITY caseIgnoreMatch
229         SUBSTR caseIgnoreSubstringsMatch
230         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
231
232 attributetype ( AstAccountRegistrationContext 
233         NAME 'AstAccountRegistrationContext'
234         DESC 'Asterisk Account AMA Flags'
235         EQUALITY caseIgnoreMatch
236         SUBSTR caseIgnoreSubstringsMatch
237         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
238
239 attributetype ( AstAccountRegistrationExten 
240         NAME 'AstAccountRegistrationExten'
241         DESC 'Asterisk Account AMA Flags'
242         EQUALITY caseIgnoreMatch
243         SUBSTR caseIgnoreSubstringsMatch
244         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
245
246 attributetype ( AstAccountNoTransfer 
247         NAME 'AstAccountNoTransfer'
248         DESC 'Asterisk Account AMA Flags'
249         EQUALITY caseIgnoreMatch
250         SUBSTR caseIgnoreSubstringsMatch
251         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
252         
253 attributetype ( AstAccountCallGroup 
254         NAME 'AstAccountCallGroup'
255         DESC 'Asterisk Account Call Group'
256         EQUALITY caseIgnoreMatch
257         SUBSTR caseIgnoreSubstringsMatch
258         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
259
260 attributetype ( AstAccountCanReinvite 
261         NAME 'AstAccountCanReinvite'
262         DESC 'Asterisk Account Can Reinvite'
263         EQUALITY caseIgnoreMatch
264         SUBSTR caseIgnoreSubstringsMatch
265         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
266      
267 attributetype ( AstAccountDTMFMode 
268         NAME 'AstAccountDTMFMode'
269         DESC 'Asterisk Account DTMF Flags'
270         EQUALITY caseIgnoreMatch
271         SUBSTR caseIgnoreSubstringsMatch
272         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
273             
274 attributetype ( AstAccountFromUser 
275         NAME 'AstAccountFromUser'
276         DESC 'Asterisk Account From User'
277         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
278         
279 attributetype ( AstAccountFromDomain
280         NAME 'AstAccountFromDomain'
281         DESC 'Asterisk Account From Domain'
282         EQUALITY caseIgnoreMatch
283         SUBSTR caseIgnoreSubstringsMatch
284         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
285         
286 attributetype ( AstAccountFullContact 
287         NAME 'AstAccountFullContact'
288         DESC 'Asterisk Account Full Contact'
289         EQUALITY caseIgnoreMatch
290         SUBSTR caseIgnoreSubstringsMatch
291         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
292
293 attributetype ( AstAccountHost 
294         NAME 'AstAccountHost'
295         DESC 'Asterisk Account Host'
296         EQUALITY caseIgnoreMatch
297         SUBSTR caseIgnoreSubstringsMatch
298         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
299
300 attributetype ( AstAccountInsecure
301         NAME 'AstAccountInsecure'
302         DESC 'Asterisk Account Insecure'
303         EQUALITY caseIgnoreMatch
304         SUBSTR caseIgnoreSubstringsMatch
305         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
306
307 attributetype ( AstAccountNAT 
308         NAME 'AstAccountNAT'
309         DESC 'Asterisk Account NAT'
310         EQUALITY caseIgnoreMatch
311         SUBSTR caseIgnoreSubstringsMatch
312         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
313       
314 attributetype ( AstAccountPickupGroup 
315         NAME 'AstAccountPickupGroup'
316         DESC 'Asterisk Account PickupGroup'
317         EQUALITY caseIgnoreMatch
318         SUBSTR caseIgnoreSubstringsMatch
319         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
320       
321 attributetype ( AstAccountPort 
322         NAME 'AstAccountPort'
323         DESC 'Asterisk Account Port'
324         EQUALITY caseIgnoreMatch
325         SUBSTR caseIgnoreSubstringsMatch
326         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
327       
328 attributetype ( AstAccountRestrictCID 
329         NAME 'AstAccountRestrictCID'
330         DESC 'Asterisk Restrict CallerID'
331         EQUALITY caseIgnoreMatch
332         SUBSTR caseIgnoreSubstringsMatch
333         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
334             
335 attributetype ( AstAccountRTPTimeout 
336         NAME 'AstAccountRTPTimeout'
337         DESC 'Asterisk RTP Timeout'
338         EQUALITY caseIgnoreMatch
339         SUBSTR caseIgnoreSubstringsMatch
340         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
341       
342 attributetype ( AstAccountRTPHoldTimeout 
343         NAME 'AstAccountRTPHoldTimeout'
344         DESC 'Asterisk RTP Hold Timeout'
345         EQUALITY caseIgnoreMatch
346         SUBSTR caseIgnoreSubstringsMatch
347         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
348       
349 attributetype ( AstAccountRealmedPassword 
350         NAME 'AstAccountRealmedPassword'
351         DESC 'Asterisk RTP Hold Timeout'
352         EQUALITY caseIgnoreMatch
353         SUBSTR caseIgnoreSubstringsMatch
354         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
355
356 attributetype ( AstAccountAllowedCodec 
357         NAME 'AstAccountAllowedCodec' 
358         DESC 'Asterisk Account Allowed Codec'
359         EQUALITY caseIgnoreMatch
360         SUBSTR caseIgnoreSubstringsMatch
361         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
362
363 attributetype ( AstAccountMusicOnHold 
364         NAME 'AstAccountMusicOnHold'
365         DESC 'Asterisk Account Allowed Codec'
366         EQUALITY caseIgnoreMatch
367         SUBSTR caseIgnoreSubstringsMatch
368         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
369
370 attributetype ( AstAccountCanCallForward 
371         NAME 'AstAccountCanCallForward'
372         DESC 'Asterisk Can CAll Forward' 
373         EQUALITY caseIgnoreMatch
374         SUBSTR caseIgnoreSubstringsMatch
375         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
376
377 attributetype ( AstAccountSecret 
378         NAME 'AstAccountSecret'
379         DESC 'Asterisk Can CAll Forward' 
380         EQUALITY caseIgnoreMatch
381         SUBSTR caseIgnoreSubstringsMatch
382         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
383           
384 attributetype ( AstAccountName 
385         NAME 'AstAccountName'
386         DESC 'Asterisk Account Username'
387         EQUALITY caseIgnoreMatch
388         SUBSTR caseIgnoreSubstringsMatch
389         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
390
391 attributetype ( AstConfigFilename 
392         NAME 'AstConfigFilename'
393         DESC 'Asterisk LDAP Configuration Filename'
394         EQUALITY caseIgnoreMatch
395         SUBSTR caseIgnoreSubstringsMatch
396         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
397
398 attributetype ( AstConfigCategory
399         NAME 'AstConfigCategory'
400         DESC 'Asterisk LDAP Configuration Category'
401         EQUALITY caseIgnoreMatch
402         SUBSTR caseIgnoreSubstringsMatch
403         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
404
405 attributetype ( AstConfigCategoryMetric
406         NAME 'AstConfigCategoryMetric'
407         DESC 'Asterisk LDAP Configuration Category Metric'
408         EQUALITY caseIgnoreMatch
409         SUBSTR caseIgnoreSubstringsMatch
410         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
411
412 attributetype ( AstConfigVariableName
413         NAME 'AstConfigVariableName'
414         DESC 'Asterisk LDAP Configuration Variable Name'
415         EQUALITY caseIgnoreMatch
416         SUBSTR caseIgnoreSubstringsMatch
417         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
418
419 attributetype ( AstConfigVariableValue
420         NAME 'AstConfigVariableValue'
421         DESC 'Asterisk LDAP Configuration Variable Value'
422         EQUALITY caseIgnoreMatch
423         SUBSTR caseIgnoreSubstringsMatch
424         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
425
426 attributetype ( AstConfigCommented
427         NAME 'AstConfigCommented'
428         DESC 'Asterisk LDAP Configuration Commented'
429         EQUALITY caseIgnoreMatch
430         SUBSTR caseIgnoreSubstringsMatch
431         SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
432
433 #############################################################################
434 # Object Class definitions
435 #
436 # This is where to define the object classes. Object classes are used
437 # to define which attribute MAY (optional) or MUST (required) belong
438 # to an entry.
439 #
440 # Classes can be AUXILIARY or STRUCTURAL. An entry in the directory
441 # must have one and only one structural class, but can have many
442 # AUXILIARY classes.
443 #
444 #############################################################################
445
446 objectclass ( AsteriskExtension 
447     NAME 'AsteriskExtension'
448     DESC 'PBX Extension Information for Asterisk'
449     SUP top AUXILIARY
450     MUST cn
451     MAY ( 
452         AstContext $ 
453         AstExtension $ 
454         AstPriority $
455         AstApplication $ 
456         AstApplicationData
457     ) 
458     )
459
460 #############################################################################
461 #
462 # AsteriskIAXUser and AsteriskSIPUser extend AsteriskExtension. These
463 # represent real accounts in Asterisk.
464 #
465 # NOTE: They are defined as AUXILIARY in case they need to be mixed with an
466 # existing directory deployment.
467 #
468 #############################################################################
469         
470 objectclass ( AsteriskIAXUser 
471     NAME 'AsteriskIAXUser'
472     DESC 'IAX2 User information for Asterisk'
473     SUP AsteriskExtension AUXILIARY
474     MUST cn
475     MAY ( 
476         AstAccountAMAFlags $ 
477         AstAccountCallerID $ 
478         AstAccountContext $ 
479         AstAccountFullContact $ 
480         AstAccountHost $ 
481         AstAccountMailbox $ 
482         AstMD5secret $ 
483         AstAccountDeny $
484         AstAccountPermit $ 
485         AstAccountPort $ 
486         AstAccountQualify $ 
487         AstAccountType $
488         AstAccountDisallowedCodec $ 
489         AstAccountExpirationTimestamp $ 
490         AstAccountRegistrationContext$
491         AstAccountRegistrationExten $ 
492         AstAccountNoTransfer $ 
493         AstAccountName 
494     )
495     )
496        
497 objectclass ( AsteriskSIPUser 
498     NAME 'AsteriskSIPUser'
499     DESC 'SIP User information for Asterisk'
500     SUP AsteriskExtension AUXILIARY
501     MUST cn
502     MAY (
503         AstAccountAMAFlags $ 
504         AstAccountCallGroup $ 
505         AstAccountCallerID $ 
506         AstAccountCanReinvite $
507         AstAccountContext $
508         AstAccountDTMFMode $ 
509         AstAccountFromUser $ 
510         AstAccountFromDomain $     
511         AstAccountFullContact $ 
512         AstAccountHost $ 
513         AstAccountInsecure $  
514         AstAccountMailbox $    
515         AstAccountRealmedPassword $ 
516         AstAccountNAT $
517         AstAccountDeny $ 
518         AstAccountPermit $ 
519         AstAccountPickupGroup $ 
520         AstAccountPort $
521         AstAccountQualify $ 
522         AstAccountRestrictCID $ 
523         AstAccountRTPTimeout $ 
524         AstAccountRTPHoldTimeout $
525         AstAccountType $ 
526         AstAccountDisallowedCodec $ 
527         AstAccountAllowedCodec $ 
528         AstAccountMusicOnHold $
529         AstAccountExpirationTimestamp $ 
530         AstAccountRegistrationContext $ 
531         AstAccountRegistrationExten $
532         AstAccountCanCallForward $ 
533         AstAccountSecret $ 
534         AstAccountName 
535     )
536     )
537
538 #############################################################################
539 #
540 # AsteriskIAXUser and AsteriskSIPUser extend AsteriskExtension. These
541 # represent real accounts in Asterisk.
542 #
543 # NOTE: They are defined as AUXILIARY in case they need to be mixed with an
544 # existing directory deployment.
545 #
546 #############################################################################
547         
548 objectclass ( AsteriskConfig 
549     NAME 'AsteriskConfig'
550     DESC 'Asterisk configuration Information'
551     SUP top AUXILIARY
552     MUST cn
553     MAY ( 
554         AstConfigFilename $ 
555         AstConfigCategory $ 
556         AstConfigCategoryMetric $
557         AstConfigVariableName $ 
558         AstConfigVariableValue $ 
559         AstConfigCommented
560     ) 
561     )
562