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.IllegalPropertyValueException;
034 import org.opends.server.admin.ManagedObjectDefinition;
035 import org.opends.server.admin.std.server.SMTPAccountStatusNotificationHandlerCfg;
036 import org.opends.server.types.AttributeType;
037
038
039
040 /**
041 * A client-side interface for reading and modifying SMTP Account
042 * Status Notification Handler settings.
043 * <p>
044 * The SMTP Account Status Notification Handler is a notification
045 * handler that sends email messages to end users and/or administrators
046 * whenever an account status notification is generated.
047 */
048 public interface SMTPAccountStatusNotificationHandlerCfgClient extends AccountStatusNotificationHandlerCfgClient {
049
050 /**
051 * Get the configuration definition associated with this SMTP Account Status Notification Handler.
052 *
053 * @return Returns the configuration definition associated with this SMTP Account Status Notification Handler.
054 */
055 ManagedObjectDefinition<? extends SMTPAccountStatusNotificationHandlerCfgClient, ? extends SMTPAccountStatusNotificationHandlerCfg> definition();
056
057
058
059 /**
060 * Gets the "email-address-attribute-type" property.
061 * <p>
062 * Specifies which attribute in the user's entries may be used to
063 * obtain the email address when notifying the end user.
064 * <p>
065 * You can specify more than one email address as separate values.
066 * In this case, the OpenDS server sends a notification to all email
067 * addresses identified.
068 *
069 * @return Returns the values of the "email-address-attribute-type" property.
070 */
071 SortedSet<AttributeType> getEmailAddressAttributeType();
072
073
074
075 /**
076 * Sets the "email-address-attribute-type" property.
077 * <p>
078 * Specifies which attribute in the user's entries may be used to
079 * obtain the email address when notifying the end user.
080 * <p>
081 * You can specify more than one email address as separate values.
082 * In this case, the OpenDS server sends a notification to all email
083 * addresses identified.
084 *
085 * @param values The values of the "email-address-attribute-type" property.
086 * @throws IllegalPropertyValueException
087 * If one or more of the new values are invalid.
088 */
089 void setEmailAddressAttributeType(Collection<AttributeType> values) throws IllegalPropertyValueException;
090
091
092
093 /**
094 * Gets the "java-class" property.
095 * <p>
096 * Specifies the fully-qualified name of the Java class that
097 * provides the SMTP Account Status Notification Handler
098 * implementation.
099 *
100 * @return Returns the value of the "java-class" property.
101 */
102 String getJavaClass();
103
104
105
106 /**
107 * Sets the "java-class" property.
108 * <p>
109 * Specifies the fully-qualified name of the Java class that
110 * provides the SMTP Account Status Notification Handler
111 * implementation.
112 *
113 * @param value The value of the "java-class" property.
114 * @throws IllegalPropertyValueException
115 * If the new value is invalid.
116 */
117 void setJavaClass(String value) throws IllegalPropertyValueException;
118
119
120
121 /**
122 * Gets the "message-subject" property.
123 * <p>
124 * Specifies the subject that should be used for email messages
125 * generated by this account status notification handler.
126 * <p>
127 * The values for this property should begin with the name of an
128 * account status notification type followed by a colon and the
129 * subject that should be used for the associated notification
130 * message. If an email message is generated for an account status
131 * notification type for which no subject is defined, then that
132 * message is given a generic subject.
133 *
134 * @return Returns the values of the "message-subject" property.
135 */
136 SortedSet<String> getMessageSubject();
137
138
139
140 /**
141 * Sets the "message-subject" property.
142 * <p>
143 * Specifies the subject that should be used for email messages
144 * generated by this account status notification handler.
145 * <p>
146 * The values for this property should begin with the name of an
147 * account status notification type followed by a colon and the
148 * subject that should be used for the associated notification
149 * message. If an email message is generated for an account status
150 * notification type for which no subject is defined, then that
151 * message is given a generic subject.
152 *
153 * @param values The values of the "message-subject" property.
154 * @throws IllegalPropertyValueException
155 * If one or more of the new values are invalid.
156 */
157 void setMessageSubject(Collection<String> values) throws IllegalPropertyValueException;
158
159
160
161 /**
162 * Gets the "message-template-file" property.
163 * <p>
164 * Specifies the path to the file containing the message template to
165 * generate the email notification messages.
166 * <p>
167 * The values for this property should begin with the name of an
168 * account status notification type followed by a colon and the path
169 * to the template file that should be used for that notification
170 * type. If an account status notification has a notification type
171 * that is not associated with a message template file, then no email
172 * message is generated for that notification.
173 *
174 * @return Returns the values of the "message-template-file" property.
175 */
176 SortedSet<String> getMessageTemplateFile();
177
178
179
180 /**
181 * Sets the "message-template-file" property.
182 * <p>
183 * Specifies the path to the file containing the message template to
184 * generate the email notification messages.
185 * <p>
186 * The values for this property should begin with the name of an
187 * account status notification type followed by a colon and the path
188 * to the template file that should be used for that notification
189 * type. If an account status notification has a notification type
190 * that is not associated with a message template file, then no email
191 * message is generated for that notification.
192 *
193 * @param values The values of the "message-template-file" property.
194 * @throws IllegalPropertyValueException
195 * If one or more of the new values are invalid.
196 */
197 void setMessageTemplateFile(Collection<String> values) throws IllegalPropertyValueException;
198
199
200
201 /**
202 * Gets the "recipient-address" property.
203 * <p>
204 * Specifies an email address to which notification messages are
205 * sent, either instead of or in addition to the end user for whom
206 * the notification has been generated.
207 * <p>
208 * This may be used to ensure that server administrators also
209 * receive a copy of any notification messages that are generated.
210 *
211 * @return Returns the values of the "recipient-address" property.
212 */
213 SortedSet<String> getRecipientAddress();
214
215
216
217 /**
218 * Sets the "recipient-address" property.
219 * <p>
220 * Specifies an email address to which notification messages are
221 * sent, either instead of or in addition to the end user for whom
222 * the notification has been generated.
223 * <p>
224 * This may be used to ensure that server administrators also
225 * receive a copy of any notification messages that are generated.
226 *
227 * @param values The values of the "recipient-address" property.
228 * @throws IllegalPropertyValueException
229 * If one or more of the new values are invalid.
230 */
231 void setRecipientAddress(Collection<String> values) throws IllegalPropertyValueException;
232
233
234
235 /**
236 * Gets the "sender-address" property.
237 * <p>
238 * Specifies the email address from which the message is sent. Note
239 * that this does not necessarily have to be a legitimate email
240 * address.
241 *
242 * @return Returns the value of the "sender-address" property.
243 */
244 String getSenderAddress();
245
246
247
248 /**
249 * Sets the "sender-address" property.
250 * <p>
251 * Specifies the email address from which the message is sent. Note
252 * that this does not necessarily have to be a legitimate email
253 * address.
254 *
255 * @param value The value of the "sender-address" property.
256 * @throws IllegalPropertyValueException
257 * If the new value is invalid.
258 */
259 void setSenderAddress(String value) throws IllegalPropertyValueException;
260
261
262
263 /**
264 * Gets the "send-message-without-end-user-address" property.
265 * <p>
266 * Indicates whether an email notification message should be
267 * generated and sent to the set of notification recipients even if
268 * the user entry does not contain any values for any of the email
269 * address attributes (that is, in cases when it is not be possible
270 * to notify the end user).
271 * <p>
272 * This is only applicable if both one or more email address
273 * attribute types and one or more additional recipient addresses are
274 * specified.
275 *
276 * @return Returns the value of the "send-message-without-end-user-address" property.
277 */
278 boolean isSendMessageWithoutEndUserAddress();
279
280
281
282 /**
283 * Sets the "send-message-without-end-user-address" property.
284 * <p>
285 * Indicates whether an email notification message should be
286 * generated and sent to the set of notification recipients even if
287 * the user entry does not contain any values for any of the email
288 * address attributes (that is, in cases when it is not be possible
289 * to notify the end user).
290 * <p>
291 * This is only applicable if both one or more email address
292 * attribute types and one or more additional recipient addresses are
293 * specified.
294 *
295 * @param value The value of the "send-message-without-end-user-address" property.
296 * @throws IllegalPropertyValueException
297 * If the new value is invalid.
298 */
299 void setSendMessageWithoutEndUserAddress(boolean value) throws IllegalPropertyValueException;
300
301 }