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