From 6c0cebae083c6ba37e421a9e6d684e040935cbd2 Mon Sep 17 00:00:00 2001
From: Malte Bauch <malte.bauch@stud.h-da.de>
Date: Mon, 24 Jan 2022 14:41:17 +0100
Subject: [PATCH] deleted v1alpha folder structure

---
 .../gnmi/proto/collector/collector.pb.go      |  220 --
 .../gnmi/proto/collector/collector_grpc.pb.go |  105 -
 .../openconfig/gnmi/proto/gnmi/gnmi.pb.go     | 3197 ----------------
 .../gnmi/proto/gnmi/gnmi_grpc.pb.go           |  282 --
 .../gnmi/proto/gnmi_ext/gnmi_ext.pb.go        |  763 ----
 .../openconfig/gnmi/proto/target/target.pb.go |  431 ---
 .../gnmi/testing/fake/proto/fake.pb.go        | 2541 ------------
 .../gnmi/testing/fake/proto/fake_grpc.pb.go   |  179 -
 go/gosdn/core/core.pb.go                      |  400 +-
 go/gosdn/core/core.pb.gw.go                   |  126 +-
 go/gosdn/core/core_grpc.pb.go                 |  110 +-
 go/gosdn/core/v1alpha/core.pb.go              |  695 ----
 go/gosdn/core/v1alpha/core.pb.gw.go           |  367 --
 go/gosdn/core/v1alpha/core_grpc.pb.go         |  173 -
 go/gosdn/csbi/csbi.pb.go                      |  461 ++-
 go/gosdn/csbi/csbi_grpc.pb.go                 |  140 +-
 go/gosdn/csbi/v1alpha/csbi.pb.go              | 1085 ------
 go/gosdn/csbi/v1alpha/csbi_grpc.pb.go         |  273 --
 go/gosdn/pnd/pnd.pb.go                        | 2371 ++++++++----
 go/gosdn/pnd/pnd.pb.gw.go                     |  634 ++-
 go/gosdn/pnd/pnd_grpc.pb.go                   |  350 +-
 go/gosdn/pnd/v1alpha/pnd.pb.go                | 3409 -----------------
 go/gosdn/pnd/v1alpha/pnd.pb.gw.go             | 1739 ---------
 go/gosdn/pnd/v1alpha/pnd_grpc.pb.go           |  547 ---
 go/gosdn/southbound/southbound.pb.go          |   66 +-
 go/gosdn/southbound/v1alpha/southbound.pb.go  |  223 --
 go/gosdn/transport/transport.pb.go            |  145 +-
 go/gosdn/transport/v1alpha/transport.pb.go    |  421 --
 openapiv2/gosdn_northbound.swagger.json       |   28 +-
 proto/gosdn/core/{v1alpha => }/core.proto     |    2 +-
 proto/gosdn/csbi/{v1alpha => }/csbi.proto     |    2 +-
 proto/gosdn/pnd/{v1alpha => }/pnd.proto       |   23 +-
 .../southbound/{v1alpha => }/southbound.proto |    0
 .../transport/{v1alpha => }/transport.proto   |    4 +-
 34 files changed, 3080 insertions(+), 18432 deletions(-)
 delete mode 100644 go/github.com/openconfig/gnmi/proto/collector/collector.pb.go
 delete mode 100644 go/github.com/openconfig/gnmi/proto/collector/collector_grpc.pb.go
 delete mode 100644 go/github.com/openconfig/gnmi/proto/gnmi/gnmi.pb.go
 delete mode 100644 go/github.com/openconfig/gnmi/proto/gnmi/gnmi_grpc.pb.go
 delete mode 100644 go/github.com/openconfig/gnmi/proto/gnmi_ext/gnmi_ext.pb.go
 delete mode 100644 go/github.com/openconfig/gnmi/proto/target/target.pb.go
 delete mode 100644 go/github.com/openconfig/gnmi/testing/fake/proto/fake.pb.go
 delete mode 100644 go/github.com/openconfig/gnmi/testing/fake/proto/fake_grpc.pb.go
 delete mode 100644 go/gosdn/core/v1alpha/core.pb.go
 delete mode 100644 go/gosdn/core/v1alpha/core.pb.gw.go
 delete mode 100644 go/gosdn/core/v1alpha/core_grpc.pb.go
 delete mode 100644 go/gosdn/csbi/v1alpha/csbi.pb.go
 delete mode 100644 go/gosdn/csbi/v1alpha/csbi_grpc.pb.go
 delete mode 100644 go/gosdn/pnd/v1alpha/pnd.pb.go
 delete mode 100644 go/gosdn/pnd/v1alpha/pnd.pb.gw.go
 delete mode 100644 go/gosdn/pnd/v1alpha/pnd_grpc.pb.go
 delete mode 100644 go/gosdn/southbound/v1alpha/southbound.pb.go
 delete mode 100644 go/gosdn/transport/v1alpha/transport.pb.go
 rename proto/gosdn/core/{v1alpha => }/core.proto (97%)
 rename proto/gosdn/csbi/{v1alpha => }/csbi.proto (97%)
 rename proto/gosdn/pnd/{v1alpha => }/pnd.proto (97%)
 rename proto/gosdn/southbound/{v1alpha => }/southbound.proto (100%)
 rename proto/gosdn/transport/{v1alpha => }/transport.proto (93%)

diff --git a/go/github.com/openconfig/gnmi/proto/collector/collector.pb.go b/go/github.com/openconfig/gnmi/proto/collector/collector.pb.go
deleted file mode 100644
index ea7fff2..0000000
--- a/go/github.com/openconfig/gnmi/proto/collector/collector.pb.go
+++ /dev/null
@@ -1,220 +0,0 @@
-//
-// Copyright 2020 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.27.1
-// 	protoc        (unknown)
-// source: github.com/openconfig/gnmi/proto/collector/collector.proto
-
-package gnmi
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type ReconnectRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Target []string `protobuf:"bytes,1,rep,name=target,proto3" json:"target,omitempty"` // List of targets to reconnect.
-}
-
-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)
-	}
-}
-
-func (x *ReconnectRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use ReconnectRequest.ProtoReflect.Descriptor instead.
-func (*ReconnectRequest) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *ReconnectRequest) GetTarget() []string {
-	if x != nil {
-		return x.Target
-	}
-	return nil
-}
-
-type Nil struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-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)
-	}
-}
-
-func (x *Nil) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Nil.ProtoReflect.Descriptor instead.
-func (*Nil) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDescGZIP(), []int{1}
-}
-
-var File_github_com_openconfig_gnmi_proto_collector_collector_proto protoreflect.FileDescriptor
-
-var file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDesc = []byte{
-	0x0a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2f, 0x63, 0x6f, 0x6c,
-	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x67, 0x6e,
-	0x6d, 0x69, 0x22, 0x2a, 0x0a, 0x10, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
-	0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x05,
-	0x0a, 0x03, 0x4e, 0x69, 0x6c, 0x32, 0x3d, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
-	0x6f, 0x72, 0x12, 0x30, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12,
-	0x16, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x09, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x4e,
-	0x69, 0x6c, 0x22, 0x00, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
-	0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e,
-	0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
-	0x6f, 0x72, 0x3b, 0x67, 0x6e, 0x6d, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDescOnce sync.Once
-	file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDescData = file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDesc
-)
-
-func file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDescGZIP() []byte {
-	file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDescOnce.Do(func() {
-		file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDescData)
-	})
-	return file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDescData
-}
-
-var file_github_com_openconfig_gnmi_proto_collector_collector_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_github_com_openconfig_gnmi_proto_collector_collector_proto_goTypes = []interface{}{
-	(*ReconnectRequest)(nil), // 0: gnmi.ReconnectRequest
-	(*Nil)(nil),              // 1: gnmi.Nil
-}
-var file_github_com_openconfig_gnmi_proto_collector_collector_proto_depIdxs = []int32{
-	0, // 0: gnmi.Collector.Reconnect:input_type -> gnmi.ReconnectRequest
-	1, // 1: gnmi.Collector.Reconnect:output_type -> gnmi.Nil
-	1, // [1:2] is the sub-list for method output_type
-	0, // [0:1] is the sub-list for method input_type
-	0, // [0:0] is the sub-list for extension type_name
-	0, // [0:0] is the sub-list for extension extendee
-	0, // [0:0] is the sub-list for field type_name
-}
-
-func init() { file_github_com_openconfig_gnmi_proto_collector_collector_proto_init() }
-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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   2,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_github_com_openconfig_gnmi_proto_collector_collector_proto_goTypes,
-		DependencyIndexes: file_github_com_openconfig_gnmi_proto_collector_collector_proto_depIdxs,
-		MessageInfos:      file_github_com_openconfig_gnmi_proto_collector_collector_proto_msgTypes,
-	}.Build()
-	File_github_com_openconfig_gnmi_proto_collector_collector_proto = out.File
-	file_github_com_openconfig_gnmi_proto_collector_collector_proto_rawDesc = nil
-	file_github_com_openconfig_gnmi_proto_collector_collector_proto_goTypes = nil
-	file_github_com_openconfig_gnmi_proto_collector_collector_proto_depIdxs = nil
-}
diff --git a/go/github.com/openconfig/gnmi/proto/collector/collector_grpc.pb.go b/go/github.com/openconfig/gnmi/proto/collector/collector_grpc.pb.go
deleted file mode 100644
index e5f684d..0000000
--- a/go/github.com/openconfig/gnmi/proto/collector/collector_grpc.pb.go
+++ /dev/null
@@ -1,105 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package gnmi
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// CollectorClient is the client API for Collector service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type CollectorClient interface {
-	// Reconnect requests that the existing connections for one or more specified
-	// targets will be stopped and new connections established.
-	Reconnect(ctx context.Context, in *ReconnectRequest, opts ...grpc.CallOption) (*Nil, error)
-}
-
-type collectorClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewCollectorClient(cc grpc.ClientConnInterface) CollectorClient {
-	return &collectorClient{cc}
-}
-
-func (c *collectorClient) Reconnect(ctx context.Context, in *ReconnectRequest, opts ...grpc.CallOption) (*Nil, error) {
-	out := new(Nil)
-	err := c.cc.Invoke(ctx, "/gnmi.Collector/Reconnect", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// CollectorServer is the server API for Collector service.
-// All implementations must embed UnimplementedCollectorServer
-// for forward compatibility
-type CollectorServer interface {
-	// Reconnect requests that the existing connections for one or more specified
-	// targets will be stopped and new connections established.
-	Reconnect(context.Context, *ReconnectRequest) (*Nil, error)
-	mustEmbedUnimplementedCollectorServer()
-}
-
-// UnimplementedCollectorServer must be embedded to have forward compatible implementations.
-type UnimplementedCollectorServer struct {
-}
-
-func (UnimplementedCollectorServer) Reconnect(context.Context, *ReconnectRequest) (*Nil, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Reconnect not implemented")
-}
-func (UnimplementedCollectorServer) mustEmbedUnimplementedCollectorServer() {}
-
-// UnsafeCollectorServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to CollectorServer will
-// result in compilation errors.
-type UnsafeCollectorServer interface {
-	mustEmbedUnimplementedCollectorServer()
-}
-
-func RegisterCollectorServer(s grpc.ServiceRegistrar, srv CollectorServer) {
-	s.RegisterService(&Collector_ServiceDesc, srv)
-}
-
-func _Collector_Reconnect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(ReconnectRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CollectorServer).Reconnect(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gnmi.Collector/Reconnect",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CollectorServer).Reconnect(ctx, req.(*ReconnectRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-// Collector_ServiceDesc is the grpc.ServiceDesc for Collector service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var Collector_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "gnmi.Collector",
-	HandlerType: (*CollectorServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "Reconnect",
-			Handler:    _Collector_Reconnect_Handler,
-		},
-	},
-	Streams:  []grpc.StreamDesc{},
-	Metadata: "github.com/openconfig/gnmi/proto/collector/collector.proto",
-}
diff --git a/go/github.com/openconfig/gnmi/proto/gnmi/gnmi.pb.go b/go/github.com/openconfig/gnmi/proto/gnmi/gnmi.pb.go
deleted file mode 100644
index 62c9e5e..0000000
--- a/go/github.com/openconfig/gnmi/proto/gnmi/gnmi.pb.go
+++ /dev/null
@@ -1,3197 +0,0 @@
-//
-// Copyright 2016 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.27.1
-// 	protoc        (unknown)
-// source: github.com/openconfig/gnmi/proto/gnmi/gnmi.proto
-
-// Package gNMI defines a service specification for the gRPC Network Management
-// Interface. This interface is defined to be a standard interface via which
-// a network management system ("client") can subscribe to state values,
-// retrieve snapshots of state information, and manipulate the state of a data
-// tree supported by a device ("target").
-//
-// This document references the gNMI Specification which can be found at
-// http://github.com/openconfig/reference/blob/master/rpc/gnmi
-
-package gnmi
-
-import (
-	gnmi_ext "github.com/openconfig/gnmi/proto/gnmi_ext"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	descriptorpb "google.golang.org/protobuf/types/descriptorpb"
-	anypb "google.golang.org/protobuf/types/known/anypb"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// Encoding defines the value encoding formats that are supported by the gNMI
-// protocol. These encodings are used by both the client (when sending Set
-// messages to modify the state of the target) and the target when serializing
-// data to be returned to the client (in both Subscribe and Get RPCs).
-// Reference: gNMI Specification Section 2.3
-type Encoding int32
-
-const (
-	Encoding_JSON      Encoding = 0 // JSON encoded text.
-	Encoding_BYTES     Encoding = 1 // Arbitrarily encoded bytes.
-	Encoding_PROTO     Encoding = 2 // Encoded according to out-of-band agreed Protobuf.
-	Encoding_ASCII     Encoding = 3 // ASCII text of an out-of-band agreed format.
-	Encoding_JSON_IETF Encoding = 4 // JSON encoded text as per RFC7951.
-)
-
-// Enum value maps for Encoding.
-var (
-	Encoding_name = map[int32]string{
-		0: "JSON",
-		1: "BYTES",
-		2: "PROTO",
-		3: "ASCII",
-		4: "JSON_IETF",
-	}
-	Encoding_value = map[string]int32{
-		"JSON":      0,
-		"BYTES":     1,
-		"PROTO":     2,
-		"ASCII":     3,
-		"JSON_IETF": 4,
-	}
-)
-
-func (x Encoding) Enum() *Encoding {
-	p := new(Encoding)
-	*p = x
-	return p
-}
-
-func (x Encoding) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Encoding) Descriptor() protoreflect.EnumDescriptor {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_enumTypes[0].Descriptor()
-}
-
-func (Encoding) Type() protoreflect.EnumType {
-	return &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_enumTypes[0]
-}
-
-func (x Encoding) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Encoding.Descriptor instead.
-func (Encoding) EnumDescriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{0}
-}
-
-// SubscriptionMode is the mode of the subscription, specifying how the
-// target must return values in a subscription.
-// Reference: gNMI Specification Section 3.5.1.3
-type SubscriptionMode int32
-
-const (
-	SubscriptionMode_TARGET_DEFINED SubscriptionMode = 0 // The target selects the relevant mode for each element.
-	SubscriptionMode_ON_CHANGE      SubscriptionMode = 1 // The target sends an update on element value change.
-	SubscriptionMode_SAMPLE         SubscriptionMode = 2 // The target samples values according to the interval.
-)
-
-// Enum value maps for SubscriptionMode.
-var (
-	SubscriptionMode_name = map[int32]string{
-		0: "TARGET_DEFINED",
-		1: "ON_CHANGE",
-		2: "SAMPLE",
-	}
-	SubscriptionMode_value = map[string]int32{
-		"TARGET_DEFINED": 0,
-		"ON_CHANGE":      1,
-		"SAMPLE":         2,
-	}
-)
-
-func (x SubscriptionMode) Enum() *SubscriptionMode {
-	p := new(SubscriptionMode)
-	*p = x
-	return p
-}
-
-func (x SubscriptionMode) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (SubscriptionMode) Descriptor() protoreflect.EnumDescriptor {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_enumTypes[1].Descriptor()
-}
-
-func (SubscriptionMode) Type() protoreflect.EnumType {
-	return &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_enumTypes[1]
-}
-
-func (x SubscriptionMode) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use SubscriptionMode.Descriptor instead.
-func (SubscriptionMode) EnumDescriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{1}
-}
-
-// Mode of the subscription.
-type SubscriptionList_Mode int32
-
-const (
-	SubscriptionList_STREAM SubscriptionList_Mode = 0 // Values streamed by the target (Sec. 3.5.1.5.2).
-	SubscriptionList_ONCE   SubscriptionList_Mode = 1 // Values sent once-off by the target (Sec. 3.5.1.5.1).
-	SubscriptionList_POLL   SubscriptionList_Mode = 2 // Values sent in response to a poll request (Sec. 3.5.1.5.3).
-)
-
-// Enum value maps for SubscriptionList_Mode.
-var (
-	SubscriptionList_Mode_name = map[int32]string{
-		0: "STREAM",
-		1: "ONCE",
-		2: "POLL",
-	}
-	SubscriptionList_Mode_value = map[string]int32{
-		"STREAM": 0,
-		"ONCE":   1,
-		"POLL":   2,
-	}
-)
-
-func (x SubscriptionList_Mode) Enum() *SubscriptionList_Mode {
-	p := new(SubscriptionList_Mode)
-	*p = x
-	return p
-}
-
-func (x SubscriptionList_Mode) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (SubscriptionList_Mode) Descriptor() protoreflect.EnumDescriptor {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_enumTypes[2].Descriptor()
-}
-
-func (SubscriptionList_Mode) Type() protoreflect.EnumType {
-	return &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_enumTypes[2]
-}
-
-func (x SubscriptionList_Mode) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use SubscriptionList_Mode.Descriptor instead.
-func (SubscriptionList_Mode) EnumDescriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{12, 0}
-}
-
-// The operation that was associated with the Path specified.
-type UpdateResult_Operation int32
-
-const (
-	UpdateResult_INVALID UpdateResult_Operation = 0
-	UpdateResult_DELETE  UpdateResult_Operation = 1 // The result relates to a delete of Path.
-	UpdateResult_REPLACE UpdateResult_Operation = 2 // The result relates to a replace of Path.
-	UpdateResult_UPDATE  UpdateResult_Operation = 3 // The result relates to an update of Path.
-)
-
-// Enum value maps for UpdateResult_Operation.
-var (
-	UpdateResult_Operation_name = map[int32]string{
-		0: "INVALID",
-		1: "DELETE",
-		2: "REPLACE",
-		3: "UPDATE",
-	}
-	UpdateResult_Operation_value = map[string]int32{
-		"INVALID": 0,
-		"DELETE":  1,
-		"REPLACE": 2,
-		"UPDATE":  3,
-	}
-)
-
-func (x UpdateResult_Operation) Enum() *UpdateResult_Operation {
-	p := new(UpdateResult_Operation)
-	*p = x
-	return p
-}
-
-func (x UpdateResult_Operation) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (UpdateResult_Operation) Descriptor() protoreflect.EnumDescriptor {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_enumTypes[3].Descriptor()
-}
-
-func (UpdateResult_Operation) Type() protoreflect.EnumType {
-	return &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_enumTypes[3]
-}
-
-func (x UpdateResult_Operation) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use UpdateResult_Operation.Descriptor instead.
-func (UpdateResult_Operation) EnumDescriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{19, 0}
-}
-
-// Type of elements within the data tree.
-type GetRequest_DataType int32
-
-const (
-	GetRequest_ALL    GetRequest_DataType = 0 // All data elements.
-	GetRequest_CONFIG GetRequest_DataType = 1 // Config (rw) only elements.
-	GetRequest_STATE  GetRequest_DataType = 2 // State (ro) only elements.
-	// Data elements marked in the schema as operational. This refers to data
-	// elements whose value relates to the state of processes or interactions
-	// running on the device.
-	GetRequest_OPERATIONAL GetRequest_DataType = 3
-)
-
-// Enum value maps for GetRequest_DataType.
-var (
-	GetRequest_DataType_name = map[int32]string{
-		0: "ALL",
-		1: "CONFIG",
-		2: "STATE",
-		3: "OPERATIONAL",
-	}
-	GetRequest_DataType_value = map[string]int32{
-		"ALL":         0,
-		"CONFIG":      1,
-		"STATE":       2,
-		"OPERATIONAL": 3,
-	}
-)
-
-func (x GetRequest_DataType) Enum() *GetRequest_DataType {
-	p := new(GetRequest_DataType)
-	*p = x
-	return p
-}
-
-func (x GetRequest_DataType) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (GetRequest_DataType) Descriptor() protoreflect.EnumDescriptor {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_enumTypes[4].Descriptor()
-}
-
-func (GetRequest_DataType) Type() protoreflect.EnumType {
-	return &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_enumTypes[4]
-}
-
-func (x GetRequest_DataType) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use GetRequest_DataType.Descriptor instead.
-func (GetRequest_DataType) EnumDescriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{20, 0}
-}
-
-// Notification is a re-usable message that is used to encode data from the
-// target to the client. A Notification carries two types of changes to the data
-// tree:
-//  - Deleted values (delete) - a set of paths that have been removed from the
-//    data tree.
-//  - Updated values (update) - a set of path-value pairs indicating the path
-//    whose value has changed in the data tree.
-// Reference: gNMI Specification Section 2.1
-type Notification 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.
-	Prefix    *Path `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"`        // Prefix used for paths in the message.
-	// An alias for the path specified in the prefix field.
-	// Reference: gNMI Specification Section 2.4.2
-	Alias  string    `protobuf:"bytes,3,opt,name=alias,proto3" json:"alias,omitempty"`
-	Update []*Update `protobuf:"bytes,4,rep,name=update,proto3" json:"update,omitempty"` // Data elements that have changed values.
-	Delete []*Path   `protobuf:"bytes,5,rep,name=delete,proto3" json:"delete,omitempty"` // Data elements that have been deleted.
-	// This notification contains a set of paths that are always updated together
-	// referenced by a globally unique prefix.
-	Atomic bool `protobuf:"varint,6,opt,name=atomic,proto3" json:"atomic,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *Notification) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Notification.ProtoReflect.Descriptor instead.
-func (*Notification) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Notification) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *Notification) GetPrefix() *Path {
-	if x != nil {
-		return x.Prefix
-	}
-	return nil
-}
-
-func (x *Notification) GetAlias() string {
-	if x != nil {
-		return x.Alias
-	}
-	return ""
-}
-
-func (x *Notification) GetUpdate() []*Update {
-	if x != nil {
-		return x.Update
-	}
-	return nil
-}
-
-func (x *Notification) GetDelete() []*Path {
-	if x != nil {
-		return x.Delete
-	}
-	return nil
-}
-
-func (x *Notification) GetAtomic() bool {
-	if x != nil {
-		return x.Atomic
-	}
-	return false
-}
-
-// Update is a re-usable message that is used to store a particular Path,
-// Value pair.
-// Reference: gNMI Specification Section 2.1
-type Update struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Path *Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` // The path (key) for the update.
-	// Deprecated: Do not use.
-	Value      *Value      `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`            // The value (value) for the update.
-	Val        *TypedValue `protobuf:"bytes,3,opt,name=val,proto3" json:"val,omitempty"`                // The explicitly typed update value.
-	Duplicates uint32      `protobuf:"varint,4,opt,name=duplicates,proto3" json:"duplicates,omitempty"` // Number of coalesced duplicates.
-}
-
-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)
-	}
-}
-
-func (x *Update) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Update.ProtoReflect.Descriptor instead.
-func (*Update) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *Update) GetPath() *Path {
-	if x != nil {
-		return x.Path
-	}
-	return nil
-}
-
-// Deprecated: Do not use.
-func (x *Update) GetValue() *Value {
-	if x != nil {
-		return x.Value
-	}
-	return nil
-}
-
-func (x *Update) GetVal() *TypedValue {
-	if x != nil {
-		return x.Val
-	}
-	return nil
-}
-
-func (x *Update) GetDuplicates() uint32 {
-	if x != nil {
-		return x.Duplicates
-	}
-	return 0
-}
-
-// TypedValue is used to encode a value being sent between the client and
-// target (originated by either entity).
-type TypedValue struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// One of the fields within the val oneof is populated with the value
-	// of the update. The type of the value being included in the Update
-	// determines which field should be populated. In the case that the
-	// encoding is a particular form of the base protobuf type, a specific
-	// field is used to store the value (e.g., json_val).
-	//
-	// Types that are assignable to Value:
-	//	*TypedValue_StringVal
-	//	*TypedValue_IntVal
-	//	*TypedValue_UintVal
-	//	*TypedValue_BoolVal
-	//	*TypedValue_BytesVal
-	//	*TypedValue_FloatVal
-	//	*TypedValue_DecimalVal
-	//	*TypedValue_LeaflistVal
-	//	*TypedValue_AnyVal
-	//	*TypedValue_JsonVal
-	//	*TypedValue_JsonIetfVal
-	//	*TypedValue_AsciiVal
-	//	*TypedValue_ProtoBytes
-	Value isTypedValue_Value `protobuf_oneof:"value"`
-}
-
-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)
-	}
-}
-
-func (x *TypedValue) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TypedValue.ProtoReflect.Descriptor instead.
-func (*TypedValue) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{2}
-}
-
-func (m *TypedValue) GetValue() isTypedValue_Value {
-	if m != nil {
-		return m.Value
-	}
-	return nil
-}
-
-func (x *TypedValue) GetStringVal() string {
-	if x, ok := x.GetValue().(*TypedValue_StringVal); ok {
-		return x.StringVal
-	}
-	return ""
-}
-
-func (x *TypedValue) GetIntVal() int64 {
-	if x, ok := x.GetValue().(*TypedValue_IntVal); ok {
-		return x.IntVal
-	}
-	return 0
-}
-
-func (x *TypedValue) GetUintVal() uint64 {
-	if x, ok := x.GetValue().(*TypedValue_UintVal); ok {
-		return x.UintVal
-	}
-	return 0
-}
-
-func (x *TypedValue) GetBoolVal() bool {
-	if x, ok := x.GetValue().(*TypedValue_BoolVal); ok {
-		return x.BoolVal
-	}
-	return false
-}
-
-func (x *TypedValue) GetBytesVal() []byte {
-	if x, ok := x.GetValue().(*TypedValue_BytesVal); ok {
-		return x.BytesVal
-	}
-	return nil
-}
-
-func (x *TypedValue) GetFloatVal() float32 {
-	if x, ok := x.GetValue().(*TypedValue_FloatVal); ok {
-		return x.FloatVal
-	}
-	return 0
-}
-
-func (x *TypedValue) GetDecimalVal() *Decimal64 {
-	if x, ok := x.GetValue().(*TypedValue_DecimalVal); ok {
-		return x.DecimalVal
-	}
-	return nil
-}
-
-func (x *TypedValue) GetLeaflistVal() *ScalarArray {
-	if x, ok := x.GetValue().(*TypedValue_LeaflistVal); ok {
-		return x.LeaflistVal
-	}
-	return nil
-}
-
-func (x *TypedValue) GetAnyVal() *anypb.Any {
-	if x, ok := x.GetValue().(*TypedValue_AnyVal); ok {
-		return x.AnyVal
-	}
-	return nil
-}
-
-func (x *TypedValue) GetJsonVal() []byte {
-	if x, ok := x.GetValue().(*TypedValue_JsonVal); ok {
-		return x.JsonVal
-	}
-	return nil
-}
-
-func (x *TypedValue) GetJsonIetfVal() []byte {
-	if x, ok := x.GetValue().(*TypedValue_JsonIetfVal); ok {
-		return x.JsonIetfVal
-	}
-	return nil
-}
-
-func (x *TypedValue) GetAsciiVal() string {
-	if x, ok := x.GetValue().(*TypedValue_AsciiVal); ok {
-		return x.AsciiVal
-	}
-	return ""
-}
-
-func (x *TypedValue) GetProtoBytes() []byte {
-	if x, ok := x.GetValue().(*TypedValue_ProtoBytes); ok {
-		return x.ProtoBytes
-	}
-	return nil
-}
-
-type isTypedValue_Value interface {
-	isTypedValue_Value()
-}
-
-type TypedValue_StringVal struct {
-	StringVal string `protobuf:"bytes,1,opt,name=string_val,json=stringVal,proto3,oneof"` // String value.
-}
-
-type TypedValue_IntVal struct {
-	IntVal int64 `protobuf:"varint,2,opt,name=int_val,json=intVal,proto3,oneof"` // Integer value.
-}
-
-type TypedValue_UintVal struct {
-	UintVal uint64 `protobuf:"varint,3,opt,name=uint_val,json=uintVal,proto3,oneof"` // Unsigned integer value.
-}
-
-type TypedValue_BoolVal struct {
-	BoolVal bool `protobuf:"varint,4,opt,name=bool_val,json=boolVal,proto3,oneof"` // Bool value.
-}
-
-type TypedValue_BytesVal struct {
-	BytesVal []byte `protobuf:"bytes,5,opt,name=bytes_val,json=bytesVal,proto3,oneof"` // Arbitrary byte sequence value.
-}
-
-type TypedValue_FloatVal struct {
-	FloatVal float32 `protobuf:"fixed32,6,opt,name=float_val,json=floatVal,proto3,oneof"` // Floating point value.
-}
-
-type TypedValue_DecimalVal struct {
-	DecimalVal *Decimal64 `protobuf:"bytes,7,opt,name=decimal_val,json=decimalVal,proto3,oneof"` // Decimal64 encoded value.
-}
-
-type TypedValue_LeaflistVal struct {
-	LeaflistVal *ScalarArray `protobuf:"bytes,8,opt,name=leaflist_val,json=leaflistVal,proto3,oneof"` // Mixed type scalar array value.
-}
-
-type TypedValue_AnyVal struct {
-	AnyVal *anypb.Any `protobuf:"bytes,9,opt,name=any_val,json=anyVal,proto3,oneof"` // protobuf.Any encoded bytes.
-}
-
-type TypedValue_JsonVal struct {
-	JsonVal []byte `protobuf:"bytes,10,opt,name=json_val,json=jsonVal,proto3,oneof"` // JSON-encoded text.
-}
-
-type TypedValue_JsonIetfVal struct {
-	JsonIetfVal []byte `protobuf:"bytes,11,opt,name=json_ietf_val,json=jsonIetfVal,proto3,oneof"` // JSON-encoded text per RFC7951.
-}
-
-type TypedValue_AsciiVal struct {
-	AsciiVal string `protobuf:"bytes,12,opt,name=ascii_val,json=asciiVal,proto3,oneof"` // Arbitrary ASCII text.
-}
-
-type TypedValue_ProtoBytes struct {
-	// Protobuf binary encoded bytes. The message type is not included.
-	// See the specification at
-	// github.com/openconfig/reference/blob/master/rpc/gnmi/protobuf-vals.md
-	// for a complete specification.
-	ProtoBytes []byte `protobuf:"bytes,13,opt,name=proto_bytes,json=protoBytes,proto3,oneof"`
-}
-
-func (*TypedValue_StringVal) isTypedValue_Value() {}
-
-func (*TypedValue_IntVal) isTypedValue_Value() {}
-
-func (*TypedValue_UintVal) isTypedValue_Value() {}
-
-func (*TypedValue_BoolVal) isTypedValue_Value() {}
-
-func (*TypedValue_BytesVal) isTypedValue_Value() {}
-
-func (*TypedValue_FloatVal) isTypedValue_Value() {}
-
-func (*TypedValue_DecimalVal) isTypedValue_Value() {}
-
-func (*TypedValue_LeaflistVal) isTypedValue_Value() {}
-
-func (*TypedValue_AnyVal) isTypedValue_Value() {}
-
-func (*TypedValue_JsonVal) isTypedValue_Value() {}
-
-func (*TypedValue_JsonIetfVal) isTypedValue_Value() {}
-
-func (*TypedValue_AsciiVal) isTypedValue_Value() {}
-
-func (*TypedValue_ProtoBytes) isTypedValue_Value() {}
-
-// Path encodes a data tree path as a series of repeated strings, with
-// each element of the path representing a data tree node name and the
-// associated attributes.
-// Reference: gNMI Specification Section 2.2.2.
-type Path struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Elements of the path are no longer encoded as a string, but rather within
-	// the elem field as a PathElem message.
-	//
-	// Deprecated: Do not use.
-	Element []string    `protobuf:"bytes,1,rep,name=element,proto3" json:"element,omitempty"`
-	Origin  string      `protobuf:"bytes,2,opt,name=origin,proto3" json:"origin,omitempty"` // Label to disambiguate path.
-	Elem    []*PathElem `protobuf:"bytes,3,rep,name=elem,proto3" json:"elem,omitempty"`     // Elements of the path.
-	Target  string      `protobuf:"bytes,4,opt,name=target,proto3" json:"target,omitempty"` // The name of the target
-}
-
-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)
-	}
-}
-
-func (x *Path) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Path.ProtoReflect.Descriptor instead.
-func (*Path) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{3}
-}
-
-// Deprecated: Do not use.
-func (x *Path) GetElement() []string {
-	if x != nil {
-		return x.Element
-	}
-	return nil
-}
-
-func (x *Path) GetOrigin() string {
-	if x != nil {
-		return x.Origin
-	}
-	return ""
-}
-
-func (x *Path) GetElem() []*PathElem {
-	if x != nil {
-		return x.Elem
-	}
-	return nil
-}
-
-func (x *Path) GetTarget() string {
-	if x != nil {
-		return x.Target
-	}
-	return ""
-}
-
-// PathElem encodes an element of a gNMI path, along with any attributes (keys)
-// that may be associated with it.
-// Reference: gNMI Specification Section 2.2.2.
-type PathElem struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Name string            `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`                                                                                       // The name of the element in the path.
-	Key  map[string]string `protobuf:"bytes,2,rep,name=key,proto3" json:"key,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Map of key (attribute) name to value.
-}
-
-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)
-	}
-}
-
-func (x *PathElem) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use PathElem.ProtoReflect.Descriptor instead.
-func (*PathElem) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *PathElem) GetName() string {
-	if x != nil {
-		return x.Name
-	}
-	return ""
-}
-
-func (x *PathElem) GetKey() map[string]string {
-	if x != nil {
-		return x.Key
-	}
-	return nil
-}
-
-// Value encodes a data tree node's value - along with the way in which
-// the value is encoded. This message is deprecated by gNMI 0.3.0.
-// Reference: gNMI Specification Section 2.2.3.
-//
-// Deprecated: Do not use.
-type Value struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Value []byte   `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`                   // Value of the variable being transmitted.
-	Type  Encoding `protobuf:"varint,2,opt,name=type,proto3,enum=gnmi.Encoding" json:"type,omitempty"` // Encoding used for the value field.
-}
-
-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)
-	}
-}
-
-func (x *Value) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Value.ProtoReflect.Descriptor instead.
-func (*Value) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *Value) GetValue() []byte {
-	if x != nil {
-		return x.Value
-	}
-	return nil
-}
-
-func (x *Value) GetType() Encoding {
-	if x != nil {
-		return x.Type
-	}
-	return Encoding_JSON
-}
-
-// Error message previously utilised to return errors to the client. Deprecated
-// in favour of using the google.golang.org/genproto/googleapis/rpc/status
-// message in the RPC response.
-// Reference: gNMI Specification Section 2.5
-//
-// Deprecated: Do not use.
-type Error struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Code    uint32     `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`      // Canonical gRPC error code.
-	Message string     `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` // Human readable error.
-	Data    *anypb.Any `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`       // Optional additional information.
-}
-
-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)
-	}
-}
-
-func (x *Error) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Error.ProtoReflect.Descriptor instead.
-func (*Error) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *Error) GetCode() uint32 {
-	if x != nil {
-		return x.Code
-	}
-	return 0
-}
-
-func (x *Error) GetMessage() string {
-	if x != nil {
-		return x.Message
-	}
-	return ""
-}
-
-func (x *Error) GetData() *anypb.Any {
-	if x != nil {
-		return x.Data
-	}
-	return nil
-}
-
-// Decimal64 is used to encode a fixed precision decimal number. The value
-// is expressed as a set of digits with the precision specifying the
-// number of digits following the decimal point in the digit set.
-type Decimal64 struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Digits    int64  `protobuf:"varint,1,opt,name=digits,proto3" json:"digits,omitempty"`       // Set of digits.
-	Precision uint32 `protobuf:"varint,2,opt,name=precision,proto3" json:"precision,omitempty"` // Number of digits following the decimal point.
-}
-
-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)
-	}
-}
-
-func (x *Decimal64) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Decimal64.ProtoReflect.Descriptor instead.
-func (*Decimal64) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{7}
-}
-
-func (x *Decimal64) GetDigits() int64 {
-	if x != nil {
-		return x.Digits
-	}
-	return 0
-}
-
-func (x *Decimal64) GetPrecision() uint32 {
-	if x != nil {
-		return x.Precision
-	}
-	return 0
-}
-
-// ScalarArray is used to encode a mixed-type array of values.
-type ScalarArray struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The set of elements within the array. Each TypedValue message should
-	// specify only elements that have a field identifier of 1-7 (i.e., the
-	// values are scalar values).
-	Element []*TypedValue `protobuf:"bytes,1,rep,name=element,proto3" json:"element,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *ScalarArray) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use ScalarArray.ProtoReflect.Descriptor instead.
-func (*ScalarArray) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{8}
-}
-
-func (x *ScalarArray) GetElement() []*TypedValue {
-	if x != nil {
-		return x.Element
-	}
-	return nil
-}
-
-// SubscribeRequest is the message sent by the client to the target when
-// initiating a subscription to a set of paths within the data tree. The
-// request field must be populated and the initial message must specify a
-// SubscriptionList to initiate a subscription. The message is subsequently
-// used to define aliases or trigger polled data to be sent by the target.
-// Reference: gNMI Specification Section 3.5.1.1
-type SubscribeRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Request:
-	//	*SubscribeRequest_Subscribe
-	//	*SubscribeRequest_Poll
-	//	*SubscribeRequest_Aliases
-	Request isSubscribeRequest_Request `protobuf_oneof:"request"`
-	// Extension messages associated with the SubscribeRequest. See the
-	// gNMI extension specification for further definition.
-	Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension,proto3" json:"extension,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *SubscribeRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead.
-func (*SubscribeRequest) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{9}
-}
-
-func (m *SubscribeRequest) GetRequest() isSubscribeRequest_Request {
-	if m != nil {
-		return m.Request
-	}
-	return nil
-}
-
-func (x *SubscribeRequest) GetSubscribe() *SubscriptionList {
-	if x, ok := x.GetRequest().(*SubscribeRequest_Subscribe); ok {
-		return x.Subscribe
-	}
-	return nil
-}
-
-func (x *SubscribeRequest) GetPoll() *Poll {
-	if x, ok := x.GetRequest().(*SubscribeRequest_Poll); ok {
-		return x.Poll
-	}
-	return nil
-}
-
-func (x *SubscribeRequest) GetAliases() *AliasList {
-	if x, ok := x.GetRequest().(*SubscribeRequest_Aliases); ok {
-		return x.Aliases
-	}
-	return nil
-}
-
-func (x *SubscribeRequest) GetExtension() []*gnmi_ext.Extension {
-	if x != nil {
-		return x.Extension
-	}
-	return nil
-}
-
-type isSubscribeRequest_Request interface {
-	isSubscribeRequest_Request()
-}
-
-type SubscribeRequest_Subscribe struct {
-	Subscribe *SubscriptionList `protobuf:"bytes,1,opt,name=subscribe,proto3,oneof"` // Specify the paths within a subscription.
-}
-
-type SubscribeRequest_Poll struct {
-	Poll *Poll `protobuf:"bytes,3,opt,name=poll,proto3,oneof"` // Trigger a polled update.
-}
-
-type SubscribeRequest_Aliases struct {
-	Aliases *AliasList `protobuf:"bytes,4,opt,name=aliases,proto3,oneof"` // Aliases to be created.
-}
-
-func (*SubscribeRequest_Subscribe) isSubscribeRequest_Request() {}
-
-func (*SubscribeRequest_Poll) isSubscribeRequest_Request() {}
-
-func (*SubscribeRequest_Aliases) isSubscribeRequest_Request() {}
-
-// Poll is sent within a SubscribeRequest to trigger the device to
-// send telemetry updates for the paths that are associated with the
-// subscription.
-// Reference: gNMI Specification Section Section 3.5.1.4
-type Poll struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-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)
-	}
-}
-
-func (x *Poll) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Poll.ProtoReflect.Descriptor instead.
-func (*Poll) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{10}
-}
-
-// SubscribeResponse is the message used by the target within a Subscribe RPC.
-// The target includes a Notification message which is used to transmit values
-// of the path(s) that are associated with the subscription. The same message
-// is to indicate that the target has sent all data values once (is
-// synchronized).
-// Reference: gNMI Specification Section 3.5.1.4
-type SubscribeResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Response:
-	//	*SubscribeResponse_Update
-	//	*SubscribeResponse_SyncResponse
-	//	*SubscribeResponse_Error
-	Response isSubscribeResponse_Response `protobuf_oneof:"response"`
-	// Extension messages associated with the SubscribeResponse. See the
-	// gNMI extension specification for further definition.
-	Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension,proto3" json:"extension,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *SubscribeResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SubscribeResponse.ProtoReflect.Descriptor instead.
-func (*SubscribeResponse) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{11}
-}
-
-func (m *SubscribeResponse) GetResponse() isSubscribeResponse_Response {
-	if m != nil {
-		return m.Response
-	}
-	return nil
-}
-
-func (x *SubscribeResponse) GetUpdate() *Notification {
-	if x, ok := x.GetResponse().(*SubscribeResponse_Update); ok {
-		return x.Update
-	}
-	return nil
-}
-
-func (x *SubscribeResponse) GetSyncResponse() bool {
-	if x, ok := x.GetResponse().(*SubscribeResponse_SyncResponse); ok {
-		return x.SyncResponse
-	}
-	return false
-}
-
-// Deprecated: Do not use.
-func (x *SubscribeResponse) GetError() *Error {
-	if x, ok := x.GetResponse().(*SubscribeResponse_Error); ok {
-		return x.Error
-	}
-	return nil
-}
-
-func (x *SubscribeResponse) GetExtension() []*gnmi_ext.Extension {
-	if x != nil {
-		return x.Extension
-	}
-	return nil
-}
-
-type isSubscribeResponse_Response interface {
-	isSubscribeResponse_Response()
-}
-
-type SubscribeResponse_Update struct {
-	Update *Notification `protobuf:"bytes,1,opt,name=update,proto3,oneof"` // Changed or sampled value for a path.
-}
-
-type SubscribeResponse_SyncResponse struct {
-	// Indicate target has sent all values associated with the subscription
-	// at least once.
-	SyncResponse bool `protobuf:"varint,3,opt,name=sync_response,json=syncResponse,proto3,oneof"`
-}
-
-type SubscribeResponse_Error struct {
-	// Deprecated in favour of google.golang.org/genproto/googleapis/rpc/status
-	//
-	// Deprecated: Do not use.
-	Error *Error `protobuf:"bytes,4,opt,name=error,proto3,oneof"`
-}
-
-func (*SubscribeResponse_Update) isSubscribeResponse_Response() {}
-
-func (*SubscribeResponse_SyncResponse) isSubscribeResponse_Response() {}
-
-func (*SubscribeResponse_Error) isSubscribeResponse_Response() {}
-
-// SubscriptionList is used within a Subscribe message to specify the list of
-// paths that the client wishes to subscribe to. The message consists of a
-// list of (possibly prefixed) paths, and options that relate to the
-// subscription.
-// Reference: gNMI Specification Section 3.5.1.2
-type SubscriptionList struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Prefix       *Path           `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"`             // Prefix used for paths.
-	Subscription []*Subscription `protobuf:"bytes,2,rep,name=subscription,proto3" json:"subscription,omitempty"` // Set of subscriptions to create.
-	// Whether target defined aliases are allowed within the subscription.
-	UseAliases bool                  `protobuf:"varint,3,opt,name=use_aliases,json=useAliases,proto3" json:"use_aliases,omitempty"`
-	Qos        *QOSMarking           `protobuf:"bytes,4,opt,name=qos,proto3" json:"qos,omitempty"` // DSCP marking to be used.
-	Mode       SubscriptionList_Mode `protobuf:"varint,5,opt,name=mode,proto3,enum=gnmi.SubscriptionList_Mode" json:"mode,omitempty"`
-	// Whether elements of the schema that are marked as eligible for aggregation
-	// should be aggregated or not.
-	AllowAggregation bool `protobuf:"varint,6,opt,name=allow_aggregation,json=allowAggregation,proto3" json:"allow_aggregation,omitempty"`
-	// The set of schemas that define the elements of the data tree that should
-	// be sent by the target.
-	UseModels []*ModelData `protobuf:"bytes,7,rep,name=use_models,json=useModels,proto3" json:"use_models,omitempty"`
-	// The encoding that the target should use within the Notifications generated
-	// corresponding to the SubscriptionList.
-	Encoding Encoding `protobuf:"varint,8,opt,name=encoding,proto3,enum=gnmi.Encoding" json:"encoding,omitempty"`
-	// An optional field to specify that only updates to current state should be
-	// sent to a client. If set, the initial state is not sent to the client but
-	// rather only the sync message followed by any subsequent updates to the
-	// current state. For ONCE and POLL modes, this causes the server to send only
-	// the sync message (Sec. 3.5.2.3).
-	UpdatesOnly bool `protobuf:"varint,9,opt,name=updates_only,json=updatesOnly,proto3" json:"updates_only,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *SubscriptionList) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SubscriptionList.ProtoReflect.Descriptor instead.
-func (*SubscriptionList) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{12}
-}
-
-func (x *SubscriptionList) GetPrefix() *Path {
-	if x != nil {
-		return x.Prefix
-	}
-	return nil
-}
-
-func (x *SubscriptionList) GetSubscription() []*Subscription {
-	if x != nil {
-		return x.Subscription
-	}
-	return nil
-}
-
-func (x *SubscriptionList) GetUseAliases() bool {
-	if x != nil {
-		return x.UseAliases
-	}
-	return false
-}
-
-func (x *SubscriptionList) GetQos() *QOSMarking {
-	if x != nil {
-		return x.Qos
-	}
-	return nil
-}
-
-func (x *SubscriptionList) GetMode() SubscriptionList_Mode {
-	if x != nil {
-		return x.Mode
-	}
-	return SubscriptionList_STREAM
-}
-
-func (x *SubscriptionList) GetAllowAggregation() bool {
-	if x != nil {
-		return x.AllowAggregation
-	}
-	return false
-}
-
-func (x *SubscriptionList) GetUseModels() []*ModelData {
-	if x != nil {
-		return x.UseModels
-	}
-	return nil
-}
-
-func (x *SubscriptionList) GetEncoding() Encoding {
-	if x != nil {
-		return x.Encoding
-	}
-	return Encoding_JSON
-}
-
-func (x *SubscriptionList) GetUpdatesOnly() bool {
-	if x != nil {
-		return x.UpdatesOnly
-	}
-	return false
-}
-
-// Subscription is a single request within a SubscriptionList. The path
-// specified is interpreted (along with the prefix) as the elements of the data
-// tree that the client is subscribing to. The mode determines how the target
-// should trigger updates to be sent.
-// Reference: gNMI Specification Section 3.5.1.3
-type Subscription struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Path           *Path            `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`                                            // The data tree path.
-	Mode           SubscriptionMode `protobuf:"varint,2,opt,name=mode,proto3,enum=gnmi.SubscriptionMode" json:"mode,omitempty"`                // Subscription mode to be used.
-	SampleInterval uint64           `protobuf:"varint,3,opt,name=sample_interval,json=sampleInterval,proto3" json:"sample_interval,omitempty"` // ns between samples in SAMPLE mode.
-	// Indicates whether values that have not changed should be sent in a SAMPLE
-	// subscription.
-	SuppressRedundant bool `protobuf:"varint,4,opt,name=suppress_redundant,json=suppressRedundant,proto3" json:"suppress_redundant,omitempty"`
-	// Specifies the maximum allowable silent period in nanoseconds when
-	// suppress_redundant is in use. The target should send a value at least once
-	// in the period specified.
-	HeartbeatInterval uint64 `protobuf:"varint,5,opt,name=heartbeat_interval,json=heartbeatInterval,proto3" json:"heartbeat_interval,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *Subscription) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Subscription.ProtoReflect.Descriptor instead.
-func (*Subscription) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{13}
-}
-
-func (x *Subscription) GetPath() *Path {
-	if x != nil {
-		return x.Path
-	}
-	return nil
-}
-
-func (x *Subscription) GetMode() SubscriptionMode {
-	if x != nil {
-		return x.Mode
-	}
-	return SubscriptionMode_TARGET_DEFINED
-}
-
-func (x *Subscription) GetSampleInterval() uint64 {
-	if x != nil {
-		return x.SampleInterval
-	}
-	return 0
-}
-
-func (x *Subscription) GetSuppressRedundant() bool {
-	if x != nil {
-		return x.SuppressRedundant
-	}
-	return false
-}
-
-func (x *Subscription) GetHeartbeatInterval() uint64 {
-	if x != nil {
-		return x.HeartbeatInterval
-	}
-	return 0
-}
-
-// QOSMarking specifies the DSCP value to be set on transmitted telemetry
-// updates from the target.
-// Reference: gNMI Specification Section 3.5.1.2
-type QOSMarking struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Marking uint32 `protobuf:"varint,1,opt,name=marking,proto3" json:"marking,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *QOSMarking) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use QOSMarking.ProtoReflect.Descriptor instead.
-func (*QOSMarking) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{14}
-}
-
-func (x *QOSMarking) GetMarking() uint32 {
-	if x != nil {
-		return x.Marking
-	}
-	return 0
-}
-
-// Alias specifies a data tree path, and an associated string which defines an
-// alias which is to be used for this path in the context of the RPC. The alias
-// is specified as a string which is prefixed with "#" to disambiguate it from
-// data tree element paths.
-// Reference: gNMI Specification Section 2.4.2
-type Alias struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Path  *Path  `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`   // The path to be aliased.
-	Alias string `protobuf:"bytes,2,opt,name=alias,proto3" json:"alias,omitempty"` // The alias value, a string prefixed by "#".
-}
-
-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)
-	}
-}
-
-func (x *Alias) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Alias.ProtoReflect.Descriptor instead.
-func (*Alias) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{15}
-}
-
-func (x *Alias) GetPath() *Path {
-	if x != nil {
-		return x.Path
-	}
-	return nil
-}
-
-func (x *Alias) GetAlias() string {
-	if x != nil {
-		return x.Alias
-	}
-	return ""
-}
-
-// AliasList specifies a list of aliases. It is used in a SubscribeRequest for
-// a client to create a set of aliases that the target is to utilize.
-// Reference: gNMI Specification Section 3.5.1.6
-type AliasList struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Alias []*Alias `protobuf:"bytes,1,rep,name=alias,proto3" json:"alias,omitempty"` // The set of aliases to be created.
-}
-
-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)
-	}
-}
-
-func (x *AliasList) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use AliasList.ProtoReflect.Descriptor instead.
-func (*AliasList) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{16}
-}
-
-func (x *AliasList) GetAlias() []*Alias {
-	if x != nil {
-		return x.Alias
-	}
-	return nil
-}
-
-// SetRequest is sent from a client to the target to update values in the data
-// tree. Paths are either deleted by the client, or modified by means of being
-// updated, or replaced. Where a replace is used, unspecified values are
-// considered to be replaced, whereas when update is used the changes are
-// considered to be incremental. The set of changes that are specified within
-// a single SetRequest are considered to be a transaction.
-// Reference: gNMI Specification Section 3.4.1
-type SetRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Prefix  *Path     `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"`   // Prefix used for paths in the message.
-	Delete  []*Path   `protobuf:"bytes,2,rep,name=delete,proto3" json:"delete,omitempty"`   // Paths to be deleted from the data tree.
-	Replace []*Update `protobuf:"bytes,3,rep,name=replace,proto3" json:"replace,omitempty"` // Updates specifying elements to be replaced.
-	Update  []*Update `protobuf:"bytes,4,rep,name=update,proto3" json:"update,omitempty"`   // Updates specifying elements to updated.
-	// Extension messages associated with the SetRequest. See the
-	// gNMI extension specification for further definition.
-	Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension,proto3" json:"extension,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *SetRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetRequest.ProtoReflect.Descriptor instead.
-func (*SetRequest) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{17}
-}
-
-func (x *SetRequest) GetPrefix() *Path {
-	if x != nil {
-		return x.Prefix
-	}
-	return nil
-}
-
-func (x *SetRequest) GetDelete() []*Path {
-	if x != nil {
-		return x.Delete
-	}
-	return nil
-}
-
-func (x *SetRequest) GetReplace() []*Update {
-	if x != nil {
-		return x.Replace
-	}
-	return nil
-}
-
-func (x *SetRequest) GetUpdate() []*Update {
-	if x != nil {
-		return x.Update
-	}
-	return nil
-}
-
-func (x *SetRequest) GetExtension() []*gnmi_ext.Extension {
-	if x != nil {
-		return x.Extension
-	}
-	return nil
-}
-
-// SetResponse is the response to a SetRequest, sent from the target to the
-// client. It reports the result of the modifications to the data tree that were
-// specified by the client. Errors for this RPC should be reported using the
-// https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto
-// message in the RPC return. The gnmi.Error message can be used to add additional
-// details where required.
-// Reference: gNMI Specification Section 3.4.2
-type SetResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Prefix *Path `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"` // Prefix used for paths.
-	// A set of responses specifying the result of the operations specified in
-	// the SetRequest.
-	Response []*UpdateResult `protobuf:"bytes,2,rep,name=response,proto3" json:"response,omitempty"`
-	// Deprecated: Do not use.
-	Message   *Error `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`      // The overall status of the transaction.
-	Timestamp int64  `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp of transaction (ns since epoch).
-	// Extension messages associated with the SetResponse. See the
-	// gNMI extension specification for further definition.
-	Extension []*gnmi_ext.Extension `protobuf:"bytes,5,rep,name=extension,proto3" json:"extension,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *SetResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetResponse.ProtoReflect.Descriptor instead.
-func (*SetResponse) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{18}
-}
-
-func (x *SetResponse) GetPrefix() *Path {
-	if x != nil {
-		return x.Prefix
-	}
-	return nil
-}
-
-func (x *SetResponse) GetResponse() []*UpdateResult {
-	if x != nil {
-		return x.Response
-	}
-	return nil
-}
-
-// Deprecated: Do not use.
-func (x *SetResponse) GetMessage() *Error {
-	if x != nil {
-		return x.Message
-	}
-	return nil
-}
-
-func (x *SetResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *SetResponse) GetExtension() []*gnmi_ext.Extension {
-	if x != nil {
-		return x.Extension
-	}
-	return nil
-}
-
-// UpdateResult is used within the SetResponse message to communicate the
-// result of an operation specified within a SetRequest message.
-// Reference: gNMI Specification Section 3.4.2
-type UpdateResult struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Deprecated timestamp for the UpdateResult, this field has been
-	// replaced by the timestamp within the SetResponse message, since
-	// all mutations effected by a set should be applied as a single
-	// transaction.
-	//
-	// Deprecated: Do not use.
-	Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
-	Path      *Path `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` // Path associated with the update.
-	// Deprecated: Do not use.
-	Message *Error                 `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`                         // Status of the update operation.
-	Op      UpdateResult_Operation `protobuf:"varint,4,opt,name=op,proto3,enum=gnmi.UpdateResult_Operation" json:"op,omitempty"` // Update operation type.
-}
-
-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)
-	}
-}
-
-func (x *UpdateResult) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use UpdateResult.ProtoReflect.Descriptor instead.
-func (*UpdateResult) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{19}
-}
-
-// Deprecated: Do not use.
-func (x *UpdateResult) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *UpdateResult) GetPath() *Path {
-	if x != nil {
-		return x.Path
-	}
-	return nil
-}
-
-// Deprecated: Do not use.
-func (x *UpdateResult) GetMessage() *Error {
-	if x != nil {
-		return x.Message
-	}
-	return nil
-}
-
-func (x *UpdateResult) GetOp() UpdateResult_Operation {
-	if x != nil {
-		return x.Op
-	}
-	return UpdateResult_INVALID
-}
-
-// GetRequest is sent when a client initiates a Get RPC. It is used to specify
-// the set of data elements for which the target should return a snapshot of
-// data. The use_models field specifies the set of schema modules that are to
-// be used by the target - where use_models is not specified then the target
-// must use all schema models that it has.
-// Reference: gNMI Specification Section 3.3.1
-type GetRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Prefix    *Path               `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"`                            // Prefix used for paths.
-	Path      []*Path             `protobuf:"bytes,2,rep,name=path,proto3" json:"path,omitempty"`                                // Paths requested by the client.
-	Type      GetRequest_DataType `protobuf:"varint,3,opt,name=type,proto3,enum=gnmi.GetRequest_DataType" json:"type,omitempty"` // The type of data being requested.
-	Encoding  Encoding            `protobuf:"varint,5,opt,name=encoding,proto3,enum=gnmi.Encoding" json:"encoding,omitempty"`    // Encoding to be used.
-	UseModels []*ModelData        `protobuf:"bytes,6,rep,name=use_models,json=useModels,proto3" json:"use_models,omitempty"`     // The schema models to be used.
-	// Extension messages associated with the GetRequest. See the
-	// gNMI extension specification for further definition.
-	Extension []*gnmi_ext.Extension `protobuf:"bytes,7,rep,name=extension,proto3" json:"extension,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *GetRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.
-func (*GetRequest) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{20}
-}
-
-func (x *GetRequest) GetPrefix() *Path {
-	if x != nil {
-		return x.Prefix
-	}
-	return nil
-}
-
-func (x *GetRequest) GetPath() []*Path {
-	if x != nil {
-		return x.Path
-	}
-	return nil
-}
-
-func (x *GetRequest) GetType() GetRequest_DataType {
-	if x != nil {
-		return x.Type
-	}
-	return GetRequest_ALL
-}
-
-func (x *GetRequest) GetEncoding() Encoding {
-	if x != nil {
-		return x.Encoding
-	}
-	return Encoding_JSON
-}
-
-func (x *GetRequest) GetUseModels() []*ModelData {
-	if x != nil {
-		return x.UseModels
-	}
-	return nil
-}
-
-func (x *GetRequest) GetExtension() []*gnmi_ext.Extension {
-	if x != nil {
-		return x.Extension
-	}
-	return nil
-}
-
-// GetResponse is used by the target to respond to a GetRequest from a client.
-// The set of Notifications corresponds to the data values that are requested
-// by the client in the GetRequest.
-// Reference: gNMI Specification Section 3.3.2
-type GetResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Notification []*Notification `protobuf:"bytes,1,rep,name=notification,proto3" json:"notification,omitempty"` // Data values.
-	// Deprecated: Do not use.
-	Error *Error `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // Errors that occurred in the Get.
-	// Extension messages associated with the GetResponse. See the
-	// gNMI extension specification for further definition.
-	Extension []*gnmi_ext.Extension `protobuf:"bytes,3,rep,name=extension,proto3" json:"extension,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *GetResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.
-func (*GetResponse) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{21}
-}
-
-func (x *GetResponse) GetNotification() []*Notification {
-	if x != nil {
-		return x.Notification
-	}
-	return nil
-}
-
-// Deprecated: Do not use.
-func (x *GetResponse) GetError() *Error {
-	if x != nil {
-		return x.Error
-	}
-	return nil
-}
-
-func (x *GetResponse) GetExtension() []*gnmi_ext.Extension {
-	if x != nil {
-		return x.Extension
-	}
-	return nil
-}
-
-// CapabilityRequest is sent by the client in the Capabilities RPC to request
-// that the target reports its capabilities.
-// Reference: gNMI Specification Section 3.2.1
-type CapabilityRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Extension messages associated with the CapabilityRequest. See the
-	// gNMI extension specification for further definition.
-	Extension []*gnmi_ext.Extension `protobuf:"bytes,1,rep,name=extension,proto3" json:"extension,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *CapabilityRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use CapabilityRequest.ProtoReflect.Descriptor instead.
-func (*CapabilityRequest) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{22}
-}
-
-func (x *CapabilityRequest) GetExtension() []*gnmi_ext.Extension {
-	if x != nil {
-		return x.Extension
-	}
-	return nil
-}
-
-// CapabilityResponse is used by the target to report its capabilities to the
-// client within the Capabilities RPC.
-// Reference: gNMI Specification Section 3.2.2
-type CapabilityResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	SupportedModels    []*ModelData `protobuf:"bytes,1,rep,name=supported_models,json=supportedModels,proto3" json:"supported_models,omitempty"`                                     // Supported schema models.
-	SupportedEncodings []Encoding   `protobuf:"varint,2,rep,packed,name=supported_encodings,json=supportedEncodings,proto3,enum=gnmi.Encoding" json:"supported_encodings,omitempty"` // Supported encodings.
-	GNMIVersion        string       `protobuf:"bytes,3,opt,name=gNMI_version,json=gNMIVersion,proto3" json:"gNMI_version,omitempty"`                                                 // Supported gNMI version.
-	// Extension messages associated with the CapabilityResponse. See the
-	// gNMI extension specification for further definition.
-	Extension []*gnmi_ext.Extension `protobuf:"bytes,4,rep,name=extension,proto3" json:"extension,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *CapabilityResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use CapabilityResponse.ProtoReflect.Descriptor instead.
-func (*CapabilityResponse) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{23}
-}
-
-func (x *CapabilityResponse) GetSupportedModels() []*ModelData {
-	if x != nil {
-		return x.SupportedModels
-	}
-	return nil
-}
-
-func (x *CapabilityResponse) GetSupportedEncodings() []Encoding {
-	if x != nil {
-		return x.SupportedEncodings
-	}
-	return nil
-}
-
-func (x *CapabilityResponse) GetGNMIVersion() string {
-	if x != nil {
-		return x.GNMIVersion
-	}
-	return ""
-}
-
-func (x *CapabilityResponse) GetExtension() []*gnmi_ext.Extension {
-	if x != nil {
-		return x.Extension
-	}
-	return nil
-}
-
-// ModelData is used to describe a set of schema modules. It can be used in a
-// CapabilityResponse where a target reports the set of modules that it
-// supports, and within the SubscribeRequest and GetRequest messages to specify
-// the set of models from which data tree elements should be reported.
-// Reference: gNMI Specification Section 3.2.3
-type ModelData struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Name         string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`                 // Name of the model.
-	Organization string `protobuf:"bytes,2,opt,name=organization,proto3" json:"organization,omitempty"` // Organization publishing the model.
-	Version      string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`           // Semantic version of the model.
-}
-
-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)
-	}
-}
-
-func (x *ModelData) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use ModelData.ProtoReflect.Descriptor instead.
-func (*ModelData) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP(), []int{24}
-}
-
-func (x *ModelData) GetName() string {
-	if x != nil {
-		return x.Name
-	}
-	return ""
-}
-
-func (x *ModelData) GetOrganization() string {
-	if x != nil {
-		return x.Organization
-	}
-	return ""
-}
-
-func (x *ModelData) GetVersion() string {
-	if x != nil {
-		return x.Version
-	}
-	return ""
-}
-
-var file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_extTypes = []protoimpl.ExtensionInfo{
-	{
-		ExtendedType:  (*descriptorpb.FileOptions)(nil),
-		ExtensionType: (*string)(nil),
-		Field:         1001,
-		Name:          "gnmi.gnmi_service",
-		Tag:           "bytes,1001,opt,name=gnmi_service",
-		Filename:      "github.com/openconfig/gnmi/proto/gnmi/gnmi.proto",
-	},
-}
-
-// Extension fields to descriptorpb.FileOptions.
-var (
-	// The gNMI service semantic version.
-	//
-	// optional string gnmi_service = 1001;
-	E_GnmiService = &file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_extTypes[0]
-)
-
-var File_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto protoreflect.FileDescriptor
-
-var file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDesc = []byte{
-	0x0a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x12, 0x04, 0x67, 0x6e, 0x6d, 0x69, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
-	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
-	0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d,
-	0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74,
-	0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
-	0xc8, 0x01, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	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, 0x22,
-	0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a,
-	0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66,
-	0x69, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x24, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61,
-	0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e,
-	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x22,
-	0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a,
-	0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65,
-	0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01,
-	0x28, 0x08, 0x52, 0x06, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x22, 0x93, 0x01, 0x0a, 0x06, 0x55,
-	0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52,
-	0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x56, 0x61, 0x6c, 0x75,
-	0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x03,
-	0x76, 0x61, 0x6c, 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, 0x03, 0x76, 0x61, 0x6c,
-	0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04,
-	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73,
-	0x22, 0xeb, 0x03, 0x0a, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
-	0x1f, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
-	0x12, 0x19, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x03, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x08, 0x75,
-	0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52,
-	0x07, 0x75, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6c,
-	0x5f, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f,
-	0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x76,
-	0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65,
-	0x73, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61,
-	0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x08, 0x66, 0x6c, 0x6f, 0x61, 0x74,
-	0x56, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x5f, 0x76,
-	0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e,
-	0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x36, 0x34, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x65, 0x63,
-	0x69, 0x6d, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x0c, 0x6c, 0x65, 0x61, 0x66, 0x6c,
-	0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
-	0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x41, 0x72, 0x72, 0x61, 0x79,
-	0x48, 0x00, 0x52, 0x0b, 0x6c, 0x65, 0x61, 0x66, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x12,
-	0x2f, 0x0a, 0x07, 0x61, 0x6e, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x06, 0x61, 0x6e, 0x79, 0x56, 0x61, 0x6c,
-	0x12, 0x1b, 0x0a, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01,
-	0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x6a, 0x73, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x12, 0x24, 0x0a,
-	0x0d, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x69, 0x65, 0x74, 0x66, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x0b,
-	0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x6a, 0x73, 0x6f, 0x6e, 0x49, 0x65, 0x74, 0x66,
-	0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x09, 0x61, 0x73, 0x63, 0x69, 0x69, 0x5f, 0x76, 0x61, 0x6c,
-	0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x61, 0x73, 0x63, 0x69, 0x69, 0x56,
-	0x61, 0x6c, 0x12, 0x21, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x62, 0x79, 0x74, 0x65,
-	0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x42, 0x79, 0x74, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x78,
-	0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x07, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
-	0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x65, 0x6c, 0x65,
-	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x04,
-	0x65, 0x6c, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x6e, 0x6d,
-	0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x04, 0x65, 0x6c, 0x65, 0x6d,
-	0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x08, 0x50, 0x61, 0x74,
-	0x68, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x03, 0x6b, 0x65, 0x79,
-	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61,
-	0x74, 0x68, 0x45, 0x6c, 0x65, 0x6d, 0x2e, 0x4b, 0x65, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
-	0x03, 0x6b, 0x65, 0x79, 0x1a, 0x36, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79,
-	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
-	0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x45, 0x0a, 0x05,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x74,
-	0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
-	0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x3a,
-	0x02, 0x18, 0x01, 0x22, 0x63, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04,
-	0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
-	0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61,
-	0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
-	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04,
-	0x64, 0x61, 0x74, 0x61, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x41, 0x0a, 0x09, 0x44, 0x65, 0x63, 0x69,
-	0x6d, 0x61, 0x6c, 0x36, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x69, 0x74, 0x73, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x69, 0x67, 0x69, 0x74, 0x73, 0x12, 0x1c, 0x0a,
-	0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
-	0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x0b, 0x53,
-	0x63, 0x61, 0x6c, 0x61, 0x72, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2a, 0x0a, 0x07, 0x65, 0x6c,
-	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e,
-	0x6d, 0x69, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65,
-	0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xd7, 0x01, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63,
-	0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x73,
-	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
-	0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
-	0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
-	0x69, 0x62, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x6f, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x6f, 0x6c, 0x6c, 0x48, 0x00, 0x52,
-	0x04, 0x70, 0x6f, 0x6c, 0x6c, 0x12, 0x2b, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x41, 0x6c,
-	0x69, 0x61, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73,
-	0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18,
-	0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74,
-	0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65,
-	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x22, 0x06, 0x0a, 0x04, 0x50, 0x6f, 0x6c, 0x6c, 0x22, 0xd0, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62,
-	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c,
-	0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
-	0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0d,
-	0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42,
-	0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x09,
-	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,
-	0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e,
-	0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42,
-	0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb8, 0x03, 0x0a, 0x10,
-	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74,
-	0x12, 0x22, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x70, 0x72,
-	0x65, 0x66, 0x69, 0x78, 0x12, 0x36, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6e, 0x6d,
-	0x69, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c,
-	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b,
-	0x75, 0x73, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x08, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x22, 0x0a,
-	0x03, 0x71, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6d,
-	0x69, 0x2e, 0x51, 0x4f, 0x53, 0x4d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x03, 0x71, 0x6f,
-	0x73, 0x12, 0x2f, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32,
-	0x1b, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
-	0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f,
-	0x64, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x67, 0x67, 0x72,
-	0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61,
-	0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
-	0x2e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
-	0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x12,
-	0x2a, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28,
-	0x0e, 0x32, 0x0e, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e,
-	0x67, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x75,
-	0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28,
-	0x08, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x26,
-	0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d,
-	0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04,
-	0x50, 0x4f, 0x4c, 0x4c, 0x10, 0x02, 0x22, 0xe1, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63,
-	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74,
-	0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2a, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x75, 0x62,
-	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d,
-	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, 0x12, 0x2d, 0x0a, 0x12,
-	0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x6e, 0x64, 0x61,
-	0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65,
-	0x73, 0x73, 0x52, 0x65, 0x64, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x68,
-	0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61,
-	0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65,
-	0x61, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x26, 0x0a, 0x0a, 0x51, 0x4f,
-	0x53, 0x4d, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b,
-	0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x69,
-	0x6e, 0x67, 0x22, 0x3d, 0x0a, 0x05, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x70,
-	0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
-	0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x61,
-	0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61,
-	0x73, 0x22, 0x2e, 0x0a, 0x09, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21,
-	0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
-	0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61,
-	0x73, 0x22, 0xd5, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x12, 0x22, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x70, 0x72,
-	0x65, 0x66, 0x69, 0x78, 0x12, 0x22, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x02,
-	0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68,
-	0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c,
-	0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
-	0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65,
-	0x12, 0x24, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x0c, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x06,
-	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
-	0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
-	0x5f, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09,
-	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xdd, 0x01, 0x0a, 0x0b, 0x53, 0x65,
-	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x70, 0x72, 0x65,
-	0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
-	0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x2e, 0x0a,
-	0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
-	0x12, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73,
-	0x75, 0x6c, 0x74, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a,
-	0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b,
-	0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x02, 0x18, 0x01, 0x52,
-	0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65,
-	0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d,
-	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
-	0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
-	0x5f, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09,
-	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe8, 0x01, 0x0a, 0x0c, 0x55, 0x70,
-	0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x69,
-	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18,
-	0x01, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x29, 0x0a, 0x07,
-	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
-	0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07,
-	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x04, 0x20,
-	0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
-	0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x52, 0x02, 0x6f, 0x70, 0x22, 0x3d, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12,
-	0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52,
-	0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x44, 0x41,
-	0x54, 0x45, 0x10, 0x03, 0x22, 0xcb, 0x02, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52,
-	0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1e, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18,
-	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x50, 0x61, 0x74,
-	0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x47, 0x65, 0x74,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65,
-	0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69,
-	0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e,
-	0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69,
-	0x6e, 0x67, 0x12, 0x2e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73,
-	0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x4d, 0x6f,
-	0x64, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x75, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65,
-	0x6c, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18,
-	0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74,
-	0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65,
-	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70,
-	0x65, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f,
-	0x4e, 0x46, 0x49, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10,
-	0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c,
-	0x10, 0x03, 0x22, 0x9f, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x18, 0x01, 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, 0x0c, 0x6e, 0x6f,
-	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x05, 0x65, 0x72,
-	0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
-	0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f,
-	0x72, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03,
-	0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e,
-	0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e,
-	0x73, 0x69, 0x6f, 0x6e, 0x22, 0x46, 0x0a, 0x11, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
-	0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74,
-	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67,
-	0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
-	0x6e, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01, 0x0a,
-	0x12, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x10, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64,
-	0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
-	0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f,
-	0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x12,
-	0x3f, 0x0a, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63,
-	0x6f, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x67,
-	0x6e, 0x6d, 0x69, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x73, 0x75,
-	0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x73,
-	0x12, 0x21, 0x0a, 0x0c, 0x67, 0x4e, 0x4d, 0x49, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x4e, 0x4d, 0x49, 0x56, 0x65, 0x72, 0x73,
-	0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
-	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78,
-	0x74, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x74,
-	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5d, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x44,
-	0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e,
-	0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f,
-	0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76,
-	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65,
-	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2a, 0x44, 0x0a, 0x08, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e,
-	0x67, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42,
-	0x59, 0x54, 0x45, 0x53, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x10,
-	0x02, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x53, 0x43, 0x49, 0x49, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09,
-	0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x45, 0x54, 0x46, 0x10, 0x04, 0x2a, 0x41, 0x0a, 0x10, 0x53,
-	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12,
-	0x12, 0x0a, 0x0e, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45,
-	0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45,
-	0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x02, 0x32, 0xe3,
-	0x01, 0x0a, 0x04, 0x67, 0x4e, 0x4d, 0x49, 0x12, 0x41, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62,
-	0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x17, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x43,
-	0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x18, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
-	0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x47, 0x65,
-	0x74, 0x12, 0x10, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x53, 0x65, 0x74, 0x12, 0x10, 0x2e,
-	0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12,
-	0x16, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53,
-	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x28, 0x01, 0x30, 0x01, 0x3a, 0x40, 0x0a, 0x0c, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x73, 0x65, 0x72,
-	0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f,
-	0x6e, 0x73, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x6e, 0x6d, 0x69, 0x53,
-	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x53, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x69,
-	0x74, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42,
-	0x09, 0x47, 0x6e, 0x6d, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x25, 0x67, 0x69,
-	0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e,
-	0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
-	0x6e, 0x6d, 0x69, 0xca, 0x3e, 0x05, 0x30, 0x2e, 0x37, 0x2e, 0x30, 0x62, 0x06, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x33,
-}
-
-var (
-	file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescOnce sync.Once
-	file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescData = file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDesc
-)
-
-func file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescGZIP() []byte {
-	file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescOnce.Do(func() {
-		file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescData)
-	})
-	return file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDescData
-}
-
-var file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
-var file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
-var file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_goTypes = []interface{}{
-	(Encoding)(0),                    // 0: gnmi.Encoding
-	(SubscriptionMode)(0),            // 1: gnmi.SubscriptionMode
-	(SubscriptionList_Mode)(0),       // 2: gnmi.SubscriptionList.Mode
-	(UpdateResult_Operation)(0),      // 3: gnmi.UpdateResult.Operation
-	(GetRequest_DataType)(0),         // 4: gnmi.GetRequest.DataType
-	(*Notification)(nil),             // 5: gnmi.Notification
-	(*Update)(nil),                   // 6: gnmi.Update
-	(*TypedValue)(nil),               // 7: gnmi.TypedValue
-	(*Path)(nil),                     // 8: gnmi.Path
-	(*PathElem)(nil),                 // 9: gnmi.PathElem
-	(*Value)(nil),                    // 10: gnmi.Value
-	(*Error)(nil),                    // 11: gnmi.Error
-	(*Decimal64)(nil),                // 12: gnmi.Decimal64
-	(*ScalarArray)(nil),              // 13: gnmi.ScalarArray
-	(*SubscribeRequest)(nil),         // 14: gnmi.SubscribeRequest
-	(*Poll)(nil),                     // 15: gnmi.Poll
-	(*SubscribeResponse)(nil),        // 16: gnmi.SubscribeResponse
-	(*SubscriptionList)(nil),         // 17: gnmi.SubscriptionList
-	(*Subscription)(nil),             // 18: gnmi.Subscription
-	(*QOSMarking)(nil),               // 19: gnmi.QOSMarking
-	(*Alias)(nil),                    // 20: gnmi.Alias
-	(*AliasList)(nil),                // 21: gnmi.AliasList
-	(*SetRequest)(nil),               // 22: gnmi.SetRequest
-	(*SetResponse)(nil),              // 23: gnmi.SetResponse
-	(*UpdateResult)(nil),             // 24: gnmi.UpdateResult
-	(*GetRequest)(nil),               // 25: gnmi.GetRequest
-	(*GetResponse)(nil),              // 26: gnmi.GetResponse
-	(*CapabilityRequest)(nil),        // 27: gnmi.CapabilityRequest
-	(*CapabilityResponse)(nil),       // 28: gnmi.CapabilityResponse
-	(*ModelData)(nil),                // 29: gnmi.ModelData
-	nil,                              // 30: gnmi.PathElem.KeyEntry
-	(*anypb.Any)(nil),                // 31: google.protobuf.Any
-	(*gnmi_ext.Extension)(nil),       // 32: gnmi_ext.Extension
-	(*descriptorpb.FileOptions)(nil), // 33: google.protobuf.FileOptions
-}
-var file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_depIdxs = []int32{
-	8,  // 0: gnmi.Notification.prefix:type_name -> gnmi.Path
-	6,  // 1: gnmi.Notification.update:type_name -> gnmi.Update
-	8,  // 2: gnmi.Notification.delete:type_name -> gnmi.Path
-	8,  // 3: gnmi.Update.path:type_name -> gnmi.Path
-	10, // 4: gnmi.Update.value:type_name -> gnmi.Value
-	7,  // 5: gnmi.Update.val:type_name -> gnmi.TypedValue
-	12, // 6: gnmi.TypedValue.decimal_val:type_name -> gnmi.Decimal64
-	13, // 7: gnmi.TypedValue.leaflist_val:type_name -> gnmi.ScalarArray
-	31, // 8: gnmi.TypedValue.any_val:type_name -> google.protobuf.Any
-	9,  // 9: gnmi.Path.elem:type_name -> gnmi.PathElem
-	30, // 10: gnmi.PathElem.key:type_name -> gnmi.PathElem.KeyEntry
-	0,  // 11: gnmi.Value.type:type_name -> gnmi.Encoding
-	31, // 12: gnmi.Error.data:type_name -> google.protobuf.Any
-	7,  // 13: gnmi.ScalarArray.element:type_name -> gnmi.TypedValue
-	17, // 14: gnmi.SubscribeRequest.subscribe:type_name -> gnmi.SubscriptionList
-	15, // 15: gnmi.SubscribeRequest.poll:type_name -> gnmi.Poll
-	21, // 16: gnmi.SubscribeRequest.aliases:type_name -> gnmi.AliasList
-	32, // 17: gnmi.SubscribeRequest.extension:type_name -> gnmi_ext.Extension
-	5,  // 18: gnmi.SubscribeResponse.update:type_name -> gnmi.Notification
-	11, // 19: gnmi.SubscribeResponse.error:type_name -> gnmi.Error
-	32, // 20: gnmi.SubscribeResponse.extension:type_name -> gnmi_ext.Extension
-	8,  // 21: gnmi.SubscriptionList.prefix:type_name -> gnmi.Path
-	18, // 22: gnmi.SubscriptionList.subscription:type_name -> gnmi.Subscription
-	19, // 23: gnmi.SubscriptionList.qos:type_name -> gnmi.QOSMarking
-	2,  // 24: gnmi.SubscriptionList.mode:type_name -> gnmi.SubscriptionList.Mode
-	29, // 25: gnmi.SubscriptionList.use_models:type_name -> gnmi.ModelData
-	0,  // 26: gnmi.SubscriptionList.encoding:type_name -> gnmi.Encoding
-	8,  // 27: gnmi.Subscription.path:type_name -> gnmi.Path
-	1,  // 28: gnmi.Subscription.mode:type_name -> gnmi.SubscriptionMode
-	8,  // 29: gnmi.Alias.path:type_name -> gnmi.Path
-	20, // 30: gnmi.AliasList.alias:type_name -> gnmi.Alias
-	8,  // 31: gnmi.SetRequest.prefix:type_name -> gnmi.Path
-	8,  // 32: gnmi.SetRequest.delete:type_name -> gnmi.Path
-	6,  // 33: gnmi.SetRequest.replace:type_name -> gnmi.Update
-	6,  // 34: gnmi.SetRequest.update:type_name -> gnmi.Update
-	32, // 35: gnmi.SetRequest.extension:type_name -> gnmi_ext.Extension
-	8,  // 36: gnmi.SetResponse.prefix:type_name -> gnmi.Path
-	24, // 37: gnmi.SetResponse.response:type_name -> gnmi.UpdateResult
-	11, // 38: gnmi.SetResponse.message:type_name -> gnmi.Error
-	32, // 39: gnmi.SetResponse.extension:type_name -> gnmi_ext.Extension
-	8,  // 40: gnmi.UpdateResult.path:type_name -> gnmi.Path
-	11, // 41: gnmi.UpdateResult.message:type_name -> gnmi.Error
-	3,  // 42: gnmi.UpdateResult.op:type_name -> gnmi.UpdateResult.Operation
-	8,  // 43: gnmi.GetRequest.prefix:type_name -> gnmi.Path
-	8,  // 44: gnmi.GetRequest.path:type_name -> gnmi.Path
-	4,  // 45: gnmi.GetRequest.type:type_name -> gnmi.GetRequest.DataType
-	0,  // 46: gnmi.GetRequest.encoding:type_name -> gnmi.Encoding
-	29, // 47: gnmi.GetRequest.use_models:type_name -> gnmi.ModelData
-	32, // 48: gnmi.GetRequest.extension:type_name -> gnmi_ext.Extension
-	5,  // 49: gnmi.GetResponse.notification:type_name -> gnmi.Notification
-	11, // 50: gnmi.GetResponse.error:type_name -> gnmi.Error
-	32, // 51: gnmi.GetResponse.extension:type_name -> gnmi_ext.Extension
-	32, // 52: gnmi.CapabilityRequest.extension:type_name -> gnmi_ext.Extension
-	29, // 53: gnmi.CapabilityResponse.supported_models:type_name -> gnmi.ModelData
-	0,  // 54: gnmi.CapabilityResponse.supported_encodings:type_name -> gnmi.Encoding
-	32, // 55: gnmi.CapabilityResponse.extension:type_name -> gnmi_ext.Extension
-	33, // 56: gnmi.gnmi_service:extendee -> google.protobuf.FileOptions
-	27, // 57: gnmi.gNMI.Capabilities:input_type -> gnmi.CapabilityRequest
-	25, // 58: gnmi.gNMI.Get:input_type -> gnmi.GetRequest
-	22, // 59: gnmi.gNMI.Set:input_type -> gnmi.SetRequest
-	14, // 60: gnmi.gNMI.Subscribe:input_type -> gnmi.SubscribeRequest
-	28, // 61: gnmi.gNMI.Capabilities:output_type -> gnmi.CapabilityResponse
-	26, // 62: gnmi.gNMI.Get:output_type -> gnmi.GetResponse
-	23, // 63: gnmi.gNMI.Set:output_type -> gnmi.SetResponse
-	16, // 64: gnmi.gNMI.Subscribe:output_type -> gnmi.SubscribeResponse
-	61, // [61:65] is the sub-list for method output_type
-	57, // [57:61] is the sub-list for method input_type
-	57, // [57:57] is the sub-list for extension type_name
-	56, // [56:57] is the sub-list for extension extendee
-	0,  // [0:56] is the sub-list for field type_name
-}
-
-func init() { file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_init() }
-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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 = []interface{}{
-		(*TypedValue_StringVal)(nil),
-		(*TypedValue_IntVal)(nil),
-		(*TypedValue_UintVal)(nil),
-		(*TypedValue_BoolVal)(nil),
-		(*TypedValue_BytesVal)(nil),
-		(*TypedValue_FloatVal)(nil),
-		(*TypedValue_DecimalVal)(nil),
-		(*TypedValue_LeaflistVal)(nil),
-		(*TypedValue_AnyVal)(nil),
-		(*TypedValue_JsonVal)(nil),
-		(*TypedValue_JsonIetfVal)(nil),
-		(*TypedValue_AsciiVal)(nil),
-		(*TypedValue_ProtoBytes)(nil),
-	}
-	file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[9].OneofWrappers = []interface{}{
-		(*SubscribeRequest_Subscribe)(nil),
-		(*SubscribeRequest_Poll)(nil),
-		(*SubscribeRequest_Aliases)(nil),
-	}
-	file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes[11].OneofWrappers = []interface{}{
-		(*SubscribeResponse_Update)(nil),
-		(*SubscribeResponse_SyncResponse)(nil),
-		(*SubscribeResponse_Error)(nil),
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDesc,
-			NumEnums:      5,
-			NumMessages:   26,
-			NumExtensions: 1,
-			NumServices:   1,
-		},
-		GoTypes:           file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_goTypes,
-		DependencyIndexes: file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_depIdxs,
-		EnumInfos:         file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_enumTypes,
-		MessageInfos:      file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_msgTypes,
-		ExtensionInfos:    file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_extTypes,
-	}.Build()
-	File_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto = out.File
-	file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_rawDesc = nil
-	file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_goTypes = nil
-	file_github_com_openconfig_gnmi_proto_gnmi_gnmi_proto_depIdxs = nil
-}
diff --git a/go/github.com/openconfig/gnmi/proto/gnmi/gnmi_grpc.pb.go b/go/github.com/openconfig/gnmi/proto/gnmi/gnmi_grpc.pb.go
deleted file mode 100644
index 6a42910..0000000
--- a/go/github.com/openconfig/gnmi/proto/gnmi/gnmi_grpc.pb.go
+++ /dev/null
@@ -1,282 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package gnmi
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// GNMIClient is the client API for GNMI service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type GNMIClient interface {
-	// Capabilities allows the client to retrieve the set of capabilities that
-	// is supported by the target. This allows the target to validate the
-	// service version that is implemented and retrieve the set of models that
-	// the target supports. The models can then be specified in subsequent RPCs
-	// to restrict the set of data that is utilized.
-	// Reference: gNMI Specification Section 3.2
-	Capabilities(ctx context.Context, in *CapabilityRequest, opts ...grpc.CallOption) (*CapabilityResponse, error)
-	// Retrieve a snapshot of data from the target. A Get RPC requests that the
-	// target snapshots a subset of the data tree as specified by the paths
-	// included in the message and serializes this to be returned to the
-	// client using the specified encoding.
-	// Reference: gNMI Specification Section 3.3
-	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
-	// Set allows the client to modify the state of data on the target. The
-	// paths to modified along with the new values that the client wishes
-	// to set the value to.
-	// Reference: gNMI Specification Section 3.4
-	Set(ctx context.Context, in *SetRequest, opts ...grpc.CallOption) (*SetResponse, error)
-	// Subscribe allows a client to request the target to send it values
-	// of particular paths within the data tree. These values may be streamed
-	// at a particular cadence (STREAM), sent one off on a long-lived channel
-	// (POLL), or sent as a one-off retrieval (ONCE).
-	// Reference: gNMI Specification Section 3.5
-	Subscribe(ctx context.Context, opts ...grpc.CallOption) (GNMI_SubscribeClient, error)
-}
-
-type gNMIClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewGNMIClient(cc grpc.ClientConnInterface) GNMIClient {
-	return &gNMIClient{cc}
-}
-
-func (c *gNMIClient) Capabilities(ctx context.Context, in *CapabilityRequest, opts ...grpc.CallOption) (*CapabilityResponse, error) {
-	out := new(CapabilityResponse)
-	err := c.cc.Invoke(ctx, "/gnmi.gNMI/Capabilities", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *gNMIClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
-	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, "/gnmi.gNMI/Get", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *gNMIClient) Set(ctx context.Context, in *SetRequest, opts ...grpc.CallOption) (*SetResponse, error) {
-	out := new(SetResponse)
-	err := c.cc.Invoke(ctx, "/gnmi.gNMI/Set", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *gNMIClient) Subscribe(ctx context.Context, opts ...grpc.CallOption) (GNMI_SubscribeClient, error) {
-	stream, err := c.cc.NewStream(ctx, &GNMI_ServiceDesc.Streams[0], "/gnmi.gNMI/Subscribe", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &gNMISubscribeClient{stream}
-	return x, nil
-}
-
-type GNMI_SubscribeClient interface {
-	Send(*SubscribeRequest) error
-	Recv() (*SubscribeResponse, error)
-	grpc.ClientStream
-}
-
-type gNMISubscribeClient struct {
-	grpc.ClientStream
-}
-
-func (x *gNMISubscribeClient) Send(m *SubscribeRequest) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *gNMISubscribeClient) Recv() (*SubscribeResponse, error) {
-	m := new(SubscribeResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-// GNMIServer is the server API for GNMI service.
-// All implementations must embed UnimplementedGNMIServer
-// for forward compatibility
-type GNMIServer interface {
-	// Capabilities allows the client to retrieve the set of capabilities that
-	// is supported by the target. This allows the target to validate the
-	// service version that is implemented and retrieve the set of models that
-	// the target supports. The models can then be specified in subsequent RPCs
-	// to restrict the set of data that is utilized.
-	// Reference: gNMI Specification Section 3.2
-	Capabilities(context.Context, *CapabilityRequest) (*CapabilityResponse, error)
-	// Retrieve a snapshot of data from the target. A Get RPC requests that the
-	// target snapshots a subset of the data tree as specified by the paths
-	// included in the message and serializes this to be returned to the
-	// client using the specified encoding.
-	// Reference: gNMI Specification Section 3.3
-	Get(context.Context, *GetRequest) (*GetResponse, error)
-	// Set allows the client to modify the state of data on the target. The
-	// paths to modified along with the new values that the client wishes
-	// to set the value to.
-	// Reference: gNMI Specification Section 3.4
-	Set(context.Context, *SetRequest) (*SetResponse, error)
-	// Subscribe allows a client to request the target to send it values
-	// of particular paths within the data tree. These values may be streamed
-	// at a particular cadence (STREAM), sent one off on a long-lived channel
-	// (POLL), or sent as a one-off retrieval (ONCE).
-	// Reference: gNMI Specification Section 3.5
-	Subscribe(GNMI_SubscribeServer) error
-	mustEmbedUnimplementedGNMIServer()
-}
-
-// UnimplementedGNMIServer must be embedded to have forward compatible implementations.
-type UnimplementedGNMIServer struct {
-}
-
-func (UnimplementedGNMIServer) Capabilities(context.Context, *CapabilityRequest) (*CapabilityResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Capabilities not implemented")
-}
-func (UnimplementedGNMIServer) Get(context.Context, *GetRequest) (*GetResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
-}
-func (UnimplementedGNMIServer) Set(context.Context, *SetRequest) (*SetResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Set not implemented")
-}
-func (UnimplementedGNMIServer) Subscribe(GNMI_SubscribeServer) error {
-	return status.Errorf(codes.Unimplemented, "method Subscribe not implemented")
-}
-func (UnimplementedGNMIServer) mustEmbedUnimplementedGNMIServer() {}
-
-// UnsafeGNMIServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to GNMIServer will
-// result in compilation errors.
-type UnsafeGNMIServer interface {
-	mustEmbedUnimplementedGNMIServer()
-}
-
-func RegisterGNMIServer(s grpc.ServiceRegistrar, srv GNMIServer) {
-	s.RegisterService(&GNMI_ServiceDesc, srv)
-}
-
-func _GNMI_Capabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(CapabilityRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(GNMIServer).Capabilities(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gnmi.gNMI/Capabilities",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(GNMIServer).Capabilities(ctx, req.(*CapabilityRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _GNMI_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(GNMIServer).Get(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gnmi.gNMI/Get",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(GNMIServer).Get(ctx, req.(*GetRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _GNMI_Set_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SetRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(GNMIServer).Set(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gnmi.gNMI/Set",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(GNMIServer).Set(ctx, req.(*SetRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _GNMI_Subscribe_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(GNMIServer).Subscribe(&gNMISubscribeServer{stream})
-}
-
-type GNMI_SubscribeServer interface {
-	Send(*SubscribeResponse) error
-	Recv() (*SubscribeRequest, error)
-	grpc.ServerStream
-}
-
-type gNMISubscribeServer struct {
-	grpc.ServerStream
-}
-
-func (x *gNMISubscribeServer) Send(m *SubscribeResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *gNMISubscribeServer) Recv() (*SubscribeRequest, error) {
-	m := new(SubscribeRequest)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-// GNMI_ServiceDesc is the grpc.ServiceDesc for GNMI service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var GNMI_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "gnmi.gNMI",
-	HandlerType: (*GNMIServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "Capabilities",
-			Handler:    _GNMI_Capabilities_Handler,
-		},
-		{
-			MethodName: "Get",
-			Handler:    _GNMI_Get_Handler,
-		},
-		{
-			MethodName: "Set",
-			Handler:    _GNMI_Set_Handler,
-		},
-	},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "Subscribe",
-			Handler:       _GNMI_Subscribe_Handler,
-			ServerStreams: true,
-			ClientStreams: true,
-		},
-	},
-	Metadata: "github.com/openconfig/gnmi/proto/gnmi/gnmi.proto",
-}
diff --git a/go/github.com/openconfig/gnmi/proto/gnmi_ext/gnmi_ext.pb.go b/go/github.com/openconfig/gnmi/proto/gnmi_ext/gnmi_ext.pb.go
deleted file mode 100644
index e519c21..0000000
--- a/go/github.com/openconfig/gnmi/proto/gnmi_ext/gnmi_ext.pb.go
+++ /dev/null
@@ -1,763 +0,0 @@
-//
-// Copyright 2018 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.27.1
-// 	protoc        (unknown)
-// source: github.com/openconfig/gnmi/proto/gnmi_ext/gnmi_ext.proto
-
-// Package gnmi_ext defines a set of extensions messages which can be optionally
-// included with the request and response messages of gNMI RPCs. A set of
-// well-known extensions are defined within this file, along with a registry for
-// extensions defined outside of this package.
-
-package gnmi_ext
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// RegisteredExtension is an enumeration acting as a registry for extensions
-// defined by external sources.
-type ExtensionID int32
-
-const (
-	ExtensionID_EID_UNSET ExtensionID = 0
-	// An experimental extension that may be used during prototyping of a new
-	// extension.
-	ExtensionID_EID_EXPERIMENTAL ExtensionID = 999
-)
-
-// Enum value maps for ExtensionID.
-var (
-	ExtensionID_name = map[int32]string{
-		0:   "EID_UNSET",
-		999: "EID_EXPERIMENTAL",
-	}
-	ExtensionID_value = map[string]int32{
-		"EID_UNSET":        0,
-		"EID_EXPERIMENTAL": 999,
-	}
-)
-
-func (x ExtensionID) Enum() *ExtensionID {
-	p := new(ExtensionID)
-	*p = x
-	return p
-}
-
-func (x ExtensionID) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (ExtensionID) Descriptor() protoreflect.EnumDescriptor {
-	return file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_enumTypes[0].Descriptor()
-}
-
-func (ExtensionID) Type() protoreflect.EnumType {
-	return &file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_enumTypes[0]
-}
-
-func (x ExtensionID) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use ExtensionID.Descriptor instead.
-func (ExtensionID) EnumDescriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescGZIP(), []int{0}
-}
-
-// The Extension message contains a single gNMI extension.
-type Extension struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Ext:
-	//	*Extension_RegisteredExt
-	//	*Extension_MasterArbitration
-	//	*Extension_History
-	Ext isExtension_Ext `protobuf_oneof:"ext"`
-}
-
-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)
-	}
-}
-
-func (x *Extension) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Extension.ProtoReflect.Descriptor instead.
-func (*Extension) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescGZIP(), []int{0}
-}
-
-func (m *Extension) GetExt() isExtension_Ext {
-	if m != nil {
-		return m.Ext
-	}
-	return nil
-}
-
-func (x *Extension) GetRegisteredExt() *RegisteredExtension {
-	if x, ok := x.GetExt().(*Extension_RegisteredExt); ok {
-		return x.RegisteredExt
-	}
-	return nil
-}
-
-func (x *Extension) GetMasterArbitration() *MasterArbitration {
-	if x, ok := x.GetExt().(*Extension_MasterArbitration); ok {
-		return x.MasterArbitration
-	}
-	return nil
-}
-
-func (x *Extension) GetHistory() *History {
-	if x, ok := x.GetExt().(*Extension_History); ok {
-		return x.History
-	}
-	return nil
-}
-
-type isExtension_Ext interface {
-	isExtension_Ext()
-}
-
-type Extension_RegisteredExt struct {
-	RegisteredExt *RegisteredExtension `protobuf:"bytes,1,opt,name=registered_ext,json=registeredExt,proto3,oneof"` // A registered extension.
-}
-
-type Extension_MasterArbitration struct {
-	// Well known extensions.
-	MasterArbitration *MasterArbitration `protobuf:"bytes,2,opt,name=master_arbitration,json=masterArbitration,proto3,oneof"` // Master arbitration extension.
-}
-
-type Extension_History struct {
-	History *History `protobuf:"bytes,3,opt,name=history,proto3,oneof"` // History extension.
-}
-
-func (*Extension_RegisteredExt) isExtension_Ext() {}
-
-func (*Extension_MasterArbitration) isExtension_Ext() {}
-
-func (*Extension_History) isExtension_Ext() {}
-
-// The RegisteredExtension message defines an extension which is defined outside
-// of this file.
-type RegisteredExtension struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id  ExtensionID `protobuf:"varint,1,opt,name=id,proto3,enum=gnmi_ext.ExtensionID" json:"id,omitempty"` // The unique ID assigned to this extension.
-	Msg []byte      `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`                          // The binary-marshalled protobuf extension payload.
-}
-
-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)
-	}
-}
-
-func (x *RegisteredExtension) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use RegisteredExtension.ProtoReflect.Descriptor instead.
-func (*RegisteredExtension) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *RegisteredExtension) GetId() ExtensionID {
-	if x != nil {
-		return x.Id
-	}
-	return ExtensionID_EID_UNSET
-}
-
-func (x *RegisteredExtension) GetMsg() []byte {
-	if x != nil {
-		return x.Msg
-	}
-	return nil
-}
-
-// MasterArbitration is used to select the master among multiple gNMI clients
-// with the same Roles. The client with the largest election_id is honored as
-// the master.
-// The document about gNMI master arbitration can be found at
-// https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-master-arbitration.md
-type MasterArbitration struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Role       *Role    `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
-	ElectionId *Uint128 `protobuf:"bytes,2,opt,name=election_id,json=electionId,proto3" json:"election_id,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *MasterArbitration) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use MasterArbitration.ProtoReflect.Descriptor instead.
-func (*MasterArbitration) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *MasterArbitration) GetRole() *Role {
-	if x != nil {
-		return x.Role
-	}
-	return nil
-}
-
-func (x *MasterArbitration) GetElectionId() *Uint128 {
-	if x != nil {
-		return x.ElectionId
-	}
-	return nil
-}
-
-// Representation of unsigned 128-bit integer.
-type Uint128 struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	High uint64 `protobuf:"varint,1,opt,name=high,proto3" json:"high,omitempty"`
-	Low  uint64 `protobuf:"varint,2,opt,name=low,proto3" json:"low,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *Uint128) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Uint128.ProtoReflect.Descriptor instead.
-func (*Uint128) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *Uint128) GetHigh() uint64 {
-	if x != nil {
-		return x.High
-	}
-	return 0
-}
-
-func (x *Uint128) GetLow() uint64 {
-	if x != nil {
-		return x.Low
-	}
-	return 0
-}
-
-// There can be one master for each role. The role is identified by its id.
-type Role struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *Role) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Role.ProtoReflect.Descriptor instead.
-func (*Role) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *Role) GetId() string {
-	if x != nil {
-		return x.Id
-	}
-	return ""
-}
-
-// The History extension allows clients to request historical data. Its
-// spec can be found at
-// https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-history.md
-type History struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Request:
-	//	*History_SnapshotTime
-	//	*History_Range
-	Request isHistory_Request `protobuf_oneof:"request"`
-}
-
-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)
-	}
-}
-
-func (x *History) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use History.ProtoReflect.Descriptor instead.
-func (*History) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescGZIP(), []int{5}
-}
-
-func (m *History) GetRequest() isHistory_Request {
-	if m != nil {
-		return m.Request
-	}
-	return nil
-}
-
-func (x *History) GetSnapshotTime() int64 {
-	if x, ok := x.GetRequest().(*History_SnapshotTime); ok {
-		return x.SnapshotTime
-	}
-	return 0
-}
-
-func (x *History) GetRange() *TimeRange {
-	if x, ok := x.GetRequest().(*History_Range); ok {
-		return x.Range
-	}
-	return nil
-}
-
-type isHistory_Request interface {
-	isHistory_Request()
-}
-
-type History_SnapshotTime struct {
-	SnapshotTime int64 `protobuf:"varint,1,opt,name=snapshot_time,json=snapshotTime,proto3,oneof"` // Nanoseconds since the epoch
-}
-
-type History_Range struct {
-	Range *TimeRange `protobuf:"bytes,2,opt,name=range,proto3,oneof"`
-}
-
-func (*History_SnapshotTime) isHistory_Request() {}
-
-func (*History_Range) isHistory_Request() {}
-
-type TimeRange struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` // Nanoseconds since the epoch
-	End   int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`     // Nanoseconds since the epoch
-}
-
-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)
-	}
-}
-
-func (x *TimeRange) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TimeRange.ProtoReflect.Descriptor instead.
-func (*TimeRange) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *TimeRange) GetStart() int64 {
-	if x != nil {
-		return x.Start
-	}
-	return 0
-}
-
-func (x *TimeRange) GetEnd() int64 {
-	if x != nil {
-		return x.End
-	}
-	return 0
-}
-
-var File_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto protoreflect.FileDescriptor
-
-var file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDesc = []byte{
-	0x0a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2f, 0x67, 0x6e, 0x6d, 0x69,
-	0x5f, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x67, 0x6e, 0x6d, 0x69,
-	0x5f, 0x65, 0x78, 0x74, 0x22, 0xd7, 0x01, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
-	0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64,
-	0x5f, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6d,
-	0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64,
-	0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x67,
-	0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x45, 0x78, 0x74, 0x12, 0x4c, 0x0a, 0x12, 0x6d, 0x61,
-	0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78,
-	0x74, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x72, 0x62,
-	0x69, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x07, 0x68, 0x69, 0x73, 0x74,
-	0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
-	0x5f, 0x65, 0x78, 0x74, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x48, 0x00, 0x52, 0x07,
-	0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x05, 0x0a, 0x03, 0x65, 0x78, 0x74, 0x22, 0x4e,
-	0x0a, 0x13, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65,
-	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x0e, 0x32, 0x15, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x45, 0x78, 0x74,
-	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
-	0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x6b,
-	0x0a, 0x11, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x52, 0x6f, 0x6c,
-	0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x0b, 0x65, 0x6c, 0x65, 0x63, 0x74,
-	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67,
-	0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38, 0x52,
-	0x0a, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x07, 0x55,
-	0x69, 0x6e, 0x74, 0x31, 0x32, 0x38, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f,
-	0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x22, 0x16, 0x0a, 0x04,
-	0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x02, 0x69, 0x64, 0x22, 0x68, 0x0a, 0x07, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12,
-	0x25, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68,
-	0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x5f, 0x65, 0x78, 0x74,
-	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x72, 0x61,
-	0x6e, 0x67, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x33,
-	0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73,
-	0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72,
-	0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
-	0x65, 0x6e, 0x64, 0x2a, 0x33, 0x0a, 0x0b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
-	0x49, 0x44, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x49, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10,
-	0x00, 0x12, 0x15, 0x0a, 0x10, 0x45, 0x49, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d,
-	0x45, 0x4e, 0x54, 0x41, 0x4c, 0x10, 0xe7, 0x07, 0x42, 0x2b, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x68,
-	0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d,
-	0x69, 0x5f, 0x65, 0x78, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescOnce sync.Once
-	file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescData = file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDesc
-)
-
-func file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescGZIP() []byte {
-	file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescOnce.Do(func() {
-		file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescData)
-	})
-	return file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDescData
-}
-
-var file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
-var file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_goTypes = []interface{}{
-	(ExtensionID)(0),            // 0: gnmi_ext.ExtensionID
-	(*Extension)(nil),           // 1: gnmi_ext.Extension
-	(*RegisteredExtension)(nil), // 2: gnmi_ext.RegisteredExtension
-	(*MasterArbitration)(nil),   // 3: gnmi_ext.MasterArbitration
-	(*Uint128)(nil),             // 4: gnmi_ext.Uint128
-	(*Role)(nil),                // 5: gnmi_ext.Role
-	(*History)(nil),             // 6: gnmi_ext.History
-	(*TimeRange)(nil),           // 7: gnmi_ext.TimeRange
-}
-var file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_depIdxs = []int32{
-	2, // 0: gnmi_ext.Extension.registered_ext:type_name -> gnmi_ext.RegisteredExtension
-	3, // 1: gnmi_ext.Extension.master_arbitration:type_name -> gnmi_ext.MasterArbitration
-	6, // 2: gnmi_ext.Extension.history:type_name -> gnmi_ext.History
-	0, // 3: gnmi_ext.RegisteredExtension.id:type_name -> gnmi_ext.ExtensionID
-	5, // 4: gnmi_ext.MasterArbitration.role:type_name -> gnmi_ext.Role
-	4, // 5: gnmi_ext.MasterArbitration.election_id:type_name -> gnmi_ext.Uint128
-	7, // 6: gnmi_ext.History.range:type_name -> gnmi_ext.TimeRange
-	7, // [7:7] is the sub-list for method output_type
-	7, // [7:7] is the sub-list for method input_type
-	7, // [7:7] is the sub-list for extension type_name
-	7, // [7:7] is the sub-list for extension extendee
-	0, // [0:7] is the sub-list for field type_name
-}
-
-func init() { file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_init() }
-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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 = []interface{}{
-		(*Extension_RegisteredExt)(nil),
-		(*Extension_MasterArbitration)(nil),
-		(*Extension_History)(nil),
-	}
-	file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes[5].OneofWrappers = []interface{}{
-		(*History_SnapshotTime)(nil),
-		(*History_Range)(nil),
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDesc,
-			NumEnums:      1,
-			NumMessages:   7,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_goTypes,
-		DependencyIndexes: file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_depIdxs,
-		EnumInfos:         file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_enumTypes,
-		MessageInfos:      file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_msgTypes,
-	}.Build()
-	File_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto = out.File
-	file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_rawDesc = nil
-	file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_goTypes = nil
-	file_github_com_openconfig_gnmi_proto_gnmi_ext_gnmi_ext_proto_depIdxs = nil
-}
diff --git a/go/github.com/openconfig/gnmi/proto/target/target.pb.go b/go/github.com/openconfig/gnmi/proto/target/target.pb.go
deleted file mode 100644
index b968439..0000000
--- a/go/github.com/openconfig/gnmi/proto/target/target.pb.go
+++ /dev/null
@@ -1,431 +0,0 @@
-//
-// Copyright 2018 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.27.1
-// 	protoc        (unknown)
-// source: github.com/openconfig/gnmi/proto/target/target.proto
-
-// Package target contains messages for defining a configuration of a caching
-// collector to connect to multiple gNMI targets.
-
-package target
-
-import (
-	gnmi "github.com/openconfig/gnmi/proto/gnmi"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// Configuration holds all information necessary for a caching gNMI collector
-// to establish subscriptions to a list of gNMI targets.
-type Configuration struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Request is a keyed list of all SubscriptionRequests that can be sent to
-	// to targets in the Configuration.
-	// The request must have at minimum a SubscriptionList with a prefix
-	// containing origin and one or more Subscriptions.  Only the STREAM mode is
-	// supported.
-	Request map[string]*gnmi.SubscribeRequest `protobuf:"bytes,1,rep,name=request,proto3" json:"request,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	// Target is the full list of targets connected to by a caching gNMI
-	// collector.  The key of the map is a unique name to identify a target and
-	// is set in the prefix.target of a SubscriptionRequest message when connecting
-	// to each respective target.
-	Target map[string]*Target `protobuf:"bytes,2,rep,name=target,proto3" json:"target,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	// Identifier for the caching collector.
-	InstanceId string `protobuf:"bytes,3,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
-	// Revision for this Configuration. Systems that non-atomically write
-	// configuration should populate and require revision, leveraging canonical
-	// protobuf serialization of fields in order. Presence of this field makes no
-	// guarantee. Consumers should account for atomicity constraints of their
-	// environment and any custom encoding.
-	Revision int64 `protobuf:"varint,536870911,opt,name=revision,proto3" json:"revision,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *Configuration) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Configuration.ProtoReflect.Descriptor instead.
-func (*Configuration) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_target_target_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Configuration) GetRequest() map[string]*gnmi.SubscribeRequest {
-	if x != nil {
-		return x.Request
-	}
-	return nil
-}
-
-func (x *Configuration) GetTarget() map[string]*Target {
-	if x != nil {
-		return x.Target
-	}
-	return nil
-}
-
-func (x *Configuration) GetInstanceId() string {
-	if x != nil {
-		return x.InstanceId
-	}
-	return ""
-}
-
-func (x *Configuration) GetRevision() int64 {
-	if x != nil {
-		return x.Revision
-	}
-	return 0
-}
-
-// Target is the information necessary to establish a single gNMI Subscribe RPC
-// to be collected and cached.
-type Target struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// A list of address and port or name that resolves to an address and port.
-	Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"`
-	// Credentials to use in metadata for authorization of the RPC
-	Credentials *Credentials `protobuf:"bytes,2,opt,name=credentials,proto3" json:"credentials,omitempty"`
-	// The request to be sent to the target. The string supplied is looked up in
-	// the request map of the Configuration message.
-	Request string `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"`
-	// Additional target metadata.
-	Meta map[string]string `protobuf:"bytes,4,rep,name=meta,proto3" json:"meta,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-}
-
-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)
-	}
-}
-
-func (x *Target) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Target.ProtoReflect.Descriptor instead.
-func (*Target) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_target_target_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *Target) GetAddresses() []string {
-	if x != nil {
-		return x.Addresses
-	}
-	return nil
-}
-
-func (x *Target) GetCredentials() *Credentials {
-	if x != nil {
-		return x.Credentials
-	}
-	return nil
-}
-
-func (x *Target) GetRequest() string {
-	if x != nil {
-		return x.Request
-	}
-	return ""
-}
-
-func (x *Target) GetMeta() map[string]string {
-	if x != nil {
-		return x.Meta
-	}
-	return nil
-}
-
-// Credentials contains the fields necessary for authentication of the client to
-// the target.
-type Credentials struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
-	Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
-	// Password lookup ID.
-	PasswordId string `protobuf:"bytes,3,opt,name=password_id,json=passwordId,proto3" json:"password_id,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *Credentials) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Credentials.ProtoReflect.Descriptor instead.
-func (*Credentials) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_proto_target_target_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *Credentials) GetUsername() string {
-	if x != nil {
-		return x.Username
-	}
-	return ""
-}
-
-func (x *Credentials) GetPassword() string {
-	if x != nil {
-		return x.Password
-	}
-	return ""
-}
-
-func (x *Credentials) GetPasswordId() string {
-	if x != nil {
-		return x.PasswordId
-	}
-	return ""
-}
-
-var File_github_com_openconfig_gnmi_proto_target_target_proto protoreflect.FileDescriptor
-
-var file_github_com_openconfig_gnmi_proto_target_target_proto_rawDesc = []byte{
-	0x0a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x1a, 0x30,
-	0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x22, 0xe8, 0x02, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x43, 0x6f, 0x6e,
-	0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x12, 0x39, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x21, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e,
-	0x74, 0x72, 0x79, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69,
-	0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08,
-	0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xff, 0xff, 0xff, 0xff, 0x01, 0x20, 0x01,
-	0x28, 0x03, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x52, 0x0a, 0x0c,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
-	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c,
-	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
-	0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
-	0x1a, 0x49, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
-	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
-	0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x0e, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74,
-	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xde, 0x01, 0x0a, 0x06,
-	0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
-	0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65,
-	0x73, 0x73, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
-	0x61, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x61, 0x72, 0x67,
-	0x65, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x0b,
-	0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x04, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x54, 0x61, 0x72,
-	0x67, 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6d,
-	0x65, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79,
-	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
-	0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x66, 0x0a, 0x0b,
-	0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x75,
-	0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75,
-	0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77,
-	0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77,
-	0x6f, 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f,
-	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f,
-	0x72, 0x64, 0x49, 0x64, 0x42, 0x29, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
-	0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e,
-	0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x62,
-	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_github_com_openconfig_gnmi_proto_target_target_proto_rawDescOnce sync.Once
-	file_github_com_openconfig_gnmi_proto_target_target_proto_rawDescData = file_github_com_openconfig_gnmi_proto_target_target_proto_rawDesc
-)
-
-func file_github_com_openconfig_gnmi_proto_target_target_proto_rawDescGZIP() []byte {
-	file_github_com_openconfig_gnmi_proto_target_target_proto_rawDescOnce.Do(func() {
-		file_github_com_openconfig_gnmi_proto_target_target_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnmi_proto_target_target_proto_rawDescData)
-	})
-	return file_github_com_openconfig_gnmi_proto_target_target_proto_rawDescData
-}
-
-var file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
-var file_github_com_openconfig_gnmi_proto_target_target_proto_goTypes = []interface{}{
-	(*Configuration)(nil),         // 0: target.Configuration
-	(*Target)(nil),                // 1: target.Target
-	(*Credentials)(nil),           // 2: target.Credentials
-	nil,                           // 3: target.Configuration.RequestEntry
-	nil,                           // 4: target.Configuration.TargetEntry
-	nil,                           // 5: target.Target.MetaEntry
-	(*gnmi.SubscribeRequest)(nil), // 6: gnmi.SubscribeRequest
-}
-var file_github_com_openconfig_gnmi_proto_target_target_proto_depIdxs = []int32{
-	3, // 0: target.Configuration.request:type_name -> target.Configuration.RequestEntry
-	4, // 1: target.Configuration.target:type_name -> target.Configuration.TargetEntry
-	2, // 2: target.Target.credentials:type_name -> target.Credentials
-	5, // 3: target.Target.meta:type_name -> target.Target.MetaEntry
-	6, // 4: target.Configuration.RequestEntry.value:type_name -> gnmi.SubscribeRequest
-	1, // 5: target.Configuration.TargetEntry.value:type_name -> target.Target
-	6, // [6:6] is the sub-list for method output_type
-	6, // [6:6] is the sub-list for method input_type
-	6, // [6:6] is the sub-list for extension type_name
-	6, // [6:6] is the sub-list for extension extendee
-	0, // [0:6] is the sub-list for field type_name
-}
-
-func init() { file_github_com_openconfig_gnmi_proto_target_target_proto_init() }
-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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_github_com_openconfig_gnmi_proto_target_target_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   6,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_github_com_openconfig_gnmi_proto_target_target_proto_goTypes,
-		DependencyIndexes: file_github_com_openconfig_gnmi_proto_target_target_proto_depIdxs,
-		MessageInfos:      file_github_com_openconfig_gnmi_proto_target_target_proto_msgTypes,
-	}.Build()
-	File_github_com_openconfig_gnmi_proto_target_target_proto = out.File
-	file_github_com_openconfig_gnmi_proto_target_target_proto_rawDesc = nil
-	file_github_com_openconfig_gnmi_proto_target_target_proto_goTypes = nil
-	file_github_com_openconfig_gnmi_proto_target_target_proto_depIdxs = nil
-}
diff --git a/go/github.com/openconfig/gnmi/testing/fake/proto/fake.pb.go b/go/github.com/openconfig/gnmi/testing/fake/proto/fake.pb.go
deleted file mode 100644
index d43bc98..0000000
--- a/go/github.com/openconfig/gnmi/testing/fake/proto/fake.pb.go
+++ /dev/null
@@ -1,2541 +0,0 @@
-// fake.proto describes the message format for creating integration tests for
-// streaming telemetry components by generating a reproducible stream of
-// updates from fake targets.
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.27.1
-// 	protoc        (unknown)
-// source: github.com/openconfig/gnmi/testing/fake/proto/fake.proto
-
-package gnmi_fake
-
-import (
-	gnmi "github.com/openconfig/gnmi/proto/gnmi"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	anypb "google.golang.org/protobuf/types/known/anypb"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type State int32
-
-const (
-	State_STOPPED State = 0
-	State_INIT    State = 1
-	State_RUNNING State = 2
-)
-
-// Enum value maps for State.
-var (
-	State_name = map[int32]string{
-		0: "STOPPED",
-		1: "INIT",
-		2: "RUNNING",
-	}
-	State_value = map[string]int32{
-		"STOPPED": 0,
-		"INIT":    1,
-		"RUNNING": 2,
-	}
-)
-
-func (x State) Enum() *State {
-	p := new(State)
-	*p = x
-	return p
-}
-
-func (x State) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (State) Descriptor() protoreflect.EnumDescriptor {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_enumTypes[0].Descriptor()
-}
-
-func (State) Type() protoreflect.EnumType {
-	return &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_enumTypes[0]
-}
-
-func (x State) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use State.Descriptor instead.
-func (State) EnumDescriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{0}
-}
-
-type Config_ClientType int32
-
-const (
-	Config_GRPC           Config_ClientType = 0
-	Config_STUBBY         Config_ClientType = 1
-	Config_GRPC_GNMI      Config_ClientType = 2
-	Config_GRPC_GNMI_PROD Config_ClientType = 3
-)
-
-// Enum value maps for Config_ClientType.
-var (
-	Config_ClientType_name = map[int32]string{
-		0: "GRPC",
-		1: "STUBBY",
-		2: "GRPC_GNMI",
-		3: "GRPC_GNMI_PROD",
-	}
-	Config_ClientType_value = map[string]int32{
-		"GRPC":           0,
-		"STUBBY":         1,
-		"GRPC_GNMI":      2,
-		"GRPC_GNMI_PROD": 3,
-	}
-)
-
-func (x Config_ClientType) Enum() *Config_ClientType {
-	p := new(Config_ClientType)
-	*p = x
-	return p
-}
-
-func (x Config_ClientType) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Config_ClientType) Descriptor() protoreflect.EnumDescriptor {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_enumTypes[1].Descriptor()
-}
-
-func (Config_ClientType) Type() protoreflect.EnumType {
-	return &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_enumTypes[1]
-}
-
-func (x Config_ClientType) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Config_ClientType.Descriptor instead.
-func (Config_ClientType) EnumDescriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{2, 0}
-}
-
-// Configuration is used to store all agent configuration for the fake agent
-// server.  Each config describes a single agent hosted on the server.
-type Configuration struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Repeated list of targets to emulate.
-	Config []*Config `protobuf:"bytes,1,rep,name=config,proto3" json:"config,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *Configuration) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Configuration.ProtoReflect.Descriptor instead.
-func (*Configuration) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Configuration) GetConfig() []*Config {
-	if x != nil {
-		return x.Config
-	}
-	return nil
-}
-
-type Credentials struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
-	Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *Credentials) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Credentials.ProtoReflect.Descriptor instead.
-func (*Credentials) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *Credentials) GetUsername() string {
-	if x != nil {
-		return x.Username
-	}
-	return ""
-}
-
-func (x *Credentials) GetPassword() string {
-	if x != nil {
-		return x.Password
-	}
-	return ""
-}
-
-// Config is a collection of values that together represent the update streams
-// for one or more fake devices.
-type Config struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The target for which the fake will publish values for.
-	Target string `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
-	// Port for the agent to listen on. If 0 or unset the agent will pick a port
-	// for this agent.
-	Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
-	// A global random seed used in generating subsequent values. Set to have
-	// reproducible results.
-	//
-	// Deprecated: Do not use.
-	Seed int64 `protobuf:"varint,6,opt,name=seed,proto3" json:"seed,omitempty"`
-	// The list of values generated.  Each value will contain its corresponding
-	// target as the first string in the event.GetValue().path meaning that it is
-	// possible to generate streams that will be rejected by the cache for testing
-	// purposes.
-	//
-	// Deprecated: Do not use.
-	Values []*Value `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"`
-	// Setting disable sync will keep the configured client from autogenerating a
-	// sync message. This allows negative testing on sync handling.
-	DisableSync bool `protobuf:"varint,4,opt,name=disable_sync,json=disableSync,proto3" json:"disable_sync,omitempty"`
-	// Type of client to fake either Stubby or GRPC based fake.
-	ClientType Config_ClientType `protobuf:"varint,5,opt,name=client_type,json=clientType,proto3,enum=gnmi.fake.Config_ClientType" json:"client_type,omitempty"`
-	// Disable EOF will hold open the subscription and not automagically close
-	// the stream once the value queue is empty.
-	DisableEof bool `protobuf:"varint,7,opt,name=disable_eof,json=disableEof,proto3" json:"disable_eof,omitempty"`
-	// Per RPC credentials for the agent. If not set no per RPC auth will be used.
-	Credentials *Credentials `protobuf:"bytes,8,opt,name=credentials,proto3" json:"credentials,omitempty"`
-	// TLS cert for use on the agent. If not set the transport will not be TLS.
-	Cert []byte `protobuf:"bytes,9,opt,name=cert,proto3" json:"cert,omitempty"`
-	// Honor the delay between events in the generated value streams. Default will
-	// play events as fast as the can be streamed.
-	EnableDelay bool `protobuf:"varint,10,opt,name=enable_delay,json=enableDelay,proto3" json:"enable_delay,omitempty"`
-	// Generator for value series for the target.
-	//
-	// Types that are assignable to Generator:
-	//	*Config_Custom
-	//	*Config_Random
-	//	*Config_Fixed
-	Generator isConfig_Generator `protobuf_oneof:"generator"`
-	// tunnel_addr is the address of the tunnel server.
-	TunnelAddr string `protobuf:"bytes,11,opt,name=tunnel_addr,json=tunnelAddr,proto3" json:"tunnel_addr,omitempty"`
-	// tunnel_crt is the certificate file for the tunnel conection.
-	TunnelCrt string `protobuf:"bytes,12,opt,name=tunnel_crt,json=tunnelCrt,proto3" json:"tunnel_crt,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *Config) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Config.ProtoReflect.Descriptor instead.
-func (*Config) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *Config) GetTarget() string {
-	if x != nil {
-		return x.Target
-	}
-	return ""
-}
-
-func (x *Config) GetPort() int32 {
-	if x != nil {
-		return x.Port
-	}
-	return 0
-}
-
-// Deprecated: Do not use.
-func (x *Config) GetSeed() int64 {
-	if x != nil {
-		return x.Seed
-	}
-	return 0
-}
-
-// Deprecated: Do not use.
-func (x *Config) GetValues() []*Value {
-	if x != nil {
-		return x.Values
-	}
-	return nil
-}
-
-func (x *Config) GetDisableSync() bool {
-	if x != nil {
-		return x.DisableSync
-	}
-	return false
-}
-
-func (x *Config) GetClientType() Config_ClientType {
-	if x != nil {
-		return x.ClientType
-	}
-	return Config_GRPC
-}
-
-func (x *Config) GetDisableEof() bool {
-	if x != nil {
-		return x.DisableEof
-	}
-	return false
-}
-
-func (x *Config) GetCredentials() *Credentials {
-	if x != nil {
-		return x.Credentials
-	}
-	return nil
-}
-
-func (x *Config) GetCert() []byte {
-	if x != nil {
-		return x.Cert
-	}
-	return nil
-}
-
-func (x *Config) GetEnableDelay() bool {
-	if x != nil {
-		return x.EnableDelay
-	}
-	return false
-}
-
-func (m *Config) GetGenerator() isConfig_Generator {
-	if m != nil {
-		return m.Generator
-	}
-	return nil
-}
-
-func (x *Config) GetCustom() *anypb.Any {
-	if x, ok := x.GetGenerator().(*Config_Custom); ok {
-		return x.Custom
-	}
-	return nil
-}
-
-func (x *Config) GetRandom() *RandomGenerator {
-	if x, ok := x.GetGenerator().(*Config_Random); ok {
-		return x.Random
-	}
-	return nil
-}
-
-func (x *Config) GetFixed() *FixedGenerator {
-	if x, ok := x.GetGenerator().(*Config_Fixed); ok {
-		return x.Fixed
-	}
-	return nil
-}
-
-func (x *Config) GetTunnelAddr() string {
-	if x != nil {
-		return x.TunnelAddr
-	}
-	return ""
-}
-
-func (x *Config) GetTunnelCrt() string {
-	if x != nil {
-		return x.TunnelCrt
-	}
-	return ""
-}
-
-type isConfig_Generator interface {
-	isConfig_Generator()
-}
-
-type Config_Custom struct {
-	Custom *anypb.Any `protobuf:"bytes,100,opt,name=custom,proto3,oneof"`
-}
-
-type Config_Random struct {
-	Random *RandomGenerator `protobuf:"bytes,101,opt,name=random,proto3,oneof"`
-}
-
-type Config_Fixed struct {
-	Fixed *FixedGenerator `protobuf:"bytes,102,opt,name=fixed,proto3,oneof"`
-}
-
-func (*Config_Custom) isConfig_Generator() {}
-
-func (*Config_Random) isConfig_Generator() {}
-
-func (*Config_Fixed) isConfig_Generator() {}
-
-type FixedGenerator struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Responses []*gnmi.SubscribeResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *FixedGenerator) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use FixedGenerator.ProtoReflect.Descriptor instead.
-func (*FixedGenerator) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *FixedGenerator) GetResponses() []*gnmi.SubscribeResponse {
-	if x != nil {
-		return x.Responses
-	}
-	return nil
-}
-
-type RandomGenerator struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Seed   int64    `protobuf:"varint,1,opt,name=seed,proto3" json:"seed,omitempty"`
-	Values []*Value `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *RandomGenerator) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use RandomGenerator.ProtoReflect.Descriptor instead.
-func (*RandomGenerator) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *RandomGenerator) GetSeed() int64 {
-	if x != nil {
-		return x.Seed
-	}
-	return 0
-}
-
-func (x *RandomGenerator) GetValues() []*Value {
-	if x != nil {
-		return x.Values
-	}
-	return nil
-}
-
-// Delete will cause the value to be deleted at the Value's path.
-type DeleteValue struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-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)
-	}
-}
-
-func (x *DeleteValue) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use DeleteValue.ProtoReflect.Descriptor instead.
-func (*DeleteValue) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{5}
-}
-
-// Value is the main message that will trigger a stream of updates for a given
-// path.  A file containing a list of values can be used to simulate a network
-// device for integration tests.
-type Value struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The device specific, or OpenConfig path corresponding to a value.
-	Path []string `protobuf:"bytes,1,rep,name=path,proto3" json:"path,omitempty"`
-	// The initial timestamp and configuration on how the timestamp will change
-	// for subsequent values. If timestamp is not set the default will assume to
-	// be the current system time.
-	Timestamp *Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
-	// If set, repeat indicates that the value should be repeated this many times,
-	// otherwise it is repeated indefinitely.
-	Repeat int32 `protobuf:"varint,6,opt,name=repeat,proto3" json:"repeat,omitempty"`
-	// A local random seed used in generating subsequent values for this path. If
-	// not set, will share the global random source with seed defined in Config.
-	Seed int64 `protobuf:"varint,7,opt,name=seed,proto3" json:"seed,omitempty"`
-	// The initial value of the chosen type including configuration on how the
-	// value will mutate for subsequent updates.
-	//
-	// Types that are assignable to Value:
-	//	*Value_IntValue
-	//	*Value_DoubleValue
-	//	*Value_StringValue
-	//	*Value_Sync
-	//	*Value_Delete
-	//	*Value_BoolValue
-	//	*Value_UintValue
-	//	*Value_StringListValue
-	Value isValue_Value `protobuf_oneof:"value"`
-}
-
-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)
-	}
-}
-
-func (x *Value) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Value.ProtoReflect.Descriptor instead.
-func (*Value) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *Value) GetPath() []string {
-	if x != nil {
-		return x.Path
-	}
-	return nil
-}
-
-func (x *Value) GetTimestamp() *Timestamp {
-	if x != nil {
-		return x.Timestamp
-	}
-	return nil
-}
-
-func (x *Value) GetRepeat() int32 {
-	if x != nil {
-		return x.Repeat
-	}
-	return 0
-}
-
-func (x *Value) GetSeed() int64 {
-	if x != nil {
-		return x.Seed
-	}
-	return 0
-}
-
-func (m *Value) GetValue() isValue_Value {
-	if m != nil {
-		return m.Value
-	}
-	return nil
-}
-
-func (x *Value) GetIntValue() *IntValue {
-	if x, ok := x.GetValue().(*Value_IntValue); ok {
-		return x.IntValue
-	}
-	return nil
-}
-
-func (x *Value) GetDoubleValue() *DoubleValue {
-	if x, ok := x.GetValue().(*Value_DoubleValue); ok {
-		return x.DoubleValue
-	}
-	return nil
-}
-
-func (x *Value) GetStringValue() *StringValue {
-	if x, ok := x.GetValue().(*Value_StringValue); ok {
-		return x.StringValue
-	}
-	return nil
-}
-
-func (x *Value) GetSync() uint64 {
-	if x, ok := x.GetValue().(*Value_Sync); ok {
-		return x.Sync
-	}
-	return 0
-}
-
-func (x *Value) GetDelete() *DeleteValue {
-	if x, ok := x.GetValue().(*Value_Delete); ok {
-		return x.Delete
-	}
-	return nil
-}
-
-func (x *Value) GetBoolValue() *BoolValue {
-	if x, ok := x.GetValue().(*Value_BoolValue); ok {
-		return x.BoolValue
-	}
-	return nil
-}
-
-func (x *Value) GetUintValue() *UintValue {
-	if x, ok := x.GetValue().(*Value_UintValue); ok {
-		return x.UintValue
-	}
-	return nil
-}
-
-func (x *Value) GetStringListValue() *StringListValue {
-	if x, ok := x.GetValue().(*Value_StringListValue); ok {
-		return x.StringListValue
-	}
-	return nil
-}
-
-type isValue_Value interface {
-	isValue_Value()
-}
-
-type Value_IntValue struct {
-	IntValue *IntValue `protobuf:"bytes,100,opt,name=int_value,json=intValue,proto3,oneof"`
-}
-
-type Value_DoubleValue struct {
-	DoubleValue *DoubleValue `protobuf:"bytes,101,opt,name=double_value,json=doubleValue,proto3,oneof"`
-}
-
-type Value_StringValue struct {
-	StringValue *StringValue `protobuf:"bytes,102,opt,name=string_value,json=stringValue,proto3,oneof"`
-}
-
-type Value_Sync struct {
-	Sync uint64 `protobuf:"varint,103,opt,name=sync,proto3,oneof"`
-}
-
-type Value_Delete struct {
-	Delete *DeleteValue `protobuf:"bytes,104,opt,name=delete,proto3,oneof"`
-}
-
-type Value_BoolValue struct {
-	BoolValue *BoolValue `protobuf:"bytes,105,opt,name=bool_value,json=boolValue,proto3,oneof"`
-}
-
-type Value_UintValue struct {
-	UintValue *UintValue `protobuf:"bytes,106,opt,name=uint_value,json=uintValue,proto3,oneof"`
-}
-
-type Value_StringListValue struct {
-	StringListValue *StringListValue `protobuf:"bytes,107,opt,name=string_list_value,json=stringListValue,proto3,oneof"`
-}
-
-func (*Value_IntValue) isValue_Value() {}
-
-func (*Value_DoubleValue) isValue_Value() {}
-
-func (*Value_StringValue) isValue_Value() {}
-
-func (*Value_Sync) isValue_Value() {}
-
-func (*Value_Delete) isValue_Value() {}
-
-func (*Value_BoolValue) isValue_Value() {}
-
-func (*Value_UintValue) isValue_Value() {}
-
-func (*Value_StringListValue) isValue_Value() {}
-
-type Timestamp struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Initial timestamp for the corresponding value, nanoseconds since epoch.
-	// This value need have no relation to absolute real-time as the stream of
-	// of updates is generated without regard to the real clock and can be run
-	// repeatably at any time if the seed is set in the corresponding Value.
-	Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
-	// These values will vary the change in the timestamp for subsequent outputs
-	// by a value between delta_min and delta_max.  Set to the same value to force
-	// a set periodic interval.
-	DeltaMin int64 `protobuf:"varint,2,opt,name=delta_min,json=deltaMin,proto3" json:"delta_min,omitempty"`
-	DeltaMax int64 `protobuf:"varint,3,opt,name=delta_max,json=deltaMax,proto3" json:"delta_max,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *Timestamp) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Timestamp.ProtoReflect.Descriptor instead.
-func (*Timestamp) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{7}
-}
-
-func (x *Timestamp) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *Timestamp) GetDeltaMin() int64 {
-	if x != nil {
-		return x.DeltaMin
-	}
-	return 0
-}
-
-func (x *Timestamp) GetDeltaMax() int64 {
-	if x != nil {
-		return x.DeltaMax
-	}
-	return 0
-}
-
-type IntValue struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// If distribution is IntRange, value is used as the initial value
-	// inside [minimum, maximum] and hold the value as it mutates.
-	// If distribution is IntList, value is only used to hold the value as it
-	// mutates.
-	// If no distribution is set, value is used as it mutates, i.e. constant
-	// update.
-	Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
-	// Types that are assignable to Distribution:
-	//	*IntValue_Range
-	//	*IntValue_List
-	Distribution isIntValue_Distribution `protobuf_oneof:"distribution"`
-}
-
-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)
-	}
-}
-
-func (x *IntValue) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IntValue.ProtoReflect.Descriptor instead.
-func (*IntValue) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{8}
-}
-
-func (x *IntValue) GetValue() int64 {
-	if x != nil {
-		return x.Value
-	}
-	return 0
-}
-
-func (m *IntValue) GetDistribution() isIntValue_Distribution {
-	if m != nil {
-		return m.Distribution
-	}
-	return nil
-}
-
-func (x *IntValue) GetRange() *IntRange {
-	if x, ok := x.GetDistribution().(*IntValue_Range); ok {
-		return x.Range
-	}
-	return nil
-}
-
-func (x *IntValue) GetList() *IntList {
-	if x, ok := x.GetDistribution().(*IntValue_List); ok {
-		return x.List
-	}
-	return nil
-}
-
-type isIntValue_Distribution interface {
-	isIntValue_Distribution()
-}
-
-type IntValue_Range struct {
-	Range *IntRange `protobuf:"bytes,2,opt,name=range,proto3,oneof"`
-}
-
-type IntValue_List struct {
-	List *IntList `protobuf:"bytes,3,opt,name=list,proto3,oneof"`
-}
-
-func (*IntValue_Range) isIntValue_Distribution() {}
-
-func (*IntValue_List) isIntValue_Distribution() {}
-
-type IntRange struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The range of the value allowed.
-	Minimum int64 `protobuf:"varint,1,opt,name=minimum,proto3" json:"minimum,omitempty"`
-	Maximum int64 `protobuf:"varint,2,opt,name=maximum,proto3" json:"maximum,omitempty"`
-	// If set, the value is cumulative and the subsequent value is value + delta
-	// where delta is randomly chosen between delta_min and delta_max.  The range
-	// minimum and maximum are still respected and values will saturate at the
-	// boundaries if they are exceeded. If not set subsequent value is a value
-	// randomly chosen between minimum and maximum.
-	DeltaMin int64 `protobuf:"varint,3,opt,name=delta_min,json=deltaMin,proto3" json:"delta_min,omitempty"`
-	DeltaMax int64 `protobuf:"varint,4,opt,name=delta_max,json=deltaMax,proto3" json:"delta_max,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *IntRange) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IntRange.ProtoReflect.Descriptor instead.
-func (*IntRange) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{9}
-}
-
-func (x *IntRange) GetMinimum() int64 {
-	if x != nil {
-		return x.Minimum
-	}
-	return 0
-}
-
-func (x *IntRange) GetMaximum() int64 {
-	if x != nil {
-		return x.Maximum
-	}
-	return 0
-}
-
-func (x *IntRange) GetDeltaMin() int64 {
-	if x != nil {
-		return x.DeltaMin
-	}
-	return 0
-}
-
-func (x *IntRange) GetDeltaMax() int64 {
-	if x != nil {
-		return x.DeltaMax
-	}
-	return 0
-}
-
-type IntList struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The set of values which can be used.
-	Options []int64 `protobuf:"varint,1,rep,packed,name=options,proto3" json:"options,omitempty"`
-	// Set to true to randomize selection of value from options. If false, the
-	// values are cycled in order, starting at index 0.
-	Random bool `protobuf:"varint,2,opt,name=random,proto3" json:"random,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *IntList) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use IntList.ProtoReflect.Descriptor instead.
-func (*IntList) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{10}
-}
-
-func (x *IntList) GetOptions() []int64 {
-	if x != nil {
-		return x.Options
-	}
-	return nil
-}
-
-func (x *IntList) GetRandom() bool {
-	if x != nil {
-		return x.Random
-	}
-	return false
-}
-
-type DoubleValue struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// If distribution is DoubleRange, value is used as the initial value
-	// inside [minimum, maximum] and hold the value as it mutates.
-	// If distribution is DoubleList, value is only used to hold the value as it
-	// mutates.
-	// If no distribution is set, value is used as it mutates, i.e. constant
-	// update.
-	Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"`
-	// Types that are assignable to Distribution:
-	//	*DoubleValue_Range
-	//	*DoubleValue_List
-	Distribution isDoubleValue_Distribution `protobuf_oneof:"distribution"`
-}
-
-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)
-	}
-}
-
-func (x *DoubleValue) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use DoubleValue.ProtoReflect.Descriptor instead.
-func (*DoubleValue) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{11}
-}
-
-func (x *DoubleValue) GetValue() float64 {
-	if x != nil {
-		return x.Value
-	}
-	return 0
-}
-
-func (m *DoubleValue) GetDistribution() isDoubleValue_Distribution {
-	if m != nil {
-		return m.Distribution
-	}
-	return nil
-}
-
-func (x *DoubleValue) GetRange() *DoubleRange {
-	if x, ok := x.GetDistribution().(*DoubleValue_Range); ok {
-		return x.Range
-	}
-	return nil
-}
-
-func (x *DoubleValue) GetList() *DoubleList {
-	if x, ok := x.GetDistribution().(*DoubleValue_List); ok {
-		return x.List
-	}
-	return nil
-}
-
-type isDoubleValue_Distribution interface {
-	isDoubleValue_Distribution()
-}
-
-type DoubleValue_Range struct {
-	Range *DoubleRange `protobuf:"bytes,2,opt,name=range,proto3,oneof"`
-}
-
-type DoubleValue_List struct {
-	List *DoubleList `protobuf:"bytes,3,opt,name=list,proto3,oneof"`
-}
-
-func (*DoubleValue_Range) isDoubleValue_Distribution() {}
-
-func (*DoubleValue_List) isDoubleValue_Distribution() {}
-
-type DoubleRange struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The range of the value allowed.
-	Minimum float64 `protobuf:"fixed64,1,opt,name=minimum,proto3" json:"minimum,omitempty"`
-	Maximum float64 `protobuf:"fixed64,2,opt,name=maximum,proto3" json:"maximum,omitempty"`
-	// If set, the value is cumulative and the subsequent value is value + delta
-	// where delta is randomly chosen between delta_min and delta_max. The range
-	// minimum and maximum are still respected. If not set subsequent value is a
-	// value randomly chosen between minimum and maximum.
-	DeltaMin float64 `protobuf:"fixed64,3,opt,name=delta_min,json=deltaMin,proto3" json:"delta_min,omitempty"`
-	DeltaMax float64 `protobuf:"fixed64,4,opt,name=delta_max,json=deltaMax,proto3" json:"delta_max,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *DoubleRange) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use DoubleRange.ProtoReflect.Descriptor instead.
-func (*DoubleRange) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{12}
-}
-
-func (x *DoubleRange) GetMinimum() float64 {
-	if x != nil {
-		return x.Minimum
-	}
-	return 0
-}
-
-func (x *DoubleRange) GetMaximum() float64 {
-	if x != nil {
-		return x.Maximum
-	}
-	return 0
-}
-
-func (x *DoubleRange) GetDeltaMin() float64 {
-	if x != nil {
-		return x.DeltaMin
-	}
-	return 0
-}
-
-func (x *DoubleRange) GetDeltaMax() float64 {
-	if x != nil {
-		return x.DeltaMax
-	}
-	return 0
-}
-
-type DoubleList struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The set of values which can be used.
-	Options []float64 `protobuf:"fixed64,1,rep,packed,name=options,proto3" json:"options,omitempty"`
-	// Set to true to randomize selection of value from options. If false, the
-	// values are cycled in order.
-	Random bool `protobuf:"varint,2,opt,name=random,proto3" json:"random,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *DoubleList) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use DoubleList.ProtoReflect.Descriptor instead.
-func (*DoubleList) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{13}
-}
-
-func (x *DoubleList) GetOptions() []float64 {
-	if x != nil {
-		return x.Options
-	}
-	return nil
-}
-
-func (x *DoubleList) GetRandom() bool {
-	if x != nil {
-		return x.Random
-	}
-	return false
-}
-
-type StringValue struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// If distribution is StringList, value is used to hold the value as it
-	// mutates.
-	// If no distribution is set, value is used as it mutates, i.e. constant
-	// update.
-	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
-	// Types that are assignable to Distribution:
-	//	*StringValue_List
-	Distribution isStringValue_Distribution `protobuf_oneof:"distribution"`
-}
-
-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)
-	}
-}
-
-func (x *StringValue) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StringValue.ProtoReflect.Descriptor instead.
-func (*StringValue) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{14}
-}
-
-func (x *StringValue) GetValue() string {
-	if x != nil {
-		return x.Value
-	}
-	return ""
-}
-
-func (m *StringValue) GetDistribution() isStringValue_Distribution {
-	if m != nil {
-		return m.Distribution
-	}
-	return nil
-}
-
-func (x *StringValue) GetList() *StringList {
-	if x, ok := x.GetDistribution().(*StringValue_List); ok {
-		return x.List
-	}
-	return nil
-}
-
-type isStringValue_Distribution interface {
-	isStringValue_Distribution()
-}
-
-type StringValue_List struct {
-	List *StringList `protobuf:"bytes,2,opt,name=list,proto3,oneof"`
-}
-
-func (*StringValue_List) isStringValue_Distribution() {}
-
-type StringList struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The set of strings which can be used.
-	Options []string `protobuf:"bytes,1,rep,name=options,proto3" json:"options,omitempty"`
-	// Set to true to randomize selection of value from options. If false, the
-	// values are cycled in order, starting at index 0.
-	Random bool `protobuf:"varint,2,opt,name=random,proto3" json:"random,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *StringList) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StringList.ProtoReflect.Descriptor instead.
-func (*StringList) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{15}
-}
-
-func (x *StringList) GetOptions() []string {
-	if x != nil {
-		return x.Options
-	}
-	return nil
-}
-
-func (x *StringList) GetRandom() bool {
-	if x != nil {
-		return x.Random
-	}
-	return false
-}
-
-type StringListValue struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// If distribution is StringList, value is used to hold the value as it
-	// mutates.
-	// If no distribution is set, value is used as it mutates, i.e. constant
-	// update.
-	Value []string `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty"`
-	// Types that are assignable to Distribution:
-	//	*StringListValue_List
-	Distribution isStringListValue_Distribution `protobuf_oneof:"distribution"`
-}
-
-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)
-	}
-}
-
-func (x *StringListValue) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StringListValue.ProtoReflect.Descriptor instead.
-func (*StringListValue) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{16}
-}
-
-func (x *StringListValue) GetValue() []string {
-	if x != nil {
-		return x.Value
-	}
-	return nil
-}
-
-func (m *StringListValue) GetDistribution() isStringListValue_Distribution {
-	if m != nil {
-		return m.Distribution
-	}
-	return nil
-}
-
-func (x *StringListValue) GetList() *StringList {
-	if x, ok := x.GetDistribution().(*StringListValue_List); ok {
-		return x.List
-	}
-	return nil
-}
-
-type isStringListValue_Distribution interface {
-	isStringListValue_Distribution()
-}
-
-type StringListValue_List struct {
-	List *StringList `protobuf:"bytes,2,opt,name=list,proto3,oneof"`
-}
-
-func (*StringListValue_List) isStringListValue_Distribution() {}
-
-type BoolValue struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// If distribution is BoolList, value is only used to hold the value as it
-	// mutates.
-	// If no distribution is set, value is used as it mutates, i.e. constant
-	// update.
-	Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
-	// Types that are assignable to Distribution:
-	//	*BoolValue_List
-	Distribution isBoolValue_Distribution `protobuf_oneof:"distribution"`
-}
-
-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)
-	}
-}
-
-func (x *BoolValue) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use BoolValue.ProtoReflect.Descriptor instead.
-func (*BoolValue) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{17}
-}
-
-func (x *BoolValue) GetValue() bool {
-	if x != nil {
-		return x.Value
-	}
-	return false
-}
-
-func (m *BoolValue) GetDistribution() isBoolValue_Distribution {
-	if m != nil {
-		return m.Distribution
-	}
-	return nil
-}
-
-func (x *BoolValue) GetList() *BoolList {
-	if x, ok := x.GetDistribution().(*BoolValue_List); ok {
-		return x.List
-	}
-	return nil
-}
-
-type isBoolValue_Distribution interface {
-	isBoolValue_Distribution()
-}
-
-type BoolValue_List struct {
-	List *BoolList `protobuf:"bytes,2,opt,name=list,proto3,oneof"`
-}
-
-func (*BoolValue_List) isBoolValue_Distribution() {}
-
-type BoolList struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The set of values which can be used.
-	Options []bool `protobuf:"varint,1,rep,packed,name=options,proto3" json:"options,omitempty"`
-	// Set to true to randomize selection of value from options. If false, the
-	// values are cycled in order, starting at index 0.
-	Random bool `protobuf:"varint,2,opt,name=random,proto3" json:"random,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *BoolList) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use BoolList.ProtoReflect.Descriptor instead.
-func (*BoolList) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{18}
-}
-
-func (x *BoolList) GetOptions() []bool {
-	if x != nil {
-		return x.Options
-	}
-	return nil
-}
-
-func (x *BoolList) GetRandom() bool {
-	if x != nil {
-		return x.Random
-	}
-	return false
-}
-
-type UintValue struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// If distribution is UintRange, value is used as the initial value
-	// inside [minimum, maximum] and hold the value as it mutates.
-	// If distribution is UintList, value is only used to hold the value as it
-	// mutates.
-	// If no distribution is set, value is used as it mutates, i.e. constant
-	// update.
-	Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
-	// Types that are assignable to Distribution:
-	//	*UintValue_Range
-	//	*UintValue_List
-	Distribution isUintValue_Distribution `protobuf_oneof:"distribution"`
-}
-
-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)
-	}
-}
-
-func (x *UintValue) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use UintValue.ProtoReflect.Descriptor instead.
-func (*UintValue) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{19}
-}
-
-func (x *UintValue) GetValue() uint64 {
-	if x != nil {
-		return x.Value
-	}
-	return 0
-}
-
-func (m *UintValue) GetDistribution() isUintValue_Distribution {
-	if m != nil {
-		return m.Distribution
-	}
-	return nil
-}
-
-func (x *UintValue) GetRange() *UintRange {
-	if x, ok := x.GetDistribution().(*UintValue_Range); ok {
-		return x.Range
-	}
-	return nil
-}
-
-func (x *UintValue) GetList() *UintList {
-	if x, ok := x.GetDistribution().(*UintValue_List); ok {
-		return x.List
-	}
-	return nil
-}
-
-type isUintValue_Distribution interface {
-	isUintValue_Distribution()
-}
-
-type UintValue_Range struct {
-	Range *UintRange `protobuf:"bytes,2,opt,name=range,proto3,oneof"`
-}
-
-type UintValue_List struct {
-	List *UintList `protobuf:"bytes,3,opt,name=list,proto3,oneof"`
-}
-
-func (*UintValue_Range) isUintValue_Distribution() {}
-
-func (*UintValue_List) isUintValue_Distribution() {}
-
-type UintRange struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The range of the value allowed.
-	Minimum uint64 `protobuf:"varint,1,opt,name=minimum,proto3" json:"minimum,omitempty"`
-	Maximum uint64 `protobuf:"varint,2,opt,name=maximum,proto3" json:"maximum,omitempty"`
-	// If set, the value is cumulative and the subsequent value is value + delta
-	// where delta is randomly chosen between delta_min and delta_max.  The range
-	// minimum and maximum are still respected and values will saturate at the
-	// boundaries if they are exceeded. If not set subsequent value is a value
-	// randomly chosen between minimum and maximum.
-	DeltaMin int64 `protobuf:"varint,3,opt,name=delta_min,json=deltaMin,proto3" json:"delta_min,omitempty"`
-	DeltaMax int64 `protobuf:"varint,4,opt,name=delta_max,json=deltaMax,proto3" json:"delta_max,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *UintRange) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use UintRange.ProtoReflect.Descriptor instead.
-func (*UintRange) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{20}
-}
-
-func (x *UintRange) GetMinimum() uint64 {
-	if x != nil {
-		return x.Minimum
-	}
-	return 0
-}
-
-func (x *UintRange) GetMaximum() uint64 {
-	if x != nil {
-		return x.Maximum
-	}
-	return 0
-}
-
-func (x *UintRange) GetDeltaMin() int64 {
-	if x != nil {
-		return x.DeltaMin
-	}
-	return 0
-}
-
-func (x *UintRange) GetDeltaMax() int64 {
-	if x != nil {
-		return x.DeltaMax
-	}
-	return 0
-}
-
-type UintList struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// The set of values which can be used.
-	Options []uint64 `protobuf:"varint,1,rep,packed,name=options,proto3" json:"options,omitempty"`
-	// Set to true to randomize selection of value from options. If false, the
-	// values are cycled in order, starting at index 0.
-	Random bool `protobuf:"varint,2,opt,name=random,proto3" json:"random,omitempty"`
-}
-
-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)
-	}
-}
-
-func (x *UintList) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-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 {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use UintList.ProtoReflect.Descriptor instead.
-func (*UintList) Descriptor() ([]byte, []int) {
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{21}
-}
-
-func (x *UintList) GetOptions() []uint64 {
-	if x != nil {
-		return x.Options
-	}
-	return nil
-}
-
-func (x *UintList) GetRandom() bool {
-	if x != nil {
-		return x.Random
-	}
-	return false
-}
-
-var File_github_com_openconfig_gnmi_testing_fake_proto_fake_proto protoreflect.FileDescriptor
-
-var file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDesc = []byte{
-	0x0a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x74, 0x65, 0x73,
-	0x74, 0x69, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6b, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
-	0x66, 0x61, 0x6b, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x67, 0x6e, 0x6d, 0x69,
-	0x2e, 0x66, 0x61, 0x6b, 0x65, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x1a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x22, 0x3a, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e,
-	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x45,
-	0x0a, 0x0b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a,
-	0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73,
-	0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73,
-	0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x9b, 0x05, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x04,
-	0x73, 0x65, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04,
-	0x73, 0x65, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03,
-	0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65,
-	0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75,
-	0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x79,
-	0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c,
-	0x65, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f,
-	0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6e, 0x6d,
-	0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c,
-	0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
-	0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f,
-	0x65, 0x6f, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62,
-	0x6c, 0x65, 0x45, 0x6f, 0x66, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74,
-	0x69, 0x61, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6d,
-	0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61,
-	0x6c, 0x73, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12,
-	0x12, 0x0a, 0x04, 0x63, 0x65, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x63,
-	0x65, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65,
-	0x6c, 0x61, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c,
-	0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
-	0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x06,
-	0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d,
-	0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61,
-	0x6b, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
-	0x6f, 0x72, 0x48, 0x00, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x31, 0x0a, 0x05,
-	0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6e,
-	0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x47, 0x65, 0x6e,
-	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x12,
-	0x1f, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x0b,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x64, 0x64, 0x72,
-	0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x72, 0x74, 0x18, 0x0c,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x72, 0x74, 0x22,
-	0x45, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a,
-	0x04, 0x47, 0x52, 0x50, 0x43, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x55, 0x42, 0x42,
-	0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x4e, 0x4d, 0x49,
-	0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x47, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x4e, 0x4d, 0x49, 0x5f,
-	0x50, 0x52, 0x4f, 0x44, 0x10, 0x03, 0x42, 0x0b, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61,
-	0x74, 0x6f, 0x72, 0x22, 0x47, 0x0a, 0x0e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x47, 0x65, 0x6e, 0x65,
-	0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e,
-	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x4f, 0x0a, 0x0f,
-	0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12,
-	0x12, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73,
-	0x65, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x0d, 0x0a,
-	0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb2, 0x04, 0x0a,
-	0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
-	0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x32, 0x0a, 0x09, 0x74, 0x69,
-	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
-	0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
-	0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16,
-	0x0a, 0x06, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
-	0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x07,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x69, 0x6e,
-	0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
-	0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c,
-	0x75, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b,
-	0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x65,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65,
-	0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b,
-	0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x73,
-	0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x66, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x53, 0x74,
-	0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72,
-	0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x73, 0x79, 0x6e, 0x63,
-	0x18, 0x67, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x30,
-	0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
-	0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
-	0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,
-	0x12, 0x35, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x69,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65,
-	0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f,
-	0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x75, 0x69, 0x6e, 0x74, 0x5f,
-	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e,
-	0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75,
-	0x65, 0x48, 0x00, 0x52, 0x09, 0x75, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x48,
-	0x0a, 0x11, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61,
-	0x6c, 0x75, 0x65, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
-	0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c,
-	0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
-	0x65, 0x22, 0x63, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x1b, 0x0a, 0x09,
-	0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
-	0x08, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x4d, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6c,
-	0x74, 0x61, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65,
-	0x6c, 0x74, 0x61, 0x4d, 0x61, 0x78, 0x22, 0x87, 0x01, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x72, 0x61, 0x6e,
-	0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e,
-	0x66, 0x61, 0x6b, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52,
-	0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65,
-	0x2e, 0x49, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74,
-	0x42, 0x0e, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
-	0x22, 0x78, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07,
-	0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d,
-	0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75,
-	0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,
-	0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x4d, 0x69, 0x6e, 0x12, 0x1b, 0x0a,
-	0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
-	0x52, 0x08, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x4d, 0x61, 0x78, 0x22, 0x3b, 0x0a, 0x07, 0x49, 0x6e,
-	0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
-	0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
-	0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
-	0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x22, 0x90, 0x01, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62,
-	0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a,
-	0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
-	0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52,
-	0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a,
-	0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6e,
-	0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x4c, 0x69,
-	0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x64, 0x69,
-	0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7b, 0x0a, 0x0b, 0x44, 0x6f,
-	0x75, 0x62, 0x6c, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e,
-	0x69, 0x6d, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69,
-	0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1b, 0x0a,
-	0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01,
-	0x52, 0x08, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x4d, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65,
-	0x6c, 0x74, 0x61, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x64,
-	0x65, 0x6c, 0x74, 0x61, 0x4d, 0x61, 0x78, 0x22, 0x3e, 0x0a, 0x0a, 0x44, 0x6f, 0x75, 0x62, 0x6c,
-	0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
-	0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
-	0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
-	0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x22, 0x60, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e,
-	0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x04,
-	0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6e, 0x6d,
-	0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73,
-	0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x64, 0x69, 0x73,
-	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x0a, 0x0a, 0x53, 0x74, 0x72,
-	0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
-	0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
-	0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x08, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x22, 0x64, 0x0a, 0x0f, 0x53, 0x74, 0x72,
-	0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05,
-	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
-	0x75, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x15, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x53, 0x74, 0x72,
-	0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42,
-	0x0e, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22,
-	0x5c, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05,
-	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c,
-	0x75, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x42, 0x6f, 0x6f,
-	0x6c, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x0e, 0x0a,
-	0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3c, 0x0a,
-	0x08, 0x42, 0x6f, 0x6f, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74,
-	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69,
-	0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x09,
-	0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
-	0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12,
-	0x2c, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
-	0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x52,
-	0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x29, 0x0a,
-	0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e,
-	0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74,
-	0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74,
-	0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x09, 0x55, 0x69, 0x6e, 0x74,
-	0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12,
-	0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
-	0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6c,
-	0x74, 0x61, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65,
-	0x6c, 0x74, 0x61, 0x4d, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f,
-	0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x74, 0x61,
-	0x4d, 0x61, 0x78, 0x22, 0x3c, 0x0a, 0x08, 0x55, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12,
-	0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04,
-	0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e,
-	0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f,
-	0x6d, 0x2a, 0x2b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54,
-	0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x49, 0x54, 0x10,
-	0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x32, 0x9b,
-	0x01, 0x0a, 0x0c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12,
-	0x2b, 0x0a, 0x03, 0x41, 0x64, 0x64, 0x12, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61,
-	0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
-	0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x0a, 0x06,
-	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61,
-	0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
-	0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x0a, 0x06,
-	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61,
-	0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
-	0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x39, 0x5a, 0x37,
-	0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69,
-	0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6b, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x67, 0x6e,
-	0x6d, 0x69, 0x5f, 0x66, 0x61, 0x6b, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescOnce sync.Once
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescData = file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDesc
-)
-
-func file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP() []byte {
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescOnce.Do(func() {
-		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescData)
-	})
-	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescData
-}
-
-var file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
-var file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_goTypes = []interface{}{
-	(State)(0),                     // 0: gnmi.fake.State
-	(Config_ClientType)(0),         // 1: gnmi.fake.Config.ClientType
-	(*Configuration)(nil),          // 2: gnmi.fake.Configuration
-	(*Credentials)(nil),            // 3: gnmi.fake.Credentials
-	(*Config)(nil),                 // 4: gnmi.fake.Config
-	(*FixedGenerator)(nil),         // 5: gnmi.fake.FixedGenerator
-	(*RandomGenerator)(nil),        // 6: gnmi.fake.RandomGenerator
-	(*DeleteValue)(nil),            // 7: gnmi.fake.DeleteValue
-	(*Value)(nil),                  // 8: gnmi.fake.Value
-	(*Timestamp)(nil),              // 9: gnmi.fake.Timestamp
-	(*IntValue)(nil),               // 10: gnmi.fake.IntValue
-	(*IntRange)(nil),               // 11: gnmi.fake.IntRange
-	(*IntList)(nil),                // 12: gnmi.fake.IntList
-	(*DoubleValue)(nil),            // 13: gnmi.fake.DoubleValue
-	(*DoubleRange)(nil),            // 14: gnmi.fake.DoubleRange
-	(*DoubleList)(nil),             // 15: gnmi.fake.DoubleList
-	(*StringValue)(nil),            // 16: gnmi.fake.StringValue
-	(*StringList)(nil),             // 17: gnmi.fake.StringList
-	(*StringListValue)(nil),        // 18: gnmi.fake.StringListValue
-	(*BoolValue)(nil),              // 19: gnmi.fake.BoolValue
-	(*BoolList)(nil),               // 20: gnmi.fake.BoolList
-	(*UintValue)(nil),              // 21: gnmi.fake.UintValue
-	(*UintRange)(nil),              // 22: gnmi.fake.UintRange
-	(*UintList)(nil),               // 23: gnmi.fake.UintList
-	(*anypb.Any)(nil),              // 24: google.protobuf.Any
-	(*gnmi.SubscribeResponse)(nil), // 25: gnmi.SubscribeResponse
-}
-var file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_depIdxs = []int32{
-	4,  // 0: gnmi.fake.Configuration.config:type_name -> gnmi.fake.Config
-	8,  // 1: gnmi.fake.Config.values:type_name -> gnmi.fake.Value
-	1,  // 2: gnmi.fake.Config.client_type:type_name -> gnmi.fake.Config.ClientType
-	3,  // 3: gnmi.fake.Config.credentials:type_name -> gnmi.fake.Credentials
-	24, // 4: gnmi.fake.Config.custom:type_name -> google.protobuf.Any
-	6,  // 5: gnmi.fake.Config.random:type_name -> gnmi.fake.RandomGenerator
-	5,  // 6: gnmi.fake.Config.fixed:type_name -> gnmi.fake.FixedGenerator
-	25, // 7: gnmi.fake.FixedGenerator.responses:type_name -> gnmi.SubscribeResponse
-	8,  // 8: gnmi.fake.RandomGenerator.values:type_name -> gnmi.fake.Value
-	9,  // 9: gnmi.fake.Value.timestamp:type_name -> gnmi.fake.Timestamp
-	10, // 10: gnmi.fake.Value.int_value:type_name -> gnmi.fake.IntValue
-	13, // 11: gnmi.fake.Value.double_value:type_name -> gnmi.fake.DoubleValue
-	16, // 12: gnmi.fake.Value.string_value:type_name -> gnmi.fake.StringValue
-	7,  // 13: gnmi.fake.Value.delete:type_name -> gnmi.fake.DeleteValue
-	19, // 14: gnmi.fake.Value.bool_value:type_name -> gnmi.fake.BoolValue
-	21, // 15: gnmi.fake.Value.uint_value:type_name -> gnmi.fake.UintValue
-	18, // 16: gnmi.fake.Value.string_list_value:type_name -> gnmi.fake.StringListValue
-	11, // 17: gnmi.fake.IntValue.range:type_name -> gnmi.fake.IntRange
-	12, // 18: gnmi.fake.IntValue.list:type_name -> gnmi.fake.IntList
-	14, // 19: gnmi.fake.DoubleValue.range:type_name -> gnmi.fake.DoubleRange
-	15, // 20: gnmi.fake.DoubleValue.list:type_name -> gnmi.fake.DoubleList
-	17, // 21: gnmi.fake.StringValue.list:type_name -> gnmi.fake.StringList
-	17, // 22: gnmi.fake.StringListValue.list:type_name -> gnmi.fake.StringList
-	20, // 23: gnmi.fake.BoolValue.list:type_name -> gnmi.fake.BoolList
-	22, // 24: gnmi.fake.UintValue.range:type_name -> gnmi.fake.UintRange
-	23, // 25: gnmi.fake.UintValue.list:type_name -> gnmi.fake.UintList
-	4,  // 26: gnmi.fake.AgentManager.Add:input_type -> gnmi.fake.Config
-	4,  // 27: gnmi.fake.AgentManager.Remove:input_type -> gnmi.fake.Config
-	4,  // 28: gnmi.fake.AgentManager.Status:input_type -> gnmi.fake.Config
-	4,  // 29: gnmi.fake.AgentManager.Add:output_type -> gnmi.fake.Config
-	4,  // 30: gnmi.fake.AgentManager.Remove:output_type -> gnmi.fake.Config
-	4,  // 31: gnmi.fake.AgentManager.Status:output_type -> gnmi.fake.Config
-	29, // [29:32] is the sub-list for method output_type
-	26, // [26:29] is the sub-list for method input_type
-	26, // [26:26] is the sub-list for extension type_name
-	26, // [26:26] is the sub-list for extension extendee
-	0,  // [0:26] is the sub-list for field type_name
-}
-
-func init() { file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_init() }
-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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 interface{}, i int) interface{} {
-			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 = []interface{}{
-		(*Config_Custom)(nil),
-		(*Config_Random)(nil),
-		(*Config_Fixed)(nil),
-	}
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[6].OneofWrappers = []interface{}{
-		(*Value_IntValue)(nil),
-		(*Value_DoubleValue)(nil),
-		(*Value_StringValue)(nil),
-		(*Value_Sync)(nil),
-		(*Value_Delete)(nil),
-		(*Value_BoolValue)(nil),
-		(*Value_UintValue)(nil),
-		(*Value_StringListValue)(nil),
-	}
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[8].OneofWrappers = []interface{}{
-		(*IntValue_Range)(nil),
-		(*IntValue_List)(nil),
-	}
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[11].OneofWrappers = []interface{}{
-		(*DoubleValue_Range)(nil),
-		(*DoubleValue_List)(nil),
-	}
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[14].OneofWrappers = []interface{}{
-		(*StringValue_List)(nil),
-	}
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[16].OneofWrappers = []interface{}{
-		(*StringListValue_List)(nil),
-	}
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[17].OneofWrappers = []interface{}{
-		(*BoolValue_List)(nil),
-	}
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[19].OneofWrappers = []interface{}{
-		(*UintValue_Range)(nil),
-		(*UintValue_List)(nil),
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDesc,
-			NumEnums:      2,
-			NumMessages:   22,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_goTypes,
-		DependencyIndexes: file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_depIdxs,
-		EnumInfos:         file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_enumTypes,
-		MessageInfos:      file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes,
-	}.Build()
-	File_github_com_openconfig_gnmi_testing_fake_proto_fake_proto = out.File
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDesc = nil
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_goTypes = nil
-	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_depIdxs = nil
-}
diff --git a/go/github.com/openconfig/gnmi/testing/fake/proto/fake_grpc.pb.go b/go/github.com/openconfig/gnmi/testing/fake/proto/fake_grpc.pb.go
deleted file mode 100644
index 8b42d6e..0000000
--- a/go/github.com/openconfig/gnmi/testing/fake/proto/fake_grpc.pb.go
+++ /dev/null
@@ -1,179 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package gnmi_fake
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// AgentManagerClient is the client API for AgentManager service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type AgentManagerClient interface {
-	// Add adds an agent to the server.
-	Add(ctx context.Context, in *Config, opts ...grpc.CallOption) (*Config, error)
-	// Remove removes an agent from the server.
-	Remove(ctx context.Context, in *Config, opts ...grpc.CallOption) (*Config, error)
-	// Status returns the current status of an agent on the server.
-	Status(ctx context.Context, in *Config, opts ...grpc.CallOption) (*Config, error)
-}
-
-type agentManagerClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewAgentManagerClient(cc grpc.ClientConnInterface) AgentManagerClient {
-	return &agentManagerClient{cc}
-}
-
-func (c *agentManagerClient) Add(ctx context.Context, in *Config, opts ...grpc.CallOption) (*Config, error) {
-	out := new(Config)
-	err := c.cc.Invoke(ctx, "/gnmi.fake.AgentManager/Add", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *agentManagerClient) Remove(ctx context.Context, in *Config, opts ...grpc.CallOption) (*Config, error) {
-	out := new(Config)
-	err := c.cc.Invoke(ctx, "/gnmi.fake.AgentManager/Remove", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *agentManagerClient) Status(ctx context.Context, in *Config, opts ...grpc.CallOption) (*Config, error) {
-	out := new(Config)
-	err := c.cc.Invoke(ctx, "/gnmi.fake.AgentManager/Status", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// AgentManagerServer is the server API for AgentManager service.
-// All implementations must embed UnimplementedAgentManagerServer
-// for forward compatibility
-type AgentManagerServer interface {
-	// Add adds an agent to the server.
-	Add(context.Context, *Config) (*Config, error)
-	// Remove removes an agent from the server.
-	Remove(context.Context, *Config) (*Config, error)
-	// Status returns the current status of an agent on the server.
-	Status(context.Context, *Config) (*Config, error)
-	mustEmbedUnimplementedAgentManagerServer()
-}
-
-// UnimplementedAgentManagerServer must be embedded to have forward compatible implementations.
-type UnimplementedAgentManagerServer struct {
-}
-
-func (UnimplementedAgentManagerServer) Add(context.Context, *Config) (*Config, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Add not implemented")
-}
-func (UnimplementedAgentManagerServer) Remove(context.Context, *Config) (*Config, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Remove not implemented")
-}
-func (UnimplementedAgentManagerServer) Status(context.Context, *Config) (*Config, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Status not implemented")
-}
-func (UnimplementedAgentManagerServer) mustEmbedUnimplementedAgentManagerServer() {}
-
-// UnsafeAgentManagerServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to AgentManagerServer will
-// result in compilation errors.
-type UnsafeAgentManagerServer interface {
-	mustEmbedUnimplementedAgentManagerServer()
-}
-
-func RegisterAgentManagerServer(s grpc.ServiceRegistrar, srv AgentManagerServer) {
-	s.RegisterService(&AgentManager_ServiceDesc, srv)
-}
-
-func _AgentManager_Add_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Config)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AgentManagerServer).Add(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gnmi.fake.AgentManager/Add",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AgentManagerServer).Add(ctx, req.(*Config))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AgentManager_Remove_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Config)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AgentManagerServer).Remove(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gnmi.fake.AgentManager/Remove",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AgentManagerServer).Remove(ctx, req.(*Config))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AgentManager_Status_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Config)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AgentManagerServer).Status(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gnmi.fake.AgentManager/Status",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AgentManagerServer).Status(ctx, req.(*Config))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-// AgentManager_ServiceDesc is the grpc.ServiceDesc for AgentManager service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var AgentManager_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "gnmi.fake.AgentManager",
-	HandlerType: (*AgentManagerServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "Add",
-			Handler:    _AgentManager_Add_Handler,
-		},
-		{
-			MethodName: "Remove",
-			Handler:    _AgentManager_Remove_Handler,
-		},
-		{
-			MethodName: "Status",
-			Handler:    _AgentManager_Status_Handler,
-		},
-	},
-	Streams:  []grpc.StreamDesc{},
-	Metadata: "github.com/openconfig/gnmi/testing/fake/proto/fake.proto",
-}
diff --git a/go/gosdn/core/core.pb.go b/go/gosdn/core/core.pb.go
index 6d92b80..7d0994a 100644
--- a/go/gosdn/core/core.pb.go
+++ b/go/gosdn/core/core.pb.go
@@ -22,50 +22,53 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-type SetPndResponseStatus int32
+type CreatePndResponse_Status int32
 
 const (
-	SetPndResponse_OK    SetPndResponseStatus = 0
-	SetPndResponse_ERROR SetPndResponseStatus = 1
+	CreatePndResponse_STATUS_UNSPECIFIED CreatePndResponse_Status = 0
+	CreatePndResponse_STATUS_OK          CreatePndResponse_Status = 1
+	CreatePndResponse_STATUS_ERROR       CreatePndResponse_Status = 2
 )
 
-// Enum value maps for SetPndResponseStatus.
+// Enum value maps for CreatePndResponse_Status.
 var (
-	SetPndResponseStatus_name = map[int32]string{
-		0: "OK",
-		1: "ERROR",
+	CreatePndResponse_Status_name = map[int32]string{
+		0: "STATUS_UNSPECIFIED",
+		1: "STATUS_OK",
+		2: "STATUS_ERROR",
 	}
-	SetPndResponseStatus_value = map[string]int32{
-		"OK":    0,
-		"ERROR": 1,
+	CreatePndResponse_Status_value = map[string]int32{
+		"STATUS_UNSPECIFIED": 0,
+		"STATUS_OK":          1,
+		"STATUS_ERROR":       2,
 	}
 )
 
-func (x SetPndResponseStatus) Enum() *SetPndResponseStatus {
-	p := new(SetPndResponseStatus)
+func (x CreatePndResponse_Status) Enum() *CreatePndResponse_Status {
+	p := new(CreatePndResponse_Status)
 	*p = x
 	return p
 }
 
-func (x SetPndResponseStatus) String() string {
+func (x CreatePndResponse_Status) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (SetPndResponseStatus) Descriptor() protoreflect.EnumDescriptor {
+func (CreatePndResponse_Status) Descriptor() protoreflect.EnumDescriptor {
 	return file_gosdn_core_core_proto_enumTypes[0].Descriptor()
 }
 
-func (SetPndResponseStatus) Type() protoreflect.EnumType {
+func (CreatePndResponse_Status) Type() protoreflect.EnumType {
 	return &file_gosdn_core_core_proto_enumTypes[0]
 }
 
-func (x SetPndResponseStatus) Number() protoreflect.EnumNumber {
+func (x CreatePndResponse_Status) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use SetPndResponseStatus.Descriptor instead.
-func (SetPndResponseStatus) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_core_core_proto_rawDescGZIP(), []int{5, 0}
+// Deprecated: Use CreatePndResponse_Status.Descriptor instead.
+func (CreatePndResponse_Status) EnumDescriptor() ([]byte, []int) {
+	return file_gosdn_core_core_proto_rawDescGZIP(), []int{6, 0}
 }
 
 type GetPndListRequest struct {
@@ -120,8 +123,8 @@ type GetPndRequest struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Timestamp int64    `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	Pid       []string `protobuf:"bytes,3,rep,name=pid,proto3" json:"pid,omitempty"`
+	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	Pid       string `protobuf:"bytes,3,opt,name=pid,proto3" json:"pid,omitempty"`
 }
 
 func (x *GetPndRequest) Reset() {
@@ -163,14 +166,14 @@ func (x *GetPndRequest) GetTimestamp() int64 {
 	return 0
 }
 
-func (x *GetPndRequest) GetPid() []string {
+func (x *GetPndRequest) GetPid() string {
 	if x != nil {
 		return x.Pid
 	}
-	return nil
+	return ""
 }
 
-type GetPndResponse struct {
+type GetPndListResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -179,10 +182,65 @@ type GetPndResponse struct {
 	Pnd       []*pnd.PrincipalNetworkDomain `protobuf:"bytes,2,rep,name=pnd,proto3" json:"pnd,omitempty"`
 }
 
+func (x *GetPndListResponse) Reset() {
+	*x = GetPndListResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_gosdn_core_core_proto_msgTypes[2]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *GetPndListResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetPndListResponse) ProtoMessage() {}
+
+func (x *GetPndListResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_core_core_proto_msgTypes[2]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetPndListResponse.ProtoReflect.Descriptor instead.
+func (*GetPndListResponse) Descriptor() ([]byte, []int) {
+	return file_gosdn_core_core_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *GetPndListResponse) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *GetPndListResponse) GetPnd() []*pnd.PrincipalNetworkDomain {
+	if x != nil {
+		return x.Pnd
+	}
+	return nil
+}
+
+type GetPndResponse 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.
+	Pnd       *pnd.PrincipalNetworkDomain `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
+}
+
 func (x *GetPndResponse) Reset() {
 	*x = GetPndResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_core_core_proto_msgTypes[2]
+		mi := &file_gosdn_core_core_proto_msgTypes[3]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -195,7 +253,7 @@ func (x *GetPndResponse) String() string {
 func (*GetPndResponse) ProtoMessage() {}
 
 func (x *GetPndResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_core_core_proto_msgTypes[2]
+	mi := &file_gosdn_core_core_proto_msgTypes[3]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -208,7 +266,7 @@ func (x *GetPndResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetPndResponse.ProtoReflect.Descriptor instead.
 func (*GetPndResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_core_core_proto_rawDescGZIP(), []int{2}
+	return file_gosdn_core_core_proto_rawDescGZIP(), []int{3}
 }
 
 func (x *GetPndResponse) GetTimestamp() int64 {
@@ -218,39 +276,39 @@ func (x *GetPndResponse) GetTimestamp() int64 {
 	return 0
 }
 
-func (x *GetPndResponse) GetPnd() []*pnd.PrincipalNetworkDomain {
+func (x *GetPndResponse) GetPnd() *pnd.PrincipalNetworkDomain {
 	if x != nil {
 		return x.Pnd
 	}
 	return nil
 }
 
-type SetPndRequest struct {
+type CreatePndRequest 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.
-	Pnd       []*SetPnd `protobuf:"bytes,2,rep,name=pnd,proto3" json:"pnd,omitempty"`
+	Timestamp int64                `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	Pnd       *PndCreateProperties `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
 }
 
-func (x *SetPndRequest) Reset() {
-	*x = SetPndRequest{}
+func (x *CreatePndRequest) Reset() {
+	*x = CreatePndRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_core_core_proto_msgTypes[3]
+		mi := &file_gosdn_core_core_proto_msgTypes[4]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *SetPndRequest) String() string {
+func (x *CreatePndRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*SetPndRequest) ProtoMessage() {}
+func (*CreatePndRequest) ProtoMessage() {}
 
-func (x *SetPndRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_core_core_proto_msgTypes[3]
+func (x *CreatePndRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_core_core_proto_msgTypes[4]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -261,26 +319,26 @@ func (x *SetPndRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use SetPndRequest.ProtoReflect.Descriptor instead.
-func (*SetPndRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_core_core_proto_rawDescGZIP(), []int{3}
+// Deprecated: Use CreatePndRequest.ProtoReflect.Descriptor instead.
+func (*CreatePndRequest) Descriptor() ([]byte, []int) {
+	return file_gosdn_core_core_proto_rawDescGZIP(), []int{4}
 }
 
-func (x *SetPndRequest) GetTimestamp() int64 {
+func (x *CreatePndRequest) GetTimestamp() int64 {
 	if x != nil {
 		return x.Timestamp
 	}
 	return 0
 }
 
-func (x *SetPndRequest) GetPnd() []*SetPnd {
+func (x *CreatePndRequest) GetPnd() *PndCreateProperties {
 	if x != nil {
 		return x.Pnd
 	}
 	return nil
 }
 
-type SetPnd struct {
+type PndCreateProperties struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -290,23 +348,23 @@ type SetPnd struct {
 	Sbi         string `protobuf:"bytes,3,opt,name=sbi,proto3" json:"sbi,omitempty"`
 }
 
-func (x *SetPnd) Reset() {
-	*x = SetPnd{}
+func (x *PndCreateProperties) Reset() {
+	*x = PndCreateProperties{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_core_core_proto_msgTypes[4]
+		mi := &file_gosdn_core_core_proto_msgTypes[5]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *SetPnd) String() string {
+func (x *PndCreateProperties) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*SetPnd) ProtoMessage() {}
+func (*PndCreateProperties) ProtoMessage() {}
 
-func (x *SetPnd) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_core_core_proto_msgTypes[4]
+func (x *PndCreateProperties) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_core_core_proto_msgTypes[5]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -317,58 +375,58 @@ func (x *SetPnd) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use SetPnd.ProtoReflect.Descriptor instead.
-func (*SetPnd) Descriptor() ([]byte, []int) {
-	return file_gosdn_core_core_proto_rawDescGZIP(), []int{4}
+// Deprecated: Use PndCreateProperties.ProtoReflect.Descriptor instead.
+func (*PndCreateProperties) Descriptor() ([]byte, []int) {
+	return file_gosdn_core_core_proto_rawDescGZIP(), []int{5}
 }
 
-func (x *SetPnd) GetName() string {
+func (x *PndCreateProperties) GetName() string {
 	if x != nil {
 		return x.Name
 	}
 	return ""
 }
 
-func (x *SetPnd) GetDescription() string {
+func (x *PndCreateProperties) GetDescription() string {
 	if x != nil {
 		return x.Description
 	}
 	return ""
 }
 
-func (x *SetPnd) GetSbi() string {
+func (x *PndCreateProperties) GetSbi() string {
 	if x != nil {
 		return x.Sbi
 	}
 	return ""
 }
 
-type SetPndResponse struct {
+type CreatePndResponse 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.
-	Status    SetPndResponseStatus `protobuf:"varint,2,opt,name=Status,proto3,enum=gosdn.core.SetPndResponseStatus" json:"Status,omitempty"`
+	Timestamp int64                    `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	Status    CreatePndResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.core.v1alpha.CreatePndResponse_Status" json:"status,omitempty"`
 }
 
-func (x *SetPndResponse) Reset() {
-	*x = SetPndResponse{}
+func (x *CreatePndResponse) Reset() {
+	*x = CreatePndResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_core_core_proto_msgTypes[5]
+		mi := &file_gosdn_core_core_proto_msgTypes[6]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *SetPndResponse) String() string {
+func (x *CreatePndResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*SetPndResponse) ProtoMessage() {}
+func (*CreatePndResponse) ProtoMessage() {}
 
-func (x *SetPndResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_core_core_proto_msgTypes[5]
+func (x *CreatePndResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_core_core_proto_msgTypes[6]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -379,83 +437,101 @@ func (x *SetPndResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use SetPndResponse.ProtoReflect.Descriptor instead.
-func (*SetPndResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_core_core_proto_rawDescGZIP(), []int{5}
+// Deprecated: Use CreatePndResponse.ProtoReflect.Descriptor instead.
+func (*CreatePndResponse) Descriptor() ([]byte, []int) {
+	return file_gosdn_core_core_proto_rawDescGZIP(), []int{6}
 }
 
-func (x *SetPndResponse) GetTimestamp() int64 {
+func (x *CreatePndResponse) GetTimestamp() int64 {
 	if x != nil {
 		return x.Timestamp
 	}
 	return 0
 }
 
-func (x *SetPndResponse) GetStatus() SetPndResponseStatus {
+func (x *CreatePndResponse) GetStatus() CreatePndResponse_Status {
 	if x != nil {
 		return x.Status
 	}
-	return SetPndResponse_OK
+	return CreatePndResponse_STATUS_UNSPECIFIED
 }
 
 var File_gosdn_core_core_proto protoreflect.FileDescriptor
 
 var file_gosdn_core_core_proto_rawDesc = []byte{
 	0x0a, 0x15, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x72,
-	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
-	0x6f, 0x72, 0x65, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f,
-	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x1a, 0x13, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x70, 0x6e, 0x64,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x31, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x6e, 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, 0x22, 0x3f, 0x0a, 0x0d, 0x47, 0x65, 0x74,
-	0x50, 0x6e, 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, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18,
-	0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x63, 0x0a, 0x0e, 0x47, 0x65,
-	0x74, 0x50, 0x6e, 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, 0x03, 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, 0x22,
-	0x53, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x50, 0x6e, 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, 0x24,
-	0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f,
-	0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x6e, 0x64, 0x52,
-	0x03, 0x70, 0x6e, 0x64, 0x22, 0x50, 0x0a, 0x06, 0x73, 0x65, 0x74, 0x50, 0x6e, 0x64, 0x12, 0x12,
-	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
-	0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
-	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x03, 0x73, 0x62, 0x69, 0x22, 0x86, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x50, 0x6e,
-	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, 0x39, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
-	0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74,
-	0x75, 0x73, 0x22, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02,
-	0x4f, 0x4b, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x32,
-	0x8d, 0x02, 0x0a, 0x04, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x50,
-	0x6e, 0x64, 0x12, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
-	0x47, 0x65, 0x74, 0x50, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e,
-	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6e,
-	0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02,
-	0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d,
-	0x12, 0x58, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d,
-	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50,
-	0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e,
-	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6e,
-	0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02,
-	0x09, 0x12, 0x07, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x12, 0x53, 0x0a, 0x06, 0x53, 0x65,
-	0x74, 0x50, 0x6e, 0x64, 0x12, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72,
-	0x65, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x1a, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x74,
-	0x50, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x12, 0x82, 0xd3, 0xe4,
-	0x93, 0x02, 0x0c, 0x3a, 0x01, 0x2a, 0x22, 0x07, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x42,
+	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
+	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x1a, 0x1c, 0x67, 0x6f, 0x6f,
+	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x67, 0x6f, 0x73, 0x64, 0x6e,
+	0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x70, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x31,
+	0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x6e, 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, 0x22, 0x3f, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x6e, 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, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70,
+	0x69, 0x64, 0x22, 0x6f, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x6e, 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, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20,
+	0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e,
+	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x22, 0x6b, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x6e, 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, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61,
+	0x6c, 0x70, 0x68, 0x61, 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,
+	0x22, 0x6b, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6e, 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, 0x39, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x61,
+	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72,
+	0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x03, 0x70, 0x6e, 0x64, 0x22, 0x5d, 0x0a,
+	0x13, 0x50, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
+	0x74, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,
+	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
+	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x62,
+	0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x62, 0x69, 0x22, 0xba, 0x01, 0x0a,
+	0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6e, 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, 0x44, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
+	0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31,
+	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6e, 0x64, 0x52,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
+	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+	0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
+	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54,
+	0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55,
+	0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x32, 0xd3, 0x02, 0x0a, 0x0b, 0x43, 0x6f,
+	0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x06, 0x47, 0x65, 0x74,
+	0x50, 0x6e, 0x64, 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65,
+	0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6e, 0x64, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
+	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50,
+	0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93,
+	0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x7b, 0x70, 0x69, 0x64,
+	0x7d, 0x12, 0x6d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12,
+	0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x61,
+	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
+	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50,
+	0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10,
+	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73,
+	0x12, 0x6d, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6e, 0x64, 0x12, 0x24, 0x2e,
+	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
+	0x68, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65,
+	0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50,
+	0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93,
+	0x02, 0x0d, 0x3a, 0x01, 0x2a, 0x22, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x42,
 	0x2a, 0x5a, 0x28, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61,
 	0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
 	0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f,
@@ -475,32 +551,34 @@ func file_gosdn_core_core_proto_rawDescGZIP() []byte {
 }
 
 var file_gosdn_core_core_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_gosdn_core_core_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_gosdn_core_core_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
 var file_gosdn_core_core_proto_goTypes = []interface{}{
-	(SetPndResponseStatus)(0),          // 0: gosdn.core.SetPndResponse.status
-	(*GetPndListRequest)(nil),          // 1: gosdn.core.GetPndListRequest
-	(*GetPndRequest)(nil),              // 2: gosdn.core.GetPndRequest
-	(*GetPndResponse)(nil),             // 3: gosdn.core.GetPndResponse
-	(*SetPndRequest)(nil),              // 4: gosdn.core.SetPndRequest
-	(*SetPnd)(nil),                     // 5: gosdn.core.setPnd
-	(*SetPndResponse)(nil),             // 6: gosdn.core.SetPndResponse
-	(*pnd.PrincipalNetworkDomain)(nil), // 7: gosdn.pnd.PrincipalNetworkDomain
+	(CreatePndResponse_Status)(0),      // 0: gosdn.core.v1alpha.CreatePndResponse.Status
+	(*GetPndListRequest)(nil),          // 1: gosdn.core.v1alpha.GetPndListRequest
+	(*GetPndRequest)(nil),              // 2: gosdn.core.v1alpha.GetPndRequest
+	(*GetPndListResponse)(nil),         // 3: gosdn.core.v1alpha.GetPndListResponse
+	(*GetPndResponse)(nil),             // 4: gosdn.core.v1alpha.GetPndResponse
+	(*CreatePndRequest)(nil),           // 5: gosdn.core.v1alpha.CreatePndRequest
+	(*PndCreateProperties)(nil),        // 6: gosdn.core.v1alpha.PndCreateProperties
+	(*CreatePndResponse)(nil),          // 7: gosdn.core.v1alpha.CreatePndResponse
+	(*pnd.PrincipalNetworkDomain)(nil), // 8: gosdn.pnd.v1alpha.PrincipalNetworkDomain
 }
 var file_gosdn_core_core_proto_depIdxs = []int32{
-	7, // 0: gosdn.core.GetPndResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
-	5, // 1: gosdn.core.SetPndRequest.pnd:type_name -> gosdn.core.setPnd
-	0, // 2: gosdn.core.SetPndResponse.Status:type_name -> gosdn.core.SetPndResponse.status
-	2, // 3: gosdn.core.core.GetPnd:input_type -> gosdn.core.GetPndRequest
-	1, // 4: gosdn.core.core.GetPndList:input_type -> gosdn.core.GetPndListRequest
-	4, // 5: gosdn.core.core.SetPnd:input_type -> gosdn.core.SetPndRequest
-	3, // 6: gosdn.core.core.GetPnd:output_type -> gosdn.core.GetPndResponse
-	3, // 7: gosdn.core.core.GetPndList:output_type -> gosdn.core.GetPndResponse
-	6, // 8: gosdn.core.core.SetPnd:output_type -> gosdn.core.SetPndResponse
-	6, // [6:9] is the sub-list for method output_type
-	3, // [3:6] is the sub-list for method input_type
-	3, // [3:3] is the sub-list for extension type_name
-	3, // [3:3] is the sub-list for extension extendee
-	0, // [0:3] is the sub-list for field type_name
+	8, // 0: gosdn.core.v1alpha.GetPndListResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
+	8, // 1: gosdn.core.v1alpha.GetPndResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
+	6, // 2: gosdn.core.v1alpha.CreatePndRequest.pnd:type_name -> gosdn.core.v1alpha.PndCreateProperties
+	0, // 3: gosdn.core.v1alpha.CreatePndResponse.status:type_name -> gosdn.core.v1alpha.CreatePndResponse.Status
+	2, // 4: gosdn.core.v1alpha.CoreService.GetPnd:input_type -> gosdn.core.v1alpha.GetPndRequest
+	1, // 5: gosdn.core.v1alpha.CoreService.GetPndList:input_type -> gosdn.core.v1alpha.GetPndListRequest
+	5, // 6: gosdn.core.v1alpha.CoreService.CreatePnd:input_type -> gosdn.core.v1alpha.CreatePndRequest
+	4, // 7: gosdn.core.v1alpha.CoreService.GetPnd:output_type -> gosdn.core.v1alpha.GetPndResponse
+	3, // 8: gosdn.core.v1alpha.CoreService.GetPndList:output_type -> gosdn.core.v1alpha.GetPndListResponse
+	7, // 9: gosdn.core.v1alpha.CoreService.CreatePnd:output_type -> gosdn.core.v1alpha.CreatePndResponse
+	7, // [7:10] is the sub-list for method output_type
+	4, // [4:7] is the sub-list for method input_type
+	4, // [4:4] is the sub-list for extension type_name
+	4, // [4:4] is the sub-list for extension extendee
+	0, // [0:4] is the sub-list for field type_name
 }
 
 func init() { file_gosdn_core_core_proto_init() }
@@ -534,7 +612,7 @@ func file_gosdn_core_core_proto_init() {
 			}
 		}
 		file_gosdn_core_core_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetPndResponse); i {
+			switch v := v.(*GetPndListResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -546,7 +624,7 @@ func file_gosdn_core_core_proto_init() {
 			}
 		}
 		file_gosdn_core_core_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetPndRequest); i {
+			switch v := v.(*GetPndResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -558,7 +636,7 @@ func file_gosdn_core_core_proto_init() {
 			}
 		}
 		file_gosdn_core_core_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetPnd); i {
+			switch v := v.(*CreatePndRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -570,7 +648,19 @@ func file_gosdn_core_core_proto_init() {
 			}
 		}
 		file_gosdn_core_core_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetPndResponse); i {
+			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_core_core_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*CreatePndResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -588,7 +678,7 @@ func file_gosdn_core_core_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_gosdn_core_core_proto_rawDesc,
 			NumEnums:      1,
-			NumMessages:   6,
+			NumMessages:   7,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
diff --git a/go/gosdn/core/core.pb.gw.go b/go/gosdn/core/core.pb.gw.go
index 8dfdf69..e272456 100644
--- a/go/gosdn/core/core.pb.gw.go
+++ b/go/gosdn/core/core.pb.gw.go
@@ -32,10 +32,10 @@ var _ = utilities.NewDoubleArray
 var _ = metadata.Join
 
 var (
-	filter_Core_GetPnd_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
+	filter_CoreService_GetPnd_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
 )
 
-func request_Core_GetPnd_0(ctx context.Context, marshaler runtime.Marshaler, client CoreClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func request_CoreService_GetPnd_0(ctx context.Context, marshaler runtime.Marshaler, client CoreServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetPndRequest
 	var metadata runtime.ServerMetadata
 
@@ -51,7 +51,7 @@ func request_Core_GetPnd_0(ctx context.Context, marshaler runtime.Marshaler, cli
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
 	}
 
-	protoReq.Pid, err = runtime.StringSlice(val, ",")
+	protoReq.Pid, err = runtime.String(val)
 	if err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
 	}
@@ -59,7 +59,7 @@ func request_Core_GetPnd_0(ctx context.Context, marshaler runtime.Marshaler, cli
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Core_GetPnd_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CoreService_GetPnd_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -68,7 +68,7 @@ func request_Core_GetPnd_0(ctx context.Context, marshaler runtime.Marshaler, cli
 
 }
 
-func local_request_Core_GetPnd_0(ctx context.Context, marshaler runtime.Marshaler, server CoreServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func local_request_CoreService_GetPnd_0(ctx context.Context, marshaler runtime.Marshaler, server CoreServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetPndRequest
 	var metadata runtime.ServerMetadata
 
@@ -84,7 +84,7 @@ func local_request_Core_GetPnd_0(ctx context.Context, marshaler runtime.Marshale
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
 	}
 
-	protoReq.Pid, err = runtime.StringSlice(val, ",")
+	protoReq.Pid, err = runtime.String(val)
 	if err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
 	}
@@ -92,7 +92,7 @@ func local_request_Core_GetPnd_0(ctx context.Context, marshaler runtime.Marshale
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Core_GetPnd_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CoreService_GetPnd_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -102,17 +102,17 @@ func local_request_Core_GetPnd_0(ctx context.Context, marshaler runtime.Marshale
 }
 
 var (
-	filter_Core_GetPndList_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
+	filter_CoreService_GetPndList_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
 )
 
-func request_Core_GetPndList_0(ctx context.Context, marshaler runtime.Marshaler, client CoreClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func request_CoreService_GetPndList_0(ctx context.Context, marshaler runtime.Marshaler, client CoreServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetPndListRequest
 	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_Core_GetPndList_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CoreService_GetPndList_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -121,14 +121,14 @@ func request_Core_GetPndList_0(ctx context.Context, marshaler runtime.Marshaler,
 
 }
 
-func local_request_Core_GetPndList_0(ctx context.Context, marshaler runtime.Marshaler, server CoreServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func local_request_CoreService_GetPndList_0(ctx context.Context, marshaler runtime.Marshaler, server CoreServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetPndListRequest
 	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_Core_GetPndList_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CoreService_GetPndList_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -137,8 +137,8 @@ func local_request_Core_GetPndList_0(ctx context.Context, marshaler runtime.Mars
 
 }
 
-func request_Core_SetPnd_0(ctx context.Context, marshaler runtime.Marshaler, client CoreClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetPndRequest
+func request_CoreService_CreatePnd_0(ctx context.Context, marshaler runtime.Marshaler, client CoreServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq CreatePndRequest
 	var metadata runtime.ServerMetadata
 
 	newReader, berr := utilities.IOReaderFactory(req.Body)
@@ -149,13 +149,13 @@ func request_Core_SetPnd_0(ctx context.Context, marshaler runtime.Marshaler, cli
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
-	msg, err := client.SetPnd(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+	msg, err := client.CreatePnd(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
 	return msg, metadata, err
 
 }
 
-func local_request_Core_SetPnd_0(ctx context.Context, marshaler runtime.Marshaler, server CoreServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetPndRequest
+func local_request_CoreService_CreatePnd_0(ctx context.Context, marshaler runtime.Marshaler, server CoreServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq CreatePndRequest
 	var metadata runtime.ServerMetadata
 
 	newReader, berr := utilities.IOReaderFactory(req.Body)
@@ -166,29 +166,29 @@ func local_request_Core_SetPnd_0(ctx context.Context, marshaler runtime.Marshale
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
-	msg, err := server.SetPnd(ctx, &protoReq)
+	msg, err := server.CreatePnd(ctx, &protoReq)
 	return msg, metadata, err
 
 }
 
-// RegisterCoreHandlerServer registers the http handlers for service Core to "mux".
-// UnaryRPC     :call CoreServer directly.
+// RegisterCoreServiceHandlerServer registers the http handlers for service CoreService to "mux".
+// UnaryRPC     :call CoreServiceServer directly.
 // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
-// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterCoreHandlerFromEndpoint instead.
-func RegisterCoreHandlerServer(ctx context.Context, mux *runtime.ServeMux, server CoreServer) error {
+// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterCoreServiceHandlerFromEndpoint instead.
+func RegisterCoreServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server CoreServiceServer) error {
 
-	mux.Handle("GET", pattern_Core_GetPnd_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_CoreService_GetPnd_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.core.Core/GetPnd", runtime.WithHTTPPathPattern("/v1/pnd/{pid}"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.core.v1alpha.CoreService/GetPnd", runtime.WithHTTPPathPattern("/v1/pnd/{pid}"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Core_GetPnd_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_CoreService_GetPnd_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -196,22 +196,22 @@ func RegisterCoreHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
 			return
 		}
 
-		forward_Core_GetPnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_CoreService_GetPnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Core_GetPndList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_CoreService_GetPndList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.core.Core/GetPndList", runtime.WithHTTPPathPattern("/v1/pnd"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.core.v1alpha.CoreService/GetPndList", runtime.WithHTTPPathPattern("/v1/pnds"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Core_GetPndList_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_CoreService_GetPndList_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -219,22 +219,22 @@ func RegisterCoreHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
 			return
 		}
 
-		forward_Core_GetPndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_CoreService_GetPndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("POST", pattern_Core_SetPnd_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("POST", pattern_CoreService_CreatePnd_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.core.Core/SetPnd", runtime.WithHTTPPathPattern("/v1/pnd"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.core.v1alpha.CoreService/CreatePnd", runtime.WithHTTPPathPattern("/v1/pnds"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Core_SetPnd_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_CoreService_CreatePnd_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -242,16 +242,16 @@ func RegisterCoreHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve
 			return
 		}
 
-		forward_Core_SetPnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_CoreService_CreatePnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
 	return nil
 }
 
-// RegisterCoreHandlerFromEndpoint is same as RegisterCoreHandler but
+// RegisterCoreServiceHandlerFromEndpoint is same as RegisterCoreServiceHandler but
 // automatically dials to "endpoint" and closes the connection when "ctx" gets done.
-func RegisterCoreHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
+func RegisterCoreServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
 	conn, err := grpc.Dial(endpoint, opts...)
 	if err != nil {
 		return err
@@ -271,79 +271,79 @@ func RegisterCoreHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux,
 		}()
 	}()
 
-	return RegisterCoreHandler(ctx, mux, conn)
+	return RegisterCoreServiceHandler(ctx, mux, conn)
 }
 
-// RegisterCoreHandler registers the http handlers for service Core to "mux".
+// RegisterCoreServiceHandler registers the http handlers for service CoreService to "mux".
 // The handlers forward requests to the grpc endpoint over "conn".
-func RegisterCoreHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
-	return RegisterCoreHandlerClient(ctx, mux, NewCoreClient(conn))
+func RegisterCoreServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
+	return RegisterCoreServiceHandlerClient(ctx, mux, NewCoreServiceClient(conn))
 }
 
-// RegisterCoreHandlerClient registers the http handlers for service Core
-// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "CoreClient".
-// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "CoreClient"
+// RegisterCoreServiceHandlerClient registers the http handlers for service CoreService
+// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "CoreServiceClient".
+// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "CoreServiceClient"
 // doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
-// "CoreClient" to call the correct interceptors.
-func RegisterCoreHandlerClient(ctx context.Context, mux *runtime.ServeMux, client CoreClient) error {
+// "CoreServiceClient" to call the correct interceptors.
+func RegisterCoreServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client CoreServiceClient) error {
 
-	mux.Handle("GET", pattern_Core_GetPnd_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_CoreService_GetPnd_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.core.Core/GetPnd", runtime.WithHTTPPathPattern("/v1/pnd/{pid}"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.core.v1alpha.CoreService/GetPnd", runtime.WithHTTPPathPattern("/v1/pnd/{pid}"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Core_GetPnd_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_CoreService_GetPnd_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Core_GetPnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_CoreService_GetPnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Core_GetPndList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_CoreService_GetPndList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.core.Core/GetPndList", runtime.WithHTTPPathPattern("/v1/pnd"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.core.v1alpha.CoreService/GetPndList", runtime.WithHTTPPathPattern("/v1/pnds"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Core_GetPndList_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_CoreService_GetPndList_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Core_GetPndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_CoreService_GetPndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("POST", pattern_Core_SetPnd_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("POST", pattern_CoreService_CreatePnd_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.core.Core/SetPnd", runtime.WithHTTPPathPattern("/v1/pnd"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.core.v1alpha.CoreService/CreatePnd", runtime.WithHTTPPathPattern("/v1/pnds"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Core_SetPnd_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_CoreService_CreatePnd_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Core_SetPnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_CoreService_CreatePnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
@@ -351,17 +351,17 @@ func RegisterCoreHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien
 }
 
 var (
-	pattern_Core_GetPnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"v1", "pnd", "pid"}, ""))
+	pattern_CoreService_GetPnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"v1", "pnd", "pid"}, ""))
 
-	pattern_Core_GetPndList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "pnd"}, ""))
+	pattern_CoreService_GetPndList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "pnds"}, ""))
 
-	pattern_Core_SetPnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "pnd"}, ""))
+	pattern_CoreService_CreatePnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "pnds"}, ""))
 )
 
 var (
-	forward_Core_GetPnd_0 = runtime.ForwardResponseMessage
+	forward_CoreService_GetPnd_0 = runtime.ForwardResponseMessage
 
-	forward_Core_GetPndList_0 = runtime.ForwardResponseMessage
+	forward_CoreService_GetPndList_0 = runtime.ForwardResponseMessage
 
-	forward_Core_SetPnd_0 = runtime.ForwardResponseMessage
+	forward_CoreService_CreatePnd_0 = runtime.ForwardResponseMessage
 )
diff --git a/go/gosdn/core/core_grpc.pb.go b/go/gosdn/core/core_grpc.pb.go
index c8932c0..e20029a 100644
--- a/go/gosdn/core/core_grpc.pb.go
+++ b/go/gosdn/core/core_grpc.pb.go
@@ -14,158 +14,158 @@ import (
 // Requires gRPC-Go v1.32.0 or later.
 const _ = grpc.SupportPackageIsVersion7
 
-// CoreClient is the client API for Core service.
+// CoreServiceClient is the client API for CoreService service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type CoreClient interface {
+type CoreServiceClient interface {
 	GetPnd(ctx context.Context, in *GetPndRequest, opts ...grpc.CallOption) (*GetPndResponse, error)
-	GetPndList(ctx context.Context, in *GetPndListRequest, opts ...grpc.CallOption) (*GetPndResponse, error)
-	SetPnd(ctx context.Context, in *SetPndRequest, opts ...grpc.CallOption) (*SetPndResponse, error)
+	GetPndList(ctx context.Context, in *GetPndListRequest, opts ...grpc.CallOption) (*GetPndListResponse, error)
+	CreatePnd(ctx context.Context, in *CreatePndRequest, opts ...grpc.CallOption) (*CreatePndResponse, error)
 }
 
-type coreClient struct {
+type coreServiceClient struct {
 	cc grpc.ClientConnInterface
 }
 
-func NewCoreClient(cc grpc.ClientConnInterface) CoreClient {
-	return &coreClient{cc}
+func NewCoreServiceClient(cc grpc.ClientConnInterface) CoreServiceClient {
+	return &coreServiceClient{cc}
 }
 
-func (c *coreClient) GetPnd(ctx context.Context, in *GetPndRequest, opts ...grpc.CallOption) (*GetPndResponse, error) {
+func (c *coreServiceClient) GetPnd(ctx context.Context, in *GetPndRequest, opts ...grpc.CallOption) (*GetPndResponse, error) {
 	out := new(GetPndResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.core.core/GetPnd", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/gosdn.core.v1alpha.CoreService/GetPnd", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *coreClient) GetPndList(ctx context.Context, in *GetPndListRequest, opts ...grpc.CallOption) (*GetPndResponse, error) {
-	out := new(GetPndResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.core.core/GetPndList", in, out, opts...)
+func (c *coreServiceClient) GetPndList(ctx context.Context, in *GetPndListRequest, opts ...grpc.CallOption) (*GetPndListResponse, error) {
+	out := new(GetPndListResponse)
+	err := c.cc.Invoke(ctx, "/gosdn.core.v1alpha.CoreService/GetPndList", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *coreClient) SetPnd(ctx context.Context, in *SetPndRequest, opts ...grpc.CallOption) (*SetPndResponse, error) {
-	out := new(SetPndResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.core.core/SetPnd", in, out, opts...)
+func (c *coreServiceClient) CreatePnd(ctx context.Context, in *CreatePndRequest, opts ...grpc.CallOption) (*CreatePndResponse, error) {
+	out := new(CreatePndResponse)
+	err := c.cc.Invoke(ctx, "/gosdn.core.v1alpha.CoreService/CreatePnd", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-// CoreServer is the server API for Core service.
-// All implementations must embed UnimplementedCoreServer
+// CoreServiceServer is the server API for CoreService service.
+// All implementations must embed UnimplementedCoreServiceServer
 // for forward compatibility
-type CoreServer interface {
+type CoreServiceServer interface {
 	GetPnd(context.Context, *GetPndRequest) (*GetPndResponse, error)
-	GetPndList(context.Context, *GetPndListRequest) (*GetPndResponse, error)
-	SetPnd(context.Context, *SetPndRequest) (*SetPndResponse, error)
-	mustEmbedUnimplementedCoreServer()
+	GetPndList(context.Context, *GetPndListRequest) (*GetPndListResponse, error)
+	CreatePnd(context.Context, *CreatePndRequest) (*CreatePndResponse, error)
+	mustEmbedUnimplementedCoreServiceServer()
 }
 
-// UnimplementedCoreServer must be embedded to have forward compatible implementations.
-type UnimplementedCoreServer struct {
+// UnimplementedCoreServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedCoreServiceServer struct {
 }
 
-func (UnimplementedCoreServer) GetPnd(context.Context, *GetPndRequest) (*GetPndResponse, error) {
+func (UnimplementedCoreServiceServer) GetPnd(context.Context, *GetPndRequest) (*GetPndResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetPnd not implemented")
 }
-func (UnimplementedCoreServer) GetPndList(context.Context, *GetPndListRequest) (*GetPndResponse, error) {
+func (UnimplementedCoreServiceServer) GetPndList(context.Context, *GetPndListRequest) (*GetPndListResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetPndList not implemented")
 }
-func (UnimplementedCoreServer) SetPnd(context.Context, *SetPndRequest) (*SetPndResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetPnd not implemented")
+func (UnimplementedCoreServiceServer) CreatePnd(context.Context, *CreatePndRequest) (*CreatePndResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method CreatePnd not implemented")
 }
-func (UnimplementedCoreServer) mustEmbedUnimplementedCoreServer() {}
+func (UnimplementedCoreServiceServer) mustEmbedUnimplementedCoreServiceServer() {}
 
-// UnsafeCoreServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to CoreServer will
+// UnsafeCoreServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to CoreServiceServer will
 // result in compilation errors.
-type UnsafeCoreServer interface {
-	mustEmbedUnimplementedCoreServer()
+type UnsafeCoreServiceServer interface {
+	mustEmbedUnimplementedCoreServiceServer()
 }
 
-func RegisterCoreServer(s grpc.ServiceRegistrar, srv CoreServer) {
-	s.RegisterService(&Core_ServiceDesc, srv)
+func RegisterCoreServiceServer(s grpc.ServiceRegistrar, srv CoreServiceServer) {
+	s.RegisterService(&CoreService_ServiceDesc, srv)
 }
 
-func _Core_GetPnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _CoreService_GetPnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetPndRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CoreServer).GetPnd(ctx, in)
+		return srv.(CoreServiceServer).GetPnd(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.core.core/GetPnd",
+		FullMethod: "/gosdn.core.v1alpha.CoreService/GetPnd",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServer).GetPnd(ctx, req.(*GetPndRequest))
+		return srv.(CoreServiceServer).GetPnd(ctx, req.(*GetPndRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Core_GetPndList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _CoreService_GetPndList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetPndListRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CoreServer).GetPndList(ctx, in)
+		return srv.(CoreServiceServer).GetPndList(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.core.core/GetPndList",
+		FullMethod: "/gosdn.core.v1alpha.CoreService/GetPndList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServer).GetPndList(ctx, req.(*GetPndListRequest))
+		return srv.(CoreServiceServer).GetPndList(ctx, req.(*GetPndListRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Core_SetPnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SetPndRequest)
+func _CoreService_CreatePnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CreatePndRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CoreServer).SetPnd(ctx, in)
+		return srv.(CoreServiceServer).CreatePnd(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.core.core/SetPnd",
+		FullMethod: "/gosdn.core.v1alpha.CoreService/CreatePnd",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServer).SetPnd(ctx, req.(*SetPndRequest))
+		return srv.(CoreServiceServer).CreatePnd(ctx, req.(*CreatePndRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-// Core_ServiceDesc is the grpc.ServiceDesc for Core service.
+// CoreService_ServiceDesc is the grpc.ServiceDesc for CoreService service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
-var Core_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "gosdn.core.core",
-	HandlerType: (*CoreServer)(nil),
+var CoreService_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "gosdn.core.v1alpha.CoreService",
+	HandlerType: (*CoreServiceServer)(nil),
 	Methods: []grpc.MethodDesc{
 		{
 			MethodName: "GetPnd",
-			Handler:    _Core_GetPnd_Handler,
+			Handler:    _CoreService_GetPnd_Handler,
 		},
 		{
 			MethodName: "GetPndList",
-			Handler:    _Core_GetPndList_Handler,
+			Handler:    _CoreService_GetPndList_Handler,
 		},
 		{
-			MethodName: "SetPnd",
-			Handler:    _Core_SetPnd_Handler,
+			MethodName: "CreatePnd",
+			Handler:    _CoreService_CreatePnd_Handler,
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
diff --git a/go/gosdn/core/v1alpha/core.pb.go b/go/gosdn/core/v1alpha/core.pb.go
deleted file mode 100644
index e368096..0000000
--- a/go/gosdn/core/v1alpha/core.pb.go
+++ /dev/null
@@ -1,695 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.27.1
-// 	protoc        (unknown)
-// source: gosdn/core/v1alpha/core.proto
-
-package core
-
-import (
-	pnd "code.fbi.h-da.de/danet/api/go/gosdn/pnd"
-	_ "google.golang.org/genproto/googleapis/api/annotations"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type CreatePndResponse_Status int32
-
-const (
-	CreatePndResponse_STATUS_UNSPECIFIED CreatePndResponse_Status = 0
-	CreatePndResponse_STATUS_OK          CreatePndResponse_Status = 1
-	CreatePndResponse_STATUS_ERROR       CreatePndResponse_Status = 2
-)
-
-// Enum value maps for CreatePndResponse_Status.
-var (
-	CreatePndResponse_Status_name = map[int32]string{
-		0: "STATUS_UNSPECIFIED",
-		1: "STATUS_OK",
-		2: "STATUS_ERROR",
-	}
-	CreatePndResponse_Status_value = map[string]int32{
-		"STATUS_UNSPECIFIED": 0,
-		"STATUS_OK":          1,
-		"STATUS_ERROR":       2,
-	}
-)
-
-func (x CreatePndResponse_Status) Enum() *CreatePndResponse_Status {
-	p := new(CreatePndResponse_Status)
-	*p = x
-	return p
-}
-
-func (x CreatePndResponse_Status) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (CreatePndResponse_Status) Descriptor() protoreflect.EnumDescriptor {
-	return file_gosdn_core_v1alpha_core_proto_enumTypes[0].Descriptor()
-}
-
-func (CreatePndResponse_Status) Type() protoreflect.EnumType {
-	return &file_gosdn_core_v1alpha_core_proto_enumTypes[0]
-}
-
-func (x CreatePndResponse_Status) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use CreatePndResponse_Status.Descriptor instead.
-func (CreatePndResponse_Status) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_core_v1alpha_core_proto_rawDescGZIP(), []int{6, 0}
-}
-
-type GetPndListRequest 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.
-}
-
-func (x *GetPndListRequest) Reset() {
-	*x = GetPndListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetPndListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetPndListRequest) ProtoMessage() {}
-
-func (x *GetPndListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetPndListRequest.ProtoReflect.Descriptor instead.
-func (*GetPndListRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_core_v1alpha_core_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *GetPndListRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-type GetPndRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	Pid       string `protobuf:"bytes,3,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *GetPndRequest) Reset() {
-	*x = GetPndRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetPndRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetPndRequest) ProtoMessage() {}
-
-func (x *GetPndRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetPndRequest.ProtoReflect.Descriptor instead.
-func (*GetPndRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_core_v1alpha_core_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *GetPndRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetPndRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type GetPndListResponse 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.
-	Pnd       []*pnd.PrincipalNetworkDomain `protobuf:"bytes,2,rep,name=pnd,proto3" json:"pnd,omitempty"`
-}
-
-func (x *GetPndListResponse) Reset() {
-	*x = GetPndListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetPndListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetPndListResponse) ProtoMessage() {}
-
-func (x *GetPndListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetPndListResponse.ProtoReflect.Descriptor instead.
-func (*GetPndListResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_core_v1alpha_core_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *GetPndListResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetPndListResponse) GetPnd() []*pnd.PrincipalNetworkDomain {
-	if x != nil {
-		return x.Pnd
-	}
-	return nil
-}
-
-type GetPndResponse 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.
-	Pnd       *pnd.PrincipalNetworkDomain `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-}
-
-func (x *GetPndResponse) Reset() {
-	*x = GetPndResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetPndResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetPndResponse) ProtoMessage() {}
-
-func (x *GetPndResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetPndResponse.ProtoReflect.Descriptor instead.
-func (*GetPndResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_core_v1alpha_core_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *GetPndResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetPndResponse) GetPnd() *pnd.PrincipalNetworkDomain {
-	if x != nil {
-		return x.Pnd
-	}
-	return nil
-}
-
-type CreatePndRequest 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.
-	Pnd       *PndCreateProperties `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-}
-
-func (x *CreatePndRequest) Reset() {
-	*x = CreatePndRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *CreatePndRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CreatePndRequest) ProtoMessage() {}
-
-func (x *CreatePndRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use CreatePndRequest.ProtoReflect.Descriptor instead.
-func (*CreatePndRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_core_v1alpha_core_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *CreatePndRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *CreatePndRequest) GetPnd() *PndCreateProperties {
-	if x != nil {
-		return x.Pnd
-	}
-	return nil
-}
-
-type PndCreateProperties struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Name        string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
-	Sbi         string `protobuf:"bytes,3,opt,name=sbi,proto3" json:"sbi,omitempty"`
-}
-
-func (x *PndCreateProperties) Reset() {
-	*x = PndCreateProperties{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *PndCreateProperties) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PndCreateProperties) ProtoMessage() {}
-
-func (x *PndCreateProperties) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use PndCreateProperties.ProtoReflect.Descriptor instead.
-func (*PndCreateProperties) Descriptor() ([]byte, []int) {
-	return file_gosdn_core_v1alpha_core_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *PndCreateProperties) GetName() string {
-	if x != nil {
-		return x.Name
-	}
-	return ""
-}
-
-func (x *PndCreateProperties) GetDescription() string {
-	if x != nil {
-		return x.Description
-	}
-	return ""
-}
-
-func (x *PndCreateProperties) GetSbi() string {
-	if x != nil {
-		return x.Sbi
-	}
-	return ""
-}
-
-type CreatePndResponse 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.
-	Status    CreatePndResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.core.v1alpha.CreatePndResponse_Status" json:"status,omitempty"`
-}
-
-func (x *CreatePndResponse) Reset() {
-	*x = CreatePndResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *CreatePndResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CreatePndResponse) ProtoMessage() {}
-
-func (x *CreatePndResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_core_v1alpha_core_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use CreatePndResponse.ProtoReflect.Descriptor instead.
-func (*CreatePndResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_core_v1alpha_core_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *CreatePndResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *CreatePndResponse) GetStatus() CreatePndResponse_Status {
-	if x != nil {
-		return x.Status
-	}
-	return CreatePndResponse_STATUS_UNSPECIFIED
-}
-
-var File_gosdn_core_v1alpha_core_proto protoreflect.FileDescriptor
-
-var file_gosdn_core_v1alpha_core_proto_rawDesc = []byte{
-	0x0a, 0x1d, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
-	0x12, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c,
-	0x70, 0x68, 0x61, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f,
-	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 0x2f, 0x70, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x31,
-	0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x6e, 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, 0x22, 0x3f, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x6e, 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, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70,
-	0x69, 0x64, 0x22, 0x6f, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x6e, 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, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e,
-	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x22, 0x6b, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x6e, 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, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 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,
-	0x22, 0x6b, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6e, 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, 0x39, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72,
-	0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x03, 0x70, 0x6e, 0x64, 0x22, 0x5d, 0x0a,
-	0x13, 0x50, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
-	0x74, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,
-	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
-	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x62,
-	0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x62, 0x69, 0x22, 0xba, 0x01, 0x0a,
-	0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6e, 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, 0x44, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
-	0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31,
-	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6e, 0x64, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
-	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
-	0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
-	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54,
-	0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55,
-	0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x32, 0xd3, 0x02, 0x0a, 0x0b, 0x43, 0x6f,
-	0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x06, 0x47, 0x65, 0x74,
-	0x50, 0x6e, 0x64, 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65,
-	0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6e, 0x64, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
-	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50,
-	0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93,
-	0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x7b, 0x70, 0x69, 0x64,
-	0x7d, 0x12, 0x6d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12,
-	0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
-	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50,
-	0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10,
-	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73,
-	0x12, 0x6d, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6e, 0x64, 0x12, 0x24, 0x2e,
-	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
-	0x68, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x6f, 0x72, 0x65,
-	0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50,
-	0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93,
-	0x02, 0x0d, 0x3a, 0x01, 0x2a, 0x22, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x42,
-	0x2a, 0x5a, 0x28, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61,
-	0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
-	0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x33,
-}
-
-var (
-	file_gosdn_core_v1alpha_core_proto_rawDescOnce sync.Once
-	file_gosdn_core_v1alpha_core_proto_rawDescData = file_gosdn_core_v1alpha_core_proto_rawDesc
-)
-
-func file_gosdn_core_v1alpha_core_proto_rawDescGZIP() []byte {
-	file_gosdn_core_v1alpha_core_proto_rawDescOnce.Do(func() {
-		file_gosdn_core_v1alpha_core_proto_rawDescData = protoimpl.X.CompressGZIP(file_gosdn_core_v1alpha_core_proto_rawDescData)
-	})
-	return file_gosdn_core_v1alpha_core_proto_rawDescData
-}
-
-var file_gosdn_core_v1alpha_core_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_gosdn_core_v1alpha_core_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
-var file_gosdn_core_v1alpha_core_proto_goTypes = []interface{}{
-	(CreatePndResponse_Status)(0),      // 0: gosdn.core.v1alpha.CreatePndResponse.Status
-	(*GetPndListRequest)(nil),          // 1: gosdn.core.v1alpha.GetPndListRequest
-	(*GetPndRequest)(nil),              // 2: gosdn.core.v1alpha.GetPndRequest
-	(*GetPndListResponse)(nil),         // 3: gosdn.core.v1alpha.GetPndListResponse
-	(*GetPndResponse)(nil),             // 4: gosdn.core.v1alpha.GetPndResponse
-	(*CreatePndRequest)(nil),           // 5: gosdn.core.v1alpha.CreatePndRequest
-	(*PndCreateProperties)(nil),        // 6: gosdn.core.v1alpha.PndCreateProperties
-	(*CreatePndResponse)(nil),          // 7: gosdn.core.v1alpha.CreatePndResponse
-	(*pnd.PrincipalNetworkDomain)(nil), // 8: gosdn.pnd.v1alpha.PrincipalNetworkDomain
-}
-var file_gosdn_core_v1alpha_core_proto_depIdxs = []int32{
-	8, // 0: gosdn.core.v1alpha.GetPndListResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
-	8, // 1: gosdn.core.v1alpha.GetPndResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
-	6, // 2: gosdn.core.v1alpha.CreatePndRequest.pnd:type_name -> gosdn.core.v1alpha.PndCreateProperties
-	0, // 3: gosdn.core.v1alpha.CreatePndResponse.status:type_name -> gosdn.core.v1alpha.CreatePndResponse.Status
-	2, // 4: gosdn.core.v1alpha.CoreService.GetPnd:input_type -> gosdn.core.v1alpha.GetPndRequest
-	1, // 5: gosdn.core.v1alpha.CoreService.GetPndList:input_type -> gosdn.core.v1alpha.GetPndListRequest
-	5, // 6: gosdn.core.v1alpha.CoreService.CreatePnd:input_type -> gosdn.core.v1alpha.CreatePndRequest
-	4, // 7: gosdn.core.v1alpha.CoreService.GetPnd:output_type -> gosdn.core.v1alpha.GetPndResponse
-	3, // 8: gosdn.core.v1alpha.CoreService.GetPndList:output_type -> gosdn.core.v1alpha.GetPndListResponse
-	7, // 9: gosdn.core.v1alpha.CoreService.CreatePnd:output_type -> gosdn.core.v1alpha.CreatePndResponse
-	7, // [7:10] is the sub-list for method output_type
-	4, // [4:7] is the sub-list for method input_type
-	4, // [4:4] is the sub-list for extension type_name
-	4, // [4:4] is the sub-list for extension extendee
-	0, // [0:4] is the sub-list for field type_name
-}
-
-func init() { file_gosdn_core_v1alpha_core_proto_init() }
-func file_gosdn_core_v1alpha_core_proto_init() {
-	if File_gosdn_core_v1alpha_core_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_core_v1alpha_core_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			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_core_v1alpha_core_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			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_core_v1alpha_core_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			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_core_v1alpha_core_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			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_core_v1alpha_core_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CreatePndRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_core_v1alpha_core_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			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_core_v1alpha_core_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CreatePndResponse); 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_core_v1alpha_core_proto_rawDesc,
-			NumEnums:      1,
-			NumMessages:   7,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_gosdn_core_v1alpha_core_proto_goTypes,
-		DependencyIndexes: file_gosdn_core_v1alpha_core_proto_depIdxs,
-		EnumInfos:         file_gosdn_core_v1alpha_core_proto_enumTypes,
-		MessageInfos:      file_gosdn_core_v1alpha_core_proto_msgTypes,
-	}.Build()
-	File_gosdn_core_v1alpha_core_proto = out.File
-	file_gosdn_core_v1alpha_core_proto_rawDesc = nil
-	file_gosdn_core_v1alpha_core_proto_goTypes = nil
-	file_gosdn_core_v1alpha_core_proto_depIdxs = nil
-}
diff --git a/go/gosdn/core/v1alpha/core.pb.gw.go b/go/gosdn/core/v1alpha/core.pb.gw.go
deleted file mode 100644
index 0b28d8b..0000000
--- a/go/gosdn/core/v1alpha/core.pb.gw.go
+++ /dev/null
@@ -1,367 +0,0 @@
-// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
-// source: gosdn/core/v1alpha/core.proto
-
-/*
-Package core is a reverse proxy.
-
-It translates gRPC into RESTful JSON APIs.
-*/
-package core
-
-import (
-	"context"
-	"io"
-	"net/http"
-
-	"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
-	"github.com/grpc-ecosystem/grpc-gateway/v2/utilities"
-	"google.golang.org/grpc"
-	"google.golang.org/grpc/codes"
-	"google.golang.org/grpc/grpclog"
-	"google.golang.org/grpc/metadata"
-	"google.golang.org/grpc/status"
-	"google.golang.org/protobuf/proto"
-)
-
-// Suppress "imported and not used" errors
-var _ codes.Code
-var _ io.Reader
-var _ status.Status
-var _ = runtime.String
-var _ = utilities.NewDoubleArray
-var _ = metadata.Join
-
-var (
-	filter_CoreService_GetPnd_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
-)
-
-func request_CoreService_GetPnd_0(ctx context.Context, marshaler runtime.Marshaler, client CoreServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetPndRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CoreService_GetPnd_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.GetPnd(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_CoreService_GetPnd_0(ctx context.Context, marshaler runtime.Marshaler, server CoreServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetPndRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CoreService_GetPnd_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.GetPnd(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_CoreService_GetPndList_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
-)
-
-func request_CoreService_GetPndList_0(ctx context.Context, marshaler runtime.Marshaler, client CoreServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetPndListRequest
-	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_CoreService_GetPndList_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.GetPndList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_CoreService_GetPndList_0(ctx context.Context, marshaler runtime.Marshaler, server CoreServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetPndListRequest
-	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_CoreService_GetPndList_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.GetPndList(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_CoreService_CreatePnd_0(ctx context.Context, marshaler runtime.Marshaler, client CoreServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq CreatePndRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.CreatePnd(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_CoreService_CreatePnd_0(ctx context.Context, marshaler runtime.Marshaler, server CoreServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq CreatePndRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.CreatePnd(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-// RegisterCoreServiceHandlerServer registers the http handlers for service CoreService to "mux".
-// UnaryRPC     :call CoreServiceServer directly.
-// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
-// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterCoreServiceHandlerFromEndpoint instead.
-func RegisterCoreServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server CoreServiceServer) error {
-
-	mux.Handle("GET", pattern_CoreService_GetPnd_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.core.v1alpha.CoreService/GetPnd", runtime.WithHTTPPathPattern("/v1/pnd/{pid}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_CoreService_GetPnd_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_CoreService_GetPnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_CoreService_GetPndList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.core.v1alpha.CoreService/GetPndList", runtime.WithHTTPPathPattern("/v1/pnds"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_CoreService_GetPndList_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_CoreService_GetPndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("POST", pattern_CoreService_CreatePnd_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.core.v1alpha.CoreService/CreatePnd", runtime.WithHTTPPathPattern("/v1/pnds"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_CoreService_CreatePnd_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_CoreService_CreatePnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	return nil
-}
-
-// RegisterCoreServiceHandlerFromEndpoint is same as RegisterCoreServiceHandler but
-// automatically dials to "endpoint" and closes the connection when "ctx" gets done.
-func RegisterCoreServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
-	conn, err := grpc.Dial(endpoint, opts...)
-	if err != nil {
-		return err
-	}
-	defer func() {
-		if err != nil {
-			if cerr := conn.Close(); cerr != nil {
-				grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
-			}
-			return
-		}
-		go func() {
-			<-ctx.Done()
-			if cerr := conn.Close(); cerr != nil {
-				grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
-			}
-		}()
-	}()
-
-	return RegisterCoreServiceHandler(ctx, mux, conn)
-}
-
-// RegisterCoreServiceHandler registers the http handlers for service CoreService to "mux".
-// The handlers forward requests to the grpc endpoint over "conn".
-func RegisterCoreServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
-	return RegisterCoreServiceHandlerClient(ctx, mux, NewCoreServiceClient(conn))
-}
-
-// RegisterCoreServiceHandlerClient registers the http handlers for service CoreService
-// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "CoreServiceClient".
-// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "CoreServiceClient"
-// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
-// "CoreServiceClient" to call the correct interceptors.
-func RegisterCoreServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client CoreServiceClient) error {
-
-	mux.Handle("GET", pattern_CoreService_GetPnd_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.core.v1alpha.CoreService/GetPnd", runtime.WithHTTPPathPattern("/v1/pnd/{pid}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_CoreService_GetPnd_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_CoreService_GetPnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_CoreService_GetPndList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.core.v1alpha.CoreService/GetPndList", runtime.WithHTTPPathPattern("/v1/pnds"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_CoreService_GetPndList_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_CoreService_GetPndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("POST", pattern_CoreService_CreatePnd_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.core.v1alpha.CoreService/CreatePnd", runtime.WithHTTPPathPattern("/v1/pnds"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_CoreService_CreatePnd_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_CoreService_CreatePnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	return nil
-}
-
-var (
-	pattern_CoreService_GetPnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"v1", "pnd", "pid"}, ""))
-
-	pattern_CoreService_GetPndList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "pnds"}, ""))
-
-	pattern_CoreService_CreatePnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "pnds"}, ""))
-)
-
-var (
-	forward_CoreService_GetPnd_0 = runtime.ForwardResponseMessage
-
-	forward_CoreService_GetPndList_0 = runtime.ForwardResponseMessage
-
-	forward_CoreService_CreatePnd_0 = runtime.ForwardResponseMessage
-)
diff --git a/go/gosdn/core/v1alpha/core_grpc.pb.go b/go/gosdn/core/v1alpha/core_grpc.pb.go
deleted file mode 100644
index c7bc35c..0000000
--- a/go/gosdn/core/v1alpha/core_grpc.pb.go
+++ /dev/null
@@ -1,173 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package core
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// CoreServiceClient is the client API for CoreService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type CoreServiceClient interface {
-	GetPnd(ctx context.Context, in *GetPndRequest, opts ...grpc.CallOption) (*GetPndResponse, error)
-	GetPndList(ctx context.Context, in *GetPndListRequest, opts ...grpc.CallOption) (*GetPndListResponse, error)
-	CreatePnd(ctx context.Context, in *CreatePndRequest, opts ...grpc.CallOption) (*CreatePndResponse, error)
-}
-
-type coreServiceClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewCoreServiceClient(cc grpc.ClientConnInterface) CoreServiceClient {
-	return &coreServiceClient{cc}
-}
-
-func (c *coreServiceClient) GetPnd(ctx context.Context, in *GetPndRequest, opts ...grpc.CallOption) (*GetPndResponse, error) {
-	out := new(GetPndResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.core.v1alpha.CoreService/GetPnd", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) GetPndList(ctx context.Context, in *GetPndListRequest, opts ...grpc.CallOption) (*GetPndListResponse, error) {
-	out := new(GetPndListResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.core.v1alpha.CoreService/GetPndList", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) CreatePnd(ctx context.Context, in *CreatePndRequest, opts ...grpc.CallOption) (*CreatePndResponse, error) {
-	out := new(CreatePndResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.core.v1alpha.CoreService/CreatePnd", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// CoreServiceServer is the server API for CoreService service.
-// All implementations must embed UnimplementedCoreServiceServer
-// for forward compatibility
-type CoreServiceServer interface {
-	GetPnd(context.Context, *GetPndRequest) (*GetPndResponse, error)
-	GetPndList(context.Context, *GetPndListRequest) (*GetPndListResponse, error)
-	CreatePnd(context.Context, *CreatePndRequest) (*CreatePndResponse, error)
-	mustEmbedUnimplementedCoreServiceServer()
-}
-
-// UnimplementedCoreServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedCoreServiceServer struct {
-}
-
-func (UnimplementedCoreServiceServer) GetPnd(context.Context, *GetPndRequest) (*GetPndResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetPnd not implemented")
-}
-func (UnimplementedCoreServiceServer) GetPndList(context.Context, *GetPndListRequest) (*GetPndListResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetPndList not implemented")
-}
-func (UnimplementedCoreServiceServer) CreatePnd(context.Context, *CreatePndRequest) (*CreatePndResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method CreatePnd not implemented")
-}
-func (UnimplementedCoreServiceServer) mustEmbedUnimplementedCoreServiceServer() {}
-
-// UnsafeCoreServiceServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to CoreServiceServer will
-// result in compilation errors.
-type UnsafeCoreServiceServer interface {
-	mustEmbedUnimplementedCoreServiceServer()
-}
-
-func RegisterCoreServiceServer(s grpc.ServiceRegistrar, srv CoreServiceServer) {
-	s.RegisterService(&CoreService_ServiceDesc, srv)
-}
-
-func _CoreService_GetPnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetPndRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).GetPnd(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.core.v1alpha.CoreService/GetPnd",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).GetPnd(ctx, req.(*GetPndRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_GetPndList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetPndListRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).GetPndList(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.core.v1alpha.CoreService/GetPndList",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).GetPndList(ctx, req.(*GetPndListRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_CreatePnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(CreatePndRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).CreatePnd(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.core.v1alpha.CoreService/CreatePnd",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).CreatePnd(ctx, req.(*CreatePndRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-// CoreService_ServiceDesc is the grpc.ServiceDesc for CoreService service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var CoreService_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "gosdn.core.v1alpha.CoreService",
-	HandlerType: (*CoreServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "GetPnd",
-			Handler:    _CoreService_GetPnd_Handler,
-		},
-		{
-			MethodName: "GetPndList",
-			Handler:    _CoreService_GetPndList_Handler,
-		},
-		{
-			MethodName: "CreatePnd",
-			Handler:    _CoreService_CreatePnd_Handler,
-		},
-	},
-	Streams:  []grpc.StreamDesc{},
-	Metadata: "gosdn/core/v1alpha/core.proto",
-}
diff --git a/go/gosdn/csbi/csbi.pb.go b/go/gosdn/csbi/csbi.pb.go
index e08d151..8e91086 100644
--- a/go/gosdn/csbi/csbi.pb.go
+++ b/go/gosdn/csbi/csbi.pb.go
@@ -24,28 +24,31 @@ const (
 type State int32
 
 const (
-	State_ANNOUNCED      State = 0
-	State_BUILT          State = 1
-	State_DEPLOYED       State = 2
-	State_RUNNING        State = 3
-	State_DECOMMISSIONED State = 4
+	State_STATE_UNSPECIFIED    State = 0
+	State_STATE_ANNOUNCED      State = 1
+	State_STATE_BUILT          State = 2
+	State_STATE_DEPLOYED       State = 3
+	State_STATE_RUNNING        State = 4
+	State_STATE_DECOMMISSIONED State = 5
 )
 
 // Enum value maps for State.
 var (
 	State_name = map[int32]string{
-		0: "ANNOUNCED",
-		1: "BUILT",
-		2: "DEPLOYED",
-		3: "RUNNING",
-		4: "DECOMMISSIONED",
+		0: "STATE_UNSPECIFIED",
+		1: "STATE_ANNOUNCED",
+		2: "STATE_BUILT",
+		3: "STATE_DEPLOYED",
+		4: "STATE_RUNNING",
+		5: "STATE_DECOMMISSIONED",
 	}
 	State_value = map[string]int32{
-		"ANNOUNCED":      0,
-		"BUILT":          1,
-		"DEPLOYED":       2,
-		"RUNNING":        3,
-		"DECOMMISSIONED": 4,
+		"STATE_UNSPECIFIED":    0,
+		"STATE_ANNOUNCED":      1,
+		"STATE_BUILT":          2,
+		"STATE_DEPLOYED":       3,
+		"STATE_RUNNING":        4,
+		"STATE_DECOMMISSIONED": 5,
 	}
 )
 
@@ -76,50 +79,53 @@ func (State) EnumDescriptor() ([]byte, []int) {
 	return file_gosdn_csbi_csbi_proto_rawDescGZIP(), []int{0}
 }
 
-type DeleteResponseStatus int32
+type DeleteResponse_Status int32
 
 const (
-	DeleteResponse_OK    DeleteResponseStatus = 0
-	DeleteResponse_ERROR DeleteResponseStatus = 1
+	DeleteResponse_STATUS_UNSPECIFIED DeleteResponse_Status = 0
+	DeleteResponse_STATUS_OK          DeleteResponse_Status = 1
+	DeleteResponse_STATUS_ERROR       DeleteResponse_Status = 2
 )
 
-// Enum value maps for DeleteResponseStatus.
+// Enum value maps for DeleteResponse_Status.
 var (
-	DeleteResponseStatus_name = map[int32]string{
-		0: "OK",
-		1: "ERROR",
+	DeleteResponse_Status_name = map[int32]string{
+		0: "STATUS_UNSPECIFIED",
+		1: "STATUS_OK",
+		2: "STATUS_ERROR",
 	}
-	DeleteResponseStatus_value = map[string]int32{
-		"OK":    0,
-		"ERROR": 1,
+	DeleteResponse_Status_value = map[string]int32{
+		"STATUS_UNSPECIFIED": 0,
+		"STATUS_OK":          1,
+		"STATUS_ERROR":       2,
 	}
 )
 
-func (x DeleteResponseStatus) Enum() *DeleteResponseStatus {
-	p := new(DeleteResponseStatus)
+func (x DeleteResponse_Status) Enum() *DeleteResponse_Status {
+	p := new(DeleteResponse_Status)
 	*p = x
 	return p
 }
 
-func (x DeleteResponseStatus) String() string {
+func (x DeleteResponse_Status) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (DeleteResponseStatus) Descriptor() protoreflect.EnumDescriptor {
+func (DeleteResponse_Status) Descriptor() protoreflect.EnumDescriptor {
 	return file_gosdn_csbi_csbi_proto_enumTypes[1].Descriptor()
 }
 
-func (DeleteResponseStatus) Type() protoreflect.EnumType {
+func (DeleteResponse_Status) Type() protoreflect.EnumType {
 	return &file_gosdn_csbi_csbi_proto_enumTypes[1]
 }
 
-func (x DeleteResponseStatus) Number() protoreflect.EnumNumber {
+func (x DeleteResponse_Status) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use DeleteResponseStatus.Descriptor instead.
-func (DeleteResponseStatus) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_csbi_csbi_proto_rawDescGZIP(), []int{9, 0}
+// Deprecated: Use DeleteResponse_Status.Descriptor instead.
+func (DeleteResponse_Status) EnumDescriptor() ([]byte, []int) {
+	return file_gosdn_csbi_csbi_proto_rawDescGZIP(), []int{10, 0}
 }
 
 type Syn struct {
@@ -191,7 +197,7 @@ type Ack struct {
 	unknownFields protoimpl.UnknownFields
 
 	Timestamp       int64                      `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	TransportOption *transport.TransportOption `protobuf:"bytes,2,opt,name=TransportOption,proto3" json:"TransportOption,omitempty"`
+	TransportOption *transport.TransportOption `protobuf:"bytes,2,opt,name=transport_option,json=transportOption,proto3" json:"transport_option,omitempty"`
 }
 
 func (x *Ack) Reset() {
@@ -365,7 +371,7 @@ type Deployment struct {
 
 	Id    string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	Name  string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	State State  `protobuf:"varint,3,opt,name=state,proto3,enum=gosdn.csbi.State" json:"state,omitempty"`
+	State State  `protobuf:"varint,3,opt,name=state,proto3,enum=gosdn.csbi.v1alpha.State" json:"state,omitempty"`
 }
 
 func (x *Deployment) Reset() {
@@ -418,7 +424,7 @@ func (x *Deployment) GetState() State {
 	if x != nil {
 		return x.State
 	}
-	return State_ANNOUNCED
+	return State_STATE_UNSPECIFIED
 }
 
 type CreateRequest struct {
@@ -427,7 +433,7 @@ type CreateRequest struct {
 	unknownFields protoimpl.UnknownFields
 
 	Timestamp       int64                        `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	TransportOption []*transport.TransportOption `protobuf:"bytes,2,rep,name=TransportOption,proto3" json:"TransportOption,omitempty"`
+	TransportOption []*transport.TransportOption `protobuf:"bytes,2,rep,name=transport_option,json=transportOption,proto3" json:"transport_option,omitempty"`
 }
 
 func (x *CreateRequest) Reset() {
@@ -476,6 +482,61 @@ func (x *CreateRequest) GetTransportOption() []*transport.TransportOption {
 	return nil
 }
 
+type CreatePluginRequest 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.
+	TransportOption []*transport.TransportOption `protobuf:"bytes,2,rep,name=transport_option,json=transportOption,proto3" json:"transport_option,omitempty"`
+}
+
+func (x *CreatePluginRequest) Reset() {
+	*x = CreatePluginRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_gosdn_csbi_csbi_proto_msgTypes[6]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *CreatePluginRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreatePluginRequest) ProtoMessage() {}
+
+func (x *CreatePluginRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[6]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreatePluginRequest.ProtoReflect.Descriptor instead.
+func (*CreatePluginRequest) Descriptor() ([]byte, []int) {
+	return file_gosdn_csbi_csbi_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *CreatePluginRequest) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *CreatePluginRequest) GetTransportOption() []*transport.TransportOption {
+	if x != nil {
+		return x.TransportOption
+	}
+	return nil
+}
+
 type CreateResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -488,7 +549,7 @@ type CreateResponse struct {
 func (x *CreateResponse) Reset() {
 	*x = CreateResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[6]
+		mi := &file_gosdn_csbi_csbi_proto_msgTypes[7]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -501,7 +562,7 @@ func (x *CreateResponse) String() string {
 func (*CreateResponse) ProtoMessage() {}
 
 func (x *CreateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_csbi_proto_msgTypes[6]
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[7]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -514,7 +575,7 @@ func (x *CreateResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CreateResponse.ProtoReflect.Descriptor instead.
 func (*CreateResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_csbi_proto_rawDescGZIP(), []int{6}
+	return file_gosdn_csbi_csbi_proto_rawDescGZIP(), []int{7}
 }
 
 func (x *CreateResponse) GetTimestamp() int64 {
@@ -536,13 +597,13 @@ type Payload struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Chunk []byte `protobuf:"bytes,1,opt,name=Chunk,proto3" json:"Chunk,omitempty"`
+	Chunk []byte `protobuf:"bytes,1,opt,name=chunk,proto3" json:"chunk,omitempty"`
 }
 
 func (x *Payload) Reset() {
 	*x = Payload{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[7]
+		mi := &file_gosdn_csbi_csbi_proto_msgTypes[8]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -555,7 +616,7 @@ func (x *Payload) String() string {
 func (*Payload) ProtoMessage() {}
 
 func (x *Payload) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_csbi_proto_msgTypes[7]
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[8]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -568,7 +629,7 @@ func (x *Payload) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Payload.ProtoReflect.Descriptor instead.
 func (*Payload) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_csbi_proto_rawDescGZIP(), []int{7}
+	return file_gosdn_csbi_csbi_proto_rawDescGZIP(), []int{8}
 }
 
 func (x *Payload) GetChunk() []byte {
@@ -590,7 +651,7 @@ type DeleteRequest struct {
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[8]
+		mi := &file_gosdn_csbi_csbi_proto_msgTypes[9]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -603,7 +664,7 @@ func (x *DeleteRequest) String() string {
 func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_csbi_proto_msgTypes[8]
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[9]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -616,7 +677,7 @@ func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead.
 func (*DeleteRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_csbi_proto_rawDescGZIP(), []int{8}
+	return file_gosdn_csbi_csbi_proto_rawDescGZIP(), []int{9}
 }
 
 func (x *DeleteRequest) GetTimestamp() int64 {
@@ -638,14 +699,14 @@ type DeleteResponse struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Timestamp int64                `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	Status    DeleteResponseStatus `protobuf:"varint,2,opt,name=Status,proto3,enum=gosdn.csbi.DeleteResponseStatus" json:"Status,omitempty"`
+	Timestamp int64                 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	Status    DeleteResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.csbi.v1alpha.DeleteResponse_Status" json:"status,omitempty"`
 }
 
 func (x *DeleteResponse) Reset() {
 	*x = DeleteResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_csbi_proto_msgTypes[9]
+		mi := &file_gosdn_csbi_csbi_proto_msgTypes[10]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -658,7 +719,7 @@ func (x *DeleteResponse) String() string {
 func (*DeleteResponse) ProtoMessage() {}
 
 func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_csbi_proto_msgTypes[9]
+	mi := &file_gosdn_csbi_csbi_proto_msgTypes[10]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -671,7 +732,7 @@ func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead.
 func (*DeleteResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_csbi_proto_rawDescGZIP(), []int{9}
+	return file_gosdn_csbi_csbi_proto_rawDescGZIP(), []int{10}
 }
 
 func (x *DeleteResponse) GetTimestamp() int64 {
@@ -681,106 +742,130 @@ func (x *DeleteResponse) GetTimestamp() int64 {
 	return 0
 }
 
-func (x *DeleteResponse) GetStatus() DeleteResponseStatus {
+func (x *DeleteResponse) GetStatus() DeleteResponse_Status {
 	if x != nil {
 		return x.Status
 	}
-	return DeleteResponse_OK
+	return DeleteResponse_STATUS_UNSPECIFIED
 }
 
 var File_gosdn_csbi_csbi_proto protoreflect.FileDescriptor
 
 var file_gosdn_csbi_csbi_proto_rawDesc = []byte{
 	0x0a, 0x15, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x63, 0x73, 0x62, 0x69, 0x2f, 0x63, 0x73, 0x62,
-	0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
-	0x73, 0x62, 0x69, 0x1a, 0x1f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73,
-	0x70, 0x6f, 0x72, 0x74, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4d, 0x0a, 0x03, 0x53, 0x79, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74,
-	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
-	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64,
-	0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72,
-	0x65, 0x73, 0x73, 0x22, 0x6f, 0x0a, 0x03, 0x41, 0x63, 0x6b, 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, 0x0f, 0x54, 0x72, 0x61, 0x6e,
-	0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 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, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4e, 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, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61,
-	0x6c, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52,
-	0x03, 0x64, 0x69, 0x64, 0x22, 0x65, 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,
+	0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
+	0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x1a, 0x1f, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x74, 0x72, 0x61,
+	0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4d, 0x0a, 0x03,
+	0x53, 0x79, 0x6e, 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, 0x38, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73,
-	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
-	0x73, 0x62, 0x69, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b,
-	0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x59, 0x0a, 0x0a, 0x44,
-	0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
-	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a,
-	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
-	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x79, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 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, 0x4a, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
-	0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 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, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f,
-	0x6e, 0x22, 0x68, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+	0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
+	0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x78, 0x0a, 0x03, 0x41,
+	0x63, 0x6b, 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, 0x53, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70,
+	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x76, 0x31, 0x61,
+	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70,
+	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f,
+	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4e, 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, 0x38, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73,
-	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
-	0x73, 0x62, 0x69, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b,
-	0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x1f, 0x0a, 0x07, 0x50,
-	0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x22, 0x3f, 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, 0x64,
-	0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x64, 0x22, 0x86, 0x01,
-	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, 0x12, 0x39,
-	0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21,
-	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65,
-	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x61,
-	0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45,
-	0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x2a, 0x50, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
-	0x0d, 0x0a, 0x09, 0x41, 0x4e, 0x4e, 0x4f, 0x55, 0x4e, 0x43, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09,
-	0x0a, 0x05, 0x42, 0x55, 0x49, 0x4c, 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x50,
-	0x4c, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49,
-	0x4e, 0x47, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x53,
-	0x53, 0x49, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x04, 0x32, 0xad, 0x02, 0x0a, 0x04, 0x63, 0x73, 0x62,
-	0x69, 0x12, 0x36, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
-	0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x47, 0x65,
-	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65,
-	0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69,
-	0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a,
-	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61,
-	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x44, 0x65,
-	0x6c, 0x65, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62,
-	0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x1a, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x44, 0x65, 0x6c,
-	0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x48,
-	0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x0f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62,
-	0x69, 0x2e, 0x53, 0x79, 0x6e, 0x1a, 0x0f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73,
-	0x62, 0x69, 0x2e, 0x41, 0x63, 0x6b, 0x12, 0x40, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
-	0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
-	0x73, 0x62, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x13, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x50,
-	0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x30, 0x01, 0x42, 0x2a, 0x5a, 0x28, 0x63, 0x6f, 0x64, 0x65,
-	0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e,
-	0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f,
-	0x63, 0x73, 0x62, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x70, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03,
+	0x61, 0x6c, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
+	0x52, 0x03, 0x64, 0x69, 0x64, 0x22, 0x6d, 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, 0x40, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74,
+	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
+	0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x70,
+	0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d,
+	0x65, 0x6e, 0x74, 0x73, 0x22, 0x61, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65,
+	0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
+	0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73,
+	0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65,
+	0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61,
+	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, 0x53, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73,
+	0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28,
+	0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70,
+	0x6f, 0x72, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e,
+	0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74, 0x72, 0x61,
+	0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x88, 0x01, 0x0a,
+	0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 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, 0x53, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f,
+	0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67,
+	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x76,
+	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
+	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72,
+	0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 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, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f,
+	0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67,
+	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+	0x61, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x64, 0x65,
+	0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x1f, 0x0a, 0x07, 0x50, 0x61, 0x79,
+	0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x22, 0x3f, 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, 0x64, 0x69, 0x64,
+	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x64, 0x22, 0xb4, 0x01, 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, 0x12, 0x41, 0x0a, 0x06,
+	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67,
+	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+	0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
+	0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41,
+	0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
+	0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01,
+	0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52,
+	0x10, 0x02, 0x2a, 0x85, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11,
+	0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
+	0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x4e,
+	0x4f, 0x55, 0x4e, 0x43, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54,
+	0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x54, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41,
+	0x54, 0x45, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x03, 0x12, 0x11, 0x0a,
+	0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04,
+	0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x4d, 0x4d,
+	0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x05, 0x32, 0x8a, 0x03, 0x0a, 0x0b, 0x43,
+	0x73, 0x62, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x46, 0x0a, 0x03, 0x47, 0x65,
+	0x74, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76,
+	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76,
+	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x21, 0x2e, 0x67,
+	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+	0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x22, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61,
+	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x21, 0x2e,
+	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
+	0x68, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31,
+	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x17, 0x2e,
+	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
+	0x68, 0x61, 0x2e, 0x53, 0x79, 0x6e, 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
+	0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x41, 0x63, 0x6b, 0x12,
+	0x56, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12,
+	0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61,
+	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69,
+	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
+	0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x61,
+	0x79, 0x6c, 0x6f, 0x61, 0x64, 0x30, 0x01, 0x42, 0x2a, 0x5a, 0x28, 0x63, 0x6f, 0x64, 0x65, 0x2e,
+	0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65,
+	0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x63,
+	0x73, 0x62, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -796,44 +881,46 @@ func file_gosdn_csbi_csbi_proto_rawDescGZIP() []byte {
 }
 
 var file_gosdn_csbi_csbi_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_gosdn_csbi_csbi_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
+var file_gosdn_csbi_csbi_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
 var file_gosdn_csbi_csbi_proto_goTypes = []interface{}{
-	(State)(0),                        // 0: gosdn.csbi.State
-	(DeleteResponseStatus)(0),         // 1: gosdn.csbi.DeleteResponse.status
-	(*Syn)(nil),                       // 2: gosdn.csbi.Syn
-	(*Ack)(nil),                       // 3: gosdn.csbi.Ack
-	(*GetRequest)(nil),                // 4: gosdn.csbi.GetRequest
-	(*GetResponse)(nil),               // 5: gosdn.csbi.GetResponse
-	(*Deployment)(nil),                // 6: gosdn.csbi.Deployment
-	(*CreateRequest)(nil),             // 7: gosdn.csbi.CreateRequest
-	(*CreateResponse)(nil),            // 8: gosdn.csbi.CreateResponse
-	(*Payload)(nil),                   // 9: gosdn.csbi.Payload
-	(*DeleteRequest)(nil),             // 10: gosdn.csbi.DeleteRequest
-	(*DeleteResponse)(nil),            // 11: gosdn.csbi.DeleteResponse
-	(*transport.TransportOption)(nil), // 12: gosdn.transport.TransportOption
+	(State)(0),                        // 0: gosdn.csbi.v1alpha.State
+	(DeleteResponse_Status)(0),        // 1: gosdn.csbi.v1alpha.DeleteResponse.Status
+	(*Syn)(nil),                       // 2: gosdn.csbi.v1alpha.Syn
+	(*Ack)(nil),                       // 3: gosdn.csbi.v1alpha.Ack
+	(*GetRequest)(nil),                // 4: gosdn.csbi.v1alpha.GetRequest
+	(*GetResponse)(nil),               // 5: gosdn.csbi.v1alpha.GetResponse
+	(*Deployment)(nil),                // 6: gosdn.csbi.v1alpha.Deployment
+	(*CreateRequest)(nil),             // 7: gosdn.csbi.v1alpha.CreateRequest
+	(*CreatePluginRequest)(nil),       // 8: gosdn.csbi.v1alpha.CreatePluginRequest
+	(*CreateResponse)(nil),            // 9: gosdn.csbi.v1alpha.CreateResponse
+	(*Payload)(nil),                   // 10: gosdn.csbi.v1alpha.Payload
+	(*DeleteRequest)(nil),             // 11: gosdn.csbi.v1alpha.DeleteRequest
+	(*DeleteResponse)(nil),            // 12: gosdn.csbi.v1alpha.DeleteResponse
+	(*transport.TransportOption)(nil), // 13: gosdn.transport.v1alpha.TransportOption
 }
 var file_gosdn_csbi_csbi_proto_depIdxs = []int32{
-	12, // 0: gosdn.csbi.Ack.TransportOption:type_name -> gosdn.transport.TransportOption
-	6,  // 1: gosdn.csbi.GetResponse.deployments:type_name -> gosdn.csbi.Deployment
-	0,  // 2: gosdn.csbi.Deployment.state:type_name -> gosdn.csbi.State
-	12, // 3: gosdn.csbi.CreateRequest.TransportOption:type_name -> gosdn.transport.TransportOption
-	6,  // 4: gosdn.csbi.CreateResponse.deployments:type_name -> gosdn.csbi.Deployment
-	1,  // 5: gosdn.csbi.DeleteResponse.Status:type_name -> gosdn.csbi.DeleteResponse.status
-	4,  // 6: gosdn.csbi.csbi.Get:input_type -> gosdn.csbi.GetRequest
-	7,  // 7: gosdn.csbi.csbi.Create:input_type -> gosdn.csbi.CreateRequest
-	10, // 8: gosdn.csbi.csbi.Delete:input_type -> gosdn.csbi.DeleteRequest
-	2,  // 9: gosdn.csbi.csbi.Hello:input_type -> gosdn.csbi.Syn
-	7,  // 10: gosdn.csbi.csbi.CreatePlugin:input_type -> gosdn.csbi.CreateRequest
-	5,  // 11: gosdn.csbi.csbi.Get:output_type -> gosdn.csbi.GetResponse
-	8,  // 12: gosdn.csbi.csbi.Create:output_type -> gosdn.csbi.CreateResponse
-	11, // 13: gosdn.csbi.csbi.Delete:output_type -> gosdn.csbi.DeleteResponse
-	3,  // 14: gosdn.csbi.csbi.Hello:output_type -> gosdn.csbi.Ack
-	9,  // 15: gosdn.csbi.csbi.CreatePlugin:output_type -> gosdn.csbi.Payload
-	11, // [11:16] is the sub-list for method output_type
-	6,  // [6:11] is the sub-list for method input_type
-	6,  // [6:6] is the sub-list for extension type_name
-	6,  // [6:6] is the sub-list for extension extendee
-	0,  // [0:6] is the sub-list for field type_name
+	13, // 0: gosdn.csbi.v1alpha.Ack.transport_option:type_name -> gosdn.transport.v1alpha.TransportOption
+	6,  // 1: gosdn.csbi.v1alpha.GetResponse.deployments:type_name -> gosdn.csbi.v1alpha.Deployment
+	0,  // 2: gosdn.csbi.v1alpha.Deployment.state:type_name -> gosdn.csbi.v1alpha.State
+	13, // 3: gosdn.csbi.v1alpha.CreateRequest.transport_option:type_name -> gosdn.transport.v1alpha.TransportOption
+	13, // 4: gosdn.csbi.v1alpha.CreatePluginRequest.transport_option:type_name -> gosdn.transport.v1alpha.TransportOption
+	6,  // 5: gosdn.csbi.v1alpha.CreateResponse.deployments:type_name -> gosdn.csbi.v1alpha.Deployment
+	1,  // 6: gosdn.csbi.v1alpha.DeleteResponse.status:type_name -> gosdn.csbi.v1alpha.DeleteResponse.Status
+	4,  // 7: gosdn.csbi.v1alpha.CsbiService.Get:input_type -> gosdn.csbi.v1alpha.GetRequest
+	7,  // 8: gosdn.csbi.v1alpha.CsbiService.Create:input_type -> gosdn.csbi.v1alpha.CreateRequest
+	11, // 9: gosdn.csbi.v1alpha.CsbiService.Delete:input_type -> gosdn.csbi.v1alpha.DeleteRequest
+	2,  // 10: gosdn.csbi.v1alpha.CsbiService.Hello:input_type -> gosdn.csbi.v1alpha.Syn
+	8,  // 11: gosdn.csbi.v1alpha.CsbiService.CreatePlugin:input_type -> gosdn.csbi.v1alpha.CreatePluginRequest
+	5,  // 12: gosdn.csbi.v1alpha.CsbiService.Get:output_type -> gosdn.csbi.v1alpha.GetResponse
+	9,  // 13: gosdn.csbi.v1alpha.CsbiService.Create:output_type -> gosdn.csbi.v1alpha.CreateResponse
+	12, // 14: gosdn.csbi.v1alpha.CsbiService.Delete:output_type -> gosdn.csbi.v1alpha.DeleteResponse
+	3,  // 15: gosdn.csbi.v1alpha.CsbiService.Hello:output_type -> gosdn.csbi.v1alpha.Ack
+	10, // 16: gosdn.csbi.v1alpha.CsbiService.CreatePlugin:output_type -> gosdn.csbi.v1alpha.Payload
+	12, // [12:17] is the sub-list for method output_type
+	7,  // [7:12] is the sub-list for method input_type
+	7,  // [7:7] is the sub-list for extension type_name
+	7,  // [7:7] is the sub-list for extension extendee
+	0,  // [0:7] is the sub-list for field type_name
 }
 
 func init() { file_gosdn_csbi_csbi_proto_init() }
@@ -915,7 +1002,7 @@ func file_gosdn_csbi_csbi_proto_init() {
 			}
 		}
 		file_gosdn_csbi_csbi_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CreateResponse); i {
+			switch v := v.(*CreatePluginRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -927,7 +1014,7 @@ func file_gosdn_csbi_csbi_proto_init() {
 			}
 		}
 		file_gosdn_csbi_csbi_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Payload); i {
+			switch v := v.(*CreateResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -939,7 +1026,7 @@ func file_gosdn_csbi_csbi_proto_init() {
 			}
 		}
 		file_gosdn_csbi_csbi_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DeleteRequest); i {
+			switch v := v.(*Payload); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -951,6 +1038,18 @@ func file_gosdn_csbi_csbi_proto_init() {
 			}
 		}
 		file_gosdn_csbi_csbi_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+			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 interface{}, i int) interface{} {
 			switch v := v.(*DeleteResponse); i {
 			case 0:
 				return &v.state
@@ -969,7 +1068,7 @@ func file_gosdn_csbi_csbi_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_gosdn_csbi_csbi_proto_rawDesc,
 			NumEnums:      2,
-			NumMessages:   10,
+			NumMessages:   11,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
diff --git a/go/gosdn/csbi/csbi_grpc.pb.go b/go/gosdn/csbi/csbi_grpc.pb.go
index 583d9e0..104bb3b 100644
--- a/go/gosdn/csbi/csbi_grpc.pb.go
+++ b/go/gosdn/csbi/csbi_grpc.pb.go
@@ -14,67 +14,67 @@ import (
 // Requires gRPC-Go v1.32.0 or later.
 const _ = grpc.SupportPackageIsVersion7
 
-// CsbiClient is the client API for Csbi service.
+// CsbiServiceClient is the client API for CsbiService service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type CsbiClient interface {
+type CsbiServiceClient interface {
 	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
 	Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error)
 	Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
 	Hello(ctx context.Context, in *Syn, opts ...grpc.CallOption) (*Ack, error)
-	CreatePlugin(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (Csbi_CreatePluginClient, error)
+	CreatePlugin(ctx context.Context, in *CreatePluginRequest, opts ...grpc.CallOption) (CsbiService_CreatePluginClient, error)
 }
 
-type csbiClient struct {
+type csbiServiceClient struct {
 	cc grpc.ClientConnInterface
 }
 
-func NewCsbiClient(cc grpc.ClientConnInterface) CsbiClient {
-	return &csbiClient{cc}
+func NewCsbiServiceClient(cc grpc.ClientConnInterface) CsbiServiceClient {
+	return &csbiServiceClient{cc}
 }
 
-func (c *csbiClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+func (c *csbiServiceClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.csbi.csbi/Get", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/gosdn.csbi.v1alpha.CsbiService/Get", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *csbiClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
+func (c *csbiServiceClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
 	out := new(CreateResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.csbi.csbi/Create", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/gosdn.csbi.v1alpha.CsbiService/Create", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *csbiClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error) {
+func (c *csbiServiceClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error) {
 	out := new(DeleteResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.csbi.csbi/Delete", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/gosdn.csbi.v1alpha.CsbiService/Delete", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *csbiClient) Hello(ctx context.Context, in *Syn, opts ...grpc.CallOption) (*Ack, error) {
+func (c *csbiServiceClient) Hello(ctx context.Context, in *Syn, opts ...grpc.CallOption) (*Ack, error) {
 	out := new(Ack)
-	err := c.cc.Invoke(ctx, "/gosdn.csbi.csbi/Hello", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/gosdn.csbi.v1alpha.CsbiService/Hello", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *csbiClient) CreatePlugin(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (Csbi_CreatePluginClient, error) {
-	stream, err := c.cc.NewStream(ctx, &Csbi_ServiceDesc.Streams[0], "/gosdn.csbi.csbi/CreatePlugin", opts...)
+func (c *csbiServiceClient) CreatePlugin(ctx context.Context, in *CreatePluginRequest, opts ...grpc.CallOption) (CsbiService_CreatePluginClient, error) {
+	stream, err := c.cc.NewStream(ctx, &CsbiService_ServiceDesc.Streams[0], "/gosdn.csbi.v1alpha.CsbiService/CreatePlugin", opts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &csbiCreatePluginClient{stream}
+	x := &csbiServiceCreatePluginClient{stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -84,16 +84,16 @@ func (c *csbiClient) CreatePlugin(ctx context.Context, in *CreateRequest, opts .
 	return x, nil
 }
 
-type Csbi_CreatePluginClient interface {
+type CsbiService_CreatePluginClient interface {
 	Recv() (*Payload, error)
 	grpc.ClientStream
 }
 
-type csbiCreatePluginClient struct {
+type csbiServiceCreatePluginClient struct {
 	grpc.ClientStream
 }
 
-func (x *csbiCreatePluginClient) Recv() (*Payload, error) {
+func (x *csbiServiceCreatePluginClient) Recv() (*Payload, error) {
 	m := new(Payload)
 	if err := x.ClientStream.RecvMsg(m); err != nil {
 		return nil, err
@@ -101,171 +101,171 @@ func (x *csbiCreatePluginClient) Recv() (*Payload, error) {
 	return m, nil
 }
 
-// CsbiServer is the server API for Csbi service.
-// All implementations must embed UnimplementedCsbiServer
+// CsbiServiceServer is the server API for CsbiService service.
+// All implementations must embed UnimplementedCsbiServiceServer
 // for forward compatibility
-type CsbiServer interface {
+type CsbiServiceServer interface {
 	Get(context.Context, *GetRequest) (*GetResponse, error)
 	Create(context.Context, *CreateRequest) (*CreateResponse, error)
 	Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
 	Hello(context.Context, *Syn) (*Ack, error)
-	CreatePlugin(*CreateRequest, Csbi_CreatePluginServer) error
-	mustEmbedUnimplementedCsbiServer()
+	CreatePlugin(*CreatePluginRequest, CsbiService_CreatePluginServer) error
+	mustEmbedUnimplementedCsbiServiceServer()
 }
 
-// UnimplementedCsbiServer must be embedded to have forward compatible implementations.
-type UnimplementedCsbiServer struct {
+// UnimplementedCsbiServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedCsbiServiceServer struct {
 }
 
-func (UnimplementedCsbiServer) Get(context.Context, *GetRequest) (*GetResponse, error) {
+func (UnimplementedCsbiServiceServer) Get(context.Context, *GetRequest) (*GetResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
 }
-func (UnimplementedCsbiServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
+func (UnimplementedCsbiServiceServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
 }
-func (UnimplementedCsbiServer) Delete(context.Context, *DeleteRequest) (*DeleteResponse, error) {
+func (UnimplementedCsbiServiceServer) Delete(context.Context, *DeleteRequest) (*DeleteResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
 }
-func (UnimplementedCsbiServer) Hello(context.Context, *Syn) (*Ack, error) {
+func (UnimplementedCsbiServiceServer) Hello(context.Context, *Syn) (*Ack, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Hello not implemented")
 }
-func (UnimplementedCsbiServer) CreatePlugin(*CreateRequest, Csbi_CreatePluginServer) error {
+func (UnimplementedCsbiServiceServer) CreatePlugin(*CreatePluginRequest, CsbiService_CreatePluginServer) error {
 	return status.Errorf(codes.Unimplemented, "method CreatePlugin not implemented")
 }
-func (UnimplementedCsbiServer) mustEmbedUnimplementedCsbiServer() {}
+func (UnimplementedCsbiServiceServer) mustEmbedUnimplementedCsbiServiceServer() {}
 
-// UnsafeCsbiServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to CsbiServer will
+// UnsafeCsbiServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to CsbiServiceServer will
 // result in compilation errors.
-type UnsafeCsbiServer interface {
-	mustEmbedUnimplementedCsbiServer()
+type UnsafeCsbiServiceServer interface {
+	mustEmbedUnimplementedCsbiServiceServer()
 }
 
-func RegisterCsbiServer(s grpc.ServiceRegistrar, srv CsbiServer) {
-	s.RegisterService(&Csbi_ServiceDesc, srv)
+func RegisterCsbiServiceServer(s grpc.ServiceRegistrar, srv CsbiServiceServer) {
+	s.RegisterService(&CsbiService_ServiceDesc, srv)
 }
 
-func _Csbi_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _CsbiService_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CsbiServer).Get(ctx, in)
+		return srv.(CsbiServiceServer).Get(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.csbi.csbi/Get",
+		FullMethod: "/gosdn.csbi.v1alpha.CsbiService/Get",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CsbiServer).Get(ctx, req.(*GetRequest))
+		return srv.(CsbiServiceServer).Get(ctx, req.(*GetRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Csbi_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _CsbiService_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(CreateRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CsbiServer).Create(ctx, in)
+		return srv.(CsbiServiceServer).Create(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.csbi.csbi/Create",
+		FullMethod: "/gosdn.csbi.v1alpha.CsbiService/Create",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CsbiServer).Create(ctx, req.(*CreateRequest))
+		return srv.(CsbiServiceServer).Create(ctx, req.(*CreateRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Csbi_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _CsbiService_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(DeleteRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CsbiServer).Delete(ctx, in)
+		return srv.(CsbiServiceServer).Delete(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.csbi.csbi/Delete",
+		FullMethod: "/gosdn.csbi.v1alpha.CsbiService/Delete",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CsbiServer).Delete(ctx, req.(*DeleteRequest))
+		return srv.(CsbiServiceServer).Delete(ctx, req.(*DeleteRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Csbi_Hello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _CsbiService_Hello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(Syn)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CsbiServer).Hello(ctx, in)
+		return srv.(CsbiServiceServer).Hello(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.csbi.csbi/Hello",
+		FullMethod: "/gosdn.csbi.v1alpha.CsbiService/Hello",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CsbiServer).Hello(ctx, req.(*Syn))
+		return srv.(CsbiServiceServer).Hello(ctx, req.(*Syn))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Csbi_CreatePlugin_Handler(srv interface{}, stream grpc.ServerStream) error {
-	m := new(CreateRequest)
+func _CsbiService_CreatePlugin_Handler(srv interface{}, stream grpc.ServerStream) error {
+	m := new(CreatePluginRequest)
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(CsbiServer).CreatePlugin(m, &csbiCreatePluginServer{stream})
+	return srv.(CsbiServiceServer).CreatePlugin(m, &csbiServiceCreatePluginServer{stream})
 }
 
-type Csbi_CreatePluginServer interface {
+type CsbiService_CreatePluginServer interface {
 	Send(*Payload) error
 	grpc.ServerStream
 }
 
-type csbiCreatePluginServer struct {
+type csbiServiceCreatePluginServer struct {
 	grpc.ServerStream
 }
 
-func (x *csbiCreatePluginServer) Send(m *Payload) error {
+func (x *csbiServiceCreatePluginServer) Send(m *Payload) error {
 	return x.ServerStream.SendMsg(m)
 }
 
-// Csbi_ServiceDesc is the grpc.ServiceDesc for Csbi service.
+// CsbiService_ServiceDesc is the grpc.ServiceDesc for CsbiService service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
-var Csbi_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "gosdn.csbi.csbi",
-	HandlerType: (*CsbiServer)(nil),
+var CsbiService_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "gosdn.csbi.v1alpha.CsbiService",
+	HandlerType: (*CsbiServiceServer)(nil),
 	Methods: []grpc.MethodDesc{
 		{
 			MethodName: "Get",
-			Handler:    _Csbi_Get_Handler,
+			Handler:    _CsbiService_Get_Handler,
 		},
 		{
 			MethodName: "Create",
-			Handler:    _Csbi_Create_Handler,
+			Handler:    _CsbiService_Create_Handler,
 		},
 		{
 			MethodName: "Delete",
-			Handler:    _Csbi_Delete_Handler,
+			Handler:    _CsbiService_Delete_Handler,
 		},
 		{
 			MethodName: "Hello",
-			Handler:    _Csbi_Hello_Handler,
+			Handler:    _CsbiService_Hello_Handler,
 		},
 	},
 	Streams: []grpc.StreamDesc{
 		{
 			StreamName:    "CreatePlugin",
-			Handler:       _Csbi_CreatePlugin_Handler,
+			Handler:       _CsbiService_CreatePlugin_Handler,
 			ServerStreams: true,
 		},
 	},
diff --git a/go/gosdn/csbi/v1alpha/csbi.pb.go b/go/gosdn/csbi/v1alpha/csbi.pb.go
deleted file mode 100644
index 4b76906..0000000
--- a/go/gosdn/csbi/v1alpha/csbi.pb.go
+++ /dev/null
@@ -1,1085 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.27.1
-// 	protoc        (unknown)
-// source: gosdn/csbi/v1alpha/csbi.proto
-
-package csbi
-
-import (
-	transport "code.fbi.h-da.de/danet/api/go/gosdn/transport"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type State int32
-
-const (
-	State_STATE_UNSPECIFIED    State = 0
-	State_STATE_ANNOUNCED      State = 1
-	State_STATE_BUILT          State = 2
-	State_STATE_DEPLOYED       State = 3
-	State_STATE_RUNNING        State = 4
-	State_STATE_DECOMMISSIONED State = 5
-)
-
-// Enum value maps for State.
-var (
-	State_name = map[int32]string{
-		0: "STATE_UNSPECIFIED",
-		1: "STATE_ANNOUNCED",
-		2: "STATE_BUILT",
-		3: "STATE_DEPLOYED",
-		4: "STATE_RUNNING",
-		5: "STATE_DECOMMISSIONED",
-	}
-	State_value = map[string]int32{
-		"STATE_UNSPECIFIED":    0,
-		"STATE_ANNOUNCED":      1,
-		"STATE_BUILT":          2,
-		"STATE_DEPLOYED":       3,
-		"STATE_RUNNING":        4,
-		"STATE_DECOMMISSIONED": 5,
-	}
-)
-
-func (x State) Enum() *State {
-	p := new(State)
-	*p = x
-	return p
-}
-
-func (x State) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (State) Descriptor() protoreflect.EnumDescriptor {
-	return file_gosdn_csbi_v1alpha_csbi_proto_enumTypes[0].Descriptor()
-}
-
-func (State) Type() protoreflect.EnumType {
-	return &file_gosdn_csbi_v1alpha_csbi_proto_enumTypes[0]
-}
-
-func (x State) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use State.Descriptor instead.
-func (State) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{0}
-}
-
-type DeleteResponse_Status int32
-
-const (
-	DeleteResponse_STATUS_UNSPECIFIED DeleteResponse_Status = 0
-	DeleteResponse_STATUS_OK          DeleteResponse_Status = 1
-	DeleteResponse_STATUS_ERROR       DeleteResponse_Status = 2
-)
-
-// Enum value maps for DeleteResponse_Status.
-var (
-	DeleteResponse_Status_name = map[int32]string{
-		0: "STATUS_UNSPECIFIED",
-		1: "STATUS_OK",
-		2: "STATUS_ERROR",
-	}
-	DeleteResponse_Status_value = map[string]int32{
-		"STATUS_UNSPECIFIED": 0,
-		"STATUS_OK":          1,
-		"STATUS_ERROR":       2,
-	}
-)
-
-func (x DeleteResponse_Status) Enum() *DeleteResponse_Status {
-	p := new(DeleteResponse_Status)
-	*p = x
-	return p
-}
-
-func (x DeleteResponse_Status) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (DeleteResponse_Status) Descriptor() protoreflect.EnumDescriptor {
-	return file_gosdn_csbi_v1alpha_csbi_proto_enumTypes[1].Descriptor()
-}
-
-func (DeleteResponse_Status) Type() protoreflect.EnumType {
-	return &file_gosdn_csbi_v1alpha_csbi_proto_enumTypes[1]
-}
-
-func (x DeleteResponse_Status) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use DeleteResponse_Status.Descriptor instead.
-func (DeleteResponse_Status) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{10, 0}
-}
-
-type Syn 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.
-	Id        string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
-	Address   string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
-}
-
-func (x *Syn) Reset() {
-	*x = Syn{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Syn) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Syn) ProtoMessage() {}
-
-func (x *Syn) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Syn.ProtoReflect.Descriptor instead.
-func (*Syn) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Syn) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *Syn) GetId() string {
-	if x != nil {
-		return x.Id
-	}
-	return ""
-}
-
-func (x *Syn) GetAddress() string {
-	if x != nil {
-		return x.Address
-	}
-	return ""
-}
-
-type Ack 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.
-	TransportOption *transport.TransportOption `protobuf:"bytes,2,opt,name=transport_option,json=transportOption,proto3" json:"transport_option,omitempty"`
-}
-
-func (x *Ack) Reset() {
-	*x = Ack{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Ack) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Ack) ProtoMessage() {}
-
-func (x *Ack) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Ack.ProtoReflect.Descriptor instead.
-func (*Ack) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *Ack) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *Ack) GetTransportOption() *transport.TransportOption {
-	if x != nil {
-		return x.TransportOption
-	}
-	return nil
-}
-
-type GetRequest 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.
-	All       bool     `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"`
-	Did       []string `protobuf:"bytes,3,rep,name=did,proto3" json:"did,omitempty"`
-}
-
-func (x *GetRequest) Reset() {
-	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRequest) ProtoMessage() {}
-
-func (x *GetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.
-func (*GetRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *GetRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetRequest) GetAll() bool {
-	if x != nil {
-		return x.All
-	}
-	return false
-}
-
-func (x *GetRequest) GetDid() []string {
-	if x != nil {
-		return x.Did
-	}
-	return nil
-}
-
-type GetResponse 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.
-	Deployments []*Deployment `protobuf:"bytes,2,rep,name=deployments,proto3" json:"deployments,omitempty"`
-}
-
-func (x *GetResponse) Reset() {
-	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetResponse) ProtoMessage() {}
-
-func (x *GetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.
-func (*GetResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *GetResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetResponse) GetDeployments() []*Deployment {
-	if x != nil {
-		return x.Deployments
-	}
-	return nil
-}
-
-type Deployment struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id    string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Name  string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	State State  `protobuf:"varint,3,opt,name=state,proto3,enum=gosdn.csbi.v1alpha.State" json:"state,omitempty"`
-}
-
-func (x *Deployment) Reset() {
-	*x = Deployment{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Deployment) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Deployment) ProtoMessage() {}
-
-func (x *Deployment) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Deployment.ProtoReflect.Descriptor instead.
-func (*Deployment) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *Deployment) GetId() string {
-	if x != nil {
-		return x.Id
-	}
-	return ""
-}
-
-func (x *Deployment) GetName() string {
-	if x != nil {
-		return x.Name
-	}
-	return ""
-}
-
-func (x *Deployment) GetState() State {
-	if x != nil {
-		return x.State
-	}
-	return State_STATE_UNSPECIFIED
-}
-
-type CreateRequest 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.
-	TransportOption []*transport.TransportOption `protobuf:"bytes,2,rep,name=transport_option,json=transportOption,proto3" json:"transport_option,omitempty"`
-}
-
-func (x *CreateRequest) Reset() {
-	*x = CreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *CreateRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CreateRequest) ProtoMessage() {}
-
-func (x *CreateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead.
-func (*CreateRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *CreateRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *CreateRequest) GetTransportOption() []*transport.TransportOption {
-	if x != nil {
-		return x.TransportOption
-	}
-	return nil
-}
-
-type CreatePluginRequest 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.
-	TransportOption []*transport.TransportOption `protobuf:"bytes,2,rep,name=transport_option,json=transportOption,proto3" json:"transport_option,omitempty"`
-}
-
-func (x *CreatePluginRequest) Reset() {
-	*x = CreatePluginRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *CreatePluginRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CreatePluginRequest) ProtoMessage() {}
-
-func (x *CreatePluginRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use CreatePluginRequest.ProtoReflect.Descriptor instead.
-func (*CreatePluginRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *CreatePluginRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *CreatePluginRequest) GetTransportOption() []*transport.TransportOption {
-	if x != nil {
-		return x.TransportOption
-	}
-	return nil
-}
-
-type CreateResponse 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.
-	Deployments []*Deployment `protobuf:"bytes,2,rep,name=deployments,proto3" json:"deployments,omitempty"`
-}
-
-func (x *CreateResponse) Reset() {
-	*x = CreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *CreateResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CreateResponse) ProtoMessage() {}
-
-func (x *CreateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use CreateResponse.ProtoReflect.Descriptor instead.
-func (*CreateResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{7}
-}
-
-func (x *CreateResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *CreateResponse) GetDeployments() []*Deployment {
-	if x != nil {
-		return x.Deployments
-	}
-	return nil
-}
-
-type Payload struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Chunk []byte `protobuf:"bytes,1,opt,name=chunk,proto3" json:"chunk,omitempty"`
-}
-
-func (x *Payload) Reset() {
-	*x = Payload{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Payload) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Payload) ProtoMessage() {}
-
-func (x *Payload) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Payload.ProtoReflect.Descriptor instead.
-func (*Payload) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{8}
-}
-
-func (x *Payload) GetChunk() []byte {
-	if x != nil {
-		return x.Chunk
-	}
-	return nil
-}
-
-type DeleteRequest 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.
-	Did       []string `protobuf:"bytes,2,rep,name=did,proto3" json:"did,omitempty"`
-}
-
-func (x *DeleteRequest) Reset() {
-	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *DeleteRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeleteRequest) ProtoMessage() {}
-
-func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead.
-func (*DeleteRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{9}
-}
-
-func (x *DeleteRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *DeleteRequest) GetDid() []string {
-	if x != nil {
-		return x.Did
-	}
-	return nil
-}
-
-type DeleteResponse 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.
-	Status    DeleteResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.csbi.v1alpha.DeleteResponse_Status" json:"status,omitempty"`
-}
-
-func (x *DeleteResponse) Reset() {
-	*x = DeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *DeleteResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeleteResponse) ProtoMessage() {}
-
-func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead.
-func (*DeleteResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP(), []int{10}
-}
-
-func (x *DeleteResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *DeleteResponse) GetStatus() DeleteResponse_Status {
-	if x != nil {
-		return x.Status
-	}
-	return DeleteResponse_STATUS_UNSPECIFIED
-}
-
-var File_gosdn_csbi_v1alpha_csbi_proto protoreflect.FileDescriptor
-
-var file_gosdn_csbi_v1alpha_csbi_proto_rawDesc = []byte{
-	0x0a, 0x1d, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x63, 0x73, 0x62, 0x69, 0x2f, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 0x2f, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
-	0x12, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c,
-	0x70, 0x68, 0x61, 0x1a, 0x27, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73,
-	0x70, 0x6f, 0x72, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x74, 0x72, 0x61,
-	0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4d, 0x0a, 0x03,
-	0x53, 0x79, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
-	0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
-	0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x78, 0x0a, 0x03, 0x41,
-	0x63, 0x6b, 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, 0x53, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f,
-	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4e, 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, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03,
-	0x61, 0x6c, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
-	0x52, 0x03, 0x64, 0x69, 0x64, 0x22, 0x6d, 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, 0x40, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74,
-	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
-	0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x70,
-	0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d,
-	0x65, 0x6e, 0x74, 0x73, 0x22, 0x61, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65,
-	0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
-	0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73,
-	0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65,
-	0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61,
-	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, 0x53, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73,
-	0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28,
-	0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70,
-	0x6f, 0x72, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e,
-	0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74, 0x72, 0x61,
-	0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x88, 0x01, 0x0a,
-	0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 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, 0x53, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f,
-	0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x76,
-	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
-	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72,
-	0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 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, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f,
-	0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
-	0x61, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x64, 0x65,
-	0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x1f, 0x0a, 0x07, 0x50, 0x61, 0x79,
-	0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x22, 0x3f, 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, 0x64, 0x69, 0x64,
-	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x64, 0x22, 0xb4, 0x01, 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, 0x12, 0x41, 0x0a, 0x06,
-	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
-	0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
-	0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41,
-	0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
-	0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01,
-	0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52,
-	0x10, 0x02, 0x2a, 0x85, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11,
-	0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
-	0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x4e,
-	0x4f, 0x55, 0x4e, 0x43, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54,
-	0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x54, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41,
-	0x54, 0x45, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x03, 0x12, 0x11, 0x0a,
-	0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04,
-	0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x4d, 0x4d,
-	0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x05, 0x32, 0x8a, 0x03, 0x0a, 0x0b, 0x43,
-	0x73, 0x62, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x46, 0x0a, 0x03, 0x47, 0x65,
-	0x74, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76,
-	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76,
-	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x21, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
-	0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x22, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x21, 0x2e,
-	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
-	0x68, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31,
-	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x17, 0x2e,
-	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
-	0x68, 0x61, 0x2e, 0x53, 0x79, 0x6e, 0x1a, 0x17, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63,
-	0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x41, 0x63, 0x6b, 0x12,
-	0x56, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12,
-	0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69,
-	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
-	0x2e, 0x63, 0x73, 0x62, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x50, 0x61,
-	0x79, 0x6c, 0x6f, 0x61, 0x64, 0x30, 0x01, 0x42, 0x2a, 0x5a, 0x28, 0x63, 0x6f, 0x64, 0x65, 0x2e,
-	0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65,
-	0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x63,
-	0x73, 0x62, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_gosdn_csbi_v1alpha_csbi_proto_rawDescOnce sync.Once
-	file_gosdn_csbi_v1alpha_csbi_proto_rawDescData = file_gosdn_csbi_v1alpha_csbi_proto_rawDesc
-)
-
-func file_gosdn_csbi_v1alpha_csbi_proto_rawDescGZIP() []byte {
-	file_gosdn_csbi_v1alpha_csbi_proto_rawDescOnce.Do(func() {
-		file_gosdn_csbi_v1alpha_csbi_proto_rawDescData = protoimpl.X.CompressGZIP(file_gosdn_csbi_v1alpha_csbi_proto_rawDescData)
-	})
-	return file_gosdn_csbi_v1alpha_csbi_proto_rawDescData
-}
-
-var file_gosdn_csbi_v1alpha_csbi_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_gosdn_csbi_v1alpha_csbi_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
-var file_gosdn_csbi_v1alpha_csbi_proto_goTypes = []interface{}{
-	(State)(0),                        // 0: gosdn.csbi.v1alpha.State
-	(DeleteResponse_Status)(0),        // 1: gosdn.csbi.v1alpha.DeleteResponse.Status
-	(*Syn)(nil),                       // 2: gosdn.csbi.v1alpha.Syn
-	(*Ack)(nil),                       // 3: gosdn.csbi.v1alpha.Ack
-	(*GetRequest)(nil),                // 4: gosdn.csbi.v1alpha.GetRequest
-	(*GetResponse)(nil),               // 5: gosdn.csbi.v1alpha.GetResponse
-	(*Deployment)(nil),                // 6: gosdn.csbi.v1alpha.Deployment
-	(*CreateRequest)(nil),             // 7: gosdn.csbi.v1alpha.CreateRequest
-	(*CreatePluginRequest)(nil),       // 8: gosdn.csbi.v1alpha.CreatePluginRequest
-	(*CreateResponse)(nil),            // 9: gosdn.csbi.v1alpha.CreateResponse
-	(*Payload)(nil),                   // 10: gosdn.csbi.v1alpha.Payload
-	(*DeleteRequest)(nil),             // 11: gosdn.csbi.v1alpha.DeleteRequest
-	(*DeleteResponse)(nil),            // 12: gosdn.csbi.v1alpha.DeleteResponse
-	(*transport.TransportOption)(nil), // 13: gosdn.transport.v1alpha.TransportOption
-}
-var file_gosdn_csbi_v1alpha_csbi_proto_depIdxs = []int32{
-	13, // 0: gosdn.csbi.v1alpha.Ack.transport_option:type_name -> gosdn.transport.v1alpha.TransportOption
-	6,  // 1: gosdn.csbi.v1alpha.GetResponse.deployments:type_name -> gosdn.csbi.v1alpha.Deployment
-	0,  // 2: gosdn.csbi.v1alpha.Deployment.state:type_name -> gosdn.csbi.v1alpha.State
-	13, // 3: gosdn.csbi.v1alpha.CreateRequest.transport_option:type_name -> gosdn.transport.v1alpha.TransportOption
-	13, // 4: gosdn.csbi.v1alpha.CreatePluginRequest.transport_option:type_name -> gosdn.transport.v1alpha.TransportOption
-	6,  // 5: gosdn.csbi.v1alpha.CreateResponse.deployments:type_name -> gosdn.csbi.v1alpha.Deployment
-	1,  // 6: gosdn.csbi.v1alpha.DeleteResponse.status:type_name -> gosdn.csbi.v1alpha.DeleteResponse.Status
-	4,  // 7: gosdn.csbi.v1alpha.CsbiService.Get:input_type -> gosdn.csbi.v1alpha.GetRequest
-	7,  // 8: gosdn.csbi.v1alpha.CsbiService.Create:input_type -> gosdn.csbi.v1alpha.CreateRequest
-	11, // 9: gosdn.csbi.v1alpha.CsbiService.Delete:input_type -> gosdn.csbi.v1alpha.DeleteRequest
-	2,  // 10: gosdn.csbi.v1alpha.CsbiService.Hello:input_type -> gosdn.csbi.v1alpha.Syn
-	8,  // 11: gosdn.csbi.v1alpha.CsbiService.CreatePlugin:input_type -> gosdn.csbi.v1alpha.CreatePluginRequest
-	5,  // 12: gosdn.csbi.v1alpha.CsbiService.Get:output_type -> gosdn.csbi.v1alpha.GetResponse
-	9,  // 13: gosdn.csbi.v1alpha.CsbiService.Create:output_type -> gosdn.csbi.v1alpha.CreateResponse
-	12, // 14: gosdn.csbi.v1alpha.CsbiService.Delete:output_type -> gosdn.csbi.v1alpha.DeleteResponse
-	3,  // 15: gosdn.csbi.v1alpha.CsbiService.Hello:output_type -> gosdn.csbi.v1alpha.Ack
-	10, // 16: gosdn.csbi.v1alpha.CsbiService.CreatePlugin:output_type -> gosdn.csbi.v1alpha.Payload
-	12, // [12:17] is the sub-list for method output_type
-	7,  // [7:12] is the sub-list for method input_type
-	7,  // [7:7] is the sub-list for extension type_name
-	7,  // [7:7] is the sub-list for extension extendee
-	0,  // [0:7] is the sub-list for field type_name
-}
-
-func init() { file_gosdn_csbi_v1alpha_csbi_proto_init() }
-func file_gosdn_csbi_v1alpha_csbi_proto_init() {
-	if File_gosdn_csbi_v1alpha_csbi_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_csbi_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_csbi_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_csbi_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_csbi_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_csbi_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_csbi_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CreatePluginRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_csbi_v1alpha_csbi_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_csbi_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_csbi_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_csbi_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			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{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_gosdn_csbi_v1alpha_csbi_proto_rawDesc,
-			NumEnums:      2,
-			NumMessages:   11,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_gosdn_csbi_v1alpha_csbi_proto_goTypes,
-		DependencyIndexes: file_gosdn_csbi_v1alpha_csbi_proto_depIdxs,
-		EnumInfos:         file_gosdn_csbi_v1alpha_csbi_proto_enumTypes,
-		MessageInfos:      file_gosdn_csbi_v1alpha_csbi_proto_msgTypes,
-	}.Build()
-	File_gosdn_csbi_v1alpha_csbi_proto = out.File
-	file_gosdn_csbi_v1alpha_csbi_proto_rawDesc = nil
-	file_gosdn_csbi_v1alpha_csbi_proto_goTypes = nil
-	file_gosdn_csbi_v1alpha_csbi_proto_depIdxs = nil
-}
diff --git a/go/gosdn/csbi/v1alpha/csbi_grpc.pb.go b/go/gosdn/csbi/v1alpha/csbi_grpc.pb.go
deleted file mode 100644
index dd4f207..0000000
--- a/go/gosdn/csbi/v1alpha/csbi_grpc.pb.go
+++ /dev/null
@@ -1,273 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package csbi
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// CsbiServiceClient is the client API for CsbiService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type CsbiServiceClient interface {
-	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
-	Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error)
-	Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
-	Hello(ctx context.Context, in *Syn, opts ...grpc.CallOption) (*Ack, error)
-	CreatePlugin(ctx context.Context, in *CreatePluginRequest, opts ...grpc.CallOption) (CsbiService_CreatePluginClient, error)
-}
-
-type csbiServiceClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewCsbiServiceClient(cc grpc.ClientConnInterface) CsbiServiceClient {
-	return &csbiServiceClient{cc}
-}
-
-func (c *csbiServiceClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
-	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.csbi.v1alpha.CsbiService/Get", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *csbiServiceClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
-	out := new(CreateResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.csbi.v1alpha.CsbiService/Create", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *csbiServiceClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error) {
-	out := new(DeleteResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.csbi.v1alpha.CsbiService/Delete", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *csbiServiceClient) Hello(ctx context.Context, in *Syn, opts ...grpc.CallOption) (*Ack, error) {
-	out := new(Ack)
-	err := c.cc.Invoke(ctx, "/gosdn.csbi.v1alpha.CsbiService/Hello", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *csbiServiceClient) CreatePlugin(ctx context.Context, in *CreatePluginRequest, opts ...grpc.CallOption) (CsbiService_CreatePluginClient, error) {
-	stream, err := c.cc.NewStream(ctx, &CsbiService_ServiceDesc.Streams[0], "/gosdn.csbi.v1alpha.CsbiService/CreatePlugin", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &csbiServiceCreatePluginClient{stream}
-	if err := x.ClientStream.SendMsg(in); err != nil {
-		return nil, err
-	}
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	return x, nil
-}
-
-type CsbiService_CreatePluginClient interface {
-	Recv() (*Payload, error)
-	grpc.ClientStream
-}
-
-type csbiServiceCreatePluginClient struct {
-	grpc.ClientStream
-}
-
-func (x *csbiServiceCreatePluginClient) Recv() (*Payload, error) {
-	m := new(Payload)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-// CsbiServiceServer is the server API for CsbiService service.
-// All implementations must embed UnimplementedCsbiServiceServer
-// for forward compatibility
-type CsbiServiceServer interface {
-	Get(context.Context, *GetRequest) (*GetResponse, error)
-	Create(context.Context, *CreateRequest) (*CreateResponse, error)
-	Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
-	Hello(context.Context, *Syn) (*Ack, error)
-	CreatePlugin(*CreatePluginRequest, CsbiService_CreatePluginServer) error
-	mustEmbedUnimplementedCsbiServiceServer()
-}
-
-// UnimplementedCsbiServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedCsbiServiceServer struct {
-}
-
-func (UnimplementedCsbiServiceServer) Get(context.Context, *GetRequest) (*GetResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
-}
-func (UnimplementedCsbiServiceServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
-}
-func (UnimplementedCsbiServiceServer) Delete(context.Context, *DeleteRequest) (*DeleteResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
-}
-func (UnimplementedCsbiServiceServer) Hello(context.Context, *Syn) (*Ack, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Hello not implemented")
-}
-func (UnimplementedCsbiServiceServer) CreatePlugin(*CreatePluginRequest, CsbiService_CreatePluginServer) error {
-	return status.Errorf(codes.Unimplemented, "method CreatePlugin not implemented")
-}
-func (UnimplementedCsbiServiceServer) mustEmbedUnimplementedCsbiServiceServer() {}
-
-// UnsafeCsbiServiceServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to CsbiServiceServer will
-// result in compilation errors.
-type UnsafeCsbiServiceServer interface {
-	mustEmbedUnimplementedCsbiServiceServer()
-}
-
-func RegisterCsbiServiceServer(s grpc.ServiceRegistrar, srv CsbiServiceServer) {
-	s.RegisterService(&CsbiService_ServiceDesc, srv)
-}
-
-func _CsbiService_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CsbiServiceServer).Get(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.csbi.v1alpha.CsbiService/Get",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CsbiServiceServer).Get(ctx, req.(*GetRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CsbiService_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(CreateRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CsbiServiceServer).Create(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.csbi.v1alpha.CsbiService/Create",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CsbiServiceServer).Create(ctx, req.(*CreateRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CsbiService_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(DeleteRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CsbiServiceServer).Delete(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.csbi.v1alpha.CsbiService/Delete",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CsbiServiceServer).Delete(ctx, req.(*DeleteRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CsbiService_Hello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Syn)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CsbiServiceServer).Hello(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.csbi.v1alpha.CsbiService/Hello",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CsbiServiceServer).Hello(ctx, req.(*Syn))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CsbiService_CreatePlugin_Handler(srv interface{}, stream grpc.ServerStream) error {
-	m := new(CreatePluginRequest)
-	if err := stream.RecvMsg(m); err != nil {
-		return err
-	}
-	return srv.(CsbiServiceServer).CreatePlugin(m, &csbiServiceCreatePluginServer{stream})
-}
-
-type CsbiService_CreatePluginServer interface {
-	Send(*Payload) error
-	grpc.ServerStream
-}
-
-type csbiServiceCreatePluginServer struct {
-	grpc.ServerStream
-}
-
-func (x *csbiServiceCreatePluginServer) Send(m *Payload) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-// CsbiService_ServiceDesc is the grpc.ServiceDesc for CsbiService service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var CsbiService_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "gosdn.csbi.v1alpha.CsbiService",
-	HandlerType: (*CsbiServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "Get",
-			Handler:    _CsbiService_Get_Handler,
-		},
-		{
-			MethodName: "Create",
-			Handler:    _CsbiService_Create_Handler,
-		},
-		{
-			MethodName: "Delete",
-			Handler:    _CsbiService_Delete_Handler,
-		},
-		{
-			MethodName: "Hello",
-			Handler:    _CsbiService_Hello_Handler,
-		},
-	},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "CreatePlugin",
-			Handler:       _CsbiService_CreatePlugin_Handler,
-			ServerStreams: true,
-		},
-	},
-	Metadata: "gosdn/csbi/v1alpha/csbi.proto",
-}
diff --git a/go/gosdn/pnd/pnd.pb.go b/go/gosdn/pnd/pnd.pb.go
index 8b26b9c..c1b0efe 100644
--- a/go/gosdn/pnd/pnd.pb.go
+++ b/go/gosdn/pnd/pnd.pb.go
@@ -9,6 +9,7 @@ package pnd
 import (
 	southbound "code.fbi.h-da.de/danet/api/go/gosdn/southbound"
 	transport "code.fbi.h-da.de/danet/api/go/gosdn/transport"
+	_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"
 	gnmi "github.com/openconfig/gnmi/proto/gnmi"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
 	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
@@ -25,297 +26,214 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-type Change_State int32
+type ApiOperation int32
 
 const (
-	Change_PENDING      Change_State = 0
-	Change_COMMITTED    Change_State = 1
-	Change_CONFIRMED    Change_State = 2
-	Change_INCONSISTENT Change_State = 3
+	ApiOperation_API_OPERATION_UNSPECIFIED ApiOperation = 0
+	ApiOperation_API_OPERATION_UPDATE      ApiOperation = 1
+	ApiOperation_API_OPERATION_REPLACE     ApiOperation = 2
+	ApiOperation_API_OPERATION_DELETE      ApiOperation = 3
 )
 
-// Enum value maps for Change_State.
+// Enum value maps for ApiOperation.
 var (
-	Change_State_name = map[int32]string{
-		0: "PENDING",
-		1: "COMMITTED",
-		2: "CONFIRMED",
-		3: "INCONSISTENT",
-	}
-	Change_State_value = map[string]int32{
-		"PENDING":      0,
-		"COMMITTED":    1,
-		"CONFIRMED":    2,
-		"INCONSISTENT": 3,
+	ApiOperation_name = map[int32]string{
+		0: "API_OPERATION_UNSPECIFIED",
+		1: "API_OPERATION_UPDATE",
+		2: "API_OPERATION_REPLACE",
+		3: "API_OPERATION_DELETE",
+	}
+	ApiOperation_value = map[string]int32{
+		"API_OPERATION_UNSPECIFIED": 0,
+		"API_OPERATION_UPDATE":      1,
+		"API_OPERATION_REPLACE":     2,
+		"API_OPERATION_DELETE":      3,
 	}
 )
 
-func (x Change_State) Enum() *Change_State {
-	p := new(Change_State)
+func (x ApiOperation) Enum() *ApiOperation {
+	p := new(ApiOperation)
 	*p = x
 	return p
 }
 
-func (x Change_State) String() string {
+func (x ApiOperation) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (Change_State) Descriptor() protoreflect.EnumDescriptor {
+func (ApiOperation) Descriptor() protoreflect.EnumDescriptor {
 	return file_gosdn_pnd_pnd_proto_enumTypes[0].Descriptor()
 }
 
-func (Change_State) Type() protoreflect.EnumType {
+func (ApiOperation) Type() protoreflect.EnumType {
 	return &file_gosdn_pnd_pnd_proto_enumTypes[0]
 }
 
-func (x Change_State) Number() protoreflect.EnumNumber {
+func (x ApiOperation) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use Change_State.Descriptor instead.
-func (Change_State) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{13, 0}
+// Deprecated: Use ApiOperation.Descriptor instead.
+func (ApiOperation) EnumDescriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{0}
 }
 
-type SetChange_Operation int32
+type Status int32
 
 const (
-	SetChange_CREATE  SetChange_Operation = 0
-	SetChange_COMMIT  SetChange_Operation = 1
-	SetChange_CONFIRM SetChange_Operation = 2
+	Status_STATUS_UNSPECIFIED Status = 0
+	Status_STATUS_OK          Status = 1
+	Status_STATUS_ERROR       Status = 2
 )
 
-// Enum value maps for SetChange_Operation.
+// Enum value maps for Status.
 var (
-	SetChange_Operation_name = map[int32]string{
-		0: "CREATE",
-		1: "COMMIT",
-		2: "CONFIRM",
+	Status_name = map[int32]string{
+		0: "STATUS_UNSPECIFIED",
+		1: "STATUS_OK",
+		2: "STATUS_ERROR",
 	}
-	SetChange_Operation_value = map[string]int32{
-		"CREATE":  0,
-		"COMMIT":  1,
-		"CONFIRM": 2,
+	Status_value = map[string]int32{
+		"STATUS_UNSPECIFIED": 0,
+		"STATUS_OK":          1,
+		"STATUS_ERROR":       2,
 	}
 )
 
-func (x SetChange_Operation) Enum() *SetChange_Operation {
-	p := new(SetChange_Operation)
+func (x Status) Enum() *Status {
+	p := new(Status)
 	*p = x
 	return p
 }
 
-func (x SetChange_Operation) String() string {
+func (x Status) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (SetChange_Operation) Descriptor() protoreflect.EnumDescriptor {
+func (Status) Descriptor() protoreflect.EnumDescriptor {
 	return file_gosdn_pnd_pnd_proto_enumTypes[1].Descriptor()
 }
 
-func (SetChange_Operation) Type() protoreflect.EnumType {
+func (Status) Type() protoreflect.EnumType {
 	return &file_gosdn_pnd_pnd_proto_enumTypes[1]
 }
 
-func (x SetChange_Operation) Number() protoreflect.EnumNumber {
+func (x Status) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use SetChange_Operation.Descriptor instead.
-func (SetChange_Operation) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{20, 0}
+// Deprecated: Use Status.Descriptor instead.
+func (Status) EnumDescriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{1}
 }
 
-type ChangeRequest_ApiOperation int32
+type Change_State int32
 
 const (
-	ChangeRequest_UPDATE  ChangeRequest_ApiOperation = 0
-	ChangeRequest_REPLACE ChangeRequest_ApiOperation = 1
-	ChangeRequest_DELETE  ChangeRequest_ApiOperation = 2
+	Change_STATE_UNSPECIFIED  Change_State = 0
+	Change_STATE_PENDING      Change_State = 1
+	Change_STATE_COMMITTED    Change_State = 2
+	Change_STATE_CONFIRMED    Change_State = 3
+	Change_STATE_INCONSISTENT Change_State = 4
 )
 
-// Enum value maps for ChangeRequest_ApiOperation.
+// Enum value maps for Change_State.
 var (
-	ChangeRequest_ApiOperation_name = map[int32]string{
-		0: "UPDATE",
-		1: "REPLACE",
-		2: "DELETE",
+	Change_State_name = map[int32]string{
+		0: "STATE_UNSPECIFIED",
+		1: "STATE_PENDING",
+		2: "STATE_COMMITTED",
+		3: "STATE_CONFIRMED",
+		4: "STATE_INCONSISTENT",
 	}
-	ChangeRequest_ApiOperation_value = map[string]int32{
-		"UPDATE":  0,
-		"REPLACE": 1,
-		"DELETE":  2,
+	Change_State_value = map[string]int32{
+		"STATE_UNSPECIFIED":  0,
+		"STATE_PENDING":      1,
+		"STATE_COMMITTED":    2,
+		"STATE_CONFIRMED":    3,
+		"STATE_INCONSISTENT": 4,
 	}
 )
 
-func (x ChangeRequest_ApiOperation) Enum() *ChangeRequest_ApiOperation {
-	p := new(ChangeRequest_ApiOperation)
+func (x Change_State) Enum() *Change_State {
+	p := new(Change_State)
 	*p = x
 	return p
 }
 
-func (x ChangeRequest_ApiOperation) String() string {
+func (x Change_State) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (ChangeRequest_ApiOperation) Descriptor() protoreflect.EnumDescriptor {
+func (Change_State) Descriptor() protoreflect.EnumDescriptor {
 	return file_gosdn_pnd_pnd_proto_enumTypes[2].Descriptor()
 }
 
-func (ChangeRequest_ApiOperation) Type() protoreflect.EnumType {
+func (Change_State) Type() protoreflect.EnumType {
 	return &file_gosdn_pnd_pnd_proto_enumTypes[2]
 }
 
-func (x ChangeRequest_ApiOperation) Number() protoreflect.EnumNumber {
+func (x Change_State) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use ChangeRequest_ApiOperation.Descriptor instead.
-func (ChangeRequest_ApiOperation) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{21, 0}
+// Deprecated: Use Change_State.Descriptor instead.
+func (Change_State) EnumDescriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{16, 0}
 }
 
-type SetResponseStatus int32
+type SetChange_Operation int32
 
 const (
-	SetResponse_OK    SetResponseStatus = 0
-	SetResponse_ERROR SetResponseStatus = 1
+	SetChange_OPERATION_UNSPECIFIED SetChange_Operation = 0
+	SetChange_OPERATION_CREATE      SetChange_Operation = 1
+	SetChange_OPERATION_COMMIT      SetChange_Operation = 2
+	SetChange_OPERATION_CONFIRM     SetChange_Operation = 3
 )
 
-// Enum value maps for SetResponseStatus.
+// Enum value maps for SetChange_Operation.
 var (
-	SetResponseStatus_name = map[int32]string{
-		0: "OK",
-		1: "ERROR",
+	SetChange_Operation_name = map[int32]string{
+		0: "OPERATION_UNSPECIFIED",
+		1: "OPERATION_CREATE",
+		2: "OPERATION_COMMIT",
+		3: "OPERATION_CONFIRM",
 	}
-	SetResponseStatus_value = map[string]int32{
-		"OK":    0,
-		"ERROR": 1,
+	SetChange_Operation_value = map[string]int32{
+		"OPERATION_UNSPECIFIED": 0,
+		"OPERATION_CREATE":      1,
+		"OPERATION_COMMIT":      2,
+		"OPERATION_CONFIRM":     3,
 	}
 )
 
-func (x SetResponseStatus) Enum() *SetResponseStatus {
-	p := new(SetResponseStatus)
+func (x SetChange_Operation) Enum() *SetChange_Operation {
+	p := new(SetChange_Operation)
 	*p = x
 	return p
 }
 
-func (x SetResponseStatus) String() string {
+func (x SetChange_Operation) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (SetResponseStatus) Descriptor() protoreflect.EnumDescriptor {
+func (SetChange_Operation) Descriptor() protoreflect.EnumDescriptor {
 	return file_gosdn_pnd_pnd_proto_enumTypes[3].Descriptor()
 }
 
-func (SetResponseStatus) Type() protoreflect.EnumType {
+func (SetChange_Operation) Type() protoreflect.EnumType {
 	return &file_gosdn_pnd_pnd_proto_enumTypes[3]
 }
 
-func (x SetResponseStatus) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use SetResponseStatus.Descriptor instead.
-func (SetResponseStatus) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{22, 0}
-}
-
-type DeleteRequest_Type int32
-
-const (
-	DeleteRequest_OND DeleteRequest_Type = 0
-	DeleteRequest_SBI DeleteRequest_Type = 1
-	DeleteRequest_PND DeleteRequest_Type = 2
-)
-
-// Enum value maps for DeleteRequest_Type.
-var (
-	DeleteRequest_Type_name = map[int32]string{
-		0: "OND",
-		1: "SBI",
-		2: "PND",
-	}
-	DeleteRequest_Type_value = map[string]int32{
-		"OND": 0,
-		"SBI": 1,
-		"PND": 2,
-	}
-)
-
-func (x DeleteRequest_Type) Enum() *DeleteRequest_Type {
-	p := new(DeleteRequest_Type)
-	*p = x
-	return p
-}
-
-func (x DeleteRequest_Type) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (DeleteRequest_Type) Descriptor() protoreflect.EnumDescriptor {
-	return file_gosdn_pnd_pnd_proto_enumTypes[4].Descriptor()
-}
-
-func (DeleteRequest_Type) Type() protoreflect.EnumType {
-	return &file_gosdn_pnd_pnd_proto_enumTypes[4]
-}
-
-func (x DeleteRequest_Type) Number() protoreflect.EnumNumber {
+func (x SetChange_Operation) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use DeleteRequest_Type.Descriptor instead.
-func (DeleteRequest_Type) EnumDescriptor() ([]byte, []int) {
+// Deprecated: Use SetChange_Operation.Descriptor instead.
+func (SetChange_Operation) EnumDescriptor() ([]byte, []int) {
 	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{23, 0}
 }
 
-type DeleteResponseStatus int32
-
-const (
-	DeleteResponse_OK    DeleteResponseStatus = 0
-	DeleteResponse_ERROR DeleteResponseStatus = 1
-)
-
-// Enum value maps for DeleteResponseStatus.
-var (
-	DeleteResponseStatus_name = map[int32]string{
-		0: "OK",
-		1: "ERROR",
-	}
-	DeleteResponseStatus_value = map[string]int32{
-		"OK":    0,
-		"ERROR": 1,
-	}
-)
-
-func (x DeleteResponseStatus) Enum() *DeleteResponseStatus {
-	p := new(DeleteResponseStatus)
-	*p = x
-	return p
-}
-
-func (x DeleteResponseStatus) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (DeleteResponseStatus) Descriptor() protoreflect.EnumDescriptor {
-	return file_gosdn_pnd_pnd_proto_enumTypes[5].Descriptor()
-}
-
-func (DeleteResponseStatus) Type() protoreflect.EnumType {
-	return &file_gosdn_pnd_pnd_proto_enumTypes[5]
-}
-
-func (x DeleteResponseStatus) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use DeleteResponseStatus.Descriptor instead.
-func (DeleteResponseStatus) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{24, 0}
-}
-
 type GetOndListRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -376,9 +294,9 @@ type GetOndRequest struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Timestamp int64    `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	Did       []string `protobuf:"bytes,3,rep,name=did,proto3" json:"did,omitempty"`
-	Pid       string   `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
+	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	Did       string `protobuf:"bytes,3,opt,name=did,proto3" json:"did,omitempty"`
+	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
 }
 
 func (x *GetOndRequest) Reset() {
@@ -420,11 +338,11 @@ func (x *GetOndRequest) GetTimestamp() int64 {
 	return 0
 }
 
-func (x *GetOndRequest) GetDid() []string {
+func (x *GetOndRequest) GetDid() string {
 	if x != nil {
 		return x.Did
 	}
-	return nil
+	return ""
 }
 
 func (x *GetOndRequest) GetPid() string {
@@ -494,9 +412,9 @@ type GetSbiRequest struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Timestamp int64    `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	Sid       []string `protobuf:"bytes,3,rep,name=sid,proto3" json:"sid,omitempty"`
-	Pid       string   `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
+	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	Sid       string `protobuf:"bytes,3,opt,name=sid,proto3" json:"sid,omitempty"`
+	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
 }
 
 func (x *GetSbiRequest) Reset() {
@@ -538,11 +456,11 @@ func (x *GetSbiRequest) GetTimestamp() int64 {
 	return 0
 }
 
-func (x *GetSbiRequest) GetSid() []string {
+func (x *GetSbiRequest) GetSid() string {
 	if x != nil {
 		return x.Sid
 	}
-	return nil
+	return ""
 }
 
 func (x *GetSbiRequest) GetPid() string {
@@ -612,9 +530,9 @@ type GetChangeRequest struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Timestamp int64    `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	Cuid      []string `protobuf:"bytes,3,rep,name=cuid,proto3" json:"cuid,omitempty"`
-	Pid       string   `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
+	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	Cuid      string `protobuf:"bytes,3,opt,name=cuid,proto3" json:"cuid,omitempty"`
+	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
 }
 
 func (x *GetChangeRequest) Reset() {
@@ -656,11 +574,11 @@ func (x *GetChangeRequest) GetTimestamp() int64 {
 	return 0
 }
 
-func (x *GetChangeRequest) GetCuid() []string {
+func (x *GetChangeRequest) GetCuid() string {
 	if x != nil {
 		return x.Cuid
 	}
-	return nil
+	return ""
 }
 
 func (x *GetChangeRequest) GetPid() string {
@@ -749,8 +667,8 @@ type GetOndResponse struct {
 	Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
 	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
 	// is also sufficient.
-	Pnd *PrincipalNetworkDomain         `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-	Ond []*OrchestratedNetworkingDevice `protobuf:"bytes,3,rep,name=ond,proto3" json:"ond,omitempty"`
+	Pnd *PrincipalNetworkDomain       `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
+	Ond *OrchestratedNetworkingDevice `protobuf:"bytes,3,opt,name=ond,proto3" json:"ond,omitempty"`
 }
 
 func (x *GetOndResponse) Reset() {
@@ -799,14 +717,14 @@ func (x *GetOndResponse) GetPnd() *PrincipalNetworkDomain {
 	return nil
 }
 
-func (x *GetOndResponse) GetOnd() []*OrchestratedNetworkingDevice {
+func (x *GetOndResponse) GetOnd() *OrchestratedNetworkingDevice {
 	if x != nil {
 		return x.Ond
 	}
 	return nil
 }
 
-type GetSbiResponse struct {
+type GetOndListResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -814,12 +732,12 @@ type GetSbiResponse struct {
 	Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
 	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
 	// is also sufficient.
-	Pnd *PrincipalNetworkDomain           `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-	Sbi []*southbound.SouthboundInterface `protobuf:"bytes,3,rep,name=sbi,proto3" json:"sbi,omitempty"`
+	Pnd *PrincipalNetworkDomain         `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
+	Ond []*OrchestratedNetworkingDevice `protobuf:"bytes,3,rep,name=ond,proto3" json:"ond,omitempty"`
 }
 
-func (x *GetSbiResponse) Reset() {
-	*x = GetSbiResponse{}
+func (x *GetOndListResponse) Reset() {
+	*x = GetOndListResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_gosdn_pnd_pnd_proto_msgTypes[8]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -827,13 +745,13 @@ func (x *GetSbiResponse) Reset() {
 	}
 }
 
-func (x *GetSbiResponse) String() string {
+func (x *GetOndListResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*GetSbiResponse) ProtoMessage() {}
+func (*GetOndListResponse) ProtoMessage() {}
 
-func (x *GetSbiResponse) ProtoReflect() protoreflect.Message {
+func (x *GetOndListResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[8]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -845,33 +763,33 @@ func (x *GetSbiResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use GetSbiResponse.ProtoReflect.Descriptor instead.
-func (*GetSbiResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use GetOndListResponse.ProtoReflect.Descriptor instead.
+func (*GetOndListResponse) Descriptor() ([]byte, []int) {
 	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{8}
 }
 
-func (x *GetSbiResponse) GetTimestamp() int64 {
+func (x *GetOndListResponse) GetTimestamp() int64 {
 	if x != nil {
 		return x.Timestamp
 	}
 	return 0
 }
 
-func (x *GetSbiResponse) GetPnd() *PrincipalNetworkDomain {
+func (x *GetOndListResponse) GetPnd() *PrincipalNetworkDomain {
 	if x != nil {
 		return x.Pnd
 	}
 	return nil
 }
 
-func (x *GetSbiResponse) GetSbi() []*southbound.SouthboundInterface {
+func (x *GetOndListResponse) GetOnd() []*OrchestratedNetworkingDevice {
 	if x != nil {
-		return x.Sbi
+		return x.Ond
 	}
 	return nil
 }
 
-type GetPathResponse struct {
+type GetSbiResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -879,12 +797,12 @@ type GetPathResponse struct {
 	Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
 	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
 	// is also sufficient.
-	Pnd    *PrincipalNetworkDomain `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-	Device []*gnmi.Notification    `protobuf:"bytes,3,rep,name=device,proto3" json:"device,omitempty"`
+	Pnd *PrincipalNetworkDomain         `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
+	Sbi *southbound.SouthboundInterface `protobuf:"bytes,3,opt,name=sbi,proto3" json:"sbi,omitempty"`
 }
 
-func (x *GetPathResponse) Reset() {
-	*x = GetPathResponse{}
+func (x *GetSbiResponse) Reset() {
+	*x = GetSbiResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_gosdn_pnd_pnd_proto_msgTypes[9]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -892,13 +810,13 @@ func (x *GetPathResponse) Reset() {
 	}
 }
 
-func (x *GetPathResponse) String() string {
+func (x *GetSbiResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*GetPathResponse) ProtoMessage() {}
+func (*GetSbiResponse) ProtoMessage() {}
 
-func (x *GetPathResponse) ProtoReflect() protoreflect.Message {
+func (x *GetSbiResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[9]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -910,33 +828,33 @@ func (x *GetPathResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use GetPathResponse.ProtoReflect.Descriptor instead.
-func (*GetPathResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use GetSbiResponse.ProtoReflect.Descriptor instead.
+func (*GetSbiResponse) Descriptor() ([]byte, []int) {
 	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{9}
 }
 
-func (x *GetPathResponse) GetTimestamp() int64 {
+func (x *GetSbiResponse) GetTimestamp() int64 {
 	if x != nil {
 		return x.Timestamp
 	}
 	return 0
 }
 
-func (x *GetPathResponse) GetPnd() *PrincipalNetworkDomain {
+func (x *GetSbiResponse) GetPnd() *PrincipalNetworkDomain {
 	if x != nil {
 		return x.Pnd
 	}
 	return nil
 }
 
-func (x *GetPathResponse) GetDevice() []*gnmi.Notification {
+func (x *GetSbiResponse) GetSbi() *southbound.SouthboundInterface {
 	if x != nil {
-		return x.Device
+		return x.Sbi
 	}
 	return nil
 }
 
-type GetChangeResponse struct {
+type GetSbiListResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -944,12 +862,12 @@ type GetChangeResponse struct {
 	Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
 	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
 	// is also sufficient.
-	Pnd    *PrincipalNetworkDomain `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-	Change []*Change               `protobuf:"bytes,3,rep,name=change,proto3" json:"change,omitempty"`
+	Pnd *PrincipalNetworkDomain           `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
+	Sbi []*southbound.SouthboundInterface `protobuf:"bytes,3,rep,name=sbi,proto3" json:"sbi,omitempty"`
 }
 
-func (x *GetChangeResponse) Reset() {
-	*x = GetChangeResponse{}
+func (x *GetSbiListResponse) Reset() {
+	*x = GetSbiListResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_gosdn_pnd_pnd_proto_msgTypes[10]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -957,13 +875,13 @@ func (x *GetChangeResponse) Reset() {
 	}
 }
 
-func (x *GetChangeResponse) String() string {
+func (x *GetSbiListResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*GetChangeResponse) ProtoMessage() {}
+func (*GetSbiListResponse) ProtoMessage() {}
 
-func (x *GetChangeResponse) ProtoReflect() protoreflect.Message {
+func (x *GetSbiListResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[10]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -975,44 +893,46 @@ func (x *GetChangeResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use GetChangeResponse.ProtoReflect.Descriptor instead.
-func (*GetChangeResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use GetSbiListResponse.ProtoReflect.Descriptor instead.
+func (*GetSbiListResponse) Descriptor() ([]byte, []int) {
 	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{10}
 }
 
-func (x *GetChangeResponse) GetTimestamp() int64 {
+func (x *GetSbiListResponse) GetTimestamp() int64 {
 	if x != nil {
 		return x.Timestamp
 	}
 	return 0
 }
 
-func (x *GetChangeResponse) GetPnd() *PrincipalNetworkDomain {
+func (x *GetSbiListResponse) GetPnd() *PrincipalNetworkDomain {
 	if x != nil {
 		return x.Pnd
 	}
 	return nil
 }
 
-func (x *GetChangeResponse) GetChange() []*Change {
+func (x *GetSbiListResponse) GetSbi() []*southbound.SouthboundInterface {
 	if x != nil {
-		return x.Change
+		return x.Sbi
 	}
 	return nil
 }
 
-type PrincipalNetworkDomain struct {
+type GetPathResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Id          string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Name        string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
+	Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
+	// is also sufficient.
+	Pnd    *PrincipalNetworkDomain `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
+	Device []*gnmi.Notification    `protobuf:"bytes,3,rep,name=device,proto3" json:"device,omitempty"`
 }
 
-func (x *PrincipalNetworkDomain) Reset() {
-	*x = PrincipalNetworkDomain{}
+func (x *GetPathResponse) Reset() {
+	*x = GetPathResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_gosdn_pnd_pnd_proto_msgTypes[11]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1020,13 +940,13 @@ func (x *PrincipalNetworkDomain) Reset() {
 	}
 }
 
-func (x *PrincipalNetworkDomain) String() string {
+func (x *GetPathResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*PrincipalNetworkDomain) ProtoMessage() {}
+func (*GetPathResponse) ProtoMessage() {}
 
-func (x *PrincipalNetworkDomain) ProtoReflect() protoreflect.Message {
+func (x *GetPathResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[11]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1038,45 +958,46 @@ func (x *PrincipalNetworkDomain) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use PrincipalNetworkDomain.ProtoReflect.Descriptor instead.
-func (*PrincipalNetworkDomain) Descriptor() ([]byte, []int) {
+// Deprecated: Use GetPathResponse.ProtoReflect.Descriptor instead.
+func (*GetPathResponse) Descriptor() ([]byte, []int) {
 	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{11}
 }
 
-func (x *PrincipalNetworkDomain) GetId() string {
+func (x *GetPathResponse) GetTimestamp() int64 {
 	if x != nil {
-		return x.Id
+		return x.Timestamp
 	}
-	return ""
+	return 0
 }
 
-func (x *PrincipalNetworkDomain) GetName() string {
+func (x *GetPathResponse) GetPnd() *PrincipalNetworkDomain {
 	if x != nil {
-		return x.Name
+		return x.Pnd
 	}
-	return ""
+	return nil
 }
 
-func (x *PrincipalNetworkDomain) GetDescription() string {
+func (x *GetPathResponse) GetDevice() []*gnmi.Notification {
 	if x != nil {
-		return x.Description
+		return x.Device
 	}
-	return ""
+	return nil
 }
 
-type OrchestratedNetworkingDevice struct {
+type GetChangeResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Id     string                          `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Name   string                          `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	Device []*gnmi.Notification            `protobuf:"bytes,3,rep,name=device,proto3" json:"device,omitempty"`
-	Sbi    *southbound.SouthboundInterface `protobuf:"bytes,4,opt,name=sbi,proto3" json:"sbi,omitempty"`
+	Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
+	// is also sufficient.
+	Pnd    *PrincipalNetworkDomain `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
+	Change *Change                 `protobuf:"bytes,3,opt,name=change,proto3" json:"change,omitempty"`
 }
 
-func (x *OrchestratedNetworkingDevice) Reset() {
-	*x = OrchestratedNetworkingDevice{}
+func (x *GetChangeResponse) Reset() {
+	*x = GetChangeResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_gosdn_pnd_pnd_proto_msgTypes[12]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1084,13 +1005,13 @@ func (x *OrchestratedNetworkingDevice) Reset() {
 	}
 }
 
-func (x *OrchestratedNetworkingDevice) String() string {
+func (x *GetChangeResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*OrchestratedNetworkingDevice) ProtoMessage() {}
+func (*GetChangeResponse) ProtoMessage() {}
 
-func (x *OrchestratedNetworkingDevice) ProtoReflect() protoreflect.Message {
+func (x *GetChangeResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_gosdn_pnd_pnd_proto_msgTypes[12]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1102,34 +1023,226 @@ func (x *OrchestratedNetworkingDevice) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use OrchestratedNetworkingDevice.ProtoReflect.Descriptor instead.
-func (*OrchestratedNetworkingDevice) Descriptor() ([]byte, []int) {
+// Deprecated: Use GetChangeResponse.ProtoReflect.Descriptor instead.
+func (*GetChangeResponse) Descriptor() ([]byte, []int) {
 	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{12}
 }
 
-func (x *OrchestratedNetworkingDevice) GetId() string {
+func (x *GetChangeResponse) GetTimestamp() int64 {
 	if x != nil {
-		return x.Id
+		return x.Timestamp
 	}
-	return ""
+	return 0
 }
 
-func (x *OrchestratedNetworkingDevice) GetName() string {
+func (x *GetChangeResponse) GetPnd() *PrincipalNetworkDomain {
 	if x != nil {
-		return x.Name
+		return x.Pnd
 	}
-	return ""
+	return nil
 }
 
-func (x *OrchestratedNetworkingDevice) GetDevice() []*gnmi.Notification {
+func (x *GetChangeResponse) GetChange() *Change {
 	if x != nil {
-		return x.Device
+		return x.Change
 	}
 	return nil
 }
 
-func (x *OrchestratedNetworkingDevice) GetSbi() *southbound.SouthboundInterface {
-	if x != nil {
+type GetChangeListResponse 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.
+	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
+	// is also sufficient.
+	Pnd    *PrincipalNetworkDomain `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
+	Change []*Change               `protobuf:"bytes,3,rep,name=change,proto3" json:"change,omitempty"`
+}
+
+func (x *GetChangeListResponse) Reset() {
+	*x = GetChangeListResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[13]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *GetChangeListResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetChangeListResponse) ProtoMessage() {}
+
+func (x *GetChangeListResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[13]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetChangeListResponse.ProtoReflect.Descriptor instead.
+func (*GetChangeListResponse) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *GetChangeListResponse) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *GetChangeListResponse) GetPnd() *PrincipalNetworkDomain {
+	if x != nil {
+		return x.Pnd
+	}
+	return nil
+}
+
+func (x *GetChangeListResponse) GetChange() []*Change {
+	if x != nil {
+		return x.Change
+	}
+	return nil
+}
+
+type PrincipalNetworkDomain struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Id          string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	Name        string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
+}
+
+func (x *PrincipalNetworkDomain) Reset() {
+	*x = PrincipalNetworkDomain{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[14]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *PrincipalNetworkDomain) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PrincipalNetworkDomain) ProtoMessage() {}
+
+func (x *PrincipalNetworkDomain) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[14]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PrincipalNetworkDomain.ProtoReflect.Descriptor instead.
+func (*PrincipalNetworkDomain) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{14}
+}
+
+func (x *PrincipalNetworkDomain) GetId() string {
+	if x != nil {
+		return x.Id
+	}
+	return ""
+}
+
+func (x *PrincipalNetworkDomain) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *PrincipalNetworkDomain) GetDescription() string {
+	if x != nil {
+		return x.Description
+	}
+	return ""
+}
+
+type OrchestratedNetworkingDevice struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Id     string                          `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	Name   string                          `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	Device []*gnmi.Notification            `protobuf:"bytes,3,rep,name=device,proto3" json:"device,omitempty"`
+	Sbi    *southbound.SouthboundInterface `protobuf:"bytes,4,opt,name=sbi,proto3" json:"sbi,omitempty"`
+}
+
+func (x *OrchestratedNetworkingDevice) Reset() {
+	*x = OrchestratedNetworkingDevice{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[15]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *OrchestratedNetworkingDevice) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OrchestratedNetworkingDevice) ProtoMessage() {}
+
+func (x *OrchestratedNetworkingDevice) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[15]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OrchestratedNetworkingDevice.ProtoReflect.Descriptor instead.
+func (*OrchestratedNetworkingDevice) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{15}
+}
+
+func (x *OrchestratedNetworkingDevice) GetId() string {
+	if x != nil {
+		return x.Id
+	}
+	return ""
+}
+
+func (x *OrchestratedNetworkingDevice) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *OrchestratedNetworkingDevice) GetDevice() []*gnmi.Notification {
+	if x != nil {
+		return x.Device
+	}
+	return nil
+}
+
+func (x *OrchestratedNetworkingDevice) GetSbi() *southbound.SouthboundInterface {
+	if x != nil {
 		return x.Sbi
 	}
 	return nil
@@ -1142,13 +1255,13 @@ type Change struct {
 
 	Id    string       `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	Age   int64        `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"`
-	State Change_State `protobuf:"varint,3,opt,name=state,proto3,enum=gosdn.pnd.Change_State" json:"state,omitempty"`
+	State Change_State `protobuf:"varint,3,opt,name=state,proto3,enum=gosdn.pnd.v1alpha.Change_State" json:"state,omitempty"`
 }
 
 func (x *Change) Reset() {
 	*x = Change{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[13]
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[16]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -1161,7 +1274,7 @@ func (x *Change) String() string {
 func (*Change) ProtoMessage() {}
 
 func (x *Change) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_pnd_proto_msgTypes[13]
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[16]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1174,7 +1287,7 @@ func (x *Change) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Change.ProtoReflect.Descriptor instead.
 func (*Change) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{13}
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{16}
 }
 
 func (x *Change) GetId() string {
@@ -1195,10 +1308,10 @@ func (x *Change) GetState() Change_State {
 	if x != nil {
 		return x.State
 	}
-	return Change_PENDING
+	return Change_STATE_UNSPECIFIED
 }
 
-type SetOndRequest struct {
+type SetOndListRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -1208,23 +1321,23 @@ type SetOndRequest struct {
 	Pid       string    `protobuf:"bytes,3,opt,name=pid,proto3" json:"pid,omitempty"`
 }
 
-func (x *SetOndRequest) Reset() {
-	*x = SetOndRequest{}
+func (x *SetOndListRequest) Reset() {
+	*x = SetOndListRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[14]
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[17]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *SetOndRequest) String() string {
+func (x *SetOndListRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*SetOndRequest) ProtoMessage() {}
+func (*SetOndListRequest) ProtoMessage() {}
 
-func (x *SetOndRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_pnd_proto_msgTypes[14]
+func (x *SetOndListRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[17]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1235,33 +1348,33 @@ func (x *SetOndRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use SetOndRequest.ProtoReflect.Descriptor instead.
-func (*SetOndRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{14}
+// Deprecated: Use SetOndListRequest.ProtoReflect.Descriptor instead.
+func (*SetOndListRequest) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{17}
 }
 
-func (x *SetOndRequest) GetTimestamp() int64 {
+func (x *SetOndListRequest) GetTimestamp() int64 {
 	if x != nil {
 		return x.Timestamp
 	}
 	return 0
 }
 
-func (x *SetOndRequest) GetOnd() []*SetOnd {
+func (x *SetOndListRequest) GetOnd() []*SetOnd {
 	if x != nil {
 		return x.Ond
 	}
 	return nil
 }
 
-func (x *SetOndRequest) GetPid() string {
+func (x *SetOndListRequest) GetPid() string {
 	if x != nil {
 		return x.Pid
 	}
 	return ""
 }
 
-type SetSbiRequest struct {
+type SetSbiListRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -1271,23 +1384,23 @@ type SetSbiRequest struct {
 	Pid       string    `protobuf:"bytes,3,opt,name=pid,proto3" json:"pid,omitempty"`
 }
 
-func (x *SetSbiRequest) Reset() {
-	*x = SetSbiRequest{}
+func (x *SetSbiListRequest) Reset() {
+	*x = SetSbiListRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[15]
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[18]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *SetSbiRequest) String() string {
+func (x *SetSbiListRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*SetSbiRequest) ProtoMessage() {}
+func (*SetSbiListRequest) ProtoMessage() {}
 
-func (x *SetSbiRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_pnd_proto_msgTypes[15]
+func (x *SetSbiListRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[18]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1298,33 +1411,33 @@ func (x *SetSbiRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use SetSbiRequest.ProtoReflect.Descriptor instead.
-func (*SetSbiRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{15}
+// Deprecated: Use SetSbiListRequest.ProtoReflect.Descriptor instead.
+func (*SetSbiListRequest) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{18}
 }
 
-func (x *SetSbiRequest) GetTimestamp() int64 {
+func (x *SetSbiListRequest) GetTimestamp() int64 {
 	if x != nil {
 		return x.Timestamp
 	}
 	return 0
 }
 
-func (x *SetSbiRequest) GetSbi() []*SetSbi {
+func (x *SetSbiListRequest) GetSbi() []*SetSbi {
 	if x != nil {
 		return x.Sbi
 	}
 	return nil
 }
 
-func (x *SetSbiRequest) GetPid() string {
+func (x *SetSbiListRequest) GetPid() string {
 	if x != nil {
 		return x.Pid
 	}
 	return ""
 }
 
-type SetChangeRequest struct {
+type SetChangeListRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -1334,23 +1447,23 @@ type SetChangeRequest struct {
 	Pid       string       `protobuf:"bytes,3,opt,name=pid,proto3" json:"pid,omitempty"`
 }
 
-func (x *SetChangeRequest) Reset() {
-	*x = SetChangeRequest{}
+func (x *SetChangeListRequest) Reset() {
+	*x = SetChangeListRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[16]
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[19]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *SetChangeRequest) String() string {
+func (x *SetChangeListRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*SetChangeRequest) ProtoMessage() {}
+func (*SetChangeListRequest) ProtoMessage() {}
 
-func (x *SetChangeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_pnd_proto_msgTypes[16]
+func (x *SetChangeListRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[19]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1361,60 +1474,60 @@ func (x *SetChangeRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use SetChangeRequest.ProtoReflect.Descriptor instead.
-func (*SetChangeRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{16}
+// Deprecated: Use SetChangeListRequest.ProtoReflect.Descriptor instead.
+func (*SetChangeListRequest) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{19}
 }
 
-func (x *SetChangeRequest) GetTimestamp() int64 {
+func (x *SetChangeListRequest) GetTimestamp() int64 {
 	if x != nil {
 		return x.Timestamp
 	}
 	return 0
 }
 
-func (x *SetChangeRequest) GetChange() []*SetChange {
+func (x *SetChangeListRequest) GetChange() []*SetChange {
 	if x != nil {
 		return x.Change
 	}
 	return nil
 }
 
-func (x *SetChangeRequest) GetPid() string {
+func (x *SetChangeListRequest) GetPid() string {
 	if x != nil {
 		return x.Pid
 	}
 	return ""
 }
 
-type SetPathRequest struct {
+type SetPathListRequest 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.
-	ChangeRequest []*ChangeRequest `protobuf:"bytes,2,rep,name=changeRequest,proto3" json:"changeRequest,omitempty"`
+	ChangeRequest []*ChangeRequest `protobuf:"bytes,2,rep,name=change_request,json=changeRequest,proto3" json:"change_request,omitempty"`
 	Did           string           `protobuf:"bytes,3,opt,name=did,proto3" json:"did,omitempty"`
 	Pid           string           `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
 }
 
-func (x *SetPathRequest) Reset() {
-	*x = SetPathRequest{}
+func (x *SetPathListRequest) Reset() {
+	*x = SetPathListRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[17]
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[20]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *SetPathRequest) String() string {
+func (x *SetPathListRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*SetPathRequest) ProtoMessage() {}
+func (*SetPathListRequest) ProtoMessage() {}
 
-func (x *SetPathRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_pnd_proto_msgTypes[17]
+func (x *SetPathListRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[20]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1425,33 +1538,33 @@ func (x *SetPathRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use SetPathRequest.ProtoReflect.Descriptor instead.
-func (*SetPathRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{17}
+// Deprecated: Use SetPathListRequest.ProtoReflect.Descriptor instead.
+func (*SetPathListRequest) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{20}
 }
 
-func (x *SetPathRequest) GetTimestamp() int64 {
+func (x *SetPathListRequest) GetTimestamp() int64 {
 	if x != nil {
 		return x.Timestamp
 	}
 	return 0
 }
 
-func (x *SetPathRequest) GetChangeRequest() []*ChangeRequest {
+func (x *SetPathListRequest) GetChangeRequest() []*ChangeRequest {
 	if x != nil {
 		return x.ChangeRequest
 	}
 	return nil
 }
 
-func (x *SetPathRequest) GetDid() string {
+func (x *SetPathListRequest) GetDid() string {
 	if x != nil {
 		return x.Did
 	}
 	return ""
 }
 
-func (x *SetPathRequest) GetPid() string {
+func (x *SetPathListRequest) GetPid() string {
 	if x != nil {
 		return x.Pid
 	}
@@ -1465,14 +1578,14 @@ type SetOnd struct {
 
 	Address         string                          `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
 	Sbi             *southbound.SouthboundInterface `protobuf:"bytes,2,opt,name=sbi,proto3" json:"sbi,omitempty"`
-	DeviceName      string                          `protobuf:"bytes,3,opt,name=deviceName,proto3" json:"deviceName,omitempty"`
-	TransportOption *transport.TransportOption      `protobuf:"bytes,4,opt,name=transportOption,proto3" json:"transportOption,omitempty"`
+	DeviceName      string                          `protobuf:"bytes,3,opt,name=device_name,json=deviceName,proto3" json:"device_name,omitempty"`
+	TransportOption *transport.TransportOption      `protobuf:"bytes,4,opt,name=transport_option,json=transportOption,proto3" json:"transport_option,omitempty"`
 }
 
 func (x *SetOnd) Reset() {
 	*x = SetOnd{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[18]
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[21]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -1485,7 +1598,7 @@ func (x *SetOnd) String() string {
 func (*SetOnd) ProtoMessage() {}
 
 func (x *SetOnd) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_pnd_proto_msgTypes[18]
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[21]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1498,7 +1611,7 @@ func (x *SetOnd) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SetOnd.ProtoReflect.Descriptor instead.
 func (*SetOnd) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{18}
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{21}
 }
 
 func (x *SetOnd) GetAddress() string {
@@ -1538,7 +1651,7 @@ type SetSbi struct {
 func (x *SetSbi) Reset() {
 	*x = SetSbi{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[19]
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[22]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -1551,7 +1664,7 @@ func (x *SetSbi) String() string {
 func (*SetSbi) ProtoMessage() {}
 
 func (x *SetSbi) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_pnd_proto_msgTypes[19]
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[22]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1564,7 +1677,7 @@ func (x *SetSbi) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SetSbi.ProtoReflect.Descriptor instead.
 func (*SetSbi) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{19}
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{22}
 }
 
 type SetChange struct {
@@ -1573,13 +1686,13 @@ type SetChange struct {
 	unknownFields protoimpl.UnknownFields
 
 	Cuid string              `protobuf:"bytes,1,opt,name=cuid,proto3" json:"cuid,omitempty"`
-	Op   SetChange_Operation `protobuf:"varint,2,opt,name=op,proto3,enum=gosdn.pnd.SetChange_Operation" json:"op,omitempty"`
+	Op   SetChange_Operation `protobuf:"varint,2,opt,name=op,proto3,enum=gosdn.pnd.v1alpha.SetChange_Operation" json:"op,omitempty"`
 }
 
 func (x *SetChange) Reset() {
 	*x = SetChange{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[20]
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[23]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -1592,7 +1705,7 @@ func (x *SetChange) String() string {
 func (*SetChange) ProtoMessage() {}
 
 func (x *SetChange) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_pnd_proto_msgTypes[20]
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[23]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1605,7 +1718,7 @@ func (x *SetChange) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SetChange.ProtoReflect.Descriptor instead.
 func (*SetChange) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{20}
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{23}
 }
 
 func (x *SetChange) GetCuid() string {
@@ -1619,7 +1732,7 @@ func (x *SetChange) GetOp() SetChange_Operation {
 	if x != nil {
 		return x.Op
 	}
-	return SetChange_CREATE
+	return SetChange_OPERATION_UNSPECIFIED
 }
 
 //TODO: rename
@@ -1628,15 +1741,15 @@ type ChangeRequest struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Path  string                     `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
-	Value string                     `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-	ApiOp ChangeRequest_ApiOperation `protobuf:"varint,3,opt,name=apiOp,proto3,enum=gosdn.pnd.ChangeRequest_ApiOperation" json:"apiOp,omitempty"`
+	Path  string       `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
+	Value string       `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+	ApiOp ApiOperation `protobuf:"varint,3,opt,name=api_op,json=apiOp,proto3,enum=gosdn.pnd.v1alpha.ApiOperation" json:"api_op,omitempty"`
 }
 
 func (x *ChangeRequest) Reset() {
 	*x = ChangeRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[21]
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[24]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -1649,7 +1762,7 @@ func (x *ChangeRequest) String() string {
 func (*ChangeRequest) ProtoMessage() {}
 
 func (x *ChangeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_pnd_proto_msgTypes[21]
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[24]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1662,7 +1775,7 @@ func (x *ChangeRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ChangeRequest.ProtoReflect.Descriptor instead.
 func (*ChangeRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{21}
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{24}
 }
 
 func (x *ChangeRequest) GetPath() string {
@@ -1679,11 +1792,11 @@ func (x *ChangeRequest) GetValue() string {
 	return ""
 }
 
-func (x *ChangeRequest) GetApiOp() ChangeRequest_ApiOperation {
+func (x *ChangeRequest) GetApiOp() ApiOperation {
 	if x != nil {
 		return x.ApiOp
 	}
-	return ChangeRequest_UPDATE
+	return ApiOperation_API_OPERATION_UNSPECIFIED
 }
 
 type SetResponse struct {
@@ -1691,15 +1804,14 @@ type SetResponse struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Timestamp int64             `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	Status    SetResponseStatus `protobuf:"varint,2,opt,name=Status,proto3,enum=gosdn.pnd.SetResponseStatus" json:"Status,omitempty"`
-	Responses []*SetResponse    `protobuf:"bytes,3,rep,name=responses,proto3" json:"responses,omitempty"`
+	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	Status    Status `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
 }
 
 func (x *SetResponse) Reset() {
 	*x = SetResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[22]
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[25]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -1712,7 +1824,7 @@ func (x *SetResponse) String() string {
 func (*SetResponse) ProtoMessage() {}
 
 func (x *SetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_pnd_proto_msgTypes[22]
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[25]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1725,7 +1837,7 @@ func (x *SetResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SetResponse.ProtoReflect.Descriptor instead.
 func (*SetResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{22}
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{25}
 }
 
 func (x *SetResponse) GetTimestamp() int64 {
@@ -1735,48 +1847,40 @@ func (x *SetResponse) GetTimestamp() int64 {
 	return 0
 }
 
-func (x *SetResponse) GetStatus() SetResponseStatus {
+func (x *SetResponse) GetStatus() Status {
 	if x != nil {
 		return x.Status
 	}
-	return SetResponse_OK
-}
-
-func (x *SetResponse) GetResponses() []*SetResponse {
-	if x != nil {
-		return x.Responses
-	}
-	return nil
+	return Status_STATUS_UNSPECIFIED
 }
 
-type DeleteRequest struct {
+type SetOndListResponse 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.
-	Type      DeleteRequest_Type `protobuf:"varint,2,opt,name=type,proto3,enum=gosdn.pnd.DeleteRequest_Type" json:"type,omitempty"`
-	Uuid      string             `protobuf:"bytes,3,opt,name=uuid,proto3" json:"uuid,omitempty"`
-	Pid       string             `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
+	Timestamp int64          `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	Status    Status         `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
+	Responses []*SetResponse `protobuf:"bytes,3,rep,name=responses,proto3" json:"responses,omitempty"`
 }
 
-func (x *DeleteRequest) Reset() {
-	*x = DeleteRequest{}
+func (x *SetOndListResponse) Reset() {
+	*x = SetOndListResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[23]
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[26]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *DeleteRequest) String() string {
+func (x *SetOndListResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*DeleteRequest) ProtoMessage() {}
+func (*SetOndListResponse) ProtoMessage() {}
 
-func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_pnd_proto_msgTypes[23]
+func (x *SetOndListResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[26]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1787,65 +1891,358 @@ func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead.
-func (*DeleteRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{23}
+// Deprecated: Use SetOndListResponse.ProtoReflect.Descriptor instead.
+func (*SetOndListResponse) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{26}
 }
 
-func (x *DeleteRequest) GetTimestamp() int64 {
+func (x *SetOndListResponse) GetTimestamp() int64 {
 	if x != nil {
 		return x.Timestamp
 	}
 	return 0
 }
 
-func (x *DeleteRequest) GetType() DeleteRequest_Type {
+func (x *SetOndListResponse) GetStatus() Status {
 	if x != nil {
-		return x.Type
+		return x.Status
 	}
-	return DeleteRequest_OND
+	return Status_STATUS_UNSPECIFIED
 }
 
-func (x *DeleteRequest) GetUuid() string {
+func (x *SetOndListResponse) GetResponses() []*SetResponse {
 	if x != nil {
-		return x.Uuid
+		return x.Responses
 	}
-	return ""
+	return nil
 }
 
-func (x *DeleteRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
+type SetChangeListResponse 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.
+	Status    Status         `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
+	Responses []*SetResponse `protobuf:"bytes,3,rep,name=responses,proto3" json:"responses,omitempty"`
+}
+
+func (x *SetChangeListResponse) Reset() {
+	*x = SetChangeListResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[27]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *SetChangeListResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SetChangeListResponse) ProtoMessage() {}
+
+func (x *SetChangeListResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[27]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SetChangeListResponse.ProtoReflect.Descriptor instead.
+func (*SetChangeListResponse) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{27}
+}
+
+func (x *SetChangeListResponse) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *SetChangeListResponse) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_STATUS_UNSPECIFIED
+}
+
+func (x *SetChangeListResponse) GetResponses() []*SetResponse {
+	if x != nil {
+		return x.Responses
+	}
+	return nil
+}
+
+type SetChangeResponse 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.
+	Status    Status `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
+}
+
+func (x *SetChangeResponse) Reset() {
+	*x = SetChangeResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[28]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *SetChangeResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SetChangeResponse) ProtoMessage() {}
+
+func (x *SetChangeResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[28]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SetChangeResponse.ProtoReflect.Descriptor instead.
+func (*SetChangeResponse) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{28}
+}
+
+func (x *SetChangeResponse) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *SetChangeResponse) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_STATUS_UNSPECIFIED
+}
+
+type SetSbiListResponse 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.
+	Status    Status         `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
+	Responses []*SetResponse `protobuf:"bytes,3,rep,name=responses,proto3" json:"responses,omitempty"`
+}
+
+func (x *SetSbiListResponse) Reset() {
+	*x = SetSbiListResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[29]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *SetSbiListResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SetSbiListResponse) ProtoMessage() {}
+
+func (x *SetSbiListResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[29]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SetSbiListResponse.ProtoReflect.Descriptor instead.
+func (*SetSbiListResponse) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{29}
+}
+
+func (x *SetSbiListResponse) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *SetSbiListResponse) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_STATUS_UNSPECIFIED
+}
+
+func (x *SetSbiListResponse) GetResponses() []*SetResponse {
+	if x != nil {
+		return x.Responses
+	}
+	return nil
+}
+
+type SetPathListResponse 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.
+	Status    Status         `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
+	Responses []*SetResponse `protobuf:"bytes,3,rep,name=responses,proto3" json:"responses,omitempty"`
+}
+
+func (x *SetPathListResponse) Reset() {
+	*x = SetPathListResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[30]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *SetPathListResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SetPathListResponse) ProtoMessage() {}
+
+func (x *SetPathListResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[30]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SetPathListResponse.ProtoReflect.Descriptor instead.
+func (*SetPathListResponse) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{30}
+}
+
+func (x *SetPathListResponse) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *SetPathListResponse) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_STATUS_UNSPECIFIED
+}
+
+func (x *SetPathListResponse) GetResponses() []*SetResponse {
+	if x != nil {
+		return x.Responses
+	}
+	return nil
+}
+
+type DeletePndRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
+}
+
+func (x *DeletePndRequest) Reset() {
+	*x = DeletePndRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[31]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *DeletePndRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeletePndRequest) ProtoMessage() {}
+
+func (x *DeletePndRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[31]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeletePndRequest.ProtoReflect.Descriptor instead.
+func (*DeletePndRequest) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{31}
+}
+
+func (x *DeletePndRequest) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *DeletePndRequest) GetPid() string {
+	if x != nil {
+		return x.Pid
 	}
 	return ""
 }
 
-type DeleteResponse struct {
+type DeleteOndRequest 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.
-	Status    DeleteResponseStatus `protobuf:"varint,2,opt,name=Status,proto3,enum=gosdn.pnd.DeleteResponseStatus" json:"Status,omitempty"`
+	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
+	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
+	Did       string `protobuf:"bytes,5,opt,name=did,proto3" json:"did,omitempty"`
 }
 
-func (x *DeleteResponse) Reset() {
-	*x = DeleteResponse{}
+func (x *DeleteOndRequest) Reset() {
+	*x = DeleteOndRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_pnd_proto_msgTypes[24]
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[32]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *DeleteResponse) String() string {
+func (x *DeleteOndRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*DeleteResponse) ProtoMessage() {}
+func (*DeleteOndRequest) ProtoMessage() {}
 
-func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_pnd_proto_msgTypes[24]
+func (x *DeleteOndRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[32]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1856,311 +2253,579 @@ func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead.
-func (*DeleteResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{24}
+// Deprecated: Use DeleteOndRequest.ProtoReflect.Descriptor instead.
+func (*DeleteOndRequest) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{32}
+}
+
+func (x *DeleteOndRequest) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *DeleteOndRequest) GetPid() string {
+	if x != nil {
+		return x.Pid
+	}
+	return ""
+}
+
+func (x *DeleteOndRequest) GetDid() string {
+	if x != nil {
+		return x.Did
+	}
+	return ""
+}
+
+type DeletePndResponse 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.
+	Status    Status `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
+}
+
+func (x *DeletePndResponse) Reset() {
+	*x = DeletePndResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[33]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *DeletePndResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeletePndResponse) ProtoMessage() {}
+
+func (x *DeletePndResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[33]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeletePndResponse.ProtoReflect.Descriptor instead.
+func (*DeletePndResponse) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{33}
+}
+
+func (x *DeletePndResponse) GetTimestamp() int64 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+func (x *DeletePndResponse) GetStatus() Status {
+	if x != nil {
+		return x.Status
+	}
+	return Status_STATUS_UNSPECIFIED
+}
+
+type DeleteOndResponse 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.
+	Status    Status `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
+}
+
+func (x *DeleteOndResponse) Reset() {
+	*x = DeleteOndResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_gosdn_pnd_pnd_proto_msgTypes[34]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
 }
 
-func (x *DeleteResponse) GetTimestamp() int64 {
+func (x *DeleteOndResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteOndResponse) ProtoMessage() {}
+
+func (x *DeleteOndResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_gosdn_pnd_pnd_proto_msgTypes[34]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteOndResponse.ProtoReflect.Descriptor instead.
+func (*DeleteOndResponse) Descriptor() ([]byte, []int) {
+	return file_gosdn_pnd_pnd_proto_rawDescGZIP(), []int{34}
+}
+
+func (x *DeleteOndResponse) GetTimestamp() int64 {
 	if x != nil {
 		return x.Timestamp
 	}
 	return 0
 }
 
-func (x *DeleteResponse) GetStatus() DeleteResponseStatus {
+func (x *DeleteOndResponse) GetStatus() Status {
 	if x != nil {
 		return x.Status
 	}
-	return DeleteResponse_OK
+	return Status_STATUS_UNSPECIFIED
 }
 
 var File_gosdn_pnd_pnd_proto protoreflect.FileDescriptor
 
 var file_gosdn_pnd_pnd_proto_rawDesc = []byte{
 	0x0a, 0x13, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x70, 0x6e, 0x64, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64,
-	0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e,
-	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20,
-	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
-	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x1a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70,
-	0x6f, 0x72, 0x74, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68,
-	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x43, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4f, 0x6e, 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, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x51, 0x0a, 0x0d, 0x47,
-	0x65, 0x74, 0x4f, 0x6e, 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, 0x10, 0x0a, 0x03, 0x64, 0x69,
-	0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
-	0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x43,
-	0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64,
+	0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+	0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
+	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f,
+	0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f,
+	0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x73, 0x64,
+	0x6e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x74, 0x72, 0x61, 0x6e,
+	0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2f, 0x73, 0x6f,
+	0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61,
+	0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e,
+	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x43,
+	0x0a, 0x11, 0x47, 0x65, 0x74, 0x4f, 0x6e, 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, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
-	0x70, 0x69, 0x64, 0x22, 0x51, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x52, 0x65, 0x71,
+	0x70, 0x69, 0x64, 0x22, 0x51, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4f, 0x6e, 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, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52,
-	0x03, 0x73, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x46, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61,
-	0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c,
-	0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03,
-	0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x56,
-	0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
-	0x12, 0x12, 0x0a, 0x04, 0x63, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
-	0x63, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x66, 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, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x64, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03,
-	0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x9e,
-	0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 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,
+	0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x03, 0x64, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x43, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69,
+	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74,
+	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
+	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64,
+	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x51, 0x0a, 0x0d, 0x47,
+	0x65, 0x74, 0x53, 0x62, 0x69, 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, 0x73, 0x69,
+	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
+	0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x46,
+	0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
+	0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
+	0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x56, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61,
+	0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69,
+	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74,
+	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x75, 0x69, 0x64,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
+	0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x66,
+	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, 0x10,
+	0x0a, 0x03, 0x64, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x64,
+	0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+	0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4f, 0x6e,
+	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, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64,
+	0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x39, 0x0a, 0x03, 0x6f, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28,
-	0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x4f, 0x72,
-	0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72,
-	0x6b, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x03, 0x6f, 0x6e, 0x64, 0x22,
-	0x9c, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x03, 0x70, 0x6e, 0x64, 0x12, 0x41, 0x0a, 0x03, 0x6f, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31,
+	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74,
+	0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69,
+	0x63, 0x65, 0x52, 0x03, 0x6f, 0x6e, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4f,
+	0x6e, 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, 0x3b, 0x0a, 0x03,
+	0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64,
+	0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x41, 0x0a, 0x03, 0x6f, 0x6e, 0x64,
+	0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70,
+	0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4f, 0x72, 0x63, 0x68, 0x65,
+	0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e,
+	0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x03, 0x6f, 0x6e, 0x64, 0x22, 0xac, 0x01, 0x0a,
+	0x0e, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 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, 0x3b, 0x0a,
+	0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x3f, 0x0a, 0x03, 0x73, 0x62,
+	0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
+	0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
+	0x68, 0x61, 0x2e, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x74,
+	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x03, 0x73, 0x62, 0x69, 0x22, 0xb0, 0x01, 0x0a, 0x12,
+	0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 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, 0x37, 0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, 0x03, 0x20, 0x03,
-	0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68,
-	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x03, 0x73, 0x62, 0x69, 0x22, 0x90,
+	0x12, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e,
+	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+	0x61, 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, 0x3f, 0x0a,
+	0x03, 0x73, 0x62, 0x69, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31,
+	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64,
+	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x03, 0x73, 0x62, 0x69, 0x22, 0x98,
 	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, 0x2a, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 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, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63,
-	0x65, 0x22, 0x91, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52,
+	0x12, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e,
+	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+	0x61, 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, 0x2a, 0x0a,
+	0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 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, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0xa1, 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, 0x3b, 0x0a,
+	0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x31, 0x0a, 0x06, 0x63, 0x68,
+	0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43,
+	0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xa5, 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, 0x29, 0x0a, 0x06, 0x63, 0x68,
-	0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63,
+	0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
+	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x31, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x03,
+	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
+	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63,
 	0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x5e, 0x0a, 0x16, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70,
 	0x61, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12,
 	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
 	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
 	0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
 	0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
-	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x01, 0x0a, 0x1c, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73,
+	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaf, 0x01, 0x0a, 0x1c, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73,
 	0x74, 0x72, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67,
 	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
 	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
 	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x64, 0x65,
 	0x76, 0x69, 0x63, 0x65, 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, 0x06,
-	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, 0x04, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74,
-	0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e,
-	0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x03, 0x73, 0x62, 0x69, 0x22,
-	0x9f, 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, 0x2d, 0x0a, 0x05,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x67, 0x6f,
-	0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x53,
-	0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x44, 0x0a, 0x05, 0x53,
-	0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10,
-	0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x01,
-	0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x02, 0x12,
-	0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x43, 0x4f, 0x4e, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x10,
-	0x03, 0x22, 0x64, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4f, 0x6e, 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, 0x23, 0x0a, 0x03, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e,
-	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x74, 0x4f, 0x6e, 0x64,
-	0x52, 0x03, 0x6f, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x64, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x53, 0x62,
-	0x69, 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, 0x23, 0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, 0x02, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e,
-	0x73, 0x65, 0x74, 0x53, 0x62, 0x69, 0x52, 0x03, 0x73, 0x62, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x70,
-	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x70, 0x0a,
-	0x10, 0x53, 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,
-	0x2c, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
-	0x14, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x74, 0x43,
-	0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a,
-	0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22,
-	0x92, 0x01, 0x0a, 0x0e, 0x53, 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, 0x3e, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
-	0x70, 0x6e, 0x64, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, 0x04, 0x20,
+	0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74,
+	0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53,
+	0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
+	0x63, 0x65, 0x52, 0x03, 0x73, 0x62, 0x69, 0x22, 0xd6, 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, 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20,
+	0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e,
+	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x53,
+	0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x73, 0x0a, 0x05, 0x53,
+	0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e,
+	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x53,
+	0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x13,
+	0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45,
+	0x44, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e,
+	0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54,
+	0x45, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4e, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x04,
+	0x22, 0x70, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x4f, 0x6e, 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, 0x2b, 0x0a, 0x03, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61,
+	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x52, 0x03, 0x6f, 0x6e, 0x64,
+	0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70,
+	0x69, 0x64, 0x22, 0x70, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x53, 0x62, 0x69, 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, 0x2b, 0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, 0x02, 0x20, 0x03,
+	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
+	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x62, 0x69, 0x52, 0x03, 0x73,
+	0x62, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x03, 0x70, 0x69, 0x64, 0x22, 0x7c, 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, 0x34, 0x0a, 0x06, 0x63, 0x68,
+	0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53,
+	0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
+	0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70,
+	0x69, 0x64, 0x22, 0x9f, 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, 0x47, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67,
+	0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
+	0x20, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c,
+	0x70, 0x68, 0x61, 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, 0x64, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64,
 	0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x03, 0x70, 0x69, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x06, 0x73, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x12,
+	0x03, 0x70, 0x69, 0x64, 0x22, 0xd9, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x12,
 	0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x0a, 0x03, 0x73, 0x62, 0x69,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73,
-	0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x62,
-	0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x03, 0x73,
-	0x62, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61,
-	0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f,
-	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f,
-	0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x54, 0x72,
-	0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74,
-	0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x08,
-	0x0a, 0x06, 0x73, 0x65, 0x74, 0x53, 0x62, 0x69, 0x22, 0x81, 0x01, 0x0a, 0x09, 0x73, 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, 0x2e, 0x0a, 0x02, 0x6f, 0x70,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70,
-	0x6e, 0x64, 0x2e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x70, 0x65,
-	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6f, 0x70, 0x22, 0x30, 0x0a, 0x09, 0x4f, 0x70,
-	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x45, 0x41, 0x54,
-	0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x01, 0x12,
-	0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x02, 0x22, 0xab, 0x01, 0x0a,
-	0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
-	0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61,
-	0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x61, 0x70, 0x69, 0x4f,
-	0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
-	0x70, 0x6e, 0x64, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x2e, 0x41, 0x70, 0x69, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05,
-	0x61, 0x70, 0x69, 0x4f, 0x70, 0x22, 0x33, 0x0a, 0x0c, 0x41, 0x70, 0x69, 0x4f, 0x70, 0x65, 0x72,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10,
-	0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0a,
-	0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x22, 0xb5, 0x01, 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, 0x35, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74,
-	0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
-	0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x2e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
-	0x34, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
-	0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x53,
-	0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
-	0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52,
-	0x10, 0x01, 0x22, 0xa9, 0x01, 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, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
-	0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x44, 0x65, 0x6c,
-	0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52,
-	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x21, 0x0a, 0x04, 0x54,
-	0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
-	0x53, 0x42, 0x49, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x4e, 0x44, 0x10, 0x02, 0x22, 0x85,
-	0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3f, 0x0a, 0x03, 0x73, 0x62, 0x69,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73,
+	0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+	0x61, 0x2e, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65,
+	0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x03, 0x73, 0x62, 0x69, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65,
+	0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x10, 0x74,
+	0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
+	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72,
+	0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
+	0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52,
+	0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+	0x22, 0x08, 0x0a, 0x06, 0x53, 0x65, 0x74, 0x53, 0x62, 0x69, 0x22, 0xc2, 0x01, 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, 0x36, 0x0a, 0x02,
+	0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
+	0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74,
+	0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x52, 0x02, 0x6f, 0x70, 0x22, 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, 0x22,
+	0x71, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+	0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x61, 0x70,
+	0x69, 0x5f, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x41,
+	0x70, 0x69, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x61, 0x70, 0x69,
+	0x4f, 0x70, 0x22, 0x5e, 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,
-	0x38, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
-	0x20, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x44, 0x65, 0x6c, 0x65,
-	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x61,
-	0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45,
-	0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x32, 0x90, 0x09, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x12, 0x60,
-	0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x4c,
-	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f,
-	0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e, 0x64,
-	0x12, 0x5e, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x12, 0x18, 0x2e, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64,
-	0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
-	0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64,
-	0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e, 0x64, 0x2f, 0x7b, 0x64, 0x69, 0x64, 0x7d,
-	0x12, 0x58, 0x0a, 0x06, 0x53, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x12, 0x18, 0x2e, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64,
-	0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3,
-	0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64,
-	0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e, 0x64, 0x12, 0x60, 0x0a, 0x0a, 0x47, 0x65,
-	0x74, 0x53, 0x62, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
-	0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70,
-	0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x70,
-	0x6e, 0x64, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x62, 0x69, 0x12, 0x5e, 0x0a, 0x06,
-	0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x12, 0x18, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70,
-	0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74,
-	0x53, 0x62, 0x69, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4,
-	0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x7b, 0x70, 0x69,
-	0x64, 0x7d, 0x2f, 0x73, 0x62, 0x69, 0x2f, 0x7b, 0x73, 0x69, 0x64, 0x7d, 0x12, 0x58, 0x0a, 0x06,
-	0x53, 0x65, 0x74, 0x53, 0x62, 0x69, 0x12, 0x18, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70,
-	0x6e, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x62, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x74,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16,
-	0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x7b, 0x70, 0x69,
-	0x64, 0x7d, 0x2f, 0x73, 0x62, 0x69, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61,
-	0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
-	0x70, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73,
-	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
-	0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14,
-	0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68,
-	0x61, 0x6e, 0x67, 0x65, 0x12, 0x6b, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67,
-	0x65, 0x12, 0x1b, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x47, 0x65,
-	0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c,
-	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68,
-	0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3,
-	0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x7b, 0x70,
-	0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2f, 0x7b, 0x63, 0x75, 0x69, 0x64,
-	0x7d, 0x12, 0x61, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1b,
-	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68,
-	0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
-	0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14,
-	0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68,
-	0x61, 0x6e, 0x67, 0x65, 0x12, 0x6d, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12,
-	0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x50,
-	0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23,
-	0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e,
-	0x64, 0x2f, 0x7b, 0x64, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x2f, 0x7b, 0x70, 0x61,
-	0x74, 0x68, 0x7d, 0x12, 0x65, 0x0a, 0x07, 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19,
-	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61,
-	0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x73, 0x64,
-	0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76,
-	0x31, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e, 0x64, 0x2f,
-	0x7b, 0x64, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x12, 0x3d, 0x0a, 0x06, 0x44, 0x65,
-	0x6c, 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64,
-	0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19,
-	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
-	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x29, 0x5a, 0x27, 0x63, 0x6f, 0x64,
+	0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
+	0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c,
+	0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
+	0x75, 0x73, 0x22, 0xa3, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4f, 0x6e, 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, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
+	0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74,
+	0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
+	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+	0x61, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74,
+	0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+	0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
+	0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61,
+	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
+	0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73,
+	0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70,
+	0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x73, 0x22, 0x64, 0x0a, 0x11, 0x53, 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, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64,
+	0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa3, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x53,
+	0x62, 0x69, 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, 0x31, 0x0a, 0x06,
+	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67,
+	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
+	0x3c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
+	0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
+	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0xa4, 0x01,
+	0x0a, 0x13, 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+	0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
+	0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e,
+	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
+	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x73, 0x64,
+	0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65,
+	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x73, 0x22, 0x42, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6e,
+	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, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x54, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65,
+	0x74, 0x65, 0x4f, 0x6e, 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, 0x10, 0x0a, 0x03, 0x70, 0x69,
+	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
+	0x64, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x64, 0x22, 0x64,
+	0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6e, 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, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31,
+	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74,
+	0x61, 0x74, 0x75, 0x73, 0x22, 0x64, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6e,
+	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, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
+	0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74,
+	0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74,
+	0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53,
+	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54,
+	0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41,
+	0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x32, 0xda, 0x0c, 0x0a, 0x0a,
+	0x50, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x76, 0x0a, 0x0a, 0x47, 0x65,
+	0x74, 0x4f, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
+	0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74,
+	0x4f, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25,
+	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
+	0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f,
+	0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e,
+	0x64, 0x73, 0x12, 0x6f, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x12, 0x20, 0x2e, 0x67,
+	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+	0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21,
+	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
+	0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x70,
+	0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e, 0x64, 0x2f, 0x7b, 0x64,
+	0x69, 0x64, 0x7d, 0x12, 0x79, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x4c, 0x69, 0x73,
+	0x74, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31,
+	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
+	0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x4f,
+	0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e,
+	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x70,
+	0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x76,
+	0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x2e, 0x67,
+	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+	0x2e, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
+	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x4c, 0x69, 0x73,
+	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+	0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64,
+	0x7d, 0x2f, 0x73, 0x62, 0x69, 0x73, 0x12, 0x70, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69,
+	0x12, 0x20, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61,
+	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
+	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f,
+	0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x62,
+	0x69, 0x73, 0x2f, 0x7b, 0x73, 0x69, 0x64, 0x7d, 0x12, 0x79, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x53,
+	0x62, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70,
+	0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x62,
+	0x69, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67,
+	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+	0x2e, 0x53, 0x65, 0x74, 0x53, 0x62, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13,
+	0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x73,
+	0x62, 0x69, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67,
+	0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e,
+	0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61,
+	0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28,
+	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
+	0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18,
+	0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d,
+	0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x7d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43,
+	0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e,
+	0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61,
+	0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47,
+	0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e,
+	0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73,
+	0x2f, 0x7b, 0x63, 0x75, 0x69, 0x64, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x43,
+	0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64,
+	0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65,
+	0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
+	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
+	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3,
+	0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64,
+	0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12,
+	0x80, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x21, 0x2e, 0x67, 0x6f,
+	0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
+	0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22,
+	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
+	0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x2f,
+	0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e, 0x64, 0x73, 0x2f,
+	0x7b, 0x64, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x74,
+	0x68, 0x7d, 0x12, 0x88, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69,
+	0x73, 0x74, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
+	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69,
+	0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64,
+	0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65,
+	0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x76,
+	0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e, 0x64,
+	0x73, 0x2f, 0x7b, 0x64, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x12, 0x6e, 0x0a,
+	0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6e, 0x64, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44,
+	0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x24, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c,
+	0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6e, 0x64, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x2a, 0x0e, 0x2f,
+	0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x12, 0x79, 0x0a,
+	0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6e, 0x64, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44,
+	0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x24, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c,
+	0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6e, 0x64, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x2a, 0x19, 0x2f,
+	0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e,
+	0x64, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x64, 0x7d, 0x42, 0xa8, 0x02, 0x5a, 0x27, 0x63, 0x6f, 0x64,
 	0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61,
 	0x6e, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e,
-	0x2f, 0x70, 0x6e, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x2f, 0x70, 0x6e, 0x64, 0x92, 0x41, 0xfb, 0x01, 0x12, 0xf8, 0x01, 0x0a, 0x10, 0x67, 0x6f, 0x53,
+	0x44, 0x4e, 0x20, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4d, 0x50,
+	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x73,
+	0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e,
+	0x64, 0x20, 0x47, 0x6f, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68,
+	0x65, 0x20, 0x67, 0x6f, 0x53, 0x44, 0x4e, 0x20, 0x6e, 0x6f, 0x72, 0x74, 0x68, 0x62, 0x6f, 0x75,
+	0x6e, 0x64, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0x3e, 0x0a, 0x18,
+	0x67, 0x6f, 0x53, 0x44, 0x4e, 0x20, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64,
+	0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x22, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a,
+	0x2f, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e,
+	0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2a, 0x50, 0x0a, 0x14,
+	0x42, 0x53, 0x44, 0x20, 0x33, 0x2d, 0x43, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x63,
+	0x65, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x6f,
+	0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64,
+	0x61, 0x6e, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x2d, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f,
+	0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x32, 0x03,
+	0x30, 0x2e, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -2175,97 +2840,121 @@ func file_gosdn_pnd_pnd_proto_rawDescGZIP() []byte {
 	return file_gosdn_pnd_pnd_proto_rawDescData
 }
 
-var file_gosdn_pnd_pnd_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
-var file_gosdn_pnd_pnd_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
+var file_gosdn_pnd_pnd_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
+var file_gosdn_pnd_pnd_proto_msgTypes = make([]protoimpl.MessageInfo, 35)
 var file_gosdn_pnd_pnd_proto_goTypes = []interface{}{
-	(Change_State)(0),                      // 0: gosdn.pnd.Change.State
-	(SetChange_Operation)(0),               // 1: gosdn.pnd.setChange.Operation
-	(ChangeRequest_ApiOperation)(0),        // 2: gosdn.pnd.ChangeRequest.ApiOperation
-	(SetResponseStatus)(0),                 // 3: gosdn.pnd.SetResponse.status
-	(DeleteRequest_Type)(0),                // 4: gosdn.pnd.DeleteRequest.Type
-	(DeleteResponseStatus)(0),              // 5: gosdn.pnd.DeleteResponse.status
-	(*GetOndListRequest)(nil),              // 6: gosdn.pnd.GetOndListRequest
-	(*GetOndRequest)(nil),                  // 7: gosdn.pnd.GetOndRequest
-	(*GetSbiListRequest)(nil),              // 8: gosdn.pnd.GetSbiListRequest
-	(*GetSbiRequest)(nil),                  // 9: gosdn.pnd.GetSbiRequest
-	(*GetChangeListRequest)(nil),           // 10: gosdn.pnd.GetChangeListRequest
-	(*GetChangeRequest)(nil),               // 11: gosdn.pnd.GetChangeRequest
-	(*GetPathRequest)(nil),                 // 12: gosdn.pnd.GetPathRequest
-	(*GetOndResponse)(nil),                 // 13: gosdn.pnd.GetOndResponse
-	(*GetSbiResponse)(nil),                 // 14: gosdn.pnd.GetSbiResponse
-	(*GetPathResponse)(nil),                // 15: gosdn.pnd.GetPathResponse
-	(*GetChangeResponse)(nil),              // 16: gosdn.pnd.GetChangeResponse
-	(*PrincipalNetworkDomain)(nil),         // 17: gosdn.pnd.PrincipalNetworkDomain
-	(*OrchestratedNetworkingDevice)(nil),   // 18: gosdn.pnd.OrchestratedNetworkingDevice
-	(*Change)(nil),                         // 19: gosdn.pnd.Change
-	(*SetOndRequest)(nil),                  // 20: gosdn.pnd.SetOndRequest
-	(*SetSbiRequest)(nil),                  // 21: gosdn.pnd.SetSbiRequest
-	(*SetChangeRequest)(nil),               // 22: gosdn.pnd.SetChangeRequest
-	(*SetPathRequest)(nil),                 // 23: gosdn.pnd.SetPathRequest
-	(*SetOnd)(nil),                         // 24: gosdn.pnd.setOnd
-	(*SetSbi)(nil),                         // 25: gosdn.pnd.setSbi
-	(*SetChange)(nil),                      // 26: gosdn.pnd.setChange
-	(*ChangeRequest)(nil),                  // 27: gosdn.pnd.ChangeRequest
-	(*SetResponse)(nil),                    // 28: gosdn.pnd.SetResponse
-	(*DeleteRequest)(nil),                  // 29: gosdn.pnd.DeleteRequest
-	(*DeleteResponse)(nil),                 // 30: gosdn.pnd.DeleteResponse
-	(*southbound.SouthboundInterface)(nil), // 31: gosdn.southbound.SouthboundInterface
-	(*gnmi.Notification)(nil),              // 32: gnmi.Notification
-	(*transport.TransportOption)(nil),      // 33: gosdn.transport.TransportOption
+	(ApiOperation)(0),                      // 0: gosdn.pnd.v1alpha.ApiOperation
+	(Status)(0),                            // 1: gosdn.pnd.v1alpha.Status
+	(Change_State)(0),                      // 2: gosdn.pnd.v1alpha.Change.State
+	(SetChange_Operation)(0),               // 3: gosdn.pnd.v1alpha.SetChange.Operation
+	(*GetOndListRequest)(nil),              // 4: gosdn.pnd.v1alpha.GetOndListRequest
+	(*GetOndRequest)(nil),                  // 5: gosdn.pnd.v1alpha.GetOndRequest
+	(*GetSbiListRequest)(nil),              // 6: gosdn.pnd.v1alpha.GetSbiListRequest
+	(*GetSbiRequest)(nil),                  // 7: gosdn.pnd.v1alpha.GetSbiRequest
+	(*GetChangeListRequest)(nil),           // 8: gosdn.pnd.v1alpha.GetChangeListRequest
+	(*GetChangeRequest)(nil),               // 9: gosdn.pnd.v1alpha.GetChangeRequest
+	(*GetPathRequest)(nil),                 // 10: gosdn.pnd.v1alpha.GetPathRequest
+	(*GetOndResponse)(nil),                 // 11: gosdn.pnd.v1alpha.GetOndResponse
+	(*GetOndListResponse)(nil),             // 12: gosdn.pnd.v1alpha.GetOndListResponse
+	(*GetSbiResponse)(nil),                 // 13: gosdn.pnd.v1alpha.GetSbiResponse
+	(*GetSbiListResponse)(nil),             // 14: gosdn.pnd.v1alpha.GetSbiListResponse
+	(*GetPathResponse)(nil),                // 15: gosdn.pnd.v1alpha.GetPathResponse
+	(*GetChangeResponse)(nil),              // 16: gosdn.pnd.v1alpha.GetChangeResponse
+	(*GetChangeListResponse)(nil),          // 17: gosdn.pnd.v1alpha.GetChangeListResponse
+	(*PrincipalNetworkDomain)(nil),         // 18: gosdn.pnd.v1alpha.PrincipalNetworkDomain
+	(*OrchestratedNetworkingDevice)(nil),   // 19: gosdn.pnd.v1alpha.OrchestratedNetworkingDevice
+	(*Change)(nil),                         // 20: gosdn.pnd.v1alpha.Change
+	(*SetOndListRequest)(nil),              // 21: gosdn.pnd.v1alpha.SetOndListRequest
+	(*SetSbiListRequest)(nil),              // 22: gosdn.pnd.v1alpha.SetSbiListRequest
+	(*SetChangeListRequest)(nil),           // 23: gosdn.pnd.v1alpha.SetChangeListRequest
+	(*SetPathListRequest)(nil),             // 24: gosdn.pnd.v1alpha.SetPathListRequest
+	(*SetOnd)(nil),                         // 25: gosdn.pnd.v1alpha.SetOnd
+	(*SetSbi)(nil),                         // 26: gosdn.pnd.v1alpha.SetSbi
+	(*SetChange)(nil),                      // 27: gosdn.pnd.v1alpha.SetChange
+	(*ChangeRequest)(nil),                  // 28: gosdn.pnd.v1alpha.ChangeRequest
+	(*SetResponse)(nil),                    // 29: gosdn.pnd.v1alpha.SetResponse
+	(*SetOndListResponse)(nil),             // 30: gosdn.pnd.v1alpha.SetOndListResponse
+	(*SetChangeListResponse)(nil),          // 31: gosdn.pnd.v1alpha.SetChangeListResponse
+	(*SetChangeResponse)(nil),              // 32: gosdn.pnd.v1alpha.SetChangeResponse
+	(*SetSbiListResponse)(nil),             // 33: gosdn.pnd.v1alpha.SetSbiListResponse
+	(*SetPathListResponse)(nil),            // 34: gosdn.pnd.v1alpha.SetPathListResponse
+	(*DeletePndRequest)(nil),               // 35: gosdn.pnd.v1alpha.DeletePndRequest
+	(*DeleteOndRequest)(nil),               // 36: gosdn.pnd.v1alpha.DeleteOndRequest
+	(*DeletePndResponse)(nil),              // 37: gosdn.pnd.v1alpha.DeletePndResponse
+	(*DeleteOndResponse)(nil),              // 38: gosdn.pnd.v1alpha.DeleteOndResponse
+	(*southbound.SouthboundInterface)(nil), // 39: gosdn.southbound.v1alpha.SouthboundInterface
+	(*gnmi.Notification)(nil),              // 40: gnmi.Notification
+	(*transport.TransportOption)(nil),      // 41: gosdn.transport.v1alpha.TransportOption
 }
 var file_gosdn_pnd_pnd_proto_depIdxs = []int32{
-	17, // 0: gosdn.pnd.GetOndResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
-	18, // 1: gosdn.pnd.GetOndResponse.ond:type_name -> gosdn.pnd.OrchestratedNetworkingDevice
-	17, // 2: gosdn.pnd.GetSbiResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
-	31, // 3: gosdn.pnd.GetSbiResponse.sbi:type_name -> gosdn.southbound.SouthboundInterface
-	17, // 4: gosdn.pnd.GetPathResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
-	32, // 5: gosdn.pnd.GetPathResponse.device:type_name -> gnmi.Notification
-	17, // 6: gosdn.pnd.GetChangeResponse.pnd:type_name -> gosdn.pnd.PrincipalNetworkDomain
-	19, // 7: gosdn.pnd.GetChangeResponse.change:type_name -> gosdn.pnd.Change
-	32, // 8: gosdn.pnd.OrchestratedNetworkingDevice.device:type_name -> gnmi.Notification
-	31, // 9: gosdn.pnd.OrchestratedNetworkingDevice.sbi:type_name -> gosdn.southbound.SouthboundInterface
-	0,  // 10: gosdn.pnd.Change.state:type_name -> gosdn.pnd.Change.State
-	24, // 11: gosdn.pnd.SetOndRequest.ond:type_name -> gosdn.pnd.setOnd
-	25, // 12: gosdn.pnd.SetSbiRequest.sbi:type_name -> gosdn.pnd.setSbi
-	26, // 13: gosdn.pnd.SetChangeRequest.change:type_name -> gosdn.pnd.setChange
-	27, // 14: gosdn.pnd.SetPathRequest.changeRequest:type_name -> gosdn.pnd.ChangeRequest
-	31, // 15: gosdn.pnd.setOnd.sbi:type_name -> gosdn.southbound.SouthboundInterface
-	33, // 16: gosdn.pnd.setOnd.transportOption:type_name -> gosdn.transport.TransportOption
-	1,  // 17: gosdn.pnd.setChange.op:type_name -> gosdn.pnd.setChange.Operation
-	2,  // 18: gosdn.pnd.ChangeRequest.apiOp:type_name -> gosdn.pnd.ChangeRequest.ApiOperation
-	3,  // 19: gosdn.pnd.SetResponse.Status:type_name -> gosdn.pnd.SetResponse.status
-	28, // 20: gosdn.pnd.SetResponse.responses:type_name -> gosdn.pnd.SetResponse
-	4,  // 21: gosdn.pnd.DeleteRequest.type:type_name -> gosdn.pnd.DeleteRequest.Type
-	5,  // 22: gosdn.pnd.DeleteResponse.Status:type_name -> gosdn.pnd.DeleteResponse.status
-	6,  // 23: gosdn.pnd.pnd.GetOndList:input_type -> gosdn.pnd.GetOndListRequest
-	7,  // 24: gosdn.pnd.pnd.GetOnd:input_type -> gosdn.pnd.GetOndRequest
-	20, // 25: gosdn.pnd.pnd.SetOnd:input_type -> gosdn.pnd.SetOndRequest
-	8,  // 26: gosdn.pnd.pnd.GetSbiList:input_type -> gosdn.pnd.GetSbiListRequest
-	9,  // 27: gosdn.pnd.pnd.GetSbi:input_type -> gosdn.pnd.GetSbiRequest
-	21, // 28: gosdn.pnd.pnd.SetSbi:input_type -> gosdn.pnd.SetSbiRequest
-	10, // 29: gosdn.pnd.pnd.GetChangeList:input_type -> gosdn.pnd.GetChangeListRequest
-	11, // 30: gosdn.pnd.pnd.GetChange:input_type -> gosdn.pnd.GetChangeRequest
-	22, // 31: gosdn.pnd.pnd.SetChange:input_type -> gosdn.pnd.SetChangeRequest
-	12, // 32: gosdn.pnd.pnd.GetPath:input_type -> gosdn.pnd.GetPathRequest
-	23, // 33: gosdn.pnd.pnd.SetPath:input_type -> gosdn.pnd.SetPathRequest
-	29, // 34: gosdn.pnd.pnd.Delete:input_type -> gosdn.pnd.DeleteRequest
-	13, // 35: gosdn.pnd.pnd.GetOndList:output_type -> gosdn.pnd.GetOndResponse
-	13, // 36: gosdn.pnd.pnd.GetOnd:output_type -> gosdn.pnd.GetOndResponse
-	28, // 37: gosdn.pnd.pnd.SetOnd:output_type -> gosdn.pnd.SetResponse
-	14, // 38: gosdn.pnd.pnd.GetSbiList:output_type -> gosdn.pnd.GetSbiResponse
-	14, // 39: gosdn.pnd.pnd.GetSbi:output_type -> gosdn.pnd.GetSbiResponse
-	28, // 40: gosdn.pnd.pnd.SetSbi:output_type -> gosdn.pnd.SetResponse
-	16, // 41: gosdn.pnd.pnd.GetChangeList:output_type -> gosdn.pnd.GetChangeResponse
-	16, // 42: gosdn.pnd.pnd.GetChange:output_type -> gosdn.pnd.GetChangeResponse
-	28, // 43: gosdn.pnd.pnd.SetChange:output_type -> gosdn.pnd.SetResponse
-	15, // 44: gosdn.pnd.pnd.GetPath:output_type -> gosdn.pnd.GetPathResponse
-	28, // 45: gosdn.pnd.pnd.SetPath:output_type -> gosdn.pnd.SetResponse
-	30, // 46: gosdn.pnd.pnd.Delete:output_type -> gosdn.pnd.DeleteResponse
-	35, // [35:47] is the sub-list for method output_type
-	23, // [23:35] is the sub-list for method input_type
-	23, // [23:23] is the sub-list for extension type_name
-	23, // [23:23] is the sub-list for extension extendee
-	0,  // [0:23] is the sub-list for field type_name
+	18, // 0: gosdn.pnd.v1alpha.GetOndResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
+	19, // 1: gosdn.pnd.v1alpha.GetOndResponse.ond:type_name -> gosdn.pnd.v1alpha.OrchestratedNetworkingDevice
+	18, // 2: gosdn.pnd.v1alpha.GetOndListResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
+	19, // 3: gosdn.pnd.v1alpha.GetOndListResponse.ond:type_name -> gosdn.pnd.v1alpha.OrchestratedNetworkingDevice
+	18, // 4: gosdn.pnd.v1alpha.GetSbiResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
+	39, // 5: gosdn.pnd.v1alpha.GetSbiResponse.sbi:type_name -> gosdn.southbound.v1alpha.SouthboundInterface
+	18, // 6: gosdn.pnd.v1alpha.GetSbiListResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
+	39, // 7: gosdn.pnd.v1alpha.GetSbiListResponse.sbi:type_name -> gosdn.southbound.v1alpha.SouthboundInterface
+	18, // 8: gosdn.pnd.v1alpha.GetPathResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
+	40, // 9: gosdn.pnd.v1alpha.GetPathResponse.device:type_name -> gnmi.Notification
+	18, // 10: gosdn.pnd.v1alpha.GetChangeResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
+	20, // 11: gosdn.pnd.v1alpha.GetChangeResponse.change:type_name -> gosdn.pnd.v1alpha.Change
+	18, // 12: gosdn.pnd.v1alpha.GetChangeListResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
+	20, // 13: gosdn.pnd.v1alpha.GetChangeListResponse.change:type_name -> gosdn.pnd.v1alpha.Change
+	40, // 14: gosdn.pnd.v1alpha.OrchestratedNetworkingDevice.device:type_name -> gnmi.Notification
+	39, // 15: gosdn.pnd.v1alpha.OrchestratedNetworkingDevice.sbi:type_name -> gosdn.southbound.v1alpha.SouthboundInterface
+	2,  // 16: gosdn.pnd.v1alpha.Change.state:type_name -> gosdn.pnd.v1alpha.Change.State
+	25, // 17: gosdn.pnd.v1alpha.SetOndListRequest.ond:type_name -> gosdn.pnd.v1alpha.SetOnd
+	26, // 18: gosdn.pnd.v1alpha.SetSbiListRequest.sbi:type_name -> gosdn.pnd.v1alpha.SetSbi
+	27, // 19: gosdn.pnd.v1alpha.SetChangeListRequest.change:type_name -> gosdn.pnd.v1alpha.SetChange
+	28, // 20: gosdn.pnd.v1alpha.SetPathListRequest.change_request:type_name -> gosdn.pnd.v1alpha.ChangeRequest
+	39, // 21: gosdn.pnd.v1alpha.SetOnd.sbi:type_name -> gosdn.southbound.v1alpha.SouthboundInterface
+	41, // 22: gosdn.pnd.v1alpha.SetOnd.transport_option:type_name -> gosdn.transport.v1alpha.TransportOption
+	3,  // 23: gosdn.pnd.v1alpha.SetChange.op:type_name -> gosdn.pnd.v1alpha.SetChange.Operation
+	0,  // 24: gosdn.pnd.v1alpha.ChangeRequest.api_op:type_name -> gosdn.pnd.v1alpha.ApiOperation
+	1,  // 25: gosdn.pnd.v1alpha.SetResponse.status:type_name -> gosdn.pnd.v1alpha.Status
+	1,  // 26: gosdn.pnd.v1alpha.SetOndListResponse.status:type_name -> gosdn.pnd.v1alpha.Status
+	29, // 27: gosdn.pnd.v1alpha.SetOndListResponse.responses:type_name -> gosdn.pnd.v1alpha.SetResponse
+	1,  // 28: gosdn.pnd.v1alpha.SetChangeListResponse.status:type_name -> gosdn.pnd.v1alpha.Status
+	29, // 29: gosdn.pnd.v1alpha.SetChangeListResponse.responses:type_name -> gosdn.pnd.v1alpha.SetResponse
+	1,  // 30: gosdn.pnd.v1alpha.SetChangeResponse.status:type_name -> gosdn.pnd.v1alpha.Status
+	1,  // 31: gosdn.pnd.v1alpha.SetSbiListResponse.status:type_name -> gosdn.pnd.v1alpha.Status
+	29, // 32: gosdn.pnd.v1alpha.SetSbiListResponse.responses:type_name -> gosdn.pnd.v1alpha.SetResponse
+	1,  // 33: gosdn.pnd.v1alpha.SetPathListResponse.status:type_name -> gosdn.pnd.v1alpha.Status
+	29, // 34: gosdn.pnd.v1alpha.SetPathListResponse.responses:type_name -> gosdn.pnd.v1alpha.SetResponse
+	1,  // 35: gosdn.pnd.v1alpha.DeletePndResponse.status:type_name -> gosdn.pnd.v1alpha.Status
+	1,  // 36: gosdn.pnd.v1alpha.DeleteOndResponse.status:type_name -> gosdn.pnd.v1alpha.Status
+	4,  // 37: gosdn.pnd.v1alpha.PndService.GetOndList:input_type -> gosdn.pnd.v1alpha.GetOndListRequest
+	5,  // 38: gosdn.pnd.v1alpha.PndService.GetOnd:input_type -> gosdn.pnd.v1alpha.GetOndRequest
+	21, // 39: gosdn.pnd.v1alpha.PndService.SetOndList:input_type -> gosdn.pnd.v1alpha.SetOndListRequest
+	6,  // 40: gosdn.pnd.v1alpha.PndService.GetSbiList:input_type -> gosdn.pnd.v1alpha.GetSbiListRequest
+	7,  // 41: gosdn.pnd.v1alpha.PndService.GetSbi:input_type -> gosdn.pnd.v1alpha.GetSbiRequest
+	22, // 42: gosdn.pnd.v1alpha.PndService.SetSbiList:input_type -> gosdn.pnd.v1alpha.SetSbiListRequest
+	8,  // 43: gosdn.pnd.v1alpha.PndService.GetChangeList:input_type -> gosdn.pnd.v1alpha.GetChangeListRequest
+	9,  // 44: gosdn.pnd.v1alpha.PndService.GetChange:input_type -> gosdn.pnd.v1alpha.GetChangeRequest
+	23, // 45: gosdn.pnd.v1alpha.PndService.SetChangeList:input_type -> gosdn.pnd.v1alpha.SetChangeListRequest
+	10, // 46: gosdn.pnd.v1alpha.PndService.GetPath:input_type -> gosdn.pnd.v1alpha.GetPathRequest
+	24, // 47: gosdn.pnd.v1alpha.PndService.SetPathList:input_type -> gosdn.pnd.v1alpha.SetPathListRequest
+	35, // 48: gosdn.pnd.v1alpha.PndService.DeletePnd:input_type -> gosdn.pnd.v1alpha.DeletePndRequest
+	36, // 49: gosdn.pnd.v1alpha.PndService.DeleteOnd:input_type -> gosdn.pnd.v1alpha.DeleteOndRequest
+	12, // 50: gosdn.pnd.v1alpha.PndService.GetOndList:output_type -> gosdn.pnd.v1alpha.GetOndListResponse
+	11, // 51: gosdn.pnd.v1alpha.PndService.GetOnd:output_type -> gosdn.pnd.v1alpha.GetOndResponse
+	30, // 52: gosdn.pnd.v1alpha.PndService.SetOndList:output_type -> gosdn.pnd.v1alpha.SetOndListResponse
+	14, // 53: gosdn.pnd.v1alpha.PndService.GetSbiList:output_type -> gosdn.pnd.v1alpha.GetSbiListResponse
+	13, // 54: gosdn.pnd.v1alpha.PndService.GetSbi:output_type -> gosdn.pnd.v1alpha.GetSbiResponse
+	33, // 55: gosdn.pnd.v1alpha.PndService.SetSbiList:output_type -> gosdn.pnd.v1alpha.SetSbiListResponse
+	17, // 56: gosdn.pnd.v1alpha.PndService.GetChangeList:output_type -> gosdn.pnd.v1alpha.GetChangeListResponse
+	16, // 57: gosdn.pnd.v1alpha.PndService.GetChange:output_type -> gosdn.pnd.v1alpha.GetChangeResponse
+	31, // 58: gosdn.pnd.v1alpha.PndService.SetChangeList:output_type -> gosdn.pnd.v1alpha.SetChangeListResponse
+	15, // 59: gosdn.pnd.v1alpha.PndService.GetPath:output_type -> gosdn.pnd.v1alpha.GetPathResponse
+	34, // 60: gosdn.pnd.v1alpha.PndService.SetPathList:output_type -> gosdn.pnd.v1alpha.SetPathListResponse
+	37, // 61: gosdn.pnd.v1alpha.PndService.DeletePnd:output_type -> gosdn.pnd.v1alpha.DeletePndResponse
+	38, // 62: gosdn.pnd.v1alpha.PndService.DeleteOnd:output_type -> gosdn.pnd.v1alpha.DeleteOndResponse
+	50, // [50:63] is the sub-list for method output_type
+	37, // [37:50] is the sub-list for method input_type
+	37, // [37:37] is the sub-list for extension type_name
+	37, // [37:37] is the sub-list for extension extendee
+	0,  // [0:37] is the sub-list for field type_name
 }
 
 func init() { file_gosdn_pnd_pnd_proto_init() }
@@ -2371,7 +3060,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetSbiResponse); i {
+			switch v := v.(*GetOndListResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2383,7 +3072,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetPathResponse); i {
+			switch v := v.(*GetSbiResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2395,7 +3084,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetChangeResponse); i {
+			switch v := v.(*GetSbiListResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2407,7 +3096,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PrincipalNetworkDomain); i {
+			switch v := v.(*GetPathResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2419,7 +3108,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*OrchestratedNetworkingDevice); i {
+			switch v := v.(*GetChangeResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2431,7 +3120,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Change); i {
+			switch v := v.(*GetChangeListResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2443,7 +3132,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetOndRequest); i {
+			switch v := v.(*PrincipalNetworkDomain); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2455,7 +3144,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetSbiRequest); i {
+			switch v := v.(*OrchestratedNetworkingDevice); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2467,7 +3156,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetChangeRequest); i {
+			switch v := v.(*Change); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2479,7 +3168,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetPathRequest); i {
+			switch v := v.(*SetOndListRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2491,7 +3180,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetOnd); i {
+			switch v := v.(*SetSbiListRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2503,7 +3192,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetSbi); i {
+			switch v := v.(*SetChangeListRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2515,7 +3204,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetChange); i {
+			switch v := v.(*SetPathListRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2527,7 +3216,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ChangeRequest); i {
+			switch v := v.(*SetOnd); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2539,7 +3228,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetResponse); i {
+			switch v := v.(*SetSbi); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2551,7 +3240,7 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DeleteRequest); i {
+			switch v := v.(*SetChange); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2563,7 +3252,127 @@ func file_gosdn_pnd_pnd_proto_init() {
 			}
 		}
 		file_gosdn_pnd_pnd_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DeleteResponse); i {
+			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_pnd_pnd_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
+			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_pnd_pnd_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*SetOndListResponse); 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[27].Exporter = func(v interface{}, i int) interface{} {
+			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_pnd_pnd_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*SetChangeResponse); 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[29].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*SetSbiListResponse); 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[30].Exporter = func(v interface{}, i int) interface{} {
+			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_pnd_pnd_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
+			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[32].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*DeleteOndRequest); 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[33].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*DeletePndResponse); 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[34].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*DeleteOndResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -2580,8 +3389,8 @@ func file_gosdn_pnd_pnd_proto_init() {
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_gosdn_pnd_pnd_proto_rawDesc,
-			NumEnums:      6,
-			NumMessages:   25,
+			NumEnums:      4,
+			NumMessages:   35,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
diff --git a/go/gosdn/pnd/pnd.pb.gw.go b/go/gosdn/pnd/pnd.pb.gw.go
index fa01d86..18f2956 100644
--- a/go/gosdn/pnd/pnd.pb.gw.go
+++ b/go/gosdn/pnd/pnd.pb.gw.go
@@ -32,10 +32,10 @@ var _ = utilities.NewDoubleArray
 var _ = metadata.Join
 
 var (
-	filter_Pnd_GetOndList_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
+	filter_PndService_GetOndList_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
 )
 
-func request_Pnd_GetOndList_0(ctx context.Context, marshaler runtime.Marshaler, client PndClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func request_PndService_GetOndList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetOndListRequest
 	var metadata runtime.ServerMetadata
 
@@ -59,7 +59,7 @@ func request_Pnd_GetOndList_0(ctx context.Context, marshaler runtime.Marshaler,
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetOndList_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetOndList_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -68,7 +68,7 @@ func request_Pnd_GetOndList_0(ctx context.Context, marshaler runtime.Marshaler,
 
 }
 
-func local_request_Pnd_GetOndList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func local_request_PndService_GetOndList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetOndListRequest
 	var metadata runtime.ServerMetadata
 
@@ -92,7 +92,7 @@ func local_request_Pnd_GetOndList_0(ctx context.Context, marshaler runtime.Marsh
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetOndList_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetOndList_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -102,10 +102,10 @@ func local_request_Pnd_GetOndList_0(ctx context.Context, marshaler runtime.Marsh
 }
 
 var (
-	filter_Pnd_GetOnd_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "did": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
+	filter_PndService_GetOnd_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "did": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
 )
 
-func request_Pnd_GetOnd_0(ctx context.Context, marshaler runtime.Marshaler, client PndClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func request_PndService_GetOnd_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetOndRequest
 	var metadata runtime.ServerMetadata
 
@@ -131,7 +131,7 @@ func request_Pnd_GetOnd_0(ctx context.Context, marshaler runtime.Marshaler, clie
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "did")
 	}
 
-	protoReq.Did, err = runtime.StringSlice(val, ",")
+	protoReq.Did, err = runtime.String(val)
 	if err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
 	}
@@ -139,7 +139,7 @@ func request_Pnd_GetOnd_0(ctx context.Context, marshaler runtime.Marshaler, clie
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetOnd_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetOnd_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -148,7 +148,7 @@ func request_Pnd_GetOnd_0(ctx context.Context, marshaler runtime.Marshaler, clie
 
 }
 
-func local_request_Pnd_GetOnd_0(ctx context.Context, marshaler runtime.Marshaler, server PndServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func local_request_PndService_GetOnd_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetOndRequest
 	var metadata runtime.ServerMetadata
 
@@ -174,7 +174,7 @@ func local_request_Pnd_GetOnd_0(ctx context.Context, marshaler runtime.Marshaler
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "did")
 	}
 
-	protoReq.Did, err = runtime.StringSlice(val, ",")
+	protoReq.Did, err = runtime.String(val)
 	if err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
 	}
@@ -182,7 +182,7 @@ func local_request_Pnd_GetOnd_0(ctx context.Context, marshaler runtime.Marshaler
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetOnd_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetOnd_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -191,8 +191,8 @@ func local_request_Pnd_GetOnd_0(ctx context.Context, marshaler runtime.Marshaler
 
 }
 
-func request_Pnd_SetOnd_0(ctx context.Context, marshaler runtime.Marshaler, client PndClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetOndRequest
+func request_PndService_SetOndList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq SetOndListRequest
 	var metadata runtime.ServerMetadata
 
 	newReader, berr := utilities.IOReaderFactory(req.Body)
@@ -220,13 +220,13 @@ func request_Pnd_SetOnd_0(ctx context.Context, marshaler runtime.Marshaler, clie
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
 	}
 
-	msg, err := client.SetOnd(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+	msg, err := client.SetOndList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
 	return msg, metadata, err
 
 }
 
-func local_request_Pnd_SetOnd_0(ctx context.Context, marshaler runtime.Marshaler, server PndServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetOndRequest
+func local_request_PndService_SetOndList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq SetOndListRequest
 	var metadata runtime.ServerMetadata
 
 	newReader, berr := utilities.IOReaderFactory(req.Body)
@@ -254,16 +254,16 @@ func local_request_Pnd_SetOnd_0(ctx context.Context, marshaler runtime.Marshaler
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
 	}
 
-	msg, err := server.SetOnd(ctx, &protoReq)
+	msg, err := server.SetOndList(ctx, &protoReq)
 	return msg, metadata, err
 
 }
 
 var (
-	filter_Pnd_GetSbiList_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
+	filter_PndService_GetSbiList_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
 )
 
-func request_Pnd_GetSbiList_0(ctx context.Context, marshaler runtime.Marshaler, client PndClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func request_PndService_GetSbiList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetSbiListRequest
 	var metadata runtime.ServerMetadata
 
@@ -287,7 +287,7 @@ func request_Pnd_GetSbiList_0(ctx context.Context, marshaler runtime.Marshaler,
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetSbiList_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetSbiList_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -296,7 +296,7 @@ func request_Pnd_GetSbiList_0(ctx context.Context, marshaler runtime.Marshaler,
 
 }
 
-func local_request_Pnd_GetSbiList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func local_request_PndService_GetSbiList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetSbiListRequest
 	var metadata runtime.ServerMetadata
 
@@ -320,7 +320,7 @@ func local_request_Pnd_GetSbiList_0(ctx context.Context, marshaler runtime.Marsh
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetSbiList_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetSbiList_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -330,10 +330,10 @@ func local_request_Pnd_GetSbiList_0(ctx context.Context, marshaler runtime.Marsh
 }
 
 var (
-	filter_Pnd_GetSbi_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "sid": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
+	filter_PndService_GetSbi_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "sid": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
 )
 
-func request_Pnd_GetSbi_0(ctx context.Context, marshaler runtime.Marshaler, client PndClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func request_PndService_GetSbi_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetSbiRequest
 	var metadata runtime.ServerMetadata
 
@@ -359,7 +359,7 @@ func request_Pnd_GetSbi_0(ctx context.Context, marshaler runtime.Marshaler, clie
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "sid")
 	}
 
-	protoReq.Sid, err = runtime.StringSlice(val, ",")
+	protoReq.Sid, err = runtime.String(val)
 	if err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "sid", err)
 	}
@@ -367,7 +367,7 @@ func request_Pnd_GetSbi_0(ctx context.Context, marshaler runtime.Marshaler, clie
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetSbi_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetSbi_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -376,7 +376,7 @@ func request_Pnd_GetSbi_0(ctx context.Context, marshaler runtime.Marshaler, clie
 
 }
 
-func local_request_Pnd_GetSbi_0(ctx context.Context, marshaler runtime.Marshaler, server PndServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func local_request_PndService_GetSbi_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetSbiRequest
 	var metadata runtime.ServerMetadata
 
@@ -402,7 +402,7 @@ func local_request_Pnd_GetSbi_0(ctx context.Context, marshaler runtime.Marshaler
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "sid")
 	}
 
-	protoReq.Sid, err = runtime.StringSlice(val, ",")
+	protoReq.Sid, err = runtime.String(val)
 	if err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "sid", err)
 	}
@@ -410,7 +410,7 @@ func local_request_Pnd_GetSbi_0(ctx context.Context, marshaler runtime.Marshaler
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetSbi_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetSbi_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -419,8 +419,8 @@ func local_request_Pnd_GetSbi_0(ctx context.Context, marshaler runtime.Marshaler
 
 }
 
-func request_Pnd_SetSbi_0(ctx context.Context, marshaler runtime.Marshaler, client PndClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetSbiRequest
+func request_PndService_SetSbiList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq SetSbiListRequest
 	var metadata runtime.ServerMetadata
 
 	newReader, berr := utilities.IOReaderFactory(req.Body)
@@ -448,13 +448,13 @@ func request_Pnd_SetSbi_0(ctx context.Context, marshaler runtime.Marshaler, clie
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
 	}
 
-	msg, err := client.SetSbi(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+	msg, err := client.SetSbiList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
 	return msg, metadata, err
 
 }
 
-func local_request_Pnd_SetSbi_0(ctx context.Context, marshaler runtime.Marshaler, server PndServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetSbiRequest
+func local_request_PndService_SetSbiList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq SetSbiListRequest
 	var metadata runtime.ServerMetadata
 
 	newReader, berr := utilities.IOReaderFactory(req.Body)
@@ -482,16 +482,16 @@ func local_request_Pnd_SetSbi_0(ctx context.Context, marshaler runtime.Marshaler
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
 	}
 
-	msg, err := server.SetSbi(ctx, &protoReq)
+	msg, err := server.SetSbiList(ctx, &protoReq)
 	return msg, metadata, err
 
 }
 
 var (
-	filter_Pnd_GetChangeList_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
+	filter_PndService_GetChangeList_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
 )
 
-func request_Pnd_GetChangeList_0(ctx context.Context, marshaler runtime.Marshaler, client PndClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func request_PndService_GetChangeList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetChangeListRequest
 	var metadata runtime.ServerMetadata
 
@@ -515,7 +515,7 @@ func request_Pnd_GetChangeList_0(ctx context.Context, marshaler runtime.Marshale
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetChangeList_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetChangeList_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -524,7 +524,7 @@ func request_Pnd_GetChangeList_0(ctx context.Context, marshaler runtime.Marshale
 
 }
 
-func local_request_Pnd_GetChangeList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func local_request_PndService_GetChangeList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetChangeListRequest
 	var metadata runtime.ServerMetadata
 
@@ -548,7 +548,7 @@ func local_request_Pnd_GetChangeList_0(ctx context.Context, marshaler runtime.Ma
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetChangeList_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetChangeList_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -558,10 +558,10 @@ func local_request_Pnd_GetChangeList_0(ctx context.Context, marshaler runtime.Ma
 }
 
 var (
-	filter_Pnd_GetChange_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "cuid": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
+	filter_PndService_GetChange_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "cuid": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
 )
 
-func request_Pnd_GetChange_0(ctx context.Context, marshaler runtime.Marshaler, client PndClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func request_PndService_GetChange_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetChangeRequest
 	var metadata runtime.ServerMetadata
 
@@ -587,7 +587,7 @@ func request_Pnd_GetChange_0(ctx context.Context, marshaler runtime.Marshaler, c
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cuid")
 	}
 
-	protoReq.Cuid, err = runtime.StringSlice(val, ",")
+	protoReq.Cuid, err = runtime.String(val)
 	if err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cuid", err)
 	}
@@ -595,7 +595,7 @@ func request_Pnd_GetChange_0(ctx context.Context, marshaler runtime.Marshaler, c
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetChange_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetChange_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -604,7 +604,7 @@ func request_Pnd_GetChange_0(ctx context.Context, marshaler runtime.Marshaler, c
 
 }
 
-func local_request_Pnd_GetChange_0(ctx context.Context, marshaler runtime.Marshaler, server PndServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func local_request_PndService_GetChange_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetChangeRequest
 	var metadata runtime.ServerMetadata
 
@@ -630,7 +630,7 @@ func local_request_Pnd_GetChange_0(ctx context.Context, marshaler runtime.Marsha
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cuid")
 	}
 
-	protoReq.Cuid, err = runtime.StringSlice(val, ",")
+	protoReq.Cuid, err = runtime.String(val)
 	if err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cuid", err)
 	}
@@ -638,7 +638,7 @@ func local_request_Pnd_GetChange_0(ctx context.Context, marshaler runtime.Marsha
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetChange_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetChange_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -647,8 +647,8 @@ func local_request_Pnd_GetChange_0(ctx context.Context, marshaler runtime.Marsha
 
 }
 
-func request_Pnd_SetChange_0(ctx context.Context, marshaler runtime.Marshaler, client PndClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetChangeRequest
+func request_PndService_SetChangeList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq SetChangeListRequest
 	var metadata runtime.ServerMetadata
 
 	newReader, berr := utilities.IOReaderFactory(req.Body)
@@ -676,13 +676,13 @@ func request_Pnd_SetChange_0(ctx context.Context, marshaler runtime.Marshaler, c
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
 	}
 
-	msg, err := client.SetChange(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+	msg, err := client.SetChangeList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
 	return msg, metadata, err
 
 }
 
-func local_request_Pnd_SetChange_0(ctx context.Context, marshaler runtime.Marshaler, server PndServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetChangeRequest
+func local_request_PndService_SetChangeList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq SetChangeListRequest
 	var metadata runtime.ServerMetadata
 
 	newReader, berr := utilities.IOReaderFactory(req.Body)
@@ -710,16 +710,16 @@ func local_request_Pnd_SetChange_0(ctx context.Context, marshaler runtime.Marsha
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
 	}
 
-	msg, err := server.SetChange(ctx, &protoReq)
+	msg, err := server.SetChangeList(ctx, &protoReq)
 	return msg, metadata, err
 
 }
 
 var (
-	filter_Pnd_GetPath_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "did": 1, "path": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}}
+	filter_PndService_GetPath_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "did": 1, "path": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}}
 )
 
-func request_Pnd_GetPath_0(ctx context.Context, marshaler runtime.Marshaler, client PndClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func request_PndService_GetPath_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetPathRequest
 	var metadata runtime.ServerMetadata
 
@@ -763,7 +763,7 @@ func request_Pnd_GetPath_0(ctx context.Context, marshaler runtime.Marshaler, cli
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetPath_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetPath_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -772,7 +772,7 @@ func request_Pnd_GetPath_0(ctx context.Context, marshaler runtime.Marshaler, cli
 
 }
 
-func local_request_Pnd_GetPath_0(ctx context.Context, marshaler runtime.Marshaler, server PndServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+func local_request_PndService_GetPath_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 	var protoReq GetPathRequest
 	var metadata runtime.ServerMetadata
 
@@ -816,7 +816,7 @@ func local_request_Pnd_GetPath_0(ctx context.Context, marshaler runtime.Marshale
 	if err := req.ParseForm(); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Pnd_GetPath_0); err != nil {
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetPath_0); err != nil {
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 	}
 
@@ -825,8 +825,8 @@ func local_request_Pnd_GetPath_0(ctx context.Context, marshaler runtime.Marshale
 
 }
 
-func request_Pnd_SetPath_0(ctx context.Context, marshaler runtime.Marshaler, client PndClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetPathRequest
+func request_PndService_SetPathList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq SetPathListRequest
 	var metadata runtime.ServerMetadata
 
 	newReader, berr := utilities.IOReaderFactory(req.Body)
@@ -864,13 +864,13 @@ func request_Pnd_SetPath_0(ctx context.Context, marshaler runtime.Marshaler, cli
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
 	}
 
-	msg, err := client.SetPath(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+	msg, err := client.SetPathList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
 	return msg, metadata, err
 
 }
 
-func local_request_Pnd_SetPath_0(ctx context.Context, marshaler runtime.Marshaler, server PndServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetPathRequest
+func local_request_PndService_SetPathList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq SetPathListRequest
 	var metadata runtime.ServerMetadata
 
 	newReader, berr := utilities.IOReaderFactory(req.Body)
@@ -908,29 +908,189 @@ func local_request_Pnd_SetPath_0(ctx context.Context, marshaler runtime.Marshale
 		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
 	}
 
-	msg, err := server.SetPath(ctx, &protoReq)
+	msg, err := server.SetPathList(ctx, &protoReq)
+	return msg, metadata, err
+
+}
+
+var (
+	filter_PndService_DeletePnd_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
+)
+
+func request_PndService_DeletePnd_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq DeletePndRequest
+	var metadata runtime.ServerMetadata
+
+	var (
+		val string
+		ok  bool
+		err error
+		_   = err
+	)
+
+	val, ok = pathParams["pid"]
+	if !ok {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
+	}
+
+	protoReq.Pid, err = runtime.String(val)
+	if err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
+	}
+
+	if err := req.ParseForm(); err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+	}
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_DeletePnd_0); err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+	}
+
+	msg, err := client.DeletePnd(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+	return msg, metadata, err
+
+}
+
+func local_request_PndService_DeletePnd_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq DeletePndRequest
+	var metadata runtime.ServerMetadata
+
+	var (
+		val string
+		ok  bool
+		err error
+		_   = err
+	)
+
+	val, ok = pathParams["pid"]
+	if !ok {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
+	}
+
+	protoReq.Pid, err = runtime.String(val)
+	if err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
+	}
+
+	if err := req.ParseForm(); err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+	}
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_DeletePnd_0); err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+	}
+
+	msg, err := server.DeletePnd(ctx, &protoReq)
+	return msg, metadata, err
+
+}
+
+var (
+	filter_PndService_DeleteOnd_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "did": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
+)
+
+func request_PndService_DeleteOnd_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq DeleteOndRequest
+	var metadata runtime.ServerMetadata
+
+	var (
+		val string
+		ok  bool
+		err error
+		_   = err
+	)
+
+	val, ok = pathParams["pid"]
+	if !ok {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
+	}
+
+	protoReq.Pid, err = runtime.String(val)
+	if err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
+	}
+
+	val, ok = pathParams["did"]
+	if !ok {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "did")
+	}
+
+	protoReq.Did, err = runtime.String(val)
+	if err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
+	}
+
+	if err := req.ParseForm(); err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+	}
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_DeleteOnd_0); err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+	}
+
+	msg, err := client.DeleteOnd(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+	return msg, metadata, err
+
+}
+
+func local_request_PndService_DeleteOnd_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+	var protoReq DeleteOndRequest
+	var metadata runtime.ServerMetadata
+
+	var (
+		val string
+		ok  bool
+		err error
+		_   = err
+	)
+
+	val, ok = pathParams["pid"]
+	if !ok {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
+	}
+
+	protoReq.Pid, err = runtime.String(val)
+	if err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
+	}
+
+	val, ok = pathParams["did"]
+	if !ok {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "did")
+	}
+
+	protoReq.Did, err = runtime.String(val)
+	if err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
+	}
+
+	if err := req.ParseForm(); err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+	}
+	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_DeleteOnd_0); err != nil {
+		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
+	}
+
+	msg, err := server.DeleteOnd(ctx, &protoReq)
 	return msg, metadata, err
 
 }
 
-// RegisterPndHandlerServer registers the http handlers for service Pnd to "mux".
-// UnaryRPC     :call PndServer directly.
+// RegisterPndServiceHandlerServer registers the http handlers for service PndService to "mux".
+// UnaryRPC     :call PndServiceServer directly.
 // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
-// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterPndHandlerFromEndpoint instead.
-func RegisterPndHandlerServer(ctx context.Context, mux *runtime.ServeMux, server PndServer) error {
+// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterPndServiceHandlerFromEndpoint instead.
+func RegisterPndServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server PndServiceServer) error {
 
-	mux.Handle("GET", pattern_Pnd_GetOndList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetOndList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetOndList", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/ond"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetOndList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Pnd_GetOndList_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_PndService_GetOndList_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -938,22 +1098,22 @@ func RegisterPndHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
 			return
 		}
 
-		forward_Pnd_GetOndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetOndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Pnd_GetOnd_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetOnd_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetOnd", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/ond/{did}"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetOnd", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/ond/{did}"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Pnd_GetOnd_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_PndService_GetOnd_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -961,22 +1121,22 @@ func RegisterPndHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
 			return
 		}
 
-		forward_Pnd_GetOnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetOnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("POST", pattern_Pnd_SetOnd_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("POST", pattern_PndService_SetOndList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.Pnd/SetOnd", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/ond"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetOndList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Pnd_SetOnd_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_PndService_SetOndList_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -984,22 +1144,22 @@ func RegisterPndHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
 			return
 		}
 
-		forward_Pnd_SetOnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_SetOndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Pnd_GetSbiList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetSbiList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetSbiList", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/sbi"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetSbiList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/sbis"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Pnd_GetSbiList_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_PndService_GetSbiList_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -1007,22 +1167,22 @@ func RegisterPndHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
 			return
 		}
 
-		forward_Pnd_GetSbiList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetSbiList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Pnd_GetSbi_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetSbi_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetSbi", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/sbi/{sid}"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetSbi", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/sbis/{sid}"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Pnd_GetSbi_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_PndService_GetSbi_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -1030,22 +1190,22 @@ func RegisterPndHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
 			return
 		}
 
-		forward_Pnd_GetSbi_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetSbi_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("POST", pattern_Pnd_SetSbi_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("POST", pattern_PndService_SetSbiList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.Pnd/SetSbi", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/sbi"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetSbiList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/sbis"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Pnd_SetSbi_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_PndService_SetSbiList_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -1053,22 +1213,22 @@ func RegisterPndHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
 			return
 		}
 
-		forward_Pnd_SetSbi_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_SetSbiList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Pnd_GetChangeList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetChangeList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetChangeList", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/change"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetChangeList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/changes"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Pnd_GetChangeList_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_PndService_GetChangeList_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -1076,22 +1236,22 @@ func RegisterPndHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
 			return
 		}
 
-		forward_Pnd_GetChangeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetChangeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Pnd_GetChange_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetChange_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetChange", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/change/{cuid}"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetChange", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/changes/{cuid}"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Pnd_GetChange_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_PndService_GetChange_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -1099,22 +1259,22 @@ func RegisterPndHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
 			return
 		}
 
-		forward_Pnd_GetChange_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetChange_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("POST", pattern_Pnd_SetChange_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("POST", pattern_PndService_SetChangeList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.Pnd/SetChange", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/change"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetChangeList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/changes"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Pnd_SetChange_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_PndService_SetChangeList_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -1122,22 +1282,22 @@ func RegisterPndHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
 			return
 		}
 
-		forward_Pnd_SetChange_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_SetChangeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Pnd_GetPath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetPath_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetPath", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/ond/{did}/path/{path}"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetPath", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds/{did}/paths/{path}"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Pnd_GetPath_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_PndService_GetPath_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -1145,22 +1305,22 @@ func RegisterPndHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
 			return
 		}
 
-		forward_Pnd_GetPath_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetPath_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("POST", pattern_Pnd_SetPath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("POST", pattern_PndService_SetPathList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.Pnd/SetPath", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/ond/{did}/path"))
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetPathList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds/{did}/paths"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := local_request_Pnd_SetPath_0(rctx, inboundMarshaler, server, req, pathParams)
+		resp, md, err := local_request_PndService_SetPathList_0(rctx, inboundMarshaler, server, req, pathParams)
 		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
@@ -1168,16 +1328,62 @@ func RegisterPndHandlerServer(ctx context.Context, mux *runtime.ServeMux, server
 			return
 		}
 
-		forward_Pnd_SetPath_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_SetPathList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+	})
+
+	mux.Handle("DELETE", pattern_PndService_DeletePnd_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)
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/DeletePnd", runtime.WithHTTPPathPattern("/v1/pnds/{pid}"))
+		if err != nil {
+			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+			return
+		}
+		resp, md, err := local_request_PndService_DeletePnd_0(rctx, inboundMarshaler, server, req, pathParams)
+		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+		ctx = runtime.NewServerMetadataContext(ctx, md)
+		if err != nil {
+			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+			return
+		}
+
+		forward_PndService_DeletePnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+	})
+
+	mux.Handle("DELETE", pattern_PndService_DeleteOnd_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)
+		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/DeleteOnd", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds/{did}"))
+		if err != nil {
+			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+			return
+		}
+		resp, md, err := local_request_PndService_DeleteOnd_0(rctx, inboundMarshaler, server, req, pathParams)
+		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+		ctx = runtime.NewServerMetadataContext(ctx, md)
+		if err != nil {
+			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+			return
+		}
+
+		forward_PndService_DeleteOnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
 	return nil
 }
 
-// RegisterPndHandlerFromEndpoint is same as RegisterPndHandler but
+// RegisterPndServiceHandlerFromEndpoint is same as RegisterPndServiceHandler but
 // automatically dials to "endpoint" and closes the connection when "ctx" gets done.
-func RegisterPndHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
+func RegisterPndServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
 	conn, err := grpc.Dial(endpoint, opts...)
 	if err != nil {
 		return err
@@ -1197,239 +1403,279 @@ func RegisterPndHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux,
 		}()
 	}()
 
-	return RegisterPndHandler(ctx, mux, conn)
+	return RegisterPndServiceHandler(ctx, mux, conn)
 }
 
-// RegisterPndHandler registers the http handlers for service Pnd to "mux".
+// RegisterPndServiceHandler registers the http handlers for service PndService to "mux".
 // The handlers forward requests to the grpc endpoint over "conn".
-func RegisterPndHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
-	return RegisterPndHandlerClient(ctx, mux, NewPndClient(conn))
+func RegisterPndServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
+	return RegisterPndServiceHandlerClient(ctx, mux, NewPndServiceClient(conn))
 }
 
-// RegisterPndHandlerClient registers the http handlers for service Pnd
-// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "PndClient".
-// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "PndClient"
+// RegisterPndServiceHandlerClient registers the http handlers for service PndService
+// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "PndServiceClient".
+// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "PndServiceClient"
 // doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
-// "PndClient" to call the correct interceptors.
-func RegisterPndHandlerClient(ctx context.Context, mux *runtime.ServeMux, client PndClient) error {
+// "PndServiceClient" to call the correct interceptors.
+func RegisterPndServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client PndServiceClient) error {
+
+	mux.Handle("GET", pattern_PndService_GetOndList_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)
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetOndList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds"))
+		if err != nil {
+			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+			return
+		}
+		resp, md, err := request_PndService_GetOndList_0(rctx, inboundMarshaler, client, req, pathParams)
+		ctx = runtime.NewServerMetadataContext(ctx, md)
+		if err != nil {
+			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+			return
+		}
+
+		forward_PndService_GetOndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+	})
 
-	mux.Handle("GET", pattern_Pnd_GetOndList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetOnd_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetOndList", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/ond"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetOnd", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/ond/{did}"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Pnd_GetOndList_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_PndService_GetOnd_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Pnd_GetOndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetOnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Pnd_GetOnd_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("POST", pattern_PndService_SetOndList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetOnd", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/ond/{did}"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetOndList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Pnd_GetOnd_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_PndService_SetOndList_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Pnd_GetOnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_SetOndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("POST", pattern_Pnd_SetOnd_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetSbiList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.Pnd/SetOnd", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/ond"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetSbiList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/sbis"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Pnd_SetOnd_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_PndService_GetSbiList_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Pnd_SetOnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetSbiList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Pnd_GetSbiList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetSbi_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetSbiList", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/sbi"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetSbi", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/sbis/{sid}"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Pnd_GetSbiList_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_PndService_GetSbi_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Pnd_GetSbiList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetSbi_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Pnd_GetSbi_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("POST", pattern_PndService_SetSbiList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetSbi", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/sbi/{sid}"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetSbiList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/sbis"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Pnd_GetSbi_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_PndService_SetSbiList_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Pnd_GetSbi_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_SetSbiList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("POST", pattern_Pnd_SetSbi_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetChangeList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.Pnd/SetSbi", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/sbi"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetChangeList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/changes"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Pnd_SetSbi_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_PndService_GetChangeList_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Pnd_SetSbi_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetChangeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Pnd_GetChangeList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetChange_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetChangeList", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/change"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetChange", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/changes/{cuid}"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Pnd_GetChangeList_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_PndService_GetChange_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Pnd_GetChangeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetChange_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Pnd_GetChange_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("POST", pattern_PndService_SetChangeList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetChange", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/change/{cuid}"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetChangeList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/changes"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Pnd_GetChange_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_PndService_SetChangeList_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Pnd_GetChange_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_SetChangeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("POST", pattern_Pnd_SetChange_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("GET", pattern_PndService_GetPath_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.Pnd/SetChange", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/change"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetPath", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds/{did}/paths/{path}"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Pnd_SetChange_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_PndService_GetPath_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Pnd_SetChange_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_GetPath_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("GET", pattern_Pnd_GetPath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("POST", pattern_PndService_SetPathList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.Pnd/GetPath", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/ond/{did}/path/{path}"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetPathList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds/{did}/paths"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Pnd_GetPath_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_PndService_SetPathList_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Pnd_GetPath_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_SetPathList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
-	mux.Handle("POST", pattern_Pnd_SetPath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+	mux.Handle("DELETE", pattern_PndService_DeletePnd_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.Pnd/SetPath", runtime.WithHTTPPathPattern("/v1/pnd/{pid}/ond/{did}/path"))
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/DeletePnd", runtime.WithHTTPPathPattern("/v1/pnds/{pid}"))
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
-		resp, md, err := request_Pnd_SetPath_0(rctx, inboundMarshaler, client, req, pathParams)
+		resp, md, err := request_PndService_DeletePnd_0(rctx, inboundMarshaler, client, req, pathParams)
 		ctx = runtime.NewServerMetadataContext(ctx, md)
 		if err != nil {
 			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 			return
 		}
 
-		forward_Pnd_SetPath_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+		forward_PndService_DeletePnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+	})
+
+	mux.Handle("DELETE", pattern_PndService_DeleteOnd_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)
+		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/DeleteOnd", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds/{did}"))
+		if err != nil {
+			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+			return
+		}
+		resp, md, err := request_PndService_DeleteOnd_0(rctx, inboundMarshaler, client, req, pathParams)
+		ctx = runtime.NewServerMetadataContext(ctx, md)
+		if err != nil {
+			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+			return
+		}
+
+		forward_PndService_DeleteOnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 
 	})
 
@@ -1437,49 +1683,57 @@ func RegisterPndHandlerClient(ctx context.Context, mux *runtime.ServeMux, client
 }
 
 var (
-	pattern_Pnd_GetOndList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnd", "pid", "ond"}, ""))
+	pattern_PndService_GetOndList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnds", "pid", "onds"}, ""))
+
+	pattern_PndService_GetOnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "pnds", "pid", "ond", "did"}, ""))
 
-	pattern_Pnd_GetOnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "pnd", "pid", "ond", "did"}, ""))
+	pattern_PndService_SetOndList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnds", "pid", "onds"}, ""))
 
-	pattern_Pnd_SetOnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnd", "pid", "ond"}, ""))
+	pattern_PndService_GetSbiList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnds", "pid", "sbis"}, ""))
 
-	pattern_Pnd_GetSbiList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnd", "pid", "sbi"}, ""))
+	pattern_PndService_GetSbi_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "pnds", "pid", "sbis", "sid"}, ""))
 
-	pattern_Pnd_GetSbi_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "pnd", "pid", "sbi", "sid"}, ""))
+	pattern_PndService_SetSbiList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnds", "pid", "sbis"}, ""))
 
-	pattern_Pnd_SetSbi_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnd", "pid", "sbi"}, ""))
+	pattern_PndService_GetChangeList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnds", "pid", "changes"}, ""))
 
-	pattern_Pnd_GetChangeList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnd", "pid", "change"}, ""))
+	pattern_PndService_GetChange_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "pnds", "pid", "changes", "cuid"}, ""))
 
-	pattern_Pnd_GetChange_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "pnd", "pid", "change", "cuid"}, ""))
+	pattern_PndService_SetChangeList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnds", "pid", "changes"}, ""))
 
-	pattern_Pnd_SetChange_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnd", "pid", "change"}, ""))
+	pattern_PndService_GetPath_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6}, []string{"v1", "pnds", "pid", "onds", "did", "paths", "path"}, ""))
 
-	pattern_Pnd_GetPath_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 5}, []string{"v1", "pnd", "pid", "ond", "did", "path"}, ""))
+	pattern_PndService_SetPathList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"v1", "pnds", "pid", "onds", "did", "paths"}, ""))
 
-	pattern_Pnd_SetPath_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"v1", "pnd", "pid", "ond", "did", "path"}, ""))
+	pattern_PndService_DeletePnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"v1", "pnds", "pid"}, ""))
+
+	pattern_PndService_DeleteOnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "pnds", "pid", "onds", "did"}, ""))
 )
 
 var (
-	forward_Pnd_GetOndList_0 = runtime.ForwardResponseMessage
+	forward_PndService_GetOndList_0 = runtime.ForwardResponseMessage
+
+	forward_PndService_GetOnd_0 = runtime.ForwardResponseMessage
+
+	forward_PndService_SetOndList_0 = runtime.ForwardResponseMessage
 
-	forward_Pnd_GetOnd_0 = runtime.ForwardResponseMessage
+	forward_PndService_GetSbiList_0 = runtime.ForwardResponseMessage
 
-	forward_Pnd_SetOnd_0 = runtime.ForwardResponseMessage
+	forward_PndService_GetSbi_0 = runtime.ForwardResponseMessage
 
-	forward_Pnd_GetSbiList_0 = runtime.ForwardResponseMessage
+	forward_PndService_SetSbiList_0 = runtime.ForwardResponseMessage
 
-	forward_Pnd_GetSbi_0 = runtime.ForwardResponseMessage
+	forward_PndService_GetChangeList_0 = runtime.ForwardResponseMessage
 
-	forward_Pnd_SetSbi_0 = runtime.ForwardResponseMessage
+	forward_PndService_GetChange_0 = runtime.ForwardResponseMessage
 
-	forward_Pnd_GetChangeList_0 = runtime.ForwardResponseMessage
+	forward_PndService_SetChangeList_0 = runtime.ForwardResponseMessage
 
-	forward_Pnd_GetChange_0 = runtime.ForwardResponseMessage
+	forward_PndService_GetPath_0 = runtime.ForwardResponseMessage
 
-	forward_Pnd_SetChange_0 = runtime.ForwardResponseMessage
+	forward_PndService_SetPathList_0 = runtime.ForwardResponseMessage
 
-	forward_Pnd_GetPath_0 = runtime.ForwardResponseMessage
+	forward_PndService_DeletePnd_0 = runtime.ForwardResponseMessage
 
-	forward_Pnd_SetPath_0 = runtime.ForwardResponseMessage
+	forward_PndService_DeleteOnd_0 = runtime.ForwardResponseMessage
 )
diff --git a/go/gosdn/pnd/pnd_grpc.pb.go b/go/gosdn/pnd/pnd_grpc.pb.go
index c64b91b..be56a30 100644
--- a/go/gosdn/pnd/pnd_grpc.pb.go
+++ b/go/gosdn/pnd/pnd_grpc.pb.go
@@ -14,496 +14,532 @@ import (
 // Requires gRPC-Go v1.32.0 or later.
 const _ = grpc.SupportPackageIsVersion7
 
-// PndClient is the client API for Pnd service.
+// PndServiceClient is the client API for PndService service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type PndClient interface {
+type PndServiceClient interface {
 	// Allows to request Orchestrated Networking Devices which are managed by a
 	// specific Principal Network Domain.
-	GetOndList(ctx context.Context, in *GetOndListRequest, opts ...grpc.CallOption) (*GetOndResponse, error)
+	GetOndList(ctx context.Context, in *GetOndListRequest, opts ...grpc.CallOption) (*GetOndListResponse, error)
 	GetOnd(ctx context.Context, in *GetOndRequest, opts ...grpc.CallOption) (*GetOndResponse, error)
-	SetOnd(ctx context.Context, in *SetOndRequest, opts ...grpc.CallOption) (*SetResponse, error)
+	SetOndList(ctx context.Context, in *SetOndListRequest, opts ...grpc.CallOption) (*SetOndListResponse, error)
 	// Allows to request the Southbound Interfaces a specific Principal Network
 	// Domain supports.
-	GetSbiList(ctx context.Context, in *GetSbiListRequest, opts ...grpc.CallOption) (*GetSbiResponse, error)
+	GetSbiList(ctx context.Context, in *GetSbiListRequest, opts ...grpc.CallOption) (*GetSbiListResponse, error)
 	GetSbi(ctx context.Context, in *GetSbiRequest, opts ...grpc.CallOption) (*GetSbiResponse, error)
-	SetSbi(ctx context.Context, in *SetSbiRequest, opts ...grpc.CallOption) (*SetResponse, error)
+	SetSbiList(ctx context.Context, in *SetSbiListRequest, opts ...grpc.CallOption) (*SetSbiListResponse, error)
 	// Allows to request Changes registered for a specific Principal Network Domain.
-	GetChangeList(ctx context.Context, in *GetChangeListRequest, opts ...grpc.CallOption) (*GetChangeResponse, error)
+	GetChangeList(ctx context.Context, in *GetChangeListRequest, opts ...grpc.CallOption) (*GetChangeListResponse, error)
 	GetChange(ctx context.Context, in *GetChangeRequest, opts ...grpc.CallOption) (*GetChangeResponse, error)
-	SetChange(ctx context.Context, in *SetChangeRequest, opts ...grpc.CallOption) (*SetResponse, error)
+	SetChangeList(ctx context.Context, in *SetChangeListRequest, opts ...grpc.CallOption) (*SetChangeListResponse, error)
 	// Allows to request a specific Path of a Orchestrated Networking Device,
 	// managed by a specific Principal Network Domain.
 	GetPath(ctx context.Context, in *GetPathRequest, opts ...grpc.CallOption) (*GetPathResponse, error)
-	SetPath(ctx context.Context, in *SetPathRequest, opts ...grpc.CallOption) (*SetResponse, error)
-	Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
+	SetPathList(ctx context.Context, in *SetPathListRequest, opts ...grpc.CallOption) (*SetPathListResponse, error)
+	DeletePnd(ctx context.Context, in *DeletePndRequest, opts ...grpc.CallOption) (*DeletePndResponse, error)
+	DeleteOnd(ctx context.Context, in *DeleteOndRequest, opts ...grpc.CallOption) (*DeleteOndResponse, error)
 }
 
-type pndClient struct {
+type pndServiceClient struct {
 	cc grpc.ClientConnInterface
 }
 
-func NewPndClient(cc grpc.ClientConnInterface) PndClient {
-	return &pndClient{cc}
+func NewPndServiceClient(cc grpc.ClientConnInterface) PndServiceClient {
+	return &pndServiceClient{cc}
 }
 
-func (c *pndClient) GetOndList(ctx context.Context, in *GetOndListRequest, opts ...grpc.CallOption) (*GetOndResponse, error) {
-	out := new(GetOndResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.pnd/GetOndList", in, out, opts...)
+func (c *pndServiceClient) GetOndList(ctx context.Context, in *GetOndListRequest, opts ...grpc.CallOption) (*GetOndListResponse, error) {
+	out := new(GetOndListResponse)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetOndList", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *pndClient) GetOnd(ctx context.Context, in *GetOndRequest, opts ...grpc.CallOption) (*GetOndResponse, error) {
+func (c *pndServiceClient) GetOnd(ctx context.Context, in *GetOndRequest, opts ...grpc.CallOption) (*GetOndResponse, error) {
 	out := new(GetOndResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.pnd/GetOnd", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetOnd", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *pndClient) SetOnd(ctx context.Context, in *SetOndRequest, opts ...grpc.CallOption) (*SetResponse, error) {
-	out := new(SetResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.pnd/SetOnd", in, out, opts...)
+func (c *pndServiceClient) SetOndList(ctx context.Context, in *SetOndListRequest, opts ...grpc.CallOption) (*SetOndListResponse, error) {
+	out := new(SetOndListResponse)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/SetOndList", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *pndClient) GetSbiList(ctx context.Context, in *GetSbiListRequest, opts ...grpc.CallOption) (*GetSbiResponse, error) {
-	out := new(GetSbiResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.pnd/GetSbiList", in, out, opts...)
+func (c *pndServiceClient) GetSbiList(ctx context.Context, in *GetSbiListRequest, opts ...grpc.CallOption) (*GetSbiListResponse, error) {
+	out := new(GetSbiListResponse)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetSbiList", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *pndClient) GetSbi(ctx context.Context, in *GetSbiRequest, opts ...grpc.CallOption) (*GetSbiResponse, error) {
+func (c *pndServiceClient) GetSbi(ctx context.Context, in *GetSbiRequest, opts ...grpc.CallOption) (*GetSbiResponse, error) {
 	out := new(GetSbiResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.pnd/GetSbi", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetSbi", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *pndClient) SetSbi(ctx context.Context, in *SetSbiRequest, opts ...grpc.CallOption) (*SetResponse, error) {
-	out := new(SetResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.pnd/SetSbi", in, out, opts...)
+func (c *pndServiceClient) SetSbiList(ctx context.Context, in *SetSbiListRequest, opts ...grpc.CallOption) (*SetSbiListResponse, error) {
+	out := new(SetSbiListResponse)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/SetSbiList", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *pndClient) GetChangeList(ctx context.Context, in *GetChangeListRequest, opts ...grpc.CallOption) (*GetChangeResponse, error) {
-	out := new(GetChangeResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.pnd/GetChangeList", in, out, opts...)
+func (c *pndServiceClient) GetChangeList(ctx context.Context, in *GetChangeListRequest, opts ...grpc.CallOption) (*GetChangeListResponse, error) {
+	out := new(GetChangeListResponse)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetChangeList", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *pndClient) GetChange(ctx context.Context, in *GetChangeRequest, opts ...grpc.CallOption) (*GetChangeResponse, error) {
+func (c *pndServiceClient) GetChange(ctx context.Context, in *GetChangeRequest, opts ...grpc.CallOption) (*GetChangeResponse, error) {
 	out := new(GetChangeResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.pnd/GetChange", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetChange", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *pndClient) SetChange(ctx context.Context, in *SetChangeRequest, opts ...grpc.CallOption) (*SetResponse, error) {
-	out := new(SetResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.pnd/SetChange", in, out, opts...)
+func (c *pndServiceClient) SetChangeList(ctx context.Context, in *SetChangeListRequest, opts ...grpc.CallOption) (*SetChangeListResponse, error) {
+	out := new(SetChangeListResponse)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/SetChangeList", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *pndClient) GetPath(ctx context.Context, in *GetPathRequest, opts ...grpc.CallOption) (*GetPathResponse, error) {
+func (c *pndServiceClient) GetPath(ctx context.Context, in *GetPathRequest, opts ...grpc.CallOption) (*GetPathResponse, error) {
 	out := new(GetPathResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.pnd/GetPath", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetPath", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *pndClient) SetPath(ctx context.Context, in *SetPathRequest, opts ...grpc.CallOption) (*SetResponse, error) {
-	out := new(SetResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.pnd/SetPath", in, out, opts...)
+func (c *pndServiceClient) SetPathList(ctx context.Context, in *SetPathListRequest, opts ...grpc.CallOption) (*SetPathListResponse, error) {
+	out := new(SetPathListResponse)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/SetPathList", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *pndClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error) {
-	out := new(DeleteResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.pnd/Delete", in, out, opts...)
+func (c *pndServiceClient) DeletePnd(ctx context.Context, in *DeletePndRequest, opts ...grpc.CallOption) (*DeletePndResponse, error) {
+	out := new(DeletePndResponse)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/DeletePnd", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-// PndServer is the server API for Pnd service.
-// All implementations must embed UnimplementedPndServer
+func (c *pndServiceClient) DeleteOnd(ctx context.Context, in *DeleteOndRequest, opts ...grpc.CallOption) (*DeleteOndResponse, error) {
+	out := new(DeleteOndResponse)
+	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/DeleteOnd", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// PndServiceServer is the server API for PndService service.
+// All implementations must embed UnimplementedPndServiceServer
 // for forward compatibility
-type PndServer interface {
+type PndServiceServer interface {
 	// Allows to request Orchestrated Networking Devices which are managed by a
 	// specific Principal Network Domain.
-	GetOndList(context.Context, *GetOndListRequest) (*GetOndResponse, error)
+	GetOndList(context.Context, *GetOndListRequest) (*GetOndListResponse, error)
 	GetOnd(context.Context, *GetOndRequest) (*GetOndResponse, error)
-	SetOnd(context.Context, *SetOndRequest) (*SetResponse, error)
+	SetOndList(context.Context, *SetOndListRequest) (*SetOndListResponse, error)
 	// Allows to request the Southbound Interfaces a specific Principal Network
 	// Domain supports.
-	GetSbiList(context.Context, *GetSbiListRequest) (*GetSbiResponse, error)
+	GetSbiList(context.Context, *GetSbiListRequest) (*GetSbiListResponse, error)
 	GetSbi(context.Context, *GetSbiRequest) (*GetSbiResponse, error)
-	SetSbi(context.Context, *SetSbiRequest) (*SetResponse, error)
+	SetSbiList(context.Context, *SetSbiListRequest) (*SetSbiListResponse, error)
 	// Allows to request Changes registered for a specific Principal Network Domain.
-	GetChangeList(context.Context, *GetChangeListRequest) (*GetChangeResponse, error)
+	GetChangeList(context.Context, *GetChangeListRequest) (*GetChangeListResponse, error)
 	GetChange(context.Context, *GetChangeRequest) (*GetChangeResponse, error)
-	SetChange(context.Context, *SetChangeRequest) (*SetResponse, error)
+	SetChangeList(context.Context, *SetChangeListRequest) (*SetChangeListResponse, error)
 	// Allows to request a specific Path of a Orchestrated Networking Device,
 	// managed by a specific Principal Network Domain.
 	GetPath(context.Context, *GetPathRequest) (*GetPathResponse, error)
-	SetPath(context.Context, *SetPathRequest) (*SetResponse, error)
-	Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
-	mustEmbedUnimplementedPndServer()
+	SetPathList(context.Context, *SetPathListRequest) (*SetPathListResponse, error)
+	DeletePnd(context.Context, *DeletePndRequest) (*DeletePndResponse, error)
+	DeleteOnd(context.Context, *DeleteOndRequest) (*DeleteOndResponse, error)
+	mustEmbedUnimplementedPndServiceServer()
 }
 
-// UnimplementedPndServer must be embedded to have forward compatible implementations.
-type UnimplementedPndServer struct {
+// UnimplementedPndServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedPndServiceServer struct {
 }
 
-func (UnimplementedPndServer) GetOndList(context.Context, *GetOndListRequest) (*GetOndResponse, error) {
+func (UnimplementedPndServiceServer) GetOndList(context.Context, *GetOndListRequest) (*GetOndListResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetOndList not implemented")
 }
-func (UnimplementedPndServer) GetOnd(context.Context, *GetOndRequest) (*GetOndResponse, error) {
+func (UnimplementedPndServiceServer) GetOnd(context.Context, *GetOndRequest) (*GetOndResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetOnd not implemented")
 }
-func (UnimplementedPndServer) SetOnd(context.Context, *SetOndRequest) (*SetResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetOnd not implemented")
+func (UnimplementedPndServiceServer) SetOndList(context.Context, *SetOndListRequest) (*SetOndListResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SetOndList not implemented")
 }
-func (UnimplementedPndServer) GetSbiList(context.Context, *GetSbiListRequest) (*GetSbiResponse, error) {
+func (UnimplementedPndServiceServer) GetSbiList(context.Context, *GetSbiListRequest) (*GetSbiListResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetSbiList not implemented")
 }
-func (UnimplementedPndServer) GetSbi(context.Context, *GetSbiRequest) (*GetSbiResponse, error) {
+func (UnimplementedPndServiceServer) GetSbi(context.Context, *GetSbiRequest) (*GetSbiResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetSbi not implemented")
 }
-func (UnimplementedPndServer) SetSbi(context.Context, *SetSbiRequest) (*SetResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetSbi not implemented")
+func (UnimplementedPndServiceServer) SetSbiList(context.Context, *SetSbiListRequest) (*SetSbiListResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SetSbiList not implemented")
 }
-func (UnimplementedPndServer) GetChangeList(context.Context, *GetChangeListRequest) (*GetChangeResponse, error) {
+func (UnimplementedPndServiceServer) GetChangeList(context.Context, *GetChangeListRequest) (*GetChangeListResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetChangeList not implemented")
 }
-func (UnimplementedPndServer) GetChange(context.Context, *GetChangeRequest) (*GetChangeResponse, error) {
+func (UnimplementedPndServiceServer) GetChange(context.Context, *GetChangeRequest) (*GetChangeResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetChange not implemented")
 }
-func (UnimplementedPndServer) SetChange(context.Context, *SetChangeRequest) (*SetResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetChange not implemented")
+func (UnimplementedPndServiceServer) SetChangeList(context.Context, *SetChangeListRequest) (*SetChangeListResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SetChangeList not implemented")
 }
-func (UnimplementedPndServer) GetPath(context.Context, *GetPathRequest) (*GetPathResponse, error) {
+func (UnimplementedPndServiceServer) GetPath(context.Context, *GetPathRequest) (*GetPathResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetPath not implemented")
 }
-func (UnimplementedPndServer) SetPath(context.Context, *SetPathRequest) (*SetResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetPath not implemented")
+func (UnimplementedPndServiceServer) SetPathList(context.Context, *SetPathListRequest) (*SetPathListResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SetPathList not implemented")
+}
+func (UnimplementedPndServiceServer) DeletePnd(context.Context, *DeletePndRequest) (*DeletePndResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeletePnd not implemented")
 }
-func (UnimplementedPndServer) Delete(context.Context, *DeleteRequest) (*DeleteResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
+func (UnimplementedPndServiceServer) DeleteOnd(context.Context, *DeleteOndRequest) (*DeleteOndResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method DeleteOnd not implemented")
 }
-func (UnimplementedPndServer) mustEmbedUnimplementedPndServer() {}
+func (UnimplementedPndServiceServer) mustEmbedUnimplementedPndServiceServer() {}
 
-// UnsafePndServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to PndServer will
+// UnsafePndServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to PndServiceServer will
 // result in compilation errors.
-type UnsafePndServer interface {
-	mustEmbedUnimplementedPndServer()
+type UnsafePndServiceServer interface {
+	mustEmbedUnimplementedPndServiceServer()
 }
 
-func RegisterPndServer(s grpc.ServiceRegistrar, srv PndServer) {
-	s.RegisterService(&Pnd_ServiceDesc, srv)
+func RegisterPndServiceServer(s grpc.ServiceRegistrar, srv PndServiceServer) {
+	s.RegisterService(&PndService_ServiceDesc, srv)
 }
 
-func _Pnd_GetOndList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _PndService_GetOndList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetOndListRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(PndServer).GetOndList(ctx, in)
+		return srv.(PndServiceServer).GetOndList(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.pnd.pnd/GetOndList",
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetOndList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServer).GetOndList(ctx, req.(*GetOndListRequest))
+		return srv.(PndServiceServer).GetOndList(ctx, req.(*GetOndListRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Pnd_GetOnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _PndService_GetOnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetOndRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(PndServer).GetOnd(ctx, in)
+		return srv.(PndServiceServer).GetOnd(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.pnd.pnd/GetOnd",
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetOnd",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServer).GetOnd(ctx, req.(*GetOndRequest))
+		return srv.(PndServiceServer).GetOnd(ctx, req.(*GetOndRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Pnd_SetOnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SetOndRequest)
+func _PndService_SetOndList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SetOndListRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(PndServer).SetOnd(ctx, in)
+		return srv.(PndServiceServer).SetOndList(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.pnd.pnd/SetOnd",
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/SetOndList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServer).SetOnd(ctx, req.(*SetOndRequest))
+		return srv.(PndServiceServer).SetOndList(ctx, req.(*SetOndListRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Pnd_GetSbiList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _PndService_GetSbiList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetSbiListRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(PndServer).GetSbiList(ctx, in)
+		return srv.(PndServiceServer).GetSbiList(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.pnd.pnd/GetSbiList",
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetSbiList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServer).GetSbiList(ctx, req.(*GetSbiListRequest))
+		return srv.(PndServiceServer).GetSbiList(ctx, req.(*GetSbiListRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Pnd_GetSbi_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _PndService_GetSbi_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetSbiRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(PndServer).GetSbi(ctx, in)
+		return srv.(PndServiceServer).GetSbi(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.pnd.pnd/GetSbi",
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetSbi",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServer).GetSbi(ctx, req.(*GetSbiRequest))
+		return srv.(PndServiceServer).GetSbi(ctx, req.(*GetSbiRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Pnd_SetSbi_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SetSbiRequest)
+func _PndService_SetSbiList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SetSbiListRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(PndServer).SetSbi(ctx, in)
+		return srv.(PndServiceServer).SetSbiList(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.pnd.pnd/SetSbi",
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/SetSbiList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServer).SetSbi(ctx, req.(*SetSbiRequest))
+		return srv.(PndServiceServer).SetSbiList(ctx, req.(*SetSbiListRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Pnd_GetChangeList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _PndService_GetChangeList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetChangeListRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(PndServer).GetChangeList(ctx, in)
+		return srv.(PndServiceServer).GetChangeList(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.pnd.pnd/GetChangeList",
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetChangeList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServer).GetChangeList(ctx, req.(*GetChangeListRequest))
+		return srv.(PndServiceServer).GetChangeList(ctx, req.(*GetChangeListRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Pnd_GetChange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _PndService_GetChange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetChangeRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(PndServer).GetChange(ctx, in)
+		return srv.(PndServiceServer).GetChange(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.pnd.pnd/GetChange",
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetChange",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServer).GetChange(ctx, req.(*GetChangeRequest))
+		return srv.(PndServiceServer).GetChange(ctx, req.(*GetChangeRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Pnd_SetChange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SetChangeRequest)
+func _PndService_SetChangeList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SetChangeListRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(PndServer).SetChange(ctx, in)
+		return srv.(PndServiceServer).SetChangeList(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.pnd.pnd/SetChange",
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/SetChangeList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServer).SetChange(ctx, req.(*SetChangeRequest))
+		return srv.(PndServiceServer).SetChangeList(ctx, req.(*SetChangeListRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Pnd_GetPath_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _PndService_GetPath_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GetPathRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(PndServer).GetPath(ctx, in)
+		return srv.(PndServiceServer).GetPath(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.pnd.pnd/GetPath",
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetPath",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServer).GetPath(ctx, req.(*GetPathRequest))
+		return srv.(PndServiceServer).GetPath(ctx, req.(*GetPathRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Pnd_SetPath_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SetPathRequest)
+func _PndService_SetPathList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SetPathListRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(PndServer).SetPath(ctx, in)
+		return srv.(PndServiceServer).SetPathList(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.pnd.pnd/SetPath",
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/SetPathList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServer).SetPath(ctx, req.(*SetPathRequest))
+		return srv.(PndServiceServer).SetPathList(ctx, req.(*SetPathListRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Pnd_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(DeleteRequest)
+func _PndService_DeletePnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeletePndRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(PndServer).Delete(ctx, in)
+		return srv.(PndServiceServer).DeletePnd(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gosdn.pnd.pnd/Delete",
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/DeletePnd",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServer).Delete(ctx, req.(*DeleteRequest))
+		return srv.(PndServiceServer).DeletePnd(ctx, req.(*DeletePndRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-// Pnd_ServiceDesc is the grpc.ServiceDesc for Pnd service.
+func _PndService_DeleteOnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeleteOndRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(PndServiceServer).DeleteOnd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/gosdn.pnd.v1alpha.PndService/DeleteOnd",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(PndServiceServer).DeleteOnd(ctx, req.(*DeleteOndRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// PndService_ServiceDesc is the grpc.ServiceDesc for PndService service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
-var Pnd_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "gosdn.pnd.pnd",
-	HandlerType: (*PndServer)(nil),
+var PndService_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "gosdn.pnd.v1alpha.PndService",
+	HandlerType: (*PndServiceServer)(nil),
 	Methods: []grpc.MethodDesc{
 		{
 			MethodName: "GetOndList",
-			Handler:    _Pnd_GetOndList_Handler,
+			Handler:    _PndService_GetOndList_Handler,
 		},
 		{
 			MethodName: "GetOnd",
-			Handler:    _Pnd_GetOnd_Handler,
+			Handler:    _PndService_GetOnd_Handler,
 		},
 		{
-			MethodName: "SetOnd",
-			Handler:    _Pnd_SetOnd_Handler,
+			MethodName: "SetOndList",
+			Handler:    _PndService_SetOndList_Handler,
 		},
 		{
 			MethodName: "GetSbiList",
-			Handler:    _Pnd_GetSbiList_Handler,
+			Handler:    _PndService_GetSbiList_Handler,
 		},
 		{
 			MethodName: "GetSbi",
-			Handler:    _Pnd_GetSbi_Handler,
+			Handler:    _PndService_GetSbi_Handler,
 		},
 		{
-			MethodName: "SetSbi",
-			Handler:    _Pnd_SetSbi_Handler,
+			MethodName: "SetSbiList",
+			Handler:    _PndService_SetSbiList_Handler,
 		},
 		{
 			MethodName: "GetChangeList",
-			Handler:    _Pnd_GetChangeList_Handler,
+			Handler:    _PndService_GetChangeList_Handler,
 		},
 		{
 			MethodName: "GetChange",
-			Handler:    _Pnd_GetChange_Handler,
+			Handler:    _PndService_GetChange_Handler,
 		},
 		{
-			MethodName: "SetChange",
-			Handler:    _Pnd_SetChange_Handler,
+			MethodName: "SetChangeList",
+			Handler:    _PndService_SetChangeList_Handler,
 		},
 		{
 			MethodName: "GetPath",
-			Handler:    _Pnd_GetPath_Handler,
+			Handler:    _PndService_GetPath_Handler,
+		},
+		{
+			MethodName: "SetPathList",
+			Handler:    _PndService_SetPathList_Handler,
 		},
 		{
-			MethodName: "SetPath",
-			Handler:    _Pnd_SetPath_Handler,
+			MethodName: "DeletePnd",
+			Handler:    _PndService_DeletePnd_Handler,
 		},
 		{
-			MethodName: "Delete",
-			Handler:    _Pnd_Delete_Handler,
+			MethodName: "DeleteOnd",
+			Handler:    _PndService_DeleteOnd_Handler,
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
diff --git a/go/gosdn/pnd/v1alpha/pnd.pb.go b/go/gosdn/pnd/v1alpha/pnd.pb.go
deleted file mode 100644
index 046fde7..0000000
--- a/go/gosdn/pnd/v1alpha/pnd.pb.go
+++ /dev/null
@@ -1,3409 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.27.1
-// 	protoc        (unknown)
-// source: gosdn/pnd/v1alpha/pnd.proto
-
-package pnd
-
-import (
-	southbound "code.fbi.h-da.de/danet/api/go/gosdn/southbound"
-	transport "code.fbi.h-da.de/danet/api/go/gosdn/transport"
-	_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"
-	gnmi "github.com/openconfig/gnmi/proto/gnmi"
-	_ "google.golang.org/genproto/googleapis/api/annotations"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	_ "google.golang.org/protobuf/types/descriptorpb"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type Status int32
-
-const (
-	Status_STATUS_UNSPECIFIED Status = 0
-	Status_STATUS_OK          Status = 1
-	Status_STATUS_ERROR       Status = 2
-)
-
-// Enum value maps for Status.
-var (
-	Status_name = map[int32]string{
-		0: "STATUS_UNSPECIFIED",
-		1: "STATUS_OK",
-		2: "STATUS_ERROR",
-	}
-	Status_value = map[string]int32{
-		"STATUS_UNSPECIFIED": 0,
-		"STATUS_OK":          1,
-		"STATUS_ERROR":       2,
-	}
-)
-
-func (x Status) Enum() *Status {
-	p := new(Status)
-	*p = x
-	return p
-}
-
-func (x Status) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Status) Descriptor() protoreflect.EnumDescriptor {
-	return file_gosdn_pnd_v1alpha_pnd_proto_enumTypes[0].Descriptor()
-}
-
-func (Status) Type() protoreflect.EnumType {
-	return &file_gosdn_pnd_v1alpha_pnd_proto_enumTypes[0]
-}
-
-func (x Status) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Status.Descriptor instead.
-func (Status) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{0}
-}
-
-type Change_State int32
-
-const (
-	Change_STATE_UNSPECIFIED  Change_State = 0
-	Change_STATE_PENDING      Change_State = 1
-	Change_STATE_COMMITTED    Change_State = 2
-	Change_STATE_CONFIRMED    Change_State = 3
-	Change_STATE_INCONSISTENT Change_State = 4
-)
-
-// Enum value maps for Change_State.
-var (
-	Change_State_name = map[int32]string{
-		0: "STATE_UNSPECIFIED",
-		1: "STATE_PENDING",
-		2: "STATE_COMMITTED",
-		3: "STATE_CONFIRMED",
-		4: "STATE_INCONSISTENT",
-	}
-	Change_State_value = map[string]int32{
-		"STATE_UNSPECIFIED":  0,
-		"STATE_PENDING":      1,
-		"STATE_COMMITTED":    2,
-		"STATE_CONFIRMED":    3,
-		"STATE_INCONSISTENT": 4,
-	}
-)
-
-func (x Change_State) Enum() *Change_State {
-	p := new(Change_State)
-	*p = x
-	return p
-}
-
-func (x Change_State) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Change_State) Descriptor() protoreflect.EnumDescriptor {
-	return file_gosdn_pnd_v1alpha_pnd_proto_enumTypes[1].Descriptor()
-}
-
-func (Change_State) Type() protoreflect.EnumType {
-	return &file_gosdn_pnd_v1alpha_pnd_proto_enumTypes[1]
-}
-
-func (x Change_State) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Change_State.Descriptor instead.
-func (Change_State) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{16, 0}
-}
-
-type SetChange_Operation int32
-
-const (
-	SetChange_OPERATION_UNSPECIFIED SetChange_Operation = 0
-	SetChange_OPERATION_CREATE      SetChange_Operation = 1
-	SetChange_OPERATION_COMMIT      SetChange_Operation = 2
-	SetChange_OPERATION_CONFIRM     SetChange_Operation = 3
-)
-
-// Enum value maps for SetChange_Operation.
-var (
-	SetChange_Operation_name = map[int32]string{
-		0: "OPERATION_UNSPECIFIED",
-		1: "OPERATION_CREATE",
-		2: "OPERATION_COMMIT",
-		3: "OPERATION_CONFIRM",
-	}
-	SetChange_Operation_value = map[string]int32{
-		"OPERATION_UNSPECIFIED": 0,
-		"OPERATION_CREATE":      1,
-		"OPERATION_COMMIT":      2,
-		"OPERATION_CONFIRM":     3,
-	}
-)
-
-func (x SetChange_Operation) Enum() *SetChange_Operation {
-	p := new(SetChange_Operation)
-	*p = x
-	return p
-}
-
-func (x SetChange_Operation) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (SetChange_Operation) Descriptor() protoreflect.EnumDescriptor {
-	return file_gosdn_pnd_v1alpha_pnd_proto_enumTypes[2].Descriptor()
-}
-
-func (SetChange_Operation) Type() protoreflect.EnumType {
-	return &file_gosdn_pnd_v1alpha_pnd_proto_enumTypes[2]
-}
-
-func (x SetChange_Operation) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use SetChange_Operation.Descriptor instead.
-func (SetChange_Operation) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{23, 0}
-}
-
-type ChangeRequest_ApiOperation int32
-
-const (
-	ChangeRequest_API_OPERATION_UNSPECIFIED ChangeRequest_ApiOperation = 0
-	ChangeRequest_API_OPERATION_UPDATE      ChangeRequest_ApiOperation = 1
-	ChangeRequest_API_OPERATION_REPLACE     ChangeRequest_ApiOperation = 2
-	ChangeRequest_API_OPERATION_DELETE      ChangeRequest_ApiOperation = 3
-)
-
-// Enum value maps for ChangeRequest_ApiOperation.
-var (
-	ChangeRequest_ApiOperation_name = map[int32]string{
-		0: "API_OPERATION_UNSPECIFIED",
-		1: "API_OPERATION_UPDATE",
-		2: "API_OPERATION_REPLACE",
-		3: "API_OPERATION_DELETE",
-	}
-	ChangeRequest_ApiOperation_value = map[string]int32{
-		"API_OPERATION_UNSPECIFIED": 0,
-		"API_OPERATION_UPDATE":      1,
-		"API_OPERATION_REPLACE":     2,
-		"API_OPERATION_DELETE":      3,
-	}
-)
-
-func (x ChangeRequest_ApiOperation) Enum() *ChangeRequest_ApiOperation {
-	p := new(ChangeRequest_ApiOperation)
-	*p = x
-	return p
-}
-
-func (x ChangeRequest_ApiOperation) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (ChangeRequest_ApiOperation) Descriptor() protoreflect.EnumDescriptor {
-	return file_gosdn_pnd_v1alpha_pnd_proto_enumTypes[3].Descriptor()
-}
-
-func (ChangeRequest_ApiOperation) Type() protoreflect.EnumType {
-	return &file_gosdn_pnd_v1alpha_pnd_proto_enumTypes[3]
-}
-
-func (x ChangeRequest_ApiOperation) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use ChangeRequest_ApiOperation.Descriptor instead.
-func (ChangeRequest_ApiOperation) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{24, 0}
-}
-
-type GetOndListRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *GetOndListRequest) Reset() {
-	*x = GetOndListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetOndListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetOndListRequest) ProtoMessage() {}
-
-func (x *GetOndListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetOndListRequest.ProtoReflect.Descriptor instead.
-func (*GetOndListRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *GetOndListRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetOndListRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type GetOndRequest 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.
-	Did       string `protobuf:"bytes,3,opt,name=did,proto3" json:"did,omitempty"`
-	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *GetOndRequest) Reset() {
-	*x = GetOndRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetOndRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetOndRequest) ProtoMessage() {}
-
-func (x *GetOndRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetOndRequest.ProtoReflect.Descriptor instead.
-func (*GetOndRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *GetOndRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetOndRequest) GetDid() string {
-	if x != nil {
-		return x.Did
-	}
-	return ""
-}
-
-func (x *GetOndRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type GetSbiListRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *GetSbiListRequest) Reset() {
-	*x = GetSbiListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetSbiListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetSbiListRequest) ProtoMessage() {}
-
-func (x *GetSbiListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetSbiListRequest.ProtoReflect.Descriptor instead.
-func (*GetSbiListRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *GetSbiListRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetSbiListRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type GetSbiRequest 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.
-	Sid       string `protobuf:"bytes,3,opt,name=sid,proto3" json:"sid,omitempty"`
-	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *GetSbiRequest) Reset() {
-	*x = GetSbiRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetSbiRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetSbiRequest) ProtoMessage() {}
-
-func (x *GetSbiRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetSbiRequest.ProtoReflect.Descriptor instead.
-func (*GetSbiRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *GetSbiRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetSbiRequest) GetSid() string {
-	if x != nil {
-		return x.Sid
-	}
-	return ""
-}
-
-func (x *GetSbiRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type GetChangeListRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *GetChangeListRequest) Reset() {
-	*x = GetChangeListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetChangeListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetChangeListRequest) ProtoMessage() {}
-
-func (x *GetChangeListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetChangeListRequest.ProtoReflect.Descriptor instead.
-func (*GetChangeListRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *GetChangeListRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetChangeListRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type GetChangeRequest 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.
-	Cuid      string `protobuf:"bytes,3,opt,name=cuid,proto3" json:"cuid,omitempty"`
-	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *GetChangeRequest) Reset() {
-	*x = GetChangeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetChangeRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetChangeRequest) ProtoMessage() {}
-
-func (x *GetChangeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetChangeRequest.ProtoReflect.Descriptor instead.
-func (*GetChangeRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *GetChangeRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetChangeRequest) GetCuid() string {
-	if x != nil {
-		return x.Cuid
-	}
-	return ""
-}
-
-func (x *GetChangeRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type GetPathRequest 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.
-	Did       string `protobuf:"bytes,2,opt,name=did,proto3" json:"did,omitempty"`
-	Path      string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
-	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *GetPathRequest) Reset() {
-	*x = GetPathRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetPathRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetPathRequest) ProtoMessage() {}
-
-func (x *GetPathRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetPathRequest.ProtoReflect.Descriptor instead.
-func (*GetPathRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *GetPathRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetPathRequest) GetDid() string {
-	if x != nil {
-		return x.Did
-	}
-	return ""
-}
-
-func (x *GetPathRequest) GetPath() string {
-	if x != nil {
-		return x.Path
-	}
-	return ""
-}
-
-func (x *GetPathRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type GetOndResponse 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.
-	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
-	// is also sufficient.
-	Pnd *PrincipalNetworkDomain       `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-	Ond *OrchestratedNetworkingDevice `protobuf:"bytes,3,opt,name=ond,proto3" json:"ond,omitempty"`
-}
-
-func (x *GetOndResponse) Reset() {
-	*x = GetOndResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetOndResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetOndResponse) ProtoMessage() {}
-
-func (x *GetOndResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetOndResponse.ProtoReflect.Descriptor instead.
-func (*GetOndResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{7}
-}
-
-func (x *GetOndResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetOndResponse) GetPnd() *PrincipalNetworkDomain {
-	if x != nil {
-		return x.Pnd
-	}
-	return nil
-}
-
-func (x *GetOndResponse) GetOnd() *OrchestratedNetworkingDevice {
-	if x != nil {
-		return x.Ond
-	}
-	return nil
-}
-
-type GetOndListResponse 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.
-	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
-	// is also sufficient.
-	Pnd *PrincipalNetworkDomain         `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-	Ond []*OrchestratedNetworkingDevice `protobuf:"bytes,3,rep,name=ond,proto3" json:"ond,omitempty"`
-}
-
-func (x *GetOndListResponse) Reset() {
-	*x = GetOndListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetOndListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetOndListResponse) ProtoMessage() {}
-
-func (x *GetOndListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetOndListResponse.ProtoReflect.Descriptor instead.
-func (*GetOndListResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{8}
-}
-
-func (x *GetOndListResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetOndListResponse) GetPnd() *PrincipalNetworkDomain {
-	if x != nil {
-		return x.Pnd
-	}
-	return nil
-}
-
-func (x *GetOndListResponse) GetOnd() []*OrchestratedNetworkingDevice {
-	if x != nil {
-		return x.Ond
-	}
-	return nil
-}
-
-type GetSbiResponse 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.
-	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
-	// is also sufficient.
-	Pnd *PrincipalNetworkDomain         `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-	Sbi *southbound.SouthboundInterface `protobuf:"bytes,3,opt,name=sbi,proto3" json:"sbi,omitempty"`
-}
-
-func (x *GetSbiResponse) Reset() {
-	*x = GetSbiResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetSbiResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetSbiResponse) ProtoMessage() {}
-
-func (x *GetSbiResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetSbiResponse.ProtoReflect.Descriptor instead.
-func (*GetSbiResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{9}
-}
-
-func (x *GetSbiResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetSbiResponse) GetPnd() *PrincipalNetworkDomain {
-	if x != nil {
-		return x.Pnd
-	}
-	return nil
-}
-
-func (x *GetSbiResponse) GetSbi() *southbound.SouthboundInterface {
-	if x != nil {
-		return x.Sbi
-	}
-	return nil
-}
-
-type GetSbiListResponse 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.
-	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
-	// is also sufficient.
-	Pnd *PrincipalNetworkDomain           `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-	Sbi []*southbound.SouthboundInterface `protobuf:"bytes,3,rep,name=sbi,proto3" json:"sbi,omitempty"`
-}
-
-func (x *GetSbiListResponse) Reset() {
-	*x = GetSbiListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetSbiListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetSbiListResponse) ProtoMessage() {}
-
-func (x *GetSbiListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetSbiListResponse.ProtoReflect.Descriptor instead.
-func (*GetSbiListResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{10}
-}
-
-func (x *GetSbiListResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetSbiListResponse) GetPnd() *PrincipalNetworkDomain {
-	if x != nil {
-		return x.Pnd
-	}
-	return nil
-}
-
-func (x *GetSbiListResponse) GetSbi() []*southbound.SouthboundInterface {
-	if x != nil {
-		return x.Sbi
-	}
-	return nil
-}
-
-type GetPathResponse 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.
-	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
-	// is also sufficient.
-	Pnd    *PrincipalNetworkDomain `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-	Device []*gnmi.Notification    `protobuf:"bytes,3,rep,name=device,proto3" json:"device,omitempty"`
-}
-
-func (x *GetPathResponse) Reset() {
-	*x = GetPathResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetPathResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetPathResponse) ProtoMessage() {}
-
-func (x *GetPathResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetPathResponse.ProtoReflect.Descriptor instead.
-func (*GetPathResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{11}
-}
-
-func (x *GetPathResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetPathResponse) GetPnd() *PrincipalNetworkDomain {
-	if x != nil {
-		return x.Pnd
-	}
-	return nil
-}
-
-func (x *GetPathResponse) GetDevice() []*gnmi.Notification {
-	if x != nil {
-		return x.Device
-	}
-	return nil
-}
-
-type GetChangeResponse 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.
-	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
-	// is also sufficient.
-	Pnd    *PrincipalNetworkDomain `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-	Change *Change                 `protobuf:"bytes,3,opt,name=change,proto3" json:"change,omitempty"`
-}
-
-func (x *GetChangeResponse) Reset() {
-	*x = GetChangeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetChangeResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetChangeResponse) ProtoMessage() {}
-
-func (x *GetChangeResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetChangeResponse.ProtoReflect.Descriptor instead.
-func (*GetChangeResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{12}
-}
-
-func (x *GetChangeResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetChangeResponse) GetPnd() *PrincipalNetworkDomain {
-	if x != nil {
-		return x.Pnd
-	}
-	return nil
-}
-
-func (x *GetChangeResponse) GetChange() *Change {
-	if x != nil {
-		return x.Change
-	}
-	return nil
-}
-
-type GetChangeListResponse 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.
-	// TODO: Check if this is really needed. Perhaps a reference to the PND's ID
-	// is also sufficient.
-	Pnd    *PrincipalNetworkDomain `protobuf:"bytes,2,opt,name=pnd,proto3" json:"pnd,omitempty"`
-	Change []*Change               `protobuf:"bytes,3,rep,name=change,proto3" json:"change,omitempty"`
-}
-
-func (x *GetChangeListResponse) Reset() {
-	*x = GetChangeListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetChangeListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetChangeListResponse) ProtoMessage() {}
-
-func (x *GetChangeListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetChangeListResponse.ProtoReflect.Descriptor instead.
-func (*GetChangeListResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{13}
-}
-
-func (x *GetChangeListResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *GetChangeListResponse) GetPnd() *PrincipalNetworkDomain {
-	if x != nil {
-		return x.Pnd
-	}
-	return nil
-}
-
-func (x *GetChangeListResponse) GetChange() []*Change {
-	if x != nil {
-		return x.Change
-	}
-	return nil
-}
-
-type PrincipalNetworkDomain struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id          string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Name        string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
-}
-
-func (x *PrincipalNetworkDomain) Reset() {
-	*x = PrincipalNetworkDomain{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *PrincipalNetworkDomain) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PrincipalNetworkDomain) ProtoMessage() {}
-
-func (x *PrincipalNetworkDomain) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use PrincipalNetworkDomain.ProtoReflect.Descriptor instead.
-func (*PrincipalNetworkDomain) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{14}
-}
-
-func (x *PrincipalNetworkDomain) GetId() string {
-	if x != nil {
-		return x.Id
-	}
-	return ""
-}
-
-func (x *PrincipalNetworkDomain) GetName() string {
-	if x != nil {
-		return x.Name
-	}
-	return ""
-}
-
-func (x *PrincipalNetworkDomain) GetDescription() string {
-	if x != nil {
-		return x.Description
-	}
-	return ""
-}
-
-type OrchestratedNetworkingDevice struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id     string                          `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Name   string                          `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	Device []*gnmi.Notification            `protobuf:"bytes,3,rep,name=device,proto3" json:"device,omitempty"`
-	Sbi    *southbound.SouthboundInterface `protobuf:"bytes,4,opt,name=sbi,proto3" json:"sbi,omitempty"`
-}
-
-func (x *OrchestratedNetworkingDevice) Reset() {
-	*x = OrchestratedNetworkingDevice{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *OrchestratedNetworkingDevice) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*OrchestratedNetworkingDevice) ProtoMessage() {}
-
-func (x *OrchestratedNetworkingDevice) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use OrchestratedNetworkingDevice.ProtoReflect.Descriptor instead.
-func (*OrchestratedNetworkingDevice) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{15}
-}
-
-func (x *OrchestratedNetworkingDevice) GetId() string {
-	if x != nil {
-		return x.Id
-	}
-	return ""
-}
-
-func (x *OrchestratedNetworkingDevice) GetName() string {
-	if x != nil {
-		return x.Name
-	}
-	return ""
-}
-
-func (x *OrchestratedNetworkingDevice) GetDevice() []*gnmi.Notification {
-	if x != nil {
-		return x.Device
-	}
-	return nil
-}
-
-func (x *OrchestratedNetworkingDevice) GetSbi() *southbound.SouthboundInterface {
-	if x != nil {
-		return x.Sbi
-	}
-	return nil
-}
-
-type Change struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id    string       `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Age   int64        `protobuf:"varint,2,opt,name=age,proto3" json:"age,omitempty"`
-	State Change_State `protobuf:"varint,3,opt,name=state,proto3,enum=gosdn.pnd.v1alpha.Change_State" json:"state,omitempty"`
-}
-
-func (x *Change) Reset() {
-	*x = Change{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Change) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Change) ProtoMessage() {}
-
-func (x *Change) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Change.ProtoReflect.Descriptor instead.
-func (*Change) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{16}
-}
-
-func (x *Change) GetId() string {
-	if x != nil {
-		return x.Id
-	}
-	return ""
-}
-
-func (x *Change) GetAge() int64 {
-	if x != nil {
-		return x.Age
-	}
-	return 0
-}
-
-func (x *Change) GetState() Change_State {
-	if x != nil {
-		return x.State
-	}
-	return Change_STATE_UNSPECIFIED
-}
-
-type SetOndListRequest 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.
-	Ond       []*SetOnd `protobuf:"bytes,2,rep,name=ond,proto3" json:"ond,omitempty"`
-	Pid       string    `protobuf:"bytes,3,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *SetOndListRequest) Reset() {
-	*x = SetOndListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetOndListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetOndListRequest) ProtoMessage() {}
-
-func (x *SetOndListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetOndListRequest.ProtoReflect.Descriptor instead.
-func (*SetOndListRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{17}
-}
-
-func (x *SetOndListRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *SetOndListRequest) GetOnd() []*SetOnd {
-	if x != nil {
-		return x.Ond
-	}
-	return nil
-}
-
-func (x *SetOndListRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type SetSbiListRequest 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.
-	Sbi       []*SetSbi `protobuf:"bytes,2,rep,name=sbi,proto3" json:"sbi,omitempty"`
-	Pid       string    `protobuf:"bytes,3,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *SetSbiListRequest) Reset() {
-	*x = SetSbiListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[18]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetSbiListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetSbiListRequest) ProtoMessage() {}
-
-func (x *SetSbiListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[18]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetSbiListRequest.ProtoReflect.Descriptor instead.
-func (*SetSbiListRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{18}
-}
-
-func (x *SetSbiListRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *SetSbiListRequest) GetSbi() []*SetSbi {
-	if x != nil {
-		return x.Sbi
-	}
-	return nil
-}
-
-func (x *SetSbiListRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type SetChangeListRequest 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.
-	Change    []*SetChange `protobuf:"bytes,2,rep,name=change,proto3" json:"change,omitempty"`
-	Pid       string       `protobuf:"bytes,3,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *SetChangeListRequest) Reset() {
-	*x = SetChangeListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[19]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetChangeListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetChangeListRequest) ProtoMessage() {}
-
-func (x *SetChangeListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[19]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetChangeListRequest.ProtoReflect.Descriptor instead.
-func (*SetChangeListRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{19}
-}
-
-func (x *SetChangeListRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *SetChangeListRequest) GetChange() []*SetChange {
-	if x != nil {
-		return x.Change
-	}
-	return nil
-}
-
-func (x *SetChangeListRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type SetPathListRequest 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.
-	ChangeRequest []*ChangeRequest `protobuf:"bytes,2,rep,name=change_request,json=changeRequest,proto3" json:"change_request,omitempty"`
-	Did           string           `protobuf:"bytes,3,opt,name=did,proto3" json:"did,omitempty"`
-	Pid           string           `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *SetPathListRequest) Reset() {
-	*x = SetPathListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[20]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetPathListRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetPathListRequest) ProtoMessage() {}
-
-func (x *SetPathListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[20]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetPathListRequest.ProtoReflect.Descriptor instead.
-func (*SetPathListRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{20}
-}
-
-func (x *SetPathListRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *SetPathListRequest) GetChangeRequest() []*ChangeRequest {
-	if x != nil {
-		return x.ChangeRequest
-	}
-	return nil
-}
-
-func (x *SetPathListRequest) GetDid() string {
-	if x != nil {
-		return x.Did
-	}
-	return ""
-}
-
-func (x *SetPathListRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type SetOnd struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Address         string                          `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
-	Sbi             *southbound.SouthboundInterface `protobuf:"bytes,2,opt,name=sbi,proto3" json:"sbi,omitempty"`
-	DeviceName      string                          `protobuf:"bytes,3,opt,name=device_name,json=deviceName,proto3" json:"device_name,omitempty"`
-	TransportOption *transport.TransportOption      `protobuf:"bytes,4,opt,name=transport_option,json=transportOption,proto3" json:"transport_option,omitempty"`
-}
-
-func (x *SetOnd) Reset() {
-	*x = SetOnd{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[21]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetOnd) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetOnd) ProtoMessage() {}
-
-func (x *SetOnd) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[21]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetOnd.ProtoReflect.Descriptor instead.
-func (*SetOnd) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{21}
-}
-
-func (x *SetOnd) GetAddress() string {
-	if x != nil {
-		return x.Address
-	}
-	return ""
-}
-
-func (x *SetOnd) GetSbi() *southbound.SouthboundInterface {
-	if x != nil {
-		return x.Sbi
-	}
-	return nil
-}
-
-func (x *SetOnd) GetDeviceName() string {
-	if x != nil {
-		return x.DeviceName
-	}
-	return ""
-}
-
-func (x *SetOnd) GetTransportOption() *transport.TransportOption {
-	if x != nil {
-		return x.TransportOption
-	}
-	return nil
-}
-
-type SetSbi struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *SetSbi) Reset() {
-	*x = SetSbi{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[22]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetSbi) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetSbi) ProtoMessage() {}
-
-func (x *SetSbi) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[22]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetSbi.ProtoReflect.Descriptor instead.
-func (*SetSbi) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{22}
-}
-
-type SetChange struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Cuid string              `protobuf:"bytes,1,opt,name=cuid,proto3" json:"cuid,omitempty"`
-	Op   SetChange_Operation `protobuf:"varint,2,opt,name=op,proto3,enum=gosdn.pnd.v1alpha.SetChange_Operation" json:"op,omitempty"`
-}
-
-func (x *SetChange) Reset() {
-	*x = SetChange{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[23]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetChange) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetChange) ProtoMessage() {}
-
-func (x *SetChange) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[23]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetChange.ProtoReflect.Descriptor instead.
-func (*SetChange) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{23}
-}
-
-func (x *SetChange) GetCuid() string {
-	if x != nil {
-		return x.Cuid
-	}
-	return ""
-}
-
-func (x *SetChange) GetOp() SetChange_Operation {
-	if x != nil {
-		return x.Op
-	}
-	return SetChange_OPERATION_UNSPECIFIED
-}
-
-//TODO: rename
-type ChangeRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Path  string                     `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
-	Value string                     `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-	ApiOp ChangeRequest_ApiOperation `protobuf:"varint,3,opt,name=api_op,json=apiOp,proto3,enum=gosdn.pnd.v1alpha.ChangeRequest_ApiOperation" json:"api_op,omitempty"`
-}
-
-func (x *ChangeRequest) Reset() {
-	*x = ChangeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[24]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ChangeRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ChangeRequest) ProtoMessage() {}
-
-func (x *ChangeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[24]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use ChangeRequest.ProtoReflect.Descriptor instead.
-func (*ChangeRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{24}
-}
-
-func (x *ChangeRequest) GetPath() string {
-	if x != nil {
-		return x.Path
-	}
-	return ""
-}
-
-func (x *ChangeRequest) GetValue() string {
-	if x != nil {
-		return x.Value
-	}
-	return ""
-}
-
-func (x *ChangeRequest) GetApiOp() ChangeRequest_ApiOperation {
-	if x != nil {
-		return x.ApiOp
-	}
-	return ChangeRequest_API_OPERATION_UNSPECIFIED
-}
-
-type SetResponse 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.
-	Status    Status `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
-}
-
-func (x *SetResponse) Reset() {
-	*x = SetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[25]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetResponse) ProtoMessage() {}
-
-func (x *SetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[25]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetResponse.ProtoReflect.Descriptor instead.
-func (*SetResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{25}
-}
-
-func (x *SetResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *SetResponse) GetStatus() Status {
-	if x != nil {
-		return x.Status
-	}
-	return Status_STATUS_UNSPECIFIED
-}
-
-type SetOndListResponse 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.
-	Status    Status         `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
-	Responses []*SetResponse `protobuf:"bytes,3,rep,name=responses,proto3" json:"responses,omitempty"`
-}
-
-func (x *SetOndListResponse) Reset() {
-	*x = SetOndListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[26]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetOndListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetOndListResponse) ProtoMessage() {}
-
-func (x *SetOndListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[26]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetOndListResponse.ProtoReflect.Descriptor instead.
-func (*SetOndListResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{26}
-}
-
-func (x *SetOndListResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *SetOndListResponse) GetStatus() Status {
-	if x != nil {
-		return x.Status
-	}
-	return Status_STATUS_UNSPECIFIED
-}
-
-func (x *SetOndListResponse) GetResponses() []*SetResponse {
-	if x != nil {
-		return x.Responses
-	}
-	return nil
-}
-
-type SetChangeListResponse 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.
-	Status    Status         `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
-	Responses []*SetResponse `protobuf:"bytes,3,rep,name=responses,proto3" json:"responses,omitempty"`
-}
-
-func (x *SetChangeListResponse) Reset() {
-	*x = SetChangeListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[27]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetChangeListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetChangeListResponse) ProtoMessage() {}
-
-func (x *SetChangeListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[27]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetChangeListResponse.ProtoReflect.Descriptor instead.
-func (*SetChangeListResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{27}
-}
-
-func (x *SetChangeListResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *SetChangeListResponse) GetStatus() Status {
-	if x != nil {
-		return x.Status
-	}
-	return Status_STATUS_UNSPECIFIED
-}
-
-func (x *SetChangeListResponse) GetResponses() []*SetResponse {
-	if x != nil {
-		return x.Responses
-	}
-	return nil
-}
-
-type SetChangeResponse 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.
-	Status    Status `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
-}
-
-func (x *SetChangeResponse) Reset() {
-	*x = SetChangeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[28]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetChangeResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetChangeResponse) ProtoMessage() {}
-
-func (x *SetChangeResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[28]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetChangeResponse.ProtoReflect.Descriptor instead.
-func (*SetChangeResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{28}
-}
-
-func (x *SetChangeResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *SetChangeResponse) GetStatus() Status {
-	if x != nil {
-		return x.Status
-	}
-	return Status_STATUS_UNSPECIFIED
-}
-
-type SetSbiListResponse 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.
-	Status    Status         `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
-	Responses []*SetResponse `protobuf:"bytes,3,rep,name=responses,proto3" json:"responses,omitempty"`
-}
-
-func (x *SetSbiListResponse) Reset() {
-	*x = SetSbiListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[29]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetSbiListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetSbiListResponse) ProtoMessage() {}
-
-func (x *SetSbiListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[29]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetSbiListResponse.ProtoReflect.Descriptor instead.
-func (*SetSbiListResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{29}
-}
-
-func (x *SetSbiListResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *SetSbiListResponse) GetStatus() Status {
-	if x != nil {
-		return x.Status
-	}
-	return Status_STATUS_UNSPECIFIED
-}
-
-func (x *SetSbiListResponse) GetResponses() []*SetResponse {
-	if x != nil {
-		return x.Responses
-	}
-	return nil
-}
-
-type SetPathListResponse 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.
-	Status    Status         `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
-	Responses []*SetResponse `protobuf:"bytes,3,rep,name=responses,proto3" json:"responses,omitempty"`
-}
-
-func (x *SetPathListResponse) Reset() {
-	*x = SetPathListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[30]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetPathListResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetPathListResponse) ProtoMessage() {}
-
-func (x *SetPathListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[30]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetPathListResponse.ProtoReflect.Descriptor instead.
-func (*SetPathListResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{30}
-}
-
-func (x *SetPathListResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *SetPathListResponse) GetStatus() Status {
-	if x != nil {
-		return x.Status
-	}
-	return Status_STATUS_UNSPECIFIED
-}
-
-func (x *SetPathListResponse) GetResponses() []*SetResponse {
-	if x != nil {
-		return x.Responses
-	}
-	return nil
-}
-
-type DeletePndRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
-}
-
-func (x *DeletePndRequest) Reset() {
-	*x = DeletePndRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[31]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *DeletePndRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeletePndRequest) ProtoMessage() {}
-
-func (x *DeletePndRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[31]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use DeletePndRequest.ProtoReflect.Descriptor instead.
-func (*DeletePndRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{31}
-}
-
-func (x *DeletePndRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *DeletePndRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-type DeleteOndRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Timestamp int64  `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Timestamp in nanoseconds since Epoch.
-	Pid       string `protobuf:"bytes,4,opt,name=pid,proto3" json:"pid,omitempty"`
-	Did       string `protobuf:"bytes,5,opt,name=did,proto3" json:"did,omitempty"`
-}
-
-func (x *DeleteOndRequest) Reset() {
-	*x = DeleteOndRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[32]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *DeleteOndRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeleteOndRequest) ProtoMessage() {}
-
-func (x *DeleteOndRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[32]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use DeleteOndRequest.ProtoReflect.Descriptor instead.
-func (*DeleteOndRequest) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{32}
-}
-
-func (x *DeleteOndRequest) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *DeleteOndRequest) GetPid() string {
-	if x != nil {
-		return x.Pid
-	}
-	return ""
-}
-
-func (x *DeleteOndRequest) GetDid() string {
-	if x != nil {
-		return x.Did
-	}
-	return ""
-}
-
-type DeletePndResponse 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.
-	Status    Status `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
-}
-
-func (x *DeletePndResponse) Reset() {
-	*x = DeletePndResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[33]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *DeletePndResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeletePndResponse) ProtoMessage() {}
-
-func (x *DeletePndResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[33]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use DeletePndResponse.ProtoReflect.Descriptor instead.
-func (*DeletePndResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{33}
-}
-
-func (x *DeletePndResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *DeletePndResponse) GetStatus() Status {
-	if x != nil {
-		return x.Status
-	}
-	return Status_STATUS_UNSPECIFIED
-}
-
-type DeleteOndResponse 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.
-	Status    Status `protobuf:"varint,2,opt,name=status,proto3,enum=gosdn.pnd.v1alpha.Status" json:"status,omitempty"`
-}
-
-func (x *DeleteOndResponse) Reset() {
-	*x = DeleteOndResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[34]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *DeleteOndResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeleteOndResponse) ProtoMessage() {}
-
-func (x *DeleteOndResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[34]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use DeleteOndResponse.ProtoReflect.Descriptor instead.
-func (*DeleteOndResponse) Descriptor() ([]byte, []int) {
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP(), []int{34}
-}
-
-func (x *DeleteOndResponse) GetTimestamp() int64 {
-	if x != nil {
-		return x.Timestamp
-	}
-	return 0
-}
-
-func (x *DeleteOndResponse) GetStatus() Status {
-	if x != nil {
-		return x.Status
-	}
-	return Status_STATUS_UNSPECIFIED
-}
-
-var File_gosdn_pnd_v1alpha_pnd_proto protoreflect.FileDescriptor
-
-var file_gosdn_pnd_v1alpha_pnd_proto_rawDesc = []byte{
-	0x0a, 0x1b, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x70, 0x6e, 0x64, 0x2f, 0x76, 0x31, 0x61, 0x6c,
-	0x70, 0x68, 0x61, 0x2f, 0x70, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
-	0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e,
-	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20,
-	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
-	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x1a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x1a, 0x27, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70,
-	0x6f, 0x72, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x74, 0x72, 0x61, 0x6e,
-	0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2f, 0x76, 0x31,
-	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67,
-	0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74,
-	0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x43, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4f, 0x6e, 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, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x51, 0x0a, 0x0d, 0x47,
-	0x65, 0x74, 0x4f, 0x6e, 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, 0x10, 0x0a, 0x03, 0x64, 0x69,
-	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
-	0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x43,
-	0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
-	0x70, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
-	0x70, 0x69, 0x64, 0x22, 0x51, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 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, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x03, 0x73, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x46, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61,
-	0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c,
-	0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03,
-	0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x56,
-	0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
-	0x12, 0x12, 0x0a, 0x04, 0x63, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
-	0x63, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x66, 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, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x64, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03,
-	0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xae,
-	0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 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,
-	0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
-	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, 0x41, 0x0a, 0x03,
-	0x6f, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x73, 0x64,
-	0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4f, 0x72,
-	0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72,
-	0x6b, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x03, 0x6f, 0x6e, 0x64, 0x22,
-	0xb2, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4f, 0x6e, 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, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31,
-	0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x41, 0x0a, 0x03, 0x6f, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f,
-	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
-	0x68, 0x61, 0x2e, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x64, 0x4e,
-	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52,
-	0x03, 0x6f, 0x6e, 0x64, 0x22, 0xac, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 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, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
-	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x3f, 0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x2d, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75,
-	0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x6f, 0x75, 0x74, 0x68,
-	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x03,
-	0x73, 0x62, 0x69, 0x22, 0xb0, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 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, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e,
-	0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x3f, 0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, 0x03, 0x20, 0x03,
-	0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68,
-	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x6f,
-	0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x52, 0x03, 0x73, 0x62, 0x69, 0x22, 0x98, 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, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e,
-	0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x2a, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 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, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63,
-	0x65, 0x22, 0xa1, 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, 0x3b, 0x0a, 0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
-	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x31, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
-	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63,
-	0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xa5, 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, 0x3b, 0x0a,
-	0x03, 0x70, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x31, 0x0a, 0x06, 0x63, 0x68,
-	0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43,
-	0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x5e, 0x0a,
-	0x16, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72,
-	0x6b, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64,
-	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaf, 0x01,
-	0x0a, 0x1c, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65,
-	0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e,
-	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
-	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
-	0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 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, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3f,
-	0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f,
-	0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76,
-	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e,
-	0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x03, 0x73, 0x62, 0x69, 0x22,
-	0xd6, 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, 0x35, 0x0a, 0x05,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f,
-	0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
-	0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x22, 0x73, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11,
-	0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
-	0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e,
-	0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f,
-	0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x53,
-	0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x03,
-	0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4e, 0x53,
-	0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x22, 0x70, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x4f,
-	0x6e, 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, 0x2b, 0x0a, 0x03, 0x6f,
-	0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
-	0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74,
-	0x4f, 0x6e, 0x64, 0x52, 0x03, 0x6f, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x70, 0x0a, 0x11, 0x53, 0x65,
-	0x74, 0x53, 0x62, 0x69, 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, 0x2b, 0x0a,
-	0x03, 0x73, 0x62, 0x69, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53,
-	0x65, 0x74, 0x53, 0x62, 0x69, 0x52, 0x03, 0x73, 0x62, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69,
-	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x7c, 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, 0x34, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03,
-	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
-	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
-	0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x9f, 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,
-	0x47, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
-	0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 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, 0x64, 0x69, 0x64, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69,
-	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0xd9, 0x01, 0x0a,
-	0x06, 0x53, 0x65, 0x74, 0x4f, 0x6e, 0x64, 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, 0x3f, 0x0a, 0x03, 0x73, 0x62, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d,
-	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e,
-	0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x62,
-	0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x03, 0x73,
-	0x62, 0x69, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
-	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e,
-	0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
-	0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e,
-	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e,
-	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72,
-	0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
-	0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x08, 0x0a, 0x06, 0x53, 0x65, 0x74, 0x53,
-	0x62, 0x69, 0x22, 0xc2, 0x01, 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, 0x36, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
-	0x32, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f,
-	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6f, 0x70, 0x22, 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, 0x22, 0xfd, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e,
-	0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
-	0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a,
-	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
-	0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e,
-	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x70, 0x69, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x52, 0x05, 0x61, 0x70, 0x69, 0x4f, 0x70, 0x22, 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, 0x22, 0x5e, 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, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64,
-	0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
-	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa3, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4f,
-	0x6e, 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, 0x31, 0x0a, 0x06,
-	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
-	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
-	0x3c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
-	0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
-	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0xa6, 0x01,
-	0x0a, 0x15, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
-	0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
-	0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e,
-	0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
-	0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f,
-	0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
-	0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x64, 0x0a, 0x11, 0x53, 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, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61,
-	0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64,
-	0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74,
-	0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa3, 0x01, 0x0a,
-	0x12, 0x53, 0x65, 0x74, 0x53, 0x62, 0x69, 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, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31,
-	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74,
-	0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
-	0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69,
-	0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69,
-	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74,
-	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
-	0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
-	0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61,
-	0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x72,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e,
-	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
-	0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09,
-	0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x42, 0x0a, 0x10, 0x44, 0x65, 0x6c,
-	0x65, 0x74, 0x65, 0x50, 0x6e, 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, 0x10, 0x0a, 0x03, 0x70,
-	0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x54, 0x0a,
-	0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6e, 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,
-	0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69,
-	0x64, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
-	0x64, 0x69, 0x64, 0x22, 0x64, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6e, 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, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70,
-	0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x64, 0x0a, 0x11, 0x44, 0x65, 0x6c,
-	0x65, 0x74, 0x65, 0x4f, 0x6e, 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, 0x31, 0x0a, 0x06,
-	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
-	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a,
-	0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41,
-	0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
-	0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01,
-	0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52,
-	0x10, 0x02, 0x32, 0xda, 0x0c, 0x0a, 0x0a, 0x50, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
-	0x65, 0x12, 0x76, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12,
-	0x24, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c,
-	0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e,
-	0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64,
-	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3,
-	0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b,
-	0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x6f, 0x0a, 0x06, 0x47, 0x65, 0x74,
-	0x4f, 0x6e, 0x64, 0x12, 0x20, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e,
-	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e,
-	0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x64,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a,
-	0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d,
-	0x2f, 0x6f, 0x6e, 0x64, 0x2f, 0x7b, 0x64, 0x69, 0x64, 0x7d, 0x12, 0x79, 0x0a, 0x0a, 0x53, 0x65,
-	0x74, 0x4f, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
-	0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74,
-	0x4f, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25,
-	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
-	0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a,
-	0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d,
-	0x2f, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x76, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x4c,
-	0x69, 0x73, 0x74, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e,
-	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x4c, 0x69,
-	0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64,
-	0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65,
-	0x74, 0x53, 0x62, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e,
-	0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x62, 0x69, 0x73, 0x12, 0x70, 0x0a,
-	0x06, 0x47, 0x65, 0x74, 0x53, 0x62, 0x69, 0x12, 0x20, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e,
-	0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53,
-	0x62, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64,
-	0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65,
-	0x74, 0x53, 0x62, 0x69, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3,
-	0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b,
-	0x70, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x62, 0x69, 0x73, 0x2f, 0x7b, 0x73, 0x69, 0x64, 0x7d, 0x12,
-	0x79, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x53, 0x62, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x2e,
-	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
-	0x61, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x62, 0x69, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e,
-	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x62, 0x69, 0x4c, 0x69,
-	0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93,
-	0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f,
-	0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x62, 0x69, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47,
-	0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
-	0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e,
-	0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61,
-	0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
-	0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64,
-	0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12,
-	0x7d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
-	0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31,
-	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12,
-	0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f,
-	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x75, 0x69, 0x64, 0x7d, 0x12, 0x85,
-	0x01, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74,
-	0x12, 0x27, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69,
-	0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x73, 0x64,
-	0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65,
-	0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16,
-	0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64, 0x7d, 0x2f, 0x63,
-	0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x50, 0x61,
-	0x74, 0x68, 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76,
-	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e,
-	0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74,
-	0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02,
-	0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x64,
-	0x7d, 0x2f, 0x6f, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, 0x74,
-	0x68, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x74, 0x68, 0x7d, 0x12, 0x88, 0x01, 0x0a, 0x0b, 0x53, 0x65,
-	0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x73, 0x64,
-	0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65,
-	0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24,
-	0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x70,
-	0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x64, 0x7d, 0x2f, 0x70,
-	0x61, 0x74, 0x68, 0x73, 0x12, 0x6e, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6e,
-	0x64, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31,
-	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6e, 0x64, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70,
-	0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
-	0x65, 0x50, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3,
-	0xe4, 0x93, 0x02, 0x10, 0x2a, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b,
-	0x70, 0x69, 0x64, 0x7d, 0x12, 0x79, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6e,
-	0x64, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70, 0x6e, 0x64, 0x2e, 0x76, 0x31,
-	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6e, 0x64, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x70,
-	0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
-	0x65, 0x4f, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3,
-	0xe4, 0x93, 0x02, 0x1b, 0x2a, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6e, 0x64, 0x73, 0x2f, 0x7b,
-	0x70, 0x69, 0x64, 0x7d, 0x2f, 0x6f, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x64, 0x7d, 0x42,
-	0xa8, 0x02, 0x5a, 0x27, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64,
-	0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
-	0x6f, 0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x70, 0x6e, 0x64, 0x92, 0x41, 0xfb, 0x01, 0x12,
-	0xf8, 0x01, 0x0a, 0x10, 0x67, 0x6f, 0x53, 0x44, 0x4e, 0x20, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x62,
-	0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x42,
-	0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x47, 0x6f, 0x20, 0x63, 0x6f, 0x64, 0x65,
-	0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x6f, 0x53, 0x44, 0x4e, 0x20, 0x6e,
-	0x6f, 0x72, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x22, 0x3e, 0x0a, 0x18, 0x67, 0x6f, 0x53, 0x44, 0x4e, 0x20, 0x4e, 0x6f, 0x72,
-	0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12,
-	0x22, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62,
-	0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74, 0x2f,
-	0x61, 0x70, 0x69, 0x2a, 0x50, 0x0a, 0x14, 0x42, 0x53, 0x44, 0x20, 0x33, 0x2d, 0x43, 0x6c, 0x61,
-	0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x68, 0x74, 0x74,
-	0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d,
-	0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f,
-	0x2d, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x4c, 0x49,
-	0x43, 0x45, 0x4e, 0x53, 0x45, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x33,
-}
-
-var (
-	file_gosdn_pnd_v1alpha_pnd_proto_rawDescOnce sync.Once
-	file_gosdn_pnd_v1alpha_pnd_proto_rawDescData = file_gosdn_pnd_v1alpha_pnd_proto_rawDesc
-)
-
-func file_gosdn_pnd_v1alpha_pnd_proto_rawDescGZIP() []byte {
-	file_gosdn_pnd_v1alpha_pnd_proto_rawDescOnce.Do(func() {
-		file_gosdn_pnd_v1alpha_pnd_proto_rawDescData = protoimpl.X.CompressGZIP(file_gosdn_pnd_v1alpha_pnd_proto_rawDescData)
-	})
-	return file_gosdn_pnd_v1alpha_pnd_proto_rawDescData
-}
-
-var file_gosdn_pnd_v1alpha_pnd_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
-var file_gosdn_pnd_v1alpha_pnd_proto_msgTypes = make([]protoimpl.MessageInfo, 35)
-var file_gosdn_pnd_v1alpha_pnd_proto_goTypes = []interface{}{
-	(Status)(0),                            // 0: gosdn.pnd.v1alpha.Status
-	(Change_State)(0),                      // 1: gosdn.pnd.v1alpha.Change.State
-	(SetChange_Operation)(0),               // 2: gosdn.pnd.v1alpha.SetChange.Operation
-	(ChangeRequest_ApiOperation)(0),        // 3: gosdn.pnd.v1alpha.ChangeRequest.ApiOperation
-	(*GetOndListRequest)(nil),              // 4: gosdn.pnd.v1alpha.GetOndListRequest
-	(*GetOndRequest)(nil),                  // 5: gosdn.pnd.v1alpha.GetOndRequest
-	(*GetSbiListRequest)(nil),              // 6: gosdn.pnd.v1alpha.GetSbiListRequest
-	(*GetSbiRequest)(nil),                  // 7: gosdn.pnd.v1alpha.GetSbiRequest
-	(*GetChangeListRequest)(nil),           // 8: gosdn.pnd.v1alpha.GetChangeListRequest
-	(*GetChangeRequest)(nil),               // 9: gosdn.pnd.v1alpha.GetChangeRequest
-	(*GetPathRequest)(nil),                 // 10: gosdn.pnd.v1alpha.GetPathRequest
-	(*GetOndResponse)(nil),                 // 11: gosdn.pnd.v1alpha.GetOndResponse
-	(*GetOndListResponse)(nil),             // 12: gosdn.pnd.v1alpha.GetOndListResponse
-	(*GetSbiResponse)(nil),                 // 13: gosdn.pnd.v1alpha.GetSbiResponse
-	(*GetSbiListResponse)(nil),             // 14: gosdn.pnd.v1alpha.GetSbiListResponse
-	(*GetPathResponse)(nil),                // 15: gosdn.pnd.v1alpha.GetPathResponse
-	(*GetChangeResponse)(nil),              // 16: gosdn.pnd.v1alpha.GetChangeResponse
-	(*GetChangeListResponse)(nil),          // 17: gosdn.pnd.v1alpha.GetChangeListResponse
-	(*PrincipalNetworkDomain)(nil),         // 18: gosdn.pnd.v1alpha.PrincipalNetworkDomain
-	(*OrchestratedNetworkingDevice)(nil),   // 19: gosdn.pnd.v1alpha.OrchestratedNetworkingDevice
-	(*Change)(nil),                         // 20: gosdn.pnd.v1alpha.Change
-	(*SetOndListRequest)(nil),              // 21: gosdn.pnd.v1alpha.SetOndListRequest
-	(*SetSbiListRequest)(nil),              // 22: gosdn.pnd.v1alpha.SetSbiListRequest
-	(*SetChangeListRequest)(nil),           // 23: gosdn.pnd.v1alpha.SetChangeListRequest
-	(*SetPathListRequest)(nil),             // 24: gosdn.pnd.v1alpha.SetPathListRequest
-	(*SetOnd)(nil),                         // 25: gosdn.pnd.v1alpha.SetOnd
-	(*SetSbi)(nil),                         // 26: gosdn.pnd.v1alpha.SetSbi
-	(*SetChange)(nil),                      // 27: gosdn.pnd.v1alpha.SetChange
-	(*ChangeRequest)(nil),                  // 28: gosdn.pnd.v1alpha.ChangeRequest
-	(*SetResponse)(nil),                    // 29: gosdn.pnd.v1alpha.SetResponse
-	(*SetOndListResponse)(nil),             // 30: gosdn.pnd.v1alpha.SetOndListResponse
-	(*SetChangeListResponse)(nil),          // 31: gosdn.pnd.v1alpha.SetChangeListResponse
-	(*SetChangeResponse)(nil),              // 32: gosdn.pnd.v1alpha.SetChangeResponse
-	(*SetSbiListResponse)(nil),             // 33: gosdn.pnd.v1alpha.SetSbiListResponse
-	(*SetPathListResponse)(nil),            // 34: gosdn.pnd.v1alpha.SetPathListResponse
-	(*DeletePndRequest)(nil),               // 35: gosdn.pnd.v1alpha.DeletePndRequest
-	(*DeleteOndRequest)(nil),               // 36: gosdn.pnd.v1alpha.DeleteOndRequest
-	(*DeletePndResponse)(nil),              // 37: gosdn.pnd.v1alpha.DeletePndResponse
-	(*DeleteOndResponse)(nil),              // 38: gosdn.pnd.v1alpha.DeleteOndResponse
-	(*southbound.SouthboundInterface)(nil), // 39: gosdn.southbound.v1alpha.SouthboundInterface
-	(*gnmi.Notification)(nil),              // 40: gnmi.Notification
-	(*transport.TransportOption)(nil),      // 41: gosdn.transport.v1alpha.TransportOption
-}
-var file_gosdn_pnd_v1alpha_pnd_proto_depIdxs = []int32{
-	18, // 0: gosdn.pnd.v1alpha.GetOndResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
-	19, // 1: gosdn.pnd.v1alpha.GetOndResponse.ond:type_name -> gosdn.pnd.v1alpha.OrchestratedNetworkingDevice
-	18, // 2: gosdn.pnd.v1alpha.GetOndListResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
-	19, // 3: gosdn.pnd.v1alpha.GetOndListResponse.ond:type_name -> gosdn.pnd.v1alpha.OrchestratedNetworkingDevice
-	18, // 4: gosdn.pnd.v1alpha.GetSbiResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
-	39, // 5: gosdn.pnd.v1alpha.GetSbiResponse.sbi:type_name -> gosdn.southbound.v1alpha.SouthboundInterface
-	18, // 6: gosdn.pnd.v1alpha.GetSbiListResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
-	39, // 7: gosdn.pnd.v1alpha.GetSbiListResponse.sbi:type_name -> gosdn.southbound.v1alpha.SouthboundInterface
-	18, // 8: gosdn.pnd.v1alpha.GetPathResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
-	40, // 9: gosdn.pnd.v1alpha.GetPathResponse.device:type_name -> gnmi.Notification
-	18, // 10: gosdn.pnd.v1alpha.GetChangeResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
-	20, // 11: gosdn.pnd.v1alpha.GetChangeResponse.change:type_name -> gosdn.pnd.v1alpha.Change
-	18, // 12: gosdn.pnd.v1alpha.GetChangeListResponse.pnd:type_name -> gosdn.pnd.v1alpha.PrincipalNetworkDomain
-	20, // 13: gosdn.pnd.v1alpha.GetChangeListResponse.change:type_name -> gosdn.pnd.v1alpha.Change
-	40, // 14: gosdn.pnd.v1alpha.OrchestratedNetworkingDevice.device:type_name -> gnmi.Notification
-	39, // 15: gosdn.pnd.v1alpha.OrchestratedNetworkingDevice.sbi:type_name -> gosdn.southbound.v1alpha.SouthboundInterface
-	1,  // 16: gosdn.pnd.v1alpha.Change.state:type_name -> gosdn.pnd.v1alpha.Change.State
-	25, // 17: gosdn.pnd.v1alpha.SetOndListRequest.ond:type_name -> gosdn.pnd.v1alpha.SetOnd
-	26, // 18: gosdn.pnd.v1alpha.SetSbiListRequest.sbi:type_name -> gosdn.pnd.v1alpha.SetSbi
-	27, // 19: gosdn.pnd.v1alpha.SetChangeListRequest.change:type_name -> gosdn.pnd.v1alpha.SetChange
-	28, // 20: gosdn.pnd.v1alpha.SetPathListRequest.change_request:type_name -> gosdn.pnd.v1alpha.ChangeRequest
-	39, // 21: gosdn.pnd.v1alpha.SetOnd.sbi:type_name -> gosdn.southbound.v1alpha.SouthboundInterface
-	41, // 22: gosdn.pnd.v1alpha.SetOnd.transport_option:type_name -> gosdn.transport.v1alpha.TransportOption
-	2,  // 23: gosdn.pnd.v1alpha.SetChange.op:type_name -> gosdn.pnd.v1alpha.SetChange.Operation
-	3,  // 24: gosdn.pnd.v1alpha.ChangeRequest.api_op:type_name -> gosdn.pnd.v1alpha.ChangeRequest.ApiOperation
-	0,  // 25: gosdn.pnd.v1alpha.SetResponse.status:type_name -> gosdn.pnd.v1alpha.Status
-	0,  // 26: gosdn.pnd.v1alpha.SetOndListResponse.status:type_name -> gosdn.pnd.v1alpha.Status
-	29, // 27: gosdn.pnd.v1alpha.SetOndListResponse.responses:type_name -> gosdn.pnd.v1alpha.SetResponse
-	0,  // 28: gosdn.pnd.v1alpha.SetChangeListResponse.status:type_name -> gosdn.pnd.v1alpha.Status
-	29, // 29: gosdn.pnd.v1alpha.SetChangeListResponse.responses:type_name -> gosdn.pnd.v1alpha.SetResponse
-	0,  // 30: gosdn.pnd.v1alpha.SetChangeResponse.status:type_name -> gosdn.pnd.v1alpha.Status
-	0,  // 31: gosdn.pnd.v1alpha.SetSbiListResponse.status:type_name -> gosdn.pnd.v1alpha.Status
-	29, // 32: gosdn.pnd.v1alpha.SetSbiListResponse.responses:type_name -> gosdn.pnd.v1alpha.SetResponse
-	0,  // 33: gosdn.pnd.v1alpha.SetPathListResponse.status:type_name -> gosdn.pnd.v1alpha.Status
-	29, // 34: gosdn.pnd.v1alpha.SetPathListResponse.responses:type_name -> gosdn.pnd.v1alpha.SetResponse
-	0,  // 35: gosdn.pnd.v1alpha.DeletePndResponse.status:type_name -> gosdn.pnd.v1alpha.Status
-	0,  // 36: gosdn.pnd.v1alpha.DeleteOndResponse.status:type_name -> gosdn.pnd.v1alpha.Status
-	4,  // 37: gosdn.pnd.v1alpha.PndService.GetOndList:input_type -> gosdn.pnd.v1alpha.GetOndListRequest
-	5,  // 38: gosdn.pnd.v1alpha.PndService.GetOnd:input_type -> gosdn.pnd.v1alpha.GetOndRequest
-	21, // 39: gosdn.pnd.v1alpha.PndService.SetOndList:input_type -> gosdn.pnd.v1alpha.SetOndListRequest
-	6,  // 40: gosdn.pnd.v1alpha.PndService.GetSbiList:input_type -> gosdn.pnd.v1alpha.GetSbiListRequest
-	7,  // 41: gosdn.pnd.v1alpha.PndService.GetSbi:input_type -> gosdn.pnd.v1alpha.GetSbiRequest
-	22, // 42: gosdn.pnd.v1alpha.PndService.SetSbiList:input_type -> gosdn.pnd.v1alpha.SetSbiListRequest
-	8,  // 43: gosdn.pnd.v1alpha.PndService.GetChangeList:input_type -> gosdn.pnd.v1alpha.GetChangeListRequest
-	9,  // 44: gosdn.pnd.v1alpha.PndService.GetChange:input_type -> gosdn.pnd.v1alpha.GetChangeRequest
-	23, // 45: gosdn.pnd.v1alpha.PndService.SetChangeList:input_type -> gosdn.pnd.v1alpha.SetChangeListRequest
-	10, // 46: gosdn.pnd.v1alpha.PndService.GetPath:input_type -> gosdn.pnd.v1alpha.GetPathRequest
-	24, // 47: gosdn.pnd.v1alpha.PndService.SetPathList:input_type -> gosdn.pnd.v1alpha.SetPathListRequest
-	35, // 48: gosdn.pnd.v1alpha.PndService.DeletePnd:input_type -> gosdn.pnd.v1alpha.DeletePndRequest
-	36, // 49: gosdn.pnd.v1alpha.PndService.DeleteOnd:input_type -> gosdn.pnd.v1alpha.DeleteOndRequest
-	12, // 50: gosdn.pnd.v1alpha.PndService.GetOndList:output_type -> gosdn.pnd.v1alpha.GetOndListResponse
-	11, // 51: gosdn.pnd.v1alpha.PndService.GetOnd:output_type -> gosdn.pnd.v1alpha.GetOndResponse
-	30, // 52: gosdn.pnd.v1alpha.PndService.SetOndList:output_type -> gosdn.pnd.v1alpha.SetOndListResponse
-	14, // 53: gosdn.pnd.v1alpha.PndService.GetSbiList:output_type -> gosdn.pnd.v1alpha.GetSbiListResponse
-	13, // 54: gosdn.pnd.v1alpha.PndService.GetSbi:output_type -> gosdn.pnd.v1alpha.GetSbiResponse
-	33, // 55: gosdn.pnd.v1alpha.PndService.SetSbiList:output_type -> gosdn.pnd.v1alpha.SetSbiListResponse
-	17, // 56: gosdn.pnd.v1alpha.PndService.GetChangeList:output_type -> gosdn.pnd.v1alpha.GetChangeListResponse
-	16, // 57: gosdn.pnd.v1alpha.PndService.GetChange:output_type -> gosdn.pnd.v1alpha.GetChangeResponse
-	31, // 58: gosdn.pnd.v1alpha.PndService.SetChangeList:output_type -> gosdn.pnd.v1alpha.SetChangeListResponse
-	15, // 59: gosdn.pnd.v1alpha.PndService.GetPath:output_type -> gosdn.pnd.v1alpha.GetPathResponse
-	34, // 60: gosdn.pnd.v1alpha.PndService.SetPathList:output_type -> gosdn.pnd.v1alpha.SetPathListResponse
-	37, // 61: gosdn.pnd.v1alpha.PndService.DeletePnd:output_type -> gosdn.pnd.v1alpha.DeletePndResponse
-	38, // 62: gosdn.pnd.v1alpha.PndService.DeleteOnd:output_type -> gosdn.pnd.v1alpha.DeleteOndResponse
-	50, // [50:63] is the sub-list for method output_type
-	37, // [37:50] is the sub-list for method input_type
-	37, // [37:37] is the sub-list for extension type_name
-	37, // [37:37] is the sub-list for extension extendee
-	0,  // [0:37] is the sub-list for field type_name
-}
-
-func init() { file_gosdn_pnd_v1alpha_pnd_proto_init() }
-func file_gosdn_pnd_v1alpha_pnd_proto_init() {
-	if File_gosdn_pnd_v1alpha_pnd_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetOndListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetOndRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetSbiListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetSbiRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetOndResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetOndListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetSbiResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetSbiListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_pnd_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*OrchestratedNetworkingDevice); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetOndListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetSbiListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetOnd); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetSbi); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetOndListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetChangeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetSbiListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
-			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_pnd_v1alpha_pnd_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_pnd_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DeleteOndRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DeletePndResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_gosdn_pnd_v1alpha_pnd_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DeleteOndResponse); 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_pnd_v1alpha_pnd_proto_rawDesc,
-			NumEnums:      4,
-			NumMessages:   35,
-			NumExtensions: 0,
-			NumServices:   1,
-		},
-		GoTypes:           file_gosdn_pnd_v1alpha_pnd_proto_goTypes,
-		DependencyIndexes: file_gosdn_pnd_v1alpha_pnd_proto_depIdxs,
-		EnumInfos:         file_gosdn_pnd_v1alpha_pnd_proto_enumTypes,
-		MessageInfos:      file_gosdn_pnd_v1alpha_pnd_proto_msgTypes,
-	}.Build()
-	File_gosdn_pnd_v1alpha_pnd_proto = out.File
-	file_gosdn_pnd_v1alpha_pnd_proto_rawDesc = nil
-	file_gosdn_pnd_v1alpha_pnd_proto_goTypes = nil
-	file_gosdn_pnd_v1alpha_pnd_proto_depIdxs = nil
-}
diff --git a/go/gosdn/pnd/v1alpha/pnd.pb.gw.go b/go/gosdn/pnd/v1alpha/pnd.pb.gw.go
deleted file mode 100644
index 2c32cc0..0000000
--- a/go/gosdn/pnd/v1alpha/pnd.pb.gw.go
+++ /dev/null
@@ -1,1739 +0,0 @@
-// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
-// source: gosdn/pnd/v1alpha/pnd.proto
-
-/*
-Package pnd is a reverse proxy.
-
-It translates gRPC into RESTful JSON APIs.
-*/
-package pnd
-
-import (
-	"context"
-	"io"
-	"net/http"
-
-	"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
-	"github.com/grpc-ecosystem/grpc-gateway/v2/utilities"
-	"google.golang.org/grpc"
-	"google.golang.org/grpc/codes"
-	"google.golang.org/grpc/grpclog"
-	"google.golang.org/grpc/metadata"
-	"google.golang.org/grpc/status"
-	"google.golang.org/protobuf/proto"
-)
-
-// Suppress "imported and not used" errors
-var _ codes.Code
-var _ io.Reader
-var _ status.Status
-var _ = runtime.String
-var _ = utilities.NewDoubleArray
-var _ = metadata.Join
-
-var (
-	filter_PndService_GetOndList_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
-)
-
-func request_PndService_GetOndList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetOndListRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetOndList_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.GetOndList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_GetOndList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetOndListRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetOndList_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.GetOndList(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_PndService_GetOnd_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "did": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
-)
-
-func request_PndService_GetOnd_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetOndRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	val, ok = pathParams["did"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "did")
-	}
-
-	protoReq.Did, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetOnd_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.GetOnd(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_GetOnd_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetOndRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	val, ok = pathParams["did"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "did")
-	}
-
-	protoReq.Did, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetOnd_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.GetOnd(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_PndService_SetOndList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetOndListRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	msg, err := client.SetOndList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_SetOndList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetOndListRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	msg, err := server.SetOndList(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_PndService_GetSbiList_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
-)
-
-func request_PndService_GetSbiList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetSbiListRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetSbiList_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.GetSbiList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_GetSbiList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetSbiListRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetSbiList_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.GetSbiList(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_PndService_GetSbi_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "sid": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
-)
-
-func request_PndService_GetSbi_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetSbiRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	val, ok = pathParams["sid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "sid")
-	}
-
-	protoReq.Sid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "sid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetSbi_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.GetSbi(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_GetSbi_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetSbiRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	val, ok = pathParams["sid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "sid")
-	}
-
-	protoReq.Sid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "sid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetSbi_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.GetSbi(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_PndService_SetSbiList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetSbiListRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	msg, err := client.SetSbiList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_SetSbiList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetSbiListRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	msg, err := server.SetSbiList(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_PndService_GetChangeList_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
-)
-
-func request_PndService_GetChangeList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetChangeListRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetChangeList_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.GetChangeList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_GetChangeList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetChangeListRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetChangeList_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.GetChangeList(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_PndService_GetChange_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "cuid": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
-)
-
-func request_PndService_GetChange_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetChangeRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	val, ok = pathParams["cuid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cuid")
-	}
-
-	protoReq.Cuid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cuid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetChange_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.GetChange(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_GetChange_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetChangeRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	val, ok = pathParams["cuid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cuid")
-	}
-
-	protoReq.Cuid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cuid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetChange_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.GetChange(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_PndService_SetChangeList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetChangeListRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	msg, err := client.SetChangeList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_SetChangeList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetChangeListRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	msg, err := server.SetChangeList(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_PndService_GetPath_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "did": 1, "path": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}}
-)
-
-func request_PndService_GetPath_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetPathRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	val, ok = pathParams["did"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "did")
-	}
-
-	protoReq.Did, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
-	}
-
-	val, ok = pathParams["path"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "path")
-	}
-
-	protoReq.Path, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "path", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetPath_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.GetPath(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_GetPath_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq GetPathRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	val, ok = pathParams["did"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "did")
-	}
-
-	protoReq.Did, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
-	}
-
-	val, ok = pathParams["path"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "path")
-	}
-
-	protoReq.Path, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "path", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_GetPath_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.GetPath(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-func request_PndService_SetPathList_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetPathListRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	val, ok = pathParams["did"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "did")
-	}
-
-	protoReq.Did, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
-	}
-
-	msg, err := client.SetPathList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_SetPathList_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq SetPathListRequest
-	var metadata runtime.ServerMetadata
-
-	newReader, berr := utilities.IOReaderFactory(req.Body)
-	if berr != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
-	}
-	if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	val, ok = pathParams["did"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "did")
-	}
-
-	protoReq.Did, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
-	}
-
-	msg, err := server.SetPathList(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_PndService_DeletePnd_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
-)
-
-func request_PndService_DeletePnd_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq DeletePndRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_DeletePnd_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.DeletePnd(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_DeletePnd_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq DeletePndRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_DeletePnd_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.DeletePnd(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-var (
-	filter_PndService_DeleteOnd_0 = &utilities.DoubleArray{Encoding: map[string]int{"pid": 0, "did": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
-)
-
-func request_PndService_DeleteOnd_0(ctx context.Context, marshaler runtime.Marshaler, client PndServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq DeleteOndRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	val, ok = pathParams["did"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "did")
-	}
-
-	protoReq.Did, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_DeleteOnd_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := client.DeleteOnd(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
-	return msg, metadata, err
-
-}
-
-func local_request_PndService_DeleteOnd_0(ctx context.Context, marshaler runtime.Marshaler, server PndServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
-	var protoReq DeleteOndRequest
-	var metadata runtime.ServerMetadata
-
-	var (
-		val string
-		ok  bool
-		err error
-		_   = err
-	)
-
-	val, ok = pathParams["pid"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "pid")
-	}
-
-	protoReq.Pid, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "pid", err)
-	}
-
-	val, ok = pathParams["did"]
-	if !ok {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "did")
-	}
-
-	protoReq.Did, err = runtime.String(val)
-	if err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "did", err)
-	}
-
-	if err := req.ParseForm(); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PndService_DeleteOnd_0); err != nil {
-		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
-	}
-
-	msg, err := server.DeleteOnd(ctx, &protoReq)
-	return msg, metadata, err
-
-}
-
-// RegisterPndServiceHandlerServer registers the http handlers for service PndService to "mux".
-// UnaryRPC     :call PndServiceServer directly.
-// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
-// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterPndServiceHandlerFromEndpoint instead.
-func RegisterPndServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server PndServiceServer) error {
-
-	mux.Handle("GET", pattern_PndService_GetOndList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetOndList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_GetOndList_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetOndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_PndService_GetOnd_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetOnd", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/ond/{did}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_GetOnd_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetOnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("POST", pattern_PndService_SetOndList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetOndList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_SetOndList_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_SetOndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_PndService_GetSbiList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetSbiList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/sbis"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_GetSbiList_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetSbiList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_PndService_GetSbi_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetSbi", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/sbis/{sid}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_GetSbi_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetSbi_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("POST", pattern_PndService_SetSbiList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetSbiList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/sbis"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_SetSbiList_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_SetSbiList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_PndService_GetChangeList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetChangeList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/changes"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_GetChangeList_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetChangeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_PndService_GetChange_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetChange", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/changes/{cuid}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_GetChange_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetChange_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("POST", pattern_PndService_SetChangeList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetChangeList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/changes"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_SetChangeList_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_SetChangeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_PndService_GetPath_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetPath", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds/{did}/paths/{path}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_GetPath_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetPath_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("POST", pattern_PndService_SetPathList_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetPathList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds/{did}/paths"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_SetPathList_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_SetPathList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("DELETE", pattern_PndService_DeletePnd_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/DeletePnd", runtime.WithHTTPPathPattern("/v1/pnds/{pid}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_DeletePnd_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_DeletePnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("DELETE", pattern_PndService_DeleteOnd_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)
-		rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/DeleteOnd", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds/{did}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := local_request_PndService_DeleteOnd_0(rctx, inboundMarshaler, server, req, pathParams)
-		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_DeleteOnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	return nil
-}
-
-// RegisterPndServiceHandlerFromEndpoint is same as RegisterPndServiceHandler but
-// automatically dials to "endpoint" and closes the connection when "ctx" gets done.
-func RegisterPndServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
-	conn, err := grpc.Dial(endpoint, opts...)
-	if err != nil {
-		return err
-	}
-	defer func() {
-		if err != nil {
-			if cerr := conn.Close(); cerr != nil {
-				grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
-			}
-			return
-		}
-		go func() {
-			<-ctx.Done()
-			if cerr := conn.Close(); cerr != nil {
-				grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
-			}
-		}()
-	}()
-
-	return RegisterPndServiceHandler(ctx, mux, conn)
-}
-
-// RegisterPndServiceHandler registers the http handlers for service PndService to "mux".
-// The handlers forward requests to the grpc endpoint over "conn".
-func RegisterPndServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
-	return RegisterPndServiceHandlerClient(ctx, mux, NewPndServiceClient(conn))
-}
-
-// RegisterPndServiceHandlerClient registers the http handlers for service PndService
-// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "PndServiceClient".
-// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "PndServiceClient"
-// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
-// "PndServiceClient" to call the correct interceptors.
-func RegisterPndServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client PndServiceClient) error {
-
-	mux.Handle("GET", pattern_PndService_GetOndList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetOndList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_GetOndList_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetOndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_PndService_GetOnd_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetOnd", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/ond/{did}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_GetOnd_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetOnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("POST", pattern_PndService_SetOndList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetOndList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_SetOndList_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_SetOndList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_PndService_GetSbiList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetSbiList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/sbis"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_GetSbiList_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetSbiList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_PndService_GetSbi_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetSbi", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/sbis/{sid}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_GetSbi_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetSbi_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("POST", pattern_PndService_SetSbiList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetSbiList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/sbis"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_SetSbiList_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_SetSbiList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_PndService_GetChangeList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetChangeList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/changes"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_GetChangeList_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetChangeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_PndService_GetChange_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetChange", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/changes/{cuid}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_GetChange_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetChange_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("POST", pattern_PndService_SetChangeList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetChangeList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/changes"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_SetChangeList_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_SetChangeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("GET", pattern_PndService_GetPath_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/GetPath", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds/{did}/paths/{path}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_GetPath_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_GetPath_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("POST", pattern_PndService_SetPathList_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/SetPathList", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds/{did}/paths"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_SetPathList_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_SetPathList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("DELETE", pattern_PndService_DeletePnd_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/DeletePnd", runtime.WithHTTPPathPattern("/v1/pnds/{pid}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_DeletePnd_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_DeletePnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	mux.Handle("DELETE", pattern_PndService_DeleteOnd_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)
-		rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gosdn.pnd.v1alpha.PndService/DeleteOnd", runtime.WithHTTPPathPattern("/v1/pnds/{pid}/onds/{did}"))
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-		resp, md, err := request_PndService_DeleteOnd_0(rctx, inboundMarshaler, client, req, pathParams)
-		ctx = runtime.NewServerMetadataContext(ctx, md)
-		if err != nil {
-			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
-			return
-		}
-
-		forward_PndService_DeleteOnd_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
-
-	})
-
-	return nil
-}
-
-var (
-	pattern_PndService_GetOndList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnds", "pid", "onds"}, ""))
-
-	pattern_PndService_GetOnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "pnds", "pid", "ond", "did"}, ""))
-
-	pattern_PndService_SetOndList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnds", "pid", "onds"}, ""))
-
-	pattern_PndService_GetSbiList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnds", "pid", "sbis"}, ""))
-
-	pattern_PndService_GetSbi_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "pnds", "pid", "sbis", "sid"}, ""))
-
-	pattern_PndService_SetSbiList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnds", "pid", "sbis"}, ""))
-
-	pattern_PndService_GetChangeList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnds", "pid", "changes"}, ""))
-
-	pattern_PndService_GetChange_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "pnds", "pid", "changes", "cuid"}, ""))
-
-	pattern_PndService_SetChangeList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1", "pnds", "pid", "changes"}, ""))
-
-	pattern_PndService_GetPath_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6}, []string{"v1", "pnds", "pid", "onds", "did", "paths", "path"}, ""))
-
-	pattern_PndService_SetPathList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"v1", "pnds", "pid", "onds", "did", "paths"}, ""))
-
-	pattern_PndService_DeletePnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"v1", "pnds", "pid"}, ""))
-
-	pattern_PndService_DeleteOnd_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"v1", "pnds", "pid", "onds", "did"}, ""))
-)
-
-var (
-	forward_PndService_GetOndList_0 = runtime.ForwardResponseMessage
-
-	forward_PndService_GetOnd_0 = runtime.ForwardResponseMessage
-
-	forward_PndService_SetOndList_0 = runtime.ForwardResponseMessage
-
-	forward_PndService_GetSbiList_0 = runtime.ForwardResponseMessage
-
-	forward_PndService_GetSbi_0 = runtime.ForwardResponseMessage
-
-	forward_PndService_SetSbiList_0 = runtime.ForwardResponseMessage
-
-	forward_PndService_GetChangeList_0 = runtime.ForwardResponseMessage
-
-	forward_PndService_GetChange_0 = runtime.ForwardResponseMessage
-
-	forward_PndService_SetChangeList_0 = runtime.ForwardResponseMessage
-
-	forward_PndService_GetPath_0 = runtime.ForwardResponseMessage
-
-	forward_PndService_SetPathList_0 = runtime.ForwardResponseMessage
-
-	forward_PndService_DeletePnd_0 = runtime.ForwardResponseMessage
-
-	forward_PndService_DeleteOnd_0 = runtime.ForwardResponseMessage
-)
diff --git a/go/gosdn/pnd/v1alpha/pnd_grpc.pb.go b/go/gosdn/pnd/v1alpha/pnd_grpc.pb.go
deleted file mode 100644
index 6a1ca59..0000000
--- a/go/gosdn/pnd/v1alpha/pnd_grpc.pb.go
+++ /dev/null
@@ -1,547 +0,0 @@
-// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
-
-package pnd
-
-import (
-	context "context"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-)
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
-
-// PndServiceClient is the client API for PndService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
-type PndServiceClient interface {
-	// Allows to request Orchestrated Networking Devices which are managed by a
-	// specific Principal Network Domain.
-	GetOndList(ctx context.Context, in *GetOndListRequest, opts ...grpc.CallOption) (*GetOndListResponse, error)
-	GetOnd(ctx context.Context, in *GetOndRequest, opts ...grpc.CallOption) (*GetOndResponse, error)
-	SetOndList(ctx context.Context, in *SetOndListRequest, opts ...grpc.CallOption) (*SetOndListResponse, error)
-	// Allows to request the Southbound Interfaces a specific Principal Network
-	// Domain supports.
-	GetSbiList(ctx context.Context, in *GetSbiListRequest, opts ...grpc.CallOption) (*GetSbiListResponse, error)
-	GetSbi(ctx context.Context, in *GetSbiRequest, opts ...grpc.CallOption) (*GetSbiResponse, error)
-	SetSbiList(ctx context.Context, in *SetSbiListRequest, opts ...grpc.CallOption) (*SetSbiListResponse, error)
-	// Allows to request Changes registered for a specific Principal Network Domain.
-	GetChangeList(ctx context.Context, in *GetChangeListRequest, opts ...grpc.CallOption) (*GetChangeListResponse, error)
-	GetChange(ctx context.Context, in *GetChangeRequest, opts ...grpc.CallOption) (*GetChangeResponse, error)
-	SetChangeList(ctx context.Context, in *SetChangeListRequest, opts ...grpc.CallOption) (*SetChangeListResponse, error)
-	// Allows to request a specific Path of a Orchestrated Networking Device,
-	// managed by a specific Principal Network Domain.
-	GetPath(ctx context.Context, in *GetPathRequest, opts ...grpc.CallOption) (*GetPathResponse, error)
-	SetPathList(ctx context.Context, in *SetPathListRequest, opts ...grpc.CallOption) (*SetPathListResponse, error)
-	DeletePnd(ctx context.Context, in *DeletePndRequest, opts ...grpc.CallOption) (*DeletePndResponse, error)
-	DeleteOnd(ctx context.Context, in *DeleteOndRequest, opts ...grpc.CallOption) (*DeleteOndResponse, error)
-}
-
-type pndServiceClient struct {
-	cc grpc.ClientConnInterface
-}
-
-func NewPndServiceClient(cc grpc.ClientConnInterface) PndServiceClient {
-	return &pndServiceClient{cc}
-}
-
-func (c *pndServiceClient) GetOndList(ctx context.Context, in *GetOndListRequest, opts ...grpc.CallOption) (*GetOndListResponse, error) {
-	out := new(GetOndListResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetOndList", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *pndServiceClient) GetOnd(ctx context.Context, in *GetOndRequest, opts ...grpc.CallOption) (*GetOndResponse, error) {
-	out := new(GetOndResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetOnd", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *pndServiceClient) SetOndList(ctx context.Context, in *SetOndListRequest, opts ...grpc.CallOption) (*SetOndListResponse, error) {
-	out := new(SetOndListResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/SetOndList", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *pndServiceClient) GetSbiList(ctx context.Context, in *GetSbiListRequest, opts ...grpc.CallOption) (*GetSbiListResponse, error) {
-	out := new(GetSbiListResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetSbiList", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *pndServiceClient) GetSbi(ctx context.Context, in *GetSbiRequest, opts ...grpc.CallOption) (*GetSbiResponse, error) {
-	out := new(GetSbiResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetSbi", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *pndServiceClient) SetSbiList(ctx context.Context, in *SetSbiListRequest, opts ...grpc.CallOption) (*SetSbiListResponse, error) {
-	out := new(SetSbiListResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/SetSbiList", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *pndServiceClient) GetChangeList(ctx context.Context, in *GetChangeListRequest, opts ...grpc.CallOption) (*GetChangeListResponse, error) {
-	out := new(GetChangeListResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetChangeList", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *pndServiceClient) GetChange(ctx context.Context, in *GetChangeRequest, opts ...grpc.CallOption) (*GetChangeResponse, error) {
-	out := new(GetChangeResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetChange", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *pndServiceClient) SetChangeList(ctx context.Context, in *SetChangeListRequest, opts ...grpc.CallOption) (*SetChangeListResponse, error) {
-	out := new(SetChangeListResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/SetChangeList", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *pndServiceClient) GetPath(ctx context.Context, in *GetPathRequest, opts ...grpc.CallOption) (*GetPathResponse, error) {
-	out := new(GetPathResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/GetPath", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *pndServiceClient) SetPathList(ctx context.Context, in *SetPathListRequest, opts ...grpc.CallOption) (*SetPathListResponse, error) {
-	out := new(SetPathListResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/SetPathList", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *pndServiceClient) DeletePnd(ctx context.Context, in *DeletePndRequest, opts ...grpc.CallOption) (*DeletePndResponse, error) {
-	out := new(DeletePndResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/DeletePnd", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *pndServiceClient) DeleteOnd(ctx context.Context, in *DeleteOndRequest, opts ...grpc.CallOption) (*DeleteOndResponse, error) {
-	out := new(DeleteOndResponse)
-	err := c.cc.Invoke(ctx, "/gosdn.pnd.v1alpha.PndService/DeleteOnd", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// PndServiceServer is the server API for PndService service.
-// All implementations must embed UnimplementedPndServiceServer
-// for forward compatibility
-type PndServiceServer interface {
-	// Allows to request Orchestrated Networking Devices which are managed by a
-	// specific Principal Network Domain.
-	GetOndList(context.Context, *GetOndListRequest) (*GetOndListResponse, error)
-	GetOnd(context.Context, *GetOndRequest) (*GetOndResponse, error)
-	SetOndList(context.Context, *SetOndListRequest) (*SetOndListResponse, error)
-	// Allows to request the Southbound Interfaces a specific Principal Network
-	// Domain supports.
-	GetSbiList(context.Context, *GetSbiListRequest) (*GetSbiListResponse, error)
-	GetSbi(context.Context, *GetSbiRequest) (*GetSbiResponse, error)
-	SetSbiList(context.Context, *SetSbiListRequest) (*SetSbiListResponse, error)
-	// Allows to request Changes registered for a specific Principal Network Domain.
-	GetChangeList(context.Context, *GetChangeListRequest) (*GetChangeListResponse, error)
-	GetChange(context.Context, *GetChangeRequest) (*GetChangeResponse, error)
-	SetChangeList(context.Context, *SetChangeListRequest) (*SetChangeListResponse, error)
-	// Allows to request a specific Path of a Orchestrated Networking Device,
-	// managed by a specific Principal Network Domain.
-	GetPath(context.Context, *GetPathRequest) (*GetPathResponse, error)
-	SetPathList(context.Context, *SetPathListRequest) (*SetPathListResponse, error)
-	DeletePnd(context.Context, *DeletePndRequest) (*DeletePndResponse, error)
-	DeleteOnd(context.Context, *DeleteOndRequest) (*DeleteOndResponse, error)
-	mustEmbedUnimplementedPndServiceServer()
-}
-
-// UnimplementedPndServiceServer must be embedded to have forward compatible implementations.
-type UnimplementedPndServiceServer struct {
-}
-
-func (UnimplementedPndServiceServer) GetOndList(context.Context, *GetOndListRequest) (*GetOndListResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetOndList not implemented")
-}
-func (UnimplementedPndServiceServer) GetOnd(context.Context, *GetOndRequest) (*GetOndResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetOnd not implemented")
-}
-func (UnimplementedPndServiceServer) SetOndList(context.Context, *SetOndListRequest) (*SetOndListResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetOndList not implemented")
-}
-func (UnimplementedPndServiceServer) GetSbiList(context.Context, *GetSbiListRequest) (*GetSbiListResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetSbiList not implemented")
-}
-func (UnimplementedPndServiceServer) GetSbi(context.Context, *GetSbiRequest) (*GetSbiResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetSbi not implemented")
-}
-func (UnimplementedPndServiceServer) SetSbiList(context.Context, *SetSbiListRequest) (*SetSbiListResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetSbiList not implemented")
-}
-func (UnimplementedPndServiceServer) GetChangeList(context.Context, *GetChangeListRequest) (*GetChangeListResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetChangeList not implemented")
-}
-func (UnimplementedPndServiceServer) GetChange(context.Context, *GetChangeRequest) (*GetChangeResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetChange not implemented")
-}
-func (UnimplementedPndServiceServer) SetChangeList(context.Context, *SetChangeListRequest) (*SetChangeListResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetChangeList not implemented")
-}
-func (UnimplementedPndServiceServer) GetPath(context.Context, *GetPathRequest) (*GetPathResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetPath not implemented")
-}
-func (UnimplementedPndServiceServer) SetPathList(context.Context, *SetPathListRequest) (*SetPathListResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetPathList not implemented")
-}
-func (UnimplementedPndServiceServer) DeletePnd(context.Context, *DeletePndRequest) (*DeletePndResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeletePnd not implemented")
-}
-func (UnimplementedPndServiceServer) DeleteOnd(context.Context, *DeleteOndRequest) (*DeleteOndResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeleteOnd not implemented")
-}
-func (UnimplementedPndServiceServer) mustEmbedUnimplementedPndServiceServer() {}
-
-// UnsafePndServiceServer may be embedded to opt out of forward compatibility for this service.
-// Use of this interface is not recommended, as added methods to PndServiceServer will
-// result in compilation errors.
-type UnsafePndServiceServer interface {
-	mustEmbedUnimplementedPndServiceServer()
-}
-
-func RegisterPndServiceServer(s grpc.ServiceRegistrar, srv PndServiceServer) {
-	s.RegisterService(&PndService_ServiceDesc, srv)
-}
-
-func _PndService_GetOndList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetOndListRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).GetOndList(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetOndList",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).GetOndList(ctx, req.(*GetOndListRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _PndService_GetOnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetOndRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).GetOnd(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetOnd",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).GetOnd(ctx, req.(*GetOndRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _PndService_SetOndList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SetOndListRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).SetOndList(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/SetOndList",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).SetOndList(ctx, req.(*SetOndListRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _PndService_GetSbiList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetSbiListRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).GetSbiList(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetSbiList",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).GetSbiList(ctx, req.(*GetSbiListRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _PndService_GetSbi_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetSbiRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).GetSbi(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetSbi",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).GetSbi(ctx, req.(*GetSbiRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _PndService_SetSbiList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SetSbiListRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).SetSbiList(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/SetSbiList",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).SetSbiList(ctx, req.(*SetSbiListRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _PndService_GetChangeList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetChangeListRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).GetChangeList(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetChangeList",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).GetChangeList(ctx, req.(*GetChangeListRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _PndService_GetChange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetChangeRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).GetChange(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetChange",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).GetChange(ctx, req.(*GetChangeRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _PndService_SetChangeList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SetChangeListRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).SetChangeList(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/SetChangeList",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).SetChangeList(ctx, req.(*SetChangeListRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _PndService_GetPath_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetPathRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).GetPath(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/GetPath",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).GetPath(ctx, req.(*GetPathRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _PndService_SetPathList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SetPathListRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).SetPathList(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/SetPathList",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).SetPathList(ctx, req.(*SetPathListRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _PndService_DeletePnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(DeletePndRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).DeletePnd(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/DeletePnd",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).DeletePnd(ctx, req.(*DeletePndRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _PndService_DeleteOnd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(DeleteOndRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(PndServiceServer).DeleteOnd(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/gosdn.pnd.v1alpha.PndService/DeleteOnd",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(PndServiceServer).DeleteOnd(ctx, req.(*DeleteOndRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-// PndService_ServiceDesc is the grpc.ServiceDesc for PndService service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var PndService_ServiceDesc = grpc.ServiceDesc{
-	ServiceName: "gosdn.pnd.v1alpha.PndService",
-	HandlerType: (*PndServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "GetOndList",
-			Handler:    _PndService_GetOndList_Handler,
-		},
-		{
-			MethodName: "GetOnd",
-			Handler:    _PndService_GetOnd_Handler,
-		},
-		{
-			MethodName: "SetOndList",
-			Handler:    _PndService_SetOndList_Handler,
-		},
-		{
-			MethodName: "GetSbiList",
-			Handler:    _PndService_GetSbiList_Handler,
-		},
-		{
-			MethodName: "GetSbi",
-			Handler:    _PndService_GetSbi_Handler,
-		},
-		{
-			MethodName: "SetSbiList",
-			Handler:    _PndService_SetSbiList_Handler,
-		},
-		{
-			MethodName: "GetChangeList",
-			Handler:    _PndService_GetChangeList_Handler,
-		},
-		{
-			MethodName: "GetChange",
-			Handler:    _PndService_GetChange_Handler,
-		},
-		{
-			MethodName: "SetChangeList",
-			Handler:    _PndService_SetChangeList_Handler,
-		},
-		{
-			MethodName: "GetPath",
-			Handler:    _PndService_GetPath_Handler,
-		},
-		{
-			MethodName: "SetPathList",
-			Handler:    _PndService_SetPathList_Handler,
-		},
-		{
-			MethodName: "DeletePnd",
-			Handler:    _PndService_DeletePnd_Handler,
-		},
-		{
-			MethodName: "DeleteOnd",
-			Handler:    _PndService_DeleteOnd_Handler,
-		},
-	},
-	Streams:  []grpc.StreamDesc{},
-	Metadata: "gosdn/pnd/v1alpha/pnd.proto",
-}
diff --git a/go/gosdn/southbound/southbound.pb.go b/go/gosdn/southbound/southbound.pb.go
index 56ca8df..7fd6d3a 100644
--- a/go/gosdn/southbound/southbound.pb.go
+++ b/go/gosdn/southbound/southbound.pb.go
@@ -24,22 +24,25 @@ const (
 type Type int32
 
 const (
-	Type_OPENCONFIG    Type = 0
-	Type_CONTAINERISED Type = 1
-	Type_PLUGIN        Type = 2
+	Type_TYPE_UNSPECIFIED   Type = 0
+	Type_TYPE_OPENCONFIG    Type = 1
+	Type_TYPE_CONTAINERISED Type = 2
+	Type_TYPE_PLUGIN        Type = 3
 )
 
 // Enum value maps for Type.
 var (
 	Type_name = map[int32]string{
-		0: "OPENCONFIG",
-		1: "CONTAINERISED",
-		2: "PLUGIN",
+		0: "TYPE_UNSPECIFIED",
+		1: "TYPE_OPENCONFIG",
+		2: "TYPE_CONTAINERISED",
+		3: "TYPE_PLUGIN",
 	}
 	Type_value = map[string]int32{
-		"OPENCONFIG":    0,
-		"CONTAINERISED": 1,
-		"PLUGIN":        2,
+		"TYPE_UNSPECIFIED":   0,
+		"TYPE_OPENCONFIG":    1,
+		"TYPE_CONTAINERISED": 2,
+		"TYPE_PLUGIN":        3,
 	}
 )
 
@@ -76,7 +79,7 @@ type SouthboundInterface struct {
 	unknownFields protoimpl.UnknownFields
 
 	Id   string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Type Type   `protobuf:"varint,2,opt,name=type,proto3,enum=gosdn.southbound.Type" json:"type,omitempty"`
+	Type Type   `protobuf:"varint,2,opt,name=type,proto3,enum=gosdn.southbound.v1alpha.Type" json:"type,omitempty"`
 }
 
 func (x *SouthboundInterface) Reset() {
@@ -122,7 +125,7 @@ func (x *SouthboundInterface) GetType() Type {
 	if x != nil {
 		return x.Type
 	}
-	return Type_OPENCONFIG
+	return Type_TYPE_UNSPECIFIED
 }
 
 var File_gosdn_southbound_southbound_proto protoreflect.FileDescriptor
@@ -130,22 +133,25 @@ var File_gosdn_southbound_southbound_proto protoreflect.FileDescriptor
 var file_gosdn_southbound_southbound_proto_rawDesc = []byte{
 	0x0a, 0x21, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75,
 	0x6e, 0x64, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x12, 0x10, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68,
-	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f,
-	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x51, 0x0a, 0x13, 0x53, 0x6f, 0x75, 0x74, 0x68,
-	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x0e,
-	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a,
-	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e,
-	0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x2a, 0x35, 0x0a, 0x04, 0x54, 0x79,
-	0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47,
-	0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x49,
-	0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x4c, 0x55, 0x47, 0x49, 0x4e, 0x10,
-	0x02, 0x42, 0x30, 0x5a, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d,
-	0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f,
-	0x67, 0x6f, 0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f,
-	0x75, 0x6e, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68,
+	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x1a, 0x20, 0x67,
+	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64,
+	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
+	0x59, 0x0a, 0x13, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x74,
+	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75,
+	0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
+	0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x2a, 0x5a, 0x0a, 0x04, 0x54, 0x79,
+	0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
+	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x59, 0x50, 0x45,
+	0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x01, 0x12, 0x16, 0x0a,
+	0x12, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x49,
+	0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4c,
+	0x55, 0x47, 0x49, 0x4e, 0x10, 0x03, 0x42, 0x30, 0x5a, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66,
+	0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74,
+	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x73, 0x6f,
+	0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -163,11 +169,11 @@ func file_gosdn_southbound_southbound_proto_rawDescGZIP() []byte {
 var file_gosdn_southbound_southbound_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
 var file_gosdn_southbound_southbound_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 var file_gosdn_southbound_southbound_proto_goTypes = []interface{}{
-	(Type)(0),                   // 0: gosdn.southbound.Type
-	(*SouthboundInterface)(nil), // 1: gosdn.southbound.SouthboundInterface
+	(Type)(0),                   // 0: gosdn.southbound.v1alpha.Type
+	(*SouthboundInterface)(nil), // 1: gosdn.southbound.v1alpha.SouthboundInterface
 }
 var file_gosdn_southbound_southbound_proto_depIdxs = []int32{
-	0, // 0: gosdn.southbound.SouthboundInterface.type:type_name -> gosdn.southbound.Type
+	0, // 0: gosdn.southbound.v1alpha.SouthboundInterface.type:type_name -> gosdn.southbound.v1alpha.Type
 	1, // [1:1] is the sub-list for method output_type
 	1, // [1:1] is the sub-list for method input_type
 	1, // [1:1] is the sub-list for extension type_name
diff --git a/go/gosdn/southbound/v1alpha/southbound.pb.go b/go/gosdn/southbound/v1alpha/southbound.pb.go
deleted file mode 100644
index 5dc233d..0000000
--- a/go/gosdn/southbound/v1alpha/southbound.pb.go
+++ /dev/null
@@ -1,223 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.27.1
-// 	protoc        (unknown)
-// source: gosdn/southbound/v1alpha/southbound.proto
-
-package southbound
-
-import (
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	_ "google.golang.org/protobuf/types/descriptorpb"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type Type int32
-
-const (
-	Type_TYPE_UNSPECIFIED   Type = 0
-	Type_TYPE_OPENCONFIG    Type = 1
-	Type_TYPE_CONTAINERISED Type = 2
-	Type_TYPE_PLUGIN        Type = 3
-)
-
-// Enum value maps for Type.
-var (
-	Type_name = map[int32]string{
-		0: "TYPE_UNSPECIFIED",
-		1: "TYPE_OPENCONFIG",
-		2: "TYPE_CONTAINERISED",
-		3: "TYPE_PLUGIN",
-	}
-	Type_value = map[string]int32{
-		"TYPE_UNSPECIFIED":   0,
-		"TYPE_OPENCONFIG":    1,
-		"TYPE_CONTAINERISED": 2,
-		"TYPE_PLUGIN":        3,
-	}
-)
-
-func (x Type) Enum() *Type {
-	p := new(Type)
-	*p = x
-	return p
-}
-
-func (x Type) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Type) Descriptor() protoreflect.EnumDescriptor {
-	return file_gosdn_southbound_v1alpha_southbound_proto_enumTypes[0].Descriptor()
-}
-
-func (Type) Type() protoreflect.EnumType {
-	return &file_gosdn_southbound_v1alpha_southbound_proto_enumTypes[0]
-}
-
-func (x Type) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Type.Descriptor instead.
-func (Type) EnumDescriptor() ([]byte, []int) {
-	return file_gosdn_southbound_v1alpha_southbound_proto_rawDescGZIP(), []int{0}
-}
-
-type SouthboundInterface struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id   string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Type Type   `protobuf:"varint,2,opt,name=type,proto3,enum=gosdn.southbound.v1alpha.Type" json:"type,omitempty"`
-}
-
-func (x *SouthboundInterface) Reset() {
-	*x = SouthboundInterface{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_southbound_v1alpha_southbound_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SouthboundInterface) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SouthboundInterface) ProtoMessage() {}
-
-func (x *SouthboundInterface) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_southbound_v1alpha_southbound_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SouthboundInterface.ProtoReflect.Descriptor instead.
-func (*SouthboundInterface) Descriptor() ([]byte, []int) {
-	return file_gosdn_southbound_v1alpha_southbound_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *SouthboundInterface) GetId() string {
-	if x != nil {
-		return x.Id
-	}
-	return ""
-}
-
-func (x *SouthboundInterface) GetType() Type {
-	if x != nil {
-		return x.Type
-	}
-	return Type_TYPE_UNSPECIFIED
-}
-
-var File_gosdn_southbound_v1alpha_southbound_proto protoreflect.FileDescriptor
-
-var file_gosdn_southbound_v1alpha_southbound_proto_rawDesc = []byte{
-	0x0a, 0x29, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75,
-	0x6e, 0x64, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68,
-	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76, 0x31,
-	0x61, 0x6c, 0x70, 0x68, 0x61, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f,
-	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x59, 0x0a, 0x13, 0x53, 0x6f, 0x75, 0x74, 0x68,
-	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x0e,
-	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32,
-	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e,
-	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79,
-	0x70, 0x65, 0x2a, 0x5a, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59,
-	0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
-	0x12, 0x13, 0x0a, 0x0f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4f, 0x4e,
-	0x46, 0x49, 0x47, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f,
-	0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x49, 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0f, 0x0a,
-	0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4c, 0x55, 0x47, 0x49, 0x4e, 0x10, 0x03, 0x42, 0x30,
-	0x5a, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e,
-	0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f,
-	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64,
-	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_gosdn_southbound_v1alpha_southbound_proto_rawDescOnce sync.Once
-	file_gosdn_southbound_v1alpha_southbound_proto_rawDescData = file_gosdn_southbound_v1alpha_southbound_proto_rawDesc
-)
-
-func file_gosdn_southbound_v1alpha_southbound_proto_rawDescGZIP() []byte {
-	file_gosdn_southbound_v1alpha_southbound_proto_rawDescOnce.Do(func() {
-		file_gosdn_southbound_v1alpha_southbound_proto_rawDescData = protoimpl.X.CompressGZIP(file_gosdn_southbound_v1alpha_southbound_proto_rawDescData)
-	})
-	return file_gosdn_southbound_v1alpha_southbound_proto_rawDescData
-}
-
-var file_gosdn_southbound_v1alpha_southbound_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_gosdn_southbound_v1alpha_southbound_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_gosdn_southbound_v1alpha_southbound_proto_goTypes = []interface{}{
-	(Type)(0),                   // 0: gosdn.southbound.v1alpha.Type
-	(*SouthboundInterface)(nil), // 1: gosdn.southbound.v1alpha.SouthboundInterface
-}
-var file_gosdn_southbound_v1alpha_southbound_proto_depIdxs = []int32{
-	0, // 0: gosdn.southbound.v1alpha.SouthboundInterface.type:type_name -> gosdn.southbound.v1alpha.Type
-	1, // [1:1] is the sub-list for method output_type
-	1, // [1:1] is the sub-list for method input_type
-	1, // [1:1] is the sub-list for extension type_name
-	1, // [1:1] is the sub-list for extension extendee
-	0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_gosdn_southbound_v1alpha_southbound_proto_init() }
-func file_gosdn_southbound_v1alpha_southbound_proto_init() {
-	if File_gosdn_southbound_v1alpha_southbound_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_southbound_v1alpha_southbound_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			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{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_gosdn_southbound_v1alpha_southbound_proto_rawDesc,
-			NumEnums:      1,
-			NumMessages:   1,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_gosdn_southbound_v1alpha_southbound_proto_goTypes,
-		DependencyIndexes: file_gosdn_southbound_v1alpha_southbound_proto_depIdxs,
-		EnumInfos:         file_gosdn_southbound_v1alpha_southbound_proto_enumTypes,
-		MessageInfos:      file_gosdn_southbound_v1alpha_southbound_proto_msgTypes,
-	}.Build()
-	File_gosdn_southbound_v1alpha_southbound_proto = out.File
-	file_gosdn_southbound_v1alpha_southbound_proto_rawDesc = nil
-	file_gosdn_southbound_v1alpha_southbound_proto_goTypes = nil
-	file_gosdn_southbound_v1alpha_southbound_proto_depIdxs = nil
-}
diff --git a/go/gosdn/transport/transport.pb.go b/go/gosdn/transport/transport.pb.go
index 99279bb..5218920 100644
--- a/go/gosdn/transport/transport.pb.go
+++ b/go/gosdn/transport/transport.pb.go
@@ -35,8 +35,8 @@ type TransportOption struct {
 	// Types that are assignable to TransportOption:
 	//	*TransportOption_GnmiTransportOption
 	//	*TransportOption_RestconfTransportOption
-	TransportOption isTransportOption_TransportOption `protobuf_oneof:"transportOption"`
-	Type            southbound.Type                   `protobuf:"varint,7,opt,name=type,proto3,enum=gosdn.southbound.Type" json:"type,omitempty"`
+	TransportOption isTransportOption_TransportOption `protobuf_oneof:"transport_option"`
+	Type            southbound.Type                   `protobuf:"varint,7,opt,name=type,proto3,enum=gosdn.southbound.v1alpha.Type" json:"type,omitempty"`
 }
 
 func (x *TransportOption) Reset() {
@@ -132,11 +132,11 @@ type isTransportOption_TransportOption interface {
 }
 
 type TransportOption_GnmiTransportOption struct {
-	GnmiTransportOption *GnmiTransportOption `protobuf:"bytes,5,opt,name=GnmiTransportOption,proto3,oneof"`
+	GnmiTransportOption *GnmiTransportOption `protobuf:"bytes,5,opt,name=gnmi_transport_option,json=gnmiTransportOption,proto3,oneof"`
 }
 
 type TransportOption_RestconfTransportOption struct {
-	RestconfTransportOption *RestconfTransportOption `protobuf:"bytes,6,opt,name=RestconfTransportOption,proto3,oneof"`
+	RestconfTransportOption *RestconfTransportOption `protobuf:"bytes,6,opt,name=restconf_transport_option,json=restconfTransportOption,proto3,oneof"`
 }
 
 func (*TransportOption_GnmiTransportOption) isTransportOption_TransportOption() {}
@@ -149,7 +149,7 @@ type GnmiTransportOption struct {
 	unknownFields protoimpl.UnknownFields
 
 	Compression     string            `protobuf:"bytes,1,opt,name=compression,proto3" json:"compression,omitempty"`
-	GrpcDialOptions map[string]string `protobuf:"bytes,2,rep,name=grpcDialOptions,proto3" json:"grpcDialOptions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	GrpcDialOptions map[string]string `protobuf:"bytes,2,rep,name=grpc_dial_options,json=grpcDialOptions,proto3" json:"grpc_dial_options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 	Token           string            `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"`
 	Encoding        gnmi.Encoding     `protobuf:"varint,4,opt,name=encoding,proto3,enum=gnmi.Encoding" json:"encoding,omitempty"`
 }
@@ -257,62 +257,65 @@ var File_gosdn_transport_transport_proto protoreflect.FileDescriptor
 var file_gosdn_transport_transport_proto_rawDesc = []byte{
 	0x0a, 0x1f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72,
 	0x74, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
-	0x72, 0x74, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
-	0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69,
-	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x67, 0x6e, 0x6d, 0x69,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x73, 0x6f,
-	0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f,
-	0x75, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf4, 0x02, 0x0a, 0x0f, 0x54, 0x72,
-	0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e,
-	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e,
-	0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12,
-	0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c,
-	0x73, 0x12, 0x58, 0x0a, 0x13, 0x47, 0x6e, 0x6d, 0x69, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
-	0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24,
-	0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
-	0x2e, 0x47, 0x6e, 0x6d, 0x69, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x47, 0x6e, 0x6d, 0x69, 0x54, 0x72, 0x61, 0x6e,
-	0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x64, 0x0a, 0x17, 0x52,
-	0x65, 0x73, 0x74, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
-	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x52,
-	0x65, 0x73, 0x74, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
-	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x52, 0x65, 0x73, 0x74, 0x63, 0x6f,
-	0x6e, 0x66, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f,
-	0x6e, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32,
-	0x16, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75,
-	0x6e, 0x64, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a,
-	0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
-	0x22, 0xa2, 0x02, 0x0a, 0x13, 0x47, 0x6e, 0x6d, 0x69, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
-	0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70,
-	0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63,
-	0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x63, 0x0a, 0x0f, 0x67, 0x72,
-	0x70, 0x63, 0x44, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e,
-	0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x47, 0x6e, 0x6d, 0x69, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70,
-	0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x44, 0x69,
-	0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f,
-	0x67, 0x72, 0x70, 0x63, 0x44, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
-	0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
-	0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2a, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e,
-	0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x45,
-	0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e,
-	0x67, 0x1a, 0x42, 0x0a, 0x14, 0x47, 0x72, 0x70, 0x63, 0x44, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74,
-	0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
-	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
-	0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x74, 0x63, 0x6f, 0x6e,
-	0x66, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
-	0x42, 0x2f, 0x5a, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64,
-	0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
-	0x6f, 0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72,
-	0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x6f, 0x12, 0x17, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
+	0x72, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67,
+	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63,
+	0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x69,
+	0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e,
+	0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
+	0x6e, 0x6d, 0x69, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21,
+	0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64,
+	0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x22, 0x91, 0x03, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f,
+	0x70, 0x74, 0x69, 0x6f, 0x6e, 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,
+	0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70,
+	0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
+	0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x04,
+	0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x62, 0x0a, 0x15, 0x67, 0x6e, 0x6d,
+	0x69, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69,
+	0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
+	0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
+	0x68, 0x61, 0x2e, 0x47, 0x6e, 0x6d, 0x69, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
+	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x67, 0x6e, 0x6d, 0x69, 0x54, 0x72,
+	0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6e, 0x0a,
+	0x19, 0x72, 0x65, 0x73, 0x74, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70,
+	0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x30, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
+	0x72, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x63,
+	0x6f, 0x6e, 0x66, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69,
+	0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x72, 0x65, 0x73, 0x74, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x72,
+	0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a,
+	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x6f,
+	0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76,
+	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70,
+	0x65, 0x42, 0x12, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f,
+	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x02, 0x0a, 0x13, 0x47, 0x6e, 0x6d, 0x69, 0x54, 0x72,
+	0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a,
+	0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12,
+	0x6d, 0x0a, 0x11, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74,
+	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x73,
+	0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x76, 0x31, 0x61,
+	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x6e, 0x6d, 0x69, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
+	0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x44, 0x69, 0x61,
+	0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x67,
+	0x72, 0x70, 0x63, 0x44, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14,
+	0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74,
+	0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2a, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67,
+	0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x45, 0x6e,
+	0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67,
+	0x1a, 0x42, 0x0a, 0x14, 0x47, 0x72, 0x70, 0x63, 0x44, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69,
+	0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
+	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+	0x3a, 0x02, 0x38, 0x01, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x74, 0x63, 0x6f, 0x6e, 0x66,
+	0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42,
+	0x2f, 0x5a, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61,
+	0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
+	0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
+	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -329,19 +332,19 @@ func file_gosdn_transport_transport_proto_rawDescGZIP() []byte {
 
 var file_gosdn_transport_transport_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
 var file_gosdn_transport_transport_proto_goTypes = []interface{}{
-	(*TransportOption)(nil),         // 0: gosdn.transport.TransportOption
-	(*GnmiTransportOption)(nil),     // 1: gosdn.transport.GnmiTransportOption
-	(*RestconfTransportOption)(nil), // 2: gosdn.transport.RestconfTransportOption
-	nil,                             // 3: gosdn.transport.GnmiTransportOption.GrpcDialOptionsEntry
-	(southbound.Type)(0),            // 4: gosdn.southbound.Type
+	(*TransportOption)(nil),         // 0: gosdn.transport.v1alpha.TransportOption
+	(*GnmiTransportOption)(nil),     // 1: gosdn.transport.v1alpha.GnmiTransportOption
+	(*RestconfTransportOption)(nil), // 2: gosdn.transport.v1alpha.RestconfTransportOption
+	nil,                             // 3: gosdn.transport.v1alpha.GnmiTransportOption.GrpcDialOptionsEntry
+	(southbound.Type)(0),            // 4: gosdn.southbound.v1alpha.Type
 	(gnmi.Encoding)(0),              // 5: gnmi.Encoding
 }
 var file_gosdn_transport_transport_proto_depIdxs = []int32{
-	1, // 0: gosdn.transport.TransportOption.GnmiTransportOption:type_name -> gosdn.transport.GnmiTransportOption
-	2, // 1: gosdn.transport.TransportOption.RestconfTransportOption:type_name -> gosdn.transport.RestconfTransportOption
-	4, // 2: gosdn.transport.TransportOption.type:type_name -> gosdn.southbound.Type
-	3, // 3: gosdn.transport.GnmiTransportOption.grpcDialOptions:type_name -> gosdn.transport.GnmiTransportOption.GrpcDialOptionsEntry
-	5, // 4: gosdn.transport.GnmiTransportOption.encoding:type_name -> gnmi.Encoding
+	1, // 0: gosdn.transport.v1alpha.TransportOption.gnmi_transport_option:type_name -> gosdn.transport.v1alpha.GnmiTransportOption
+	2, // 1: gosdn.transport.v1alpha.TransportOption.restconf_transport_option:type_name -> gosdn.transport.v1alpha.RestconfTransportOption
+	4, // 2: gosdn.transport.v1alpha.TransportOption.type:type_name -> gosdn.southbound.v1alpha.Type
+	3, // 3: gosdn.transport.v1alpha.GnmiTransportOption.grpc_dial_options:type_name -> gosdn.transport.v1alpha.GnmiTransportOption.GrpcDialOptionsEntry
+	5, // 4: gosdn.transport.v1alpha.GnmiTransportOption.encoding:type_name -> gnmi.Encoding
 	5, // [5:5] is the sub-list for method output_type
 	5, // [5:5] is the sub-list for method input_type
 	5, // [5:5] is the sub-list for extension type_name
diff --git a/go/gosdn/transport/v1alpha/transport.pb.go b/go/gosdn/transport/v1alpha/transport.pb.go
deleted file mode 100644
index 1d40166..0000000
--- a/go/gosdn/transport/v1alpha/transport.pb.go
+++ /dev/null
@@ -1,421 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.27.1
-// 	protoc        (unknown)
-// source: gosdn/transport/v1alpha/transport.proto
-
-package transport
-
-import (
-	southbound "code.fbi.h-da.de/danet/api/go/gosdn/southbound"
-	gnmi "github.com/openconfig/gnmi/proto/gnmi"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	_ "google.golang.org/protobuf/types/descriptorpb"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-type TransportOption struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Address  string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
-	Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
-	Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
-	Tls      bool   `protobuf:"varint,4,opt,name=tls,proto3" json:"tls,omitempty"`
-	// Types that are assignable to TransportOption:
-	//	*TransportOption_GnmiTransportOption
-	//	*TransportOption_RestconfTransportOption
-	TransportOption isTransportOption_TransportOption `protobuf_oneof:"transport_option"`
-	Type            southbound.Type                   `protobuf:"varint,7,opt,name=type,proto3,enum=gosdn.southbound.v1alpha.Type" json:"type,omitempty"`
-}
-
-func (x *TransportOption) Reset() {
-	*x = TransportOption{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_transport_v1alpha_transport_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *TransportOption) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*TransportOption) ProtoMessage() {}
-
-func (x *TransportOption) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_transport_v1alpha_transport_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use TransportOption.ProtoReflect.Descriptor instead.
-func (*TransportOption) Descriptor() ([]byte, []int) {
-	return file_gosdn_transport_v1alpha_transport_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *TransportOption) GetAddress() string {
-	if x != nil {
-		return x.Address
-	}
-	return ""
-}
-
-func (x *TransportOption) GetUsername() string {
-	if x != nil {
-		return x.Username
-	}
-	return ""
-}
-
-func (x *TransportOption) GetPassword() string {
-	if x != nil {
-		return x.Password
-	}
-	return ""
-}
-
-func (x *TransportOption) GetTls() bool {
-	if x != nil {
-		return x.Tls
-	}
-	return false
-}
-
-func (m *TransportOption) GetTransportOption() isTransportOption_TransportOption {
-	if m != nil {
-		return m.TransportOption
-	}
-	return nil
-}
-
-func (x *TransportOption) GetGnmiTransportOption() *GnmiTransportOption {
-	if x, ok := x.GetTransportOption().(*TransportOption_GnmiTransportOption); ok {
-		return x.GnmiTransportOption
-	}
-	return nil
-}
-
-func (x *TransportOption) GetRestconfTransportOption() *RestconfTransportOption {
-	if x, ok := x.GetTransportOption().(*TransportOption_RestconfTransportOption); ok {
-		return x.RestconfTransportOption
-	}
-	return nil
-}
-
-func (x *TransportOption) GetType() southbound.Type {
-	if x != nil {
-		return x.Type
-	}
-	return southbound.Type(0)
-}
-
-type isTransportOption_TransportOption interface {
-	isTransportOption_TransportOption()
-}
-
-type TransportOption_GnmiTransportOption struct {
-	GnmiTransportOption *GnmiTransportOption `protobuf:"bytes,5,opt,name=gnmi_transport_option,json=gnmiTransportOption,proto3,oneof"`
-}
-
-type TransportOption_RestconfTransportOption struct {
-	RestconfTransportOption *RestconfTransportOption `protobuf:"bytes,6,opt,name=restconf_transport_option,json=restconfTransportOption,proto3,oneof"`
-}
-
-func (*TransportOption_GnmiTransportOption) isTransportOption_TransportOption() {}
-
-func (*TransportOption_RestconfTransportOption) isTransportOption_TransportOption() {}
-
-type GnmiTransportOption struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Compression     string            `protobuf:"bytes,1,opt,name=compression,proto3" json:"compression,omitempty"`
-	GrpcDialOptions map[string]string `protobuf:"bytes,2,rep,name=grpc_dial_options,json=grpcDialOptions,proto3" json:"grpc_dial_options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	Token           string            `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"`
-	Encoding        gnmi.Encoding     `protobuf:"varint,4,opt,name=encoding,proto3,enum=gnmi.Encoding" json:"encoding,omitempty"`
-}
-
-func (x *GnmiTransportOption) Reset() {
-	*x = GnmiTransportOption{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_transport_v1alpha_transport_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GnmiTransportOption) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GnmiTransportOption) ProtoMessage() {}
-
-func (x *GnmiTransportOption) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_transport_v1alpha_transport_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GnmiTransportOption.ProtoReflect.Descriptor instead.
-func (*GnmiTransportOption) Descriptor() ([]byte, []int) {
-	return file_gosdn_transport_v1alpha_transport_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *GnmiTransportOption) GetCompression() string {
-	if x != nil {
-		return x.Compression
-	}
-	return ""
-}
-
-func (x *GnmiTransportOption) GetGrpcDialOptions() map[string]string {
-	if x != nil {
-		return x.GrpcDialOptions
-	}
-	return nil
-}
-
-func (x *GnmiTransportOption) GetToken() string {
-	if x != nil {
-		return x.Token
-	}
-	return ""
-}
-
-func (x *GnmiTransportOption) GetEncoding() gnmi.Encoding {
-	if x != nil {
-		return x.Encoding
-	}
-	return gnmi.Encoding(0)
-}
-
-type RestconfTransportOption struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *RestconfTransportOption) Reset() {
-	*x = RestconfTransportOption{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_gosdn_transport_v1alpha_transport_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *RestconfTransportOption) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*RestconfTransportOption) ProtoMessage() {}
-
-func (x *RestconfTransportOption) ProtoReflect() protoreflect.Message {
-	mi := &file_gosdn_transport_v1alpha_transport_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use RestconfTransportOption.ProtoReflect.Descriptor instead.
-func (*RestconfTransportOption) Descriptor() ([]byte, []int) {
-	return file_gosdn_transport_v1alpha_transport_proto_rawDescGZIP(), []int{2}
-}
-
-var File_gosdn_transport_v1alpha_transport_proto protoreflect.FileDescriptor
-
-var file_gosdn_transport_v1alpha_transport_proto_rawDesc = []byte{
-	0x0a, 0x27, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72,
-	0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70,
-	0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x67, 0x6f, 0x73, 0x64, 0x6e,
-	0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
-	0x68, 0x61, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
-	0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69,
-	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x67, 0x6e, 0x6d, 0x69,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x73, 0x6f,
-	0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
-	0x2f, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x22, 0x91, 0x03, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f,
-	0x70, 0x74, 0x69, 0x6f, 0x6e, 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,
-	0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70,
-	0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
-	0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x04,
-	0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x62, 0x0a, 0x15, 0x67, 0x6e, 0x6d,
-	0x69, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69,
-	0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e,
-	0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
-	0x68, 0x61, 0x2e, 0x47, 0x6e, 0x6d, 0x69, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
-	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x13, 0x67, 0x6e, 0x6d, 0x69, 0x54, 0x72,
-	0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6e, 0x0a,
-	0x19, 0x72, 0x65, 0x73, 0x74, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70,
-	0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x30, 0x2e, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
-	0x72, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x63,
-	0x6f, 0x6e, 0x66, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69,
-	0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x72, 0x65, 0x73, 0x74, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x72,
-	0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a,
-	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x6f,
-	0x73, 0x64, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x74, 0x68, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x76,
-	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70,
-	0x65, 0x42, 0x12, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f,
-	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x02, 0x0a, 0x13, 0x47, 0x6e, 0x6d, 0x69, 0x54, 0x72,
-	0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a,
-	0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12,
-	0x6d, 0x0a, 0x11, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74,
-	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x76, 0x31, 0x61,
-	0x6c, 0x70, 0x68, 0x61, 0x2e, 0x47, 0x6e, 0x6d, 0x69, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
-	0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x44, 0x69, 0x61,
-	0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x67,
-	0x72, 0x70, 0x63, 0x44, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14,
-	0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74,
-	0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2a, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x45, 0x6e,
-	0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67,
-	0x1a, 0x42, 0x0a, 0x14, 0x47, 0x72, 0x70, 0x63, 0x44, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69,
-	0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
-	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
-	0x3a, 0x02, 0x38, 0x01, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x74, 0x63, 0x6f, 0x6e, 0x66,
-	0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42,
-	0x2f, 0x5a, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61,
-	0x2e, 0x64, 0x65, 0x2f, 0x64, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
-	0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
-	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_gosdn_transport_v1alpha_transport_proto_rawDescOnce sync.Once
-	file_gosdn_transport_v1alpha_transport_proto_rawDescData = file_gosdn_transport_v1alpha_transport_proto_rawDesc
-)
-
-func file_gosdn_transport_v1alpha_transport_proto_rawDescGZIP() []byte {
-	file_gosdn_transport_v1alpha_transport_proto_rawDescOnce.Do(func() {
-		file_gosdn_transport_v1alpha_transport_proto_rawDescData = protoimpl.X.CompressGZIP(file_gosdn_transport_v1alpha_transport_proto_rawDescData)
-	})
-	return file_gosdn_transport_v1alpha_transport_proto_rawDescData
-}
-
-var file_gosdn_transport_v1alpha_transport_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_gosdn_transport_v1alpha_transport_proto_goTypes = []interface{}{
-	(*TransportOption)(nil),         // 0: gosdn.transport.v1alpha.TransportOption
-	(*GnmiTransportOption)(nil),     // 1: gosdn.transport.v1alpha.GnmiTransportOption
-	(*RestconfTransportOption)(nil), // 2: gosdn.transport.v1alpha.RestconfTransportOption
-	nil,                             // 3: gosdn.transport.v1alpha.GnmiTransportOption.GrpcDialOptionsEntry
-	(southbound.Type)(0),            // 4: gosdn.southbound.v1alpha.Type
-	(gnmi.Encoding)(0),              // 5: gnmi.Encoding
-}
-var file_gosdn_transport_v1alpha_transport_proto_depIdxs = []int32{
-	1, // 0: gosdn.transport.v1alpha.TransportOption.gnmi_transport_option:type_name -> gosdn.transport.v1alpha.GnmiTransportOption
-	2, // 1: gosdn.transport.v1alpha.TransportOption.restconf_transport_option:type_name -> gosdn.transport.v1alpha.RestconfTransportOption
-	4, // 2: gosdn.transport.v1alpha.TransportOption.type:type_name -> gosdn.southbound.v1alpha.Type
-	3, // 3: gosdn.transport.v1alpha.GnmiTransportOption.grpc_dial_options:type_name -> gosdn.transport.v1alpha.GnmiTransportOption.GrpcDialOptionsEntry
-	5, // 4: gosdn.transport.v1alpha.GnmiTransportOption.encoding:type_name -> gnmi.Encoding
-	5, // [5:5] is the sub-list for method output_type
-	5, // [5:5] is the sub-list for method input_type
-	5, // [5:5] is the sub-list for extension type_name
-	5, // [5:5] is the sub-list for extension extendee
-	0, // [0:5] is the sub-list for field type_name
-}
-
-func init() { file_gosdn_transport_v1alpha_transport_proto_init() }
-func file_gosdn_transport_v1alpha_transport_proto_init() {
-	if File_gosdn_transport_v1alpha_transport_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_gosdn_transport_v1alpha_transport_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_transport_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_transport_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			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_v1alpha_transport_proto_msgTypes[0].OneofWrappers = []interface{}{
-		(*TransportOption_GnmiTransportOption)(nil),
-		(*TransportOption_RestconfTransportOption)(nil),
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_gosdn_transport_v1alpha_transport_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   4,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_gosdn_transport_v1alpha_transport_proto_goTypes,
-		DependencyIndexes: file_gosdn_transport_v1alpha_transport_proto_depIdxs,
-		MessageInfos:      file_gosdn_transport_v1alpha_transport_proto_msgTypes,
-	}.Build()
-	File_gosdn_transport_v1alpha_transport_proto = out.File
-	file_gosdn_transport_v1alpha_transport_proto_rawDesc = nil
-	file_gosdn_transport_v1alpha_transport_proto_goTypes = nil
-	file_gosdn_transport_v1alpha_transport_proto_depIdxs = nil
-}
diff --git a/openapiv2/gosdn_northbound.swagger.json b/openapiv2/gosdn_northbound.swagger.json
index ec9bb13..365e020 100644
--- a/openapiv2/gosdn_northbound.swagger.json
+++ b/openapiv2/gosdn_northbound.swagger.json
@@ -24,13 +24,13 @@
       "name": "gNMI"
     },
     {
-      "name": "AgentManager"
+      "name": "CsbiService"
     },
     {
-      "name": "CoreService"
+      "name": "AgentManager"
     },
     {
-      "name": "CsbiService"
+      "name": "CoreService"
     }
   ],
   "consumes": [
@@ -1156,16 +1156,6 @@
     }
   },
   "definitions": {
-    "ChangeRequestApiOperation": {
-      "type": "string",
-      "enum": [
-        "API_OPERATION_UNSPECIFIED",
-        "API_OPERATION_UPDATE",
-        "API_OPERATION_REPLACE",
-        "API_OPERATION_DELETE"
-      ],
-      "default": "API_OPERATION_UNSPECIFIED"
-    },
     "ConfigClientType": {
       "type": "string",
       "enum": [
@@ -2430,6 +2420,16 @@
         }
       }
     },
+    "v1alphaApiOperation": {
+      "type": "string",
+      "enum": [
+        "API_OPERATION_UNSPECIFIED",
+        "API_OPERATION_UPDATE",
+        "API_OPERATION_REPLACE",
+        "API_OPERATION_DELETE"
+      ],
+      "default": "API_OPERATION_UNSPECIFIED"
+    },
     "v1alphaChange": {
       "type": "object",
       "properties": {
@@ -2455,7 +2455,7 @@
           "type": "string"
         },
         "apiOp": {
-          "$ref": "#/definitions/ChangeRequestApiOperation"
+          "$ref": "#/definitions/v1alphaApiOperation"
         }
       },
       "title": "TODO: rename"
diff --git a/proto/gosdn/core/v1alpha/core.proto b/proto/gosdn/core/core.proto
similarity index 97%
rename from proto/gosdn/core/v1alpha/core.proto
rename to proto/gosdn/core/core.proto
index 34995cd..b625e6c 100644
--- a/proto/gosdn/core/v1alpha/core.proto
+++ b/proto/gosdn/core/core.proto
@@ -3,7 +3,7 @@ syntax = "proto3";
 package gosdn.core.v1alpha;
 
 import "google/api/annotations.proto";
-import "gosdn/pnd/v1alpha/pnd.proto";
+import "gosdn/pnd/pnd.proto";
 
 option go_package = "code.fbi.h-da.de/danet/api/go/gosdn/core";
 
diff --git a/proto/gosdn/csbi/v1alpha/csbi.proto b/proto/gosdn/csbi/csbi.proto
similarity index 97%
rename from proto/gosdn/csbi/v1alpha/csbi.proto
rename to proto/gosdn/csbi/csbi.proto
index 6f6c5c5..f59a09e 100644
--- a/proto/gosdn/csbi/v1alpha/csbi.proto
+++ b/proto/gosdn/csbi/csbi.proto
@@ -2,7 +2,7 @@ syntax = "proto3";
 
 package gosdn.csbi.v1alpha;
 
-import "gosdn/transport/v1alpha/transport.proto";
+import "gosdn/transport/transport.proto";
 
 option go_package = "code.fbi.h-da.de/danet/api/go/gosdn/csbi";
 
diff --git a/proto/gosdn/pnd/v1alpha/pnd.proto b/proto/gosdn/pnd/pnd.proto
similarity index 97%
rename from proto/gosdn/pnd/v1alpha/pnd.proto
rename to proto/gosdn/pnd/pnd.proto
index 83409db..036d261 100644
--- a/proto/gosdn/pnd/v1alpha/pnd.proto
+++ b/proto/gosdn/pnd/pnd.proto
@@ -6,8 +6,8 @@ import "google/api/annotations.proto";
 //import "protoc-gen-openapiv2/options/annotations.proto";
 import "google/protobuf/descriptor.proto";
 import "github.com/openconfig/gnmi/proto/gnmi/gnmi.proto";
-import "gosdn/transport/v1alpha/transport.proto";
-import "gosdn/southbound/v1alpha/southbound.proto";
+import "gosdn/transport/transport.proto";
+import "gosdn/southbound/southbound.proto";
 import "protoc-gen-openapiv2/options/annotations.proto";
 
 option go_package = "code.fbi.h-da.de/danet/api/go/gosdn/pnd";
@@ -277,17 +277,18 @@ message SetChange {
 
 //TODO: rename
 message ChangeRequest {
-  enum ApiOperation {
-    API_OPERATION_UNSPECIFIED = 0;
-    API_OPERATION_UPDATE = 1;
-    API_OPERATION_REPLACE = 2;
-    API_OPERATION_DELETE = 3;
-  }
   string path = 1;
   string value = 2;
   ApiOperation api_op = 3;
 }
 
+ enum ApiOperation {
+   API_OPERATION_UNSPECIFIED = 0;
+   API_OPERATION_UPDATE = 1;
+   API_OPERATION_REPLACE = 2;
+   API_OPERATION_DELETE = 3;
+ }
+
 message SetResponse{
   int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
   Status status = 2;
@@ -334,12 +335,12 @@ message DeleteOndRequest {
 }
 
 message DeletePndResponse {
-  int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.  
+  int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
   Status status = 2;
 }
 
 message DeleteOndResponse {
-  int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.  
+  int64 timestamp = 1;          // Timestamp in nanoseconds since Epoch.
   Status status = 2;
 }
 
@@ -347,4 +348,4 @@ enum Status {
   STATUS_UNSPECIFIED = 0;
   STATUS_OK = 1;
   STATUS_ERROR = 2;
-}
\ No newline at end of file
+}
diff --git a/proto/gosdn/southbound/v1alpha/southbound.proto b/proto/gosdn/southbound/southbound.proto
similarity index 100%
rename from proto/gosdn/southbound/v1alpha/southbound.proto
rename to proto/gosdn/southbound/southbound.proto
diff --git a/proto/gosdn/transport/v1alpha/transport.proto b/proto/gosdn/transport/transport.proto
similarity index 93%
rename from proto/gosdn/transport/v1alpha/transport.proto
rename to proto/gosdn/transport/transport.proto
index 25b3280..a264413 100644
--- a/proto/gosdn/transport/v1alpha/transport.proto
+++ b/proto/gosdn/transport/transport.proto
@@ -4,7 +4,7 @@ package gosdn.transport.v1alpha;
 
 import "google/protobuf/descriptor.proto";
 import "github.com/openconfig/gnmi/proto/gnmi/gnmi.proto";
-import "gosdn/southbound/v1alpha/southbound.proto";
+import "gosdn/southbound/southbound.proto";
 
 option go_package = "code.fbi.h-da.de/danet/api/go/gosdn/transport";
 
@@ -29,4 +29,4 @@ message GnmiTransportOption {
 
 message RestconfTransportOption {
 
-}
\ No newline at end of file
+}
-- 
GitLab