From a3d001f2c220c453684c075b2d0446886dc7dda7 Mon Sep 17 00:00:00 2001
From: Matthias Feyll <matthias.feyll@stud.h-da.de>
Date: Wed, 6 Nov 2024 15:21:50 +0100
Subject: [PATCH] add yang parser directly as endpoint to gosdn

---
 .../gnmi/proto/collector/collector.pb.go      |   48 +-
 .../openconfig/gnmi/proto/gnmi/gnmi.pb.go     |  554 +----
 .../gnmi/proto/gnmi_ext/gnmi_ext.pb.go        |  158 +-
 .../openconfig/gnmi/proto/target/target.pb.go |   70 +-
 .../gnmi/testing/fake/proto/fake.pb.go        |  488 +----
 api/go/gosdn/app/app.pb.go                    |   92 +-
 .../configurationmanagement.pb.go             |   92 +-
 api/go/gosdn/conflict/conflict.pb.go          |   26 +-
 api/go/gosdn/csbi/csbi.pb.go                  |  246 +--
 .../gosdn/networkelement/networkelement.pb.go | 1847 +++++++----------
 .../networkelement/networkelement.pb.gw.go    |   87 +
 .../networkelement/networkelement_grpc.pb.go  |   42 +
 .../plugin-internal/plugin-internal.pb.go     |   92 +-
 .../plugin-registry/plugin-registry.pb.go     |  224 +-
 api/go/gosdn/plugin/plugin.pb.go              |  400 +---
 api/go/gosdn/pnd/pnd.pb.go                    |  224 +-
 api/go/gosdn/rbac/rbac.pb.go                  |   92 +-
 api/go/gosdn/rbac/role.pb.go                  |  290 +--
 api/go/gosdn/rbac/user.pb.go                  |  268 +--
 api/go/gosdn/southbound/southbound.pb.go      |   70 +-
 .../subscriptionmanagement.pb.go              |  290 +--
 api/go/gosdn/topology/link.pb.go              |   26 +-
 api/go/gosdn/topology/node.pb.go              |   26 +-
 api/go/gosdn/topology/port.pb.go              |   48 +-
 api/go/gosdn/topology/route.pb.go             |   48 +-
 api/go/gosdn/topology/routingTable.pb.go      |  136 +-
 api/go/gosdn/topology/topology.pb.go          |  202 +-
 api/go/gosdn/transport/transport.pb.go        |   70 +-
 api/openapiv2/gosdn_northbound.swagger.json   |   52 +
 api/proto/buf.lock                            |   12 +-
 .../gosdn/networkelement/networkelement.proto |   19 +
 controller/controller.go                      |    1 +
 .../northbound/server/networkElement.go       |   32 +
 react-ui/scripts/openapi-config.json          |   20 +-
 .../devices/reducer/device.reducer.ts         |   95 +-
 .../devices/routines/mne.routine.ts           |   92 +-
 .../src/components/devices/view/device.scss   |   11 +
 .../devices/view/device.view.table.tsx        |    8 +-
 .../devices/view/device.view.tabs.tsx         |    4 +-
 .../view_model/device.tabs.viewmodel.ts       |    8 +-
 .../devices/view_model/device.viewmodel.ts    |   24 +-
 react-ui/src/shared/api/api.ts                |  237 ++-
 .../src/shared/provider/auth.provider.tsx     |   13 +-
 .../src/shared/reducer/routine.reducer.ts     |   27 +-
 react-ui/src/shared/reducer/user.reducer.ts   |   48 +-
 react-ui/src/shared/utils/routine.manager.ts  |   43 +-
 react-ui/src/stores/api.store.ts              |   27 +-
 react-ui/src/stores/index.ts                  |   37 +-
 .../middleware/api.listener.middleware.ts     |   26 +
 .../middleware/devLogging.middleware.ts       |   24 -
 50 files changed, 2220 insertions(+), 4896 deletions(-)
 create mode 100644 react-ui/src/stores/middleware/api.listener.middleware.ts
 delete mode 100644 react-ui/src/stores/middleware/devLogging.middleware.ts

diff --git a/api/go/github.com/openconfig/gnmi/proto/collector/collector.pb.go b/api/go/github.com/openconfig/gnmi/proto/collector/collector.pb.go
index a186f9bae..09e16b605 100644
--- a/api/go/github.com/openconfig/gnmi/proto/collector/collector.pb.go
+++ b/api/go/github.com/openconfig/gnmi/proto/collector/collector.pb.go
@@ -16,7 +16,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: github.com/openconfig/gnmi/proto/collector/collector.proto
 
