001    /*
002     * CDDL HEADER START
003     *
004     * The contents of this file are subject to the terms of the
005     * Common Development and Distribution License, Version 1.0 only
006     * (the "License").  You may not use this file except in compliance
007     * with the License.
008     *
009     * You can obtain a copy of the license at
010     * trunk/opends/resource/legal-notices/OpenDS.LICENSE
011     * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
012     * See the License for the specific language governing permissions
013     * and limitations under the License.
014     *
015     * When distributing Covered Code, include this CDDL HEADER in each
016     * file and include the License file at
017     * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
018     * add the following below this CDDL HEADER, with the fields enclosed
019     * by brackets "[]" replaced with your own identifying information:
020     *      Portions Copyright [yyyy] [name of copyright owner]
021     *
022     * CDDL HEADER END
023     *
024     *
025     *      Copyright 2008 Sun Microsystems, Inc.
026     */
027    package org.opends.server.admin.std.client;
028    
029    
030    
031    import java.util.Collection;
032    import java.util.SortedSet;
033    import org.opends.server.admin.ConfigurationClient;
034    import org.opends.server.admin.IllegalPropertyValueException;
035    import org.opends.server.admin.ManagedObjectDefinition;
036    import org.opends.server.admin.std.meta.GlobalCfgDefn.DisabledPrivilege;
037    import org.opends.server.admin.std.meta.GlobalCfgDefn.EtimeResolution;
038    import org.opends.server.admin.std.meta.GlobalCfgDefn.InvalidAttributeSyntaxBehavior;
039    import org.opends.server.admin.std.meta.GlobalCfgDefn.SingleStructuralObjectclassBehavior;
040    import org.opends.server.admin.std.meta.GlobalCfgDefn.WorkflowConfigurationMode;
041    import org.opends.server.admin.std.meta.GlobalCfgDefn.WritabilityMode;
042    import org.opends.server.admin.std.server.GlobalCfg;
043    
044    
045    
046    /**
047     * A client-side interface for reading and modifying Global
048     * Configuration settings.
049     * <p>
050     * The Global Configuration contains properties that affect the
051     * overall operation of the OpenDS Directory Server .
052     */
053    public interface GlobalCfgClient extends ConfigurationClient {
054    
055      /**
056       * Get the configuration definition associated with this Global Configuration.
057       *
058       * @return Returns the configuration definition associated with this Global Configuration.
059       */
060      ManagedObjectDefinition<? extends GlobalCfgClient, ? extends GlobalCfg> definition();
061    
062    
063    
064      /**
065       * Gets the "add-missing-rdn-attributes" property.
066       * <p>
067       * Indicates whether the Directory Server should automatically add
068       * any attribute values contained in the entry's RDN into that entry
069       * when processing an add request.
070       *
071       * @return Returns the value of the "add-missing-rdn-attributes" property.
072       */
073      boolean isAddMissingRDNAttributes();
074    
075    
076    
077      /**
078       * Sets the "add-missing-rdn-attributes" property.
079       * <p>
080       * Indicates whether the Directory Server should automatically add
081       * any attribute values contained in the entry's RDN into that entry
082       * when processing an add request.
083       *
084       * @param value The value of the "add-missing-rdn-attributes" property.
085       * @throws IllegalPropertyValueException
086       *           If the new value is invalid.
087       */
088      void setAddMissingRDNAttributes(Boolean value) throws IllegalPropertyValueException;
089    
090    
091    
092      /**
093       * Gets the "allow-attribute-name-exceptions" property.
094       * <p>
095       * Indicates whether the Directory Server should allow underscores
096       * in attribute names and allow attribute names to begin with numeric
097       * digits (both of which are violations of the LDAP standards).
098       *
099       * @return Returns the value of the "allow-attribute-name-exceptions" property.
100       */
101      boolean isAllowAttributeNameExceptions();
102    
103    
104    
105      /**
106       * Sets the "allow-attribute-name-exceptions" property.
107       * <p>
108       * Indicates whether the Directory Server should allow underscores
109       * in attribute names and allow attribute names to begin with numeric
110       * digits (both of which are violations of the LDAP standards).
111       *
112       * @param value The value of the "allow-attribute-name-exceptions" property.
113       * @throws IllegalPropertyValueException
114       *           If the new value is invalid.
115       */
116      void setAllowAttributeNameExceptions(Boolean value) throws IllegalPropertyValueException;
117    
118    
119    
120      /**
121       * Gets the "allowed-task" property.
122       * <p>
123       * Specifies the fully-qualified name of a Java class that may be
124       * invoked in the server.
125       * <p>
126       * Any attempt to invoke a task not included in the list of allowed
127       * tasks is rejected.
128       *
129       * @return Returns the values of the "allowed-task" property.
130       */
131      SortedSet<String> getAllowedTask();
132    
133    
134    
135      /**
136       * Sets the "allowed-task" property.
137       * <p>
138       * Specifies the fully-qualified name of a Java class that may be
139       * invoked in the server.
140       * <p>
141       * Any attempt to invoke a task not included in the list of allowed
142       * tasks is rejected.
143       *
144       * @param values The values of the "allowed-task" property.
145       * @throws IllegalPropertyValueException
146       *           If one or more of the new values are invalid.
147       */
148      void setAllowedTask(Collection<String> values) throws IllegalPropertyValueException;
149    
150    
151    
152      /**
153       * Gets the "bind-with-dn-requires-password" property.
154       * <p>
155       * Indicates whether the Directory Server should reject any simple
156       * bind request that contains a DN but no password.
157       * <p>
158       * Although such bind requests are technically allowed by the LDAPv3
159       * specification (and should be treated as anonymous simple
160       * authentication), they may introduce security problems in
161       * applications that do not verify that the client actually provided
162       * a password.
163       *
164       * @return Returns the value of the "bind-with-dn-requires-password" property.
165       */
166      boolean isBindWithDNRequiresPassword();
167    
168    
169    
170      /**
171       * Sets the "bind-with-dn-requires-password" property.
172       * <p>
173       * Indicates whether the Directory Server should reject any simple
174       * bind request that contains a DN but no password.
175       * <p>
176       * Although such bind requests are technically allowed by the LDAPv3
177       * specification (and should be treated as anonymous simple
178       * authentication), they may introduce security problems in
179       * applications that do not verify that the client actually provided
180       * a password.
181       *
182       * @param value The value of the "bind-with-dn-requires-password" property.
183       * @throws IllegalPropertyValueException
184       *           If the new value is invalid.
185       */
186      void setBindWithDNRequiresPassword(Boolean value) throws IllegalPropertyValueException;
187    
188    
189    
190      /**
191       * Gets the "check-schema" property.
192       * <p>
193       * Indicates whether schema enforcement is active.
194       * <p>
195       * When schema enforcement is activated, the Directory Server
196       * ensures that all operations result in entries are valid according
197       * to the defined server schema. It is strongly recommended that this
198       * option be left enabled to prevent the inadvertent addition of
199       * invalid data into the server.
200       *
201       * @return Returns the value of the "check-schema" property.
202       */
203      boolean isCheckSchema();
204    
205    
206    
207      /**
208       * Sets the "check-schema" property.
209       * <p>
210       * Indicates whether schema enforcement is active.
211       * <p>
212       * When schema enforcement is activated, the Directory Server
213       * ensures that all operations result in entries are valid according
214       * to the defined server schema. It is strongly recommended that this
215       * option be left enabled to prevent the inadvertent addition of
216       * invalid data into the server.
217       *
218       * @param value The value of the "check-schema" property.
219       * @throws IllegalPropertyValueException
220       *           If the new value is invalid.
221       */
222      void setCheckSchema(Boolean value) throws IllegalPropertyValueException;
223    
224    
225    
226      /**
227       * Gets the "default-password-policy" property.
228       * <p>
229       * Specifies the name of the password policy that is in effect for
230       * users whose entries do not specify an alternate password policy
231       * (either via a real or virtual attribute).
232       *
233       * @return Returns the value of the "default-password-policy" property.
234       */
235      String getDefaultPasswordPolicy();
236    
237    
238    
239      /**
240       * Sets the "default-password-policy" property.
241       * <p>
242       * Specifies the name of the password policy that is in effect for
243       * users whose entries do not specify an alternate password policy
244       * (either via a real or virtual attribute).
245       *
246       * @param value The value of the "default-password-policy" property.
247       * @throws IllegalPropertyValueException
248       *           If the new value is invalid.
249       */
250      void setDefaultPasswordPolicy(String value) throws IllegalPropertyValueException;
251    
252    
253    
254      /**
255       * Gets the "disabled-privilege" property.
256       * <p>
257       * Specifies the name of a privilege that should not be evaluated by
258       * the server.
259       * <p>
260       * If a privilege is disabled, then it is assumed that all clients
261       * (including unauthenticated clients) have that privilege.
262       *
263       * @return Returns the values of the "disabled-privilege" property.
264       */
265      SortedSet<DisabledPrivilege> getDisabledPrivilege();
266    
267    
268    
269      /**
270       * Sets the "disabled-privilege" property.
271       * <p>
272       * Specifies the name of a privilege that should not be evaluated by
273       * the server.
274       * <p>
275       * If a privilege is disabled, then it is assumed that all clients
276       * (including unauthenticated clients) have that privilege.
277       *
278       * @param values The values of the "disabled-privilege" property.
279       * @throws IllegalPropertyValueException
280       *           If one or more of the new values are invalid.
281       */
282      void setDisabledPrivilege(Collection<DisabledPrivilege> values) throws IllegalPropertyValueException;
283    
284    
285    
286      /**
287       * Gets the "entry-cache-preload" property.
288       * <p>
289       * Indicates whether or not to preload the entry cache on startup.
290       *
291       * @return Returns the value of the "entry-cache-preload" property.
292       */
293      boolean isEntryCachePreload();
294    
295    
296    
297      /**
298       * Sets the "entry-cache-preload" property.
299       * <p>
300       * Indicates whether or not to preload the entry cache on startup.
301       *
302       * @param value The value of the "entry-cache-preload" property.
303       * @throws IllegalPropertyValueException
304       *           If the new value is invalid.
305       */
306      void setEntryCachePreload(Boolean value) throws IllegalPropertyValueException;
307    
308    
309    
310      /**
311       * Gets the "etime-resolution" property.
312       * <p>
313       * Specifies the resolution to use for operation elapsed processing
314       * time (etime) measurements.
315       *
316       * @return Returns the value of the "etime-resolution" property.
317       */
318      EtimeResolution getEtimeResolution();
319    
320    
321    
322      /**
323       * Sets the "etime-resolution" property.
324       * <p>
325       * Specifies the resolution to use for operation elapsed processing
326       * time (etime) measurements.
327       *
328       * @param value The value of the "etime-resolution" property.
329       * @throws IllegalPropertyValueException
330       *           If the new value is invalid.
331       */
332      void setEtimeResolution(EtimeResolution value) throws IllegalPropertyValueException;
333    
334    
335    
336      /**
337       * Gets the "idle-time-limit" property.
338       * <p>
339       * Specifies the maximum length of time that a client connection may
340       * remain established since its last completed operation.
341       * <p>
342       * A value of "0 seconds" indicates that no idle time limit is
343       * enforced.
344       *
345       * @return Returns the value of the "idle-time-limit" property.
346       */
347      long getIdleTimeLimit();
348    
349    
350    
351      /**
352       * Sets the "idle-time-limit" property.
353       * <p>
354       * Specifies the maximum length of time that a client connection may
355       * remain established since its last completed operation.
356       * <p>
357       * A value of "0 seconds" indicates that no idle time limit is
358       * enforced.
359       *
360       * @param value The value of the "idle-time-limit" property.
361       * @throws IllegalPropertyValueException
362       *           If the new value is invalid.
363       */
364      void setIdleTimeLimit(Long value) throws IllegalPropertyValueException;
365    
366    
367    
368      /**
369       * Gets the "invalid-attribute-syntax-behavior" property.
370       * <p>
371       * Specifies how the Directory Server should handle operations
372       * whenever an attribute value violates the associated attribute
373       * syntax.
374       *
375       * @return Returns the value of the "invalid-attribute-syntax-behavior" property.
376       */
377      InvalidAttributeSyntaxBehavior getInvalidAttributeSyntaxBehavior();
378    
379    
380    
381      /**
382       * Sets the "invalid-attribute-syntax-behavior" property.
383       * <p>
384       * Specifies how the Directory Server should handle operations
385       * whenever an attribute value violates the associated attribute
386       * syntax.
387       *
388       * @param value The value of the "invalid-attribute-syntax-behavior" property.
389       * @throws IllegalPropertyValueException
390       *           If the new value is invalid.
391       */
392      void setInvalidAttributeSyntaxBehavior(InvalidAttributeSyntaxBehavior value) throws IllegalPropertyValueException;
393    
394    
395    
396      /**
397       * Gets the "lookthrough-limit" property.
398       * <p>
399       * Specifies the maximum number of entries that the Directory Server
400       * should "look through" in the course of processing a search
401       * request.
402       * <p>
403       * This includes any entry that the server must examine in the
404       * course of processing the request, regardless of whether it
405       * actually matches the search criteria. A value of 0 indicates that
406       * no lookthrough limit is enforced. Note that this is the default
407       * server-wide limit, but it may be overridden on a per-user basis
408       * using the ds-rlim-lookthrough-limit operational attribute.
409       *
410       * @return Returns the value of the "lookthrough-limit" property.
411       */
412      int getLookthroughLimit();
413    
414    
415    
416      /**
417       * Sets the "lookthrough-limit" property.
418       * <p>
419       * Specifies the maximum number of entries that the Directory Server
420       * should "look through" in the course of processing a search
421       * request.
422       * <p>
423       * This includes any entry that the server must examine in the
424       * course of processing the request, regardless of whether it
425       * actually matches the search criteria. A value of 0 indicates that
426       * no lookthrough limit is enforced. Note that this is the default
427       * server-wide limit, but it may be overridden on a per-user basis
428       * using the ds-rlim-lookthrough-limit operational attribute.
429       *
430       * @param value The value of the "lookthrough-limit" property.
431       * @throws IllegalPropertyValueException
432       *           If the new value is invalid.
433       */
434      void setLookthroughLimit(Integer value) throws IllegalPropertyValueException;
435    
436    
437    
438      /**
439       * Gets the "notify-abandoned-operations" property.
440       * <p>
441       * Indicates whether the Directory Server should send a response to
442       * any operation that is interrupted via an abandon request.
443       * <p>
444       * The LDAP specification states that abandoned operations should
445       * not receive any response, but this may cause problems with client
446       * applications that always expect to receive a response to each
447       * request.
448       *
449       * @return Returns the value of the "notify-abandoned-operations" property.
450       */
451      boolean isNotifyAbandonedOperations();
452    
453    
454    
455      /**
456       * Sets the "notify-abandoned-operations" property.
457       * <p>
458       * Indicates whether the Directory Server should send a response to
459       * any operation that is interrupted via an abandon request.
460       * <p>
461       * The LDAP specification states that abandoned operations should
462       * not receive any response, but this may cause problems with client
463       * applications that always expect to receive a response to each
464       * request.
465       *
466       * @param value The value of the "notify-abandoned-operations" property.
467       * @throws IllegalPropertyValueException
468       *           If the new value is invalid.
469       */
470      void setNotifyAbandonedOperations(Boolean value) throws IllegalPropertyValueException;
471    
472    
473    
474      /**
475       * Gets the "proxied-authorization-identity-mapper" property.
476       * <p>
477       * Specifies the name of the identity mapper to map authorization ID
478       * values (using the "u:" form) provided in the proxied authorization
479       * control to the corresponding user entry.
480       *
481       * @return Returns the value of the "proxied-authorization-identity-mapper" property.
482       */
483      String getProxiedAuthorizationIdentityMapper();
484    
485    
486    
487      /**
488       * Sets the "proxied-authorization-identity-mapper" property.
489       * <p>
490       * Specifies the name of the identity mapper to map authorization ID
491       * values (using the "u:" form) provided in the proxied authorization
492       * control to the corresponding user entry.
493       *
494       * @param value The value of the "proxied-authorization-identity-mapper" property.
495       * @throws IllegalPropertyValueException
496       *           If the new value is invalid.
497       */
498      void setProxiedAuthorizationIdentityMapper(String value) throws IllegalPropertyValueException;
499    
500    
501    
502      /**
503       * Gets the "reject-unauthenticated-requests" property.
504       * <p>
505       * Indicates whether the Directory Server should reject any request
506       * (other than bind or StartTLS requests) received from a client that
507       * has not yet been authenticated, whose last authentication attempt
508       * was unsuccessful, or whose last authentication attempt used
509       * anonymous authentication.
510       *
511       * @return Returns the value of the "reject-unauthenticated-requests" property.
512       */
513      boolean isRejectUnauthenticatedRequests();
514    
515    
516    
517      /**
518       * Sets the "reject-unauthenticated-requests" property.
519       * <p>
520       * Indicates whether the Directory Server should reject any request
521       * (other than bind or StartTLS requests) received from a client that
522       * has not yet been authenticated, whose last authentication attempt
523       * was unsuccessful, or whose last authentication attempt used
524       * anonymous authentication.
525       *
526       * @param value The value of the "reject-unauthenticated-requests" property.
527       * @throws IllegalPropertyValueException
528       *           If the new value is invalid.
529       */
530      void setRejectUnauthenticatedRequests(Boolean value) throws IllegalPropertyValueException;
531    
532    
533    
534      /**
535       * Gets the "return-bind-error-messages" property.
536       * <p>
537       * Indicates whether responses for failed bind operations should
538       * include a message string providing the reason for the
539       * authentication failure.
540       * <p>
541       * Note that these messages may include information that could
542       * potentially be used by an attacker. If this option is disabled,
543       * then these messages appears only in the server's access log.
544       *
545       * @return Returns the value of the "return-bind-error-messages" property.
546       */
547      boolean isReturnBindErrorMessages();
548    
549    
550    
551      /**
552       * Sets the "return-bind-error-messages" property.
553       * <p>
554       * Indicates whether responses for failed bind operations should
555       * include a message string providing the reason for the
556       * authentication failure.
557       * <p>
558       * Note that these messages may include information that could
559       * potentially be used by an attacker. If this option is disabled,
560       * then these messages appears only in the server's access log.
561       *
562       * @param value The value of the "return-bind-error-messages" property.
563       * @throws IllegalPropertyValueException
564       *           If the new value is invalid.
565       */
566      void setReturnBindErrorMessages(Boolean value) throws IllegalPropertyValueException;
567    
568    
569    
570      /**
571       * Gets the "save-config-on-successful-startup" property.
572       * <p>
573       * Indicates whether the Directory Server should save a copy of its
574       * configuration whenever the startup process completes successfully.
575       * <p>
576       * This ensures that the server provides a "last known good"
577       * configuration, which can be used as a reference (or copied into
578       * the active config) if the server fails to start with the current
579       * "active" configuration.
580       *
581       * @return Returns the value of the "save-config-on-successful-startup" property.
582       */
583      boolean isSaveConfigOnSuccessfulStartup();
584    
585    
586    
587      /**
588       * Sets the "save-config-on-successful-startup" property.
589       * <p>
590       * Indicates whether the Directory Server should save a copy of its
591       * configuration whenever the startup process completes successfully.
592       * <p>
593       * This ensures that the server provides a "last known good"
594       * configuration, which can be used as a reference (or copied into
595       * the active config) if the server fails to start with the current
596       * "active" configuration.
597       *
598       * @param value The value of the "save-config-on-successful-startup" property.
599       * @throws IllegalPropertyValueException
600       *           If the new value is invalid.
601       */
602      void setSaveConfigOnSuccessfulStartup(Boolean value) throws IllegalPropertyValueException;
603    
604    
605    
606      /**
607       * Gets the "server-error-result-code" property.
608       * <p>
609       * Specifies the numeric value of the result code when request
610       * processing fails due to an internal server error.
611       *
612       * @return Returns the value of the "server-error-result-code" property.
613       */
614      int getServerErrorResultCode();
615    
616    
617    
618      /**
619       * Sets the "server-error-result-code" property.
620       * <p>
621       * Specifies the numeric value of the result code when request
622       * processing fails due to an internal server error.
623       *
624       * @param value The value of the "server-error-result-code" property.
625       * @throws IllegalPropertyValueException
626       *           If the new value is invalid.
627       */
628      void setServerErrorResultCode(Integer value) throws IllegalPropertyValueException;
629    
630    
631    
632      /**
633       * Gets the "single-structural-objectclass-behavior" property.
634       * <p>
635       * Specifies how the Directory Server should handle operations an
636       * entry does not contain a structural object class or contains
637       * multiple structural classes.
638       *
639       * @return Returns the value of the "single-structural-objectclass-behavior" property.
640       */
641      SingleStructuralObjectclassBehavior getSingleStructuralObjectclassBehavior();
642    
643    
644    
645      /**
646       * Sets the "single-structural-objectclass-behavior" property.
647       * <p>
648       * Specifies how the Directory Server should handle operations an
649       * entry does not contain a structural object class or contains
650       * multiple structural classes.
651       *
652       * @param value The value of the "single-structural-objectclass-behavior" property.
653       * @throws IllegalPropertyValueException
654       *           If the new value is invalid.
655       */
656      void setSingleStructuralObjectclassBehavior(SingleStructuralObjectclassBehavior value) throws IllegalPropertyValueException;
657    
658    
659    
660      /**
661       * Gets the "size-limit" property.
662       * <p>
663       * Specifies the maximum number of entries that the Directory Server
664       * should return to the client durin a search operation.
665       * <p>
666       * A value of 0 indicates that no size limit is enforced. Note that
667       * this is the default server-wide limit, but it may be overridden on
668       * a per-user basis using the ds-rlim-size-limit operational
669       * attribute.
670       *
671       * @return Returns the value of the "size-limit" property.
672       */
673      int getSizeLimit();
674    
675    
676    
677      /**
678       * Sets the "size-limit" property.
679       * <p>
680       * Specifies the maximum number of entries that the Directory Server
681       * should return to the client durin a search operation.
682       * <p>
683       * A value of 0 indicates that no size limit is enforced. Note that
684       * this is the default server-wide limit, but it may be overridden on
685       * a per-user basis using the ds-rlim-size-limit operational
686       * attribute.
687       *
688       * @param value The value of the "size-limit" property.
689       * @throws IllegalPropertyValueException
690       *           If the new value is invalid.
691       */
692      void setSizeLimit(Integer value) throws IllegalPropertyValueException;
693    
694    
695    
696      /**
697       * Gets the "smtp-server" property.
698       * <p>
699       * Specifies the address (and optional port number) for a mail
700       * server that can be used to send email messages via SMTP.
701       * <p>
702       * It may be an IP address or resolvable hostname, optionally
703       * followed by a colon and a port number.
704       *
705       * @return Returns the values of the "smtp-server" property.
706       */
707      SortedSet<String> getSMTPServer();
708    
709    
710    
711      /**
712       * Sets the "smtp-server" property.
713       * <p>
714       * Specifies the address (and optional port number) for a mail
715       * server that can be used to send email messages via SMTP.
716       * <p>
717       * It may be an IP address or resolvable hostname, optionally
718       * followed by a colon and a port number.
719       *
720       * @param values The values of the "smtp-server" property.
721       * @throws IllegalPropertyValueException
722       *           If one or more of the new values are invalid.
723       */
724      void setSMTPServer(Collection<String> values) throws IllegalPropertyValueException;
725    
726    
727    
728      /**
729       * Gets the "time-limit" property.
730       * <p>
731       * Specifies the maximum length of time that the Directory Server
732       * should spend processing a search operation.
733       * <p>
734       * A value of 0 seconds indicates that no time limit is enforced.
735       * Note that this is the default server-wide time limit, but it may
736       * be overridden on a per-user basis using the ds-rlim-time-limit
737       * operational attribute.
738       *
739       * @return Returns the value of the "time-limit" property.
740       */
741      long getTimeLimit();
742    
743    
744    
745      /**
746       * Sets the "time-limit" property.
747       * <p>
748       * Specifies the maximum length of time that the Directory Server
749       * should spend processing a search operation.
750       * <p>
751       * A value of 0 seconds indicates that no time limit is enforced.
752       * Note that this is the default server-wide time limit, but it may
753       * be overridden on a per-user basis using the ds-rlim-time-limit
754       * operational attribute.
755       *
756       * @param value The value of the "time-limit" property.
757       * @throws IllegalPropertyValueException
758       *           If the new value is invalid.
759       */
760      void setTimeLimit(Long value) throws IllegalPropertyValueException;
761    
762    
763    
764      /**
765       * Gets the "workflow-configuration-mode" property.
766       * <p>
767       * Specifies the workflow configuration mode (auto vs. manual).
768       *
769       * @return Returns the value of the "workflow-configuration-mode" property.
770       */
771      WorkflowConfigurationMode getWorkflowConfigurationMode();
772    
773    
774    
775      /**
776       * Sets the "workflow-configuration-mode" property.
777       * <p>
778       * Specifies the workflow configuration mode (auto vs. manual).
779       *
780       * @param value The value of the "workflow-configuration-mode" property.
781       * @throws IllegalPropertyValueException
782       *           If the new value is invalid.
783       */
784      void setWorkflowConfigurationMode(WorkflowConfigurationMode value) throws IllegalPropertyValueException;
785    
786    
787    
788      /**
789       * Gets the "writability-mode" property.
790       * <p>
791       * Specifies the kinds of write operations the Directory Server can
792       * process.
793       *
794       * @return Returns the value of the "writability-mode" property.
795       */
796      WritabilityMode getWritabilityMode();
797    
798    
799    
800      /**
801       * Sets the "writability-mode" property.
802       * <p>
803       * Specifies the kinds of write operations the Directory Server can
804       * process.
805       *
806       * @param value The value of the "writability-mode" property.
807       * @throws IllegalPropertyValueException
808       *           If the new value is invalid.
809       */
810      void setWritabilityMode(WritabilityMode value) throws IllegalPropertyValueException;
811    
812    }