//
//Сервис управления реле устройства

// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc             v4.23.1
// source: deviceapis/device/v1/deviceapis_device_relay_v1.proto

package deviceapis_device_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 (
	RelayService_PostRelayClose_FullMethodName           = "/deviceapis.device.v1.RelayService/PostRelayClose"
	RelayService_PostRelayOpen_FullMethodName            = "/deviceapis.device.v1.RelayService/PostRelayOpen"
	RelayService_PostRelayOpenPermanently_FullMethodName = "/deviceapis.device.v1.RelayService/PostRelayOpenPermanently"
	RelayService_EditRelayPropsOpen_FullMethodName       = "/deviceapis.device.v1.RelayService/EditRelayPropsOpen"
	RelayService_GetRelayOpenList_FullMethodName         = "/deviceapis.device.v1.RelayService/GetRelayOpenList"
	RelayService_EditRelayPropsDtmf_FullMethodName       = "/deviceapis.device.v1.RelayService/EditRelayPropsDtmf"
	RelayService_GetRelayDtmfList_FullMethodName         = "/deviceapis.device.v1.RelayService/GetRelayDtmfList"
	RelayService_GetRelayStatusList_FullMethodName       = "/deviceapis.device.v1.RelayService/GetRelayStatusList"
)

// RelayServiceClient is the client API for RelayService 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 RelayServiceClient interface {
	// Метод закрытия реле.
	// Закрытие реле принудительно без учета времени открытия.
	// Отмена режима постоянного открытия
	PostRelayClose(ctx context.Context, in *PostRelayCloseRequest, opts ...grpc.CallOption) (*PostRelayCloseResponse, error)
	// Метод открытия реле
	PostRelayOpen(ctx context.Context, in *PostRelayOpenRequest, opts ...grpc.CallOption) (*PostRelayOpenResponse, error)
	// Метод открытия реле без дальнейшего закрытия
	PostRelayOpenPermanently(ctx context.Context, in *PostRelayOpenPermanentlyRequest, opts ...grpc.CallOption) (*PostRelayOpenPermanentlyResponse, error)
	// Метод редактирования настроек открытия реле
	EditRelayPropsOpen(ctx context.Context, in *EditRelayPropsOpenRequest, opts ...grpc.CallOption) (*EditRelayPropsOpenResponse, error)
	// Метод получения настроек открытия реле
	GetRelayOpenList(ctx context.Context, in *GetRelayOpenListRequest, opts ...grpc.CallOption) (*GetRelayOpenListResponse, error)
	// Метод редактирования настроек DTMF реле
	EditRelayPropsDtmf(ctx context.Context, in *EditRelayPropsDtmfRequest, opts ...grpc.CallOption) (*EditRelayPropsDtmfResponse, error)
	// Метод получения настроек DTMF реле
	GetRelayDtmfList(ctx context.Context, in *GetRelayDtmfListRequest, opts ...grpc.CallOption) (*GetRelayDtmfListResponse, error)
	// Метод получения статусов реле устройства
	GetRelayStatusList(ctx context.Context, in *GetRelayStatusListRequest, opts ...grpc.CallOption) (*GetRelayStatusListResponse, error)
}

type relayServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewRelayServiceClient(cc grpc.ClientConnInterface) RelayServiceClient {
	return &relayServiceClient{cc}
}

