// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc             (unknown)
// source: gosdn/networkelement/networkelement.proto

package networkelement

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

const (
	NetworkElementService_Add_FullMethodName                 = "/gosdn.networkelement.NetworkElementService/Add"
	NetworkElementService_Get_FullMethodName                 = "/gosdn.networkelement.NetworkElementService/Get"
	NetworkElementService_GetAll_FullMethodName              = "/gosdn.networkelement.NetworkElementService/GetAll"
	NetworkElementService_Update_FullMethodName              = "/gosdn.networkelement.NetworkElementService/Update"
	NetworkElementService_GetMneList_FullMethodName          = "/gosdn.networkelement.NetworkElementService/GetMneList"
	NetworkElementService_GetFlattenedMneList_FullMethodName = "/gosdn.networkelement.NetworkElementService/GetFlattenedMneList"
	NetworkElementService_GetMne_FullMethodName              = "/gosdn.networkelement.NetworkElementService/GetMne"
	NetworkElementService_GetFlattenedMne_FullMethodName     = "/gosdn.networkelement.NetworkElementService/GetFlattenedMne"
	NetworkElementService_SetMneList_FullMethodName          = "/gosdn.networkelement.NetworkElementService/SetMneList"
	NetworkElementService_GetPath_FullMethodName             = "/gosdn.networkelement.NetworkElementService/GetPath"
	NetworkElementService_GetIntendedPath_FullMethodName     = "/gosdn.networkelement.NetworkElementService/GetIntendedPath"
	NetworkElementService_SetPathList_FullMethodName         = "/gosdn.networkelement.NetworkElementService/SetPathList"
	NetworkElementService_DeleteMne_FullMethodName           = "/gosdn.networkelement.NetworkElementService/DeleteMne"
	NetworkElementService_GetChangeList_FullMethodName       = "/gosdn.networkelement.NetworkElementService/GetChangeList"
	NetworkElementService_GetChange_FullMethodName           = "/gosdn.networkelement.NetworkElementService/GetChange"
	NetworkElementService_SetChangeList_FullMethodName       = "/gosdn.networkelement.NetworkElementService/SetChangeList"
	NetworkElementService_SubscribePath_FullMethodName       = "/gosdn.networkelement.NetworkElementService/SubscribePath"
)

