diff --git a/ab2d-events-client/src/main/java/gov/cms/ab2d/eventclient/events/LoggableEvent.java b/ab2d-events-client/src/main/java/gov/cms/ab2d/eventclient/events/LoggableEvent.java index bc883b8..9349587 100644 --- a/ab2d-events-client/src/main/java/gov/cms/ab2d/eventclient/events/LoggableEvent.java +++ b/ab2d-events-client/src/main/java/gov/cms/ab2d/eventclient/events/LoggableEvent.java @@ -1,5 +1,6 @@ package gov.cms.ab2d.eventclient.events; +import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import gov.cms.ab2d.eventclient.config.Ab2dEnvironment; import java.time.OffsetDateTime; @@ -10,7 +11,23 @@ * Interface describing a loggable event */ @Data -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.WRAPPER_ARRAY +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = ApiRequestEvent.class, name = "ApiRequestEvent"), + @JsonSubTypes.Type(value = ApiResponseEvent.class, name = "ApiResponseEvent"), + @JsonSubTypes.Type(value = BeneficiarySearchEvent.class, name = "BeneficiarySearchEvent"), + @JsonSubTypes.Type(value = ContractSearchEvent.class, name = "ContractSearchEvent"), + @JsonSubTypes.Type(value = ErrorEvent.class, name = "ErrorEvent"), + @JsonSubTypes.Type(value = FileEvent.class, name = "FileEvent"), + @JsonSubTypes.Type(value = JobStatusChangeEvent.class, name = "JobStatusChangeEvent"), + @JsonSubTypes.Type(value = JobSummaryEvent.class, name = "JobSummaryEvent"), + @JsonSubTypes.Type(value = MetricsEvent.class, name = "MetricsEvent"), + @JsonSubTypes.Type(value = ReloadEvent.class, name = "ReloadEvent"), + @JsonSubTypes.Type(value = SlackEvents.class, name = "SlackEvents"), +}) public abstract class LoggableEvent { protected LoggableEvent() { } diff --git a/ab2d-events-client/src/main/java/gov/cms/ab2d/eventclient/messages/SQSMessages.java b/ab2d-events-client/src/main/java/gov/cms/ab2d/eventclient/messages/SQSMessages.java index 5305394..4e66327 100644 --- a/ab2d-events-client/src/main/java/gov/cms/ab2d/eventclient/messages/SQSMessages.java +++ b/ab2d-events-client/src/main/java/gov/cms/ab2d/eventclient/messages/SQSMessages.java @@ -1,5 +1,6 @@ package gov.cms.ab2d.eventclient.messages; +import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import lombok.*; import lombok.extern.slf4j.Slf4j; @@ -7,7 +8,20 @@ @Slf4j @Data -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.WRAPPER_ARRAY +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = AlertSQSMessage.class, name = "AlertSQSMessage"), + @JsonSubTypes.Type(value = GeneralSQSMessage.class, name = "GeneralSQSMessage"), + @JsonSubTypes.Type(value = KinesisSQSMessage.class, name = "KinesisSQSMessage"), + @JsonSubTypes.Type(value = LogAndTraceSQSMessage.class, name = "LogAndTraceSQSMessage"), + @JsonSubTypes.Type(value = SlackSQSMessage.class, name = "SlackSQSMessage"), + @JsonSubTypes.Type(value = TraceAndAlertSQSMessage.class, name = "TraceAndAlertSQSMessage"), + @JsonSubTypes.Type(value = TraceSQSMessage.class, name = "TraceSQSMessage") +}) public abstract class SQSMessages { protected SQSMessages() { } }