func (c *relayServiceClient) PostRelayClose(ctx context.Context, in *PostRelayCloseRequest, opts ...grpc.CallOption) (*PostRelayCloseResponse, error) {
	out := new(PostRelayCloseResponse)
	err := c.cc.Invoke(ctx, RelayService_PostRelayClose_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *relayServiceClient) PostRelayOpen(ctx context.Context, in *PostRelayOpenRequest, opts ...grpc.CallOption) (*PostRelayOpenResponse, error) {
	out := new(PostRelayOpenResponse)
	err := c.cc.Invoke(ctx, RelayService_PostRelayOpen_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *relayServiceClient) PostRelayOpenPermanently(ctx context.Context, in *PostRelayOpenPermanentlyRequest, opts ...grpc.CallOption) (*PostRelayOpenPermanentlyResponse, error) {
	out := new(PostRelayOpenPermanentlyResponse)
	err := c.cc.Invoke(ctx, RelayService_PostRelayOpenPermanently_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *relayServiceClient) EditRelayPropsOpen(ctx context.Context, in *EditRelayPropsOpenRequest, opts ...grpc.CallOption) (*EditRelayPropsOpenResponse, error) {
	out := new(EditRelayPropsOpenResponse)
	err := c.cc.Invoke(ctx, RelayService_EditRelayPropsOpen_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *relayServiceClient) GetRelayOpenList(ctx context.Context, in *GetRelayOpenListRequest, opts ...grpc.CallOption) (*GetRelayOpenListResponse, error) {
	out := new(GetRelayOpenListResponse)
	err := c.cc.Invoke(ctx, RelayService_GetRelayOpenList_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *relayServiceClient) EditRelayPropsDtmf(ctx context.Context, in *EditRelayPropsDtmfRequest, opts ...grpc.CallOption) (*EditRelayPropsDtmfResponse, error) {
	out := new(EditRelayPropsDtmfResponse)
	err := c.cc.Invoke(ctx, RelayService_EditRelayPropsDtmf_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *relayServiceClient) GetRelayDtmfList(ctx context.Context, in *GetRelayDtmfListRequest, opts ...grpc.CallOption) (*GetRelayDtmfListResponse, error) {
	out := new(GetRelayDtmfListResponse)
	err := c.cc.Invoke(ctx, RelayService_GetRelayDtmfList_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *relayServiceClient) GetRelayStatusList(ctx context.Context, in *GetRelayStatusListRequest, opts ...grpc.CallOption) (*GetRelayStatusListResponse, error) {
	out := new(GetRelayStatusListResponse)
	err := c.cc.Invoke(ctx, RelayService_GetRelayStatusList_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// RelayServiceServer is the server API for RelayService service.
// All implementations should embed UnimplementedRelayServiceServer
// for forward compatibility
type RelayServiceServer interface {
	// Метод закрытия реле.
	// Закрытие реле принудительно без учета времени открытия.
	// Отмена режима постоянного открытия
	PostRelayClose(context.Context, *PostRelayCloseRequest) (*PostRelayCloseResponse, error)
	// Метод открытия реле
	PostRelayOpen(context.Context, *PostRelayOpenRequest) (*PostRelayOpenResponse, error)
	// Метод открытия реле без дальнейшего закрытия
	PostRelayOpenPermanently(context.Context, *PostRelayOpenPermanentlyRequest) (*PostRelayOpenPermanentlyResponse, error)
	// Метод редактирования настроек открытия реле
	EditRelayPropsOpen(context.Context, *EditRelayPropsOpenRequest) (*EditRelayPropsOpenResponse, error)
	// Метод получения настроек открытия реле
	GetRelayOpenList(context.Context, *GetRelayOpenListRequest) (*GetRelayOpenListResponse, error)
	// Метод редактирования настроек DTMF реле
	EditRelayPropsDtmf(context.Context, *EditRelayPropsDtmfRequest) (*EditRelayPropsDtmfResponse, error)
	// Метод получения настроек DTMF реле
	GetRelayDtmfList(context.Context, *GetRelayDtmfListRequest) (*GetRelayDtmfListResponse, error)
	// Метод получения статусов реле устройства
	GetRelayStatusList(context.Context, *GetRelayStatusListRequest) (*GetRelayStatusListResponse, error)
}

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

func (UnimplementedRelayServiceServer) PostRelayClose(context.Context, *PostRelayCloseRequest) (*PostRelayCloseResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PostRelayClose not implemented")
}
func (UnimplementedRelayServiceServer) PostRelayOpen(context.Context, *PostRelayOpenRequest) (*PostRelayOpenResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PostRelayOpen not implemented")
}
func (UnimplementedRelayServiceServer) PostRelayOpenPermanently(context.Context, *PostRelayOpenPermanentlyRequest) (*PostRelayOpenPermanentlyResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PostRelayOpenPermanently not implemented")
}
func (UnimplementedRelayServiceServer) EditRelayPropsOpen(context.Context, *EditRelayPropsOpenRequest) (*EditRelayPropsOpenResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EditRelayPropsOpen not implemented")
}
func (UnimplementedRelayServiceServer) GetRelayOpenList(context.Context, *GetRelayOpenListRequest) (*GetRelayOpenListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRelayOpenList not implemented")
}
func (UnimplementedRelayServiceServer) EditRelayPropsDtmf(context.Context, *EditRelayPropsDtmfRequest) (*EditRelayPropsDtmfResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EditRelayPropsDtmf not implemented")
}
func (UnimplementedRelayServiceServer) GetRelayDtmfList(context.Context, *GetRelayDtmfListRequest) (*GetRelayDtmfListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRelayDtmfList not implemented")
}
func (UnimplementedRelayServiceServer) GetRelayStatusList(context.Context, *GetRelayStatusListRequest) (*GetRelayStatusListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRelayStatusList not implemented")
}

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

func RegisterRelayServiceServer(s grpc.ServiceRegistrar, srv RelayServiceServer) {
	s.RegisterService(&RelayService_ServiceDesc, srv)
}

func _RelayService_PostRelayClose_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PostRelayCloseRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RelayServiceServer).PostRelayClose(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RelayService_PostRelayClose_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RelayServiceServer).PostRelayClose(ctx, req.(*PostRelayCloseRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RelayService_PostRelayOpen_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PostRelayOpenRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RelayServiceServer).PostRelayOpen(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RelayService_PostRelayOpen_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RelayServiceServer).PostRelayOpen(ctx, req.(*PostRelayOpenRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RelayService_PostRelayOpenPermanently_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PostRelayOpenPermanentlyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RelayServiceServer).PostRelayOpenPermanently(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RelayService_PostRelayOpenPermanently_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RelayServiceServer).PostRelayOpenPermanently(ctx, req.(*PostRelayOpenPermanentlyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RelayService_EditRelayPropsOpen_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EditRelayPropsOpenRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RelayServiceServer).EditRelayPropsOpen(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RelayService_EditRelayPropsOpen_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RelayServiceServer).EditRelayPropsOpen(ctx, req.(*EditRelayPropsOpenRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RelayService_GetRelayOpenList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetRelayOpenListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RelayServiceServer).GetRelayOpenList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RelayService_GetRelayOpenList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RelayServiceServer).GetRelayOpenList(ctx, req.(*GetRelayOpenListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RelayService_EditRelayPropsDtmf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EditRelayPropsDtmfRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RelayServiceServer).EditRelayPropsDtmf(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RelayService_EditRelayPropsDtmf_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RelayServiceServer).EditRelayPropsDtmf(ctx, req.(*EditRelayPropsDtmfRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RelayService_GetRelayDtmfList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetRelayDtmfListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RelayServiceServer).GetRelayDtmfList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RelayService_GetRelayDtmfList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RelayServiceServer).GetRelayDtmfList(ctx, req.(*GetRelayDtmfListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RelayService_GetRelayStatusList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetRelayStatusListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RelayServiceServer).GetRelayStatusList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RelayService_GetRelayStatusList_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RelayServiceServer).GetRelayStatusList(ctx, req.(*GetRelayStatusListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// RelayService_ServiceDesc is the grpc.ServiceDesc for RelayService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var RelayService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "deviceapis.device.v1.RelayService",
	HandlerType: (*RelayServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "PostRelayClose",
			Handler:    _RelayService_PostRelayClose_Handler,
		},
		{
			MethodName: "PostRelayOpen",
			Handler:    _RelayService_PostRelayOpen_Handler,
		},
		{
			MethodName: "PostRelayOpenPermanently",
			Handler:    _RelayService_PostRelayOpenPermanently_Handler,
		},
		{
			MethodName: "EditRelayPropsOpen",
			Handler:    _RelayService_EditRelayPropsOpen_Handler,
		},
		{
			MethodName: "GetRelayOpenList",
			Handler:    _RelayService_GetRelayOpenList_Handler,
		},
		{
			MethodName: "EditRelayPropsDtmf",
			Handler:    _RelayService_EditRelayPropsDtmf_Handler,
		},
		{
			MethodName: "GetRelayDtmfList",
			Handler:    _RelayService_GetRelayDtmfList_Handler,
		},
		{
			MethodName: "GetRelayStatusList",
			Handler:    _RelayService_GetRelayStatusList_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "deviceapis/device/v1/deviceapis_device_relay_v1.proto",
}
