|
@@ -0,0 +1,523 @@
|
|
|
|
|
+// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
|
|
|
+// versions:
|
|
|
|
|
+// protoc-gen-go v1.36.11
|
|
|
|
|
+// protoc (unknown)
|
|
|
|
|
+// source: broadannounce/v1/ingest.proto
|
|
|
|
|
+
|
|
|
|
|
+package broadannouncev1
|
|
|
|
|
+
|
|
|
|
|
+import (
|
|
|
|
|
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
|
|
|
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
|
|
|
+ reflect "reflect"
|
|
|
|
|
+ sync "sync"
|
|
|
|
|
+ unsafe "unsafe"
|
|
|
|
|
+)
|
|
|
|
|
+
|
|
|
|
|
+const (
|
|
|
|
|
+ // Verify that this generated code is sufficiently up-to-date.
|
|
|
|
|
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
|
|
|
|
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
|
|
|
|
|
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
|
|
|
|
+)
|
|
|
|
|
+
|
|
|
|
|
+// Code classifies the error so the client can act programmatically.
|
|
|
|
|
+type Error_Code int32
|
|
|
|
|
+
|
|
|
|
|
+const (
|
|
|
|
|
+ Error_UNKNOWN Error_Code = 0 // catch-all; include message
|
|
|
|
|
+ Error_UNAUTHENTICATED Error_Code = 1 // API key missing or invalid
|
|
|
|
|
+ Error_RATE_LIMITED Error_Code = 2 // per-source or per-company rate limit hit
|
|
|
|
|
+ Error_INVALID Error_Code = 3 // schema validation failed;修复 check message
|
|
|
|
|
+ Error_INTERNAL Error_Code = 4 // server-side error; do not retry immediately
|
|
|
|
|
+)
|
|
|
|
|
+
|
|
|
|
|
+// Enum value maps for Error_Code.
|
|
|
|
|
+var (
|
|
|
|
|
+ Error_Code_name = map[int32]string{
|
|
|
|
|
+ 0: "UNKNOWN",
|
|
|
|
|
+ 1: "UNAUTHENTICATED",
|
|
|
|
|
+ 2: "RATE_LIMITED",
|
|
|
|
|
+ 3: "INVALID",
|
|
|
|
|
+ 4: "INTERNAL",
|
|
|
|
|
+ }
|
|
|
|
|
+ Error_Code_value = map[string]int32{
|
|
|
|
|
+ "UNKNOWN": 0,
|
|
|
|
|
+ "UNAUTHENTICATED": 1,
|
|
|
|
|
+ "RATE_LIMITED": 2,
|
|
|
|
|
+ "INVALID": 3,
|
|
|
|
|
+ "INTERNAL": 4,
|
|
|
|
|
+ }
|
|
|
|
|
+)
|
|
|
|
|
+
|
|
|
|
|
+func (x Error_Code) Enum() *Error_Code {
|
|
|
|
|
+ p := new(Error_Code)
|
|
|
|
|
+ *p = x
|
|
|
|
|
+ return p
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x Error_Code) String() string {
|
|
|
|
|
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (Error_Code) Descriptor() protoreflect.EnumDescriptor {
|
|
|
|
|
+ return file_broadannounce_v1_ingest_proto_enumTypes[0].Descriptor()
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (Error_Code) Type() protoreflect.EnumType {
|
|
|
|
|
+ return &file_broadannounce_v1_ingest_proto_enumTypes[0]
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x Error_Code) Number() protoreflect.EnumNumber {
|
|
|
|
|
+ return protoreflect.EnumNumber(x)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Deprecated: Use Error_Code.Descriptor instead.
|
|
|
|
|
+func (Error_Code) EnumDescriptor() ([]byte, []int) {
|
|
|
|
|
+ return file_broadannounce_v1_ingest_proto_rawDescGZIP(), []int{3, 0}
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Alert is what a first-party service sends to BroadAnnounce.
|
|
|
|
|
+type Alert struct {
|
|
|
|
|
+ state protoimpl.MessageState `protogen:"open.v1"`
|
|
|
|
|
+ CompanyId string `protobuf:"bytes,1,opt,name=company_id,json=companyId,proto3" json:"company_id,omitempty"` // required; maps to sources.company_id
|
|
|
|
|
+ SourceId string `protobuf:"bytes,2,opt,name=source_id,json=sourceId,proto3" json:"source_id,omitempty"` // required; maps to sources.source_id
|
|
|
|
|
+ Severity string `protobuf:"bytes,3,opt,name=severity,proto3" json:"severity,omitempty"` // "info" | "warning" | "critical" | "inminent_colapse"
|
|
|
|
|
+ Category string `protobuf:"bytes,4,opt,name=category,proto3" json:"category,omitempty"` // arbitrary category tag
|
|
|
|
|
+ Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` // pre-localized alert title
|
|
|
|
|
+ Body string `protobuf:"bytes,6,opt,name=body,proto3" json:"body,omitempty"` // pre-localized alert body
|
|
|
|
|
+ Data map[string]string `protobuf:"bytes,7,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // arbitrary key-value metadata
|
|
|
|
|
+ DedupeKey string `protobuf:"bytes,8,opt,name=dedupe_key,json=dedupeKey,proto3" json:"dedupe_key,omitempty"` // opaque string; if set, dedupe applies within the window
|
|
|
|
|
+ ClientTsMs int64 `protobuf:"varint,9,opt,name=client_ts_ms,json=clientTsMs,proto3" json:"client_ts_ms,omitempty"` // Unix-ms timestamp set by the client; used for skew detection
|
|
|
|
|
+ unknownFields protoimpl.UnknownFields
|
|
|
|
|
+ sizeCache protoimpl.SizeCache
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Alert) Reset() {
|
|
|
|
|
+ *x = Alert{}
|
|
|
|
|
+ mi := &file_broadannounce_v1_ingest_proto_msgTypes[0]
|
|
|
|
|
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
|
|
|
+ ms.StoreMessageInfo(mi)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Alert) String() string {
|
|
|
|
|
+ return protoimpl.X.MessageStringOf(x)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (*Alert) ProtoMessage() {}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Alert) ProtoReflect() protoreflect.Message {
|
|
|
|
|
+ mi := &file_broadannounce_v1_ingest_proto_msgTypes[0]
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
|
|
|
+ if ms.LoadMessageInfo() == nil {
|
|
|
|
|
+ ms.StoreMessageInfo(mi)
|
|
|
|
|
+ }
|
|
|
|
|
+ return ms
|
|
|
|
|
+ }
|
|
|
|
|
+ return mi.MessageOf(x)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Deprecated: Use Alert.ProtoReflect.Descriptor instead.
|
|
|
|
|
+func (*Alert) Descriptor() ([]byte, []int) {
|
|
|
|
|
+ return file_broadannounce_v1_ingest_proto_rawDescGZIP(), []int{0}
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Alert) GetCompanyId() string {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.CompanyId
|
|
|
|
|
+ }
|
|
|
|
|
+ return ""
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Alert) GetSourceId() string {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.SourceId
|
|
|
|
|
+ }
|
|
|
|
|
+ return ""
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Alert) GetSeverity() string {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.Severity
|
|
|
|
|
+ }
|
|
|
|
|
+ return ""
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Alert) GetCategory() string {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.Category
|
|
|
|
|
+ }
|
|
|
|
|
+ return ""
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Alert) GetTitle() string {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.Title
|
|
|
|
|
+ }
|
|
|
|
|
+ return ""
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Alert) GetBody() string {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.Body
|
|
|
|
|
+ }
|
|
|
|
|
+ return ""
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Alert) GetData() map[string]string {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.Data
|
|
|
|
|
+ }
|
|
|
|
|
+ return nil
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Alert) GetDedupeKey() string {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.DedupeKey
|
|
|
|
|
+ }
|
|
|
|
|
+ return ""
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Alert) GetClientTsMs() int64 {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.ClientTsMs
|
|
|
|
|
+ }
|
|
|
|
|
+ return 0
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Ack is what the server sends back after processing an Alert.
|
|
|
|
|
+type Ack struct {
|
|
|
|
|
+ state protoimpl.MessageState `protogen:"open.v1"`
|
|
|
|
|
+ // alert_id is an opaque server-assigned identifier for the alert.
|
|
|
|
|
+ // It may be empty if the alert was rejected before NATS publish.
|
|
|
|
|
+ AlertId string `protobuf:"bytes,1,opt,name=alert_id,json=alertId,proto3" json:"alert_id,omitempty"`
|
|
|
|
|
+ // dedupe_key echoes back the client's dedupe_key.
|
|
|
|
|
+ DedupeKey string `protobuf:"bytes,2,opt,name=dedupe_key,json=dedupeKey,proto3" json:"dedupe_key,omitempty"`
|
|
|
|
|
+ // dedupe_count is 1 on first arrival; >1 when the server collapsed a
|
|
|
|
|
+ // burst of identical dedupe_keys within the dedupe window.
|
|
|
|
|
+ DedupeCount uint32 `protobuf:"varint,3,opt,name=dedupe_count,json=dedupeCount,proto3" json:"dedupe_count,omitempty"`
|
|
|
|
|
+ // accepted_at_ms is the server-side Unix-ms timestamp at which the alert
|
|
|
|
|
+ // was accepted (i.e. after all protection layers passed).
|
|
|
|
|
+ AcceptedAtMs int64 `protobuf:"varint,4,opt,name=accepted_at_ms,json=acceptedAtMs,proto3" json:"accepted_at_ms,omitempty"`
|
|
|
|
|
+ // result is the processing outcome.
|
|
|
|
|
+ //
|
|
|
|
|
+ // Types that are valid to be assigned to Result:
|
|
|
|
|
+ //
|
|
|
|
|
+ // *Ack_Ok
|
|
|
|
|
+ // *Ack_Error
|
|
|
|
|
+ Result isAck_Result `protobuf_oneof:"result"`
|
|
|
|
|
+ unknownFields protoimpl.UnknownFields
|
|
|
|
|
+ sizeCache protoimpl.SizeCache
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ack) Reset() {
|
|
|
|
|
+ *x = Ack{}
|
|
|
|
|
+ mi := &file_broadannounce_v1_ingest_proto_msgTypes[1]
|
|
|
|
|
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
|
|
|
+ ms.StoreMessageInfo(mi)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ack) String() string {
|
|
|
|
|
+ return protoimpl.X.MessageStringOf(x)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (*Ack) ProtoMessage() {}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ack) ProtoReflect() protoreflect.Message {
|
|
|
|
|
+ mi := &file_broadannounce_v1_ingest_proto_msgTypes[1]
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
|
|
|
+ if ms.LoadMessageInfo() == nil {
|
|
|
|
|
+ ms.StoreMessageInfo(mi)
|
|
|
|
|
+ }
|
|
|
|
|
+ return ms
|
|
|
|
|
+ }
|
|
|
|
|
+ return mi.MessageOf(x)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Deprecated: Use Ack.ProtoReflect.Descriptor instead.
|
|
|
|
|
+func (*Ack) Descriptor() ([]byte, []int) {
|
|
|
|
|
+ return file_broadannounce_v1_ingest_proto_rawDescGZIP(), []int{1}
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ack) GetAlertId() string {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.AlertId
|
|
|
|
|
+ }
|
|
|
|
|
+ return ""
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ack) GetDedupeKey() string {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.DedupeKey
|
|
|
|
|
+ }
|
|
|
|
|
+ return ""
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ack) GetDedupeCount() uint32 {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.DedupeCount
|
|
|
|
|
+ }
|
|
|
|
|
+ return 0
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ack) GetAcceptedAtMs() int64 {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.AcceptedAtMs
|
|
|
|
|
+ }
|
|
|
|
|
+ return 0
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ack) GetResult() isAck_Result {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.Result
|
|
|
|
|
+ }
|
|
|
|
|
+ return nil
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ack) GetOk() *Ok {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ if x, ok := x.Result.(*Ack_Ok); ok {
|
|
|
|
|
+ return x.Ok
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return nil
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ack) GetError() *Error {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ if x, ok := x.Result.(*Ack_Error); ok {
|
|
|
|
|
+ return x.Error
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return nil
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+type isAck_Result interface {
|
|
|
|
|
+ isAck_Result()
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+type Ack_Ok struct {
|
|
|
|
|
+ Ok *Ok `protobuf:"bytes,10,opt,name=ok,proto3,oneof"` // alert accepted
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+type Ack_Error struct {
|
|
|
|
|
+ Error *Error `protobuf:"bytes,11,opt,name=error,proto3,oneof"` // alert rejected or rate-limited
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (*Ack_Ok) isAck_Result() {}
|
|
|
|
|
+
|
|
|
|
|
+func (*Ack_Error) isAck_Result() {}
|
|
|
|
|
+
|
|
|
|
|
+// Ok is returned when an Alert was accepted.
|
|
|
|
|
+type Ok struct {
|
|
|
|
|
+ state protoimpl.MessageState `protogen:"open.v1"`
|
|
|
|
|
+ unknownFields protoimpl.UnknownFields
|
|
|
|
|
+ sizeCache protoimpl.SizeCache
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ok) Reset() {
|
|
|
|
|
+ *x = Ok{}
|
|
|
|
|
+ mi := &file_broadannounce_v1_ingest_proto_msgTypes[2]
|
|
|
|
|
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
|
|
|
+ ms.StoreMessageInfo(mi)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ok) String() string {
|
|
|
|
|
+ return protoimpl.X.MessageStringOf(x)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (*Ok) ProtoMessage() {}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Ok) ProtoReflect() protoreflect.Message {
|
|
|
|
|
+ mi := &file_broadannounce_v1_ingest_proto_msgTypes[2]
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
|
|
|
+ if ms.LoadMessageInfo() == nil {
|
|
|
|
|
+ ms.StoreMessageInfo(mi)
|
|
|
|
|
+ }
|
|
|
|
|
+ return ms
|
|
|
|
|
+ }
|
|
|
|
|
+ return mi.MessageOf(x)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Deprecated: Use Ok.ProtoReflect.Descriptor instead.
|
|
|
|
|
+func (*Ok) Descriptor() ([]byte, []int) {
|
|
|
|
|
+ return file_broadannounce_v1_ingest_proto_rawDescGZIP(), []int{2}
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Error is returned when an Alert was rejected.
|
|
|
|
|
+type Error struct {
|
|
|
|
|
+ state protoimpl.MessageState `protogen:"open.v1"`
|
|
|
|
|
+ Code Error_Code `protobuf:"varint,1,opt,name=code,proto3,enum=broadannounce.v1.Error_Code" json:"code,omitempty"`
|
|
|
|
|
+ Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` // human-readable; never parse this
|
|
|
|
|
+ // retry_after_ms is non-zero when Code == RATE_LIMITED.
|
|
|
|
|
+ // The client MUST wait at least this long before sending the next message.
|
|
|
|
|
+ // A value of 0 means "do not retry" (permanent failure).
|
|
|
|
|
+ RetryAfterMs int32 `protobuf:"varint,3,opt,name=retry_after_ms,json=retryAfterMs,proto3" json:"retry_after_ms,omitempty"`
|
|
|
|
|
+ unknownFields protoimpl.UnknownFields
|
|
|
|
|
+ sizeCache protoimpl.SizeCache
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Error) Reset() {
|
|
|
|
|
+ *x = Error{}
|
|
|
|
|
+ mi := &file_broadannounce_v1_ingest_proto_msgTypes[3]
|
|
|
|
|
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
|
|
|
+ ms.StoreMessageInfo(mi)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Error) String() string {
|
|
|
|
|
+ return protoimpl.X.MessageStringOf(x)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (*Error) ProtoMessage() {}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Error) ProtoReflect() protoreflect.Message {
|
|
|
|
|
+ mi := &file_broadannounce_v1_ingest_proto_msgTypes[3]
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
|
|
|
+ if ms.LoadMessageInfo() == nil {
|
|
|
|
|
+ ms.StoreMessageInfo(mi)
|
|
|
|
|
+ }
|
|
|
|
|
+ return ms
|
|
|
|
|
+ }
|
|
|
|
|
+ return mi.MessageOf(x)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Deprecated: Use Error.ProtoReflect.Descriptor instead.
|
|
|
|
|
+func (*Error) Descriptor() ([]byte, []int) {
|
|
|
|
|
+ return file_broadannounce_v1_ingest_proto_rawDescGZIP(), []int{3}
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Error) GetCode() Error_Code {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.Code
|
|
|
|
|
+ }
|
|
|
|
|
+ return Error_UNKNOWN
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Error) GetMessage() string {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.Message
|
|
|
|
|
+ }
|
|
|
|
|
+ return ""
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (x *Error) GetRetryAfterMs() int32 {
|
|
|
|
|
+ if x != nil {
|
|
|
|
|
+ return x.RetryAfterMs
|
|
|
|
|
+ }
|
|
|
|
|
+ return 0
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+var File_broadannounce_v1_ingest_proto protoreflect.FileDescriptor
|
|
|
|
|
+
|
|
|
|
|
+const file_broadannounce_v1_ingest_proto_rawDesc = "" +
|
|
|
|
|
+ "\n" +
|
|
|
|
|
+ "\x1dbroadannounce/v1/ingest.proto\x12\x10broadannounce.v1\"\xd6\x02\n" +
|
|
|
|
|
+ "\x05Alert\x12\x1d\n" +
|
|
|
|
|
+ "\n" +
|
|
|
|
|
+ "company_id\x18\x01 \x01(\tR\tcompanyId\x12\x1b\n" +
|
|
|
|
|
+ "\tsource_id\x18\x02 \x01(\tR\bsourceId\x12\x1a\n" +
|
|
|
|
|
+ "\bseverity\x18\x03 \x01(\tR\bseverity\x12\x1a\n" +
|
|
|
|
|
+ "\bcategory\x18\x04 \x01(\tR\bcategory\x12\x14\n" +
|
|
|
|
|
+ "\x05title\x18\x05 \x01(\tR\x05title\x12\x12\n" +
|
|
|
|
|
+ "\x04body\x18\x06 \x01(\tR\x04body\x125\n" +
|
|
|
|
|
+ "\x04data\x18\a \x03(\v2!.broadannounce.v1.Alert.DataEntryR\x04data\x12\x1d\n" +
|
|
|
|
|
+ "\n" +
|
|
|
|
|
+ "dedupe_key\x18\b \x01(\tR\tdedupeKey\x12 \n" +
|
|
|
|
|
+ "\fclient_ts_ms\x18\t \x01(\x03R\n" +
|
|
|
|
|
+ "clientTsMs\x1a7\n" +
|
|
|
|
|
+ "\tDataEntry\x12\x10\n" +
|
|
|
|
|
+ "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
|
|
|
+ "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xeb\x01\n" +
|
|
|
|
|
+ "\x03Ack\x12\x19\n" +
|
|
|
|
|
+ "\balert_id\x18\x01 \x01(\tR\aalertId\x12\x1d\n" +
|
|
|
|
|
+ "\n" +
|
|
|
|
|
+ "dedupe_key\x18\x02 \x01(\tR\tdedupeKey\x12!\n" +
|
|
|
|
|
+ "\fdedupe_count\x18\x03 \x01(\rR\vdedupeCount\x12$\n" +
|
|
|
|
|
+ "\x0eaccepted_at_ms\x18\x04 \x01(\x03R\facceptedAtMs\x12&\n" +
|
|
|
|
|
+ "\x02ok\x18\n" +
|
|
|
|
|
+ " \x01(\v2\x14.broadannounce.v1.OkH\x00R\x02ok\x12/\n" +
|
|
|
|
|
+ "\x05error\x18\v \x01(\v2\x17.broadannounce.v1.ErrorH\x00R\x05errorB\b\n" +
|
|
|
|
|
+ "\x06result\"\x04\n" +
|
|
|
|
|
+ "\x02Ok\"\xd0\x01\n" +
|
|
|
|
|
+ "\x05Error\x120\n" +
|
|
|
|
|
+ "\x04code\x18\x01 \x01(\x0e2\x1c.broadannounce.v1.Error.CodeR\x04code\x12\x18\n" +
|
|
|
|
|
+ "\amessage\x18\x02 \x01(\tR\amessage\x12$\n" +
|
|
|
|
|
+ "\x0eretry_after_ms\x18\x03 \x01(\x05R\fretryAfterMs\"U\n" +
|
|
|
|
|
+ "\x04Code\x12\v\n" +
|
|
|
|
|
+ "\aUNKNOWN\x10\x00\x12\x13\n" +
|
|
|
|
|
+ "\x0fUNAUTHENTICATED\x10\x01\x12\x10\n" +
|
|
|
|
|
+ "\fRATE_LIMITED\x10\x02\x12\v\n" +
|
|
|
|
|
+ "\aINVALID\x10\x03\x12\f\n" +
|
|
|
|
|
+ "\bINTERNAL\x10\x042L\n" +
|
|
|
|
|
+ "\x06Ingest\x12B\n" +
|
|
|
|
|
+ "\fStreamAlerts\x12\x17.broadannounce.v1.Alert\x1a\x15.broadannounce.v1.Ack(\x010\x01B\xdb\x01\n" +
|
|
|
|
|
+ "\x14com.broadannounce.v1B\vIngestProtoP\x01ZUgit3.techno-world.net/lrosales/broad-announce/gen/go/broadannounce/v1;broadannouncev1\xa2\x02\x03BXX\xaa\x02\x10Broadannounce.V1\xca\x02\x10Broadannounce\\V1\xe2\x02\x1cBroadannounce\\V1\\GPBMetadata\xea\x02\x11Broadannounce::V1b\x06proto3"
|
|
|
|
|
+
|
|
|
|
|
+var (
|
|
|
|
|
+ file_broadannounce_v1_ingest_proto_rawDescOnce sync.Once
|
|
|
|
|
+ file_broadannounce_v1_ingest_proto_rawDescData []byte
|
|
|
|
|
+)
|
|
|
|
|
+
|
|
|
|
|
+func file_broadannounce_v1_ingest_proto_rawDescGZIP() []byte {
|
|
|
|
|
+ file_broadannounce_v1_ingest_proto_rawDescOnce.Do(func() {
|
|
|
|
|
+ file_broadannounce_v1_ingest_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_broadannounce_v1_ingest_proto_rawDesc), len(file_broadannounce_v1_ingest_proto_rawDesc)))
|
|
|
|
|
+ })
|
|
|
|
|
+ return file_broadannounce_v1_ingest_proto_rawDescData
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+var file_broadannounce_v1_ingest_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
|
|
|
|
+var file_broadannounce_v1_ingest_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
|
|
|
|
|
+var file_broadannounce_v1_ingest_proto_goTypes = []any{
|
|
|
|
|
+ (Error_Code)(0), // 0: broadannounce.v1.Error.Code
|
|
|
|
|
+ (*Alert)(nil), // 1: broadannounce.v1.Alert
|
|
|
|
|
+ (*Ack)(nil), // 2: broadannounce.v1.Ack
|
|
|
|
|
+ (*Ok)(nil), // 3: broadannounce.v1.Ok
|
|
|
|
|
+ (*Error)(nil), // 4: broadannounce.v1.Error
|
|
|
|
|
+ nil, // 5: broadannounce.v1.Alert.DataEntry
|
|
|
|
|
+}
|
|
|
|
|
+var file_broadannounce_v1_ingest_proto_depIdxs = []int32{
|
|
|
|
|
+ 5, // 0: broadannounce.v1.Alert.data:type_name -> broadannounce.v1.Alert.DataEntry
|
|
|
|
|
+ 3, // 1: broadannounce.v1.Ack.ok:type_name -> broadannounce.v1.Ok
|
|
|
|
|
+ 4, // 2: broadannounce.v1.Ack.error:type_name -> broadannounce.v1.Error
|
|
|
|
|
+ 0, // 3: broadannounce.v1.Error.code:type_name -> broadannounce.v1.Error.Code
|
|
|
|
|
+ 1, // 4: broadannounce.v1.Ingest.StreamAlerts:input_type -> broadannounce.v1.Alert
|
|
|
|
|
+ 2, // 5: broadannounce.v1.Ingest.StreamAlerts:output_type -> broadannounce.v1.Ack
|
|
|
|
|
+ 5, // [5:6] is the sub-list for method output_type
|
|
|
|
|
+ 4, // [4:5] is the sub-list for method input_type
|
|
|
|
|
+ 4, // [4:4] is the sub-list for extension type_name
|
|
|
|
|
+ 4, // [4:4] is the sub-list for extension extendee
|
|
|
|
|
+ 0, // [0:4] is the sub-list for field type_name
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func init() { file_broadannounce_v1_ingest_proto_init() }
|
|
|
|
|
+func file_broadannounce_v1_ingest_proto_init() {
|
|
|
|
|
+ if File_broadannounce_v1_ingest_proto != nil {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ file_broadannounce_v1_ingest_proto_msgTypes[1].OneofWrappers = []any{
|
|
|
|
|
+ (*Ack_Ok)(nil),
|
|
|
|
|
+ (*Ack_Error)(nil),
|
|
|
|
|
+ }
|
|
|
|
|
+ type x struct{}
|
|
|
|
|
+ out := protoimpl.TypeBuilder{
|
|
|
|
|
+ File: protoimpl.DescBuilder{
|
|
|
|
|
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
|
|
|
+ RawDescriptor: unsafe.Slice(unsafe.StringData(file_broadannounce_v1_ingest_proto_rawDesc), len(file_broadannounce_v1_ingest_proto_rawDesc)),
|
|
|
|
|
+ NumEnums: 1,
|
|
|
|
|
+ NumMessages: 5,
|
|
|
|
|
+ NumExtensions: 0,
|
|
|
|
|
+ NumServices: 1,
|
|
|
|
|
+ },
|
|
|
|
|
+ GoTypes: file_broadannounce_v1_ingest_proto_goTypes,
|
|
|
|
|
+ DependencyIndexes: file_broadannounce_v1_ingest_proto_depIdxs,
|
|
|
|
|
+ EnumInfos: file_broadannounce_v1_ingest_proto_enumTypes,
|
|
|
|
|
+ MessageInfos: file_broadannounce_v1_ingest_proto_msgTypes,
|
|
|
|
|
+ }.Build()
|
|
|
|
|
+ File_broadannounce_v1_ingest_proto = out.File
|
|
|
|
|
+ file_broadannounce_v1_ingest_proto_goTypes = nil
|
|
|
|
|
+ file_broadannounce_v1_ingest_proto_depIdxs = nil
|
|
|
|
|
+}
|