// Code generated by gRPC proto compiler.  DO NOT EDIT!
// source: keyapis/device/v1/keyapis_device_cms_phone_v1.proto

#import <Foundation/Foundation.h>

#if !defined(GPB_GRPC_FORWARD_DECLARE_MESSAGE_PROTO) || !GPB_GRPC_FORWARD_DECLARE_MESSAGE_PROTO
#import "keyapis/device/v1/KeyapisDeviceCmsPhoneV1.pbobjc.h"
#endif

#if !defined(GPB_GRPC_PROTOCOL_ONLY) || !GPB_GRPC_PROTOCOL_ONLY
#import <ProtoRPC/ProtoService.h>
#import <ProtoRPC/ProtoRPCLegacy.h>
#import <RxLibrary/GRXWriteable.h>
#import <RxLibrary/GRXWriter.h>
#endif

@class KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdRequest;
@class KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdResponse;
@class KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRequest;
@class KEYAPISDEVICEV1DeleteCmsPhoneOrponIdResponse;
@class KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberRequest;
@class KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberResponse;
@class KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdRequest;
@class KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdResponse;
@class KEYAPISDEVICEV1DeleteCmsPhoneRequest;
@class KEYAPISDEVICEV1DeleteCmsPhoneResponse;
@class KEYAPISDEVICEV1GetCmsPhoneCountRequest;
@class KEYAPISDEVICEV1GetCmsPhoneCountResponse;
@class KEYAPISDEVICEV1GetCmsPhoneListRequest;
@class KEYAPISDEVICEV1GetCmsPhoneListResponse;
@class KEYAPISDEVICEV1GetCmsPhoneRequest;
@class KEYAPISDEVICEV1GetCmsPhoneResponse;
@class KEYAPISDEVICEV1PostCmsPhoneRefreshRequest;
@class KEYAPISDEVICEV1PostCmsPhoneRefreshResponse;

#if !defined(GPB_GRPC_FORWARD_DECLARE_MESSAGE_PROTO) || !GPB_GRPC_FORWARD_DECLARE_MESSAGE_PROTO
#if defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) && GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
  #import <Protobuf/GPBTimestamp.pbobjc.h>
#else
  #import "GPBTimestamp.pbobjc.h"
#endif
  #import "google/api/Annotations.pbobjc.h"
  #import "google/api/FieldBehavior.pbobjc.h"
  #import "google/protobuf/Descriptor.pbobjc.h"
  #import "keyapis/device/v1/KeyapisDeviceDeviceV1.pbobjc.h"
#endif

@class GRPCUnaryProtoCall;
@class GRPCStreamingProtoCall;
@class GRPCCallOptions;
@protocol GRPCProtoResponseHandler;
@class GRPCProtoCall;


NS_ASSUME_NONNULL_BEGIN

@protocol KEYAPISDEVICEV1CmsPhoneService2 <NSObject>

#pragma mark GetCmsPhone(GetCmsPhoneRequest) returns (GetCmsPhoneResponse)

/**
 * Метод получения аналоговой трубки по идентификатору.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first
 */
