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.ManagedObjectDefinition;
033import org.opends.server.admin.PropertyException;
034import org.opends.server.admin.std.meta.PluginCfgDefn.PluginType;
035import org.opends.server.admin.std.server.PasswordPolicyImportPluginCfg;
036
037
038
039/**
040 * A client-side interface for reading and modifying Password Policy
041 * Import Plugin settings.
042 * <p>
043 * The Password Policy Import Plugin ensures that clear-text passwords
044 * contained in LDIF entries are properly encoded before they are
045 * stored in the appropriate directory server backend.
046 */
047public interface PasswordPolicyImportPluginCfgClient extends PluginCfgClient {
048
049  /**
050   * Get the configuration definition associated with this Password Policy Import Plugin.
051   *
052   * @return Returns the configuration definition associated with this Password Policy Import Plugin.
053   */
054  ManagedObjectDefinition<? extends PasswordPolicyImportPluginCfgClient, ? extends PasswordPolicyImportPluginCfg> definition();
055
056
057
058  /**
059   * Gets the "default-auth-password-storage-scheme" property.
060   * <p>
061   * Specifies the names of password storage schemes that to be used
062   * for encoding passwords contained in attributes with the auth
063   * password syntax for entries that do not include the
064   * ds-pwp-password-policy-dn attribute specifying which password
065   * policy should be used to govern them.
066   *
067   * @return Returns the values of the "default-auth-password-storage-scheme" property.
068   */
069  SortedSet<String> getDefaultAuthPasswordStorageScheme();
070
071
072
073  /**
074   * Sets the "default-auth-password-storage-scheme" property.
075   * <p>
076   * Specifies the names of password storage schemes that to be used
077   * for encoding passwords contained in attributes with the auth
078   * password syntax for entries that do not include the
079   * ds-pwp-password-policy-dn attribute specifying which password
080   * policy should be used to govern them.
081   *
082   * @param values The values of the "default-auth-password-storage-scheme" property.
083   * @throws PropertyException
084   *           If one or more of the new values are invalid.
085   */
086  void setDefaultAuthPasswordStorageScheme(Collection<String> values) throws PropertyException;
087
088
089
090  /**
091   * Gets the "default-user-password-storage-scheme" property.
092   * <p>
093   * Specifies the names of the password storage schemes to be used
094   * for encoding passwords contained in attributes with the user
095   * password syntax for entries that do not include the
096   * ds-pwp-password-policy-dn attribute specifying which password
097   * policy is to be used to govern them.
098   *
099   * @return Returns the values of the "default-user-password-storage-scheme" property.
100   */
101  SortedSet<String> getDefaultUserPasswordStorageScheme();
102
103
104
105  /**
106   * Sets the "default-user-password-storage-scheme" property.
107   * <p>
108   * Specifies the names of the password storage schemes to be used
109   * for encoding passwords contained in attributes with the user
110   * password syntax for entries that do not include the
111   * ds-pwp-password-policy-dn attribute specifying which password
112   * policy is to be used to govern them.
113   *
114   * @param values The values of the "default-user-password-storage-scheme" property.
115   * @throws PropertyException
116   *           If one or more of the new values are invalid.
117   */
118  void setDefaultUserPasswordStorageScheme(Collection<String> values) throws PropertyException;
119
120
121
122  /**
123   * Gets the "invoke-for-internal-operations" property.
124   * <p>
125   * Indicates whether the plug-in should be invoked for internal
126   * operations.
127   * <p>
128   * Any plug-in that can be invoked for internal operations must
129   * ensure that it does not create any new internal operatons that can
130   * cause the same plug-in to be re-invoked.
131   *
132   * @return Returns the value of the "invoke-for-internal-operations" property.
133   */
134  boolean isInvokeForInternalOperations();
135
136
137
138  /**
139   * Sets the "invoke-for-internal-operations" property.
140   * <p>
141   * Indicates whether the plug-in should be invoked for internal
142   * operations.
143   * <p>
144   * Any plug-in that can be invoked for internal operations must
145   * ensure that it does not create any new internal operatons that can
146   * cause the same plug-in to be re-invoked.
147   *
148   * @param value The value of the "invoke-for-internal-operations" property.
149   * @throws PropertyException
150   *           If the new value is invalid.
151   */
152  void setInvokeForInternalOperations(Boolean value) throws PropertyException;
153
154
155
156  /**
157   * Gets the "java-class" property.
158   * <p>
159   * Specifies the fully-qualified name of the Java class that
160   * provides the plug-in implementation.
161   *
162   * @return Returns the value of the "java-class" property.
163   */
164  String getJavaClass();
165
166
167
168  /**
169   * Sets the "java-class" property.
170   * <p>
171   * Specifies the fully-qualified name of the Java class that
172   * provides the plug-in implementation.
173   *
174   * @param value The value of the "java-class" property.
175   * @throws PropertyException
176   *           If the new value is invalid.
177   */
178  void setJavaClass(String value) throws PropertyException;
179
180
181
182  /**
183   * Gets the "plugin-type" property.
184   * <p>
185   * Specifies the set of plug-in types for the plug-in, which
186   * specifies the times at which the plug-in is invoked.
187   *
188   * @return Returns the values of the "plugin-type" property.
189   */
190  SortedSet<PluginType> getPluginType();
191
192
193
194  /**
195   * Sets the "plugin-type" property.
196   * <p>
197   * Specifies the set of plug-in types for the plug-in, which
198   * specifies the times at which the plug-in is invoked.
199   *
200   * @param values The values of the "plugin-type" property.
201   * @throws PropertyException
202   *           If one or more of the new values are invalid.
203   */
204  void setPluginType(Collection<PluginType> values) throws PropertyException;
205
206}