001    
002    /*
003     *  Licensed to the Apache Software Foundation (ASF) under one
004     *  or more contributor license agreements.  See the NOTICE file
005     *  distributed with this work for additional information
006     *  regarding copyright ownership.  The ASF licenses this file
007     *  to you under the Apache License, Version 2.0 (the
008     *  "License"); you may not use this file except in compliance
009     *  with the License.  You may obtain a copy of the License at
010     *  
011     *    http://www.apache.org/licenses/LICENSE-2.0
012     *  
013     *  Unless required by applicable law or agreed to in writing,
014     *  software distributed under the License is distributed on an
015     *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
016     *  KIND, either express or implied.  See the License for the
017     *  specific language governing permissions and limitations
018     *  under the License. 
019     *  
020     */
021    package org.apache.directory.server.schema.bootstrap;
022    
023    
024    import java.util.ArrayList;
025    import javax.naming.NamingException;
026    
027    import org.apache.directory.server.schema.registries.Registries;
028    import org.apache.directory.shared.ldap.schema.UsageEnum;
029    
030    
031    /**
032     * A producer of schema attributeType definations for the dhcp schema.  This
033     * code has been automatically generated using schema files in the OpenLDAP
034     * format along with the directory plugin for maven.  This has been done
035     * to facilitate Eve<->OpenLDAP schema interoperability.
036     *
037     * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
038     */
039    public class DhcpAttributeTypeProducer extends AbstractBootstrapProducer
040    {
041    
042        public DhcpAttributeTypeProducer()
043        {
044            super( ProducerTypeEnum.ATTRIBUTE_TYPE_PRODUCER );
045        }
046    
047    
048        // ------------------------------------------------------------------------
049        // BootstrapProducer Methods
050        // ------------------------------------------------------------------------
051    
052    
053        /**
054         * @see BootstrapProducer#produce( Registries, ProducerCallback )
055         */
056        public void produce( Registries registries, ProducerCallback cb )
057            throws NamingException
058        {
059            ArrayList<String> names = new ArrayList<String>();
060            BootstrapAttributeType attributeType;
061    
062    
063            // --------------------------------------------------------------------
064            // AttributeType 2.16.840.1.113719.1.203.4.1 
065            // --------------------------------------------------------------------
066    
067            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.1", registries );
068            attributeType.setDescription( "The DN of the dhcpServer which is the primary server for the configuration." );
069            attributeType.setCanUserModify( ! false );
070            attributeType.setSingleValue( true );
071            attributeType.setCollective( false );
072            attributeType.setObsolete( false );
073            attributeType.setLength( 0 );
074            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
075            attributeType.setEqualityId( "distinguishedNameMatch" );
076            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
077    
078            names.clear();
079            names.add( "dhcpPrimaryDN" );
080            attributeType.setNames( names.toArray( EMPTY ) );
081            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.1", attributeType );
082    
083            // --------------------------------------------------------------------
084            // AttributeType 2.16.840.1.113719.1.203.4.2 
085            // --------------------------------------------------------------------
086    
087            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.2", registries );
088            attributeType.setDescription( "The DN of dhcpServer(s) which provide backup service for the configuration." );
089            attributeType.setCanUserModify( ! false );
090            attributeType.setSingleValue( false );
091            attributeType.setCollective( false );
092            attributeType.setObsolete( false );
093            attributeType.setLength( 0 );
094            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
095            attributeType.setEqualityId( "distinguishedNameMatch" );
096            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
097    
098            names.clear();
099            names.add( "dhcpSecondaryDN" );
100            attributeType.setNames( names.toArray( EMPTY ) );
101            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.2", attributeType );
102    
103            // --------------------------------------------------------------------
104            // AttributeType 2.16.840.1.113719.1.203.4.3 
105            // --------------------------------------------------------------------
106    
107            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.3", registries );
108            attributeType.setDescription( "Flexible storage for specific data depending on what object this exists in. Like conditional statements, server parameters, etc. This allows the standard to evolve without needing to adjust the schema." );
109            attributeType.setCanUserModify( ! false );
110            attributeType.setSingleValue( false );
111            attributeType.setCollective( false );
112            attributeType.setObsolete( false );
113            attributeType.setLength( 0 );
114            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
115            attributeType.setEqualityId( "caseIgnoreIA5Match" );
116            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.26" );
117    
118            names.clear();
119            names.add( "dhcpStatements" );
120            attributeType.setNames( names.toArray( EMPTY ) );
121            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.3", attributeType );
122    
123            // --------------------------------------------------------------------
124            // AttributeType 2.16.840.1.113719.1.203.4.4 
125            // --------------------------------------------------------------------
126    
127            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.4", registries );
128            attributeType.setDescription( "The starting & ending IP Addresses in the range (inclusive), separated by a hyphen; if the range only contains one address, then just the address can be specified with no hyphen.  Each range is defined as a separate value." );
129            attributeType.setCanUserModify( ! false );
130            attributeType.setSingleValue( false );
131            attributeType.setCollective( false );
132            attributeType.setObsolete( false );
133            attributeType.setLength( 0 );
134            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
135            attributeType.setEqualityId( "caseIgnoreIA5Match" );
136            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.26" );
137    
138            names.clear();
139            names.add( "dhcpRange" );
140            attributeType.setNames( names.toArray( EMPTY ) );
141            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.4", attributeType );
142    
143            // --------------------------------------------------------------------
144            // AttributeType 2.16.840.1.113719.1.203.4.5 
145            // --------------------------------------------------------------------
146    
147            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.5", registries );
148            attributeType.setDescription( "This attribute contains the permit lists associated with a pool. Each permit list is defined as a separate value." );
149            attributeType.setCanUserModify( ! false );
150            attributeType.setSingleValue( false );
151            attributeType.setCollective( false );
152            attributeType.setObsolete( false );
153            attributeType.setLength( 0 );
154            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
155            attributeType.setEqualityId( "caseIgnoreIA5Match" );
156            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.26" );
157    
158            names.clear();
159            names.add( "dhcpPermitList" );
160            attributeType.setNames( names.toArray( EMPTY ) );
161            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.5", attributeType );
162    
163            // --------------------------------------------------------------------
164            // AttributeType 2.16.840.1.113719.1.203.4.6 
165            // --------------------------------------------------------------------
166    
167            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.6", registries );
168            attributeType.setDescription( "The subnet mask length for the subnet.  The mask can be easily computed from this length." );
169            attributeType.setCanUserModify( ! false );
170            attributeType.setSingleValue( true );
171            attributeType.setCollective( false );
172            attributeType.setObsolete( false );
173            attributeType.setLength( 0 );
174            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
175            attributeType.setEqualityId( "integerMatch" );
176            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.27" );
177    
178            names.clear();
179            names.add( "dhcpNetMask" );
180            attributeType.setNames( names.toArray( EMPTY ) );
181            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.6", attributeType );
182    
183            // --------------------------------------------------------------------
184            // AttributeType 2.16.840.1.113719.1.203.4.7 
185            // --------------------------------------------------------------------
186    
187            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.7", registries );
188            attributeType.setDescription( "Encoded option values to be sent to clients.  Each value represents a single option and contains (OptionTag, Length, OptionValue) encoded in the format used by DHCP." );
189            attributeType.setCanUserModify( ! false );
190            attributeType.setSingleValue( false );
191            attributeType.setCollective( false );
192            attributeType.setObsolete( false );
193            attributeType.setLength( 0 );
194            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
195            attributeType.setEqualityId( "caseIgnoreIA5Match" );
196            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.40" );
197    
198            names.clear();
199            names.add( "dhcpOption" );
200            attributeType.setNames( names.toArray( EMPTY ) );
201            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.7", attributeType );
202    
203            // --------------------------------------------------------------------
204            // AttributeType 2.16.840.1.113719.1.203.4.8 
205            // --------------------------------------------------------------------
206    
207            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.8", registries );
208            attributeType.setDescription( "Encoded text string or list of bytes expressed in hexadecimal, separated by colons.  Clients match subclasses based on matching the class data with the results of match or spawn with statements in the class name declarations." );
209            attributeType.setCanUserModify( ! false );
210            attributeType.setSingleValue( true );
211            attributeType.setCollective( false );
212            attributeType.setObsolete( false );
213            attributeType.setLength( 0 );
214            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
215            attributeType.setEqualityId( "caseIgnoreIA5Match" );
216            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.26" );
217    
218            names.clear();
219            names.add( "dhcpClassData" );
220            attributeType.setNames( names.toArray( EMPTY ) );
221            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.8", attributeType );
222    
223            // --------------------------------------------------------------------
224            // AttributeType 2.16.840.1.113719.1.203.4.9 
225            // --------------------------------------------------------------------
226    
227            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.9", registries );
228            attributeType.setDescription( "The distinguished name(s) of the dhcpOption objects containing the configuration options provided by the server." );
229            attributeType.setCanUserModify( ! false );
230            attributeType.setSingleValue( false );
231            attributeType.setCollective( false );
232            attributeType.setObsolete( false );
233            attributeType.setLength( 0 );
234            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
235            attributeType.setEqualityId( "distinguishedNameMatch" );
236            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
237    
238            names.clear();
239            names.add( "dhcpOptionsDN" );
240            attributeType.setNames( names.toArray( EMPTY ) );
241            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.9", attributeType );
242    
243            // --------------------------------------------------------------------
244            // AttributeType 2.16.840.1.113719.1.203.4.10 
245            // --------------------------------------------------------------------
246    
247            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.10", registries );
248            attributeType.setDescription( "the distinguished name(s) of the dhcpHost objects." );
249            attributeType.setCanUserModify( ! false );
250            attributeType.setSingleValue( false );
251            attributeType.setCollective( false );
252            attributeType.setObsolete( false );
253            attributeType.setLength( 0 );
254            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
255            attributeType.setEqualityId( "distinguishedNameMatch" );
256            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
257    
258            names.clear();
259            names.add( "dhcpHostDN" );
260            attributeType.setNames( names.toArray( EMPTY ) );
261            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.10", attributeType );
262    
263            // --------------------------------------------------------------------
264            // AttributeType 2.16.840.1.113719.1.203.4.11 
265            // --------------------------------------------------------------------
266    
267            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.11", registries );
268            attributeType.setDescription( "The distinguished name(s) of pools." );
269            attributeType.setCanUserModify( ! false );
270            attributeType.setSingleValue( false );
271            attributeType.setCollective( false );
272            attributeType.setObsolete( false );
273            attributeType.setLength( 0 );
274            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
275            attributeType.setEqualityId( "distinguishedNameMatch" );
276            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
277    
278            names.clear();
279            names.add( "dhcpPoolDN" );
280            attributeType.setNames( names.toArray( EMPTY ) );
281            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.11", attributeType );
282    
283            // --------------------------------------------------------------------
284            // AttributeType 2.16.840.1.113719.1.203.4.12 
285            // --------------------------------------------------------------------
286    
287            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.12", registries );
288            attributeType.setDescription( "The distinguished name(s)   of the groups." );
289            attributeType.setCanUserModify( ! false );
290            attributeType.setSingleValue( false );
291            attributeType.setCollective( false );
292            attributeType.setObsolete( false );
293            attributeType.setLength( 0 );
294            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
295            attributeType.setEqualityId( "distinguishedNameMatch" );
296            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
297    
298            names.clear();
299            names.add( "dhcpGroupDN" );
300            attributeType.setNames( names.toArray( EMPTY ) );
301            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.12", attributeType );
302    
303            // --------------------------------------------------------------------
304            // AttributeType 2.16.840.1.113719.1.203.4.13 
305            // --------------------------------------------------------------------
306    
307            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.13", registries );
308            attributeType.setDescription( "The distinguished name(s) of the subnets." );
309            attributeType.setCanUserModify( ! false );
310            attributeType.setSingleValue( false );
311            attributeType.setCollective( false );
312            attributeType.setObsolete( false );
313            attributeType.setLength( 0 );
314            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
315            attributeType.setEqualityId( "distinguishedNameMatch" );
316            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
317    
318            names.clear();
319            names.add( "dhcpSubnetDN" );
320            attributeType.setNames( names.toArray( EMPTY ) );
321            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.13", attributeType );
322    
323            // --------------------------------------------------------------------
324            // AttributeType 2.16.840.1.113719.1.203.4.14 
325            // --------------------------------------------------------------------
326    
327            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.14", registries );
328            attributeType.setDescription( "The distinguished name of a client address." );
329            attributeType.setCanUserModify( ! false );
330            attributeType.setSingleValue( true );
331            attributeType.setCollective( false );
332            attributeType.setObsolete( false );
333            attributeType.setLength( 0 );
334            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
335            attributeType.setEqualityId( "distinguishedNameMatch" );
336            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
337    
338            names.clear();
339            names.add( "dhcpLeaseDN" );
340            attributeType.setNames( names.toArray( EMPTY ) );
341            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.14", attributeType );
342    
343            // --------------------------------------------------------------------
344            // AttributeType 2.16.840.1.113719.1.203.4.15 
345            // --------------------------------------------------------------------
346    
347            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.15", registries );
348            attributeType.setDescription( "The distinguished name(s) client addresses." );
349            attributeType.setCanUserModify( ! false );
350            attributeType.setSingleValue( false );
351            attributeType.setCollective( false );
352            attributeType.setObsolete( false );
353            attributeType.setLength( 0 );
354            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
355            attributeType.setEqualityId( "distinguishedNameMatch" );
356            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
357    
358            names.clear();
359            names.add( "dhcpLeasesDN" );
360            attributeType.setNames( names.toArray( EMPTY ) );
361            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.15", attributeType );
362    
363            // --------------------------------------------------------------------
364            // AttributeType 2.16.840.1.113719.1.203.4.16 
365            // --------------------------------------------------------------------
366    
367            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.16", registries );
368            attributeType.setDescription( "The distinguished name(s) of a class(es) in a subclass." );
369            attributeType.setCanUserModify( ! false );
370            attributeType.setSingleValue( false );
371            attributeType.setCollective( false );
372            attributeType.setObsolete( false );
373            attributeType.setLength( 0 );
374            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
375            attributeType.setEqualityId( "distinguishedNameMatch" );
376            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
377    
378            names.clear();
379            names.add( "dhcpClassesDN" );
380            attributeType.setNames( names.toArray( EMPTY ) );
381            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.16", attributeType );
382    
383            // --------------------------------------------------------------------
384            // AttributeType 2.16.840.1.113719.1.203.4.17 
385            // --------------------------------------------------------------------
386    
387            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.17", registries );
388            attributeType.setDescription( "The distinguished name(s) of subclass(es)." );
389            attributeType.setCanUserModify( ! false );
390            attributeType.setSingleValue( false );
391            attributeType.setCollective( false );
392            attributeType.setObsolete( false );
393            attributeType.setLength( 0 );
394            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
395            attributeType.setEqualityId( "distinguishedNameMatch" );
396            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
397    
398            names.clear();
399            names.add( "dhcpSubclassesDN" );
400            attributeType.setNames( names.toArray( EMPTY ) );
401            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.17", attributeType );
402    
403            // --------------------------------------------------------------------
404            // AttributeType 2.16.840.1.113719.1.203.4.18 
405            // --------------------------------------------------------------------
406    
407            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.18", registries );
408            attributeType.setDescription( "The distinguished name(s) of sharedNetworks." );
409            attributeType.setCanUserModify( ! false );
410            attributeType.setSingleValue( false );
411            attributeType.setCollective( false );
412            attributeType.setObsolete( false );
413            attributeType.setLength( 0 );
414            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
415            attributeType.setEqualityId( "distinguishedNameMatch" );
416            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
417    
418            names.clear();
419            names.add( "dhcpSharedNetworkDN" );
420            attributeType.setNames( names.toArray( EMPTY ) );
421            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.18", attributeType );
422    
423            // --------------------------------------------------------------------
424            // AttributeType 2.16.840.1.113719.1.203.4.19 
425            // --------------------------------------------------------------------
426    
427            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.19", registries );
428            attributeType.setDescription( "The DN of dhcpService object(s)which contain the configuration information. Each dhcpServer object has this attribute identifying the DHCP configuration(s) that the server is associated with." );
429            attributeType.setCanUserModify( ! false );
430            attributeType.setSingleValue( false );
431            attributeType.setCollective( false );
432            attributeType.setObsolete( false );
433            attributeType.setLength( 0 );
434            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
435            attributeType.setEqualityId( "distinguishedNameMatch" );
436            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
437    
438            names.clear();
439            names.add( "dhcpServiceDN" );
440            attributeType.setNames( names.toArray( EMPTY ) );
441            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.19", attributeType );
442    
443            // --------------------------------------------------------------------
444            // AttributeType 2.16.840.1.113719.1.203.4.20 
445            // --------------------------------------------------------------------
446    
447            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.20", registries );
448            attributeType.setDescription( "The version attribute of this object." );
449            attributeType.setCanUserModify( ! false );
450            attributeType.setSingleValue( true );
451            attributeType.setCollective( false );
452            attributeType.setObsolete( false );
453            attributeType.setLength( 0 );
454            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
455            attributeType.setEqualityId( "caseIgnoreIA5Match" );
456            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.26" );
457    
458            names.clear();
459            names.add( "dhcpVersion" );
460            attributeType.setNames( names.toArray( EMPTY ) );
461            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.20", attributeType );
462    
463            // --------------------------------------------------------------------
464            // AttributeType 2.16.840.1.113719.1.203.4.21 
465            // --------------------------------------------------------------------
466    
467            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.21", registries );
468            attributeType.setDescription( "Description of the DHCP Server implementation e.g. DHCP Servers vendor." );
469            attributeType.setCanUserModify( ! false );
470            attributeType.setSingleValue( true );
471            attributeType.setCollective( false );
472            attributeType.setObsolete( false );
473            attributeType.setLength( 0 );
474            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
475            attributeType.setEqualityId( "caseIgnoreIA5Match" );
476            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.26" );
477    
478            names.clear();
479            names.add( "dhcpImplementation" );
480            attributeType.setNames( names.toArray( EMPTY ) );
481            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.21", attributeType );
482    
483            // --------------------------------------------------------------------
484            // AttributeType 2.16.840.1.113719.1.203.4.22 
485            // --------------------------------------------------------------------
486    
487            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.22", registries );
488            attributeType.setDescription( "This stores information about the current binding-status of an address.  For dynamic addresses managed by DHCP, the values should be restricted to the following: \"FREE\", \"ACTIVE\", \"EXPIRED\", \"RELEASED\", \"RESET\", \"ABANDONED\", \"BACKUP\".  For other addresses, it SHOULD be one of the following: \"UNKNOWN\", \"RESERVED\" (an address that is managed by DHCP that is reserved for a specific client), \"RESERVED-ACTIVE\" (same as reserved, but address is currently in use), \"ASSIGNED\" (assigned manually or by some other mechanism), \"UNASSIGNED\", \"NOTASSIGNABLE\"." );
489            attributeType.setCanUserModify( ! false );
490            attributeType.setSingleValue( true );
491            attributeType.setCollective( false );
492            attributeType.setObsolete( false );
493            attributeType.setLength( 0 );
494            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
495            attributeType.setEqualityId( "caseIgnoreIA5Match" );
496            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.26" );
497    
498            names.clear();
499            names.add( "dhcpAddressState" );
500            attributeType.setNames( names.toArray( EMPTY ) );
501            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.22", attributeType );
502    
503            // --------------------------------------------------------------------
504            // AttributeType 2.16.840.1.113719.1.203.4.23 
505            // --------------------------------------------------------------------
506    
507            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.23", registries );
508            attributeType.setDescription( "This is the time the current lease for an address expires." );
509            attributeType.setCanUserModify( ! false );
510            attributeType.setSingleValue( true );
511            attributeType.setCollective( false );
512            attributeType.setObsolete( false );
513            attributeType.setLength( 0 );
514            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
515            attributeType.setEqualityId( "integerMatch" );
516            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.24" );
517    
518            names.clear();
519            names.add( "dhcpExpirationTime" );
520            attributeType.setNames( names.toArray( EMPTY ) );
521            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.23", attributeType );
522    
523            // --------------------------------------------------------------------
524            // AttributeType 2.16.840.1.113719.1.203.4.24 
525            // --------------------------------------------------------------------
526    
527            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.24", registries );
528            attributeType.setDescription( "This is the time of the last state change for a leased address." );
529            attributeType.setCanUserModify( ! false );
530            attributeType.setSingleValue( true );
531            attributeType.setCollective( false );
532            attributeType.setObsolete( false );
533            attributeType.setLength( 0 );
534            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
535            attributeType.setEqualityId( "integerMatch" );
536            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.24" );
537    
538            names.clear();
539            names.add( "dhcpStartTimeOfState" );
540            attributeType.setNames( names.toArray( EMPTY ) );
541            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.24", attributeType );
542    
543            // --------------------------------------------------------------------
544            // AttributeType 2.16.840.1.113719.1.203.4.25 
545            // --------------------------------------------------------------------
546    
547            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.25", registries );
548            attributeType.setDescription( "This is the last time a valid DHCP packet was received from the client." );
549            attributeType.setCanUserModify( ! false );
550            attributeType.setSingleValue( true );
551            attributeType.setCollective( false );
552            attributeType.setObsolete( false );
553            attributeType.setLength( 0 );
554            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
555            attributeType.setEqualityId( "integerMatch" );
556            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.24" );
557    
558            names.clear();
559            names.add( "dhcpLastTransactionTime" );
560            attributeType.setNames( names.toArray( EMPTY ) );
561            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.25", attributeType );
562    
563            // --------------------------------------------------------------------
564            // AttributeType 2.16.840.1.113719.1.203.4.26 
565            // --------------------------------------------------------------------
566    
567            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.26", registries );
568            attributeType.setDescription( "This indicates whether the address was assigned via BOOTP." );
569            attributeType.setCanUserModify( ! false );
570            attributeType.setSingleValue( true );
571            attributeType.setCollective( false );
572            attributeType.setObsolete( false );
573            attributeType.setLength( 0 );
574            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
575            attributeType.setEqualityId( "integerMatch" );
576            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.7" );
577    
578            names.clear();
579            names.add( "dhcpBootpFlag" );
580            attributeType.setNames( names.toArray( EMPTY ) );
581            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.26", attributeType );
582    
583            // --------------------------------------------------------------------
584            // AttributeType 2.16.840.1.113719.1.203.4.27 
585            // --------------------------------------------------------------------
586    
587            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.27", registries );
588            attributeType.setDescription( "This is the name of the domain sent to the client by the server.  It is essentially the same as the value for DHCP option 15 sent to the client, and represents only the domain - not the full FQDN.  To obtain the full FQDN assigned to the client you must prepend the \"dhcpAssignedHostName\" to this value with a \".\"." );
589            attributeType.setCanUserModify( ! false );
590            attributeType.setSingleValue( true );
591            attributeType.setCollective( false );
592            attributeType.setObsolete( false );
593            attributeType.setLength( 0 );
594            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
595            attributeType.setEqualityId( "caseIgnoreIA5Match" );
596            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.26" );
597    
598            names.clear();
599            names.add( "dhcpDomainName" );
600            attributeType.setNames( names.toArray( EMPTY ) );
601            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.27", attributeType );
602    
603            // --------------------------------------------------------------------
604            // AttributeType 2.16.840.1.113719.1.203.4.28 
605            // --------------------------------------------------------------------
606    
607            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.28", registries );
608            attributeType.setDescription( "This indicates the status of updating DNS resource records on behalf of the client by the DHCP server for this address.  The value is a 16-bit bitmask." );
609            attributeType.setCanUserModify( ! false );
610            attributeType.setSingleValue( true );
611            attributeType.setCollective( false );
612            attributeType.setObsolete( false );
613            attributeType.setLength( 0 );
614            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
615            attributeType.setEqualityId( "integerMatch" );
616            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.27" );
617    
618            names.clear();
619            names.add( "dhcpDnsStatus" );
620            attributeType.setNames( names.toArray( EMPTY ) );
621            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.28", attributeType );
622    
623            // --------------------------------------------------------------------
624            // AttributeType 2.16.840.1.113719.1.203.4.29 
625            // --------------------------------------------------------------------
626    
627            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.29", registries );
628            attributeType.setDescription( "This is the hostname that was requested by the client." );
629            attributeType.setCanUserModify( ! false );
630            attributeType.setSingleValue( true );
631            attributeType.setCollective( false );
632            attributeType.setObsolete( false );
633            attributeType.setLength( 0 );
634            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
635            attributeType.setEqualityId( "caseIgnoreIA5Match" );
636            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.26" );
637    
638            names.clear();
639            names.add( "dhcpRequestedHostName" );
640            attributeType.setNames( names.toArray( EMPTY ) );
641            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.29", attributeType );
642    
643            // --------------------------------------------------------------------
644            // AttributeType 2.16.840.1.113719.1.203.4.30 
645            // --------------------------------------------------------------------
646    
647            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.30", registries );
648            attributeType.setDescription( "This is the actual hostname that was assigned to a client. It may not be the name that was requested by the client.  The fully qualified domain name can be determined by appending the value of \"dhcpDomainName\" (with a dot separator) to this name." );
649            attributeType.setCanUserModify( ! false );
650            attributeType.setSingleValue( true );
651            attributeType.setCollective( false );
652            attributeType.setObsolete( false );
653            attributeType.setLength( 0 );
654            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
655            attributeType.setEqualityId( "caseIgnoreIA5Match" );
656            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.26" );
657    
658            names.clear();
659            names.add( "dhcpAssignedHostName" );
660            attributeType.setNames( names.toArray( EMPTY ) );
661            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.30", attributeType );
662    
663            // --------------------------------------------------------------------
664            // AttributeType 2.16.840.1.113719.1.203.4.31 
665            // --------------------------------------------------------------------
666    
667            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.31", registries );
668            attributeType.setDescription( "The distinguished name of a \"dhcpClient\" that an address is reserved for.  This may not be the same as the \"dhcpAssignedToClient\" attribute if the address is being reassigned but the current lease has not yet expired." );
669            attributeType.setCanUserModify( ! false );
670            attributeType.setSingleValue( true );
671            attributeType.setCollective( false );
672            attributeType.setObsolete( false );
673            attributeType.setLength( 0 );
674            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
675            attributeType.setEqualityId( "distinguishedNameMatch" );
676            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
677    
678            names.clear();
679            names.add( "dhcpReservedForClient" );
680            attributeType.setNames( names.toArray( EMPTY ) );
681            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.31", attributeType );
682    
683            // --------------------------------------------------------------------
684            // AttributeType 2.16.840.1.113719.1.203.4.32 
685            // --------------------------------------------------------------------
686    
687            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.32", registries );
688            attributeType.setDescription( "This is the distinguished name of a \"dhcpClient\" that an address is currently assigned to.  This attribute is only present in the class when the address is leased." );
689            attributeType.setCanUserModify( ! false );
690            attributeType.setSingleValue( true );
691            attributeType.setCollective( false );
692            attributeType.setObsolete( false );
693            attributeType.setLength( 0 );
694            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
695            attributeType.setEqualityId( "distinguishedNameMatch" );
696            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.12" );
697    
698            names.clear();
699            names.add( "dhcpAssignedToClient" );
700            attributeType.setNames( names.toArray( EMPTY ) );
701            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.32", attributeType );
702    
703            // --------------------------------------------------------------------
704            // AttributeType 2.16.840.1.113719.1.203.4.33 
705            // --------------------------------------------------------------------
706    
707            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.33", registries );
708            attributeType.setDescription( "If the client request was received via a relay agent, this contains information about the relay agent that was available from the DHCP request.  This is a hex-encoded option value." );
709            attributeType.setCanUserModify( ! false );
710            attributeType.setSingleValue( true );
711            attributeType.setCollective( false );
712            attributeType.setObsolete( false );
713            attributeType.setLength( 0 );
714            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
715            attributeType.setEqualityId( "caseIgnoreIA5Match" );
716            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.40" );
717    
718            names.clear();
719            names.add( "dhcpRelayAgentInfo" );
720            attributeType.setNames( names.toArray( EMPTY ) );
721            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.33", attributeType );
722    
723            // --------------------------------------------------------------------
724            // AttributeType 2.16.840.1.113719.1.203.4.34 
725            // --------------------------------------------------------------------
726    
727            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.34", registries );
728            attributeType.setDescription( "The clients hardware address that requested this IP address." );
729            attributeType.setCanUserModify( ! false );
730            attributeType.setSingleValue( true );
731            attributeType.setCollective( false );
732            attributeType.setObsolete( false );
733            attributeType.setLength( 0 );
734            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
735            attributeType.setEqualityId( "caseIgnoreIA5Match" );
736            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.40" );
737    
738            names.clear();
739            names.add( "dhcpHWAddress" );
740            attributeType.setNames( names.toArray( EMPTY ) );
741            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.34", attributeType );
742    
743            // --------------------------------------------------------------------
744            // AttributeType 2.16.840.1.113719.1.203.4.35 
745            // --------------------------------------------------------------------
746    
747            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.35", registries );
748            attributeType.setDescription( "HashBucketAssignment bit map for the DHCP Server, as defined in DHC Load Balancing Algorithm [RFC 3074]." );
749            attributeType.setCanUserModify( ! false );
750            attributeType.setSingleValue( true );
751            attributeType.setCollective( false );
752            attributeType.setObsolete( false );
753            attributeType.setLength( 0 );
754            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
755            attributeType.setEqualityId( "caseIgnoreIA5Match" );
756            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.40" );
757    
758            names.clear();
759            names.add( "dhcpHashBucketAssignment" );
760            attributeType.setNames( names.toArray( EMPTY ) );
761            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.35", attributeType );
762    
763            // --------------------------------------------------------------------
764            // AttributeType 2.16.840.1.113719.1.203.4.36 
765            // --------------------------------------------------------------------
766    
767            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.36", registries );
768            attributeType.setDescription( "Delay in seconds corresponding to Delayed Service Parameter configuration, as defined in  DHC Load Balancing Algorithm [RFC 3074]. " );
769            attributeType.setCanUserModify( ! false );
770            attributeType.setSingleValue( true );
771            attributeType.setCollective( false );
772            attributeType.setObsolete( false );
773            attributeType.setLength( 0 );
774            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
775            attributeType.setEqualityId( "integerMatch" );
776            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.27" );
777    
778            names.clear();
779            names.add( "dhcpDelayedServiceParameter" );
780            attributeType.setNames( names.toArray( EMPTY ) );
781            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.36", attributeType );
782    
783            // --------------------------------------------------------------------
784            // AttributeType 2.16.840.1.113719.1.203.4.37 
785            // --------------------------------------------------------------------
786    
787            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.37", registries );
788            attributeType.setDescription( "Maximum Client Lead Time configuration in seconds, as defined in DHCP Failover Protocol [FAILOVR]" );
789            attributeType.setCanUserModify( ! false );
790            attributeType.setSingleValue( true );
791            attributeType.setCollective( false );
792            attributeType.setObsolete( false );
793            attributeType.setLength( 0 );
794            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
795            attributeType.setEqualityId( "integerMatch" );
796            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.27" );
797    
798            names.clear();
799            names.add( "dhcpMaxClientLeadTime" );
800            attributeType.setNames( names.toArray( EMPTY ) );
801            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.37", attributeType );
802    
803            // --------------------------------------------------------------------
804            // AttributeType 2.16.840.1.113719.1.203.4.38 
805            // --------------------------------------------------------------------
806    
807            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.38", registries );
808            attributeType.setDescription( "Server (Failover Endpoint) state, as defined in DHCP Failover Protocol [FAILOVR]" );
809            attributeType.setCanUserModify( ! false );
810            attributeType.setSingleValue( true );
811            attributeType.setCollective( false );
812            attributeType.setObsolete( false );
813            attributeType.setLength( 0 );
814            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
815            attributeType.setEqualityId( "integerMatch" );
816            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.26" );
817    
818            names.clear();
819            names.add( "dhcpFailOverEndpointState" );
820            attributeType.setNames( names.toArray( EMPTY ) );
821            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.38", attributeType );
822    
823            // --------------------------------------------------------------------
824            // AttributeType 2.16.840.1.113719.1.203.4.39 
825            // --------------------------------------------------------------------
826    
827            attributeType = newAttributeType( "2.16.840.1.113719.1.203.4.39", registries );
828            attributeType.setDescription( "Generic error log attribute that allows logging error conditions within a dhcpService or a dhcpSubnet, like no IP addresses available for lease." );
829            attributeType.setCanUserModify( ! false );
830            attributeType.setSingleValue( true );
831            attributeType.setCollective( false );
832            attributeType.setObsolete( false );
833            attributeType.setLength( 0 );
834            attributeType.setUsage( UsageEnum.getUsage( "USER_APPLICATIONS" ) );
835            attributeType.setEqualityId( "caseIgnoreIA5Match" );
836            attributeType.setSyntaxId( "1.3.6.1.4.1.1466.115.121.1.26" );
837    
838            names.clear();
839            names.add( "dhcpErrorLog" );
840            attributeType.setNames( names.toArray( EMPTY ) );
841            cb.schemaObjectProduced( this, "2.16.840.1.113719.1.203.4.39", attributeType );
842        }
843    }