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