//
//Сервис работы со справочниками атрибутов камер

// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc             v4.23.1
// source: keyapis/vc/v1/keyapis_vc_camera_dictionary_v1.proto

package keyapis_vc_v1

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 (
	DictionaryService_GetDictionaryCategories_FullMethodName = "/keyapis.vc.v1.DictionaryService/GetDictionaryCategories"
	DictionaryService_GetDictionaryTariffs_FullMethodName    = "/keyapis.vc.v1.DictionaryService/GetDictionaryTariffs"
	DictionaryService_GetDictionaryRoles_FullMethodName      = "/keyapis.vc.v1.DictionaryService/GetDictionaryRoles"
)

// DictionaryServiceClient is the client API for DictionaryService 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 DictionaryServiceClient interface {
	// Метод получения справочника категорий.
	// Метод доступен для: admin, service, bti, owner, employee
	GetDictionaryCategories(ctx context.Context, in *GetDictionaryCategoriesRequest, opts ...grpc.CallOption) (*GetDictionaryCategoriesResponse, error)
	// Метод получения справочника тарифов.
	// Метод доступен для: admin, service, bti, owner, employee
	GetDictionaryTariffs(ctx context.Context, in *GetDictionaryTariffsRequest, opts ...grpc.CallOption) (*GetDictionaryTariffsResponse, error)
	// Метод получения справочника ролей.
	// Метод доступен для: admin, service, bti, owner, employee
	GetDictionaryRoles(ctx context.Context, in *GetDictionaryRolesRequest, opts ...grpc.CallOption) (*GetDictionaryRolesResponse, error)
}

type dictionaryServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewDictionaryServiceClient(cc grpc.ClientConnInterface) DictionaryServiceClient {
	return &dictionaryServiceClient{cc}
}

func (c *dictionaryServiceClient) GetDictionaryCategories(ctx context.Context, in *GetDictionaryCategoriesRequest, opts ...grpc.CallOption) (*GetDictionaryCategoriesResponse, error) {
	out := new(GetDictionaryCategoriesResponse)
	err := c.cc.Invoke(ctx, DictionaryService_GetDictionaryCategories_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dictionaryServiceClient) GetDictionaryTariffs(ctx context.Context, in *GetDictionaryTariffsRequest, opts ...grpc.CallOption) (*GetDictionaryTariffsResponse, error) {
	out := new(GetDictionaryTariffsResponse)
	err := c.cc.Invoke(ctx, DictionaryService_GetDictionaryTariffs_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dictionaryServiceClient) GetDictionaryRoles(ctx context.Context, in *GetDictionaryRolesRequest, opts ...grpc.CallOption) (*GetDictionaryRolesResponse, error) {
	out := new(GetDictionaryRolesResponse)
	err := c.cc.Invoke(ctx, DictionaryService_GetDictionaryRoles_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// DictionaryServiceServer is the server API for DictionaryService service.
// All implementations should embed UnimplementedDictionaryServiceServer
// for forward compatibility
type DictionaryServiceServer interface {
	// Метод получения справочника категорий.
	// Метод доступен для: admin, service, bti, owner, employee
	GetDictionaryCategories(context.Context, *GetDictionaryCategoriesRequest) (*GetDictionaryCategoriesResponse, error)
	// Метод получения справочника тарифов.
	// Метод доступен для: admin, service, bti, owner, employee
	GetDictionaryTariffs(context.Context, *GetDictionaryTariffsRequest) (*GetDictionaryTariffsResponse, error)
	// Метод получения справочника ролей.
	// Метод доступен для: admin, service, bti, owner, employee
	GetDictionaryRoles(context.Context, *GetDictionaryRolesRequest) (*GetDictionaryRolesResponse, error)
}

// UnimplementedDictionaryServiceServer should be embedded to have forward compatible implementations.
type UnimplementedDictionaryServiceServer struct {
}

func (UnimplementedDictionaryServiceServer) GetDictionaryCategories(context.Context, *GetDictionaryCategoriesRequest) (*GetDictionaryCategoriesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetDictionaryCategories not implemented")
}
func (UnimplementedDictionaryServiceServer) GetDictionaryTariffs(context.Context, *GetDictionaryTariffsRequest) (*GetDictionaryTariffsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetDictionaryTariffs not implemented")
}
func (UnimplementedDictionaryServiceServer) GetDictionaryRoles(context.Context, *GetDictionaryRolesRequest) (*GetDictionaryRolesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetDictionaryRoles not implemented")
}

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

func RegisterDictionaryServiceServer(s grpc.ServiceRegistrar, srv DictionaryServiceServer) {
	s.RegisterService(&DictionaryService_ServiceDesc, srv)
}

func _DictionaryService_GetDictionaryCategories_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetDictionaryCategoriesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DictionaryServiceServer).GetDictionaryCategories(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: DictionaryService_GetDictionaryCategories_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DictionaryServiceServer).GetDictionaryCategories(ctx, req.(*GetDictionaryCategoriesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DictionaryService_GetDictionaryTariffs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetDictionaryTariffsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DictionaryServiceServer).GetDictionaryTariffs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: DictionaryService_GetDictionaryTariffs_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DictionaryServiceServer).GetDictionaryTariffs(ctx, req.(*GetDictionaryTariffsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DictionaryService_GetDictionaryRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetDictionaryRolesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DictionaryServiceServer).GetDictionaryRoles(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: DictionaryService_GetDictionaryRoles_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DictionaryServiceServer).GetDictionaryRoles(ctx, req.(*GetDictionaryRolesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// DictionaryService_ServiceDesc is the grpc.ServiceDesc for DictionaryService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var DictionaryService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "keyapis.vc.v1.DictionaryService",
	HandlerType: (*DictionaryServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetDictionaryCategories",
			Handler:    _DictionaryService_GetDictionaryCategories_Handler,
		},
		{
			MethodName: "GetDictionaryTariffs",
			Handler:    _DictionaryService_GetDictionaryTariffs_Handler,
		},
		{
			MethodName: "GetDictionaryRoles",
			Handler:    _DictionaryService_GetDictionaryRoles_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "keyapis/vc/v1/keyapis_vc_camera_dictionary_v1.proto",
}