// NetworkElementServiceClient is the client API for NetworkElementService 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 NetworkElementServiceClient interface {
	Add(ctx context.Context, in *AddNetworkElementRequest, opts ...grpc.CallOption) (*AddNetworkElementResponse, error)
	Get(ctx context.Context, in *GetNetworkElementRequest, opts ...grpc.CallOption) (*GetNetworkElementResponse, error)
	GetAll(ctx context.Context, in *GetAllNetworkElementRequest, opts ...grpc.CallOption) (*GetAllNetworkElementResponse, error)
	Update(ctx context.Context, in *UpdateNetworkElementRequest, opts ...grpc.CallOption) (*UpdateNetworkElementResponse, error)
	// Allows to request all Managed Network Elements (MNE) which are
	// managed by a specific Principal Network Domain.
	// Full MNEs are provided, which also includes the MNE config as gNMI
	// notification.
	GetMneList(ctx context.Context, in *GetMneListRequest, opts ...grpc.CallOption) (*GetMneListResponse, error)
	// Allows to request all Managed Network Elements (MNE) which are
	// managed by a specific Principal Network Domain.
	// Flattened MNEs are provided, which does not include the MNE config as gNMI
	// notification.
	GetFlattenedMneList(ctx context.Context, in *GetFlattenedMneListRequest, opts ...grpc.CallOption) (*GetFlattenedMneListResponse, error)
	// Allows to request a specific Managed Network Element which is managed by a
	// specific Principal Network Domain.
	GetMne(ctx context.Context, in *GetMneRequest, opts ...grpc.CallOption) (*GetMneResponse, error)
	// TODO: add own getrequest message and http option
	// Allows to request a specific Managed Network Element which is managed by a
	// specific Principal Network Domain. A flattened version of a Managed
	// Network Element is provided.
	GetFlattenedMne(ctx context.Context, in *GetMneRequest, opts ...grpc.CallOption) (*GetFlattenedMneResponse, error)
	// Allows to add multiple Managed Network Elements to be managed by a
	// specific Principal Network Domain.
	SetMneList(ctx context.Context, in *SetMneListRequest, opts ...grpc.CallOption) (*SetMneListResponse, error)
	// Allows to request a specific Path of a Managed Network Element
	// managed by a specific Principal Network Domain.
	// Note: This returns the actual state of the network element.
	// For the inteded state call "GetIntendedPath" instead.
	GetPath(ctx context.Context, in *GetPathRequest, opts ...grpc.CallOption) (*GetPathResponse, error)
	// Allows to request a specific intended Path of a Managed Network Element
	// managed by a specific Principal Network Domain.
	// Note: This returns the state how it is stored the storage.
	// For the actual state of the network element call "GetPath" instead.
	GetIntendedPath(ctx context.Context, in *GetIntendedPathRequest, opts ...grpc.CallOption) (*GetIntendedPathResponse, error)
	// Allows to set a specific Path of a Managed Network Element,
	// managed by a specific Principal Network Domain.
	SetPathList(ctx context.Context, in *SetPathListRequest, opts ...grpc.CallOption) (*SetPathListResponse, error)
	// Allows to delete a specific Managed Network Element which is managed by a
	// specific Principal Network Domain.
	DeleteMne(ctx context.Context, in *DeleteMneRequest, opts ...grpc.CallOption) (*DeleteMneResponse, error)
	// Allows to request all Changes registered for a specific Principal Network Domain.
	GetChangeList(ctx context.Context, in *GetChangeListRequest, opts ...grpc.CallOption) (*GetChangeListResponse, error)
	// Allows to request a specific Change registered for a specific Principal Network Domain.
	GetChange(ctx context.Context, in *GetChangeRequest, opts ...grpc.CallOption) (*GetChangeResponse, error)
	// Allows to operate on multiple Changes registered for a specific Principal Network Domain.
	SetChangeList(ctx context.Context, in *SetChangeListRequest, opts ...grpc.CallOption) (*SetChangeListResponse, error)
	// Allows to subscribe to multiple paths of a Managed Network Element which is
	// managed by a specific Principal Network Domain and streams data depending on the subscribe
	// method.
	SubscribePath(ctx context.Context, in *SubscribePathRequest, opts ...grpc.CallOption) (NetworkElementService_SubscribePathClient, error)
}

type networkElementServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewNetworkElementServiceClient(cc grpc.ClientConnInterface) NetworkElementServiceClient {
	return &networkElementServiceClient{cc}
}

