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.CsvFileHTTPAccessLogPublisherCfg;
035
036
037
038/**
039 * A client-side interface for reading and modifying Csv File HTTP
040 * Access Log Publisher settings.
041 * <p>
042 * Csv File HTTP Access Log Publishers publish HTTP access messages to
043 * CSV files.
044 */
045public interface CsvFileHTTPAccessLogPublisherCfgClient extends HTTPAccessLogPublisherCfgClient {
046
047  /**
048   * Get the configuration definition associated with this Csv File HTTP Access Log Publisher.
049   *
050   * @return Returns the configuration definition associated with this Csv File HTTP Access Log Publisher.
051   */
052  ManagedObjectDefinition<? extends CsvFileHTTPAccessLogPublisherCfgClient, ? extends CsvFileHTTPAccessLogPublisherCfg> definition();
053
054
055
056  /**
057   * Gets the "asynchronous" property.
058   * <p>
059   * Indicates whether the Csv File HTTP Access Log Publisher will
060   * publish 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 HTTP Access Log Publisher will
072   * publish 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 HTTP 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 HTTP 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 HTTP 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 HTTP 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-directory" property.
276   * <p>
277   * The directory to use for the log files generated by the Csv File
278   * HTTP Access Log Publisher. The path to the directory is relative
279   * to the server root.
280   *
281   * @return Returns the value of the "log-directory" property.
282   */
283  String getLogDirectory();
284
285
286
287  /**
288   * Sets the "log-directory" property.
289   * <p>
290   * The directory to use for the log files generated by the Csv File
291   * HTTP Access Log Publisher. The path to the directory is relative
292   * to the server root.
293   *
294   * @param value The value of the "log-directory" property.
295   * @throws PropertyException
296   *           If the new value is invalid.
297   */
298  void setLogDirectory(String value) throws PropertyException;
299
300
301
302  /**
303   * Gets the "retention-policy" property.
304   * <p>
305   * The retention policy to use for the Csv File HTTP Access Log
306   * Publisher .
307   * <p>
308   * When multiple policies are used, log files are cleaned when any
309   * of the policy's conditions are met.
310   *
311   * @return Returns the values of the "retention-policy" property.
312   */
313  SortedSet<String> getRetentionPolicy();
314
315
316
317  /**
318   * Sets the "retention-policy" property.
319   * <p>
320   * The retention policy to use for the Csv File HTTP Access Log
321   * Publisher .
322   * <p>
323   * When multiple policies are used, log files are cleaned when any
324   * of the policy's conditions are met.
325   *
326   * @param values The values of the "retention-policy" property.
327   * @throws PropertyException
328   *           If one or more of the new values are invalid.
329   */
330  void setRetentionPolicy(Collection<String> values) throws PropertyException;
331
332
333
334  /**
335   * Gets the "rotation-policy" property.
336   * <p>
337   * The rotation policy to use for the Csv File HTTP Access Log
338   * Publisher .
339   * <p>
340   * When multiple policies are used, rotation will occur if any
341   * policy's conditions are met.
342   *
343   * @return Returns the values of the "rotation-policy" property.
344   */
345  SortedSet<String> getRotationPolicy();
346
347
348
349  /**
350   * Sets the "rotation-policy" property.
351   * <p>
352   * The rotation policy to use for the Csv File HTTP Access Log
353   * Publisher .
354   * <p>
355   * When multiple policies are used, rotation will occur if any
356   * policy's conditions are met.
357   *
358   * @param values The values of the "rotation-policy" property.
359   * @throws PropertyException
360   *           If one or more of the new values are invalid.
361   */
362  void setRotationPolicy(Collection<String> values) throws PropertyException;
363
364
365
366  /**
367   * Gets the "signature-time-interval" property.
368   * <p>
369   * Specifies the interval at which to sign the log file when secure
370   * option is enabled.
371   *
372   * @return Returns the value of the "signature-time-interval" property.
373   */
374  long getSignatureTimeInterval();
375
376
377
378  /**
379   * Sets the "signature-time-interval" property.
380   * <p>
381   * Specifies the interval at which to sign the log file when secure
382   * option is enabled.
383   *
384   * @param value The value of the "signature-time-interval" property.
385   * @throws PropertyException
386   *           If the new value is invalid.
387   */
388  void setSignatureTimeInterval(Long value) throws PropertyException;
389
390
391
392  /**
393   * Gets the "tamper-evident" property.
394   * <p>
395   * Specifies whether the log should be signed in order to detect
396   * tampering.
397   * <p>
398   * Every log record will be signed, making it possible to verify
399   * that the log has not been tampered with. This feature has a
400   * significative impact on performance of the server.
401   *
402   * @return Returns the value of the "tamper-evident" property.
403   */
404  boolean isTamperEvident();
405
406
407
408  /**
409   * Sets 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   * @param value The value of the "tamper-evident" property.
419   * @throws PropertyException
420   *           If the new value is invalid.
421   */
422  void setTamperEvident(Boolean value) throws PropertyException;
423
424}