// Code generated by protoc-gen-go-grpc. DO NOT EDIT.

package lib

import (
	context "context"

	"github.com/golang/protobuf/proto"
	"google.golang.org/grpc"
	"google.golang.org/grpc/codes"
	"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.
const _ = proto.ProtoPackageIsVersion2

// LVMClient is the client API for LVM 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 LVMClient interface {
	ListLV(ctx context.Context, in *ListLVRequest, opts ...grpc.CallOption) (*ListLVReply, error)
	CreateLV(ctx context.Context, in *CreateLVRequest, opts ...grpc.CallOption) (*CreateLVReply, error)
	RemoveLV(ctx context.Context, in *RemoveLVRequest, opts ...grpc.CallOption) (*RemoveLVReply, error)
	CloneLV(ctx context.Context, in *CloneLVRequest, opts ...grpc.CallOption) (*CloneLVReply, error)
	AddTagLV(ctx context.Context, in *AddTagLVRequest, opts ...grpc.CallOption) (*AddTagLVReply, error)
	RemoveTagLV(ctx context.Context, in *RemoveTagLVRequest, opts ...grpc.CallOption) (*RemoveTagLVReply, error)
	ListVG(ctx context.Context, in *ListVGRequest, opts ...grpc.CallOption) (*ListVGReply, error)
	CreateVG(ctx context.Context, in *CreateVGRequest, opts ...grpc.CallOption) (*CreateVGReply, error)
	RemoveVG(ctx context.Context, in *CreateVGRequest, opts ...grpc.CallOption) (*RemoveVGReply, error)
	CleanPath(ctx context.Context, in *CleanPathRequest, opts ...grpc.CallOption) (*CleanPathReply, error)
	ListNamespace(ctx context.Context, in *ListNamespaceRequest, opts ...grpc.CallOption) (*ListNamespaceReply, error)
	CreateNamespace(ctx context.Context, in *CreateNamespaceRequest, opts ...grpc.CallOption) (*CreateNamespaceReply, error)
	RemoveNamespace(ctx context.Context, in *RemoveNamespaceRequest, opts ...grpc.CallOption) (*RemoveNamespaceReply, error)
}

type lVMClient struct {
	cc *grpc.ClientConn
}

func NewLVMClient(cc *grpc.ClientConn) LVMClient {
	return &lVMClient{cc}
}

