syntax = "proto3";

package types.v1;

import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
import "types/v1/types.proto";

option go_package = "types/v1;typesv1";

message LogEventGroup {
  int64 machine_id = 1;
  int64 session_id = 2;
  repeated types.v1.LogEvent logs = 3;
}

message IngestedLogEvent {
  int64 machine_id = 1;
  int64 session_id = 2;
  int64 event_id = 3;
  google.protobuf.Timestamp parsed_at = 4;
  bytes raw = 5;
  StructuredLogEvent structured = 6;
}

message LogEvent {
  google.protobuf.Timestamp parsed_at = 1;
  bytes raw = 2;
  StructuredLogEvent structured = 3;
}

message StructuredLogEvent {
  google.protobuf.Timestamp timestamp = 1;
  string lvl = 2;
  string msg = 3;
  repeated KV kvs = 4;
}
