crowdsec/pkg/database/ent/alert.go

444 lines
16 KiB
Go

// Code generated by ent, DO NOT EDIT.
package ent
import (
"fmt"
"strings"
"time"
"entgo.io/ent/dialect/sql"
"github.com/crowdsecurity/crowdsec/pkg/database/ent/alert"
"github.com/crowdsecurity/crowdsec/pkg/database/ent/machine"
)
// Alert is the model entity for the Alert schema.
type Alert struct {
config `json:"-"`
// ID of the ent.
ID int `json:"id,omitempty"`
// CreatedAt holds the value of the "created_at" field.
CreatedAt *time.Time `json:"created_at,omitempty"`
// UpdatedAt holds the value of the "updated_at" field.
UpdatedAt *time.Time `json:"updated_at,omitempty"`
// Scenario holds the value of the "scenario" field.
Scenario string `json:"scenario,omitempty"`
// BucketId holds the value of the "bucketId" field.
BucketId string `json:"bucketId,omitempty"`
// Message holds the value of the "message" field.
Message string `json:"message,omitempty"`
// EventsCount holds the value of the "eventsCount" field.
EventsCount int32 `json:"eventsCount,omitempty"`
// StartedAt holds the value of the "startedAt" field.
StartedAt time.Time `json:"startedAt,omitempty"`
// StoppedAt holds the value of the "stoppedAt" field.
StoppedAt time.Time `json:"stoppedAt,omitempty"`
// SourceIp holds the value of the "sourceIp" field.
SourceIp string `json:"sourceIp,omitempty"`
// SourceRange holds the value of the "sourceRange" field.
SourceRange string `json:"sourceRange,omitempty"`
// SourceAsNumber holds the value of the "sourceAsNumber" field.
SourceAsNumber string `json:"sourceAsNumber,omitempty"`
// SourceAsName holds the value of the "sourceAsName" field.
SourceAsName string `json:"sourceAsName,omitempty"`
// SourceCountry holds the value of the "sourceCountry" field.
SourceCountry string `json:"sourceCountry,omitempty"`
// SourceLatitude holds the value of the "sourceLatitude" field.
SourceLatitude float32 `json:"sourceLatitude,omitempty"`
// SourceLongitude holds the value of the "sourceLongitude" field.
SourceLongitude float32 `json:"sourceLongitude,omitempty"`
// SourceScope holds the value of the "sourceScope" field.
SourceScope string `json:"sourceScope,omitempty"`
// SourceValue holds the value of the "sourceValue" field.
SourceValue string `json:"sourceValue,omitempty"`
// Capacity holds the value of the "capacity" field.
Capacity int32 `json:"capacity,omitempty"`
// LeakSpeed holds the value of the "leakSpeed" field.
LeakSpeed string `json:"leakSpeed,omitempty"`
// ScenarioVersion holds the value of the "scenarioVersion" field.
ScenarioVersion string `json:"scenarioVersion,omitempty"`
// ScenarioHash holds the value of the "scenarioHash" field.
ScenarioHash string `json:"scenarioHash,omitempty"`
// Simulated holds the value of the "simulated" field.
Simulated bool `json:"simulated,omitempty"`
// UUID holds the value of the "uuid" field.
UUID string `json:"uuid,omitempty"`
// Edges holds the relations/edges for other nodes in the graph.
// The values are being populated by the AlertQuery when eager-loading is set.
Edges AlertEdges `json:"edges"`
machine_alerts *int
}
// AlertEdges holds the relations/edges for other nodes in the graph.
type AlertEdges struct {
// Owner holds the value of the owner edge.
Owner *Machine `json:"owner,omitempty"`
// Decisions holds the value of the decisions edge.
Decisions []*Decision `json:"decisions,omitempty"`
// Events holds the value of the events edge.
Events []*Event `json:"events,omitempty"`
// Metas holds the value of the metas edge.
Metas []*Meta `json:"metas,omitempty"`
// loadedTypes holds the information for reporting if a
// type was loaded (or requested) in eager-loading or not.
loadedTypes [4]bool
}
// OwnerOrErr returns the Owner value or an error if the edge
// was not loaded in eager-loading, or loaded but was not found.
func (e AlertEdges) OwnerOrErr() (*Machine, error) {
if e.loadedTypes[0] {
if e.Owner == nil {
// Edge was loaded but was not found.
return nil, &NotFoundError{label: machine.Label}
}
return e.Owner, nil
}
return nil, &NotLoadedError{edge: "owner"}
}
// DecisionsOrErr returns the Decisions value or an error if the edge
// was not loaded in eager-loading.
func (e AlertEdges) DecisionsOrErr() ([]*Decision, error) {
if e.loadedTypes[1] {
return e.Decisions, nil
}
return nil, &NotLoadedError{edge: "decisions"}
}
// EventsOrErr returns the Events value or an error if the edge
// was not loaded in eager-loading.
func (e AlertEdges) EventsOrErr() ([]*Event, error) {
if e.loadedTypes[2] {
return e.Events, nil
}
return nil, &NotLoadedError{edge: "events"}
}
// MetasOrErr returns the Metas value or an error if the edge
// was not loaded in eager-loading.
func (e AlertEdges) MetasOrErr() ([]*Meta, error) {
if e.loadedTypes[3] {
return e.Metas, nil
}
return nil, &NotLoadedError{edge: "metas"}
}
// scanValues returns the types for scanning values from sql.Rows.
func (*Alert) scanValues(columns []string) ([]any, error) {
values := make([]any, len(columns))
for i := range columns {
switch columns[i] {
case alert.FieldSimulated:
values[i] = new(sql.NullBool)
case alert.FieldSourceLatitude, alert.FieldSourceLongitude:
values[i] = new(sql.NullFloat64)
case alert.FieldID, alert.FieldEventsCount, alert.FieldCapacity:
values[i] = new(sql.NullInt64)
case alert.FieldScenario, alert.FieldBucketId, alert.FieldMessage, alert.FieldSourceIp, alert.FieldSourceRange, alert.FieldSourceAsNumber, alert.FieldSourceAsName, alert.FieldSourceCountry, alert.FieldSourceScope, alert.FieldSourceValue, alert.FieldLeakSpeed, alert.FieldScenarioVersion, alert.FieldScenarioHash, alert.FieldUUID:
values[i] = new(sql.NullString)
case alert.FieldCreatedAt, alert.FieldUpdatedAt, alert.FieldStartedAt, alert.FieldStoppedAt:
values[i] = new(sql.NullTime)
case alert.ForeignKeys[0]: // machine_alerts
values[i] = new(sql.NullInt64)
default:
return nil, fmt.Errorf("unexpected column %q for type Alert", columns[i])
}
}
return values, nil
}
// assignValues assigns the values that were returned from sql.Rows (after scanning)
// to the Alert fields.
func (a *Alert) assignValues(columns []string, values []any) error {
if m, n := len(values), len(columns); m < n {
return fmt.Errorf("mismatch number of scan values: %d != %d", m, n)
}
for i := range columns {
switch columns[i] {
case alert.FieldID:
value, ok := values[i].(*sql.NullInt64)
if !ok {
return fmt.Errorf("unexpected type %T for field id", value)
}
a.ID = int(value.Int64)
case alert.FieldCreatedAt:
if value, ok := values[i].(*sql.NullTime); !ok {
return fmt.Errorf("unexpected type %T for field created_at", values[i])
} else if value.Valid {
a.CreatedAt = new(time.Time)
*a.CreatedAt = value.Time
}
case alert.FieldUpdatedAt:
if value, ok := values[i].(*sql.NullTime); !ok {
return fmt.Errorf("unexpected type %T for field updated_at", values[i])
} else if value.Valid {
a.UpdatedAt = new(time.Time)
*a.UpdatedAt = value.Time
}
case alert.FieldScenario:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field scenario", values[i])
} else if value.Valid {
a.Scenario = value.String
}
case alert.FieldBucketId:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field bucketId", values[i])
} else if value.Valid {
a.BucketId = value.String
}
case alert.FieldMessage:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field message", values[i])
} else if value.Valid {
a.Message = value.String
}
case alert.FieldEventsCount:
if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for field eventsCount", values[i])
} else if value.Valid {
a.EventsCount = int32(value.Int64)
}
case alert.FieldStartedAt:
if value, ok := values[i].(*sql.NullTime); !ok {
return fmt.Errorf("unexpected type %T for field startedAt", values[i])
} else if value.Valid {
a.StartedAt = value.Time
}
case alert.FieldStoppedAt:
if value, ok := values[i].(*sql.NullTime); !ok {
return fmt.Errorf("unexpected type %T for field stoppedAt", values[i])
} else if value.Valid {
a.StoppedAt = value.Time
}
case alert.FieldSourceIp:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field sourceIp", values[i])
} else if value.Valid {
a.SourceIp = value.String
}
case alert.FieldSourceRange:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field sourceRange", values[i])
} else if value.Valid {
a.SourceRange = value.String
}
case alert.FieldSourceAsNumber:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field sourceAsNumber", values[i])
} else if value.Valid {
a.SourceAsNumber = value.String
}
case alert.FieldSourceAsName:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field sourceAsName", values[i])
} else if value.Valid {
a.SourceAsName = value.String
}
case alert.FieldSourceCountry:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field sourceCountry", values[i])
} else if value.Valid {
a.SourceCountry = value.String
}
case alert.FieldSourceLatitude:
if value, ok := values[i].(*sql.NullFloat64); !ok {
return fmt.Errorf("unexpected type %T for field sourceLatitude", values[i])
} else if value.Valid {
a.SourceLatitude = float32(value.Float64)
}
case alert.FieldSourceLongitude:
if value, ok := values[i].(*sql.NullFloat64); !ok {
return fmt.Errorf("unexpected type %T for field sourceLongitude", values[i])
} else if value.Valid {
a.SourceLongitude = float32(value.Float64)
}
case alert.FieldSourceScope:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field sourceScope", values[i])
} else if value.Valid {
a.SourceScope = value.String
}
case alert.FieldSourceValue:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field sourceValue", values[i])
} else if value.Valid {
a.SourceValue = value.String
}
case alert.FieldCapacity:
if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for field capacity", values[i])
} else if value.Valid {
a.Capacity = int32(value.Int64)
}
case alert.FieldLeakSpeed:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field leakSpeed", values[i])
} else if value.Valid {
a.LeakSpeed = value.String
}
case alert.FieldScenarioVersion:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field scenarioVersion", values[i])
} else if value.Valid {
a.ScenarioVersion = value.String
}
case alert.FieldScenarioHash:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field scenarioHash", values[i])
} else if value.Valid {
a.ScenarioHash = value.String
}
case alert.FieldSimulated:
if value, ok := values[i].(*sql.NullBool); !ok {
return fmt.Errorf("unexpected type %T for field simulated", values[i])
} else if value.Valid {
a.Simulated = value.Bool
}
case alert.FieldUUID:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field uuid", values[i])
} else if value.Valid {
a.UUID = value.String
}
case alert.ForeignKeys[0]:
if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for edge-field machine_alerts", value)
} else if value.Valid {
a.machine_alerts = new(int)
*a.machine_alerts = int(value.Int64)
}
}
}
return nil
}
// QueryOwner queries the "owner" edge of the Alert entity.
func (a *Alert) QueryOwner() *MachineQuery {
return (&AlertClient{config: a.config}).QueryOwner(a)
}
// QueryDecisions queries the "decisions" edge of the Alert entity.
func (a *Alert) QueryDecisions() *DecisionQuery {
return (&AlertClient{config: a.config}).QueryDecisions(a)
}
// QueryEvents queries the "events" edge of the Alert entity.
func (a *Alert) QueryEvents() *EventQuery {
return (&AlertClient{config: a.config}).QueryEvents(a)
}
// QueryMetas queries the "metas" edge of the Alert entity.
func (a *Alert) QueryMetas() *MetaQuery {
return (&AlertClient{config: a.config}).QueryMetas(a)
}
// Update returns a builder for updating this Alert.
// Note that you need to call Alert.Unwrap() before calling this method if this Alert
// was returned from a transaction, and the transaction was committed or rolled back.
func (a *Alert) Update() *AlertUpdateOne {
return (&AlertClient{config: a.config}).UpdateOne(a)
}
// Unwrap unwraps the Alert entity that was returned from a transaction after it was closed,
// so that all future queries will be executed through the driver which created the transaction.
func (a *Alert) Unwrap() *Alert {
_tx, ok := a.config.driver.(*txDriver)
if !ok {
panic("ent: Alert is not a transactional entity")
}
a.config.driver = _tx.drv
return a
}
// String implements the fmt.Stringer.
func (a *Alert) String() string {
var builder strings.Builder
builder.WriteString("Alert(")
builder.WriteString(fmt.Sprintf("id=%v, ", a.ID))
if v := a.CreatedAt; v != nil {
builder.WriteString("created_at=")
builder.WriteString(v.Format(time.ANSIC))
}
builder.WriteString(", ")
if v := a.UpdatedAt; v != nil {
builder.WriteString("updated_at=")
builder.WriteString(v.Format(time.ANSIC))
}
builder.WriteString(", ")
builder.WriteString("scenario=")
builder.WriteString(a.Scenario)
builder.WriteString(", ")
builder.WriteString("bucketId=")
builder.WriteString(a.BucketId)
builder.WriteString(", ")
builder.WriteString("message=")
builder.WriteString(a.Message)
builder.WriteString(", ")
builder.WriteString("eventsCount=")
builder.WriteString(fmt.Sprintf("%v", a.EventsCount))
builder.WriteString(", ")
builder.WriteString("startedAt=")
builder.WriteString(a.StartedAt.Format(time.ANSIC))
builder.WriteString(", ")
builder.WriteString("stoppedAt=")
builder.WriteString(a.StoppedAt.Format(time.ANSIC))
builder.WriteString(", ")
builder.WriteString("sourceIp=")
builder.WriteString(a.SourceIp)
builder.WriteString(", ")
builder.WriteString("sourceRange=")
builder.WriteString(a.SourceRange)
builder.WriteString(", ")
builder.WriteString("sourceAsNumber=")
builder.WriteString(a.SourceAsNumber)
builder.WriteString(", ")
builder.WriteString("sourceAsName=")
builder.WriteString(a.SourceAsName)
builder.WriteString(", ")
builder.WriteString("sourceCountry=")
builder.WriteString(a.SourceCountry)
builder.WriteString(", ")
builder.WriteString("sourceLatitude=")
builder.WriteString(fmt.Sprintf("%v", a.SourceLatitude))
builder.WriteString(", ")
builder.WriteString("sourceLongitude=")
builder.WriteString(fmt.Sprintf("%v", a.SourceLongitude))
builder.WriteString(", ")
builder.WriteString("sourceScope=")
builder.WriteString(a.SourceScope)
builder.WriteString(", ")
builder.WriteString("sourceValue=")
builder.WriteString(a.SourceValue)
builder.WriteString(", ")
builder.WriteString("capacity=")
builder.WriteString(fmt.Sprintf("%v", a.Capacity))
builder.WriteString(", ")
builder.WriteString("leakSpeed=")
builder.WriteString(a.LeakSpeed)
builder.WriteString(", ")
builder.WriteString("scenarioVersion=")
builder.WriteString(a.ScenarioVersion)
builder.WriteString(", ")
builder.WriteString("scenarioHash=")
builder.WriteString(a.ScenarioHash)
builder.WriteString(", ")
builder.WriteString("simulated=")
builder.WriteString(fmt.Sprintf("%v", a.Simulated))
builder.WriteString(", ")
builder.WriteString("uuid=")
builder.WriteString(a.UUID)
builder.WriteByte(')')
return builder.String()
}
// Alerts is a parsable slice of Alert.
type Alerts []*Alert
func (a Alerts) config(cfg config) {
for _i := range a {
a[_i].config = cfg
}
}