diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c098b1f7..9a5bd4af 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,7 +20,7 @@ default_stages: [commit, push] fail_fast: false repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: trailing-whitespace - id: check-case-conflict diff --git a/examples/ingest/cmd/batch_delete_node_tags.go b/examples/ingest/cmd/batch_delete_node_tags.go new file mode 100644 index 00000000..bb33c46d --- /dev/null +++ b/examples/ingest/cmd/batch_delete_node_tags.go @@ -0,0 +1,65 @@ +// Copyright (c) 2024 IndyKite +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cmd + +import ( + "context" + "fmt" + "log" + + "github.com/spf13/cobra" + + ingestpb "github.com/indykite/indykite-sdk-go/gen/indykite/ingest/v1beta3" +) + +// batch delete node tag represents the command for deleting up to 10 tags +var batchDeleteNodeTagsCmd = &cobra.Command{ + Use: "batch_delete_node_tags", + Short: "Delete bunch of records using the IndyKite Ingest API", + Long: `Delete bunch of records using the IndyKite Ingest API.`, + Args: cobra.ExactArgs(0), + Run: func(cmd *cobra.Command, args []string) { + + nodeMatch1 := &ingestpb.NodeMatch{ + ExternalId: "741258", + Type: "Person", + } + + nodeMatch2 := &ingestpb.NodeMatch{ + ExternalId: "789456", + Type: "Car", + } + + nodeTags := []*ingestpb.DeleteData_NodeTagMatch{ + { + Match: nodeMatch1, + Tags: []string{"Sitea", "Siteb"}, + }, + { + Match: nodeMatch2, + Tags: []string{"Sitea", "Siteb"}, + }, + } + resp, err := client.BatchDeleteNodeTags(context.Background(), nodeTags) + if err != nil { + log.Fatalf("failed to invoke operation on IndyKite Client %v", err) + } + fmt.Println(jsonp.Format(resp)) + }, +} + +func init() { + rootCmd.AddCommand(batchDeleteNodeTagsCmd) +} diff --git a/examples/ingest/cmd/batch_upsert_nodes.go b/examples/ingest/cmd/batch_upsert_nodes.go index 2c1e2b37..015f13f3 100644 --- a/examples/ingest/cmd/batch_upsert_nodes.go +++ b/examples/ingest/cmd/batch_upsert_nodes.go @@ -69,15 +69,16 @@ var batchUpsertNodesCmd = &cobra.Command{ Type: "first_name", Value: &objects.Value{ Type: &objects.Value_StringValue{ - StringValue: "elias", + StringValue: "colias", }, }, }, }, + Tags: []string{"Sitea", "Siteb"}, } node2 := &knowledgeobjects.Node{ - ExternalId: "963258", + ExternalId: "789456", Type: "Car", IsIdentity: false, Properties: []*knowledgeobjects.Property{ @@ -90,6 +91,7 @@ var batchUpsertNodesCmd = &cobra.Command{ }, }, }, + Tags: []string{"Sitea", "Siteb"}, } nodes := []*knowledgeobjects.Node{ diff --git a/gen/indykite/auditsink/v1beta1/ingest.pb.go b/gen/indykite/auditsink/v1beta1/ingest.pb.go index 745a6aef..49b78666 100644 --- a/gen/indykite/auditsink/v1beta1/ingest.pb.go +++ b/gen/indykite/auditsink/v1beta1/ingest.pb.go @@ -317,6 +317,53 @@ func (x *BatchDeleteRelationshipProperties) GetRelationshipProperties() []*Delet return nil } +type BatchDeleteNodeTags struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeTags []*DeleteData_NodeTagMatch `protobuf:"bytes,1,rep,name=node_tags,json=nodeTags,proto3" json:"node_tags,omitempty"` +} + +func (x *BatchDeleteNodeTags) Reset() { + *x = BatchDeleteNodeTags{} + if protoimpl.UnsafeEnabled { + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchDeleteNodeTags) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchDeleteNodeTags) ProtoMessage() {} + +func (x *BatchDeleteNodeTags) ProtoReflect() protoreflect.Message { + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchDeleteNodeTags.ProtoReflect.Descriptor instead. +func (*BatchDeleteNodeTags) Descriptor() ([]byte, []int) { + return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{6} +} + +func (x *BatchDeleteNodeTags) GetNodeTags() []*DeleteData_NodeTagMatch { + if x != nil { + return x.NodeTags + } + return nil +} + type UpsertData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -332,7 +379,7 @@ type UpsertData struct { func (x *UpsertData) Reset() { *x = UpsertData{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[6] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -345,7 +392,7 @@ func (x *UpsertData) String() string { func (*UpsertData) ProtoMessage() {} func (x *UpsertData) ProtoReflect() protoreflect.Message { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[6] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -358,7 +405,7 @@ func (x *UpsertData) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertData.ProtoReflect.Descriptor instead. func (*UpsertData) Descriptor() ([]byte, []int) { - return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{6} + return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{7} } func (m *UpsertData) GetData() isUpsertData_Data { @@ -409,13 +456,14 @@ type DeleteData struct { // *DeleteData_Relationship // *DeleteData_NodeProperty // *DeleteData_RelationshipProperty + // *DeleteData_NodeTags Data isDeleteData_Data `protobuf_oneof:"data"` } func (x *DeleteData) Reset() { *x = DeleteData{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[7] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -428,7 +476,7 @@ func (x *DeleteData) String() string { func (*DeleteData) ProtoMessage() {} func (x *DeleteData) ProtoReflect() protoreflect.Message { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[7] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -441,7 +489,7 @@ func (x *DeleteData) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteData.ProtoReflect.Descriptor instead. func (*DeleteData) Descriptor() ([]byte, []int) { - return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{7} + return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{8} } func (m *DeleteData) GetData() isDeleteData_Data { @@ -479,6 +527,13 @@ func (x *DeleteData) GetRelationshipProperty() *DeleteData_RelationshipPropertyM return nil } +func (x *DeleteData) GetNodeTags() *DeleteData_NodeTagMatch { + if x, ok := x.GetData().(*DeleteData_NodeTags); ok { + return x.NodeTags + } + return nil +} + type isDeleteData_Data interface { isDeleteData_Data() } @@ -499,6 +554,10 @@ type DeleteData_RelationshipProperty struct { RelationshipProperty *DeleteData_RelationshipPropertyMatch `protobuf:"bytes,4,opt,name=relationship_property,json=relationshipProperty,proto3,oneof"` } +type DeleteData_NodeTags struct { + NodeTags *DeleteData_NodeTagMatch `protobuf:"bytes,5,opt,name=node_tags,json=nodeTags,proto3,oneof"` +} + func (*DeleteData_Node) isDeleteData_Data() {} func (*DeleteData_Relationship) isDeleteData_Data() {} @@ -507,6 +566,8 @@ func (*DeleteData_NodeProperty) isDeleteData_Data() {} func (*DeleteData_RelationshipProperty) isDeleteData_Data() {} +func (*DeleteData_NodeTags) isDeleteData_Data() {} + type DigitalTwin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -520,7 +581,7 @@ type DigitalTwin struct { func (x *DigitalTwin) Reset() { *x = DigitalTwin{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[8] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -533,7 +594,7 @@ func (x *DigitalTwin) String() string { func (*DigitalTwin) ProtoMessage() {} func (x *DigitalTwin) ProtoReflect() protoreflect.Message { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[8] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -546,7 +607,7 @@ func (x *DigitalTwin) ProtoReflect() protoreflect.Message { // Deprecated: Use DigitalTwin.ProtoReflect.Descriptor instead. func (*DigitalTwin) Descriptor() ([]byte, []int) { - return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{8} + return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{9} } func (x *DigitalTwin) GetExternalId() string { @@ -582,7 +643,7 @@ type Resource struct { func (x *Resource) Reset() { *x = Resource{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[9] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -595,7 +656,7 @@ func (x *Resource) String() string { func (*Resource) ProtoMessage() {} func (x *Resource) ProtoReflect() protoreflect.Message { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[9] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -608,7 +669,7 @@ func (x *Resource) ProtoReflect() protoreflect.Message { // Deprecated: Use Resource.ProtoReflect.Descriptor instead. func (*Resource) Descriptor() ([]byte, []int) { - return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{9} + return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{10} } func (x *Resource) GetExternalId() string { @@ -639,7 +700,7 @@ type Node struct { func (x *Node) Reset() { *x = Node{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[10] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -652,7 +713,7 @@ func (x *Node) String() string { func (*Node) ProtoMessage() {} func (x *Node) ProtoReflect() protoreflect.Message { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[10] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -665,7 +726,7 @@ func (x *Node) ProtoReflect() protoreflect.Message { // Deprecated: Use Node.ProtoReflect.Descriptor instead. func (*Node) Descriptor() ([]byte, []int) { - return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{10} + return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{11} } func (x *Node) GetId() string { @@ -709,7 +770,7 @@ type Relationship struct { func (x *Relationship) Reset() { *x = Relationship{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[11] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -722,7 +783,7 @@ func (x *Relationship) String() string { func (*Relationship) ProtoMessage() {} func (x *Relationship) ProtoReflect() protoreflect.Message { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[11] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -735,7 +796,7 @@ func (x *Relationship) ProtoReflect() protoreflect.Message { // Deprecated: Use Relationship.ProtoReflect.Descriptor instead. func (*Relationship) Descriptor() ([]byte, []int) { - return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{11} + return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{12} } func (x *Relationship) GetType() string { @@ -771,7 +832,7 @@ type NodeMatch struct { func (x *NodeMatch) Reset() { *x = NodeMatch{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[12] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -784,7 +845,7 @@ func (x *NodeMatch) String() string { func (*NodeMatch) ProtoMessage() {} func (x *NodeMatch) ProtoReflect() protoreflect.Message { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[12] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -797,7 +858,7 @@ func (x *NodeMatch) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeMatch.ProtoReflect.Descriptor instead. func (*NodeMatch) Descriptor() ([]byte, []int) { - return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{12} + return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{13} } func (x *NodeMatch) GetExternalId() string { @@ -814,6 +875,61 @@ func (x *NodeMatch) GetType() string { return "" } +type DeleteData_NodeTagMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Match *NodeMatch `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"` + Tags []string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty"` +} + +func (x *DeleteData_NodeTagMatch) Reset() { + *x = DeleteData_NodeTagMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteData_NodeTagMatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteData_NodeTagMatch) ProtoMessage() {} + +func (x *DeleteData_NodeTagMatch) ProtoReflect() protoreflect.Message { + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteData_NodeTagMatch.ProtoReflect.Descriptor instead. +func (*DeleteData_NodeTagMatch) Descriptor() ([]byte, []int) { + return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *DeleteData_NodeTagMatch) GetMatch() *NodeMatch { + if x != nil { + return x.Match + } + return nil +} + +func (x *DeleteData_NodeTagMatch) GetTags() []string { + if x != nil { + return x.Tags + } + return nil +} + type DeleteData_NodePropertyMatch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -826,7 +942,7 @@ type DeleteData_NodePropertyMatch struct { func (x *DeleteData_NodePropertyMatch) Reset() { *x = DeleteData_NodePropertyMatch{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[13] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -839,7 +955,7 @@ func (x *DeleteData_NodePropertyMatch) String() string { func (*DeleteData_NodePropertyMatch) ProtoMessage() {} func (x *DeleteData_NodePropertyMatch) ProtoReflect() protoreflect.Message { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[13] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -852,7 +968,7 @@ func (x *DeleteData_NodePropertyMatch) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteData_NodePropertyMatch.ProtoReflect.Descriptor instead. func (*DeleteData_NodePropertyMatch) Descriptor() ([]byte, []int) { - return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{7, 0} + return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{8, 1} } func (x *DeleteData_NodePropertyMatch) GetMatch() *NodeMatch { @@ -883,7 +999,7 @@ type DeleteData_RelationshipPropertyMatch struct { func (x *DeleteData_RelationshipPropertyMatch) Reset() { *x = DeleteData_RelationshipPropertyMatch{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[14] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -896,7 +1012,7 @@ func (x *DeleteData_RelationshipPropertyMatch) String() string { func (*DeleteData_RelationshipPropertyMatch) ProtoMessage() {} func (x *DeleteData_RelationshipPropertyMatch) ProtoReflect() protoreflect.Message { - mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[14] + mi := &file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -909,7 +1025,7 @@ func (x *DeleteData_RelationshipPropertyMatch) ProtoReflect() protoreflect.Messa // Deprecated: Use DeleteData_RelationshipPropertyMatch.ProtoReflect.Descriptor instead. func (*DeleteData_RelationshipPropertyMatch) Descriptor() ([]byte, []int) { - return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{7, 1} + return file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP(), []int{8, 2} } func (x *DeleteData_RelationshipPropertyMatch) GetType() string { @@ -988,110 +1104,128 @@ var file_indykite_auditsink_v1beta1_ingest_proto_rawDesc = []byte{ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x16, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, - 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x0a, - 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x04, 0x6e, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, - 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, - 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, - 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, - 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, - 0x69, 0x70, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, - 0x69, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc7, 0x05, 0x0a, 0x0a, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, - 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, + 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x67, 0x0a, 0x13, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, + 0x67, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, + 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4e, 0x6f, + 0x64, 0x65, 0x54, 0x61, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, + 0x54, 0x61, 0x67, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, + 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x0c, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, + 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x48, 0x00, 0x52, 0x0c, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0xfc, 0x06, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, + 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, + 0x4e, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, + 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x48, + 0x00, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, + 0x5f, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, + 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4e, + 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x12, 0x77, 0x0a, 0x15, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, + 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x40, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, + 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, + 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x52, 0x0a, 0x09, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, - 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x5f, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, - 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x77, 0x0a, 0x15, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, + 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x67, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x5f, 0x0a, + 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x3b, 0x0a, + 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, + 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, + 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x75, + 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x3b, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x1a, 0xd2, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, + 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x1a, 0x75, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x3b, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, - 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x1a, 0xd2, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, - 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, - 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x0b, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x54, - 0x77, 0x69, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, - 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x06, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x0b, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x54, 0x77, 0x69, + 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x6c, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x22, 0xa0, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, - 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, - 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x40, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x8c, 0x02, 0x0a, 0x1e, 0x63, 0x6f, - 0x6d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, - 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0b, 0x49, 0x6e, - 0x67, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x53, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, - 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2d, 0x73, 0x64, 0x6b, 0x2d, 0x67, 0x6f, - 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x61, 0x75, - 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, - 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xa2, 0x02, 0x03, 0x49, 0x41, 0x58, 0xaa, 0x02, 0x1a, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, - 0x65, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xca, 0x02, 0x1a, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x5c, 0x41, - 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xe2, 0x02, 0x26, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x5c, 0x41, 0x75, 0x64, 0x69, - 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1c, 0x49, 0x6e, 0x64, 0x79, - 0x6b, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, + 0x74, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x6c, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, + 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x22, 0xa0, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x68, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, + 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, + 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x06, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x40, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x8c, 0x02, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, + 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0b, 0x49, 0x6e, 0x67, 0x65, + 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x53, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x69, + 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2d, 0x73, 0x64, 0x6b, 0x2d, 0x67, 0x6f, 0x2f, 0x67, + 0x65, 0x6e, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x61, 0x75, 0x64, 0x69, + 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x61, 0x75, + 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, + 0x03, 0x49, 0x41, 0x58, 0xaa, 0x02, 0x1a, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xca, 0x02, 0x1a, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x5c, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, + 0x26, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x5c, 0x41, 0x75, 0x64, 0x69, 0x74, 0x73, + 0x69, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1c, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, + 0x74, 0x65, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1106,7 +1240,7 @@ func file_indykite_auditsink_v1beta1_ingest_proto_rawDescGZIP() []byte { return file_indykite_auditsink_v1beta1_ingest_proto_rawDescData } -var file_indykite_auditsink_v1beta1_ingest_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_indykite_auditsink_v1beta1_ingest_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_indykite_auditsink_v1beta1_ingest_proto_goTypes = []any{ (*BatchUpsertNodes)(nil), // 0: indykite.auditsink.v1beta1.BatchUpsertNodes (*BatchUpsertRelationships)(nil), // 1: indykite.auditsink.v1beta1.BatchUpsertRelationships @@ -1114,39 +1248,44 @@ var file_indykite_auditsink_v1beta1_ingest_proto_goTypes = []any{ (*BatchDeleteRelationships)(nil), // 3: indykite.auditsink.v1beta1.BatchDeleteRelationships (*BatchDeleteNodeProperties)(nil), // 4: indykite.auditsink.v1beta1.BatchDeleteNodeProperties (*BatchDeleteRelationshipProperties)(nil), // 5: indykite.auditsink.v1beta1.BatchDeleteRelationshipProperties - (*UpsertData)(nil), // 6: indykite.auditsink.v1beta1.UpsertData - (*DeleteData)(nil), // 7: indykite.auditsink.v1beta1.DeleteData - (*DigitalTwin)(nil), // 8: indykite.auditsink.v1beta1.DigitalTwin - (*Resource)(nil), // 9: indykite.auditsink.v1beta1.Resource - (*Node)(nil), // 10: indykite.auditsink.v1beta1.Node - (*Relationship)(nil), // 11: indykite.auditsink.v1beta1.Relationship - (*NodeMatch)(nil), // 12: indykite.auditsink.v1beta1.NodeMatch - (*DeleteData_NodePropertyMatch)(nil), // 13: indykite.auditsink.v1beta1.DeleteData.NodePropertyMatch - (*DeleteData_RelationshipPropertyMatch)(nil), // 14: indykite.auditsink.v1beta1.DeleteData.RelationshipPropertyMatch + (*BatchDeleteNodeTags)(nil), // 6: indykite.auditsink.v1beta1.BatchDeleteNodeTags + (*UpsertData)(nil), // 7: indykite.auditsink.v1beta1.UpsertData + (*DeleteData)(nil), // 8: indykite.auditsink.v1beta1.DeleteData + (*DigitalTwin)(nil), // 9: indykite.auditsink.v1beta1.DigitalTwin + (*Resource)(nil), // 10: indykite.auditsink.v1beta1.Resource + (*Node)(nil), // 11: indykite.auditsink.v1beta1.Node + (*Relationship)(nil), // 12: indykite.auditsink.v1beta1.Relationship + (*NodeMatch)(nil), // 13: indykite.auditsink.v1beta1.NodeMatch + (*DeleteData_NodeTagMatch)(nil), // 14: indykite.auditsink.v1beta1.DeleteData.NodeTagMatch + (*DeleteData_NodePropertyMatch)(nil), // 15: indykite.auditsink.v1beta1.DeleteData.NodePropertyMatch + (*DeleteData_RelationshipPropertyMatch)(nil), // 16: indykite.auditsink.v1beta1.DeleteData.RelationshipPropertyMatch } var file_indykite_auditsink_v1beta1_ingest_proto_depIdxs = []int32{ - 10, // 0: indykite.auditsink.v1beta1.BatchUpsertNodes.nodes:type_name -> indykite.auditsink.v1beta1.Node - 11, // 1: indykite.auditsink.v1beta1.BatchUpsertRelationships.relationships:type_name -> indykite.auditsink.v1beta1.Relationship - 12, // 2: indykite.auditsink.v1beta1.BatchDeleteNodes.nodes:type_name -> indykite.auditsink.v1beta1.NodeMatch - 11, // 3: indykite.auditsink.v1beta1.BatchDeleteRelationships.relationships:type_name -> indykite.auditsink.v1beta1.Relationship - 13, // 4: indykite.auditsink.v1beta1.BatchDeleteNodeProperties.node_properties:type_name -> indykite.auditsink.v1beta1.DeleteData.NodePropertyMatch - 14, // 5: indykite.auditsink.v1beta1.BatchDeleteRelationshipProperties.relationship_properties:type_name -> indykite.auditsink.v1beta1.DeleteData.RelationshipPropertyMatch - 10, // 6: indykite.auditsink.v1beta1.UpsertData.node:type_name -> indykite.auditsink.v1beta1.Node - 11, // 7: indykite.auditsink.v1beta1.UpsertData.relationship:type_name -> indykite.auditsink.v1beta1.Relationship - 12, // 8: indykite.auditsink.v1beta1.DeleteData.node:type_name -> indykite.auditsink.v1beta1.NodeMatch - 11, // 9: indykite.auditsink.v1beta1.DeleteData.relationship:type_name -> indykite.auditsink.v1beta1.Relationship - 13, // 10: indykite.auditsink.v1beta1.DeleteData.node_property:type_name -> indykite.auditsink.v1beta1.DeleteData.NodePropertyMatch - 14, // 11: indykite.auditsink.v1beta1.DeleteData.relationship_property:type_name -> indykite.auditsink.v1beta1.DeleteData.RelationshipPropertyMatch - 12, // 12: indykite.auditsink.v1beta1.Relationship.source:type_name -> indykite.auditsink.v1beta1.NodeMatch - 12, // 13: indykite.auditsink.v1beta1.Relationship.target:type_name -> indykite.auditsink.v1beta1.NodeMatch - 12, // 14: indykite.auditsink.v1beta1.DeleteData.NodePropertyMatch.match:type_name -> indykite.auditsink.v1beta1.NodeMatch - 12, // 15: indykite.auditsink.v1beta1.DeleteData.RelationshipPropertyMatch.source:type_name -> indykite.auditsink.v1beta1.NodeMatch - 12, // 16: indykite.auditsink.v1beta1.DeleteData.RelationshipPropertyMatch.target:type_name -> indykite.auditsink.v1beta1.NodeMatch - 17, // [17:17] is the sub-list for method output_type - 17, // [17:17] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 11, // 0: indykite.auditsink.v1beta1.BatchUpsertNodes.nodes:type_name -> indykite.auditsink.v1beta1.Node + 12, // 1: indykite.auditsink.v1beta1.BatchUpsertRelationships.relationships:type_name -> indykite.auditsink.v1beta1.Relationship + 13, // 2: indykite.auditsink.v1beta1.BatchDeleteNodes.nodes:type_name -> indykite.auditsink.v1beta1.NodeMatch + 12, // 3: indykite.auditsink.v1beta1.BatchDeleteRelationships.relationships:type_name -> indykite.auditsink.v1beta1.Relationship + 15, // 4: indykite.auditsink.v1beta1.BatchDeleteNodeProperties.node_properties:type_name -> indykite.auditsink.v1beta1.DeleteData.NodePropertyMatch + 16, // 5: indykite.auditsink.v1beta1.BatchDeleteRelationshipProperties.relationship_properties:type_name -> indykite.auditsink.v1beta1.DeleteData.RelationshipPropertyMatch + 14, // 6: indykite.auditsink.v1beta1.BatchDeleteNodeTags.node_tags:type_name -> indykite.auditsink.v1beta1.DeleteData.NodeTagMatch + 11, // 7: indykite.auditsink.v1beta1.UpsertData.node:type_name -> indykite.auditsink.v1beta1.Node + 12, // 8: indykite.auditsink.v1beta1.UpsertData.relationship:type_name -> indykite.auditsink.v1beta1.Relationship + 13, // 9: indykite.auditsink.v1beta1.DeleteData.node:type_name -> indykite.auditsink.v1beta1.NodeMatch + 12, // 10: indykite.auditsink.v1beta1.DeleteData.relationship:type_name -> indykite.auditsink.v1beta1.Relationship + 15, // 11: indykite.auditsink.v1beta1.DeleteData.node_property:type_name -> indykite.auditsink.v1beta1.DeleteData.NodePropertyMatch + 16, // 12: indykite.auditsink.v1beta1.DeleteData.relationship_property:type_name -> indykite.auditsink.v1beta1.DeleteData.RelationshipPropertyMatch + 14, // 13: indykite.auditsink.v1beta1.DeleteData.node_tags:type_name -> indykite.auditsink.v1beta1.DeleteData.NodeTagMatch + 13, // 14: indykite.auditsink.v1beta1.Relationship.source:type_name -> indykite.auditsink.v1beta1.NodeMatch + 13, // 15: indykite.auditsink.v1beta1.Relationship.target:type_name -> indykite.auditsink.v1beta1.NodeMatch + 13, // 16: indykite.auditsink.v1beta1.DeleteData.NodeTagMatch.match:type_name -> indykite.auditsink.v1beta1.NodeMatch + 13, // 17: indykite.auditsink.v1beta1.DeleteData.NodePropertyMatch.match:type_name -> indykite.auditsink.v1beta1.NodeMatch + 13, // 18: indykite.auditsink.v1beta1.DeleteData.RelationshipPropertyMatch.source:type_name -> indykite.auditsink.v1beta1.NodeMatch + 13, // 19: indykite.auditsink.v1beta1.DeleteData.RelationshipPropertyMatch.target:type_name -> indykite.auditsink.v1beta1.NodeMatch + 20, // [20:20] is the sub-list for method output_type + 20, // [20:20] 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 } func init() { file_indykite_auditsink_v1beta1_ingest_proto_init() } @@ -1228,7 +1367,7 @@ func file_indykite_auditsink_v1beta1_ingest_proto_init() { } } file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*UpsertData); i { + switch v := v.(*BatchDeleteNodeTags); i { case 0: return &v.state case 1: @@ -1240,7 +1379,7 @@ func file_indykite_auditsink_v1beta1_ingest_proto_init() { } } file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*DeleteData); i { + switch v := v.(*UpsertData); i { case 0: return &v.state case 1: @@ -1252,7 +1391,7 @@ func file_indykite_auditsink_v1beta1_ingest_proto_init() { } } file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*DigitalTwin); i { + switch v := v.(*DeleteData); i { case 0: return &v.state case 1: @@ -1264,7 +1403,7 @@ func file_indykite_auditsink_v1beta1_ingest_proto_init() { } } file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*Resource); i { + switch v := v.(*DigitalTwin); i { case 0: return &v.state case 1: @@ -1276,7 +1415,7 @@ func file_indykite_auditsink_v1beta1_ingest_proto_init() { } } file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*Node); i { + switch v := v.(*Resource); i { case 0: return &v.state case 1: @@ -1288,7 +1427,7 @@ func file_indykite_auditsink_v1beta1_ingest_proto_init() { } } file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*Relationship); i { + switch v := v.(*Node); i { case 0: return &v.state case 1: @@ -1300,7 +1439,7 @@ func file_indykite_auditsink_v1beta1_ingest_proto_init() { } } file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*NodeMatch); i { + switch v := v.(*Relationship); i { case 0: return &v.state case 1: @@ -1312,7 +1451,7 @@ func file_indykite_auditsink_v1beta1_ingest_proto_init() { } } file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*DeleteData_NodePropertyMatch); i { + switch v := v.(*NodeMatch); i { case 0: return &v.state case 1: @@ -1324,6 +1463,30 @@ func file_indykite_auditsink_v1beta1_ingest_proto_init() { } } file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[14].Exporter = func(v any, i int) any { + switch v := v.(*DeleteData_NodeTagMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[15].Exporter = func(v any, i int) any { + switch v := v.(*DeleteData_NodePropertyMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*DeleteData_RelationshipPropertyMatch); i { case 0: return &v.state @@ -1336,15 +1499,16 @@ func file_indykite_auditsink_v1beta1_ingest_proto_init() { } } } - file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[6].OneofWrappers = []any{ + file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[7].OneofWrappers = []any{ (*UpsertData_Node)(nil), (*UpsertData_Relationship)(nil), } - file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[7].OneofWrappers = []any{ + file_indykite_auditsink_v1beta1_ingest_proto_msgTypes[8].OneofWrappers = []any{ (*DeleteData_Node)(nil), (*DeleteData_Relationship)(nil), (*DeleteData_NodeProperty)(nil), (*DeleteData_RelationshipProperty)(nil), + (*DeleteData_NodeTags)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -1352,7 +1516,7 @@ func file_indykite_auditsink_v1beta1_ingest_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_indykite_auditsink_v1beta1_ingest_proto_rawDesc, NumEnums: 0, - NumMessages: 15, + NumMessages: 17, NumExtensions: 0, NumServices: 0, }, diff --git a/gen/indykite/auditsink/v1beta1/ingest.pb.validate.go b/gen/indykite/auditsink/v1beta1/ingest.pb.validate.go index 9de5ca1d..dbbb8892 100644 --- a/gen/indykite/auditsink/v1beta1/ingest.pb.validate.go +++ b/gen/indykite/auditsink/v1beta1/ingest.pb.validate.go @@ -850,6 +850,142 @@ var _ interface { ErrorName() string } = BatchDeleteRelationshipPropertiesValidationError{} +// Validate checks the field values on BatchDeleteNodeTags with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *BatchDeleteNodeTags) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on BatchDeleteNodeTags with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// BatchDeleteNodeTagsMultiError, or nil if none found. +func (m *BatchDeleteNodeTags) ValidateAll() error { + return m.validate(true) +} + +func (m *BatchDeleteNodeTags) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetNodeTags() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, BatchDeleteNodeTagsValidationError{ + field: fmt.Sprintf("NodeTags[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, BatchDeleteNodeTagsValidationError{ + field: fmt.Sprintf("NodeTags[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BatchDeleteNodeTagsValidationError{ + field: fmt.Sprintf("NodeTags[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return BatchDeleteNodeTagsMultiError(errors) + } + + return nil +} + +// BatchDeleteNodeTagsMultiError is an error wrapping multiple validation +// errors returned by BatchDeleteNodeTags.ValidateAll() if the designated +// constraints aren't met. +type BatchDeleteNodeTagsMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m BatchDeleteNodeTagsMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m BatchDeleteNodeTagsMultiError) AllErrors() []error { return m } + +// BatchDeleteNodeTagsValidationError is the validation error returned by +// BatchDeleteNodeTags.Validate if the designated constraints aren't met. +type BatchDeleteNodeTagsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BatchDeleteNodeTagsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BatchDeleteNodeTagsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BatchDeleteNodeTagsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BatchDeleteNodeTagsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BatchDeleteNodeTagsValidationError) ErrorName() string { + return "BatchDeleteNodeTagsValidationError" +} + +// Error satisfies the builtin error interface +func (e BatchDeleteNodeTagsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sBatchDeleteNodeTags.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BatchDeleteNodeTagsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BatchDeleteNodeTagsValidationError{} + // Validate checks the field values on UpsertData with the rules defined in the // proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. @@ -1223,6 +1359,47 @@ func (m *DeleteData) validate(all bool) error { } } + case *DeleteData_NodeTags: + if v == nil { + err := DeleteDataValidationError{ + field: "Data", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetNodeTags()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, DeleteDataValidationError{ + field: "NodeTags", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, DeleteDataValidationError{ + field: "NodeTags", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetNodeTags()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DeleteDataValidationError{ + field: "NodeTags", + reason: "embedded message failed validation", + cause: err, + } + } + } + default: _ = v // ensures v is used } @@ -1880,6 +2057,137 @@ var _ interface { ErrorName() string } = NodeMatchValidationError{} +// Validate checks the field values on DeleteData_NodeTagMatch with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *DeleteData_NodeTagMatch) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteData_NodeTagMatch with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DeleteData_NodeTagMatchMultiError, or nil if none found. +func (m *DeleteData_NodeTagMatch) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteData_NodeTagMatch) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetMatch()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, DeleteData_NodeTagMatchValidationError{ + field: "Match", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, DeleteData_NodeTagMatchValidationError{ + field: "Match", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DeleteData_NodeTagMatchValidationError{ + field: "Match", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return DeleteData_NodeTagMatchMultiError(errors) + } + + return nil +} + +// DeleteData_NodeTagMatchMultiError is an error wrapping multiple validation +// errors returned by DeleteData_NodeTagMatch.ValidateAll() if the designated +// constraints aren't met. +type DeleteData_NodeTagMatchMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteData_NodeTagMatchMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeleteData_NodeTagMatchMultiError) AllErrors() []error { return m } + +// DeleteData_NodeTagMatchValidationError is the validation error returned by +// DeleteData_NodeTagMatch.Validate if the designated constraints aren't met. +type DeleteData_NodeTagMatchValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteData_NodeTagMatchValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteData_NodeTagMatchValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteData_NodeTagMatchValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteData_NodeTagMatchValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteData_NodeTagMatchValidationError) ErrorName() string { + return "DeleteData_NodeTagMatchValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteData_NodeTagMatchValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeleteData_NodeTagMatch.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteData_NodeTagMatchValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteData_NodeTagMatchValidationError{} + // Validate checks the field values on DeleteData_NodePropertyMatch with the // rules defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. diff --git a/gen/indykite/config/v1beta1/policy_builder.pb.go b/gen/indykite/config/v1beta1/policy_builder.pb.go index 67be8693..a00f9aa8 100644 --- a/gen/indykite/config/v1beta1/policy_builder.pb.go +++ b/gen/indykite/config/v1beta1/policy_builder.pb.go @@ -918,7 +918,7 @@ var file_indykite_config_v1beta1_policy_builder_proto_rawDesc = []byte{ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xef, 0x01, 0x0a, 0x0c, 0x53, 0x69, 0x6d, 0x70, 0x6c, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xee, 0x01, 0x0a, 0x0c, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, @@ -928,82 +928,82 @@ var file_indykite_config_v1beta1_policy_builder_proto_rawDesc = []byte{ 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x57, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x56, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, - 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x0e, - 0xba, 0x48, 0x0b, 0xc8, 0x01, 0x01, 0x82, 0x01, 0x05, 0x10, 0x01, 0x22, 0x01, 0x00, 0x52, 0x08, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xaf, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x07, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, - 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x10, 0xba, 0x48, - 0x0d, 0xc8, 0x01, 0x01, 0x92, 0x01, 0x07, 0x08, 0x01, 0x22, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x07, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, - 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x42, 0x0e, 0xba, 0x48, 0x0b, 0xc8, 0x01, 0x01, 0x82, 0x01, 0x05, 0x10, 0x01, 0x22, 0x01, 0x00, - 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xac, 0x02, 0x0a, 0x11, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x21, 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x42, 0x0a, 0x0e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0e, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x05, 0xba, 0x48, 0x02, 0x08, 0x01, 0x2a, 0x87, 0x02, 0x0a, 0x12, 0x43, 0x6f, - 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, - 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, - 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, - 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x01, - 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, - 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, - 0x4c, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, - 0x4e, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x41, 0x54, - 0x45, 0x52, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, - 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x41, - 0x54, 0x45, 0x52, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x1c, - 0x0a, 0x18, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x45, - 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x45, 0x53, 0x53, 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, - 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, - 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, - 0x4c, 0x10, 0x06, 0x2a, 0x6d, 0x0a, 0x0c, 0x42, 0x6f, 0x6f, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x4f, 0x4f, 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x52, - 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x15, - 0x0a, 0x11, 0x42, 0x4f, 0x4f, 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, - 0x41, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x4f, 0x4f, 0x4c, 0x5f, 0x4f, 0x50, - 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x42, - 0x4f, 0x4f, 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x58, 0x4f, 0x52, - 0x10, 0x03, 0x42, 0xfe, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, + 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x0d, + 0xba, 0x48, 0x0a, 0xc8, 0x01, 0x01, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, 0x08, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xae, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x07, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x64, + 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x10, 0xba, 0x48, 0x0d, + 0xc8, 0x01, 0x01, 0x92, 0x01, 0x07, 0x08, 0x01, 0x22, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x07, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x50, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x42, 0x12, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x69, 0x6e, - 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2d, 0x73, 0x64, 0x6b, 0x2d, 0x67, 0x6f, 0x2f, 0x67, 0x65, - 0x6e, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x49, 0x43, 0x58, 0xaa, 0x02, 0x17, - 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, - 0x74, 0x65, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xe2, 0x02, 0x23, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x5c, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, - 0x74, 0x65, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x42, + 0x0d, 0xba, 0x48, 0x0a, 0xc8, 0x01, 0x01, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, 0x08, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xac, 0x02, 0x0a, 0x11, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, + 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, + 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x42, + 0x0a, 0x0e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x05, 0xba, 0x48, 0x02, 0x08, 0x01, 0x2a, 0x87, 0x02, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x70, + 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, + 0x0a, 0x1b, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x45, + 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, + 0x1d, 0x0a, 0x19, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, + 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x21, + 0x0a, 0x1d, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x45, + 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, + 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, + 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, + 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, + 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x52, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, + 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, + 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x45, 0x53, 0x53, 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x4f, + 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, + 0x52, 0x5f, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, + 0x06, 0x2a, 0x6d, 0x0a, 0x0c, 0x42, 0x6f, 0x6f, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x4f, 0x4f, 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, + 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x42, 0x4f, 0x4f, 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x4e, + 0x44, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x4f, 0x4f, 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x52, + 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x4f, 0x4f, + 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x58, 0x4f, 0x52, 0x10, 0x03, + 0x42, 0xfe, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, + 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x42, 0x12, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x69, 0x6e, 0x64, 0x79, + 0x6b, 0x69, 0x74, 0x65, 0x2d, 0x73, 0x64, 0x6b, 0x2d, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, + 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x49, 0x43, 0x58, 0xaa, 0x02, 0x17, 0x49, 0x6e, + 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, + 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, + 0x02, 0x23, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, + 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/gen/indykite/entitymatching/v1beta1/entity_matching_api.pb.go b/gen/indykite/entitymatching/v1beta1/entity_matching_api.pb.go index c893a50b..df1203de 100644 --- a/gen/indykite/entitymatching/v1beta1/entity_matching_api.pb.go +++ b/gen/indykite/entitymatching/v1beta1/entity_matching_api.pb.go @@ -43,12 +43,13 @@ type RunEntityMatchingPipelineRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Id is the Globally unique identifier of the pipeline to run. + // Id is the required Globally unique identifier of the pipeline to run. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // CustomPropertyMappings contains the rules to match nodes properties. // If empty, the default rules will be used (stored as part of the pipeline configuration). CustomPropertyMappings []*PropertyMapping `protobuf:"bytes,2,rep,name=custom_property_mappings,json=customPropertyMappings,proto3" json:"custom_property_mappings,omitempty"` - // SimilarityScoreCutoff defines the threshold (in range [0,1]), above which entities will be automatically matched. + // SimilarityScoreCutoff defines the required threshold (in range [0,1]), + // above which entities will be automatically matched. SimilarityScoreCutoff float32 `protobuf:"fixed32,3,opt,name=similarity_score_cutoff,json=similarityScoreCutoff,proto3" json:"similarity_score_cutoff,omitempty"` } @@ -176,7 +177,7 @@ type ReadSuggestedPropertyMappingRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Id contains the Globally Unique Identifier of the object with server generated id. + // Id contains the required Globally Unique Identifier of the object with server generated id. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } @@ -291,7 +292,7 @@ type ReadEntityMatchingReportRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Id contains the Globally Unique Identifier of the object with server generated id. + // Id contains the required Globally Unique Identifier of the object with server generated id. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } diff --git a/gen/indykite/entitymatching/v1beta1/entity_matching_api_grpc.pb.go b/gen/indykite/entitymatching/v1beta1/entity_matching_api_grpc.pb.go index ad7b0839..f4d77e4b 100644 --- a/gen/indykite/entitymatching/v1beta1/entity_matching_api_grpc.pb.go +++ b/gen/indykite/entitymatching/v1beta1/entity_matching_api_grpc.pb.go @@ -45,9 +45,9 @@ const ( type EntityMatchingAPIClient interface { // RunEntityMatchingPipeline by Pipeline ID and optional property mapping. RunEntityMatchingPipeline(ctx context.Context, in *RunEntityMatchingPipelineRequest, opts ...grpc.CallOption) (*RunEntityMatchingPipelineResponse, error) - // ReadSuggestedPropertyMapping by Pipeline Name or ID. + // ReadSuggestedPropertyMapping by Pipeline ID. ReadSuggestedPropertyMapping(ctx context.Context, in *ReadSuggestedPropertyMappingRequest, opts ...grpc.CallOption) (*ReadSuggestedPropertyMappingResponse, error) - // ReadEntityMatchingReport by Pipeline Name or ID for a successful Pipeline. + // ReadEntityMatchingReport by Pipeline ID for a successful Pipeline. ReadEntityMatchingReport(ctx context.Context, in *ReadEntityMatchingReportRequest, opts ...grpc.CallOption) (*ReadEntityMatchingReportResponse, error) } @@ -95,9 +95,9 @@ func (c *entityMatchingAPIClient) ReadEntityMatchingReport(ctx context.Context, type EntityMatchingAPIServer interface { // RunEntityMatchingPipeline by Pipeline ID and optional property mapping. RunEntityMatchingPipeline(context.Context, *RunEntityMatchingPipelineRequest) (*RunEntityMatchingPipelineResponse, error) - // ReadSuggestedPropertyMapping by Pipeline Name or ID. + // ReadSuggestedPropertyMapping by Pipeline ID. ReadSuggestedPropertyMapping(context.Context, *ReadSuggestedPropertyMappingRequest) (*ReadSuggestedPropertyMappingResponse, error) - // ReadEntityMatchingReport by Pipeline Name or ID for a successful Pipeline. + // ReadEntityMatchingReport by Pipeline ID for a successful Pipeline. ReadEntityMatchingReport(context.Context, *ReadEntityMatchingReportRequest) (*ReadEntityMatchingReportResponse, error) } diff --git a/gen/indykite/ingest/v1beta3/ingest_api.pb.go b/gen/indykite/ingest/v1beta3/ingest_api.pb.go index 141d7145..be0c9ef8 100644 --- a/gen/indykite/ingest/v1beta3/ingest_api.pb.go +++ b/gen/indykite/ingest/v1beta3/ingest_api.pb.go @@ -606,6 +606,100 @@ func (x *BatchDeleteRelationshipPropertiesResponse) GetResults() []*Info { return nil } +type BatchDeleteNodeTagsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeTags []*DeleteData_NodeTagMatch `protobuf:"bytes,1,rep,name=node_tags,json=nodeTags,proto3" json:"node_tags,omitempty"` +} + +func (x *BatchDeleteNodeTagsRequest) Reset() { + *x = BatchDeleteNodeTagsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchDeleteNodeTagsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchDeleteNodeTagsRequest) ProtoMessage() {} + +func (x *BatchDeleteNodeTagsRequest) ProtoReflect() protoreflect.Message { + mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchDeleteNodeTagsRequest.ProtoReflect.Descriptor instead. +func (*BatchDeleteNodeTagsRequest) Descriptor() ([]byte, []int) { + return file_indykite_ingest_v1beta3_ingest_api_proto_rawDescGZIP(), []int{12} +} + +func (x *BatchDeleteNodeTagsRequest) GetNodeTags() []*DeleteData_NodeTagMatch { + if x != nil { + return x.NodeTags + } + return nil +} + +type BatchDeleteNodeTagsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Results []*Info `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` +} + +func (x *BatchDeleteNodeTagsResponse) Reset() { + *x = BatchDeleteNodeTagsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchDeleteNodeTagsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchDeleteNodeTagsResponse) ProtoMessage() {} + +func (x *BatchDeleteNodeTagsResponse) ProtoReflect() protoreflect.Message { + mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchDeleteNodeTagsResponse.ProtoReflect.Descriptor instead. +func (*BatchDeleteNodeTagsResponse) Descriptor() ([]byte, []int) { + return file_indykite_ingest_v1beta3_ingest_api_proto_rawDescGZIP(), []int{13} +} + +func (x *BatchDeleteNodeTagsResponse) GetResults() []*Info { + if x != nil { + return x.Results + } + return nil +} + type StreamRecordsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -617,7 +711,7 @@ type StreamRecordsRequest struct { func (x *StreamRecordsRequest) Reset() { *x = StreamRecordsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[12] + mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -630,7 +724,7 @@ func (x *StreamRecordsRequest) String() string { func (*StreamRecordsRequest) ProtoMessage() {} func (x *StreamRecordsRequest) ProtoReflect() protoreflect.Message { - mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[12] + mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -643,7 +737,7 @@ func (x *StreamRecordsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamRecordsRequest.ProtoReflect.Descriptor instead. func (*StreamRecordsRequest) Descriptor() ([]byte, []int) { - return file_indykite_ingest_v1beta3_ingest_api_proto_rawDescGZIP(), []int{12} + return file_indykite_ingest_v1beta3_ingest_api_proto_rawDescGZIP(), []int{14} } func (x *StreamRecordsRequest) GetRecord() *Record { @@ -671,7 +765,7 @@ type StreamRecordsResponse struct { func (x *StreamRecordsResponse) Reset() { *x = StreamRecordsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[13] + mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -684,7 +778,7 @@ func (x *StreamRecordsResponse) String() string { func (*StreamRecordsResponse) ProtoMessage() {} func (x *StreamRecordsResponse) ProtoReflect() protoreflect.Message { - mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[13] + mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -697,7 +791,7 @@ func (x *StreamRecordsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamRecordsResponse.ProtoReflect.Descriptor instead. func (*StreamRecordsResponse) Descriptor() ([]byte, []int) { - return file_indykite_ingest_v1beta3_ingest_api_proto_rawDescGZIP(), []int{13} + return file_indykite_ingest_v1beta3_ingest_api_proto_rawDescGZIP(), []int{15} } func (x *StreamRecordsResponse) GetRecordId() string { @@ -769,7 +863,7 @@ type IngestRecordRequest struct { func (x *IngestRecordRequest) Reset() { *x = IngestRecordRequest{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[14] + mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -782,7 +876,7 @@ func (x *IngestRecordRequest) String() string { func (*IngestRecordRequest) ProtoMessage() {} func (x *IngestRecordRequest) ProtoReflect() protoreflect.Message { - mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[14] + mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -795,7 +889,7 @@ func (x *IngestRecordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IngestRecordRequest.ProtoReflect.Descriptor instead. func (*IngestRecordRequest) Descriptor() ([]byte, []int) { - return file_indykite_ingest_v1beta3_ingest_api_proto_rawDescGZIP(), []int{14} + return file_indykite_ingest_v1beta3_ingest_api_proto_rawDescGZIP(), []int{16} } func (x *IngestRecordRequest) GetRecord() *Record { @@ -817,7 +911,7 @@ type IngestRecordResponse struct { func (x *IngestRecordResponse) Reset() { *x = IngestRecordResponse{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[15] + mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -830,7 +924,7 @@ func (x *IngestRecordResponse) String() string { func (*IngestRecordResponse) ProtoMessage() {} func (x *IngestRecordResponse) ProtoReflect() protoreflect.Message { - mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[15] + mi := &file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -843,7 +937,7 @@ func (x *IngestRecordResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IngestRecordResponse.ProtoReflect.Descriptor instead. func (*IngestRecordResponse) Descriptor() ([]byte, []int) { - return file_indykite_ingest_v1beta3_ingest_api_proto_rawDescGZIP(), []int{15} + return file_indykite_ingest_v1beta3_ingest_api_proto_rawDescGZIP(), []int{17} } func (x *IngestRecordResponse) GetRecordId() string { @@ -958,127 +1052,149 @@ var file_indykite_ingest_v1beta3_ingest_api_proto_rawDesc = []byte{ 0x12, 0x37, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x59, 0x0a, 0x14, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, - 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x22, 0x97, 0x02, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x49, - 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, - 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x58, - 0x0a, 0x13, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, - 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, - 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x66, 0x0a, 0x14, 0x49, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x78, 0x0a, 0x1a, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x64, + 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x33, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x0b, 0xfa, 0x42, + 0x08, 0x92, 0x01, 0x05, 0x08, 0x01, 0x10, 0xfa, 0x01, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, + 0x61, 0x67, 0x73, 0x22, 0x56, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, + 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x59, 0x0a, 0x14, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, + 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x97, 0x02, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x12, 0x31, 0x0a, - 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, - 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, - 0x32, 0xc4, 0x08, 0x0a, 0x09, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x41, 0x50, 0x49, 0x12, 0x72, - 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, - 0x2d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, - 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, - 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, - 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x0c, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x12, 0x21, 0x0a, + 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x49, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, + 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, + 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0b, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x37, 0x0a, 0x0c, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, + 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x22, 0x58, 0x0a, 0x13, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, + 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x33, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, + 0x10, 0x01, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x66, 0x0a, 0x14, 0x49, 0x6e, + 0x67, 0x65, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x12, + 0x31, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, + 0x66, 0x6f, 0x32, 0xcc, 0x09, 0x0a, 0x09, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x41, 0x50, 0x49, + 0x12, 0x72, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, + 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x28, 0x01, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x0c, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, + 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x49, + 0x6e, 0x67, 0x65, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x49, 0x6e, 0x67, - 0x65, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x49, 0x6e, 0x67, 0x65, 0x73, - 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x77, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, - 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, - 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, + 0x65, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x77, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, + 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x64, + 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, + 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, + 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, + 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x8f, 0x01, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x12, 0x38, 0x2e, 0x69, + 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, + 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, + 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, + 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x77, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x18, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x68, 0x69, 0x70, 0x73, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, + 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x18, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, + 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, + 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, + 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x64, + 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x39, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, - 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, - 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, - 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x30, - 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, - 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, - 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x64, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0xaa, 0x01, 0x0a, 0x21, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x41, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, + 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x69, 0x65, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, - 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, - 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xaa, 0x01, 0x0a, 0x21, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, - 0x12, 0x41, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, - 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, - 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xfa, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, - 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x42, 0x0e, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x41, - 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4d, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x69, - 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2d, 0x73, 0x64, 0x6b, 0x2d, 0x67, 0x6f, 0x2f, 0x67, - 0x65, 0x6e, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x69, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x3b, 0x69, 0x6e, 0x67, 0x65, 0x73, - 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xa2, 0x02, 0x03, 0x49, 0x49, 0x58, 0xaa, 0x02, - 0x17, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, - 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xca, 0x02, 0x17, 0x49, 0x6e, 0x64, 0x79, 0x6b, - 0x69, 0x74, 0x65, 0x5c, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x33, 0xe2, 0x02, 0x23, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x5c, 0x49, 0x6e, - 0x67, 0x65, 0x73, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x49, 0x6e, 0x64, 0x79, 0x6b, - 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, + 0x01, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x54, 0x61, 0x67, 0x73, 0x12, 0x33, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, + 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, + 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, + 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x42, 0xfa, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, + 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x33, 0x42, 0x0e, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x4d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, + 0x65, 0x2d, 0x73, 0x64, 0x6b, 0x2d, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x69, 0x6e, 0x64, + 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x33, 0x3b, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x33, 0xa2, 0x02, 0x03, 0x49, 0x49, 0x58, 0xaa, 0x02, 0x17, 0x49, 0x6e, 0x64, 0x79, 0x6b, + 0x69, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x33, 0xca, 0x02, 0x17, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x5c, 0x49, 0x6e, + 0x67, 0x65, 0x73, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xe2, 0x02, 0x23, 0x49, + 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x5c, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x5c, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x19, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x49, + 0x6e, 0x67, 0x65, 0x73, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1093,7 +1209,7 @@ func file_indykite_ingest_v1beta3_ingest_api_proto_rawDescGZIP() []byte { return file_indykite_ingest_v1beta3_ingest_api_proto_rawDescData } -var file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_indykite_ingest_v1beta3_ingest_api_proto_goTypes = []any{ (*BatchUpsertNodesRequest)(nil), // 0: indykite.ingest.v1beta3.BatchUpsertNodesRequest (*BatchUpsertNodesResponse)(nil), // 1: indykite.ingest.v1beta3.BatchUpsertNodesResponse @@ -1107,60 +1223,67 @@ var file_indykite_ingest_v1beta3_ingest_api_proto_goTypes = []any{ (*BatchDeleteNodePropertiesResponse)(nil), // 9: indykite.ingest.v1beta3.BatchDeleteNodePropertiesResponse (*BatchDeleteRelationshipPropertiesRequest)(nil), // 10: indykite.ingest.v1beta3.BatchDeleteRelationshipPropertiesRequest (*BatchDeleteRelationshipPropertiesResponse)(nil), // 11: indykite.ingest.v1beta3.BatchDeleteRelationshipPropertiesResponse - (*StreamRecordsRequest)(nil), // 12: indykite.ingest.v1beta3.StreamRecordsRequest - (*StreamRecordsResponse)(nil), // 13: indykite.ingest.v1beta3.StreamRecordsResponse - (*IngestRecordRequest)(nil), // 14: indykite.ingest.v1beta3.IngestRecordRequest - (*IngestRecordResponse)(nil), // 15: indykite.ingest.v1beta3.IngestRecordResponse - (*v1beta1.Node)(nil), // 16: indykite.knowledge.objects.v1beta1.Node - (*Info)(nil), // 17: indykite.ingest.v1beta3.Info - (*Relationship)(nil), // 18: indykite.ingest.v1beta3.Relationship - (*NodeMatch)(nil), // 19: indykite.ingest.v1beta3.NodeMatch - (*DeleteData_NodePropertyMatch)(nil), // 20: indykite.ingest.v1beta3.DeleteData.NodePropertyMatch - (*DeleteData_RelationshipPropertyMatch)(nil), // 21: indykite.ingest.v1beta3.DeleteData.RelationshipPropertyMatch - (*Record)(nil), // 22: indykite.ingest.v1beta3.Record - (*RecordError)(nil), // 23: indykite.ingest.v1beta3.RecordError - (*status.Status)(nil), // 24: google.rpc.Status + (*BatchDeleteNodeTagsRequest)(nil), // 12: indykite.ingest.v1beta3.BatchDeleteNodeTagsRequest + (*BatchDeleteNodeTagsResponse)(nil), // 13: indykite.ingest.v1beta3.BatchDeleteNodeTagsResponse + (*StreamRecordsRequest)(nil), // 14: indykite.ingest.v1beta3.StreamRecordsRequest + (*StreamRecordsResponse)(nil), // 15: indykite.ingest.v1beta3.StreamRecordsResponse + (*IngestRecordRequest)(nil), // 16: indykite.ingest.v1beta3.IngestRecordRequest + (*IngestRecordResponse)(nil), // 17: indykite.ingest.v1beta3.IngestRecordResponse + (*v1beta1.Node)(nil), // 18: indykite.knowledge.objects.v1beta1.Node + (*Info)(nil), // 19: indykite.ingest.v1beta3.Info + (*Relationship)(nil), // 20: indykite.ingest.v1beta3.Relationship + (*NodeMatch)(nil), // 21: indykite.ingest.v1beta3.NodeMatch + (*DeleteData_NodePropertyMatch)(nil), // 22: indykite.ingest.v1beta3.DeleteData.NodePropertyMatch + (*DeleteData_RelationshipPropertyMatch)(nil), // 23: indykite.ingest.v1beta3.DeleteData.RelationshipPropertyMatch + (*DeleteData_NodeTagMatch)(nil), // 24: indykite.ingest.v1beta3.DeleteData.NodeTagMatch + (*Record)(nil), // 25: indykite.ingest.v1beta3.Record + (*RecordError)(nil), // 26: indykite.ingest.v1beta3.RecordError + (*status.Status)(nil), // 27: google.rpc.Status } var file_indykite_ingest_v1beta3_ingest_api_proto_depIdxs = []int32{ - 16, // 0: indykite.ingest.v1beta3.BatchUpsertNodesRequest.nodes:type_name -> indykite.knowledge.objects.v1beta1.Node - 17, // 1: indykite.ingest.v1beta3.BatchUpsertNodesResponse.results:type_name -> indykite.ingest.v1beta3.Info - 18, // 2: indykite.ingest.v1beta3.BatchUpsertRelationshipsRequest.relationships:type_name -> indykite.ingest.v1beta3.Relationship - 17, // 3: indykite.ingest.v1beta3.BatchUpsertRelationshipsResponse.results:type_name -> indykite.ingest.v1beta3.Info - 19, // 4: indykite.ingest.v1beta3.BatchDeleteNodesRequest.nodes:type_name -> indykite.ingest.v1beta3.NodeMatch - 17, // 5: indykite.ingest.v1beta3.BatchDeleteNodesResponse.results:type_name -> indykite.ingest.v1beta3.Info - 18, // 6: indykite.ingest.v1beta3.BatchDeleteRelationshipsRequest.relationships:type_name -> indykite.ingest.v1beta3.Relationship - 17, // 7: indykite.ingest.v1beta3.BatchDeleteRelationshipsResponse.results:type_name -> indykite.ingest.v1beta3.Info - 20, // 8: indykite.ingest.v1beta3.BatchDeleteNodePropertiesRequest.node_properties:type_name -> indykite.ingest.v1beta3.DeleteData.NodePropertyMatch - 17, // 9: indykite.ingest.v1beta3.BatchDeleteNodePropertiesResponse.results:type_name -> indykite.ingest.v1beta3.Info - 21, // 10: indykite.ingest.v1beta3.BatchDeleteRelationshipPropertiesRequest.relationship_properties:type_name -> indykite.ingest.v1beta3.DeleteData.RelationshipPropertyMatch - 17, // 11: indykite.ingest.v1beta3.BatchDeleteRelationshipPropertiesResponse.results:type_name -> indykite.ingest.v1beta3.Info - 22, // 12: indykite.ingest.v1beta3.StreamRecordsRequest.record:type_name -> indykite.ingest.v1beta3.Record - 23, // 13: indykite.ingest.v1beta3.StreamRecordsResponse.record_error:type_name -> indykite.ingest.v1beta3.RecordError - 24, // 14: indykite.ingest.v1beta3.StreamRecordsResponse.status_error:type_name -> google.rpc.Status - 17, // 15: indykite.ingest.v1beta3.StreamRecordsResponse.info:type_name -> indykite.ingest.v1beta3.Info - 22, // 16: indykite.ingest.v1beta3.IngestRecordRequest.record:type_name -> indykite.ingest.v1beta3.Record - 17, // 17: indykite.ingest.v1beta3.IngestRecordResponse.info:type_name -> indykite.ingest.v1beta3.Info - 12, // 18: indykite.ingest.v1beta3.IngestAPI.StreamRecords:input_type -> indykite.ingest.v1beta3.StreamRecordsRequest - 14, // 19: indykite.ingest.v1beta3.IngestAPI.IngestRecord:input_type -> indykite.ingest.v1beta3.IngestRecordRequest - 0, // 20: indykite.ingest.v1beta3.IngestAPI.BatchUpsertNodes:input_type -> indykite.ingest.v1beta3.BatchUpsertNodesRequest - 2, // 21: indykite.ingest.v1beta3.IngestAPI.BatchUpsertRelationships:input_type -> indykite.ingest.v1beta3.BatchUpsertRelationshipsRequest - 4, // 22: indykite.ingest.v1beta3.IngestAPI.BatchDeleteNodes:input_type -> indykite.ingest.v1beta3.BatchDeleteNodesRequest - 6, // 23: indykite.ingest.v1beta3.IngestAPI.BatchDeleteRelationships:input_type -> indykite.ingest.v1beta3.BatchDeleteRelationshipsRequest - 8, // 24: indykite.ingest.v1beta3.IngestAPI.BatchDeleteNodeProperties:input_type -> indykite.ingest.v1beta3.BatchDeleteNodePropertiesRequest - 10, // 25: indykite.ingest.v1beta3.IngestAPI.BatchDeleteRelationshipProperties:input_type -> indykite.ingest.v1beta3.BatchDeleteRelationshipPropertiesRequest - 13, // 26: indykite.ingest.v1beta3.IngestAPI.StreamRecords:output_type -> indykite.ingest.v1beta3.StreamRecordsResponse - 15, // 27: indykite.ingest.v1beta3.IngestAPI.IngestRecord:output_type -> indykite.ingest.v1beta3.IngestRecordResponse - 1, // 28: indykite.ingest.v1beta3.IngestAPI.BatchUpsertNodes:output_type -> indykite.ingest.v1beta3.BatchUpsertNodesResponse - 3, // 29: indykite.ingest.v1beta3.IngestAPI.BatchUpsertRelationships:output_type -> indykite.ingest.v1beta3.BatchUpsertRelationshipsResponse - 5, // 30: indykite.ingest.v1beta3.IngestAPI.BatchDeleteNodes:output_type -> indykite.ingest.v1beta3.BatchDeleteNodesResponse - 7, // 31: indykite.ingest.v1beta3.IngestAPI.BatchDeleteRelationships:output_type -> indykite.ingest.v1beta3.BatchDeleteRelationshipsResponse - 9, // 32: indykite.ingest.v1beta3.IngestAPI.BatchDeleteNodeProperties:output_type -> indykite.ingest.v1beta3.BatchDeleteNodePropertiesResponse - 11, // 33: indykite.ingest.v1beta3.IngestAPI.BatchDeleteRelationshipProperties:output_type -> indykite.ingest.v1beta3.BatchDeleteRelationshipPropertiesResponse - 26, // [26:34] is the sub-list for method output_type - 18, // [18:26] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 18, // 0: indykite.ingest.v1beta3.BatchUpsertNodesRequest.nodes:type_name -> indykite.knowledge.objects.v1beta1.Node + 19, // 1: indykite.ingest.v1beta3.BatchUpsertNodesResponse.results:type_name -> indykite.ingest.v1beta3.Info + 20, // 2: indykite.ingest.v1beta3.BatchUpsertRelationshipsRequest.relationships:type_name -> indykite.ingest.v1beta3.Relationship + 19, // 3: indykite.ingest.v1beta3.BatchUpsertRelationshipsResponse.results:type_name -> indykite.ingest.v1beta3.Info + 21, // 4: indykite.ingest.v1beta3.BatchDeleteNodesRequest.nodes:type_name -> indykite.ingest.v1beta3.NodeMatch + 19, // 5: indykite.ingest.v1beta3.BatchDeleteNodesResponse.results:type_name -> indykite.ingest.v1beta3.Info + 20, // 6: indykite.ingest.v1beta3.BatchDeleteRelationshipsRequest.relationships:type_name -> indykite.ingest.v1beta3.Relationship + 19, // 7: indykite.ingest.v1beta3.BatchDeleteRelationshipsResponse.results:type_name -> indykite.ingest.v1beta3.Info + 22, // 8: indykite.ingest.v1beta3.BatchDeleteNodePropertiesRequest.node_properties:type_name -> indykite.ingest.v1beta3.DeleteData.NodePropertyMatch + 19, // 9: indykite.ingest.v1beta3.BatchDeleteNodePropertiesResponse.results:type_name -> indykite.ingest.v1beta3.Info + 23, // 10: indykite.ingest.v1beta3.BatchDeleteRelationshipPropertiesRequest.relationship_properties:type_name -> indykite.ingest.v1beta3.DeleteData.RelationshipPropertyMatch + 19, // 11: indykite.ingest.v1beta3.BatchDeleteRelationshipPropertiesResponse.results:type_name -> indykite.ingest.v1beta3.Info + 24, // 12: indykite.ingest.v1beta3.BatchDeleteNodeTagsRequest.node_tags:type_name -> indykite.ingest.v1beta3.DeleteData.NodeTagMatch + 19, // 13: indykite.ingest.v1beta3.BatchDeleteNodeTagsResponse.results:type_name -> indykite.ingest.v1beta3.Info + 25, // 14: indykite.ingest.v1beta3.StreamRecordsRequest.record:type_name -> indykite.ingest.v1beta3.Record + 26, // 15: indykite.ingest.v1beta3.StreamRecordsResponse.record_error:type_name -> indykite.ingest.v1beta3.RecordError + 27, // 16: indykite.ingest.v1beta3.StreamRecordsResponse.status_error:type_name -> google.rpc.Status + 19, // 17: indykite.ingest.v1beta3.StreamRecordsResponse.info:type_name -> indykite.ingest.v1beta3.Info + 25, // 18: indykite.ingest.v1beta3.IngestRecordRequest.record:type_name -> indykite.ingest.v1beta3.Record + 19, // 19: indykite.ingest.v1beta3.IngestRecordResponse.info:type_name -> indykite.ingest.v1beta3.Info + 14, // 20: indykite.ingest.v1beta3.IngestAPI.StreamRecords:input_type -> indykite.ingest.v1beta3.StreamRecordsRequest + 16, // 21: indykite.ingest.v1beta3.IngestAPI.IngestRecord:input_type -> indykite.ingest.v1beta3.IngestRecordRequest + 0, // 22: indykite.ingest.v1beta3.IngestAPI.BatchUpsertNodes:input_type -> indykite.ingest.v1beta3.BatchUpsertNodesRequest + 2, // 23: indykite.ingest.v1beta3.IngestAPI.BatchUpsertRelationships:input_type -> indykite.ingest.v1beta3.BatchUpsertRelationshipsRequest + 4, // 24: indykite.ingest.v1beta3.IngestAPI.BatchDeleteNodes:input_type -> indykite.ingest.v1beta3.BatchDeleteNodesRequest + 6, // 25: indykite.ingest.v1beta3.IngestAPI.BatchDeleteRelationships:input_type -> indykite.ingest.v1beta3.BatchDeleteRelationshipsRequest + 8, // 26: indykite.ingest.v1beta3.IngestAPI.BatchDeleteNodeProperties:input_type -> indykite.ingest.v1beta3.BatchDeleteNodePropertiesRequest + 10, // 27: indykite.ingest.v1beta3.IngestAPI.BatchDeleteRelationshipProperties:input_type -> indykite.ingest.v1beta3.BatchDeleteRelationshipPropertiesRequest + 12, // 28: indykite.ingest.v1beta3.IngestAPI.BatchDeleteNodeTags:input_type -> indykite.ingest.v1beta3.BatchDeleteNodeTagsRequest + 15, // 29: indykite.ingest.v1beta3.IngestAPI.StreamRecords:output_type -> indykite.ingest.v1beta3.StreamRecordsResponse + 17, // 30: indykite.ingest.v1beta3.IngestAPI.IngestRecord:output_type -> indykite.ingest.v1beta3.IngestRecordResponse + 1, // 31: indykite.ingest.v1beta3.IngestAPI.BatchUpsertNodes:output_type -> indykite.ingest.v1beta3.BatchUpsertNodesResponse + 3, // 32: indykite.ingest.v1beta3.IngestAPI.BatchUpsertRelationships:output_type -> indykite.ingest.v1beta3.BatchUpsertRelationshipsResponse + 5, // 33: indykite.ingest.v1beta3.IngestAPI.BatchDeleteNodes:output_type -> indykite.ingest.v1beta3.BatchDeleteNodesResponse + 7, // 34: indykite.ingest.v1beta3.IngestAPI.BatchDeleteRelationships:output_type -> indykite.ingest.v1beta3.BatchDeleteRelationshipsResponse + 9, // 35: indykite.ingest.v1beta3.IngestAPI.BatchDeleteNodeProperties:output_type -> indykite.ingest.v1beta3.BatchDeleteNodePropertiesResponse + 11, // 36: indykite.ingest.v1beta3.IngestAPI.BatchDeleteRelationshipProperties:output_type -> indykite.ingest.v1beta3.BatchDeleteRelationshipPropertiesResponse + 13, // 37: indykite.ingest.v1beta3.IngestAPI.BatchDeleteNodeTags:output_type -> indykite.ingest.v1beta3.BatchDeleteNodeTagsResponse + 29, // [29:38] is the sub-list for method output_type + 20, // [20:29] 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 } func init() { file_indykite_ingest_v1beta3_ingest_api_proto_init() } @@ -1315,7 +1438,7 @@ func file_indykite_ingest_v1beta3_ingest_api_proto_init() { } } file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*StreamRecordsRequest); i { + switch v := v.(*BatchDeleteNodeTagsRequest); i { case 0: return &v.state case 1: @@ -1327,7 +1450,7 @@ func file_indykite_ingest_v1beta3_ingest_api_proto_init() { } } file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*StreamRecordsResponse); i { + switch v := v.(*BatchDeleteNodeTagsResponse); i { case 0: return &v.state case 1: @@ -1339,7 +1462,7 @@ func file_indykite_ingest_v1beta3_ingest_api_proto_init() { } } file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*IngestRecordRequest); i { + switch v := v.(*StreamRecordsRequest); i { case 0: return &v.state case 1: @@ -1351,6 +1474,30 @@ func file_indykite_ingest_v1beta3_ingest_api_proto_init() { } } file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[15].Exporter = func(v any, i int) any { + switch v := v.(*StreamRecordsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[16].Exporter = func(v any, i int) any { + switch v := v.(*IngestRecordRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*IngestRecordResponse); i { case 0: return &v.state @@ -1363,7 +1510,7 @@ func file_indykite_ingest_v1beta3_ingest_api_proto_init() { } } } - file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[13].OneofWrappers = []any{ + file_indykite_ingest_v1beta3_ingest_api_proto_msgTypes[15].OneofWrappers = []any{ (*StreamRecordsResponse_RecordError)(nil), (*StreamRecordsResponse_StatusError)(nil), } @@ -1373,7 +1520,7 @@ func file_indykite_ingest_v1beta3_ingest_api_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_indykite_ingest_v1beta3_ingest_api_proto_rawDesc, NumEnums: 0, - NumMessages: 16, + NumMessages: 18, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/indykite/ingest/v1beta3/ingest_api.pb.validate.go b/gen/indykite/ingest/v1beta3/ingest_api.pb.validate.go index 6ee78f5f..cbb27c57 100644 --- a/gen/indykite/ingest/v1beta3/ingest_api.pb.validate.go +++ b/gen/indykite/ingest/v1beta3/ingest_api.pb.validate.go @@ -1755,6 +1755,290 @@ var _ interface { ErrorName() string } = BatchDeleteRelationshipPropertiesResponseValidationError{} +// Validate checks the field values on BatchDeleteNodeTagsRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *BatchDeleteNodeTagsRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on BatchDeleteNodeTagsRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// BatchDeleteNodeTagsRequestMultiError, or nil if none found. +func (m *BatchDeleteNodeTagsRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *BatchDeleteNodeTagsRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if l := len(m.GetNodeTags()); l < 1 || l > 250 { + err := BatchDeleteNodeTagsRequestValidationError{ + field: "NodeTags", + reason: "value must contain between 1 and 250 items, inclusive", + } + if !all { + return err + } + errors = append(errors, err) + } + + for idx, item := range m.GetNodeTags() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, BatchDeleteNodeTagsRequestValidationError{ + field: fmt.Sprintf("NodeTags[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, BatchDeleteNodeTagsRequestValidationError{ + field: fmt.Sprintf("NodeTags[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BatchDeleteNodeTagsRequestValidationError{ + field: fmt.Sprintf("NodeTags[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return BatchDeleteNodeTagsRequestMultiError(errors) + } + + return nil +} + +// BatchDeleteNodeTagsRequestMultiError is an error wrapping multiple +// validation errors returned by BatchDeleteNodeTagsRequest.ValidateAll() if +// the designated constraints aren't met. +type BatchDeleteNodeTagsRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m BatchDeleteNodeTagsRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m BatchDeleteNodeTagsRequestMultiError) AllErrors() []error { return m } + +// BatchDeleteNodeTagsRequestValidationError is the validation error returned +// by BatchDeleteNodeTagsRequest.Validate if the designated constraints aren't met. +type BatchDeleteNodeTagsRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BatchDeleteNodeTagsRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BatchDeleteNodeTagsRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BatchDeleteNodeTagsRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BatchDeleteNodeTagsRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BatchDeleteNodeTagsRequestValidationError) ErrorName() string { + return "BatchDeleteNodeTagsRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e BatchDeleteNodeTagsRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sBatchDeleteNodeTagsRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BatchDeleteNodeTagsRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BatchDeleteNodeTagsRequestValidationError{} + +// Validate checks the field values on BatchDeleteNodeTagsResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *BatchDeleteNodeTagsResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on BatchDeleteNodeTagsResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// BatchDeleteNodeTagsResponseMultiError, or nil if none found. +func (m *BatchDeleteNodeTagsResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *BatchDeleteNodeTagsResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetResults() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, BatchDeleteNodeTagsResponseValidationError{ + field: fmt.Sprintf("Results[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, BatchDeleteNodeTagsResponseValidationError{ + field: fmt.Sprintf("Results[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BatchDeleteNodeTagsResponseValidationError{ + field: fmt.Sprintf("Results[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return BatchDeleteNodeTagsResponseMultiError(errors) + } + + return nil +} + +// BatchDeleteNodeTagsResponseMultiError is an error wrapping multiple +// validation errors returned by BatchDeleteNodeTagsResponse.ValidateAll() if +// the designated constraints aren't met. +type BatchDeleteNodeTagsResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m BatchDeleteNodeTagsResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m BatchDeleteNodeTagsResponseMultiError) AllErrors() []error { return m } + +// BatchDeleteNodeTagsResponseValidationError is the validation error returned +// by BatchDeleteNodeTagsResponse.Validate if the designated constraints +// aren't met. +type BatchDeleteNodeTagsResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BatchDeleteNodeTagsResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BatchDeleteNodeTagsResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BatchDeleteNodeTagsResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BatchDeleteNodeTagsResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BatchDeleteNodeTagsResponseValidationError) ErrorName() string { + return "BatchDeleteNodeTagsResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e BatchDeleteNodeTagsResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sBatchDeleteNodeTagsResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BatchDeleteNodeTagsResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BatchDeleteNodeTagsResponseValidationError{} + // Validate checks the field values on StreamRecordsRequest with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. diff --git a/gen/indykite/ingest/v1beta3/ingest_api_grpc.pb.go b/gen/indykite/ingest/v1beta3/ingest_api_grpc.pb.go index b4eaf31f..0ecfca11 100644 --- a/gen/indykite/ingest/v1beta3/ingest_api_grpc.pb.go +++ b/gen/indykite/ingest/v1beta3/ingest_api_grpc.pb.go @@ -44,6 +44,7 @@ const ( IngestAPI_BatchDeleteRelationships_FullMethodName = "/indykite.ingest.v1beta3.IngestAPI/BatchDeleteRelationships" IngestAPI_BatchDeleteNodeProperties_FullMethodName = "/indykite.ingest.v1beta3.IngestAPI/BatchDeleteNodeProperties" IngestAPI_BatchDeleteRelationshipProperties_FullMethodName = "/indykite.ingest.v1beta3.IngestAPI/BatchDeleteRelationshipProperties" + IngestAPI_BatchDeleteNodeTags_FullMethodName = "/indykite.ingest.v1beta3.IngestAPI/BatchDeleteNodeTags" ) // IngestAPIClient is the client API for IngestAPI service. @@ -53,6 +54,7 @@ const ( // IngestAPI represents the service interface for data ingestion. type IngestAPIClient interface { StreamRecords(ctx context.Context, opts ...grpc.CallOption) (IngestAPI_StreamRecordsClient, error) + // Deprecated: Do not use. IngestRecord(ctx context.Context, in *IngestRecordRequest, opts ...grpc.CallOption) (*IngestRecordResponse, error) BatchUpsertNodes(ctx context.Context, in *BatchUpsertNodesRequest, opts ...grpc.CallOption) (*BatchUpsertNodesResponse, error) BatchUpsertRelationships(ctx context.Context, in *BatchUpsertRelationshipsRequest, opts ...grpc.CallOption) (*BatchUpsertRelationshipsResponse, error) @@ -60,6 +62,7 @@ type IngestAPIClient interface { BatchDeleteRelationships(ctx context.Context, in *BatchDeleteRelationshipsRequest, opts ...grpc.CallOption) (*BatchDeleteRelationshipsResponse, error) BatchDeleteNodeProperties(ctx context.Context, in *BatchDeleteNodePropertiesRequest, opts ...grpc.CallOption) (*BatchDeleteNodePropertiesResponse, error) BatchDeleteRelationshipProperties(ctx context.Context, in *BatchDeleteRelationshipPropertiesRequest, opts ...grpc.CallOption) (*BatchDeleteRelationshipPropertiesResponse, error) + BatchDeleteNodeTags(ctx context.Context, in *BatchDeleteNodeTagsRequest, opts ...grpc.CallOption) (*BatchDeleteNodeTagsResponse, error) } type ingestAPIClient struct { @@ -102,6 +105,7 @@ func (x *ingestAPIStreamRecordsClient) Recv() (*StreamRecordsResponse, error) { return m, nil } +// Deprecated: Do not use. func (c *ingestAPIClient) IngestRecord(ctx context.Context, in *IngestRecordRequest, opts ...grpc.CallOption) (*IngestRecordResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(IngestRecordResponse) @@ -172,6 +176,16 @@ func (c *ingestAPIClient) BatchDeleteRelationshipProperties(ctx context.Context, return out, nil } +func (c *ingestAPIClient) BatchDeleteNodeTags(ctx context.Context, in *BatchDeleteNodeTagsRequest, opts ...grpc.CallOption) (*BatchDeleteNodeTagsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(BatchDeleteNodeTagsResponse) + err := c.cc.Invoke(ctx, IngestAPI_BatchDeleteNodeTags_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // IngestAPIServer is the server API for IngestAPI service. // All implementations should embed UnimplementedIngestAPIServer // for forward compatibility @@ -179,6 +193,7 @@ func (c *ingestAPIClient) BatchDeleteRelationshipProperties(ctx context.Context, // IngestAPI represents the service interface for data ingestion. type IngestAPIServer interface { StreamRecords(IngestAPI_StreamRecordsServer) error + // Deprecated: Do not use. IngestRecord(context.Context, *IngestRecordRequest) (*IngestRecordResponse, error) BatchUpsertNodes(context.Context, *BatchUpsertNodesRequest) (*BatchUpsertNodesResponse, error) BatchUpsertRelationships(context.Context, *BatchUpsertRelationshipsRequest) (*BatchUpsertRelationshipsResponse, error) @@ -186,6 +201,7 @@ type IngestAPIServer interface { BatchDeleteRelationships(context.Context, *BatchDeleteRelationshipsRequest) (*BatchDeleteRelationshipsResponse, error) BatchDeleteNodeProperties(context.Context, *BatchDeleteNodePropertiesRequest) (*BatchDeleteNodePropertiesResponse, error) BatchDeleteRelationshipProperties(context.Context, *BatchDeleteRelationshipPropertiesRequest) (*BatchDeleteRelationshipPropertiesResponse, error) + BatchDeleteNodeTags(context.Context, *BatchDeleteNodeTagsRequest) (*BatchDeleteNodeTagsResponse, error) } // UnimplementedIngestAPIServer should be embedded to have forward compatible implementations. @@ -216,6 +232,9 @@ func (UnimplementedIngestAPIServer) BatchDeleteNodeProperties(context.Context, * func (UnimplementedIngestAPIServer) BatchDeleteRelationshipProperties(context.Context, *BatchDeleteRelationshipPropertiesRequest) (*BatchDeleteRelationshipPropertiesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BatchDeleteRelationshipProperties not implemented") } +func (UnimplementedIngestAPIServer) BatchDeleteNodeTags(context.Context, *BatchDeleteNodeTagsRequest) (*BatchDeleteNodeTagsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchDeleteNodeTags not implemented") +} // UnsafeIngestAPIServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to IngestAPIServer will @@ -380,6 +399,24 @@ func _IngestAPI_BatchDeleteRelationshipProperties_Handler(srv interface{}, ctx c return interceptor(ctx, in, info, handler) } +func _IngestAPI_BatchDeleteNodeTags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchDeleteNodeTagsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IngestAPIServer).BatchDeleteNodeTags(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IngestAPI_BatchDeleteNodeTags_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IngestAPIServer).BatchDeleteNodeTags(ctx, req.(*BatchDeleteNodeTagsRequest)) + } + return interceptor(ctx, in, info, handler) +} + // IngestAPI_ServiceDesc is the grpc.ServiceDesc for IngestAPI service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -415,6 +452,10 @@ var IngestAPI_ServiceDesc = grpc.ServiceDesc{ MethodName: "BatchDeleteRelationshipProperties", Handler: _IngestAPI_BatchDeleteRelationshipProperties_Handler, }, + { + MethodName: "BatchDeleteNodeTags", + Handler: _IngestAPI_BatchDeleteNodeTags_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/gen/indykite/ingest/v1beta3/model.pb.go b/gen/indykite/ingest/v1beta3/model.pb.go index a1a3e4d8..ca1a6cf3 100644 --- a/gen/indykite/ingest/v1beta3/model.pb.go +++ b/gen/indykite/ingest/v1beta3/model.pb.go @@ -270,6 +270,7 @@ type DeleteData struct { // *DeleteData_Relationship // *DeleteData_NodeProperty // *DeleteData_RelationshipProperty + // *DeleteData_NodeTags Data isDeleteData_Data `protobuf_oneof:"data"` } @@ -340,6 +341,13 @@ func (x *DeleteData) GetRelationshipProperty() *DeleteData_RelationshipPropertyM return nil } +func (x *DeleteData) GetNodeTags() *DeleteData_NodeTagMatch { + if x, ok := x.GetData().(*DeleteData_NodeTags); ok { + return x.NodeTags + } + return nil +} + type isDeleteData_Data interface { isDeleteData_Data() } @@ -360,6 +368,10 @@ type DeleteData_RelationshipProperty struct { RelationshipProperty *DeleteData_RelationshipPropertyMatch `protobuf:"bytes,4,opt,name=relationship_property,json=relationshipProperty,proto3,oneof"` } +type DeleteData_NodeTags struct { + NodeTags *DeleteData_NodeTagMatch `protobuf:"bytes,5,opt,name=node_tags,json=nodeTags,proto3,oneof"` +} + func (*DeleteData_Node) isDeleteData_Data() {} func (*DeleteData_Relationship) isDeleteData_Data() {} @@ -368,6 +380,8 @@ func (*DeleteData_NodeProperty) isDeleteData_Data() {} func (*DeleteData_RelationshipProperty) isDeleteData_Data() {} +func (*DeleteData_NodeTags) isDeleteData_Data() {} + type Relationship struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -643,6 +657,61 @@ func (x *Change) GetDataType() DataType { return DataType_DATA_TYPE_INVALID } +type DeleteData_NodeTagMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Match *NodeMatch `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"` + Tags []string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty"` +} + +func (x *DeleteData_NodeTagMatch) Reset() { + *x = DeleteData_NodeTagMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_indykite_ingest_v1beta3_model_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteData_NodeTagMatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteData_NodeTagMatch) ProtoMessage() {} + +func (x *DeleteData_NodeTagMatch) ProtoReflect() protoreflect.Message { + mi := &file_indykite_ingest_v1beta3_model_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteData_NodeTagMatch.ProtoReflect.Descriptor instead. +func (*DeleteData_NodeTagMatch) Descriptor() ([]byte, []int) { + return file_indykite_ingest_v1beta3_model_proto_rawDescGZIP(), []int{2, 0} +} + +func (x *DeleteData_NodeTagMatch) GetMatch() *NodeMatch { + if x != nil { + return x.Match + } + return nil +} + +func (x *DeleteData_NodeTagMatch) GetTags() []string { + if x != nil { + return x.Tags + } + return nil +} + type DeleteData_NodePropertyMatch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -655,7 +724,7 @@ type DeleteData_NodePropertyMatch struct { func (x *DeleteData_NodePropertyMatch) Reset() { *x = DeleteData_NodePropertyMatch{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_ingest_v1beta3_model_proto_msgTypes[8] + mi := &file_indykite_ingest_v1beta3_model_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -668,7 +737,7 @@ func (x *DeleteData_NodePropertyMatch) String() string { func (*DeleteData_NodePropertyMatch) ProtoMessage() {} func (x *DeleteData_NodePropertyMatch) ProtoReflect() protoreflect.Message { - mi := &file_indykite_ingest_v1beta3_model_proto_msgTypes[8] + mi := &file_indykite_ingest_v1beta3_model_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -681,7 +750,7 @@ func (x *DeleteData_NodePropertyMatch) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteData_NodePropertyMatch.ProtoReflect.Descriptor instead. func (*DeleteData_NodePropertyMatch) Descriptor() ([]byte, []int) { - return file_indykite_ingest_v1beta3_model_proto_rawDescGZIP(), []int{2, 0} + return file_indykite_ingest_v1beta3_model_proto_rawDescGZIP(), []int{2, 1} } func (x *DeleteData_NodePropertyMatch) GetMatch() *NodeMatch { @@ -712,7 +781,7 @@ type DeleteData_RelationshipPropertyMatch struct { func (x *DeleteData_RelationshipPropertyMatch) Reset() { *x = DeleteData_RelationshipPropertyMatch{} if protoimpl.UnsafeEnabled { - mi := &file_indykite_ingest_v1beta3_model_proto_msgTypes[9] + mi := &file_indykite_ingest_v1beta3_model_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -725,7 +794,7 @@ func (x *DeleteData_RelationshipPropertyMatch) String() string { func (*DeleteData_RelationshipPropertyMatch) ProtoMessage() {} func (x *DeleteData_RelationshipPropertyMatch) ProtoReflect() protoreflect.Message { - mi := &file_indykite_ingest_v1beta3_model_proto_msgTypes[9] + mi := &file_indykite_ingest_v1beta3_model_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -738,7 +807,7 @@ func (x *DeleteData_RelationshipPropertyMatch) ProtoReflect() protoreflect.Messa // Deprecated: Use DeleteData_RelationshipPropertyMatch.ProtoReflect.Descriptor instead. func (*DeleteData_RelationshipPropertyMatch) Descriptor() ([]byte, []int) { - return file_indykite_ingest_v1beta3_model_proto_rawDescGZIP(), []int{2, 1} + return file_indykite_ingest_v1beta3_model_proto_rawDescGZIP(), []int{2, 2} } func (x *DeleteData_RelationshipPropertyMatch) GetSource() *NodeMatch { @@ -802,7 +871,7 @@ var file_indykite_ingest_v1beta3_model_proto_rawDesc = []byte{ 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x42, 0x0b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x03, - 0xf8, 0x42, 0x01, 0x22, 0xc4, 0x06, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, + 0xf8, 0x42, 0x01, 0x22, 0x98, 0x08, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, @@ -824,96 +893,109 @@ var file_indykite_ingest_v1beta3_model_proto_rawDesc = []byte{ 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x1a, 0xa3, 0x01, - 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x12, 0x42, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, - 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, - 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x4a, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, - 0xfa, 0x42, 0x22, 0x72, 0x20, 0x28, 0x80, 0x02, 0x32, 0x18, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, - 0x2d, 0x5a, 0x5f, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, - 0x2b, 0x24, 0xd0, 0x01, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x1a, 0xa7, 0x02, 0x0a, 0x19, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x12, 0x44, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, - 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4e, 0x6f, 0x64, 0x65, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, - 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x33, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x08, 0xfa, 0x42, 0x05, - 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x32, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xfa, 0x42, 0x1b, - 0x72, 0x19, 0x18, 0x80, 0x01, 0x32, 0x14, 0x5e, 0x5b, 0x41, 0x2d, 0x5a, 0x5d, 0x2b, 0x28, 0x3f, - 0x3a, 0x5f, 0x5b, 0x41, 0x2d, 0x5a, 0x5d, 0x2b, 0x29, 0x2a, 0x24, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x4a, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xfa, 0x42, 0x22, 0x72, 0x20, 0x28, - 0x80, 0x02, 0x32, 0x18, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x5b, 0x61, - 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x2b, 0x24, 0xd0, 0x01, 0x01, 0x52, - 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0xa6, 0x02, 0x0a, 0x0c, 0x52, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x44, 0x0a, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, + 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x4f, 0x0a, + 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x67, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x80, + 0x01, 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x61, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, + 0x38, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x22, 0xfa, 0x42, 0x1f, 0x92, 0x01, 0x1c, 0x10, + 0x0a, 0x18, 0x01, 0x22, 0x16, 0x72, 0x14, 0x18, 0x40, 0x32, 0x10, 0x5e, 0x28, 0x5b, 0x41, 0x2d, + 0x5a, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 0x2b, 0x29, 0x2b, 0x24, 0x52, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x1a, 0xa3, 0x01, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x42, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, + 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, + 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, + 0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x4a, 0x0a, 0x0d, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x25, 0xfa, 0x42, 0x22, 0x72, 0x20, 0x28, 0x80, 0x02, 0x32, 0x18, 0x5e, 0x5b, + 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, + 0x2d, 0x39, 0x5f, 0x5d, 0x2b, 0x24, 0xd0, 0x01, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x1a, 0xa7, 0x02, 0x0a, 0x19, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x44, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, + 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, + 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, + 0x02, 0x10, 0x01, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, - 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x44, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, - 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4e, 0x6f, 0x64, 0x65, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, - 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xfa, 0x42, 0x1b, 0x72, 0x19, 0x18, 0x80, 0x01, 0x32, - 0x14, 0x5e, 0x5b, 0x41, 0x2d, 0x5a, 0x5d, 0x2b, 0x28, 0x3f, 0x3a, 0x5f, 0x5b, 0x41, 0x2d, 0x5a, - 0x5d, 0x2b, 0x29, 0x2a, 0x24, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x42, 0x08, 0xfa, - 0x42, 0x05, 0x92, 0x01, 0x02, 0x10, 0x32, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x69, 0x65, 0x73, 0x22, 0x67, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x12, 0x2b, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, - 0x02, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x2d, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0xfa, 0x42, 0x16, - 0x72, 0x14, 0x18, 0x40, 0x32, 0x10, 0x5e, 0x28, 0x5b, 0x41, 0x2d, 0x5a, 0x5d, 0x5b, 0x61, 0x2d, - 0x7a, 0x5d, 0x2b, 0x29, 0x2b, 0x24, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x23, 0x0a, 0x0b, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x22, 0x41, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x64, - 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x33, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x22, 0x58, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3e, - 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, - 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x2a, 0x51, - 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x41, - 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, - 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, - 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x48, 0x49, 0x50, 0x10, - 0x03, 0x42, 0xf6, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, - 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x33, 0x42, 0x0a, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x4d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x64, 0x79, - 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2d, 0x73, 0x64, - 0x6b, 0x2d, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, - 0x65, 0x2f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, - 0x3b, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xa2, 0x02, - 0x03, 0x49, 0x49, 0x58, 0xaa, 0x02, 0x17, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, - 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xca, 0x02, - 0x17, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x5c, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, - 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xe2, 0x02, 0x23, 0x49, 0x6e, 0x64, 0x79, 0x6b, - 0x69, 0x74, 0x65, 0x5c, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x19, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x49, 0x6e, 0x67, 0x65, 0x73, - 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x1e, 0xfa, 0x42, 0x1b, 0x72, 0x19, 0x18, 0x80, 0x01, 0x32, 0x14, 0x5e, 0x5b, 0x41, 0x2d, 0x5a, + 0x5d, 0x2b, 0x28, 0x3f, 0x3a, 0x5f, 0x5b, 0x41, 0x2d, 0x5a, 0x5d, 0x2b, 0x29, 0x2a, 0x24, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xfa, 0x42, + 0x22, 0x72, 0x20, 0x28, 0x80, 0x02, 0x32, 0x18, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, + 0x5f, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x2b, 0x24, + 0xd0, 0x01, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x0b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0xa6, + 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, + 0x44, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, + 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, + 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, + 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xfa, 0x42, 0x1b, 0x72, 0x19, + 0x18, 0x80, 0x01, 0x32, 0x14, 0x5e, 0x5b, 0x41, 0x2d, 0x5a, 0x5d, 0x2b, 0x28, 0x3f, 0x3a, 0x5f, + 0x5b, 0x41, 0x2d, 0x5a, 0x5d, 0x2b, 0x29, 0x2a, 0x24, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x56, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x6b, + 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x10, 0x32, 0x52, 0x0a, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x67, 0x0a, 0x09, 0x4e, 0x6f, 0x64, 0x65, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x12, 0x2b, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, + 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, + 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x19, 0xfa, 0x42, 0x16, 0x72, 0x14, 0x18, 0x40, 0x32, 0x10, 0x5e, 0x28, 0x5b, 0x41, 0x2d, 0x5a, + 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 0x2b, 0x29, 0x2b, 0x24, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x23, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x41, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, + 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x58, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, + 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, + 0x70, 0x65, 0x2a, 0x51, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, + 0x0a, 0x11, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x41, 0x54, + 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, + 0x48, 0x49, 0x50, 0x10, 0x03, 0x42, 0xf6, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, + 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x33, 0x42, 0x0a, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x4d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x69, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, + 0x65, 0x2d, 0x73, 0x64, 0x6b, 0x2d, 0x67, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x69, 0x6e, 0x64, + 0x79, 0x6b, 0x69, 0x74, 0x65, 0x2f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x33, 0x3b, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x33, 0xa2, 0x02, 0x03, 0x49, 0x49, 0x58, 0xaa, 0x02, 0x17, 0x49, 0x6e, 0x64, 0x79, 0x6b, + 0x69, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x33, 0xca, 0x02, 0x17, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x5c, 0x49, 0x6e, + 0x67, 0x65, 0x73, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xe2, 0x02, 0x23, 0x49, + 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x5c, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x5c, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x19, 0x49, 0x6e, 0x64, 0x79, 0x6b, 0x69, 0x74, 0x65, 0x3a, 0x3a, 0x49, + 0x6e, 0x67, 0x65, 0x73, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -929,44 +1011,47 @@ func file_indykite_ingest_v1beta3_model_proto_rawDescGZIP() []byte { } var file_indykite_ingest_v1beta3_model_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_indykite_ingest_v1beta3_model_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_indykite_ingest_v1beta3_model_proto_msgTypes = make([]protoimpl.MessageInfo, 11) var file_indykite_ingest_v1beta3_model_proto_goTypes = []any{ - (DataType)(0), // 0: indykite.ingest.v1beta3.DataType - (*Record)(nil), // 1: indykite.ingest.v1beta3.Record - (*UpsertData)(nil), // 2: indykite.ingest.v1beta3.UpsertData - (*DeleteData)(nil), // 3: indykite.ingest.v1beta3.DeleteData - (*Relationship)(nil), // 4: indykite.ingest.v1beta3.Relationship - (*NodeMatch)(nil), // 5: indykite.ingest.v1beta3.NodeMatch - (*RecordError)(nil), // 6: indykite.ingest.v1beta3.RecordError - (*Info)(nil), // 7: indykite.ingest.v1beta3.Info - (*Change)(nil), // 8: indykite.ingest.v1beta3.Change - (*DeleteData_NodePropertyMatch)(nil), // 9: indykite.ingest.v1beta3.DeleteData.NodePropertyMatch - (*DeleteData_RelationshipPropertyMatch)(nil), // 10: indykite.ingest.v1beta3.DeleteData.RelationshipPropertyMatch - (*v1beta1.Node)(nil), // 11: indykite.knowledge.objects.v1beta1.Node - (*v1beta1.Property)(nil), // 12: indykite.knowledge.objects.v1beta1.Property + (DataType)(0), // 0: indykite.ingest.v1beta3.DataType + (*Record)(nil), // 1: indykite.ingest.v1beta3.Record + (*UpsertData)(nil), // 2: indykite.ingest.v1beta3.UpsertData + (*DeleteData)(nil), // 3: indykite.ingest.v1beta3.DeleteData + (*Relationship)(nil), // 4: indykite.ingest.v1beta3.Relationship + (*NodeMatch)(nil), // 5: indykite.ingest.v1beta3.NodeMatch + (*RecordError)(nil), // 6: indykite.ingest.v1beta3.RecordError + (*Info)(nil), // 7: indykite.ingest.v1beta3.Info + (*Change)(nil), // 8: indykite.ingest.v1beta3.Change + (*DeleteData_NodeTagMatch)(nil), // 9: indykite.ingest.v1beta3.DeleteData.NodeTagMatch + (*DeleteData_NodePropertyMatch)(nil), // 10: indykite.ingest.v1beta3.DeleteData.NodePropertyMatch + (*DeleteData_RelationshipPropertyMatch)(nil), // 11: indykite.ingest.v1beta3.DeleteData.RelationshipPropertyMatch + (*v1beta1.Node)(nil), // 12: indykite.knowledge.objects.v1beta1.Node + (*v1beta1.Property)(nil), // 13: indykite.knowledge.objects.v1beta1.Property } var file_indykite_ingest_v1beta3_model_proto_depIdxs = []int32{ 2, // 0: indykite.ingest.v1beta3.Record.upsert:type_name -> indykite.ingest.v1beta3.UpsertData 3, // 1: indykite.ingest.v1beta3.Record.delete:type_name -> indykite.ingest.v1beta3.DeleteData - 11, // 2: indykite.ingest.v1beta3.UpsertData.node:type_name -> indykite.knowledge.objects.v1beta1.Node + 12, // 2: indykite.ingest.v1beta3.UpsertData.node:type_name -> indykite.knowledge.objects.v1beta1.Node 4, // 3: indykite.ingest.v1beta3.UpsertData.relationship:type_name -> indykite.ingest.v1beta3.Relationship 5, // 4: indykite.ingest.v1beta3.DeleteData.node:type_name -> indykite.ingest.v1beta3.NodeMatch 4, // 5: indykite.ingest.v1beta3.DeleteData.relationship:type_name -> indykite.ingest.v1beta3.Relationship - 9, // 6: indykite.ingest.v1beta3.DeleteData.node_property:type_name -> indykite.ingest.v1beta3.DeleteData.NodePropertyMatch - 10, // 7: indykite.ingest.v1beta3.DeleteData.relationship_property:type_name -> indykite.ingest.v1beta3.DeleteData.RelationshipPropertyMatch - 5, // 8: indykite.ingest.v1beta3.Relationship.source:type_name -> indykite.ingest.v1beta3.NodeMatch - 5, // 9: indykite.ingest.v1beta3.Relationship.target:type_name -> indykite.ingest.v1beta3.NodeMatch - 12, // 10: indykite.ingest.v1beta3.Relationship.properties:type_name -> indykite.knowledge.objects.v1beta1.Property - 8, // 11: indykite.ingest.v1beta3.Info.changes:type_name -> indykite.ingest.v1beta3.Change - 0, // 12: indykite.ingest.v1beta3.Change.data_type:type_name -> indykite.ingest.v1beta3.DataType - 5, // 13: indykite.ingest.v1beta3.DeleteData.NodePropertyMatch.match:type_name -> indykite.ingest.v1beta3.NodeMatch - 5, // 14: indykite.ingest.v1beta3.DeleteData.RelationshipPropertyMatch.source:type_name -> indykite.ingest.v1beta3.NodeMatch - 5, // 15: indykite.ingest.v1beta3.DeleteData.RelationshipPropertyMatch.target:type_name -> indykite.ingest.v1beta3.NodeMatch - 16, // [16:16] is the sub-list for method output_type - 16, // [16:16] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name + 10, // 6: indykite.ingest.v1beta3.DeleteData.node_property:type_name -> indykite.ingest.v1beta3.DeleteData.NodePropertyMatch + 11, // 7: indykite.ingest.v1beta3.DeleteData.relationship_property:type_name -> indykite.ingest.v1beta3.DeleteData.RelationshipPropertyMatch + 9, // 8: indykite.ingest.v1beta3.DeleteData.node_tags:type_name -> indykite.ingest.v1beta3.DeleteData.NodeTagMatch + 5, // 9: indykite.ingest.v1beta3.Relationship.source:type_name -> indykite.ingest.v1beta3.NodeMatch + 5, // 10: indykite.ingest.v1beta3.Relationship.target:type_name -> indykite.ingest.v1beta3.NodeMatch + 13, // 11: indykite.ingest.v1beta3.Relationship.properties:type_name -> indykite.knowledge.objects.v1beta1.Property + 8, // 12: indykite.ingest.v1beta3.Info.changes:type_name -> indykite.ingest.v1beta3.Change + 0, // 13: indykite.ingest.v1beta3.Change.data_type:type_name -> indykite.ingest.v1beta3.DataType + 5, // 14: indykite.ingest.v1beta3.DeleteData.NodeTagMatch.match:type_name -> indykite.ingest.v1beta3.NodeMatch + 5, // 15: indykite.ingest.v1beta3.DeleteData.NodePropertyMatch.match:type_name -> indykite.ingest.v1beta3.NodeMatch + 5, // 16: indykite.ingest.v1beta3.DeleteData.RelationshipPropertyMatch.source:type_name -> indykite.ingest.v1beta3.NodeMatch + 5, // 17: indykite.ingest.v1beta3.DeleteData.RelationshipPropertyMatch.target:type_name -> indykite.ingest.v1beta3.NodeMatch + 18, // [18:18] is the sub-list for method output_type + 18, // [18:18] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name } func init() { file_indykite_ingest_v1beta3_model_proto_init() } @@ -1072,7 +1157,7 @@ func file_indykite_ingest_v1beta3_model_proto_init() { } } file_indykite_ingest_v1beta3_model_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*DeleteData_NodePropertyMatch); i { + switch v := v.(*DeleteData_NodeTagMatch); i { case 0: return &v.state case 1: @@ -1084,6 +1169,18 @@ func file_indykite_ingest_v1beta3_model_proto_init() { } } file_indykite_ingest_v1beta3_model_proto_msgTypes[9].Exporter = func(v any, i int) any { + switch v := v.(*DeleteData_NodePropertyMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_indykite_ingest_v1beta3_model_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*DeleteData_RelationshipPropertyMatch); i { case 0: return &v.state @@ -1109,6 +1206,7 @@ func file_indykite_ingest_v1beta3_model_proto_init() { (*DeleteData_Relationship)(nil), (*DeleteData_NodeProperty)(nil), (*DeleteData_RelationshipProperty)(nil), + (*DeleteData_NodeTags)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -1116,7 +1214,7 @@ func file_indykite_ingest_v1beta3_model_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_indykite_ingest_v1beta3_model_proto_rawDesc, NumEnums: 1, - NumMessages: 10, + NumMessages: 11, NumExtensions: 0, NumServices: 0, }, diff --git a/gen/indykite/ingest/v1beta3/model.pb.validate.go b/gen/indykite/ingest/v1beta3/model.pb.validate.go index 72ba35b6..236b89b2 100644 --- a/gen/indykite/ingest/v1beta3/model.pb.validate.go +++ b/gen/indykite/ingest/v1beta3/model.pb.validate.go @@ -635,6 +635,48 @@ func (m *DeleteData) validate(all bool) error { } } + case *DeleteData_NodeTags: + if v == nil { + err := DeleteDataValidationError{ + field: "Data", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + oneofDataPresent = true + + if all { + switch v := interface{}(m.GetNodeTags()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, DeleteDataValidationError{ + field: "NodeTags", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, DeleteDataValidationError{ + field: "NodeTags", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetNodeTags()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DeleteDataValidationError{ + field: "NodeTags", + reason: "embedded message failed validation", + cause: err, + } + } + } + default: _ = v // ensures v is used } @@ -1443,6 +1485,192 @@ var _ interface { ErrorName() string } = ChangeValidationError{} +// Validate checks the field values on DeleteData_NodeTagMatch with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *DeleteData_NodeTagMatch) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteData_NodeTagMatch with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DeleteData_NodeTagMatchMultiError, or nil if none found. +func (m *DeleteData_NodeTagMatch) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteData_NodeTagMatch) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetMatch()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, DeleteData_NodeTagMatchValidationError{ + field: "Match", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, DeleteData_NodeTagMatchValidationError{ + field: "Match", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetMatch()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DeleteData_NodeTagMatchValidationError{ + field: "Match", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(m.GetTags()) > 10 { + err := DeleteData_NodeTagMatchValidationError{ + field: "Tags", + reason: "value must contain no more than 10 item(s)", + } + if !all { + return err + } + errors = append(errors, err) + } + + _DeleteData_NodeTagMatch_Tags_Unique := make(map[string]struct{}, len(m.GetTags())) + + for idx, item := range m.GetTags() { + _, _ = idx, item + + if _, exists := _DeleteData_NodeTagMatch_Tags_Unique[item]; exists { + err := DeleteData_NodeTagMatchValidationError{ + field: fmt.Sprintf("Tags[%v]", idx), + reason: "repeated value must contain unique items", + } + if !all { + return err + } + errors = append(errors, err) + } else { + _DeleteData_NodeTagMatch_Tags_Unique[item] = struct{}{} + } + + if utf8.RuneCountInString(item) > 64 { + err := DeleteData_NodeTagMatchValidationError{ + field: fmt.Sprintf("Tags[%v]", idx), + reason: "value length must be at most 64 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if !_DeleteData_NodeTagMatch_Tags_Pattern.MatchString(item) { + err := DeleteData_NodeTagMatchValidationError{ + field: fmt.Sprintf("Tags[%v]", idx), + reason: "value does not match regex pattern \"^([A-Z][a-z]+)+$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + } + + if len(errors) > 0 { + return DeleteData_NodeTagMatchMultiError(errors) + } + + return nil +} + +// DeleteData_NodeTagMatchMultiError is an error wrapping multiple validation +// errors returned by DeleteData_NodeTagMatch.ValidateAll() if the designated +// constraints aren't met. +type DeleteData_NodeTagMatchMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteData_NodeTagMatchMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeleteData_NodeTagMatchMultiError) AllErrors() []error { return m } + +// DeleteData_NodeTagMatchValidationError is the validation error returned by +// DeleteData_NodeTagMatch.Validate if the designated constraints aren't met. +type DeleteData_NodeTagMatchValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteData_NodeTagMatchValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteData_NodeTagMatchValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteData_NodeTagMatchValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteData_NodeTagMatchValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteData_NodeTagMatchValidationError) ErrorName() string { + return "DeleteData_NodeTagMatchValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteData_NodeTagMatchValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeleteData_NodeTagMatch.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteData_NodeTagMatchValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteData_NodeTagMatchValidationError{} + +var _DeleteData_NodeTagMatch_Tags_Pattern = regexp.MustCompile("^([A-Z][a-z]+)+$") + // Validate checks the field values on DeleteData_NodePropertyMatch with the // rules defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. diff --git a/gen/indykite/knowledge/objects/v1beta1/ikg.pb.go b/gen/indykite/knowledge/objects/v1beta1/ikg.pb.go index dfa6cca7..9b01d3a1 100644 --- a/gen/indykite/knowledge/objects/v1beta1/ikg.pb.go +++ b/gen/indykite/knowledge/objects/v1beta1/ikg.pb.go @@ -709,7 +709,7 @@ var file_indykite_knowledge_objects_v1beta1_ikg_proto_rawDesc = []byte{ 0x28, 0x09, 0x42, 0x19, 0xfa, 0x42, 0x16, 0x72, 0x14, 0x18, 0x40, 0x32, 0x10, 0x5e, 0x28, 0x5b, 0x41, 0x2d, 0x5a, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 0x2b, 0x29, 0x2b, 0x24, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x09, 0x42, 0x22, 0xfa, 0x42, 0x1f, 0x92, 0x01, 0x1c, 0x10, 0x20, 0x18, 0x01, 0x22, 0x16, 0x72, + 0x09, 0x42, 0x22, 0xfa, 0x42, 0x1f, 0x92, 0x01, 0x1c, 0x10, 0x0a, 0x18, 0x01, 0x22, 0x16, 0x72, 0x14, 0x18, 0x40, 0x32, 0x10, 0x5e, 0x28, 0x5b, 0x41, 0x2d, 0x5a, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 0x2b, 0x29, 0x2b, 0x24, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, diff --git a/gen/indykite/knowledge/objects/v1beta1/ikg.pb.validate.go b/gen/indykite/knowledge/objects/v1beta1/ikg.pb.validate.go index 7dc4c381..1012bba0 100644 --- a/gen/indykite/knowledge/objects/v1beta1/ikg.pb.validate.go +++ b/gen/indykite/knowledge/objects/v1beta1/ikg.pb.validate.go @@ -115,10 +115,10 @@ func (m *Node) validate(all bool) error { errors = append(errors, err) } - if len(m.GetTags()) > 32 { + if len(m.GetTags()) > 10 { err := NodeValidationError{ field: "Tags", - reason: "value must contain no more than 32 item(s)", + reason: "value must contain no more than 10 item(s)", } if !all { return err diff --git a/go.mod b/go.mod index e441b13b..b4ad478c 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.22.5 require ( buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240920164238-5a7b106cbb87.2 - cloud.google.com/go/bigquery v1.63.0 + cloud.google.com/go/bigquery v1.63.1 github.com/envoyproxy/protoc-gen-validate v1.1.0 github.com/ghodss/yaml v1.0.0 github.com/golang/protobuf v1.5.4 @@ -21,17 +21,17 @@ require ( github.com/spf13/viper v1.19.0 go.uber.org/mock v0.4.0 golang.org/x/oauth2 v0.23.0 - golang.org/x/text v0.18.0 + golang.org/x/text v0.19.0 google.golang.org/api v0.199.0 - google.golang.org/genproto v0.0.0-20240930140551-af27646dc61f - google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f - google.golang.org/grpc v1.67.0 - google.golang.org/protobuf v1.34.2 + google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9 + google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 + google.golang.org/grpc v1.67.1 + google.golang.org/protobuf v1.35.1 ) require ( cloud.google.com/go v0.115.1 // indirect - cloud.google.com/go/auth v0.9.5 // indirect + cloud.google.com/go/auth v0.9.7 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect cloud.google.com/go/iam v1.2.1 // indirect github.com/apache/arrow/go/v15 v15.0.2 // indirect @@ -50,9 +50,9 @@ require ( go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/sync v0.8.0 // indirect - golang.org/x/time v0.6.0 // indirect + golang.org/x/time v0.7.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect ) @@ -64,7 +64,7 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/goccy/go-json v0.10.3 // indirect github.com/google/go-cmp v0.6.0 // indirect - github.com/google/pprof v0.0.0-20240929191954-255acd752d31 // indirect + github.com/google/pprof v0.0.0-20241008032058-148460133af7 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/lestrrat-go/blackmagic v1.0.2 // indirect @@ -89,11 +89,11 @@ require ( go.opentelemetry.io/otel/metric v1.30.0 // indirect go.opentelemetry.io/otel/trace v1.30.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.27.0 // indirect - golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect - golang.org/x/net v0.29.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/tools v0.25.0 // indirect + golang.org/x/crypto v0.28.0 // indirect + golang.org/x/exp v0.0.0-20241004190924-225e2abe05e6 // indirect + golang.org/x/net v0.30.0 // indirect + golang.org/x/sys v0.26.0 // indirect + golang.org/x/tools v0.26.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index b4befae4..a5e5a020 100644 --- a/go.sum +++ b/go.sum @@ -3,12 +3,12 @@ buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-2024092016423 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.115.1 h1:Jo0SM9cQnSkYfp44+v+NQXHpcHqlnRJk2qxh6yvxxxQ= cloud.google.com/go v0.115.1/go.mod h1:DuujITeaufu3gL68/lOFIirVNJwQeyf5UXyi+Wbgknc= -cloud.google.com/go/auth v0.9.5 h1:4CTn43Eynw40aFVr3GpPqsQponx2jv0BQpjvajsbbzw= -cloud.google.com/go/auth v0.9.5/go.mod h1:Xo0n7n66eHyOWWCnitop6870Ilwo3PiZyodVkkH1xWM= +cloud.google.com/go/auth v0.9.7 h1:ha65jNwOfI48YmUzNfMaUDfqt5ykuYIUnSartpU1+BA= +cloud.google.com/go/auth v0.9.7/go.mod h1:Xo0n7n66eHyOWWCnitop6870Ilwo3PiZyodVkkH1xWM= cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= -cloud.google.com/go/bigquery v1.63.0 h1:yQFuJXdDukmBkiUUpjX0i1CtHLFU62HqPs/VDvSzaZo= -cloud.google.com/go/bigquery v1.63.0/go.mod h1:TQto6OR4kw27bqjNTGkVk1Vo5PJlTgxvDJn6YEIZL/E= +cloud.google.com/go/bigquery v1.63.1 h1:/6syiWrSpardKNxdvldS5CUTRJX1iIkSPXCjLjiGL+g= +cloud.google.com/go/bigquery v1.63.1/go.mod h1:ufaITfroCk17WTqBhMpi8CRjsfHjMX07pDrQaRKKX2o= cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= cloud.google.com/go/datacatalog v1.22.1 h1:i0DyKb/o7j+0vgaFtimcRFjYsD6wFw1jpnODYUyiYRs= @@ -83,8 +83,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/martian/v3 v3.3.3 h1:DIhPTQrbPkgs2yJYdXU/eNACCG5DVQjySNRNlflZ9Fc= github.com/google/martian/v3 v3.3.3/go.mod h1:iEPrYcgCF7jA9OtScMFQyAlZZ4YXTKEtJ1E6RWzmBA0= -github.com/google/pprof v0.0.0-20240929191954-255acd752d31 h1:LcRdQWywSgfi5jPsYZ1r2avbbs5IQ5wtyhMBCcokyo4= -github.com/google/pprof v0.0.0-20240929191954-255acd752d31/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20241008032058-148460133af7 h1:rwMkaFKHDNFP5sZybaaRpi2x25Z6Y8usfgvj1yX3xRM= +github.com/google/pprof v0.0.0-20241008032058-148460133af7/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -200,11 +200,11 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= -golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= +golang.org/x/exp v0.0.0-20241004190924-225e2abe05e6 h1:1wqE9dj9NpSm04INVsJhhEUzhuDVjbcyKH91sVyPATw= +golang.org/x/exp v0.0.0-20241004190924-225e2abe05e6/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -216,8 +216,8 @@ golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= -golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= @@ -231,21 +231,21 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= +golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE= -golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg= +golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= +golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= @@ -258,19 +258,19 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240930140551-af27646dc61f h1:mCJ6SGikSxVlt9scCayUl2dMq0msUgmBArqRY6umieI= -google.golang.org/genproto v0.0.0-20240930140551-af27646dc61f/go.mod h1:xtVODtPkMQRUZ4kqOTgp6JrXQrPevvfCSdk4mJtHUbM= -google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f h1:jTm13A2itBi3La6yTGqn8bVSrc3ZZ1r8ENHlIXBfnRA= -google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f/go.mod h1:CLGoBuH1VHxAUXVPP8FfPwPEVJB6lz3URE5mY2SuayE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f h1:cUMEy+8oS78BWIH9OWazBkzbr090Od9tWBNtZHkOhf0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9 h1:nFS3IivktIU5Mk6KQa+v6RKkHUpdQpphqGNLxqNnbEk= +google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:tEzYTYZxbmVNOu0OAFH9HzdJtLn6h4Aj89zzlBCdHms= +google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 h1:T6rh4haD3GVYsgEfWExoCZA2o2FmbNyKpTuAxbEFPTg= +google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:wp2WsuBYj6j8wUdo3ToZsdxxixbvQNAHqVJrTgi5E5M= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.67.0 h1:IdH9y6PF5MPSdAntIcpjQ+tXO41pcQsfZV2RxtQgVcw= -google.golang.org/grpc v1.67.0/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -280,8 +280,8 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/go.work.sum b/go.work.sum index ed099206..ccee7c8c 100644 --- a/go.work.sum +++ b/go.work.sum @@ -102,6 +102,7 @@ cloud.google.com/go/servicedirectory v1.12.1/go.mod h1:d2H6joDMjnTQ4cUUCZn6k9NgZ cloud.google.com/go/shell v1.8.1/go.mod h1:jaU7OHeldDhTwgs3+clM0KYEDYnBAPevUI6wNLf7ycE= cloud.google.com/go/spanner v1.67.0/go.mod h1:Um+TNmxfcCHqNCKid4rmAMvoe/Iu1vdz6UfxJ9GPxRQ= cloud.google.com/go/spanner v1.68.0/go.mod h1:X5T0XftydYp0K1adeJQDJtdWpbrOeJ7wHecM4tK6FiE= +cloud.google.com/go/spanner v1.69.0/go.mod h1:X5T0XftydYp0K1adeJQDJtdWpbrOeJ7wHecM4tK6FiE= cloud.google.com/go/speech v1.25.1/go.mod h1:WgQghvghkZ1htG6BhYn98mP7Tg0mti8dBFDLMVXH/vM= cloud.google.com/go/storagetransfer v1.11.1/go.mod h1:xnJo9pWysRIha8MgZxhrBEwLYbEdvdmEedhNsP5NINM= cloud.google.com/go/talent v1.7.1/go.mod h1:X8UKtTgcP+h51MtDO/b+y3X1GxTTc7gPJ2y0aX3X1hM= @@ -189,6 +190,7 @@ go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= +golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto/googleapis/bytestream v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:q0eWNnCW04EJlyrmLT+ZHsjuoUiZ36/eAEdCCezZoco= lukechampine.com/uint128 v1.3.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= diff --git a/ingest/ingest_batch_delete_node_tags.go b/ingest/ingest_batch_delete_node_tags.go new file mode 100644 index 00000000..973e9311 --- /dev/null +++ b/ingest/ingest_batch_delete_node_tags.go @@ -0,0 +1,43 @@ +// Copyright (c) 2024 IndyKite +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package ingest + +import ( + "context" + + "google.golang.org/grpc" + + "github.com/indykite/indykite-sdk-go/errors" + ingestpb "github.com/indykite/indykite-sdk-go/gen/indykite/ingest/v1beta3" +) + +func (c *Client) BatchDeleteNodeTags( + ctx context.Context, + nodeTags []*ingestpb.DeleteData_NodeTagMatch, + opts ...grpc.CallOption, +) (*ingestpb.BatchDeleteNodeTagsResponse, error) { + req := &ingestpb.BatchDeleteNodeTagsRequest{ + NodeTags: nodeTags, + } + if err := req.Validate(); err != nil { + return nil, errors.NewInvalidArgumentErrorWithCause(err, "unable to call BatchDeleteNodeTags") + } + ctx = insertMetadata(ctx, c.xMetadata) + resp, err := c.client.BatchDeleteNodeTags(ctx, req, opts...) + if s := errors.FromError(err); s != nil { + return nil, s + } + return resp, nil +} diff --git a/ingest/ingest_batch_integration_test.go b/ingest/ingest_batch_integration_test.go index 54fe905f..9df75dc8 100644 --- a/ingest/ingest_batch_integration_test.go +++ b/ingest/ingest_batch_integration_test.go @@ -231,6 +231,71 @@ var _ = Describe("Ingestion", func() { "invalid external value GID, expected GID of type ExternalDataResolver"))) Expect(resp).To(BeNil()) }) + + It("UpsertNodesWithTags", func() { + var err error + ingestClient, err := integration.InitConfigIngest() + Expect(err).To(Succeed()) + + nodes, externalID, externalID2 := integration.BatchNodesType("Individual") + resp, err := ingestClient.BatchUpsertNodes( + context.Background(), + nodes, + retry.WithMax(5), + ) + + Expect(err).To(Succeed()) + result := resp.Results[0] + Expect(result).To(PointTo(MatchFields(IgnoreExtras, Fields{ + "Changes": ContainElement(PointTo(MatchFields(IgnoreExtras, Fields{ + "Id": Not(BeEmpty()), + "DataType": Equal(ingestpb.DataType_DATA_TYPE_NODE), + }))), + }))) + id := result.Changes[0].Id + + nodeMatch1 := &ingestpb.NodeMatch{ + ExternalId: externalID, + Type: "Individual", + } + nodeTags := []*ingestpb.DeleteData_NodeTagMatch{ + { + Match: nodeMatch1, + Tags: integration.Tags, + }, + } + delTags, err := ingestClient.BatchDeleteNodeTags( + context.Background(), + nodeTags, + retry.WithMax(5), + ) + Expect(err).To(Succeed()) + resultDelTags := delTags.Results[0] + Expect(resultDelTags).To(PointTo(MatchFields(IgnoreExtras, Fields{ + "Changes": ContainElement(PointTo(MatchFields(IgnoreExtras, Fields{ + "Id": Equal(id), + "DataType": Equal(ingestpb.DataType_DATA_TYPE_NODE), + }))), + }))) + + nodesMatch := integration.BatchNodesMatch( + integration.CreateBatchNodeMatch(externalID, "Individual"), + integration.CreateBatchNodeMatch(externalID2, "Individual")) + del, err := ingestClient.BatchDeleteNodes( + context.Background(), + nodesMatch, + retry.WithMax(5), + ) + + Expect(err).To(Succeed()) + resultDel := del.Results[0] + Expect(resultDel).To(PointTo(MatchFields(IgnoreExtras, Fields{ + "Changes": ContainElement(PointTo(MatchFields(IgnoreExtras, Fields{ + "Id": Equal(id), + "DataType": Equal(ingestpb.DataType_DATA_TYPE_NODE), + }))), + }))) + }) }) Describe("IngestBatchUpsertRelationships", func() { diff --git a/ingest/ingest_record.go b/ingest/ingest_record.go index e54355d4..258740db 100644 --- a/ingest/ingest_record.go +++ b/ingest/ingest_record.go @@ -22,14 +22,16 @@ import ( ingestpb "github.com/indykite/indykite-sdk-go/gen/indykite/ingest/v1beta3" ) +// IngestRecord is deprecated and will be removed: use Batch functions. func (c *Client) IngestRecord( ctx context.Context, record *ingestpb.Record, opts ...grpc.CallOption, ) (*ingestpb.IngestRecordResponse, error) { ctx = insertMetadata(ctx, c.xMetadata) - resp, err := c.client.IngestRecord(ctx, &ingestpb.IngestRecordRequest{ - Record: record, - }, opts...) + resp, err := c.client.IngestRecord( //nolint:staticcheck // backward compatibility. + ctx, &ingestpb.IngestRecordRequest{ + Record: record, + }, opts...) return resp, err } diff --git a/ingest/ingest_test.go b/ingest/ingest_test.go index 058a3df0..8db5abbb 100644 --- a/ingest/ingest_test.go +++ b/ingest/ingest_test.go @@ -659,6 +659,54 @@ var _ = Describe("Ingest", func() { }))), }))) }) + It("Batch Delete Node Tags", func() { + mockCtrl := gomock.NewController(GinkgoT()) + mockClient := ingestm.NewMockIngestAPIClient(mockCtrl) + + client, err := ingest.NewTestClient(mockClient) + Expect(err).To(Succeed()) + + nodeTags := []*ingestpb.DeleteData_NodeTagMatch{ + { + Match: nodeMatch1, + Tags: []string{"Taga", "Tagb"}, + }, + { + Match: nodeMatch2, + Tags: []string{"Taga", "Tagb"}, + }, + } + + mockClient.EXPECT().BatchDeleteNodeTags(gomock.Any(), + gomock.Eq(&ingestpb.BatchDeleteNodeTagsRequest{ + NodeTags: nodeTags, + }), gomock.Any()).Return(&ingestpb.BatchDeleteNodeTagsResponse{ + Results: []*ingestpb.Info{ + { + Changes: []*ingestpb.Change{ + { + Id: "gid:abc", + DataType: ingestpb.DataType_DATA_TYPE_NODE, + }, + { + Id: "gid:def", + DataType: ingestpb.DataType_DATA_TYPE_NODE, + }, + }, + }, + }}, nil) + + response, err := client.BatchDeleteNodeTags(context.Background(), nodeTags) + Expect(err).To(Succeed()) + Expect(response).To(PointTo(MatchFields(IgnoreExtras, Fields{ + "Results": ContainElement(PointTo(MatchFields(IgnoreExtras, Fields{ + "Changes": ContainElement(PointTo(MatchFields(IgnoreExtras, Fields{ + "Id": Equal("gid:abc"), + "DataType": Equal(ingestpb.DataType_DATA_TYPE_NODE), + }))), + }))), + }))) + }) }) var _ = Describe("Retry client", func() { diff --git a/test/constants.go b/test/constants.go index 9a352293..c639dc17 100644 --- a/test/constants.go +++ b/test/constants.go @@ -213,6 +213,7 @@ var ( CustomerID = os.Getenv("CUSTOMER_ID") WrongAppSpace = "gid:AAAAAgDRZxyY6Ecrjhj2GMCtgVI" + Tags = []string{"Sitea", "Siteb"} ) func GenerateRandomString(length int) string { @@ -597,6 +598,7 @@ func CreateBatchNodes( //nolint:gocritic // nonamedreturns against unnamedResult }, }, }, + Tags: []string{"Sitea", "Siteb"}, } return node, externalID } diff --git a/test/ingest/v1beta3/ingest_api_mock.go b/test/ingest/v1beta3/ingest_api_mock.go index 9d8db9e9..a1cef89c 100644 --- a/test/ingest/v1beta3/ingest_api_mock.go +++ b/test/ingest/v1beta3/ingest_api_mock.go @@ -78,6 +78,26 @@ func (mr *MockIngestAPIClientMockRecorder) BatchDeleteNodeProperties(arg0, arg1 return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchDeleteNodeProperties", reflect.TypeOf((*MockIngestAPIClient)(nil).BatchDeleteNodeProperties), varargs...) } +// BatchDeleteNodeTags mocks base method. +func (m *MockIngestAPIClient) BatchDeleteNodeTags(arg0 context.Context, arg1 *ingestv1beta3.BatchDeleteNodeTagsRequest, arg2 ...grpc.CallOption) (*ingestv1beta3.BatchDeleteNodeTagsResponse, error) { + m.ctrl.T.Helper() + varargs := []any{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "BatchDeleteNodeTags", varargs...) + ret0, _ := ret[0].(*ingestv1beta3.BatchDeleteNodeTagsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// BatchDeleteNodeTags indicates an expected call of BatchDeleteNodeTags. +func (mr *MockIngestAPIClientMockRecorder) BatchDeleteNodeTags(arg0, arg1 any, arg2 ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BatchDeleteNodeTags", reflect.TypeOf((*MockIngestAPIClient)(nil).BatchDeleteNodeTags), varargs...) +} + // BatchDeleteNodes mocks base method. func (m *MockIngestAPIClient) BatchDeleteNodes(arg0 context.Context, arg1 *ingestv1beta3.BatchDeleteNodesRequest, arg2 ...grpc.CallOption) (*ingestv1beta3.BatchDeleteNodesResponse, error) { m.ctrl.T.Helper()