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.server.CsvFileAccessLogPublisherCfg;
035
036
037
038/**
039 * A client-side interface for reading and modifying Csv File Access
040 * Log Publisher settings.
041 * <p>
042 * Csv File Access Log Publishers publish access messages to CSV
043 * files.
044 */
045public interface CsvFileAccessLogPublisherCfgClient extends AccessLogPublisherCfgClient {
046
047  /**
048   * Get the configuration definition associated with this Csv File Access Log Publisher.
049   *
050   * @return Returns the configuration definition associated with this Csv File Access Log Publisher.
051   */
052  ManagedObjectDefinition<? extends CsvFileAccessLogPublisherCfgClient, ? extends CsvFileAccessLogPublisherCfg> definition();
053
054
055
056  /**
057   * Gets the "asynchronous" property.
058   * <p>
059   * Indicates whether the Csv File Access Log Publisher will publish
060   * records asynchronously.
061   *
062   * @return Returns the value of the "asynchronous" property.
063   */
064  boolean isAsynchronous();
065
066
067
068  /**
069   * Sets the "asynchronous" property.
070   * <p>
071   * Indicates whether the Csv File Access Log Publisher will publish
072   * records asynchronously.
073   *
074   * @param value The value of the "asynchronous" property.
075   * @throws PropertyException
076   *           If the new value is invalid.
077   */
078  void setAsynchronous(boolean value) throws PropertyException;
079
080
081
082  /**
083   * Gets the "auto-flush" property.
084   * <p>
085   * Specifies whether to flush the writer after every log record.
086   * <p>
087   * If the asynchronous writes option is used, the writer is flushed
088   * after all the log records in the queue are written.
089   *
090   * @return Returns the value of the "auto-flush" property.
091   */
092  boolean isAutoFlush();
093
094
095
096  /**
097   * Sets the "auto-flush" property.
098   * <p>
099   * Specifies whether to flush the writer after every log record.
100   * <p>
101   * If the asynchronous writes option is used, the writer is flushed
102   * after all the log records in the queue are written.
103   *
104   * @param value The value of the "auto-flush" property.
105   * @throws PropertyException
106   *           If the new value is invalid.
107   */
108  void setAutoFlush(Boolean value) throws PropertyException;
109
110
111
112  /**
113   * Gets the "csv-delimiter-char" property.
114   * <p>
115   * The delimiter character to use when writing in CSV format.
116   *
117   * @return Returns the value of the "csv-delimiter-char" property.
118   */
119  String getCsvDelimiterChar();
120
121
122
123  /**
124   * Sets the "csv-delimiter-char" property.
125   * <p>
126   * The delimiter character to use when writing in CSV format.
127   *
128   * @param value The value of the "csv-delimiter-char" property.
129   * @throws PropertyException
130   *           If the new value is invalid.
131   */
132  void setCsvDelimiterChar(String value) throws PropertyException;
133
134
135
136  /**
137   * Gets the "csv-eol-symbols" property.
138   * <p>
139   * The string that marks the end of a line.
140   *
141   * @return Returns the value of the "csv-eol-symbols" property.
142   */
143  String getCsvEolSymbols();
144
145
146
147  /**
148   * Sets the "csv-eol-symbols" property.
149   * <p>
150   * The string that marks the end of a line.
151   *
152   * @param value The value of the "csv-eol-symbols" property.
153   * @throws PropertyException
154   *           If the new value is invalid.
155   */
156  void setCsvEolSymbols(String value) throws PropertyException;
157
158
159
160  /**
161   * Gets the "csv-quote-char" property.
162   * <p>
163   * The character to append and prepend to a CSV field when writing
164   * in CSV format.
165   *
166   * @return Returns the value of the "csv-quote-char" property.
167   */
168  String getCsvQuoteChar();
169
170
171
172  /**
173   * Sets the "csv-quote-char" property.
174   * <p>
175   * The character to append and prepend to a CSV field when writing
176   * in CSV format.
177   *
178   * @param value The value of the "csv-quote-char" property.
179   * @throws PropertyException
180   *           If the new value is invalid.
181   */
182  void setCsvQuoteChar(String value) throws PropertyException;
183
184
185
186  /**
187   * Gets the "java-class" property.
188   * <p>
189   * The fully-qualified name of the Java class that provides the Csv
190   * File Access Log Publisher implementation.
191   *
192   * @return Returns the value of the "java-class" property.
193   */
194  String getJavaClass();
195
196
197
198  /**
199   * Sets the "java-class" property.
200   * <p>
201   * The fully-qualified name of the Java class that provides the Csv
202   * File Access Log Publisher implementation.
203   *
204   * @param value The value of the "java-class" property.
205   * @throws PropertyException
206   *           If the new value is invalid.
207   */
208  void setJavaClass(String value) throws PropertyException;
209
210
211
212  /**
213   * Gets the "key-store-file" property.
214   * <p>
215   * Specifies the path to the file that contains the private key
216   * information. This may be an absolute path, or a path that is
217   * relative to the OpenDJ instance root.
218   * <p>
219   * Changes to this property will take effect the next time that the
220   * key store is accessed.
221   *
222   * @return Returns the value of the "key-store-file" property.
223   */
224  String getKeyStoreFile();
225
226
227
228  /**
229   * Sets the "key-store-file" property.
230   * <p>
231   * Specifies the path to the file that contains the private key
232   * information. This may be an absolute path, or a path that is
233   * relative to the OpenDJ instance root.
234   * <p>
235   * Changes to this property will take effect the next time that the
236   * key store is accessed.
237   *
238   * @param value The value of the "key-store-file" property.
239   * @throws PropertyException
240   *           If the new value is invalid.
241   */
242  void setKeyStoreFile(String value) throws PropertyException;
243
244
245
246  /**
247   * Gets the "key-store-pin-file" property.
248   * <p>
249   * Specifies the path to the text file whose only contents should be
250   * a single line containing the clear-text PIN needed to access the
251   * Csv File Access Log Publisher .
252   *
253   * @return Returns the value of the "key-store-pin-file" property.
254   */
255  String getKeyStorePinFile();
256
257
258
259  /**
260   * Sets the "key-store-pin-file" property.
261   * <p>
262   * Specifies the path to the text file whose only contents should be
263   * a single line containing the clear-text PIN needed to access the
264   * Csv File Access Log Publisher .
265   *
266   * @param value The value of the "key-store-pin-file" property.
267   * @throws PropertyException
268   *           If the new value is invalid.
269   */
270  void setKeyStorePinFile(String value) throws PropertyException;
271
272
273
274  /**
275   * Gets the "log-control-oids" property.
276   * <p>
277   * Specifies whether control OIDs will be included in operation log
278   * records.
279   *
280   * @return Returns the value of the "log-control-oids" property.
281   */
282  boolean isLogControlOids();
283
284
285
286  /**
287   * Sets the "log-control-oids" property.
288   * <p>
289   * Specifies whether control OIDs will be included in operation log
290   * records.
291   *
292   * @param value The value of the "log-control-oids" property.
293   * @throws PropertyException
294   *           If the new value is invalid.
295   */
296  void setLogControlOids(Boolean value) throws PropertyException;
297
298
299
300  /**
301   * Gets the "log-directory" property.
302   * <p>
303   * The directory to use for the log files generated by the Csv File
304   * Access Log Publisher. The path to the directory is relative to the
305   * server root.
306   *
307   * @return Returns the value of the "log-directory" property.
308   */
309  String getLogDirectory();
310
311
312
313  /**
314   * Sets the "log-directory" property.
315   * <p>
316   * The directory to use for the log files generated by the Csv File
317   * Access Log Publisher. The path to the directory is relative to the
318   * server root.
319   *
320   * @param value The value of the "log-directory" property.
321   * @throws PropertyException
322   *           If the new value is invalid.
323   */
324  void setLogDirectory(String value) throws PropertyException;
325
326
327
328  /**
329   * Gets the "retention-policy" property.
330   * <p>
331   * The retention policy to use for the Csv File Access Log Publisher
332   * .
333   * <p>
334   * When multiple policies are used, log files are cleaned when any
335   * of the policy's conditions are met.
336   *
337   * @return Returns the values of the "retention-policy" property.
338   */
339  SortedSet<String> getRetentionPolicy();
340
341
342
343  /**
344   * Sets the "retention-policy" property.
345   * <p>
346   * The retention policy to use for the Csv File Access Log Publisher
347   * .
348   * <p>
349   * When multiple policies are used, log files are cleaned when any
350   * of the policy's conditions are met.
351   *
352   * @param values The values of the "retention-policy" property.
353   * @throws PropertyException
354   *           If one or more of the new values are invalid.
355   */
356  void setRetentionPolicy(Collection<String> values) throws PropertyException;
357
358
359
360  /**
361   * Gets the "rotation-policy" property.
362   * <p>
363   * The rotation policy to use for the Csv File Access Log Publisher
364   * .
365   * <p>
366   * When multiple policies are used, rotation will occur if any
367   * policy's conditions are met.
368   *
369   * @return Returns the values of the "rotation-policy" property.
370   */
371  SortedSet<String> getRotationPolicy();
372
373
374
375  /**
376   * Sets the "rotation-policy" property.
377   * <p>
378   * The rotation policy to use for the Csv File Access Log Publisher
379   * .
380   * <p>
381   * When multiple policies are used, rotation will occur if any
382   * policy's conditions are met.
383   *
384   * @param values The values of the "rotation-policy" property.
385   * @throws PropertyException
386   *           If one or more of the new values are invalid.
387   */
388  void setRotationPolicy(Collection<String> values) throws PropertyException;
389
390
391
392  /**
393   * Gets the "signature-time-interval" property.
394   * <p>
395   * Specifies the interval at which to sign the log file when the
396   * tamper-evident option is enabled.
397   *
398   * @return Returns the value of the "signature-time-interval" property.
399   */
400  long getSignatureTimeInterval();
401
402
403
404  /**
405   * Sets the "signature-time-interval" property.
406   * <p>
407   * Specifies the interval at which to sign the log file when the
408   * tamper-evident option is enabled.
409   *
410   * @param value The value of the "signature-time-interval" property.
411   * @throws PropertyException
412   *           If the new value is invalid.
413   */
414  void setSignatureTimeInterval(Long value) throws PropertyException;
415
416
417
418  /**
419   * Gets the "tamper-evident" property.
420   * <p>
421   * Specifies whether the log should be signed in order to detect
422   * tampering.
423   * <p>
424   * Every log record will be signed, making it possible to verify
425   * that the log has not been tampered with. This feature has a
426   * significative impact on performance of the server.
427   *
428   * @return Returns the value of the "tamper-evident" property.
429   */
430  boolean isTamperEvident();
431
432
433
434  /**
435   * Sets the "tamper-evident" property.
436   * <p>
437   * Specifies whether the log should be signed in order to detect
438   * tampering.
439   * <p>
440   * Every log record will be signed, making it possible to verify
441   * that the log has not been tampered with. This feature has a
442   * significative impact on performance of the server.
443   *
444   * @param value The value of the "tamper-evident" property.
445   * @throws PropertyException
446   *           If the new value is invalid.
447   */
448  void setTamperEvident(Boolean value) throws PropertyException;
449
450}