func (c *networkElementServiceClient) Add(ctx context.Context, in *AddNetworkElementRequest, opts ...grpc.CallOption) (*AddNetworkElementResponse, error) {
	out := new(AddNetworkElementResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_Add_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) Get(ctx context.Context, in *GetNetworkElementRequest, opts ...grpc.CallOption) (*GetNetworkElementResponse, error) {
	out := new(GetNetworkElementResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_Get_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) GetAll(ctx context.Context, in *GetAllNetworkElementRequest, opts ...grpc.CallOption) (*GetAllNetworkElementResponse, error) {
	out := new(GetAllNetworkElementResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_GetAll_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) Update(ctx context.Context, in *UpdateNetworkElementRequest, opts ...grpc.CallOption) (*UpdateNetworkElementResponse, error) {
	out := new(UpdateNetworkElementResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_Update_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) GetMneList(ctx context.Context, in *GetMneListRequest, opts ...grpc.CallOption) (*GetMneListResponse, error) {
	out := new(GetMneListResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_GetMneList_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) GetFlattenedMneList(ctx context.Context, in *GetFlattenedMneListRequest, opts ...grpc.CallOption) (*GetFlattenedMneListResponse, error) {
	out := new(GetFlattenedMneListResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_GetFlattenedMneList_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) GetMne(ctx context.Context, in *GetMneRequest, opts ...grpc.CallOption) (*GetMneResponse, error) {
	out := new(GetMneResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_GetMne_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) GetFlattenedMne(ctx context.Context, in *GetMneRequest, opts ...grpc.CallOption) (*GetFlattenedMneResponse, error) {
	out := new(GetFlattenedMneResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_GetFlattenedMne_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) SetMneList(ctx context.Context, in *SetMneListRequest, opts ...grpc.CallOption) (*SetMneListResponse, error) {
	out := new(SetMneListResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_SetMneList_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) GetPath(ctx context.Context, in *GetPathRequest, opts ...grpc.CallOption) (*GetPathResponse, error) {
	out := new(GetPathResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_GetPath_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) GetIntendedPath(ctx context.Context, in *GetIntendedPathRequest, opts ...grpc.CallOption) (*GetIntendedPathResponse, error) {
	out := new(GetIntendedPathResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_GetIntendedPath_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) SetPathList(ctx context.Context, in *SetPathListRequest, opts ...grpc.CallOption) (*SetPathListResponse, error) {
	out := new(SetPathListResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_SetPathList_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) DeleteMne(ctx context.Context, in *DeleteMneRequest, opts ...grpc.CallOption) (*DeleteMneResponse, error) {
	out := new(DeleteMneResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_DeleteMne_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) GetChangeList(ctx context.Context, in *GetChangeListRequest, opts ...grpc.CallOption) (*GetChangeListResponse, error) {
	out := new(GetChangeListResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_GetChangeList_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) GetChange(ctx context.Context, in *GetChangeRequest, opts ...grpc.CallOption) (*GetChangeResponse, error) {
	out := new(GetChangeResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_GetChange_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) SetChangeList(ctx context.Context, in *SetChangeListRequest, opts ...grpc.CallOption) (*SetChangeListResponse, error) {
	out := new(SetChangeListResponse)
	err := c.cc.Invoke(ctx, NetworkElementService_SetChangeList_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *networkElementServiceClient) SubscribePath(ctx context.Context, in *SubscribePathRequest, opts ...grpc.CallOption) (NetworkElementService_SubscribePathClient, error) {
	stream, err := c.cc.NewStream(ctx, &NetworkElementService_ServiceDesc.Streams[0], NetworkElementService_SubscribePath_FullMethodName, opts...)
	if err != nil {
		return nil, err
	}
	x := &networkElementServiceSubscribePathClient{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 NetworkElementService_SubscribePathClient interface {
	Recv() (*SubscribePathResponse, error)
	grpc.ClientStream
}

type networkElementServiceSubscribePathClient struct {
	grpc.ClientStream
}

func (x *networkElementServiceSubscribePathClient) Recv() (*SubscribePathResponse, error) {
	m := new(SubscribePathResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

// NetworkElementServiceServer is the server API for NetworkElementService service.
// All implementations must embed UnimplementedNetworkElementServiceServer
// for forward compatibility
type NetworkElementServiceServer interface {
	Add(context.Context, *AddNetworkElementRequest) (*AddNetworkElementResponse, error)
	Get(context.Context, *GetNetworkElementRequest) (*GetNetworkElementResponse, error)
	GetAll(context.Context, *GetAllNetworkElementRequest) (*GetAllNetworkElementResponse, error)
	Update(context.Context, *UpdateNetworkElementRequest) (*UpdateNetworkElementResponse, error)
	// Allows to request all Managed Network Elements (MNE) which are
	// managed by a specific Principal Network Domain.
	// Full MNEs are provided, which also includes the MNE config as gNMI
	// notification.
	GetMneList(context.Context, *GetMneListRequest) (*GetMneListResponse, error)
	// Allows to request all Managed Network Elements (MNE) which are
	// managed by a specific Principal Network Domain.
	// Flattened MNEs are provided, which does not include the MNE config as gNMI
	// notification.
	GetFlattenedMneList(context.Context, *GetFlattenedMneListRequest) (*GetFlattenedMneListResponse, error)
	// Allows to request a specific Managed Network Element which is managed by a
	// specific Principal Network Domain.
	GetMne(context.Context, *GetMneRequest) (*GetMneResponse, error)
	// TODO: add own getrequest message and http option
	// Allows to request a specific Managed Network Element which is managed by a
	// specific Principal Network Domain. A flattened version of a Managed
	// Network Element is provided.
	GetFlattenedMne(context.Context, *GetMneRequest) (*GetFlattenedMneResponse, error)
	// Allows to add multiple Managed Network Elements to be managed by a
	// specific Principal Network Domain.
	SetMneList(context.Context, *SetMneListRequest) (*SetMneListResponse, error)
	// Allows to request a specific Path of a Managed Network Element
	// managed by a specific Principal Network Domain.
	// Note: This returns the actual state of the network element.
	// For the inteded state call "GetIntendedPath" instead.
	GetPath(context.Context, *GetPathRequest) (*GetPathResponse, error)
	// Allows to request a specific intended Path of a Managed Network Element
	// managed by a specific Principal Network Domain.
	// Note: This returns the state how it is stored the storage.
	// For the actual state of the network element call "GetPath" instead.
	GetIntendedPath(context.Context, *GetIntendedPathRequest) (*GetIntendedPathResponse, error)
	// Allows to set a specific Path of a Managed Network Element,
	// managed by a specific Principal Network Domain.
	SetPathList(context.Context, *SetPathListRequest) (*SetPathListResponse, error)
	// Allows to delete a specific Managed Network Element which is managed by a
	// specific Principal Network Domain.
	DeleteMne(context.Context, *DeleteMneRequest) (*DeleteMneResponse, error)
	// Allows to request all Changes registered for a specific Principal Network Domain.
	GetChangeList(context.Context, *GetChangeListRequest) (*GetChangeListResponse, error)
	// Allows to request a specific Change registered for a specific Principal Network Domain.
	GetChange(context.Context, *GetChangeRequest) (*GetChangeResponse, error)
	// Allows to operate on multiple Changes registered for a specific Principal Network Domain.
	SetChangeList(context.Context, *SetChangeListRequest) (*SetChangeListResponse, error)
	// Allows to subscribe to multiple paths of a Managed Network Element which is
	// managed by a specific Principal Network Domain and streams data depending on the subscribe
	// method.
	SubscribePath(*SubscribePathRequest, NetworkElementService_SubscribePathServer) error
	mustEmbedUnimplementedNetworkElementServiceServer()
}

// UnimplementedNetworkElementServiceServer must be embedded to have forward compatible implementations.
type UnimplementedNetworkElementServiceServer struct {
}

func (UnimplementedNetworkElementServiceServer) Add(context.Context, *AddNetworkElementRequest) (*AddNetworkElementResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Add not implemented")
}
func (UnimplementedNetworkElementServiceServer) Get(context.Context, *GetNetworkElementRequest) (*GetNetworkElementResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
}
func (UnimplementedNetworkElementServiceServer) GetAll(context.Context, *GetAllNetworkElementRequest) (*GetAllNetworkElementResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAll not implemented")
}
func (UnimplementedNetworkElementServiceServer) Update(context.Context, *UpdateNetworkElementRequest) (*UpdateNetworkElementResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Update not implemented")
}
func (UnimplementedNetworkElementServiceServer) GetMneList(context.Context, *GetMneListRequest) (*GetMneListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetMneList not implemented")
}
func (UnimplementedNetworkElementServiceServer) GetFlattenedMneList(context.Context, *GetFlattenedMneListRequest) (*GetFlattenedMneListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFlattenedMneList not implemented")
}
func (UnimplementedNetworkElementServiceServer) GetMne(context.Context, *GetMneRequest) (*GetMneResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetMne not implemented")
}
func (UnimplementedNetworkElementServiceServer) GetFlattenedMne(context.Context, *GetMneRequest) (*GetFlattenedMneResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFlattenedMne not implemented")
}
func (UnimplementedNetworkElementServiceServer) SetMneList(context.Context, *SetMneListRequest) (*SetMneListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetMneList not implemented")
}
func (UnimplementedNetworkElementServiceServer) GetPath(context.Context, *GetPathRequest) (*GetPathResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetPath not implemented")
}
func (UnimplementedNetworkElementServiceServer) GetIntendedPath(context.Context, *GetIntendedPathRequest) (*GetIntendedPathResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetIntendedPath not implemented")
}
func (UnimplementedNetworkElementServiceServer) SetPathList(context.Context, *SetPathListRequest) (*SetPathListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetPathList not implemented")
}
func (UnimplementedNetworkElementServiceServer) DeleteMne(context.Context, *DeleteMneRequest) (*DeleteMneResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteMne not implemented")
}
func (UnimplementedNetworkElementServiceServer) GetChangeList(context.Context, *GetChangeListRequest) (*GetChangeListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetChangeList not implemented")
}
func (UnimplementedNetworkElementServiceServer) GetChange(context.Context, *GetChangeRequest) (*GetChangeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetChange not implemented")
}
func (UnimplementedNetworkElementServiceServer) SetChangeList(context.Context, *SetChangeListRequest) (*SetChangeListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetChangeList not implemented")
}
func (UnimplementedNetworkElementServiceServer) SubscribePath(*SubscribePathRequest, NetworkElementService_SubscribePathServer) error {
	return status.Errorf(codes.Unimplemented, "method SubscribePath not implemented")
}
func (UnimplementedNetworkElementServiceServer) mustEmbedUnimplementedNetworkElementServiceServer() {}

// UnsafeNetworkElementServiceServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to NetworkElementServiceServer will
// result in compilation errors.
type UnsafeNetworkElementServiceServer interface {
	mustEmbedUnimplementedNetworkElementServiceServer()
}

func RegisterNetworkElementServiceServer(s grpc.ServiceRegistrar, srv NetworkElementServiceServer) {
	s.RegisterService(&NetworkElementService_ServiceDesc, srv)
}

func _NetworkElementService_Add_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddNetworkElementRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkElementServiceServer).Add(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_Add_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).Add(ctx, req.(*AddNetworkElementRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetNetworkElementRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkElementServiceServer).Get(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_Get_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).Get(ctx, req.(*GetNetworkElementRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_GetAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetAllNetworkElementRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkElementServiceServer).GetAll(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_GetAll_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).GetAll(ctx, req.(*GetAllNetworkElementRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_Update_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateNetworkElementRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkElementServiceServer).Update(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_Update_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).Update(ctx, req.(*UpdateNetworkElementRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_GetMneList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetMneListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkElementServiceServer).GetMneList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_GetMneList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).GetMneList(ctx, req.(*GetMneListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_GetFlattenedMneList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetFlattenedMneListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkElementServiceServer).GetFlattenedMneList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_GetFlattenedMneList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).GetFlattenedMneList(ctx, req.(*GetFlattenedMneListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_GetMne_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetMneRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkElementServiceServer).GetMne(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_GetMne_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).GetMne(ctx, req.(*GetMneRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_GetFlattenedMne_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetMneRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkElementServiceServer).GetFlattenedMne(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_GetFlattenedMne_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).GetFlattenedMne(ctx, req.(*GetMneRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_SetMneList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetMneListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkElementServiceServer).SetMneList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_SetMneList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).SetMneList(ctx, req.(*SetMneListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_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.(NetworkElementServiceServer).GetPath(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_GetPath_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).GetPath(ctx, req.(*GetPathRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_GetIntendedPath_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetIntendedPathRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkElementServiceServer).GetIntendedPath(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_GetIntendedPath_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).GetIntendedPath(ctx, req.(*GetIntendedPathRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_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.(NetworkElementServiceServer).SetPathList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_SetPathList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).SetPathList(ctx, req.(*SetPathListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_DeleteMne_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteMneRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkElementServiceServer).DeleteMne(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_DeleteMne_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).DeleteMne(ctx, req.(*DeleteMneRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_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.(NetworkElementServiceServer).GetChangeList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_GetChangeList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).GetChangeList(ctx, req.(*GetChangeListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_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.(NetworkElementServiceServer).GetChange(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_GetChange_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).GetChange(ctx, req.(*GetChangeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_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.(NetworkElementServiceServer).SetChangeList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: NetworkElementService_SetChangeList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkElementServiceServer).SetChangeList(ctx, req.(*SetChangeListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _NetworkElementService_SubscribePath_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(SubscribePathRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(NetworkElementServiceServer).SubscribePath(m, &networkElementServiceSubscribePathServer{stream})
}

type NetworkElementService_SubscribePathServer interface {
	Send(*SubscribePathResponse) error
	grpc.ServerStream
}

type networkElementServiceSubscribePathServer struct {
	grpc.ServerStream
}

func (x *networkElementServiceSubscribePathServer) Send(m *SubscribePathResponse) error {
	return x.ServerStream.SendMsg(m)
}

// NetworkElementService_ServiceDesc is the grpc.ServiceDesc for NetworkElementService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var NetworkElementService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "gosdn.networkelement.NetworkElementService",
	HandlerType: (*NetworkElementServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Add",
			Handler:    _NetworkElementService_Add_Handler,
		},
		{
			MethodName: "Get",
			Handler:    _NetworkElementService_Get_Handler,
		},
		{
			MethodName: "GetAll",
			Handler:    _NetworkElementService_GetAll_Handler,
		},
		{
			MethodName: "Update",
			Handler:    _NetworkElementService_Update_Handler,
		},
		{
			MethodName: "GetMneList",
			Handler:    _NetworkElementService_GetMneList_Handler,
		},
		{
			MethodName: "GetFlattenedMneList",
			Handler:    _NetworkElementService_GetFlattenedMneList_Handler,
		},
		{
			MethodName: "GetMne",
			Handler:    _NetworkElementService_GetMne_Handler,
		},
		{
			MethodName: "GetFlattenedMne",
			Handler:    _NetworkElementService_GetFlattenedMne_Handler,
		},
		{
			MethodName: "SetMneList",
			Handler:    _NetworkElementService_SetMneList_Handler,
		},
		{
			MethodName: "GetPath",
			Handler:    _NetworkElementService_GetPath_Handler,
		},
		{
			MethodName: "GetIntendedPath",
			Handler:    _NetworkElementService_GetIntendedPath_Handler,
		},
		{
			MethodName: "SetPathList",
			Handler:    _NetworkElementService_SetPathList_Handler,
		},
		{
			MethodName: "DeleteMne",
			Handler:    _NetworkElementService_DeleteMne_Handler,
		},
		{
			MethodName: "GetChangeList",
			Handler:    _NetworkElementService_GetChangeList_Handler,
		},
		{
			MethodName: "GetChange",
			Handler:    _NetworkElementService_GetChange_Handler,
		},
		{
			MethodName: "SetChangeList",
			Handler:    _NetworkElementService_SetChangeList_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "SubscribePath",
			Handler:       _NetworkElementService_SubscribePath_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "gosdn/networkelement/networkelement.proto",
}
