// 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 }