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}