github.com/crowdsecurity/crowdsec@v1.6.1/pkg/database/ent/alert.go (about) 1 // Code generated by ent, DO NOT EDIT. 2 3 package ent 4 5 import ( 6 "fmt" 7 "strings" 8 "time" 9 10 "entgo.io/ent" 11 "entgo.io/ent/dialect/sql" 12 "github.com/crowdsecurity/crowdsec/pkg/database/ent/alert" 13 "github.com/crowdsecurity/crowdsec/pkg/database/ent/machine" 14 ) 15 16 // Alert is the model entity for the Alert schema. 17 type Alert struct { 18 config `json:"-"` 19 // ID of the ent. 20 ID int `json:"id,omitempty"` 21 // CreatedAt holds the value of the "created_at" field. 22 CreatedAt *time.Time `json:"created_at,omitempty"` 23 // UpdatedAt holds the value of the "updated_at" field. 24 UpdatedAt *time.Time `json:"updated_at,omitempty"` 25 // Scenario holds the value of the "scenario" field. 26 Scenario string `json:"scenario,omitempty"` 27 // BucketId holds the value of the "bucketId" field. 28 BucketId string `json:"bucketId,omitempty"` 29 // Message holds the value of the "message" field. 30 Message string `json:"message,omitempty"` 31 // EventsCount holds the value of the "eventsCount" field. 32 EventsCount int32 `json:"eventsCount,omitempty"` 33 // StartedAt holds the value of the "startedAt" field. 34 StartedAt time.Time `json:"startedAt,omitempty"` 35 // StoppedAt holds the value of the "stoppedAt" field. 36 StoppedAt time.Time `json:"stoppedAt,omitempty"` 37 // SourceIp holds the value of the "sourceIp" field. 38 SourceIp string `json:"sourceIp,omitempty"` 39 // SourceRange holds the value of the "sourceRange" field. 40 SourceRange string `json:"sourceRange,omitempty"` 41 // SourceAsNumber holds the value of the "sourceAsNumber" field. 42 SourceAsNumber string `json:"sourceAsNumber,omitempty"` 43 // SourceAsName holds the value of the "sourceAsName" field. 44 SourceAsName string `json:"sourceAsName,omitempty"` 45 // SourceCountry holds the value of the "sourceCountry" field. 46 SourceCountry string `json:"sourceCountry,omitempty"` 47 // SourceLatitude holds the value of the "sourceLatitude" field. 48 SourceLatitude float32 `json:"sourceLatitude,omitempty"` 49 // SourceLongitude holds the value of the "sourceLongitude" field. 50 SourceLongitude float32 `json:"sourceLongitude,omitempty"` 51 // SourceScope holds the value of the "sourceScope" field. 52 SourceScope string `json:"sourceScope,omitempty"` 53 // SourceValue holds the value of the "sourceValue" field. 54 SourceValue string `json:"sourceValue,omitempty"` 55 // Capacity holds the value of the "capacity" field. 56 Capacity int32 `json:"capacity,omitempty"` 57 // LeakSpeed holds the value of the "leakSpeed" field. 58 LeakSpeed string `json:"leakSpeed,omitempty"` 59 // ScenarioVersion holds the value of the "scenarioVersion" field. 60 ScenarioVersion string `json:"scenarioVersion,omitempty"` 61 // ScenarioHash holds the value of the "scenarioHash" field. 62 ScenarioHash string `json:"scenarioHash,omitempty"` 63 // Simulated holds the value of the "simulated" field. 64 Simulated bool `json:"simulated,omitempty"` 65 // UUID holds the value of the "uuid" field. 66 UUID string `json:"uuid,omitempty"` 67 // Edges holds the relations/edges for other nodes in the graph. 68 // The values are being populated by the AlertQuery when eager-loading is set. 69 Edges AlertEdges `json:"edges"` 70 machine_alerts *int 71 selectValues sql.SelectValues 72 } 73 74 // AlertEdges holds the relations/edges for other nodes in the graph. 75 type AlertEdges struct { 76 // Owner holds the value of the owner edge. 77 Owner *Machine `json:"owner,omitempty"` 78 // Decisions holds the value of the decisions edge. 79 Decisions []*Decision `json:"decisions,omitempty"` 80 // Events holds the value of the events edge. 81 Events []*Event `json:"events,omitempty"` 82 // Metas holds the value of the metas edge. 83 Metas []*Meta `json:"metas,omitempty"` 84 // loadedTypes holds the information for reporting if a 85 // type was loaded (or requested) in eager-loading or not. 86 loadedTypes [4]bool 87 } 88 89 // OwnerOrErr returns the Owner value or an error if the edge 90 // was not loaded in eager-loading, or loaded but was not found. 91 func (e AlertEdges) OwnerOrErr() (*Machine, error) { 92 if e.loadedTypes[0] { 93 if e.Owner == nil { 94 // Edge was loaded but was not found. 95 return nil, &NotFoundError{label: machine.Label} 96 } 97 return e.Owner, nil 98 } 99 return nil, &NotLoadedError{edge: "owner"} 100 } 101 102 // DecisionsOrErr returns the Decisions value or an error if the edge 103 // was not loaded in eager-loading. 104 func (e AlertEdges) DecisionsOrErr() ([]*Decision, error) { 105 if e.loadedTypes[1] { 106 return e.Decisions, nil 107 } 108 return nil, &NotLoadedError{edge: "decisions"} 109 } 110 111 // EventsOrErr returns the Events value or an error if the edge 112 // was not loaded in eager-loading. 113 func (e AlertEdges) EventsOrErr() ([]*Event, error) { 114 if e.loadedTypes[2] { 115 return e.Events, nil 116 } 117 return nil, &NotLoadedError{edge: "events"} 118 } 119 120 // MetasOrErr returns the Metas value or an error if the edge 121 // was not loaded in eager-loading. 122 func (e AlertEdges) MetasOrErr() ([]*Meta, error) { 123 if e.loadedTypes[3] { 124 return e.Metas, nil 125 } 126 return nil, &NotLoadedError{edge: "metas"} 127 } 128 129 // scanValues returns the types for scanning values from sql.Rows. 130 func (*Alert) scanValues(columns []string) ([]any, error) { 131 values := make([]any, len(columns)) 132 for i := range columns { 133 switch columns[i] { 134 case alert.FieldSimulated: 135 values[i] = new(sql.NullBool) 136 case alert.FieldSourceLatitude, alert.FieldSourceLongitude: 137 values[i] = new(sql.NullFloat64) 138 case alert.FieldID, alert.FieldEventsCount, alert.FieldCapacity: 139 values[i] = new(sql.NullInt64) 140 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: 141 values[i] = new(sql.NullString) 142 case alert.FieldCreatedAt, alert.FieldUpdatedAt, alert.FieldStartedAt, alert.FieldStoppedAt: 143 values[i] = new(sql.NullTime) 144 case alert.ForeignKeys[0]: // machine_alerts 145 values[i] = new(sql.NullInt64) 146 default: 147 values[i] = new(sql.UnknownType) 148 } 149 } 150 return values, nil 151 } 152 153 // assignValues assigns the values that were returned from sql.Rows (after scanning) 154 // to the Alert fields. 155 func (a *Alert) assignValues(columns []string, values []any) error { 156 if m, n := len(values), len(columns); m < n { 157 return fmt.Errorf("mismatch number of scan values: %d != %d", m, n) 158 } 159 for i := range columns { 160 switch columns[i] { 161 case alert.FieldID: 162 value, ok := values[i].(*sql.NullInt64) 163 if !ok { 164 return fmt.Errorf("unexpected type %T for field id", value) 165 } 166 a.ID = int(value.Int64) 167 case alert.FieldCreatedAt: 168 if value, ok := values[i].(*sql.NullTime); !ok { 169 return fmt.Errorf("unexpected type %T for field created_at", values[i]) 170 } else if value.Valid { 171 a.CreatedAt = new(time.Time) 172 *a.CreatedAt = value.Time 173 } 174 case alert.FieldUpdatedAt: 175 if value, ok := values[i].(*sql.NullTime); !ok { 176 return fmt.Errorf("unexpected type %T for field updated_at", values[i]) 177 } else if value.Valid { 178 a.UpdatedAt = new(time.Time) 179 *a.UpdatedAt = value.Time 180 } 181 case alert.FieldScenario: 182 if value, ok := values[i].(*sql.NullString); !ok { 183 return fmt.Errorf("unexpected type %T for field scenario", values[i]) 184 } else if value.Valid { 185 a.Scenario = value.String 186 } 187 case alert.FieldBucketId: 188 if value, ok := values[i].(*sql.NullString); !ok { 189 return fmt.Errorf("unexpected type %T for field bucketId", values[i]) 190 } else if value.Valid { 191 a.BucketId = value.String 192 } 193 case alert.FieldMessage: 194 if value, ok := values[i].(*sql.NullString); !ok { 195 return fmt.Errorf("unexpected type %T for field message", values[i]) 196 } else if value.Valid { 197 a.Message = value.String 198 } 199 case alert.FieldEventsCount: 200 if value, ok := values[i].(*sql.NullInt64); !ok { 201 return fmt.Errorf("unexpected type %T for field eventsCount", values[i]) 202 } else if value.Valid { 203 a.EventsCount = int32(value.Int64) 204 } 205 case alert.FieldStartedAt: 206 if value, ok := values[i].(*sql.NullTime); !ok { 207 return fmt.Errorf("unexpected type %T for field startedAt", values[i]) 208 } else if value.Valid { 209 a.StartedAt = value.Time 210 } 211 case alert.FieldStoppedAt: 212 if value, ok := values[i].(*sql.NullTime); !ok { 213 return fmt.Errorf("unexpected type %T for field stoppedAt", values[i]) 214 } else if value.Valid { 215 a.StoppedAt = value.Time 216 } 217 case alert.FieldSourceIp: 218 if value, ok := values[i].(*sql.NullString); !ok { 219 return fmt.Errorf("unexpected type %T for field sourceIp", values[i]) 220 } else if value.Valid { 221 a.SourceIp = value.String 222 } 223 case alert.FieldSourceRange: 224 if value, ok := values[i].(*sql.NullString); !ok { 225 return fmt.Errorf("unexpected type %T for field sourceRange", values[i]) 226 } else if value.Valid { 227 a.SourceRange = value.String 228 } 229 case alert.FieldSourceAsNumber: 230 if value, ok := values[i].(*sql.NullString); !ok { 231 return fmt.Errorf("unexpected type %T for field sourceAsNumber", values[i]) 232 } else if value.Valid { 233 a.SourceAsNumber = value.String 234 } 235 case alert.FieldSourceAsName: 236 if value, ok := values[i].(*sql.NullString); !ok { 237 return fmt.Errorf("unexpected type %T for field sourceAsName", values[i]) 238 } else if value.Valid { 239 a.SourceAsName = value.String 240 } 241 case alert.FieldSourceCountry: 242 if value, ok := values[i].(*sql.NullString); !ok { 243 return fmt.Errorf("unexpected type %T for field sourceCountry", values[i]) 244 } else if value.Valid { 245 a.SourceCountry = value.String 246 } 247 case alert.FieldSourceLatitude: 248 if value, ok := values[i].(*sql.NullFloat64); !ok { 249 return fmt.Errorf("unexpected type %T for field sourceLatitude", values[i]) 250 } else if value.Valid { 251 a.SourceLatitude = float32(value.Float64) 252 } 253 case alert.FieldSourceLongitude: 254 if value, ok := values[i].(*sql.NullFloat64); !ok { 255 return fmt.Errorf("unexpected type %T for field sourceLongitude", values[i]) 256 } else if value.Valid { 257 a.SourceLongitude = float32(value.Float64) 258 } 259 case alert.FieldSourceScope: 260 if value, ok := values[i].(*sql.NullString); !ok { 261 return fmt.Errorf("unexpected type %T for field sourceScope", values[i]) 262 } else if value.Valid { 263 a.SourceScope = value.String 264 } 265 case alert.FieldSourceValue: 266 if value, ok := values[i].(*sql.NullString); !ok { 267 return fmt.Errorf("unexpected type %T for field sourceValue", values[i]) 268 } else if value.Valid { 269 a.SourceValue = value.String 270 } 271 case alert.FieldCapacity: 272 if value, ok := values[i].(*sql.NullInt64); !ok { 273 return fmt.Errorf("unexpected type %T for field capacity", values[i]) 274 } else if value.Valid { 275 a.Capacity = int32(value.Int64) 276 } 277 case alert.FieldLeakSpeed: 278 if value, ok := values[i].(*sql.NullString); !ok { 279 return fmt.Errorf("unexpected type %T for field leakSpeed", values[i]) 280 } else if value.Valid { 281 a.LeakSpeed = value.String 282 } 283 case alert.FieldScenarioVersion: 284 if value, ok := values[i].(*sql.NullString); !ok { 285 return fmt.Errorf("unexpected type %T for field scenarioVersion", values[i]) 286 } else if value.Valid { 287 a.ScenarioVersion = value.String 288 } 289 case alert.FieldScenarioHash: 290 if value, ok := values[i].(*sql.NullString); !ok { 291 return fmt.Errorf("unexpected type %T for field scenarioHash", values[i]) 292 } else if value.Valid { 293 a.ScenarioHash = value.String 294 } 295 case alert.FieldSimulated: 296 if value, ok := values[i].(*sql.NullBool); !ok { 297 return fmt.Errorf("unexpected type %T for field simulated", values[i]) 298 } else if value.Valid { 299 a.Simulated = value.Bool 300 } 301 case alert.FieldUUID: 302 if value, ok := values[i].(*sql.NullString); !ok { 303 return fmt.Errorf("unexpected type %T for field uuid", values[i]) 304 } else if value.Valid { 305 a.UUID = value.String 306 } 307 case alert.ForeignKeys[0]: 308 if value, ok := values[i].(*sql.NullInt64); !ok { 309 return fmt.Errorf("unexpected type %T for edge-field machine_alerts", value) 310 } else if value.Valid { 311 a.machine_alerts = new(int) 312 *a.machine_alerts = int(value.Int64) 313 } 314 default: 315 a.selectValues.Set(columns[i], values[i]) 316 } 317 } 318 return nil 319 } 320 321 // Value returns the ent.Value that was dynamically selected and assigned to the Alert. 322 // This includes values selected through modifiers, order, etc. 323 func (a *Alert) Value(name string) (ent.Value, error) { 324 return a.selectValues.Get(name) 325 } 326 327 // QueryOwner queries the "owner" edge of the Alert entity. 328 func (a *Alert) QueryOwner() *MachineQuery { 329 return NewAlertClient(a.config).QueryOwner(a) 330 } 331 332 // QueryDecisions queries the "decisions" edge of the Alert entity. 333 func (a *Alert) QueryDecisions() *DecisionQuery { 334 return NewAlertClient(a.config).QueryDecisions(a) 335 } 336 337 // QueryEvents queries the "events" edge of the Alert entity. 338 func (a *Alert) QueryEvents() *EventQuery { 339 return NewAlertClient(a.config).QueryEvents(a) 340 } 341 342 // QueryMetas queries the "metas" edge of the Alert entity. 343 func (a *Alert) QueryMetas() *MetaQuery { 344 return NewAlertClient(a.config).QueryMetas(a) 345 } 346 347 // Update returns a builder for updating this Alert. 348 // Note that you need to call Alert.Unwrap() before calling this method if this Alert 349 // was returned from a transaction, and the transaction was committed or rolled back. 350 func (a *Alert) Update() *AlertUpdateOne { 351 return NewAlertClient(a.config).UpdateOne(a) 352 } 353 354 // Unwrap unwraps the Alert entity that was returned from a transaction after it was closed, 355 // so that all future queries will be executed through the driver which created the transaction. 356 func (a *Alert) Unwrap() *Alert { 357 _tx, ok := a.config.driver.(*txDriver) 358 if !ok { 359 panic("ent: Alert is not a transactional entity") 360 } 361 a.config.driver = _tx.drv 362 return a 363 } 364 365 // String implements the fmt.Stringer. 366 func (a *Alert) String() string { 367 var builder strings.Builder 368 builder.WriteString("Alert(") 369 builder.WriteString(fmt.Sprintf("id=%v, ", a.ID)) 370 if v := a.CreatedAt; v != nil { 371 builder.WriteString("created_at=") 372 builder.WriteString(v.Format(time.ANSIC)) 373 } 374 builder.WriteString(", ") 375 if v := a.UpdatedAt; v != nil { 376 builder.WriteString("updated_at=") 377 builder.WriteString(v.Format(time.ANSIC)) 378 } 379 builder.WriteString(", ") 380 builder.WriteString("scenario=") 381 builder.WriteString(a.Scenario) 382 builder.WriteString(", ") 383 builder.WriteString("bucketId=") 384 builder.WriteString(a.BucketId) 385 builder.WriteString(", ") 386 builder.WriteString("message=") 387 builder.WriteString(a.Message) 388 builder.WriteString(", ") 389 builder.WriteString("eventsCount=") 390 builder.WriteString(fmt.Sprintf("%v", a.EventsCount)) 391 builder.WriteString(", ") 392 builder.WriteString("startedAt=") 393 builder.WriteString(a.StartedAt.Format(time.ANSIC)) 394 builder.WriteString(", ") 395 builder.WriteString("stoppedAt=") 396 builder.WriteString(a.StoppedAt.Format(time.ANSIC)) 397 builder.WriteString(", ") 398 builder.WriteString("sourceIp=") 399 builder.WriteString(a.SourceIp) 400 builder.WriteString(", ") 401 builder.WriteString("sourceRange=") 402 builder.WriteString(a.SourceRange) 403 builder.WriteString(", ") 404 builder.WriteString("sourceAsNumber=") 405 builder.WriteString(a.SourceAsNumber) 406 builder.WriteString(", ") 407 builder.WriteString("sourceAsName=") 408 builder.WriteString(a.SourceAsName) 409 builder.WriteString(", ") 410 builder.WriteString("sourceCountry=") 411 builder.WriteString(a.SourceCountry) 412 builder.WriteString(", ") 413 builder.WriteString("sourceLatitude=") 414 builder.WriteString(fmt.Sprintf("%v", a.SourceLatitude)) 415 builder.WriteString(", ") 416 builder.WriteString("sourceLongitude=") 417 builder.WriteString(fmt.Sprintf("%v", a.SourceLongitude)) 418 builder.WriteString(", ") 419 builder.WriteString("sourceScope=") 420 builder.WriteString(a.SourceScope) 421 builder.WriteString(", ") 422 builder.WriteString("sourceValue=") 423 builder.WriteString(a.SourceValue) 424 builder.WriteString(", ") 425 builder.WriteString("capacity=") 426 builder.WriteString(fmt.Sprintf("%v", a.Capacity)) 427 builder.WriteString(", ") 428 builder.WriteString("leakSpeed=") 429 builder.WriteString(a.LeakSpeed) 430 builder.WriteString(", ") 431 builder.WriteString("scenarioVersion=") 432 builder.WriteString(a.ScenarioVersion) 433 builder.WriteString(", ") 434 builder.WriteString("scenarioHash=") 435 builder.WriteString(a.ScenarioHash) 436 builder.WriteString(", ") 437 builder.WriteString("simulated=") 438 builder.WriteString(fmt.Sprintf("%v", a.Simulated)) 439 builder.WriteString(", ") 440 builder.WriteString("uuid=") 441 builder.WriteString(a.UUID) 442 builder.WriteByte(')') 443 return builder.String() 444 } 445 446 // Alerts is a parsable slice of Alert. 447 type Alerts []*Alert