package com.netflix.priam.dse; import java.util.Set; /** * Datastax Enterprise-specific properties. * * @author jason brown */ public interface IDseConfiguration { /** * Using Datastax's terms here for the different types of nodes. */ public enum NodeType { /** vanilla Cassandra node */ REAL_TIME_QUERY("cassandra"), /** Hadoop node */ ANALYTIC("hadoop"), /** Solr node */ SEARCH("solr"); private final String altName; private NodeType(String altName) { this.altName = altName; } public static NodeType getByAltName(String altName) { for(NodeType nt : NodeType.values()) { if(nt.altName.toLowerCase().equals(altName)) return nt; } throw new IllegalArgumentException("Unknown node type: " + altName); } }; String getDseYamlLocation(); String getDseDelegatingSnitch(); NodeType getNodeType(); /* audit log configuration */ boolean isAuditLogEnabled(); /** @return comma-delimited list of keyspace names */ String getAuditLogExemptKeyspaces(); /** * DSE-defined audit logging categories * http://www.datastax.com/docs/datastax_enterprise3.1/security/data_auditing#data-auditing */ public enum AuditLogCategory { ADMIN, ALL, AUTH, DML, DDL, DCL, QUERY }; Set<AuditLogCategory> getAuditLogCategories(); }