diff --git a/api/go/gosdn/networkelement/networkelement.pb.go b/api/go/gosdn/networkelement/networkelement.pb.go index bc2b0e0457fe4672ade31f03bf013fa11566839c..b84260807ef9c3f37b7f6f0683e149ff57c52b97 100644 --- a/api/go/gosdn/networkelement/networkelement.pb.go +++ b/api/go/gosdn/networkelement/networkelement.pb.go @@ -985,7 +985,6 @@ func (x *DeleteNetworkElementResponse) GetStatus() Status { return Status_STATUS_UNSPECIFIED } -//TODO(PND): add pnd id to this object, for reference type ManagedNetworkElement struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -997,8 +996,9 @@ type ManagedNetworkElement struct { MneNotification []*gnmi.Notification `protobuf:"bytes,4,rep,name=mne_notification,json=mneNotification,proto3" json:"mne_notification,omitempty"` Sbi *southbound.SouthboundInterface `protobuf:"bytes,5,opt,name=sbi,proto3" json:"sbi,omitempty"` TransportAddress string `protobuf:"bytes,6,opt,name=transport_address,json=transportAddress,proto3" json:"transport_address,omitempty"` - Metadata *conflict.Metadata `protobuf:"bytes,7,opt,name=metadata,proto3" json:"metadata,omitempty"` - AssociatedPndId string `protobuf:"bytes,8,opt,name=associated_pnd_id,json=associatedPndId,proto3" json:"associated_pnd_id,omitempty"` + TransportOption *transport.TransportOption `protobuf:"bytes,7,opt,name=transport_option,json=transportOption,proto3" json:"transport_option,omitempty"` + Metadata *conflict.Metadata `protobuf:"bytes,8,opt,name=metadata,proto3" json:"metadata,omitempty"` + AssociatedPnd string `protobuf:"bytes,9,opt,name=associated_pnd,json=associatedPnd,proto3" json:"associated_pnd,omitempty"` } func (x *ManagedNetworkElement) Reset() { @@ -1075,6 +1075,13 @@ func (x *ManagedNetworkElement) GetTransportAddress() string { return "" } +func (x *ManagedNetworkElement) GetTransportOption() *transport.TransportOption { + if x != nil { + return x.TransportOption + } + return nil +} + func (x *ManagedNetworkElement) GetMetadata() *conflict.Metadata { if x != nil { return x.Metadata @@ -1082,9 +1089,9 @@ func (x *ManagedNetworkElement) GetMetadata() *conflict.Metadata { return nil } -func (x *ManagedNetworkElement) GetAssociatedPndId() string { +func (x *ManagedNetworkElement) GetAssociatedPnd() string { if x != nil { - return x.AssociatedPndId + return x.AssociatedPnd } return "" } @@ -1272,7 +1279,61 @@ func (x *GetMneListResponse) GetMne() []*ManagedNetworkElement { return nil } -//TODO(PND): add request here +type GetFlattenedMneListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch. + Pid string `protobuf:"bytes,2,opt,name=pid,proto3" json:"pid,omitempty"` +} + +func (x *GetFlattenedMneListRequest) Reset() { + *x = GetFlattenedMneListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFlattenedMneListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFlattenedMneListRequest) ProtoMessage() {} + +func (x *GetFlattenedMneListRequest) ProtoReflect() protoreflect.Message { + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[15] + 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 GetFlattenedMneListRequest.ProtoReflect.Descriptor instead. +func (*GetFlattenedMneListRequest) Descriptor() ([]byte, []int) { + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{15} +} + +func (x *GetFlattenedMneListRequest) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *GetFlattenedMneListRequest) GetPid() string { + if x != nil { + return x.Pid + } + return "" +} + type GetFlattenedMneListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1288,7 +1349,7 @@ type GetFlattenedMneListResponse struct { func (x *GetFlattenedMneListResponse) Reset() { *x = GetFlattenedMneListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[15] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1301,7 +1362,7 @@ func (x *GetFlattenedMneListResponse) String() string { func (*GetFlattenedMneListResponse) ProtoMessage() {} func (x *GetFlattenedMneListResponse) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[15] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1314,7 +1375,7 @@ func (x *GetFlattenedMneListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFlattenedMneListResponse.ProtoReflect.Descriptor instead. func (*GetFlattenedMneListResponse) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{15} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{16} } func (x *GetFlattenedMneListResponse) GetTimestamp() int64 { @@ -1351,7 +1412,7 @@ type GetMneRequest struct { func (x *GetMneRequest) Reset() { *x = GetMneRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[16] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1364,7 +1425,7 @@ func (x *GetMneRequest) String() string { func (*GetMneRequest) ProtoMessage() {} func (x *GetMneRequest) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[16] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1377,7 +1438,7 @@ func (x *GetMneRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMneRequest.ProtoReflect.Descriptor instead. func (*GetMneRequest) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{16} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{17} } func (x *GetMneRequest) GetTimestamp() int64 { @@ -1416,7 +1477,7 @@ type GetMneResponse struct { func (x *GetMneResponse) Reset() { *x = GetMneResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[17] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1429,7 +1490,7 @@ func (x *GetMneResponse) String() string { func (*GetMneResponse) ProtoMessage() {} func (x *GetMneResponse) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[17] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1442,7 +1503,7 @@ func (x *GetMneResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMneResponse.ProtoReflect.Descriptor instead. func (*GetMneResponse) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{17} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{18} } func (x *GetMneResponse) GetTimestamp() int64 { @@ -1480,7 +1541,7 @@ type SetMne struct { func (x *SetMne) Reset() { *x = SetMne{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[18] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1493,7 +1554,7 @@ func (x *SetMne) String() string { func (*SetMne) ProtoMessage() {} func (x *SetMne) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[18] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1506,7 +1567,7 @@ func (x *SetMne) ProtoReflect() protoreflect.Message { // Deprecated: Use SetMne.ProtoReflect.Descriptor instead. func (*SetMne) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{18} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{19} } func (x *SetMne) GetAddress() string { @@ -1550,7 +1611,7 @@ type SetMneListRequest struct { func (x *SetMneListRequest) Reset() { *x = SetMneListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[19] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1563,7 +1624,7 @@ func (x *SetMneListRequest) String() string { func (*SetMneListRequest) ProtoMessage() {} func (x *SetMneListRequest) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[19] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1576,7 +1637,7 @@ func (x *SetMneListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetMneListRequest.ProtoReflect.Descriptor instead. func (*SetMneListRequest) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{19} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{20} } func (x *SetMneListRequest) GetTimestamp() int64 { @@ -1613,7 +1674,7 @@ type SetMneListResponse struct { func (x *SetMneListResponse) Reset() { *x = SetMneListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[20] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1626,7 +1687,7 @@ func (x *SetMneListResponse) String() string { func (*SetMneListResponse) ProtoMessage() {} func (x *SetMneListResponse) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[20] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1639,7 +1700,7 @@ func (x *SetMneListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetMneListResponse.ProtoReflect.Descriptor instead. func (*SetMneListResponse) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{20} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{21} } func (x *SetMneListResponse) GetTimestamp() int64 { @@ -1677,7 +1738,7 @@ type GetPathRequest struct { func (x *GetPathRequest) Reset() { *x = GetPathRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[21] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1690,7 +1751,7 @@ func (x *GetPathRequest) String() string { func (*GetPathRequest) ProtoMessage() {} func (x *GetPathRequest) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[21] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1703,7 +1764,7 @@ func (x *GetPathRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPathRequest.ProtoReflect.Descriptor instead. func (*GetPathRequest) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{21} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{22} } func (x *GetPathRequest) GetTimestamp() int64 { @@ -1749,7 +1810,7 @@ type GetPathResponse struct { func (x *GetPathResponse) Reset() { *x = GetPathResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[22] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1762,7 +1823,7 @@ func (x *GetPathResponse) String() string { func (*GetPathResponse) ProtoMessage() {} func (x *GetPathResponse) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[22] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1775,7 +1836,7 @@ func (x *GetPathResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPathResponse.ProtoReflect.Descriptor instead. func (*GetPathResponse) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{22} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{23} } func (x *GetPathResponse) GetTimestamp() int64 { @@ -1812,7 +1873,7 @@ type SetResponse struct { func (x *SetResponse) Reset() { *x = SetResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[23] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1825,7 +1886,7 @@ func (x *SetResponse) String() string { func (*SetResponse) ProtoMessage() {} func (x *SetResponse) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[23] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1838,7 +1899,7 @@ func (x *SetResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetResponse.ProtoReflect.Descriptor instead. func (*SetResponse) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{23} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{24} } func (x *SetResponse) GetTimestamp() int64 { @@ -1875,7 +1936,7 @@ type SetPathListRequest struct { func (x *SetPathListRequest) Reset() { *x = SetPathListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[24] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1888,7 +1949,7 @@ func (x *SetPathListRequest) String() string { func (*SetPathListRequest) ProtoMessage() {} func (x *SetPathListRequest) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[24] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1901,7 +1962,7 @@ func (x *SetPathListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetPathListRequest.ProtoReflect.Descriptor instead. func (*SetPathListRequest) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{24} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{25} } func (x *SetPathListRequest) GetTimestamp() int64 { @@ -1938,7 +1999,7 @@ type SetPathListResponse struct { func (x *SetPathListResponse) Reset() { *x = SetPathListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[25] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1951,7 +2012,7 @@ func (x *SetPathListResponse) String() string { func (*SetPathListResponse) ProtoMessage() {} func (x *SetPathListResponse) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[25] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1964,7 +2025,7 @@ func (x *SetPathListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetPathListResponse.ProtoReflect.Descriptor instead. func (*SetPathListResponse) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{25} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{26} } func (x *SetPathListResponse) GetTimestamp() int64 { @@ -2001,7 +2062,7 @@ type DeleteMneRequest struct { func (x *DeleteMneRequest) Reset() { *x = DeleteMneRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[26] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2014,7 +2075,7 @@ func (x *DeleteMneRequest) String() string { func (*DeleteMneRequest) ProtoMessage() {} func (x *DeleteMneRequest) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[26] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2027,7 +2088,7 @@ func (x *DeleteMneRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMneRequest.ProtoReflect.Descriptor instead. func (*DeleteMneRequest) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{26} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{27} } func (x *DeleteMneRequest) GetTimestamp() int64 { @@ -2063,7 +2124,7 @@ type DeleteMneResponse struct { func (x *DeleteMneResponse) Reset() { *x = DeleteMneResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[27] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2076,7 +2137,7 @@ func (x *DeleteMneResponse) String() string { func (*DeleteMneResponse) ProtoMessage() {} func (x *DeleteMneResponse) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[27] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2089,7 +2150,7 @@ func (x *DeleteMneResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMneResponse.ProtoReflect.Descriptor instead. func (*DeleteMneResponse) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{27} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{28} } func (x *DeleteMneResponse) GetTimestamp() int64 { @@ -2120,7 +2181,7 @@ type Change struct { func (x *Change) Reset() { *x = Change{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[28] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2133,7 +2194,7 @@ func (x *Change) String() string { func (*Change) ProtoMessage() {} func (x *Change) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[28] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2146,7 +2207,7 @@ func (x *Change) ProtoReflect() protoreflect.Message { // Deprecated: Use Change.ProtoReflect.Descriptor instead. func (*Change) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{28} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{29} } func (x *Change) GetId() string { @@ -2192,7 +2253,7 @@ type ChangeRequest struct { func (x *ChangeRequest) Reset() { *x = ChangeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[29] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2205,7 +2266,7 @@ func (x *ChangeRequest) String() string { func (*ChangeRequest) ProtoMessage() {} func (x *ChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[29] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2218,7 +2279,7 @@ func (x *ChangeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeRequest.ProtoReflect.Descriptor instead. func (*ChangeRequest) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{29} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{30} } func (x *ChangeRequest) GetMneid() string { @@ -2261,7 +2322,7 @@ type SetChange struct { func (x *SetChange) Reset() { *x = SetChange{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[30] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2274,7 +2335,7 @@ func (x *SetChange) String() string { func (*SetChange) ProtoMessage() {} func (x *SetChange) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[30] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2287,7 +2348,7 @@ func (x *SetChange) ProtoReflect() protoreflect.Message { // Deprecated: Use SetChange.ProtoReflect.Descriptor instead. func (*SetChange) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{30} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{31} } func (x *SetChange) GetCuid() string { @@ -2316,7 +2377,7 @@ type GetChangeListRequest struct { func (x *GetChangeListRequest) Reset() { *x = GetChangeListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[31] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2329,7 +2390,7 @@ func (x *GetChangeListRequest) String() string { func (*GetChangeListRequest) ProtoMessage() {} func (x *GetChangeListRequest) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[31] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2342,7 +2403,7 @@ func (x *GetChangeListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChangeListRequest.ProtoReflect.Descriptor instead. func (*GetChangeListRequest) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{31} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{32} } func (x *GetChangeListRequest) GetTimestamp() int64 { @@ -2374,7 +2435,7 @@ type GetChangeListResponse struct { func (x *GetChangeListResponse) Reset() { *x = GetChangeListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[32] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2387,7 +2448,7 @@ func (x *GetChangeListResponse) String() string { func (*GetChangeListResponse) ProtoMessage() {} func (x *GetChangeListResponse) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[32] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2400,7 +2461,7 @@ func (x *GetChangeListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChangeListResponse.ProtoReflect.Descriptor instead. func (*GetChangeListResponse) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{32} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{33} } func (x *GetChangeListResponse) GetTimestamp() int64 { @@ -2437,7 +2498,7 @@ type GetChangeRequest struct { func (x *GetChangeRequest) Reset() { *x = GetChangeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[33] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2450,7 +2511,7 @@ func (x *GetChangeRequest) String() string { func (*GetChangeRequest) ProtoMessage() {} func (x *GetChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[33] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2463,7 +2524,7 @@ func (x *GetChangeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChangeRequest.ProtoReflect.Descriptor instead. func (*GetChangeRequest) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{33} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{34} } func (x *GetChangeRequest) GetTimestamp() int64 { @@ -2502,7 +2563,7 @@ type GetChangeResponse struct { func (x *GetChangeResponse) Reset() { *x = GetChangeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[34] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2515,7 +2576,7 @@ func (x *GetChangeResponse) String() string { func (*GetChangeResponse) ProtoMessage() {} func (x *GetChangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[34] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2528,7 +2589,7 @@ func (x *GetChangeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChangeResponse.ProtoReflect.Descriptor instead. func (*GetChangeResponse) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{34} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{35} } func (x *GetChangeResponse) GetTimestamp() int64 { @@ -2565,7 +2626,7 @@ type SetChangeListRequest struct { func (x *SetChangeListRequest) Reset() { *x = SetChangeListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[35] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2578,7 +2639,7 @@ func (x *SetChangeListRequest) String() string { func (*SetChangeListRequest) ProtoMessage() {} func (x *SetChangeListRequest) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[35] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2591,7 +2652,7 @@ func (x *SetChangeListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetChangeListRequest.ProtoReflect.Descriptor instead. func (*SetChangeListRequest) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{35} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{36} } func (x *SetChangeListRequest) GetTimestamp() int64 { @@ -2628,7 +2689,7 @@ type SetChangeListResponse struct { func (x *SetChangeListResponse) Reset() { *x = SetChangeListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[36] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2641,7 +2702,7 @@ func (x *SetChangeListResponse) String() string { func (*SetChangeListResponse) ProtoMessage() {} func (x *SetChangeListResponse) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[36] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2654,7 +2715,7 @@ func (x *SetChangeListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetChangeListResponse.ProtoReflect.Descriptor instead. func (*SetChangeListResponse) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{36} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{37} } func (x *SetChangeListResponse) GetTimestamp() int64 { @@ -2692,7 +2753,7 @@ type SubscriptionList struct { func (x *SubscriptionList) Reset() { *x = SubscriptionList{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[37] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2705,7 +2766,7 @@ func (x *SubscriptionList) String() string { func (*SubscriptionList) ProtoMessage() {} func (x *SubscriptionList) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[37] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2718,7 +2779,7 @@ func (x *SubscriptionList) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscriptionList.ProtoReflect.Descriptor instead. func (*SubscriptionList) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{37} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{38} } func (x *SubscriptionList) GetSubscription() []*Subscription { @@ -2748,7 +2809,7 @@ type Subscription struct { func (x *Subscription) Reset() { *x = Subscription{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[38] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2761,7 +2822,7 @@ func (x *Subscription) String() string { func (*Subscription) ProtoMessage() {} func (x *Subscription) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[38] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2774,7 +2835,7 @@ func (x *Subscription) ProtoReflect() protoreflect.Message { // Deprecated: Use Subscription.ProtoReflect.Descriptor instead. func (*Subscription) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{38} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{39} } func (x *Subscription) GetPath() string { @@ -2812,7 +2873,7 @@ type SubscribePathRequest struct { func (x *SubscribePathRequest) Reset() { *x = SubscribePathRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[39] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2825,7 +2886,7 @@ func (x *SubscribePathRequest) String() string { func (*SubscribePathRequest) ProtoMessage() {} func (x *SubscribePathRequest) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[39] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2838,7 +2899,7 @@ func (x *SubscribePathRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribePathRequest.ProtoReflect.Descriptor instead. func (*SubscribePathRequest) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{39} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{40} } func (x *SubscribePathRequest) GetTimestamp() int64 { @@ -2882,7 +2943,7 @@ type SubscribePathResponse struct { func (x *SubscribePathResponse) Reset() { *x = SubscribePathResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[40] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2895,7 +2956,7 @@ func (x *SubscribePathResponse) String() string { func (*SubscribePathResponse) ProtoMessage() {} func (x *SubscribePathResponse) ProtoReflect() protoreflect.Message { - mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[40] + mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2908,7 +2969,7 @@ func (x *SubscribePathResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribePathResponse.ProtoReflect.Descriptor instead. func (*SubscribePathResponse) Descriptor() ([]byte, []int) { - return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{40} + return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{41} } func (x *SubscribePathResponse) GetTimestamp() int64 { @@ -3058,7 +3119,7 @@ var file_gosdn_networkelement_networkelement_proto_rawDesc = []byte{ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd8, 0x02, 0x0a, 0x15, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa0, 0x03, 0x0a, 0x15, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, @@ -3074,433 +3135,443 @@ var file_gosdn_networkelement_networkelement_proto_rawDesc = []byte{ 0x63, 0x65, 0x52, 0x03, 0x73, 0x62, 0x69, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, - 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x73, - 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, - 0x64, 0x50, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x56, 0x0a, 0x1e, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x6c, 0x69, 0x63, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x6f, 0x63, + 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x50, 0x6e, 0x64, 0x22, 0x56, + 0x0a, 0x1e, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x73, 0x62, 0x69, 0x22, 0x43, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xa6, 0x01, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x33, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, + 0x70, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x52, 0x03, 0x70, 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x03, 0x6d, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x03, 0x6d, 0x6e, 0x65, 0x22, 0x4c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, 0x74, + 0x65, 0x6e, 0x65, 0x64, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, + 0x69, 0x64, 0x22, 0xb8, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, + 0x6e, 0x65, 0x64, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x33, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, + 0x70, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x52, 0x03, 0x70, 0x6e, 0x64, 0x12, 0x46, 0x0a, 0x03, 0x6d, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x73, 0x62, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x62, 0x69, 0x22, 0x43, - 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x70, 0x69, 0x64, 0x22, 0xa6, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x33, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, - 0x64, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x03, 0x70, 0x6e, 0x64, 0x12, 0x3d, 0x0a, - 0x03, 0x6d, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x73, - 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x03, 0x6d, 0x6e, 0x65, 0x22, 0xb8, 0x01, 0x0a, - 0x1b, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x4d, 0x6e, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x33, 0x0a, 0x03, 0x70, 0x6e, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, - 0x70, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x03, 0x70, 0x6e, 0x64, 0x12, - 0x46, 0x0a, 0x03, 0x6d, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, - 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x4d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x03, 0x6d, 0x6e, 0x65, 0x22, 0x55, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4d, 0x6e, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xa2, - 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x33, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, - 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, - 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, - 0x03, 0x70, 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x03, 0x6d, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x03, - 0x6d, 0x6e, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x74, 0x4d, 0x6e, 0x65, 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, 0x37, 0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, - 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x03, 0x73, 0x62, - 0x69, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x10, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, - 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x73, 0x0a, 0x11, 0x53, 0x65, 0x74, - 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x03, 0x6d, 0x6e, 0x65, 0x22, 0x55, 0x0a, + 0x0d, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2e, 0x0a, 0x03, - 0x6d, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, - 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x52, 0x03, 0x6d, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xa9, - 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, - 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x6a, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6e, - 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xa3, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x61, - 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x33, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, - 0x64, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x03, 0x70, 0x6e, 0x64, 0x12, 0x3d, 0x0a, - 0x10, 0x6d, 0x6e, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6d, 0x6e, 0x65, - 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x71, 0x0a, 0x0b, - 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, + 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6e, 0x65, + 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x70, 0x69, 0x64, 0x22, 0xa2, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x33, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x50, + 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x03, 0x70, 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x03, 0x6d, 0x6e, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x03, 0x6d, 0x6e, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x06, 0x53, 0x65, + 0x74, 0x4d, 0x6e, 0x65, 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, 0x37, + 0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, + 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x53, + 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x52, 0x03, 0x73, 0x62, 0x69, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x6e, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6e, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, + 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x73, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x2e, 0x0a, 0x03, 0x6d, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x52, 0x03, 0x6d, + 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x70, 0x69, 0x64, 0x22, 0xa9, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x90, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, - 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, - 0x69, 0x64, 0x22, 0xaa, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, - 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, - 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, - 0x58, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x22, 0x67, 0x0a, 0x11, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x4d, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, - 0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, - 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x64, 0x69, 0x66, 0x66, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x69, 0x66, 0x66, - 0x22, 0x8a, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x70, 0x69, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x61, 0x70, 0x69, 0x4f, 0x70, 0x22, 0x50, 0x0a, - 0x09, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x75, 0x69, 0x64, 0x12, 0x2f, - 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x73, - 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6f, 0x70, 0x22, - 0x46, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xa0, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, + 0x22, 0x6a, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xa3, 0x01, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x33, + 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, + 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, + 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x03, + 0x70, 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x10, 0x6d, 0x6e, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0f, 0x6d, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x71, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x33, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, - 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, - 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, - 0x03, 0x70, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, + 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a, 0x0e, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xaa, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, + 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x58, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, + 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6e, 0x65, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x22, + 0x67, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x56, 0x0a, 0x10, 0x47, 0x65, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, + 0x0a, 0x04, 0x64, 0x69, 0x66, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, + 0x6e, 0x6d, 0x69, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x04, 0x64, 0x69, 0x66, 0x66, 0x22, 0x8a, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x61, 0x70, 0x69, 0x5f, + 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x41, 0x70, 0x69, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x61, 0x70, + 0x69, 0x4f, 0x70, 0x22, 0x50, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x75, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x02, 0x6f, 0x70, 0x22, 0x46, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x70, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xa0, 0x01, + 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x33, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x50, + 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x03, 0x70, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x06, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, + 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x22, 0x56, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x9c, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, - 0x63, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x63, 0x75, 0x69, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, - 0x69, 0x64, 0x22, 0x9c, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x33, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, - 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x03, 0x70, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x06, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x22, 0x7f, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, - 0x69, 0x64, 0x22, 0xac, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x33, 0x0a, 0x03, + 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, + 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x03, 0x70, 0x6e, + 0x64, 0x12, 0x34, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x7f, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x37, 0x0a, + 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xac, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, + 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0c, + 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, + 0x22, 0x8e, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x41, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x73, + 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x22, 0x9e, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, + 0x12, 0x40, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6c, 0x69, + 0x73, 0x74, 0x22, 0xaa, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x73, 0x22, 0x96, 0x01, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, - 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, - 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, - 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x0c, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, - 0x41, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x9e, 0x01, 0x0a, 0x14, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x73, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, - 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xaa, 0x01, 0x0a, - 0x15, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x10, 0x6d, 0x6e, - 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6d, 0x6e, 0x65, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x2a, 0x9c, 0x01, 0x0a, - 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x18, - 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x48, - 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, - 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x02, - 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, - 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x43, - 0x4f, 0x4e, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x2a, 0x7c, 0x0a, 0x0c, 0x41, - 0x70, 0x69, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x41, - 0x50, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x50, - 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, - 0x54, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x50, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x02, 0x12, - 0x18, 0x0a, 0x14, 0x41, 0x50, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x2a, 0x69, 0x0a, 0x09, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, - 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, - 0x11, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, - 0x52, 0x4d, 0x10, 0x03, 0x2a, 0x8b, 0x01, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x55, 0x42, - 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, + 0x12, 0x3d, 0x0a, 0x10, 0x6d, 0x6e, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6e, 0x6d, + 0x69, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, + 0x6d, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, + 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01, + 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x02, 0x2a, 0x9c, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x18, 0x0a, 0x14, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, + 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, + 0x54, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, + 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4e, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x10, + 0x04, 0x2a, 0x7c, 0x0a, 0x0c, 0x41, 0x70, 0x69, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x50, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x18, 0x0a, 0x14, 0x41, 0x50, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x50, + 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x50, 0x4c, + 0x41, 0x43, 0x45, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x50, 0x49, 0x5f, 0x4f, 0x50, 0x45, + 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x2a, + 0x69, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, + 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, + 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, + 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x03, 0x2a, 0x8b, 0x01, 0x0a, 0x10, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x21, 0x0a, 0x1d, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x01, 0x12, 0x1c, + 0x0a, 0x18, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x55, 0x42, 0x53, - 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, - 0x52, 0x45, 0x41, 0x4d, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, - 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x4f, 0x4c, 0x4c, - 0x10, 0x03, 0x2a, 0x7c, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x65, - 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, - 0x1a, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x41, 0x52, - 0x47, 0x45, 0x54, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x19, 0x0a, - 0x15, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, - 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x52, 0x45, - 0x41, 0x4d, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x03, - 0x32, 0xc4, 0x0f, 0x0a, 0x15, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x03, 0x41, - 0x64, 0x64, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, - 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2d, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, - 0x2e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x2d, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x8d, 0x01, 0x0a, 0x06, 0x47, - 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x6c, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, + 0x45, 0x5f, 0x50, 0x4f, 0x4c, 0x4c, 0x10, 0x03, 0x2a, 0x7c, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, + 0x44, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x16, + 0x0a, 0x12, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x41, + 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x03, 0x32, 0xcd, 0x0f, 0x0a, 0x15, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x8a, 0x01, 0x0a, 0x03, 0x41, 0x64, 0x64, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2d, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x6c, 0x6c, 0x12, 0x93, 0x01, 0x0a, 0x06, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, + 0x41, 0x64, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x2d, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x12, 0x5f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, + 0x41, 0x64, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2d, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x80, 0x01, + 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, + 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2d, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x8d, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x12, 0x31, 0x2e, 0x67, 0x6f, + 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, - 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, - 0x65, 0x64, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, - 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, - 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, - 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x6e, 0x65, 0x73, 0x12, - 0x74, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x73, 0x64, - 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x2d, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x6c, 0x6c, + 0x12, 0x93, 0x01, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x67, 0x6f, + 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x70, - 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x6e, 0x65, 0x2f, 0x7b, 0x6d, - 0x6e, 0x65, 0x69, 0x64, 0x7d, 0x12, 0x7c, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x6e, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, - 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, - 0x2a, 0x22, 0x10, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6d, - 0x6e, 0x65, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, - 0x7d, 0x2f, 0x6d, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x7d, 0x2f, 0x70, - 0x61, 0x74, 0x68, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x74, 0x68, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x0b, - 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x2e, 0x67, 0x6f, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2d, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x5f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4d, + 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, + 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x30, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, + 0x6e, 0x65, 0x64, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, + 0x74, 0x65, 0x6e, 0x65, 0x64, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x70, + 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x6e, 0x65, 0x73, 0x12, 0x74, + 0x0a, 0x06, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x70, 0x6e, + 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x6e, 0x65, 0x2f, 0x7b, 0x6d, 0x6e, + 0x65, 0x69, 0x64, 0x7d, 0x12, 0x7c, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x6e, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, - 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x70, 0x6e, - 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x6e, 0x65, 0x73, 0x2f, 0x70, 0x61, - 0x74, 0x68, 0x73, 0x12, 0x7e, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6e, 0x65, - 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6e, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, + 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, + 0x22, 0x10, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x6e, + 0x65, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, + 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, + 0x2f, 0x6d, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, + 0x74, 0x68, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x74, 0x68, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x0b, 0x53, + 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x73, + 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x50, + 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x70, 0x6e, 0x64, + 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x6e, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x74, + 0x68, 0x73, 0x12, 0x7e, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6e, 0x65, 0x12, + 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6e, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x2a, 0x18, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, + 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x6d, 0x6e, 0x65, 0x69, + 0x64, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, + 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x09, 0x47, + 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x2a, 0x18, 0x2f, 0x70, 0x6e, 0x64, 0x73, - 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x6d, 0x6e, 0x65, - 0x69, 0x64, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, - 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x09, - 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64, + 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1c, 0x12, 0x1a, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x75, 0x69, 0x64, 0x7d, 0x12, 0x88, 0x01, + 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x2a, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, + 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, + 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, + 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x75, 0x69, 0x64, 0x7d, 0x12, 0x88, - 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, - 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, - 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x0d, 0x53, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x73, - 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x42, 0x3a, 0x5a, 0x38, 0x63, 0x6f, 0x64, 0x65, 0x2e, - 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, - 0x74, 0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x67, - 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x42, 0x3a, 0x5a, 0x38, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, + 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74, + 0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x6f, + 0x73, 0x64, 0x6e, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3516,7 +3587,7 @@ func file_gosdn_networkelement_networkelement_proto_rawDescGZIP() []byte { } var file_gosdn_networkelement_networkelement_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_gosdn_networkelement_networkelement_proto_msgTypes = make([]protoimpl.MessageInfo, 41) +var file_gosdn_networkelement_networkelement_proto_msgTypes = make([]protoimpl.MessageInfo, 42) var file_gosdn_networkelement_networkelement_proto_goTypes = []interface{}{ (Status)(0), // 0: gosdn.networkelement.Status (ChangeState)(0), // 1: gosdn.networkelement.ChangeState @@ -3539,41 +3610,42 @@ var file_gosdn_networkelement_networkelement_proto_goTypes = []interface{}{ (*FlattenedManagedNetworkElement)(nil), // 18: gosdn.networkelement.FlattenedManagedNetworkElement (*GetMneListRequest)(nil), // 19: gosdn.networkelement.GetMneListRequest (*GetMneListResponse)(nil), // 20: gosdn.networkelement.GetMneListResponse - (*GetFlattenedMneListResponse)(nil), // 21: gosdn.networkelement.GetFlattenedMneListResponse - (*GetMneRequest)(nil), // 22: gosdn.networkelement.GetMneRequest - (*GetMneResponse)(nil), // 23: gosdn.networkelement.GetMneResponse - (*SetMne)(nil), // 24: gosdn.networkelement.SetMne - (*SetMneListRequest)(nil), // 25: gosdn.networkelement.SetMneListRequest - (*SetMneListResponse)(nil), // 26: gosdn.networkelement.SetMneListResponse - (*GetPathRequest)(nil), // 27: gosdn.networkelement.GetPathRequest - (*GetPathResponse)(nil), // 28: gosdn.networkelement.GetPathResponse - (*SetResponse)(nil), // 29: gosdn.networkelement.SetResponse - (*SetPathListRequest)(nil), // 30: gosdn.networkelement.SetPathListRequest - (*SetPathListResponse)(nil), // 31: gosdn.networkelement.SetPathListResponse - (*DeleteMneRequest)(nil), // 32: gosdn.networkelement.DeleteMneRequest - (*DeleteMneResponse)(nil), // 33: gosdn.networkelement.DeleteMneResponse - (*Change)(nil), // 34: gosdn.networkelement.Change - (*ChangeRequest)(nil), // 35: gosdn.networkelement.ChangeRequest - (*SetChange)(nil), // 36: gosdn.networkelement.SetChange - (*GetChangeListRequest)(nil), // 37: gosdn.networkelement.GetChangeListRequest - (*GetChangeListResponse)(nil), // 38: gosdn.networkelement.GetChangeListResponse - (*GetChangeRequest)(nil), // 39: gosdn.networkelement.GetChangeRequest - (*GetChangeResponse)(nil), // 40: gosdn.networkelement.GetChangeResponse - (*SetChangeListRequest)(nil), // 41: gosdn.networkelement.SetChangeListRequest - (*SetChangeListResponse)(nil), // 42: gosdn.networkelement.SetChangeListResponse - (*SubscriptionList)(nil), // 43: gosdn.networkelement.SubscriptionList - (*Subscription)(nil), // 44: gosdn.networkelement.Subscription - (*SubscribePathRequest)(nil), // 45: gosdn.networkelement.SubscribePathRequest - (*SubscribePathResponse)(nil), // 46: gosdn.networkelement.SubscribePathResponse - (*southbound.SouthboundInterface)(nil), // 47: gosdn.southbound.SouthboundInterface - (*transport.TransportOption)(nil), // 48: gosdn.transport.TransportOption - (*gnmi.Notification)(nil), // 49: gnmi.Notification - (*conflict.Metadata)(nil), // 50: gosdn.conflict.Metadata - (*pnd.PrincipalNetworkDomain)(nil), // 51: gosdn.pnd.PrincipalNetworkDomain + (*GetFlattenedMneListRequest)(nil), // 21: gosdn.networkelement.GetFlattenedMneListRequest + (*GetFlattenedMneListResponse)(nil), // 22: gosdn.networkelement.GetFlattenedMneListResponse + (*GetMneRequest)(nil), // 23: gosdn.networkelement.GetMneRequest + (*GetMneResponse)(nil), // 24: gosdn.networkelement.GetMneResponse + (*SetMne)(nil), // 25: gosdn.networkelement.SetMne + (*SetMneListRequest)(nil), // 26: gosdn.networkelement.SetMneListRequest + (*SetMneListResponse)(nil), // 27: gosdn.networkelement.SetMneListResponse + (*GetPathRequest)(nil), // 28: gosdn.networkelement.GetPathRequest + (*GetPathResponse)(nil), // 29: gosdn.networkelement.GetPathResponse + (*SetResponse)(nil), // 30: gosdn.networkelement.SetResponse + (*SetPathListRequest)(nil), // 31: gosdn.networkelement.SetPathListRequest + (*SetPathListResponse)(nil), // 32: gosdn.networkelement.SetPathListResponse + (*DeleteMneRequest)(nil), // 33: gosdn.networkelement.DeleteMneRequest + (*DeleteMneResponse)(nil), // 34: gosdn.networkelement.DeleteMneResponse + (*Change)(nil), // 35: gosdn.networkelement.Change + (*ChangeRequest)(nil), // 36: gosdn.networkelement.ChangeRequest + (*SetChange)(nil), // 37: gosdn.networkelement.SetChange + (*GetChangeListRequest)(nil), // 38: gosdn.networkelement.GetChangeListRequest + (*GetChangeListResponse)(nil), // 39: gosdn.networkelement.GetChangeListResponse + (*GetChangeRequest)(nil), // 40: gosdn.networkelement.GetChangeRequest + (*GetChangeResponse)(nil), // 41: gosdn.networkelement.GetChangeResponse + (*SetChangeListRequest)(nil), // 42: gosdn.networkelement.SetChangeListRequest + (*SetChangeListResponse)(nil), // 43: gosdn.networkelement.SetChangeListResponse + (*SubscriptionList)(nil), // 44: gosdn.networkelement.SubscriptionList + (*Subscription)(nil), // 45: gosdn.networkelement.Subscription + (*SubscribePathRequest)(nil), // 46: gosdn.networkelement.SubscribePathRequest + (*SubscribePathResponse)(nil), // 47: gosdn.networkelement.SubscribePathResponse + (*southbound.SouthboundInterface)(nil), // 48: gosdn.southbound.SouthboundInterface + (*transport.TransportOption)(nil), // 49: gosdn.transport.TransportOption + (*gnmi.Notification)(nil), // 50: gnmi.Notification + (*conflict.Metadata)(nil), // 51: gosdn.conflict.Metadata + (*pnd.PrincipalNetworkDomain)(nil), // 52: gosdn.pnd.PrincipalNetworkDomain } var file_gosdn_networkelement_networkelement_proto_depIdxs = []int32{ - 47, // 0: gosdn.networkelement.AddNetworkElementConfiguration.sbi:type_name -> gosdn.southbound.SouthboundInterface - 48, // 1: gosdn.networkelement.AddNetworkElementConfiguration.transport_option:type_name -> gosdn.transport.TransportOption + 48, // 0: gosdn.networkelement.AddNetworkElementConfiguration.sbi:type_name -> gosdn.southbound.SouthboundInterface + 49, // 1: gosdn.networkelement.AddNetworkElementConfiguration.transport_option:type_name -> gosdn.transport.TransportOption 6, // 2: gosdn.networkelement.AddNetworkElementRequest.network_element:type_name -> gosdn.networkelement.AddNetworkElementConfiguration 0, // 3: gosdn.networkelement.AddNetworkElementResponse.status:type_name -> gosdn.networkelement.Status 0, // 4: gosdn.networkelement.GetNetworkElementResponse.status:type_name -> gosdn.networkelement.Status @@ -3583,79 +3655,80 @@ var file_gosdn_networkelement_networkelement_proto_depIdxs = []int32{ 17, // 8: gosdn.networkelement.UpdateNetworkElementRequest.network_element:type_name -> gosdn.networkelement.ManagedNetworkElement 0, // 9: gosdn.networkelement.UpdateNetworkElementResponse.status:type_name -> gosdn.networkelement.Status 0, // 10: gosdn.networkelement.DeleteNetworkElementResponse.status:type_name -> gosdn.networkelement.Status - 49, // 11: gosdn.networkelement.ManagedNetworkElement.mne_notification:type_name -> gnmi.Notification - 47, // 12: gosdn.networkelement.ManagedNetworkElement.sbi:type_name -> gosdn.southbound.SouthboundInterface - 50, // 13: gosdn.networkelement.ManagedNetworkElement.metadata:type_name -> gosdn.conflict.Metadata - 51, // 14: gosdn.networkelement.GetMneListResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain - 17, // 15: gosdn.networkelement.GetMneListResponse.mne:type_name -> gosdn.networkelement.ManagedNetworkElement - 51, // 16: gosdn.networkelement.GetFlattenedMneListResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain - 18, // 17: gosdn.networkelement.GetFlattenedMneListResponse.mne:type_name -> gosdn.networkelement.FlattenedManagedNetworkElement - 51, // 18: gosdn.networkelement.GetMneResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain - 17, // 19: gosdn.networkelement.GetMneResponse.mne:type_name -> gosdn.networkelement.ManagedNetworkElement - 47, // 20: gosdn.networkelement.SetMne.sbi:type_name -> gosdn.southbound.SouthboundInterface - 48, // 21: gosdn.networkelement.SetMne.transport_option:type_name -> gosdn.transport.TransportOption - 24, // 22: gosdn.networkelement.SetMneListRequest.mne:type_name -> gosdn.networkelement.SetMne - 0, // 23: gosdn.networkelement.SetMneListResponse.status:type_name -> gosdn.networkelement.Status - 29, // 24: gosdn.networkelement.SetMneListResponse.responses:type_name -> gosdn.networkelement.SetResponse - 51, // 25: gosdn.networkelement.GetPathResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain - 49, // 26: gosdn.networkelement.GetPathResponse.mne_notification:type_name -> gnmi.Notification - 0, // 27: gosdn.networkelement.SetResponse.status:type_name -> gosdn.networkelement.Status - 35, // 28: gosdn.networkelement.SetPathListRequest.change_request:type_name -> gosdn.networkelement.ChangeRequest - 0, // 29: gosdn.networkelement.SetPathListResponse.status:type_name -> gosdn.networkelement.Status - 29, // 30: gosdn.networkelement.SetPathListResponse.responses:type_name -> gosdn.networkelement.SetResponse - 0, // 31: gosdn.networkelement.DeleteMneResponse.status:type_name -> gosdn.networkelement.Status - 1, // 32: gosdn.networkelement.Change.state:type_name -> gosdn.networkelement.ChangeState - 49, // 33: gosdn.networkelement.Change.diff:type_name -> gnmi.Notification - 2, // 34: gosdn.networkelement.ChangeRequest.api_op:type_name -> gosdn.networkelement.ApiOperation - 3, // 35: gosdn.networkelement.SetChange.op:type_name -> gosdn.networkelement.Operation - 51, // 36: gosdn.networkelement.GetChangeListResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain - 34, // 37: gosdn.networkelement.GetChangeListResponse.change:type_name -> gosdn.networkelement.Change - 51, // 38: gosdn.networkelement.GetChangeResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain - 34, // 39: gosdn.networkelement.GetChangeResponse.change:type_name -> gosdn.networkelement.Change - 36, // 40: gosdn.networkelement.SetChangeListRequest.change:type_name -> gosdn.networkelement.SetChange - 0, // 41: gosdn.networkelement.SetChangeListResponse.status:type_name -> gosdn.networkelement.Status - 29, // 42: gosdn.networkelement.SetChangeListResponse.responses:type_name -> gosdn.networkelement.SetResponse - 44, // 43: gosdn.networkelement.SubscriptionList.subscription:type_name -> gosdn.networkelement.Subscription - 4, // 44: gosdn.networkelement.SubscriptionList.mode:type_name -> gosdn.networkelement.SubscriptionMode - 5, // 45: gosdn.networkelement.Subscription.stream_mode:type_name -> gosdn.networkelement.StreamMode - 43, // 46: gosdn.networkelement.SubscribePathRequest.sublist:type_name -> gosdn.networkelement.SubscriptionList - 0, // 47: gosdn.networkelement.SubscribePathResponse.status:type_name -> gosdn.networkelement.Status - 49, // 48: gosdn.networkelement.SubscribePathResponse.mne_notification:type_name -> gnmi.Notification - 7, // 49: gosdn.networkelement.NetworkElementService.Add:input_type -> gosdn.networkelement.AddNetworkElementRequest - 9, // 50: gosdn.networkelement.NetworkElementService.Get:input_type -> gosdn.networkelement.GetNetworkElementRequest - 11, // 51: gosdn.networkelement.NetworkElementService.GetAll:input_type -> gosdn.networkelement.GetAllNetworkElementRequest - 13, // 52: gosdn.networkelement.NetworkElementService.Update:input_type -> gosdn.networkelement.UpdateNetworkElementRequest - 19, // 53: gosdn.networkelement.NetworkElementService.GetMneList:input_type -> gosdn.networkelement.GetMneListRequest - 19, // 54: gosdn.networkelement.NetworkElementService.GetFlattenedMneList:input_type -> gosdn.networkelement.GetMneListRequest - 22, // 55: gosdn.networkelement.NetworkElementService.GetMne:input_type -> gosdn.networkelement.GetMneRequest - 25, // 56: gosdn.networkelement.NetworkElementService.SetMneList:input_type -> gosdn.networkelement.SetMneListRequest - 27, // 57: gosdn.networkelement.NetworkElementService.GetPath:input_type -> gosdn.networkelement.GetPathRequest - 30, // 58: gosdn.networkelement.NetworkElementService.SetPathList:input_type -> gosdn.networkelement.SetPathListRequest - 32, // 59: gosdn.networkelement.NetworkElementService.DeleteMne:input_type -> gosdn.networkelement.DeleteMneRequest - 37, // 60: gosdn.networkelement.NetworkElementService.GetChangeList:input_type -> gosdn.networkelement.GetChangeListRequest - 39, // 61: gosdn.networkelement.NetworkElementService.GetChange:input_type -> gosdn.networkelement.GetChangeRequest - 41, // 62: gosdn.networkelement.NetworkElementService.SetChangeList:input_type -> gosdn.networkelement.SetChangeListRequest - 45, // 63: gosdn.networkelement.NetworkElementService.SubscribePath:input_type -> gosdn.networkelement.SubscribePathRequest - 8, // 64: gosdn.networkelement.NetworkElementService.Add:output_type -> gosdn.networkelement.AddNetworkElementResponse - 10, // 65: gosdn.networkelement.NetworkElementService.Get:output_type -> gosdn.networkelement.GetNetworkElementResponse - 12, // 66: gosdn.networkelement.NetworkElementService.GetAll:output_type -> gosdn.networkelement.GetAllNetworkElementResponse - 14, // 67: gosdn.networkelement.NetworkElementService.Update:output_type -> gosdn.networkelement.UpdateNetworkElementResponse - 20, // 68: gosdn.networkelement.NetworkElementService.GetMneList:output_type -> gosdn.networkelement.GetMneListResponse - 21, // 69: gosdn.networkelement.NetworkElementService.GetFlattenedMneList:output_type -> gosdn.networkelement.GetFlattenedMneListResponse - 23, // 70: gosdn.networkelement.NetworkElementService.GetMne:output_type -> gosdn.networkelement.GetMneResponse - 26, // 71: gosdn.networkelement.NetworkElementService.SetMneList:output_type -> gosdn.networkelement.SetMneListResponse - 28, // 72: gosdn.networkelement.NetworkElementService.GetPath:output_type -> gosdn.networkelement.GetPathResponse - 31, // 73: gosdn.networkelement.NetworkElementService.SetPathList:output_type -> gosdn.networkelement.SetPathListResponse - 33, // 74: gosdn.networkelement.NetworkElementService.DeleteMne:output_type -> gosdn.networkelement.DeleteMneResponse - 38, // 75: gosdn.networkelement.NetworkElementService.GetChangeList:output_type -> gosdn.networkelement.GetChangeListResponse - 40, // 76: gosdn.networkelement.NetworkElementService.GetChange:output_type -> gosdn.networkelement.GetChangeResponse - 42, // 77: gosdn.networkelement.NetworkElementService.SetChangeList:output_type -> gosdn.networkelement.SetChangeListResponse - 46, // 78: gosdn.networkelement.NetworkElementService.SubscribePath:output_type -> gosdn.networkelement.SubscribePathResponse - 64, // [64:79] is the sub-list for method output_type - 49, // [49:64] is the sub-list for method input_type - 49, // [49:49] is the sub-list for extension type_name - 49, // [49:49] is the sub-list for extension extendee - 0, // [0:49] is the sub-list for field type_name + 50, // 11: gosdn.networkelement.ManagedNetworkElement.mne_notification:type_name -> gnmi.Notification + 48, // 12: gosdn.networkelement.ManagedNetworkElement.sbi:type_name -> gosdn.southbound.SouthboundInterface + 49, // 13: gosdn.networkelement.ManagedNetworkElement.transport_option:type_name -> gosdn.transport.TransportOption + 51, // 14: gosdn.networkelement.ManagedNetworkElement.metadata:type_name -> gosdn.conflict.Metadata + 52, // 15: gosdn.networkelement.GetMneListResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain + 17, // 16: gosdn.networkelement.GetMneListResponse.mne:type_name -> gosdn.networkelement.ManagedNetworkElement + 52, // 17: gosdn.networkelement.GetFlattenedMneListResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain + 18, // 18: gosdn.networkelement.GetFlattenedMneListResponse.mne:type_name -> gosdn.networkelement.FlattenedManagedNetworkElement + 52, // 19: gosdn.networkelement.GetMneResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain + 17, // 20: gosdn.networkelement.GetMneResponse.mne:type_name -> gosdn.networkelement.ManagedNetworkElement + 48, // 21: gosdn.networkelement.SetMne.sbi:type_name -> gosdn.southbound.SouthboundInterface + 49, // 22: gosdn.networkelement.SetMne.transport_option:type_name -> gosdn.transport.TransportOption + 25, // 23: gosdn.networkelement.SetMneListRequest.mne:type_name -> gosdn.networkelement.SetMne + 0, // 24: gosdn.networkelement.SetMneListResponse.status:type_name -> gosdn.networkelement.Status + 30, // 25: gosdn.networkelement.SetMneListResponse.responses:type_name -> gosdn.networkelement.SetResponse + 52, // 26: gosdn.networkelement.GetPathResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain + 50, // 27: gosdn.networkelement.GetPathResponse.mne_notification:type_name -> gnmi.Notification + 0, // 28: gosdn.networkelement.SetResponse.status:type_name -> gosdn.networkelement.Status + 36, // 29: gosdn.networkelement.SetPathListRequest.change_request:type_name -> gosdn.networkelement.ChangeRequest + 0, // 30: gosdn.networkelement.SetPathListResponse.status:type_name -> gosdn.networkelement.Status + 30, // 31: gosdn.networkelement.SetPathListResponse.responses:type_name -> gosdn.networkelement.SetResponse + 0, // 32: gosdn.networkelement.DeleteMneResponse.status:type_name -> gosdn.networkelement.Status + 1, // 33: gosdn.networkelement.Change.state:type_name -> gosdn.networkelement.ChangeState + 50, // 34: gosdn.networkelement.Change.diff:type_name -> gnmi.Notification + 2, // 35: gosdn.networkelement.ChangeRequest.api_op:type_name -> gosdn.networkelement.ApiOperation + 3, // 36: gosdn.networkelement.SetChange.op:type_name -> gosdn.networkelement.Operation + 52, // 37: gosdn.networkelement.GetChangeListResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain + 35, // 38: gosdn.networkelement.GetChangeListResponse.change:type_name -> gosdn.networkelement.Change + 52, // 39: gosdn.networkelement.GetChangeResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain + 35, // 40: gosdn.networkelement.GetChangeResponse.change:type_name -> gosdn.networkelement.Change + 37, // 41: gosdn.networkelement.SetChangeListRequest.change:type_name -> gosdn.networkelement.SetChange + 0, // 42: gosdn.networkelement.SetChangeListResponse.status:type_name -> gosdn.networkelement.Status + 30, // 43: gosdn.networkelement.SetChangeListResponse.responses:type_name -> gosdn.networkelement.SetResponse + 45, // 44: gosdn.networkelement.SubscriptionList.subscription:type_name -> gosdn.networkelement.Subscription + 4, // 45: gosdn.networkelement.SubscriptionList.mode:type_name -> gosdn.networkelement.SubscriptionMode + 5, // 46: gosdn.networkelement.Subscription.stream_mode:type_name -> gosdn.networkelement.StreamMode + 44, // 47: gosdn.networkelement.SubscribePathRequest.sublist:type_name -> gosdn.networkelement.SubscriptionList + 0, // 48: gosdn.networkelement.SubscribePathResponse.status:type_name -> gosdn.networkelement.Status + 50, // 49: gosdn.networkelement.SubscribePathResponse.mne_notification:type_name -> gnmi.Notification + 7, // 50: gosdn.networkelement.NetworkElementService.Add:input_type -> gosdn.networkelement.AddNetworkElementRequest + 9, // 51: gosdn.networkelement.NetworkElementService.Get:input_type -> gosdn.networkelement.GetNetworkElementRequest + 11, // 52: gosdn.networkelement.NetworkElementService.GetAll:input_type -> gosdn.networkelement.GetAllNetworkElementRequest + 13, // 53: gosdn.networkelement.NetworkElementService.Update:input_type -> gosdn.networkelement.UpdateNetworkElementRequest + 19, // 54: gosdn.networkelement.NetworkElementService.GetMneList:input_type -> gosdn.networkelement.GetMneListRequest + 21, // 55: gosdn.networkelement.NetworkElementService.GetFlattenedMneList:input_type -> gosdn.networkelement.GetFlattenedMneListRequest + 23, // 56: gosdn.networkelement.NetworkElementService.GetMne:input_type -> gosdn.networkelement.GetMneRequest + 26, // 57: gosdn.networkelement.NetworkElementService.SetMneList:input_type -> gosdn.networkelement.SetMneListRequest + 28, // 58: gosdn.networkelement.NetworkElementService.GetPath:input_type -> gosdn.networkelement.GetPathRequest + 31, // 59: gosdn.networkelement.NetworkElementService.SetPathList:input_type -> gosdn.networkelement.SetPathListRequest + 33, // 60: gosdn.networkelement.NetworkElementService.DeleteMne:input_type -> gosdn.networkelement.DeleteMneRequest + 38, // 61: gosdn.networkelement.NetworkElementService.GetChangeList:input_type -> gosdn.networkelement.GetChangeListRequest + 40, // 62: gosdn.networkelement.NetworkElementService.GetChange:input_type -> gosdn.networkelement.GetChangeRequest + 42, // 63: gosdn.networkelement.NetworkElementService.SetChangeList:input_type -> gosdn.networkelement.SetChangeListRequest + 46, // 64: gosdn.networkelement.NetworkElementService.SubscribePath:input_type -> gosdn.networkelement.SubscribePathRequest + 8, // 65: gosdn.networkelement.NetworkElementService.Add:output_type -> gosdn.networkelement.AddNetworkElementResponse + 10, // 66: gosdn.networkelement.NetworkElementService.Get:output_type -> gosdn.networkelement.GetNetworkElementResponse + 12, // 67: gosdn.networkelement.NetworkElementService.GetAll:output_type -> gosdn.networkelement.GetAllNetworkElementResponse + 14, // 68: gosdn.networkelement.NetworkElementService.Update:output_type -> gosdn.networkelement.UpdateNetworkElementResponse + 20, // 69: gosdn.networkelement.NetworkElementService.GetMneList:output_type -> gosdn.networkelement.GetMneListResponse + 22, // 70: gosdn.networkelement.NetworkElementService.GetFlattenedMneList:output_type -> gosdn.networkelement.GetFlattenedMneListResponse + 24, // 71: gosdn.networkelement.NetworkElementService.GetMne:output_type -> gosdn.networkelement.GetMneResponse + 27, // 72: gosdn.networkelement.NetworkElementService.SetMneList:output_type -> gosdn.networkelement.SetMneListResponse + 29, // 73: gosdn.networkelement.NetworkElementService.GetPath:output_type -> gosdn.networkelement.GetPathResponse + 32, // 74: gosdn.networkelement.NetworkElementService.SetPathList:output_type -> gosdn.networkelement.SetPathListResponse + 34, // 75: gosdn.networkelement.NetworkElementService.DeleteMne:output_type -> gosdn.networkelement.DeleteMneResponse + 39, // 76: gosdn.networkelement.NetworkElementService.GetChangeList:output_type -> gosdn.networkelement.GetChangeListResponse + 41, // 77: gosdn.networkelement.NetworkElementService.GetChange:output_type -> gosdn.networkelement.GetChangeResponse + 43, // 78: gosdn.networkelement.NetworkElementService.SetChangeList:output_type -> gosdn.networkelement.SetChangeListResponse + 47, // 79: gosdn.networkelement.NetworkElementService.SubscribePath:output_type -> gosdn.networkelement.SubscribePathResponse + 65, // [65:80] is the sub-list for method output_type + 50, // [50:65] is the sub-list for method input_type + 50, // [50:50] is the sub-list for extension type_name + 50, // [50:50] is the sub-list for extension extendee + 0, // [0:50] is the sub-list for field type_name } func init() { file_gosdn_networkelement_networkelement_proto_init() } @@ -3845,7 +3918,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFlattenedMneListResponse); i { + switch v := v.(*GetFlattenedMneListRequest); i { case 0: return &v.state case 1: @@ -3857,7 +3930,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMneRequest); i { + switch v := v.(*GetFlattenedMneListResponse); i { case 0: return &v.state case 1: @@ -3869,7 +3942,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMneResponse); i { + switch v := v.(*GetMneRequest); i { case 0: return &v.state case 1: @@ -3881,7 +3954,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetMne); i { + switch v := v.(*GetMneResponse); i { case 0: return &v.state case 1: @@ -3893,7 +3966,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetMneListRequest); i { + switch v := v.(*SetMne); i { case 0: return &v.state case 1: @@ -3905,7 +3978,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetMneListResponse); i { + switch v := v.(*SetMneListRequest); i { case 0: return &v.state case 1: @@ -3917,7 +3990,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPathRequest); i { + switch v := v.(*SetMneListResponse); i { case 0: return &v.state case 1: @@ -3929,7 +4002,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPathResponse); i { + switch v := v.(*GetPathRequest); i { case 0: return &v.state case 1: @@ -3941,7 +4014,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetResponse); i { + switch v := v.(*GetPathResponse); i { case 0: return &v.state case 1: @@ -3953,7 +4026,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetPathListRequest); i { + switch v := v.(*SetResponse); i { case 0: return &v.state case 1: @@ -3965,7 +4038,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetPathListResponse); i { + switch v := v.(*SetPathListRequest); i { case 0: return &v.state case 1: @@ -3977,7 +4050,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteMneRequest); i { + switch v := v.(*SetPathListResponse); i { case 0: return &v.state case 1: @@ -3989,7 +4062,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteMneResponse); i { + switch v := v.(*DeleteMneRequest); i { case 0: return &v.state case 1: @@ -4001,7 +4074,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Change); i { + switch v := v.(*DeleteMneResponse); i { case 0: return &v.state case 1: @@ -4013,7 +4086,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeRequest); i { + switch v := v.(*Change); i { case 0: return &v.state case 1: @@ -4025,7 +4098,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetChange); i { + switch v := v.(*ChangeRequest); i { case 0: return &v.state case 1: @@ -4037,7 +4110,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetChangeListRequest); i { + switch v := v.(*SetChange); i { case 0: return &v.state case 1: @@ -4049,7 +4122,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetChangeListResponse); i { + switch v := v.(*GetChangeListRequest); i { case 0: return &v.state case 1: @@ -4061,7 +4134,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetChangeRequest); i { + switch v := v.(*GetChangeListResponse); i { case 0: return &v.state case 1: @@ -4073,7 +4146,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetChangeResponse); i { + switch v := v.(*GetChangeRequest); i { case 0: return &v.state case 1: @@ -4085,7 +4158,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetChangeListRequest); i { + switch v := v.(*GetChangeResponse); i { case 0: return &v.state case 1: @@ -4097,7 +4170,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetChangeListResponse); i { + switch v := v.(*SetChangeListRequest); i { case 0: return &v.state case 1: @@ -4109,7 +4182,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscriptionList); i { + switch v := v.(*SetChangeListResponse); i { case 0: return &v.state case 1: @@ -4121,7 +4194,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Subscription); i { + switch v := v.(*SubscriptionList); i { case 0: return &v.state case 1: @@ -4133,7 +4206,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribePathRequest); i { + switch v := v.(*Subscription); i { case 0: return &v.state case 1: @@ -4145,6 +4218,18 @@ func file_gosdn_networkelement_networkelement_proto_init() { } } file_gosdn_networkelement_networkelement_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribePathRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gosdn_networkelement_networkelement_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribePathResponse); i { case 0: return &v.state @@ -4163,7 +4248,7 @@ func file_gosdn_networkelement_networkelement_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gosdn_networkelement_networkelement_proto_rawDesc, NumEnums: 6, - NumMessages: 41, + NumMessages: 42, NumExtensions: 0, NumServices: 1, }, diff --git a/api/go/gosdn/networkelement/networkelement.pb.gw.go b/api/go/gosdn/networkelement/networkelement.pb.gw.go index bc54ecd353acaf84a72d0ec783bf1bb3f14a1161..304f123bd0637b659b26656a6cb78443cd9e9cbc 100644 --- a/api/go/gosdn/networkelement/networkelement.pb.gw.go +++ b/api/go/gosdn/networkelement/networkelement.pb.gw.go @@ -176,7 +176,7 @@ var ( ) func request_NetworkElementService_GetFlattenedMneList_0(ctx context.Context, marshaler runtime.Marshaler, client NetworkElementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetMneListRequest + var protoReq GetFlattenedMneListRequest var metadata runtime.ServerMetadata var ( @@ -209,7 +209,7 @@ func request_NetworkElementService_GetFlattenedMneList_0(ctx context.Context, ma } func local_request_NetworkElementService_GetFlattenedMneList_0(ctx context.Context, marshaler runtime.Marshaler, server NetworkElementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetMneListRequest + var protoReq GetFlattenedMneListRequest var metadata runtime.ServerMetadata var ( diff --git a/api/go/gosdn/networkelement/networkelement_grpc.pb.go b/api/go/gosdn/networkelement/networkelement_grpc.pb.go index 10d29b3d051a2edd4c626fa774513fa69f16d0af..45a152da23a6b110237733988fc7eff4031db8bd 100644 --- a/api/go/gosdn/networkelement/networkelement_grpc.pb.go +++ b/api/go/gosdn/networkelement/networkelement_grpc.pb.go @@ -27,12 +27,11 @@ type NetworkElementServiceClient interface { // Full MNEs are provided, which also includes the MNE config as gNMI // notification. GetMneList(ctx context.Context, in *GetMneListRequest, opts ...grpc.CallOption) (*GetMneListResponse, error) - //TODO(PND): change GetRequest! // Allows to request all Managed Network Elements (MNE) which are // managed by a specific Principal Network Domain. // Flattened MNEs are provided, which does not include the MNE config as gNMI // notification. - GetFlattenedMneList(ctx context.Context, in *GetMneListRequest, opts ...grpc.CallOption) (*GetFlattenedMneListResponse, error) + GetFlattenedMneList(ctx context.Context, in *GetFlattenedMneListRequest, opts ...grpc.CallOption) (*GetFlattenedMneListResponse, error) // Allows to request a specific Managed Network Element which is managed by a // specific Principal Network Domain. GetMne(ctx context.Context, in *GetMneRequest, opts ...grpc.CallOption) (*GetMneResponse, error) @@ -113,7 +112,7 @@ func (c *networkElementServiceClient) GetMneList(ctx context.Context, in *GetMne return out, nil } -func (c *networkElementServiceClient) GetFlattenedMneList(ctx context.Context, in *GetMneListRequest, opts ...grpc.CallOption) (*GetFlattenedMneListResponse, error) { +func (c *networkElementServiceClient) GetFlattenedMneList(ctx context.Context, in *GetFlattenedMneListRequest, opts ...grpc.CallOption) (*GetFlattenedMneListResponse, error) { out := new(GetFlattenedMneListResponse) err := c.cc.Invoke(ctx, "/gosdn.networkelement.NetworkElementService/GetFlattenedMneList", in, out, opts...) if err != nil { @@ -239,12 +238,11 @@ type NetworkElementServiceServer interface { // Full MNEs are provided, which also includes the MNE config as gNMI // notification. GetMneList(context.Context, *GetMneListRequest) (*GetMneListResponse, error) - //TODO(PND): change GetRequest! // Allows to request all Managed Network Elements (MNE) which are // managed by a specific Principal Network Domain. // Flattened MNEs are provided, which does not include the MNE config as gNMI // notification. - GetFlattenedMneList(context.Context, *GetMneListRequest) (*GetFlattenedMneListResponse, error) + GetFlattenedMneList(context.Context, *GetFlattenedMneListRequest) (*GetFlattenedMneListResponse, error) // Allows to request a specific Managed Network Element which is managed by a // specific Principal Network Domain. GetMne(context.Context, *GetMneRequest) (*GetMneResponse, error) @@ -292,7 +290,7 @@ func (UnimplementedNetworkElementServiceServer) Update(context.Context, *UpdateN func (UnimplementedNetworkElementServiceServer) GetMneList(context.Context, *GetMneListRequest) (*GetMneListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMneList not implemented") } -func (UnimplementedNetworkElementServiceServer) GetFlattenedMneList(context.Context, *GetMneListRequest) (*GetFlattenedMneListResponse, error) { +func (UnimplementedNetworkElementServiceServer) GetFlattenedMneList(context.Context, *GetFlattenedMneListRequest) (*GetFlattenedMneListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetFlattenedMneList not implemented") } func (UnimplementedNetworkElementServiceServer) GetMne(context.Context, *GetMneRequest) (*GetMneResponse, error) { @@ -426,7 +424,7 @@ func _NetworkElementService_GetMneList_Handler(srv interface{}, ctx context.Cont } func _NetworkElementService_GetFlattenedMneList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetMneListRequest) + in := new(GetFlattenedMneListRequest) if err := dec(in); err != nil { return nil, err } @@ -438,7 +436,7 @@ func _NetworkElementService_GetFlattenedMneList_Handler(srv interface{}, ctx con FullMethod: "/gosdn.networkelement.NetworkElementService/GetFlattenedMneList", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NetworkElementServiceServer).GetFlattenedMneList(ctx, req.(*GetMneListRequest)) + return srv.(NetworkElementServiceServer).GetFlattenedMneList(ctx, req.(*GetFlattenedMneListRequest)) } return interceptor(ctx, in, info, handler) } diff --git a/api/openapiv2/gosdn_northbound.swagger.json b/api/openapiv2/gosdn_northbound.swagger.json index 1d8176904831a0c8b32eef46c6d4b06afcbf3739..a7ddf2f479d9c38b31e173287907615a29697fed 100644 --- a/api/openapiv2/gosdn_northbound.swagger.json +++ b/api/openapiv2/gosdn_northbound.swagger.json @@ -621,7 +621,7 @@ }, "/pnds/{pid}/mnes": { "get": { - "summary": "TODO(PND): change GetRequest!\nAllows to request all Managed Network Elements (MNE) which are\nmanaged by a specific Principal Network Domain.\nFlattened MNEs are provided, which does not include the MNE config as gNMI\nnotification.", + "summary": "Allows to request all Managed Network Elements (MNE) which are\nmanaged by a specific Principal Network Domain.\nFlattened MNEs are provided, which does not include the MNE config as gNMI\nnotification.", "operationId": "NetworkElementService_GetFlattenedMneList", "responses": { "200": { @@ -3346,8 +3346,7 @@ "$ref": "#/definitions/networkelementFlattenedManagedNetworkElement" } } - }, - "title": "TODO(PND): add request here" + } }, "networkelementGetMneListResponse": { "type": "object", @@ -3442,14 +3441,16 @@ "transportAddress": { "type": "string" }, + "transportOption": { + "$ref": "#/definitions/transportTransportOption" + }, "metadata": { "$ref": "#/definitions/conflictMetadata" }, - "associatedPndId": { + "associatedPnd": { "type": "string" } - }, - "title": "TODO(PND): add pnd id to this object, for reference" + } }, "networkelementSetChange": { "type": "object", diff --git a/api/proto/gosdn/networkelement/networkelement.proto b/api/proto/gosdn/networkelement/networkelement.proto index 1d91b3eb7337c10e2d90912286bcdf733a5af589..95ecca8fdc564c7e0216c89d2f3cd4515773322a 100644 --- a/api/proto/gosdn/networkelement/networkelement.proto +++ b/api/proto/gosdn/networkelement/networkelement.proto @@ -54,12 +54,11 @@ service NetworkElementService { // notification. rpc GetMneList(GetMneListRequest) returns (GetMneListResponse); - //TODO(PND): change GetRequest! // Allows to request all Managed Network Elements (MNE) which are // managed by a specific Principal Network Domain. // Flattened MNEs are provided, which does not include the MNE config as gNMI // notification. - rpc GetFlattenedMneList(GetMneListRequest) returns (GetFlattenedMneListResponse) { + rpc GetFlattenedMneList(GetFlattenedMneListRequest) returns (GetFlattenedMneListResponse) { option (google.api.http) = { get: "/pnds/{pid}/mnes" }; @@ -192,7 +191,6 @@ message DeleteNetworkElementResponse { Status status = 2; } -//TODO(PND): add pnd id to this object, for reference message ManagedNetworkElement { string id = 1; string name = 2; @@ -200,8 +198,9 @@ message ManagedNetworkElement { repeated gnmi.Notification mne_notification = 4; .gosdn.southbound.SouthboundInterface sbi = 5; string transport_address = 6; - conflict.Metadata metadata = 7; - string associated_pnd_id = 8; + .gosdn.transport.TransportOption transport_option = 7; + conflict.Metadata metadata = 8; + string associated_pnd = 9; } message FlattenedManagedNetworkElement { @@ -223,7 +222,11 @@ message GetMneListResponse { repeated ManagedNetworkElement mne = 3; } -//TODO(PND): add request here +message GetFlattenedMneListRequest { + int64 timestamp = 1; // Timestamp in nanoseconds since Epoch. + string pid = 2; +} + message GetFlattenedMneListResponse { int64 timestamp = 1; // Timestamp in nanoseconds since Epoch. // TODO: Check if this is really needed. Perhaps a reference to the PND's ID diff --git a/applications/arista-routing-engine/network-element.go b/applications/arista-routing-engine/network-element.go index c11ba1287d34a4084c4b5d1a3dc041905e0992fb..29a2953be935a8c7096471eb67cec348ecfdd0d9 100644 --- a/applications/arista-routing-engine/network-element.go +++ b/applications/arista-routing-engine/network-element.go @@ -97,7 +97,7 @@ func adjustInterfacesOfNetworkElement(networkElementServer mnepb.NetworkElementS requestUpdate := &mnepb.UpdateNetworkElementRequest{ Timestamp: time.Now().UnixNano(), - NetworkElement: &mnepb.NetworkElement{ + NetworkElement: &mnepb.ManagedNetworkElement{ Id: mne.UUID.String(), Name: mne.Name, Model: modelAsString, @@ -140,7 +140,7 @@ func adjustNodeRoutesToMatchConfiguration(networkElementServer mnepb.NetworkElem requestUpdate := &mnepb.UpdateNetworkElementRequest{ Timestamp: time.Now().UnixNano(), - NetworkElement: &mnepb.NetworkElement{ + NetworkElement: &mnepb.ManagedNetworkElement{ Id: mne.UUID.String(), Name: mne.Name, Model: modelAsString, diff --git a/applications/hostname-checker/app.go b/applications/hostname-checker/app.go index b2107e08536e5ac9d50730c15b88e4fcc3825f90..32b6457870de5a29cfd8153060ed33cde3278a99 100644 --- a/applications/hostname-checker/app.go +++ b/applications/hostname-checker/app.go @@ -105,7 +105,7 @@ func (a *Application) callback(event *event.Event) { requestUpdate := &networkelement.UpdateNetworkElementRequest{ Timestamp: time.Now().UnixNano(), - NetworkElement: &networkelement.NetworkElement{ + NetworkElement: &networkelement.ManagedNetworkElement{ Id: d.UUID.String(), Name: d.Name, Model: modelAsString, diff --git a/controller/api/initialise_test.go b/controller/api/initialise_test.go index 01a096869481a68d39d7367174b460c7757d3bb1..8f32b7f4d26276f3d6401b723ca44769ea484b3e 100644 --- a/controller/api/initialise_test.go +++ b/controller/api/initialise_test.go @@ -189,7 +189,9 @@ func bootstrapUnitTest() { TransportOption: &tpb.TransportOption_GnmiTransportOption{ GnmiTransportOption: &tpb.GnmiTransportOption{}, }, - }, sbi, conflict.Metadata{ResourceVersion: 0}) + }, sbi, + pndUUID, + conflict.Metadata{ResourceVersion: 0}) _ = networkElementService.Add(mne) pndService := &mocks.PndService{} diff --git a/controller/api/managedNetworkElement.go b/controller/api/managedNetworkElement.go index 48ecebea3c55719df85b8272430c52b878c8ba7c..cb61a4fdb809ab931a1f7beeee02bdc609689fc1 100644 --- a/controller/api/managedNetworkElement.go +++ b/controller/api/managedNetworkElement.go @@ -128,7 +128,7 @@ func GetFlattenedNetworkElements(ctx context.Context, addr, pid string) (*mnepb. return nil, err } - req := &mnepb.GetMneListRequest{ + req := &mnepb.GetFlattenedMneListRequest{ Timestamp: time.Now().UnixNano(), Pid: pid, } diff --git a/controller/interfaces/networkdomain/pnd.go b/controller/interfaces/networkdomain/pnd.go index c252c77709af0bfc434556005cb1851ab083da5c..52f4d235ec5422c769889f7890149b44af1b14e1 100644 --- a/controller/interfaces/networkdomain/pnd.go +++ b/controller/interfaces/networkdomain/pnd.go @@ -16,7 +16,7 @@ type NetworkDomain interface { Destroy() error AddSbi(s southbound.SouthboundInterface) error RemoveSbi(uuid.UUID) error - AddNetworkElement(name string, opts *tpb.TransportOption, sid uuid.UUID) (uuid.UUID, error) + AddNetworkElement(name string, opts *tpb.TransportOption, sid uuid.UUID, pndID uuid.UUID) (uuid.UUID, error) GetNetworkElement(identifier string) (networkelement.NetworkElement, error) RemoveNetworkElement(uuid.UUID) error UpdateNetworkElement(uuid.UUID, string) error diff --git a/controller/interfaces/networkelement/networkElement.go b/controller/interfaces/networkelement/networkElement.go index 01a81bd66aab660c00431d4b3d08f7a7c70ff9aa..4323c860035cf224eeaf07002610819721d2b96e 100644 --- a/controller/interfaces/networkelement/networkElement.go +++ b/controller/interfaces/networkelement/networkElement.go @@ -56,4 +56,6 @@ type LoadedNetworkElement struct { Model string `json:"model,omitempty" bson:"model,omitempty"` Metadata conflict.Metadata `json:"metadata" bson:"metadata"` + + PndID string `json:"pndid,omitempty"` } diff --git a/controller/mocks/NetworkDomain.go b/controller/mocks/NetworkDomain.go index 6f742748d9aa98a4cfc2184c3130241bdc5c8daa..97b0d00651e6fec3b660ea6f9cbdc068c93f0623 100644 --- a/controller/mocks/NetworkDomain.go +++ b/controller/mocks/NetworkDomain.go @@ -24,13 +24,13 @@ type NetworkDomain struct { mock.Mock } -// AddNetworkElement provides a mock function with given fields: name, opts, sid -func (_m *NetworkDomain) AddNetworkElement(name string, opts *transport.TransportOption, sid uuid.UUID) (uuid.UUID, error) { - ret := _m.Called(name, opts, sid) +// AddNetworkElement provides a mock function with given fields: name, opts, sid, pndID +func (_m *NetworkDomain) AddNetworkElement(name string, opts *transport.TransportOption, sid uuid.UUID, pndID uuid.UUID) (uuid.UUID, error) { + ret := _m.Called(name, opts, sid, pndID) var r0 uuid.UUID - if rf, ok := ret.Get(0).(func(string, *transport.TransportOption, uuid.UUID) uuid.UUID); ok { - r0 = rf(name, opts, sid) + if rf, ok := ret.Get(0).(func(string, *transport.TransportOption, uuid.UUID, uuid.UUID) uuid.UUID); ok { + r0 = rf(name, opts, sid, pndID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(uuid.UUID) @@ -38,8 +38,8 @@ func (_m *NetworkDomain) AddNetworkElement(name string, opts *transport.Transpor } var r1 error - if rf, ok := ret.Get(1).(func(string, *transport.TransportOption, uuid.UUID) error); ok { - r1 = rf(name, opts, sid) + if rf, ok := ret.Get(1).(func(string, *transport.TransportOption, uuid.UUID, uuid.UUID) error); ok { + r1 = rf(name, opts, sid, pndID) } else { r1 = ret.Error(1) } diff --git a/controller/mocks/Service.go b/controller/mocks/Service.go index 2f08c6f087a3c1f8dd5740b86be0e8a202cc9edb..b99e05d7c503e79a6845ad6a3f8292ff435e6ef9 100644 --- a/controller/mocks/Service.go +++ b/controller/mocks/Service.go @@ -3,8 +3,8 @@ package mocks import ( - controllerevent "code.fbi.h-da.de/danet/gosdn/controller/event" - + networkdomain "code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain" + store "code.fbi.h-da.de/danet/gosdn/controller/store" mock "github.com/stretchr/testify/mock" ) @@ -13,18 +13,27 @@ type Service struct { mock.Mock } -// CloseConnection provides a mock function with given fields: -func (_m *Service) CloseConnection() { - _m.Called() +// Add provides a mock function with given fields: _a0 +func (_m *Service) Add(_a0 networkdomain.NetworkDomain) error { + ret := _m.Called(_a0) + + var r0 error + if rf, ok := ret.Get(0).(func(networkdomain.NetworkDomain) error); ok { + r0 = rf(_a0) + } else { + r0 = ret.Error(0) + } + + return r0 } -// PublishEvent provides a mock function with given fields: topic, _a1 -func (_m *Service) PublishEvent(topic string, _a1 controllerevent.Event) error { - ret := _m.Called(topic, _a1) +// Delete provides a mock function with given fields: _a0 +func (_m *Service) Delete(_a0 networkdomain.NetworkDomain) error { + ret := _m.Called(_a0) var r0 error - if rf, ok := ret.Get(0).(func(string, controllerevent.Event) error); ok { - r0 = rf(topic, _a1) + if rf, ok := ret.Get(0).(func(networkdomain.NetworkDomain) error); ok { + r0 = rf(_a0) } else { r0 = ret.Error(0) } @@ -32,23 +41,50 @@ func (_m *Service) PublishEvent(topic string, _a1 controllerevent.Event) error { return r0 } -// Reconnect provides a mock function with given fields: -func (_m *Service) Reconnect() { - _m.Called() +// Get provides a mock function with given fields: _a0 +func (_m *Service) Get(_a0 store.Query) (networkdomain.NetworkDomain, error) { + ret := _m.Called(_a0) + + var r0 networkdomain.NetworkDomain + if rf, ok := ret.Get(0).(func(store.Query) networkdomain.NetworkDomain); ok { + r0 = rf(_a0) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(networkdomain.NetworkDomain) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(store.Query) error); ok { + r1 = rf(_a0) + } else { + r1 = ret.Error(1) + } + + return r0, r1 } -// RetryPublish provides a mock function with given fields: topic, _a1 -func (_m *Service) RetryPublish(topic string, _a1 controllerevent.Event) error { - ret := _m.Called(topic, _a1) +// GetAll provides a mock function with given fields: +func (_m *Service) GetAll() ([]networkdomain.NetworkDomain, error) { + ret := _m.Called() - var r0 error - if rf, ok := ret.Get(0).(func(string, controllerevent.Event) error); ok { - r0 = rf(topic, _a1) + var r0 []networkdomain.NetworkDomain + if rf, ok := ret.Get(0).(func() []networkdomain.NetworkDomain); ok { + r0 = rf() } else { - r0 = ret.Error(0) + if ret.Get(0) != nil { + r0 = ret.Get(0).([]networkdomain.NetworkDomain) + } } - return r0 + var r1 error + if rf, ok := ret.Get(1).(func() error); ok { + r1 = rf() + } else { + r1 = ret.Error(1) + } + + return r0, r1 } type mockConstructorTestingTNewService interface { diff --git a/controller/northbound/server/core_test.go b/controller/northbound/server/core_test.go index 57c4d58677ef4636eb56c78aaebedd95bce1d2bb..8167444e30cb0f197ee2c872fe4bd3821dc535aa 100644 --- a/controller/northbound/server/core_test.go +++ b/controller/northbound/server/core_test.go @@ -89,11 +89,11 @@ func getTestCoreServer(t *testing.T) *CoreServer { mockPnd.On("Request", mock.Anything, mock.Anything).Return(nil, nil) pndStore := nucleus.NewMemoryPndStore() - if err := pndStore.Add(mockPnd); err != nil { - t.Fatal(err) - } pndService := nucleus.NewPndService(pndStore) + if err := pndService.Add(mockPnd); err != nil { + t.Fatal(err) + } c := NewCoreServer(pndService) diff --git a/controller/northbound/server/networkElement.go b/controller/northbound/server/networkElement.go index 76b62e0cdf9f1d7dfe075c77a0e90ebc338e4af0..1dd69525e76c4cd14268e4519feb1f8d175d6590 100644 --- a/controller/northbound/server/networkElement.go +++ b/controller/northbound/server/networkElement.go @@ -56,8 +56,12 @@ func (n *NetworkElementServer) Add(ctx context.Context, request *mnepb.AddNetwor return nil, status.Errorf(codes.Aborted, "%v", err) } - id, err := n.addNetworkElement(ctx, request.NetworkElement.NetworkElementName, request.NetworkElement.TransportOption, sbiID) + pndID, err := uuid.Parse(request.Pid) + if err != nil { + return nil, status.Errorf(codes.Aborted, "%v", err) + } + id, err := n.addNetworkElement(ctx, request.NetworkElement.NetworkElementName, request.NetworkElement.TransportOption, sbiID, pndID) if err != nil { return nil, status.Errorf(codes.Aborted, "%v", err) } @@ -69,7 +73,7 @@ func (n *NetworkElementServer) Add(ctx context.Context, request *mnepb.AddNetwor }, nil } -func (n *NetworkElementServer) addNetworkElement(ctx context.Context, name string, transportOpt *tpb.TransportOption, sbiID uuid.UUID) (uuid.UUID, error) { +func (n *NetworkElementServer) addNetworkElement(ctx context.Context, name string, transportOpt *tpb.TransportOption, sbiID uuid.UUID, pndID uuid.UUID) (uuid.UUID, error) { var sbi southbound.SouthboundInterface var err error @@ -97,7 +101,7 @@ func (n *NetworkElementServer) addNetworkElement(ctx context.Context, name strin return uuid.Nil, err } - mne, err := nucleus.NewNetworkElement(name, uuid.Nil, transportOpt, sbi, conflict.Metadata{ResourceVersion: 0}) + mne, err := nucleus.NewNetworkElement(name, uuid.Nil, transportOpt, sbi, pndID, conflict.Metadata{ResourceVersion: 0}) if err != nil { return uuid.Nil, err } @@ -173,7 +177,7 @@ func (n *NetworkElementServer) Get(ctx context.Context, request *mnepb.GetNetwor }, nil } -// TODO(PND): issue: change to update entity instead of model, model gets updated via setpathlist +// TODO(PND): let someone check if this makes sense! // Update updates a network element. func (n *NetworkElementServer) Update(ctx context.Context, request *mnepb.UpdateNetworkElementRequest) (*mnepb.UpdateNetworkElementResponse, error) { mneID, err := uuid.Parse(request.NetworkElement.Id) @@ -184,7 +188,7 @@ func (n *NetworkElementServer) Update(ctx context.Context, request *mnepb.Update }, err } - err = n.mneService.UpdateModel(mneID, request.NetworkElement.Model) + pndID, err := uuid.Parse(request.NetworkElement.AssociatedPnd) if err != nil { return &mnepb.UpdateNetworkElementResponse{ Timestamp: time.Now().UnixNano(), @@ -192,6 +196,46 @@ func (n *NetworkElementServer) Update(ctx context.Context, request *mnepb.Update }, err } + sbiID, err := uuid.Parse(request.NetworkElement.Sbi.Id) + if err != nil { + return &mnepb.UpdateNetworkElementResponse{ + Timestamp: time.Now().UnixNano(), + Status: mnepb.Status_STATUS_ERROR, + }, err + } + + sbi, err := n.sbiService.Get(store.Query{ID: sbiID}) + if err != nil { + return &mnepb.UpdateNetworkElementResponse{ + Timestamp: time.Now().UnixNano(), + Status: mnepb.Status_STATUS_ERROR, + }, err + } + + mne, err := nucleus.NewNetworkElement(request.NetworkElement.Name, + uuid.MustParse(request.NetworkElement.Id), + request.NetworkElement.TransportOption, + sbi, + pndID, + conflict.Metadata{ResourceVersion: int(request.NetworkElement.Metadata.ResourceVersion) + 1}, + ) + if err != nil { + return &mnepb.UpdateNetworkElementResponse{ + Timestamp: time.Now().UnixNano(), + Status: mnepb.Status_STATUS_ERROR, + }, err + } + + err = n.mneService.Update(mne) + if err != nil { + return &mnepb.UpdateNetworkElementResponse{ + Timestamp: time.Now().UnixNano(), + Status: mnepb.Status_STATUS_ERROR, + }, err + } + + // TODO(PND): this should probably be removed because we the model which is already applied should be + // stored again if I did not make a mistake here! err = n.ensureIntendedConfigurationIsAppliedOnNetworkElement(mneID) if err != nil { return &mnepb.UpdateNetworkElementResponse{ @@ -346,7 +390,7 @@ func (n *NetworkElementServer) GetMneList(ctx context.Context, request *mnepb.Ge } // GetFlattenedMneList returns a list of existing mnes. -func (n *NetworkElementServer) GetFlattenedMneList(ctx context.Context, request *mnepb.GetMneListRequest) (*mnepb.GetFlattenedMneListResponse, error) { +func (n *NetworkElementServer) GetFlattenedMneList(ctx context.Context, request *mnepb.GetFlattenedMneListRequest) (*mnepb.GetFlattenedMneListResponse, error) { labels := prometheus.Labels{"service": "mne", "rpc": "get"} start := metrics.StartHook(labels, grpcRequestsTotal) defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds) @@ -665,6 +709,12 @@ func (n *NetworkElementServer) SetMneList(ctx context.Context, request *mnepb.Se start := metrics.StartHook(labels, grpcRequestsTotal) defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds) + pndID, err := uuid.Parse(request.Pid) + if err != nil { + log.Error(err) + return nil, status.Errorf(codes.Aborted, "%v", err) + } + networkElementIDs := make([]uuid.UUID, 0, len(request.Mne)) for _, r := range request.Mne { sid, err := uuid.Parse(r.Sbi.Id) @@ -672,7 +722,7 @@ func (n *NetworkElementServer) SetMneList(ctx context.Context, request *mnepb.Se log.Error(err) return nil, status.Errorf(codes.Aborted, "%v", err) } - mneID, err := n.addMne(ctx, r.MneName, r.TransportOption, sid) + mneID, err := n.addMne(ctx, r.MneName, r.TransportOption, sid, pndID) if err != nil { log.Error(err) return nil, status.Errorf(codes.Aborted, "%v", err) @@ -692,7 +742,7 @@ func (n *NetworkElementServer) SetMneList(ctx context.Context, request *mnepb.Se }, nil } -func (n *NetworkElementServer) addMne(ctx context.Context, name string, opt *tpb.TransportOption, sid uuid.UUID) (uuid.UUID, error) { +func (n *NetworkElementServer) addMne(ctx context.Context, name string, opt *tpb.TransportOption, sid uuid.UUID, pndID uuid.UUID) (uuid.UUID, error) { var sbi southbound.SouthboundInterface var err error @@ -720,7 +770,7 @@ func (n *NetworkElementServer) addMne(ctx context.Context, name string, opt *tpb return uuid.Nil, err } - mne, err := nucleus.NewNetworkElement(name, uuid.Nil, opt, sbi, conflict.Metadata{ResourceVersion: 0}) + mne, err := nucleus.NewNetworkElement(name, uuid.Nil, opt, sbi, pndID, conflict.Metadata{ResourceVersion: 0}) if err != nil { return uuid.Nil, err } diff --git a/controller/northbound/server/test_util_test.go b/controller/northbound/server/test_util_test.go index a230cc8722e30a94c365c18ce9ceafa84c9f661b..a4e8a5e349ea19dfcedf0e91bc20b6d522e5ae22 100644 --- a/controller/northbound/server/test_util_test.go +++ b/controller/northbound/server/test_util_test.go @@ -240,7 +240,7 @@ func getMockPnd(t *testing.T) networkdomain.NetworkDomain { mockPnd.On("NetworkElements").Return([]uuid.UUID{mneUUID}) mockPnd.On("PendingChanges").Return([]uuid.UUID{pendingChangeUUID}) mockPnd.On("CommittedChanges").Return([]uuid.UUID{committedChangeUUID}) - mockPnd.On("AddNetworkElement", mock.Anything, mock.Anything, mock.Anything).Return(nil) + mockPnd.On("AddNetworkElement", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) mockPnd.On("GetNetworkElement", mock.Anything).Return(mockNetworkElement, nil) mockPnd.On("Commit", mock.Anything).Return(nil) mockPnd.On("Confirm", mock.Anything).Return(nil) diff --git a/controller/nucleus/networkElement.go b/controller/nucleus/networkElement.go index 692253286282564b4c197873f4f292382deee727..d79ba1acb082199636514ad7bd3b582391f7cc40 100644 --- a/controller/nucleus/networkElement.go +++ b/controller/nucleus/networkElement.go @@ -23,6 +23,7 @@ func NewNetworkElement( uuidInput uuid.UUID, opt *tpb.TransportOption, sbi southbound.SouthboundInterface, + pndID uuid.UUID, metadata conflict.Metadata, ) (networkelement.NetworkElement, error) { t, err := NewTransport(opt, sbi) @@ -76,6 +77,7 @@ func NewNetworkElement( transport: t, name: name, transportOptions: opt, + PndID: pndID, Metadata: metadata, }, nil } @@ -100,6 +102,9 @@ type CommonNetworkElement struct { transportOptions *tpb.TransportOption Metadata conflict.Metadata + + // ID of the PND this network element is associated with. + PndID uuid.UUID } // ID returns the UUID of the Network Element. diff --git a/controller/nucleus/networkElementFilesystemStore_test.go b/controller/nucleus/networkElementFilesystemStore_test.go index 522ebc330eaf9c6b03a38d1212ae811f1bd3cb96..ca38b93db00d6865d46d994b1d41b3a6f1af11fb 100644 --- a/controller/nucleus/networkElementFilesystemStore_test.go +++ b/controller/nucleus/networkElementFilesystemStore_test.go @@ -37,7 +37,7 @@ func TestAddNetworkElement(t *testing.T) { sbi1, _ := NewSBI(spb.Type_TYPE_OPENCONFIG, sbiID1) networkElementStore := NewNetworkElementStore() - mne, _ := NewNetworkElement("testNetworkElement", mneID, &trop, sbi1, conflict.Metadata{}) + mne, _ := NewNetworkElement("testNetworkElement", mneID, &trop, sbi1, defaultPndID, conflict.Metadata{}) err := networkElementStore.Add(mne) if err != nil { @@ -58,12 +58,12 @@ func TestGetAllNetworkElements(t *testing.T) { transportOptions := returnBasicTransportOption() - mne1, err := NewNetworkElement("testname", mneID1, &transportOptions, sbi, conflict.Metadata{}) + mne1, err := NewNetworkElement("testname", mneID1, &transportOptions, sbi, defaultPndID, conflict.Metadata{}) if err != nil { t.Error(err) } - mne2, err := NewNetworkElement("testname2", mneID2, &transportOptions, sbi, conflict.Metadata{}) + mne2, err := NewNetworkElement("testname2", mneID2, &transportOptions, sbi, defaultPndID, conflict.Metadata{}) if err != nil { t.Error(err) } @@ -110,12 +110,12 @@ func TestGetNetworkElement(t *testing.T) { trop := returnBasicTransportOption() - mne1, err := NewNetworkElement("testname", mneID1, &trop, sbi, conflict.Metadata{}) + mne1, err := NewNetworkElement("testname", mneID1, &trop, sbi, defaultPndID, conflict.Metadata{}) if err != nil { t.Error(err) } - mne2, err := NewNetworkElement("testname2", mneID2, &trop, sbi, conflict.Metadata{}) + mne2, err := NewNetworkElement("testname2", mneID2, &trop, sbi, defaultPndID, conflict.Metadata{}) if err != nil { t.Error(err) } @@ -155,14 +155,14 @@ func TestUpdateNetworkElement(t *testing.T) { sbi1, _ := NewSBI(spb.Type_TYPE_OPENCONFIG, sbiID1) networkElementStore := NewNetworkElementStore() - mne, _ := NewNetworkElement("testNetworkElement", mneID, &trop, sbi1, conflict.Metadata{}) + mne, _ := NewNetworkElement("testNetworkElement", mneID, &trop, sbi1, defaultPndID, conflict.Metadata{}) err := networkElementStore.Add(mne) if err != nil { t.Error(err) } - mne, _ = NewNetworkElement(updatedNetworkElementName, mneID, &trop, sbi1, conflict.Metadata{}) + mne, _ = NewNetworkElement(updatedNetworkElementName, mneID, &trop, sbi1, defaultPndID, conflict.Metadata{}) err = networkElementStore.Update(mne) if err != nil { @@ -195,12 +195,12 @@ func TestDeleteNetworkElement(t *testing.T) { trop := returnBasicTransportOption() - mne1, err := NewNetworkElement("testname", mneID1, &trop, sbi, conflict.Metadata{}) + mne1, err := NewNetworkElement("testname", mneID1, &trop, sbi, defaultPndID, conflict.Metadata{}) if err != nil { t.Error(err) } - mne2, err := NewNetworkElement("testname2", mneID2, &trop, sbi, conflict.Metadata{}) + mne2, err := NewNetworkElement("testname2", mneID2, &trop, sbi, defaultPndID, conflict.Metadata{}) if err != nil { t.Error(err) } diff --git a/controller/nucleus/networkElementService.go b/controller/nucleus/networkElementService.go index 1fb56654f005fef3f4d725ca56f2cb19c33e80e4..a8c96afb6d48695e54ac71d7a676404b1b79f12c 100644 --- a/controller/nucleus/networkElementService.go +++ b/controller/nucleus/networkElementService.go @@ -214,6 +214,8 @@ func (s *NetworkElementService) createNetworkElementFromStore(loadedNetworkEleme return nil, err } + fmt.Println(loadedNetworkElement.PndID) + mne, err := NewNetworkElement( loadedNetworkElement.Name, uuid.MustParse(loadedNetworkElement.ID), @@ -227,6 +229,7 @@ func (s *NetworkElementService) createNetworkElementFromStore(loadedNetworkEleme Type: spb.Type_TYPE_OPENCONFIG, }, sbiForNetworkElement, + uuid.MustParse(loadedNetworkElement.PndID), loadedNetworkElement.Metadata, ) if err != nil { diff --git a/controller/nucleus/networkElementService_test.go b/controller/nucleus/networkElementService_test.go index 39aad46fa30d4cf6c9e5d7bc8619ae4b7cdfc6d6..771b33f5940a0f26b912afb1a475a59416fafcde 100644 --- a/controller/nucleus/networkElementService_test.go +++ b/controller/nucleus/networkElementService_test.go @@ -19,6 +19,7 @@ func getMockNetworkElement(mneID uuid.UUID, sbi southbound.SouthboundInterface) Model: sbi.Schema().Root, sbi: sbi, transport: &mocks.Transport{}, + PndID: uuid.New(), } } diff --git a/controller/nucleus/networkElement_test.go b/controller/nucleus/networkElement_test.go index 7182a60b14fcd391696eacc78cce9a52a2d14aeb..d253ec4556727bb5f0f6049176627579deecfbc6 100644 --- a/controller/nucleus/networkElement_test.go +++ b/controller/nucleus/networkElement_test.go @@ -102,7 +102,7 @@ func TestNewNetworkElement(t *testing.T) { tt := tt t.Run(tt.name, func(t *testing.T) { t.Parallel() - resp, err := NewNetworkElement(tt.args.name, uuid.Nil, tt.args.opts, tt.args.sbi, conflict.Metadata{}) + resp, err := NewNetworkElement(tt.args.name, uuid.Nil, tt.args.opts, tt.args.sbi, defaultPndID, conflict.Metadata{}) if (err != nil) != tt.wantErr { t.Errorf("NewNetworkElement() error = %v, wantErr %v", err, tt.wantErr) return diff --git a/controller/nucleus/principalNetworkDomain.go b/controller/nucleus/principalNetworkDomain.go index a9c6770b5d67cea662904f81263fc72549fead0b..a075379803eedc8cf7c29e6a0f6ea35c067309ff 100644 --- a/controller/nucleus/principalNetworkDomain.go +++ b/controller/nucleus/principalNetworkDomain.go @@ -257,7 +257,7 @@ func (pnd *pndImplementation) RemoveSbi(sid uuid.UUID) error { } // AddNetworkElement adds a new network element to the PND. -func (pnd *pndImplementation) AddNetworkElement(name string, opt *tpb.TransportOption, sid uuid.UUID) (uuid.UUID, error) { +func (pnd *pndImplementation) AddNetworkElement(name string, opt *tpb.TransportOption, sid uuid.UUID, pndID uuid.UUID) (uuid.UUID, error) { labels := prometheus.Labels{"type": opt.Type.String()} start := metrics.StartHook(labels, networkElementCreationsTotal) defer metrics.FinishHook(labels, start, networkElementCreationDurationSecondsTotal, networkElementCreationDurationSeconds) @@ -280,7 +280,7 @@ func (pnd *pndImplementation) AddNetworkElement(name string, opt *tpb.TransportO } } - mne, err := NewNetworkElement(name, uuid.Nil, opt, sbi, conflict.Metadata{ResourceVersion: 0}) + mne, err := NewNetworkElement(name, uuid.Nil, opt, sbi, pndID, conflict.Metadata{ResourceVersion: 0}) if err != nil { return uuid.Nil, err } @@ -808,7 +808,8 @@ func (pnd *pndImplementation) createCsbiNetworkElement( if err != nil { return uuid.Nil, err } - mne, err := NewNetworkElement(name, uuid.Nil, csbiTransportOptions, csbi, conflict.Metadata{ResourceVersion: 0}) + // Note: PndID is set as nil here, should be supplied with real uuid when actually using cSBI. + mne, err := NewNetworkElement(name, uuid.Nil, csbiTransportOptions, csbi, uuid.Nil, conflict.Metadata{ResourceVersion: 0}) if err != nil { return uuid.Nil, err } diff --git a/controller/nucleus/principalNetworkDomain_test.go b/controller/nucleus/principalNetworkDomain_test.go index 7722edc5f3d20cdadb17ab26e9321238d7ee8fcf..1f1a18fcf91263a349e2ce2eeef35022b3460993 100644 --- a/controller/nucleus/principalNetworkDomain_test.go +++ b/controller/nucleus/principalNetworkDomain_test.go @@ -121,7 +121,7 @@ func Test_pndImplementation_AddNetworkElement(t *testing.T) { t.Error(err) } - _, err := pnd.AddNetworkElement(tt.args.name, tt.args.opts, defaultSbiID) + _, err := pnd.AddNetworkElement(tt.args.name, tt.args.opts, defaultSbiID, defaultPndID) if (err != nil) != tt.wantErr { t.Errorf("AddNetworkElement() error = %v, wantErr %v", err, tt.wantErr) } @@ -470,11 +470,11 @@ func Test_pndImplementation_RemoveSbiWithAssociatedNetworkElements(t *testing.T) if err := pnd.addSbi(&OpenConfig{id: defaultSbiID}); err != nil { t.Error(err) } - _, err = pnd.AddNetworkElement("associatedNetworkElement", opts, tt.args.id) + _, err = pnd.AddNetworkElement("associatedNetworkElement", opts, tt.args.id, defaultPndID) if err != nil { t.Error(err) } - _, err = pnd.AddNetworkElement("associatedNetworkElement2", opts, tt.args.id) + _, err = pnd.AddNetworkElement("associatedNetworkElement2", opts, tt.args.id, defaultPndID) if err != nil { t.Error(err) } @@ -483,7 +483,7 @@ func Test_pndImplementation_RemoveSbiWithAssociatedNetworkElements(t *testing.T) if err := pnd.addSbi(&OpenConfig{id: newID}); err != nil { t.Error(err) } - _, err := pnd.AddNetworkElement("associatedNetworkElement2", opts, newID) + _, err := pnd.AddNetworkElement("associatedNetworkElement2", opts, newID, defaultPndID) if err != nil { t.Error(err) } @@ -781,7 +781,7 @@ func Test_pndImplementation_ChangeMNE(t *testing.T) { if err := pnd.addSbi(&OpenConfig{id: defaultSbiID}); err != nil { t.Error(err) } - _, err := pnd.AddNetworkElement("testnetworkElement", opts, defaultSbiID) + _, err := pnd.AddNetworkElement("testnetworkElement", opts, defaultSbiID, defaultPndID) if err != nil { t.Error(err) return @@ -836,7 +836,7 @@ func Test_pndImplementation_GetNetworkElement(t *testing.T) { t.Error(err) return } - mne, err := NewNetworkElement("default", mneid, opts, sbi, conflict.Metadata{ResourceVersion: 0}) + mne, err := NewNetworkElement("default", mneid, opts, sbi, defaultPndID, conflict.Metadata{ResourceVersion: 0}) if err != nil { t.Error(err) return @@ -908,7 +908,7 @@ func Test_pndImplementation_GetNetworkElementByName(t *testing.T) { t.Error(err) return } - mne, err := NewNetworkElement("my-mne", mneid, opts, sbi, conflict.Metadata{ResourceVersion: 0}) + mne, err := NewNetworkElement("my-mne", mneid, opts, sbi, defaultPndID, conflict.Metadata{ResourceVersion: 0}) if err != nil { t.Error(err) return diff --git a/controller/test/integration/nucleusIntegration_test.go b/controller/test/integration/nucleusIntegration_test.go index 05034a615c1a74dfff5ed6683d81d369beb99cd2..e4f29b80d52b90397f7fb29259efbf3d523de5e6 100644 --- a/controller/test/integration/nucleusIntegration_test.go +++ b/controller/test/integration/nucleusIntegration_test.go @@ -187,7 +187,7 @@ func TestGnmi_SetValidIntegration(t *testing.T) { t.Error(err) return } - _, err = pnd.AddNetworkElement("test", opt, sbi.ID()) + _, err = pnd.AddNetworkElement("test", opt, sbi.ID(), pnd.ID()) if err != nil { t.Error(err) return