@@ -46,11 +46,9 @@ type ReconnectRequest struct {
 
 func (x *ReconnectRequest) Reset() {
 	*x = ReconnectRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_collector_collector_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_collector_collector_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ReconnectRequest) String() string {
@@ -61,7 +59,7 @@ func (*ReconnectRequest) ProtoMessage() {}
 
 func (x *ReconnectRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_collector_collector_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -91,11 +89,9 @@ type Nil struct {
 
 func (x *Nil) Reset() {
 	*x = Nil{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_collector_collector_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_collector_collector_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Nil) String() string {
@@ -106,7 +102,7 @@ func (*Nil) ProtoMessage() {}
 
 func (x *Nil) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_collector_collector_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -173,32 +169,6 @@ func file_github_com_openconfig_gnmi_proto_collector_collector_proto_init() {
 	if File_github_com_openconfig_gnmi_proto_collector_collector_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_github_com_openconfig_gnmi_proto_collector_collector_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*ReconnectRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_collector_collector_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*Nil); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/github.com/openconfig/gnmi/proto/gnmi/gnmi.pb.go b/api/go/github.com/openconfig/gnmi/proto/gnmi/gnmi.pb.go
index aa39f2583..d0162888f 100644
--- a/api/go/github.com/openconfig/gnmi/proto/gnmi/gnmi.pb.go
+++ b/api/go/github.com/openconfig/gnmi/proto/gnmi/gnmi.pb.go
@@ -16,7 +16,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: github.com/openconfig/gnmi/proto/gnmi/gnmi.proto
 
@@ -347,11 +347,9 @@ type Notification struct {
 
 func (x *Notification) Reset() {
 	*x = Notification{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Notification) String() string {
@@ -362,7 +360,7 @@ func (*Notification) ProtoMessage() {}
 
 func (x *Notification) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -436,11 +434,9 @@ type Update struct {
 
 func (x *Update) Reset() {
 	*x = Update{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Update) String() string {
@@ -451,7 +447,7 @@ func (*Update) ProtoMessage() {}
 
 func (x *Update) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -528,11 +524,9 @@ type TypedValue struct {
 
 func (x *TypedValue) Reset() {
 	*x = TypedValue{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TypedValue) String() string {
@@ -543,7 +537,7 @@ func (*TypedValue) ProtoMessage() {}
 
 func (x *TypedValue) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -763,11 +757,9 @@ type Path struct {
 
 func (x *Path) Reset() {
 	*x = Path{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Path) String() string {
@@ -778,7 +770,7 @@ func (*Path) ProtoMessage() {}
 
 func (x *Path) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -836,11 +828,9 @@ type PathElem struct {
 
 func (x *PathElem) Reset() {
 	*x = PathElem{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PathElem) String() string {
@@ -851,7 +841,7 @@ func (*PathElem) ProtoMessage() {}
 
 func (x *PathElem) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -896,11 +886,9 @@ type Value struct {
 
 func (x *Value) Reset() {
 	*x = Value{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Value) String() string {
@@ -911,7 +899,7 @@ func (*Value) ProtoMessage() {}
 
 func (x *Value) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -958,11 +946,9 @@ type Error struct {
 
 func (x *Error) Reset() {
 	*x = Error{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Error) String() string {
@@ -973,7 +959,7 @@ func (*Error) ProtoMessage() {}
 
 func (x *Error) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1023,11 +1009,9 @@ type Decimal64 struct {
 
 func (x *Decimal64) Reset() {
 	*x = Decimal64{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Decimal64) String() string {
@@ -1038,7 +1022,7 @@ func (*Decimal64) ProtoMessage() {}
 
 func (x *Decimal64) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1081,11 +1065,9 @@ type ScalarArray struct {
 
 func (x *ScalarArray) Reset() {
 	*x = ScalarArray{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ScalarArray) String() string {
@@ -1096,7 +1078,7 @@ func (*ScalarArray) ProtoMessage() {}
 
 func (x *ScalarArray) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1142,11 +1124,9 @@ type SubscribeRequest struct {
 
 func (x *SubscribeRequest) Reset() {
 	*x = SubscribeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SubscribeRequest) String() string {
@@ -1157,7 +1137,7 @@ func (*SubscribeRequest) ProtoMessage() {}
 
 func (x *SubscribeRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1241,11 +1221,9 @@ type Poll struct {
 
 func (x *Poll) Reset() {
 	*x = Poll{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Poll) String() string {
@@ -1256,7 +1234,7 @@ func (*Poll) ProtoMessage() {}
 
 func (x *Poll) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1295,11 +1273,9 @@ type SubscribeResponse struct {
 
 func (x *SubscribeResponse) Reset() {
 	*x = SubscribeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SubscribeResponse) String() string {
@@ -1310,7 +1286,7 @@ func (*SubscribeResponse) ProtoMessage() {}
 
 func (x *SubscribeResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1423,11 +1399,9 @@ type SubscriptionList struct {
 
 func (x *SubscriptionList) Reset() {
 	*x = SubscriptionList{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SubscriptionList) String() string {
@@ -1438,7 +1412,7 @@ func (*SubscriptionList) ProtoMessage() {}
 
 func (x *SubscriptionList) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1540,11 +1514,9 @@ type Subscription struct {
 
 func (x *Subscription) Reset() {
 	*x = Subscription{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Subscription) String() string {
@@ -1555,7 +1527,7 @@ func (*Subscription) ProtoMessage() {}
 
 func (x *Subscription) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1618,11 +1590,9 @@ type QOSMarking struct {
 
 func (x *QOSMarking) Reset() {
 	*x = QOSMarking{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *QOSMarking) String() string {
@@ -1633,7 +1603,7 @@ func (*QOSMarking) ProtoMessage() {}
 
 func (x *QOSMarking) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1671,11 +1641,9 @@ type Alias struct {
 
 func (x *Alias) Reset() {
 	*x = Alias{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Alias) String() string {
@@ -1686,7 +1654,7 @@ func (*Alias) ProtoMessage() {}
 
 func (x *Alias) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1728,11 +1696,9 @@ type AliasList struct {
 
 func (x *AliasList) Reset() {
 	*x = AliasList{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AliasList) String() string {
@@ -1743,7 +1709,7 @@ func (*AliasList) ProtoMessage() {}
 
 func (x *AliasList) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1788,11 +1754,9 @@ type SetRequest struct {
 
 func (x *SetRequest) Reset() {
 	*x = SetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetRequest) String() string {
@@ -1803,7 +1767,7 @@ func (*SetRequest) ProtoMessage() {}
 
 func (x *SetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1879,11 +1843,9 @@ type SetResponse struct {
 
 func (x *SetResponse) Reset() {
 	*x = SetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[18]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetResponse) String() string {
@@ -1894,7 +1856,7 @@ func (*SetResponse) ProtoMessage() {}
 
 func (x *SetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[18]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1968,11 +1930,9 @@ type UpdateResult struct {
 
 func (x *UpdateResult) Reset() {
 	*x = UpdateResult{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[19]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateResult) String() string {
@@ -1983,7 +1943,7 @@ func (*UpdateResult) ProtoMessage() {}
 
 func (x *UpdateResult) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[19]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2051,11 +2011,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[20]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -2066,7 +2024,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[20]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2142,11 +2100,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[21]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[21]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -2157,7 +2113,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[21]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2209,11 +2165,9 @@ type CapabilityRequest struct {
 
 func (x *CapabilityRequest) Reset() {
 	*x = CapabilityRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[22]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[22]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CapabilityRequest) String() string {
@@ -2224,7 +2178,7 @@ func (*CapabilityRequest) ProtoMessage() {}
 
 func (x *CapabilityRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[22]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2264,11 +2218,9 @@ type CapabilityResponse struct {
 
 func (x *CapabilityResponse) Reset() {
 	*x = CapabilityResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[23]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[23]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CapabilityResponse) String() string {
@@ -2279,7 +2231,7 @@ func (*CapabilityResponse) ProtoMessage() {}
 
 func (x *CapabilityResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[23]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2339,11 +2291,9 @@ type ModelData struct {
 
 func (x *ModelData) Reset() {
 	*x = ModelData{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[24]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[24]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ModelData) String() string {
@@ -2354,7 +2304,7 @@ func (*ModelData) ProtoMessage() {}
 
 func (x *ModelData) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[24]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2851,308 +2801,6 @@ func file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_init() {
 	if File_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Notification); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*Update); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*TypedValue); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*Path); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*PathElem); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*Value); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*Error); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*Decimal64); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*ScalarArray); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*SubscribeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*Poll); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*SubscribeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[12].Exporter = func(v any, i int) any {
-			switch v := v.(*SubscriptionList); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[13].Exporter = func(v any, i int) any {
-			switch v := v.(*Subscription); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[14].Exporter = func(v any, i int) any {
-			switch v := v.(*QOSMarking); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[15].Exporter = func(v any, i int) any {
-			switch v := v.(*Alias); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[16].Exporter = func(v any, i int) any {
-			switch v := v.(*AliasList); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[17].Exporter = func(v any, i int) any {
-			switch v := v.(*SetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[18].Exporter = func(v any, i int) any {
-			switch v := v.(*SetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[19].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateResult); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[20].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[21].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[22].Exporter = func(v any, i int) any {
-			switch v := v.(*CapabilityRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[23].Exporter = func(v any, i int) any {
-			switch v := v.(*CapabilityResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[24].Exporter = func(v any, i int) any {
-			switch v := v.(*ModelData); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[2].OneofWrappers = []any{
 		(*TypedValue_StringVal)(nil),
 		(*TypedValue_IntVal)(nil),
diff --git a/api/go/github.com/openconfig/gnmi/proto/gnmi_ext/gnmi_ext.pb.go b/api/go/github.com/openconfig/gnmi/proto/gnmi_ext/gnmi_ext.pb.go
index 4a5a86104..aaaa55d00 100644
--- a/api/go/github.com/openconfig/gnmi/proto/gnmi_ext/gnmi_ext.pb.go
+++ b/api/go/github.com/openconfig/gnmi/proto/gnmi_ext/gnmi_ext.pb.go
@@ -16,7 +16,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: github.com/openconfig/gnmi/proto/gnmi_ext/gnmi_ext.proto
 
@@ -107,11 +107,9 @@ type Extension struct {
 
 func (x *Extension) Reset() {
 	*x = Extension{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Extension) String() string {
@@ -122,7 +120,7 @@ func (*Extension) ProtoMessage() {}
 
 func (x *Extension) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -201,11 +199,9 @@ type RegisteredExtension struct {
 
 func (x *RegisteredExtension) Reset() {
 	*x = RegisteredExtension{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RegisteredExtension) String() string {
@@ -216,7 +212,7 @@ func (*RegisteredExtension) ProtoMessage() {}
 
 func (x *RegisteredExtension) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -261,11 +257,9 @@ type MasterArbitration struct {
 
 func (x *MasterArbitration) Reset() {
 	*x = MasterArbitration{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *MasterArbitration) String() string {
@@ -276,7 +270,7 @@ func (*MasterArbitration) ProtoMessage() {}
 
 func (x *MasterArbitration) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -317,11 +311,9 @@ type Uint128 struct {
 
 func (x *Uint128) Reset() {
 	*x = Uint128{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Uint128) String() string {
@@ -332,7 +324,7 @@ func (*Uint128) ProtoMessage() {}
 
 func (x *Uint128) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -372,11 +364,9 @@ type Role struct {
 
 func (x *Role) Reset() {
 	*x = Role{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Role) String() string {
@@ -387,7 +377,7 @@ func (*Role) ProtoMessage() {}
 
 func (x *Role) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -426,11 +416,9 @@ type History struct {
 
 func (x *History) Reset() {
 	*x = History{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *History) String() string {
@@ -441,7 +429,7 @@ func (*History) ProtoMessage() {}
 
 func (x *History) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -504,11 +492,9 @@ type TimeRange struct {
 
 func (x *TimeRange) Reset() {
 	*x = TimeRange{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TimeRange) String() string {
@@ -519,7 +505,7 @@ func (*TimeRange) ProtoMessage() {}
 
 func (x *TimeRange) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -648,92 +634,6 @@ func file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_init() {
 	if File_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Extension); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*RegisteredExtension); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*MasterArbitration); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*Uint128); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*Role); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*History); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*TimeRange); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[0].OneofWrappers = []any{
 		(*Extension_RegisteredExt)(nil),
 		(*Extension_MasterArbitration)(nil),
diff --git a/api/go/github.com/openconfig/gnmi/proto/target/target.pb.go b/api/go/github.com/openconfig/gnmi/proto/target/target.pb.go
index 1d8bdcf02..168a726d8 100644
--- a/api/go/github.com/openconfig/gnmi/proto/target/target.pb.go
+++ b/api/go/github.com/openconfig/gnmi/proto/target/target.pb.go
@@ -16,7 +16,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: github.com/openconfig/gnmi/proto/target/target.proto
 
@@ -70,11 +70,9 @@ type Configuration struct {
 
 func (x *Configuration) Reset() {
 	*x = Configuration{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Configuration) String() string {
@@ -85,7 +83,7 @@ func (*Configuration) ProtoMessage() {}
 
 func (x *Configuration) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -148,11 +146,9 @@ type Target struct {
 
 func (x *Target) Reset() {
 	*x = Target{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Target) String() string {
@@ -163,7 +159,7 @@ func (*Target) ProtoMessage() {}
 
 func (x *Target) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -221,11 +217,9 @@ type Credentials struct {
 
 func (x *Credentials) Reset() {
 	*x = Credentials{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Credentials) String() string {
@@ -236,7 +230,7 @@ func (*Credentials) ProtoMessage() {}
 
 func (x *Credentials) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -372,44 +366,6 @@ func file_github_com_openconfig_gnmi_proto_target_target_proto_init() {
 	if File_github_com_openconfig_gnmi_proto_target_target_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Configuration); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*Target); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*Credentials); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/github.com/openconfig/gnmi/testing/fake/proto/fake.pb.go b/api/go/github.com/openconfig/gnmi/testing/fake/proto/fake.pb.go
index 0c0a049ba..1beb87208 100644
--- a/api/go/github.com/openconfig/gnmi/testing/fake/proto/fake.pb.go
+++ b/api/go/github.com/openconfig/gnmi/testing/fake/proto/fake.pb.go
@@ -4,7 +4,7 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: github.com/openconfig/gnmi/testing/fake/proto/fake.proto
 
@@ -140,11 +140,9 @@ type Configuration struct {
 
 func (x *Configuration) Reset() {
 	*x = Configuration{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Configuration) String() string {
@@ -155,7 +153,7 @@ func (*Configuration) ProtoMessage() {}
 
 func (x *Configuration) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -188,11 +186,9 @@ type Credentials struct {
 
 func (x *Credentials) Reset() {
 	*x = Credentials{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Credentials) String() string {
@@ -203,7 +199,7 @@ func (*Credentials) ProtoMessage() {}
 
 func (x *Credentials) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -287,11 +283,9 @@ type Config struct {
 
 func (x *Config) Reset() {
 	*x = Config{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Config) String() string {
@@ -302,7 +296,7 @@ func (*Config) ProtoMessage() {}
 
 func (x *Config) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -463,11 +457,9 @@ type FixedGenerator struct {
 
 func (x *FixedGenerator) Reset() {
 	*x = FixedGenerator{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FixedGenerator) String() string {
@@ -478,7 +470,7 @@ func (*FixedGenerator) ProtoMessage() {}
 
 func (x *FixedGenerator) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -511,11 +503,9 @@ type RandomGenerator struct {
 
 func (x *RandomGenerator) Reset() {
 	*x = RandomGenerator{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RandomGenerator) String() string {
@@ -526,7 +516,7 @@ func (*RandomGenerator) ProtoMessage() {}
 
 func (x *RandomGenerator) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -564,11 +554,9 @@ type DeleteValue struct {
 
 func (x *DeleteValue) Reset() {
 	*x = DeleteValue{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteValue) String() string {
@@ -579,7 +567,7 @@ func (*DeleteValue) ProtoMessage() {}
 
 func (x *DeleteValue) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -632,11 +620,9 @@ type Value struct {
 
 func (x *Value) Reset() {
 	*x = Value{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Value) String() string {
@@ -647,7 +633,7 @@ func (*Value) ProtoMessage() {}
 
 func (x *Value) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -824,11 +810,9 @@ type Timestamp struct {
 
 func (x *Timestamp) Reset() {
 	*x = Timestamp{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Timestamp) String() string {
@@ -839,7 +823,7 @@ func (*Timestamp) ProtoMessage() {}
 
 func (x *Timestamp) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -896,11 +880,9 @@ type IntValue struct {
 
 func (x *IntValue) Reset() {
 	*x = IntValue{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *IntValue) String() string {
@@ -911,7 +893,7 @@ func (*IntValue) ProtoMessage() {}
 
 func (x *IntValue) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -989,11 +971,9 @@ type IntRange struct {
 
 func (x *IntRange) Reset() {
 	*x = IntRange{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *IntRange) String() string {
@@ -1004,7 +984,7 @@ func (*IntRange) ProtoMessage() {}
 
 func (x *IntRange) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1061,11 +1041,9 @@ type IntList struct {
 
 func (x *IntList) Reset() {
 	*x = IntList{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *IntList) String() string {
@@ -1076,7 +1054,7 @@ func (*IntList) ProtoMessage() {}
 
 func (x *IntList) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1126,11 +1104,9 @@ type DoubleValue struct {
 
 func (x *DoubleValue) Reset() {
 	*x = DoubleValue{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DoubleValue) String() string {
@@ -1141,7 +1117,7 @@ func (*DoubleValue) ProtoMessage() {}
 
 func (x *DoubleValue) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1218,11 +1194,9 @@ type DoubleRange struct {
 
 func (x *DoubleRange) Reset() {
 	*x = DoubleRange{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DoubleRange) String() string {
@@ -1233,7 +1207,7 @@ func (*DoubleRange) ProtoMessage() {}
 
 func (x *DoubleRange) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1290,11 +1264,9 @@ type DoubleList struct {
 
 func (x *DoubleList) Reset() {
 	*x = DoubleList{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DoubleList) String() string {
@@ -1305,7 +1277,7 @@ func (*DoubleList) ProtoMessage() {}
 
 func (x *DoubleList) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1352,11 +1324,9 @@ type StringValue struct {
 
 func (x *StringValue) Reset() {
 	*x = StringValue{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StringValue) String() string {
@@ -1367,7 +1337,7 @@ func (*StringValue) ProtoMessage() {}
 
 func (x *StringValue) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1427,11 +1397,9 @@ type StringList struct {
 
 func (x *StringList) Reset() {
 	*x = StringList{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StringList) String() string {
@@ -1442,7 +1410,7 @@ func (*StringList) ProtoMessage() {}
 
 func (x *StringList) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1489,11 +1457,9 @@ type StringListValue struct {
 
 func (x *StringListValue) Reset() {
 	*x = StringListValue{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StringListValue) String() string {
@@ -1504,7 +1470,7 @@ func (*StringListValue) ProtoMessage() {}
 
 func (x *StringListValue) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1568,11 +1534,9 @@ type BoolValue struct {
 
 func (x *BoolValue) Reset() {
 	*x = BoolValue{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *BoolValue) String() string {
@@ -1583,7 +1547,7 @@ func (*BoolValue) ProtoMessage() {}
 
 func (x *BoolValue) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1643,11 +1607,9 @@ type BoolList struct {
 
 func (x *BoolList) Reset() {
 	*x = BoolList{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[18]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *BoolList) String() string {
@@ -1658,7 +1620,7 @@ func (*BoolList) ProtoMessage() {}
 
 func (x *BoolList) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[18]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1708,11 +1670,9 @@ type UintValue struct {
 
 func (x *UintValue) Reset() {
 	*x = UintValue{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[19]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UintValue) String() string {
@@ -1723,7 +1683,7 @@ func (*UintValue) ProtoMessage() {}
 
 func (x *UintValue) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[19]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1801,11 +1761,9 @@ type UintRange struct {
 
 func (x *UintRange) Reset() {
 	*x = UintRange{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[20]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UintRange) String() string {
@@ -1816,7 +1774,7 @@ func (*UintRange) ProtoMessage() {}
 
 func (x *UintRange) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[20]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1873,11 +1831,9 @@ type UintList struct {
 
 func (x *UintList) Reset() {
 	*x = UintList{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[21]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[21]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UintList) String() string {
@@ -1888,7 +1844,7 @@ func (*UintList) ProtoMessage() {}
 
 func (x *UintList) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[21]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2225,272 +2181,6 @@ func file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_init() {
 	if File_github_com_openconfig_gnmi_testing_fake_proto_fake_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Configuration); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*Credentials); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*Config); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*FixedGenerator); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*RandomGenerator); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteValue); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*Value); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*Timestamp); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*IntValue); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*IntRange); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*IntList); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*DoubleValue); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[12].Exporter = func(v any, i int) any {
-			switch v := v.(*DoubleRange); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[13].Exporter = func(v any, i int) any {
-			switch v := v.(*DoubleList); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[14].Exporter = func(v any, i int) any {
-			switch v := v.(*StringValue); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[15].Exporter = func(v any, i int) any {
-			switch v := v.(*StringList); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[16].Exporter = func(v any, i int) any {
-			switch v := v.(*StringListValue); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[17].Exporter = func(v any, i int) any {
-			switch v := v.(*BoolValue); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[18].Exporter = func(v any, i int) any {
-			switch v := v.(*BoolList); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[19].Exporter = func(v any, i int) any {
-			switch v := v.(*UintValue); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[20].Exporter = func(v any, i int) any {
-			switch v := v.(*UintRange); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[21].Exporter = func(v any, i int) any {
-			switch v := v.(*UintList); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[2].OneofWrappers = []any{
 		(*Config_Custom)(nil),
 		(*Config_Random)(nil),
diff --git a/api/go/gosdn/app/app.pb.go b/api/go/gosdn/app/app.pb.go
index 30ffd0da2..8064592bd 100644
--- a/api/go/gosdn/app/app.pb.go
+++ b/api/go/gosdn/app/app.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/app/app.proto
 
@@ -36,11 +36,9 @@ type AppRegisterRequest struct {
 
 func (x *AppRegisterRequest) Reset() {
 	*x = AppRegisterRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_app_app_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_app_app_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AppRegisterRequest) String() string {
@@ -51,7 +49,7 @@ func (*AppRegisterRequest) ProtoMessage() {}
 
 func (x *AppRegisterRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_app_app_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -98,11 +96,9 @@ type AppRegisterResponse struct {
 
 func (x *AppRegisterResponse) Reset() {
 	*x = AppRegisterResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_app_app_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_app_app_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AppRegisterResponse) String() string {
@@ -113,7 +109,7 @@ func (*AppRegisterResponse) ProtoMessage() {}
 
 func (x *AppRegisterResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_app_app_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -153,11 +149,9 @@ type AppDeregisterRequest struct {
 
 func (x *AppDeregisterRequest) Reset() {
 	*x = AppDeregisterRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_app_app_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_app_app_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AppDeregisterRequest) String() string {
@@ -168,7 +162,7 @@ func (*AppDeregisterRequest) ProtoMessage() {}
 
 func (x *AppDeregisterRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_app_app_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -207,11 +201,9 @@ type AppDeregisterResponse struct {
 
 func (x *AppDeregisterResponse) Reset() {
 	*x = AppDeregisterResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_app_app_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_app_app_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AppDeregisterResponse) String() string {
@@ -222,7 +214,7 @@ func (*AppDeregisterResponse) ProtoMessage() {}
 
 func (x *AppDeregisterResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_app_app_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -336,56 +328,6 @@ func file_gosdn_app_app_proto_init() {
 	if File_gosdn_app_app_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_app_app_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*AppRegisterRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_app_app_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*AppRegisterResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_app_app_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*AppDeregisterRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_app_app_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*AppDeregisterResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/configurationmanagement/configurationmanagement.pb.go b/api/go/gosdn/configurationmanagement/configurationmanagement.pb.go
index c999d4db4..b4600ce3f 100644
--- a/api/go/gosdn/configurationmanagement/configurationmanagement.pb.go
+++ b/api/go/gosdn/configurationmanagement/configurationmanagement.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/configurationmanagement/configurationmanagement.proto
 
@@ -34,11 +34,9 @@ type ExportSDNConfigRequest struct {
 
 func (x *ExportSDNConfigRequest) Reset() {
 	*x = ExportSDNConfigRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ExportSDNConfigRequest) String() string {
@@ -49,7 +47,7 @@ func (*ExportSDNConfigRequest) ProtoMessage() {}
 
 func (x *ExportSDNConfigRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -89,11 +87,9 @@ type ExportSDNConfigResponse struct {
 
 func (x *ExportSDNConfigResponse) Reset() {
 	*x = ExportSDNConfigResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ExportSDNConfigResponse) String() string {
@@ -104,7 +100,7 @@ func (*ExportSDNConfigResponse) ProtoMessage() {}
 
 func (x *ExportSDNConfigResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -145,11 +141,9 @@ type ImportSDNConfigRequest struct {
 
 func (x *ImportSDNConfigRequest) Reset() {
 	*x = ImportSDNConfigRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ImportSDNConfigRequest) String() string {
@@ -160,7 +154,7 @@ func (*ImportSDNConfigRequest) ProtoMessage() {}
 
 func (x *ImportSDNConfigRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -206,11 +200,9 @@ type ImportSDNConfigResponse struct {
 
 func (x *ImportSDNConfigResponse) Reset() {
 	*x = ImportSDNConfigResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ImportSDNConfigResponse) String() string {
@@ -221,7 +213,7 @@ func (*ImportSDNConfigResponse) ProtoMessage() {}
 
 func (x *ImportSDNConfigResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -343,56 +335,6 @@ func file_gosdn_configurationmanagement_configurationmanagement_proto_init() {
 	if File_gosdn_configurationmanagement_configurationmanagement_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*ExportSDNConfigRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*ExportSDNConfigResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*ImportSDNConfigRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_configurationmanagement_configurationmanagement_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*ImportSDNConfigResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/conflict/conflict.pb.go b/api/go/gosdn/conflict/conflict.pb.go
index b43d09bf5..a1c9d5c44 100644
--- a/api/go/gosdn/conflict/conflict.pb.go
+++ b/api/go/gosdn/conflict/conflict.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/conflict/conflict.proto
 
@@ -31,11 +31,9 @@ type Metadata struct {
 
 func (x *Metadata) Reset() {
 	*x = Metadata{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_conflict_conflict_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_conflict_conflict_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Metadata) String() string {
@@ -46,7 +44,7 @@ func (*Metadata) ProtoMessage() {}
 
 func (x *Metadata) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_conflict_conflict_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -115,20 +113,6 @@ func file_gosdn_conflict_conflict_proto_init() {
 	if File_gosdn_conflict_conflict_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_conflict_conflict_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Metadata); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/csbi/csbi.pb.go b/api/go/gosdn/csbi/csbi.pb.go
index 6fd657bc9..55f5c6d63 100644
--- a/api/go/gosdn/csbi/csbi.pb.go
+++ b/api/go/gosdn/csbi/csbi.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/csbi/csbi.proto
 
@@ -92,11 +92,9 @@ type Syn struct {
 
 func (x *Syn) Reset() {
 	*x = Syn{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Syn) String() string {
@@ -107,7 +105,7 @@ func (*Syn) ProtoMessage() {}
 
 func (x *Syn) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_csbi_csbi_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -154,11 +152,9 @@ type Ack struct {
 
 func (x *Ack) Reset() {
 	*x = Ack{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Ack) String() string {
@@ -169,7 +165,7 @@ func (*Ack) ProtoMessage() {}
 
 func (x *Ack) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_csbi_csbi_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -210,11 +206,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -225,7 +219,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_csbi_csbi_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -273,11 +267,9 @@ type GetPayloadRequest struct {
 
 func (x *GetPayloadRequest) Reset() {
 	*x = GetPayloadRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetPayloadRequest) String() string {
@@ -288,7 +280,7 @@ func (*GetPayloadRequest) ProtoMessage() {}
 
 func (x *GetPayloadRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_csbi_csbi_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -335,11 +327,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -350,7 +340,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_csbi_csbi_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -391,11 +381,9 @@ type Deployment struct {
 
 func (x *Deployment) Reset() {
 	*x = Deployment{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Deployment) String() string {
@@ -406,7 +394,7 @@ func (*Deployment) ProtoMessage() {}
 
 func (x *Deployment) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_csbi_csbi_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -453,11 +441,9 @@ type CreateRequest struct {
 
 func (x *CreateRequest) Reset() {
 	*x = CreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRequest) String() string {
@@ -468,7 +454,7 @@ func (*CreateRequest) ProtoMessage() {}
 
 func (x *CreateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_csbi_csbi_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -508,11 +494,9 @@ type CreateResponse struct {
 
 func (x *CreateResponse) Reset() {
 	*x = CreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateResponse) String() string {
@@ -523,7 +507,7 @@ func (*CreateResponse) ProtoMessage() {}
 
 func (x *CreateResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_csbi_csbi_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -562,11 +546,9 @@ type Payload struct {
 
 func (x *Payload) Reset() {
 	*x = Payload{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Payload) String() string {
@@ -577,7 +559,7 @@ func (*Payload) ProtoMessage() {}
 
 func (x *Payload) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_csbi_csbi_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -610,11 +592,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -625,7 +605,7 @@ func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_csbi_csbi_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -664,11 +644,9 @@ type DeleteResponse struct {
 
 func (x *DeleteResponse) Reset() {
 	*x = DeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteResponse) String() string {
@@ -679,7 +657,7 @@ func (*DeleteResponse) ProtoMessage() {}
 
 func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_csbi_csbi_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -869,140 +847,6 @@ func file_gosdn_csbi_csbi_proto_init() {
 	if File_gosdn_csbi_csbi_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_csbi_csbi_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Syn); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_csbi_csbi_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*Ack); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_csbi_csbi_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_csbi_csbi_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetPayloadRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_csbi_csbi_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_csbi_csbi_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*Deployment); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_csbi_csbi_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_csbi_csbi_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_csbi_csbi_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*Payload); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_csbi_csbi_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_csbi_csbi_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/networkelement/networkelement.pb.go b/api/go/gosdn/networkelement/networkelement.pb.go
index 6ed237be7..a58431fdb 100644
--- a/api/go/gosdn/networkelement/networkelement.pb.go
+++ b/api/go/gosdn/networkelement/networkelement.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/networkelement/networkelement.proto
 
@@ -303,11 +303,9 @@ type UpdateNetworkElementRequest struct {
 
 func (x *UpdateNetworkElementRequest) Reset() {
 	*x = UpdateNetworkElementRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateNetworkElementRequest) String() string {
@@ -318,7 +316,7 @@ func (*UpdateNetworkElementRequest) ProtoMessage() {}
 
 func (x *UpdateNetworkElementRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -357,11 +355,9 @@ type UpdateNetworkElementResponse struct {
 
 func (x *UpdateNetworkElementResponse) Reset() {
 	*x = UpdateNetworkElementResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateNetworkElementResponse) String() string {
@@ -372,7 +368,7 @@ func (*UpdateNetworkElementResponse) ProtoMessage() {}
 
 func (x *UpdateNetworkElementResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -413,11 +409,9 @@ type ManagedNetworkElement struct {
 
 func (x *ManagedNetworkElement) Reset() {
 	*x = ManagedNetworkElement{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ManagedNetworkElement) String() string {
@@ -428,7 +422,7 @@ func (*ManagedNetworkElement) ProtoMessage() {}
 
 func (x *ManagedNetworkElement) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -526,11 +520,9 @@ type FlattenedManagedNetworkElement struct {
 
 func (x *FlattenedManagedNetworkElement) Reset() {
 	*x = FlattenedManagedNetworkElement{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FlattenedManagedNetworkElement) String() string {
@@ -541,7 +533,7 @@ func (*FlattenedManagedNetworkElement) ProtoMessage() {}
 
 func (x *FlattenedManagedNetworkElement) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -595,11 +587,9 @@ type GetAllRequest struct {
 
 func (x *GetAllRequest) Reset() {
 	*x = GetAllRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetAllRequest) String() string {
@@ -610,7 +600,7 @@ func (*GetAllRequest) ProtoMessage() {}
 
 func (x *GetAllRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -653,11 +643,9 @@ type GetAllResponse struct {
 
 func (x *GetAllResponse) Reset() {
 	*x = GetAllResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetAllResponse) String() string {
@@ -668,7 +656,7 @@ func (*GetAllResponse) ProtoMessage() {}
 
 func (x *GetAllResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -715,11 +703,9 @@ type GetAllFlattenedRequest struct {
 
 func (x *GetAllFlattenedRequest) Reset() {
 	*x = GetAllFlattenedRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetAllFlattenedRequest) String() string {
@@ -730,7 +716,7 @@ func (*GetAllFlattenedRequest) ProtoMessage() {}
 
 func (x *GetAllFlattenedRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -773,11 +759,9 @@ type GetAllFlattenedResponse struct {
 
 func (x *GetAllFlattenedResponse) Reset() {
 	*x = GetAllFlattenedResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetAllFlattenedResponse) String() string {
@@ -788,7 +772,7 @@ func (*GetAllFlattenedResponse) ProtoMessage() {}
 
 func (x *GetAllFlattenedResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -824,6 +808,112 @@ func (x *GetAllFlattenedResponse) GetMne() []*FlattenedManagedNetworkElement {
 	return nil
 }
 
+type ParseYangRequest 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.
+	Yang      string `protobuf:"bytes,2,opt,name=yang,proto3" json:"yang,omitempty"`
+}
+
+func (x *ParseYangRequest) Reset() {
+	*x = ParseYangRequest{}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ParseYangRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParseYangRequest) ProtoMessage() {}
+
+func (x *ParseYangRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[8]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParseYangRequest.ProtoReflect.Descriptor instead.
+func (*ParseYangRequest) Descriptor() ([]byte, []int) {
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *ParseYangRequest) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *ParseYangRequest) GetYang() string {
+	if x != nil {
+		return x.Yang
+	}
+	return ""
+}
+
+type ParseYangResponse 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.
+	Json      string `protobuf:"bytes,2,opt,name=json,proto3" json:"json,omitempty"`
+}
+
+func (x *ParseYangResponse) Reset() {
+	*x = ParseYangResponse{}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ParseYangResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParseYangResponse) ProtoMessage() {}
+
+func (x *ParseYangResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[9]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParseYangResponse.ProtoReflect.Descriptor instead.
+func (*ParseYangResponse) Descriptor() ([]byte, []int) {
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *ParseYangResponse) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *ParseYangResponse) GetJson() string {
+	if x != nil {
+		return x.Json
+	}
+	return ""
+}
+
 type GetRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -836,11 +926,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -850,8 +938,8 @@ func (x *GetRequest) String() string {
 func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[10]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -863,7 +951,7 @@ func (x *GetRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.
 func (*GetRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{8}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{10}
 }
 
 func (x *GetRequest) GetTimestamp() int64 {
@@ -901,11 +989,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -915,8 +1001,8 @@ func (x *GetResponse) String() string {
 func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[11]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -928,7 +1014,7 @@ func (x *GetResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.
 func (*GetResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{9}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{11}
 }
 
 func (x *GetResponse) GetTimestamp() int64 {
@@ -964,11 +1050,9 @@ type GetFlattenedRequest struct {
 
 func (x *GetFlattenedRequest) Reset() {
 	*x = GetFlattenedRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetFlattenedRequest) String() string {
@@ -978,8 +1062,8 @@ func (x *GetFlattenedRequest) String() string {
 func (*GetFlattenedRequest) ProtoMessage() {}
 
 func (x *GetFlattenedRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[12]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -991,7 +1075,7 @@ func (x *GetFlattenedRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetFlattenedRequest.ProtoReflect.Descriptor instead.
 func (*GetFlattenedRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{10}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{12}
 }
 
 func (x *GetFlattenedRequest) GetTimestamp() int64 {
@@ -1029,11 +1113,9 @@ type GetFlattenedResponse struct {
 
 func (x *GetFlattenedResponse) Reset() {
 	*x = GetFlattenedResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetFlattenedResponse) String() string {
@@ -1043,8 +1125,8 @@ func (x *GetFlattenedResponse) String() string {
 func (*GetFlattenedResponse) ProtoMessage() {}
 
 func (x *GetFlattenedResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[13]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1056,7 +1138,7 @@ func (x *GetFlattenedResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetFlattenedResponse.ProtoReflect.Descriptor instead.
 func (*GetFlattenedResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{11}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{13}
 }
 
 func (x *GetFlattenedResponse) GetTimestamp() int64 {
@@ -1096,11 +1178,9 @@ type SetMne struct {
 
 func (x *SetMne) Reset() {
 	*x = SetMne{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetMne) String() string {
@@ -1110,8 +1190,8 @@ func (x *SetMne) String() string {
 func (*SetMne) ProtoMessage() {}
 
 func (x *SetMne) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[14]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1123,7 +1203,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{12}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{14}
 }
 
 func (x *SetMne) GetAddress() string {
@@ -1187,11 +1267,9 @@ type AddListRequest struct {
 
 func (x *AddListRequest) Reset() {
 	*x = AddListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AddListRequest) String() string {
@@ -1201,8 +1279,8 @@ func (x *AddListRequest) String() string {
 func (*AddListRequest) ProtoMessage() {}
 
 func (x *AddListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[15]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1214,7 +1292,7 @@ func (x *AddListRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AddListRequest.ProtoReflect.Descriptor instead.
 func (*AddListRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{13}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{15}
 }
 
 func (x *AddListRequest) GetTimestamp() int64 {
@@ -1249,11 +1327,9 @@ type AddListResponse struct {
 
 func (x *AddListResponse) Reset() {
 	*x = AddListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AddListResponse) String() string {
@@ -1263,8 +1339,8 @@ func (x *AddListResponse) String() string {
 func (*AddListResponse) ProtoMessage() {}
 
 func (x *AddListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[16]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1276,7 +1352,7 @@ func (x *AddListResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AddListResponse.ProtoReflect.Descriptor instead.
 func (*AddListResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{14}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{16}
 }
 
 func (x *AddListResponse) GetTimestamp() int64 {
@@ -1306,11 +1382,9 @@ type GetPathRequest struct {
 
 func (x *GetPathRequest) Reset() {
 	*x = GetPathRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetPathRequest) String() string {
@@ -1320,8 +1394,8 @@ func (x *GetPathRequest) String() string {
 func (*GetPathRequest) ProtoMessage() {}
 
 func (x *GetPathRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[17]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1333,7 +1407,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{15}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{17}
 }
 
 func (x *GetPathRequest) GetTimestamp() int64 {
@@ -1378,11 +1452,9 @@ type GetPathResponse struct {
 
 func (x *GetPathResponse) Reset() {
 	*x = GetPathResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetPathResponse) String() string {
@@ -1392,8 +1464,8 @@ func (x *GetPathResponse) String() string {
 func (*GetPathResponse) ProtoMessage() {}
 
 func (x *GetPathResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[18]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1405,7 +1477,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{16}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{18}
 }
 
 func (x *GetPathResponse) GetTimestamp() int64 {
@@ -1442,11 +1514,9 @@ type GetIntendedPathRequest struct {
 
 func (x *GetIntendedPathRequest) Reset() {
 	*x = GetIntendedPathRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetIntendedPathRequest) String() string {
@@ -1456,8 +1526,8 @@ func (x *GetIntendedPathRequest) String() string {
 func (*GetIntendedPathRequest) ProtoMessage() {}
 
 func (x *GetIntendedPathRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[19]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1469,7 +1539,7 @@ func (x *GetIntendedPathRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetIntendedPathRequest.ProtoReflect.Descriptor instead.
 func (*GetIntendedPathRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{17}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{19}
 }
 
 func (x *GetIntendedPathRequest) GetTimestamp() int64 {
@@ -1512,11 +1582,9 @@ type GetIntendedPathResponse struct {
 
 func (x *GetIntendedPathResponse) Reset() {
 	*x = GetIntendedPathResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[18]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetIntendedPathResponse) String() string {
@@ -1526,8 +1594,8 @@ func (x *GetIntendedPathResponse) String() string {
 func (*GetIntendedPathResponse) ProtoMessage() {}
 
 func (x *GetIntendedPathResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[18]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[20]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1539,7 +1607,7 @@ func (x *GetIntendedPathResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetIntendedPathResponse.ProtoReflect.Descriptor instead.
 func (*GetIntendedPathResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{18}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{20}
 }
 
 func (x *GetIntendedPathResponse) GetTimestamp() int64 {
@@ -1574,11 +1642,9 @@ type SetResponse struct {
 
 func (x *SetResponse) Reset() {
 	*x = SetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[19]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[21]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetResponse) String() string {
@@ -1588,8 +1654,8 @@ func (x *SetResponse) String() string {
 func (*SetResponse) ProtoMessage() {}
 
 func (x *SetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[19]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[21]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1601,7 +1667,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{19}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{21}
 }
 
 func (x *SetResponse) GetTimestamp() int64 {
@@ -1630,11 +1696,9 @@ type SetPathListRequest struct {
 
 func (x *SetPathListRequest) Reset() {
 	*x = SetPathListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[20]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[22]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetPathListRequest) String() string {
@@ -1644,8 +1708,8 @@ func (x *SetPathListRequest) String() string {
 func (*SetPathListRequest) ProtoMessage() {}
 
 func (x *SetPathListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[20]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[22]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1657,7 +1721,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{20}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{22}
 }
 
 func (x *SetPathListRequest) GetTimestamp() int64 {
@@ -1692,11 +1756,9 @@ type SetPathListResponse struct {
 
 func (x *SetPathListResponse) Reset() {
 	*x = SetPathListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[21]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[23]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetPathListResponse) String() string {
@@ -1706,8 +1768,8 @@ func (x *SetPathListResponse) String() string {
 func (*SetPathListResponse) ProtoMessage() {}
 
 func (x *SetPathListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[21]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[23]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1719,7 +1781,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{21}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{23}
 }
 
 func (x *SetPathListResponse) GetTimestamp() int64 {
@@ -1748,11 +1810,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[22]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[24]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -1762,8 +1822,8 @@ func (x *DeleteRequest) String() string {
 func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[22]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[24]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1775,7 +1835,7 @@ func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead.
 func (*DeleteRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{22}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{24}
 }
 
 func (x *DeleteRequest) GetTimestamp() int64 {
@@ -1809,11 +1869,9 @@ type DeleteResponse struct {
 
 func (x *DeleteResponse) Reset() {
 	*x = DeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[23]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[25]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteResponse) String() string {
@@ -1823,8 +1881,8 @@ func (x *DeleteResponse) String() string {
 func (*DeleteResponse) ProtoMessage() {}
 
 func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[23]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[25]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1836,7 +1894,7 @@ func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead.
 func (*DeleteResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{23}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{25}
 }
 
 func (x *DeleteResponse) GetTimestamp() int64 {
@@ -1859,11 +1917,9 @@ type Change struct {
 
 func (x *Change) Reset() {
 	*x = Change{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[24]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[26]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Change) String() string {
@@ -1873,8 +1929,8 @@ func (x *Change) String() string {
 func (*Change) ProtoMessage() {}
 
 func (x *Change) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[24]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[26]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1886,7 +1942,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{24}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{26}
 }
 
 func (x *Change) GetId() string {
@@ -1930,11 +1986,9 @@ type ChangeRequest struct {
 
 func (x *ChangeRequest) Reset() {
 	*x = ChangeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[25]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[27]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ChangeRequest) String() string {
@@ -1944,8 +1998,8 @@ func (x *ChangeRequest) String() string {
 func (*ChangeRequest) ProtoMessage() {}
 
 func (x *ChangeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[25]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[27]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1957,7 +2011,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{25}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{27}
 }
 
 func (x *ChangeRequest) GetMneid() string {
@@ -1999,11 +2053,9 @@ type SetChange struct {
 
 func (x *SetChange) Reset() {
 	*x = SetChange{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[26]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[28]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetChange) String() string {
@@ -2013,8 +2065,8 @@ func (x *SetChange) String() string {
 func (*SetChange) ProtoMessage() {}
 
 func (x *SetChange) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[26]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[28]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2026,7 +2078,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{26}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{28}
 }
 
 func (x *SetChange) GetCuid() string {
@@ -2054,11 +2106,9 @@ type GetChangeListRequest struct {
 
 func (x *GetChangeListRequest) Reset() {
 	*x = GetChangeListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[27]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[29]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetChangeListRequest) String() string {
@@ -2068,8 +2118,8 @@ func (x *GetChangeListRequest) String() string {
 func (*GetChangeListRequest) ProtoMessage() {}
 
 func (x *GetChangeListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[27]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[29]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2081,7 +2131,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{27}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{29}
 }
 
 func (x *GetChangeListRequest) GetTimestamp() int64 {
@@ -2112,11 +2162,9 @@ type GetChangeListResponse struct {
 
 func (x *GetChangeListResponse) Reset() {
 	*x = GetChangeListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[28]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[30]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetChangeListResponse) String() string {
@@ -2126,8 +2174,8 @@ func (x *GetChangeListResponse) String() string {
 func (*GetChangeListResponse) ProtoMessage() {}
 
 func (x *GetChangeListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[28]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[30]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2139,7 +2187,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{28}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{30}
 }
 
 func (x *GetChangeListResponse) GetTimestamp() int64 {
@@ -2175,11 +2223,9 @@ type GetChangeRequest struct {
 
 func (x *GetChangeRequest) Reset() {
 	*x = GetChangeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[29]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[31]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetChangeRequest) String() string {
@@ -2189,8 +2235,8 @@ func (x *GetChangeRequest) String() string {
 func (*GetChangeRequest) ProtoMessage() {}
 
 func (x *GetChangeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[29]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[31]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2202,7 +2248,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{29}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{31}
 }
 
 func (x *GetChangeRequest) GetTimestamp() int64 {
@@ -2240,11 +2286,9 @@ type GetChangeResponse struct {
 
 func (x *GetChangeResponse) Reset() {
 	*x = GetChangeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[30]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[32]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetChangeResponse) String() string {
@@ -2254,8 +2298,8 @@ func (x *GetChangeResponse) String() string {
 func (*GetChangeResponse) ProtoMessage() {}
 
 func (x *GetChangeResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[30]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[32]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2267,7 +2311,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{30}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{32}
 }
 
 func (x *GetChangeResponse) GetTimestamp() int64 {
@@ -2303,11 +2347,9 @@ type SetChangeListRequest struct {
 
 func (x *SetChangeListRequest) Reset() {
 	*x = SetChangeListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[31]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[33]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetChangeListRequest) String() string {
@@ -2317,8 +2359,8 @@ func (x *SetChangeListRequest) String() string {
 func (*SetChangeListRequest) ProtoMessage() {}
 
 func (x *SetChangeListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[31]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[33]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2330,7 +2372,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{31}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{33}
 }
 
 func (x *SetChangeListRequest) GetTimestamp() int64 {
@@ -2365,11 +2407,9 @@ type SetChangeListResponse struct {
 
 func (x *SetChangeListResponse) Reset() {
 	*x = SetChangeListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[32]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[34]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetChangeListResponse) String() string {
@@ -2379,8 +2419,8 @@ func (x *SetChangeListResponse) String() string {
 func (*SetChangeListResponse) ProtoMessage() {}
 
 func (x *SetChangeListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[32]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[34]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2392,7 +2432,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{32}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{34}
 }
 
 func (x *SetChangeListResponse) GetTimestamp() int64 {
@@ -2422,11 +2462,9 @@ type SubscriptionList struct {
 
 func (x *SubscriptionList) Reset() {
 	*x = SubscriptionList{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[33]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[35]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SubscriptionList) String() string {
@@ -2436,8 +2474,8 @@ func (x *SubscriptionList) String() string {
 func (*SubscriptionList) ProtoMessage() {}
 
 func (x *SubscriptionList) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[33]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[35]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2449,7 +2487,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{33}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{35}
 }
 
 func (x *SubscriptionList) GetSubscription() []*Subscription {
@@ -2478,11 +2516,9 @@ type Subscription struct {
 
 func (x *Subscription) Reset() {
 	*x = Subscription{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[34]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[36]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Subscription) String() string {
@@ -2492,8 +2528,8 @@ func (x *Subscription) String() string {
 func (*Subscription) ProtoMessage() {}
 
 func (x *Subscription) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[34]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[36]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2505,7 +2541,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{34}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{36}
 }
 
 func (x *Subscription) GetPath() string {
@@ -2542,11 +2578,9 @@ type SubscribePathRequest struct {
 
 func (x *SubscribePathRequest) Reset() {
 	*x = SubscribePathRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[35]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[37]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SubscribePathRequest) String() string {
@@ -2556,8 +2590,8 @@ func (x *SubscribePathRequest) String() string {
 func (*SubscribePathRequest) ProtoMessage() {}
 
 func (x *SubscribePathRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[35]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[37]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2569,7 +2603,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{35}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{37}
 }
 
 func (x *SubscribePathRequest) GetTimestamp() int64 {
@@ -2611,11 +2645,9 @@ type SubscribePathResponse struct {
 
 func (x *SubscribePathResponse) Reset() {
 	*x = SubscribePathResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[36]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[38]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SubscribePathResponse) String() string {
@@ -2625,8 +2657,8 @@ func (x *SubscribePathResponse) String() string {
 func (*SubscribePathResponse) ProtoMessage() {}
 
 func (x *SubscribePathResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[36]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_gosdn_networkelement_networkelement_proto_msgTypes[38]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2638,7 +2670,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{36}
+	return file_gosdn_networkelement_networkelement_proto_rawDescGZIP(), []int{38}
 }
 
 func (x *SubscribePathResponse) GetTimestamp() int64 {
@@ -2762,326 +2794,343 @@ var file_gosdn_networkelement_networkelement_proto_rawDesc = []byte{
 	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, 0x62, 0x0a, 0x0a, 0x47, 0x65, 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, 0x1c,
-	0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba,
-	0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x03,
-	0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01,
-	0x01, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x9f, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
+	0x6e, 0x65, 0x22, 0x4c, 0x0a, 0x10, 0x50, 0x61, 0x72, 0x73, 0x65, 0x59, 0x61, 0x6e, 0x67, 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, 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, 0x6b, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46,
-	0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 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, 0x1c, 0x0a,
-	0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48,
-	0x03, 0xc8, 0x01, 0x01, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x03, 0x70,
-	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01,
-	0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xb1, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61,
-	0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 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, 0x01, 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, 0x81, 0x02, 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, 0x10,
-	0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64,
-	0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08,
-	0x6d, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 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, 0x05, 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, 0x30, 0x0a, 0x14, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x73, 0x75, 0x62,
-	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x06, 0x20, 0x03,
-	0x28, 0x09, 0x52, 0x12, 0x67, 0x6e, 0x6d, 0x69, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
-	0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x6e, 0x65, 0x5f, 0x69, 0x64,
-	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x80, 0x01,
-	0x0a, 0x0e, 0x41, 0x64, 0x64, 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, 0x36,
-	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, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01,
-	0x01, 0x52, 0x03, 0x6d, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x03, 0x70, 0x69, 0x64,
-	0x22, 0x70, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x04, 0x79, 0x61, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x04, 0x79, 0x61, 0x6e, 0x67,
+	0x22, 0x4d, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x73, 0x65, 0x59, 0x61, 0x6e, 0x67, 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, 0x1a, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x22,
+	0x62, 0x0a, 0x0a, 0x47, 0x65, 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, 0x1c, 0x0a, 0x05, 0x6d,
+	0x6e, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8,
+	0x01, 0x01, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x03, 0x70, 0x69, 0x64,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x03,
+	0x70, 0x69, 0x64, 0x22, 0x9f, 0x01, 0x0a, 0x0b, 0x47, 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, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02,
-	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, 0x82, 0x01, 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, 0x1c, 0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69,
-	0x64, 0x12, 0x1a, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
-	0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a,
-	0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8,
-	0x01, 0x01, 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,
+	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, 0x6b, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74,
+	0x74, 0x65, 0x6e, 0x65, 0x64, 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, 0x1c, 0x0a, 0x05, 0x6d, 0x6e,
+	0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01,
+	0x01, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x03, 0x70,
+	0x69, 0x64, 0x22, 0xb1, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65,
+	0x6e, 0x65, 0x64, 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, 0x9b, 0x01,
-	0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 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, 0x1c, 0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x05, 0x6d,
-	0x6e, 0x65, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64,
-	0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03,
-	0xc8, 0x01, 0x01, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x50, 0x61, 0x74,
-	0x68, 0x12, 0x18, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06,
-	0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xab, 0x01, 0x0a, 0x17,
-	0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 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, 0x40, 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, 0x3b, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 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,
+	0x6f, 0x72, 0x6b, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x03, 0x70, 0x6e, 0x64, 0x12, 0x46,
+	0x0a, 0x03, 0x6d, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 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, 0x81, 0x02, 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, 0x10, 0x0a, 0x03, 0x70,
+	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x1a, 0x0a,
+	0x08, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x08, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x6e, 0x65,
+	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 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, 0x05, 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, 0x30, 0x0a, 0x14, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
+	0x69, 0x62, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52,
+	0x12, 0x67, 0x6e, 0x6d, 0x69, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x50, 0x61,
+	0x74, 0x68, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6d, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x0e, 0x41,
+	0x64, 0x64, 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, 0x74, 0x0a, 0x13, 0x53, 0x65, 0x74,
-	0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x36, 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, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x03,
+	0x6d, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+	0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x70, 0x0a,
+	0x0f, 0x41, 0x64, 0x64, 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, 0x3f,
 	0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 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,
-	0x5d, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 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, 0x1c, 0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
-	0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x22, 0x2e,
-	0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 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, 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, 0xa8, 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, 0x1e, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04,
-	0x70, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 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, 0x4e, 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,
-	0x18, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48,
-	0x03, 0xc8, 0x01, 0x01, 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, 0x66, 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, 0x1a,
-	0x0a, 0x04, 0x63, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48,
-	0x03, 0xc8, 0x01, 0x01, 0x52, 0x04, 0x63, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x03, 0x70, 0x69,
-	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 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, 0x8f, 0x01, 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, 0x3f, 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, 0x42, 0x06, 0xba, 0x48, 0x03,
-	0xc8, 0x01, 0x01, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x03, 0x70,
-	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01,
-	0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x76, 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, 0x3f, 0x0a, 0x09,
-	0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 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, 0xa8, 0x01,
-	0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69,
-	0x73, 0x74, 0x12, 0x50, 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, 0x42, 0x08, 0xba, 0x48,
-	0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 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, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8,
-	0x01, 0x01, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62,
-	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x04, 0x70, 0x61, 0x74,
-	0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52,
-	0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x49, 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, 0x42, 0x06, 0xba, 0x48,
-	0x03, 0xc8, 0x01, 0x01, 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, 0xb6, 0x01, 0x0a, 0x14, 0x53, 0x75,
-	0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x82, 0x01, 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, 0x1c, 0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
-	0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x18,
-	0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03,
-	0xc8, 0x01, 0x01, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x48, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6c,
-	0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64,
+	0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x1a,
+	0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48,
+	0x03, 0xc8, 0x01, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x03, 0x70, 0x69,
+	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 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, 0x9b, 0x01, 0x0a, 0x16, 0x47,
+	0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 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, 0x1c, 0x0a, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69,
+	0x64, 0x12, 0x2b, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x61,
+	0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01,
+	0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18,
+	0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03,
+	0xc8, 0x01, 0x01, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xab, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74,
+	0x49, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 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, 0x40, 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, 0x3b, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x02, 0x69, 0x64, 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, 0x74, 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, 0x3f, 0x0a, 0x09, 0x72,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 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, 0x5d, 0x0a, 0x0d,
+	0x44, 0x65, 0x6c, 0x65, 0x74, 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, 0x1c, 0x0a,
+	0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48,
+	0x03, 0xc8, 0x01, 0x01, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x22, 0x2e, 0x0a, 0x0e, 0x44,
+	0x65, 0x6c, 0x65, 0x74, 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, 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, 0xa8, 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, 0x1e, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x70, 0x61, 0x74,
+	0x68, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c,
+	0x75, 0x65, 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, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73,
-	0x74, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6c, 0x69,
-	0x73, 0x74, 0x22, 0x74, 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,
+	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, 0x4e, 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, 0x18, 0x0a, 0x03,
+	0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01,
+	0x01, 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, 0x66, 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, 0x1a, 0x0a, 0x04, 0x63,
+	0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01,
+	0x01, 0x52, 0x04, 0x63, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 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, 0x8f, 0x01, 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, 0x3f, 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, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01,
+	0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x03, 0x70,
+	0x69, 0x64, 0x22, 0x76, 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, 0x3d, 0x0a, 0x10, 0x6d, 0x6e, 0x65,
-	0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 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, 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, 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, 0xaf, 0x0d, 0x0a,
-	0x15, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53,
-	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 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,
+	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 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, 0xa8, 0x01, 0x0a, 0x10, 0x53,
+	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12,
+	0x50, 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, 0x42, 0x08, 0xba, 0x48, 0x05, 0x92, 0x01,
+	0x02, 0x08, 0x01, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+	0x6e, 0x12, 0x42, 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, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52,
+	0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
+	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x04, 0x70, 0x61,
+	0x74, 0x68, 0x12, 0x49, 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, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01,
+	0x01, 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, 0xb6, 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, 0x1c, 0x0a,
+	0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48,
+	0x03, 0xc8, 0x01, 0x01, 0x52, 0x05, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x03, 0x70,
+	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0xc8, 0x01, 0x01,
+	0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x48, 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, 0x42, 0x06,
+	0xba, 0x48, 0x03, 0xc8, 0x01, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x74, 0x22,
+	0x74, 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, 0x3d, 0x0a, 0x10, 0x6d, 0x6e, 0x65, 0x5f, 0x6e, 0x6f,
+	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 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, 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, 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, 0xa2, 0x0e, 0x0a, 0x15, 0x4e, 0x65,
+	0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76,
+	0x69, 0x63, 0x65, 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, 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, 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, 0x53, 0x0a, 0x06,
-	0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e,
+	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, 0x53, 0x0a, 0x06, 0x47, 0x65, 0x74,
+	0x41, 0x6c, 0x6c, 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, 0x41, 0x6c,
+	0x6c, 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, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d,
+	0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65,
+	0x64, 0x12, 0x2c, 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, 0x46,
+	0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x2d, 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, 0x46, 0x6c, 0x61,
+	0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0d,
+	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x07, 0x12, 0x05, 0x2f, 0x6d, 0x6e, 0x65, 0x73, 0x12, 0x61, 0x0a,
+	0x03, 0x47, 0x65, 0x74, 0x12, 0x20, 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, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 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, 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, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x12, 0x7d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x74, 0x74,
-	0x65, 0x6e, 0x65, 0x64, 0x12, 0x2c, 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, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x2d, 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,
-	0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x22, 0x0d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x07, 0x12, 0x05, 0x2f, 0x6d, 0x6e, 0x65, 0x73,
-	0x12, 0x61, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x20, 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, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 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, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3,
-	0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x6d, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x6d, 0x6e, 0x65,
-	0x69, 0x64, 0x7d, 0x12, 0x65, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65,
+	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+	0x0f, 0x12, 0x0d, 0x2f, 0x6d, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x6d, 0x6e, 0x65, 0x69, 0x64, 0x7d,
+	0x12, 0x71, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x73, 0x65, 0x59, 0x61, 0x6e, 0x67, 0x12, 0x26, 0x2e,
+	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x6c, 0x65,
+	0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x73, 0x65, 0x59, 0x61, 0x6e, 0x67, 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, 0x50, 0x61, 0x72,
+	0x73, 0x65, 0x59, 0x61, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13,
+	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x79, 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x61,
+	0x72, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65,
 	0x6e, 0x65, 0x64, 0x12, 0x29, 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, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a,
@@ -3178,7 +3227,7 @@ func file_gosdn_networkelement_networkelement_proto_rawDescGZIP() []byte {
 }
 
 var file_gosdn_networkelement_networkelement_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
-var file_gosdn_networkelement_networkelement_proto_msgTypes = make([]protoimpl.MessageInfo, 37)
+var file_gosdn_networkelement_networkelement_proto_msgTypes = make([]protoimpl.MessageInfo, 39)
 var file_gosdn_networkelement_networkelement_proto_goTypes = []any{
 	(ChangeState)(0),                       // 0: gosdn.networkelement.ChangeState
 	(ApiOperation)(0),                      // 1: gosdn.networkelement.ApiOperation
@@ -3193,113 +3242,117 @@ var file_gosdn_networkelement_networkelement_proto_goTypes = []any{
 	(*GetAllResponse)(nil),                 // 10: gosdn.networkelement.GetAllResponse
 	(*GetAllFlattenedRequest)(nil),         // 11: gosdn.networkelement.GetAllFlattenedRequest
 	(*GetAllFlattenedResponse)(nil),        // 12: gosdn.networkelement.GetAllFlattenedResponse
-	(*GetRequest)(nil),                     // 13: gosdn.networkelement.GetRequest
-	(*GetResponse)(nil),                    // 14: gosdn.networkelement.GetResponse
-	(*GetFlattenedRequest)(nil),            // 15: gosdn.networkelement.GetFlattenedRequest
-	(*GetFlattenedResponse)(nil),           // 16: gosdn.networkelement.GetFlattenedResponse
-	(*SetMne)(nil),                         // 17: gosdn.networkelement.SetMne
-	(*AddListRequest)(nil),                 // 18: gosdn.networkelement.AddListRequest
-	(*AddListResponse)(nil),                // 19: gosdn.networkelement.AddListResponse
-	(*GetPathRequest)(nil),                 // 20: gosdn.networkelement.GetPathRequest
-	(*GetPathResponse)(nil),                // 21: gosdn.networkelement.GetPathResponse
-	(*GetIntendedPathRequest)(nil),         // 22: gosdn.networkelement.GetIntendedPathRequest
-	(*GetIntendedPathResponse)(nil),        // 23: gosdn.networkelement.GetIntendedPathResponse
-	(*SetResponse)(nil),                    // 24: gosdn.networkelement.SetResponse
-	(*SetPathListRequest)(nil),             // 25: gosdn.networkelement.SetPathListRequest
-	(*SetPathListResponse)(nil),            // 26: gosdn.networkelement.SetPathListResponse
-	(*DeleteRequest)(nil),                  // 27: gosdn.networkelement.DeleteRequest
-	(*DeleteResponse)(nil),                 // 28: gosdn.networkelement.DeleteResponse
-	(*Change)(nil),                         // 29: gosdn.networkelement.Change
-	(*ChangeRequest)(nil),                  // 30: gosdn.networkelement.ChangeRequest
-	(*SetChange)(nil),                      // 31: gosdn.networkelement.SetChange
-	(*GetChangeListRequest)(nil),           // 32: gosdn.networkelement.GetChangeListRequest
-	(*GetChangeListResponse)(nil),          // 33: gosdn.networkelement.GetChangeListResponse
-	(*GetChangeRequest)(nil),               // 34: gosdn.networkelement.GetChangeRequest
-	(*GetChangeResponse)(nil),              // 35: gosdn.networkelement.GetChangeResponse
-	(*SetChangeListRequest)(nil),           // 36: gosdn.networkelement.SetChangeListRequest
-	(*SetChangeListResponse)(nil),          // 37: gosdn.networkelement.SetChangeListResponse
-	(*SubscriptionList)(nil),               // 38: gosdn.networkelement.SubscriptionList
-	(*Subscription)(nil),                   // 39: gosdn.networkelement.Subscription
-	(*SubscribePathRequest)(nil),           // 40: gosdn.networkelement.SubscribePathRequest
-	(*SubscribePathResponse)(nil),          // 41: gosdn.networkelement.SubscribePathResponse
-	(*plugin_registry.Plugin)(nil),         // 42: gosdn.plugin_registry.Plugin
-	(*gnmi.Notification)(nil),              // 43: gnmi.Notification
-	(*transport.TransportOption)(nil),      // 44: gosdn.transport.TransportOption
-	(*conflict.Metadata)(nil),              // 45: gosdn.conflict.Metadata
-	(*pnd.PrincipalNetworkDomain)(nil),     // 46: gosdn.pnd.PrincipalNetworkDomain
-	(*gnmi.Path)(nil),                      // 47: gnmi.Path
-	(*gnmi.TypedValue)(nil),                // 48: gnmi.TypedValue
+	(*ParseYangRequest)(nil),               // 13: gosdn.networkelement.ParseYangRequest
+	(*ParseYangResponse)(nil),              // 14: gosdn.networkelement.ParseYangResponse
+	(*GetRequest)(nil),                     // 15: gosdn.networkelement.GetRequest
+	(*GetResponse)(nil),                    // 16: gosdn.networkelement.GetResponse
+	(*GetFlattenedRequest)(nil),            // 17: gosdn.networkelement.GetFlattenedRequest
+	(*GetFlattenedResponse)(nil),           // 18: gosdn.networkelement.GetFlattenedResponse
+	(*SetMne)(nil),                         // 19: gosdn.networkelement.SetMne
+	(*AddListRequest)(nil),                 // 20: gosdn.networkelement.AddListRequest
+	(*AddListResponse)(nil),                // 21: gosdn.networkelement.AddListResponse
+	(*GetPathRequest)(nil),                 // 22: gosdn.networkelement.GetPathRequest
+	(*GetPathResponse)(nil),                // 23: gosdn.networkelement.GetPathResponse
+	(*GetIntendedPathRequest)(nil),         // 24: gosdn.networkelement.GetIntendedPathRequest
+	(*GetIntendedPathResponse)(nil),        // 25: gosdn.networkelement.GetIntendedPathResponse
+	(*SetResponse)(nil),                    // 26: gosdn.networkelement.SetResponse
+	(*SetPathListRequest)(nil),             // 27: gosdn.networkelement.SetPathListRequest
+	(*SetPathListResponse)(nil),            // 28: gosdn.networkelement.SetPathListResponse
+	(*DeleteRequest)(nil),                  // 29: gosdn.networkelement.DeleteRequest
+	(*DeleteResponse)(nil),                 // 30: gosdn.networkelement.DeleteResponse
+	(*Change)(nil),                         // 31: gosdn.networkelement.Change
+	(*ChangeRequest)(nil),                  // 32: gosdn.networkelement.ChangeRequest
+	(*SetChange)(nil),                      // 33: gosdn.networkelement.SetChange
+	(*GetChangeListRequest)(nil),           // 34: gosdn.networkelement.GetChangeListRequest
+	(*GetChangeListResponse)(nil),          // 35: gosdn.networkelement.GetChangeListResponse
+	(*GetChangeRequest)(nil),               // 36: gosdn.networkelement.GetChangeRequest
+	(*GetChangeResponse)(nil),              // 37: gosdn.networkelement.GetChangeResponse
+	(*SetChangeListRequest)(nil),           // 38: gosdn.networkelement.SetChangeListRequest
+	(*SetChangeListResponse)(nil),          // 39: gosdn.networkelement.SetChangeListResponse
+	(*SubscriptionList)(nil),               // 40: gosdn.networkelement.SubscriptionList
+	(*Subscription)(nil),                   // 41: gosdn.networkelement.Subscription
+	(*SubscribePathRequest)(nil),           // 42: gosdn.networkelement.SubscribePathRequest
+	(*SubscribePathResponse)(nil),          // 43: gosdn.networkelement.SubscribePathResponse
+	(*plugin_registry.Plugin)(nil),         // 44: gosdn.plugin_registry.Plugin
+	(*gnmi.Notification)(nil),              // 45: gnmi.Notification
+	(*transport.TransportOption)(nil),      // 46: gosdn.transport.TransportOption
+	(*conflict.Metadata)(nil),              // 47: gosdn.conflict.Metadata
+	(*pnd.PrincipalNetworkDomain)(nil),     // 48: gosdn.pnd.PrincipalNetworkDomain
+	(*gnmi.Path)(nil),                      // 49: gnmi.Path
+	(*gnmi.TypedValue)(nil),                // 50: gnmi.TypedValue
 }
 var file_gosdn_networkelement_networkelement_proto_depIdxs = []int32{
 	7,  // 0: gosdn.networkelement.UpdateNetworkElementRequest.network_element:type_name -> gosdn.networkelement.ManagedNetworkElement
-	42, // 1: gosdn.networkelement.ManagedNetworkElement.plugin:type_name -> gosdn.plugin_registry.Plugin
-	43, // 2: gosdn.networkelement.ManagedNetworkElement.mne_notification:type_name -> gnmi.Notification
-	44, // 3: gosdn.networkelement.ManagedNetworkElement.transport_option:type_name -> gosdn.transport.TransportOption
-	45, // 4: gosdn.networkelement.ManagedNetworkElement.metadata:type_name -> gosdn.conflict.Metadata
-	46, // 5: gosdn.networkelement.GetAllResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
+	44, // 1: gosdn.networkelement.ManagedNetworkElement.plugin:type_name -> gosdn.plugin_registry.Plugin
+	45, // 2: gosdn.networkelement.ManagedNetworkElement.mne_notification:type_name -> gnmi.Notification
+	46, // 3: gosdn.networkelement.ManagedNetworkElement.transport_option:type_name -> gosdn.transport.TransportOption
+	47, // 4: gosdn.networkelement.ManagedNetworkElement.metadata:type_name -> gosdn.conflict.Metadata
+	48, // 5: gosdn.networkelement.GetAllResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
 	7,  // 6: gosdn.networkelement.GetAllResponse.mne:type_name -> gosdn.networkelement.ManagedNetworkElement
-	46, // 7: gosdn.networkelement.GetAllFlattenedResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
+	48, // 7: gosdn.networkelement.GetAllFlattenedResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
 	8,  // 8: gosdn.networkelement.GetAllFlattenedResponse.mne:type_name -> gosdn.networkelement.FlattenedManagedNetworkElement
-	46, // 9: gosdn.networkelement.GetResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
+	48, // 9: gosdn.networkelement.GetResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
 	7,  // 10: gosdn.networkelement.GetResponse.mne:type_name -> gosdn.networkelement.ManagedNetworkElement
-	46, // 11: gosdn.networkelement.GetFlattenedResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
+	48, // 11: gosdn.networkelement.GetFlattenedResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
 	8,  // 12: gosdn.networkelement.GetFlattenedResponse.mne:type_name -> gosdn.networkelement.FlattenedManagedNetworkElement
-	44, // 13: gosdn.networkelement.SetMne.transport_option:type_name -> gosdn.transport.TransportOption
-	17, // 14: gosdn.networkelement.AddListRequest.mne:type_name -> gosdn.networkelement.SetMne
-	24, // 15: gosdn.networkelement.AddListResponse.responses:type_name -> gosdn.networkelement.SetResponse
-	46, // 16: gosdn.networkelement.GetPathResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
-	43, // 17: gosdn.networkelement.GetPathResponse.mne_notification:type_name -> gnmi.Notification
-	46, // 18: gosdn.networkelement.GetIntendedPathResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
-	43, // 19: gosdn.networkelement.GetIntendedPathResponse.mne_notification:type_name -> gnmi.Notification
-	30, // 20: gosdn.networkelement.SetPathListRequest.change_request:type_name -> gosdn.networkelement.ChangeRequest
-	24, // 21: gosdn.networkelement.SetPathListResponse.responses:type_name -> gosdn.networkelement.SetResponse
+	46, // 13: gosdn.networkelement.SetMne.transport_option:type_name -> gosdn.transport.TransportOption
+	19, // 14: gosdn.networkelement.AddListRequest.mne:type_name -> gosdn.networkelement.SetMne
+	26, // 15: gosdn.networkelement.AddListResponse.responses:type_name -> gosdn.networkelement.SetResponse
+	48, // 16: gosdn.networkelement.GetPathResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
+	45, // 17: gosdn.networkelement.GetPathResponse.mne_notification:type_name -> gnmi.Notification
+	48, // 18: gosdn.networkelement.GetIntendedPathResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
+	45, // 19: gosdn.networkelement.GetIntendedPathResponse.mne_notification:type_name -> gnmi.Notification
+	32, // 20: gosdn.networkelement.SetPathListRequest.change_request:type_name -> gosdn.networkelement.ChangeRequest
+	26, // 21: gosdn.networkelement.SetPathListResponse.responses:type_name -> gosdn.networkelement.SetResponse
 	0,  // 22: gosdn.networkelement.Change.state:type_name -> gosdn.networkelement.ChangeState
-	43, // 23: gosdn.networkelement.Change.diff:type_name -> gnmi.Notification
-	47, // 24: gosdn.networkelement.ChangeRequest.path:type_name -> gnmi.Path
-	48, // 25: gosdn.networkelement.ChangeRequest.value:type_name -> gnmi.TypedValue
+	45, // 23: gosdn.networkelement.Change.diff:type_name -> gnmi.Notification
+	49, // 24: gosdn.networkelement.ChangeRequest.path:type_name -> gnmi.Path
+	50, // 25: gosdn.networkelement.ChangeRequest.value:type_name -> gnmi.TypedValue
 	1,  // 26: gosdn.networkelement.ChangeRequest.api_op:type_name -> gosdn.networkelement.ApiOperation
 	2,  // 27: gosdn.networkelement.SetChange.op:type_name -> gosdn.networkelement.Operation
-	46, // 28: gosdn.networkelement.GetChangeListResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
-	29, // 29: gosdn.networkelement.GetChangeListResponse.change:type_name -> gosdn.networkelement.Change
-	46, // 30: gosdn.networkelement.GetChangeResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
-	29, // 31: gosdn.networkelement.GetChangeResponse.change:type_name -> gosdn.networkelement.Change
-	31, // 32: gosdn.networkelement.SetChangeListRequest.change:type_name -> gosdn.networkelement.SetChange
-	24, // 33: gosdn.networkelement.SetChangeListResponse.responses:type_name -> gosdn.networkelement.SetResponse
-	39, // 34: gosdn.networkelement.SubscriptionList.subscription:type_name -> gosdn.networkelement.Subscription
+	48, // 28: gosdn.networkelement.GetChangeListResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
+	31, // 29: gosdn.networkelement.GetChangeListResponse.change:type_name -> gosdn.networkelement.Change
+	48, // 30: gosdn.networkelement.GetChangeResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
+	31, // 31: gosdn.networkelement.GetChangeResponse.change:type_name -> gosdn.networkelement.Change
+	33, // 32: gosdn.networkelement.SetChangeListRequest.change:type_name -> gosdn.networkelement.SetChange
+	26, // 33: gosdn.networkelement.SetChangeListResponse.responses:type_name -> gosdn.networkelement.SetResponse
+	41, // 34: gosdn.networkelement.SubscriptionList.subscription:type_name -> gosdn.networkelement.Subscription
 	3,  // 35: gosdn.networkelement.SubscriptionList.mode:type_name -> gosdn.networkelement.SubscriptionMode
 	4,  // 36: gosdn.networkelement.Subscription.stream_mode:type_name -> gosdn.networkelement.StreamMode
-	38, // 37: gosdn.networkelement.SubscribePathRequest.sublist:type_name -> gosdn.networkelement.SubscriptionList
-	43, // 38: gosdn.networkelement.SubscribePathResponse.mne_notification:type_name -> gnmi.Notification
+	40, // 37: gosdn.networkelement.SubscribePathRequest.sublist:type_name -> gosdn.networkelement.SubscriptionList
+	45, // 38: gosdn.networkelement.SubscribePathResponse.mne_notification:type_name -> gnmi.Notification
 	5,  // 39: gosdn.networkelement.NetworkElementService.Update:input_type -> gosdn.networkelement.UpdateNetworkElementRequest
 	9,  // 40: gosdn.networkelement.NetworkElementService.GetAll:input_type -> gosdn.networkelement.GetAllRequest
 	11, // 41: gosdn.networkelement.NetworkElementService.GetAllFlattened:input_type -> gosdn.networkelement.GetAllFlattenedRequest
-	13, // 42: gosdn.networkelement.NetworkElementService.Get:input_type -> gosdn.networkelement.GetRequest
-	15, // 43: gosdn.networkelement.NetworkElementService.GetFlattened:input_type -> gosdn.networkelement.GetFlattenedRequest
-	18, // 44: gosdn.networkelement.NetworkElementService.AddList:input_type -> gosdn.networkelement.AddListRequest
-	20, // 45: gosdn.networkelement.NetworkElementService.GetPath:input_type -> gosdn.networkelement.GetPathRequest
-	22, // 46: gosdn.networkelement.NetworkElementService.GetIntendedPath:input_type -> gosdn.networkelement.GetIntendedPathRequest
-	25, // 47: gosdn.networkelement.NetworkElementService.SetPathList:input_type -> gosdn.networkelement.SetPathListRequest
-	27, // 48: gosdn.networkelement.NetworkElementService.Delete:input_type -> gosdn.networkelement.DeleteRequest
-	32, // 49: gosdn.networkelement.NetworkElementService.GetChangeList:input_type -> gosdn.networkelement.GetChangeListRequest
-	34, // 50: gosdn.networkelement.NetworkElementService.GetChange:input_type -> gosdn.networkelement.GetChangeRequest
-	36, // 51: gosdn.networkelement.NetworkElementService.SetChangeList:input_type -> gosdn.networkelement.SetChangeListRequest
-	40, // 52: gosdn.networkelement.NetworkElementService.SubscribePath:input_type -> gosdn.networkelement.SubscribePathRequest
-	6,  // 53: gosdn.networkelement.NetworkElementService.Update:output_type -> gosdn.networkelement.UpdateNetworkElementResponse
-	10, // 54: gosdn.networkelement.NetworkElementService.GetAll:output_type -> gosdn.networkelement.GetAllResponse
-	12, // 55: gosdn.networkelement.NetworkElementService.GetAllFlattened:output_type -> gosdn.networkelement.GetAllFlattenedResponse
-	14, // 56: gosdn.networkelement.NetworkElementService.Get:output_type -> gosdn.networkelement.GetResponse
-	16, // 57: gosdn.networkelement.NetworkElementService.GetFlattened:output_type -> gosdn.networkelement.GetFlattenedResponse
-	19, // 58: gosdn.networkelement.NetworkElementService.AddList:output_type -> gosdn.networkelement.AddListResponse
-	21, // 59: gosdn.networkelement.NetworkElementService.GetPath:output_type -> gosdn.networkelement.GetPathResponse
-	23, // 60: gosdn.networkelement.NetworkElementService.GetIntendedPath:output_type -> gosdn.networkelement.GetIntendedPathResponse
-	26, // 61: gosdn.networkelement.NetworkElementService.SetPathList:output_type -> gosdn.networkelement.SetPathListResponse
-	28, // 62: gosdn.networkelement.NetworkElementService.Delete:output_type -> gosdn.networkelement.DeleteResponse
-	33, // 63: gosdn.networkelement.NetworkElementService.GetChangeList:output_type -> gosdn.networkelement.GetChangeListResponse
-	35, // 64: gosdn.networkelement.NetworkElementService.GetChange:output_type -> gosdn.networkelement.GetChangeResponse
-	37, // 65: gosdn.networkelement.NetworkElementService.SetChangeList:output_type -> gosdn.networkelement.SetChangeListResponse
-	41, // 66: gosdn.networkelement.NetworkElementService.SubscribePath:output_type -> gosdn.networkelement.SubscribePathResponse
-	53, // [53:67] is the sub-list for method output_type
-	39, // [39:53] is the sub-list for method input_type
+	15, // 42: gosdn.networkelement.NetworkElementService.Get:input_type -> gosdn.networkelement.GetRequest
+	13, // 43: gosdn.networkelement.NetworkElementService.ParseYang:input_type -> gosdn.networkelement.ParseYangRequest
+	17, // 44: gosdn.networkelement.NetworkElementService.GetFlattened:input_type -> gosdn.networkelement.GetFlattenedRequest
+	20, // 45: gosdn.networkelement.NetworkElementService.AddList:input_type -> gosdn.networkelement.AddListRequest
+	22, // 46: gosdn.networkelement.NetworkElementService.GetPath:input_type -> gosdn.networkelement.GetPathRequest
+	24, // 47: gosdn.networkelement.NetworkElementService.GetIntendedPath:input_type -> gosdn.networkelement.GetIntendedPathRequest
+	27, // 48: gosdn.networkelement.NetworkElementService.SetPathList:input_type -> gosdn.networkelement.SetPathListRequest
+	29, // 49: gosdn.networkelement.NetworkElementService.Delete:input_type -> gosdn.networkelement.DeleteRequest
+	34, // 50: gosdn.networkelement.NetworkElementService.GetChangeList:input_type -> gosdn.networkelement.GetChangeListRequest
+	36, // 51: gosdn.networkelement.NetworkElementService.GetChange:input_type -> gosdn.networkelement.GetChangeRequest
+	38, // 52: gosdn.networkelement.NetworkElementService.SetChangeList:input_type -> gosdn.networkelement.SetChangeListRequest
+	42, // 53: gosdn.networkelement.NetworkElementService.SubscribePath:input_type -> gosdn.networkelement.SubscribePathRequest
+	6,  // 54: gosdn.networkelement.NetworkElementService.Update:output_type -> gosdn.networkelement.UpdateNetworkElementResponse
+	10, // 55: gosdn.networkelement.NetworkElementService.GetAll:output_type -> gosdn.networkelement.GetAllResponse
+	12, // 56: gosdn.networkelement.NetworkElementService.GetAllFlattened:output_type -> gosdn.networkelement.GetAllFlattenedResponse
+	16, // 57: gosdn.networkelement.NetworkElementService.Get:output_type -> gosdn.networkelement.GetResponse
+	14, // 58: gosdn.networkelement.NetworkElementService.ParseYang:output_type -> gosdn.networkelement.ParseYangResponse
+	18, // 59: gosdn.networkelement.NetworkElementService.GetFlattened:output_type -> gosdn.networkelement.GetFlattenedResponse
+	21, // 60: gosdn.networkelement.NetworkElementService.AddList:output_type -> gosdn.networkelement.AddListResponse
+	23, // 61: gosdn.networkelement.NetworkElementService.GetPath:output_type -> gosdn.networkelement.GetPathResponse
+	25, // 62: gosdn.networkelement.NetworkElementService.GetIntendedPath:output_type -> gosdn.networkelement.GetIntendedPathResponse
+	28, // 63: gosdn.networkelement.NetworkElementService.SetPathList:output_type -> gosdn.networkelement.SetPathListResponse
+	30, // 64: gosdn.networkelement.NetworkElementService.Delete:output_type -> gosdn.networkelement.DeleteResponse
+	35, // 65: gosdn.networkelement.NetworkElementService.GetChangeList:output_type -> gosdn.networkelement.GetChangeListResponse
+	37, // 66: gosdn.networkelement.NetworkElementService.GetChange:output_type -> gosdn.networkelement.GetChangeResponse
+	39, // 67: gosdn.networkelement.NetworkElementService.SetChangeList:output_type -> gosdn.networkelement.SetChangeListResponse
+	43, // 68: gosdn.networkelement.NetworkElementService.SubscribePath:output_type -> gosdn.networkelement.SubscribePathResponse
+	54, // [54:69] is the sub-list for method output_type
+	39, // [39:54] is the sub-list for method input_type
 	39, // [39:39] is the sub-list for extension type_name
 	39, // [39:39] is the sub-list for extension extendee
 	0,  // [0:39] is the sub-list for field type_name
@@ -3310,459 +3363,13 @@ func file_gosdn_networkelement_networkelement_proto_init() {
 	if File_gosdn_networkelement_networkelement_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_networkelement_networkelement_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateNetworkElementRequest); 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[1].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateNetworkElementResponse); 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[2].Exporter = func(v any, i int) any {
-			switch v := v.(*ManagedNetworkElement); 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[3].Exporter = func(v any, i int) any {
-			switch v := v.(*FlattenedManagedNetworkElement); 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[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetAllRequest); 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[5].Exporter = func(v any, i int) any {
-			switch v := v.(*GetAllResponse); 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[6].Exporter = func(v any, i int) any {
-			switch v := v.(*GetAllFlattenedRequest); 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[7].Exporter = func(v any, i int) any {
-			switch v := v.(*GetAllFlattenedResponse); 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[8].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); 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[9].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); 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[10].Exporter = func(v any, i int) any {
-			switch v := v.(*GetFlattenedRequest); 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[11].Exporter = func(v any, i int) any {
-			switch v := v.(*GetFlattenedResponse); 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[12].Exporter = func(v any, i int) any {
-			switch v := v.(*SetMne); 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[13].Exporter = func(v any, i int) any {
-			switch v := v.(*AddListRequest); 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[14].Exporter = func(v any, i int) any {
-			switch v := v.(*AddListResponse); 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[15].Exporter = func(v any, i int) any {
-			switch v := v.(*GetPathRequest); 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[16].Exporter = func(v any, i int) any {
-			switch v := v.(*GetPathResponse); 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[17].Exporter = func(v any, i int) any {
-			switch v := v.(*GetIntendedPathRequest); 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[18].Exporter = func(v any, i int) any {
-			switch v := v.(*GetIntendedPathResponse); 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[19].Exporter = func(v any, i int) any {
-			switch v := v.(*SetResponse); 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[20].Exporter = func(v any, i int) any {
-			switch v := v.(*SetPathListRequest); 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[21].Exporter = func(v any, i int) any {
-			switch v := v.(*SetPathListResponse); 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[22].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); 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[23].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteResponse); 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[24].Exporter = func(v any, i int) any {
-			switch v := v.(*Change); 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[25].Exporter = func(v any, i int) any {
-			switch v := v.(*ChangeRequest); 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[26].Exporter = func(v any, i int) any {
-			switch v := v.(*SetChange); 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[27].Exporter = func(v any, i int) any {
-			switch v := v.(*GetChangeListRequest); 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[28].Exporter = func(v any, i int) any {
-			switch v := v.(*GetChangeListResponse); 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[29].Exporter = func(v any, i int) any {
-			switch v := v.(*GetChangeRequest); 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[30].Exporter = func(v any, i int) any {
-			switch v := v.(*GetChangeResponse); 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[31].Exporter = func(v any, i int) any {
-			switch v := v.(*SetChangeListRequest); 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[32].Exporter = func(v any, i int) any {
-			switch v := v.(*SetChangeListResponse); 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[33].Exporter = func(v any, i int) any {
-			switch v := v.(*SubscriptionList); 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[34].Exporter = func(v any, i int) any {
-			switch v := v.(*Subscription); 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[35].Exporter = func(v any, i int) any {
-			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[36].Exporter = func(v any, i int) any {
-			switch v := v.(*SubscribePathResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_gosdn_networkelement_networkelement_proto_rawDesc,
 			NumEnums:      5,
-			NumMessages:   37,
+			NumMessages:   39,
 			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 fc794e3c4..642198688 100644
--- a/api/go/gosdn/networkelement/networkelement.pb.gw.go
+++ b/api/go/gosdn/networkelement/networkelement.pb.gw.go
@@ -163,6 +163,42 @@ func local_request_NetworkElementService_Get_0(ctx context.Context, marshaler ru
 
 }
 
+var (
+	filter_NetworkElementService_ParseYang_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
+)
+
+func request_NetworkElementService_ParseYang_0(ctx context.Context, marshaler runtime.Marshaler, client NetworkElementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq ParseYangRequest
+	var metadata runtime.ServerMetadata
+
+	if err := req.ParseForm(); err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+	}
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkElementService_ParseYang_0); err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+	}
+
+	msg, err := client.ParseYang(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+	return msg, metadata, err
+
+}
+
+func local_request_NetworkElementService_ParseYang_0(ctx context.Context, marshaler runtime.Marshaler, server NetworkElementServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq ParseYangRequest
+	var metadata runtime.ServerMetadata
+
+	if err := req.ParseForm(); err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+	}
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkElementService_ParseYang_0); err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+	}
+
+	msg, err := server.ParseYang(ctx, &protoReq)
+	return msg, metadata, err
+
+}
+
 func request_NetworkElementService_AddList_0(ctx context.Context, marshaler runtime.Marshaler, client NetworkElementServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq AddListRequest
 	var metadata runtime.ServerMetadata
@@ -679,6 +715,31 @@ func RegisterNetworkElementServiceHandlerServer(ctx context.Context, mux *runtim
 
 	})
 
+	mux.Handle("GET", pattern_NetworkElementService_ParseYang_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+		ctx, cancel := context.WithCancel(req.Context())
+		defer cancel()
+		var stream runtime.ServerTransportStream
+		ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
+		inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+		var err error
+		var annotatedContext context.Context
+		annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.networkelement.NetworkElementService/ParseYang", runtime.WithHTTPPathPattern("/yang/parse"))
+		if err != nil {
+			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+			return
+		}
+		resp, md, err := local_request_NetworkElementService_ParseYang_0(annotatedContext, inboundMarshaler, server, req, pathParams)
+		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+		annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+		if err != nil {
+			runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+			return
+		}
+
+		forward_NetworkElementService_ParseYang_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+	})
+
 	mux.Handle("POST", pattern_NetworkElementService_AddList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
 		ctx, cancel := context.WithCancel(req.Context())
 		defer cancel()
@@ -986,6 +1047,28 @@ func RegisterNetworkElementServiceHandlerClient(ctx context.Context, mux *runtim
 
 	})
 
+	mux.Handle("GET", pattern_NetworkElementService_ParseYang_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+		ctx, cancel := context.WithCancel(req.Context())
+		defer cancel()
+		inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+		var err error
+		var annotatedContext context.Context
+		annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/gosdn.networkelement.NetworkElementService/ParseYang", runtime.WithHTTPPathPattern("/yang/parse"))
+		if err != nil {
+			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+			return
+		}
+		resp, md, err := request_NetworkElementService_ParseYang_0(annotatedContext, inboundMarshaler, client, req, pathParams)
+		annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+		if err != nil {
+			runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+			return
+		}
+
+		forward_NetworkElementService_ParseYang_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+	})
+
 	mux.Handle("POST", pattern_NetworkElementService_AddList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
 		ctx, cancel := context.WithCancel(req.Context())
 		defer cancel()
@@ -1172,6 +1255,8 @@ var (
 
 	pattern_NetworkElementService_Get_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"mnes", "mneid"}, ""))
 
+	pattern_NetworkElementService_ParseYang_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"yang", "parse"}, ""))
+
 	pattern_NetworkElementService_AddList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"mnes"}, ""))
 
 	pattern_NetworkElementService_GetPath_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"mnes", "mneid", "paths", "path"}, ""))
@@ -1196,6 +1281,8 @@ var (
 
 	forward_NetworkElementService_Get_0 = runtime.ForwardResponseMessage
 
+	forward_NetworkElementService_ParseYang_0 = runtime.ForwardResponseMessage
+
 	forward_NetworkElementService_AddList_0 = runtime.ForwardResponseMessage
 
 	forward_NetworkElementService_GetPath_0 = runtime.ForwardResponseMessage
diff --git a/api/go/gosdn/networkelement/networkelement_grpc.pb.go b/api/go/gosdn/networkelement/networkelement_grpc.pb.go
index bab93548d..5bd523242 100644
--- a/api/go/gosdn/networkelement/networkelement_grpc.pb.go
+++ b/api/go/gosdn/networkelement/networkelement_grpc.pb.go
@@ -23,6 +23,7 @@ const (
 	NetworkElementService_GetAll_FullMethodName          = "/gosdn.networkelement.NetworkElementService/GetAll"
 	NetworkElementService_GetAllFlattened_FullMethodName = "/gosdn.networkelement.NetworkElementService/GetAllFlattened"
 	NetworkElementService_Get_FullMethodName             = "/gosdn.networkelement.NetworkElementService/Get"
+	NetworkElementService_ParseYang_FullMethodName       = "/gosdn.networkelement.NetworkElementService/ParseYang"
 	NetworkElementService_GetFlattened_FullMethodName    = "/gosdn.networkelement.NetworkElementService/GetFlattened"
 	NetworkElementService_AddList_FullMethodName         = "/gosdn.networkelement.NetworkElementService/AddList"
 	NetworkElementService_GetPath_FullMethodName         = "/gosdn.networkelement.NetworkElementService/GetPath"
@@ -56,6 +57,9 @@ type NetworkElementServiceClient interface {
 	// Allows to request a specific Managed Network Element which is managed by a
 	// specific Principal Network Domain.
 	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
+	// Allows to request a specific Managed Network Element which is managed by a
+	// specific Principal Network Domain.
+	ParseYang(ctx context.Context, in *ParseYangRequest, opts ...grpc.CallOption) (*ParseYangResponse, error)
 	// TODO: add http option
 	// Allows to request a specific Managed Network Element which is managed by a
 	// specific Principal Network Domain. A flattened version of a Managed
@@ -140,6 +144,16 @@ func (c *networkElementServiceClient) Get(ctx context.Context, in *GetRequest, o
 	return out, nil
 }
 
+func (c *networkElementServiceClient) ParseYang(ctx context.Context, in *ParseYangRequest, opts ...grpc.CallOption) (*ParseYangResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ParseYangResponse)
+	err := c.cc.Invoke(ctx, NetworkElementService_ParseYang_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *networkElementServiceClient) GetFlattened(ctx context.Context, in *GetFlattenedRequest, opts ...grpc.CallOption) (*GetFlattenedResponse, error) {
 	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetFlattenedResponse)
@@ -270,6 +284,9 @@ type NetworkElementServiceServer interface {
 	// Allows to request a specific Managed Network Element which is managed by a
 	// specific Principal Network Domain.
 	Get(context.Context, *GetRequest) (*GetResponse, error)
+	// Allows to request a specific Managed Network Element which is managed by a
+	// specific Principal Network Domain.
+	ParseYang(context.Context, *ParseYangRequest) (*ParseYangResponse, error)
 	// TODO: add http option
 	// Allows to request a specific Managed Network Element which is managed by a
 	// specific Principal Network Domain. A flattened version of a Managed
@@ -326,6 +343,9 @@ func (UnimplementedNetworkElementServiceServer) GetAllFlattened(context.Context,
 func (UnimplementedNetworkElementServiceServer) Get(context.Context, *GetRequest) (*GetResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
 }
+func (UnimplementedNetworkElementServiceServer) ParseYang(context.Context, *ParseYangRequest) (*ParseYangResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ParseYang not implemented")
+}
 func (UnimplementedNetworkElementServiceServer) GetFlattened(context.Context, *GetFlattenedRequest) (*GetFlattenedResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetFlattened not implemented")
 }
@@ -449,6 +469,24 @@ func _NetworkElementService_Get_Handler(srv interface{}, ctx context.Context, de
 	return interceptor(ctx, in, info, handler)
 }
 
+func _NetworkElementService_ParseYang_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ParseYangRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(NetworkElementServiceServer).ParseYang(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: NetworkElementService_ParseYang_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(NetworkElementServiceServer).ParseYang(ctx, req.(*ParseYangRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _NetworkElementService_GetFlattened_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetFlattenedRequest)
 	if err := dec(in); err != nil {
@@ -645,6 +683,10 @@ var NetworkElementService_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "Get",
 			Handler:    _NetworkElementService_Get_Handler,
 		},
+		{
+			MethodName: "ParseYang",
+			Handler:    _NetworkElementService_ParseYang_Handler,
+		},
 		{
 			MethodName: "GetFlattened",
 			Handler:    _NetworkElementService_GetFlattened_Handler,
diff --git a/api/go/gosdn/plugin-internal/plugin-internal.pb.go b/api/go/gosdn/plugin-internal/plugin-internal.pb.go
index 119fb45b0..490d4f78c 100644
--- a/api/go/gosdn/plugin-internal/plugin-internal.pb.go
+++ b/api/go/gosdn/plugin-internal/plugin-internal.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/plugin-internal/plugin-internal.proto
 
@@ -32,11 +32,9 @@ type GetAvailablePluginsRequest struct {
 
 func (x *GetAvailablePluginsRequest) Reset() {
 	*x = GetAvailablePluginsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetAvailablePluginsRequest) String() string {
@@ -47,7 +45,7 @@ func (*GetAvailablePluginsRequest) ProtoMessage() {}
 
 func (x *GetAvailablePluginsRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -80,11 +78,9 @@ type GetAvailablePluginsResponse struct {
 
 func (x *GetAvailablePluginsResponse) Reset() {
 	*x = GetAvailablePluginsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetAvailablePluginsResponse) String() string {
@@ -95,7 +91,7 @@ func (*GetAvailablePluginsResponse) ProtoMessage() {}
 
 func (x *GetAvailablePluginsResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -135,11 +131,9 @@ type GetPluginSchemaRequest struct {
 
 func (x *GetPluginSchemaRequest) Reset() {
 	*x = GetPluginSchemaRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetPluginSchemaRequest) String() string {
@@ -150,7 +144,7 @@ func (*GetPluginSchemaRequest) ProtoMessage() {}
 
 func (x *GetPluginSchemaRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -189,11 +183,9 @@ type PluginSchemaPayload struct {
 
 func (x *PluginSchemaPayload) Reset() {
 	*x = PluginSchemaPayload{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PluginSchemaPayload) String() string {
@@ -204,7 +196,7 @@ func (*PluginSchemaPayload) ProtoMessage() {}
 
 func (x *PluginSchemaPayload) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -318,56 +310,6 @@ func file_gosdn_plugin_internal_plugin_internal_proto_init() {
 	if File_gosdn_plugin_internal_plugin_internal_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*GetAvailablePluginsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*GetAvailablePluginsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*GetPluginSchemaRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_internal_plugin_internal_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*PluginSchemaPayload); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/plugin-registry/plugin-registry.pb.go b/api/go/gosdn/plugin-registry/plugin-registry.pb.go
index 44f88183f..7bb50e04f 100644
--- a/api/go/gosdn/plugin-registry/plugin-registry.pb.go
+++ b/api/go/gosdn/plugin-registry/plugin-registry.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/plugin-registry/plugin-registry.proto
 
@@ -33,11 +33,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -48,7 +46,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -87,11 +85,9 @@ type GetAllRequest struct {
 
 func (x *GetAllRequest) Reset() {
 	*x = GetAllRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetAllRequest) String() string {
@@ -102,7 +98,7 @@ func (*GetAllRequest) ProtoMessage() {}
 
 func (x *GetAllRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -138,11 +134,9 @@ type Query struct {
 
 func (x *Query) Reset() {
 	*x = Query{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Query) String() string {
@@ -153,7 +147,7 @@ func (*Query) ProtoMessage() {}
 
 func (x *Query) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -216,11 +210,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -231,7 +223,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -271,11 +263,9 @@ type GetDownloadRequest struct {
 
 func (x *GetDownloadRequest) Reset() {
 	*x = GetDownloadRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetDownloadRequest) String() string {
@@ -286,7 +276,7 @@ func (*GetDownloadRequest) ProtoMessage() {}
 
 func (x *GetDownloadRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -325,11 +315,9 @@ type GetDownloadPayload struct {
 
 func (x *GetDownloadPayload) Reset() {
 	*x = GetDownloadPayload{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetDownloadPayload) String() string {
@@ -340,7 +328,7 @@ func (*GetDownloadPayload) ProtoMessage() {}
 
 func (x *GetDownloadPayload) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -373,11 +361,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -388,7 +374,7 @@ func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -427,11 +413,9 @@ type DeleteResponse struct {
 
 func (x *DeleteResponse) Reset() {
 	*x = DeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteResponse) String() string {
@@ -442,7 +426,7 @@ func (*DeleteResponse) ProtoMessage() {}
 
 func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -475,11 +459,9 @@ type Plugin struct {
 
 func (x *Plugin) Reset() {
 	*x = Plugin{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Plugin) String() string {
@@ -490,7 +472,7 @@ func (*Plugin) ProtoMessage() {}
 
 func (x *Plugin) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -532,11 +514,9 @@ type Manifest struct {
 
 func (x *Manifest) Reset() {
 	*x = Manifest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Manifest) String() string {
@@ -547,7 +527,7 @@ func (*Manifest) ProtoMessage() {}
 
 func (x *Manifest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -728,128 +708,6 @@ func file_gosdn_plugin_registry_plugin_registry_proto_init() {
 	if File_gosdn_plugin_registry_plugin_registry_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*GetAllRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*Query); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetDownloadRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*GetDownloadPayload); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*Plugin); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*Manifest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	file_gosdn_plugin_registry_plugin_registry_proto_msgTypes[2].OneofWrappers = []any{
 		(*Query_Id)(nil),
 		(*Query_Name)(nil),
diff --git a/api/go/gosdn/plugin/plugin.pb.go b/api/go/gosdn/plugin/plugin.pb.go
index 3f6402531..9193b62ac 100644
--- a/api/go/gosdn/plugin/plugin.pb.go
+++ b/api/go/gosdn/plugin/plugin.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/plugin/plugin.proto
 
@@ -35,11 +35,9 @@ type UnmarshalRequest struct {
 
 func (x *UnmarshalRequest) Reset() {
 	*x = UnmarshalRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UnmarshalRequest) String() string {
@@ -50,7 +48,7 @@ func (*UnmarshalRequest) ProtoMessage() {}
 
 func (x *UnmarshalRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -96,11 +94,9 @@ type UnmarshalResponse struct {
 
 func (x *UnmarshalResponse) Reset() {
 	*x = UnmarshalResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UnmarshalResponse) String() string {
@@ -111,7 +107,7 @@ func (*UnmarshalResponse) ProtoMessage() {}
 
 func (x *UnmarshalResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -144,11 +140,9 @@ type SetNodeRequest struct {
 
 func (x *SetNodeRequest) Reset() {
 	*x = SetNodeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetNodeRequest) String() string {
@@ -159,7 +153,7 @@ func (*SetNodeRequest) ProtoMessage() {}
 
 func (x *SetNodeRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -198,11 +192,9 @@ type SetNodeResponse struct {
 
 func (x *SetNodeResponse) Reset() {
 	*x = SetNodeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetNodeResponse) String() string {
@@ -213,7 +205,7 @@ func (*SetNodeResponse) ProtoMessage() {}
 
 func (x *SetNodeResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -246,11 +238,9 @@ type GetNodeRequest struct {
 
 func (x *GetNodeRequest) Reset() {
 	*x = GetNodeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetNodeRequest) String() string {
@@ -261,7 +251,7 @@ func (*GetNodeRequest) ProtoMessage() {}
 
 func (x *GetNodeRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -300,11 +290,9 @@ type GetNodeResponse struct {
 
 func (x *GetNodeResponse) Reset() {
 	*x = GetNodeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetNodeResponse) String() string {
@@ -315,7 +303,7 @@ func (*GetNodeResponse) ProtoMessage() {}
 
 func (x *GetNodeResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -347,11 +335,9 @@ type DeleteNodeRequest struct {
 
 func (x *DeleteNodeRequest) Reset() {
 	*x = DeleteNodeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteNodeRequest) String() string {
@@ -362,7 +348,7 @@ func (*DeleteNodeRequest) ProtoMessage() {}
 
 func (x *DeleteNodeRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -394,11 +380,9 @@ type DeleteNodeResponse struct {
 
 func (x *DeleteNodeResponse) Reset() {
 	*x = DeleteNodeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteNodeResponse) String() string {
@@ -409,7 +393,7 @@ func (*DeleteNodeResponse) ProtoMessage() {}
 
 func (x *DeleteNodeResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -441,11 +425,9 @@ type ModelRequest struct {
 
 func (x *ModelRequest) Reset() {
 	*x = ModelRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ModelRequest) String() string {
@@ -456,7 +438,7 @@ func (*ModelRequest) ProtoMessage() {}
 
 func (x *ModelRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -488,11 +470,9 @@ type ModelResponse struct {
 
 func (x *ModelResponse) Reset() {
 	*x = ModelResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ModelResponse) String() string {
@@ -503,7 +483,7 @@ func (*ModelResponse) ProtoMessage() {}
 
 func (x *ModelResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -536,11 +516,9 @@ type DiffRequest struct {
 
 func (x *DiffRequest) Reset() {
 	*x = DiffRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DiffRequest) String() string {
@@ -551,7 +529,7 @@ func (*DiffRequest) ProtoMessage() {}
 
 func (x *DiffRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -590,11 +568,9 @@ type DiffResponse struct {
 
 func (x *DiffResponse) Reset() {
 	*x = DiffResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DiffResponse) String() string {
@@ -605,7 +581,7 @@ func (*DiffResponse) ProtoMessage() {}
 
 func (x *DiffResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -639,11 +615,9 @@ type ValidateChangeRequest struct {
 
 func (x *ValidateChangeRequest) Reset() {
 	*x = ValidateChangeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ValidateChangeRequest) String() string {
@@ -654,7 +628,7 @@ func (*ValidateChangeRequest) ProtoMessage() {}
 
 func (x *ValidateChangeRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -700,11 +674,9 @@ type ValidateChangeResponse struct {
 
 func (x *ValidateChangeResponse) Reset() {
 	*x = ValidateChangeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ValidateChangeResponse) String() string {
@@ -715,7 +687,7 @@ func (*ValidateChangeResponse) ProtoMessage() {}
 
 func (x *ValidateChangeResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -747,11 +719,9 @@ type PruneConfigFalseRequest struct {
 
 func (x *PruneConfigFalseRequest) Reset() {
 	*x = PruneConfigFalseRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PruneConfigFalseRequest) String() string {
@@ -762,7 +732,7 @@ func (*PruneConfigFalseRequest) ProtoMessage() {}
 
 func (x *PruneConfigFalseRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -794,11 +764,9 @@ type PruneConfigFalseResponse struct {
 
 func (x *PruneConfigFalseResponse) Reset() {
 	*x = PruneConfigFalseResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PruneConfigFalseResponse) String() string {
@@ -809,7 +777,7 @@ func (*PruneConfigFalseResponse) ProtoMessage() {}
 
 func (x *PruneConfigFalseResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -839,11 +807,9 @@ type SchemaTreeGzipRequest struct {
 
 func (x *SchemaTreeGzipRequest) Reset() {
 	*x = SchemaTreeGzipRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SchemaTreeGzipRequest) String() string {
@@ -854,7 +820,7 @@ func (*SchemaTreeGzipRequest) ProtoMessage() {}
 
 func (x *SchemaTreeGzipRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -879,11 +845,9 @@ type Payload struct {
 
 func (x *Payload) Reset() {
 	*x = Payload{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_plugin_plugin_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_plugin_plugin_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Payload) String() string {
@@ -894,7 +858,7 @@ func (*Payload) ProtoMessage() {}
 
 func (x *Payload) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_plugin_plugin_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1138,224 +1102,6 @@ func file_gosdn_plugin_plugin_proto_init() {
 	if File_gosdn_plugin_plugin_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_plugin_plugin_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*UnmarshalRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*UnmarshalResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*SetNodeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*SetNodeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetNodeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*GetNodeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteNodeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteNodeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*ModelRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*ModelResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*DiffRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*DiffResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[12].Exporter = func(v any, i int) any {
-			switch v := v.(*ValidateChangeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[13].Exporter = func(v any, i int) any {
-			switch v := v.(*ValidateChangeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[14].Exporter = func(v any, i int) any {
-			switch v := v.(*PruneConfigFalseRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[15].Exporter = func(v any, i int) any {
-			switch v := v.(*PruneConfigFalseResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[16].Exporter = func(v any, i int) any {
-			switch v := v.(*SchemaTreeGzipRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_plugin_plugin_proto_msgTypes[17].Exporter = func(v any, i int) any {
-			switch v := v.(*Payload); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/pnd/pnd.pb.go b/api/go/gosdn/pnd/pnd.pb.go
index 8c73f1394..16f5b733d 100644
--- a/api/go/gosdn/pnd/pnd.pb.go
+++ b/api/go/gosdn/pnd/pnd.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/pnd/pnd.proto
 
@@ -38,11 +38,9 @@ type PrincipalNetworkDomain struct {
 
 func (x *PrincipalNetworkDomain) Reset() {
 	*x = PrincipalNetworkDomain{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PrincipalNetworkDomain) String() string {
@@ -53,7 +51,7 @@ func (*PrincipalNetworkDomain) ProtoMessage() {}
 
 func (x *PrincipalNetworkDomain) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -100,11 +98,9 @@ type GetPndRequest struct {
 
 func (x *GetPndRequest) Reset() {
 	*x = GetPndRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetPndRequest) String() string {
@@ -115,7 +111,7 @@ func (*GetPndRequest) ProtoMessage() {}
 
 func (x *GetPndRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -155,11 +151,9 @@ type GetPndResponse struct {
 
 func (x *GetPndResponse) Reset() {
 	*x = GetPndResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetPndResponse) String() string {
@@ -170,7 +164,7 @@ func (*GetPndResponse) ProtoMessage() {}
 
 func (x *GetPndResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -209,11 +203,9 @@ type GetPndListRequest struct {
 
 func (x *GetPndListRequest) Reset() {
 	*x = GetPndListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetPndListRequest) String() string {
@@ -224,7 +216,7 @@ func (*GetPndListRequest) ProtoMessage() {}
 
 func (x *GetPndListRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -257,11 +249,9 @@ type GetPndListResponse struct {
 
 func (x *GetPndListResponse) Reset() {
 	*x = GetPndListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetPndListResponse) String() string {
@@ -272,7 +262,7 @@ func (*GetPndListResponse) ProtoMessage() {}
 
 func (x *GetPndListResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -312,11 +302,9 @@ type CreatePndListRequest struct {
 
 func (x *CreatePndListRequest) Reset() {
 	*x = CreatePndListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreatePndListRequest) String() string {
@@ -327,7 +315,7 @@ func (*CreatePndListRequest) ProtoMessage() {}
 
 func (x *CreatePndListRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -367,11 +355,9 @@ type PndCreateProperties struct {
 
 func (x *PndCreateProperties) Reset() {
 	*x = PndCreateProperties{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PndCreateProperties) String() string {
@@ -382,7 +368,7 @@ func (*PndCreateProperties) ProtoMessage() {}
 
 func (x *PndCreateProperties) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -421,11 +407,9 @@ type CreatePndListResponse struct {
 
 func (x *CreatePndListResponse) Reset() {
 	*x = CreatePndListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreatePndListResponse) String() string {
@@ -436,7 +420,7 @@ func (*CreatePndListResponse) ProtoMessage() {}
 
 func (x *CreatePndListResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -469,11 +453,9 @@ type DeletePndRequest struct {
 
 func (x *DeletePndRequest) Reset() {
 	*x = DeletePndRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeletePndRequest) String() string {
@@ -484,7 +466,7 @@ func (*DeletePndRequest) ProtoMessage() {}
 
 func (x *DeletePndRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -523,11 +505,9 @@ type DeletePndResponse struct {
 
 func (x *DeletePndResponse) Reset() {
 	*x = DeletePndResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeletePndResponse) String() string {
@@ -538,7 +518,7 @@ func (*DeletePndResponse) ProtoMessage() {}
 
 func (x *DeletePndResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -724,128 +704,6 @@ func file_gosdn_pnd_pnd_proto_init() {
 	if File_gosdn_pnd_pnd_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_pnd_pnd_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*PrincipalNetworkDomain); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_pnd_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*GetPndRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_pnd_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*GetPndResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_pnd_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetPndListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_pnd_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetPndListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_pnd_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*CreatePndListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_pnd_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*PndCreateProperties); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_pnd_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*CreatePndListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_pnd_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*DeletePndRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_pnd_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*DeletePndResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/rbac/rbac.pb.go b/api/go/gosdn/rbac/rbac.pb.go
index ec77ac558..0a98e9ecf 100644
--- a/api/go/gosdn/rbac/rbac.pb.go
+++ b/api/go/gosdn/rbac/rbac.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/rbac/rbac.proto
 
@@ -37,11 +37,9 @@ type LoginRequest struct {
 
 func (x *LoginRequest) Reset() {
 	*x = LoginRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_rbac_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_rbac_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LoginRequest) String() string {
@@ -52,7 +50,7 @@ func (*LoginRequest) ProtoMessage() {}
 
 func (x *LoginRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_rbac_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -99,11 +97,9 @@ type LoginResponse struct {
 
 func (x *LoginResponse) Reset() {
 	*x = LoginResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_rbac_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_rbac_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LoginResponse) String() string {
@@ -114,7 +110,7 @@ func (*LoginResponse) ProtoMessage() {}
 
 func (x *LoginResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_rbac_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -155,11 +151,9 @@ type LogoutRequest struct {
 
 func (x *LogoutRequest) Reset() {
 	*x = LogoutRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_rbac_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_rbac_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LogoutRequest) String() string {
@@ -170,7 +164,7 @@ func (*LogoutRequest) ProtoMessage() {}
 
 func (x *LogoutRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_rbac_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -209,11 +203,9 @@ type LogoutResponse struct {
 
 func (x *LogoutResponse) Reset() {
 	*x = LogoutResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_rbac_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_rbac_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LogoutResponse) String() string {
@@ -224,7 +216,7 @@ func (*LogoutResponse) ProtoMessage() {}
 
 func (x *LogoutResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_rbac_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -333,56 +325,6 @@ func file_gosdn_rbac_rbac_proto_init() {
 	if File_gosdn_rbac_rbac_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_rbac_rbac_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*LoginRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_rbac_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*LoginResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_rbac_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*LogoutRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_rbac_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*LogoutResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/rbac/role.pb.go b/api/go/gosdn/rbac/role.pb.go
index 8d138011a..aacf29035 100644
--- a/api/go/gosdn/rbac/role.pb.go
+++ b/api/go/gosdn/rbac/role.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/rbac/role.proto
 
@@ -37,11 +37,9 @@ type Role struct {
 
 func (x *Role) Reset() {
 	*x = Role{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Role) String() string {
@@ -52,7 +50,7 @@ func (*Role) ProtoMessage() {}
 
 func (x *Role) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -107,11 +105,9 @@ type CreateRolesRequest struct {
 
 func (x *CreateRolesRequest) Reset() {
 	*x = CreateRolesRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRolesRequest) String() string {
@@ -122,7 +118,7 @@ func (*CreateRolesRequest) ProtoMessage() {}
 
 func (x *CreateRolesRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -161,11 +157,9 @@ type CreateRolesResponse struct {
 
 func (x *CreateRolesResponse) Reset() {
 	*x = CreateRolesResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRolesResponse) String() string {
@@ -176,7 +170,7 @@ func (*CreateRolesResponse) ProtoMessage() {}
 
 func (x *CreateRolesResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -211,11 +205,9 @@ type GetRoleRequest struct {
 
 func (x *GetRoleRequest) Reset() {
 	*x = GetRoleRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRoleRequest) String() string {
@@ -226,7 +218,7 @@ func (*GetRoleRequest) ProtoMessage() {}
 
 func (x *GetRoleRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -273,11 +265,9 @@ type GetRoleResponse struct {
 
 func (x *GetRoleResponse) Reset() {
 	*x = GetRoleResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRoleResponse) String() string {
@@ -288,7 +278,7 @@ func (*GetRoleResponse) ProtoMessage() {}
 
 func (x *GetRoleResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -328,11 +318,9 @@ type GetRolesRequest struct {
 
 func (x *GetRolesRequest) Reset() {
 	*x = GetRolesRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRolesRequest) String() string {
@@ -343,7 +331,7 @@ func (*GetRolesRequest) ProtoMessage() {}
 
 func (x *GetRolesRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -376,11 +364,9 @@ type GetRolesResponse struct {
 
 func (x *GetRolesResponse) Reset() {
 	*x = GetRolesResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRolesResponse) String() string {
@@ -391,7 +377,7 @@ func (*GetRolesResponse) ProtoMessage() {}
 
 func (x *GetRolesResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -432,11 +418,9 @@ type UpdateRolesRequest struct {
 
 func (x *UpdateRolesRequest) Reset() {
 	*x = UpdateRolesRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateRolesRequest) String() string {
@@ -447,7 +431,7 @@ func (*UpdateRolesRequest) ProtoMessage() {}
 
 func (x *UpdateRolesRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -486,11 +470,9 @@ type UpdateRolesResponse struct {
 
 func (x *UpdateRolesResponse) Reset() {
 	*x = UpdateRolesResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateRolesResponse) String() string {
@@ -501,7 +483,7 @@ func (*UpdateRolesResponse) ProtoMessage() {}
 
 func (x *UpdateRolesResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -536,11 +518,9 @@ type DeletePermissionsForRoleRequest struct {
 
 func (x *DeletePermissionsForRoleRequest) Reset() {
 	*x = DeletePermissionsForRoleRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeletePermissionsForRoleRequest) String() string {
@@ -551,7 +531,7 @@ func (*DeletePermissionsForRoleRequest) ProtoMessage() {}
 
 func (x *DeletePermissionsForRoleRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -597,11 +577,9 @@ type DeletePermissionsForRoleResponse struct {
 
 func (x *DeletePermissionsForRoleResponse) Reset() {
 	*x = DeletePermissionsForRoleResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeletePermissionsForRoleResponse) String() string {
@@ -612,7 +590,7 @@ func (*DeletePermissionsForRoleResponse) ProtoMessage() {}
 
 func (x *DeletePermissionsForRoleResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -646,11 +624,9 @@ type DeleteRolesRequest struct {
 
 func (x *DeleteRolesRequest) Reset() {
 	*x = DeleteRolesRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRolesRequest) String() string {
@@ -661,7 +637,7 @@ func (*DeleteRolesRequest) ProtoMessage() {}
 
 func (x *DeleteRolesRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -700,11 +676,9 @@ type DeleteRolesResponse struct {
 
 func (x *DeleteRolesResponse) Reset() {
 	*x = DeleteRolesResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_role_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_role_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRolesResponse) String() string {
@@ -715,7 +689,7 @@ func (*DeleteRolesResponse) ProtoMessage() {}
 
 func (x *DeleteRolesResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_role_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -928,164 +902,6 @@ func file_gosdn_rbac_role_proto_init() {
 		return
 	}
 	file_gosdn_rbac_rbac_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_rbac_role_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Role); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_role_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateRolesRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_role_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateRolesResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_role_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRoleRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_role_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRoleResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_role_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRolesRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_role_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRolesResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_role_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateRolesRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_role_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateRolesResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_role_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*DeletePermissionsForRoleRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_role_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*DeletePermissionsForRoleResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_role_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRolesRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_role_proto_msgTypes[12].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRolesResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/rbac/user.pb.go b/api/go/gosdn/rbac/user.pb.go
index 745d534cf..6c5c74f57 100644
--- a/api/go/gosdn/rbac/user.pb.go
+++ b/api/go/gosdn/rbac/user.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/rbac/user.proto
 
@@ -40,11 +40,9 @@ type User struct {
 
 func (x *User) Reset() {
 	*x = User{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_user_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_user_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *User) String() string {
@@ -55,7 +53,7 @@ func (*User) ProtoMessage() {}
 
 func (x *User) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_user_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -127,11 +125,9 @@ type UpdateUser struct {
 
 func (x *UpdateUser) Reset() {
 	*x = UpdateUser{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_user_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_user_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateUser) String() string {
@@ -142,7 +138,7 @@ func (*UpdateUser) ProtoMessage() {}
 
 func (x *UpdateUser) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_user_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -211,11 +207,9 @@ type CreateUsersRequest struct {
 
 func (x *CreateUsersRequest) Reset() {
 	*x = CreateUsersRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_user_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_user_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateUsersRequest) String() string {
@@ -226,7 +220,7 @@ func (*CreateUsersRequest) ProtoMessage() {}
 
 func (x *CreateUsersRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_user_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -265,11 +259,9 @@ type CreateUsersResponse struct {
 
 func (x *CreateUsersResponse) Reset() {
 	*x = CreateUsersResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_user_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_user_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateUsersResponse) String() string {
@@ -280,7 +272,7 @@ func (*CreateUsersResponse) ProtoMessage() {}
 
 func (x *CreateUsersResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_user_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -315,11 +307,9 @@ type GetUserRequest struct {
 
 func (x *GetUserRequest) Reset() {
 	*x = GetUserRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_user_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_user_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetUserRequest) String() string {
@@ -330,7 +320,7 @@ func (*GetUserRequest) ProtoMessage() {}
 
 func (x *GetUserRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_user_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -377,11 +367,9 @@ type GetUserResponse struct {
 
 func (x *GetUserResponse) Reset() {
 	*x = GetUserResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_user_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_user_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetUserResponse) String() string {
@@ -392,7 +380,7 @@ func (*GetUserResponse) ProtoMessage() {}
 
 func (x *GetUserResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_user_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -432,11 +420,9 @@ type GetUsersRequest struct {
 
 func (x *GetUsersRequest) Reset() {
 	*x = GetUsersRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_user_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_user_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetUsersRequest) String() string {
@@ -447,7 +433,7 @@ func (*GetUsersRequest) ProtoMessage() {}
 
 func (x *GetUsersRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_user_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -480,11 +466,9 @@ type GetUsersResponse struct {
 
 func (x *GetUsersResponse) Reset() {
 	*x = GetUsersResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_user_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_user_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetUsersResponse) String() string {
@@ -495,7 +479,7 @@ func (*GetUsersResponse) ProtoMessage() {}
 
 func (x *GetUsersResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_user_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -536,11 +520,9 @@ type UpdateUsersRequest struct {
 
 func (x *UpdateUsersRequest) Reset() {
 	*x = UpdateUsersRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_user_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_user_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateUsersRequest) String() string {
@@ -551,7 +533,7 @@ func (*UpdateUsersRequest) ProtoMessage() {}
 
 func (x *UpdateUsersRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_user_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -590,11 +572,9 @@ type UpdateUsersResponse struct {
 
 func (x *UpdateUsersResponse) Reset() {
 	*x = UpdateUsersResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_user_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_user_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateUsersResponse) String() string {
@@ -605,7 +585,7 @@ func (*UpdateUsersResponse) ProtoMessage() {}
 
 func (x *UpdateUsersResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_user_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -639,11 +619,9 @@ type DeleteUsersRequest struct {
 
 func (x *DeleteUsersRequest) Reset() {
 	*x = DeleteUsersRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_user_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_user_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteUsersRequest) String() string {
@@ -654,7 +632,7 @@ func (*DeleteUsersRequest) ProtoMessage() {}
 
 func (x *DeleteUsersRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_user_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -693,11 +671,9 @@ type DeleteUsersResponse struct {
 
 func (x *DeleteUsersResponse) Reset() {
 	*x = DeleteUsersResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_rbac_user_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_rbac_user_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteUsersResponse) String() string {
@@ -708,7 +684,7 @@ func (*DeleteUsersResponse) ProtoMessage() {}
 
 func (x *DeleteUsersResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_rbac_user_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -929,152 +905,6 @@ func file_gosdn_rbac_user_proto_init() {
 		return
 	}
 	file_gosdn_rbac_rbac_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_rbac_user_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*User); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_user_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateUser); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_user_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateUsersRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_user_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*CreateUsersResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_user_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetUserRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_user_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*GetUserResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_user_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*GetUsersRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_user_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*GetUsersResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_user_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateUsersRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_user_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateUsersResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_user_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteUsersRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_rbac_user_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteUsersResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/southbound/southbound.pb.go b/api/go/gosdn/southbound/southbound.pb.go
index 3310bcc2e..bf475590f 100644
--- a/api/go/gosdn/southbound/southbound.pb.go
+++ b/api/go/gosdn/southbound/southbound.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/southbound/southbound.proto
 
@@ -87,11 +87,9 @@ type GetSchemaRequest struct {
 
 func (x *GetSchemaRequest) Reset() {
 	*x = GetSchemaRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_southbound_southbound_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_southbound_southbound_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetSchemaRequest) String() string {
@@ -102,7 +100,7 @@ func (*GetSchemaRequest) ProtoMessage() {}
 
 func (x *GetSchemaRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_southbound_southbound_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -148,11 +146,9 @@ type Payload struct {
 
 func (x *Payload) Reset() {
 	*x = Payload{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_southbound_southbound_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_southbound_southbound_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Payload) String() string {
@@ -163,7 +159,7 @@ func (*Payload) ProtoMessage() {}
 
 func (x *Payload) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_southbound_southbound_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -196,11 +192,9 @@ type SouthboundInterface struct {
 
 func (x *SouthboundInterface) Reset() {
 	*x = SouthboundInterface{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_southbound_southbound_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_southbound_southbound_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SouthboundInterface) String() string {
@@ -211,7 +205,7 @@ func (*SouthboundInterface) ProtoMessage() {}
 
 func (x *SouthboundInterface) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_southbound_southbound_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -315,44 +309,6 @@ func file_gosdn_southbound_southbound_proto_init() {
 	if File_gosdn_southbound_southbound_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_southbound_southbound_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*GetSchemaRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_southbound_southbound_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*Payload); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_southbound_southbound_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*SouthboundInterface); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/subscriptionmanagement/subscriptionmanagement.pb.go b/api/go/gosdn/subscriptionmanagement/subscriptionmanagement.pb.go
index 617bea4d2..1691a7cf1 100644
--- a/api/go/gosdn/subscriptionmanagement/subscriptionmanagement.pb.go
+++ b/api/go/gosdn/subscriptionmanagement/subscriptionmanagement.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/subscriptionmanagement/subscriptionmanagement.proto
 
@@ -38,11 +38,9 @@ type Subscription struct {
 
 func (x *Subscription) Reset() {
 	*x = Subscription{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Subscription) String() string {
@@ -53,7 +51,7 @@ func (*Subscription) ProtoMessage() {}
 
 func (x *Subscription) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -120,11 +118,9 @@ type Path struct {
 
 func (x *Path) Reset() {
 	*x = Path{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Path) String() string {
@@ -135,7 +131,7 @@ func (*Path) ProtoMessage() {}
 
 func (x *Path) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -169,11 +165,9 @@ type SubscribeOptions struct {
 
 func (x *SubscribeOptions) Reset() {
 	*x = SubscribeOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SubscribeOptions) String() string {
@@ -184,7 +178,7 @@ func (*SubscribeOptions) ProtoMessage() {}
 
 func (x *SubscribeOptions) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -230,11 +224,9 @@ type GetAllRequest struct {
 
 func (x *GetAllRequest) Reset() {
 	*x = GetAllRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetAllRequest) String() string {
@@ -245,7 +237,7 @@ func (*GetAllRequest) ProtoMessage() {}
 
 func (x *GetAllRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -278,11 +270,9 @@ type GetAllResponse struct {
 
 func (x *GetAllResponse) Reset() {
 	*x = GetAllResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetAllResponse) String() string {
@@ -293,7 +283,7 @@ func (*GetAllResponse) ProtoMessage() {}
 
 func (x *GetAllResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -333,11 +323,9 @@ type GetRequest struct {
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -348,7 +336,7 @@ func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -388,11 +376,9 @@ type GetResponse struct {
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -403,7 +389,7 @@ func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -443,11 +429,9 @@ type DeleteRequest struct {
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -458,7 +442,7 @@ func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -497,11 +481,9 @@ type DeleteResponse struct {
 
 func (x *DeleteResponse) Reset() {
 	*x = DeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteResponse) String() string {
@@ -512,7 +494,7 @@ func (*DeleteResponse) ProtoMessage() {}
 
 func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -546,11 +528,9 @@ type AddRequest struct {
 
 func (x *AddRequest) Reset() {
 	*x = AddRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AddRequest) String() string {
@@ -561,7 +541,7 @@ func (*AddRequest) ProtoMessage() {}
 
 func (x *AddRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -607,11 +587,9 @@ type AddResponse struct {
 
 func (x *AddResponse) Reset() {
 	*x = AddResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AddResponse) String() string {
@@ -622,7 +600,7 @@ func (*AddResponse) ProtoMessage() {}
 
 func (x *AddResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -654,11 +632,9 @@ type ResetAllSubscriptionsRequest struct {
 
 func (x *ResetAllSubscriptionsRequest) Reset() {
 	*x = ResetAllSubscriptionsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ResetAllSubscriptionsRequest) String() string {
@@ -669,7 +645,7 @@ func (*ResetAllSubscriptionsRequest) ProtoMessage() {}
 
 func (x *ResetAllSubscriptionsRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -701,11 +677,9 @@ type ResetAllSubscriptionsResponse struct {
 
 func (x *ResetAllSubscriptionsResponse) Reset() {
 	*x = ResetAllSubscriptionsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ResetAllSubscriptionsResponse) String() string {
@@ -716,7 +690,7 @@ func (*ResetAllSubscriptionsResponse) ProtoMessage() {}
 
 func (x *ResetAllSubscriptionsResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -939,164 +913,6 @@ func file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_init() {
 	if File_gosdn_subscriptionmanagement_subscriptionmanagement_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Subscription); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*Path); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*SubscribeOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetAllRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetAllResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[9].Exporter = func(v any, i int) any {
-			switch v := v.(*AddRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[10].Exporter = func(v any, i int) any {
-			switch v := v.(*AddResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[11].Exporter = func(v any, i int) any {
-			switch v := v.(*ResetAllSubscriptionsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_subscriptionmanagement_subscriptionmanagement_proto_msgTypes[12].Exporter = func(v any, i int) any {
-			switch v := v.(*ResetAllSubscriptionsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/topology/link.pb.go b/api/go/gosdn/topology/link.pb.go
index 7eb018808..398feb9d9 100644
--- a/api/go/gosdn/topology/link.pb.go
+++ b/api/go/gosdn/topology/link.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/topology/link.proto
 
@@ -41,11 +41,9 @@ type Link struct {
 
 func (x *Link) Reset() {
 	*x = Link{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_link_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_link_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Link) String() string {
@@ -56,7 +54,7 @@ func (*Link) ProtoMessage() {}
 
 func (x *Link) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_link_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -207,20 +205,6 @@ func file_gosdn_topology_link_proto_init() {
 	}
 	file_gosdn_topology_node_proto_init()
 	file_gosdn_topology_port_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_topology_link_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Link); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/topology/node.pb.go b/api/go/gosdn/topology/node.pb.go
index cb9e151d9..b65392c17 100644
--- a/api/go/gosdn/topology/node.pb.go
+++ b/api/go/gosdn/topology/node.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/topology/node.proto
 
@@ -37,11 +37,9 @@ type Node struct {
 
 func (x *Node) Reset() {
 	*x = Node{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_node_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_node_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Node) String() string {
@@ -52,7 +50,7 @@ func (*Node) ProtoMessage() {}
 
 func (x *Node) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_node_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -148,20 +146,6 @@ func file_gosdn_topology_node_proto_init() {
 	if File_gosdn_topology_node_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_topology_node_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Node); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/topology/port.pb.go b/api/go/gosdn/topology/port.pb.go
index 33c0a0df6..de83b8af4 100644
--- a/api/go/gosdn/topology/port.pb.go
+++ b/api/go/gosdn/topology/port.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/topology/port.proto
 
@@ -36,11 +36,9 @@ type Configuration struct {
 
 func (x *Configuration) Reset() {
 	*x = Configuration{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_port_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_port_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Configuration) String() string {
@@ -51,7 +49,7 @@ func (*Configuration) ProtoMessage() {}
 
 func (x *Configuration) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_port_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -93,11 +91,9 @@ type Port struct {
 
 func (x *Port) Reset() {
 	*x = Port{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_port_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_port_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Port) String() string {
@@ -108,7 +104,7 @@ func (*Port) ProtoMessage() {}
 
 func (x *Port) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_port_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -224,32 +220,6 @@ func file_gosdn_topology_port_proto_init() {
 	if File_gosdn_topology_port_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_topology_port_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Configuration); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_port_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*Port); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/topology/route.pb.go b/api/go/gosdn/topology/route.pb.go
index 98810c542..9627c2df6 100644
--- a/api/go/gosdn/topology/route.pb.go
+++ b/api/go/gosdn/topology/route.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/topology/route.proto
 
@@ -39,11 +39,9 @@ type Route struct {
 
 func (x *Route) Reset() {
 	*x = Route{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_route_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_route_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Route) String() string {
@@ -54,7 +52,7 @@ func (*Route) ProtoMessage() {}
 
 func (x *Route) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_route_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -117,11 +115,9 @@ type RoutingTable struct {
 
 func (x *RoutingTable) Reset() {
 	*x = RoutingTable{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_route_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_route_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RoutingTable) String() string {
@@ -132,7 +128,7 @@ func (*RoutingTable) ProtoMessage() {}
 
 func (x *RoutingTable) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_route_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -252,32 +248,6 @@ func file_gosdn_topology_route_proto_init() {
 	if File_gosdn_topology_route_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_topology_route_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Route); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_route_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*RoutingTable); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/topology/routingTable.pb.go b/api/go/gosdn/topology/routingTable.pb.go
index 676faf2c6..1b9638cb3 100644
--- a/api/go/gosdn/topology/routingTable.pb.go
+++ b/api/go/gosdn/topology/routingTable.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/topology/routingTable.proto
 
@@ -36,11 +36,9 @@ type AddRoutingTableRequest struct {
 
 func (x *AddRoutingTableRequest) Reset() {
 	*x = AddRoutingTableRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_routingTable_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_routingTable_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AddRoutingTableRequest) String() string {
@@ -51,7 +49,7 @@ func (*AddRoutingTableRequest) ProtoMessage() {}
 
 func (x *AddRoutingTableRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_routingTable_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -90,11 +88,9 @@ type AddRoutingTableResponse struct {
 
 func (x *AddRoutingTableResponse) Reset() {
 	*x = AddRoutingTableResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_routingTable_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_routingTable_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AddRoutingTableResponse) String() string {
@@ -105,7 +101,7 @@ func (*AddRoutingTableResponse) ProtoMessage() {}
 
 func (x *AddRoutingTableResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_routingTable_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -137,11 +133,9 @@ type GetRoutesRequest struct {
 
 func (x *GetRoutesRequest) Reset() {
 	*x = GetRoutesRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_routingTable_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_routingTable_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRoutesRequest) String() string {
@@ -152,7 +146,7 @@ func (*GetRoutesRequest) ProtoMessage() {}
 
 func (x *GetRoutesRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_routingTable_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -185,11 +179,9 @@ type GetRoutesResponse struct {
 
 func (x *GetRoutesResponse) Reset() {
 	*x = GetRoutesResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_routingTable_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_routingTable_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRoutesResponse) String() string {
@@ -200,7 +192,7 @@ func (*GetRoutesResponse) ProtoMessage() {}
 
 func (x *GetRoutesResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_routingTable_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -240,11 +232,9 @@ type DeleteRoutesRequest struct {
 
 func (x *DeleteRoutesRequest) Reset() {
 	*x = DeleteRoutesRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_routingTable_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_routingTable_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRoutesRequest) String() string {
@@ -255,7 +245,7 @@ func (*DeleteRoutesRequest) ProtoMessage() {}
 
 func (x *DeleteRoutesRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_routingTable_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -294,11 +284,9 @@ type DeleteRoutesResponse struct {
 
 func (x *DeleteRoutesResponse) Reset() {
 	*x = DeleteRoutesResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_routingTable_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_routingTable_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRoutesResponse) String() string {
@@ -309,7 +297,7 @@ func (*DeleteRoutesResponse) ProtoMessage() {}
 
 func (x *DeleteRoutesResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_routingTable_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -456,80 +444,6 @@ func file_gosdn_topology_routingTable_proto_init() {
 	}
 	file_gosdn_topology_route_proto_init()
 	file_gosdn_topology_topology_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_topology_routingTable_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*AddRoutingTableRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_routingTable_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*AddRoutingTableResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_routingTable_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRoutesRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_routingTable_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetRoutesResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_routingTable_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRoutesRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_routingTable_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteRoutesResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/topology/topology.pb.go b/api/go/gosdn/topology/topology.pb.go
index 3f0587482..6d85ea4ad 100644
--- a/api/go/gosdn/topology/topology.pb.go
+++ b/api/go/gosdn/topology/topology.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/topology/topology.proto
 
@@ -34,11 +34,9 @@ type Topology struct {
 
 func (x *Topology) Reset() {
 	*x = Topology{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_topology_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_topology_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Topology) String() string {
@@ -49,7 +47,7 @@ func (*Topology) ProtoMessage() {}
 
 func (x *Topology) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_topology_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -82,11 +80,9 @@ type AddLinkRequest struct {
 
 func (x *AddLinkRequest) Reset() {
 	*x = AddLinkRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_topology_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_topology_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AddLinkRequest) String() string {
@@ -97,7 +93,7 @@ func (*AddLinkRequest) ProtoMessage() {}
 
 func (x *AddLinkRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_topology_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -136,11 +132,9 @@ type AddLinkResponse struct {
 
 func (x *AddLinkResponse) Reset() {
 	*x = AddLinkResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_topology_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_topology_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AddLinkResponse) String() string {
@@ -151,7 +145,7 @@ func (*AddLinkResponse) ProtoMessage() {}
 
 func (x *AddLinkResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_topology_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -183,11 +177,9 @@ type GetTopologyRequest struct {
 
 func (x *GetTopologyRequest) Reset() {
 	*x = GetTopologyRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_topology_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_topology_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetTopologyRequest) String() string {
@@ -198,7 +190,7 @@ func (*GetTopologyRequest) ProtoMessage() {}
 
 func (x *GetTopologyRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_topology_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -231,11 +223,9 @@ type GetTopologyResponse struct {
 
 func (x *GetTopologyResponse) Reset() {
 	*x = GetTopologyResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_topology_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_topology_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetTopologyResponse) String() string {
@@ -246,7 +236,7 @@ func (*GetTopologyResponse) ProtoMessage() {}
 
 func (x *GetTopologyResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_topology_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -286,11 +276,9 @@ type UpdateLinkRequest struct {
 
 func (x *UpdateLinkRequest) Reset() {
 	*x = UpdateLinkRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_topology_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_topology_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateLinkRequest) String() string {
@@ -301,7 +289,7 @@ func (*UpdateLinkRequest) ProtoMessage() {}
 
 func (x *UpdateLinkRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_topology_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -340,11 +328,9 @@ type UpdateLinkResponse struct {
 
 func (x *UpdateLinkResponse) Reset() {
 	*x = UpdateLinkResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_topology_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_topology_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateLinkResponse) String() string {
@@ -355,7 +341,7 @@ func (*UpdateLinkResponse) ProtoMessage() {}
 
 func (x *UpdateLinkResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_topology_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -388,11 +374,9 @@ type DeleteLinkRequest struct {
 
 func (x *DeleteLinkRequest) Reset() {
 	*x = DeleteLinkRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_topology_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_topology_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteLinkRequest) String() string {
@@ -403,7 +387,7 @@ func (*DeleteLinkRequest) ProtoMessage() {}
 
 func (x *DeleteLinkRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_topology_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -442,11 +426,9 @@ type DeleteLinkResponse struct {
 
 func (x *DeleteLinkResponse) Reset() {
 	*x = DeleteLinkResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_topology_topology_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_topology_topology_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteLinkResponse) String() string {
@@ -457,7 +439,7 @@ func (*DeleteLinkResponse) ProtoMessage() {}
 
 func (x *DeleteLinkResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_topology_topology_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -624,116 +606,6 @@ func file_gosdn_topology_topology_proto_init() {
 	}
 	file_gosdn_topology_link_proto_init()
 	file_gosdn_topology_route_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_topology_topology_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*Topology); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_topology_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*AddLinkRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_topology_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*AddLinkResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_topology_proto_msgTypes[3].Exporter = func(v any, i int) any {
-			switch v := v.(*GetTopologyRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_topology_proto_msgTypes[4].Exporter = func(v any, i int) any {
-			switch v := v.(*GetTopologyResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_topology_proto_msgTypes[5].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateLinkRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_topology_proto_msgTypes[6].Exporter = func(v any, i int) any {
-			switch v := v.(*UpdateLinkResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_topology_proto_msgTypes[7].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteLinkRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_topology_topology_proto_msgTypes[8].Exporter = func(v any, i int) any {
-			switch v := v.(*DeleteLinkResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/api/go/gosdn/transport/transport.pb.go b/api/go/gosdn/transport/transport.pb.go
index 745f907d3..24ebcfbe0 100644
--- a/api/go/gosdn/transport/transport.pb.go
+++ b/api/go/gosdn/transport/transport.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.34.2
+// 	protoc-gen-go v1.35.1
 // 	protoc        (unknown)
 // source: gosdn/transport/transport.proto
 
@@ -42,11 +42,9 @@ type TransportOption struct {
 
 func (x *TransportOption) Reset() {
 	*x = TransportOption{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_transport_transport_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_transport_transport_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TransportOption) String() string {
@@ -57,7 +55,7 @@ func (*TransportOption) ProtoMessage() {}
 
 func (x *TransportOption) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_transport_transport_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -157,11 +155,9 @@ type GnmiTransportOption struct {
 
 func (x *GnmiTransportOption) Reset() {
 	*x = GnmiTransportOption{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_transport_transport_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_transport_transport_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GnmiTransportOption) String() string {
@@ -172,7 +168,7 @@ func (*GnmiTransportOption) ProtoMessage() {}
 
 func (x *GnmiTransportOption) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_transport_transport_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -223,11 +219,9 @@ type RestconfTransportOption struct {
 
 func (x *RestconfTransportOption) Reset() {
 	*x = RestconfTransportOption{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_transport_transport_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_gosdn_transport_transport_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RestconfTransportOption) String() string {
@@ -238,7 +232,7 @@ func (*RestconfTransportOption) ProtoMessage() {}
 
 func (x *RestconfTransportOption) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_transport_transport_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -356,44 +350,6 @@ func file_gosdn_transport_transport_proto_init() {
 	if File_gosdn_transport_transport_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_transport_transport_proto_msgTypes[0].Exporter = func(v any, i int) any {
-			switch v := v.(*TransportOption); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_transport_transport_proto_msgTypes[1].Exporter = func(v any, i int) any {
-			switch v := v.(*GnmiTransportOption); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_transport_transport_proto_msgTypes[2].Exporter = func(v any, i int) any {
-			switch v := v.(*RestconfTransportOption); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	file_gosdn_transport_transport_proto_msgTypes[0].OneofWrappers = []any{
 		(*TransportOption_GnmiTransportOption)(nil),
 		(*TransportOption_RestconfTransportOption)(nil),
diff --git a/api/openapiv2/gosdn_northbound.swagger.json b/api/openapiv2/gosdn_northbound.swagger.json
index 7e1d7500d..faefcc2b9 100644
--- a/api/openapiv2/gosdn_northbound.swagger.json
+++ b/api/openapiv2/gosdn_northbound.swagger.json
@@ -1704,6 +1704,45 @@
           "UserService"
         ]
       }
+    },
+    "/yang/parse": {
+      "get": {
+        "summary": "Allows to request a specific Managed Network Element which is managed by a\nspecific Principal Network Domain.",
+        "operationId": "NetworkElementService_ParseYang",
+        "responses": {
+          "200": {
+            "description": "A successful response.",
+            "schema": {
+              "$ref": "#/definitions/networkelementParseYangResponse"
+            }
+          },
+          "default": {
+            "description": "An unexpected error response.",
+            "schema": {
+              "$ref": "#/definitions/googlerpcStatus"
+            }
+          }
+        },
+        "parameters": [
+          {
+            "name": "timestamp",
+            "description": "Timestamp in nanoseconds since Epoch.",
+            "in": "query",
+            "required": false,
+            "type": "string",
+            "format": "int64"
+          },
+          {
+            "name": "yang",
+            "in": "query",
+            "required": false,
+            "type": "string"
+          }
+        ],
+        "tags": [
+          "NetworkElementService"
+        ]
+      }
     }
   },
   "definitions": {
@@ -3562,6 +3601,19 @@
         }
       }
     },
+    "networkelementParseYangResponse": {
+      "type": "object",
+      "properties": {
+        "timestamp": {
+          "type": "string",
+          "format": "int64",
+          "description": "Timestamp in nanoseconds since Epoch."
+        },
+        "json": {
+          "type": "string"
+        }
+      }
+    },
     "networkelementSetChange": {
       "type": "object",
       "properties": {
diff --git a/api/proto/buf.lock b/api/proto/buf.lock
index 0e5e89005..e84d9ee54 100644
--- a/api/proto/buf.lock
+++ b/api/proto/buf.lock
@@ -4,15 +4,15 @@ deps:
   - remote: buf.build
     owner: bufbuild
     repository: protovalidate
-    commit: e097f827e65240ac9fd4b1158849a8fc
-    digest: shake256:f19252436fd9ded945631e2ffaaed28247a92c9015ccf55ae99db9fb3d9600c4fdb00fd2d3bd7701026ec2fd4715c5129e6ae517c25a59ba690020cfe80bf8ad
+    commit: 5a7b106cbb87462d9a8c9ffecdbd2e38
+    digest: shake256:2f7efa5a904668219f039d4f6eeb51e871f8f7f5966055a10663cba335bd65f76cac84da3fa758ab7b5dcb489ec599521390ce3951d119fb56df1fc2def16bb0
   - remote: buf.build
     owner: googleapis
     repository: googleapis
-    commit: a86849a25cc04f4dbe9b15ddddfbc488
-    digest: shake256:e19143328f8cbfe13fc226aeee5e63773ca494693a72740a7560664270039a380d94a1344234b88c7691311460df9a9b1c2982190d0a2612eae80368718e1943
+    commit: f52d4f76a8434cc5966798b1d3b4f110
+    digest: shake256:71566dd80e39b7d85fdaa9b7f82107385181d5b6d17ea56c0aacce61099b35f9f1bcf7333ad9838ca19d24d7f076b039de7c9c09c55d23bb4c2fddfceff4d2c2
   - remote: buf.build
     owner: grpc-ecosystem
     repository: grpc-gateway
-    commit: 3f42134f4c564983838425bc43c7a65f
-    digest: shake256:3d11d4c0fe5e05fda0131afefbce233940e27f0c31c5d4e385686aea58ccd30f72053f61af432fa83f1fc11cda57f5f18ca3da26a29064f73c5a0d076bba8d92
+    commit: a48fcebcf8f140dd9d09359b9bb185a4
+    digest: shake256:a926173f0ec3e1a929462c350acda846e546134b5ce2bb83fe44f02f9330a42b1c9b292f64b951b06a4d2c47e2ce4d477d6a2cb31502a15637ada35ecedefcf6
diff --git a/api/proto/gosdn/networkelement/networkelement.proto b/api/proto/gosdn/networkelement/networkelement.proto
index 9c83e2fef..b2a14817b 100644
--- a/api/proto/gosdn/networkelement/networkelement.proto
+++ b/api/proto/gosdn/networkelement/networkelement.proto
@@ -44,6 +44,13 @@ service NetworkElementService {
     option (google.api.http) = {get: "/mnes/{mneid}"};
   }
 
+
+  // Allows to request a specific Managed Network Element which is managed by a
+  // specific Principal Network Domain.
+  rpc ParseYang(ParseYangRequest) returns (ParseYangResponse) {
+    option (google.api.http) = {get: "/yang/parse"};
+  }
+
   // TODO: add http option
   // Allows to request a specific Managed Network Element which is managed by a
   // specific Principal Network Domain. A flattened version of a Managed
@@ -170,6 +177,18 @@ message GetAllFlattenedResponse {
   repeated FlattenedManagedNetworkElement mne = 3;
 }
 
+message ParseYangRequest {
+  int64 timestamp = 1; // Timestamp in nanoseconds since Epoch.
+  string yang = 2 [(buf.validate.field).required = true];
+}
+
+
+message ParseYangResponse {
+  int64 timestamp = 1; // Timestamp in nanoseconds since Epoch.
+  string json = 2 [(buf.validate.field).required = true];
+}
+
+
 message GetRequest {
   int64 timestamp = 1; // Timestamp in nanoseconds since Epoch.
   string mneid = 2 [(buf.validate.field).required = true];
diff --git a/controller/controller.go b/controller/controller.go
index a1a24aaf6..32adf3586 100644
--- a/controller/controller.go
+++ b/controller/controller.go
@@ -346,6 +346,7 @@ func ensureAdminRoleExists() error {
 			"/gosdn.networkelement.NetworkElementService/DeviceSchema",
 			"/gosdn.networkelement.NetworkElementService/Delete",
 			"/gosdn.networkelement.NetworkElementService/SubscribePath",
+			"/gosdn.networkelement.NetworkElementService/ParseYang",
 			"/gosdn.plugin_internal.PluginInternalService/AvailablePlugins",
 			"/gosdn.plugin_internal.PluginInternalService/GetPluginSchema",
 			"/gosdn.app.AppService/Register",
diff --git a/controller/northbound/server/networkElement.go b/controller/northbound/server/networkElement.go
index 4a3db1c4f..10312d0f9 100644
--- a/controller/northbound/server/networkElement.go
+++ b/controller/northbound/server/networkElement.go
@@ -20,6 +20,7 @@ import (
 	"code.fbi.h-da.de/danet/gosdn/controller/metrics"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/types"
+	"code.fbi.h-da.de/danet/gosdn/models/generated/openconfig"
 	util "code.fbi.h-da.de/danet/gosdn/controller/nucleus/util/gnmi"
 	"code.fbi.h-da.de/danet/gosdn/controller/store"
 	aGNMI "code.fbi.h-da.de/danet/gosdn/forks/goarista/gnmi"
@@ -182,6 +183,37 @@ func (n *NetworkElementServer) GetFlattened(ctx context.Context, request *mnepb.
 	}, nil
 }
 
+func (n *NetworkElementServer) ParseYang(ctx context.Context, request *mnepb.ParseYangRequest) (*mnepb.ParseYangResponse, error) {
+	if err := n.protoValidator.Validate(request); err != nil {
+		return nil, status.Errorf(codes.Aborted, "%v", err)
+	}
+	
+	device := &openconfig.Device{}
+
+	if err := openconfig.Unmarshal([]byte(request.Yang), device); err != nil {
+		log.Error(err)
+		return nil, err
+	}
+
+	json, err := ygot.EmitJSON(device, &ygot.EmitJSONConfig{
+		Format: ygot.RFC7951,
+		Indent: "  ",
+		RFC7951Config: &ygot.RFC7951JSONConfig{
+			AppendModuleName: true,
+		},
+	})
+
+	if err != nil {
+		log.Error(err)
+		return nil, err
+	}
+
+	return &mnepb.ParseYangResponse{
+		Timestamp: time.Now().UnixNano(),
+		Json: string(json),
+	}, nil
+}
+
 func (n *NetworkElementServer) getMne(identifier string) (networkelement.NetworkElement, error) {
 	id, err := uuid.Parse(identifier)
 	if err != nil {
diff --git a/react-ui/scripts/openapi-config.json b/react-ui/scripts/openapi-config.json
index dbb9a84af..e999a3cf7 100644
--- a/react-ui/scripts/openapi-config.json
+++ b/react-ui/scripts/openapi-config.json
@@ -1,11 +1,11 @@
 {
-  "schemaFile": "../../api/openapiv2/gosdn_northbound.swagger.json",
-  "apiFile": "../src/stores/api.store.ts",
-  "apiImport": "emptySplitApi",
-  "outputFile": "../src/api/api.ts",
-  "exportName": "api",
-  "hooks": true,
-  "nullSafeAdditionalProps": true,
-  "withInterfaces": true,
-  "tag": true
-}
\ No newline at end of file
+    "schemaFile": "../../api/openapiv2/gosdn_northbound.swagger.json",
+    "apiFile": "../src/stores/api.store.ts",
+    "apiImport": "emptySplitApi",
+    "outputFile": "../src/shared/api/api.ts",
+    "exportName": "api",
+    "hooks": true,
+    "nullSafeAdditionalProps": true,
+    "withInterfaces": true,
+    "tag": true
+}
diff --git a/react-ui/src/components/devices/reducer/device.reducer.ts b/react-ui/src/components/devices/reducer/device.reducer.ts
index 7195ceaa1..8e4454bd2 100644
--- a/react-ui/src/components/devices/reducer/device.reducer.ts
+++ b/react-ui/src/components/devices/reducer/device.reducer.ts
@@ -1,21 +1,29 @@
-import { api, NetworkelementFlattenedManagedNetworkElement, NetworkelementManagedNetworkElement, PndPrincipalNetworkDomain, PndServiceGetPndListApiArg } from '@api/api';
-import { DeviceViewTabValues } from '@component/devices/view/device.view.tabs';
-import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';
-import '../routines/index';
-
-
-export type Device = NetworkelementFlattenedManagedNetworkElement;
+import {
+    api,
+    NetworkelementFlattenedManagedNetworkElement,
+    NetworkelementManagedNetworkElement,
+    PndPrincipalNetworkDomain,
+    PndServiceGetPndListApiArg,
+} from '@api/api'
+import { DeviceViewTabValues } from '@component/devices/view/device.view.tabs'
+import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit'
+import { RootState } from 'src/stores'
+import '../routines/index'
+import { startListening } from '/src/stores/middleware/listener.middleware'
+
+export type Device = NetworkelementFlattenedManagedNetworkElement
 
 interface SelectedDeviceInterface {
-    device: Device,
+    device: Device
     mne: NetworkelementManagedNetworkElement | null
+    json: JSON | null
 }
 
-type SelectedDeviceType = SelectedDeviceInterface | undefined;
+type SelectedDeviceType = SelectedDeviceInterface | null
 
 export interface DeviceSliceState {
-    devices: Device[],
-    pnds: PndPrincipalNetworkDomain[],
+    devices: Device[]
+    pnds: PndPrincipalNetworkDomain[]
 
     activeTab: DeviceViewTabValues
     selectedDevice: SelectedDeviceType
@@ -25,44 +33,75 @@ const initialState: DeviceSliceState = {
     devices: [],
     pnds: [],
     activeTab: DeviceViewTabValues.METADATA,
-    selectedDevice: null
+    selectedDevice: null,
 }
 
 const deviceSlice = createSlice({
     name: 'device',
     initialState,
     reducers: {
-        setDevices: (state, action: PayloadAction<Device[]>) => { state.devices = action.payload },
-        setPnds: (state, action: PayloadAction<PndPrincipalNetworkDomain[]>) => { state.pnds = action.payload },
-        setActiveTab: (state, action: PayloadAction<DeviceViewTabValues>) => { state.activeTab = action.payload },
-        setSelectedDevice: (state, action: PayloadAction<Device | null>) => { 
-            let selectedDevice: SelectedDeviceType;
+        setDevices: (state, action: PayloadAction<Device[]>) => {
+            state.devices = action.payload
+        },
+        setPnds: (state, action: PayloadAction<PndPrincipalNetworkDomain[]>) => {
+            state.pnds = action.payload
+        },
+        setActiveTab: (state, action: PayloadAction<DeviceViewTabValues>) => {
+            state.activeTab = action.payload
+        },
+        setSelectedDevice: (state, action: PayloadAction<Device | null>) => {
+            let selectedDevice: SelectedDeviceType = null
             if (action.payload) {
-                selectedDevice =  {device: action.payload, mne: null};
+                selectedDevice = { device: action.payload, mne: null, json: null }
             }
 
-            state.selectedDevice = selectedDevice;
+            state.selectedDevice = selectedDevice
+        },
+        setSelectedMne: (state, action: PayloadAction<NetworkelementManagedNetworkElement>) => {
+            if (!state.selectedDevice) {
+                throw new Error('Selected Device is null where it shouldn´t be null')
+            }
+
+            state.selectedDevice.mne = action.payload
+            // TODO maybe don´t take the device of "selected device" instead search in the devices array for the proper device
+            // should not make a diffrence due to pointer but dunno
+        },
+
+        setSelectedJson: (state, action: PayloadAction<JSON>) => {
+            if (!state.selectedDevice) {
+                throw new Error('Selected Device is null where it shouldn´t be null')
+            }
+
+            state.selectedDevice.json = action.payload || null
         },
-        setSelectedMne: (state, action: PayloadAction<NetworkelementManagedNetworkElement>) => { state.selectedDevice.mne = action.payload },
     },
 })
 
-export const { setDevices, setActiveTab, setSelectedDevice, setSelectedMne } = deviceSlice.actions
+export const { setDevices, setActiveTab, setSelectedDevice, setSelectedMne, setSelectedJson } =
+    deviceSlice.actions
 const { setPnds } = deviceSlice.actions
 
 export default deviceSlice.reducer
-export const deviceReducerPath = deviceSlice.reducerPath;
-
-
+export const deviceReducerPath = deviceSlice.reducerPath
 
 export const fetchPnds = createAsyncThunk('device/fetchPnds', (_, thunkApi) => {
     const payload: PndServiceGetPndListApiArg = {
         timestamp: new Date().getTime().toString(),
     }
 
-    const subscription = thunkApi.dispatch(api.endpoints.pndServiceGetPndList.initiate(payload));
+    const subscription = thunkApi.dispatch(api.endpoints.pndServiceGetPndList.initiate(payload))
     subscription.unwrap().then((response) => {
-        thunkApi.dispatch(setPnds(response.pnd));
-    });
-});
+        thunkApi.dispatch(setPnds(response.pnd))
+    })
+})
 
+// add default selected device if no selected device is set
+startListening({
+    predicate: (action) => setDevices.match(action),
+    effect: async (action, listenerApi) => {
+        const { device } = listenerApi.getOriginalState() as RootState
+        if (!device.selectedDevice && !!action.payload[0]) {
+            listenerApi.dispatch(setSelectedDevice(action.payload[0]))
+        }
+    },
+})
diff --git a/react-ui/src/components/devices/routines/mne.routine.ts b/react-ui/src/components/devices/routines/mne.routine.ts
index 9823aa69a..378e6e8cf 100644
--- a/react-ui/src/components/devices/routines/mne.routine.ts
+++ b/react-ui/src/components/devices/routines/mne.routine.ts
@@ -1,46 +1,82 @@
-import { api, NetworkElementServiceGetApiArg } from "@api/api";
-import { Device, setSelectedDevice, setSelectedMne } from "@component/devices/reducer/device.reducer";
-import { createAsyncThunk } from "@reduxjs/toolkit";
-import { addRoutine, CATEGORIES } from "@shared/reducer/routine.reducer";
-import { RootState } from "src/stores";
-import { startListening } from "../../../stores/middleware/listener.middleware";
-
-export const FETCH_MNE_ACTION = 'subscription/device/fetchSelectedMNE';
+import { api, NetworkElementServiceGetApiArg, NetworkElementServiceParseYangApiArg } from '@api/api'
+import {
+    Device,
+    setSelectedDevice,
+    setSelectedJson,
+    setSelectedMne,
+} from '@component/devices/reducer/device.reducer'
+import { createAsyncThunk } from '@reduxjs/toolkit'
+import { addRoutine, CATEGORIES } from '@shared/reducer/routine.reducer'
+import { RootState } from 'src/stores'
+import { startListening } from '../../../stores/middleware/listener.middleware'
 
+export const FETCH_MNE_ACTION = 'subscription/device/fetchSelectedMNE'
 
 // fetch mne if selected device is set
 startListening({
     predicate: (action) => setSelectedDevice.match(action) && !!action.payload,
     effect: async (action, listenerApi) => {
-        listenerApi.dispatch(addRoutine({thunk: fetchSelectedMneThunk, category: CATEGORIES.TAB, payload: action.payload}));
+        listenerApi.dispatch(
+            addRoutine({
+                thunk: fetchSelectedMneThunk,
+                category: CATEGORIES.TAB,
+                payload: action.payload,
+            })
+        )
     },
 })
 
+const FETCH_MNE_INTERVAL = 5000 // in ms
+export const fetchSelectedMneThunk = createAsyncThunk(
+    FETCH_MNE_ACTION,
+    async (device: Device, thunkApi) => {
+        const { user } = thunkApi.getState() as RootState
 
-const FETCH_MNE_INTERVAL = 5000; // in ms
-export const fetchSelectedMneThunk = createAsyncThunk(FETCH_MNE_ACTION, async (device: Device, thunkApi) => {
-    const { user } = thunkApi.getState() as RootState;
-
-    const payload: NetworkElementServiceGetApiArg = {
-        pid: Object.keys(user?.user.roles)[0],
-        timestamp: new Date().getTime().toString(),
-        mneid: device.id,
-    }
-
-    const subscription = thunkApi.dispatch(api.endpoints.networkElementServiceGet.initiate(payload, {
-        subscriptionOptions: {
-            pollingInterval: FETCH_MNE_INTERVAL,
-            skipPollingIfUnfocused: true,
+        const payload: NetworkElementServiceGetApiArg = {
+            pid: Object.keys(user?.user.roles)[0],
+            timestamp: new Date().getTime().toString(),
+            mneid: device.id,
         }
-    }));
 
-    return {...subscription};
-});
+        const subscription = thunkApi.dispatch(
+            api.endpoints.networkElementServiceGet.initiate(payload, {
+                subscriptionOptions: {
+                    pollingInterval: FETCH_MNE_INTERVAL,
+                    skipPollingIfUnfocused: true,
+                },
+            })
+        )
+
+        return { ...subscription }
+    }
+)
 
 // save fetched mne
 startListening({
     predicate: (action) => api.endpoints.networkElementServiceGet.matchFulfilled(action),
     effect: async (action, listenerApi) => {
-        listenerApi.dispatch(setSelectedMne(action.payload.mne));
+        listenerApi.dispatch(setSelectedMne(action.payload.mne))
+    },
+})
+
+// save fetched mne
+startListening({
+    predicate: (action) => setSelectedMne.match(action),
+    effect: async (action, listenerApi) => {
+        const payload: NetworkElementServiceParseYangApiArg = {
+            timestamp: new Date().getTime().toString(),
+            yang: action.payload.model,
+        }
+
+        const { data } = await listenerApi.dispatch(
+            api.endpoints.networkElementServiceParseYang.initiate(payload)
+        )
+
+        if (!data?.json) {
+            throw new Error('ParseYang response is invalid. The json field is null')
+        }
+        const json = JSON.parse(data.json)
+
+        listenerApi.dispatch(setSelectedJson(json))
     },
-})
\ No newline at end of file
+})
diff --git a/react-ui/src/components/devices/view/device.scss b/react-ui/src/components/devices/view/device.scss
index 0890fc928..afebc6fe5 100644
--- a/react-ui/src/components/devices/view/device.scss
+++ b/react-ui/src/components/devices/view/device.scss
@@ -6,6 +6,17 @@ thead {
 
 tr:hover > td {
     background-color: lighten(map-get($theme-colors, primary), 30%) !important;
+    cursor: pointer;
+}
+
+tr.active > td {
+    background-color: lighten(map-get($theme-colors, primary), 5%) !important;
+
+    color: map-get($theme-colors, 'black') !important;
+}
+
+tr > td {
+    color: map-get($theme-colors, 'dark') !important;
 }
 
 tr:nth-child(2n + 1) > td {
diff --git a/react-ui/src/components/devices/view/device.view.table.tsx b/react-ui/src/components/devices/view/device.view.table.tsx
index 9ef441f17..933b50a8a 100644
--- a/react-ui/src/components/devices/view/device.view.table.tsx
+++ b/react-ui/src/components/devices/view/device.view.table.tsx
@@ -5,9 +5,9 @@ import { useTranslation } from "react-i18next";
 import { useDeviceTableViewModel } from "../view_model/device.table.viewmodel";
 
 export const DeviceViewTable = (searchRef: MutableRefObject<HTMLInputElement>) => {
-    const { devices, pnds } = useAppSelector(state => state.device);
+    const { devices, pnds, selectedDevice } = useAppSelector(state => state.device);
     const { t } = useTranslation('common');
-    const { searchTerm, trClickHandler } = useDeviceTableViewModel(searchRef);
+    const { trClickHandler } = useDeviceTableViewModel(searchRef);
 
 
     const cropUUID = (uuid: string): string => {
@@ -28,7 +28,7 @@ export const DeviceViewTable = (searchRef: MutableRefObject<HTMLInputElement>) =
             const user = pnds.find(pnd => pnd.id === device.pid);
 
             return (
-                <tr key={index} onClick={() => trClickHandler(device)}>
+                <tr key={index} onClick={() => trClickHandler(device)} className={selectedDevice?.device.id === device.id ? 'active' : ''}>
                     <td>{device.name}</td>
                     <OverlayTrigger overlay={<Tooltip id={device.id}>{device.id}</Tooltip>}>
                         <td>{cropUUID(device.id)}</td>
@@ -38,7 +38,7 @@ export const DeviceViewTable = (searchRef: MutableRefObject<HTMLInputElement>) =
                 </tr>
             )
         })
-    }, [searchTerm, devices, pnds]);
+    }, [devices, searchRef, pnds, selectedDevice, trClickHandler]);
 
 
     return (
diff --git a/react-ui/src/components/devices/view/device.view.tabs.tsx b/react-ui/src/components/devices/view/device.view.tabs.tsx
index 95796741a..05e854651 100644
--- a/react-ui/src/components/devices/view/device.view.tabs.tsx
+++ b/react-ui/src/components/devices/view/device.view.tabs.tsx
@@ -22,8 +22,8 @@ export const DeviceViewTabs = (activeTab: DeviceViewTabValues) => {
     const yangModelTab = () => {
         return (
             <>
-                {yang.current &&
-                    <ReactJson src={yang.current} name={false} collapsed={false} quotesOnKeys={false} />
+                {selectedDevice?.json &&
+                    <ReactJson src={selectedDevice.json} name={false} collapsed={false} quotesOnKeys={false} />
                 }
             </>
         );
diff --git a/react-ui/src/components/devices/view_model/device.tabs.viewmodel.ts b/react-ui/src/components/devices/view_model/device.tabs.viewmodel.ts
index f9d3124ea..e15f7c721 100644
--- a/react-ui/src/components/devices/view_model/device.tabs.viewmodel.ts
+++ b/react-ui/src/components/devices/view_model/device.tabs.viewmodel.ts
@@ -19,9 +19,11 @@ export const useDeviceTabsViewModel = () => {
             return
         }
 
-        parse(serializedYang).then((json) => {
-            yang.current = json
-        })
+        console.log(serializedYang)
+
+        // parse(serializedYang).then((json) => {
+        //     yang.current = json
+        // })
     }, [selectedDevice, parse])
 
     return {
diff --git a/react-ui/src/components/devices/view_model/device.viewmodel.ts b/react-ui/src/components/devices/view_model/device.viewmodel.ts
index cfff6cf9a..9a0fbe17a 100644
--- a/react-ui/src/components/devices/view_model/device.viewmodel.ts
+++ b/react-ui/src/components/devices/view_model/device.viewmodel.ts
@@ -1,23 +1,25 @@
-import { setActiveTab as setActiveTabState } from "@component/devices/reducer/device.reducer";
-import { useAppDispatch, useAppSelector } from "@hooks";
-import { DeviceViewTabValues } from "@view/device/device.view.tabs";
+import { setActiveTab as setActiveTabState } from '@component/devices/reducer/device.reducer'
+import { useAppDispatch, useAppSelector } from '@hooks'
+import { DeviceViewTabValues } from '@view/device/device.view.tabs'
+import { useEffect } from 'react'
 
 export const useDeviceViewModel = () => {
-    const {activeTab} = useAppSelector(state => state.device);
-    const dispatch = useAppDispatch();
-    
+    const { activeTab } = useAppSelector((state) => state.device)
+    const dispatch = useAppDispatch()
+
+    useEffect(() => {}, [])
+
     const handleActiveTabLink = (tabLink: DeviceViewTabValues) => {
-        return activeTab === tabLink ? 'active' : '';
+        return activeTab === tabLink ? 'active' : ''
     }
 
     const setActiveTab = (tab: DeviceViewTabValues) => {
-        dispatch(setActiveTabState(tab));
+        dispatch(setActiveTabState(tab))
     }
-    
 
     return {
         activeTab,
         setActiveTab,
-        handleActiveTabLink
+        handleActiveTabLink,
     }
-}
\ No newline at end of file
+}
diff --git a/react-ui/src/shared/api/api.ts b/react-ui/src/shared/api/api.ts
index a5d1ebd6b..c964d9dc9 100644
--- a/react-ui/src/shared/api/api.ts
+++ b/react-ui/src/shared/api/api.ts
@@ -7,6 +7,7 @@ export const addTagTypes = [
     'PndService',
     'RoleService',
     'RoutingTableService',
+    'SubscriptionManagementService',
     'TopologyService',
     'UserService',
 ] as const
@@ -51,10 +52,7 @@ const injectedRtkApi = api
                 }),
                 invalidatesTags: ['ConfigurationManagementService'],
             }),
-            authServiceLogin: build.mutation<
-                AuthServiceLoginApiResponse,
-                AuthServiceLoginApiArg
-            >({
+            authServiceLogin: build.mutation<AuthServiceLoginApiResponse, AuthServiceLoginApiArg>({
                 query: (queryArg) => ({
                     url: `/login`,
                     method: 'POST',
@@ -79,10 +77,7 @@ const injectedRtkApi = api
             >({
                 query: (queryArg) => ({
                     url: `/mnes`,
-                    params: {
-                        timestamp: queryArg.timestamp,
-                        pid: queryArg.pid,
-                    },
+                    params: { timestamp: queryArg.timestamp, pid: queryArg.pid },
                 }),
                 providesTags: ['NetworkElementService'],
             }),
@@ -103,10 +98,7 @@ const injectedRtkApi = api
             >({
                 query: (queryArg) => ({
                     url: `/mnes/changes`,
-                    params: {
-                        timestamp: queryArg.timestamp,
-                        pid: queryArg.pid,
-                    },
+                    params: { timestamp: queryArg.timestamp, pid: queryArg.pid },
                 }),
                 providesTags: ['NetworkElementService'],
             }),
@@ -127,10 +119,7 @@ const injectedRtkApi = api
             >({
                 query: (queryArg) => ({
                     url: `/mnes/changes/${queryArg.cuid}`,
-                    params: {
-                        timestamp: queryArg.timestamp,
-                        pid: queryArg.pid,
-                    },
+                    params: { timestamp: queryArg.timestamp, pid: queryArg.pid },
                 }),
                 providesTags: ['NetworkElementService'],
             }),
@@ -151,10 +140,7 @@ const injectedRtkApi = api
             >({
                 query: (queryArg) => ({
                     url: `/mnes/${queryArg.mneid}`,
-                    params: {
-                        timestamp: queryArg.timestamp,
-                        pid: queryArg.pid,
-                    },
+                    params: { timestamp: queryArg.timestamp, pid: queryArg.pid },
                 }),
                 providesTags: ['NetworkElementService'],
             }),
@@ -165,10 +151,7 @@ const injectedRtkApi = api
                 query: (queryArg) => ({
                     url: `/mnes/${queryArg.mneid}`,
                     method: 'DELETE',
-                    params: {
-                        timestamp: queryArg.timestamp,
-                        pid: queryArg.pid,
-                    },
+                    params: { timestamp: queryArg.timestamp, pid: queryArg.pid },
                 }),
                 invalidatesTags: ['NetworkElementService'],
             }),
@@ -178,10 +161,7 @@ const injectedRtkApi = api
             >({
                 query: (queryArg) => ({
                     url: `/mnes/${queryArg.mneid}/intendedpaths/${queryArg.intendedPath}`,
-                    params: {
-                        timestamp: queryArg.timestamp,
-                        pid: queryArg.pid,
-                    },
+                    params: { timestamp: queryArg.timestamp, pid: queryArg.pid },
                 }),
                 providesTags: ['NetworkElementService'],
             }),
@@ -191,10 +171,7 @@ const injectedRtkApi = api
             >({
                 query: (queryArg) => ({
                     url: `/mnes/${queryArg.mneid}/paths/${queryArg.path}`,
-                    params: {
-                        timestamp: queryArg.timestamp,
-                        pid: queryArg.pid,
-                    },
+                    params: { timestamp: queryArg.timestamp, pid: queryArg.pid },
                 }),
                 providesTags: ['NetworkElementService'],
             }),
@@ -209,10 +186,7 @@ const injectedRtkApi = api
                 }),
                 invalidatesTags: ['NetworkElementService'],
             }),
-            pndServiceGetPnd: build.query<
-                PndServiceGetPndApiResponse,
-                PndServiceGetPndApiArg
-            >({
+            pndServiceGetPnd: build.query<PndServiceGetPndApiResponse, PndServiceGetPndApiArg>({
                 query: (queryArg) => ({
                     url: `/pnd/${queryArg.pid}`,
                     params: { timestamp: queryArg.timestamp },
@@ -223,10 +197,7 @@ const injectedRtkApi = api
                 PndServiceGetPndListApiResponse,
                 PndServiceGetPndListApiArg
             >({
-                query: (queryArg) => ({
-                    url: `/pnds`,
-                    params: { timestamp: queryArg.timestamp },
-                }),
+                query: (queryArg) => ({ url: `/pnds`, params: { timestamp: queryArg.timestamp } }),
                 providesTags: ['PndService'],
             }),
             pndServiceCreatePndList: build.mutation<
@@ -266,10 +237,7 @@ const injectedRtkApi = api
                 RoleServiceGetRolesApiResponse,
                 RoleServiceGetRolesApiArg
             >({
-                query: (queryArg) => ({
-                    url: `/roles`,
-                    params: { timestamp: queryArg.timestamp },
-                }),
+                query: (queryArg) => ({ url: `/roles`, params: { timestamp: queryArg.timestamp } }),
                 providesTags: ['RoleService'],
             }),
             roleServiceCreateRoles: build.mutation<
@@ -290,10 +258,7 @@ const injectedRtkApi = api
                 query: (queryArg) => ({
                     url: `/roles/delete`,
                     method: 'DELETE',
-                    params: {
-                        timestamp: queryArg.timestamp,
-                        roleName: queryArg.roleName,
-                    },
+                    params: { timestamp: queryArg.timestamp, roleName: queryArg.roleName },
                 }),
                 invalidatesTags: ['RoleService'],
             }),
@@ -369,6 +334,58 @@ const injectedRtkApi = api
                 }),
                 invalidatesTags: ['RoutingTableService'],
             }),
+            subscriptionManagementServiceResetAllSubscriptions: build.query<
+                SubscriptionManagementServiceResetAllSubscriptionsApiResponse,
+                SubscriptionManagementServiceResetAllSubscriptionsApiArg
+            >({
+                query: (queryArg) => ({
+                    url: `/submanagement/reset`,
+                    params: { timestamp: queryArg.timestamp },
+                }),
+                providesTags: ['SubscriptionManagementService'],
+            }),
+            subscriptionManagementServiceGetAll: build.query<
+                SubscriptionManagementServiceGetAllApiResponse,
+                SubscriptionManagementServiceGetAllApiArg
+            >({
+                query: (queryArg) => ({
+                    url: `/submanagement/subscriptions`,
+                    params: { timestamp: queryArg.timestamp },
+                }),
+                providesTags: ['SubscriptionManagementService'],
+            }),
+            subscriptionManagementServiceAdd: build.mutation<
+                SubscriptionManagementServiceAddApiResponse,
+                SubscriptionManagementServiceAddApiArg
+            >({
+                query: (queryArg) => ({
+                    url: `/submanagement/${queryArg.mneid}`,
+                    method: 'POST',
+                    body: queryArg.subscriptionmanagementSubscriptionManagementServiceAddBody,
+                }),
+                invalidatesTags: ['SubscriptionManagementService'],
+            }),
+            subscriptionManagementServiceGet: build.query<
+                SubscriptionManagementServiceGetApiResponse,
+                SubscriptionManagementServiceGetApiArg
+            >({
+                query: (queryArg) => ({
+                    url: `/submanagement/${queryArg.subid}`,
+                    params: { timestamp: queryArg.timestamp },
+                }),
+                providesTags: ['SubscriptionManagementService'],
+            }),
+            subscriptionManagementServiceDelete: build.mutation<
+                SubscriptionManagementServiceDeleteApiResponse,
+                SubscriptionManagementServiceDeleteApiArg
+            >({
+                query: (queryArg) => ({
+                    url: `/submanagement/${queryArg.subid}`,
+                    method: 'DELETE',
+                    params: { timestamp: queryArg.timestamp },
+                }),
+                invalidatesTags: ['SubscriptionManagementService'],
+            }),
             topologyServiceGetTopology: build.query<
                 TopologyServiceGetTopologyApiResponse,
                 TopologyServiceGetTopologyApiArg
@@ -416,10 +433,7 @@ const injectedRtkApi = api
                 UserServiceGetUsersApiResponse,
                 UserServiceGetUsersApiArg
             >({
-                query: (queryArg) => ({
-                    url: `/users`,
-                    params: { timestamp: queryArg.timestamp },
-                }),
+                query: (queryArg) => ({ url: `/users`, params: { timestamp: queryArg.timestamp } }),
                 providesTags: ['UserService'],
             }),
             userServiceCreateUsers: build.mutation<
@@ -440,10 +454,7 @@ const injectedRtkApi = api
                 query: (queryArg) => ({
                     url: `/users/delete`,
                     method: 'DELETE',
-                    params: {
-                        timestamp: queryArg.timestamp,
-                        username: queryArg.username,
-                    },
+                    params: { timestamp: queryArg.timestamp, username: queryArg.username },
                 }),
                 invalidatesTags: ['UserService'],
             }),
@@ -453,11 +464,7 @@ const injectedRtkApi = api
             >({
                 query: (queryArg) => ({
                     url: `/users/get`,
-                    params: {
-                        timestamp: queryArg.timestamp,
-                        name: queryArg.name,
-                        id: queryArg.id,
-                    },
+                    params: { timestamp: queryArg.timestamp, name: queryArg.name, id: queryArg.id },
                 }),
                 providesTags: ['UserService'],
             }),
@@ -472,6 +479,16 @@ const injectedRtkApi = api
                 }),
                 invalidatesTags: ['UserService'],
             }),
+            networkElementServiceParseYang: build.query<
+                NetworkElementServiceParseYangApiResponse,
+                NetworkElementServiceParseYangApiArg
+            >({
+                query: (queryArg) => ({
+                    url: `/yang/parse`,
+                    params: { timestamp: queryArg.timestamp, yang: queryArg.yang },
+                }),
+                providesTags: ['NetworkElementService'],
+            }),
         }),
         overrideExisting: false,
     })
@@ -496,8 +513,7 @@ export type ConfigurationManagementServiceImportSdnConfigApiArg = {
     timestamp?: string
     sdnConfigData?: string
 }
-export type AuthServiceLoginApiResponse =
-    /** status 200 A successful response. */ RbacLoginResponse
+export type AuthServiceLoginApiResponse = /** status 200 A successful response. */ RbacLoginResponse
 export type AuthServiceLoginApiArg = {
     rbacLoginRequest: Login
 }
@@ -582,8 +598,7 @@ export type NetworkElementServiceUpdateApiResponse =
 export type NetworkElementServiceUpdateApiArg = {
     networkelementUpdateNetworkElementRequest: TodoChangeNameToFitTheRest
 }
-export type PndServiceGetPndApiResponse =
-    /** status 200 A successful response. */ PndGetPndResponse
+export type PndServiceGetPndApiResponse = /** status 200 A successful response. */ PndGetPndResponse
 export type PndServiceGetPndApiArg = {
     pid: string
     /** Timestamp in nanoseconds since Epoch. */
@@ -663,6 +678,34 @@ export type RoutingTableServiceDeleteRouteApiArg = {
     timestamp?: string
     id?: string
 }
+export type SubscriptionManagementServiceResetAllSubscriptionsApiResponse =
+    /** status 200 A successful response. */ SubscriptionmanagementResetAllSubscriptionsResponse
+export type SubscriptionManagementServiceResetAllSubscriptionsApiArg = {
+    timestamp?: string
+}
+export type SubscriptionManagementServiceGetAllApiResponse =
+    /** status 200 A successful response. */ GosdnsubscriptionmanagementGetAllResponse
+export type SubscriptionManagementServiceGetAllApiArg = {
+    timestamp?: string
+}
+export type SubscriptionManagementServiceAddApiResponse =
+    /** status 200 A successful response. */ SubscriptionmanagementAddResponse
+export type SubscriptionManagementServiceAddApiArg = {
+    mneid: string
+    subscriptionmanagementSubscriptionManagementServiceAddBody: SubscriptionmanagementSubscriptionManagementServiceAddBody
+}
+export type SubscriptionManagementServiceGetApiResponse =
+    /** status 200 A successful response. */ GosdnsubscriptionmanagementGetResponse
+export type SubscriptionManagementServiceGetApiArg = {
+    subid: string
+    timestamp?: string
+}
+export type SubscriptionManagementServiceDeleteApiResponse =
+    /** status 200 A successful response. */ GosdnsubscriptionmanagementDeleteResponse
+export type SubscriptionManagementServiceDeleteApiArg = {
+    subid: string
+    timestamp?: string
+}
 export type TopologyServiceGetTopologyApiResponse =
     /** status 200 A successful response. */ TopologyGetTopologyResponse
 export type TopologyServiceGetTopologyApiArg = {
@@ -713,6 +756,13 @@ export type UserServiceUpdateUsersApiResponse =
 export type UserServiceUpdateUsersApiArg = {
     rbacUpdateUsersRequest: UpdateUsers
 }
+export type NetworkElementServiceParseYangApiResponse =
+    /** status 200 A successful response. */ NetworkelementParseYangResponse
+export type NetworkElementServiceParseYangApiArg = {
+    /** Timestamp in nanoseconds since Epoch. */
+    timestamp?: string
+    yang?: string
+}
 export type AppAppDeregisterResponse = {
     timestamp?: string
 }
@@ -817,11 +867,10 @@ export type TransportGnmiTransportOption = {
 }
 export type TransportRestconfTransportOption = object
 export type ChangedAccordingToStyleGuideHttpsDocsBufBuildBestPracticesStyleGuideEnums =
-
-        | 'TYPE_UNSPECIFIED'
-        | 'TYPE_OPENCONFIG'
-        | 'TYPE_CONTAINERISED'
-        | 'TYPE_PLUGIN'
+    | 'TYPE_UNSPECIFIED'
+    | 'TYPE_OPENCONFIG'
+    | 'TYPE_CONTAINERISED'
+    | 'TYPE_PLUGIN'
 export type TransportTransportOption = {
     address?: string
     username?: string
@@ -1147,6 +1196,43 @@ export type TopologyAddRoutingTableRequest = {
 export type TopologyDeleteRoutesResponse = {
     timestamp?: string
 }
+export type SubscriptionmanagementResetAllSubscriptionsResponse = {
+    timestamp?: string
+}
+export type GosdnsubscriptionmanagementPath = {
+    elem?: string[]
+}
+export type SubscriptionmanagementSubscribeOptions = {
+    gnmiMode?: string
+    gnmiStreamMode?: string
+    sampleInterval?: string
+}
+export type GosdnsubscriptionmanagementSubscription = {
+    subid?: string
+    pid?: string
+    mneid?: string
+    mneName?: string
+    paths?: GosdnsubscriptionmanagementPath[]
+    subscribeOptions?: SubscriptionmanagementSubscribeOptions
+}
+export type GosdnsubscriptionmanagementGetAllResponse = {
+    timestamp?: string
+    subscriptions?: GosdnsubscriptionmanagementSubscription[]
+}
+export type SubscriptionmanagementAddResponse = {
+    timestamp?: string
+}
+export type SubscriptionmanagementSubscriptionManagementServiceAddBody = {
+    timestamp?: string
+    subscription?: GosdnsubscriptionmanagementSubscription
+}
+export type GosdnsubscriptionmanagementGetResponse = {
+    timestamp?: string
+    subscriptions?: GosdnsubscriptionmanagementSubscription
+}
+export type GosdnsubscriptionmanagementDeleteResponse = {
+    timestamp?: string
+}
 export type TopologyNode = {
     id?: string
     name?: string
@@ -1240,6 +1326,11 @@ export type UpdateUsers = {
     timestamp?: string
     user?: RbacUpdateUser[]
 }
+export type NetworkelementParseYangResponse = {
+    /** Timestamp in nanoseconds since Epoch. */
+    timestamp?: string
+    json?: string
+}
 export const {
     useAppServiceDeregisterMutation,
     useConfigurationManagementServiceExportSdnConfigQuery,
@@ -1271,6 +1362,11 @@ export const {
     useRoutingTableServiceGetRoutesQuery,
     useRoutingTableServiceAddRoutingTableMutation,
     useRoutingTableServiceDeleteRouteMutation,
+    useSubscriptionManagementServiceResetAllSubscriptionsQuery,
+    useSubscriptionManagementServiceGetAllQuery,
+    useSubscriptionManagementServiceAddMutation,
+    useSubscriptionManagementServiceGetQuery,
+    useSubscriptionManagementServiceDeleteMutation,
     useTopologyServiceGetTopologyQuery,
     useTopologyServiceAddLinkMutation,
     useTopologyServiceDeleteLinkMutation,
@@ -1280,4 +1376,5 @@ export const {
     useUserServiceDeleteUsersMutation,
     useUserServiceGetUserQuery,
     useUserServiceUpdateUsersMutation,
+    useNetworkElementServiceParseYangQuery,
 } = injectedRtkApi
diff --git a/react-ui/src/shared/provider/auth.provider.tsx b/react-ui/src/shared/provider/auth.provider.tsx
index 4098eca5b..faf29847f 100644
--- a/react-ui/src/shared/provider/auth.provider.tsx
+++ b/react-ui/src/shared/provider/auth.provider.tsx
@@ -30,19 +30,18 @@ const AuthContext = createContext<AuthProviderType>({
 });
 
 export const AuthProvider = ({ children }) => {
-    const dispatch = useAppDispatch();;
-    const navigate = useNavigate();
-    const { username } = useAppSelector(state => state.user);
+    const dispatch = useAppDispatch()
+    const navigate = useNavigate()
+    const { username } = useAppSelector(state => state.user)
 
     useEffect(() => {
         const token = getCookieValue('token');
 
-        if (token) {
-            navigate(DEVICE_URL)
-        } else {
+        if (!token) {
             navigate(LOGIN_URL)
         }
-    }, [username]);
+
+    }, [username, navigate]);
 
     const [
         sendLogin,
diff --git a/react-ui/src/shared/reducer/routine.reducer.ts b/react-ui/src/shared/reducer/routine.reducer.ts
index 4cbc4b6ac..4ff9fce92 100644
--- a/react-ui/src/shared/reducer/routine.reducer.ts
+++ b/react-ui/src/shared/reducer/routine.reducer.ts
@@ -80,27 +80,14 @@ startListening({
         const { routine } = listenerApi.getState() as RootState
         for (const [_, thunk] of Object.entries<ThunkEntity>(routine.thunks)) {
             if (!thunk) {
-                return
+                continue
             }
-
             const dto: ThunkEntityDTO = thunk
             listenerApi.dispatch(addRoutine(dto))
         }
     },
 })
 
-// unsubscribe old routine
-startListening({
-    predicate: (action) => addRoutine.match(action),
-    effect: async (action, listenerApi) => {
-        const { routine } = listenerApi.getOriginalState() as RootState
-        const lastThunk = routine.thunks[CATEGORIES[action.payload.category]]
-        if (lastThunk) {
-            RoutineManager.unsubscribe(lastThunk.id)
-        }
-    },
-})
-
 // add new routine
 startListening({
     predicate: (action) => addRoutine.match(action),
@@ -114,4 +101,16 @@ startListening({
     },
 })
 
+// unsubscribe old routine
+startListening({
+    predicate: (action) => addRoutine.match(action),
+    effect: async (action, listenerApi) => {
+        const { routine } = listenerApi.getOriginalState() as RootState
+        const lastThunk = routine.thunks[CATEGORIES[action.payload.category]]
+        if (lastThunk) {
+            RoutineManager.unsubscribe(lastThunk.id)
+        }
+    },
+})
+
 export default RoutineSlice.reducer
diff --git a/react-ui/src/shared/reducer/user.reducer.ts b/react-ui/src/shared/reducer/user.reducer.ts
index ce9f2b502..af0f2d171 100644
--- a/react-ui/src/shared/reducer/user.reducer.ts
+++ b/react-ui/src/shared/reducer/user.reducer.ts
@@ -1,15 +1,14 @@
-import { api, RbacUser, UserServiceGetUsersApiArg } from '@api/api';
-import { setCookieValue } from '@helper/coookie';
-import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';
-import { RootState } from '..';
+import { api, RbacUser, UserServiceGetUsersApiArg } from '@api/api'
+import { setCookieValue } from '@helper/coookie'
+import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit'
+import { RootState } from '..'
 
 export interface UserSliceState {
     // defined by the frontend user input. This value is getting compared with the backend response
-    username: string,
-    user: RbacUser | null,
+    username: string
+    user: RbacUser | null
 }
 
-
 const initialState: UserSliceState = {
     username: '',
     user: null,
@@ -19,13 +18,15 @@ const userSlice = createSlice({
     name: 'user',
     initialState,
     reducers: {
-        setToken: (state, action: PayloadAction<{ token: string, username: string }>) => {
-            const token = action.payload?.token || '';
-            setCookieValue('token', token);
-            
+        setToken: (state, action: PayloadAction<{ token: string; username: string } | null>) => {
+            const token = action.payload?.token || ''
+            setCookieValue('token', token)
+
             state.username = action.payload?.username || ''
         },
-        setUser: (state, action: PayloadAction<RbacUser>) => { state.user = action.payload },
+        setUser: (state, action: PayloadAction<RbacUser>) => {
+            state.user = action.payload
+        },
     },
 })
 
@@ -33,30 +34,27 @@ export const { setToken } = userSlice.actions
 export const { setUser } = userSlice.actions
 
 export default userSlice.reducer
-export const userReducerPath = userSlice.reducerPath;
+export const userReducerPath = userSlice.reducerPath
 
-
-export const fetchUser = createAsyncThunk(
-    'user/fetchUser',
-    (_, thunkAPI) => {
-    const payload: UserServiceGetUsersApiArg = {};
+export const fetchUser = createAsyncThunk('user/fetchUser', (_, thunkAPI) => {
+    const payload: UserServiceGetUsersApiArg = {}
 
     thunkAPI.dispatch(api.endpoints.userServiceGetUsers.initiate(payload)).then((response) => {
         if (response.error || !response.data?.user?.length) {
             // TODO proper error handling
-            throw new Error('Fetching the pnd list after successful login failed');
+            throw new Error('Fetching the pnd list after successful login failed')
         }
 
-        const { user } = thunkAPI.getState() as RootState;
+        const { user } = thunkAPI.getState() as RootState
 
         // TODO ask if this is the correct approach
-        const matchedUser = response.data.user.find((_user) => _user.name === user.username);
+        const matchedUser = response.data.user.find((_user) => _user.name === user.username)
 
         if (!matchedUser) {
             // TODO proper error handling
-            throw new Error('No user found with the provided username');
+            throw new Error('No user found with the provided username')
         }
 
-        thunkAPI.dispatch(setUser(matchedUser));
-    });
-});
\ No newline at end of file
+        thunkAPI.dispatch(setUser(matchedUser))
+    })
+})
diff --git a/react-ui/src/shared/utils/routine.manager.ts b/react-ui/src/shared/utils/routine.manager.ts
index 653112db7..ade079289 100644
--- a/react-ui/src/shared/utils/routine.manager.ts
+++ b/react-ui/src/shared/utils/routine.manager.ts
@@ -1,75 +1,72 @@
-import { QueryActionCreatorResult } from '@reduxjs/toolkit/query';
+import { QueryActionCreatorResult } from '@reduxjs/toolkit/query'
 
-type Routine = QueryActionCreatorResult<any>;
+type Routine = QueryActionCreatorResult<any>
 
 interface Entity {
-    routine: Routine,
+    routine: Routine
     id: number
 }
 
 const initialState = {
-    routines: [] as Entity[]
+    routines: [] as Entity[],
 }
 
-
 /**
  * Routine manager is a singleton that holds all running routines.
  * The redux store holds any persistable information about the routines.
  * The routines objects itself are stored in the RoutineManager.
  */
 export const RoutineManager = (() => {
-    const state = initialState;
+    const state = initialState
     const add = (routine: Routine): number => {
-        const id = state.routines.length;
+        const id = state.routines.length
 
         const newEntity: Entity = {
             routine: routine,
-            id
+            id,
         }
 
-        state.routines = [...state.routines, newEntity];
+        state.routines = [...state.routines, newEntity]
 
-        return id;
+        return id
     }
 
-
     const unsubscribeAll = () => {
         state.routines.forEach(({ routine: subscription }) => {
             _unsubscribe(subscription)
-        });
+        })
 
-        state.routines = initialState.routines;
+        state.routines = initialState.routines
     }
 
     /**
-     * @param id 
+     * @param id
      * @returns returns true if the routine was stopped, false if it was not found
      */
     const unsubscribe = (id: number): boolean => {
-        const routine = state.routines.find(({ id: routineId }) => routineId === id);
+        const routine = state.routines.find(({ id: routineId }) => routineId === id)
 
         if (routine) {
-            _unsubscribe(routine.routine);
+            _unsubscribe(routine.routine)
         }
 
-        return !!routine;
+        return !!routine
     }
 
     /**
      * Actual unsubscribe process.
      * This process is extracted to have a single process of unsubscribing.
-     * 
-     * @param subscription 
+     *
+     * @param subscription
      */
     const _unsubscribe = (subscription: Routine) => {
-        subscription.unsubscribe();
+        subscription.unsubscribe()
         // TODO remove from state
     }
 
-
     return {
         add,
         unsubscribe,
-        unsubscribeAll
+        unsubscribeAll,
     }
-})();
\ No newline at end of file
+})()
diff --git a/react-ui/src/stores/api.store.ts b/react-ui/src/stores/api.store.ts
index fd894e97b..57ed95b64 100644
--- a/react-ui/src/stores/api.store.ts
+++ b/react-ui/src/stores/api.store.ts
@@ -1,18 +1,19 @@
-import { getCookieValue } from '@helper/coookie';
-import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
+import { getCookieValue } from '@helper/coookie'
+import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
 
 // initialize an empty api service that we'll inject endpoints into later as needed
 export const emptySplitApi = createApi({
-  baseQuery: fetchBaseQuery({
-    baseUrl: '/api', prepareHeaders: (headers) => {
-      const token = getCookieValue('token');
+    baseQuery: fetchBaseQuery({
+        baseUrl: '/api',
+        prepareHeaders: (headers) => {
+            const token = getCookieValue('token')
 
-      if (token) {
-        headers.set('authorize', `${token}`)
-      }
+            if (token) {
+                headers.set('authorize', `${token}`)
+            }
 
-      return headers
-    },
-  }),
-  endpoints: () => ({}),
-})
\ No newline at end of file
+            return headers
+        },
+    }),
+    endpoints: () => ({}),
+})
diff --git a/react-ui/src/stores/index.ts b/react-ui/src/stores/index.ts
index e9a18016b..9b738e47f 100644
--- a/react-ui/src/stores/index.ts
+++ b/react-ui/src/stores/index.ts
@@ -5,20 +5,31 @@ import { setupListeners } from '@reduxjs/toolkit/query'
 import { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from 'redux-persist'
 import persistStore from 'redux-persist/es/persistStore'
 import { emptySplitApi } from './api.store'
-import { rtkQueryErrorLogger } from './middleware/devLogging.middleware'
+import { rtkQueryErrorLogger } from './middleware/api.listener.middleware'
 import { listenerMiddleware } from './middleware/listener.middleware'
 import persistedReducer from './persist.store'
 
-
 export const store = configureStore({
-  reducer: persistedReducer,
-  middleware: (getDefaultMiddleware) =>
-    getDefaultMiddleware({
-      serializableCheck: {
-        ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER, FETCH_DEVICE_ACTION + '/fulfilled', FETCH_MNE_ACTION + '/fulfilled', 'routine/addRoutine'],
-        ignoredPaths: ['routine.thunks']
-      },
-    }).prepend(listenerMiddleware.middleware).concat(emptySplitApi.middleware, rtkQueryErrorLogger),
+    reducer: persistedReducer,
+    middleware: (getDefaultMiddleware) =>
+        getDefaultMiddleware({
+            serializableCheck: {
+                ignoredActions: [
+                    FLUSH,
+                    REHYDRATE,
+                    PAUSE,
+                    PERSIST,
+                    PURGE,
+                    REGISTER,
+                    FETCH_DEVICE_ACTION + '/fulfilled',
+                    FETCH_MNE_ACTION + '/fulfilled',
+                    'routine/addRoutine',
+                ],
+                ignoredPaths: ['routine.thunks'],
+            },
+        })
+            .prepend(listenerMiddleware.middleware)
+            .concat(emptySplitApi.middleware, rtkQueryErrorLogger),
 })
 
 export const persistor = persistStore(store)
@@ -26,6 +37,6 @@ export const persistor = persistStore(store)
 // TODO
 setupListeners(store.dispatch)
 
-export type RootState = ReturnType<typeof store.getState>;
-export type MyState = ReturnType<typeof persistedReducer>;
-export type AppDispatch = typeof store.dispatch;
\ No newline at end of file
+export type RootState = ReturnType<typeof store.getState>
+export type MyState = ReturnType<typeof persistedReducer>
+export type AppDispatch = typeof store.dispatch
diff --git a/react-ui/src/stores/middleware/api.listener.middleware.ts b/react-ui/src/stores/middleware/api.listener.middleware.ts
new file mode 100644
index 000000000..b6a1a713e
--- /dev/null
+++ b/react-ui/src/stores/middleware/api.listener.middleware.ts
@@ -0,0 +1,26 @@
+import { isRejectedWithValue } from '@reduxjs/toolkit'
+import { setToken } from '@shared/reducer/user.reducer'
+import { toast } from 'react-toastify'
+import { Middleware, MiddlewareAPI } from 'redux'
+
+/**
+ * Log a warning and show a toast!
+ */
+export const rtkQueryErrorLogger: Middleware = (api: MiddlewareAPI) => (next) => (action) => {
+    if (!isRejectedWithValue(action)) {
+        return next(action)
+    }
+
+    const errorCode = action.payload.status || -1
+    switch (errorCode) {
+        case 403:
+        case 401:
+            api.dispatch(setToken(null))
+            toast.info('Your session has expired. Please login again', {})
+            break
+        default:
+            console.warn('An unkown error code returned: ' + errorCode)
+    }
+
+    return next(action)
+}
diff --git a/react-ui/src/stores/middleware/devLogging.middleware.ts b/react-ui/src/stores/middleware/devLogging.middleware.ts
deleted file mode 100644
index 2e58a2ea5..000000000
--- a/react-ui/src/stores/middleware/devLogging.middleware.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { isRejectedWithValue } from "@reduxjs/toolkit"
-import { toast } from "react-toastify"
-import { Middleware, MiddlewareAPI } from "redux"
-
-const environment = process.env.NODE_ENV || 'prod';
-
-// TODO check env before creation of this middleware
-
-/**
- * Log a warning and show a toast!
- */
-export const rtkQueryErrorLogger: Middleware = (api: MiddlewareAPI) => (next) => (action) => {
-    // RTK Query uses `createAsyncThunk` from redux-toolkit under the hood, so we're able to utilize these matchers!
-    if (environment !== 'prod' && isRejectedWithValue(action)) {
-        console.warn(action.error)
-        toast.warn('data' in action.error
-            ? (action.error.data as { message: string }).message
-            : action.error.message, {
-
-        })
-    }
-
-    return next(action)
-}
\ No newline at end of file
-- 
GitLab