//
//Сервис работы с камерами

// 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_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 (
	CameraService_GetCameraRoomCount_FullMethodName         = "/keyapis.vc.v1.CameraService/GetCameraRoomCount"
	CameraService_GetCameraRoomList_FullMethodName          = "/keyapis.vc.v1.CameraService/GetCameraRoomList"
	CameraService_GetCamera_FullMethodName                  = "/keyapis.vc.v1.CameraService/GetCamera"
	CameraService_GetCameraList_FullMethodName              = "/keyapis.vc.v1.CameraService/GetCameraList"
	CameraService_GetCameraRtspUrlExternalId_FullMethodName = "/keyapis.vc.v1.CameraService/GetCameraRtspUrlExternalId"
	CameraService_PutCameraRoomAttach_FullMethodName        = "/keyapis.vc.v1.CameraService/PutCameraRoomAttach"
	CameraService_PutCameraRoomDetach_FullMethodName        = "/keyapis.vc.v1.CameraService/PutCameraRoomDetach"
	CameraService_PutCameraRoomAttachList_FullMethodName    = "/keyapis.vc.v1.CameraService/PutCameraRoomAttachList"
	CameraService_PutCameraRoomDetachList_FullMethodName    = "/keyapis.vc.v1.CameraService/PutCameraRoomDetachList"
	CameraService_DeleteCamera_FullMethodName               = "/keyapis.vc.v1.CameraService/DeleteCamera"
	CameraService_PostCamera_FullMethodName                 = "/keyapis.vc.v1.CameraService/PostCamera"
	CameraService_GetCameraCalendar_FullMethodName          = "/keyapis.vc.v1.CameraService/GetCameraCalendar"
	CameraService_GetCameraIntervals_FullMethodName         = "/keyapis.vc.v1.CameraService/GetCameraIntervals"
)

// CameraServiceClient is the client API for CameraService 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 CameraServiceClient interface {
	// Метод получения количества связей камеры и квартиры.
	// Метод доступен для: admin, service, bti, owner, employee
	GetCameraRoomCount(ctx context.Context, in *GetCameraRoomCountRequest, opts ...grpc.CallOption) (*GetCameraRoomCountResponse, error)
	// Метод получения списка связей камеры и квартиры.
	// Метод доступен для: admin, service, bti, owner, employee
	GetCameraRoomList(ctx context.Context, in *GetCameraRoomListRequest, opts ...grpc.CallOption) (CameraService_GetCameraRoomListClient, error)
	// Метод получения камеры.
	// Для owner, employee параметр scope.vc_company_id подставляется из токена.
	// Метод доступен для: admin, service, bti, ltp_first, owner, employee
	GetCamera(ctx context.Context, in *GetCameraRequest, opts ...grpc.CallOption) (*GetCameraResponse, error)
	// Метод получения списка камер.
	// Для owner, employee параметр scope.vc_company_id подставляется из токена.
	// Метод доступен для: admin, service, bti, ltp_first, owner, employee
	GetCameraList(ctx context.Context, in *GetCameraListRequest, opts ...grpc.CallOption) (*GetCameraListResponse, error)
	// Метод получения RTSP-ссылки по идентификатору камеры в vcfront.
	// Метод доступен для: admin, service.
	// Метод доступен для: ApiKey
	GetCameraRtspUrlExternalId(ctx context.Context, in *GetCameraRtspUrlExternalIdRequest, opts ...grpc.CallOption) (*GetCameraRtspUrlExternalIdResponse, error)
	// Метод привязки камеры и квартиры.
	// Метод доступен для: admin, service, bti, owner, employee
	PutCameraRoomAttach(ctx context.Context, in *PutCameraRoomAttachRequest, opts ...grpc.CallOption) (*PutCameraRoomAttachResponse, error)
	// Метод отвязки камеры и квартиры.
	// Метод доступен для: admin, service, bti, owner, employee
	PutCameraRoomDetach(ctx context.Context, in *PutCameraRoomDetachRequest, opts ...grpc.CallOption) (*PutCameraRoomDetachResponse, error)
	// Метод пакетной привязки камер и квартир.
	// Метод доступен для: admin, service, bti, owner, employee
	PutCameraRoomAttachList(ctx context.Context, in *PutCameraRoomAttachListRequest, opts ...grpc.CallOption) (*PutCameraRoomAttachListResponse, error)
	// Метод пакетной отвязки камер и квартир.
	// Метод доступен для: admin, service, bti, owner, employee
	PutCameraRoomDetachList(ctx context.Context, in *PutCameraRoomDetachListRequest, opts ...grpc.CallOption) (*PutCameraRoomDetachListResponse, error)
	// Метод удаления камеры.
	// Метод доступен для: admin, service, bti
	DeleteCamera(ctx context.Context, in *DeleteCameraRequest, opts ...grpc.CallOption) (*DeleteCameraResponse, error)
	// Метод создания камеры.
	// Метод доступен для: admin, service, bti
	PostCamera(ctx context.Context, in *PostCameraRequest, opts ...grpc.CallOption) (*PostCameraResponse, error)
	// Метод получения дней, когда доступны записи.
	// Метод доступен для: admin, service, owner, company, master.
	// Для ролей типа owner, company, master необходимо сделать проверку на доступность камеры этому пользователю
	GetCameraCalendar(ctx context.Context, in *GetCameraCalendarRequest, opts ...grpc.CallOption) (*GetCameraCalendarResponse, error)
	// Метод получения интервалов, когда доступны записи.
	// Метод доступен для: admin, service, owner, company, master.
	// Для ролей типа owner, company, master необходимо сделать проверку на доступность камеры этому пользователю
	GetCameraIntervals(ctx context.Context, in *GetCameraIntervalsRequest, opts ...grpc.CallOption) (*GetCameraIntervalsResponse, error)
}

type cameraServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewCameraServiceClient(cc grpc.ClientConnInterface) CameraServiceClient {
	return &cameraServiceClient{cc}
}

func (c *cameraServiceClient) GetCameraRoomCount(ctx context.Context, in *GetCameraRoomCountRequest, opts ...grpc.CallOption) (*GetCameraRoomCountResponse, error) {
	out := new(GetCameraRoomCountResponse)
	err := c.cc.Invoke(ctx, CameraService_GetCameraRoomCount_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cameraServiceClient) GetCameraRoomList(ctx context.Context, in *GetCameraRoomListRequest, opts ...grpc.CallOption) (CameraService_GetCameraRoomListClient, error) {
	stream, err := c.cc.NewStream(ctx, &CameraService_ServiceDesc.Streams[0], CameraService_GetCameraRoomList_FullMethodName, opts...)
	if err != nil {
		return nil, err
	}
	x := &cameraServiceGetCameraRoomListClient{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 CameraService_GetCameraRoomListClient interface {
	Recv() (*GetCameraRoomListResponse, error)
	grpc.ClientStream
}

type cameraServiceGetCameraRoomListClient struct {
	grpc.ClientStream
}

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

func (c *cameraServiceClient) GetCamera(ctx context.Context, in *GetCameraRequest, opts ...grpc.CallOption) (*GetCameraResponse, error) {
	out := new(GetCameraResponse)
	err := c.cc.Invoke(ctx, CameraService_GetCamera_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cameraServiceClient) GetCameraList(ctx context.Context, in *GetCameraListRequest, opts ...grpc.CallOption) (*GetCameraListResponse, error) {
	out := new(GetCameraListResponse)
	err := c.cc.Invoke(ctx, CameraService_GetCameraList_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cameraServiceClient) GetCameraRtspUrlExternalId(ctx context.Context, in *GetCameraRtspUrlExternalIdRequest, opts ...grpc.CallOption) (*GetCameraRtspUrlExternalIdResponse, error) {
	out := new(GetCameraRtspUrlExternalIdResponse)
	err := c.cc.Invoke(ctx, CameraService_GetCameraRtspUrlExternalId_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cameraServiceClient) PutCameraRoomAttach(ctx context.Context, in *PutCameraRoomAttachRequest, opts ...grpc.CallOption) (*PutCameraRoomAttachResponse, error) {
	out := new(PutCameraRoomAttachResponse)
	err := c.cc.Invoke(ctx, CameraService_PutCameraRoomAttach_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cameraServiceClient) PutCameraRoomDetach(ctx context.Context, in *PutCameraRoomDetachRequest, opts ...grpc.CallOption) (*PutCameraRoomDetachResponse, error) {
	out := new(PutCameraRoomDetachResponse)
	err := c.cc.Invoke(ctx, CameraService_PutCameraRoomDetach_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cameraServiceClient) PutCameraRoomAttachList(ctx context.Context, in *PutCameraRoomAttachListRequest, opts ...grpc.CallOption) (*PutCameraRoomAttachListResponse, error) {
	out := new(PutCameraRoomAttachListResponse)
	err := c.cc.Invoke(ctx, CameraService_PutCameraRoomAttachList_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cameraServiceClient) PutCameraRoomDetachList(ctx context.Context, in *PutCameraRoomDetachListRequest, opts ...grpc.CallOption) (*PutCameraRoomDetachListResponse, error) {
	out := new(PutCameraRoomDetachListResponse)
	err := c.cc.Invoke(ctx, CameraService_PutCameraRoomDetachList_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cameraServiceClient) DeleteCamera(ctx context.Context, in *DeleteCameraRequest, opts ...grpc.CallOption) (*DeleteCameraResponse, error) {
	out := new(DeleteCameraResponse)
	err := c.cc.Invoke(ctx, CameraService_DeleteCamera_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cameraServiceClient) PostCamera(ctx context.Context, in *PostCameraRequest, opts ...grpc.CallOption) (*PostCameraResponse, error) {
	out := new(PostCameraResponse)
	err := c.cc.Invoke(ctx, CameraService_PostCamera_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cameraServiceClient) GetCameraCalendar(ctx context.Context, in *GetCameraCalendarRequest, opts ...grpc.CallOption) (*GetCameraCalendarResponse, error) {
	out := new(GetCameraCalendarResponse)
	err := c.cc.Invoke(ctx, CameraService_GetCameraCalendar_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *cameraServiceClient) GetCameraIntervals(ctx context.Context, in *GetCameraIntervalsRequest, opts ...grpc.CallOption) (*GetCameraIntervalsResponse, error) {
	out := new(GetCameraIntervalsResponse)
	err := c.cc.Invoke(ctx, CameraService_GetCameraIntervals_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// CameraServiceServer is the server API for CameraService service.
// All implementations should embed UnimplementedCameraServiceServer
// for forward compatibility
type CameraServiceServer interface {
	// Метод получения количества связей камеры и квартиры.
	// Метод доступен для: admin, service, bti, owner, employee
	GetCameraRoomCount(context.Context, *GetCameraRoomCountRequest) (*GetCameraRoomCountResponse, error)
	// Метод получения списка связей камеры и квартиры.
	// Метод доступен для: admin, service, bti, owner, employee
	GetCameraRoomList(*GetCameraRoomListRequest, CameraService_GetCameraRoomListServer) error
	// Метод получения камеры.
	// Для owner, employee параметр scope.vc_company_id подставляется из токена.
	// Метод доступен для: admin, service, bti, ltp_first, owner, employee
	GetCamera(context.Context, *GetCameraRequest) (*GetCameraResponse, error)
	// Метод получения списка камер.
	// Для owner, employee параметр scope.vc_company_id подставляется из токена.
	// Метод доступен для: admin, service, bti, ltp_first, owner, employee
	GetCameraList(context.Context, *GetCameraListRequest) (*GetCameraListResponse, error)
	// Метод получения RTSP-ссылки по идентификатору камеры в vcfront.
	// Метод доступен для: admin, service.
	// Метод доступен для: ApiKey
	GetCameraRtspUrlExternalId(context.Context, *GetCameraRtspUrlExternalIdRequest) (*GetCameraRtspUrlExternalIdResponse, error)
	// Метод привязки камеры и квартиры.
	// Метод доступен для: admin, service, bti, owner, employee
	PutCameraRoomAttach(context.Context, *PutCameraRoomAttachRequest) (*PutCameraRoomAttachResponse, error)
	// Метод отвязки камеры и квартиры.
	// Метод доступен для: admin, service, bti, owner, employee
	PutCameraRoomDetach(context.Context, *PutCameraRoomDetachRequest) (*PutCameraRoomDetachResponse, error)
	// Метод пакетной привязки камер и квартир.
	// Метод доступен для: admin, service, bti, owner, employee
	PutCameraRoomAttachList(context.Context, *PutCameraRoomAttachListRequest) (*PutCameraRoomAttachListResponse, error)
	// Метод пакетной отвязки камер и квартир.
	// Метод доступен для: admin, service, bti, owner, employee
	PutCameraRoomDetachList(context.Context, *PutCameraRoomDetachListRequest) (*PutCameraRoomDetachListResponse, error)
	// Метод удаления камеры.
	// Метод доступен для: admin, service, bti
	DeleteCamera(context.Context, *DeleteCameraRequest) (*DeleteCameraResponse, error)
	// Метод создания камеры.
	// Метод доступен для: admin, service, bti
	PostCamera(context.Context, *PostCameraRequest) (*PostCameraResponse, error)
	// Метод получения дней, когда доступны записи.
	// Метод доступен для: admin, service, owner, company, master.
	// Для ролей типа owner, company, master необходимо сделать проверку на доступность камеры этому пользователю
	GetCameraCalendar(context.Context, *GetCameraCalendarRequest) (*GetCameraCalendarResponse, error)
	// Метод получения интервалов, когда доступны записи.
	// Метод доступен для: admin, service, owner, company, master.
	// Для ролей типа owner, company, master необходимо сделать проверку на доступность камеры этому пользователю
	GetCameraIntervals(context.Context, *GetCameraIntervalsRequest) (*GetCameraIntervalsResponse, error)
}

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

func (UnimplementedCameraServiceServer) GetCameraRoomCount(context.Context, *GetCameraRoomCountRequest) (*GetCameraRoomCountResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCameraRoomCount not implemented")
}
func (UnimplementedCameraServiceServer) GetCameraRoomList(*GetCameraRoomListRequest, CameraService_GetCameraRoomListServer) error {
	return status.Errorf(codes.Unimplemented, "method GetCameraRoomList not implemented")
}
func (UnimplementedCameraServiceServer) GetCamera(context.Context, *GetCameraRequest) (*GetCameraResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCamera not implemented")
}
func (UnimplementedCameraServiceServer) GetCameraList(context.Context, *GetCameraListRequest) (*GetCameraListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCameraList not implemented")
}
func (UnimplementedCameraServiceServer) GetCameraRtspUrlExternalId(context.Context, *GetCameraRtspUrlExternalIdRequest) (*GetCameraRtspUrlExternalIdResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCameraRtspUrlExternalId not implemented")
}
func (UnimplementedCameraServiceServer) PutCameraRoomAttach(context.Context, *PutCameraRoomAttachRequest) (*PutCameraRoomAttachResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PutCameraRoomAttach not implemented")
}
func (UnimplementedCameraServiceServer) PutCameraRoomDetach(context.Context, *PutCameraRoomDetachRequest) (*PutCameraRoomDetachResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PutCameraRoomDetach not implemented")
}
func (UnimplementedCameraServiceServer) PutCameraRoomAttachList(context.Context, *PutCameraRoomAttachListRequest) (*PutCameraRoomAttachListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PutCameraRoomAttachList not implemented")
}
func (UnimplementedCameraServiceServer) PutCameraRoomDetachList(context.Context, *PutCameraRoomDetachListRequest) (*PutCameraRoomDetachListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PutCameraRoomDetachList not implemented")
}
func (UnimplementedCameraServiceServer) DeleteCamera(context.Context, *DeleteCameraRequest) (*DeleteCameraResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteCamera not implemented")
}
func (UnimplementedCameraServiceServer) PostCamera(context.Context, *PostCameraRequest) (*PostCameraResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PostCamera not implemented")
}
func (UnimplementedCameraServiceServer) GetCameraCalendar(context.Context, *GetCameraCalendarRequest) (*GetCameraCalendarResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCameraCalendar not implemented")
}
func (UnimplementedCameraServiceServer) GetCameraIntervals(context.Context, *GetCameraIntervalsRequest) (*GetCameraIntervalsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCameraIntervals not implemented")
}

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

func RegisterCameraServiceServer(s grpc.ServiceRegistrar, srv CameraServiceServer) {
	s.RegisterService(&CameraService_ServiceDesc, srv)
}

func _CameraService_GetCameraRoomCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCameraRoomCountRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CameraServiceServer).GetCameraRoomCount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: CameraService_GetCameraRoomCount_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CameraServiceServer).GetCameraRoomCount(ctx, req.(*GetCameraRoomCountRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CameraService_GetCameraRoomList_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(GetCameraRoomListRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(CameraServiceServer).GetCameraRoomList(m, &cameraServiceGetCameraRoomListServer{stream})
}

type CameraService_GetCameraRoomListServer interface {
	Send(*GetCameraRoomListResponse) error
	grpc.ServerStream
}

type cameraServiceGetCameraRoomListServer struct {
	grpc.ServerStream
}

func (x *cameraServiceGetCameraRoomListServer) Send(m *GetCameraRoomListResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _CameraService_GetCamera_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCameraRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CameraServiceServer).GetCamera(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: CameraService_GetCamera_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CameraServiceServer).GetCamera(ctx, req.(*GetCameraRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CameraService_GetCameraList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCameraListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CameraServiceServer).GetCameraList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: CameraService_GetCameraList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CameraServiceServer).GetCameraList(ctx, req.(*GetCameraListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CameraService_GetCameraRtspUrlExternalId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCameraRtspUrlExternalIdRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CameraServiceServer).GetCameraRtspUrlExternalId(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: CameraService_GetCameraRtspUrlExternalId_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CameraServiceServer).GetCameraRtspUrlExternalId(ctx, req.(*GetCameraRtspUrlExternalIdRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CameraService_PutCameraRoomAttach_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PutCameraRoomAttachRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CameraServiceServer).PutCameraRoomAttach(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: CameraService_PutCameraRoomAttach_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CameraServiceServer).PutCameraRoomAttach(ctx, req.(*PutCameraRoomAttachRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CameraService_PutCameraRoomDetach_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PutCameraRoomDetachRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CameraServiceServer).PutCameraRoomDetach(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: CameraService_PutCameraRoomDetach_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CameraServiceServer).PutCameraRoomDetach(ctx, req.(*PutCameraRoomDetachRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CameraService_PutCameraRoomAttachList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PutCameraRoomAttachListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CameraServiceServer).PutCameraRoomAttachList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: CameraService_PutCameraRoomAttachList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CameraServiceServer).PutCameraRoomAttachList(ctx, req.(*PutCameraRoomAttachListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CameraService_PutCameraRoomDetachList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PutCameraRoomDetachListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CameraServiceServer).PutCameraRoomDetachList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: CameraService_PutCameraRoomDetachList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CameraServiceServer).PutCameraRoomDetachList(ctx, req.(*PutCameraRoomDetachListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CameraService_DeleteCamera_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteCameraRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CameraServiceServer).DeleteCamera(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: CameraService_DeleteCamera_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CameraServiceServer).DeleteCamera(ctx, req.(*DeleteCameraRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CameraService_PostCamera_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PostCameraRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CameraServiceServer).PostCamera(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: CameraService_PostCamera_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CameraServiceServer).PostCamera(ctx, req.(*PostCameraRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CameraService_GetCameraCalendar_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCameraCalendarRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CameraServiceServer).GetCameraCalendar(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: CameraService_GetCameraCalendar_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CameraServiceServer).GetCameraCalendar(ctx, req.(*GetCameraCalendarRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CameraService_GetCameraIntervals_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCameraIntervalsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CameraServiceServer).GetCameraIntervals(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: CameraService_GetCameraIntervals_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CameraServiceServer).GetCameraIntervals(ctx, req.(*GetCameraIntervalsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// CameraService_ServiceDesc is the grpc.ServiceDesc for CameraService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var CameraService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "keyapis.vc.v1.CameraService",
	HandlerType: (*CameraServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetCameraRoomCount",
			Handler:    _CameraService_GetCameraRoomCount_Handler,
		},
		{
			MethodName: "GetCamera",
			Handler:    _CameraService_GetCamera_Handler,
		},
		{
			MethodName: "GetCameraList",
			Handler:    _CameraService_GetCameraList_Handler,
		},
		{
			MethodName: "GetCameraRtspUrlExternalId",
			Handler:    _CameraService_GetCameraRtspUrlExternalId_Handler,
		},
		{
			MethodName: "PutCameraRoomAttach",
			Handler:    _CameraService_PutCameraRoomAttach_Handler,
		},
		{
			MethodName: "PutCameraRoomDetach",
			Handler:    _CameraService_PutCameraRoomDetach_Handler,
		},
		{
			MethodName: "PutCameraRoomAttachList",
			Handler:    _CameraService_PutCameraRoomAttachList_Handler,
		},
		{
			MethodName: "PutCameraRoomDetachList",
			Handler:    _CameraService_PutCameraRoomDetachList_Handler,
		},
		{
			MethodName: "DeleteCamera",
			Handler:    _CameraService_DeleteCamera_Handler,
		},
		{
			MethodName: "PostCamera",
			Handler:    _CameraService_PostCamera_Handler,
		},
		{
			MethodName: "GetCameraCalendar",
			Handler:    _CameraService_GetCameraCalendar_Handler,
		},
		{
			MethodName: "GetCameraIntervals",
			Handler:    _CameraService_GetCameraIntervals_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "GetCameraRoomList",
			Handler:       _CameraService_GetCameraRoomList_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "keyapis/vc/v1/keyapis_vc_camera_v1.proto",
}
