package com.sequenceiq.periscope.domain;
import javax.persistence.Column;
import javax.persistence.Convert;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import com.sequenceiq.periscope.api.model.AlertState;
import com.sequenceiq.periscope.model.json.Json;
import com.sequenceiq.periscope.model.json.JsonToString;
@Entity
@DiscriminatorValue("PROMETHEUS")
@NamedQueries({
@NamedQuery(name = "PrometheusAlert.findByCluster", query = "SELECT c FROM PrometheusAlert c WHERE c.cluster.id= :clusterId AND c.id= :alertId"),
@NamedQuery(name = "PrometheusAlert.findAllByCluster", query = "SELECT c FROM PrometheusAlert c WHERE c.cluster.id= :clusterId")
})
public class PrometheusAlert extends BaseAlert {
@ManyToOne
private Cluster cluster;
@Column(name = "alert_rule")
private String alertRule;
@Enumerated(EnumType.STRING)
@Column(name = "alert_state")
private AlertState alertState;
private int period;
@Convert(converter = JsonToString.class)
@Column(columnDefinition = "TEXT")
private Json parameters;
public Cluster getCluster() {
return cluster;
}
public void setCluster(Cluster cluster) {
this.cluster = cluster;
}
public String getAlertRule() {
return alertRule;
}
public void setAlertRule(String alertRule) {
this.alertRule = alertRule;
}
public AlertState getAlertState() {
return alertState;
}
public void setAlertState(AlertState alertState) {
this.alertState = alertState;
}
public int getPeriod() {
return period;
}
public void setPeriod(int period) {
this.period = period;
}
public Json getParameters() {
return parameters;
}
public void setParameters(Json parameters) {
this.parameters = parameters;
}
}