diff --git a/api/attribute.pb.go b/api/attribute.pb.go index 421c57a27..c31f0626d 100644 --- a/api/attribute.pb.go +++ b/api/attribute.pb.go @@ -22,7 +22,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v3.21.12 // source: attribute.proto package apipb diff --git a/api/capability.pb.go b/api/capability.pb.go index 39bc2438c..379fca6ce 100644 --- a/api/capability.pb.go +++ b/api/capability.pb.go @@ -22,7 +22,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v3.21.12 // source: capability.proto package apipb diff --git a/api/gobgp.pb.go b/api/gobgp.pb.go index 2a43543a4..d0ba27b20 100644 --- a/api/gobgp.pb.go +++ b/api/gobgp.pb.go @@ -22,7 +22,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.19.1 +// protoc v3.21.12 // source: gobgp.proto package apipb @@ -258,6 +258,58 @@ func (DefinedType) EnumDescriptor() ([]byte, []int) { return file_gobgp_proto_rawDescGZIP(), []int{3} } +type RouteOriginType int32 + +const ( + RouteOriginType_ORIGIN_NONE RouteOriginType = 0 + RouteOriginType_ORIGIN_IGP RouteOriginType = 1 + RouteOriginType_ORIGIN_EGP RouteOriginType = 2 + RouteOriginType_ORIGIN_INCOMPLETE RouteOriginType = 3 +) + +// Enum value maps for RouteOriginType. +var ( + RouteOriginType_name = map[int32]string{ + 0: "ORIGIN_NONE", + 1: "ORIGIN_IGP", + 2: "ORIGIN_EGP", + 3: "ORIGIN_INCOMPLETE", + } + RouteOriginType_value = map[string]int32{ + "ORIGIN_NONE": 0, + "ORIGIN_IGP": 1, + "ORIGIN_EGP": 2, + "ORIGIN_INCOMPLETE": 3, + } +) + +func (x RouteOriginType) Enum() *RouteOriginType { + p := new(RouteOriginType) + *p = x + return p +} + +func (x RouteOriginType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RouteOriginType) Descriptor() protoreflect.EnumDescriptor { + return file_gobgp_proto_enumTypes[4].Descriptor() +} + +func (RouteOriginType) Type() protoreflect.EnumType { + return &file_gobgp_proto_enumTypes[4] +} + +func (x RouteOriginType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RouteOriginType.Descriptor instead. +func (RouteOriginType) EnumDescriptor() ([]byte, []int) { + return file_gobgp_proto_rawDescGZIP(), []int{4} +} + type RouteAction int32 const ( @@ -291,11 +343,11 @@ func (x RouteAction) String() string { } func (RouteAction) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[4].Descriptor() + return file_gobgp_proto_enumTypes[5].Descriptor() } func (RouteAction) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[4] + return &file_gobgp_proto_enumTypes[5] } func (x RouteAction) Number() protoreflect.EnumNumber { @@ -304,7 +356,7 @@ func (x RouteAction) Number() protoreflect.EnumNumber { // Deprecated: Use RouteAction.Descriptor instead. func (RouteAction) EnumDescriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{4} + return file_gobgp_proto_rawDescGZIP(), []int{5} } type PolicyDirection int32 @@ -340,11 +392,11 @@ func (x PolicyDirection) String() string { } func (PolicyDirection) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[5].Descriptor() + return file_gobgp_proto_enumTypes[6].Descriptor() } func (PolicyDirection) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[5] + return &file_gobgp_proto_enumTypes[6] } func (x PolicyDirection) Number() protoreflect.EnumNumber { @@ -353,7 +405,7 @@ func (x PolicyDirection) Number() protoreflect.EnumNumber { // Deprecated: Use PolicyDirection.Descriptor instead. func (PolicyDirection) EnumDescriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{5} + return file_gobgp_proto_rawDescGZIP(), []int{6} } type WatchEventRequest_Table_Filter_Type int32 @@ -392,11 +444,11 @@ func (x WatchEventRequest_Table_Filter_Type) String() string { } func (WatchEventRequest_Table_Filter_Type) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[6].Descriptor() + return file_gobgp_proto_enumTypes[7].Descriptor() } func (WatchEventRequest_Table_Filter_Type) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[6] + return &file_gobgp_proto_enumTypes[7] } func (x WatchEventRequest_Table_Filter_Type) Number() protoreflect.EnumNumber { @@ -444,11 +496,11 @@ func (x WatchEventResponse_PeerEvent_Type) String() string { } func (WatchEventResponse_PeerEvent_Type) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[7].Descriptor() + return file_gobgp_proto_enumTypes[8].Descriptor() } func (WatchEventResponse_PeerEvent_Type) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[7] + return &file_gobgp_proto_enumTypes[8] } func (x WatchEventResponse_PeerEvent_Type) Number() protoreflect.EnumNumber { @@ -493,11 +545,11 @@ func (x ResetPeerRequest_SoftResetDirection) String() string { } func (ResetPeerRequest_SoftResetDirection) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[8].Descriptor() + return file_gobgp_proto_enumTypes[9].Descriptor() } func (ResetPeerRequest_SoftResetDirection) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[8] + return &file_gobgp_proto_enumTypes[9] } func (x ResetPeerRequest_SoftResetDirection) Number() protoreflect.EnumNumber { @@ -543,11 +595,11 @@ func (x TableLookupPrefix_Type) String() string { } func (TableLookupPrefix_Type) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[9].Descriptor() + return file_gobgp_proto_enumTypes[10].Descriptor() } func (TableLookupPrefix_Type) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[9] + return &file_gobgp_proto_enumTypes[10] } func (x TableLookupPrefix_Type) Number() protoreflect.EnumNumber { @@ -589,11 +641,11 @@ func (x ListPathRequest_SortType) String() string { } func (ListPathRequest_SortType) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[10].Descriptor() + return file_gobgp_proto_enumTypes[11].Descriptor() } func (ListPathRequest_SortType) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[10] + return &file_gobgp_proto_enumTypes[11] } func (x ListPathRequest_SortType) Number() protoreflect.EnumNumber { @@ -635,11 +687,11 @@ func (x EnableMrtRequest_DumpType) String() string { } func (EnableMrtRequest_DumpType) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[11].Descriptor() + return file_gobgp_proto_enumTypes[12].Descriptor() } func (EnableMrtRequest_DumpType) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[11] + return &file_gobgp_proto_enumTypes[12] } func (x EnableMrtRequest_DumpType) Number() protoreflect.EnumNumber { @@ -690,11 +742,11 @@ func (x AddBmpRequest_MonitoringPolicy) String() string { } func (AddBmpRequest_MonitoringPolicy) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[12].Descriptor() + return file_gobgp_proto_enumTypes[13].Descriptor() } func (AddBmpRequest_MonitoringPolicy) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[12] + return &file_gobgp_proto_enumTypes[13] } func (x AddBmpRequest_MonitoringPolicy) Number() protoreflect.EnumNumber { @@ -748,11 +800,11 @@ func (x Family_Afi) String() string { } func (Family_Afi) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[13].Descriptor() + return file_gobgp_proto_enumTypes[14].Descriptor() } func (Family_Afi) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[13] + return &file_gobgp_proto_enumTypes[14] } func (x Family_Afi) Number() protoreflect.EnumNumber { @@ -836,11 +888,11 @@ func (x Family_Safi) String() string { } func (Family_Safi) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[14].Descriptor() + return file_gobgp_proto_enumTypes[15].Descriptor() } func (Family_Safi) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[14] + return &file_gobgp_proto_enumTypes[15] } func (x Family_Safi) Number() protoreflect.EnumNumber { @@ -888,11 +940,11 @@ func (x Validation_State) String() string { } func (Validation_State) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[15].Descriptor() + return file_gobgp_proto_enumTypes[16].Descriptor() } func (Validation_State) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[15] + return &file_gobgp_proto_enumTypes[16] } func (x Validation_State) Number() protoreflect.EnumNumber { @@ -937,11 +989,11 @@ func (x Validation_Reason) String() string { } func (Validation_Reason) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[16].Descriptor() + return file_gobgp_proto_enumTypes[17].Descriptor() } func (Validation_Reason) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[16] + return &file_gobgp_proto_enumTypes[17] } func (x Validation_Reason) Number() protoreflect.EnumNumber { @@ -998,11 +1050,11 @@ func (x PeerState_SessionState) String() string { } func (PeerState_SessionState) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[17].Descriptor() + return file_gobgp_proto_enumTypes[18].Descriptor() } func (PeerState_SessionState) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[17] + return &file_gobgp_proto_enumTypes[18] } func (x PeerState_SessionState) Number() protoreflect.EnumNumber { @@ -1047,11 +1099,11 @@ func (x PeerState_AdminState) String() string { } func (PeerState_AdminState) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[18].Descriptor() + return file_gobgp_proto_enumTypes[19].Descriptor() } func (PeerState_AdminState) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[18] + return &file_gobgp_proto_enumTypes[19] } func (x PeerState_AdminState) Number() protoreflect.EnumNumber { @@ -1096,11 +1148,11 @@ func (x MatchSet_Type) String() string { } func (MatchSet_Type) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[19].Descriptor() + return file_gobgp_proto_enumTypes[20].Descriptor() } func (MatchSet_Type) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[19] + return &file_gobgp_proto_enumTypes[20] } func (x MatchSet_Type) Number() protoreflect.EnumNumber { @@ -1145,11 +1197,11 @@ func (x AsPathLength_Type) String() string { } func (AsPathLength_Type) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[20].Descriptor() + return file_gobgp_proto_enumTypes[21].Descriptor() } func (AsPathLength_Type) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[20] + return &file_gobgp_proto_enumTypes[21] } func (x AsPathLength_Type) Number() protoreflect.EnumNumber { @@ -1194,11 +1246,11 @@ func (x CommunityCount_Type) String() string { } func (CommunityCount_Type) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[21].Descriptor() + return file_gobgp_proto_enumTypes[22].Descriptor() } func (CommunityCount_Type) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[21] + return &file_gobgp_proto_enumTypes[22] } func (x CommunityCount_Type) Number() protoreflect.EnumNumber { @@ -1246,11 +1298,11 @@ func (x Conditions_RouteType) String() string { } func (Conditions_RouteType) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[22].Descriptor() + return file_gobgp_proto_enumTypes[23].Descriptor() } func (Conditions_RouteType) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[22] + return &file_gobgp_proto_enumTypes[23] } func (x Conditions_RouteType) Number() protoreflect.EnumNumber { @@ -1295,11 +1347,11 @@ func (x CommunityAction_Type) String() string { } func (CommunityAction_Type) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[23].Descriptor() + return file_gobgp_proto_enumTypes[24].Descriptor() } func (CommunityAction_Type) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[23] + return &file_gobgp_proto_enumTypes[24] } func (x CommunityAction_Type) Number() protoreflect.EnumNumber { @@ -1341,11 +1393,11 @@ func (x MedAction_Type) String() string { } func (MedAction_Type) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[24].Descriptor() + return file_gobgp_proto_enumTypes[25].Descriptor() } func (MedAction_Type) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[24] + return &file_gobgp_proto_enumTypes[25] } func (x MedAction_Type) Number() protoreflect.EnumNumber { @@ -1402,11 +1454,11 @@ func (x SetLogLevelRequest_Level) String() string { } func (SetLogLevelRequest_Level) Descriptor() protoreflect.EnumDescriptor { - return file_gobgp_proto_enumTypes[25].Descriptor() + return file_gobgp_proto_enumTypes[26].Descriptor() } func (SetLogLevelRequest_Level) Type() protoreflect.EnumType { - return &file_gobgp_proto_enumTypes[25] + return &file_gobgp_proto_enumTypes[26] } func (x SetLogLevelRequest_Level) Number() protoreflect.EnumNumber { @@ -1415,7 +1467,7 @@ func (x SetLogLevelRequest_Level) Number() protoreflect.EnumNumber { // Deprecated: Use SetLogLevelRequest_Level.Descriptor instead. func (SetLogLevelRequest_Level) EnumDescriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{149, 0} + return file_gobgp_proto_rawDescGZIP(), []int{150, 0} } type StartBgpRequest struct { @@ -9764,6 +9816,7 @@ type Conditions struct { NextHopInList []string `protobuf:"bytes,10,rep,name=next_hop_in_list,json=nextHopInList,proto3" json:"next_hop_in_list,omitempty"` AfiSafiIn []*Family `protobuf:"bytes,11,rep,name=afi_safi_in,json=afiSafiIn,proto3" json:"afi_safi_in,omitempty"` CommunityCount *CommunityCount `protobuf:"bytes,12,opt,name=community_count,json=communityCount,proto3" json:"community_count,omitempty"` + Origin RouteOriginType `protobuf:"varint,13,opt,name=origin,proto3,enum=apipb.RouteOriginType" json:"origin,omitempty"` } func (x *Conditions) Reset() { @@ -9882,6 +9935,13 @@ func (x *Conditions) GetCommunityCount() *CommunityCount { return nil } +func (x *Conditions) GetOrigin() RouteOriginType { + if x != nil { + return x.Origin + } + return RouteOriginType_ORIGIN_NONE +} + type CommunityAction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -10165,6 +10225,53 @@ func (x *LocalPrefAction) GetValue() uint32 { return 0 } +type OriginAction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Origin RouteOriginType `protobuf:"varint,1,opt,name=origin,proto3,enum=apipb.RouteOriginType" json:"origin,omitempty"` +} + +func (x *OriginAction) Reset() { + *x = OriginAction{} + if protoimpl.UnsafeEnabled { + mi := &file_gobgp_proto_msgTypes[136] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OriginAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OriginAction) ProtoMessage() {} + +func (x *OriginAction) ProtoReflect() protoreflect.Message { + mi := &file_gobgp_proto_msgTypes[136] + 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 OriginAction.ProtoReflect.Descriptor instead. +func (*OriginAction) Descriptor() ([]byte, []int) { + return file_gobgp_proto_rawDescGZIP(), []int{136} +} + +func (x *OriginAction) GetOrigin() RouteOriginType { + if x != nil { + return x.Origin + } + return RouteOriginType_ORIGIN_NONE +} + type Actions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -10178,12 +10285,13 @@ type Actions struct { Nexthop *NexthopAction `protobuf:"bytes,6,opt,name=nexthop,proto3" json:"nexthop,omitempty"` LocalPref *LocalPrefAction `protobuf:"bytes,7,opt,name=local_pref,json=localPref,proto3" json:"local_pref,omitempty"` LargeCommunity *CommunityAction `protobuf:"bytes,8,opt,name=large_community,json=largeCommunity,proto3" json:"large_community,omitempty"` + OriginAction *OriginAction `protobuf:"bytes,9,opt,name=origin_action,json=originAction,proto3" json:"origin_action,omitempty"` } func (x *Actions) Reset() { *x = Actions{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[136] + mi := &file_gobgp_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10196,7 +10304,7 @@ func (x *Actions) String() string { func (*Actions) ProtoMessage() {} func (x *Actions) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[136] + mi := &file_gobgp_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10209,7 +10317,7 @@ func (x *Actions) ProtoReflect() protoreflect.Message { // Deprecated: Use Actions.ProtoReflect.Descriptor instead. func (*Actions) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{136} + return file_gobgp_proto_rawDescGZIP(), []int{137} } func (x *Actions) GetRouteAction() RouteAction { @@ -10268,6 +10376,13 @@ func (x *Actions) GetLargeCommunity() *CommunityAction { return nil } +func (x *Actions) GetOriginAction() *OriginAction { + if x != nil { + return x.OriginAction + } + return nil +} + type Statement struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -10281,7 +10396,7 @@ type Statement struct { func (x *Statement) Reset() { *x = Statement{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[137] + mi := &file_gobgp_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10294,7 +10409,7 @@ func (x *Statement) String() string { func (*Statement) ProtoMessage() {} func (x *Statement) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[137] + mi := &file_gobgp_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10307,7 +10422,7 @@ func (x *Statement) ProtoReflect() protoreflect.Message { // Deprecated: Use Statement.ProtoReflect.Descriptor instead. func (*Statement) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{137} + return file_gobgp_proto_rawDescGZIP(), []int{138} } func (x *Statement) GetName() string { @@ -10343,7 +10458,7 @@ type Policy struct { func (x *Policy) Reset() { *x = Policy{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[138] + mi := &file_gobgp_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10356,7 +10471,7 @@ func (x *Policy) String() string { func (*Policy) ProtoMessage() {} func (x *Policy) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[138] + mi := &file_gobgp_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10369,7 +10484,7 @@ func (x *Policy) ProtoReflect() protoreflect.Message { // Deprecated: Use Policy.ProtoReflect.Descriptor instead. func (*Policy) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{138} + return file_gobgp_proto_rawDescGZIP(), []int{139} } func (x *Policy) GetName() string { @@ -10400,7 +10515,7 @@ type PolicyAssignment struct { func (x *PolicyAssignment) Reset() { *x = PolicyAssignment{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[139] + mi := &file_gobgp_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10413,7 +10528,7 @@ func (x *PolicyAssignment) String() string { func (*PolicyAssignment) ProtoMessage() {} func (x *PolicyAssignment) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[139] + mi := &file_gobgp_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10426,7 +10541,7 @@ func (x *PolicyAssignment) ProtoReflect() protoreflect.Message { // Deprecated: Use PolicyAssignment.ProtoReflect.Descriptor instead. func (*PolicyAssignment) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{139} + return file_gobgp_proto_rawDescGZIP(), []int{140} } func (x *PolicyAssignment) GetName() string { @@ -10469,7 +10584,7 @@ type RoutingPolicy struct { func (x *RoutingPolicy) Reset() { *x = RoutingPolicy{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[140] + mi := &file_gobgp_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10482,7 +10597,7 @@ func (x *RoutingPolicy) String() string { func (*RoutingPolicy) ProtoMessage() {} func (x *RoutingPolicy) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[140] + mi := &file_gobgp_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10495,7 +10610,7 @@ func (x *RoutingPolicy) ProtoReflect() protoreflect.Message { // Deprecated: Use RoutingPolicy.ProtoReflect.Descriptor instead. func (*RoutingPolicy) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{140} + return file_gobgp_proto_rawDescGZIP(), []int{141} } func (x *RoutingPolicy) GetDefinedSets() []*DefinedSet { @@ -10527,7 +10642,7 @@ type Roa struct { func (x *Roa) Reset() { *x = Roa{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[141] + mi := &file_gobgp_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10540,7 +10655,7 @@ func (x *Roa) String() string { func (*Roa) ProtoMessage() {} func (x *Roa) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[141] + mi := &file_gobgp_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10553,7 +10668,7 @@ func (x *Roa) ProtoReflect() protoreflect.Message { // Deprecated: Use Roa.ProtoReflect.Descriptor instead. func (*Roa) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{141} + return file_gobgp_proto_rawDescGZIP(), []int{142} } func (x *Roa) GetAsn() uint32 { @@ -10618,7 +10733,7 @@ type Vrf struct { func (x *Vrf) Reset() { *x = Vrf{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[142] + mi := &file_gobgp_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10631,7 +10746,7 @@ func (x *Vrf) String() string { func (*Vrf) ProtoMessage() {} func (x *Vrf) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[142] + mi := &file_gobgp_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10644,7 +10759,7 @@ func (x *Vrf) ProtoReflect() protoreflect.Message { // Deprecated: Use Vrf.ProtoReflect.Descriptor instead. func (*Vrf) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{142} + return file_gobgp_proto_rawDescGZIP(), []int{143} } func (x *Vrf) GetName() string { @@ -10694,7 +10809,7 @@ type DefaultRouteDistance struct { func (x *DefaultRouteDistance) Reset() { *x = DefaultRouteDistance{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[143] + mi := &file_gobgp_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10707,7 +10822,7 @@ func (x *DefaultRouteDistance) String() string { func (*DefaultRouteDistance) ProtoMessage() {} func (x *DefaultRouteDistance) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[143] + mi := &file_gobgp_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10720,7 +10835,7 @@ func (x *DefaultRouteDistance) ProtoReflect() protoreflect.Message { // Deprecated: Use DefaultRouteDistance.ProtoReflect.Descriptor instead. func (*DefaultRouteDistance) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{143} + return file_gobgp_proto_rawDescGZIP(), []int{144} } func (x *DefaultRouteDistance) GetExternalRouteDistance() uint32 { @@ -10759,7 +10874,7 @@ type Global struct { func (x *Global) Reset() { *x = Global{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[144] + mi := &file_gobgp_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10772,7 +10887,7 @@ func (x *Global) String() string { func (*Global) ProtoMessage() {} func (x *Global) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[144] + mi := &file_gobgp_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10785,7 +10900,7 @@ func (x *Global) ProtoReflect() protoreflect.Message { // Deprecated: Use Global.ProtoReflect.Descriptor instead. func (*Global) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{144} + return file_gobgp_proto_rawDescGZIP(), []int{145} } func (x *Global) GetAsn() uint32 { @@ -10885,7 +11000,7 @@ type Confederation struct { func (x *Confederation) Reset() { *x = Confederation{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[145] + mi := &file_gobgp_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10898,7 +11013,7 @@ func (x *Confederation) String() string { func (*Confederation) ProtoMessage() {} func (x *Confederation) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[145] + mi := &file_gobgp_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10911,7 +11026,7 @@ func (x *Confederation) ProtoReflect() protoreflect.Message { // Deprecated: Use Confederation.ProtoReflect.Descriptor instead. func (*Confederation) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{145} + return file_gobgp_proto_rawDescGZIP(), []int{146} } func (x *Confederation) GetEnabled() bool { @@ -10947,7 +11062,7 @@ type RPKIConf struct { func (x *RPKIConf) Reset() { *x = RPKIConf{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[146] + mi := &file_gobgp_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10960,7 +11075,7 @@ func (x *RPKIConf) String() string { func (*RPKIConf) ProtoMessage() {} func (x *RPKIConf) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[146] + mi := &file_gobgp_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10973,7 +11088,7 @@ func (x *RPKIConf) ProtoReflect() protoreflect.Message { // Deprecated: Use RPKIConf.ProtoReflect.Descriptor instead. func (*RPKIConf) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{146} + return file_gobgp_proto_rawDescGZIP(), []int{147} } func (x *RPKIConf) GetAddress() string { @@ -11017,7 +11132,7 @@ type RPKIState struct { func (x *RPKIState) Reset() { *x = RPKIState{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[147] + mi := &file_gobgp_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11030,7 +11145,7 @@ func (x *RPKIState) String() string { func (*RPKIState) ProtoMessage() {} func (x *RPKIState) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[147] + mi := &file_gobgp_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11043,7 +11158,7 @@ func (x *RPKIState) ProtoReflect() protoreflect.Message { // Deprecated: Use RPKIState.ProtoReflect.Descriptor instead. func (*RPKIState) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{147} + return file_gobgp_proto_rawDescGZIP(), []int{148} } func (x *RPKIState) GetUptime() *timestamppb.Timestamp { @@ -11177,7 +11292,7 @@ type Rpki struct { func (x *Rpki) Reset() { *x = Rpki{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[148] + mi := &file_gobgp_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11190,7 +11305,7 @@ func (x *Rpki) String() string { func (*Rpki) ProtoMessage() {} func (x *Rpki) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[148] + mi := &file_gobgp_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11203,7 +11318,7 @@ func (x *Rpki) ProtoReflect() protoreflect.Message { // Deprecated: Use Rpki.ProtoReflect.Descriptor instead. func (*Rpki) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{148} + return file_gobgp_proto_rawDescGZIP(), []int{149} } func (x *Rpki) GetConf() *RPKIConf { @@ -11231,7 +11346,7 @@ type SetLogLevelRequest struct { func (x *SetLogLevelRequest) Reset() { *x = SetLogLevelRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[149] + mi := &file_gobgp_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11244,7 +11359,7 @@ func (x *SetLogLevelRequest) String() string { func (*SetLogLevelRequest) ProtoMessage() {} func (x *SetLogLevelRequest) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[149] + mi := &file_gobgp_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11257,7 +11372,7 @@ func (x *SetLogLevelRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetLogLevelRequest.ProtoReflect.Descriptor instead. func (*SetLogLevelRequest) Descriptor() ([]byte, []int) { - return file_gobgp_proto_rawDescGZIP(), []int{149} + return file_gobgp_proto_rawDescGZIP(), []int{150} } func (x *SetLogLevelRequest) GetLevel() SetLogLevelRequest_Level { @@ -11276,7 +11391,7 @@ type WatchEventRequest_Peer struct { func (x *WatchEventRequest_Peer) Reset() { *x = WatchEventRequest_Peer{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[150] + mi := &file_gobgp_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11289,7 +11404,7 @@ func (x *WatchEventRequest_Peer) String() string { func (*WatchEventRequest_Peer) ProtoMessage() {} func (x *WatchEventRequest_Peer) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[150] + mi := &file_gobgp_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11316,7 +11431,7 @@ type WatchEventRequest_Table struct { func (x *WatchEventRequest_Table) Reset() { *x = WatchEventRequest_Table{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[151] + mi := &file_gobgp_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11329,7 +11444,7 @@ func (x *WatchEventRequest_Table) String() string { func (*WatchEventRequest_Table) ProtoMessage() {} func (x *WatchEventRequest_Table) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[151] + mi := &file_gobgp_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11366,7 +11481,7 @@ type WatchEventRequest_Table_Filter struct { func (x *WatchEventRequest_Table_Filter) Reset() { *x = WatchEventRequest_Table_Filter{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[152] + mi := &file_gobgp_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11379,7 +11494,7 @@ func (x *WatchEventRequest_Table_Filter) String() string { func (*WatchEventRequest_Table_Filter) ProtoMessage() {} func (x *WatchEventRequest_Table_Filter) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[152] + mi := &file_gobgp_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11435,7 +11550,7 @@ type WatchEventResponse_PeerEvent struct { func (x *WatchEventResponse_PeerEvent) Reset() { *x = WatchEventResponse_PeerEvent{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[153] + mi := &file_gobgp_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11448,7 +11563,7 @@ func (x *WatchEventResponse_PeerEvent) String() string { func (*WatchEventResponse_PeerEvent) ProtoMessage() {} func (x *WatchEventResponse_PeerEvent) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[153] + mi := &file_gobgp_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11489,7 +11604,7 @@ type WatchEventResponse_TableEvent struct { func (x *WatchEventResponse_TableEvent) Reset() { *x = WatchEventResponse_TableEvent{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[154] + mi := &file_gobgp_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11502,7 +11617,7 @@ func (x *WatchEventResponse_TableEvent) String() string { func (*WatchEventResponse_TableEvent) ProtoMessage() {} func (x *WatchEventResponse_TableEvent) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[154] + mi := &file_gobgp_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11537,7 +11652,7 @@ type ListBmpResponse_BmpStation struct { func (x *ListBmpResponse_BmpStation) Reset() { *x = ListBmpResponse_BmpStation{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[155] + mi := &file_gobgp_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11550,7 +11665,7 @@ func (x *ListBmpResponse_BmpStation) String() string { func (*ListBmpResponse_BmpStation) ProtoMessage() {} func (x *ListBmpResponse_BmpStation) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[155] + mi := &file_gobgp_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11592,7 +11707,7 @@ type ListBmpResponse_BmpStation_Conf struct { func (x *ListBmpResponse_BmpStation_Conf) Reset() { *x = ListBmpResponse_BmpStation_Conf{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[156] + mi := &file_gobgp_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11605,7 +11720,7 @@ func (x *ListBmpResponse_BmpStation_Conf) String() string { func (*ListBmpResponse_BmpStation_Conf) ProtoMessage() {} func (x *ListBmpResponse_BmpStation_Conf) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[156] + mi := &file_gobgp_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11647,7 +11762,7 @@ type ListBmpResponse_BmpStation_State struct { func (x *ListBmpResponse_BmpStation_State) Reset() { *x = ListBmpResponse_BmpStation_State{} if protoimpl.UnsafeEnabled { - mi := &file_gobgp_proto_msgTypes[157] + mi := &file_gobgp_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11660,7 +11775,7 @@ func (x *ListBmpResponse_BmpStation_State) String() string { func (*ListBmpResponse_BmpStation_State) ProtoMessage() {} func (x *ListBmpResponse_BmpStation_State) ProtoReflect() protoreflect.Message { - mi := &file_gobgp_proto_msgTypes[157] + mi := &file_gobgp_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12985,7 +13100,7 @@ var file_gobgp_proto_rawDesc = []byte{ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x1e, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x45, 0x51, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x45, 0x10, 0x01, 0x12, - 0x06, 0x0a, 0x02, 0x4c, 0x45, 0x10, 0x02, 0x22, 0xef, 0x05, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64, + 0x06, 0x0a, 0x02, 0x4c, 0x45, 0x10, 0x02, 0x22, 0x9f, 0x06, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x52, 0x09, 0x70, 0x72, 0x65, @@ -13025,7 +13140,10 @@ var file_gobgp_proto_rawDesc = []byte{ 0x3e, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x2e, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x68, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, @@ -13062,7 +13180,11 @@ var file_gobgp_proto_rawDesc = []byte{ 0x67, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x22, 0x27, 0x0a, 0x0f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb6, 0x03, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3e, 0x0a, + 0x0c, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, + 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, + 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0xf0, 0x03, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, @@ -13090,435 +13212,444 @@ var file_gobgp_proto_rawDesc = []byte{ 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x22, 0x7c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x7c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x43, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x4e, + 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xc2, + 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, - 0x69, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, - 0x69, 0x70, 0x62, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x4e, 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, - 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x39, - 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x0a, 0x0d, 0x52, 0x6f, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x34, 0x0a, 0x0c, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x53, 0x65, 0x74, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x73, - 0x12, 0x29, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x03, - 0x52, 0x6f, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x6c, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x6c, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x4b, 0x49, 0x43, 0x6f, - 0x6e, 0x66, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x22, 0xb5, 0x01, 0x0a, 0x03, 0x56, 0x72, 0x66, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x02, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x02, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x09, 0x69, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x41, 0x6e, 0x79, 0x52, 0x08, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x74, 0x12, 0x31, 0x0a, - 0x09, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, - 0x22, 0x86, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x65, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x36, 0x0a, 0x17, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xd8, 0x04, 0x0a, 0x06, 0x47, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, - 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x08, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x75, - 0x73, 0x65, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x73, 0x65, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x70, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x69, - 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x51, 0x0a, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, + 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, + 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x0a, 0x0d, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x34, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, + 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, + 0x70, 0x62, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0b, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x08, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x61, + 0x70, 0x69, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x03, 0x52, 0x6f, 0x61, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x6c, 0x65, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x61, 0x78, 0x6c, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, + 0x61, 0x78, 0x6c, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, + 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, + 0x69, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x4b, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x04, 0x63, 0x6f, + 0x6e, 0x66, 0x22, 0xb5, 0x01, 0x0a, 0x03, 0x56, 0x72, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, + 0x0a, 0x02, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x52, 0x02, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x09, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, + 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x14, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x22, 0xd8, 0x04, 0x0a, 0x06, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x73, 0x6e, + 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, + 0x0a, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x10, 0x75, 0x73, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x51, 0x0a, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, - 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, - 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, - 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, - 0x0a, 0x0e, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x69, 0x6e, 0x64, 0x54, 0x6f, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x22, 0x6f, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, - 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x08, 0x52, 0x50, 0x4b, 0x49, 0x43, 0x6f, 0x6e, - 0x66, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xd4, 0x04, 0x0a, - 0x09, 0x52, 0x50, 0x4b, 0x49, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x75, 0x70, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, + 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, + 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, + 0x2e, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x35, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0b, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x69, 0x6e, 0x64, + 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x62, 0x69, 0x6e, 0x64, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x6f, + 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0x45, 0x0a, 0x08, 0x52, 0x50, 0x4b, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xd4, 0x04, 0x0a, 0x09, 0x52, 0x50, 0x4b, 0x49, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, + 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, + 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 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, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x36, - 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 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, 0x52, 0x08, 0x64, 0x6f, - 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x49, 0x70, 0x76, 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x49, 0x70, 0x76, 0x36, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, - 0x72, 0x69, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, - 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x49, 0x70, 0x76, 0x36, 0x12, 0x23, 0x0a, 0x0d, - 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, - 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x61, 0x63, 0x68, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x6e, 0x64, - 0x5f, 0x6f, 0x66, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x74, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x22, 0x53, 0x0a, 0x04, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x23, 0x0a, 0x04, 0x63, - 0x6f, 0x6e, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, - 0x62, 0x2e, 0x52, 0x50, 0x4b, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x66, - 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x4b, 0x49, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, - 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x35, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, - 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, - 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x52, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x09, 0x0a, 0x05, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x41, - 0x54, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, - 0x12, 0x08, 0x0a, 0x04, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, - 0x46, 0x4f, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x05, 0x12, - 0x09, 0x0a, 0x05, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x06, 0x2a, 0x44, 0x0a, 0x09, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x4c, 0x4f, 0x42, 0x41, - 0x4c, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x41, 0x44, 0x4a, 0x5f, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x44, - 0x4a, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x52, 0x46, 0x10, 0x04, - 0x2a, 0x26, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, - 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, - 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x2a, 0x3d, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x4d, - 0x4f, 0x56, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, - 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, - 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x02, 0x2a, 0x82, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x52, 0x45, 0x46, 0x49, - 0x58, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x10, - 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x53, - 0x5f, 0x50, 0x41, 0x54, 0x48, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x4d, 0x55, - 0x4e, 0x49, 0x54, 0x59, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x58, 0x54, 0x5f, 0x43, 0x4f, - 0x4d, 0x4d, 0x55, 0x4e, 0x49, 0x54, 0x59, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x41, 0x52, - 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x55, 0x4e, 0x49, 0x54, 0x59, 0x10, 0x06, 0x12, 0x0c, - 0x0a, 0x08, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x48, 0x4f, 0x50, 0x10, 0x07, 0x2a, 0x2f, 0x0a, 0x0b, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, - 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x10, - 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02, 0x2a, 0x36, 0x0a, - 0x0f, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, - 0x06, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x58, 0x50, - 0x4f, 0x52, 0x54, 0x10, 0x02, 0x32, 0xc2, 0x1d, 0x0a, 0x08, 0x47, 0x6f, 0x62, 0x67, 0x70, 0x41, - 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x67, 0x70, 0x12, 0x16, - 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x67, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, - 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x67, 0x70, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, - 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x67, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x42, - 0x67, 0x70, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x67, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, - 0x2e, 0x47, 0x65, 0x74, 0x42, 0x67, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x43, 0x0a, 0x0a, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x2e, - 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, - 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, - 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, - 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x61, - 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, - 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, - 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x41, 0x0a, - 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x61, 0x70, - 0x69, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3c, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x17, 0x2e, - 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, - 0x0a, 0x0c, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1a, - 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x50, - 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x65, 0x72, - 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, - 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x40, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x65, - 0x72, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, - 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x2e, 0x61, 0x70, - 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x50, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, - 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, - 0x2e, 0x41, 0x64, 0x64, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x5e, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, - 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x70, - 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, - 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, - 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x30, 0x01, 0x12, 0x54, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x79, 0x6e, 0x61, - 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x23, 0x2e, 0x61, 0x70, - 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, - 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50, - 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, - 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, - 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, - 0x01, 0x12, 0x46, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61, - 0x74, 0x68, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, + 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x70, 0x76, + 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x70, + 0x76, 0x36, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, + 0x70, 0x76, 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x49, 0x70, 0x76, 0x36, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x0d, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x49, 0x70, 0x76, + 0x34, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x49, 0x70, 0x76, 0x36, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, + 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, + 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0x53, 0x0a, + 0x04, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x23, 0x0a, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x4b, 0x49, + 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x70, + 0x62, 0x2e, 0x52, 0x50, 0x4b, 0x49, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, + 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x22, 0x52, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x41, 0x4e, + 0x49, 0x43, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x01, 0x12, + 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x41, + 0x52, 0x4e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x04, 0x12, 0x09, + 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x10, 0x06, 0x2a, 0x44, 0x0a, 0x09, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x44, 0x4a, 0x5f, + 0x49, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x44, 0x4a, 0x5f, 0x4f, 0x55, 0x54, 0x10, + 0x03, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x52, 0x46, 0x10, 0x04, 0x2a, 0x26, 0x0a, 0x08, 0x50, 0x65, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, + 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, + 0x10, 0x01, 0x2a, 0x3d, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x4e, 0x4f, + 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x41, + 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, + 0x02, 0x2a, 0x82, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x52, 0x45, 0x46, 0x49, 0x58, 0x10, 0x00, 0x12, 0x0c, 0x0a, + 0x08, 0x4e, 0x45, 0x49, 0x47, 0x48, 0x42, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, + 0x41, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x53, 0x5f, 0x50, 0x41, 0x54, 0x48, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x4d, 0x55, 0x4e, 0x49, 0x54, 0x59, 0x10, 0x04, + 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x58, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x55, 0x4e, 0x49, 0x54, + 0x59, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x41, 0x52, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4d, + 0x4d, 0x55, 0x4e, 0x49, 0x54, 0x59, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x45, 0x58, 0x54, + 0x5f, 0x48, 0x4f, 0x50, 0x10, 0x07, 0x2a, 0x59, 0x0a, 0x0f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x52, 0x49, + 0x47, 0x49, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x52, + 0x49, 0x47, 0x49, 0x4e, 0x5f, 0x49, 0x47, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x52, + 0x49, 0x47, 0x49, 0x4e, 0x5f, 0x45, 0x47, 0x50, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, + 0x49, 0x47, 0x49, 0x4e, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, + 0x03, 0x2a, 0x2f, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, + 0x43, 0x45, 0x50, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, + 0x10, 0x02, 0x2a, 0x36, 0x0a, 0x0f, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x32, 0xc2, 0x1d, 0x0a, 0x08, 0x47, + 0x6f, 0x62, 0x67, 0x70, 0x41, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x67, 0x70, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x67, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x67, 0x70, 0x12, 0x15, + 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x67, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x35, 0x0a, + 0x06, 0x47, 0x65, 0x74, 0x42, 0x67, 0x70, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x67, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, + 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x67, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, + 0x70, 0x69, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x41, 0x64, 0x64, + 0x50, 0x65, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, + 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, + 0x72, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, + 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x30, 0x01, 0x12, 0x41, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, + 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, + 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x65, + 0x65, 0x72, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, + 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x50, + 0x65, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x75, 0x74, + 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x28, 0x01, 0x12, 0x3b, 0x0a, 0x08, 0x47, 0x65, 0x74, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, - 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x41, 0x64, 0x64, 0x56, 0x72, 0x66, - 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x56, 0x72, 0x66, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, - 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x72, 0x66, 0x12, 0x17, 0x2e, 0x61, 0x70, - 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x72, 0x66, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x07, - 0x4c, 0x69, 0x73, 0x74, 0x56, 0x72, 0x66, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x56, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x72, 0x66, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x3c, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, - 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0a, 0x4c, 0x69, - 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, - 0x40, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x19, - 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x44, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, - 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x12, 0x1e, 0x2e, 0x61, 0x70, - 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x41, 0x64, 0x64, + 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x70, + 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, + 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x44, 0x79, + 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x20, 0x2e, + 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, + 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x5e, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x44, + 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x21, + 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x79, + 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x54, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, + 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, + 0x07, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, + 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, + 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x46, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, + 0x68, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, + 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x28, 0x01, 0x12, 0x3b, + 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, + 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x41, + 0x64, 0x64, 0x56, 0x72, 0x66, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, + 0x64, 0x56, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x4f, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x53, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x42, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x72, 0x66, + 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, + 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x3a, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x72, 0x66, 0x12, 0x15, 0x2e, 0x61, + 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x56, 0x72, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x3c, 0x0a, + 0x09, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, + 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1a, 0x2e, 0x61, 0x70, + 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x43, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x18, 0x2e, + 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x65, 0x73, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, + 0x41, 0x64, 0x64, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x10, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, + 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, - 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x50, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, - 0x41, 0x64, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x56, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x61, - 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x61, 0x0a, 0x14, 0x4c, 0x69, - 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x50, 0x0a, - 0x13, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4f, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, + 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x42, 0x0a, 0x0c, 0x41, 0x64, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x70, + 0x62, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, + 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x2e, 0x61, + 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x56, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, - 0x38, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, - 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x08, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, - 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x52, 0x65, - 0x73, 0x65, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, - 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x70, 0x6b, 0x69, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x70, - 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x5a, 0x65, 0x62, 0x72, 0x61, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5a, 0x65, 0x62, 0x72, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x4d, 0x72, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x4d, 0x72, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x06, 0x41, 0x64, 0x64, 0x42, 0x6d, 0x70, - 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x6d, 0x70, 0x52, + 0x61, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, + 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x30, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x70, + 0x62, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x52, 0x70, 0x6b, 0x69, 0x12, + 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, - 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6d, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, - 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6d, 0x70, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x07, - 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6d, 0x70, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6d, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x4c, - 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, - 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x24, 0x5a, 0x22, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x73, 0x72, 0x67, 0x2f, 0x67, 0x6f, - 0x62, 0x67, 0x70, 0x2f, 0x76, 0x33, 0x2f, 0x61, 0x70, 0x69, 0x3b, 0x61, 0x70, 0x69, 0x70, 0x62, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, + 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x18, 0x2e, 0x61, + 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, + 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, + 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x70, 0x6b, 0x69, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x3e, 0x0a, + 0x0a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x18, 0x2e, 0x61, 0x70, + 0x69, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x40, 0x0a, + 0x0b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x19, 0x2e, 0x61, + 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x70, 0x6b, 0x69, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x3c, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x12, 0x17, 0x2e, 0x61, + 0x70, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, + 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, + 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, + 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x70, 0x6b, 0x69, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5a, 0x65, 0x62, 0x72, 0x61, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, + 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5a, 0x65, 0x62, 0x72, 0x61, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, + 0x09, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x72, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, + 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x72, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x70, + 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x06, 0x41, + 0x64, 0x64, 0x42, 0x6d, 0x70, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x41, 0x64, + 0x64, 0x42, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6d, 0x70, + 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, + 0x6d, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x3a, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6d, 0x70, 0x12, 0x15, 0x2e, 0x61, + 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x40, 0x0a, + 0x0b, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x2e, 0x61, + 0x70, 0x69, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, + 0x24, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x73, + 0x72, 0x67, 0x2f, 0x67, 0x6f, 0x62, 0x67, 0x70, 0x2f, 0x76, 0x33, 0x2f, 0x61, 0x70, 0x69, 0x3b, + 0x61, 0x70, 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -13533,515 +13664,520 @@ func file_gobgp_proto_rawDescGZIP() []byte { return file_gobgp_proto_rawDescData } -var file_gobgp_proto_enumTypes = make([]protoimpl.EnumInfo, 26) -var file_gobgp_proto_msgTypes = make([]protoimpl.MessageInfo, 158) +var file_gobgp_proto_enumTypes = make([]protoimpl.EnumInfo, 27) +var file_gobgp_proto_msgTypes = make([]protoimpl.MessageInfo, 159) var file_gobgp_proto_goTypes = []interface{}{ (TableType)(0), // 0: apipb.TableType (PeerType)(0), // 1: apipb.PeerType (RemovePrivate)(0), // 2: apipb.RemovePrivate (DefinedType)(0), // 3: apipb.DefinedType - (RouteAction)(0), // 4: apipb.RouteAction - (PolicyDirection)(0), // 5: apipb.PolicyDirection - (WatchEventRequest_Table_Filter_Type)(0), // 6: apipb.WatchEventRequest.Table.Filter.Type - (WatchEventResponse_PeerEvent_Type)(0), // 7: apipb.WatchEventResponse.PeerEvent.Type - (ResetPeerRequest_SoftResetDirection)(0), // 8: apipb.ResetPeerRequest.SoftResetDirection - (TableLookupPrefix_Type)(0), // 9: apipb.TableLookupPrefix.Type - (ListPathRequest_SortType)(0), // 10: apipb.ListPathRequest.SortType - (EnableMrtRequest_DumpType)(0), // 11: apipb.EnableMrtRequest.DumpType - (AddBmpRequest_MonitoringPolicy)(0), // 12: apipb.AddBmpRequest.MonitoringPolicy - (Family_Afi)(0), // 13: apipb.Family.Afi - (Family_Safi)(0), // 14: apipb.Family.Safi - (Validation_State)(0), // 15: apipb.Validation.State - (Validation_Reason)(0), // 16: apipb.Validation.Reason - (PeerState_SessionState)(0), // 17: apipb.PeerState.SessionState - (PeerState_AdminState)(0), // 18: apipb.PeerState.AdminState - (MatchSet_Type)(0), // 19: apipb.MatchSet.Type - (AsPathLength_Type)(0), // 20: apipb.AsPathLength.Type - (CommunityCount_Type)(0), // 21: apipb.CommunityCount.Type - (Conditions_RouteType)(0), // 22: apipb.Conditions.RouteType - (CommunityAction_Type)(0), // 23: apipb.CommunityAction.Type - (MedAction_Type)(0), // 24: apipb.MedAction.Type - (SetLogLevelRequest_Level)(0), // 25: apipb.SetLogLevelRequest.Level - (*StartBgpRequest)(nil), // 26: apipb.StartBgpRequest - (*StopBgpRequest)(nil), // 27: apipb.StopBgpRequest - (*GetBgpRequest)(nil), // 28: apipb.GetBgpRequest - (*GetBgpResponse)(nil), // 29: apipb.GetBgpResponse - (*WatchEventRequest)(nil), // 30: apipb.WatchEventRequest - (*WatchEventResponse)(nil), // 31: apipb.WatchEventResponse - (*AddPeerRequest)(nil), // 32: apipb.AddPeerRequest - (*DeletePeerRequest)(nil), // 33: apipb.DeletePeerRequest - (*ListPeerRequest)(nil), // 34: apipb.ListPeerRequest - (*ListPeerResponse)(nil), // 35: apipb.ListPeerResponse - (*UpdatePeerRequest)(nil), // 36: apipb.UpdatePeerRequest - (*UpdatePeerResponse)(nil), // 37: apipb.UpdatePeerResponse - (*ResetPeerRequest)(nil), // 38: apipb.ResetPeerRequest - (*ShutdownPeerRequest)(nil), // 39: apipb.ShutdownPeerRequest - (*EnablePeerRequest)(nil), // 40: apipb.EnablePeerRequest - (*DisablePeerRequest)(nil), // 41: apipb.DisablePeerRequest - (*AddPeerGroupRequest)(nil), // 42: apipb.AddPeerGroupRequest - (*DeletePeerGroupRequest)(nil), // 43: apipb.DeletePeerGroupRequest - (*UpdatePeerGroupRequest)(nil), // 44: apipb.UpdatePeerGroupRequest - (*UpdatePeerGroupResponse)(nil), // 45: apipb.UpdatePeerGroupResponse - (*ListPeerGroupRequest)(nil), // 46: apipb.ListPeerGroupRequest - (*ListPeerGroupResponse)(nil), // 47: apipb.ListPeerGroupResponse - (*AddDynamicNeighborRequest)(nil), // 48: apipb.AddDynamicNeighborRequest - (*DeleteDynamicNeighborRequest)(nil), // 49: apipb.DeleteDynamicNeighborRequest - (*ListDynamicNeighborRequest)(nil), // 50: apipb.ListDynamicNeighborRequest - (*ListDynamicNeighborResponse)(nil), // 51: apipb.ListDynamicNeighborResponse - (*AddPathRequest)(nil), // 52: apipb.AddPathRequest - (*AddPathResponse)(nil), // 53: apipb.AddPathResponse - (*DeletePathRequest)(nil), // 54: apipb.DeletePathRequest - (*TableLookupPrefix)(nil), // 55: apipb.TableLookupPrefix - (*ListPathRequest)(nil), // 56: apipb.ListPathRequest - (*ListPathResponse)(nil), // 57: apipb.ListPathResponse - (*AddPathStreamRequest)(nil), // 58: apipb.AddPathStreamRequest - (*GetTableRequest)(nil), // 59: apipb.GetTableRequest - (*GetTableResponse)(nil), // 60: apipb.GetTableResponse - (*AddVrfRequest)(nil), // 61: apipb.AddVrfRequest - (*DeleteVrfRequest)(nil), // 62: apipb.DeleteVrfRequest - (*ListVrfRequest)(nil), // 63: apipb.ListVrfRequest - (*ListVrfResponse)(nil), // 64: apipb.ListVrfResponse - (*AddPolicyRequest)(nil), // 65: apipb.AddPolicyRequest - (*DeletePolicyRequest)(nil), // 66: apipb.DeletePolicyRequest - (*ListPolicyRequest)(nil), // 67: apipb.ListPolicyRequest - (*ListPolicyResponse)(nil), // 68: apipb.ListPolicyResponse - (*SetPoliciesRequest)(nil), // 69: apipb.SetPoliciesRequest - (*AddDefinedSetRequest)(nil), // 70: apipb.AddDefinedSetRequest - (*DeleteDefinedSetRequest)(nil), // 71: apipb.DeleteDefinedSetRequest - (*ListDefinedSetRequest)(nil), // 72: apipb.ListDefinedSetRequest - (*ListDefinedSetResponse)(nil), // 73: apipb.ListDefinedSetResponse - (*AddStatementRequest)(nil), // 74: apipb.AddStatementRequest - (*DeleteStatementRequest)(nil), // 75: apipb.DeleteStatementRequest - (*ListStatementRequest)(nil), // 76: apipb.ListStatementRequest - (*ListStatementResponse)(nil), // 77: apipb.ListStatementResponse - (*AddPolicyAssignmentRequest)(nil), // 78: apipb.AddPolicyAssignmentRequest - (*DeletePolicyAssignmentRequest)(nil), // 79: apipb.DeletePolicyAssignmentRequest - (*ListPolicyAssignmentRequest)(nil), // 80: apipb.ListPolicyAssignmentRequest - (*ListPolicyAssignmentResponse)(nil), // 81: apipb.ListPolicyAssignmentResponse - (*SetPolicyAssignmentRequest)(nil), // 82: apipb.SetPolicyAssignmentRequest - (*AddRpkiRequest)(nil), // 83: apipb.AddRpkiRequest - (*DeleteRpkiRequest)(nil), // 84: apipb.DeleteRpkiRequest - (*ListRpkiRequest)(nil), // 85: apipb.ListRpkiRequest - (*ListRpkiResponse)(nil), // 86: apipb.ListRpkiResponse - (*EnableRpkiRequest)(nil), // 87: apipb.EnableRpkiRequest - (*DisableRpkiRequest)(nil), // 88: apipb.DisableRpkiRequest - (*ResetRpkiRequest)(nil), // 89: apipb.ResetRpkiRequest - (*ListRpkiTableRequest)(nil), // 90: apipb.ListRpkiTableRequest - (*ListRpkiTableResponse)(nil), // 91: apipb.ListRpkiTableResponse - (*EnableZebraRequest)(nil), // 92: apipb.EnableZebraRequest - (*EnableMrtRequest)(nil), // 93: apipb.EnableMrtRequest - (*DisableMrtRequest)(nil), // 94: apipb.DisableMrtRequest - (*AddBmpRequest)(nil), // 95: apipb.AddBmpRequest - (*DeleteBmpRequest)(nil), // 96: apipb.DeleteBmpRequest - (*ListBmpRequest)(nil), // 97: apipb.ListBmpRequest - (*ListBmpResponse)(nil), // 98: apipb.ListBmpResponse - (*Family)(nil), // 99: apipb.Family - (*Validation)(nil), // 100: apipb.Validation - (*Path)(nil), // 101: apipb.Path - (*Destination)(nil), // 102: apipb.Destination - (*Peer)(nil), // 103: apipb.Peer - (*PeerGroup)(nil), // 104: apipb.PeerGroup - (*DynamicNeighbor)(nil), // 105: apipb.DynamicNeighbor - (*ApplyPolicy)(nil), // 106: apipb.ApplyPolicy - (*PrefixLimit)(nil), // 107: apipb.PrefixLimit - (*PeerConf)(nil), // 108: apipb.PeerConf - (*PeerGroupConf)(nil), // 109: apipb.PeerGroupConf - (*PeerGroupState)(nil), // 110: apipb.PeerGroupState - (*TtlSecurity)(nil), // 111: apipb.TtlSecurity - (*EbgpMultihop)(nil), // 112: apipb.EbgpMultihop - (*RouteReflector)(nil), // 113: apipb.RouteReflector - (*PeerState)(nil), // 114: apipb.PeerState - (*Messages)(nil), // 115: apipb.Messages - (*Message)(nil), // 116: apipb.Message - (*Queues)(nil), // 117: apipb.Queues - (*Timers)(nil), // 118: apipb.Timers - (*TimersConfig)(nil), // 119: apipb.TimersConfig - (*TimersState)(nil), // 120: apipb.TimersState - (*Transport)(nil), // 121: apipb.Transport - (*RouteServer)(nil), // 122: apipb.RouteServer - (*GracefulRestart)(nil), // 123: apipb.GracefulRestart - (*MpGracefulRestartConfig)(nil), // 124: apipb.MpGracefulRestartConfig - (*MpGracefulRestartState)(nil), // 125: apipb.MpGracefulRestartState - (*MpGracefulRestart)(nil), // 126: apipb.MpGracefulRestart - (*AfiSafiConfig)(nil), // 127: apipb.AfiSafiConfig - (*AfiSafiState)(nil), // 128: apipb.AfiSafiState - (*RouteSelectionOptionsConfig)(nil), // 129: apipb.RouteSelectionOptionsConfig - (*RouteSelectionOptionsState)(nil), // 130: apipb.RouteSelectionOptionsState - (*RouteSelectionOptions)(nil), // 131: apipb.RouteSelectionOptions - (*UseMultiplePathsConfig)(nil), // 132: apipb.UseMultiplePathsConfig - (*UseMultiplePathsState)(nil), // 133: apipb.UseMultiplePathsState - (*EbgpConfig)(nil), // 134: apipb.EbgpConfig - (*EbgpState)(nil), // 135: apipb.EbgpState - (*Ebgp)(nil), // 136: apipb.Ebgp - (*IbgpConfig)(nil), // 137: apipb.IbgpConfig - (*IbgpState)(nil), // 138: apipb.IbgpState - (*Ibgp)(nil), // 139: apipb.Ibgp - (*UseMultiplePaths)(nil), // 140: apipb.UseMultiplePaths - (*RouteTargetMembershipConfig)(nil), // 141: apipb.RouteTargetMembershipConfig - (*RouteTargetMembershipState)(nil), // 142: apipb.RouteTargetMembershipState - (*RouteTargetMembership)(nil), // 143: apipb.RouteTargetMembership - (*LongLivedGracefulRestartConfig)(nil), // 144: apipb.LongLivedGracefulRestartConfig - (*LongLivedGracefulRestartState)(nil), // 145: apipb.LongLivedGracefulRestartState - (*LongLivedGracefulRestart)(nil), // 146: apipb.LongLivedGracefulRestart - (*AfiSafi)(nil), // 147: apipb.AfiSafi - (*AddPathsConfig)(nil), // 148: apipb.AddPathsConfig - (*AddPathsState)(nil), // 149: apipb.AddPathsState - (*AddPaths)(nil), // 150: apipb.AddPaths - (*Prefix)(nil), // 151: apipb.Prefix - (*DefinedSet)(nil), // 152: apipb.DefinedSet - (*MatchSet)(nil), // 153: apipb.MatchSet - (*AsPathLength)(nil), // 154: apipb.AsPathLength - (*CommunityCount)(nil), // 155: apipb.CommunityCount - (*Conditions)(nil), // 156: apipb.Conditions - (*CommunityAction)(nil), // 157: apipb.CommunityAction - (*MedAction)(nil), // 158: apipb.MedAction - (*AsPrependAction)(nil), // 159: apipb.AsPrependAction - (*NexthopAction)(nil), // 160: apipb.NexthopAction - (*LocalPrefAction)(nil), // 161: apipb.LocalPrefAction - (*Actions)(nil), // 162: apipb.Actions - (*Statement)(nil), // 163: apipb.Statement - (*Policy)(nil), // 164: apipb.Policy - (*PolicyAssignment)(nil), // 165: apipb.PolicyAssignment - (*RoutingPolicy)(nil), // 166: apipb.RoutingPolicy - (*Roa)(nil), // 167: apipb.Roa - (*Vrf)(nil), // 168: apipb.Vrf - (*DefaultRouteDistance)(nil), // 169: apipb.DefaultRouteDistance - (*Global)(nil), // 170: apipb.Global - (*Confederation)(nil), // 171: apipb.Confederation - (*RPKIConf)(nil), // 172: apipb.RPKIConf - (*RPKIState)(nil), // 173: apipb.RPKIState - (*Rpki)(nil), // 174: apipb.Rpki - (*SetLogLevelRequest)(nil), // 175: apipb.SetLogLevelRequest - (*WatchEventRequest_Peer)(nil), // 176: apipb.WatchEventRequest.Peer - (*WatchEventRequest_Table)(nil), // 177: apipb.WatchEventRequest.Table - (*WatchEventRequest_Table_Filter)(nil), // 178: apipb.WatchEventRequest.Table.Filter - (*WatchEventResponse_PeerEvent)(nil), // 179: apipb.WatchEventResponse.PeerEvent - (*WatchEventResponse_TableEvent)(nil), // 180: apipb.WatchEventResponse.TableEvent - (*ListBmpResponse_BmpStation)(nil), // 181: apipb.ListBmpResponse.BmpStation - (*ListBmpResponse_BmpStation_Conf)(nil), // 182: apipb.ListBmpResponse.BmpStation.Conf - (*ListBmpResponse_BmpStation_State)(nil), // 183: apipb.ListBmpResponse.BmpStation.State - (*anypb.Any)(nil), // 184: google.protobuf.Any - (*timestamppb.Timestamp)(nil), // 185: google.protobuf.Timestamp - (*emptypb.Empty)(nil), // 186: google.protobuf.Empty + (RouteOriginType)(0), // 4: apipb.RouteOriginType + (RouteAction)(0), // 5: apipb.RouteAction + (PolicyDirection)(0), // 6: apipb.PolicyDirection + (WatchEventRequest_Table_Filter_Type)(0), // 7: apipb.WatchEventRequest.Table.Filter.Type + (WatchEventResponse_PeerEvent_Type)(0), // 8: apipb.WatchEventResponse.PeerEvent.Type + (ResetPeerRequest_SoftResetDirection)(0), // 9: apipb.ResetPeerRequest.SoftResetDirection + (TableLookupPrefix_Type)(0), // 10: apipb.TableLookupPrefix.Type + (ListPathRequest_SortType)(0), // 11: apipb.ListPathRequest.SortType + (EnableMrtRequest_DumpType)(0), // 12: apipb.EnableMrtRequest.DumpType + (AddBmpRequest_MonitoringPolicy)(0), // 13: apipb.AddBmpRequest.MonitoringPolicy + (Family_Afi)(0), // 14: apipb.Family.Afi + (Family_Safi)(0), // 15: apipb.Family.Safi + (Validation_State)(0), // 16: apipb.Validation.State + (Validation_Reason)(0), // 17: apipb.Validation.Reason + (PeerState_SessionState)(0), // 18: apipb.PeerState.SessionState + (PeerState_AdminState)(0), // 19: apipb.PeerState.AdminState + (MatchSet_Type)(0), // 20: apipb.MatchSet.Type + (AsPathLength_Type)(0), // 21: apipb.AsPathLength.Type + (CommunityCount_Type)(0), // 22: apipb.CommunityCount.Type + (Conditions_RouteType)(0), // 23: apipb.Conditions.RouteType + (CommunityAction_Type)(0), // 24: apipb.CommunityAction.Type + (MedAction_Type)(0), // 25: apipb.MedAction.Type + (SetLogLevelRequest_Level)(0), // 26: apipb.SetLogLevelRequest.Level + (*StartBgpRequest)(nil), // 27: apipb.StartBgpRequest + (*StopBgpRequest)(nil), // 28: apipb.StopBgpRequest + (*GetBgpRequest)(nil), // 29: apipb.GetBgpRequest + (*GetBgpResponse)(nil), // 30: apipb.GetBgpResponse + (*WatchEventRequest)(nil), // 31: apipb.WatchEventRequest + (*WatchEventResponse)(nil), // 32: apipb.WatchEventResponse + (*AddPeerRequest)(nil), // 33: apipb.AddPeerRequest + (*DeletePeerRequest)(nil), // 34: apipb.DeletePeerRequest + (*ListPeerRequest)(nil), // 35: apipb.ListPeerRequest + (*ListPeerResponse)(nil), // 36: apipb.ListPeerResponse + (*UpdatePeerRequest)(nil), // 37: apipb.UpdatePeerRequest + (*UpdatePeerResponse)(nil), // 38: apipb.UpdatePeerResponse + (*ResetPeerRequest)(nil), // 39: apipb.ResetPeerRequest + (*ShutdownPeerRequest)(nil), // 40: apipb.ShutdownPeerRequest + (*EnablePeerRequest)(nil), // 41: apipb.EnablePeerRequest + (*DisablePeerRequest)(nil), // 42: apipb.DisablePeerRequest + (*AddPeerGroupRequest)(nil), // 43: apipb.AddPeerGroupRequest + (*DeletePeerGroupRequest)(nil), // 44: apipb.DeletePeerGroupRequest + (*UpdatePeerGroupRequest)(nil), // 45: apipb.UpdatePeerGroupRequest + (*UpdatePeerGroupResponse)(nil), // 46: apipb.UpdatePeerGroupResponse + (*ListPeerGroupRequest)(nil), // 47: apipb.ListPeerGroupRequest + (*ListPeerGroupResponse)(nil), // 48: apipb.ListPeerGroupResponse + (*AddDynamicNeighborRequest)(nil), // 49: apipb.AddDynamicNeighborRequest + (*DeleteDynamicNeighborRequest)(nil), // 50: apipb.DeleteDynamicNeighborRequest + (*ListDynamicNeighborRequest)(nil), // 51: apipb.ListDynamicNeighborRequest + (*ListDynamicNeighborResponse)(nil), // 52: apipb.ListDynamicNeighborResponse + (*AddPathRequest)(nil), // 53: apipb.AddPathRequest + (*AddPathResponse)(nil), // 54: apipb.AddPathResponse + (*DeletePathRequest)(nil), // 55: apipb.DeletePathRequest + (*TableLookupPrefix)(nil), // 56: apipb.TableLookupPrefix + (*ListPathRequest)(nil), // 57: apipb.ListPathRequest + (*ListPathResponse)(nil), // 58: apipb.ListPathResponse + (*AddPathStreamRequest)(nil), // 59: apipb.AddPathStreamRequest + (*GetTableRequest)(nil), // 60: apipb.GetTableRequest + (*GetTableResponse)(nil), // 61: apipb.GetTableResponse + (*AddVrfRequest)(nil), // 62: apipb.AddVrfRequest + (*DeleteVrfRequest)(nil), // 63: apipb.DeleteVrfRequest + (*ListVrfRequest)(nil), // 64: apipb.ListVrfRequest + (*ListVrfResponse)(nil), // 65: apipb.ListVrfResponse + (*AddPolicyRequest)(nil), // 66: apipb.AddPolicyRequest + (*DeletePolicyRequest)(nil), // 67: apipb.DeletePolicyRequest + (*ListPolicyRequest)(nil), // 68: apipb.ListPolicyRequest + (*ListPolicyResponse)(nil), // 69: apipb.ListPolicyResponse + (*SetPoliciesRequest)(nil), // 70: apipb.SetPoliciesRequest + (*AddDefinedSetRequest)(nil), // 71: apipb.AddDefinedSetRequest + (*DeleteDefinedSetRequest)(nil), // 72: apipb.DeleteDefinedSetRequest + (*ListDefinedSetRequest)(nil), // 73: apipb.ListDefinedSetRequest + (*ListDefinedSetResponse)(nil), // 74: apipb.ListDefinedSetResponse + (*AddStatementRequest)(nil), // 75: apipb.AddStatementRequest + (*DeleteStatementRequest)(nil), // 76: apipb.DeleteStatementRequest + (*ListStatementRequest)(nil), // 77: apipb.ListStatementRequest + (*ListStatementResponse)(nil), // 78: apipb.ListStatementResponse + (*AddPolicyAssignmentRequest)(nil), // 79: apipb.AddPolicyAssignmentRequest + (*DeletePolicyAssignmentRequest)(nil), // 80: apipb.DeletePolicyAssignmentRequest + (*ListPolicyAssignmentRequest)(nil), // 81: apipb.ListPolicyAssignmentRequest + (*ListPolicyAssignmentResponse)(nil), // 82: apipb.ListPolicyAssignmentResponse + (*SetPolicyAssignmentRequest)(nil), // 83: apipb.SetPolicyAssignmentRequest + (*AddRpkiRequest)(nil), // 84: apipb.AddRpkiRequest + (*DeleteRpkiRequest)(nil), // 85: apipb.DeleteRpkiRequest + (*ListRpkiRequest)(nil), // 86: apipb.ListRpkiRequest + (*ListRpkiResponse)(nil), // 87: apipb.ListRpkiResponse + (*EnableRpkiRequest)(nil), // 88: apipb.EnableRpkiRequest + (*DisableRpkiRequest)(nil), // 89: apipb.DisableRpkiRequest + (*ResetRpkiRequest)(nil), // 90: apipb.ResetRpkiRequest + (*ListRpkiTableRequest)(nil), // 91: apipb.ListRpkiTableRequest + (*ListRpkiTableResponse)(nil), // 92: apipb.ListRpkiTableResponse + (*EnableZebraRequest)(nil), // 93: apipb.EnableZebraRequest + (*EnableMrtRequest)(nil), // 94: apipb.EnableMrtRequest + (*DisableMrtRequest)(nil), // 95: apipb.DisableMrtRequest + (*AddBmpRequest)(nil), // 96: apipb.AddBmpRequest + (*DeleteBmpRequest)(nil), // 97: apipb.DeleteBmpRequest + (*ListBmpRequest)(nil), // 98: apipb.ListBmpRequest + (*ListBmpResponse)(nil), // 99: apipb.ListBmpResponse + (*Family)(nil), // 100: apipb.Family + (*Validation)(nil), // 101: apipb.Validation + (*Path)(nil), // 102: apipb.Path + (*Destination)(nil), // 103: apipb.Destination + (*Peer)(nil), // 104: apipb.Peer + (*PeerGroup)(nil), // 105: apipb.PeerGroup + (*DynamicNeighbor)(nil), // 106: apipb.DynamicNeighbor + (*ApplyPolicy)(nil), // 107: apipb.ApplyPolicy + (*PrefixLimit)(nil), // 108: apipb.PrefixLimit + (*PeerConf)(nil), // 109: apipb.PeerConf + (*PeerGroupConf)(nil), // 110: apipb.PeerGroupConf + (*PeerGroupState)(nil), // 111: apipb.PeerGroupState + (*TtlSecurity)(nil), // 112: apipb.TtlSecurity + (*EbgpMultihop)(nil), // 113: apipb.EbgpMultihop + (*RouteReflector)(nil), // 114: apipb.RouteReflector + (*PeerState)(nil), // 115: apipb.PeerState + (*Messages)(nil), // 116: apipb.Messages + (*Message)(nil), // 117: apipb.Message + (*Queues)(nil), // 118: apipb.Queues + (*Timers)(nil), // 119: apipb.Timers + (*TimersConfig)(nil), // 120: apipb.TimersConfig + (*TimersState)(nil), // 121: apipb.TimersState + (*Transport)(nil), // 122: apipb.Transport + (*RouteServer)(nil), // 123: apipb.RouteServer + (*GracefulRestart)(nil), // 124: apipb.GracefulRestart + (*MpGracefulRestartConfig)(nil), // 125: apipb.MpGracefulRestartConfig + (*MpGracefulRestartState)(nil), // 126: apipb.MpGracefulRestartState + (*MpGracefulRestart)(nil), // 127: apipb.MpGracefulRestart + (*AfiSafiConfig)(nil), // 128: apipb.AfiSafiConfig + (*AfiSafiState)(nil), // 129: apipb.AfiSafiState + (*RouteSelectionOptionsConfig)(nil), // 130: apipb.RouteSelectionOptionsConfig + (*RouteSelectionOptionsState)(nil), // 131: apipb.RouteSelectionOptionsState + (*RouteSelectionOptions)(nil), // 132: apipb.RouteSelectionOptions + (*UseMultiplePathsConfig)(nil), // 133: apipb.UseMultiplePathsConfig + (*UseMultiplePathsState)(nil), // 134: apipb.UseMultiplePathsState + (*EbgpConfig)(nil), // 135: apipb.EbgpConfig + (*EbgpState)(nil), // 136: apipb.EbgpState + (*Ebgp)(nil), // 137: apipb.Ebgp + (*IbgpConfig)(nil), // 138: apipb.IbgpConfig + (*IbgpState)(nil), // 139: apipb.IbgpState + (*Ibgp)(nil), // 140: apipb.Ibgp + (*UseMultiplePaths)(nil), // 141: apipb.UseMultiplePaths + (*RouteTargetMembershipConfig)(nil), // 142: apipb.RouteTargetMembershipConfig + (*RouteTargetMembershipState)(nil), // 143: apipb.RouteTargetMembershipState + (*RouteTargetMembership)(nil), // 144: apipb.RouteTargetMembership + (*LongLivedGracefulRestartConfig)(nil), // 145: apipb.LongLivedGracefulRestartConfig + (*LongLivedGracefulRestartState)(nil), // 146: apipb.LongLivedGracefulRestartState + (*LongLivedGracefulRestart)(nil), // 147: apipb.LongLivedGracefulRestart + (*AfiSafi)(nil), // 148: apipb.AfiSafi + (*AddPathsConfig)(nil), // 149: apipb.AddPathsConfig + (*AddPathsState)(nil), // 150: apipb.AddPathsState + (*AddPaths)(nil), // 151: apipb.AddPaths + (*Prefix)(nil), // 152: apipb.Prefix + (*DefinedSet)(nil), // 153: apipb.DefinedSet + (*MatchSet)(nil), // 154: apipb.MatchSet + (*AsPathLength)(nil), // 155: apipb.AsPathLength + (*CommunityCount)(nil), // 156: apipb.CommunityCount + (*Conditions)(nil), // 157: apipb.Conditions + (*CommunityAction)(nil), // 158: apipb.CommunityAction + (*MedAction)(nil), // 159: apipb.MedAction + (*AsPrependAction)(nil), // 160: apipb.AsPrependAction + (*NexthopAction)(nil), // 161: apipb.NexthopAction + (*LocalPrefAction)(nil), // 162: apipb.LocalPrefAction + (*OriginAction)(nil), // 163: apipb.OriginAction + (*Actions)(nil), // 164: apipb.Actions + (*Statement)(nil), // 165: apipb.Statement + (*Policy)(nil), // 166: apipb.Policy + (*PolicyAssignment)(nil), // 167: apipb.PolicyAssignment + (*RoutingPolicy)(nil), // 168: apipb.RoutingPolicy + (*Roa)(nil), // 169: apipb.Roa + (*Vrf)(nil), // 170: apipb.Vrf + (*DefaultRouteDistance)(nil), // 171: apipb.DefaultRouteDistance + (*Global)(nil), // 172: apipb.Global + (*Confederation)(nil), // 173: apipb.Confederation + (*RPKIConf)(nil), // 174: apipb.RPKIConf + (*RPKIState)(nil), // 175: apipb.RPKIState + (*Rpki)(nil), // 176: apipb.Rpki + (*SetLogLevelRequest)(nil), // 177: apipb.SetLogLevelRequest + (*WatchEventRequest_Peer)(nil), // 178: apipb.WatchEventRequest.Peer + (*WatchEventRequest_Table)(nil), // 179: apipb.WatchEventRequest.Table + (*WatchEventRequest_Table_Filter)(nil), // 180: apipb.WatchEventRequest.Table.Filter + (*WatchEventResponse_PeerEvent)(nil), // 181: apipb.WatchEventResponse.PeerEvent + (*WatchEventResponse_TableEvent)(nil), // 182: apipb.WatchEventResponse.TableEvent + (*ListBmpResponse_BmpStation)(nil), // 183: apipb.ListBmpResponse.BmpStation + (*ListBmpResponse_BmpStation_Conf)(nil), // 184: apipb.ListBmpResponse.BmpStation.Conf + (*ListBmpResponse_BmpStation_State)(nil), // 185: apipb.ListBmpResponse.BmpStation.State + (*anypb.Any)(nil), // 186: google.protobuf.Any + (*timestamppb.Timestamp)(nil), // 187: google.protobuf.Timestamp + (*emptypb.Empty)(nil), // 188: google.protobuf.Empty } var file_gobgp_proto_depIdxs = []int32{ - 170, // 0: apipb.StartBgpRequest.global:type_name -> apipb.Global - 170, // 1: apipb.GetBgpResponse.global:type_name -> apipb.Global - 176, // 2: apipb.WatchEventRequest.peer:type_name -> apipb.WatchEventRequest.Peer - 177, // 3: apipb.WatchEventRequest.table:type_name -> apipb.WatchEventRequest.Table - 179, // 4: apipb.WatchEventResponse.peer:type_name -> apipb.WatchEventResponse.PeerEvent - 180, // 5: apipb.WatchEventResponse.table:type_name -> apipb.WatchEventResponse.TableEvent - 103, // 6: apipb.AddPeerRequest.peer:type_name -> apipb.Peer - 103, // 7: apipb.ListPeerResponse.peer:type_name -> apipb.Peer - 103, // 8: apipb.UpdatePeerRequest.peer:type_name -> apipb.Peer - 8, // 9: apipb.ResetPeerRequest.direction:type_name -> apipb.ResetPeerRequest.SoftResetDirection - 104, // 10: apipb.AddPeerGroupRequest.peer_group:type_name -> apipb.PeerGroup - 104, // 11: apipb.UpdatePeerGroupRequest.peer_group:type_name -> apipb.PeerGroup - 104, // 12: apipb.ListPeerGroupResponse.peer_group:type_name -> apipb.PeerGroup - 105, // 13: apipb.AddDynamicNeighborRequest.dynamic_neighbor:type_name -> apipb.DynamicNeighbor - 105, // 14: apipb.ListDynamicNeighborResponse.dynamic_neighbor:type_name -> apipb.DynamicNeighbor + 172, // 0: apipb.StartBgpRequest.global:type_name -> apipb.Global + 172, // 1: apipb.GetBgpResponse.global:type_name -> apipb.Global + 178, // 2: apipb.WatchEventRequest.peer:type_name -> apipb.WatchEventRequest.Peer + 179, // 3: apipb.WatchEventRequest.table:type_name -> apipb.WatchEventRequest.Table + 181, // 4: apipb.WatchEventResponse.peer:type_name -> apipb.WatchEventResponse.PeerEvent + 182, // 5: apipb.WatchEventResponse.table:type_name -> apipb.WatchEventResponse.TableEvent + 104, // 6: apipb.AddPeerRequest.peer:type_name -> apipb.Peer + 104, // 7: apipb.ListPeerResponse.peer:type_name -> apipb.Peer + 104, // 8: apipb.UpdatePeerRequest.peer:type_name -> apipb.Peer + 9, // 9: apipb.ResetPeerRequest.direction:type_name -> apipb.ResetPeerRequest.SoftResetDirection + 105, // 10: apipb.AddPeerGroupRequest.peer_group:type_name -> apipb.PeerGroup + 105, // 11: apipb.UpdatePeerGroupRequest.peer_group:type_name -> apipb.PeerGroup + 105, // 12: apipb.ListPeerGroupResponse.peer_group:type_name -> apipb.PeerGroup + 106, // 13: apipb.AddDynamicNeighborRequest.dynamic_neighbor:type_name -> apipb.DynamicNeighbor + 106, // 14: apipb.ListDynamicNeighborResponse.dynamic_neighbor:type_name -> apipb.DynamicNeighbor 0, // 15: apipb.AddPathRequest.table_type:type_name -> apipb.TableType - 101, // 16: apipb.AddPathRequest.path:type_name -> apipb.Path + 102, // 16: apipb.AddPathRequest.path:type_name -> apipb.Path 0, // 17: apipb.DeletePathRequest.table_type:type_name -> apipb.TableType - 99, // 18: apipb.DeletePathRequest.family:type_name -> apipb.Family - 101, // 19: apipb.DeletePathRequest.path:type_name -> apipb.Path - 9, // 20: apipb.TableLookupPrefix.type:type_name -> apipb.TableLookupPrefix.Type + 100, // 18: apipb.DeletePathRequest.family:type_name -> apipb.Family + 102, // 19: apipb.DeletePathRequest.path:type_name -> apipb.Path + 10, // 20: apipb.TableLookupPrefix.type:type_name -> apipb.TableLookupPrefix.Type 0, // 21: apipb.ListPathRequest.table_type:type_name -> apipb.TableType - 99, // 22: apipb.ListPathRequest.family:type_name -> apipb.Family - 55, // 23: apipb.ListPathRequest.prefixes:type_name -> apipb.TableLookupPrefix - 10, // 24: apipb.ListPathRequest.sort_type:type_name -> apipb.ListPathRequest.SortType - 102, // 25: apipb.ListPathResponse.destination:type_name -> apipb.Destination + 100, // 22: apipb.ListPathRequest.family:type_name -> apipb.Family + 56, // 23: apipb.ListPathRequest.prefixes:type_name -> apipb.TableLookupPrefix + 11, // 24: apipb.ListPathRequest.sort_type:type_name -> apipb.ListPathRequest.SortType + 103, // 25: apipb.ListPathResponse.destination:type_name -> apipb.Destination 0, // 26: apipb.AddPathStreamRequest.table_type:type_name -> apipb.TableType - 101, // 27: apipb.AddPathStreamRequest.paths:type_name -> apipb.Path + 102, // 27: apipb.AddPathStreamRequest.paths:type_name -> apipb.Path 0, // 28: apipb.GetTableRequest.table_type:type_name -> apipb.TableType - 99, // 29: apipb.GetTableRequest.family:type_name -> apipb.Family - 168, // 30: apipb.AddVrfRequest.vrf:type_name -> apipb.Vrf - 168, // 31: apipb.ListVrfResponse.vrf:type_name -> apipb.Vrf - 164, // 32: apipb.AddPolicyRequest.policy:type_name -> apipb.Policy - 164, // 33: apipb.DeletePolicyRequest.policy:type_name -> apipb.Policy - 164, // 34: apipb.ListPolicyResponse.policy:type_name -> apipb.Policy - 152, // 35: apipb.SetPoliciesRequest.defined_sets:type_name -> apipb.DefinedSet - 164, // 36: apipb.SetPoliciesRequest.policies:type_name -> apipb.Policy - 165, // 37: apipb.SetPoliciesRequest.assignments:type_name -> apipb.PolicyAssignment - 152, // 38: apipb.AddDefinedSetRequest.defined_set:type_name -> apipb.DefinedSet - 152, // 39: apipb.DeleteDefinedSetRequest.defined_set:type_name -> apipb.DefinedSet + 100, // 29: apipb.GetTableRequest.family:type_name -> apipb.Family + 170, // 30: apipb.AddVrfRequest.vrf:type_name -> apipb.Vrf + 170, // 31: apipb.ListVrfResponse.vrf:type_name -> apipb.Vrf + 166, // 32: apipb.AddPolicyRequest.policy:type_name -> apipb.Policy + 166, // 33: apipb.DeletePolicyRequest.policy:type_name -> apipb.Policy + 166, // 34: apipb.ListPolicyResponse.policy:type_name -> apipb.Policy + 153, // 35: apipb.SetPoliciesRequest.defined_sets:type_name -> apipb.DefinedSet + 166, // 36: apipb.SetPoliciesRequest.policies:type_name -> apipb.Policy + 167, // 37: apipb.SetPoliciesRequest.assignments:type_name -> apipb.PolicyAssignment + 153, // 38: apipb.AddDefinedSetRequest.defined_set:type_name -> apipb.DefinedSet + 153, // 39: apipb.DeleteDefinedSetRequest.defined_set:type_name -> apipb.DefinedSet 3, // 40: apipb.ListDefinedSetRequest.defined_type:type_name -> apipb.DefinedType - 152, // 41: apipb.ListDefinedSetResponse.defined_set:type_name -> apipb.DefinedSet - 163, // 42: apipb.AddStatementRequest.statement:type_name -> apipb.Statement - 163, // 43: apipb.DeleteStatementRequest.statement:type_name -> apipb.Statement - 163, // 44: apipb.ListStatementResponse.statement:type_name -> apipb.Statement - 165, // 45: apipb.AddPolicyAssignmentRequest.assignment:type_name -> apipb.PolicyAssignment - 165, // 46: apipb.DeletePolicyAssignmentRequest.assignment:type_name -> apipb.PolicyAssignment - 5, // 47: apipb.ListPolicyAssignmentRequest.direction:type_name -> apipb.PolicyDirection - 165, // 48: apipb.ListPolicyAssignmentResponse.assignment:type_name -> apipb.PolicyAssignment - 165, // 49: apipb.SetPolicyAssignmentRequest.assignment:type_name -> apipb.PolicyAssignment - 99, // 50: apipb.ListRpkiRequest.family:type_name -> apipb.Family - 174, // 51: apipb.ListRpkiResponse.server:type_name -> apipb.Rpki - 99, // 52: apipb.ListRpkiTableRequest.family:type_name -> apipb.Family - 167, // 53: apipb.ListRpkiTableResponse.roa:type_name -> apipb.Roa - 11, // 54: apipb.EnableMrtRequest.type:type_name -> apipb.EnableMrtRequest.DumpType - 12, // 55: apipb.AddBmpRequest.policy:type_name -> apipb.AddBmpRequest.MonitoringPolicy - 181, // 56: apipb.ListBmpResponse.station:type_name -> apipb.ListBmpResponse.BmpStation - 13, // 57: apipb.Family.afi:type_name -> apipb.Family.Afi - 14, // 58: apipb.Family.safi:type_name -> apipb.Family.Safi - 15, // 59: apipb.Validation.state:type_name -> apipb.Validation.State - 16, // 60: apipb.Validation.reason:type_name -> apipb.Validation.Reason - 167, // 61: apipb.Validation.matched:type_name -> apipb.Roa - 167, // 62: apipb.Validation.unmatched_asn:type_name -> apipb.Roa - 167, // 63: apipb.Validation.unmatched_length:type_name -> apipb.Roa - 184, // 64: apipb.Path.nlri:type_name -> google.protobuf.Any - 184, // 65: apipb.Path.pattrs:type_name -> google.protobuf.Any - 185, // 66: apipb.Path.age:type_name -> google.protobuf.Timestamp - 100, // 67: apipb.Path.validation:type_name -> apipb.Validation - 99, // 68: apipb.Path.family:type_name -> apipb.Family - 101, // 69: apipb.Destination.paths:type_name -> apipb.Path - 106, // 70: apipb.Peer.apply_policy:type_name -> apipb.ApplyPolicy - 108, // 71: apipb.Peer.conf:type_name -> apipb.PeerConf - 112, // 72: apipb.Peer.ebgp_multihop:type_name -> apipb.EbgpMultihop - 113, // 73: apipb.Peer.route_reflector:type_name -> apipb.RouteReflector - 114, // 74: apipb.Peer.state:type_name -> apipb.PeerState - 118, // 75: apipb.Peer.timers:type_name -> apipb.Timers - 121, // 76: apipb.Peer.transport:type_name -> apipb.Transport - 122, // 77: apipb.Peer.route_server:type_name -> apipb.RouteServer - 123, // 78: apipb.Peer.graceful_restart:type_name -> apipb.GracefulRestart - 147, // 79: apipb.Peer.afi_safis:type_name -> apipb.AfiSafi - 111, // 80: apipb.Peer.ttl_security:type_name -> apipb.TtlSecurity - 106, // 81: apipb.PeerGroup.apply_policy:type_name -> apipb.ApplyPolicy - 109, // 82: apipb.PeerGroup.conf:type_name -> apipb.PeerGroupConf - 112, // 83: apipb.PeerGroup.ebgp_multihop:type_name -> apipb.EbgpMultihop - 113, // 84: apipb.PeerGroup.route_reflector:type_name -> apipb.RouteReflector - 110, // 85: apipb.PeerGroup.info:type_name -> apipb.PeerGroupState - 118, // 86: apipb.PeerGroup.timers:type_name -> apipb.Timers - 121, // 87: apipb.PeerGroup.transport:type_name -> apipb.Transport - 122, // 88: apipb.PeerGroup.route_server:type_name -> apipb.RouteServer - 123, // 89: apipb.PeerGroup.graceful_restart:type_name -> apipb.GracefulRestart - 147, // 90: apipb.PeerGroup.afi_safis:type_name -> apipb.AfiSafi - 111, // 91: apipb.PeerGroup.ttl_security:type_name -> apipb.TtlSecurity - 165, // 92: apipb.ApplyPolicy.in_policy:type_name -> apipb.PolicyAssignment - 165, // 93: apipb.ApplyPolicy.export_policy:type_name -> apipb.PolicyAssignment - 165, // 94: apipb.ApplyPolicy.import_policy:type_name -> apipb.PolicyAssignment - 99, // 95: apipb.PrefixLimit.family:type_name -> apipb.Family + 153, // 41: apipb.ListDefinedSetResponse.defined_set:type_name -> apipb.DefinedSet + 165, // 42: apipb.AddStatementRequest.statement:type_name -> apipb.Statement + 165, // 43: apipb.DeleteStatementRequest.statement:type_name -> apipb.Statement + 165, // 44: apipb.ListStatementResponse.statement:type_name -> apipb.Statement + 167, // 45: apipb.AddPolicyAssignmentRequest.assignment:type_name -> apipb.PolicyAssignment + 167, // 46: apipb.DeletePolicyAssignmentRequest.assignment:type_name -> apipb.PolicyAssignment + 6, // 47: apipb.ListPolicyAssignmentRequest.direction:type_name -> apipb.PolicyDirection + 167, // 48: apipb.ListPolicyAssignmentResponse.assignment:type_name -> apipb.PolicyAssignment + 167, // 49: apipb.SetPolicyAssignmentRequest.assignment:type_name -> apipb.PolicyAssignment + 100, // 50: apipb.ListRpkiRequest.family:type_name -> apipb.Family + 176, // 51: apipb.ListRpkiResponse.server:type_name -> apipb.Rpki + 100, // 52: apipb.ListRpkiTableRequest.family:type_name -> apipb.Family + 169, // 53: apipb.ListRpkiTableResponse.roa:type_name -> apipb.Roa + 12, // 54: apipb.EnableMrtRequest.type:type_name -> apipb.EnableMrtRequest.DumpType + 13, // 55: apipb.AddBmpRequest.policy:type_name -> apipb.AddBmpRequest.MonitoringPolicy + 183, // 56: apipb.ListBmpResponse.station:type_name -> apipb.ListBmpResponse.BmpStation + 14, // 57: apipb.Family.afi:type_name -> apipb.Family.Afi + 15, // 58: apipb.Family.safi:type_name -> apipb.Family.Safi + 16, // 59: apipb.Validation.state:type_name -> apipb.Validation.State + 17, // 60: apipb.Validation.reason:type_name -> apipb.Validation.Reason + 169, // 61: apipb.Validation.matched:type_name -> apipb.Roa + 169, // 62: apipb.Validation.unmatched_asn:type_name -> apipb.Roa + 169, // 63: apipb.Validation.unmatched_length:type_name -> apipb.Roa + 186, // 64: apipb.Path.nlri:type_name -> google.protobuf.Any + 186, // 65: apipb.Path.pattrs:type_name -> google.protobuf.Any + 187, // 66: apipb.Path.age:type_name -> google.protobuf.Timestamp + 101, // 67: apipb.Path.validation:type_name -> apipb.Validation + 100, // 68: apipb.Path.family:type_name -> apipb.Family + 102, // 69: apipb.Destination.paths:type_name -> apipb.Path + 107, // 70: apipb.Peer.apply_policy:type_name -> apipb.ApplyPolicy + 109, // 71: apipb.Peer.conf:type_name -> apipb.PeerConf + 113, // 72: apipb.Peer.ebgp_multihop:type_name -> apipb.EbgpMultihop + 114, // 73: apipb.Peer.route_reflector:type_name -> apipb.RouteReflector + 115, // 74: apipb.Peer.state:type_name -> apipb.PeerState + 119, // 75: apipb.Peer.timers:type_name -> apipb.Timers + 122, // 76: apipb.Peer.transport:type_name -> apipb.Transport + 123, // 77: apipb.Peer.route_server:type_name -> apipb.RouteServer + 124, // 78: apipb.Peer.graceful_restart:type_name -> apipb.GracefulRestart + 148, // 79: apipb.Peer.afi_safis:type_name -> apipb.AfiSafi + 112, // 80: apipb.Peer.ttl_security:type_name -> apipb.TtlSecurity + 107, // 81: apipb.PeerGroup.apply_policy:type_name -> apipb.ApplyPolicy + 110, // 82: apipb.PeerGroup.conf:type_name -> apipb.PeerGroupConf + 113, // 83: apipb.PeerGroup.ebgp_multihop:type_name -> apipb.EbgpMultihop + 114, // 84: apipb.PeerGroup.route_reflector:type_name -> apipb.RouteReflector + 111, // 85: apipb.PeerGroup.info:type_name -> apipb.PeerGroupState + 119, // 86: apipb.PeerGroup.timers:type_name -> apipb.Timers + 122, // 87: apipb.PeerGroup.transport:type_name -> apipb.Transport + 123, // 88: apipb.PeerGroup.route_server:type_name -> apipb.RouteServer + 124, // 89: apipb.PeerGroup.graceful_restart:type_name -> apipb.GracefulRestart + 148, // 90: apipb.PeerGroup.afi_safis:type_name -> apipb.AfiSafi + 112, // 91: apipb.PeerGroup.ttl_security:type_name -> apipb.TtlSecurity + 167, // 92: apipb.ApplyPolicy.in_policy:type_name -> apipb.PolicyAssignment + 167, // 93: apipb.ApplyPolicy.export_policy:type_name -> apipb.PolicyAssignment + 167, // 94: apipb.ApplyPolicy.import_policy:type_name -> apipb.PolicyAssignment + 100, // 95: apipb.PrefixLimit.family:type_name -> apipb.Family 1, // 96: apipb.PeerConf.type:type_name -> apipb.PeerType 2, // 97: apipb.PeerConf.remove_private:type_name -> apipb.RemovePrivate 1, // 98: apipb.PeerGroupConf.type:type_name -> apipb.PeerType 2, // 99: apipb.PeerGroupConf.remove_private:type_name -> apipb.RemovePrivate 1, // 100: apipb.PeerGroupState.type:type_name -> apipb.PeerType 2, // 101: apipb.PeerGroupState.remove_private:type_name -> apipb.RemovePrivate - 115, // 102: apipb.PeerState.messages:type_name -> apipb.Messages + 116, // 102: apipb.PeerState.messages:type_name -> apipb.Messages 1, // 103: apipb.PeerState.type:type_name -> apipb.PeerType - 117, // 104: apipb.PeerState.queues:type_name -> apipb.Queues + 118, // 104: apipb.PeerState.queues:type_name -> apipb.Queues 2, // 105: apipb.PeerState.remove_private:type_name -> apipb.RemovePrivate - 17, // 106: apipb.PeerState.session_state:type_name -> apipb.PeerState.SessionState - 18, // 107: apipb.PeerState.admin_state:type_name -> apipb.PeerState.AdminState - 184, // 108: apipb.PeerState.remote_cap:type_name -> google.protobuf.Any - 184, // 109: apipb.PeerState.local_cap:type_name -> google.protobuf.Any - 116, // 110: apipb.Messages.received:type_name -> apipb.Message - 116, // 111: apipb.Messages.sent:type_name -> apipb.Message - 119, // 112: apipb.Timers.config:type_name -> apipb.TimersConfig - 120, // 113: apipb.Timers.state:type_name -> apipb.TimersState - 185, // 114: apipb.TimersState.uptime:type_name -> google.protobuf.Timestamp - 185, // 115: apipb.TimersState.downtime:type_name -> google.protobuf.Timestamp - 124, // 116: apipb.MpGracefulRestart.config:type_name -> apipb.MpGracefulRestartConfig - 125, // 117: apipb.MpGracefulRestart.state:type_name -> apipb.MpGracefulRestartState - 99, // 118: apipb.AfiSafiConfig.family:type_name -> apipb.Family - 99, // 119: apipb.AfiSafiState.family:type_name -> apipb.Family - 129, // 120: apipb.RouteSelectionOptions.config:type_name -> apipb.RouteSelectionOptionsConfig - 130, // 121: apipb.RouteSelectionOptions.state:type_name -> apipb.RouteSelectionOptionsState - 134, // 122: apipb.Ebgp.config:type_name -> apipb.EbgpConfig - 135, // 123: apipb.Ebgp.state:type_name -> apipb.EbgpState - 137, // 124: apipb.Ibgp.config:type_name -> apipb.IbgpConfig - 138, // 125: apipb.Ibgp.state:type_name -> apipb.IbgpState - 132, // 126: apipb.UseMultiplePaths.config:type_name -> apipb.UseMultiplePathsConfig - 133, // 127: apipb.UseMultiplePaths.state:type_name -> apipb.UseMultiplePathsState - 136, // 128: apipb.UseMultiplePaths.ebgp:type_name -> apipb.Ebgp - 139, // 129: apipb.UseMultiplePaths.ibgp:type_name -> apipb.Ibgp - 141, // 130: apipb.RouteTargetMembership.config:type_name -> apipb.RouteTargetMembershipConfig - 142, // 131: apipb.RouteTargetMembership.state:type_name -> apipb.RouteTargetMembershipState - 144, // 132: apipb.LongLivedGracefulRestart.config:type_name -> apipb.LongLivedGracefulRestartConfig - 145, // 133: apipb.LongLivedGracefulRestart.state:type_name -> apipb.LongLivedGracefulRestartState - 126, // 134: apipb.AfiSafi.mp_graceful_restart:type_name -> apipb.MpGracefulRestart - 127, // 135: apipb.AfiSafi.config:type_name -> apipb.AfiSafiConfig - 128, // 136: apipb.AfiSafi.state:type_name -> apipb.AfiSafiState - 106, // 137: apipb.AfiSafi.apply_policy:type_name -> apipb.ApplyPolicy - 131, // 138: apipb.AfiSafi.route_selection_options:type_name -> apipb.RouteSelectionOptions - 140, // 139: apipb.AfiSafi.use_multiple_paths:type_name -> apipb.UseMultiplePaths - 107, // 140: apipb.AfiSafi.prefix_limits:type_name -> apipb.PrefixLimit - 143, // 141: apipb.AfiSafi.route_target_membership:type_name -> apipb.RouteTargetMembership - 146, // 142: apipb.AfiSafi.long_lived_graceful_restart:type_name -> apipb.LongLivedGracefulRestart - 150, // 143: apipb.AfiSafi.add_paths:type_name -> apipb.AddPaths - 148, // 144: apipb.AddPaths.config:type_name -> apipb.AddPathsConfig - 149, // 145: apipb.AddPaths.state:type_name -> apipb.AddPathsState + 18, // 106: apipb.PeerState.session_state:type_name -> apipb.PeerState.SessionState + 19, // 107: apipb.PeerState.admin_state:type_name -> apipb.PeerState.AdminState + 186, // 108: apipb.PeerState.remote_cap:type_name -> google.protobuf.Any + 186, // 109: apipb.PeerState.local_cap:type_name -> google.protobuf.Any + 117, // 110: apipb.Messages.received:type_name -> apipb.Message + 117, // 111: apipb.Messages.sent:type_name -> apipb.Message + 120, // 112: apipb.Timers.config:type_name -> apipb.TimersConfig + 121, // 113: apipb.Timers.state:type_name -> apipb.TimersState + 187, // 114: apipb.TimersState.uptime:type_name -> google.protobuf.Timestamp + 187, // 115: apipb.TimersState.downtime:type_name -> google.protobuf.Timestamp + 125, // 116: apipb.MpGracefulRestart.config:type_name -> apipb.MpGracefulRestartConfig + 126, // 117: apipb.MpGracefulRestart.state:type_name -> apipb.MpGracefulRestartState + 100, // 118: apipb.AfiSafiConfig.family:type_name -> apipb.Family + 100, // 119: apipb.AfiSafiState.family:type_name -> apipb.Family + 130, // 120: apipb.RouteSelectionOptions.config:type_name -> apipb.RouteSelectionOptionsConfig + 131, // 121: apipb.RouteSelectionOptions.state:type_name -> apipb.RouteSelectionOptionsState + 135, // 122: apipb.Ebgp.config:type_name -> apipb.EbgpConfig + 136, // 123: apipb.Ebgp.state:type_name -> apipb.EbgpState + 138, // 124: apipb.Ibgp.config:type_name -> apipb.IbgpConfig + 139, // 125: apipb.Ibgp.state:type_name -> apipb.IbgpState + 133, // 126: apipb.UseMultiplePaths.config:type_name -> apipb.UseMultiplePathsConfig + 134, // 127: apipb.UseMultiplePaths.state:type_name -> apipb.UseMultiplePathsState + 137, // 128: apipb.UseMultiplePaths.ebgp:type_name -> apipb.Ebgp + 140, // 129: apipb.UseMultiplePaths.ibgp:type_name -> apipb.Ibgp + 142, // 130: apipb.RouteTargetMembership.config:type_name -> apipb.RouteTargetMembershipConfig + 143, // 131: apipb.RouteTargetMembership.state:type_name -> apipb.RouteTargetMembershipState + 145, // 132: apipb.LongLivedGracefulRestart.config:type_name -> apipb.LongLivedGracefulRestartConfig + 146, // 133: apipb.LongLivedGracefulRestart.state:type_name -> apipb.LongLivedGracefulRestartState + 127, // 134: apipb.AfiSafi.mp_graceful_restart:type_name -> apipb.MpGracefulRestart + 128, // 135: apipb.AfiSafi.config:type_name -> apipb.AfiSafiConfig + 129, // 136: apipb.AfiSafi.state:type_name -> apipb.AfiSafiState + 107, // 137: apipb.AfiSafi.apply_policy:type_name -> apipb.ApplyPolicy + 132, // 138: apipb.AfiSafi.route_selection_options:type_name -> apipb.RouteSelectionOptions + 141, // 139: apipb.AfiSafi.use_multiple_paths:type_name -> apipb.UseMultiplePaths + 108, // 140: apipb.AfiSafi.prefix_limits:type_name -> apipb.PrefixLimit + 144, // 141: apipb.AfiSafi.route_target_membership:type_name -> apipb.RouteTargetMembership + 147, // 142: apipb.AfiSafi.long_lived_graceful_restart:type_name -> apipb.LongLivedGracefulRestart + 151, // 143: apipb.AfiSafi.add_paths:type_name -> apipb.AddPaths + 149, // 144: apipb.AddPaths.config:type_name -> apipb.AddPathsConfig + 150, // 145: apipb.AddPaths.state:type_name -> apipb.AddPathsState 3, // 146: apipb.DefinedSet.defined_type:type_name -> apipb.DefinedType - 151, // 147: apipb.DefinedSet.prefixes:type_name -> apipb.Prefix - 19, // 148: apipb.MatchSet.type:type_name -> apipb.MatchSet.Type - 20, // 149: apipb.AsPathLength.type:type_name -> apipb.AsPathLength.Type - 21, // 150: apipb.CommunityCount.type:type_name -> apipb.CommunityCount.Type - 153, // 151: apipb.Conditions.prefix_set:type_name -> apipb.MatchSet - 153, // 152: apipb.Conditions.neighbor_set:type_name -> apipb.MatchSet - 154, // 153: apipb.Conditions.as_path_length:type_name -> apipb.AsPathLength - 153, // 154: apipb.Conditions.as_path_set:type_name -> apipb.MatchSet - 153, // 155: apipb.Conditions.community_set:type_name -> apipb.MatchSet - 153, // 156: apipb.Conditions.ext_community_set:type_name -> apipb.MatchSet - 22, // 157: apipb.Conditions.route_type:type_name -> apipb.Conditions.RouteType - 153, // 158: apipb.Conditions.large_community_set:type_name -> apipb.MatchSet - 99, // 159: apipb.Conditions.afi_safi_in:type_name -> apipb.Family - 155, // 160: apipb.Conditions.community_count:type_name -> apipb.CommunityCount - 23, // 161: apipb.CommunityAction.type:type_name -> apipb.CommunityAction.Type - 24, // 162: apipb.MedAction.type:type_name -> apipb.MedAction.Type - 4, // 163: apipb.Actions.route_action:type_name -> apipb.RouteAction - 157, // 164: apipb.Actions.community:type_name -> apipb.CommunityAction - 158, // 165: apipb.Actions.med:type_name -> apipb.MedAction - 159, // 166: apipb.Actions.as_prepend:type_name -> apipb.AsPrependAction - 157, // 167: apipb.Actions.ext_community:type_name -> apipb.CommunityAction - 160, // 168: apipb.Actions.nexthop:type_name -> apipb.NexthopAction - 161, // 169: apipb.Actions.local_pref:type_name -> apipb.LocalPrefAction - 157, // 170: apipb.Actions.large_community:type_name -> apipb.CommunityAction - 156, // 171: apipb.Statement.conditions:type_name -> apipb.Conditions - 162, // 172: apipb.Statement.actions:type_name -> apipb.Actions - 163, // 173: apipb.Policy.statements:type_name -> apipb.Statement - 5, // 174: apipb.PolicyAssignment.direction:type_name -> apipb.PolicyDirection - 164, // 175: apipb.PolicyAssignment.policies:type_name -> apipb.Policy - 4, // 176: apipb.PolicyAssignment.default_action:type_name -> apipb.RouteAction - 152, // 177: apipb.RoutingPolicy.defined_sets:type_name -> apipb.DefinedSet - 164, // 178: apipb.RoutingPolicy.policies:type_name -> apipb.Policy - 172, // 179: apipb.Roa.conf:type_name -> apipb.RPKIConf - 184, // 180: apipb.Vrf.rd:type_name -> google.protobuf.Any - 184, // 181: apipb.Vrf.import_rt:type_name -> google.protobuf.Any - 184, // 182: apipb.Vrf.export_rt:type_name -> google.protobuf.Any - 129, // 183: apipb.Global.route_selection_options:type_name -> apipb.RouteSelectionOptionsConfig - 169, // 184: apipb.Global.default_route_distance:type_name -> apipb.DefaultRouteDistance - 171, // 185: apipb.Global.confederation:type_name -> apipb.Confederation - 123, // 186: apipb.Global.graceful_restart:type_name -> apipb.GracefulRestart - 106, // 187: apipb.Global.apply_policy:type_name -> apipb.ApplyPolicy - 185, // 188: apipb.RPKIState.uptime:type_name -> google.protobuf.Timestamp - 185, // 189: apipb.RPKIState.downtime:type_name -> google.protobuf.Timestamp - 172, // 190: apipb.Rpki.conf:type_name -> apipb.RPKIConf - 173, // 191: apipb.Rpki.state:type_name -> apipb.RPKIState - 25, // 192: apipb.SetLogLevelRequest.level:type_name -> apipb.SetLogLevelRequest.Level - 178, // 193: apipb.WatchEventRequest.Table.filters:type_name -> apipb.WatchEventRequest.Table.Filter - 6, // 194: apipb.WatchEventRequest.Table.Filter.type:type_name -> apipb.WatchEventRequest.Table.Filter.Type - 7, // 195: apipb.WatchEventResponse.PeerEvent.type:type_name -> apipb.WatchEventResponse.PeerEvent.Type - 103, // 196: apipb.WatchEventResponse.PeerEvent.peer:type_name -> apipb.Peer - 101, // 197: apipb.WatchEventResponse.TableEvent.paths:type_name -> apipb.Path - 182, // 198: apipb.ListBmpResponse.BmpStation.conf:type_name -> apipb.ListBmpResponse.BmpStation.Conf - 183, // 199: apipb.ListBmpResponse.BmpStation.state:type_name -> apipb.ListBmpResponse.BmpStation.State - 185, // 200: apipb.ListBmpResponse.BmpStation.State.uptime:type_name -> google.protobuf.Timestamp - 185, // 201: apipb.ListBmpResponse.BmpStation.State.downtime:type_name -> google.protobuf.Timestamp - 26, // 202: apipb.GobgpApi.StartBgp:input_type -> apipb.StartBgpRequest - 27, // 203: apipb.GobgpApi.StopBgp:input_type -> apipb.StopBgpRequest - 28, // 204: apipb.GobgpApi.GetBgp:input_type -> apipb.GetBgpRequest - 30, // 205: apipb.GobgpApi.WatchEvent:input_type -> apipb.WatchEventRequest - 32, // 206: apipb.GobgpApi.AddPeer:input_type -> apipb.AddPeerRequest - 33, // 207: apipb.GobgpApi.DeletePeer:input_type -> apipb.DeletePeerRequest - 34, // 208: apipb.GobgpApi.ListPeer:input_type -> apipb.ListPeerRequest - 36, // 209: apipb.GobgpApi.UpdatePeer:input_type -> apipb.UpdatePeerRequest - 38, // 210: apipb.GobgpApi.ResetPeer:input_type -> apipb.ResetPeerRequest - 39, // 211: apipb.GobgpApi.ShutdownPeer:input_type -> apipb.ShutdownPeerRequest - 40, // 212: apipb.GobgpApi.EnablePeer:input_type -> apipb.EnablePeerRequest - 41, // 213: apipb.GobgpApi.DisablePeer:input_type -> apipb.DisablePeerRequest - 42, // 214: apipb.GobgpApi.AddPeerGroup:input_type -> apipb.AddPeerGroupRequest - 43, // 215: apipb.GobgpApi.DeletePeerGroup:input_type -> apipb.DeletePeerGroupRequest - 46, // 216: apipb.GobgpApi.ListPeerGroup:input_type -> apipb.ListPeerGroupRequest - 44, // 217: apipb.GobgpApi.UpdatePeerGroup:input_type -> apipb.UpdatePeerGroupRequest - 48, // 218: apipb.GobgpApi.AddDynamicNeighbor:input_type -> apipb.AddDynamicNeighborRequest - 50, // 219: apipb.GobgpApi.ListDynamicNeighbor:input_type -> apipb.ListDynamicNeighborRequest - 49, // 220: apipb.GobgpApi.DeleteDynamicNeighbor:input_type -> apipb.DeleteDynamicNeighborRequest - 52, // 221: apipb.GobgpApi.AddPath:input_type -> apipb.AddPathRequest - 54, // 222: apipb.GobgpApi.DeletePath:input_type -> apipb.DeletePathRequest - 56, // 223: apipb.GobgpApi.ListPath:input_type -> apipb.ListPathRequest - 58, // 224: apipb.GobgpApi.AddPathStream:input_type -> apipb.AddPathStreamRequest - 59, // 225: apipb.GobgpApi.GetTable:input_type -> apipb.GetTableRequest - 61, // 226: apipb.GobgpApi.AddVrf:input_type -> apipb.AddVrfRequest - 62, // 227: apipb.GobgpApi.DeleteVrf:input_type -> apipb.DeleteVrfRequest - 63, // 228: apipb.GobgpApi.ListVrf:input_type -> apipb.ListVrfRequest - 65, // 229: apipb.GobgpApi.AddPolicy:input_type -> apipb.AddPolicyRequest - 66, // 230: apipb.GobgpApi.DeletePolicy:input_type -> apipb.DeletePolicyRequest - 67, // 231: apipb.GobgpApi.ListPolicy:input_type -> apipb.ListPolicyRequest - 69, // 232: apipb.GobgpApi.SetPolicies:input_type -> apipb.SetPoliciesRequest - 70, // 233: apipb.GobgpApi.AddDefinedSet:input_type -> apipb.AddDefinedSetRequest - 71, // 234: apipb.GobgpApi.DeleteDefinedSet:input_type -> apipb.DeleteDefinedSetRequest - 72, // 235: apipb.GobgpApi.ListDefinedSet:input_type -> apipb.ListDefinedSetRequest - 74, // 236: apipb.GobgpApi.AddStatement:input_type -> apipb.AddStatementRequest - 75, // 237: apipb.GobgpApi.DeleteStatement:input_type -> apipb.DeleteStatementRequest - 76, // 238: apipb.GobgpApi.ListStatement:input_type -> apipb.ListStatementRequest - 78, // 239: apipb.GobgpApi.AddPolicyAssignment:input_type -> apipb.AddPolicyAssignmentRequest - 79, // 240: apipb.GobgpApi.DeletePolicyAssignment:input_type -> apipb.DeletePolicyAssignmentRequest - 80, // 241: apipb.GobgpApi.ListPolicyAssignment:input_type -> apipb.ListPolicyAssignmentRequest - 82, // 242: apipb.GobgpApi.SetPolicyAssignment:input_type -> apipb.SetPolicyAssignmentRequest - 83, // 243: apipb.GobgpApi.AddRpki:input_type -> apipb.AddRpkiRequest - 84, // 244: apipb.GobgpApi.DeleteRpki:input_type -> apipb.DeleteRpkiRequest - 85, // 245: apipb.GobgpApi.ListRpki:input_type -> apipb.ListRpkiRequest - 87, // 246: apipb.GobgpApi.EnableRpki:input_type -> apipb.EnableRpkiRequest - 88, // 247: apipb.GobgpApi.DisableRpki:input_type -> apipb.DisableRpkiRequest - 89, // 248: apipb.GobgpApi.ResetRpki:input_type -> apipb.ResetRpkiRequest - 90, // 249: apipb.GobgpApi.ListRpkiTable:input_type -> apipb.ListRpkiTableRequest - 92, // 250: apipb.GobgpApi.EnableZebra:input_type -> apipb.EnableZebraRequest - 93, // 251: apipb.GobgpApi.EnableMrt:input_type -> apipb.EnableMrtRequest - 94, // 252: apipb.GobgpApi.DisableMrt:input_type -> apipb.DisableMrtRequest - 95, // 253: apipb.GobgpApi.AddBmp:input_type -> apipb.AddBmpRequest - 96, // 254: apipb.GobgpApi.DeleteBmp:input_type -> apipb.DeleteBmpRequest - 97, // 255: apipb.GobgpApi.ListBmp:input_type -> apipb.ListBmpRequest - 175, // 256: apipb.GobgpApi.SetLogLevel:input_type -> apipb.SetLogLevelRequest - 186, // 257: apipb.GobgpApi.StartBgp:output_type -> google.protobuf.Empty - 186, // 258: apipb.GobgpApi.StopBgp:output_type -> google.protobuf.Empty - 29, // 259: apipb.GobgpApi.GetBgp:output_type -> apipb.GetBgpResponse - 31, // 260: apipb.GobgpApi.WatchEvent:output_type -> apipb.WatchEventResponse - 186, // 261: apipb.GobgpApi.AddPeer:output_type -> google.protobuf.Empty - 186, // 262: apipb.GobgpApi.DeletePeer:output_type -> google.protobuf.Empty - 35, // 263: apipb.GobgpApi.ListPeer:output_type -> apipb.ListPeerResponse - 37, // 264: apipb.GobgpApi.UpdatePeer:output_type -> apipb.UpdatePeerResponse - 186, // 265: apipb.GobgpApi.ResetPeer:output_type -> google.protobuf.Empty - 186, // 266: apipb.GobgpApi.ShutdownPeer:output_type -> google.protobuf.Empty - 186, // 267: apipb.GobgpApi.EnablePeer:output_type -> google.protobuf.Empty - 186, // 268: apipb.GobgpApi.DisablePeer:output_type -> google.protobuf.Empty - 186, // 269: apipb.GobgpApi.AddPeerGroup:output_type -> google.protobuf.Empty - 186, // 270: apipb.GobgpApi.DeletePeerGroup:output_type -> google.protobuf.Empty - 47, // 271: apipb.GobgpApi.ListPeerGroup:output_type -> apipb.ListPeerGroupResponse - 45, // 272: apipb.GobgpApi.UpdatePeerGroup:output_type -> apipb.UpdatePeerGroupResponse - 186, // 273: apipb.GobgpApi.AddDynamicNeighbor:output_type -> google.protobuf.Empty - 51, // 274: apipb.GobgpApi.ListDynamicNeighbor:output_type -> apipb.ListDynamicNeighborResponse - 186, // 275: apipb.GobgpApi.DeleteDynamicNeighbor:output_type -> google.protobuf.Empty - 53, // 276: apipb.GobgpApi.AddPath:output_type -> apipb.AddPathResponse - 186, // 277: apipb.GobgpApi.DeletePath:output_type -> google.protobuf.Empty - 57, // 278: apipb.GobgpApi.ListPath:output_type -> apipb.ListPathResponse - 186, // 279: apipb.GobgpApi.AddPathStream:output_type -> google.protobuf.Empty - 60, // 280: apipb.GobgpApi.GetTable:output_type -> apipb.GetTableResponse - 186, // 281: apipb.GobgpApi.AddVrf:output_type -> google.protobuf.Empty - 186, // 282: apipb.GobgpApi.DeleteVrf:output_type -> google.protobuf.Empty - 64, // 283: apipb.GobgpApi.ListVrf:output_type -> apipb.ListVrfResponse - 186, // 284: apipb.GobgpApi.AddPolicy:output_type -> google.protobuf.Empty - 186, // 285: apipb.GobgpApi.DeletePolicy:output_type -> google.protobuf.Empty - 68, // 286: apipb.GobgpApi.ListPolicy:output_type -> apipb.ListPolicyResponse - 186, // 287: apipb.GobgpApi.SetPolicies:output_type -> google.protobuf.Empty - 186, // 288: apipb.GobgpApi.AddDefinedSet:output_type -> google.protobuf.Empty - 186, // 289: apipb.GobgpApi.DeleteDefinedSet:output_type -> google.protobuf.Empty - 73, // 290: apipb.GobgpApi.ListDefinedSet:output_type -> apipb.ListDefinedSetResponse - 186, // 291: apipb.GobgpApi.AddStatement:output_type -> google.protobuf.Empty - 186, // 292: apipb.GobgpApi.DeleteStatement:output_type -> google.protobuf.Empty - 77, // 293: apipb.GobgpApi.ListStatement:output_type -> apipb.ListStatementResponse - 186, // 294: apipb.GobgpApi.AddPolicyAssignment:output_type -> google.protobuf.Empty - 186, // 295: apipb.GobgpApi.DeletePolicyAssignment:output_type -> google.protobuf.Empty - 81, // 296: apipb.GobgpApi.ListPolicyAssignment:output_type -> apipb.ListPolicyAssignmentResponse - 186, // 297: apipb.GobgpApi.SetPolicyAssignment:output_type -> google.protobuf.Empty - 186, // 298: apipb.GobgpApi.AddRpki:output_type -> google.protobuf.Empty - 186, // 299: apipb.GobgpApi.DeleteRpki:output_type -> google.protobuf.Empty - 86, // 300: apipb.GobgpApi.ListRpki:output_type -> apipb.ListRpkiResponse - 186, // 301: apipb.GobgpApi.EnableRpki:output_type -> google.protobuf.Empty - 186, // 302: apipb.GobgpApi.DisableRpki:output_type -> google.protobuf.Empty - 186, // 303: apipb.GobgpApi.ResetRpki:output_type -> google.protobuf.Empty - 91, // 304: apipb.GobgpApi.ListRpkiTable:output_type -> apipb.ListRpkiTableResponse - 186, // 305: apipb.GobgpApi.EnableZebra:output_type -> google.protobuf.Empty - 186, // 306: apipb.GobgpApi.EnableMrt:output_type -> google.protobuf.Empty - 186, // 307: apipb.GobgpApi.DisableMrt:output_type -> google.protobuf.Empty - 186, // 308: apipb.GobgpApi.AddBmp:output_type -> google.protobuf.Empty - 186, // 309: apipb.GobgpApi.DeleteBmp:output_type -> google.protobuf.Empty - 98, // 310: apipb.GobgpApi.ListBmp:output_type -> apipb.ListBmpResponse - 186, // 311: apipb.GobgpApi.SetLogLevel:output_type -> google.protobuf.Empty - 257, // [257:312] is the sub-list for method output_type - 202, // [202:257] is the sub-list for method input_type - 202, // [202:202] is the sub-list for extension type_name - 202, // [202:202] is the sub-list for extension extendee - 0, // [0:202] is the sub-list for field type_name + 152, // 147: apipb.DefinedSet.prefixes:type_name -> apipb.Prefix + 20, // 148: apipb.MatchSet.type:type_name -> apipb.MatchSet.Type + 21, // 149: apipb.AsPathLength.type:type_name -> apipb.AsPathLength.Type + 22, // 150: apipb.CommunityCount.type:type_name -> apipb.CommunityCount.Type + 154, // 151: apipb.Conditions.prefix_set:type_name -> apipb.MatchSet + 154, // 152: apipb.Conditions.neighbor_set:type_name -> apipb.MatchSet + 155, // 153: apipb.Conditions.as_path_length:type_name -> apipb.AsPathLength + 154, // 154: apipb.Conditions.as_path_set:type_name -> apipb.MatchSet + 154, // 155: apipb.Conditions.community_set:type_name -> apipb.MatchSet + 154, // 156: apipb.Conditions.ext_community_set:type_name -> apipb.MatchSet + 23, // 157: apipb.Conditions.route_type:type_name -> apipb.Conditions.RouteType + 154, // 158: apipb.Conditions.large_community_set:type_name -> apipb.MatchSet + 100, // 159: apipb.Conditions.afi_safi_in:type_name -> apipb.Family + 156, // 160: apipb.Conditions.community_count:type_name -> apipb.CommunityCount + 4, // 161: apipb.Conditions.origin:type_name -> apipb.RouteOriginType + 24, // 162: apipb.CommunityAction.type:type_name -> apipb.CommunityAction.Type + 25, // 163: apipb.MedAction.type:type_name -> apipb.MedAction.Type + 4, // 164: apipb.OriginAction.origin:type_name -> apipb.RouteOriginType + 5, // 165: apipb.Actions.route_action:type_name -> apipb.RouteAction + 158, // 166: apipb.Actions.community:type_name -> apipb.CommunityAction + 159, // 167: apipb.Actions.med:type_name -> apipb.MedAction + 160, // 168: apipb.Actions.as_prepend:type_name -> apipb.AsPrependAction + 158, // 169: apipb.Actions.ext_community:type_name -> apipb.CommunityAction + 161, // 170: apipb.Actions.nexthop:type_name -> apipb.NexthopAction + 162, // 171: apipb.Actions.local_pref:type_name -> apipb.LocalPrefAction + 158, // 172: apipb.Actions.large_community:type_name -> apipb.CommunityAction + 163, // 173: apipb.Actions.origin_action:type_name -> apipb.OriginAction + 157, // 174: apipb.Statement.conditions:type_name -> apipb.Conditions + 164, // 175: apipb.Statement.actions:type_name -> apipb.Actions + 165, // 176: apipb.Policy.statements:type_name -> apipb.Statement + 6, // 177: apipb.PolicyAssignment.direction:type_name -> apipb.PolicyDirection + 166, // 178: apipb.PolicyAssignment.policies:type_name -> apipb.Policy + 5, // 179: apipb.PolicyAssignment.default_action:type_name -> apipb.RouteAction + 153, // 180: apipb.RoutingPolicy.defined_sets:type_name -> apipb.DefinedSet + 166, // 181: apipb.RoutingPolicy.policies:type_name -> apipb.Policy + 174, // 182: apipb.Roa.conf:type_name -> apipb.RPKIConf + 186, // 183: apipb.Vrf.rd:type_name -> google.protobuf.Any + 186, // 184: apipb.Vrf.import_rt:type_name -> google.protobuf.Any + 186, // 185: apipb.Vrf.export_rt:type_name -> google.protobuf.Any + 130, // 186: apipb.Global.route_selection_options:type_name -> apipb.RouteSelectionOptionsConfig + 171, // 187: apipb.Global.default_route_distance:type_name -> apipb.DefaultRouteDistance + 173, // 188: apipb.Global.confederation:type_name -> apipb.Confederation + 124, // 189: apipb.Global.graceful_restart:type_name -> apipb.GracefulRestart + 107, // 190: apipb.Global.apply_policy:type_name -> apipb.ApplyPolicy + 187, // 191: apipb.RPKIState.uptime:type_name -> google.protobuf.Timestamp + 187, // 192: apipb.RPKIState.downtime:type_name -> google.protobuf.Timestamp + 174, // 193: apipb.Rpki.conf:type_name -> apipb.RPKIConf + 175, // 194: apipb.Rpki.state:type_name -> apipb.RPKIState + 26, // 195: apipb.SetLogLevelRequest.level:type_name -> apipb.SetLogLevelRequest.Level + 180, // 196: apipb.WatchEventRequest.Table.filters:type_name -> apipb.WatchEventRequest.Table.Filter + 7, // 197: apipb.WatchEventRequest.Table.Filter.type:type_name -> apipb.WatchEventRequest.Table.Filter.Type + 8, // 198: apipb.WatchEventResponse.PeerEvent.type:type_name -> apipb.WatchEventResponse.PeerEvent.Type + 104, // 199: apipb.WatchEventResponse.PeerEvent.peer:type_name -> apipb.Peer + 102, // 200: apipb.WatchEventResponse.TableEvent.paths:type_name -> apipb.Path + 184, // 201: apipb.ListBmpResponse.BmpStation.conf:type_name -> apipb.ListBmpResponse.BmpStation.Conf + 185, // 202: apipb.ListBmpResponse.BmpStation.state:type_name -> apipb.ListBmpResponse.BmpStation.State + 187, // 203: apipb.ListBmpResponse.BmpStation.State.uptime:type_name -> google.protobuf.Timestamp + 187, // 204: apipb.ListBmpResponse.BmpStation.State.downtime:type_name -> google.protobuf.Timestamp + 27, // 205: apipb.GobgpApi.StartBgp:input_type -> apipb.StartBgpRequest + 28, // 206: apipb.GobgpApi.StopBgp:input_type -> apipb.StopBgpRequest + 29, // 207: apipb.GobgpApi.GetBgp:input_type -> apipb.GetBgpRequest + 31, // 208: apipb.GobgpApi.WatchEvent:input_type -> apipb.WatchEventRequest + 33, // 209: apipb.GobgpApi.AddPeer:input_type -> apipb.AddPeerRequest + 34, // 210: apipb.GobgpApi.DeletePeer:input_type -> apipb.DeletePeerRequest + 35, // 211: apipb.GobgpApi.ListPeer:input_type -> apipb.ListPeerRequest + 37, // 212: apipb.GobgpApi.UpdatePeer:input_type -> apipb.UpdatePeerRequest + 39, // 213: apipb.GobgpApi.ResetPeer:input_type -> apipb.ResetPeerRequest + 40, // 214: apipb.GobgpApi.ShutdownPeer:input_type -> apipb.ShutdownPeerRequest + 41, // 215: apipb.GobgpApi.EnablePeer:input_type -> apipb.EnablePeerRequest + 42, // 216: apipb.GobgpApi.DisablePeer:input_type -> apipb.DisablePeerRequest + 43, // 217: apipb.GobgpApi.AddPeerGroup:input_type -> apipb.AddPeerGroupRequest + 44, // 218: apipb.GobgpApi.DeletePeerGroup:input_type -> apipb.DeletePeerGroupRequest + 47, // 219: apipb.GobgpApi.ListPeerGroup:input_type -> apipb.ListPeerGroupRequest + 45, // 220: apipb.GobgpApi.UpdatePeerGroup:input_type -> apipb.UpdatePeerGroupRequest + 49, // 221: apipb.GobgpApi.AddDynamicNeighbor:input_type -> apipb.AddDynamicNeighborRequest + 51, // 222: apipb.GobgpApi.ListDynamicNeighbor:input_type -> apipb.ListDynamicNeighborRequest + 50, // 223: apipb.GobgpApi.DeleteDynamicNeighbor:input_type -> apipb.DeleteDynamicNeighborRequest + 53, // 224: apipb.GobgpApi.AddPath:input_type -> apipb.AddPathRequest + 55, // 225: apipb.GobgpApi.DeletePath:input_type -> apipb.DeletePathRequest + 57, // 226: apipb.GobgpApi.ListPath:input_type -> apipb.ListPathRequest + 59, // 227: apipb.GobgpApi.AddPathStream:input_type -> apipb.AddPathStreamRequest + 60, // 228: apipb.GobgpApi.GetTable:input_type -> apipb.GetTableRequest + 62, // 229: apipb.GobgpApi.AddVrf:input_type -> apipb.AddVrfRequest + 63, // 230: apipb.GobgpApi.DeleteVrf:input_type -> apipb.DeleteVrfRequest + 64, // 231: apipb.GobgpApi.ListVrf:input_type -> apipb.ListVrfRequest + 66, // 232: apipb.GobgpApi.AddPolicy:input_type -> apipb.AddPolicyRequest + 67, // 233: apipb.GobgpApi.DeletePolicy:input_type -> apipb.DeletePolicyRequest + 68, // 234: apipb.GobgpApi.ListPolicy:input_type -> apipb.ListPolicyRequest + 70, // 235: apipb.GobgpApi.SetPolicies:input_type -> apipb.SetPoliciesRequest + 71, // 236: apipb.GobgpApi.AddDefinedSet:input_type -> apipb.AddDefinedSetRequest + 72, // 237: apipb.GobgpApi.DeleteDefinedSet:input_type -> apipb.DeleteDefinedSetRequest + 73, // 238: apipb.GobgpApi.ListDefinedSet:input_type -> apipb.ListDefinedSetRequest + 75, // 239: apipb.GobgpApi.AddStatement:input_type -> apipb.AddStatementRequest + 76, // 240: apipb.GobgpApi.DeleteStatement:input_type -> apipb.DeleteStatementRequest + 77, // 241: apipb.GobgpApi.ListStatement:input_type -> apipb.ListStatementRequest + 79, // 242: apipb.GobgpApi.AddPolicyAssignment:input_type -> apipb.AddPolicyAssignmentRequest + 80, // 243: apipb.GobgpApi.DeletePolicyAssignment:input_type -> apipb.DeletePolicyAssignmentRequest + 81, // 244: apipb.GobgpApi.ListPolicyAssignment:input_type -> apipb.ListPolicyAssignmentRequest + 83, // 245: apipb.GobgpApi.SetPolicyAssignment:input_type -> apipb.SetPolicyAssignmentRequest + 84, // 246: apipb.GobgpApi.AddRpki:input_type -> apipb.AddRpkiRequest + 85, // 247: apipb.GobgpApi.DeleteRpki:input_type -> apipb.DeleteRpkiRequest + 86, // 248: apipb.GobgpApi.ListRpki:input_type -> apipb.ListRpkiRequest + 88, // 249: apipb.GobgpApi.EnableRpki:input_type -> apipb.EnableRpkiRequest + 89, // 250: apipb.GobgpApi.DisableRpki:input_type -> apipb.DisableRpkiRequest + 90, // 251: apipb.GobgpApi.ResetRpki:input_type -> apipb.ResetRpkiRequest + 91, // 252: apipb.GobgpApi.ListRpkiTable:input_type -> apipb.ListRpkiTableRequest + 93, // 253: apipb.GobgpApi.EnableZebra:input_type -> apipb.EnableZebraRequest + 94, // 254: apipb.GobgpApi.EnableMrt:input_type -> apipb.EnableMrtRequest + 95, // 255: apipb.GobgpApi.DisableMrt:input_type -> apipb.DisableMrtRequest + 96, // 256: apipb.GobgpApi.AddBmp:input_type -> apipb.AddBmpRequest + 97, // 257: apipb.GobgpApi.DeleteBmp:input_type -> apipb.DeleteBmpRequest + 98, // 258: apipb.GobgpApi.ListBmp:input_type -> apipb.ListBmpRequest + 177, // 259: apipb.GobgpApi.SetLogLevel:input_type -> apipb.SetLogLevelRequest + 188, // 260: apipb.GobgpApi.StartBgp:output_type -> google.protobuf.Empty + 188, // 261: apipb.GobgpApi.StopBgp:output_type -> google.protobuf.Empty + 30, // 262: apipb.GobgpApi.GetBgp:output_type -> apipb.GetBgpResponse + 32, // 263: apipb.GobgpApi.WatchEvent:output_type -> apipb.WatchEventResponse + 188, // 264: apipb.GobgpApi.AddPeer:output_type -> google.protobuf.Empty + 188, // 265: apipb.GobgpApi.DeletePeer:output_type -> google.protobuf.Empty + 36, // 266: apipb.GobgpApi.ListPeer:output_type -> apipb.ListPeerResponse + 38, // 267: apipb.GobgpApi.UpdatePeer:output_type -> apipb.UpdatePeerResponse + 188, // 268: apipb.GobgpApi.ResetPeer:output_type -> google.protobuf.Empty + 188, // 269: apipb.GobgpApi.ShutdownPeer:output_type -> google.protobuf.Empty + 188, // 270: apipb.GobgpApi.EnablePeer:output_type -> google.protobuf.Empty + 188, // 271: apipb.GobgpApi.DisablePeer:output_type -> google.protobuf.Empty + 188, // 272: apipb.GobgpApi.AddPeerGroup:output_type -> google.protobuf.Empty + 188, // 273: apipb.GobgpApi.DeletePeerGroup:output_type -> google.protobuf.Empty + 48, // 274: apipb.GobgpApi.ListPeerGroup:output_type -> apipb.ListPeerGroupResponse + 46, // 275: apipb.GobgpApi.UpdatePeerGroup:output_type -> apipb.UpdatePeerGroupResponse + 188, // 276: apipb.GobgpApi.AddDynamicNeighbor:output_type -> google.protobuf.Empty + 52, // 277: apipb.GobgpApi.ListDynamicNeighbor:output_type -> apipb.ListDynamicNeighborResponse + 188, // 278: apipb.GobgpApi.DeleteDynamicNeighbor:output_type -> google.protobuf.Empty + 54, // 279: apipb.GobgpApi.AddPath:output_type -> apipb.AddPathResponse + 188, // 280: apipb.GobgpApi.DeletePath:output_type -> google.protobuf.Empty + 58, // 281: apipb.GobgpApi.ListPath:output_type -> apipb.ListPathResponse + 188, // 282: apipb.GobgpApi.AddPathStream:output_type -> google.protobuf.Empty + 61, // 283: apipb.GobgpApi.GetTable:output_type -> apipb.GetTableResponse + 188, // 284: apipb.GobgpApi.AddVrf:output_type -> google.protobuf.Empty + 188, // 285: apipb.GobgpApi.DeleteVrf:output_type -> google.protobuf.Empty + 65, // 286: apipb.GobgpApi.ListVrf:output_type -> apipb.ListVrfResponse + 188, // 287: apipb.GobgpApi.AddPolicy:output_type -> google.protobuf.Empty + 188, // 288: apipb.GobgpApi.DeletePolicy:output_type -> google.protobuf.Empty + 69, // 289: apipb.GobgpApi.ListPolicy:output_type -> apipb.ListPolicyResponse + 188, // 290: apipb.GobgpApi.SetPolicies:output_type -> google.protobuf.Empty + 188, // 291: apipb.GobgpApi.AddDefinedSet:output_type -> google.protobuf.Empty + 188, // 292: apipb.GobgpApi.DeleteDefinedSet:output_type -> google.protobuf.Empty + 74, // 293: apipb.GobgpApi.ListDefinedSet:output_type -> apipb.ListDefinedSetResponse + 188, // 294: apipb.GobgpApi.AddStatement:output_type -> google.protobuf.Empty + 188, // 295: apipb.GobgpApi.DeleteStatement:output_type -> google.protobuf.Empty + 78, // 296: apipb.GobgpApi.ListStatement:output_type -> apipb.ListStatementResponse + 188, // 297: apipb.GobgpApi.AddPolicyAssignment:output_type -> google.protobuf.Empty + 188, // 298: apipb.GobgpApi.DeletePolicyAssignment:output_type -> google.protobuf.Empty + 82, // 299: apipb.GobgpApi.ListPolicyAssignment:output_type -> apipb.ListPolicyAssignmentResponse + 188, // 300: apipb.GobgpApi.SetPolicyAssignment:output_type -> google.protobuf.Empty + 188, // 301: apipb.GobgpApi.AddRpki:output_type -> google.protobuf.Empty + 188, // 302: apipb.GobgpApi.DeleteRpki:output_type -> google.protobuf.Empty + 87, // 303: apipb.GobgpApi.ListRpki:output_type -> apipb.ListRpkiResponse + 188, // 304: apipb.GobgpApi.EnableRpki:output_type -> google.protobuf.Empty + 188, // 305: apipb.GobgpApi.DisableRpki:output_type -> google.protobuf.Empty + 188, // 306: apipb.GobgpApi.ResetRpki:output_type -> google.protobuf.Empty + 92, // 307: apipb.GobgpApi.ListRpkiTable:output_type -> apipb.ListRpkiTableResponse + 188, // 308: apipb.GobgpApi.EnableZebra:output_type -> google.protobuf.Empty + 188, // 309: apipb.GobgpApi.EnableMrt:output_type -> google.protobuf.Empty + 188, // 310: apipb.GobgpApi.DisableMrt:output_type -> google.protobuf.Empty + 188, // 311: apipb.GobgpApi.AddBmp:output_type -> google.protobuf.Empty + 188, // 312: apipb.GobgpApi.DeleteBmp:output_type -> google.protobuf.Empty + 99, // 313: apipb.GobgpApi.ListBmp:output_type -> apipb.ListBmpResponse + 188, // 314: apipb.GobgpApi.SetLogLevel:output_type -> google.protobuf.Empty + 260, // [260:315] is the sub-list for method output_type + 205, // [205:260] is the sub-list for method input_type + 205, // [205:205] is the sub-list for extension type_name + 205, // [205:205] is the sub-list for extension extendee + 0, // [0:205] is the sub-list for field type_name } func init() { file_gobgp_proto_init() } @@ -15683,7 +15819,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Actions); i { + switch v := v.(*OriginAction); i { case 0: return &v.state case 1: @@ -15695,7 +15831,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Statement); i { + switch v := v.(*Actions); i { case 0: return &v.state case 1: @@ -15707,7 +15843,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Policy); i { + switch v := v.(*Statement); i { case 0: return &v.state case 1: @@ -15719,7 +15855,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PolicyAssignment); i { + switch v := v.(*Policy); i { case 0: return &v.state case 1: @@ -15731,7 +15867,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RoutingPolicy); i { + switch v := v.(*PolicyAssignment); i { case 0: return &v.state case 1: @@ -15743,7 +15879,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Roa); i { + switch v := v.(*RoutingPolicy); i { case 0: return &v.state case 1: @@ -15755,7 +15891,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Vrf); i { + switch v := v.(*Roa); i { case 0: return &v.state case 1: @@ -15767,7 +15903,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultRouteDistance); i { + switch v := v.(*Vrf); i { case 0: return &v.state case 1: @@ -15779,7 +15915,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Global); i { + switch v := v.(*DefaultRouteDistance); i { case 0: return &v.state case 1: @@ -15791,7 +15927,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Confederation); i { + switch v := v.(*Global); i { case 0: return &v.state case 1: @@ -15803,7 +15939,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RPKIConf); i { + switch v := v.(*Confederation); i { case 0: return &v.state case 1: @@ -15815,7 +15951,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RPKIState); i { + switch v := v.(*RPKIConf); i { case 0: return &v.state case 1: @@ -15827,7 +15963,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Rpki); i { + switch v := v.(*RPKIState); i { case 0: return &v.state case 1: @@ -15839,7 +15975,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetLogLevelRequest); i { + switch v := v.(*Rpki); i { case 0: return &v.state case 1: @@ -15851,7 +15987,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WatchEventRequest_Peer); i { + switch v := v.(*SetLogLevelRequest); i { case 0: return &v.state case 1: @@ -15863,7 +15999,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WatchEventRequest_Table); i { + switch v := v.(*WatchEventRequest_Peer); i { case 0: return &v.state case 1: @@ -15875,7 +16011,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WatchEventRequest_Table_Filter); i { + switch v := v.(*WatchEventRequest_Table); i { case 0: return &v.state case 1: @@ -15887,7 +16023,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WatchEventResponse_PeerEvent); i { + switch v := v.(*WatchEventRequest_Table_Filter); i { case 0: return &v.state case 1: @@ -15899,7 +16035,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WatchEventResponse_TableEvent); i { + switch v := v.(*WatchEventResponse_PeerEvent); i { case 0: return &v.state case 1: @@ -15911,7 +16047,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListBmpResponse_BmpStation); i { + switch v := v.(*WatchEventResponse_TableEvent); i { case 0: return &v.state case 1: @@ -15923,7 +16059,7 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListBmpResponse_BmpStation_Conf); i { + switch v := v.(*ListBmpResponse_BmpStation); i { case 0: return &v.state case 1: @@ -15935,6 +16071,18 @@ func file_gobgp_proto_init() { } } file_gobgp_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListBmpResponse_BmpStation_Conf); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gobgp_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListBmpResponse_BmpStation_State); i { case 0: return &v.state @@ -15956,8 +16104,8 @@ func file_gobgp_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gobgp_proto_rawDesc, - NumEnums: 26, - NumMessages: 158, + NumEnums: 27, + NumMessages: 159, NumExtensions: 0, NumServices: 1, }, diff --git a/api/gobgp.proto b/api/gobgp.proto index 6ab599067..bf8e6f70c 100644 --- a/api/gobgp.proto +++ b/api/gobgp.proto @@ -964,6 +964,13 @@ message CommunityCount { uint32 count = 2; } +enum RouteOriginType { + ORIGIN_NONE = 0; + ORIGIN_IGP = 1; + ORIGIN_EGP = 2; + ORIGIN_INCOMPLETE = 3; +} + message Conditions { MatchSet prefix_set = 1; MatchSet neighbor_set = 2; @@ -980,6 +987,7 @@ message Conditions { repeated string next_hop_in_list = 10; repeated Family afi_safi_in = 11; CommunityCount community_count = 12; + RouteOriginType origin = 13; } enum RouteAction { NONE = 0; ACCEPT = 1; REJECT = 2; } @@ -1012,6 +1020,10 @@ message NexthopAction { message LocalPrefAction { uint32 value = 1; } +message OriginAction { + RouteOriginType origin = 1; +} + message Actions { RouteAction route_action = 1; CommunityAction community = 2; @@ -1021,6 +1033,7 @@ message Actions { NexthopAction nexthop = 6; LocalPrefAction local_pref = 7; CommunityAction large_community = 8; + OriginAction origin_action = 9; } message Statement { diff --git a/cmd/gobgp/policy.go b/cmd/gobgp/policy.go index 8f2564329..44a699ad8 100644 --- a/cmd/gobgp/policy.go +++ b/cmd/gobgp/policy.go @@ -104,6 +104,8 @@ func prettyString(v interface{}) string { return a.Address case *api.AsPrependAction: return fmt.Sprintf("prepend %d %d times", a.Asn, a.Repeat) + case *api.OriginAction: + return fmt.Sprintf("%v", a.GetOrigin()) } return "unknown" } diff --git a/internal/pkg/table/policy.go b/internal/pkg/table/policy.go index 768e206a2..5d3b0b9bf 100644 --- a/internal/pkg/table/policy.go +++ b/internal/pkg/table/policy.go @@ -155,6 +155,7 @@ const ( CONDITION_NEXT_HOP CONDITION_AFI_SAFI_IN CONDITION_COMMUNITY_COUNT + CONDITION_ORIGIN ) type ActionType int @@ -168,6 +169,7 @@ const ( ACTION_NEXTHOP ACTION_LOCAL_PREF ACTION_LARGE_COMMUNITY + ACTION_ORIGIN ) func NewMatchOption(c interface{}) (MatchOption, error) { @@ -2008,6 +2010,38 @@ func NewRouteTypeCondition(c oc.RouteType) (*RouteTypeCondition, error) { }, nil } +type OriginCondition struct { + origin oc.BgpOriginAttrType +} + +func (c *OriginCondition) Type() ConditionType { + return CONDITION_ORIGIN +} + +func (c *OriginCondition) Set() DefinedSet { + return nil +} + +// compare if origin matches the one in the condition. +func (c *OriginCondition) Evaluate(path *Path, _ *PolicyOptions) bool { + originInt, err := path.GetOrigin() + if err != nil { + return false + } + return int(originInt) == c.origin.ToInt() +} + +func (c *OriginCondition) Name() string { return "" } + +func NewOriginCondition(origin oc.BgpOriginAttrType) (*OriginCondition, error) { + if origin.ToInt() == -1 { + return nil, nil + } + return &OriginCondition{ + origin: origin, + }, nil +} + type AfiSafiInCondition struct { routeFamilies []bgp.RouteFamily } @@ -2544,6 +2578,44 @@ func NewLocalPrefAction(value uint32) (*LocalPrefAction, error) { }, nil } +type OriginAction struct { + value oc.BgpOriginAttrType +} + +func (a *OriginAction) Type() ActionType { + return ACTION_ORIGIN +} + +func (a *OriginAction) Apply(path *Path, _ *PolicyOptions) (*Path, error) { + originInt := a.value.ToInt() + if originInt == -1 { + return nil, fmt.Errorf("internal error: got invalid value for origin action") + } + path.setPathAttr(bgp.NewPathAttributeOrigin(uint8(originInt))) + return path, nil +} + +func (a *OriginAction) ToConfig() oc.BgpOriginAttrType { + return a.value +} + +func (a *OriginAction) String() string { + return fmt.Sprintf("%q", a.value) +} + +func (a *OriginAction) MarshalJSON() ([]byte, error) { + return json.Marshal(a.ToConfig()) +} + +func NewOriginAction(value oc.BgpOriginAttrType) (*OriginAction, error) { + if value.ToInt() == -1 { + return nil, nil + } + return &OriginAction{ + value: value, + }, nil +} + type AsPathPrependAction struct { asn uint32 useLeftMost bool @@ -2763,6 +2835,8 @@ func (s *Statement) ToConfig() *oc.Statement { cond.BgpConditions.RpkiValidationResult = v.result case *RouteTypeCondition: cond.BgpConditions.RouteType = v.typ + case *OriginCondition: + cond.BgpConditions.OriginEq = v.origin case *AfiSafiInCondition: res := make([]oc.AfiSafiType, 0, len(v.routeFamilies)) for _, rf := range v.routeFamilies { @@ -2801,6 +2875,8 @@ func (s *Statement) ToConfig() *oc.Statement { act.BgpActions.SetLocalPref = v.ToConfig() case *NexthopAction: act.BgpActions.SetNextHop = v.ToConfig() + case *OriginAction: + act.BgpActions.SetRouteOrigin = v.ToConfig() } } return act @@ -2958,6 +3034,9 @@ func NewStatement(c oc.Statement) (*Statement, error) { func() (Condition, error) { return NewRouteTypeCondition(c.Conditions.BgpConditions.RouteType) }, + func() (Condition, error) { + return NewOriginCondition(c.Conditions.BgpConditions.OriginEq) + }, func() (Condition, error) { return NewAsPathCondition(c.Conditions.BgpConditions.MatchAsPathSet) }, @@ -3013,6 +3092,9 @@ func NewStatement(c oc.Statement) (*Statement, error) { func() (Action, error) { return NewNexthopAction(c.Actions.BgpActions.SetNextHop) }, + func() (Action, error) { + return NewOriginAction(c.Actions.BgpActions.SetRouteOrigin) + }, } as = make([]Action, 0, len(afs)) for _, f := range afs { @@ -4008,6 +4090,16 @@ func toStatementApi(s *oc.Statement) *api.Statement { Type: api.CommunityCount_Type(s.Conditions.BgpConditions.CommunityCount.Operator.ToInt()), } } + if s.Conditions.BgpConditions.OriginEq.ToInt() != -1 { + switch s.Actions.BgpActions.SetRouteOrigin { + case oc.BGP_ORIGIN_ATTR_TYPE_IGP: + cs.Origin = api.RouteOriginType_ORIGIN_IGP + case oc.BGP_ORIGIN_ATTR_TYPE_EGP: + cs.Origin = api.RouteOriginType_ORIGIN_EGP + case oc.BGP_ORIGIN_ATTR_TYPE_INCOMPLETE: + cs.Origin = api.RouteOriginType_ORIGIN_INCOMPLETE + } + } if s.Conditions.BgpConditions.AsPathLength.Operator != "" { cs.AsPathLength = &api.AsPathLength{ Length: s.Conditions.BgpConditions.AsPathLength.Value, @@ -4156,6 +4248,23 @@ func toStatementApi(s *oc.Statement) *api.Statement { } return &api.LocalPrefAction{Value: s.Actions.BgpActions.SetLocalPref} }(), + OriginAction: func() *api.OriginAction { + if s.Actions.BgpActions.SetRouteOrigin.ToInt() == -1 { + return nil + } + var apiOrigin api.RouteOriginType + switch s.Actions.BgpActions.SetRouteOrigin { + case oc.BGP_ORIGIN_ATTR_TYPE_IGP: + apiOrigin = api.RouteOriginType_ORIGIN_IGP + case oc.BGP_ORIGIN_ATTR_TYPE_EGP: + apiOrigin = api.RouteOriginType_ORIGIN_EGP + case oc.BGP_ORIGIN_ATTR_TYPE_INCOMPLETE: + apiOrigin = api.RouteOriginType_ORIGIN_INCOMPLETE + default: + return nil + } + return &api.OriginAction{Origin: apiOrigin} + }(), } return &api.Statement{ Name: s.Name, diff --git a/internal/pkg/table/policy_test.go b/internal/pkg/table/policy_test.go index ca1baeacd..fbe408666 100644 --- a/internal/pkg/table/policy_test.go +++ b/internal/pkg/table/policy_test.go @@ -518,6 +518,78 @@ func TestAsPathLengthConditionEvaluate(t *testing.T) { assert.Equal(t, false, c.Evaluate(path, nil)) } +func TestOriginConditionEvaluate(t *testing.T) { + // setup + // create path + peer := &PeerInfo{AS: 65001, Address: net.ParseIP("10.0.0.1")} + origin := bgp.NewPathAttributeOrigin(uint8(oc.BGP_ORIGIN_ATTR_TYPE_IGP.ToInt())) + aspathParam := []bgp.AsPathParamInterface{ + bgp.NewAsPathParam(2, []uint16{65001, 65000, 65004, 65005}), + bgp.NewAsPathParam(1, []uint16{65001, 65000, 65004, 65005}), + } + aspath := bgp.NewPathAttributeAsPath(aspathParam) + nexthop := bgp.NewPathAttributeNextHop("10.0.0.1") + med := bgp.NewPathAttributeMultiExitDisc(0) + pathAttributes := []bgp.PathAttributeInterface{origin, aspath, nexthop, med} + nlri := []*bgp.IPAddrPrefix{bgp.NewIPAddrPrefix(24, "10.10.0.101")} + updateMsg := bgp.NewBGPUpdateMessage(nil, pathAttributes, nlri) + UpdatePathAttrs4ByteAs(logger, updateMsg.Body.(*bgp.BGPUpdate)) + path := ProcessMessage(updateMsg, peer, time.Now())[0] + + // create match condition + c, err := NewOriginCondition(oc.BGP_ORIGIN_ATTR_TYPE_IGP) + if err != nil { + t.Fatal(err) + } + + // test + assert.Equal(t, true, c.Evaluate(path, nil)) + + // create match condition + c, err = NewOriginCondition(oc.BGP_ORIGIN_ATTR_TYPE_EGP) + if err != nil { + t.Fatal(err) + } + + // test + assert.Equal(t, false, c.Evaluate(path, nil)) + + // Change the route origin. + action, err := NewOriginAction(oc.BGP_ORIGIN_ATTR_TYPE_INCOMPLETE) + assert.Nil(t, err) + + path, _ = action.Apply(path, nil) + assert.NotNil(t, path) + + // create match condition + c, err = NewOriginCondition(oc.BGP_ORIGIN_ATTR_TYPE_IGP) + if err != nil { + t.Fatal(err) + } + + // test + assert.Equal(t, false, c.Evaluate(path, nil)) + + // create match condition + c, err = NewOriginCondition(oc.BGP_ORIGIN_ATTR_TYPE_EGP) + if err != nil { + t.Fatal(err) + } + + // test + assert.Equal(t, false, c.Evaluate(path, nil)) + + // create match condition + c, err = NewOriginCondition(oc.BGP_ORIGIN_ATTR_TYPE_INCOMPLETE) + if err != nil { + t.Fatal(err) + } + + // test + assert.Equal(t, true, c.Evaluate(path, nil)) + +} + func TestPolicyMatchAndAcceptNextHop(t *testing.T) { // create path peer := &PeerInfo{AS: 65001, Address: net.ParseIP("10.0.0.1")} @@ -3040,6 +3112,58 @@ func TestLocalPrefAction(t *testing.T) { assert.Equal(t, int(lp.Value), int(10)) } +func TestOriginAction(t *testing.T) { + action, err := NewOriginAction(oc.BGP_ORIGIN_ATTR_TYPE_EGP) + assert.Nil(t, err) + + nlri := bgp.NewIPAddrPrefix(24, "10.0.0.0") + + origin := bgp.NewPathAttributeOrigin(0) + aspathParam := []bgp.AsPathParamInterface{ + bgp.NewAs4PathParam(2, []uint32{ + createAs4Value("65002.1"), + createAs4Value("65001.1"), + createAs4Value("65000.1"), + }), + } + aspath := bgp.NewPathAttributeAsPath(aspathParam) + nexthop := bgp.NewPathAttributeNextHop("10.0.0.1") + med := bgp.NewPathAttributeMultiExitDisc(0) + + attrs := []bgp.PathAttributeInterface{origin, aspath, nexthop, med} + + path := NewPath(nil, nlri, false, attrs, time.Now(), false) + p, _ := action.Apply(path, nil) + assert.NotNil(t, p) + + attr := path.getPathAttr(bgp.BGP_ATTR_TYPE_ORIGIN) + assert.NotNil(t, attr) + lp := attr.(*bgp.PathAttributeOrigin) + assert.Equal(t, int(lp.Value), oc.BGP_ORIGIN_ATTR_TYPE_EGP.ToInt()) + + action, err = NewOriginAction(oc.BGP_ORIGIN_ATTR_TYPE_INCOMPLETE) + assert.Nil(t, err) + + p, _ = action.Apply(p, nil) + assert.NotNil(t, p) + + attr = path.getPathAttr(bgp.BGP_ATTR_TYPE_ORIGIN) + assert.NotNil(t, attr) + lp = attr.(*bgp.PathAttributeOrigin) + assert.Equal(t, int(lp.Value), oc.BGP_ORIGIN_ATTR_TYPE_INCOMPLETE.ToInt()) + + action, err = NewOriginAction(oc.BGP_ORIGIN_ATTR_TYPE_IGP) + assert.Nil(t, err) + + p, _ = action.Apply(p, nil) + assert.NotNil(t, p) + + attr = path.getPathAttr(bgp.BGP_ATTR_TYPE_ORIGIN) + assert.NotNil(t, attr) + lp = attr.(*bgp.PathAttributeOrigin) + assert.Equal(t, int(lp.Value), oc.BGP_ORIGIN_ATTR_TYPE_IGP.ToInt()) +} + func createStatement(name, psname, nsname string, accept bool) oc.Statement { c := oc.Conditions{ MatchPrefixSet: oc.MatchPrefixSet{ diff --git a/pkg/server/grpc_server.go b/pkg/server/grpc_server.go index 55f074759..bdcfebbd8 100644 --- a/pkg/server/grpc_server.go +++ b/pkg/server/grpc_server.go @@ -1277,6 +1277,23 @@ func toStatementApi(s *oc.Statement) *api.Statement { } return &api.LocalPrefAction{Value: s.Actions.BgpActions.SetLocalPref} }(), + OriginAction: func() *api.OriginAction { + if s.Actions.BgpActions.SetRouteOrigin.ToInt() == -1 { + return nil + } + var apiOrigin api.RouteOriginType + switch s.Actions.BgpActions.SetRouteOrigin { + case oc.BGP_ORIGIN_ATTR_TYPE_IGP: + apiOrigin = api.RouteOriginType_ORIGIN_IGP + case oc.BGP_ORIGIN_ATTR_TYPE_EGP: + apiOrigin = api.RouteOriginType_ORIGIN_EGP + case oc.BGP_ORIGIN_ATTR_TYPE_INCOMPLETE: + apiOrigin = api.RouteOriginType_ORIGIN_INCOMPLETE + default: + return nil + } + return &api.OriginAction{Origin: apiOrigin} + }(), } return &api.Statement{ Name: s.Name, @@ -1396,6 +1413,24 @@ func newRouteTypeConditionFromApiStruct(a api.Conditions_RouteType) (*table.Rout return table.NewRouteTypeCondition(typ) } +func newOriginConditionFromApiStruct(apiOrigin api.RouteOriginType) (*table.OriginCondition, error) { + var origin oc.BgpOriginAttrType + switch apiOrigin { + case api.RouteOriginType_ORIGIN_NONE: + return nil, nil + case api.RouteOriginType_ORIGIN_IGP: + origin = oc.BGP_ORIGIN_ATTR_TYPE_IGP + case api.RouteOriginType_ORIGIN_EGP: + origin = oc.BGP_ORIGIN_ATTR_TYPE_EGP + case api.RouteOriginType_ORIGIN_INCOMPLETE: + origin = oc.BGP_ORIGIN_ATTR_TYPE_INCOMPLETE + default: + return nil, fmt.Errorf("unrecognized route origin type: %v", apiOrigin) + } + + return table.NewOriginCondition(origin) +} + func newCommunityConditionFromApiStruct(a *api.MatchSet) (*table.CommunityCondition, error) { if a == nil { return nil, nil @@ -1528,6 +1563,28 @@ func newLocalPrefActionFromApiStruct(a *api.LocalPrefAction) (*table.LocalPrefAc return table.NewLocalPrefAction(a.Value) } +func newOriginActionFromApiStruct(a *api.OriginAction) (*table.OriginAction, error) { + if a == nil { + return nil, nil + } + + var origin oc.BgpOriginAttrType + switch v := a.GetOrigin(); v { + case api.RouteOriginType_ORIGIN_NONE: + return nil, nil + case api.RouteOriginType_ORIGIN_IGP: + origin = oc.BGP_ORIGIN_ATTR_TYPE_IGP + case api.RouteOriginType_ORIGIN_EGP: + origin = oc.BGP_ORIGIN_ATTR_TYPE_EGP + case api.RouteOriginType_ORIGIN_INCOMPLETE: + origin = oc.BGP_ORIGIN_ATTR_TYPE_INCOMPLETE + default: + return nil, fmt.Errorf("unrecognized route origin type: %v", v) + } + + return table.NewOriginAction(origin) +} + func newAsPathPrependActionFromApiStruct(a *api.AsPrependAction) (*table.AsPathPrependAction, error) { if a == nil { return nil, nil @@ -1588,6 +1645,9 @@ func newStatementFromApiStruct(a *api.Statement) (*table.Statement, error) { func() (table.Condition, error) { return newRouteTypeConditionFromApiStruct(a.Conditions.RouteType) }, + func() (table.Condition, error) { + return newOriginConditionFromApiStruct(a.Conditions.Origin) + }, func() (table.Condition, error) { return newAsPathConditionFromApiStruct(a.Conditions.AsPathSet) }, @@ -1645,6 +1705,9 @@ func newStatementFromApiStruct(a *api.Statement) (*table.Statement, error) { func() (table.Action, error) { return newNexthopActionFromApiStruct(a.Actions.Nexthop) }, + func() (table.Action, error) { + return newOriginActionFromApiStruct(a.Actions.OriginAction) + }, } as = make([]table.Action, 0, len(afs)) for _, f := range afs {