func (c *lVMClient) ListLV(ctx context.Context, in *ListLVRequest, opts ...grpc.CallOption) (*ListLVReply, error) {
	out := new(ListLVReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/ListLV", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lVMClient) CreateLV(ctx context.Context, in *CreateLVRequest, opts ...grpc.CallOption) (*CreateLVReply, error) {
	out := new(CreateLVReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/CreateLV", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lVMClient) RemoveLV(ctx context.Context, in *RemoveLVRequest, opts ...grpc.CallOption) (*RemoveLVReply, error) {
	out := new(RemoveLVReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/RemoveLV", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lVMClient) CloneLV(ctx context.Context, in *CloneLVRequest, opts ...grpc.CallOption) (*CloneLVReply, error) {
	out := new(CloneLVReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/CloneLV", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lVMClient) AddTagLV(ctx context.Context, in *AddTagLVRequest, opts ...grpc.CallOption) (*AddTagLVReply, error) {
	out := new(AddTagLVReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/AddTagLV", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lVMClient) RemoveTagLV(ctx context.Context, in *RemoveTagLVRequest, opts ...grpc.CallOption) (*RemoveTagLVReply, error) {
	out := new(RemoveTagLVReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/RemoveTagLV", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lVMClient) ListVG(ctx context.Context, in *ListVGRequest, opts ...grpc.CallOption) (*ListVGReply, error) {
	out := new(ListVGReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/ListVG", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lVMClient) CreateVG(ctx context.Context, in *CreateVGRequest, opts ...grpc.CallOption) (*CreateVGReply, error) {
	out := new(CreateVGReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/CreateVG", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lVMClient) RemoveVG(ctx context.Context, in *CreateVGRequest, opts ...grpc.CallOption) (*RemoveVGReply, error) {
	out := new(RemoveVGReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/RemoveVG", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lVMClient) CleanPath(ctx context.Context, in *CleanPathRequest, opts ...grpc.CallOption) (*CleanPathReply, error) {
	out := new(CleanPathReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/CleanPath", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lVMClient) ListNamespace(ctx context.Context, in *ListNamespaceRequest, opts ...grpc.CallOption) (*ListNamespaceReply, error) {
	out := new(ListNamespaceReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/ListNamespace", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lVMClient) CreateNamespace(ctx context.Context, in *CreateNamespaceRequest, opts ...grpc.CallOption) (*CreateNamespaceReply, error) {
	out := new(CreateNamespaceReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/CreateNamespace", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lVMClient) RemoveNamespace(ctx context.Context, in *RemoveNamespaceRequest, opts ...grpc.CallOption) (*RemoveNamespaceReply, error) {
	out := new(RemoveNamespaceReply)
	err := c.cc.Invoke(ctx, "/proto.LVM/RemoveNamespace", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// LVMServer is the server API for LVM service.
// All implementations must embed UnimplementedLVMServer
// for forward compatibility
type LVMServer interface {
	ListLV(context.Context, *ListLVRequest) (*ListLVReply, error)
	CreateLV(context.Context, *CreateLVRequest) (*CreateLVReply, error)
	RemoveLV(context.Context, *RemoveLVRequest) (*RemoveLVReply, error)
	CloneLV(context.Context, *CloneLVRequest) (*CloneLVReply, error)
	AddTagLV(context.Context, *AddTagLVRequest) (*AddTagLVReply, error)
	RemoveTagLV(context.Context, *RemoveTagLVRequest) (*RemoveTagLVReply, error)
	ListVG(context.Context, *ListVGRequest) (*ListVGReply, error)
	CreateVG(context.Context, *CreateVGRequest) (*CreateVGReply, error)
	RemoveVG(context.Context, *CreateVGRequest) (*RemoveVGReply, error)
	CleanPath(context.Context, *CleanPathRequest) (*CleanPathReply, error)
	ListNamespace(context.Context, *ListNamespaceRequest) (*ListNamespaceReply, error)
	CreateNamespace(context.Context, *CreateNamespaceRequest) (*CreateNamespaceReply, error)
	RemoveNamespace(context.Context, *RemoveNamespaceRequest) (*RemoveNamespaceReply, error)
}

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

func (UnimplementedLVMServer) ListLV(context.Context, *ListLVRequest) (*ListLVReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListLV not implemented")
}
func (UnimplementedLVMServer) CreateLV(context.Context, *CreateLVRequest) (*CreateLVReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateLV not implemented")
}
func (UnimplementedLVMServer) RemoveLV(context.Context, *RemoveLVRequest) (*RemoveLVReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemoveLV not implemented")
}
func (UnimplementedLVMServer) CloneLV(context.Context, *CloneLVRequest) (*CloneLVReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CloneLV not implemented")
}
func (UnimplementedLVMServer) AddTagLV(context.Context, *AddTagLVRequest) (*AddTagLVReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AddTagLV not implemented")
}
func (UnimplementedLVMServer) RemoveTagLV(context.Context, *RemoveTagLVRequest) (*RemoveTagLVReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemoveTagLV not implemented")
}
func (UnimplementedLVMServer) ListVG(context.Context, *ListVGRequest) (*ListVGReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListVG not implemented")
}
func (UnimplementedLVMServer) CreateVG(context.Context, *CreateVGRequest) (*CreateVGReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateVG not implemented")
}
func (UnimplementedLVMServer) RemoveVG(context.Context, *CreateVGRequest) (*RemoveVGReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemoveVG not implemented")
}
func (UnimplementedLVMServer) CleanPath(context.Context, *CleanPathRequest) (*CleanPathReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CleanPath not implemented")
}
func (UnimplementedLVMServer) ListNamespace(context.Context, *ListNamespaceRequest) (*ListNamespaceReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListNamespace not implemented")
}
func (UnimplementedLVMServer) CreateNamespace(context.Context, *CreateNamespaceRequest) (*CreateNamespaceReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateNamespace not implemented")
}
func (UnimplementedLVMServer) RemoveNamespace(context.Context, *RemoveNamespaceRequest) (*RemoveNamespaceReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemoveNamespace not implemented")
}

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

func RegisterLVMServer(s *grpc.Server, srv LVMServer) {
	s.RegisterService(&_LVM_serviceDesc, srv)
}

func _LVM_ListLV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListLVRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).ListLV(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/ListLV",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).ListLV(ctx, req.(*ListLVRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LVM_CreateLV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateLVRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).CreateLV(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/CreateLV",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).CreateLV(ctx, req.(*CreateLVRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LVM_RemoveLV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RemoveLVRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).RemoveLV(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/RemoveLV",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).RemoveLV(ctx, req.(*RemoveLVRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LVM_CloneLV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CloneLVRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).CloneLV(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/CloneLV",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).CloneLV(ctx, req.(*CloneLVRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LVM_AddTagLV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddTagLVRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).AddTagLV(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/AddTagLV",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).AddTagLV(ctx, req.(*AddTagLVRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LVM_RemoveTagLV_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RemoveTagLVRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).RemoveTagLV(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/RemoveTagLV",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).RemoveTagLV(ctx, req.(*RemoveTagLVRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LVM_ListVG_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListVGRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).ListVG(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/ListVG",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).ListVG(ctx, req.(*ListVGRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LVM_CreateVG_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateVGRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).CreateVG(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/CreateVG",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).CreateVG(ctx, req.(*CreateVGRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LVM_RemoveVG_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateVGRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).RemoveVG(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/RemoveVG",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).RemoveVG(ctx, req.(*CreateVGRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LVM_CleanPath_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CleanPathRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).CleanPath(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/CleanPath",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).CleanPath(ctx, req.(*CleanPathRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LVM_ListNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListNamespaceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).ListNamespace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/ListNamespace",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).ListNamespace(ctx, req.(*ListNamespaceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LVM_CreateNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateNamespaceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).CreateNamespace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/CreateNamespace",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).CreateNamespace(ctx, req.(*CreateNamespaceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LVM_RemoveNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RemoveNamespaceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LVMServer).RemoveNamespace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.LVM/RemoveNamespace",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LVMServer).RemoveNamespace(ctx, req.(*RemoveNamespaceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _LVM_serviceDesc = grpc.ServiceDesc{
	ServiceName: "proto.LVM",
	HandlerType: (*LVMServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListLV",
			Handler:    _LVM_ListLV_Handler,
		},
		{
			MethodName: "CreateLV",
			Handler:    _LVM_CreateLV_Handler,
		},
		{
			MethodName: "RemoveLV",
			Handler:    _LVM_RemoveLV_Handler,
		},
		{
			MethodName: "CloneLV",
			Handler:    _LVM_CloneLV_Handler,
		},
		{
			MethodName: "AddTagLV",
			Handler:    _LVM_AddTagLV_Handler,
		},
		{
			MethodName: "RemoveTagLV",
			Handler:    _LVM_RemoveTagLV_Handler,
		},
		{
			MethodName: "ListVG",
			Handler:    _LVM_ListVG_Handler,
		},
		{
			MethodName: "CreateVG",
			Handler:    _LVM_CreateVG_Handler,
		},
		{
			MethodName: "RemoveVG",
			Handler:    _LVM_RemoveVG_Handler,
		},
		{
			MethodName: "CleanPath",
			Handler:    _LVM_CleanPath_Handler,
		},
		{
			MethodName: "ListNamespace",
			Handler:    _LVM_ListNamespace_Handler,
		},
		{
			MethodName: "CreateNamespace",
			Handler:    _LVM_CreateNamespace_Handler,
		},
		{
			MethodName: "RemoveNamespace",
			Handler:    _LVM_RemoveNamespace_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "lvm.proto",
}
