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.server;
017
018
019
020import java.util.SortedSet;
021import org.forgerock.opendj.config.server.ConfigurationChangeListener;
022import org.forgerock.opendj.ldap.DN;
023
024
025
026/**
027 * A server-side interface for querying Csv File Access Log Publisher
028 * settings.
029 * <p>
030 * Csv File Access Log Publishers publish access messages to CSV
031 * files.
032 */
033public interface CsvFileAccessLogPublisherCfg extends AccessLogPublisherCfg {
034
035  /**
036   * Gets the configuration class associated with this Csv File Access Log Publisher.
037   *
038   * @return Returns the configuration class associated with this Csv File Access Log Publisher.
039   */
040  Class<? extends CsvFileAccessLogPublisherCfg> configurationClass();
041
042
043
044  /**
045   * Register to be notified when this Csv File Access Log Publisher is changed.
046   *
047   * @param listener
048   *          The Csv File Access Log Publisher configuration change listener.
049   */
050  void addCsvFileAccessChangeListener(ConfigurationChangeListener<CsvFileAccessLogPublisherCfg> listener);
051
052
053
054  /**
055   * Deregister an existing Csv File Access Log Publisher configuration change listener.
056   *
057   * @param listener
058   *          The Csv File Access Log Publisher configuration change listener.
059   */
060  void removeCsvFileAccessChangeListener(ConfigurationChangeListener<CsvFileAccessLogPublisherCfg> listener);
061
062
063
064  /**
065   * Gets the "asynchronous" property.
066   * <p>
067   * Indicates whether the Csv File Access Log Publisher will publish
068   * records asynchronously.
069   *
070   * @return Returns the value of the "asynchronous" property.
071   */
072  boolean isAsynchronous();
073
074
075
076  /**
077   * Gets the "auto-flush" property.
078   * <p>
079   * Specifies whether to flush the writer after every log record.
080   * <p>
081   * If the asynchronous writes option is used, the writer is flushed
082   * after all the log records in the queue are written.
083   *
084   * @return Returns the value of the "auto-flush" property.
085   */
086  boolean isAutoFlush();
087
088
089
090  /**
091   * Gets the "csv-delimiter-char" property.
092   * <p>
093   * The delimiter character to use when writing in CSV format.
094   *
095   * @return Returns the value of the "csv-delimiter-char" property.
096   */
097  String getCsvDelimiterChar();
098
099
100
101  /**
102   * Gets the "csv-eol-symbols" property.
103   * <p>
104   * The string that marks the end of a line.
105   *
106   * @return Returns the value of the "csv-eol-symbols" property.
107   */
108  String getCsvEolSymbols();
109
110
111
112  /**
113   * Gets the "csv-quote-char" property.
114   * <p>
115   * The character to append and prepend to a CSV field when writing
116   * in CSV format.
117   *
118   * @return Returns the value of the "csv-quote-char" property.
119   */
120  String getCsvQuoteChar();
121
122
123
124  /**
125   * Gets the "java-class" property.
126   * <p>
127   * The fully-qualified name of the Java class that provides the Csv
128   * File Access Log Publisher implementation.
129   *
130   * @return Returns the value of the "java-class" property.
131   */
132  String getJavaClass();
133
134
135
136  /**
137   * Gets the "key-store-file" property.
138   * <p>
139   * Specifies the path to the file that contains the private key
140   * information. This may be an absolute path, or a path that is
141   * relative to the OpenDJ instance root.
142   * <p>
143   * Changes to this property will take effect the next time that the
144   * key store is accessed.
145   *
146   * @return Returns the value of the "key-store-file" property.
147   */
148  String getKeyStoreFile();
149
150
151
152  /**
153   * Gets the "key-store-pin-file" property.
154   * <p>
155   * Specifies the path to the text file whose only contents should be
156   * a single line containing the clear-text PIN needed to access the
157   * Csv File Access Log Publisher .
158   *
159   * @return Returns the value of the "key-store-pin-file" property.
160   */
161  String getKeyStorePinFile();
162
163
164
165  /**
166   * Gets the "log-control-oids" property.
167   * <p>
168   * Specifies whether control OIDs will be included in operation log
169   * records.
170   *
171   * @return Returns the value of the "log-control-oids" property.
172   */
173  boolean isLogControlOids();
174
175
176
177  /**
178   * Gets the "log-directory" property.
179   * <p>
180   * The directory to use for the log files generated by the Csv File
181   * Access Log Publisher. The path to the directory is relative to the
182   * server root.
183   *
184   * @return Returns the value of the "log-directory" property.
185   */
186  String getLogDirectory();
187
188
189
190  /**
191   * Gets the "retention-policy" property.
192   * <p>
193   * The retention policy to use for the Csv File Access Log Publisher
194   * .
195   * <p>
196   * When multiple policies are used, log files are cleaned when any
197   * of the policy's conditions are met.
198   *
199   * @return Returns an unmodifiable set containing the values of the "retention-policy" property.
200   */
201  SortedSet<String> getRetentionPolicy();
202
203
204
205  /**
206   * Gets the "retention-policy" property as a set of DNs.
207   * <p>
208   * The retention policy to use for the Csv File Access Log Publisher
209   * .
210   * <p>
211   * When multiple policies are used, log files are cleaned when any
212   * of the policy's conditions are met.
213   *
214   * @return Returns the DN values of the "retention-policy" property.
215   */
216  SortedSet<DN> getRetentionPolicyDNs();
217
218
219
220  /**
221   * Gets the "rotation-policy" property.
222   * <p>
223   * The rotation policy to use for the Csv File Access Log Publisher
224   * .
225   * <p>
226   * When multiple policies are used, rotation will occur if any
227   * policy's conditions are met.
228   *
229   * @return Returns an unmodifiable set containing the values of the "rotation-policy" property.
230   */
231  SortedSet<String> getRotationPolicy();
232
233
234
235  /**
236   * Gets the "rotation-policy" property as a set of DNs.
237   * <p>
238   * The rotation policy to use for the Csv File Access Log Publisher
239   * .
240   * <p>
241   * When multiple policies are used, rotation will occur if any
242   * policy's conditions are met.
243   *
244   * @return Returns the DN values of the "rotation-policy" property.
245   */
246  SortedSet<DN> getRotationPolicyDNs();
247
248
249
250  /**
251   * Gets the "signature-time-interval" property.
252   * <p>
253   * Specifies the interval at which to sign the log file when the
254   * tamper-evident option is enabled.
255   *
256   * @return Returns the value of the "signature-time-interval" property.
257   */
258  long getSignatureTimeInterval();
259
260
261
262  /**
263   * Gets the "tamper-evident" property.
264   * <p>
265   * Specifies whether the log should be signed in order to detect
266   * tampering.
267   * <p>
268   * Every log record will be signed, making it possible to verify
269   * that the log has not been tampered with. This feature has a
270   * significative impact on performance of the server.
271   *
272   * @return Returns the value of the "tamper-evident" property.
273   */
274  boolean isTamperEvident();
275
276}