diff --git a/gen/go/entities/v1/entities.pb.go b/gen/go/entities/v1/entities.pb.go index f501c3e..9abb2e9 100644 --- a/gen/go/entities/v1/entities.pb.go +++ b/gen/go/entities/v1/entities.pb.go @@ -1099,6 +1099,298 @@ func (x *UnlinkEntityResponse) GetEntity() *CanonicalEntity { return nil } +type CrossSystemRefKey struct { + state protoimpl.MessageState `protogen:"open.v1"` + IntegrationId string `protobuf:"bytes,1,opt,name=integration_id,json=integrationId,proto3" json:"integration_id,omitempty"` + RecordId string `protobuf:"bytes,2,opt,name=record_id,json=recordId,proto3" json:"record_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CrossSystemRefKey) Reset() { + *x = CrossSystemRefKey{} + mi := &file_entities_v1_entities_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CrossSystemRefKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CrossSystemRefKey) ProtoMessage() {} + +func (x *CrossSystemRefKey) ProtoReflect() protoreflect.Message { + mi := &file_entities_v1_entities_proto_msgTypes[16] + 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 CrossSystemRefKey.ProtoReflect.Descriptor instead. +func (*CrossSystemRefKey) Descriptor() ([]byte, []int) { + return file_entities_v1_entities_proto_rawDescGZIP(), []int{16} +} + +func (x *CrossSystemRefKey) GetIntegrationId() string { + if x != nil { + return x.IntegrationId + } + return "" +} + +func (x *CrossSystemRefKey) GetRecordId() string { + if x != nil { + return x.RecordId + } + return "" +} + +type MergeEntitiesRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + TargetCanonicalEntityId string `protobuf:"bytes,1,opt,name=target_canonical_entity_id,json=targetCanonicalEntityId,proto3" json:"target_canonical_entity_id,omitempty"` + SourceCanonicalEntityIds []string `protobuf:"bytes,2,rep,name=source_canonical_entity_ids,json=sourceCanonicalEntityIds,proto3" json:"source_canonical_entity_ids,omitempty"` + PrimaryType EntityType `protobuf:"varint,3,opt,name=primary_type,json=primaryType,proto3,enum=entities.v1.EntityType" json:"primary_type,omitempty"` + PrimaryName string `protobuf:"bytes,4,opt,name=primary_name,json=primaryName,proto3" json:"primary_name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MergeEntitiesRequest) Reset() { + *x = MergeEntitiesRequest{} + mi := &file_entities_v1_entities_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MergeEntitiesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MergeEntitiesRequest) ProtoMessage() {} + +func (x *MergeEntitiesRequest) ProtoReflect() protoreflect.Message { + mi := &file_entities_v1_entities_proto_msgTypes[17] + 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 MergeEntitiesRequest.ProtoReflect.Descriptor instead. +func (*MergeEntitiesRequest) Descriptor() ([]byte, []int) { + return file_entities_v1_entities_proto_rawDescGZIP(), []int{17} +} + +func (x *MergeEntitiesRequest) GetTargetCanonicalEntityId() string { + if x != nil { + return x.TargetCanonicalEntityId + } + return "" +} + +func (x *MergeEntitiesRequest) GetSourceCanonicalEntityIds() []string { + if x != nil { + return x.SourceCanonicalEntityIds + } + return nil +} + +func (x *MergeEntitiesRequest) GetPrimaryType() EntityType { + if x != nil { + return x.PrimaryType + } + return EntityType_ENTITY_TYPE_UNSPECIFIED +} + +func (x *MergeEntitiesRequest) GetPrimaryName() string { + if x != nil { + return x.PrimaryName + } + return "" +} + +type MergeEntitiesResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Entity *CanonicalEntity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` + MergedEntities []*CanonicalEntity `protobuf:"bytes,2,rep,name=merged_entities,json=mergedEntities,proto3" json:"merged_entities,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MergeEntitiesResponse) Reset() { + *x = MergeEntitiesResponse{} + mi := &file_entities_v1_entities_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MergeEntitiesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MergeEntitiesResponse) ProtoMessage() {} + +func (x *MergeEntitiesResponse) ProtoReflect() protoreflect.Message { + mi := &file_entities_v1_entities_proto_msgTypes[18] + 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 MergeEntitiesResponse.ProtoReflect.Descriptor instead. +func (*MergeEntitiesResponse) Descriptor() ([]byte, []int) { + return file_entities_v1_entities_proto_rawDescGZIP(), []int{18} +} + +func (x *MergeEntitiesResponse) GetEntity() *CanonicalEntity { + if x != nil { + return x.Entity + } + return nil +} + +func (x *MergeEntitiesResponse) GetMergedEntities() []*CanonicalEntity { + if x != nil { + return x.MergedEntities + } + return nil +} + +type SplitEntityRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + CanonicalEntityId string `protobuf:"bytes,1,opt,name=canonical_entity_id,json=canonicalEntityId,proto3" json:"canonical_entity_id,omitempty"` + Refs []*CrossSystemRefKey `protobuf:"bytes,2,rep,name=refs,proto3" json:"refs,omitempty"` + NewPrimaryType EntityType `protobuf:"varint,3,opt,name=new_primary_type,json=newPrimaryType,proto3,enum=entities.v1.EntityType" json:"new_primary_type,omitempty"` + NewPrimaryName string `protobuf:"bytes,4,opt,name=new_primary_name,json=newPrimaryName,proto3" json:"new_primary_name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SplitEntityRequest) Reset() { + *x = SplitEntityRequest{} + mi := &file_entities_v1_entities_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SplitEntityRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SplitEntityRequest) ProtoMessage() {} + +func (x *SplitEntityRequest) ProtoReflect() protoreflect.Message { + mi := &file_entities_v1_entities_proto_msgTypes[19] + 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 SplitEntityRequest.ProtoReflect.Descriptor instead. +func (*SplitEntityRequest) Descriptor() ([]byte, []int) { + return file_entities_v1_entities_proto_rawDescGZIP(), []int{19} +} + +func (x *SplitEntityRequest) GetCanonicalEntityId() string { + if x != nil { + return x.CanonicalEntityId + } + return "" +} + +func (x *SplitEntityRequest) GetRefs() []*CrossSystemRefKey { + if x != nil { + return x.Refs + } + return nil +} + +func (x *SplitEntityRequest) GetNewPrimaryType() EntityType { + if x != nil { + return x.NewPrimaryType + } + return EntityType_ENTITY_TYPE_UNSPECIFIED +} + +func (x *SplitEntityRequest) GetNewPrimaryName() string { + if x != nil { + return x.NewPrimaryName + } + return "" +} + +type SplitEntityResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + SourceEntity *CanonicalEntity `protobuf:"bytes,1,opt,name=source_entity,json=sourceEntity,proto3" json:"source_entity,omitempty"` + SplitEntity *CanonicalEntity `protobuf:"bytes,2,opt,name=split_entity,json=splitEntity,proto3" json:"split_entity,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SplitEntityResponse) Reset() { + *x = SplitEntityResponse{} + mi := &file_entities_v1_entities_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SplitEntityResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SplitEntityResponse) ProtoMessage() {} + +func (x *SplitEntityResponse) ProtoReflect() protoreflect.Message { + mi := &file_entities_v1_entities_proto_msgTypes[20] + 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 SplitEntityResponse.ProtoReflect.Descriptor instead. +func (*SplitEntityResponse) Descriptor() ([]byte, []int) { + return file_entities_v1_entities_proto_rawDescGZIP(), []int{20} +} + +func (x *SplitEntityResponse) GetSourceEntity() *CanonicalEntity { + if x != nil { + return x.SourceEntity + } + return nil +} + +func (x *SplitEntityResponse) GetSplitEntity() *CanonicalEntity { + if x != nil { + return x.SplitEntity + } + return nil +} + type GetCorrelationGraphRequest struct { state protoimpl.MessageState `protogen:"open.v1"` CanonicalEntityId string `protobuf:"bytes,1,opt,name=canonical_entity_id,json=canonicalEntityId,proto3" json:"canonical_entity_id,omitempty"` @@ -1109,7 +1401,7 @@ type GetCorrelationGraphRequest struct { func (x *GetCorrelationGraphRequest) Reset() { *x = GetCorrelationGraphRequest{} - mi := &file_entities_v1_entities_proto_msgTypes[16] + mi := &file_entities_v1_entities_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1121,7 +1413,7 @@ func (x *GetCorrelationGraphRequest) String() string { func (*GetCorrelationGraphRequest) ProtoMessage() {} func (x *GetCorrelationGraphRequest) ProtoReflect() protoreflect.Message { - mi := &file_entities_v1_entities_proto_msgTypes[16] + mi := &file_entities_v1_entities_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1134,7 +1426,7 @@ func (x *GetCorrelationGraphRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCorrelationGraphRequest.ProtoReflect.Descriptor instead. func (*GetCorrelationGraphRequest) Descriptor() ([]byte, []int) { - return file_entities_v1_entities_proto_rawDescGZIP(), []int{16} + return file_entities_v1_entities_proto_rawDescGZIP(), []int{21} } func (x *GetCorrelationGraphRequest) GetCanonicalEntityId() string { @@ -1160,7 +1452,7 @@ type GetCorrelationGraphResponse struct { func (x *GetCorrelationGraphResponse) Reset() { *x = GetCorrelationGraphResponse{} - mi := &file_entities_v1_entities_proto_msgTypes[17] + mi := &file_entities_v1_entities_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1172,7 +1464,7 @@ func (x *GetCorrelationGraphResponse) String() string { func (*GetCorrelationGraphResponse) ProtoMessage() {} func (x *GetCorrelationGraphResponse) ProtoReflect() protoreflect.Message { - mi := &file_entities_v1_entities_proto_msgTypes[17] + mi := &file_entities_v1_entities_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1185,7 +1477,7 @@ func (x *GetCorrelationGraphResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCorrelationGraphResponse.ProtoReflect.Descriptor instead. func (*GetCorrelationGraphResponse) Descriptor() ([]byte, []int) { - return file_entities_v1_entities_proto_rawDescGZIP(), []int{17} + return file_entities_v1_entities_proto_rawDescGZIP(), []int{22} } func (x *GetCorrelationGraphResponse) GetGroups() []*CorrelationGroup { @@ -1210,7 +1502,7 @@ type IngestResultRequest struct { func (x *IngestResultRequest) Reset() { *x = IngestResultRequest{} - mi := &file_entities_v1_entities_proto_msgTypes[18] + mi := &file_entities_v1_entities_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1222,7 +1514,7 @@ func (x *IngestResultRequest) String() string { func (*IngestResultRequest) ProtoMessage() {} func (x *IngestResultRequest) ProtoReflect() protoreflect.Message { - mi := &file_entities_v1_entities_proto_msgTypes[18] + mi := &file_entities_v1_entities_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1235,7 +1527,7 @@ func (x *IngestResultRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IngestResultRequest.ProtoReflect.Descriptor instead. func (*IngestResultRequest) Descriptor() ([]byte, []int) { - return file_entities_v1_entities_proto_rawDescGZIP(), []int{18} + return file_entities_v1_entities_proto_rawDescGZIP(), []int{23} } func (x *IngestResultRequest) GetWorkspaceId() string { @@ -1297,7 +1589,7 @@ type IngestResultResponse struct { func (x *IngestResultResponse) Reset() { *x = IngestResultResponse{} - mi := &file_entities_v1_entities_proto_msgTypes[19] + mi := &file_entities_v1_entities_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1309,7 +1601,7 @@ func (x *IngestResultResponse) String() string { func (*IngestResultResponse) ProtoMessage() {} func (x *IngestResultResponse) ProtoReflect() protoreflect.Message { - mi := &file_entities_v1_entities_proto_msgTypes[19] + mi := &file_entities_v1_entities_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1322,7 +1614,7 @@ func (x *IngestResultResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IngestResultResponse.ProtoReflect.Descriptor instead. func (*IngestResultResponse) Descriptor() ([]byte, []int) { - return file_entities_v1_entities_proto_rawDescGZIP(), []int{19} + return file_entities_v1_entities_proto_rawDescGZIP(), []int{24} } func (x *IngestResultResponse) GetEntity() *CanonicalEntity { @@ -1415,7 +1707,26 @@ const file_entities_v1_entities_proto_rawDesc = "" + "\x0eintegration_id\x18\x02 \x01(\tR\rintegrationId\x12\x1b\n" + "\trecord_id\x18\x03 \x01(\tR\brecordId\"L\n" + "\x14UnlinkEntityResponse\x124\n" + - "\x06entity\x18\x01 \x01(\v2\x1c.entities.v1.CanonicalEntityR\x06entity\"b\n" + + "\x06entity\x18\x01 \x01(\v2\x1c.entities.v1.CanonicalEntityR\x06entity\"W\n" + + "\x11CrossSystemRefKey\x12%\n" + + "\x0eintegration_id\x18\x01 \x01(\tR\rintegrationId\x12\x1b\n" + + "\trecord_id\x18\x02 \x01(\tR\brecordId\"\xf1\x01\n" + + "\x14MergeEntitiesRequest\x12;\n" + + "\x1atarget_canonical_entity_id\x18\x01 \x01(\tR\x17targetCanonicalEntityId\x12=\n" + + "\x1bsource_canonical_entity_ids\x18\x02 \x03(\tR\x18sourceCanonicalEntityIds\x12:\n" + + "\fprimary_type\x18\x03 \x01(\x0e2\x17.entities.v1.EntityTypeR\vprimaryType\x12!\n" + + "\fprimary_name\x18\x04 \x01(\tR\vprimaryName\"\x94\x01\n" + + "\x15MergeEntitiesResponse\x124\n" + + "\x06entity\x18\x01 \x01(\v2\x1c.entities.v1.CanonicalEntityR\x06entity\x12E\n" + + "\x0fmerged_entities\x18\x02 \x03(\v2\x1c.entities.v1.CanonicalEntityR\x0emergedEntities\"\xe5\x01\n" + + "\x12SplitEntityRequest\x12.\n" + + "\x13canonical_entity_id\x18\x01 \x01(\tR\x11canonicalEntityId\x122\n" + + "\x04refs\x18\x02 \x03(\v2\x1e.entities.v1.CrossSystemRefKeyR\x04refs\x12A\n" + + "\x10new_primary_type\x18\x03 \x01(\x0e2\x17.entities.v1.EntityTypeR\x0enewPrimaryType\x12(\n" + + "\x10new_primary_name\x18\x04 \x01(\tR\x0enewPrimaryName\"\x99\x01\n" + + "\x13SplitEntityResponse\x12A\n" + + "\rsource_entity\x18\x01 \x01(\v2\x1c.entities.v1.CanonicalEntityR\fsourceEntity\x12?\n" + + "\fsplit_entity\x18\x02 \x01(\v2\x1c.entities.v1.CanonicalEntityR\vsplitEntity\"b\n" + "\x1aGetCorrelationGraphRequest\x12.\n" + "\x13canonical_entity_id\x18\x01 \x01(\tR\x11canonicalEntityId\x12\x14\n" + "\x05depth\x18\x02 \x01(\x05R\x05depth\"T\n" + @@ -1448,7 +1759,7 @@ const file_entities_v1_entities_proto_rawDesc = "" + "\x13MATCH_METHOD_DOMAIN\x10\x02\x12\x1d\n" + "\x19MATCH_METHOD_COMPANY_NAME\x10\x03\x12\x1c\n" + "\x18MATCH_METHOD_RECORD_NAME\x10\x04\x12\x17\n" + - "\x13MATCH_METHOD_MANUAL\x10\x052\x9c\x05\n" + + "\x13MATCH_METHOD_MANUAL\x10\x052\xc6\x06\n" + "\rEntityService\x12D\n" + "\aResolve\x12\x1b.entities.v1.ResolveRequest\x1a\x1c.entities.v1.ResolveResponse\x12J\n" + "\tCorrelate\x12\x1d.entities.v1.CorrelateRequest\x1a\x1e.entities.v1.CorrelateResponse\x12S\n" + @@ -1456,7 +1767,9 @@ const file_entities_v1_entities_proto_rawDesc = "" + "\x06Search\x12\x1a.entities.v1.SearchRequest\x1a\x1b.entities.v1.SearchResponse\x12M\n" + "\n" + "LinkEntity\x12\x1e.entities.v1.LinkEntityRequest\x1a\x1f.entities.v1.LinkEntityResponse\x12S\n" + - "\fUnlinkEntity\x12 .entities.v1.UnlinkEntityRequest\x1a!.entities.v1.UnlinkEntityResponse\x12h\n" + + "\fUnlinkEntity\x12 .entities.v1.UnlinkEntityRequest\x1a!.entities.v1.UnlinkEntityResponse\x12V\n" + + "\rMergeEntities\x12!.entities.v1.MergeEntitiesRequest\x1a\".entities.v1.MergeEntitiesResponse\x12P\n" + + "\vSplitEntity\x12\x1f.entities.v1.SplitEntityRequest\x1a .entities.v1.SplitEntityResponse\x12h\n" + "\x13GetCorrelationGraph\x12'.entities.v1.GetCorrelationGraphRequest\x1a(.entities.v1.GetCorrelationGraphResponse\x12S\n" + "\fIngestResult\x12 .entities.v1.IngestResultRequest\x1a!.entities.v1.IngestResultResponseB8Z6github.com/evalops/proto/gen/go/entities/v1;entitiesv1b\x06proto3" @@ -1473,7 +1786,7 @@ func file_entities_v1_entities_proto_rawDescGZIP() []byte { } var file_entities_v1_entities_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_entities_v1_entities_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_entities_v1_entities_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_entities_v1_entities_proto_goTypes = []any{ (EntityType)(0), // 0: entities.v1.EntityType (MatchMethod)(0), // 1: entities.v1.MatchMethod @@ -1493,17 +1806,22 @@ var file_entities_v1_entities_proto_goTypes = []any{ (*LinkEntityResponse)(nil), // 15: entities.v1.LinkEntityResponse (*UnlinkEntityRequest)(nil), // 16: entities.v1.UnlinkEntityRequest (*UnlinkEntityResponse)(nil), // 17: entities.v1.UnlinkEntityResponse - (*GetCorrelationGraphRequest)(nil), // 18: entities.v1.GetCorrelationGraphRequest - (*GetCorrelationGraphResponse)(nil), // 19: entities.v1.GetCorrelationGraphResponse - (*IngestResultRequest)(nil), // 20: entities.v1.IngestResultRequest - (*IngestResultResponse)(nil), // 21: entities.v1.IngestResultResponse - (*timestamppb.Timestamp)(nil), // 22: google.protobuf.Timestamp + (*CrossSystemRefKey)(nil), // 18: entities.v1.CrossSystemRefKey + (*MergeEntitiesRequest)(nil), // 19: entities.v1.MergeEntitiesRequest + (*MergeEntitiesResponse)(nil), // 20: entities.v1.MergeEntitiesResponse + (*SplitEntityRequest)(nil), // 21: entities.v1.SplitEntityRequest + (*SplitEntityResponse)(nil), // 22: entities.v1.SplitEntityResponse + (*GetCorrelationGraphRequest)(nil), // 23: entities.v1.GetCorrelationGraphRequest + (*GetCorrelationGraphResponse)(nil), // 24: entities.v1.GetCorrelationGraphResponse + (*IngestResultRequest)(nil), // 25: entities.v1.IngestResultRequest + (*IngestResultResponse)(nil), // 26: entities.v1.IngestResultResponse + (*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp } var file_entities_v1_entities_proto_depIdxs = []int32{ 0, // 0: entities.v1.CanonicalEntity.primary_type:type_name -> entities.v1.EntityType 3, // 1: entities.v1.CanonicalEntity.refs:type_name -> entities.v1.CrossSystemRef - 22, // 2: entities.v1.CanonicalEntity.created_at:type_name -> google.protobuf.Timestamp - 22, // 3: entities.v1.CanonicalEntity.updated_at:type_name -> google.protobuf.Timestamp + 27, // 2: entities.v1.CanonicalEntity.created_at:type_name -> google.protobuf.Timestamp + 27, // 3: entities.v1.CanonicalEntity.updated_at:type_name -> google.protobuf.Timestamp 0, // 4: entities.v1.CrossSystemRef.entity_type:type_name -> entities.v1.EntityType 1, // 5: entities.v1.CorrelationMatch.matched_by:type_name -> entities.v1.MatchMethod 0, // 6: entities.v1.CorrelationGroup.primary_type:type_name -> entities.v1.EntityType @@ -1517,30 +1835,41 @@ var file_entities_v1_entities_proto_depIdxs = []int32{ 3, // 14: entities.v1.LinkEntityRequest.ref:type_name -> entities.v1.CrossSystemRef 2, // 15: entities.v1.LinkEntityResponse.entity:type_name -> entities.v1.CanonicalEntity 2, // 16: entities.v1.UnlinkEntityResponse.entity:type_name -> entities.v1.CanonicalEntity - 5, // 17: entities.v1.GetCorrelationGraphResponse.groups:type_name -> entities.v1.CorrelationGroup - 0, // 18: entities.v1.IngestResultRequest.entity_type:type_name -> entities.v1.EntityType - 2, // 19: entities.v1.IngestResultResponse.entity:type_name -> entities.v1.CanonicalEntity - 6, // 20: entities.v1.EntityService.Resolve:input_type -> entities.v1.ResolveRequest - 8, // 21: entities.v1.EntityService.Correlate:input_type -> entities.v1.CorrelateRequest - 10, // 22: entities.v1.EntityService.GetCanonical:input_type -> entities.v1.GetCanonicalRequest - 12, // 23: entities.v1.EntityService.Search:input_type -> entities.v1.SearchRequest - 14, // 24: entities.v1.EntityService.LinkEntity:input_type -> entities.v1.LinkEntityRequest - 16, // 25: entities.v1.EntityService.UnlinkEntity:input_type -> entities.v1.UnlinkEntityRequest - 18, // 26: entities.v1.EntityService.GetCorrelationGraph:input_type -> entities.v1.GetCorrelationGraphRequest - 20, // 27: entities.v1.EntityService.IngestResult:input_type -> entities.v1.IngestResultRequest - 7, // 28: entities.v1.EntityService.Resolve:output_type -> entities.v1.ResolveResponse - 9, // 29: entities.v1.EntityService.Correlate:output_type -> entities.v1.CorrelateResponse - 11, // 30: entities.v1.EntityService.GetCanonical:output_type -> entities.v1.GetCanonicalResponse - 13, // 31: entities.v1.EntityService.Search:output_type -> entities.v1.SearchResponse - 15, // 32: entities.v1.EntityService.LinkEntity:output_type -> entities.v1.LinkEntityResponse - 17, // 33: entities.v1.EntityService.UnlinkEntity:output_type -> entities.v1.UnlinkEntityResponse - 19, // 34: entities.v1.EntityService.GetCorrelationGraph:output_type -> entities.v1.GetCorrelationGraphResponse - 21, // 35: entities.v1.EntityService.IngestResult:output_type -> entities.v1.IngestResultResponse - 28, // [28:36] is the sub-list for method output_type - 20, // [20:28] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 0, // 17: entities.v1.MergeEntitiesRequest.primary_type:type_name -> entities.v1.EntityType + 2, // 18: entities.v1.MergeEntitiesResponse.entity:type_name -> entities.v1.CanonicalEntity + 2, // 19: entities.v1.MergeEntitiesResponse.merged_entities:type_name -> entities.v1.CanonicalEntity + 18, // 20: entities.v1.SplitEntityRequest.refs:type_name -> entities.v1.CrossSystemRefKey + 0, // 21: entities.v1.SplitEntityRequest.new_primary_type:type_name -> entities.v1.EntityType + 2, // 22: entities.v1.SplitEntityResponse.source_entity:type_name -> entities.v1.CanonicalEntity + 2, // 23: entities.v1.SplitEntityResponse.split_entity:type_name -> entities.v1.CanonicalEntity + 5, // 24: entities.v1.GetCorrelationGraphResponse.groups:type_name -> entities.v1.CorrelationGroup + 0, // 25: entities.v1.IngestResultRequest.entity_type:type_name -> entities.v1.EntityType + 2, // 26: entities.v1.IngestResultResponse.entity:type_name -> entities.v1.CanonicalEntity + 6, // 27: entities.v1.EntityService.Resolve:input_type -> entities.v1.ResolveRequest + 8, // 28: entities.v1.EntityService.Correlate:input_type -> entities.v1.CorrelateRequest + 10, // 29: entities.v1.EntityService.GetCanonical:input_type -> entities.v1.GetCanonicalRequest + 12, // 30: entities.v1.EntityService.Search:input_type -> entities.v1.SearchRequest + 14, // 31: entities.v1.EntityService.LinkEntity:input_type -> entities.v1.LinkEntityRequest + 16, // 32: entities.v1.EntityService.UnlinkEntity:input_type -> entities.v1.UnlinkEntityRequest + 19, // 33: entities.v1.EntityService.MergeEntities:input_type -> entities.v1.MergeEntitiesRequest + 21, // 34: entities.v1.EntityService.SplitEntity:input_type -> entities.v1.SplitEntityRequest + 23, // 35: entities.v1.EntityService.GetCorrelationGraph:input_type -> entities.v1.GetCorrelationGraphRequest + 25, // 36: entities.v1.EntityService.IngestResult:input_type -> entities.v1.IngestResultRequest + 7, // 37: entities.v1.EntityService.Resolve:output_type -> entities.v1.ResolveResponse + 9, // 38: entities.v1.EntityService.Correlate:output_type -> entities.v1.CorrelateResponse + 11, // 39: entities.v1.EntityService.GetCanonical:output_type -> entities.v1.GetCanonicalResponse + 13, // 40: entities.v1.EntityService.Search:output_type -> entities.v1.SearchResponse + 15, // 41: entities.v1.EntityService.LinkEntity:output_type -> entities.v1.LinkEntityResponse + 17, // 42: entities.v1.EntityService.UnlinkEntity:output_type -> entities.v1.UnlinkEntityResponse + 20, // 43: entities.v1.EntityService.MergeEntities:output_type -> entities.v1.MergeEntitiesResponse + 22, // 44: entities.v1.EntityService.SplitEntity:output_type -> entities.v1.SplitEntityResponse + 24, // 45: entities.v1.EntityService.GetCorrelationGraph:output_type -> entities.v1.GetCorrelationGraphResponse + 26, // 46: entities.v1.EntityService.IngestResult:output_type -> entities.v1.IngestResultResponse + 37, // [37:47] is the sub-list for method output_type + 27, // [27:37] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name } func init() { file_entities_v1_entities_proto_init() } @@ -1554,7 +1883,7 @@ func file_entities_v1_entities_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_entities_v1_entities_proto_rawDesc), len(file_entities_v1_entities_proto_rawDesc)), NumEnums: 2, - NumMessages: 20, + NumMessages: 25, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/go/entities/v1/entitiesv1connect/entities.connect.go b/gen/go/entities/v1/entitiesv1connect/entities.connect.go index 56113a2..f4fca89 100644 --- a/gen/go/entities/v1/entitiesv1connect/entities.connect.go +++ b/gen/go/entities/v1/entitiesv1connect/entities.connect.go @@ -48,6 +48,12 @@ const ( // EntityServiceUnlinkEntityProcedure is the fully-qualified name of the EntityService's // UnlinkEntity RPC. EntityServiceUnlinkEntityProcedure = "/entities.v1.EntityService/UnlinkEntity" + // EntityServiceMergeEntitiesProcedure is the fully-qualified name of the EntityService's + // MergeEntities RPC. + EntityServiceMergeEntitiesProcedure = "/entities.v1.EntityService/MergeEntities" + // EntityServiceSplitEntityProcedure is the fully-qualified name of the EntityService's SplitEntity + // RPC. + EntityServiceSplitEntityProcedure = "/entities.v1.EntityService/SplitEntity" // EntityServiceGetCorrelationGraphProcedure is the fully-qualified name of the EntityService's // GetCorrelationGraph RPC. EntityServiceGetCorrelationGraphProcedure = "/entities.v1.EntityService/GetCorrelationGraph" @@ -64,6 +70,8 @@ type EntityServiceClient interface { Search(context.Context, *connect.Request[v1.SearchRequest]) (*connect.Response[v1.SearchResponse], error) LinkEntity(context.Context, *connect.Request[v1.LinkEntityRequest]) (*connect.Response[v1.LinkEntityResponse], error) UnlinkEntity(context.Context, *connect.Request[v1.UnlinkEntityRequest]) (*connect.Response[v1.UnlinkEntityResponse], error) + MergeEntities(context.Context, *connect.Request[v1.MergeEntitiesRequest]) (*connect.Response[v1.MergeEntitiesResponse], error) + SplitEntity(context.Context, *connect.Request[v1.SplitEntityRequest]) (*connect.Response[v1.SplitEntityResponse], error) GetCorrelationGraph(context.Context, *connect.Request[v1.GetCorrelationGraphRequest]) (*connect.Response[v1.GetCorrelationGraphResponse], error) IngestResult(context.Context, *connect.Request[v1.IngestResultRequest]) (*connect.Response[v1.IngestResultResponse], error) } @@ -115,6 +123,18 @@ func NewEntityServiceClient(httpClient connect.HTTPClient, baseURL string, opts connect.WithSchema(entityServiceMethods.ByName("UnlinkEntity")), connect.WithClientOptions(opts...), ), + mergeEntities: connect.NewClient[v1.MergeEntitiesRequest, v1.MergeEntitiesResponse]( + httpClient, + baseURL+EntityServiceMergeEntitiesProcedure, + connect.WithSchema(entityServiceMethods.ByName("MergeEntities")), + connect.WithClientOptions(opts...), + ), + splitEntity: connect.NewClient[v1.SplitEntityRequest, v1.SplitEntityResponse]( + httpClient, + baseURL+EntityServiceSplitEntityProcedure, + connect.WithSchema(entityServiceMethods.ByName("SplitEntity")), + connect.WithClientOptions(opts...), + ), getCorrelationGraph: connect.NewClient[v1.GetCorrelationGraphRequest, v1.GetCorrelationGraphResponse]( httpClient, baseURL+EntityServiceGetCorrelationGraphProcedure, @@ -138,6 +158,8 @@ type entityServiceClient struct { search *connect.Client[v1.SearchRequest, v1.SearchResponse] linkEntity *connect.Client[v1.LinkEntityRequest, v1.LinkEntityResponse] unlinkEntity *connect.Client[v1.UnlinkEntityRequest, v1.UnlinkEntityResponse] + mergeEntities *connect.Client[v1.MergeEntitiesRequest, v1.MergeEntitiesResponse] + splitEntity *connect.Client[v1.SplitEntityRequest, v1.SplitEntityResponse] getCorrelationGraph *connect.Client[v1.GetCorrelationGraphRequest, v1.GetCorrelationGraphResponse] ingestResult *connect.Client[v1.IngestResultRequest, v1.IngestResultResponse] } @@ -172,6 +194,16 @@ func (c *entityServiceClient) UnlinkEntity(ctx context.Context, req *connect.Req return c.unlinkEntity.CallUnary(ctx, req) } +// MergeEntities calls entities.v1.EntityService.MergeEntities. +func (c *entityServiceClient) MergeEntities(ctx context.Context, req *connect.Request[v1.MergeEntitiesRequest]) (*connect.Response[v1.MergeEntitiesResponse], error) { + return c.mergeEntities.CallUnary(ctx, req) +} + +// SplitEntity calls entities.v1.EntityService.SplitEntity. +func (c *entityServiceClient) SplitEntity(ctx context.Context, req *connect.Request[v1.SplitEntityRequest]) (*connect.Response[v1.SplitEntityResponse], error) { + return c.splitEntity.CallUnary(ctx, req) +} + // GetCorrelationGraph calls entities.v1.EntityService.GetCorrelationGraph. func (c *entityServiceClient) GetCorrelationGraph(ctx context.Context, req *connect.Request[v1.GetCorrelationGraphRequest]) (*connect.Response[v1.GetCorrelationGraphResponse], error) { return c.getCorrelationGraph.CallUnary(ctx, req) @@ -190,6 +222,8 @@ type EntityServiceHandler interface { Search(context.Context, *connect.Request[v1.SearchRequest]) (*connect.Response[v1.SearchResponse], error) LinkEntity(context.Context, *connect.Request[v1.LinkEntityRequest]) (*connect.Response[v1.LinkEntityResponse], error) UnlinkEntity(context.Context, *connect.Request[v1.UnlinkEntityRequest]) (*connect.Response[v1.UnlinkEntityResponse], error) + MergeEntities(context.Context, *connect.Request[v1.MergeEntitiesRequest]) (*connect.Response[v1.MergeEntitiesResponse], error) + SplitEntity(context.Context, *connect.Request[v1.SplitEntityRequest]) (*connect.Response[v1.SplitEntityResponse], error) GetCorrelationGraph(context.Context, *connect.Request[v1.GetCorrelationGraphRequest]) (*connect.Response[v1.GetCorrelationGraphResponse], error) IngestResult(context.Context, *connect.Request[v1.IngestResultRequest]) (*connect.Response[v1.IngestResultResponse], error) } @@ -237,6 +271,18 @@ func NewEntityServiceHandler(svc EntityServiceHandler, opts ...connect.HandlerOp connect.WithSchema(entityServiceMethods.ByName("UnlinkEntity")), connect.WithHandlerOptions(opts...), ) + entityServiceMergeEntitiesHandler := connect.NewUnaryHandler( + EntityServiceMergeEntitiesProcedure, + svc.MergeEntities, + connect.WithSchema(entityServiceMethods.ByName("MergeEntities")), + connect.WithHandlerOptions(opts...), + ) + entityServiceSplitEntityHandler := connect.NewUnaryHandler( + EntityServiceSplitEntityProcedure, + svc.SplitEntity, + connect.WithSchema(entityServiceMethods.ByName("SplitEntity")), + connect.WithHandlerOptions(opts...), + ) entityServiceGetCorrelationGraphHandler := connect.NewUnaryHandler( EntityServiceGetCorrelationGraphProcedure, svc.GetCorrelationGraph, @@ -263,6 +309,10 @@ func NewEntityServiceHandler(svc EntityServiceHandler, opts ...connect.HandlerOp entityServiceLinkEntityHandler.ServeHTTP(w, r) case EntityServiceUnlinkEntityProcedure: entityServiceUnlinkEntityHandler.ServeHTTP(w, r) + case EntityServiceMergeEntitiesProcedure: + entityServiceMergeEntitiesHandler.ServeHTTP(w, r) + case EntityServiceSplitEntityProcedure: + entityServiceSplitEntityHandler.ServeHTTP(w, r) case EntityServiceGetCorrelationGraphProcedure: entityServiceGetCorrelationGraphHandler.ServeHTTP(w, r) case EntityServiceIngestResultProcedure: @@ -300,6 +350,14 @@ func (UnimplementedEntityServiceHandler) UnlinkEntity(context.Context, *connect. return nil, connect.NewError(connect.CodeUnimplemented, errors.New("entities.v1.EntityService.UnlinkEntity is not implemented")) } +func (UnimplementedEntityServiceHandler) MergeEntities(context.Context, *connect.Request[v1.MergeEntitiesRequest]) (*connect.Response[v1.MergeEntitiesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("entities.v1.EntityService.MergeEntities is not implemented")) +} + +func (UnimplementedEntityServiceHandler) SplitEntity(context.Context, *connect.Request[v1.SplitEntityRequest]) (*connect.Response[v1.SplitEntityResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("entities.v1.EntityService.SplitEntity is not implemented")) +} + func (UnimplementedEntityServiceHandler) GetCorrelationGraph(context.Context, *connect.Request[v1.GetCorrelationGraphRequest]) (*connect.Response[v1.GetCorrelationGraphResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("entities.v1.EntityService.GetCorrelationGraph is not implemented")) } diff --git a/gen/python/entities/v1/entities_pb2.py b/gen/python/entities/v1/entities_pb2.py index 3ed7170..e07dbea 100644 --- a/gen/python/entities/v1/entities_pb2.py +++ b/gen/python/entities/v1/entities_pb2.py @@ -25,7 +25,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x65ntities/v1/entities.proto\x12\x0b\x65ntities.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\xca\x02\n\x0f\x43\x61nonicalEntity\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0cworkspace_id\x18\x02 \x01(\tR\x0bworkspaceId\x12:\n\x0cprimary_type\x18\x03 \x01(\x0e\x32\x17.entities.v1.EntityTypeR\x0bprimaryType\x12!\n\x0cprimary_name\x18\x04 \x01(\tR\x0bprimaryName\x12/\n\x04refs\x18\x05 \x03(\x0b\x32\x1b.entities.v1.CrossSystemRefR\x04refs\x12\x39\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\"\x83\x02\n\x0e\x43rossSystemRef\x12%\n\x0eintegration_id\x18\x01 \x01(\tR\rintegrationId\x12\x1b\n\trecord_id\x18\x02 \x01(\tR\x08recordId\x12\x38\n\x0b\x65ntity_type\x18\x03 \x01(\x0e\x32\x17.entities.v1.EntityTypeR\nentityType\x12!\n\x0c\x64isplay_name\x18\x04 \x01(\tR\x0b\x64isplayName\x12\x16\n\x06\x65mails\x18\x05 \x03(\tR\x06\x65mails\x12\x18\n\x07\x64omains\x18\x06 \x03(\tR\x07\x64omains\x12\x1e\n\nconfidence\x18\x07 \x01(\x02R\nconfidence\"\x90\x01\n\x10\x43orrelationMatch\x12\x37\n\nmatched_by\x18\x01 \x01(\x0e\x32\x18.entities.v1.MatchMethodR\tmatchedBy\x12#\n\rmatched_value\x18\x02 \x01(\tR\x0cmatchedValue\x12\x1e\n\nconfidence\x18\x03 \x01(\x02R\nconfidence\"\xf4\x01\n\x10\x43orrelationGroup\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0cprimary_name\x18\x02 \x01(\tR\x0bprimaryName\x12:\n\x0cprimary_type\x18\x03 \x01(\x0e\x32\x17.entities.v1.EntityTypeR\x0bprimaryType\x12\x38\n\x08\x65ntities\x18\x04 \x03(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x08\x65ntities\x12\x37\n\x07matches\x18\x05 \x03(\x0b\x32\x1d.entities.v1.CorrelationMatchR\x07matches\"w\n\x0eResolveRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12%\n\x0eintegration_id\x18\x02 \x01(\tR\rintegrationId\x12\x1b\n\trecord_id\x18\x03 \x01(\tR\x08recordId\"G\n\x0fResolveResponse\x12\x34\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x06\x65ntity\"\x8a\x01\n\x10\x43orrelateRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12\x16\n\x06\x65mails\x18\x02 \x03(\tR\x06\x65mails\x12\x18\n\x07\x64omains\x18\x03 \x03(\tR\x07\x64omains\x12!\n\x0c\x63ompany_name\x18\x04 \x01(\tR\x0b\x63ompanyName\"J\n\x11\x43orrelateResponse\x12\x35\n\x06groups\x18\x01 \x03(\x0b\x32\x1d.entities.v1.CorrelationGroupR\x06groups\"%\n\x13GetCanonicalRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"L\n\x14GetCanonicalResponse\x12\x34\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x06\x65ntity\"\xb0\x01\n\rSearchRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12\x14\n\x05query\x18\x02 \x01(\tR\x05query\x12\x38\n\x0b\x65ntity_type\x18\x03 \x01(\x0e\x32\x17.entities.v1.EntityTypeR\nentityType\x12\x14\n\x05limit\x18\x04 \x01(\x05R\x05limit\x12\x16\n\x06offset\x18\x05 \x01(\x05R\x06offset\"`\n\x0eSearchResponse\x12\x38\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x08\x65ntities\x12\x14\n\x05total\x18\x02 \x01(\x05R\x05total\"r\n\x11LinkEntityRequest\x12.\n\x13\x63\x61nonical_entity_id\x18\x01 \x01(\tR\x11\x63\x61nonicalEntityId\x12-\n\x03ref\x18\x02 \x01(\x0b\x32\x1b.entities.v1.CrossSystemRefR\x03ref\"J\n\x12LinkEntityResponse\x12\x34\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x06\x65ntity\"\x89\x01\n\x13UnlinkEntityRequest\x12.\n\x13\x63\x61nonical_entity_id\x18\x01 \x01(\tR\x11\x63\x61nonicalEntityId\x12%\n\x0eintegration_id\x18\x02 \x01(\tR\rintegrationId\x12\x1b\n\trecord_id\x18\x03 \x01(\tR\x08recordId\"L\n\x14UnlinkEntityResponse\x12\x34\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x06\x65ntity\"b\n\x1aGetCorrelationGraphRequest\x12.\n\x13\x63\x61nonical_entity_id\x18\x01 \x01(\tR\x11\x63\x61nonicalEntityId\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x05R\x05\x64\x65pth\"T\n\x1bGetCorrelationGraphResponse\x12\x35\n\x06groups\x18\x01 \x03(\x0b\x32\x1d.entities.v1.CorrelationGroupR\x06groups\"\x8b\x02\n\x13IngestResultRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12%\n\x0eintegration_id\x18\x02 \x01(\tR\rintegrationId\x12\x1b\n\trecord_id\x18\x03 \x01(\tR\x08recordId\x12\x38\n\x0b\x65ntity_type\x18\x04 \x01(\x0e\x32\x17.entities.v1.EntityTypeR\nentityType\x12!\n\x0c\x64isplay_name\x18\x05 \x01(\tR\x0b\x64isplayName\x12\x16\n\x06\x65mails\x18\x06 \x03(\tR\x06\x65mails\x12\x18\n\x07\x64omains\x18\x07 \x03(\tR\x07\x64omains\"f\n\x14IngestResultResponse\x12\x34\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x06\x65ntity\x12\x18\n\x07\x63reated\x18\x02 \x01(\x08R\x07\x63reated*\xc0\x01\n\nEntityType\x12\x1b\n\x17\x45NTITY_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13\x45NTITY_TYPE_CONTACT\x10\x01\x12\x17\n\x13\x45NTITY_TYPE_COMPANY\x10\x02\x12\x14\n\x10\x45NTITY_TYPE_DEAL\x10\x03\x12\x16\n\x12\x45NTITY_TYPE_TICKET\x10\x04\x12\x18\n\x14\x45NTITY_TYPE_CUSTOMER\x10\x05\x12\x1b\n\x17\x45NTITY_TYPE_OPPORTUNITY\x10\x06*\xb2\x01\n\x0bMatchMethod\x12\x1c\n\x18MATCH_METHOD_UNSPECIFIED\x10\x00\x12\x16\n\x12MATCH_METHOD_EMAIL\x10\x01\x12\x17\n\x13MATCH_METHOD_DOMAIN\x10\x02\x12\x1d\n\x19MATCH_METHOD_COMPANY_NAME\x10\x03\x12\x1c\n\x18MATCH_METHOD_RECORD_NAME\x10\x04\x12\x17\n\x13MATCH_METHOD_MANUAL\x10\x05\x32\x9c\x05\n\rEntityService\x12\x44\n\x07Resolve\x12\x1b.entities.v1.ResolveRequest\x1a\x1c.entities.v1.ResolveResponse\x12J\n\tCorrelate\x12\x1d.entities.v1.CorrelateRequest\x1a\x1e.entities.v1.CorrelateResponse\x12S\n\x0cGetCanonical\x12 .entities.v1.GetCanonicalRequest\x1a!.entities.v1.GetCanonicalResponse\x12\x41\n\x06Search\x12\x1a.entities.v1.SearchRequest\x1a\x1b.entities.v1.SearchResponse\x12M\n\nLinkEntity\x12\x1e.entities.v1.LinkEntityRequest\x1a\x1f.entities.v1.LinkEntityResponse\x12S\n\x0cUnlinkEntity\x12 .entities.v1.UnlinkEntityRequest\x1a!.entities.v1.UnlinkEntityResponse\x12h\n\x13GetCorrelationGraph\x12\'.entities.v1.GetCorrelationGraphRequest\x1a(.entities.v1.GetCorrelationGraphResponse\x12S\n\x0cIngestResult\x12 .entities.v1.IngestResultRequest\x1a!.entities.v1.IngestResultResponseB8Z6github.com/evalops/proto/gen/go/entities/v1;entitiesv1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x65ntities/v1/entities.proto\x12\x0b\x65ntities.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\xca\x02\n\x0f\x43\x61nonicalEntity\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0cworkspace_id\x18\x02 \x01(\tR\x0bworkspaceId\x12:\n\x0cprimary_type\x18\x03 \x01(\x0e\x32\x17.entities.v1.EntityTypeR\x0bprimaryType\x12!\n\x0cprimary_name\x18\x04 \x01(\tR\x0bprimaryName\x12/\n\x04refs\x18\x05 \x03(\x0b\x32\x1b.entities.v1.CrossSystemRefR\x04refs\x12\x39\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\"\x83\x02\n\x0e\x43rossSystemRef\x12%\n\x0eintegration_id\x18\x01 \x01(\tR\rintegrationId\x12\x1b\n\trecord_id\x18\x02 \x01(\tR\x08recordId\x12\x38\n\x0b\x65ntity_type\x18\x03 \x01(\x0e\x32\x17.entities.v1.EntityTypeR\nentityType\x12!\n\x0c\x64isplay_name\x18\x04 \x01(\tR\x0b\x64isplayName\x12\x16\n\x06\x65mails\x18\x05 \x03(\tR\x06\x65mails\x12\x18\n\x07\x64omains\x18\x06 \x03(\tR\x07\x64omains\x12\x1e\n\nconfidence\x18\x07 \x01(\x02R\nconfidence\"\x90\x01\n\x10\x43orrelationMatch\x12\x37\n\nmatched_by\x18\x01 \x01(\x0e\x32\x18.entities.v1.MatchMethodR\tmatchedBy\x12#\n\rmatched_value\x18\x02 \x01(\tR\x0cmatchedValue\x12\x1e\n\nconfidence\x18\x03 \x01(\x02R\nconfidence\"\xf4\x01\n\x10\x43orrelationGroup\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0cprimary_name\x18\x02 \x01(\tR\x0bprimaryName\x12:\n\x0cprimary_type\x18\x03 \x01(\x0e\x32\x17.entities.v1.EntityTypeR\x0bprimaryType\x12\x38\n\x08\x65ntities\x18\x04 \x03(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x08\x65ntities\x12\x37\n\x07matches\x18\x05 \x03(\x0b\x32\x1d.entities.v1.CorrelationMatchR\x07matches\"w\n\x0eResolveRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12%\n\x0eintegration_id\x18\x02 \x01(\tR\rintegrationId\x12\x1b\n\trecord_id\x18\x03 \x01(\tR\x08recordId\"G\n\x0fResolveResponse\x12\x34\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x06\x65ntity\"\x8a\x01\n\x10\x43orrelateRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12\x16\n\x06\x65mails\x18\x02 \x03(\tR\x06\x65mails\x12\x18\n\x07\x64omains\x18\x03 \x03(\tR\x07\x64omains\x12!\n\x0c\x63ompany_name\x18\x04 \x01(\tR\x0b\x63ompanyName\"J\n\x11\x43orrelateResponse\x12\x35\n\x06groups\x18\x01 \x03(\x0b\x32\x1d.entities.v1.CorrelationGroupR\x06groups\"%\n\x13GetCanonicalRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"L\n\x14GetCanonicalResponse\x12\x34\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x06\x65ntity\"\xb0\x01\n\rSearchRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12\x14\n\x05query\x18\x02 \x01(\tR\x05query\x12\x38\n\x0b\x65ntity_type\x18\x03 \x01(\x0e\x32\x17.entities.v1.EntityTypeR\nentityType\x12\x14\n\x05limit\x18\x04 \x01(\x05R\x05limit\x12\x16\n\x06offset\x18\x05 \x01(\x05R\x06offset\"`\n\x0eSearchResponse\x12\x38\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x08\x65ntities\x12\x14\n\x05total\x18\x02 \x01(\x05R\x05total\"r\n\x11LinkEntityRequest\x12.\n\x13\x63\x61nonical_entity_id\x18\x01 \x01(\tR\x11\x63\x61nonicalEntityId\x12-\n\x03ref\x18\x02 \x01(\x0b\x32\x1b.entities.v1.CrossSystemRefR\x03ref\"J\n\x12LinkEntityResponse\x12\x34\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x06\x65ntity\"\x89\x01\n\x13UnlinkEntityRequest\x12.\n\x13\x63\x61nonical_entity_id\x18\x01 \x01(\tR\x11\x63\x61nonicalEntityId\x12%\n\x0eintegration_id\x18\x02 \x01(\tR\rintegrationId\x12\x1b\n\trecord_id\x18\x03 \x01(\tR\x08recordId\"L\n\x14UnlinkEntityResponse\x12\x34\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x06\x65ntity\"W\n\x11\x43rossSystemRefKey\x12%\n\x0eintegration_id\x18\x01 \x01(\tR\rintegrationId\x12\x1b\n\trecord_id\x18\x02 \x01(\tR\x08recordId\"\xf1\x01\n\x14MergeEntitiesRequest\x12;\n\x1atarget_canonical_entity_id\x18\x01 \x01(\tR\x17targetCanonicalEntityId\x12=\n\x1bsource_canonical_entity_ids\x18\x02 \x03(\tR\x18sourceCanonicalEntityIds\x12:\n\x0cprimary_type\x18\x03 \x01(\x0e\x32\x17.entities.v1.EntityTypeR\x0bprimaryType\x12!\n\x0cprimary_name\x18\x04 \x01(\tR\x0bprimaryName\"\x94\x01\n\x15MergeEntitiesResponse\x12\x34\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x06\x65ntity\x12\x45\n\x0fmerged_entities\x18\x02 \x03(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x0emergedEntities\"\xe5\x01\n\x12SplitEntityRequest\x12.\n\x13\x63\x61nonical_entity_id\x18\x01 \x01(\tR\x11\x63\x61nonicalEntityId\x12\x32\n\x04refs\x18\x02 \x03(\x0b\x32\x1e.entities.v1.CrossSystemRefKeyR\x04refs\x12\x41\n\x10new_primary_type\x18\x03 \x01(\x0e\x32\x17.entities.v1.EntityTypeR\x0enewPrimaryType\x12(\n\x10new_primary_name\x18\x04 \x01(\tR\x0enewPrimaryName\"\x99\x01\n\x13SplitEntityResponse\x12\x41\n\rsource_entity\x18\x01 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x0csourceEntity\x12?\n\x0csplit_entity\x18\x02 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x0bsplitEntity\"b\n\x1aGetCorrelationGraphRequest\x12.\n\x13\x63\x61nonical_entity_id\x18\x01 \x01(\tR\x11\x63\x61nonicalEntityId\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x05R\x05\x64\x65pth\"T\n\x1bGetCorrelationGraphResponse\x12\x35\n\x06groups\x18\x01 \x03(\x0b\x32\x1d.entities.v1.CorrelationGroupR\x06groups\"\x8b\x02\n\x13IngestResultRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12%\n\x0eintegration_id\x18\x02 \x01(\tR\rintegrationId\x12\x1b\n\trecord_id\x18\x03 \x01(\tR\x08recordId\x12\x38\n\x0b\x65ntity_type\x18\x04 \x01(\x0e\x32\x17.entities.v1.EntityTypeR\nentityType\x12!\n\x0c\x64isplay_name\x18\x05 \x01(\tR\x0b\x64isplayName\x12\x16\n\x06\x65mails\x18\x06 \x03(\tR\x06\x65mails\x12\x18\n\x07\x64omains\x18\x07 \x03(\tR\x07\x64omains\"f\n\x14IngestResultResponse\x12\x34\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x1c.entities.v1.CanonicalEntityR\x06\x65ntity\x12\x18\n\x07\x63reated\x18\x02 \x01(\x08R\x07\x63reated*\xc0\x01\n\nEntityType\x12\x1b\n\x17\x45NTITY_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13\x45NTITY_TYPE_CONTACT\x10\x01\x12\x17\n\x13\x45NTITY_TYPE_COMPANY\x10\x02\x12\x14\n\x10\x45NTITY_TYPE_DEAL\x10\x03\x12\x16\n\x12\x45NTITY_TYPE_TICKET\x10\x04\x12\x18\n\x14\x45NTITY_TYPE_CUSTOMER\x10\x05\x12\x1b\n\x17\x45NTITY_TYPE_OPPORTUNITY\x10\x06*\xb2\x01\n\x0bMatchMethod\x12\x1c\n\x18MATCH_METHOD_UNSPECIFIED\x10\x00\x12\x16\n\x12MATCH_METHOD_EMAIL\x10\x01\x12\x17\n\x13MATCH_METHOD_DOMAIN\x10\x02\x12\x1d\n\x19MATCH_METHOD_COMPANY_NAME\x10\x03\x12\x1c\n\x18MATCH_METHOD_RECORD_NAME\x10\x04\x12\x17\n\x13MATCH_METHOD_MANUAL\x10\x05\x32\xc6\x06\n\rEntityService\x12\x44\n\x07Resolve\x12\x1b.entities.v1.ResolveRequest\x1a\x1c.entities.v1.ResolveResponse\x12J\n\tCorrelate\x12\x1d.entities.v1.CorrelateRequest\x1a\x1e.entities.v1.CorrelateResponse\x12S\n\x0cGetCanonical\x12 .entities.v1.GetCanonicalRequest\x1a!.entities.v1.GetCanonicalResponse\x12\x41\n\x06Search\x12\x1a.entities.v1.SearchRequest\x1a\x1b.entities.v1.SearchResponse\x12M\n\nLinkEntity\x12\x1e.entities.v1.LinkEntityRequest\x1a\x1f.entities.v1.LinkEntityResponse\x12S\n\x0cUnlinkEntity\x12 .entities.v1.UnlinkEntityRequest\x1a!.entities.v1.UnlinkEntityResponse\x12V\n\rMergeEntities\x12!.entities.v1.MergeEntitiesRequest\x1a\".entities.v1.MergeEntitiesResponse\x12P\n\x0bSplitEntity\x12\x1f.entities.v1.SplitEntityRequest\x1a .entities.v1.SplitEntityResponse\x12h\n\x13GetCorrelationGraph\x12\'.entities.v1.GetCorrelationGraphRequest\x1a(.entities.v1.GetCorrelationGraphResponse\x12S\n\x0cIngestResult\x12 .entities.v1.IngestResultRequest\x1a!.entities.v1.IngestResultResponseB8Z6github.com/evalops/proto/gen/go/entities/v1;entitiesv1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -33,10 +33,10 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'Z6github.com/evalops/proto/gen/go/entities/v1;entitiesv1' - _globals['_ENTITYTYPE']._serialized_start=2841 - _globals['_ENTITYTYPE']._serialized_end=3033 - _globals['_MATCHMETHOD']._serialized_start=3036 - _globals['_MATCHMETHOD']._serialized_end=3214 + _globals['_ENTITYTYPE']._serialized_start=3713 + _globals['_ENTITYTYPE']._serialized_end=3905 + _globals['_MATCHMETHOD']._serialized_start=3908 + _globals['_MATCHMETHOD']._serialized_end=4086 _globals['_CANONICALENTITY']._serialized_start=77 _globals['_CANONICALENTITY']._serialized_end=407 _globals['_CROSSSYSTEMREF']._serialized_start=410 @@ -69,14 +69,24 @@ _globals['_UNLINKENTITYREQUEST']._serialized_end=2200 _globals['_UNLINKENTITYRESPONSE']._serialized_start=2202 _globals['_UNLINKENTITYRESPONSE']._serialized_end=2278 - _globals['_GETCORRELATIONGRAPHREQUEST']._serialized_start=2280 - _globals['_GETCORRELATIONGRAPHREQUEST']._serialized_end=2378 - _globals['_GETCORRELATIONGRAPHRESPONSE']._serialized_start=2380 - _globals['_GETCORRELATIONGRAPHRESPONSE']._serialized_end=2464 - _globals['_INGESTRESULTREQUEST']._serialized_start=2467 - _globals['_INGESTRESULTREQUEST']._serialized_end=2734 - _globals['_INGESTRESULTRESPONSE']._serialized_start=2736 - _globals['_INGESTRESULTRESPONSE']._serialized_end=2838 - _globals['_ENTITYSERVICE']._serialized_start=3217 - _globals['_ENTITYSERVICE']._serialized_end=3885 + _globals['_CROSSSYSTEMREFKEY']._serialized_start=2280 + _globals['_CROSSSYSTEMREFKEY']._serialized_end=2367 + _globals['_MERGEENTITIESREQUEST']._serialized_start=2370 + _globals['_MERGEENTITIESREQUEST']._serialized_end=2611 + _globals['_MERGEENTITIESRESPONSE']._serialized_start=2614 + _globals['_MERGEENTITIESRESPONSE']._serialized_end=2762 + _globals['_SPLITENTITYREQUEST']._serialized_start=2765 + _globals['_SPLITENTITYREQUEST']._serialized_end=2994 + _globals['_SPLITENTITYRESPONSE']._serialized_start=2997 + _globals['_SPLITENTITYRESPONSE']._serialized_end=3150 + _globals['_GETCORRELATIONGRAPHREQUEST']._serialized_start=3152 + _globals['_GETCORRELATIONGRAPHREQUEST']._serialized_end=3250 + _globals['_GETCORRELATIONGRAPHRESPONSE']._serialized_start=3252 + _globals['_GETCORRELATIONGRAPHRESPONSE']._serialized_end=3336 + _globals['_INGESTRESULTREQUEST']._serialized_start=3339 + _globals['_INGESTRESULTREQUEST']._serialized_end=3606 + _globals['_INGESTRESULTRESPONSE']._serialized_start=3608 + _globals['_INGESTRESULTRESPONSE']._serialized_end=3710 + _globals['_ENTITYSERVICE']._serialized_start=4089 + _globals['_ENTITYSERVICE']._serialized_end=4927 # @@protoc_insertion_point(module_scope) diff --git a/gen/ts/entities/v1/entities_connect.ts b/gen/ts/entities/v1/entities_connect.ts index 2537c42..bba77c0 100644 --- a/gen/ts/entities/v1/entities_connect.ts +++ b/gen/ts/entities/v1/entities_connect.ts @@ -3,7 +3,7 @@ /* eslint-disable */ // @ts-nocheck -import { CorrelateRequest, CorrelateResponse, GetCanonicalRequest, GetCanonicalResponse, GetCorrelationGraphRequest, GetCorrelationGraphResponse, IngestResultRequest, IngestResultResponse, LinkEntityRequest, LinkEntityResponse, ResolveRequest, ResolveResponse, SearchRequest, SearchResponse, UnlinkEntityRequest, UnlinkEntityResponse } from "./entities_pb.js"; +import { CorrelateRequest, CorrelateResponse, GetCanonicalRequest, GetCanonicalResponse, GetCorrelationGraphRequest, GetCorrelationGraphResponse, IngestResultRequest, IngestResultResponse, LinkEntityRequest, LinkEntityResponse, MergeEntitiesRequest, MergeEntitiesResponse, ResolveRequest, ResolveResponse, SearchRequest, SearchResponse, SplitEntityRequest, SplitEntityResponse, UnlinkEntityRequest, UnlinkEntityResponse } from "./entities_pb.js"; import { MethodKind } from "@bufbuild/protobuf"; /** @@ -68,6 +68,24 @@ export const EntityService = { O: UnlinkEntityResponse, kind: MethodKind.Unary, }, + /** + * @generated from rpc entities.v1.EntityService.MergeEntities + */ + mergeEntities: { + name: "MergeEntities", + I: MergeEntitiesRequest, + O: MergeEntitiesResponse, + kind: MethodKind.Unary, + }, + /** + * @generated from rpc entities.v1.EntityService.SplitEntity + */ + splitEntity: { + name: "SplitEntity", + I: SplitEntityRequest, + O: SplitEntityResponse, + kind: MethodKind.Unary, + }, /** * @generated from rpc entities.v1.EntityService.GetCorrelationGraph */ diff --git a/gen/ts/entities/v1/entities_pb.ts b/gen/ts/entities/v1/entities_pb.ts index 893e5d7..8b813dd 100644 --- a/gen/ts/entities/v1/entities_pb.ts +++ b/gen/ts/entities/v1/entities_pb.ts @@ -12,7 +12,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file entities/v1/entities.proto. */ export const file_entities_v1_entities: GenFile = /*@__PURE__*/ - fileDesc("ChplbnRpdGllcy92MS9lbnRpdGllcy5wcm90bxILZW50aXRpZXMudjEigwIKD0Nhbm9uaWNhbEVudGl0eRIKCgJpZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSLQoMcHJpbWFyeV90eXBlGAMgASgOMhcuZW50aXRpZXMudjEuRW50aXR5VHlwZRIUCgxwcmltYXJ5X25hbWUYBCABKAkSKQoEcmVmcxgFIAMoCzIbLmVudGl0aWVzLnYxLkNyb3NzU3lzdGVtUmVmEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIrQBCg5Dcm9zc1N5c3RlbVJlZhIWCg5pbnRlZ3JhdGlvbl9pZBgBIAEoCRIRCglyZWNvcmRfaWQYAiABKAkSLAoLZW50aXR5X3R5cGUYAyABKA4yFy5lbnRpdGllcy52MS5FbnRpdHlUeXBlEhQKDGRpc3BsYXlfbmFtZRgEIAEoCRIOCgZlbWFpbHMYBSADKAkSDwoHZG9tYWlucxgGIAMoCRISCgpjb25maWRlbmNlGAcgASgCImsKEENvcnJlbGF0aW9uTWF0Y2gSLAoKbWF0Y2hlZF9ieRgBIAEoDjIYLmVudGl0aWVzLnYxLk1hdGNoTWV0aG9kEhUKDW1hdGNoZWRfdmFsdWUYAiABKAkSEgoKY29uZmlkZW5jZRgDIAEoAiLDAQoQQ29ycmVsYXRpb25Hcm91cBIKCgJpZBgBIAEoCRIUCgxwcmltYXJ5X25hbWUYAiABKAkSLQoMcHJpbWFyeV90eXBlGAMgASgOMhcuZW50aXRpZXMudjEuRW50aXR5VHlwZRIuCghlbnRpdGllcxgEIAMoCzIcLmVudGl0aWVzLnYxLkNhbm9uaWNhbEVudGl0eRIuCgdtYXRjaGVzGAUgAygLMh0uZW50aXRpZXMudjEuQ29ycmVsYXRpb25NYXRjaCJRCg5SZXNvbHZlUmVxdWVzdBIUCgx3b3Jrc3BhY2VfaWQYASABKAkSFgoOaW50ZWdyYXRpb25faWQYAiABKAkSEQoJcmVjb3JkX2lkGAMgASgJIj8KD1Jlc29sdmVSZXNwb25zZRIsCgZlbnRpdHkYASABKAsyHC5lbnRpdGllcy52MS5DYW5vbmljYWxFbnRpdHkiXwoQQ29ycmVsYXRlUmVxdWVzdBIUCgx3b3Jrc3BhY2VfaWQYASABKAkSDgoGZW1haWxzGAIgAygJEg8KB2RvbWFpbnMYAyADKAkSFAoMY29tcGFueV9uYW1lGAQgASgJIkIKEUNvcnJlbGF0ZVJlc3BvbnNlEi0KBmdyb3VwcxgBIAMoCzIdLmVudGl0aWVzLnYxLkNvcnJlbGF0aW9uR3JvdXAiIQoTR2V0Q2Fub25pY2FsUmVxdWVzdBIKCgJpZBgBIAEoCSJEChRHZXRDYW5vbmljYWxSZXNwb25zZRIsCgZlbnRpdHkYASABKAsyHC5lbnRpdGllcy52MS5DYW5vbmljYWxFbnRpdHkigQEKDVNlYXJjaFJlcXVlc3QSFAoMd29ya3NwYWNlX2lkGAEgASgJEg0KBXF1ZXJ5GAIgASgJEiwKC2VudGl0eV90eXBlGAMgASgOMhcuZW50aXRpZXMudjEuRW50aXR5VHlwZRINCgVsaW1pdBgEIAEoBRIOCgZvZmZzZXQYBSABKAUiTwoOU2VhcmNoUmVzcG9uc2USLgoIZW50aXRpZXMYASADKAsyHC5lbnRpdGllcy52MS5DYW5vbmljYWxFbnRpdHkSDQoFdG90YWwYAiABKAUiWgoRTGlua0VudGl0eVJlcXVlc3QSGwoTY2Fub25pY2FsX2VudGl0eV9pZBgBIAEoCRIoCgNyZWYYAiABKAsyGy5lbnRpdGllcy52MS5Dcm9zc1N5c3RlbVJlZiJCChJMaW5rRW50aXR5UmVzcG9uc2USLAoGZW50aXR5GAEgASgLMhwuZW50aXRpZXMudjEuQ2Fub25pY2FsRW50aXR5Il0KE1VubGlua0VudGl0eVJlcXVlc3QSGwoTY2Fub25pY2FsX2VudGl0eV9pZBgBIAEoCRIWCg5pbnRlZ3JhdGlvbl9pZBgCIAEoCRIRCglyZWNvcmRfaWQYAyABKAkiRAoUVW5saW5rRW50aXR5UmVzcG9uc2USLAoGZW50aXR5GAEgASgLMhwuZW50aXRpZXMudjEuQ2Fub25pY2FsRW50aXR5IkgKGkdldENvcnJlbGF0aW9uR3JhcGhSZXF1ZXN0EhsKE2Nhbm9uaWNhbF9lbnRpdHlfaWQYASABKAkSDQoFZGVwdGgYAiABKAUiTAobR2V0Q29ycmVsYXRpb25HcmFwaFJlc3BvbnNlEi0KBmdyb3VwcxgBIAMoCzIdLmVudGl0aWVzLnYxLkNvcnJlbGF0aW9uR3JvdXAiuwEKE0luZ2VzdFJlc3VsdFJlcXVlc3QSFAoMd29ya3NwYWNlX2lkGAEgASgJEhYKDmludGVncmF0aW9uX2lkGAIgASgJEhEKCXJlY29yZF9pZBgDIAEoCRIsCgtlbnRpdHlfdHlwZRgEIAEoDjIXLmVudGl0aWVzLnYxLkVudGl0eVR5cGUSFAoMZGlzcGxheV9uYW1lGAUgASgJEg4KBmVtYWlscxgGIAMoCRIPCgdkb21haW5zGAcgAygJIlUKFEluZ2VzdFJlc3VsdFJlc3BvbnNlEiwKBmVudGl0eRgBIAEoCzIcLmVudGl0aWVzLnYxLkNhbm9uaWNhbEVudGl0eRIPCgdjcmVhdGVkGAIgASgIKsABCgpFbnRpdHlUeXBlEhsKF0VOVElUWV9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTRU5USVRZX1RZUEVfQ09OVEFDVBABEhcKE0VOVElUWV9UWVBFX0NPTVBBTlkQAhIUChBFTlRJVFlfVFlQRV9ERUFMEAMSFgoSRU5USVRZX1RZUEVfVElDS0VUEAQSGAoURU5USVRZX1RZUEVfQ1VTVE9NRVIQBRIbChdFTlRJVFlfVFlQRV9PUFBPUlRVTklUWRAGKrIBCgtNYXRjaE1ldGhvZBIcChhNQVRDSF9NRVRIT0RfVU5TUEVDSUZJRUQQABIWChJNQVRDSF9NRVRIT0RfRU1BSUwQARIXChNNQVRDSF9NRVRIT0RfRE9NQUlOEAISHQoZTUFUQ0hfTUVUSE9EX0NPTVBBTllfTkFNRRADEhwKGE1BVENIX01FVEhPRF9SRUNPUkRfTkFNRRAEEhcKE01BVENIX01FVEhPRF9NQU5VQUwQBTKcBQoNRW50aXR5U2VydmljZRJECgdSZXNvbHZlEhsuZW50aXRpZXMudjEuUmVzb2x2ZVJlcXVlc3QaHC5lbnRpdGllcy52MS5SZXNvbHZlUmVzcG9uc2USSgoJQ29ycmVsYXRlEh0uZW50aXRpZXMudjEuQ29ycmVsYXRlUmVxdWVzdBoeLmVudGl0aWVzLnYxLkNvcnJlbGF0ZVJlc3BvbnNlElMKDEdldENhbm9uaWNhbBIgLmVudGl0aWVzLnYxLkdldENhbm9uaWNhbFJlcXVlc3QaIS5lbnRpdGllcy52MS5HZXRDYW5vbmljYWxSZXNwb25zZRJBCgZTZWFyY2gSGi5lbnRpdGllcy52MS5TZWFyY2hSZXF1ZXN0GhsuZW50aXRpZXMudjEuU2VhcmNoUmVzcG9uc2USTQoKTGlua0VudGl0eRIeLmVudGl0aWVzLnYxLkxpbmtFbnRpdHlSZXF1ZXN0Gh8uZW50aXRpZXMudjEuTGlua0VudGl0eVJlc3BvbnNlElMKDFVubGlua0VudGl0eRIgLmVudGl0aWVzLnYxLlVubGlua0VudGl0eVJlcXVlc3QaIS5lbnRpdGllcy52MS5VbmxpbmtFbnRpdHlSZXNwb25zZRJoChNHZXRDb3JyZWxhdGlvbkdyYXBoEicuZW50aXRpZXMudjEuR2V0Q29ycmVsYXRpb25HcmFwaFJlcXVlc3QaKC5lbnRpdGllcy52MS5HZXRDb3JyZWxhdGlvbkdyYXBoUmVzcG9uc2USUwoMSW5nZXN0UmVzdWx0EiAuZW50aXRpZXMudjEuSW5nZXN0UmVzdWx0UmVxdWVzdBohLmVudGl0aWVzLnYxLkluZ2VzdFJlc3VsdFJlc3BvbnNlQjhaNmdpdGh1Yi5jb20vZXZhbG9wcy9wcm90by9nZW4vZ28vZW50aXRpZXMvdjE7ZW50aXRpZXN2MWIGcHJvdG8z", [file_google_protobuf_timestamp]); + fileDesc("ChplbnRpdGllcy92MS9lbnRpdGllcy5wcm90bxILZW50aXRpZXMudjEigwIKD0Nhbm9uaWNhbEVudGl0eRIKCgJpZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSLQoMcHJpbWFyeV90eXBlGAMgASgOMhcuZW50aXRpZXMudjEuRW50aXR5VHlwZRIUCgxwcmltYXJ5X25hbWUYBCABKAkSKQoEcmVmcxgFIAMoCzIbLmVudGl0aWVzLnYxLkNyb3NzU3lzdGVtUmVmEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIrQBCg5Dcm9zc1N5c3RlbVJlZhIWCg5pbnRlZ3JhdGlvbl9pZBgBIAEoCRIRCglyZWNvcmRfaWQYAiABKAkSLAoLZW50aXR5X3R5cGUYAyABKA4yFy5lbnRpdGllcy52MS5FbnRpdHlUeXBlEhQKDGRpc3BsYXlfbmFtZRgEIAEoCRIOCgZlbWFpbHMYBSADKAkSDwoHZG9tYWlucxgGIAMoCRISCgpjb25maWRlbmNlGAcgASgCImsKEENvcnJlbGF0aW9uTWF0Y2gSLAoKbWF0Y2hlZF9ieRgBIAEoDjIYLmVudGl0aWVzLnYxLk1hdGNoTWV0aG9kEhUKDW1hdGNoZWRfdmFsdWUYAiABKAkSEgoKY29uZmlkZW5jZRgDIAEoAiLDAQoQQ29ycmVsYXRpb25Hcm91cBIKCgJpZBgBIAEoCRIUCgxwcmltYXJ5X25hbWUYAiABKAkSLQoMcHJpbWFyeV90eXBlGAMgASgOMhcuZW50aXRpZXMudjEuRW50aXR5VHlwZRIuCghlbnRpdGllcxgEIAMoCzIcLmVudGl0aWVzLnYxLkNhbm9uaWNhbEVudGl0eRIuCgdtYXRjaGVzGAUgAygLMh0uZW50aXRpZXMudjEuQ29ycmVsYXRpb25NYXRjaCJRCg5SZXNvbHZlUmVxdWVzdBIUCgx3b3Jrc3BhY2VfaWQYASABKAkSFgoOaW50ZWdyYXRpb25faWQYAiABKAkSEQoJcmVjb3JkX2lkGAMgASgJIj8KD1Jlc29sdmVSZXNwb25zZRIsCgZlbnRpdHkYASABKAsyHC5lbnRpdGllcy52MS5DYW5vbmljYWxFbnRpdHkiXwoQQ29ycmVsYXRlUmVxdWVzdBIUCgx3b3Jrc3BhY2VfaWQYASABKAkSDgoGZW1haWxzGAIgAygJEg8KB2RvbWFpbnMYAyADKAkSFAoMY29tcGFueV9uYW1lGAQgASgJIkIKEUNvcnJlbGF0ZVJlc3BvbnNlEi0KBmdyb3VwcxgBIAMoCzIdLmVudGl0aWVzLnYxLkNvcnJlbGF0aW9uR3JvdXAiIQoTR2V0Q2Fub25pY2FsUmVxdWVzdBIKCgJpZBgBIAEoCSJEChRHZXRDYW5vbmljYWxSZXNwb25zZRIsCgZlbnRpdHkYASABKAsyHC5lbnRpdGllcy52MS5DYW5vbmljYWxFbnRpdHkigQEKDVNlYXJjaFJlcXVlc3QSFAoMd29ya3NwYWNlX2lkGAEgASgJEg0KBXF1ZXJ5GAIgASgJEiwKC2VudGl0eV90eXBlGAMgASgOMhcuZW50aXRpZXMudjEuRW50aXR5VHlwZRINCgVsaW1pdBgEIAEoBRIOCgZvZmZzZXQYBSABKAUiTwoOU2VhcmNoUmVzcG9uc2USLgoIZW50aXRpZXMYASADKAsyHC5lbnRpdGllcy52MS5DYW5vbmljYWxFbnRpdHkSDQoFdG90YWwYAiABKAUiWgoRTGlua0VudGl0eVJlcXVlc3QSGwoTY2Fub25pY2FsX2VudGl0eV9pZBgBIAEoCRIoCgNyZWYYAiABKAsyGy5lbnRpdGllcy52MS5Dcm9zc1N5c3RlbVJlZiJCChJMaW5rRW50aXR5UmVzcG9uc2USLAoGZW50aXR5GAEgASgLMhwuZW50aXRpZXMudjEuQ2Fub25pY2FsRW50aXR5Il0KE1VubGlua0VudGl0eVJlcXVlc3QSGwoTY2Fub25pY2FsX2VudGl0eV9pZBgBIAEoCRIWCg5pbnRlZ3JhdGlvbl9pZBgCIAEoCRIRCglyZWNvcmRfaWQYAyABKAkiRAoUVW5saW5rRW50aXR5UmVzcG9uc2USLAoGZW50aXR5GAEgASgLMhwuZW50aXRpZXMudjEuQ2Fub25pY2FsRW50aXR5Ij4KEUNyb3NzU3lzdGVtUmVmS2V5EhYKDmludGVncmF0aW9uX2lkGAEgASgJEhEKCXJlY29yZF9pZBgCIAEoCSKkAQoUTWVyZ2VFbnRpdGllc1JlcXVlc3QSIgoadGFyZ2V0X2Nhbm9uaWNhbF9lbnRpdHlfaWQYASABKAkSIwobc291cmNlX2Nhbm9uaWNhbF9lbnRpdHlfaWRzGAIgAygJEi0KDHByaW1hcnlfdHlwZRgDIAEoDjIXLmVudGl0aWVzLnYxLkVudGl0eVR5cGUSFAoMcHJpbWFyeV9uYW1lGAQgASgJInwKFU1lcmdlRW50aXRpZXNSZXNwb25zZRIsCgZlbnRpdHkYASABKAsyHC5lbnRpdGllcy52MS5DYW5vbmljYWxFbnRpdHkSNQoPbWVyZ2VkX2VudGl0aWVzGAIgAygLMhwuZW50aXRpZXMudjEuQ2Fub25pY2FsRW50aXR5IqwBChJTcGxpdEVudGl0eVJlcXVlc3QSGwoTY2Fub25pY2FsX2VudGl0eV9pZBgBIAEoCRIsCgRyZWZzGAIgAygLMh4uZW50aXRpZXMudjEuQ3Jvc3NTeXN0ZW1SZWZLZXkSMQoQbmV3X3ByaW1hcnlfdHlwZRgDIAEoDjIXLmVudGl0aWVzLnYxLkVudGl0eVR5cGUSGAoQbmV3X3ByaW1hcnlfbmFtZRgEIAEoCSJ+ChNTcGxpdEVudGl0eVJlc3BvbnNlEjMKDXNvdXJjZV9lbnRpdHkYASABKAsyHC5lbnRpdGllcy52MS5DYW5vbmljYWxFbnRpdHkSMgoMc3BsaXRfZW50aXR5GAIgASgLMhwuZW50aXRpZXMudjEuQ2Fub25pY2FsRW50aXR5IkgKGkdldENvcnJlbGF0aW9uR3JhcGhSZXF1ZXN0EhsKE2Nhbm9uaWNhbF9lbnRpdHlfaWQYASABKAkSDQoFZGVwdGgYAiABKAUiTAobR2V0Q29ycmVsYXRpb25HcmFwaFJlc3BvbnNlEi0KBmdyb3VwcxgBIAMoCzIdLmVudGl0aWVzLnYxLkNvcnJlbGF0aW9uR3JvdXAiuwEKE0luZ2VzdFJlc3VsdFJlcXVlc3QSFAoMd29ya3NwYWNlX2lkGAEgASgJEhYKDmludGVncmF0aW9uX2lkGAIgASgJEhEKCXJlY29yZF9pZBgDIAEoCRIsCgtlbnRpdHlfdHlwZRgEIAEoDjIXLmVudGl0aWVzLnYxLkVudGl0eVR5cGUSFAoMZGlzcGxheV9uYW1lGAUgASgJEg4KBmVtYWlscxgGIAMoCRIPCgdkb21haW5zGAcgAygJIlUKFEluZ2VzdFJlc3VsdFJlc3BvbnNlEiwKBmVudGl0eRgBIAEoCzIcLmVudGl0aWVzLnYxLkNhbm9uaWNhbEVudGl0eRIPCgdjcmVhdGVkGAIgASgIKsABCgpFbnRpdHlUeXBlEhsKF0VOVElUWV9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTRU5USVRZX1RZUEVfQ09OVEFDVBABEhcKE0VOVElUWV9UWVBFX0NPTVBBTlkQAhIUChBFTlRJVFlfVFlQRV9ERUFMEAMSFgoSRU5USVRZX1RZUEVfVElDS0VUEAQSGAoURU5USVRZX1RZUEVfQ1VTVE9NRVIQBRIbChdFTlRJVFlfVFlQRV9PUFBPUlRVTklUWRAGKrIBCgtNYXRjaE1ldGhvZBIcChhNQVRDSF9NRVRIT0RfVU5TUEVDSUZJRUQQABIWChJNQVRDSF9NRVRIT0RfRU1BSUwQARIXChNNQVRDSF9NRVRIT0RfRE9NQUlOEAISHQoZTUFUQ0hfTUVUSE9EX0NPTVBBTllfTkFNRRADEhwKGE1BVENIX01FVEhPRF9SRUNPUkRfTkFNRRAEEhcKE01BVENIX01FVEhPRF9NQU5VQUwQBTLGBgoNRW50aXR5U2VydmljZRJECgdSZXNvbHZlEhsuZW50aXRpZXMudjEuUmVzb2x2ZVJlcXVlc3QaHC5lbnRpdGllcy52MS5SZXNvbHZlUmVzcG9uc2USSgoJQ29ycmVsYXRlEh0uZW50aXRpZXMudjEuQ29ycmVsYXRlUmVxdWVzdBoeLmVudGl0aWVzLnYxLkNvcnJlbGF0ZVJlc3BvbnNlElMKDEdldENhbm9uaWNhbBIgLmVudGl0aWVzLnYxLkdldENhbm9uaWNhbFJlcXVlc3QaIS5lbnRpdGllcy52MS5HZXRDYW5vbmljYWxSZXNwb25zZRJBCgZTZWFyY2gSGi5lbnRpdGllcy52MS5TZWFyY2hSZXF1ZXN0GhsuZW50aXRpZXMudjEuU2VhcmNoUmVzcG9uc2USTQoKTGlua0VudGl0eRIeLmVudGl0aWVzLnYxLkxpbmtFbnRpdHlSZXF1ZXN0Gh8uZW50aXRpZXMudjEuTGlua0VudGl0eVJlc3BvbnNlElMKDFVubGlua0VudGl0eRIgLmVudGl0aWVzLnYxLlVubGlua0VudGl0eVJlcXVlc3QaIS5lbnRpdGllcy52MS5VbmxpbmtFbnRpdHlSZXNwb25zZRJWCg1NZXJnZUVudGl0aWVzEiEuZW50aXRpZXMudjEuTWVyZ2VFbnRpdGllc1JlcXVlc3QaIi5lbnRpdGllcy52MS5NZXJnZUVudGl0aWVzUmVzcG9uc2USUAoLU3BsaXRFbnRpdHkSHy5lbnRpdGllcy52MS5TcGxpdEVudGl0eVJlcXVlc3QaIC5lbnRpdGllcy52MS5TcGxpdEVudGl0eVJlc3BvbnNlEmgKE0dldENvcnJlbGF0aW9uR3JhcGgSJy5lbnRpdGllcy52MS5HZXRDb3JyZWxhdGlvbkdyYXBoUmVxdWVzdBooLmVudGl0aWVzLnYxLkdldENvcnJlbGF0aW9uR3JhcGhSZXNwb25zZRJTCgxJbmdlc3RSZXN1bHQSIC5lbnRpdGllcy52MS5Jbmdlc3RSZXN1bHRSZXF1ZXN0GiEuZW50aXRpZXMudjEuSW5nZXN0UmVzdWx0UmVzcG9uc2VCOFo2Z2l0aHViLmNvbS9ldmFsb3BzL3Byb3RvL2dlbi9nby9lbnRpdGllcy92MTtlbnRpdGllc3YxYgZwcm90bzM", [file_google_protobuf_timestamp]); /** * CanonicalEntity is the unified, deduplicated entity record. @@ -449,6 +449,136 @@ export type UnlinkEntityResponse = Message<"entities.v1.UnlinkEntityResponse"> & export const UnlinkEntityResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_entities_v1_entities, 15); +/** + * @generated from message entities.v1.CrossSystemRefKey + */ +export type CrossSystemRefKey = Message<"entities.v1.CrossSystemRefKey"> & { + /** + * @generated from field: string integration_id = 1; + */ + integrationId: string; + + /** + * @generated from field: string record_id = 2; + */ + recordId: string; +}; + +/** + * Describes the message entities.v1.CrossSystemRefKey. + * Use `create(CrossSystemRefKeySchema)` to create a new message. + */ +export const CrossSystemRefKeySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_entities_v1_entities, 16); + +/** + * @generated from message entities.v1.MergeEntitiesRequest + */ +export type MergeEntitiesRequest = Message<"entities.v1.MergeEntitiesRequest"> & { + /** + * @generated from field: string target_canonical_entity_id = 1; + */ + targetCanonicalEntityId: string; + + /** + * @generated from field: repeated string source_canonical_entity_ids = 2; + */ + sourceCanonicalEntityIds: string[]; + + /** + * @generated from field: entities.v1.EntityType primary_type = 3; + */ + primaryType: EntityType; + + /** + * @generated from field: string primary_name = 4; + */ + primaryName: string; +}; + +/** + * Describes the message entities.v1.MergeEntitiesRequest. + * Use `create(MergeEntitiesRequestSchema)` to create a new message. + */ +export const MergeEntitiesRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_entities_v1_entities, 17); + +/** + * @generated from message entities.v1.MergeEntitiesResponse + */ +export type MergeEntitiesResponse = Message<"entities.v1.MergeEntitiesResponse"> & { + /** + * @generated from field: entities.v1.CanonicalEntity entity = 1; + */ + entity?: CanonicalEntity; + + /** + * @generated from field: repeated entities.v1.CanonicalEntity merged_entities = 2; + */ + mergedEntities: CanonicalEntity[]; +}; + +/** + * Describes the message entities.v1.MergeEntitiesResponse. + * Use `create(MergeEntitiesResponseSchema)` to create a new message. + */ +export const MergeEntitiesResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_entities_v1_entities, 18); + +/** + * @generated from message entities.v1.SplitEntityRequest + */ +export type SplitEntityRequest = Message<"entities.v1.SplitEntityRequest"> & { + /** + * @generated from field: string canonical_entity_id = 1; + */ + canonicalEntityId: string; + + /** + * @generated from field: repeated entities.v1.CrossSystemRefKey refs = 2; + */ + refs: CrossSystemRefKey[]; + + /** + * @generated from field: entities.v1.EntityType new_primary_type = 3; + */ + newPrimaryType: EntityType; + + /** + * @generated from field: string new_primary_name = 4; + */ + newPrimaryName: string; +}; + +/** + * Describes the message entities.v1.SplitEntityRequest. + * Use `create(SplitEntityRequestSchema)` to create a new message. + */ +export const SplitEntityRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_entities_v1_entities, 19); + +/** + * @generated from message entities.v1.SplitEntityResponse + */ +export type SplitEntityResponse = Message<"entities.v1.SplitEntityResponse"> & { + /** + * @generated from field: entities.v1.CanonicalEntity source_entity = 1; + */ + sourceEntity?: CanonicalEntity; + + /** + * @generated from field: entities.v1.CanonicalEntity split_entity = 2; + */ + splitEntity?: CanonicalEntity; +}; + +/** + * Describes the message entities.v1.SplitEntityResponse. + * Use `create(SplitEntityResponseSchema)` to create a new message. + */ +export const SplitEntityResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_entities_v1_entities, 20); + /** * @generated from message entities.v1.GetCorrelationGraphRequest */ @@ -469,7 +599,7 @@ export type GetCorrelationGraphRequest = Message<"entities.v1.GetCorrelationGrap * Use `create(GetCorrelationGraphRequestSchema)` to create a new message. */ export const GetCorrelationGraphRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_entities_v1_entities, 16); + messageDesc(file_entities_v1_entities, 21); /** * @generated from message entities.v1.GetCorrelationGraphResponse @@ -486,7 +616,7 @@ export type GetCorrelationGraphResponse = Message<"entities.v1.GetCorrelationGra * Use `create(GetCorrelationGraphResponseSchema)` to create a new message. */ export const GetCorrelationGraphResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_entities_v1_entities, 17); + messageDesc(file_entities_v1_entities, 22); /** * @generated from message entities.v1.IngestResultRequest @@ -533,7 +663,7 @@ export type IngestResultRequest = Message<"entities.v1.IngestResultRequest"> & { * Use `create(IngestResultRequestSchema)` to create a new message. */ export const IngestResultRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_entities_v1_entities, 18); + messageDesc(file_entities_v1_entities, 23); /** * @generated from message entities.v1.IngestResultResponse @@ -555,7 +685,7 @@ export type IngestResultResponse = Message<"entities.v1.IngestResultResponse"> & * Use `create(IngestResultResponseSchema)` to create a new message. */ export const IngestResultResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_entities_v1_entities, 19); + messageDesc(file_entities_v1_entities, 24); /** * EntityType identifies the kind of entity across systems. @@ -702,6 +832,22 @@ export const EntityService: GenService<{ input: typeof UnlinkEntityRequestSchema; output: typeof UnlinkEntityResponseSchema; }, + /** + * @generated from rpc entities.v1.EntityService.MergeEntities + */ + mergeEntities: { + methodKind: "unary"; + input: typeof MergeEntitiesRequestSchema; + output: typeof MergeEntitiesResponseSchema; + }, + /** + * @generated from rpc entities.v1.EntityService.SplitEntity + */ + splitEntity: { + methodKind: "unary"; + input: typeof SplitEntityRequestSchema; + output: typeof SplitEntityResponseSchema; + }, /** * @generated from rpc entities.v1.EntityService.GetCorrelationGraph */ diff --git a/proto/entities/v1/entities.proto b/proto/entities/v1/entities.proto index 362f538..67a07d8 100644 --- a/proto/entities/v1/entities.proto +++ b/proto/entities/v1/entities.proto @@ -14,6 +14,8 @@ service EntityService { rpc Search(SearchRequest) returns (SearchResponse); rpc LinkEntity(LinkEntityRequest) returns (LinkEntityResponse); rpc UnlinkEntity(UnlinkEntityRequest) returns (UnlinkEntityResponse); + rpc MergeEntities(MergeEntitiesRequest) returns (MergeEntitiesResponse); + rpc SplitEntity(SplitEntityRequest) returns (SplitEntityResponse); rpc GetCorrelationGraph(GetCorrelationGraphRequest) returns (GetCorrelationGraphResponse); rpc IngestResult(IngestResultRequest) returns (IngestResultResponse); } @@ -138,6 +140,35 @@ message UnlinkEntityResponse { CanonicalEntity entity = 1; } +message CrossSystemRefKey { + string integration_id = 1; + string record_id = 2; +} + +message MergeEntitiesRequest { + string target_canonical_entity_id = 1; + repeated string source_canonical_entity_ids = 2; + EntityType primary_type = 3; + string primary_name = 4; +} + +message MergeEntitiesResponse { + CanonicalEntity entity = 1; + repeated CanonicalEntity merged_entities = 2; +} + +message SplitEntityRequest { + string canonical_entity_id = 1; + repeated CrossSystemRefKey refs = 2; + EntityType new_primary_type = 3; + string new_primary_name = 4; +} + +message SplitEntityResponse { + CanonicalEntity source_entity = 1; + CanonicalEntity split_entity = 2; +} + message GetCorrelationGraphRequest { string canonical_entity_id = 1; int32 depth = 2;