- (GRPCUnaryProtoCall *)getCmsPhoneWithMessage:(KEYAPISDEVICEV1GetCmsPhoneRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark GetCmsPhoneList(GetCmsPhoneListRequest) returns (stream GetCmsPhoneListResponse)

/**
 * Метод получения списка аналоговых трубок.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first
 */
- (GRPCUnaryProtoCall *)getCmsPhoneListWithMessage:(KEYAPISDEVICEV1GetCmsPhoneListRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark GetCmsPhoneCount(GetCmsPhoneCountRequest) returns (GetCmsPhoneCountResponse)

/**
 * Метод получения количества аналоговых трубок.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first
 */
- (GRPCUnaryProtoCall *)getCmsPhoneCountWithMessage:(KEYAPISDEVICEV1GetCmsPhoneCountRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark DeleteCmsPhone(DeleteCmsPhoneRequest) returns (DeleteCmsPhoneResponse)

/**
 * Метод удаления аналоговой трубки.
 * Метод доступен для: admin, service
 */
- (GRPCUnaryProtoCall *)deleteCmsPhoneWithMessage:(KEYAPISDEVICEV1DeleteCmsPhoneRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark DeleteCmsPhoneDeviceId(DeleteCmsPhoneDeviceIdRequest) returns (DeleteCmsPhoneDeviceIdResponse)

/**
 * Метод удаления аналоговой трубки по идентификатору устройсва.
 * Метод доступен для: admin, service
 */
- (GRPCUnaryProtoCall *)deleteCmsPhoneDeviceIdWithMessage:(KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark DeleteCmsPhoneOrponId(DeleteCmsPhoneOrponIdRequest) returns (DeleteCmsPhoneOrponIdResponse)

/**
 * Метод удаления аналоговой трубки по идентификатору ОРПОН.
 * Метод доступен для: admin, service
 */
- (GRPCUnaryProtoCall *)deleteCmsPhoneOrponIdWithMessage:(KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark DeleteCmsPhoneOrponIdRoomNumber(DeleteCmsPhoneOrponIdRoomNumberRequest) returns (DeleteCmsPhoneOrponIdRoomNumberResponse)

/**
 * Метод удаления аналоговой трубки по идентификатору ОРПОН и номеру квартиры.
 * Метод доступен для: admin, service
 */
- (GRPCUnaryProtoCall *)deleteCmsPhoneOrponIdRoomNumberWithMessage:(KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark PostCmsPhoneRefresh(PostCmsPhoneRefreshRequest) returns (PostCmsPhoneRefreshResponse)

/**
 * Метод для принудительного обновления статуса аналоговых трубок.
 * Метод доступен для: admin, service, bti, ltp_first
 */
- (GRPCUnaryProtoCall *)postCmsPhoneRefreshWithMessage:(KEYAPISDEVICEV1PostCmsPhoneRefreshRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

#pragma mark DeleteCmsPhoneOrponRoomNumberDeviceId(DeleteCmsPhoneOrponRoomNumberDeviceIdRequest) returns (DeleteCmsPhoneOrponRoomNumberDeviceIdResponse)

/**
 * Метод удаления аналоговой трубки по идентификатору ОРПОН, номеру квартиры и идентификатору устройства.
 * Метод доступен для: admin, service
 */
- (GRPCUnaryProtoCall *)deleteCmsPhoneOrponRoomNumberDeviceIdWithMessage:(KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdRequest *)message responseHandler:(id<GRPCProtoResponseHandler>)handler callOptions:(GRPCCallOptions *_Nullable)callOptions;

@end

/**
 * The methods in this protocol belong to a set of old APIs that have been deprecated. They do not
 * recognize call options provided in the initializer. Using the v2 protocol is recommended.
 */
@protocol KEYAPISDEVICEV1CmsPhoneService <NSObject>

#pragma mark GetCmsPhone(GetCmsPhoneRequest) returns (GetCmsPhoneResponse)

/**
 * Метод получения аналоговой трубки по идентификатору.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getCmsPhoneWithRequest:(KEYAPISDEVICEV1GetCmsPhoneRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetCmsPhoneResponse *_Nullable response, NSError *_Nullable error))handler;

/**
 * Метод получения аналоговой трубки по идентификатору.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetCmsPhoneWithRequest:(KEYAPISDEVICEV1GetCmsPhoneRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetCmsPhoneResponse *_Nullable response, NSError *_Nullable error))handler;


#pragma mark GetCmsPhoneList(GetCmsPhoneListRequest) returns (stream GetCmsPhoneListResponse)

/**
 * Метод получения списка аналоговых трубок.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getCmsPhoneListWithRequest:(KEYAPISDEVICEV1GetCmsPhoneListRequest *)request eventHandler:(void(^)(BOOL done, KEYAPISDEVICEV1GetCmsPhoneListResponse *_Nullable response, NSError *_Nullable error))eventHandler;

/**
 * Метод получения списка аналоговых трубок.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetCmsPhoneListWithRequest:(KEYAPISDEVICEV1GetCmsPhoneListRequest *)request eventHandler:(void(^)(BOOL done, KEYAPISDEVICEV1GetCmsPhoneListResponse *_Nullable response, NSError *_Nullable error))eventHandler;


#pragma mark GetCmsPhoneCount(GetCmsPhoneCountRequest) returns (GetCmsPhoneCountResponse)

/**
 * Метод получения количества аналоговых трубок.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)getCmsPhoneCountWithRequest:(KEYAPISDEVICEV1GetCmsPhoneCountRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetCmsPhoneCountResponse *_Nullable response, NSError *_Nullable error))handler;

/**
 * Метод получения количества аналоговых трубок.
 * Метод доступен для: admin, service, owner, employee, bti, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToGetCmsPhoneCountWithRequest:(KEYAPISDEVICEV1GetCmsPhoneCountRequest *)request handler:(void(^)(KEYAPISDEVICEV1GetCmsPhoneCountResponse *_Nullable response, NSError *_Nullable error))handler;


#pragma mark DeleteCmsPhone(DeleteCmsPhoneRequest) returns (DeleteCmsPhoneResponse)

/**
 * Метод удаления аналоговой трубки.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)deleteCmsPhoneWithRequest:(KEYAPISDEVICEV1DeleteCmsPhoneRequest *)request handler:(void(^)(KEYAPISDEVICEV1DeleteCmsPhoneResponse *_Nullable response, NSError *_Nullable error))handler;

/**
 * Метод удаления аналоговой трубки.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToDeleteCmsPhoneWithRequest:(KEYAPISDEVICEV1DeleteCmsPhoneRequest *)request handler:(void(^)(KEYAPISDEVICEV1DeleteCmsPhoneResponse *_Nullable response, NSError *_Nullable error))handler;


#pragma mark DeleteCmsPhoneDeviceId(DeleteCmsPhoneDeviceIdRequest) returns (DeleteCmsPhoneDeviceIdResponse)

/**
 * Метод удаления аналоговой трубки по идентификатору устройсва.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)deleteCmsPhoneDeviceIdWithRequest:(KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdRequest *)request handler:(void(^)(KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdResponse *_Nullable response, NSError *_Nullable error))handler;

/**
 * Метод удаления аналоговой трубки по идентификатору устройсва.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToDeleteCmsPhoneDeviceIdWithRequest:(KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdRequest *)request handler:(void(^)(KEYAPISDEVICEV1DeleteCmsPhoneDeviceIdResponse *_Nullable response, NSError *_Nullable error))handler;


#pragma mark DeleteCmsPhoneOrponId(DeleteCmsPhoneOrponIdRequest) returns (DeleteCmsPhoneOrponIdResponse)

/**
 * Метод удаления аналоговой трубки по идентификатору ОРПОН.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)deleteCmsPhoneOrponIdWithRequest:(KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRequest *)request handler:(void(^)(KEYAPISDEVICEV1DeleteCmsPhoneOrponIdResponse *_Nullable response, NSError *_Nullable error))handler;

/**
 * Метод удаления аналоговой трубки по идентификатору ОРПОН.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToDeleteCmsPhoneOrponIdWithRequest:(KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRequest *)request handler:(void(^)(KEYAPISDEVICEV1DeleteCmsPhoneOrponIdResponse *_Nullable response, NSError *_Nullable error))handler;


#pragma mark DeleteCmsPhoneOrponIdRoomNumber(DeleteCmsPhoneOrponIdRoomNumberRequest) returns (DeleteCmsPhoneOrponIdRoomNumberResponse)

/**
 * Метод удаления аналоговой трубки по идентификатору ОРПОН и номеру квартиры.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)deleteCmsPhoneOrponIdRoomNumberWithRequest:(KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberRequest *)request handler:(void(^)(KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberResponse *_Nullable response, NSError *_Nullable error))handler;

/**
 * Метод удаления аналоговой трубки по идентификатору ОРПОН и номеру квартиры.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToDeleteCmsPhoneOrponIdRoomNumberWithRequest:(KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberRequest *)request handler:(void(^)(KEYAPISDEVICEV1DeleteCmsPhoneOrponIdRoomNumberResponse *_Nullable response, NSError *_Nullable error))handler;


#pragma mark PostCmsPhoneRefresh(PostCmsPhoneRefreshRequest) returns (PostCmsPhoneRefreshResponse)

/**
 * Метод для принудительного обновления статуса аналоговых трубок.
 * Метод доступен для: admin, service, bti, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)postCmsPhoneRefreshWithRequest:(KEYAPISDEVICEV1PostCmsPhoneRefreshRequest *)request handler:(void(^)(KEYAPISDEVICEV1PostCmsPhoneRefreshResponse *_Nullable response, NSError *_Nullable error))handler;

/**
 * Метод для принудительного обновления статуса аналоговых трубок.
 * Метод доступен для: admin, service, bti, ltp_first
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToPostCmsPhoneRefreshWithRequest:(KEYAPISDEVICEV1PostCmsPhoneRefreshRequest *)request handler:(void(^)(KEYAPISDEVICEV1PostCmsPhoneRefreshResponse *_Nullable response, NSError *_Nullable error))handler;


#pragma mark DeleteCmsPhoneOrponRoomNumberDeviceId(DeleteCmsPhoneOrponRoomNumberDeviceIdRequest) returns (DeleteCmsPhoneOrponRoomNumberDeviceIdResponse)

/**
 * Метод удаления аналоговой трубки по идентификатору ОРПОН, номеру квартиры и идентификатору устройства.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (void)deleteCmsPhoneOrponRoomNumberDeviceIdWithRequest:(KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdRequest *)request handler:(void(^)(KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdResponse *_Nullable response, NSError *_Nullable error))handler;

/**
 * Метод удаления аналоговой трубки по идентификатору ОРПОН, номеру квартиры и идентификатору устройства.
 * Метод доступен для: admin, service
 *
 * This method belongs to a set of APIs that have been deprecated. Using the v2 API is recommended.
 */
- (GRPCProtoCall *)RPCToDeleteCmsPhoneOrponRoomNumberDeviceIdWithRequest:(KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdRequest *)request handler:(void(^)(KEYAPISDEVICEV1DeleteCmsPhoneOrponRoomNumberDeviceIdResponse *_Nullable response, NSError *_Nullable error))handler;


@end


#if !defined(GPB_GRPC_PROTOCOL_ONLY) || !GPB_GRPC_PROTOCOL_ONLY
/**
 * Basic service implementation, over gRPC, that only does
 * marshalling and parsing.
 */
@interface KEYAPISDEVICEV1CmsPhoneService : GRPCProtoService<KEYAPISDEVICEV1CmsPhoneService2, KEYAPISDEVICEV1CmsPhoneService>
- (instancetype)initWithHost:(NSString *)host callOptions:(GRPCCallOptions *_Nullable)callOptions NS_DESIGNATED_INITIALIZER;
+ (instancetype)serviceWithHost:(NSString *)host callOptions:(GRPCCallOptions *_Nullable)callOptions;
// The following methods belong to a set of old APIs that have been deprecated.
- (instancetype)initWithHost:(NSString *)host;
+ (instancetype)serviceWithHost:(NSString *)host;
@end
#endif

NS_ASSUME_NONNULL_END

