package alien4cloud.audit.model; import java.util.Map; import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.elasticsearch.annotation.DateField; import org.elasticsearch.annotation.ESObject; import org.elasticsearch.annotation.StringField; import org.elasticsearch.annotation.query.TermFilter; import org.elasticsearch.annotation.query.TermsFacet; import org.elasticsearch.mapping.IndexType; @Getter @Setter @ToString @ESObject public class AuditTrace { @DateField private long timestamp; @TermFilter @StringField(indexType = IndexType.not_analyzed) @TermsFacet private String category; @TermFilter @StringField(indexType = IndexType.not_analyzed) @TermsFacet private String action; @StringField(indexType = IndexType.analyzed) private String actionDescription; @TermFilter @StringField(indexType = IndexType.not_analyzed) private String userName; @TermFilter @StringField(indexType = IndexType.not_analyzed) private String userEmail; @TermFilter @StringField(indexType = IndexType.not_analyzed) private String userFirstName; @TermFilter @StringField(indexType = IndexType.not_analyzed) private String userLastName; @TermFilter @StringField(indexType = IndexType.not_analyzed) private String path; @TermFilter @StringField(indexType = IndexType.not_analyzed) @TermsFacet private String method; @TermFilter @StringField(indexType = IndexType.analyzed) private Map<String, String[]> requestParameters; @StringField(indexType = IndexType.analyzed) private String requestBody; @TermFilter @StringField(indexType = IndexType.not_analyzed) @TermsFacet private int responseStatus; @TermFilter @StringField(indexType = IndexType.not_analyzed) private String sourceIp; /** * The API version. */ @TermFilter @StringField(indexType = IndexType.not_analyzed) @TermsFacet private String version; /** * The client user agent. */ @TermFilter @StringField(indexType = IndexType.not_analyzed) private String userAgent; /** * Indicates if the request has been initiated by A4C UI. */ @TermFilter @StringField(indexType = IndexType.not_analyzed) @TermsFacet private Boolean alien4CloudUI; }