001/*
002 * jPOS Project [http://jpos.org]
003 * Copyright (C) 2000-2026 jPOS Software SRL
004 *
005 * This program is free software: you can redistribute it and/or modify
006 * it under the terms of the GNU Affero General Public License as
007 * published by the Free Software Foundation, either version 3 of the
008 * License, or (at your option) any later version.
009 *
010 * This program is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
013 * GNU Affero General Public License for more details.
014 *
015 * You should have received a copy of the GNU Affero General Public License
016 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
017 */
018
019package org.jpos.log;
020
021import com.fasterxml.jackson.annotation.JsonSubTypes;
022import com.fasterxml.jackson.annotation.JsonTypeInfo;
023import org.jpos.log.evt.*;
024
025@JsonTypeInfo(
026  use = JsonTypeInfo.Id.NAME,
027  include = JsonTypeInfo.As.PROPERTY,
028  property = "t"
029)
030@JsonSubTypes({
031  @JsonSubTypes.Type(value = Warning.class, name = "warn"),
032  @JsonSubTypes.Type(value = Start.class, name = "start"),
033  @JsonSubTypes.Type(value = Stop.class, name = "stop"),
034  @JsonSubTypes.Type(value = Deploy.class, name = "deploy"),
035  @JsonSubTypes.Type(value = UnDeploy.class, name = "undeploy"),
036  @JsonSubTypes.Type(value = LogMessage.class, name = "msg"),
037  @JsonSubTypes.Type(value = Shutdown.class, name = "shutdown"),
038  @JsonSubTypes.Type(value = DeployActivity.class, name = "deploy-activity"),
039  @JsonSubTypes.Type(value = ThrowableAuditLogEvent.class, name = "throwable"),
040  @JsonSubTypes.Type(value = License.class, name = "license"),
041  @JsonSubTypes.Type(value = SysInfo.class, name = "sysinfo"),
042  @JsonSubTypes.Type(value = Connect.class, name = "connect"),
043  @JsonSubTypes.Type(value = Disconnect.class, name = "disconnect"),
044  @JsonSubTypes.Type(value = Listen.class, name = "listen"),
045  @JsonSubTypes.Type(value = SessionStart.class, name = "session-start"),
046  @JsonSubTypes.Type(value = SessionEnd.class, name = "session-end"),
047  @JsonSubTypes.Type(value = Txn.class, name = "txn")
048})
049
050public sealed interface AuditLogEvent permits Connect, Deploy, DeployActivity, Disconnect, License, Listen, LogMessage, SessionEnd, SessionStart, Shutdown, Start, Stop, SysInfo, ThrowableAuditLogEvent, Txn, UnDeploy, Warning { }